diff --git a/assets/scripts/utils/debounce.js b/assets/scripts/utils/debounce.js deleted file mode 100644 index 40b14afc..00000000 --- a/assets/scripts/utils/debounce.js +++ /dev/null @@ -1,15 +0,0 @@ -export default function(func, wait, immediate) { - let timeout; - return function() { - const context = this; - const args = arguments; - const later = function() { - timeout = null; - if (!immediate) func.apply(context, args); - }; - const callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} diff --git a/assets/scripts/utils/events.js b/assets/scripts/utils/events.js new file mode 100644 index 00000000..de6ae42d --- /dev/null +++ b/assets/scripts/utils/events.js @@ -0,0 +1,180 @@ +import { debounce } from './tickers' + +/** + * @typedef {object} RegisteredCustomEvent + * + * @property {EventTarget} target - The event target ({@see Window} or {@see Node}). + * @property {string} type - The custom event name. + */ +/** @type {RegisteredCustomEvent[]} */ + +const REGISTERED_CUSTOM_EVENTS = [] + +/** + * Determines if the given object is the {@see Window}. + * + * @param {object} obj + * @return {boolean} + */ + +const isWindow = obj => obj === window + + +/** + * Determines if the given object implements {@see EventTarget}. + * + * @param {object} obj + * @return {boolean} + */ + +const isEventTarget = obj => (obj instanceof EventTarget) + + +/** + * Determines if the target already has the event attached. + * + * @param {EventTarget} target + * @param {string} type - The custom event name. + * @return {boolean} + */ + +const isCustomEventRegistered = (target, type) => REGISTERED_CUSTOM_EVENTS.some(e => e.target === target && e.type === type) + + +/** + * Registers the custom event with the given target, if not already registered. + * + * @param {EventTarget} target + * @param {string} type - The custom event name. + * @return {void} + */ + +const addCustomEvent = (target, type) => { + if (!isCustomEventRegistered(target, type)) { + REGISTERED_CUSTOM_EVENTS.push({ + target, + type + }) + } +} + + +/** + * Adds a custom "start" event for the given target. + * + * Internally, this function adds a debounced event listener on + * the given `event` to trigger the custom `start` event. + * + * @param {EventTarget} target + * @param {string} type - The base event name. + * @param {number} [delay] - The number of milliseconds to wait + * before dispatching the custom event. + * @throws Error If the target is invalid. + * @throws Error If the custom event is already defined. + * @return {void} + */ + +const addStartEvent = (target, type, delay = 200) => { + + const customType = `${type}start` + + if (!isEventTarget(target)) { + throw new Error(`addStartEvent: target parameter must be an instance of EventTarget`) + } + + if (isCustomEventRegistered(target, customType)) { + throw new Error(`addStartEvent: '${customType}' already exists for target parameter`) + } + + addCustomEvent(target, customType) + const startEvent = new CustomEvent(customType) + + target.addEventListener(type, debounce(() => { + target.dispatchEvent(startEvent) + }, delay, true)) +} + + +/** + * Adds a custom "end" event for the given target. + * + * Internally, this function adds a debounced event listener on + * the given `event` to trigger the custom `end` event. + * + * @param {EventTarget} target + * @param {string} type - The base event name. + * @param {number} [delay] - The number of milliseconds to wait + * before dispatching the custom event. + * @throws Error If the target is invalid. + * @throws Error If the custom event is already defined. + * @return {void} + */ + +const addEndEvent = (target, type, delay = 200) => { + + const customType = `${type}end` + + if (!isEventTarget(target)) { + throw new Error(`addEndEvent: target parameter must be an instance of EventTarget`) + } + + if (isCustomEventRegistered(target, customType)) { + throw new Error(`addEndEvent: '${customType}' already exists for target parameter`) + } + + addCustomEvent(target, customType) + const endEvent = new CustomEvent(customType) + + target.addEventListener(type, debounce(() => { + target.dispatchEvent(endEvent) + }, delay)) +} + + +/** + * Adds custom scroll "up" and "down" events for the given target. + * + * Internally, this function adds an event listener on + * the scroll event to detect the direction and trigger + * the custom `scrollup` and `scrolldown` events. + * + * @param {EventTarget} [target] - If omitted, the custom event + * if attached to the Window. + * @throws Error If the target is invalid. + * @return {void} + */ + +const addScrollDirectionEvents = (target = window) => { + + if (!isEventTarget(target)) { + throw new Error(`addScrollDirectionEvents: target parameter must be an instance of EventTarget`) + } + + let scrollTop = target.scrollTop + let previousScrollTop = scrollTop + let direction = 0 + const scrollUp = new CustomEvent('scrollup') + const scrollDown = new CustomEvent('scrolldown') + const scrollProperty = isWindow(target) ? 'scrollY' : 'scrollTop' + + target.addEventListener('scroll', () => { + scrollTop = target[scrollProperty] + // Scroll up + if (scrollTop < previousScrollTop && direction > -1) { + target.dispatchEvent(scrollUp) + direction = -1 + // Scroll down + } else if (scrollTop > previousScrollTop && direction < 1) { + target.dispatchEvent(scrollDown) + direction = 1 + } + previousScrollTop = scrollTop + }) +} + + +export { + addStartEvent, + addEndEvent, + addScrollDirectionEvents, +} diff --git a/assets/scripts/utils/tickers.js b/assets/scripts/utils/tickers.js new file mode 100644 index 00000000..f89efe6b --- /dev/null +++ b/assets/scripts/utils/tickers.js @@ -0,0 +1,78 @@ +/** + * Creates a debounced function. + * + * A debounced function delays invoking `callback` until after + * `delay` milliseconds have elapsed since the last time the + * debounced function was invoked. + * + * Useful for behaviour that should only happen _before_ or + * _after_ an event has stopped occurring. + * + * @template {function} T + * + * @param {T} callback - The function to debounce. + * @param {number} delay - The number of milliseconds to wait. + * @param {boolean} [immediate] - + * If `true`, `callback` is invoked before `delay`. + * If `false`, `callback` is invoked after `delay`. + * @return {function} The new debounced function. + */ + +const debounce = (callback, delay, immediate = false) => { + let timeout = null + + return (...args) => { + clearTimeout(timeout) + + const later = () => { + timeout = null + if (!immediate) { + callback(...args) + } + } + + if (immediate && !timeout) { + callback(...args) + } + + timeout = setTimeout(later, delay) + } +} + + +/** + * Creates a throttled function. + * + * A throttled function invokes `callback` at most once per every + * `delay` milliseconds. + * + * Useful for rate-limiting an event that occurs in quick succession. + * + * @template {function} T + * + * @param {T} callback - The function to throttle. + * @param {number} delay - The number of milliseconds to wait. + * @return {function} The new throttled function. + */ + +const throttle = (callback, delay) => { + let timeout = false + + return (...args) => { + if (!timeout) { + timeout = true + + callback(...args) + + setTimeout(() => { + timeout = false + }, delay) + } + } +} + + +export { + debounce, + throttle +} diff --git a/www/assets/scripts/app.js b/www/assets/scripts/app.js index 7dbbe650..ee8cc4ff 100644 --- a/www/assets/scripts/app.js +++ b/www/assets/scripts/app.js @@ -1,3698 +1,9 @@ -(() => { - var __create = Object.create; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getOwnPropSymbols = Object.getOwnPropertySymbols; - var __getProtoOf = Object.getPrototypeOf; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __propIsEnum = Object.prototype.propertyIsEnumerable; - var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; - var __spreadValues = (a, b) => { - for (var prop in b || (b = {})) - if (__hasOwnProp.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - if (__getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(b)) { - if (__propIsEnum.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - } - return a; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; - }; - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); - var __async = (__this, __arguments, generator) => { - return new Promise((resolve, reject) => { - var fulfilled = (value) => { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - }; - var rejected = (value) => { - try { - step(generator.throw(value)); - } catch (e) { - reject(e); - } - }; - var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); - step((generator = generator.apply(__this, __arguments)).next()); - }); - }; - - // node_modules/svg4everybody/dist/svg4everybody.js - var require_svg4everybody = __commonJS({ - "node_modules/svg4everybody/dist/svg4everybody.js"(exports, module) { - !function(root, factory) { - typeof define == "function" && define.amd ? define([], function() { - return root.svg4everybody = factory(); - }) : typeof module == "object" && module.exports ? module.exports = factory() : root.svg4everybody = factory(); - }(exports, function() { - function embed(parent, svg, target) { - if (target) { - var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox"); - viewBox && svg.setAttribute("viewBox", viewBox); - for (var clone = target.cloneNode(true); clone.childNodes.length; ) { - fragment.appendChild(clone.firstChild); - } - parent.appendChild(fragment); - } - } - function loadreadystatechange(xhr) { - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - var cachedDocument = xhr._cachedDocument; - cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""), cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), xhr._embeds.splice(0).map(function(item) { - var target = xhr._cachedTarget[item.id]; - target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), embed(item.parent, item.svg, target); - }); - } - }, xhr.onreadystatechange(); - } - function svg4everybody2(rawopts) { - function oninterval() { - for (var index = 0; index < uses.length; ) { - var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src2 = use.getAttribute("xlink:href") || use.getAttribute("href"); - if (!src2 && opts.attributeName && (src2 = use.getAttribute(opts.attributeName)), svg && src2) { - if (polyfill) { - if (!opts.validate || opts.validate(src2, svg, use)) { - parent.removeChild(use); - var srcSplit = src2.split("#"), url = srcSplit.shift(), id = srcSplit.join("#"); - if (url.length) { - var xhr = requests[url]; - xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(), xhr._embeds = []), xhr._embeds.push({ - parent, - svg, - id - }), loadreadystatechange(xhr); - } else { - embed(parent, svg, document.getElementById(id)); - } - } else { - ++index, ++numberOfSvgUseElementsToBypass; - } - } - } else { - ++index; - } - } - (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame2(oninterval, 67); - } - var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self; - polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe; - var requests = {}, requestAnimationFrame2 = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0; - polyfill && oninterval(); - } - function getSVGAncestor(node) { - for (var svg = node; svg.nodeName.toLowerCase() !== "svg" && (svg = svg.parentNode); ) { - } - return svg; - } - return svg4everybody2; - }); - } - }); - - // node_modules/modujs/dist/main.esm.js - function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function(obj2) { - return typeof obj2; - }; - } else { - _typeof = function(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); - } - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties(Constructor, staticProps); - return Constructor; - } - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); - } - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); - } - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) - return _arrayLikeToArray(arr); - } - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) - return Array.from(iter); - } - function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) - return; - var _arr = []; - var _n = true; - var _d = false; - var _e = void 0; - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var _default = /* @__PURE__ */ function() { - function _default4(options) { - _classCallCheck(this, _default4); - this.mAttr = "data-" + options.dataName; - this.mCaptureEvents = ["mouseenter", "mouseleave"]; - this.el = options.el; - } - _createClass(_default4, [{ - key: "mInit", - value: function mInit(modules) { - var _this = this; - this.modules = modules; - this.mCheckEventTarget = this.mCheckEventTarget.bind(this); - if (this.events) { - Object.keys(this.events).forEach(function(event) { - return _this.mAddEvent(event); - }); - } - } - }, { - key: "mUpdate", - value: function mUpdate(modules) { - this.modules = modules; - } - }, { - key: "mDestroy", - value: function mDestroy() { - var _this2 = this; - if (this.events) { - Object.keys(this.events).forEach(function(event) { - return _this2.mRemoveEvent(event); - }); - } - } - }, { - key: "mAddEvent", - value: function mAddEvent(event) { - var capture = this.mCaptureEvents.includes(event) ? true : false; - this.el.addEventListener(event, this.mCheckEventTarget, capture); - } - }, { - key: "mRemoveEvent", - value: function mRemoveEvent(event) { - var capture = this.mCaptureEvents.includes(event) ? true : false; - this.el.removeEventListener(event, this.mCheckEventTarget, capture); - } - }, { - key: "mCheckEventTarget", - value: function mCheckEventTarget(e) { - var event = this.events[e.type]; - if (typeof event === "string") { - this[event](e); - } else { - var data = "[" + this.mAttr + "]"; - var target = e.target; - if (this.mCaptureEvents.includes(e.type)) { - if (target.matches(data)) { - this.mCallEventMethod(e, event, target); - } - } else { - while (target && target !== document) { - if (target.matches(data)) { - if (this.mCallEventMethod(e, event, target) != "undefined") { - break; - } - } - target = target.parentNode; - } - } - } - } - }, { - key: "mCallEventMethod", - value: function mCallEventMethod(e, event, target) { - var name = target.getAttribute(this.mAttr); - if (event.hasOwnProperty(name)) { - var method = event[name]; - if (!e.hasOwnProperty("currentTarget")) { - Object.defineProperty(e, "currentTarget", { - value: target - }); - } - if (!e.hasOwnProperty("curTarget")) { - Object.defineProperty(e, "curTarget", { - value: target - }); - } - this[method](e); - } - } - }, { - key: "$", - value: function $(query, context) { - var classIndex = query.indexOf("."); - var idIndex = query.indexOf("#"); - var attrIndex = query.indexOf("["); - var indexes = [classIndex, idIndex, attrIndex].filter(function(index2) { - return index2 != -1; - }); - var index = false; - var name = query; - var more = ""; - var parent = this.el; - if (indexes.length) { - index = Math.min.apply(Math, _toConsumableArray(indexes)); - name = query.slice(0, index); - more = query.slice(index); - } - if (_typeof(context) == "object") { - parent = context; - } - return parent.querySelectorAll("[" + this.mAttr + "=" + name + "]" + more); - } - }, { - key: "parent", - value: function parent(query, context) { - var data = "[" + this.mAttr + "=" + query + "]"; - var parent2 = context.parentNode; - while (parent2 && parent2 !== document) { - if (parent2.matches(data)) { - return parent2; - } - parent2 = parent2.parentNode; - } - } - }, { - key: "getData", - value: function getData(name, context) { - var target = context || this.el; - return target.getAttribute(this.mAttr + "-" + name); - } - }, { - key: "setData", - value: function setData(name, value, context) { - var target = context || this.el; - return target.setAttribute(this.mAttr + "-" + name, value); - } - }, { - key: "call", - value: function call(func, args, mod, id) { - var _this3 = this; - if (args && !mod) { - mod = args; - args = false; - } - if (this.modules[mod]) { - if (id) { - if (this.modules[mod][id]) { - this.modules[mod][id][func](args); - } - } else { - Object.keys(this.modules[mod]).forEach(function(id2) { - _this3.modules[mod][id2][func](args); - }); - } - } - } - }, { - key: "on", - value: function on(e, mod, func, id) { - var _this4 = this; - if (this.modules[mod]) { - if (id) { - this.modules[mod][id].el.addEventListener(e, function(o) { - return func(o); - }); - } else { - Object.keys(this.modules[mod]).forEach(function(i) { - _this4.modules[mod][i].el.addEventListener(e, function(o) { - return func(o); - }); - }); - } - } - } - }, { - key: "init", - value: function init2() { - } - }, { - key: "destroy", - value: function destroy() { - } - }]); - return _default4; - }(); - var _default$1 = /* @__PURE__ */ function() { - function _default4(options) { - _classCallCheck(this, _default4); - this.app; - this.modules = options.modules; - this.currentModules = {}; - this.activeModules = {}; - this.newModules = {}; - this.moduleId = 0; - } - _createClass(_default4, [{ - key: "init", - value: function init2(app2, scope) { - var _this = this; - var container = scope || document; - var elements = container.querySelectorAll("*"); - if (app2 && !this.app) { - this.app = app2; - } - this.activeModules["app"] = { - "app": this.app - }; - elements.forEach(function(el) { - Array.from(el.attributes).forEach(function(i) { - if (i.name.startsWith("data-module")) { - var moduleExists = false; - var dataName = i.name.split("-").splice(2); - var moduleName = _this.toCamel(dataName); - if (_this.modules[moduleName]) { - moduleExists = true; - } else if (_this.modules[_this.toUpper(moduleName)]) { - moduleName = _this.toUpper(moduleName); - moduleExists = true; - } - if (moduleExists) { - var options = { - el, - name: moduleName, - dataName: dataName.join("-") - }; - var module = new _this.modules[moduleName](options); - var id = i.value; - if (!id) { - _this.moduleId++; - id = "m" + _this.moduleId; - el.setAttribute(i.name, id); - } - _this.addActiveModule(moduleName, id, module); - var moduleId = moduleName + "-" + id; - if (scope) { - _this.newModules[moduleId] = module; - } else { - _this.currentModules[moduleId] = module; - } - } - } - }); - }); - Object.entries(this.currentModules).forEach(function(_ref) { - var _ref2 = _slicedToArray(_ref, 2), id = _ref2[0], module = _ref2[1]; - if (scope) { - var split = id.split("-"); - var moduleName = split.shift(); - var moduleId = split.pop(); - _this.addActiveModule(moduleName, moduleId, module); - } else { - _this.initModule(module); - } - }); - } - }, { - key: "initModule", - value: function initModule(module) { - module.mInit(this.activeModules); - module.init(); - } - }, { - key: "addActiveModule", - value: function addActiveModule(name, id, module) { - if (this.activeModules[name]) { - Object.assign(this.activeModules[name], _defineProperty({}, id, module)); - } else { - this.activeModules[name] = _defineProperty({}, id, module); - } - } - }, { - key: "update", - value: function update(scope) { - var _this2 = this; - this.init(this.app, scope); - Object.entries(this.currentModules).forEach(function(_ref3) { - var _ref4 = _slicedToArray(_ref3, 2), id = _ref4[0], module = _ref4[1]; - module.mUpdate(_this2.activeModules); - }); - Object.entries(this.newModules).forEach(function(_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), id = _ref6[0], module = _ref6[1]; - _this2.initModule(module); - }); - Object.assign(this.currentModules, this.newModules); - } - }, { - key: "destroy", - value: function destroy(scope) { - if (scope) { - this.destroyScope(scope); - } else { - this.destroyModules(); - } - } - }, { - key: "destroyScope", - value: function destroyScope(scope) { - var _this3 = this; - var elements = scope.querySelectorAll("*"); - elements.forEach(function(el) { - Array.from(el.attributes).forEach(function(i) { - if (i.name.startsWith("data-module")) { - var id = i.value; - var dataName = i.name.split("-").splice(2); - var moduleName = _this3.toCamel(dataName) + "-" + id; - var moduleExists = false; - if (_this3.currentModules[moduleName]) { - moduleExists = true; - } else if (_this3.currentModules[_this3.toUpper(moduleName)]) { - moduleName = _this3.toUpper(moduleName); - moduleExists = true; - } - if (moduleExists) { - _this3.destroyModule(_this3.currentModules[moduleName]); - delete _this3.currentModules[moduleName]; - } - } - }); - }); - this.activeModules = {}; - this.newModules = {}; - } - }, { - key: "destroyModules", - value: function destroyModules() { - var _this4 = this; - Object.entries(this.currentModules).forEach(function(_ref7) { - var _ref8 = _slicedToArray(_ref7, 2), id = _ref8[0], module = _ref8[1]; - _this4.destroyModule(module); - }); - this.currentModules = []; - } - }, { - key: "destroyModule", - value: function destroyModule(module) { - module.mDestroy(); - module.destroy(); - } - }, { - key: "toCamel", - value: function toCamel(arr) { - var _this5 = this; - return arr.reduce(function(a, b) { - return a + _this5.toUpper(b); - }); - } - }, { - key: "toUpper", - value: function toUpper(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - }]); - return _default4; - }(); - var main_esm_default = _default$1; - - // assets/scripts/modules.js - var modules_exports = {}; - __export(modules_exports, { - Load: () => Load_default, - Scroll: () => Scroll_default - }); - - // node_modules/modularload/dist/main.esm.js - function _classCallCheck2(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _defineProperties2(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass2(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties2(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties2(Constructor, staticProps); - return Constructor; - } - function _slicedToArray2(arr, i) { - return _arrayWithHoles2(arr) || _iterableToArrayLimit2(arr, i) || _unsupportedIterableToArray2(arr, i) || _nonIterableRest2(); - } - function _arrayWithHoles2(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArrayLimit2(arr, i) { - var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; - if (_i == null) - return; - var _arr = []; - var _n = true; - var _d = false; - var _s, _e; - try { - for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray2(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray2(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray2(o, minLen); - } - function _arrayLikeToArray2(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - function _nonIterableRest2() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var _default2 = /* @__PURE__ */ function() { - function _default4(options) { - _classCallCheck2(this, _default4); - this.defaults = { - name: "load", - loadingClass: "is-loading", - loadedClass: "is-loaded", - readyClass: "is-ready", - transitionsPrefix: "is-", - transitionsHistory: true, - enterDelay: 0, - exitDelay: 0, - loadedDelay: 0, - isLoaded: false, - isEntered: false, - isUrl: false, - transitionContainer: null, - popstateIgnore: false - }; - Object.assign(this, this.defaults, options); - this.options = options; - this.namespace = "modular"; - this.html = document.documentElement; - this.href = window.location.href; - this.container = "data-" + this.name + "-container"; - this.subContainer = false; - this.prevTransition = null; - this.loadAttributes = ["src", "srcset", "style", "href"]; - this.isInserted = false; - this.isLoading = false; - this.enterTimeout = false; - this.controller = new AbortController(); - this.classContainer = this.html; - this.isChrome = navigator.userAgent.indexOf("Chrome") != -1 ? true : false; - this.init(); - } - _createClass2(_default4, [{ - key: "init", - value: function init2() { - var _this = this; - window.addEventListener("popstate", function(e) { - return _this.checkState(e); - }, false); - this.html.addEventListener("click", function(e) { - return _this.checkClick(e); - }, false); - this.loadEls(document); - } - }, { - key: "checkClick", - value: function checkClick(e) { - if (!e.ctrlKey && !e.metaKey) { - var target = e.target; - while (target && target !== document) { - if (target.matches("a") && target.getAttribute("download") == null) { - var href = target.getAttribute("href"); - if (!href.startsWith("#") && !href.startsWith("mailto:") && !href.startsWith("tel:")) { - e.preventDefault(); - this.reset(); - this.getClickOptions(target); - } - break; - } - target = target.parentNode; - } - } - } - }, { - key: "checkState", - value: function checkState() { - if (typeof this.popstateIgnore === "string" && window.location.href.indexOf(this.popstateIgnore) > -1) { - return; - } - this.reset(); - this.getStateOptions(); - } - }, { - key: "reset", - value: function reset() { - if (this.isLoading) { - this.controller.abort(); - this.isLoading = false; - this.controller = new AbortController(); - } - window.clearTimeout(this.enterTimeout); - if (this.isInserted) { - this.removeContainer(); - } - this.classContainer = this.html; - Object.assign(this, this.defaults, this.options); - } - }, { - key: "getClickOptions", - value: function getClickOptions(link) { - this.transition = link.getAttribute("data-" + this.name); - this.isUrl = link.getAttribute("data-" + this.name + "-url"); - var href = link.getAttribute("href"); - var target = link.getAttribute("target"); - if (target == "_blank") { - window.open(href, "_blank"); - return; - } - if (this.transition == "false") { - window.location = href; - return; - } - this.setOptions(href, true); - } - }, { - key: "getStateOptions", - value: function getStateOptions() { - if (this.transitionsHistory) { - this.transition = history.state; - } else { - this.transition = false; - } - var href = window.location.href; - this.setOptions(href); - } - }, { - key: "goTo", - value: function goTo(href, transition, isUrl) { - this.reset(); - this.transition = transition; - this.isUrl = isUrl; - this.setOptions(href, true); - } - }, { - key: "setOptions", - value: function setOptions(href, push) { - var container = "[" + this.container + "]"; - var oldContainer; - if (this.transition && this.transition != "true") { - this.transitionContainer = "[" + this.container + '="' + this.transition + '"]'; - this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass; - this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass; - this.readyClass = this.transitions[this.transition].readyClass || this.readyClass; - this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix; - this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay; - this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay; - this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay; - oldContainer = document.querySelector(this.transitionContainer); - } - if (oldContainer) { - container = this.transitionContainer; - this.oldContainer = oldContainer; - this.classContainer = this.oldContainer.parentNode; - if (!this.subContainer) { - history.replaceState(this.transition, null, this.href); - } - this.subContainer = true; - } else { - this.oldContainer = document.querySelector(container); - if (this.subContainer) { - history.replaceState(this.prevTransition, null, this.href); - } - this.subContainer = false; - } - this.href = href; - this.parentContainer = this.oldContainer.parentNode; - if (this.isUrl === "" || this.isUrl != null && this.isUrl != "false" && this.isUrl != false) { - history.pushState(this.transition, null, href); - } else { - this.oldContainer.classList.add("is-old"); - this.setLoading(); - this.startEnterDelay(); - this.loadHref(href, container, push); - } - } - }, { - key: "setLoading", - value: function setLoading() { - this.classContainer.classList.remove(this.loadedClass, this.readyClass); - this.classContainer.classList.add(this.loadingClass); - this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition); - if (this.transition) { - this.classContainer.classList.add(this.transitionsPrefix + this.transition); - } - if (!this.subContainer) { - this.prevTransition = this.transition; - } - var loadingEvent = new Event(this.namespace + "loading"); - window.dispatchEvent(loadingEvent); - } - }, { - key: "startEnterDelay", - value: function startEnterDelay() { - var _this2 = this; - this.enterTimeout = window.setTimeout(function() { - _this2.isEntered = true; - if (_this2.isLoaded) { - _this2.transitionContainers(); - } - }, this.enterDelay); - } - }, { - key: "loadHref", - value: function loadHref(href, container, push) { - var _this3 = this; - this.isLoading = true; - var signal = this.controller.signal; - fetch(href, { - signal - }).then(function(response) { - return response.text(); - }).then(function(data) { - if (push) { - history.pushState(_this3.transition, null, href); - } - var parser = new DOMParser(); - _this3.data = parser.parseFromString(data, "text/html"); - _this3.newContainer = _this3.data.querySelector(container); - _this3.newContainer.classList.add("is-new"); - _this3.parentNewContainer = _this3.newContainer.parentNode; - _this3.hideContainer(); - _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer); - _this3.isInserted = true; - _this3.setSvgs(); - _this3.isLoaded = true; - if (_this3.isEntered) { - _this3.transitionContainers(); - } - _this3.loadEls(_this3.newContainer); - _this3.isLoading = false; - })["catch"](function(err) { - window.location = href; - }); - } - }, { - key: "transitionContainers", - value: function transitionContainers() { - var _this4 = this; - this.setAttributes(); - this.showContainer(); - this.setLoaded(); - setTimeout(function() { - _this4.removeContainer(); - _this4.setReady(); - }, this.exitDelay); - } - }, { - key: "setSvgs", - value: function setSvgs() { - if (this.isChrome) { - var svgs = this.newContainer.querySelectorAll("use"); - if (svgs.length) { - svgs.forEach(function(svg) { - var xhref = svg.getAttribute("xlink:href"); - if (xhref) { - svg.parentNode.innerHTML = ''; - } else { - var href = svg.getAttribute("href"); - if (href) - svg.parentNode.innerHTML = ''; - } - }); - } - } - } - }, { - key: "setAttributes", - value: function setAttributes() { - var _this5 = this; - var title = this.data.getElementsByTagName("title")[0]; - var newDesc = this.data.head.querySelector('meta[name="description"]'); - var oldDesc = document.head.querySelector('meta[name="description"]'); - var container; - var newContainer; - if (this.subContainer) { - newContainer = this.parentNewContainer; - container = document.querySelector(this.transitionContainer).parentNode; - } else { - newContainer = this.data.querySelector("html"); - container = document.querySelector("html"); - } - var datas = Object.assign({}, newContainer.dataset); - if (title) - document.title = title.innerText; - if (oldDesc && newDesc) - oldDesc.setAttribute("content", newDesc.getAttribute("content")); - if (datas) { - Object.entries(datas).forEach(function(_ref) { - var _ref2 = _slicedToArray2(_ref, 2), key = _ref2[0], val = _ref2[1]; - container.setAttribute("data-" + _this5.toDash(key), val); - }); - } - } - }, { - key: "toDash", - value: function toDash(str) { - return str.split(/(?=[A-Z])/).join("-").toLowerCase(); - } - }, { - key: "hideContainer", - value: function hideContainer() { - this.newContainer.style.visibility = "hidden"; - this.newContainer.style.height = 0; - this.newContainer.style.overflow = "hidden"; - } - }, { - key: "showContainer", - value: function showContainer() { - this.newContainer.style.visibility = ""; - this.newContainer.style.height = ""; - this.newContainer.style.overflow = ""; - } - }, { - key: "loadEls", - value: function loadEls(container) { - var _this6 = this; - var promises = []; - this.loadAttributes.forEach(function(attr) { - var data = "data-" + _this6.name + "-" + attr; - var els = container.querySelectorAll("[" + data + "]"); - if (els.length) { - els.forEach(function(el) { - var elData = el.getAttribute(data); - el.setAttribute(attr, elData); - if (attr == "src" || attr == "srcset") { - var promise = new Promise(function(resolve) { - el.onload = function() { - return resolve(el); - }; - }); - promises.push(promise); - } - }); - } - }); - Promise.all(promises).then(function(val) { - var imagesEvent = new Event(_this6.namespace + "images"); - window.dispatchEvent(imagesEvent); - }); - } - }, { - key: "setLoaded", - value: function setLoaded() { - var _this7 = this; - this.classContainer.classList.remove(this.loadingClass); - setTimeout(function() { - _this7.classContainer.classList.add(_this7.loadedClass); - }, this.loadedDelay); - var loadedEvent = new Event(this.namespace + "loaded"); - window.dispatchEvent(loadedEvent); - } - }, { - key: "removeContainer", - value: function removeContainer() { - this.parentContainer.removeChild(this.oldContainer); - this.newContainer.classList.remove("is-new"); - this.isInserted = false; - } - }, { - key: "setReady", - value: function setReady() { - this.classContainer.classList.add(this.readyClass); - var readyEvent = new Event(this.namespace + "ready"); - window.dispatchEvent(readyEvent); - } - }, { - key: "on", - value: function on(event, func) { - var _this8 = this; - window.addEventListener(this.namespace + event, function() { - switch (event) { - case "loading": - return func(_this8.transition, _this8.oldContainer); - case "loaded": - return func(_this8.transition, _this8.oldContainer, _this8.newContainer); - case "ready": - return func(_this8.transition, _this8.newContainer); - default: - return func(); - } - }, false); - } - }]); - return _default4; - }(); - var main_esm_default2 = _default2; - - // assets/scripts/modules/Load.js - var Load_default = class extends _default { - constructor(m) { - super(m); - } - init() { - const load = new main_esm_default2({ - enterDelay: 0, - transitions: { - customTransition: {} - } - }); - load.on("loaded", (transition, oldContainer, newContainer) => { - this.call("destroy", oldContainer, "app"); - this.call("update", newContainer, "app"); - }); - } - }; - - // assets/scripts/utils/image.js - var LAZY_LOADED_IMAGES = []; - function loadImage(url, options = {}) { - return new Promise((resolve, reject) => { - const $img = new Image(); - if (options.crossOrigin) { - $img.crossOrigin = options.crossOrigin; - } - const loadCallback = () => { - resolve(__spreadValues({ - element: $img - }, getImageMetadata($img))); - }; - if ($img.decode) { - $img.src = url; - $img.decode().then(loadCallback).catch((e) => { - reject(e); - }); - } else { - $img.onload = loadCallback; - $img.onerror = (e) => { - reject(e); - }; - $img.src = url; - } - }); - } - function getImageMetadata($img) { - return { - url: $img.src, - width: $img.naturalWidth, - height: $img.naturalHeight, - ratio: $img.naturalWidth / $img.naturalHeight - }; - } - function lazyLoadImage($el, url, callback) { - return __async(this, null, function* () { - let src2 = url ? url : $el.dataset.src; - let loadedImage = LAZY_LOADED_IMAGES.find((image) => image.url === src2); - if (!loadedImage) { - loadedImage = yield loadImage(src2); - if (!loadedImage.url) { - return; - } - LAZY_LOADED_IMAGES.push(loadedImage); - } - if ($el.src === src2) { - return; - } - if ($el.tagName === "IMG") { - $el.src = loadedImage.url; - } else { - $el.style.backgroundImage = `url(${loadedImage.url})`; - } - requestAnimationFrame(() => { - let lazyParent = $el.closest(".c-lazy"); - if (lazyParent) { - lazyParent.classList.add("-lazy-loaded"); - lazyParent.style.backgroundImage = ""; - } - $el.classList.add("-lazy-loaded"); - callback == null ? void 0 : callback(); - }); - }); - } - - // node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js - function _classCallCheck3(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _defineProperties3(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass3(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties3(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties3(Constructor, staticProps); - return Constructor; - } - function _defineProperty2(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - return keys; - } - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - ownKeys(Object(source), true).forEach(function(key) { - _defineProperty2(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) - _setPrototypeOf(subClass, superClass); - } - function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o2) { - return o2.__proto__ || Object.getPrototypeOf(o2); - }; - return _getPrototypeOf(o); - } - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) { - o2.__proto__ = p2; - return o2; - }; - return _setPrototypeOf(o, p); - } - function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e) { - return false; - } - } - function _assertThisInitialized(self2) { - if (self2 === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self2; - } - function _possibleConstructorReturn(self2, call) { - if (call && (typeof call === "object" || typeof call === "function")) { - return call; - } - return _assertThisInitialized(self2); - } - function _createSuper(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; - } - function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = _getPrototypeOf(object); - if (object === null) - break; - } - return object; - } - function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get; - } else { - _get = function _get2(target2, property2, receiver2) { - var base = _superPropBase(target2, property2); - if (!base) - return; - var desc = Object.getOwnPropertyDescriptor(base, property2); - if (desc.get) { - return desc.get.call(receiver2); - } - return desc.value; - }; - } - return _get(target, property, receiver || target); - } - function _slicedToArray3(arr, i) { - return _arrayWithHoles3(arr) || _iterableToArrayLimit3(arr, i) || _unsupportedIterableToArray3(arr, i) || _nonIterableRest3(); - } - function _toConsumableArray2(arr) { - return _arrayWithoutHoles2(arr) || _iterableToArray2(arr) || _unsupportedIterableToArray3(arr) || _nonIterableSpread2(); - } - function _arrayWithoutHoles2(arr) { - if (Array.isArray(arr)) - return _arrayLikeToArray3(arr); - } - function _arrayWithHoles3(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArray2(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) - return Array.from(iter); - } - function _iterableToArrayLimit3(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) - return; - var _arr = []; - var _n = true; - var _d = false; - var _e = void 0; - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray3(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray3(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray3(o, minLen); - } - function _arrayLikeToArray3(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - function _nonIterableSpread2() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _nonIterableRest3() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var defaults = { - el: document, - name: "scroll", - offset: [0, 0], - repeat: false, - smooth: false, - initPosition: { - x: 0, - y: 0 - }, - direction: "vertical", - gestureDirection: "vertical", - reloadOnContextChange: false, - lerp: 0.1, - "class": "is-inview", - scrollbarContainer: false, - scrollbarClass: "c-scrollbar", - scrollingClass: "has-scroll-scrolling", - draggingClass: "has-scroll-dragging", - smoothClass: "has-scroll-smooth", - initClass: "has-scroll-init", - getSpeed: false, - getDirection: false, - scrollFromAnywhere: false, - multiplier: 1, - firefoxMultiplier: 50, - touchMultiplier: 2, - resetNativeScroll: true, - tablet: { - smooth: false, - direction: "vertical", - gestureDirection: "vertical", - breakpoint: 1024 - }, - smartphone: { - smooth: false, - direction: "vertical", - gestureDirection: "vertical" - } - }; - var _default3 = /* @__PURE__ */ function() { - function _default4() { - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - _classCallCheck3(this, _default4); - Object.assign(this, defaults, options); - this.smartphone = defaults.smartphone; - if (options.smartphone) - Object.assign(this.smartphone, options.smartphone); - this.tablet = defaults.tablet; - if (options.tablet) - Object.assign(this.tablet, options.tablet); - this.namespace = "locomotive"; - this.html = document.documentElement; - this.windowHeight = window.innerHeight; - this.windowWidth = window.innerWidth; - this.windowMiddle = { - x: this.windowWidth / 2, - y: this.windowHeight / 2 - }; - this.els = {}; - this.currentElements = {}; - this.listeners = {}; - this.hasScrollTicking = false; - this.hasCallEventSet = false; - this.checkScroll = this.checkScroll.bind(this); - this.checkResize = this.checkResize.bind(this); - this.checkEvent = this.checkEvent.bind(this); - this.instance = { - scroll: { - x: 0, - y: 0 - }, - limit: { - x: this.html.offsetWidth, - y: this.html.offsetHeight - }, - currentElements: this.currentElements - }; - if (this.isMobile) { - if (this.isTablet) { - this.context = "tablet"; - } else { - this.context = "smartphone"; - } - } else { - this.context = "desktop"; - } - if (this.isMobile) - this.direction = this[this.context].direction; - if (this.direction === "horizontal") { - this.directionAxis = "x"; - } else { - this.directionAxis = "y"; - } - if (this.getDirection) { - this.instance.direction = null; - } - if (this.getDirection) { - this.instance.speed = 0; - } - this.html.classList.add(this.initClass); - window.addEventListener("resize", this.checkResize, false); - } - _createClass3(_default4, [{ - key: "init", - value: function init2() { - this.initEvents(); - } - }, { - key: "checkScroll", - value: function checkScroll() { - this.dispatchScroll(); - } - }, { - key: "checkResize", - value: function checkResize() { - var _this = this; - if (!this.resizeTick) { - this.resizeTick = true; - requestAnimationFrame(function() { - _this.resize(); - _this.resizeTick = false; - }); - } - } - }, { - key: "resize", - value: function resize() { - } - }, { - key: "checkContext", - value: function checkContext() { - if (!this.reloadOnContextChange) - return; - this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1 || this.windowWidth < this.tablet.breakpoint; - this.isTablet = this.isMobile && this.windowWidth >= this.tablet.breakpoint; - var oldContext = this.context; - if (this.isMobile) { - if (this.isTablet) { - this.context = "tablet"; - } else { - this.context = "smartphone"; - } - } else { - this.context = "desktop"; - } - if (oldContext != this.context) { - var oldSmooth = oldContext == "desktop" ? this.smooth : this[oldContext].smooth; - var newSmooth = this.context == "desktop" ? this.smooth : this[this.context].smooth; - if (oldSmooth != newSmooth) - window.location.reload(); - } - } - }, { - key: "initEvents", - value: function initEvents() { - var _this2 = this; - this.scrollToEls = this.el.querySelectorAll("[data-".concat(this.name, "-to]")); - this.setScrollTo = this.setScrollTo.bind(this); - this.scrollToEls.forEach(function(el) { - el.addEventListener("click", _this2.setScrollTo, false); - }); - } - }, { - key: "setScrollTo", - value: function setScrollTo(event) { - event.preventDefault(); - this.scrollTo(event.currentTarget.getAttribute("data-".concat(this.name, "-href")) || event.currentTarget.getAttribute("href"), { - offset: event.currentTarget.getAttribute("data-".concat(this.name, "-offset")) - }); - } - }, { - key: "addElements", - value: function addElements() { - } - }, { - key: "detectElements", - value: function detectElements(hasCallEventSet) { - var _this3 = this; - var scrollTop = this.instance.scroll.y; - var scrollBottom = scrollTop + this.windowHeight; - var scrollLeft = this.instance.scroll.x; - var scrollRight = scrollLeft + this.windowWidth; - Object.entries(this.els).forEach(function(_ref) { - var _ref2 = _slicedToArray3(_ref, 2), i = _ref2[0], el = _ref2[1]; - if (el && (!el.inView || hasCallEventSet)) { - if (_this3.direction === "horizontal") { - if (scrollRight >= el.left && scrollLeft < el.right) { - _this3.setInView(el, i); - } - } else { - if (scrollBottom >= el.top && scrollTop < el.bottom) { - _this3.setInView(el, i); - } - } - } - if (el && el.inView) { - if (_this3.direction === "horizontal") { - var width = el.right - el.left; - el.progress = (_this3.instance.scroll.x - (el.left - _this3.windowWidth)) / (width + _this3.windowWidth); - if (scrollRight < el.left || scrollLeft > el.right) { - _this3.setOutOfView(el, i); - } - } else { - var height = el.bottom - el.top; - el.progress = (_this3.instance.scroll.y - (el.top - _this3.windowHeight)) / (height + _this3.windowHeight); - if (scrollBottom < el.top || scrollTop > el.bottom) { - _this3.setOutOfView(el, i); - } - } - } - }); - this.hasScrollTicking = false; - } - }, { - key: "setInView", - value: function setInView(current, i) { - this.els[i].inView = true; - current.el.classList.add(current["class"]); - this.currentElements[i] = current; - if (current.call && this.hasCallEventSet) { - this.dispatchCall(current, "enter"); - if (!current.repeat) { - this.els[i].call = false; - } - } - } - }, { - key: "setOutOfView", - value: function setOutOfView(current, i) { - var _this4 = this; - this.els[i].inView = false; - Object.keys(this.currentElements).forEach(function(el) { - el === i && delete _this4.currentElements[el]; - }); - if (current.call && this.hasCallEventSet) { - this.dispatchCall(current, "exit"); - } - if (current.repeat) { - current.el.classList.remove(current["class"]); - } - } - }, { - key: "dispatchCall", - value: function dispatchCall(current, way) { - this.callWay = way; - this.callValue = current.call.split(",").map(function(item) { - return item.trim(); - }); - this.callObj = current; - if (this.callValue.length == 1) - this.callValue = this.callValue[0]; - var callEvent = new Event(this.namespace + "call"); - this.el.dispatchEvent(callEvent); - } - }, { - key: "dispatchScroll", - value: function dispatchScroll() { - var scrollEvent = new Event(this.namespace + "scroll"); - this.el.dispatchEvent(scrollEvent); - } - }, { - key: "setEvents", - value: function setEvents(event, func) { - if (!this.listeners[event]) { - this.listeners[event] = []; - } - var list = this.listeners[event]; - list.push(func); - if (list.length === 1) { - this.el.addEventListener(this.namespace + event, this.checkEvent, false); - } - if (event === "call") { - this.hasCallEventSet = true; - this.detectElements(true); - } - } - }, { - key: "unsetEvents", - value: function unsetEvents(event, func) { - if (!this.listeners[event]) - return; - var list = this.listeners[event]; - var index = list.indexOf(func); - if (index < 0) - return; - list.splice(index, 1); - if (list.index === 0) { - this.el.removeEventListener(this.namespace + event, this.checkEvent, false); - } - } - }, { - key: "checkEvent", - value: function checkEvent(event) { - var _this5 = this; - var name = event.type.replace(this.namespace, ""); - var list = this.listeners[name]; - if (!list || list.length === 0) - return; - list.forEach(function(func) { - switch (name) { - case "scroll": - return func(_this5.instance); - case "call": - return func(_this5.callValue, _this5.callWay, _this5.callObj); - default: - return func(); - } - }); - } - }, { - key: "startScroll", - value: function startScroll() { - } - }, { - key: "stopScroll", - value: function stopScroll() { - } - }, { - key: "setScroll", - value: function setScroll(x, y) { - this.instance.scroll = { - x: 0, - y: 0 - }; - } - }, { - key: "destroy", - value: function destroy() { - var _this6 = this; - window.removeEventListener("resize", this.checkResize, false); - Object.keys(this.listeners).forEach(function(event) { - _this6.el.removeEventListener(_this6.namespace + event, _this6.checkEvent, false); - }); - this.listeners = {}; - this.scrollToEls.forEach(function(el) { - el.removeEventListener("click", _this6.setScrollTo, false); - }); - this.html.classList.remove(this.initClass); - } - }]); - return _default4; - }(); - var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - var smoothscroll = createCommonjsModule(function(module, exports) { - (function() { - function polyfill() { - var w = window; - var d = document; - if ("scrollBehavior" in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) { - return; - } - var Element = w.HTMLElement || w.Element; - var SCROLL_TIME = 468; - var original = { - scroll: w.scroll || w.scrollTo, - scrollBy: w.scrollBy, - elementScroll: Element.prototype.scroll || scrollElement, - scrollIntoView: Element.prototype.scrollIntoView - }; - var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now; - function isMicrosoftBrowser(userAgent) { - var userAgentPatterns = ["MSIE ", "Trident/", "Edge/"]; - return new RegExp(userAgentPatterns.join("|")).test(userAgent); - } - var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0; - function scrollElement(x, y) { - this.scrollLeft = x; - this.scrollTop = y; - } - function ease(k) { - return 0.5 * (1 - Math.cos(Math.PI * k)); - } - function shouldBailOut(firstArg) { - if (firstArg === null || typeof firstArg !== "object" || firstArg.behavior === void 0 || firstArg.behavior === "auto" || firstArg.behavior === "instant") { - return true; - } - if (typeof firstArg === "object" && firstArg.behavior === "smooth") { - return false; - } - throw new TypeError("behavior member of ScrollOptions " + firstArg.behavior + " is not a valid value for enumeration ScrollBehavior."); - } - function hasScrollableSpace(el, axis) { - if (axis === "Y") { - return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight; - } - if (axis === "X") { - return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth; - } - } - function canOverflow(el, axis) { - var overflowValue = w.getComputedStyle(el, null)["overflow" + axis]; - return overflowValue === "auto" || overflowValue === "scroll"; - } - function isScrollable(el) { - var isScrollableY = hasScrollableSpace(el, "Y") && canOverflow(el, "Y"); - var isScrollableX = hasScrollableSpace(el, "X") && canOverflow(el, "X"); - return isScrollableY || isScrollableX; - } - function findScrollableParent(el) { - while (el !== d.body && isScrollable(el) === false) { - el = el.parentNode || el.host; - } - return el; - } - function step(context) { - var time = now(); - var value; - var currentX; - var currentY; - var elapsed = (time - context.startTime) / SCROLL_TIME; - elapsed = elapsed > 1 ? 1 : elapsed; - value = ease(elapsed); - currentX = context.startX + (context.x - context.startX) * value; - currentY = context.startY + (context.y - context.startY) * value; - context.method.call(context.scrollable, currentX, currentY); - if (currentX !== context.x || currentY !== context.y) { - w.requestAnimationFrame(step.bind(w, context)); - } - } - function smoothScroll(el, x, y) { - var scrollable; - var startX; - var startY; - var method; - var startTime = now(); - if (el === d.body) { - scrollable = w; - startX = w.scrollX || w.pageXOffset; - startY = w.scrollY || w.pageYOffset; - method = original.scroll; - } else { - scrollable = el; - startX = el.scrollLeft; - startY = el.scrollTop; - method = scrollElement; - } - step({ - scrollable, - method, - startTime, - startX, - startY, - x, - y - }); - } - w.scroll = w.scrollTo = function() { - if (arguments[0] === void 0) { - return; - } - if (shouldBailOut(arguments[0]) === true) { - original.scroll.call(w, arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== "object" ? arguments[0] : w.scrollX || w.pageXOffset, arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : w.scrollY || w.pageYOffset); - return; - } - smoothScroll.call(w, d.body, arguments[0].left !== void 0 ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== void 0 ? ~~arguments[0].top : w.scrollY || w.pageYOffset); - }; - w.scrollBy = function() { - if (arguments[0] === void 0) { - return; - } - if (shouldBailOut(arguments[0])) { - original.scrollBy.call(w, arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== "object" ? arguments[0] : 0, arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0); - return; - } - smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset)); - }; - Element.prototype.scroll = Element.prototype.scrollTo = function() { - if (arguments[0] === void 0) { - return; - } - if (shouldBailOut(arguments[0]) === true) { - if (typeof arguments[0] === "number" && arguments[1] === void 0) { - throw new SyntaxError("Value could not be converted"); - } - original.elementScroll.call(this, arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] !== "object" ? ~~arguments[0] : this.scrollLeft, arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop); - return; - } - var left = arguments[0].left; - var top = arguments[0].top; - smoothScroll.call(this, this, typeof left === "undefined" ? this.scrollLeft : ~~left, typeof top === "undefined" ? this.scrollTop : ~~top); - }; - Element.prototype.scrollBy = function() { - if (arguments[0] === void 0) { - return; - } - if (shouldBailOut(arguments[0]) === true) { - original.elementScroll.call(this, arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop); - return; - } - this.scroll({ - left: ~~arguments[0].left + this.scrollLeft, - top: ~~arguments[0].top + this.scrollTop, - behavior: arguments[0].behavior - }); - }; - Element.prototype.scrollIntoView = function() { - if (shouldBailOut(arguments[0]) === true) { - original.scrollIntoView.call(this, arguments[0] === void 0 ? true : arguments[0]); - return; - } - var scrollableParent = findScrollableParent(this); - var parentRects = scrollableParent.getBoundingClientRect(); - var clientRects = this.getBoundingClientRect(); - if (scrollableParent !== d.body) { - smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top); - if (w.getComputedStyle(scrollableParent).position !== "fixed") { - w.scrollBy({ - left: parentRects.left, - top: parentRects.top, - behavior: "smooth" - }); - } - } else { - w.scrollBy({ - left: clientRects.left, - top: clientRects.top, - behavior: "smooth" - }); - } - }; - } - { - module.exports = { polyfill }; - } - })(); - }); - var smoothscroll_1 = smoothscroll.polyfill; - var _default$12 = /* @__PURE__ */ function(_Core) { - _inherits(_default4, _Core); - var _super = _createSuper(_default4); - function _default4() { - var _this; - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - _classCallCheck3(this, _default4); - _this = _super.call(this, options); - if (_this.resetNativeScroll) { - if (history.scrollRestoration) { - history.scrollRestoration = "manual"; - } - window.scrollTo(0, 0); - } - window.addEventListener("scroll", _this.checkScroll, false); - if (window.smoothscrollPolyfill === void 0) { - window.smoothscrollPolyfill = smoothscroll; - window.smoothscrollPolyfill.polyfill(); - } - return _this; - } - _createClass3(_default4, [{ - key: "init", - value: function init2() { - this.instance.scroll.y = window.pageYOffset; - this.addElements(); - this.detectElements(); - _get(_getPrototypeOf(_default4.prototype), "init", this).call(this); - } - }, { - key: "checkScroll", - value: function checkScroll() { - var _this2 = this; - _get(_getPrototypeOf(_default4.prototype), "checkScroll", this).call(this); - if (this.getDirection) { - this.addDirection(); - } - if (this.getSpeed) { - this.addSpeed(); - this.speedTs = Date.now(); - } - this.instance.scroll.y = window.pageYOffset; - if (Object.entries(this.els).length) { - if (!this.hasScrollTicking) { - requestAnimationFrame(function() { - _this2.detectElements(); - }); - this.hasScrollTicking = true; - } - } - } - }, { - key: "addDirection", - value: function addDirection() { - if (window.pageYOffset > this.instance.scroll.y) { - if (this.instance.direction !== "down") { - this.instance.direction = "down"; - } - } else if (window.pageYOffset < this.instance.scroll.y) { - if (this.instance.direction !== "up") { - this.instance.direction = "up"; - } - } - } - }, { - key: "addSpeed", - value: function addSpeed() { - if (window.pageYOffset != this.instance.scroll.y) { - this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / Math.max(1, Date.now() - this.speedTs); - } else { - this.instance.speed = 0; - } - } - }, { - key: "resize", - value: function resize() { - if (Object.entries(this.els).length) { - this.windowHeight = window.innerHeight; - this.updateElements(); - } - } - }, { - key: "addElements", - value: function addElements() { - var _this3 = this; - this.els = {}; - var els = this.el.querySelectorAll("[data-" + this.name + "]"); - els.forEach(function(el, index) { - var BCR = el.getBoundingClientRect(); - var cl = el.dataset[_this3.name + "Class"] || _this3["class"]; - var id = typeof el.dataset[_this3.name + "Id"] === "string" ? el.dataset[_this3.name + "Id"] : index; - var top; - var left; - var offset = typeof el.dataset[_this3.name + "Offset"] === "string" ? el.dataset[_this3.name + "Offset"].split(",") : _this3.offset; - var repeat = el.dataset[_this3.name + "Repeat"]; - var call = el.dataset[_this3.name + "Call"]; - var target = el.dataset[_this3.name + "Target"]; - var targetEl; - if (target !== void 0) { - targetEl = document.querySelector("".concat(target)); - } else { - targetEl = el; - } - var targetElBCR = targetEl.getBoundingClientRect(); - top = targetElBCR.top + _this3.instance.scroll.y; - left = targetElBCR.left + _this3.instance.scroll.x; - var bottom = top + targetEl.offsetHeight; - var right = left + targetEl.offsetWidth; - if (repeat == "false") { - repeat = false; - } else if (repeat != void 0) { - repeat = true; - } else { - repeat = _this3.repeat; - } - var relativeOffset = _this3.getRelativeOffset(offset); - top = top + relativeOffset[0]; - bottom = bottom - relativeOffset[1]; - var mappedEl = { - el, - targetEl, - id, - "class": cl, - top, - bottom, - left, - right, - offset, - progress: 0, - repeat, - inView: false, - call - }; - _this3.els[id] = mappedEl; - if (el.classList.contains(cl)) { - _this3.setInView(_this3.els[id], id); - } - }); - } - }, { - key: "updateElements", - value: function updateElements() { - var _this4 = this; - Object.entries(this.els).forEach(function(_ref) { - var _ref2 = _slicedToArray3(_ref, 2), i = _ref2[0], el = _ref2[1]; - var top = el.targetEl.getBoundingClientRect().top + _this4.instance.scroll.y; - var bottom = top + el.targetEl.offsetHeight; - var relativeOffset = _this4.getRelativeOffset(el.offset); - _this4.els[i].top = top + relativeOffset[0]; - _this4.els[i].bottom = bottom - relativeOffset[1]; - }); - this.hasScrollTicking = false; - } - }, { - key: "getRelativeOffset", - value: function getRelativeOffset(offset) { - var relativeOffset = [0, 0]; - if (offset) { - for (var i = 0; i < offset.length; i++) { - if (typeof offset[i] == "string") { - if (offset[i].includes("%")) { - relativeOffset[i] = parseInt(offset[i].replace("%", "") * this.windowHeight / 100); - } else { - relativeOffset[i] = parseInt(offset[i]); - } - } else { - relativeOffset[i] = offset[i]; - } - } - } - return relativeOffset; - } - }, { - key: "scrollTo", - value: function scrollTo(target) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - var offset = parseInt(options.offset) || 0; - var callback = options.callback ? options.callback : false; - if (typeof target === "string") { - if (target === "top") { - target = this.html; - } else if (target === "bottom") { - target = this.html.offsetHeight - window.innerHeight; - } else { - target = document.querySelector(target); - if (!target) { - return; - } - } - } else if (typeof target === "number") { - target = parseInt(target); - } else if (target && target.tagName) - ; - else { - console.warn("`target` parameter is not valid"); - return; - } - if (typeof target !== "number") { - offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y; - } else { - offset = target + offset; - } - var isTargetReached = function isTargetReached2() { - return parseInt(window.pageYOffset) === parseInt(offset); - }; - if (callback) { - if (isTargetReached()) { - callback(); - return; - } else { - var onScroll = function onScroll2() { - if (isTargetReached()) { - window.removeEventListener("scroll", onScroll2); - callback(); - } - }; - window.addEventListener("scroll", onScroll); - } - } - window.scrollTo({ - top: offset, - behavior: options.duration === 0 ? "auto" : "smooth" - }); - } - }, { - key: "update", - value: function update() { - this.addElements(); - this.detectElements(); - } - }, { - key: "destroy", - value: function destroy() { - _get(_getPrototypeOf(_default4.prototype), "destroy", this).call(this); - window.removeEventListener("scroll", this.checkScroll, false); - } - }]); - return _default4; - }(_default3); - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - function toObject(val) { - if (val === null || val === void 0) { - throw new TypeError("Object.assign cannot be called with null or undefined"); - } - return Object(val); - } - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - var test1 = new String("abc"); - test1[5] = "de"; - if (Object.getOwnPropertyNames(test1)[0] === "5") { - return false; - } - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2["_" + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function(n) { - return test2[n]; - }); - if (order2.join("") !== "0123456789") { - return false; - } - var test3 = {}; - "abcdefghijklmnopqrst".split("").forEach(function(letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { - return false; - } - return true; - } catch (err) { - return false; - } - } - var objectAssign = shouldUseNative() ? Object.assign : function(target, source) { - var from; - var to = toObject(target); - var symbols; - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - return to; - }; - function E() { - } - E.prototype = { - on: function(name, callback, ctx) { - var e = this.e || (this.e = {}); - (e[name] || (e[name] = [])).push({ - fn: callback, - ctx - }); - return this; - }, - once: function(name, callback, ctx) { - var self2 = this; - function listener() { - self2.off(name, listener); - callback.apply(ctx, arguments); - } - listener._ = callback; - return this.on(name, listener, ctx); - }, - emit: function(name) { - var data = [].slice.call(arguments, 1); - var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); - var i = 0; - var len = evtArr.length; - for (i; i < len; i++) { - evtArr[i].fn.apply(evtArr[i].ctx, data); - } - return this; - }, - off: function(name, callback) { - var e = this.e || (this.e = {}); - var evts = e[name]; - var liveEvents = []; - if (evts && callback) { - for (var i = 0, len = evts.length; i < len; i++) { - if (evts[i].fn !== callback && evts[i].fn._ !== callback) - liveEvents.push(evts[i]); - } - } - liveEvents.length ? e[name] = liveEvents : delete e[name]; - return this; - } - }; - var tinyEmitter = E; - var lethargy = createCommonjsModule(function(module, exports) { - (function() { - var root; - root = exports !== null ? exports : this; - root.Lethargy = function() { - function Lethargy2(stability, sensitivity, tolerance, delay) { - this.stability = stability != null ? Math.abs(stability) : 8; - this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100; - this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1; - this.delay = delay != null ? delay : 150; - this.lastUpDeltas = function() { - var i, ref, results; - results = []; - for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { - results.push(null); - } - return results; - }.call(this); - this.lastDownDeltas = function() { - var i, ref, results; - results = []; - for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { - results.push(null); - } - return results; - }.call(this); - this.deltasTimestamp = function() { - var i, ref, results; - results = []; - for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { - results.push(null); - } - return results; - }.call(this); - } - Lethargy2.prototype.check = function(e) { - var lastDelta; - e = e.originalEvent || e; - if (e.wheelDelta != null) { - lastDelta = e.wheelDelta; - } else if (e.deltaY != null) { - lastDelta = e.deltaY * -40; - } else if (e.detail != null || e.detail === 0) { - lastDelta = e.detail * -40; - } - this.deltasTimestamp.push(Date.now()); - this.deltasTimestamp.shift(); - if (lastDelta > 0) { - this.lastUpDeltas.push(lastDelta); - this.lastUpDeltas.shift(); - return this.isInertia(1); - } else { - this.lastDownDeltas.push(lastDelta); - this.lastDownDeltas.shift(); - return this.isInertia(-1); - } - }; - Lethargy2.prototype.isInertia = function(direction) { - var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum; - lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas; - if (lastDeltas[0] === null) { - return direction; - } - if (this.deltasTimestamp[this.stability * 2 - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[this.stability * 2 - 1]) { - return false; - } - lastDeltasOld = lastDeltas.slice(0, this.stability); - lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2); - oldSum = lastDeltasOld.reduce(function(t, s) { - return t + s; - }); - newSum = lastDeltasNew.reduce(function(t, s) { - return t + s; - }); - oldAverage = oldSum / lastDeltasOld.length; - newAverage = newSum / lastDeltasNew.length; - if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && this.sensitivity < Math.abs(newAverage)) { - return direction; - } else { - return false; - } - }; - Lethargy2.prototype.showLastUpDeltas = function() { - return this.lastUpDeltas; - }; - Lethargy2.prototype.showLastDownDeltas = function() { - return this.lastDownDeltas; - }; - return Lethargy2; - }(); - }).call(commonjsGlobal); - }); - var support = function getSupport() { - return { - hasWheelEvent: "onwheel" in document, - hasMouseWheelEvent: "onmousewheel" in document, - hasTouch: "ontouchstart" in window || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch, - hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1, - hasPointer: !!window.navigator.msPointerEnabled, - hasKeyDown: "onkeydown" in document, - isFirefox: navigator.userAgent.indexOf("Firefox") > -1 - }; - }(); - var toString = Object.prototype.toString; - var hasOwnProperty$1 = Object.prototype.hasOwnProperty; - var bindallStandalone = function(object) { - if (!object) - return console.warn("bindAll requires at least one argument."); - var functions = Array.prototype.slice.call(arguments, 1); - if (functions.length === 0) { - for (var method in object) { - if (hasOwnProperty$1.call(object, method)) { - if (typeof object[method] == "function" && toString.call(object[method]) == "[object Function]") { - functions.push(method); - } - } - } - } - for (var i = 0; i < functions.length; i++) { - var f = functions[i]; - object[f] = bind(object[f], object); - } - }; - function bind(func, context) { - return function() { - return func.apply(context, arguments); - }; - } - var Lethargy = lethargy.Lethargy; - var EVT_ID = "virtualscroll"; - var src = VirtualScroll; - var keyCodes = { - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - SPACE: 32 - }; - function VirtualScroll(options) { - bindallStandalone(this, "_onWheel", "_onMouseWheel", "_onTouchStart", "_onTouchMove", "_onKeyDown"); - this.el = window; - if (options && options.el) { - this.el = options.el; - delete options.el; - } - this.options = objectAssign({ - mouseMultiplier: 1, - touchMultiplier: 2, - firefoxMultiplier: 15, - keyStep: 120, - preventTouch: false, - unpreventTouchClass: "vs-touchmove-allowed", - limitInertia: false, - useKeyboard: true, - useTouch: true - }, options); - if (this.options.limitInertia) - this._lethargy = new Lethargy(); - this._emitter = new tinyEmitter(); - this._event = { - y: 0, - x: 0, - deltaX: 0, - deltaY: 0 - }; - this.touchStartX = null; - this.touchStartY = null; - this.bodyTouchAction = null; - if (this.options.passive !== void 0) { - this.listenerOptions = { passive: this.options.passive }; - } - } - VirtualScroll.prototype._notify = function(e) { - var evt = this._event; - evt.x += evt.deltaX; - evt.y += evt.deltaY; - this._emitter.emit(EVT_ID, { - x: evt.x, - y: evt.y, - deltaX: evt.deltaX, - deltaY: evt.deltaY, - originalEvent: e - }); - }; - VirtualScroll.prototype._onWheel = function(e) { - var options = this.options; - if (this._lethargy && this._lethargy.check(e) === false) - return; - var evt = this._event; - evt.deltaX = e.wheelDeltaX || e.deltaX * -1; - evt.deltaY = e.wheelDeltaY || e.deltaY * -1; - if (support.isFirefox && e.deltaMode == 1) { - evt.deltaX *= options.firefoxMultiplier; - evt.deltaY *= options.firefoxMultiplier; - } - evt.deltaX *= options.mouseMultiplier; - evt.deltaY *= options.mouseMultiplier; - this._notify(e); - }; - VirtualScroll.prototype._onMouseWheel = function(e) { - if (this.options.limitInertia && this._lethargy.check(e) === false) - return; - var evt = this._event; - evt.deltaX = e.wheelDeltaX ? e.wheelDeltaX : 0; - evt.deltaY = e.wheelDeltaY ? e.wheelDeltaY : e.wheelDelta; - this._notify(e); - }; - VirtualScroll.prototype._onTouchStart = function(e) { - var t = e.targetTouches ? e.targetTouches[0] : e; - this.touchStartX = t.pageX; - this.touchStartY = t.pageY; - }; - VirtualScroll.prototype._onTouchMove = function(e) { - var options = this.options; - if (options.preventTouch && !e.target.classList.contains(options.unpreventTouchClass)) { - e.preventDefault(); - } - var evt = this._event; - var t = e.targetTouches ? e.targetTouches[0] : e; - evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier; - evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier; - this.touchStartX = t.pageX; - this.touchStartY = t.pageY; - this._notify(e); - }; - VirtualScroll.prototype._onKeyDown = function(e) { - var evt = this._event; - evt.deltaX = evt.deltaY = 0; - var windowHeight = window.innerHeight - 40; - switch (e.keyCode) { - case keyCodes.LEFT: - case keyCodes.UP: - evt.deltaY = this.options.keyStep; - break; - case keyCodes.RIGHT: - case keyCodes.DOWN: - evt.deltaY = -this.options.keyStep; - break; - case e.shiftKey: - evt.deltaY = windowHeight; - break; - case keyCodes.SPACE: - evt.deltaY = -windowHeight; - break; - default: - return; - } - this._notify(e); - }; - VirtualScroll.prototype._bind = function() { - if (support.hasWheelEvent) - this.el.addEventListener("wheel", this._onWheel, this.listenerOptions); - if (support.hasMouseWheelEvent) - this.el.addEventListener("mousewheel", this._onMouseWheel, this.listenerOptions); - if (support.hasTouch && this.options.useTouch) { - this.el.addEventListener("touchstart", this._onTouchStart, this.listenerOptions); - this.el.addEventListener("touchmove", this._onTouchMove, this.listenerOptions); - } - if (support.hasPointer && support.hasTouchWin) { - this.bodyTouchAction = document.body.style.msTouchAction; - document.body.style.msTouchAction = "none"; - this.el.addEventListener("MSPointerDown", this._onTouchStart, true); - this.el.addEventListener("MSPointerMove", this._onTouchMove, true); - } - if (support.hasKeyDown && this.options.useKeyboard) - document.addEventListener("keydown", this._onKeyDown); - }; - VirtualScroll.prototype._unbind = function() { - if (support.hasWheelEvent) - this.el.removeEventListener("wheel", this._onWheel); - if (support.hasMouseWheelEvent) - this.el.removeEventListener("mousewheel", this._onMouseWheel); - if (support.hasTouch) { - this.el.removeEventListener("touchstart", this._onTouchStart); - this.el.removeEventListener("touchmove", this._onTouchMove); - } - if (support.hasPointer && support.hasTouchWin) { - document.body.style.msTouchAction = this.bodyTouchAction; - this.el.removeEventListener("MSPointerDown", this._onTouchStart, true); - this.el.removeEventListener("MSPointerMove", this._onTouchMove, true); - } - if (support.hasKeyDown && this.options.useKeyboard) - document.removeEventListener("keydown", this._onKeyDown); - }; - VirtualScroll.prototype.on = function(cb, ctx) { - this._emitter.on(EVT_ID, cb, ctx); - var events = this._emitter.e; - if (events && events[EVT_ID] && events[EVT_ID].length === 1) - this._bind(); - }; - VirtualScroll.prototype.off = function(cb, ctx) { - this._emitter.off(EVT_ID, cb, ctx); - var events = this._emitter.e; - if (!events[EVT_ID] || events[EVT_ID].length <= 0) - this._unbind(); - }; - VirtualScroll.prototype.reset = function() { - var evt = this._event; - evt.x = 0; - evt.y = 0; - }; - VirtualScroll.prototype.destroy = function() { - this._emitter.off(); - this._unbind(); - }; - function lerp(start, end, amt) { - return (1 - amt) * start + amt * end; - } - function getTranslate(el) { - var translate = {}; - if (!window.getComputedStyle) - return; - var style = getComputedStyle(el); - var transform = style.transform || style.webkitTransform || style.mozTransform; - var mat = transform.match(/^matrix3d\((.+)\)$/); - if (mat) { - translate.x = mat ? parseFloat(mat[1].split(", ")[12]) : 0; - translate.y = mat ? parseFloat(mat[1].split(", ")[13]) : 0; - } else { - mat = transform.match(/^matrix\((.+)\)$/); - translate.x = mat ? parseFloat(mat[1].split(", ")[4]) : 0; - translate.y = mat ? parseFloat(mat[1].split(", ")[5]) : 0; - } - return translate; - } - function getParents(elem) { - var parents = []; - for (; elem && elem !== document; elem = elem.parentNode) { - parents.push(elem); - } - return parents; - } - var NEWTON_ITERATIONS = 4; - var NEWTON_MIN_SLOPE = 1e-3; - var SUBDIVISION_PRECISION = 1e-7; - var SUBDIVISION_MAX_ITERATIONS = 10; - var kSplineTableSize = 11; - var kSampleStepSize = 1 / (kSplineTableSize - 1); - var float32ArraySupported = typeof Float32Array === "function"; - function A(aA1, aA2) { - return 1 - 3 * aA2 + 3 * aA1; - } - function B(aA1, aA2) { - return 3 * aA2 - 6 * aA1; - } - function C(aA1) { - return 3 * aA1; - } - function calcBezier(aT, aA1, aA2) { - return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; - } - function getSlope(aT, aA1, aA2) { - return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1); - } - function binarySubdivide(aX, aA, aB, mX1, mX2) { - var currentX, currentT, i = 0; - do { - currentT = aA + (aB - aA) / 2; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 0) { - aB = currentT; - } else { - aA = currentT; - } - } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); - return currentT; - } - function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) { - for (var i = 0; i < NEWTON_ITERATIONS; ++i) { - var currentSlope = getSlope(aGuessT, mX1, mX2); - if (currentSlope === 0) { - return aGuessT; - } - var currentX = calcBezier(aGuessT, mX1, mX2) - aX; - aGuessT -= currentX / currentSlope; - } - return aGuessT; - } - function LinearEasing(x) { - return x; - } - var src$1 = function bezier(mX1, mY1, mX2, mY2) { - if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { - throw new Error("bezier x values must be in [0, 1] range"); - } - if (mX1 === mY1 && mX2 === mY2) { - return LinearEasing; - } - var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); - for (var i = 0; i < kSplineTableSize; ++i) { - sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); - } - function getTForX(aX) { - var intervalStart = 0; - var currentSample = 1; - var lastSample = kSplineTableSize - 1; - for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - --currentSample; - var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); - var guessForT = intervalStart + dist * kSampleStepSize; - var initialSlope = getSlope(guessForT, mX1, mX2); - if (initialSlope >= NEWTON_MIN_SLOPE) { - return newtonRaphsonIterate(aX, guessForT, mX1, mX2); - } else if (initialSlope === 0) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); - } - } - return function BezierEasing(x) { - if (x === 0) { - return 0; - } - if (x === 1) { - return 1; - } - return calcBezier(getTForX(x), mY1, mY2); - }; - }; - var keyCodes$1 = { - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - SPACE: 32, - TAB: 9, - PAGEUP: 33, - PAGEDOWN: 34, - HOME: 36, - END: 35 - }; - var _default$2 = /* @__PURE__ */ function(_Core) { - _inherits(_default4, _Core); - var _super = _createSuper(_default4); - function _default4() { - var _this; - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - _classCallCheck3(this, _default4); - if (history.scrollRestoration) { - history.scrollRestoration = "manual"; - } - window.scrollTo(0, 0); - _this = _super.call(this, options); - if (_this.inertia) - _this.lerp = _this.inertia * 0.1; - _this.isScrolling = false; - _this.isDraggingScrollbar = false; - _this.isTicking = false; - _this.hasScrollTicking = false; - _this.parallaxElements = {}; - _this.stop = false; - _this.scrollbarContainer = options.scrollbarContainer; - _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this)); - window.addEventListener("keydown", _this.checkKey, false); - return _this; - } - _createClass3(_default4, [{ - key: "init", - value: function init2() { - var _this2 = this; - this.html.classList.add(this.smoothClass); - this.html.setAttribute("data-".concat(this.name, "-direction"), this.direction); - this.instance = _objectSpread2({ - delta: { - x: this.initPosition.x, - y: this.initPosition.y - }, - scroll: { - x: this.initPosition.x, - y: this.initPosition.y - } - }, this.instance); - this.vs = new src({ - el: this.scrollFromAnywhere ? document : this.el, - mouseMultiplier: navigator.platform.indexOf("Win") > -1 ? 1 : 0.4, - firefoxMultiplier: this.firefoxMultiplier, - touchMultiplier: this.touchMultiplier, - useKeyboard: false, - passive: true - }); - this.vs.on(function(e) { - if (_this2.stop) { - return; - } - if (!_this2.isDraggingScrollbar) { - requestAnimationFrame(function() { - _this2.updateDelta(e); - if (!_this2.isScrolling) - _this2.startScrolling(); - }); - } - }); - this.setScrollLimit(); - this.initScrollBar(); - this.addSections(); - this.addElements(); - this.checkScroll(true); - this.transformElements(true, true); - _get(_getPrototypeOf(_default4.prototype), "init", this).call(this); - } - }, { - key: "setScrollLimit", - value: function setScrollLimit() { - this.instance.limit.y = this.el.offsetHeight - this.windowHeight; - if (this.direction === "horizontal") { - var totalWidth = 0; - var nodes = this.el.children; - for (var i = 0; i < nodes.length; i++) { - totalWidth += nodes[i].offsetWidth; - } - this.instance.limit.x = totalWidth - this.windowWidth; - } - } - }, { - key: "startScrolling", - value: function startScrolling() { - this.startScrollTs = Date.now(); - this.isScrolling = true; - this.checkScroll(); - this.html.classList.add(this.scrollingClass); - } - }, { - key: "stopScrolling", - value: function stopScrolling() { - cancelAnimationFrame(this.checkScrollRaf); - this.startScrollTs = void 0; - if (this.scrollToRaf) { - cancelAnimationFrame(this.scrollToRaf); - this.scrollToRaf = null; - } - this.isScrolling = false; - this.instance.scroll.y = Math.round(this.instance.scroll.y); - this.html.classList.remove(this.scrollingClass); - } - }, { - key: "checkKey", - value: function checkKey(e) { - var _this3 = this; - if (this.stop) { - if (e.keyCode == keyCodes$1.TAB) { - requestAnimationFrame(function() { - _this3.html.scrollTop = 0; - document.body.scrollTop = 0; - _this3.html.scrollLeft = 0; - document.body.scrollLeft = 0; - }); - } - return; - } - switch (e.keyCode) { - case keyCodes$1.TAB: - requestAnimationFrame(function() { - _this3.html.scrollTop = 0; - document.body.scrollTop = 0; - _this3.html.scrollLeft = 0; - document.body.scrollLeft = 0; - _this3.scrollTo(document.activeElement, { - offset: -window.innerHeight / 2 - }); - }); - break; - case keyCodes$1.UP: - if (this.isActiveElementScrollSensitive()) { - this.instance.delta[this.directionAxis] -= 240; - } - break; - case keyCodes$1.DOWN: - if (this.isActiveElementScrollSensitive()) { - this.instance.delta[this.directionAxis] += 240; - } - break; - case keyCodes$1.PAGEUP: - this.instance.delta[this.directionAxis] -= window.innerHeight; - break; - case keyCodes$1.PAGEDOWN: - this.instance.delta[this.directionAxis] += window.innerHeight; - break; - case keyCodes$1.HOME: - this.instance.delta[this.directionAxis] -= this.instance.limit[this.directionAxis]; - break; - case keyCodes$1.END: - this.instance.delta[this.directionAxis] += this.instance.limit[this.directionAxis]; - break; - case keyCodes$1.SPACE: - if (this.isActiveElementScrollSensitive()) { - if (e.shiftKey) { - this.instance.delta[this.directionAxis] -= window.innerHeight; - } else { - this.instance.delta[this.directionAxis] += window.innerHeight; - } - } - break; - default: - return; - } - if (this.instance.delta[this.directionAxis] < 0) - this.instance.delta[this.directionAxis] = 0; - if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) - this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis]; - this.stopScrolling(); - this.isScrolling = true; - this.checkScroll(); - this.html.classList.add(this.scrollingClass); - } - }, { - key: "isActiveElementScrollSensitive", - value: function isActiveElementScrollSensitive() { - return !(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement) && !(document.activeElement instanceof HTMLButtonElement) && !(document.activeElement instanceof HTMLSelectElement); - } - }, { - key: "checkScroll", - value: function checkScroll() { - var _this4 = this; - var forced = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; - if (forced || this.isScrolling || this.isDraggingScrollbar) { - if (!this.hasScrollTicking) { - this.checkScrollRaf = requestAnimationFrame(function() { - return _this4.checkScroll(); - }); - this.hasScrollTicking = true; - } - this.updateScroll(); - var distance = Math.abs(this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]); - var timeSinceStart = Date.now() - this.startScrollTs; - if (!this.animatingScroll && timeSinceStart > 100 && (distance < 0.5 && this.instance.delta[this.directionAxis] != 0 || distance < 0.5 && this.instance.delta[this.directionAxis] == 0)) { - this.stopScrolling(); - } - Object.entries(this.sections).forEach(function(_ref) { - var _ref2 = _slicedToArray3(_ref, 2), i = _ref2[0], section = _ref2[1]; - if (section.persistent || _this4.instance.scroll[_this4.directionAxis] > section.offset[_this4.directionAxis] && _this4.instance.scroll[_this4.directionAxis] < section.limit[_this4.directionAxis]) { - if (_this4.direction === "horizontal") { - _this4.transform(section.el, -_this4.instance.scroll[_this4.directionAxis], 0); - } else { - _this4.transform(section.el, 0, -_this4.instance.scroll[_this4.directionAxis]); - } - if (!section.inView) { - section.inView = true; - section.el.style.opacity = 1; - section.el.style.pointerEvents = "all"; - section.el.setAttribute("data-".concat(_this4.name, "-section-inview"), ""); - } - } else { - if (section.inView || forced) { - section.inView = false; - section.el.style.opacity = 0; - section.el.style.pointerEvents = "none"; - section.el.removeAttribute("data-".concat(_this4.name, "-section-inview")); - } - _this4.transform(section.el, 0, 0); - } - }); - if (this.getDirection) { - this.addDirection(); - } - if (this.getSpeed) { - this.addSpeed(); - this.speedTs = Date.now(); - } - this.detectElements(); - this.transformElements(); - if (this.hasScrollbar) { - var scrollBarTranslation = this.instance.scroll[this.directionAxis] / this.instance.limit[this.directionAxis] * this.scrollBarLimit[this.directionAxis]; - if (this.direction === "horizontal") { - this.transform(this.scrollbarThumb, scrollBarTranslation, 0); - } else { - this.transform(this.scrollbarThumb, 0, scrollBarTranslation); - } - } - _get(_getPrototypeOf(_default4.prototype), "checkScroll", this).call(this); - this.hasScrollTicking = false; - } - } - }, { - key: "resize", - value: function resize() { - this.windowHeight = window.innerHeight; - this.windowWidth = window.innerWidth; - this.checkContext(); - this.windowMiddle = { - x: this.windowWidth / 2, - y: this.windowHeight / 2 - }; - this.update(); - } - }, { - key: "updateDelta", - value: function updateDelta(e) { - var delta; - var gestureDirection = this[this.context] && this[this.context].gestureDirection ? this[this.context].gestureDirection : this.gestureDirection; - if (gestureDirection === "both") { - delta = e.deltaX + e.deltaY; - } else if (gestureDirection === "vertical") { - delta = e.deltaY; - } else if (gestureDirection === "horizontal") { - delta = e.deltaX; - } else { - delta = e.deltaY; - } - this.instance.delta[this.directionAxis] -= delta * this.multiplier; - if (this.instance.delta[this.directionAxis] < 0) - this.instance.delta[this.directionAxis] = 0; - if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) - this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis]; - } - }, { - key: "updateScroll", - value: function updateScroll(e) { - if (this.isScrolling || this.isDraggingScrollbar) { - this.instance.scroll[this.directionAxis] = lerp(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis], this.lerp); - } else { - if (this.instance.scroll[this.directionAxis] > this.instance.limit[this.directionAxis]) { - this.setScroll(this.instance.scroll[this.directionAxis], this.instance.limit[this.directionAxis]); - } else if (this.instance.scroll.y < 0) { - this.setScroll(this.instance.scroll[this.directionAxis], 0); - } else { - this.setScroll(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis]); - } - } - } - }, { - key: "addDirection", - value: function addDirection() { - if (this.instance.delta.y > this.instance.scroll.y) { - if (this.instance.direction !== "down") { - this.instance.direction = "down"; - } - } else if (this.instance.delta.y < this.instance.scroll.y) { - if (this.instance.direction !== "up") { - this.instance.direction = "up"; - } - } - if (this.instance.delta.x > this.instance.scroll.x) { - if (this.instance.direction !== "right") { - this.instance.direction = "right"; - } - } else if (this.instance.delta.x < this.instance.scroll.x) { - if (this.instance.direction !== "left") { - this.instance.direction = "left"; - } - } - } - }, { - key: "addSpeed", - value: function addSpeed() { - if (this.instance.delta[this.directionAxis] != this.instance.scroll[this.directionAxis]) { - this.instance.speed = (this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]) / Math.max(1, Date.now() - this.speedTs); - } else { - this.instance.speed = 0; - } - } - }, { - key: "initScrollBar", - value: function initScrollBar() { - this.scrollbar = document.createElement("span"); - this.scrollbarThumb = document.createElement("span"); - this.scrollbar.classList.add("".concat(this.scrollbarClass)); - this.scrollbarThumb.classList.add("".concat(this.scrollbarClass, "_thumb")); - this.scrollbar.append(this.scrollbarThumb); - if (this.scrollbarContainer) { - this.scrollbarContainer.append(this.scrollbar); - } else { - document.body.append(this.scrollbar); - } - this.getScrollBar = this.getScrollBar.bind(this); - this.releaseScrollBar = this.releaseScrollBar.bind(this); - this.moveScrollBar = this.moveScrollBar.bind(this); - this.scrollbarThumb.addEventListener("mousedown", this.getScrollBar); - window.addEventListener("mouseup", this.releaseScrollBar); - window.addEventListener("mousemove", this.moveScrollBar); - this.hasScrollbar = false; - if (this.direction == "horizontal") { - if (this.instance.limit.x + this.windowWidth <= this.windowWidth) { - return; - } - } else { - if (this.instance.limit.y + this.windowHeight <= this.windowHeight) { - return; - } - } - this.hasScrollbar = true; - this.scrollbarBCR = this.scrollbar.getBoundingClientRect(); - this.scrollbarHeight = this.scrollbarBCR.height; - this.scrollbarWidth = this.scrollbarBCR.width; - if (this.direction === "horizontal") { - this.scrollbarThumb.style.width = "".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), "px"); - } else { - this.scrollbarThumb.style.height = "".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), "px"); - } - this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect(); - this.scrollBarLimit = { - x: this.scrollbarWidth - this.scrollbarThumbBCR.width, - y: this.scrollbarHeight - this.scrollbarThumbBCR.height - }; - } - }, { - key: "reinitScrollBar", - value: function reinitScrollBar() { - this.hasScrollbar = false; - if (this.direction == "horizontal") { - if (this.instance.limit.x + this.windowWidth <= this.windowWidth) { - return; - } - } else { - if (this.instance.limit.y + this.windowHeight <= this.windowHeight) { - return; - } - } - this.hasScrollbar = true; - this.scrollbarBCR = this.scrollbar.getBoundingClientRect(); - this.scrollbarHeight = this.scrollbarBCR.height; - this.scrollbarWidth = this.scrollbarBCR.width; - if (this.direction === "horizontal") { - this.scrollbarThumb.style.width = "".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), "px"); - } else { - this.scrollbarThumb.style.height = "".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), "px"); - } - this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect(); - this.scrollBarLimit = { - x: this.scrollbarWidth - this.scrollbarThumbBCR.width, - y: this.scrollbarHeight - this.scrollbarThumbBCR.height - }; - } - }, { - key: "destroyScrollBar", - value: function destroyScrollBar() { - this.scrollbarThumb.removeEventListener("mousedown", this.getScrollBar); - window.removeEventListener("mouseup", this.releaseScrollBar); - window.removeEventListener("mousemove", this.moveScrollBar); - this.scrollbar.remove(); - } - }, { - key: "getScrollBar", - value: function getScrollBar(e) { - this.isDraggingScrollbar = true; - this.checkScroll(); - this.html.classList.remove(this.scrollingClass); - this.html.classList.add(this.draggingClass); - } - }, { - key: "releaseScrollBar", - value: function releaseScrollBar(e) { - this.isDraggingScrollbar = false; - if (this.isScrolling) { - this.html.classList.add(this.scrollingClass); - } - this.html.classList.remove(this.draggingClass); - } - }, { - key: "moveScrollBar", - value: function moveScrollBar(e) { - var _this5 = this; - if (this.isDraggingScrollbar) { - requestAnimationFrame(function() { - var x = (e.clientX - _this5.scrollbarBCR.left) * 100 / _this5.scrollbarWidth * _this5.instance.limit.x / 100; - var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit.y / 100; - if (y > 0 && y < _this5.instance.limit.y) { - _this5.instance.delta.y = y; - } - if (x > 0 && x < _this5.instance.limit.x) { - _this5.instance.delta.x = x; - } - }); - } - } - }, { - key: "addElements", - value: function addElements() { - var _this6 = this; - this.els = {}; - this.parallaxElements = {}; - var els = this.el.querySelectorAll("[data-".concat(this.name, "]")); - els.forEach(function(el, index) { - var targetParents = getParents(el); - var section = Object.entries(_this6.sections).map(function(_ref3) { - var _ref4 = _slicedToArray3(_ref3, 2), key = _ref4[0], section2 = _ref4[1]; - return section2; - }).find(function(section2) { - return targetParents.includes(section2.el); - }); - var cl = el.dataset[_this6.name + "Class"] || _this6["class"]; - var id = typeof el.dataset[_this6.name + "Id"] === "string" ? el.dataset[_this6.name + "Id"] : "el" + index; - var top; - var left; - var repeat = el.dataset[_this6.name + "Repeat"]; - var call = el.dataset[_this6.name + "Call"]; - var position = el.dataset[_this6.name + "Position"]; - var delay = el.dataset[_this6.name + "Delay"]; - var direction = el.dataset[_this6.name + "Direction"]; - var sticky = typeof el.dataset[_this6.name + "Sticky"] === "string"; - var speed = el.dataset[_this6.name + "Speed"] ? parseFloat(el.dataset[_this6.name + "Speed"]) / 10 : false; - var offset = typeof el.dataset[_this6.name + "Offset"] === "string" ? el.dataset[_this6.name + "Offset"].split(",") : _this6.offset; - var target = el.dataset[_this6.name + "Target"]; - var targetEl; - if (target !== void 0) { - targetEl = document.querySelector("".concat(target)); - } else { - targetEl = el; - } - var targetElBCR = targetEl.getBoundingClientRect(); - if (section === null) { - top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y; - left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x; - } else { - if (!section.inView) { - top = targetElBCR.top - getTranslate(section.el).y - getTranslate(targetEl).y; - left = targetElBCR.left - getTranslate(section.el).x - getTranslate(targetEl).x; - } else { - top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y; - left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x; - } - } - var bottom = top + targetEl.offsetHeight; - var right = left + targetEl.offsetWidth; - var middle = { - x: (right - left) / 2 + left, - y: (bottom - top) / 2 + top - }; - if (sticky) { - var elBCR = el.getBoundingClientRect(); - var elTop = elBCR.top; - var elLeft = elBCR.left; - var elDistance = { - x: elLeft - left, - y: elTop - top - }; - top += window.innerHeight; - left += window.innerWidth; - bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance[_this6.directionAxis]; - right = elLeft + targetEl.offsetWidth - el.offsetWidth - elDistance[_this6.directionAxis]; - middle = { - x: (right - left) / 2 + left, - y: (bottom - top) / 2 + top - }; - } - if (repeat == "false") { - repeat = false; - } else if (repeat != void 0) { - repeat = true; - } else { - repeat = _this6.repeat; - } - var relativeOffset = [0, 0]; - if (offset) { - if (_this6.direction === "horizontal") { - for (var i = 0; i < offset.length; i++) { - if (typeof offset[i] == "string") { - if (offset[i].includes("%")) { - relativeOffset[i] = parseInt(offset[i].replace("%", "") * _this6.windowWidth / 100); - } else { - relativeOffset[i] = parseInt(offset[i]); - } - } else { - relativeOffset[i] = offset[i]; - } - } - left = left + relativeOffset[0]; - right = right - relativeOffset[1]; - } else { - for (var i = 0; i < offset.length; i++) { - if (typeof offset[i] == "string") { - if (offset[i].includes("%")) { - relativeOffset[i] = parseInt(offset[i].replace("%", "") * _this6.windowHeight / 100); - } else { - relativeOffset[i] = parseInt(offset[i]); - } - } else { - relativeOffset[i] = offset[i]; - } - } - top = top + relativeOffset[0]; - bottom = bottom - relativeOffset[1]; - } - } - var mappedEl = { - el, - id, - "class": cl, - section, - top, - middle, - bottom, - left, - right, - offset, - progress: 0, - repeat, - inView: false, - call, - speed, - delay, - position, - target: targetEl, - direction, - sticky - }; - _this6.els[id] = mappedEl; - if (el.classList.contains(cl)) { - _this6.setInView(_this6.els[id], id); - } - if (speed !== false || sticky) { - _this6.parallaxElements[id] = mappedEl; - } - }); - } - }, { - key: "addSections", - value: function addSections() { - var _this7 = this; - this.sections = {}; - var sections = this.el.querySelectorAll("[data-".concat(this.name, "-section]")); - if (sections.length === 0) { - sections = [this.el]; - } - sections.forEach(function(section, index) { - var id = typeof section.dataset[_this7.name + "Id"] === "string" ? section.dataset[_this7.name + "Id"] : "section" + index; - var sectionBCR = section.getBoundingClientRect(); - var offset = { - x: sectionBCR.left - window.innerWidth * 1.5 - getTranslate(section).x, - y: sectionBCR.top - window.innerHeight * 1.5 - getTranslate(section).y - }; - var limit = { - x: offset.x + sectionBCR.width + window.innerWidth * 2, - y: offset.y + sectionBCR.height + window.innerHeight * 2 - }; - var persistent = typeof section.dataset[_this7.name + "Persistent"] === "string"; - section.setAttribute("data-scroll-section-id", id); - var mappedSection = { - el: section, - offset, - limit, - inView: false, - persistent, - id - }; - _this7.sections[id] = mappedSection; - }); - } - }, { - key: "transform", - value: function transform(element, x, y, delay) { - var transform2; - if (!delay) { - transform2 = "matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,".concat(x, ",").concat(y, ",0,1)"); - } else { - var start = getTranslate(element); - var lerpX = lerp(start.x, x, delay); - var lerpY = lerp(start.y, y, delay); - transform2 = "matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,".concat(lerpX, ",").concat(lerpY, ",0,1)"); - } - element.style.webkitTransform = transform2; - element.style.msTransform = transform2; - element.style.transform = transform2; - } - }, { - key: "transformElements", - value: function transformElements(isForced) { - var _this8 = this; - var setAllElements = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; - var scrollRight = this.instance.scroll.x + this.windowWidth; - var scrollBottom = this.instance.scroll.y + this.windowHeight; - var scrollMiddle = { - x: this.instance.scroll.x + this.windowMiddle.x, - y: this.instance.scroll.y + this.windowMiddle.y - }; - Object.entries(this.parallaxElements).forEach(function(_ref5) { - var _ref6 = _slicedToArray3(_ref5, 2), i = _ref6[0], current = _ref6[1]; - var transformDistance = false; - if (isForced) { - transformDistance = 0; - } - if (current.inView || setAllElements) { - switch (current.position) { - case "top": - transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed; - break; - case "elementTop": - transformDistance = (scrollBottom - current.top) * -current.speed; - break; - case "bottom": - transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollBottom + _this8.windowHeight) * current.speed; - break; - case "left": - transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed; - break; - case "elementLeft": - transformDistance = (scrollRight - current.left) * -current.speed; - break; - case "right": - transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollRight + _this8.windowHeight) * current.speed; - break; - default: - transformDistance = (scrollMiddle[_this8.directionAxis] - current.middle[_this8.directionAxis]) * -current.speed; - break; - } - } - if (current.sticky) { - if (current.inView) { - if (_this8.direction === "horizontal") { - transformDistance = _this8.instance.scroll.x - current.left + window.innerWidth; - } else { - transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight; - } - } else { - if (_this8.direction === "horizontal") { - if (_this8.instance.scroll.x < current.left - window.innerWidth && _this8.instance.scroll.x < current.left - window.innerWidth / 2) { - transformDistance = 0; - } else if (_this8.instance.scroll.x > current.right && _this8.instance.scroll.x > current.right + 100) { - transformDistance = current.right - current.left + window.innerWidth; - } else { - transformDistance = false; - } - } else { - if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) { - transformDistance = 0; - } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) { - transformDistance = current.bottom - current.top + window.innerHeight; - } else { - transformDistance = false; - } - } - } - } - if (transformDistance !== false) { - if (current.direction === "horizontal" || _this8.direction === "horizontal" && current.direction !== "vertical") { - _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay); - } else { - _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay); - } - } - }); - } - }, { - key: "scrollTo", - value: function scrollTo(target) { - var _this9 = this; - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - var offset = parseInt(options.offset) || 0; - var duration = !isNaN(parseInt(options.duration)) ? parseInt(options.duration) : 1e3; - var easing = options.easing || [0.25, 0, 0.35, 1]; - var disableLerp = options.disableLerp ? true : false; - var callback = options.callback ? options.callback : false; - easing = src$1.apply(void 0, _toConsumableArray2(easing)); - if (typeof target === "string") { - if (target === "top") { - target = 0; - } else if (target === "bottom") { - target = this.instance.limit.y; - } else if (target === "left") { - target = 0; - } else if (target === "right") { - target = this.instance.limit.x; - } else { - target = document.querySelector(target); - if (!target) { - return; - } - } - } else if (typeof target === "number") { - target = parseInt(target); - } else if (target && target.tagName) - ; - else { - console.warn("`target` parameter is not valid"); - return; - } - if (typeof target !== "number") { - var targetInScope = getParents(target).includes(this.el); - if (!targetInScope) { - return; - } - var targetBCR = target.getBoundingClientRect(); - var offsetTop = targetBCR.top; - var offsetLeft = targetBCR.left; - var targetParents = getParents(target); - var parentSection = targetParents.find(function(candidate) { - return Object.entries(_this9.sections).map(function(_ref7) { - var _ref8 = _slicedToArray3(_ref7, 2), key = _ref8[0], section = _ref8[1]; - return section; - }).find(function(section) { - return section.el == candidate; - }); - }); - var parentSectionOffset = 0; - if (parentSection) { - parentSectionOffset = getTranslate(parentSection)[this.directionAxis]; - } else { - parentSectionOffset = -this.instance.scroll[this.directionAxis]; - } - if (this.direction === "horizontal") { - offset = offsetLeft + offset - parentSectionOffset; - } else { - offset = offsetTop + offset - parentSectionOffset; - } - } else { - offset = target + offset; - } - var scrollStart = parseFloat(this.instance.delta[this.directionAxis]); - var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit[this.directionAxis])); - var scrollDiff = scrollTarget - scrollStart; - var render = function render2(p) { - if (disableLerp) { - if (_this9.direction === "horizontal") { - _this9.setScroll(scrollStart + scrollDiff * p, _this9.instance.delta.y); - } else { - _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p); - } - } else { - _this9.instance.delta[_this9.directionAxis] = scrollStart + scrollDiff * p; - } - }; - this.animatingScroll = true; - this.stopScrolling(); - this.startScrolling(); - var start = Date.now(); - var loop = function loop2() { - var p = (Date.now() - start) / duration; - if (p > 1) { - render(1); - _this9.animatingScroll = false; - if (duration == 0) - _this9.update(); - if (callback) - callback(); - } else { - _this9.scrollToRaf = requestAnimationFrame(loop2); - render(easing(p)); - } - }; - loop(); - } - }, { - key: "update", - value: function update() { - this.setScrollLimit(); - this.addSections(); - this.addElements(); - this.detectElements(); - this.updateScroll(); - this.transformElements(true); - this.reinitScrollBar(); - this.checkScroll(true); - } - }, { - key: "startScroll", - value: function startScroll() { - this.stop = false; - } - }, { - key: "stopScroll", - value: function stopScroll() { - this.stop = true; - } - }, { - key: "setScroll", - value: function setScroll(x, y) { - this.instance = _objectSpread2(_objectSpread2({}, this.instance), {}, { - scroll: { - x, - y - }, - delta: { - x, - y - }, - speed: 0 - }); - } - }, { - key: "destroy", - value: function destroy() { - _get(_getPrototypeOf(_default4.prototype), "destroy", this).call(this); - this.stopScrolling(); - this.html.classList.remove(this.smoothClass); - this.vs.destroy(); - this.destroyScrollBar(); - window.removeEventListener("keydown", this.checkKey, false); - } - }]); - return _default4; - }(_default3); - var Smooth = /* @__PURE__ */ function() { - function Smooth2() { - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - _classCallCheck3(this, Smooth2); - this.options = options; - Object.assign(this, defaults, options); - this.smartphone = defaults.smartphone; - if (options.smartphone) - Object.assign(this.smartphone, options.smartphone); - this.tablet = defaults.tablet; - if (options.tablet) - Object.assign(this.tablet, options.tablet); - if (!this.smooth && this.direction == "horizontal") - console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible"); - if (!this.tablet.smooth && this.tablet.direction == "horizontal") - console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible (tablet)"); - if (!this.smartphone.smooth && this.smartphone.direction == "horizontal") - console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible (smartphone)"); - this.init(); - } - _createClass3(Smooth2, [{ - key: "init", - value: function init2() { - this.options.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1 || window.innerWidth < this.tablet.breakpoint; - this.options.isTablet = this.options.isMobile && window.innerWidth >= this.tablet.breakpoint; - if (this.smooth && !this.options.isMobile || this.tablet.smooth && this.options.isTablet || this.smartphone.smooth && this.options.isMobile && !this.options.isTablet) { - this.scroll = new _default$2(this.options); - } else { - this.scroll = new _default$12(this.options); - } - this.scroll.init(); - if (window.location.hash) { - var id = window.location.hash.slice(1, window.location.hash.length); - var target = document.getElementById(id); - if (target) - this.scroll.scrollTo(target); - } - } - }, { - key: "update", - value: function update() { - this.scroll.update(); - } - }, { - key: "start", - value: function start() { - this.scroll.startScroll(); - } - }, { - key: "stop", - value: function stop() { - this.scroll.stopScroll(); - } - }, { - key: "scrollTo", - value: function scrollTo(target, options) { - this.scroll.scrollTo(target, options); - } - }, { - key: "setScroll", - value: function setScroll(x, y) { - this.scroll.setScroll(x, y); - } - }, { - key: "on", - value: function on(event, func) { - this.scroll.setEvents(event, func); - } - }, { - key: "off", - value: function off(event, func) { - this.scroll.unsetEvents(event, func); - } - }, { - key: "destroy", - value: function destroy() { - this.scroll.destroy(); - } - }]); - return Smooth2; - }(); - var locomotive_scroll_esm_default = Smooth; - - // assets/scripts/modules/Scroll.js - var Scroll_default = class extends _default { - constructor(m) { - super(m); - } - init() { - this.scroll = new locomotive_scroll_esm_default({ - el: this.el, - smooth: true - }); - this.scroll.on("call", (func, way, obj, id) => { - this.call(func[0], { way, obj }, func[1], func[2]); - }); - this.scroll.on("scroll", (args) => { - }); - } - lazyLoad(args) { - lazyLoadImage(args.obj.el, null, () => { - }); - } - destroy() { - this.scroll.destroy(); - } - }; - - // assets/scripts/globals.js - var import_svg4everybody = __toESM(require_svg4everybody(), 1); - function globals_default() { - (0, import_svg4everybody.default)(); - } - - // assets/scripts/utils/environment.js - var html = document.documentElement; - var body = document.body; - var isDebug = html.hasAttribute("data-debug"); - - // assets/scripts/app.js - var app = new main_esm_default({ - modules: modules_exports - }); - window.onload = (event) => { - const $style = document.getElementById("main-css"); - if ($style) { - if ($style.isLoaded) { - init(); - } else { - $style.addEventListener("load", (event2) => { - init(); - }); - } - } else { - console.warn('The "main-css" stylesheet not found'); - } - }; - function init() { - globals_default(); - app.init(app); - html.classList.add("is-loaded"); - html.classList.add("is-ready"); - html.classList.remove("is-loading"); - } -})(); +(()=>{var Jt=Object.create;var U=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames,dt=Object.getOwnPropertySymbols,ee=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var vt=(s,n,t)=>n in s?U(s,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[n]=t,pt=(s,n)=>{for(var t in n||(n={}))mt.call(n,t)&&vt(s,t,n[t]);if(dt)for(var t of dt(n))ie.call(n,t)&&vt(s,t,n[t]);return s};var ne=(s,n)=>()=>(n||s((n={exports:{}}).exports,n),n.exports),se=(s,n)=>{for(var t in n)U(s,t,{get:n[t],enumerable:!0})},re=(s,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of te(n))!mt.call(s,e)&&e!==t&&U(s,e,{get:()=>n[e],enumerable:!(i=Qt(n,e))||i.enumerable});return s};var oe=(s,n,t)=>(t=s!=null?Jt(ee(s)):{},re(n||!s||!s.__esModule?U(t,"default",{value:s,enumerable:!0}):t,s));var yt=(s,n,t)=>new Promise((i,e)=>{var r=l=>{try{a(t.next(l))}catch(c){e(c)}},o=l=>{try{a(t.throw(l))}catch(c){e(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,o);a((t=t.apply(s,n)).next())});var Ft=ne((qt,Z)=>{(function(s,n){typeof define=="function"&&define.amd?define([],function(){return s.svg4everybody=n()}):typeof Z=="object"&&Z.exports?Z.exports=n():s.svg4everybody=n()})(qt,function(){function s(e,r,o){if(o){var a=document.createDocumentFragment(),l=!r.hasAttribute("viewBox")&&o.getAttribute("viewBox");l&&r.setAttribute("viewBox",l);for(var c=o.cloneNode(!0);c.childNodes.length;)a.appendChild(c.firstChild);e.appendChild(a)}}function n(e){e.onreadystatechange=function(){if(e.readyState===4){var r=e._cachedDocument;r||(r=e._cachedDocument=document.implementation.createHTMLDocument(""),r.body.innerHTML=e.responseText,e._cachedTarget={}),e._embeds.splice(0).map(function(o){var a=e._cachedTarget[o.id];a||(a=e._cachedTarget[o.id]=r.getElementById(o.id)),s(o.parent,o.svg,a)})}},e.onreadystatechange()}function t(e){function r(){for(var A=0;A0)&&p(r,67)}var o,a=Object(e),l=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,c=/\bAppleWebKit\/(\d+)\b/,f=/\bEdge\/12\.(\d+)\b/,u=/\bEdge\/.(\d+)\b/,v=window.top!==window.self;o="polyfill"in a?a.polyfill:l.test(navigator.userAgent)||(navigator.userAgent.match(f)||[])[1]<10547||(navigator.userAgent.match(c)||[])[1]<537||u.test(navigator.userAgent)&&v;var h={},p=window.requestAnimationFrame||setTimeout,C=document.getElementsByTagName("use"),L=0;o&&r()}function i(e){for(var r=e;r.nodeName.toLowerCase()!=="svg"&&(r=r.parentNode););return r}return t})});function q(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?q=function(n){return typeof n}:q=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},q(s)}function wt(s,n){if(!(s instanceof n))throw new TypeError("Cannot call a class as a function")}function gt(s,n){for(var t=0;ts.length)&&(n=s.length);for(var t=0,i=new Array(n);tet,Scroll:()=>at});function me(s,n){if(!(s instanceof n))throw new TypeError("Cannot call a class as a function")}function Tt(s,n){for(var t=0;ts.length)&&(n=s.length);for(var t=0,i=new Array(n);t-1||(this.reset(),this.getStateOptions())}},{key:"reset",value:function(){this.isLoading&&(this.controller.abort(),this.isLoading=!1,this.controller=new AbortController),window.clearTimeout(this.enterTimeout),this.isInserted&&this.removeContainer(),this.classContainer=this.html,Object.assign(this,this.defaults,this.options)}},{key:"getClickOptions",value:function(t){this.transition=t.getAttribute("data-"+this.name),this.isUrl=t.getAttribute("data-"+this.name+"-url");var i=t.getAttribute("href"),e=t.getAttribute("target");if(e=="_blank"){window.open(i,"_blank");return}if(this.transition=="false"){window.location=i;return}this.setOptions(i,!0)}},{key:"getStateOptions",value:function(){this.transitionsHistory?this.transition=history.state:this.transition=!1;var t=window.location.href;this.setOptions(t)}},{key:"goTo",value:function(t,i,e){this.reset(),this.transition=i,this.isUrl=e,this.setOptions(t,!0)}},{key:"setOptions",value:function(t,i){var e="["+this.container+"]",r;this.transition&&this.transition!="true"&&(this.transitionContainer="["+this.container+'="'+this.transition+'"]',this.loadingClass=this.transitions[this.transition].loadingClass||this.loadingClass,this.loadedClass=this.transitions[this.transition].loadedClass||this.loadedClass,this.readyClass=this.transitions[this.transition].readyClass||this.readyClass,this.transitionsPrefix=this.transitions[this.transition].transitionsPrefix||this.transitionsPrefix,this.enterDelay=this.transitions[this.transition].enterDelay||this.enterDelay,this.exitDelay=this.transitions[this.transition].exitDelay||this.exitDelay,this.loadedDelay=this.transitions[this.transition].loadedDelay||this.loadedDelay,r=document.querySelector(this.transitionContainer)),r?(e=this.transitionContainer,this.oldContainer=r,this.classContainer=this.oldContainer.parentNode,this.subContainer||history.replaceState(this.transition,null,this.href),this.subContainer=!0):(this.oldContainer=document.querySelector(e),this.subContainer&&history.replaceState(this.prevTransition,null,this.href),this.subContainer=!1),this.href=t,this.parentContainer=this.oldContainer.parentNode,this.isUrl===""||this.isUrl!=null&&this.isUrl!="false"&&this.isUrl!=!1?history.pushState(this.transition,null,t):(this.oldContainer.classList.add("is-old"),this.setLoading(),this.startEnterDelay(),this.loadHref(t,e,i))}},{key:"setLoading",value:function(){this.classContainer.classList.remove(this.loadedClass,this.readyClass),this.classContainer.classList.add(this.loadingClass),this.classContainer.classList.remove(this.transitionsPrefix+this.prevTransition),this.transition&&this.classContainer.classList.add(this.transitionsPrefix+this.transition),this.subContainer||(this.prevTransition=this.transition);var t=new Event(this.namespace+"loading");window.dispatchEvent(t)}},{key:"startEnterDelay",value:function(){var t=this;this.enterTimeout=window.setTimeout(function(){t.isEntered=!0,t.isLoaded&&t.transitionContainers()},this.enterDelay)}},{key:"loadHref",value:function(t,i,e){var r=this;this.isLoading=!0;var o=this.controller.signal;fetch(t,{signal:o}).then(function(a){return a.text()}).then(function(a){e&&history.pushState(r.transition,null,t);var l=new DOMParser;r.data=l.parseFromString(a,"text/html"),r.newContainer=r.data.querySelector(i),r.newContainer.classList.add("is-new"),r.parentNewContainer=r.newContainer.parentNode,r.hideContainer(),r.parentContainer.insertBefore(r.newContainer,r.oldContainer),r.isInserted=!0,r.setSvgs(),r.isLoaded=!0,r.isEntered&&r.transitionContainers(),r.loadEls(r.newContainer),r.isLoading=!1}).catch(function(a){window.location=t})}},{key:"transitionContainers",value:function(){var t=this;this.setAttributes(),this.showContainer(),this.setLoaded(),setTimeout(function(){t.removeContainer(),t.setReady()},this.exitDelay)}},{key:"setSvgs",value:function(){if(this.isChrome){var t=this.newContainer.querySelectorAll("use");t.length&&t.forEach(function(i){var e=i.getAttribute("xlink:href");if(e)i.parentNode.innerHTML='';else{var r=i.getAttribute("href");r&&(i.parentNode.innerHTML='')}})}}},{key:"setAttributes",value:function(){var t=this,i=this.data.getElementsByTagName("title")[0],e=this.data.head.querySelector('meta[name="description"]'),r=document.head.querySelector('meta[name="description"]'),o,a;this.subContainer?(a=this.parentNewContainer,o=document.querySelector(this.transitionContainer).parentNode):(a=this.data.querySelector("html"),o=document.querySelector("html"));var l=Object.assign({},a.dataset);i&&(document.title=i.innerText),r&&e&&r.setAttribute("content",e.getAttribute("content")),l&&Object.entries(l).forEach(function(c){var f=ye(c,2),u=f[0],v=f[1];o.setAttribute("data-"+t.toDash(u),v)})}},{key:"toDash",value:function(t){return t.split(/(?=[A-Z])/).join("-").toLowerCase()}},{key:"hideContainer",value:function(){this.newContainer.style.visibility="hidden",this.newContainer.style.height=0,this.newContainer.style.overflow="hidden"}},{key:"showContainer",value:function(){this.newContainer.style.visibility="",this.newContainer.style.height="",this.newContainer.style.overflow=""}},{key:"loadEls",value:function(t){var i=this,e=[];this.loadAttributes.forEach(function(r){var o="data-"+i.name+"-"+r,a=t.querySelectorAll("["+o+"]");a.length&&a.forEach(function(l){var c=l.getAttribute(o);if(l.setAttribute(r,c),r=="src"||r=="srcset"){var f=new Promise(function(u){l.onload=function(){return u(l)}});e.push(f)}})}),Promise.all(e).then(function(r){var o=new Event(i.namespace+"images");window.dispatchEvent(o)})}},{key:"setLoaded",value:function(){var t=this;this.classContainer.classList.remove(this.loadingClass),setTimeout(function(){t.classContainer.classList.add(t.loadedClass)},this.loadedDelay);var i=new Event(this.namespace+"loaded");window.dispatchEvent(i)}},{key:"removeContainer",value:function(){this.parentContainer.removeChild(this.oldContainer),this.newContainer.classList.remove("is-new"),this.isInserted=!1}},{key:"setReady",value:function(){this.classContainer.classList.add(this.readyClass);var t=new Event(this.namespace+"ready");window.dispatchEvent(t)}},{key:"on",value:function(t,i){var e=this;window.addEventListener(this.namespace+t,function(){switch(t){case"loading":return i(e.transition,e.oldContainer);case"loaded":return i(e.transition,e.oldContainer,e.newContainer);case"ready":return i(e.transition,e.newContainer);default:return i()}},!1)}}]),s}(),Ct=Ee;var et=class extends F{constructor(s){super(s)}init(){new Ct({enterDelay:0,transitions:{customTransition:{}}}).on("loaded",(n,t,i)=>{this.call("destroy",t,"app"),this.call("update",i,"app")})}};var _t=[];function ke(s,n={}){return new Promise((t,i)=>{let e=new Image;n.crossOrigin&&(e.crossOrigin=n.crossOrigin);let r=()=>{t(pt({element:e},Te(e)))};e.decode?(e.src=s,e.decode().then(r).catch(o=>{i(o)})):(e.onload=r,e.onerror=o=>{i(o)},e.src=s)})}function Te(s){return{url:s.src,width:s.naturalWidth,height:s.naturalHeight,ratio:s.naturalWidth/s.naturalHeight}}function xt(s,n,t){return yt(this,null,function*(){let i=n||s.dataset.src,e=_t.find(r=>r.url===i);if(!e){if(e=yield ke(i),!e.url)return;_t.push(e)}s.src!==i&&(s.tagName==="IMG"?s.src=e.url:s.style.backgroundImage=`url(${e.url})`,requestAnimationFrame(()=>{let r=s.closest(".c-lazy");r&&(r.classList.add("-lazy-loaded"),r.style.backgroundImage=""),s.classList.add("-lazy-loaded"),t==null||t()}))})}function G(s,n){if(!(s instanceof n))throw new TypeError("Cannot call a class as a function")}function Ot(s,n){for(var t=0;ts.length)&&(n=s.length);for(var t=0,i=new Array(n);t0&&arguments[0]!==void 0?arguments[0]:{};G(this,s),Object.assign(this,W,n),this.smartphone=W.smartphone,n.smartphone&&Object.assign(this.smartphone,n.smartphone),this.tablet=W.tablet,n.tablet&&Object.assign(this.tablet,n.tablet),this.namespace="locomotive",this.html=document.documentElement,this.windowHeight=window.innerHeight,this.windowWidth=window.innerWidth,this.windowMiddle={x:this.windowWidth/2,y:this.windowHeight/2},this.els={},this.currentElements={},this.listeners={},this.hasScrollTicking=!1,this.hasCallEventSet=!1,this.checkScroll=this.checkScroll.bind(this),this.checkResize=this.checkResize.bind(this),this.checkEvent=this.checkEvent.bind(this),this.instance={scroll:{x:0,y:0},limit:{x:this.html.offsetWidth,y:this.html.offsetHeight},currentElements:this.currentElements},this.isMobile?this.isTablet?this.context="tablet":this.context="smartphone":this.context="desktop",this.isMobile&&(this.direction=this[this.context].direction),this.direction==="horizontal"?this.directionAxis="x":this.directionAxis="y",this.getDirection&&(this.instance.direction=null),this.getDirection&&(this.instance.speed=0),this.html.classList.add(this.initClass),window.addEventListener("resize",this.checkResize,!1)}return $(s,[{key:"init",value:function(){this.initEvents()}},{key:"checkScroll",value:function(){this.dispatchScroll()}},{key:"checkResize",value:function(){var t=this;this.resizeTick||(this.resizeTick=!0,requestAnimationFrame(function(){t.resize(),t.resizeTick=!1}))}},{key:"resize",value:function(){}},{key:"checkContext",value:function(){if(!!this.reloadOnContextChange){this.isMobile=/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||this.windowWidth=this.tablet.breakpoint;var t=this.context;if(this.isMobile?this.isTablet?this.context="tablet":this.context="smartphone":this.context="desktop",t!=this.context){var i=t=="desktop"?this.smooth:this[t].smooth,e=this.context=="desktop"?this.smooth:this[this.context].smooth;i!=e&&window.location.reload()}}}},{key:"initEvents",value:function(){var t=this;this.scrollToEls=this.el.querySelectorAll("[data-".concat(this.name,"-to]")),this.setScrollTo=this.setScrollTo.bind(this),this.scrollToEls.forEach(function(i){i.addEventListener("click",t.setScrollTo,!1)})}},{key:"setScrollTo",value:function(t){t.preventDefault(),this.scrollTo(t.currentTarget.getAttribute("data-".concat(this.name,"-href"))||t.currentTarget.getAttribute("href"),{offset:t.currentTarget.getAttribute("data-".concat(this.name,"-offset"))})}},{key:"addElements",value:function(){}},{key:"detectElements",value:function(t){var i=this,e=this.instance.scroll.y,r=e+this.windowHeight,o=this.instance.scroll.x,a=o+this.windowWidth;Object.entries(this.els).forEach(function(l){var c=j(l,2),f=c[0],u=c[1];if(u&&(!u.inView||t)&&(i.direction==="horizontal"?a>=u.left&&o=u.top&&eu.right)&&i.setOutOfView(u,f)}else{var h=u.bottom-u.top;u.progress=(i.instance.scroll.y-(u.top-i.windowHeight))/(h+i.windowHeight),(ru.bottom)&&i.setOutOfView(u,f)}}),this.hasScrollTicking=!1}},{key:"setInView",value:function(t,i){this.els[i].inView=!0,t.el.classList.add(t.class),this.currentElements[i]=t,t.call&&this.hasCallEventSet&&(this.dispatchCall(t,"enter"),t.repeat||(this.els[i].call=!1))}},{key:"setOutOfView",value:function(t,i){var e=this;this.els[i].inView=!1,Object.keys(this.currentElements).forEach(function(r){r===i&&delete e.currentElements[r]}),t.call&&this.hasCallEventSet&&this.dispatchCall(t,"exit"),t.repeat&&t.el.classList.remove(t.class)}},{key:"dispatchCall",value:function(t,i){this.callWay=i,this.callValue=t.call.split(",").map(function(r){return r.trim()}),this.callObj=t,this.callValue.length==1&&(this.callValue=this.callValue[0]);var e=new Event(this.namespace+"call");this.el.dispatchEvent(e)}},{key:"dispatchScroll",value:function(){var t=new Event(this.namespace+"scroll");this.el.dispatchEvent(t)}},{key:"setEvents",value:function(t,i){this.listeners[t]||(this.listeners[t]=[]);var e=this.listeners[t];e.push(i),e.length===1&&this.el.addEventListener(this.namespace+t,this.checkEvent,!1),t==="call"&&(this.hasCallEventSet=!0,this.detectElements(!0))}},{key:"unsetEvents",value:function(t,i){if(!!this.listeners[t]){var e=this.listeners[t],r=e.indexOf(i);r<0||(e.splice(r,1),e.index===0&&this.el.removeEventListener(this.namespace+t,this.checkEvent,!1))}}},{key:"checkEvent",value:function(t){var i=this,e=t.type.replace(this.namespace,""),r=this.listeners[e];!r||r.length===0||r.forEach(function(o){switch(e){case"scroll":return o(i.instance);case"call":return o(i.callValue,i.callWay,i.callObj);default:return o()}})}},{key:"startScroll",value:function(){}},{key:"stopScroll",value:function(){}},{key:"setScroll",value:function(t,i){this.instance.scroll={x:0,y:0}}},{key:"destroy",value:function(){var t=this;window.removeEventListener("resize",this.checkResize,!1),Object.keys(this.listeners).forEach(function(i){t.el.removeEventListener(t.namespace+i,t.checkEvent,!1)}),this.listeners={},this.scrollToEls.forEach(function(i){i.removeEventListener("click",t.setScrollTo,!1)}),this.html.classList.remove(this.initClass)}}]),s}(),Re=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function jt(s,n){return n={exports:{}},s(n,n.exports),n.exports}var Wt=jt(function(s,n){(function(){function t(){var i=window,e=document;if("scrollBehavior"in e.documentElement.style&&i.__forceSmoothScrollPolyfill__!==!0)return;var r=i.HTMLElement||i.Element,o=468,a={scroll:i.scroll||i.scrollTo,scrollBy:i.scrollBy,elementScroll:r.prototype.scroll||u,scrollIntoView:r.prototype.scrollIntoView},l=i.performance&&i.performance.now?i.performance.now.bind(i.performance):Date.now;function c(d){var m=["MSIE ","Trident/","Edge/"];return new RegExp(m.join("|")).test(d)}var f=c(i.navigator.userAgent)?1:0;function u(d,m){this.scrollLeft=d,this.scrollTop=m}function v(d){return .5*(1-Math.cos(Math.PI*d))}function h(d){if(d===null||typeof d!="object"||d.behavior===void 0||d.behavior==="auto"||d.behavior==="instant")return!0;if(typeof d=="object"&&d.behavior==="smooth")return!1;throw new TypeError("behavior member of ScrollOptions "+d.behavior+" is not a valid value for enumeration ScrollBehavior.")}function p(d,m){if(m==="Y")return d.clientHeight+f1?1:g,b=v(g),y=d.startX+(d.x-d.startX)*b,T=d.startY+(d.y-d.startY)*b,d.method.call(d.scrollable,y,T),(y!==d.x||T!==d.y)&&i.requestAnimationFrame(k.bind(i,d))}function w(d,m,b){var y,T,g,S,B=l();d===e.body?(y=i,T=i.scrollX||i.pageXOffset,g=i.scrollY||i.pageYOffset,S=a.scroll):(y=d,T=d.scrollLeft,g=d.scrollTop,S=u),k({scrollable:y,method:S,startTime:B,startX:T,startY:g,x:m,y:b})}i.scroll=i.scrollTo=function(){if(arguments[0]!==void 0){if(h(arguments[0])===!0){a.scroll.call(i,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:i.scrollX||i.pageXOffset,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:i.scrollY||i.pageYOffset);return}w.call(i,e.body,arguments[0].left!==void 0?~~arguments[0].left:i.scrollX||i.pageXOffset,arguments[0].top!==void 0?~~arguments[0].top:i.scrollY||i.pageYOffset)}},i.scrollBy=function(){if(arguments[0]!==void 0){if(h(arguments[0])){a.scrollBy.call(i,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:0,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:0);return}w.call(i,e.body,~~arguments[0].left+(i.scrollX||i.pageXOffset),~~arguments[0].top+(i.scrollY||i.pageYOffset))}},r.prototype.scroll=r.prototype.scrollTo=function(){if(arguments[0]!==void 0){if(h(arguments[0])===!0){if(typeof arguments[0]=="number"&&arguments[1]===void 0)throw new SyntaxError("Value could not be converted");a.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left:typeof arguments[0]!="object"?~~arguments[0]:this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top:arguments[1]!==void 0?~~arguments[1]:this.scrollTop);return}var d=arguments[0].left,m=arguments[0].top;w.call(this,this,typeof d=="undefined"?this.scrollLeft:~~d,typeof m=="undefined"?this.scrollTop:~~m)}},r.prototype.scrollBy=function(){if(arguments[0]!==void 0){if(h(arguments[0])===!0){a.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop);return}this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior})}},r.prototype.scrollIntoView=function(){if(h(arguments[0])===!0){a.scrollIntoView.call(this,arguments[0]===void 0?!0:arguments[0]);return}var d=A(this),m=d.getBoundingClientRect(),b=this.getBoundingClientRect();d!==e.body?(w.call(this,d,d.scrollLeft+b.left-m.left,d.scrollTop+b.top-m.top),i.getComputedStyle(d).position!=="fixed"&&i.scrollBy({left:m.left,top:m.top,behavior:"smooth"})):i.scrollBy({left:b.left,top:b.top,behavior:"smooth"})}}s.exports={polyfill:t}})()}),pi=Wt.polyfill,je=function(s){Dt(t,s);var n=Pt(t);function t(){var i,e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return G(this,t),i=n.call(this,e),i.resetNativeScroll&&(history.scrollRestoration&&(history.scrollRestoration="manual"),window.scrollTo(0,0)),window.addEventListener("scroll",i.checkScroll,!1),window.smoothscrollPolyfill===void 0&&(window.smoothscrollPolyfill=Wt,window.smoothscrollPolyfill.polyfill()),i}return $(t,[{key:"init",value:function(){this.instance.scroll.y=window.pageYOffset,this.addElements(),this.detectElements(),P(M(t.prototype),"init",this).call(this)}},{key:"checkScroll",value:function(){var e=this;P(M(t.prototype),"checkScroll",this).call(this),this.getDirection&&this.addDirection(),this.getSpeed&&(this.addSpeed(),this.speedTs=Date.now()),this.instance.scroll.y=window.pageYOffset,Object.entries(this.els).length&&(this.hasScrollTicking||(requestAnimationFrame(function(){e.detectElements()}),this.hasScrollTicking=!0))}},{key:"addDirection",value:function(){window.pageYOffset>this.instance.scroll.y?this.instance.direction!=="down"&&(this.instance.direction="down"):window.pageYOffset1&&arguments[1]!==void 0?arguments[1]:{},o=parseInt(r.offset)||0,a=r.callback?r.callback:!1;if(typeof e=="string"){if(e==="top")e=this.html;else if(e==="bottom")e=this.html.offsetHeight-window.innerHeight;else if(e=document.querySelector(e),!e)return}else if(typeof e=="number")e=parseInt(e);else if(!(e&&e.tagName)){console.warn("`target` parameter is not valid");return}typeof e!="number"?o=e.getBoundingClientRect().top+o+this.instance.scroll.y:o=e+o;var l=function(){return parseInt(window.pageYOffset)===parseInt(o)};if(a)if(l()){a();return}else{var c=function f(){l()&&(window.removeEventListener("scroll",f),a())};window.addEventListener("scroll",c)}window.scrollTo({top:o,behavior:r.duration===0?"auto":"smooth"})}},{key:"update",value:function(){this.addElements(),this.detectElements()}},{key:"destroy",value:function(){P(M(t.prototype),"destroy",this).call(this),window.removeEventListener("scroll",this.checkScroll,!1)}}]),t}(Rt);var Mt=Object.getOwnPropertySymbols,We=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;function ze(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function Ye(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var n={},t=0;t<10;t++)n["_"+String.fromCharCode(t)]=t;var i=Object.getOwnPropertyNames(n).map(function(r){return n[r]});if(i.join("")!=="0123456789")return!1;var e={};return"abcdefghijklmnopqrst".split("").forEach(function(r){e[r]=r}),Object.keys(Object.assign({},e)).join("")==="abcdefghijklmnopqrst"}catch(r){return!1}}var Ne=Ye()?Object.assign:function(s,n){for(var t,i=ze(s),e,r=1;r=c;1<=c?l++:l--)f.push(null);return f}.call(this),this.lastDownDeltas=function(){var l,c,f;for(f=[],l=1,c=this.stability*2;1<=c?l<=c:l>=c;1<=c?l++:l--)f.push(null);return f}.call(this),this.deltasTimestamp=function(){var l,c,f;for(f=[],l=1,c=this.stability*2;1<=c?l<=c:l>=c;1<=c?l++:l--)f.push(null);return f}.call(this)}return i.prototype.check=function(e){var r;return e=e.originalEvent||e,e.wheelDelta!=null?r=e.wheelDelta:e.deltaY!=null?r=e.deltaY*-40:(e.detail!=null||e.detail===0)&&(r=e.detail*-40),this.deltasTimestamp.push(Date.now()),this.deltasTimestamp.shift(),r>0?(this.lastUpDeltas.push(r),this.lastUpDeltas.shift(),this.isInertia(1)):(this.lastDownDeltas.push(r),this.lastDownDeltas.shift(),this.isInertia(-1))},i.prototype.isInertia=function(e){var r,o,a,l,c,f,u;return r=e===-1?this.lastDownDeltas:this.lastUpDeltas,r[0]===null?e:this.deltasTimestamp[this.stability*2-2]+this.delay>Date.now()&&r[0]===r[this.stability*2-1]?!1:(a=r.slice(0,this.stability),o=r.slice(this.stability,this.stability*2),u=a.reduce(function(v,h){return v+h}),c=o.reduce(function(v,h){return v+h}),f=u/a.length,l=c/o.length,Math.abs(f)1,hasPointer:!!window.navigator.msPointerEnabled,hasKeyDown:"onkeydown"in document,isFirefox:navigator.userAgent.indexOf("Firefox")>-1}}(),qe=Object.prototype.toString,Fe=Object.prototype.hasOwnProperty,Xe=function(s){if(!s)return console.warn("bindAll requires at least one argument.");var n=Array.prototype.slice.call(arguments,1);if(n.length===0)for(var t in s)Fe.call(s,t)&&typeof s[t]=="function"&&qe.call(s[t])=="[object Function]"&&n.push(t);for(var i=0;i0?t=o:n=o;while(Math.abs(r)>Qe&&++a=Je?ni(l,h,n,i):p===0?h:ii(l,c,c+X,n,i)}return function(c){return c===0?0:c===1?1:K(a(c),t,e)}},I={LEFT:37,UP:38,RIGHT:39,DOWN:40,SPACE:32,TAB:9,PAGEUP:33,PAGEDOWN:34,HOME:36,END:35},oi=function(s){Dt(t,s);var n=Pt(t);function t(){var i,e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return G(this,t),history.scrollRestoration&&(history.scrollRestoration="manual"),window.scrollTo(0,0),i=n.call(this,e),i.inertia&&(i.lerp=i.inertia*.1),i.isScrolling=!1,i.isDraggingScrollbar=!1,i.isTicking=!1,i.hasScrollTicking=!1,i.parallaxElements={},i.stop=!1,i.scrollbarContainer=e.scrollbarContainer,i.checkKey=i.checkKey.bind(It(i)),window.addEventListener("keydown",i.checkKey,!1),i}return $(t,[{key:"init",value:function(){var e=this;this.html.classList.add(this.smoothClass),this.html.setAttribute("data-".concat(this.name,"-direction"),this.direction),this.instance=it({delta:{x:this.initPosition.x,y:this.initPosition.y},scroll:{x:this.initPosition.x,y:this.initPosition.y}},this.instance),this.vs=new $e({el:this.scrollFromAnywhere?document:this.el,mouseMultiplier:navigator.platform.indexOf("Win")>-1?1:.4,firefoxMultiplier:this.firefoxMultiplier,touchMultiplier:this.touchMultiplier,useKeyboard:!1,passive:!0}),this.vs.on(function(r){e.stop||e.isDraggingScrollbar||requestAnimationFrame(function(){e.updateDelta(r),e.isScrolling||e.startScrolling()})}),this.setScrollLimit(),this.initScrollBar(),this.addSections(),this.addElements(),this.checkScroll(!0),this.transformElements(!0,!0),P(M(t.prototype),"init",this).call(this)}},{key:"setScrollLimit",value:function(){if(this.instance.limit.y=this.el.offsetHeight-this.windowHeight,this.direction==="horizontal"){for(var e=0,r=this.el.children,o=0;othis.instance.limit[this.directionAxis]&&(this.instance.delta[this.directionAxis]=this.instance.limit[this.directionAxis]),this.stopScrolling(),this.isScrolling=!0,this.checkScroll(),this.html.classList.add(this.scrollingClass)}},{key:"isActiveElementScrollSensitive",value:function(){return!(document.activeElement instanceof HTMLInputElement)&&!(document.activeElement instanceof HTMLTextAreaElement)&&!(document.activeElement instanceof HTMLButtonElement)&&!(document.activeElement instanceof HTMLSelectElement)}},{key:"checkScroll",value:function(){var e=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(r||this.isScrolling||this.isDraggingScrollbar){this.hasScrollTicking||(this.checkScrollRaf=requestAnimationFrame(function(){return e.checkScroll()}),this.hasScrollTicking=!0),this.updateScroll();var o=Math.abs(this.instance.delta[this.directionAxis]-this.instance.scroll[this.directionAxis]),a=Date.now()-this.startScrollTs;if(!this.animatingScroll&&a>100&&(o<.5&&this.instance.delta[this.directionAxis]!=0||o<.5&&this.instance.delta[this.directionAxis]==0)&&this.stopScrolling(),Object.entries(this.sections).forEach(function(c){var f=j(c,2),u=f[0],v=f[1];v.persistent||e.instance.scroll[e.directionAxis]>v.offset[e.directionAxis]&&e.instance.scroll[e.directionAxis]this.instance.limit[this.directionAxis]&&(this.instance.delta[this.directionAxis]=this.instance.limit[this.directionAxis])}},{key:"updateScroll",value:function(e){this.isScrolling||this.isDraggingScrollbar?this.instance.scroll[this.directionAxis]=nt(this.instance.scroll[this.directionAxis],this.instance.delta[this.directionAxis],this.lerp):this.instance.scroll[this.directionAxis]>this.instance.limit[this.directionAxis]?this.setScroll(this.instance.scroll[this.directionAxis],this.instance.limit[this.directionAxis]):this.instance.scroll.y<0?this.setScroll(this.instance.scroll[this.directionAxis],0):this.setScroll(this.instance.scroll[this.directionAxis],this.instance.delta[this.directionAxis])}},{key:"addDirection",value:function(){this.instance.delta.y>this.instance.scroll.y?this.instance.direction!=="down"&&(this.instance.direction="down"):this.instance.delta.ythis.instance.scroll.x?this.instance.direction!=="right"&&(this.instance.direction="right"):this.instance.delta.x0&&a0&&o1&&arguments[1]!==void 0?arguments[1]:!1,a=this.instance.scroll.x+this.windowWidth,l=this.instance.scroll.y+this.windowHeight,c={x:this.instance.scroll.x+this.windowMiddle.x,y:this.instance.scroll.y+this.windowMiddle.y};Object.entries(this.parallaxElements).forEach(function(f){var u=j(f,2),v=u[0],h=u[1],p=!1;if(e&&(p=0),h.inView||o)switch(h.position){case"top":p=r.instance.scroll[r.directionAxis]*-h.speed;break;case"elementTop":p=(l-h.top)*-h.speed;break;case"bottom":p=(r.instance.limit[r.directionAxis]-l+r.windowHeight)*h.speed;break;case"left":p=r.instance.scroll[r.directionAxis]*-h.speed;break;case"elementLeft":p=(a-h.left)*-h.speed;break;case"right":p=(r.instance.limit[r.directionAxis]-a+r.windowHeight)*h.speed;break;default:p=(c[r.directionAxis]-h.middle[r.directionAxis])*-h.speed;break}h.sticky&&(h.inView?r.direction==="horizontal"?p=r.instance.scroll.x-h.left+window.innerWidth:p=r.instance.scroll.y-h.top+window.innerHeight:r.direction==="horizontal"?r.instance.scroll.xh.right&&r.instance.scroll.x>h.right+100?p=h.right-h.left+window.innerWidth:p=!1:r.instance.scroll.yh.bottom&&r.instance.scroll.y>h.bottom+100?p=h.bottom-h.top+window.innerHeight:p=!1),p!==!1&&(h.direction==="horizontal"||r.direction==="horizontal"&&h.direction!=="vertical"?r.transform(h.el,p,0,e?!1:h.delay):r.transform(h.el,0,p,e?!1:h.delay))})}},{key:"scrollTo",value:function(e){var r=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=parseInt(o.offset)||0,l=isNaN(parseInt(o.duration))?1e3:parseInt(o.duration),c=o.easing||[.25,0,.35,1],f=!!o.disableLerp,u=o.callback?o.callback:!1;if(c=ri.apply(void 0,Oe(c)),typeof e=="string"){if(e==="top")e=0;else if(e==="bottom")e=this.instance.limit.y;else if(e==="left")e=0;else if(e==="right")e=this.instance.limit.x;else if(e=document.querySelector(e),!e)return}else if(typeof e=="number")e=parseInt(e);else if(!(e&&e.tagName)){console.warn("`target` parameter is not valid");return}if(typeof e!="number"){var v=st(e).includes(this.el);if(!v)return;var h=e.getBoundingClientRect(),p=h.top,C=h.left,L=st(e),A=L.find(function(g){return Object.entries(r.sections).map(function(S){var B=j(S,2),J=B[0],N=B[1];return N}).find(function(S){return S.el==g})}),k=0;A?k=O(A)[this.directionAxis]:k=-this.instance.scroll[this.directionAxis],this.direction==="horizontal"?a=C+a-k:a=p+a-k}else a=e+a;var w=parseFloat(this.instance.delta[this.directionAxis]),d=Math.max(0,Math.min(a,this.instance.limit[this.directionAxis])),m=d-w,b=function(S){f?r.direction==="horizontal"?r.setScroll(w+m*S,r.instance.delta.y):r.setScroll(r.instance.delta.x,w+m*S):r.instance.delta[r.directionAxis]=w+m*S};this.animatingScroll=!0,this.stopScrolling(),this.startScrolling();var y=Date.now(),T=function g(){var S=(Date.now()-y)/l;S>1?(b(1),r.animatingScroll=!1,l==0&&r.update(),u&&u()):(r.scrollToRaf=requestAnimationFrame(g),b(c(S)))};T()}},{key:"update",value:function(){this.setScrollLimit(),this.addSections(),this.addElements(),this.detectElements(),this.updateScroll(),this.transformElements(!0),this.reinitScrollBar(),this.checkScroll(!0)}},{key:"startScroll",value:function(){this.stop=!1}},{key:"stopScroll",value:function(){this.stop=!0}},{key:"setScroll",value:function(e,r){this.instance=it(it({},this.instance),{},{scroll:{x:e,y:r},delta:{x:e,y:r},speed:0})}},{key:"destroy",value:function(){P(M(t.prototype),"destroy",this).call(this),this.stopScrolling(),this.html.classList.remove(this.smoothClass),this.vs.destroy(),this.destroyScrollBar(),window.removeEventListener("keydown",this.checkKey,!1)}}]),t}(Rt),ai=function(){function s(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};G(this,s),this.options=n,Object.assign(this,W,n),this.smartphone=W.smartphone,n.smartphone&&Object.assign(this.smartphone,n.smartphone),this.tablet=W.tablet,n.tablet&&Object.assign(this.tablet,n.tablet),!this.smooth&&this.direction=="horizontal"&&console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible"),!this.tablet.smooth&&this.tablet.direction=="horizontal"&&console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible (tablet)"),!this.smartphone.smooth&&this.smartphone.direction=="horizontal"&&console.warn("\u{1F6A8} `smooth:false` & `horizontal` direction are not yet compatible (smartphone)"),this.init()}return $(s,[{key:"init",value:function(){if(this.options.isMobile=/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||window.innerWidth=this.tablet.breakpoint,this.smooth&&!this.options.isMobile||this.tablet.smooth&&this.options.isTablet||this.smartphone.smooth&&this.options.isMobile&&!this.options.isTablet?this.scroll=new oi(this.options):this.scroll=new je(this.options),this.scroll.init(),window.location.hash){var t=window.location.hash.slice(1,window.location.hash.length),i=document.getElementById(t);i&&this.scroll.scrollTo(i)}}},{key:"update",value:function(){this.scroll.update()}},{key:"start",value:function(){this.scroll.startScroll()}},{key:"stop",value:function(){this.scroll.stopScroll()}},{key:"scrollTo",value:function(t,i){this.scroll.scrollTo(t,i)}},{key:"setScroll",value:function(t,i){this.scroll.setScroll(t,i)}},{key:"on",value:function(t,i){this.scroll.setEvents(t,i)}},{key:"off",value:function(t,i){this.scroll.unsetEvents(t,i)}},{key:"destroy",value:function(){this.scroll.destroy()}}]),s}();var Vt=ai;var at=class extends F{constructor(s){super(s)}init(){this.scroll=new Vt({el:this.el,smooth:!0}),this.scroll.on("call",(s,n,t,i)=>{this.call(s[0],{way:n,obj:t},s[1],s[2])}),this.scroll.on("scroll",s=>{})}lazyLoad(s){xt(s.obj.el,null,()=>{})}destroy(){this.scroll.destroy()}};var Xt=oe(Ft(),1);function Kt(){(0,Xt.default)()}var Y=document.documentElement,Ai=document.body,Ci=Y.hasAttribute("data-debug");var Gt=new kt({modules:lt});window.onload=s=>{let n=document.getElementById("main-css");n?n.isLoaded?$t():n.addEventListener("load",t=>{$t()}):console.warn('The "main-css" stylesheet not found')};function $t(){Kt(),Gt.init(Gt),Y.classList.add("is-loaded"),Y.classList.add("is-ready"),Y.classList.remove("is-loading")}})(); /* object-assign (c) Sindre Sorhus diff --git a/www/assets/scripts/app.js.map b/www/assets/scripts/app.js.map index c5254735..2fbd004f 100644 --- a/www/assets/scripts/app.js.map +++ b/www/assets/scripts/app.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../../../node_modules/svg4everybody/dist/svg4everybody.js", "../../../node_modules/modujs/dist/main.esm.js", "../../../assets/scripts/modules.js", "../../../node_modules/modularload/dist/main.esm.js", "../../../assets/scripts/modules/Load.js", "../../../assets/scripts/utils/image.js", "../../../node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js", "../../../assets/scripts/modules/Scroll.js", "../../../assets/scripts/globals.js", "../../../assets/scripts/utils/environment.js", "../../../assets/scripts/app.js"], "sourcesContent": ["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.mAttr = 'data-' + options.dataName;\n this.mCaptureEvents = ['mouseenter', 'mouseleave'];\n this.el = options.el;\n }\n\n _createClass(_default, [{\n key: \"mInit\",\n value: function mInit(modules) {\n var _this = this;\n\n this.modules = modules;\n this.mCheckEventTarget = this.mCheckEventTarget.bind(this);\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this.mAddEvent(event);\n });\n }\n }\n }, {\n key: \"mUpdate\",\n value: function mUpdate(modules) {\n this.modules = modules;\n }\n }, {\n key: \"mDestroy\",\n value: function mDestroy() {\n var _this2 = this;\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this2.mRemoveEvent(event);\n });\n }\n }\n }, {\n key: \"mAddEvent\",\n value: function mAddEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.addEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mRemoveEvent\",\n value: function mRemoveEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.removeEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mCheckEventTarget\",\n value: function mCheckEventTarget(e) {\n var event = this.events[e.type];\n\n if (typeof event === \"string\") {\n this[event](e);\n } else {\n var data = '[' + this.mAttr + ']';\n var target = e.target;\n\n if (this.mCaptureEvents.includes(e.type)) {\n if (target.matches(data)) {\n this.mCallEventMethod(e, event, target);\n }\n } else {\n while (target && target !== document) {\n if (target.matches(data)) {\n if (this.mCallEventMethod(e, event, target) != 'undefined') {\n break;\n }\n }\n\n target = target.parentNode;\n }\n }\n }\n }\n }, {\n key: \"mCallEventMethod\",\n value: function mCallEventMethod(e, event, target) {\n var name = target.getAttribute(this.mAttr);\n\n if (event.hasOwnProperty(name)) {\n var method = event[name];\n\n if (!e.hasOwnProperty('currentTarget')) {\n Object.defineProperty(e, 'currentTarget', {\n value: target\n });\n }\n\n if (!e.hasOwnProperty('curTarget')) {\n Object.defineProperty(e, 'curTarget', {\n value: target\n }); // For IE 11\n }\n\n this[method](e);\n }\n }\n }, {\n key: \"$\",\n value: function $(query, context) {\n var classIndex = query.indexOf('.');\n var idIndex = query.indexOf('#');\n var attrIndex = query.indexOf('[');\n var indexes = [classIndex, idIndex, attrIndex].filter(function (index) {\n return index != -1;\n });\n var index = false;\n var name = query;\n var more = '';\n var parent = this.el;\n\n if (indexes.length) {\n index = Math.min.apply(Math, _toConsumableArray(indexes));\n name = query.slice(0, index);\n more = query.slice(index);\n }\n\n if (_typeof(context) == 'object') {\n parent = context;\n }\n\n return parent.querySelectorAll('[' + this.mAttr + '=' + name + ']' + more);\n }\n }, {\n key: \"parent\",\n value: function parent(query, context) {\n var data = '[' + this.mAttr + '=' + query + ']';\n var parent = context.parentNode;\n\n while (parent && parent !== document) {\n if (parent.matches(data)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n }\n }, {\n key: \"getData\",\n value: function getData(name, context) {\n var target = context || this.el;\n return target.getAttribute(this.mAttr + '-' + name);\n }\n }, {\n key: \"setData\",\n value: function setData(name, value, context) {\n var target = context || this.el;\n return target.setAttribute(this.mAttr + '-' + name, value);\n }\n }, {\n key: \"call\",\n value: function call(func, args, mod, id) {\n var _this3 = this;\n\n if (args && !mod) {\n mod = args;\n args = false;\n }\n\n if (this.modules[mod]) {\n if (id) {\n if (this.modules[mod][id]) {\n this.modules[mod][id][func](args);\n }\n } else {\n Object.keys(this.modules[mod]).forEach(function (id) {\n _this3.modules[mod][id][func](args);\n });\n }\n }\n }\n }, {\n key: \"on\",\n value: function on(e, mod, func, id) {\n var _this4 = this;\n\n if (this.modules[mod]) {\n if (id) {\n this.modules[mod][id].el.addEventListener(e, function (o) {\n return func(o);\n });\n } else {\n Object.keys(this.modules[mod]).forEach(function (i) {\n _this4.modules[mod][i].el.addEventListener(e, function (o) {\n return func(o);\n });\n });\n }\n }\n }\n }, {\n key: \"init\",\n value: function init() {}\n }, {\n key: \"destroy\",\n value: function destroy() {}\n }]);\n\n return _default;\n}();\n\nvar _default$1 = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.app;\n this.modules = options.modules;\n this.currentModules = {};\n this.activeModules = {};\n this.newModules = {};\n this.moduleId = 0;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init(app, scope) {\n var _this = this;\n\n var container = scope || document;\n var elements = container.querySelectorAll('*');\n\n if (app && !this.app) {\n this.app = app;\n }\n\n this.activeModules['app'] = {\n 'app': this.app\n };\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var moduleExists = false;\n var dataName = i.name.split('-').splice(2);\n\n var moduleName = _this.toCamel(dataName);\n\n if (_this.modules[moduleName]) {\n moduleExists = true;\n } else if (_this.modules[_this.toUpper(moduleName)]) {\n moduleName = _this.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n var options = {\n el: el,\n name: moduleName,\n dataName: dataName.join('-')\n };\n var module = new _this.modules[moduleName](options);\n var id = i.value;\n\n if (!id) {\n _this.moduleId++;\n id = 'm' + _this.moduleId;\n el.setAttribute(i.name, id);\n }\n\n _this.addActiveModule(moduleName, id, module);\n\n var moduleId = moduleName + '-' + id;\n\n if (scope) {\n _this.newModules[moduleId] = module;\n } else {\n _this.currentModules[moduleId] = module;\n }\n }\n }\n });\n });\n Object.entries(this.currentModules).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n id = _ref2[0],\n module = _ref2[1];\n\n if (scope) {\n var split = id.split('-');\n var moduleName = split.shift();\n var moduleId = split.pop();\n\n _this.addActiveModule(moduleName, moduleId, module);\n } else {\n _this.initModule(module);\n }\n });\n }\n }, {\n key: \"initModule\",\n value: function initModule(module) {\n module.mInit(this.activeModules);\n module.init();\n }\n }, {\n key: \"addActiveModule\",\n value: function addActiveModule(name, id, module) {\n if (this.activeModules[name]) {\n Object.assign(this.activeModules[name], _defineProperty({}, id, module));\n } else {\n this.activeModules[name] = _defineProperty({}, id, module);\n }\n }\n }, {\n key: \"update\",\n value: function update(scope) {\n var _this2 = this;\n\n this.init(this.app, scope);\n Object.entries(this.currentModules).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n module = _ref4[1];\n\n module.mUpdate(_this2.activeModules);\n });\n Object.entries(this.newModules).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n module = _ref6[1];\n\n _this2.initModule(module);\n });\n Object.assign(this.currentModules, this.newModules);\n }\n }, {\n key: \"destroy\",\n value: function destroy(scope) {\n if (scope) {\n this.destroyScope(scope);\n } else {\n this.destroyModules();\n }\n }\n }, {\n key: \"destroyScope\",\n value: function destroyScope(scope) {\n var _this3 = this;\n\n var elements = scope.querySelectorAll('*');\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var id = i.value;\n var dataName = i.name.split('-').splice(2);\n var moduleName = _this3.toCamel(dataName) + '-' + id;\n var moduleExists = false;\n\n if (_this3.currentModules[moduleName]) {\n moduleExists = true;\n } else if (_this3.currentModules[_this3.toUpper(moduleName)]) {\n moduleName = _this3.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n _this3.destroyModule(_this3.currentModules[moduleName]);\n\n delete _this3.currentModules[moduleName];\n }\n }\n });\n });\n this.activeModules = {};\n this.newModules = {};\n }\n }, {\n key: \"destroyModules\",\n value: function destroyModules() {\n var _this4 = this;\n\n Object.entries(this.currentModules).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n id = _ref8[0],\n module = _ref8[1];\n\n _this4.destroyModule(module);\n });\n this.currentModules = [];\n }\n }, {\n key: \"destroyModule\",\n value: function destroyModule(module) {\n module.mDestroy();\n module.destroy();\n }\n }, {\n key: \"toCamel\",\n value: function toCamel(arr) {\n var _this5 = this;\n\n return arr.reduce(function (a, b) {\n return a + _this5.toUpper(b);\n });\n }\n }, {\n key: \"toUpper\",\n value: function toUpper(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$1;\nexport { _default as module };\n", "export {default as Load} from './modules/Load';\nexport {default as Scroll} from './modules/Scroll';\n", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.defaults = {\n name: 'load',\n loadingClass: 'is-loading',\n loadedClass: 'is-loaded',\n readyClass: 'is-ready',\n transitionsPrefix: 'is-',\n transitionsHistory: true,\n enterDelay: 0,\n exitDelay: 0,\n loadedDelay: 0,\n isLoaded: false,\n isEntered: false,\n isUrl: false,\n transitionContainer: null,\n popstateIgnore: false\n };\n Object.assign(this, this.defaults, options);\n this.options = options;\n this.namespace = 'modular';\n this.html = document.documentElement;\n this.href = window.location.href;\n this.container = 'data-' + this.name + '-container';\n this.subContainer = false;\n this.prevTransition = null;\n this.loadAttributes = ['src', 'srcset', 'style', 'href'];\n this.isInserted = false;\n this.isLoading = false;\n this.enterTimeout = false;\n this.controller = new AbortController();\n this.classContainer = this.html;\n this.isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1 ? true : false;\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n window.addEventListener('popstate', function (e) {\n return _this.checkState(e);\n }, false);\n this.html.addEventListener('click', function (e) {\n return _this.checkClick(e);\n }, false);\n this.loadEls(document);\n }\n }, {\n key: \"checkClick\",\n value: function checkClick(e) {\n if (!e.ctrlKey && !e.metaKey) {\n var target = e.target;\n\n while (target && target !== document) {\n if (target.matches('a') && target.getAttribute('download') == null) {\n var href = target.getAttribute('href');\n\n if (!href.startsWith('#') && !href.startsWith('mailto:') && !href.startsWith('tel:')) {\n e.preventDefault();\n this.reset();\n this.getClickOptions(target);\n }\n\n break;\n }\n\n target = target.parentNode;\n }\n }\n }\n }, {\n key: \"checkState\",\n value: function checkState() {\n if (typeof this.popstateIgnore === 'string' && window.location.href.indexOf(this.popstateIgnore) > -1) {\n return;\n }\n\n this.reset();\n this.getStateOptions();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.isLoading) {\n this.controller.abort();\n this.isLoading = false;\n this.controller = new AbortController();\n }\n\n window.clearTimeout(this.enterTimeout);\n\n if (this.isInserted) {\n this.removeContainer();\n }\n\n this.classContainer = this.html;\n Object.assign(this, this.defaults, this.options);\n }\n }, {\n key: \"getClickOptions\",\n value: function getClickOptions(link) {\n this.transition = link.getAttribute('data-' + this.name);\n this.isUrl = link.getAttribute('data-' + this.name + '-url');\n var href = link.getAttribute('href');\n var target = link.getAttribute('target');\n\n if (target == '_blank') {\n window.open(href, '_blank');\n return;\n }\n\n if (this.transition == 'false') {\n window.location = href;\n return;\n }\n\n this.setOptions(href, true);\n }\n }, {\n key: \"getStateOptions\",\n value: function getStateOptions() {\n if (this.transitionsHistory) {\n this.transition = history.state;\n } else {\n this.transition = false;\n }\n\n var href = window.location.href;\n this.setOptions(href);\n }\n }, {\n key: \"goTo\",\n value: function goTo(href, transition, isUrl) {\n this.reset();\n this.transition = transition;\n this.isUrl = isUrl;\n this.setOptions(href, true);\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(href, push) {\n var container = '[' + this.container + ']';\n var oldContainer;\n\n if (this.transition && this.transition != 'true') {\n this.transitionContainer = '[' + this.container + '=\"' + this.transition + '\"]';\n this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass;\n this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass;\n this.readyClass = this.transitions[this.transition].readyClass || this.readyClass;\n this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix;\n this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay;\n this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay;\n this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay;\n oldContainer = document.querySelector(this.transitionContainer);\n }\n\n if (oldContainer) {\n container = this.transitionContainer;\n this.oldContainer = oldContainer;\n this.classContainer = this.oldContainer.parentNode;\n\n if (!this.subContainer) {\n history.replaceState(this.transition, null, this.href);\n }\n\n this.subContainer = true;\n } else {\n this.oldContainer = document.querySelector(container);\n\n if (this.subContainer) {\n history.replaceState(this.prevTransition, null, this.href);\n }\n\n this.subContainer = false;\n }\n\n this.href = href;\n this.parentContainer = this.oldContainer.parentNode;\n\n if (this.isUrl === '' || this.isUrl != null && this.isUrl != 'false' && this.isUrl != false) {\n history.pushState(this.transition, null, href);\n } else {\n this.oldContainer.classList.add('is-old');\n this.setLoading();\n this.startEnterDelay();\n this.loadHref(href, container, push);\n }\n }\n }, {\n key: \"setLoading\",\n value: function setLoading() {\n this.classContainer.classList.remove(this.loadedClass, this.readyClass);\n this.classContainer.classList.add(this.loadingClass);\n this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition);\n\n if (this.transition) {\n this.classContainer.classList.add(this.transitionsPrefix + this.transition);\n }\n\n if (!this.subContainer) {\n this.prevTransition = this.transition;\n }\n\n var loadingEvent = new Event(this.namespace + 'loading');\n window.dispatchEvent(loadingEvent);\n }\n }, {\n key: \"startEnterDelay\",\n value: function startEnterDelay() {\n var _this2 = this;\n\n this.enterTimeout = window.setTimeout(function () {\n _this2.isEntered = true;\n\n if (_this2.isLoaded) {\n _this2.transitionContainers();\n }\n }, this.enterDelay);\n }\n }, {\n key: \"loadHref\",\n value: function loadHref(href, container, push) {\n var _this3 = this;\n\n this.isLoading = true;\n var signal = this.controller.signal;\n fetch(href, {\n signal: signal\n }).then(function (response) {\n return response.text();\n }).then(function (data) {\n if (push) {\n history.pushState(_this3.transition, null, href);\n }\n\n var parser = new DOMParser();\n _this3.data = parser.parseFromString(data, 'text/html');\n _this3.newContainer = _this3.data.querySelector(container);\n\n _this3.newContainer.classList.add('is-new');\n\n _this3.parentNewContainer = _this3.newContainer.parentNode;\n\n _this3.hideContainer();\n\n _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer);\n\n _this3.isInserted = true;\n\n _this3.setSvgs();\n\n _this3.isLoaded = true;\n\n if (_this3.isEntered) {\n _this3.transitionContainers();\n }\n\n _this3.loadEls(_this3.newContainer);\n\n _this3.isLoading = false;\n })[\"catch\"](function (err) {\n window.location = href;\n });\n }\n }, {\n key: \"transitionContainers\",\n value: function transitionContainers() {\n var _this4 = this;\n\n this.setAttributes();\n this.showContainer();\n this.setLoaded();\n setTimeout(function () {\n _this4.removeContainer();\n\n _this4.setReady();\n }, this.exitDelay);\n }\n }, {\n key: \"setSvgs\",\n value: function setSvgs() {\n if (this.isChrome) {\n var svgs = this.newContainer.querySelectorAll('use');\n\n if (svgs.length) {\n svgs.forEach(function (svg) {\n var xhref = svg.getAttribute('xlink:href');\n\n if (xhref) {\n svg.parentNode.innerHTML = '';\n } else {\n var href = svg.getAttribute('href');\n if (href) svg.parentNode.innerHTML = '';\n }\n });\n }\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var _this5 = this;\n\n var title = this.data.getElementsByTagName('title')[0];\n var newDesc = this.data.head.querySelector('meta[name=\"description\"]');\n var oldDesc = document.head.querySelector('meta[name=\"description\"]');\n var container;\n var newContainer;\n\n if (this.subContainer) {\n newContainer = this.parentNewContainer;\n container = document.querySelector(this.transitionContainer).parentNode;\n } else {\n newContainer = this.data.querySelector('html');\n container = document.querySelector('html');\n }\n\n var datas = Object.assign({}, newContainer.dataset);\n if (title) document.title = title.innerText;\n if (oldDesc && newDesc) oldDesc.setAttribute('content', newDesc.getAttribute('content'));\n\n if (datas) {\n Object.entries(datas).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n container.setAttribute('data-' + _this5.toDash(key), val);\n });\n }\n }\n }, {\n key: \"toDash\",\n value: function toDash(str) {\n return str.split(/(?=[A-Z])/).join('-').toLowerCase();\n }\n }, {\n key: \"hideContainer\",\n value: function hideContainer() {\n this.newContainer.style.visibility = 'hidden';\n this.newContainer.style.height = 0;\n this.newContainer.style.overflow = 'hidden';\n }\n }, {\n key: \"showContainer\",\n value: function showContainer() {\n this.newContainer.style.visibility = '';\n this.newContainer.style.height = '';\n this.newContainer.style.overflow = '';\n }\n }, {\n key: \"loadEls\",\n value: function loadEls(container) {\n var _this6 = this;\n\n var promises = [];\n this.loadAttributes.forEach(function (attr) {\n var data = 'data-' + _this6.name + '-' + attr;\n var els = container.querySelectorAll('[' + data + ']');\n\n if (els.length) {\n els.forEach(function (el) {\n var elData = el.getAttribute(data);\n el.setAttribute(attr, elData);\n\n if (attr == 'src' || attr == 'srcset') {\n var promise = new Promise(function (resolve) {\n el.onload = function () {\n return resolve(el);\n };\n });\n promises.push(promise);\n }\n });\n }\n });\n Promise.all(promises).then(function (val) {\n var imagesEvent = new Event(_this6.namespace + 'images');\n window.dispatchEvent(imagesEvent);\n });\n }\n }, {\n key: \"setLoaded\",\n value: function setLoaded() {\n var _this7 = this;\n\n this.classContainer.classList.remove(this.loadingClass);\n setTimeout(function () {\n _this7.classContainer.classList.add(_this7.loadedClass);\n }, this.loadedDelay);\n var loadedEvent = new Event(this.namespace + 'loaded');\n window.dispatchEvent(loadedEvent);\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n this.parentContainer.removeChild(this.oldContainer);\n this.newContainer.classList.remove('is-new');\n this.isInserted = false;\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n this.classContainer.classList.add(this.readyClass);\n var readyEvent = new Event(this.namespace + 'ready');\n window.dispatchEvent(readyEvent);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n var _this8 = this;\n\n window.addEventListener(this.namespace + event, function () {\n switch (event) {\n case 'loading':\n return func(_this8.transition, _this8.oldContainer);\n\n case 'loaded':\n return func(_this8.transition, _this8.oldContainer, _this8.newContainer);\n\n case 'ready':\n return func(_this8.transition, _this8.newContainer);\n\n default:\n return func();\n }\n }, false);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default;\n", "import { module } from 'modujs';\nimport modularLoad from 'modularload';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n const load = new modularLoad({\n enterDelay: 0,\n transitions: {\n customTransition: {}\n }\n });\n\n load.on('loaded', (transition, oldContainer, newContainer) => {\n this.call('destroy', oldContainer, 'app');\n this.call('update', newContainer, 'app');\n });\n }\n}\n", "const LAZY_LOADED_IMAGES = []\n\nexport function loadImage(url, options = {}) {\n return new Promise((resolve, reject) => {\n const $img = new Image();\n\n if (options.crossOrigin) {\n $img.crossOrigin = options.crossOrigin;\n }\n\n const loadCallback = () => {\n resolve({\n element: $img,\n ...getImageMetadata($img),\n });\n }\n\n if($img.decode) {\n $img.src = url\n $img.decode().then(loadCallback).catch(e => {\n reject(e)\n })\n } else {\n $img.onload = loadCallback\n $img.onerror = (e) => {\n reject(e);\n };\n $img.src = url\n }\n });\n}\n\nexport function getImageMetadata($img) {\n return {\n url: $img.src,\n width: $img.naturalWidth,\n height: $img.naturalHeight,\n ratio: $img.naturalWidth / $img.naturalHeight,\n };\n}\n\n/**\n * Lazy load the given image.\n *\n * @param {HTMLImageElement} $el - The image element.\n * @param {?string} url - The URI to lazy load into $el.\n * If falsey, the value of the `data-src` attribute on $el will be used as the URI.\n * @param {?function} callback - A function to call when the image is loaded.\n */\nexport async function lazyLoadImage($el, url, callback) {\n let src = url ? url : $el.dataset.src\n\n let loadedImage = LAZY_LOADED_IMAGES.find(image => image.url === src)\n\n if (!loadedImage) {\n loadedImage = await loadImage(src)\n\n if (!loadedImage.url) {\n return;\n }\n\n LAZY_LOADED_IMAGES.push(loadedImage)\n }\n\n if($el.src === src) {\n return\n }\n\n if ($el.tagName === 'IMG') {\n $el.src = loadedImage.url;\n } else {\n $el.style.backgroundImage = `url(${loadedImage.url})`;\n }\n\n requestAnimationFrame(() => {\n let lazyParent = $el.closest('.c-lazy');\n\n if(lazyParent) {\n lazyParent.classList.add('-lazy-loaded')\n lazyParent.style.backgroundImage = ''\n }\n\n $el.classList.add('-lazy-loaded')\n\n callback?.()\n })\n}\n", "/* locomotive-scroll v4.1.3 | MIT License | https://github.com/locomotivemtl/locomotive-scroll */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar defaults = {\n el: document,\n name: 'scroll',\n offset: [0, 0],\n repeat: false,\n smooth: false,\n initPosition: {\n x: 0,\n y: 0\n },\n direction: 'vertical',\n gestureDirection: 'vertical',\n reloadOnContextChange: false,\n lerp: 0.1,\n \"class\": 'is-inview',\n scrollbarContainer: false,\n scrollbarClass: 'c-scrollbar',\n scrollingClass: 'has-scroll-scrolling',\n draggingClass: 'has-scroll-dragging',\n smoothClass: 'has-scroll-smooth',\n initClass: 'has-scroll-init',\n getSpeed: false,\n getDirection: false,\n scrollFromAnywhere: false,\n multiplier: 1,\n firefoxMultiplier: 50,\n touchMultiplier: 2,\n resetNativeScroll: true,\n tablet: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical',\n breakpoint: 1024\n },\n smartphone: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical'\n }\n};\n\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.namespace = 'locomotive';\n this.html = document.documentElement;\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.els = {};\n this.currentElements = {};\n this.listeners = {};\n this.hasScrollTicking = false;\n this.hasCallEventSet = false;\n this.checkScroll = this.checkScroll.bind(this);\n this.checkResize = this.checkResize.bind(this);\n this.checkEvent = this.checkEvent.bind(this);\n this.instance = {\n scroll: {\n x: 0,\n y: 0\n },\n limit: {\n x: this.html.offsetWidth,\n y: this.html.offsetHeight\n },\n currentElements: this.currentElements\n };\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (this.isMobile) this.direction = this[this.context].direction;\n\n if (this.direction === 'horizontal') {\n this.directionAxis = 'x';\n } else {\n this.directionAxis = 'y';\n }\n\n if (this.getDirection) {\n this.instance.direction = null;\n }\n\n if (this.getDirection) {\n this.instance.speed = 0;\n }\n\n this.html.classList.add(this.initClass);\n window.addEventListener('resize', this.checkResize, false);\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.initEvents();\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n this.dispatchScroll();\n }\n }, {\n key: \"checkResize\",\n value: function checkResize() {\n var _this = this;\n\n if (!this.resizeTick) {\n this.resizeTick = true;\n requestAnimationFrame(function () {\n _this.resize();\n\n _this.resizeTick = false;\n });\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {}\n }, {\n key: \"checkContext\",\n value: function checkContext() {\n if (!this.reloadOnContextChange) return;\n this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || this.windowWidth < this.tablet.breakpoint;\n this.isTablet = this.isMobile && this.windowWidth >= this.tablet.breakpoint;\n var oldContext = this.context;\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (oldContext != this.context) {\n var oldSmooth = oldContext == 'desktop' ? this.smooth : this[oldContext].smooth;\n var newSmooth = this.context == 'desktop' ? this.smooth : this[this.context].smooth;\n if (oldSmooth != newSmooth) window.location.reload();\n }\n }\n }, {\n key: \"initEvents\",\n value: function initEvents() {\n var _this2 = this;\n\n this.scrollToEls = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-to]\"));\n this.setScrollTo = this.setScrollTo.bind(this);\n this.scrollToEls.forEach(function (el) {\n el.addEventListener('click', _this2.setScrollTo, false);\n });\n }\n }, {\n key: \"setScrollTo\",\n value: function setScrollTo(event) {\n event.preventDefault();\n this.scrollTo(event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-href\")) || event.currentTarget.getAttribute('href'), {\n offset: event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-offset\"))\n });\n }\n }, {\n key: \"addElements\",\n value: function addElements() {}\n }, {\n key: \"detectElements\",\n value: function detectElements(hasCallEventSet) {\n var _this3 = this;\n\n var scrollTop = this.instance.scroll.y;\n var scrollBottom = scrollTop + this.windowHeight;\n var scrollLeft = this.instance.scroll.x;\n var scrollRight = scrollLeft + this.windowWidth;\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n if (el && (!el.inView || hasCallEventSet)) {\n if (_this3.direction === 'horizontal') {\n if (scrollRight >= el.left && scrollLeft < el.right) {\n _this3.setInView(el, i);\n }\n } else {\n if (scrollBottom >= el.top && scrollTop < el.bottom) {\n _this3.setInView(el, i);\n }\n }\n }\n\n if (el && el.inView) {\n if (_this3.direction === 'horizontal') {\n var width = el.right - el.left;\n el.progress = (_this3.instance.scroll.x - (el.left - _this3.windowWidth)) / (width + _this3.windowWidth);\n\n if (scrollRight < el.left || scrollLeft > el.right) {\n _this3.setOutOfView(el, i);\n }\n } else {\n var height = el.bottom - el.top;\n el.progress = (_this3.instance.scroll.y - (el.top - _this3.windowHeight)) / (height + _this3.windowHeight);\n\n if (scrollBottom < el.top || scrollTop > el.bottom) {\n _this3.setOutOfView(el, i);\n }\n }\n }\n }); // this.els = this.els.filter((current, i) => {\n // return current !== null;\n // });\n\n this.hasScrollTicking = false;\n }\n }, {\n key: \"setInView\",\n value: function setInView(current, i) {\n this.els[i].inView = true;\n current.el.classList.add(current[\"class\"]);\n this.currentElements[i] = current;\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'enter');\n\n if (!current.repeat) {\n this.els[i].call = false;\n }\n } // if (!current.repeat && !current.speed && !current.sticky) {\n // if (!current.call || current.call && this.hasCallEventSet) {\n // this.els[i] = null\n // }\n // }\n\n }\n }, {\n key: \"setOutOfView\",\n value: function setOutOfView(current, i) {\n var _this4 = this;\n\n // if (current.repeat || current.speed !== undefined) {\n this.els[i].inView = false; // }\n\n Object.keys(this.currentElements).forEach(function (el) {\n el === i && delete _this4.currentElements[el];\n });\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'exit');\n }\n\n if (current.repeat) {\n current.el.classList.remove(current[\"class\"]);\n }\n }\n }, {\n key: \"dispatchCall\",\n value: function dispatchCall(current, way) {\n this.callWay = way;\n this.callValue = current.call.split(',').map(function (item) {\n return item.trim();\n });\n this.callObj = current;\n if (this.callValue.length == 1) this.callValue = this.callValue[0];\n var callEvent = new Event(this.namespace + 'call');\n this.el.dispatchEvent(callEvent);\n }\n }, {\n key: \"dispatchScroll\",\n value: function dispatchScroll() {\n var scrollEvent = new Event(this.namespace + 'scroll');\n this.el.dispatchEvent(scrollEvent);\n }\n }, {\n key: \"setEvents\",\n value: function setEvents(event, func) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n\n var list = this.listeners[event];\n list.push(func);\n\n if (list.length === 1) {\n this.el.addEventListener(this.namespace + event, this.checkEvent, false);\n }\n\n if (event === 'call') {\n this.hasCallEventSet = true;\n this.detectElements(true);\n }\n }\n }, {\n key: \"unsetEvents\",\n value: function unsetEvents(event, func) {\n if (!this.listeners[event]) return;\n var list = this.listeners[event];\n var index = list.indexOf(func);\n if (index < 0) return;\n list.splice(index, 1);\n\n if (list.index === 0) {\n this.el.removeEventListener(this.namespace + event, this.checkEvent, false);\n }\n }\n }, {\n key: \"checkEvent\",\n value: function checkEvent(event) {\n var _this5 = this;\n\n var name = event.type.replace(this.namespace, '');\n var list = this.listeners[name];\n if (!list || list.length === 0) return;\n list.forEach(function (func) {\n switch (name) {\n case 'scroll':\n return func(_this5.instance);\n\n case 'call':\n return func(_this5.callValue, _this5.callWay, _this5.callObj);\n\n default:\n return func();\n }\n });\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {}\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {}\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance.scroll = {\n x: 0,\n y: 0\n };\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this6 = this;\n\n window.removeEventListener('resize', this.checkResize, false);\n Object.keys(this.listeners).forEach(function (event) {\n _this6.el.removeEventListener(_this6.namespace + event, _this6.checkEvent, false);\n });\n this.listeners = {};\n this.scrollToEls.forEach(function (el) {\n el.removeEventListener('click', _this6.setScrollTo, false);\n });\n this.html.classList.remove(this.initClass);\n }\n }]);\n\n return _default;\n}();\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar smoothscroll = createCommonjsModule(function (module, exports) {\n/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n {\n // commonjs\n module.exports = { polyfill: polyfill };\n }\n\n}());\n});\nvar smoothscroll_1 = smoothscroll.polyfill;\n\nvar _default$1 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n _this = _super.call(this, options);\n\n if (_this.resetNativeScroll) {\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n }\n\n window.addEventListener('scroll', _this.checkScroll, false);\n\n if (window.smoothscrollPolyfill === undefined) {\n window.smoothscrollPolyfill = smoothscroll;\n window.smoothscrollPolyfill.polyfill();\n }\n\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.instance.scroll.y = window.pageYOffset;\n this.addElements();\n this.detectElements();\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this2 = this;\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.instance.scroll.y = window.pageYOffset;\n\n if (Object.entries(this.els).length) {\n if (!this.hasScrollTicking) {\n requestAnimationFrame(function () {\n _this2.detectElements();\n });\n this.hasScrollTicking = true;\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (window.pageYOffset > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (window.pageYOffset < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (window.pageYOffset != this.instance.scroll.y) {\n this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n if (Object.entries(this.els).length) {\n this.windowHeight = window.innerHeight;\n this.updateElements();\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this3 = this;\n\n this.els = {};\n var els = this.el.querySelectorAll('[data-' + this.name + ']');\n els.forEach(function (el, index) {\n var BCR = el.getBoundingClientRect();\n var cl = el.dataset[_this3.name + 'Class'] || _this3[\"class\"];\n var id = typeof el.dataset[_this3.name + 'Id'] === 'string' ? el.dataset[_this3.name + 'Id'] : index;\n var top;\n var left;\n var offset = typeof el.dataset[_this3.name + 'Offset'] === 'string' ? el.dataset[_this3.name + 'Offset'].split(',') : _this3.offset;\n var repeat = el.dataset[_this3.name + 'Repeat'];\n var call = el.dataset[_this3.name + 'Call'];\n var target = el.dataset[_this3.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n top = targetElBCR.top + _this3.instance.scroll.y;\n left = targetElBCR.left + _this3.instance.scroll.x;\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this3.repeat;\n }\n\n var relativeOffset = _this3.getRelativeOffset(offset);\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n var mappedEl = {\n el: el,\n targetEl: targetEl,\n id: id,\n \"class\": cl,\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call\n };\n _this3.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this3.setInView(_this3.els[id], id);\n }\n });\n }\n }, {\n key: \"updateElements\",\n value: function updateElements() {\n var _this4 = this;\n\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n var top = el.targetEl.getBoundingClientRect().top + _this4.instance.scroll.y;\n\n var bottom = top + el.targetEl.offsetHeight;\n\n var relativeOffset = _this4.getRelativeOffset(el.offset);\n\n _this4.els[i].top = top + relativeOffset[0];\n _this4.els[i].bottom = bottom - relativeOffset[1];\n });\n this.hasScrollTicking = false;\n }\n }, {\n key: \"getRelativeOffset\",\n value: function getRelativeOffset(offset) {\n var relativeOffset = [0, 0];\n\n if (offset) {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * this.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n }\n\n return relativeOffset;\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = this.html;\n } else if (target === 'bottom') {\n target = this.html.offsetHeight - window.innerHeight;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y;\n } else {\n offset = target + offset;\n }\n\n var isTargetReached = function isTargetReached() {\n return parseInt(window.pageYOffset) === parseInt(offset);\n };\n\n if (callback) {\n if (isTargetReached()) {\n callback();\n return;\n } else {\n var onScroll = function onScroll() {\n if (isTargetReached()) {\n window.removeEventListener('scroll', onScroll);\n callback();\n }\n };\n\n window.addEventListener('scroll', onScroll);\n }\n }\n\n window.scrollTo({\n top: offset,\n behavior: options.duration === 0 ? 'auto' : 'smooth'\n });\n }\n }, {\n key: \"update\",\n value: function update() {\n this.addElements();\n this.detectElements();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n window.removeEventListener('scroll', this.checkScroll, false);\n }\n }]);\n\n return _default;\n}(_default);\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nvar tinyEmitter = E;\n\nvar lethargy = createCommonjsModule(function (module, exports) {\n// Generated by CoffeeScript 1.9.2\n(function() {\n var root;\n\n root = exports !== null ? exports : this;\n\n root.Lethargy = (function() {\n function Lethargy(stability, sensitivity, tolerance, delay) {\n this.stability = stability != null ? Math.abs(stability) : 8;\n this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100;\n this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1;\n this.delay = delay != null ? delay : 150;\n this.lastUpDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.lastDownDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.deltasTimestamp = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n }\n\n Lethargy.prototype.check = function(e) {\n var lastDelta;\n e = e.originalEvent || e;\n if (e.wheelDelta != null) {\n lastDelta = e.wheelDelta;\n } else if (e.deltaY != null) {\n lastDelta = e.deltaY * -40;\n } else if ((e.detail != null) || e.detail === 0) {\n lastDelta = e.detail * -40;\n }\n this.deltasTimestamp.push(Date.now());\n this.deltasTimestamp.shift();\n if (lastDelta > 0) {\n this.lastUpDeltas.push(lastDelta);\n this.lastUpDeltas.shift();\n return this.isInertia(1);\n } else {\n this.lastDownDeltas.push(lastDelta);\n this.lastDownDeltas.shift();\n return this.isInertia(-1);\n }\n };\n\n Lethargy.prototype.isInertia = function(direction) {\n var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum;\n lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas;\n if (lastDeltas[0] === null) {\n return direction;\n }\n if (this.deltasTimestamp[(this.stability * 2) - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[(this.stability * 2) - 1]) {\n return false;\n }\n lastDeltasOld = lastDeltas.slice(0, this.stability);\n lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2);\n oldSum = lastDeltasOld.reduce(function(t, s) {\n return t + s;\n });\n newSum = lastDeltasNew.reduce(function(t, s) {\n return t + s;\n });\n oldAverage = oldSum / lastDeltasOld.length;\n newAverage = newSum / lastDeltasNew.length;\n if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && (this.sensitivity < Math.abs(newAverage))) {\n return direction;\n } else {\n return false;\n }\n };\n\n Lethargy.prototype.showLastUpDeltas = function() {\n return this.lastUpDeltas;\n };\n\n Lethargy.prototype.showLastDownDeltas = function() {\n return this.lastDownDeltas;\n };\n\n return Lethargy;\n\n })();\n\n}).call(commonjsGlobal);\n});\n\nvar support = (function getSupport() {\n return {\n hasWheelEvent: 'onwheel' in document,\n hasMouseWheelEvent: 'onmousewheel' in document,\n hasTouch: ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1,\n hasPointer: !!window.navigator.msPointerEnabled,\n hasKeyDown: 'onkeydown' in document,\n isFirefox: navigator.userAgent.indexOf('Firefox') > -1\n };\n})();\n\nvar toString = Object.prototype.toString,\n hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nvar bindallStandalone = function(object) {\n if(!object) return console.warn('bindAll requires at least one argument.');\n\n var functions = Array.prototype.slice.call(arguments, 1);\n\n if (functions.length === 0) {\n\n for (var method in object) {\n if(hasOwnProperty$1.call(object, method)) {\n if(typeof object[method] == 'function' && toString.call(object[method]) == \"[object Function]\") {\n functions.push(method);\n }\n }\n }\n }\n\n for(var i = 0; i < functions.length; i++) {\n var f = functions[i];\n object[f] = bind(object[f], object);\n }\n};\n\n/*\n Faster bind without specific-case checking. (see https://coderwall.com/p/oi3j3w).\n bindAll is only needed for events binding so no need to make slow fixes for constructor\n or partial application.\n*/\nfunction bind(func, context) {\n return function() {\n return func.apply(context, arguments);\n };\n}\n\nvar Lethargy = lethargy.Lethargy;\n\n\n\nvar EVT_ID = 'virtualscroll';\n\nvar src = VirtualScroll;\n\nvar keyCodes = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n};\n\nfunction VirtualScroll(options) {\n bindallStandalone(this, '_onWheel', '_onMouseWheel', '_onTouchStart', '_onTouchMove', '_onKeyDown');\n\n this.el = window;\n if (options && options.el) {\n this.el = options.el;\n delete options.el;\n }\n this.options = objectAssign({\n mouseMultiplier: 1,\n touchMultiplier: 2,\n firefoxMultiplier: 15,\n keyStep: 120,\n preventTouch: false,\n unpreventTouchClass: 'vs-touchmove-allowed',\n limitInertia: false,\n useKeyboard: true,\n useTouch: true\n }, options);\n\n if (this.options.limitInertia) this._lethargy = new Lethargy();\n\n this._emitter = new tinyEmitter();\n this._event = {\n y: 0,\n x: 0,\n deltaX: 0,\n deltaY: 0\n };\n this.touchStartX = null;\n this.touchStartY = null;\n this.bodyTouchAction = null;\n\n if (this.options.passive !== undefined) {\n this.listenerOptions = {passive: this.options.passive};\n }\n}\n\nVirtualScroll.prototype._notify = function(e) {\n var evt = this._event;\n evt.x += evt.deltaX;\n evt.y += evt.deltaY;\n\n this._emitter.emit(EVT_ID, {\n x: evt.x,\n y: evt.y,\n deltaX: evt.deltaX,\n deltaY: evt.deltaY,\n originalEvent: e\n });\n};\n\nVirtualScroll.prototype._onWheel = function(e) {\n var options = this.options;\n if (this._lethargy && this._lethargy.check(e) === false) return;\n var evt = this._event;\n\n // In Chrome and in Firefox (at least the new one)\n evt.deltaX = e.wheelDeltaX || e.deltaX * -1;\n evt.deltaY = e.wheelDeltaY || e.deltaY * -1;\n\n // for our purpose deltamode = 1 means user is on a wheel mouse, not touch pad\n // real meaning: https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent#Delta_modes\n if(support.isFirefox && e.deltaMode == 1) {\n evt.deltaX *= options.firefoxMultiplier;\n evt.deltaY *= options.firefoxMultiplier;\n }\n\n evt.deltaX *= options.mouseMultiplier;\n evt.deltaY *= options.mouseMultiplier;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onMouseWheel = function(e) {\n if (this.options.limitInertia && this._lethargy.check(e) === false) return;\n\n var evt = this._event;\n\n // In Safari, IE and in Chrome if 'wheel' isn't defined\n evt.deltaX = (e.wheelDeltaX) ? e.wheelDeltaX : 0;\n evt.deltaY = (e.wheelDeltaY) ? e.wheelDeltaY : e.wheelDelta;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onTouchStart = function(e) {\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n};\n\nVirtualScroll.prototype._onTouchMove = function(e) {\n var options = this.options;\n if(options.preventTouch\n && !e.target.classList.contains(options.unpreventTouchClass)) {\n e.preventDefault();\n }\n\n var evt = this._event;\n\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n\n evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier;\n evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier;\n\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onKeyDown = function(e) {\n var evt = this._event;\n evt.deltaX = evt.deltaY = 0;\n var windowHeight = window.innerHeight - 40;\n\n switch(e.keyCode) {\n case keyCodes.LEFT:\n case keyCodes.UP:\n evt.deltaY = this.options.keyStep;\n break;\n\n case keyCodes.RIGHT:\n case keyCodes.DOWN:\n evt.deltaY = - this.options.keyStep;\n break;\n case e.shiftKey:\n evt.deltaY = windowHeight;\n break;\n case keyCodes.SPACE:\n evt.deltaY = - windowHeight;\n break;\n default:\n return;\n }\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._bind = function() {\n if(support.hasWheelEvent) this.el.addEventListener('wheel', this._onWheel, this.listenerOptions);\n if(support.hasMouseWheelEvent) this.el.addEventListener('mousewheel', this._onMouseWheel, this.listenerOptions);\n\n if(support.hasTouch && this.options.useTouch) {\n this.el.addEventListener('touchstart', this._onTouchStart, this.listenerOptions);\n this.el.addEventListener('touchmove', this._onTouchMove, this.listenerOptions);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n this.bodyTouchAction = document.body.style.msTouchAction;\n document.body.style.msTouchAction = 'none';\n this.el.addEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.addEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.addEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype._unbind = function() {\n if(support.hasWheelEvent) this.el.removeEventListener('wheel', this._onWheel);\n if(support.hasMouseWheelEvent) this.el.removeEventListener('mousewheel', this._onMouseWheel);\n\n if(support.hasTouch) {\n this.el.removeEventListener('touchstart', this._onTouchStart);\n this.el.removeEventListener('touchmove', this._onTouchMove);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n document.body.style.msTouchAction = this.bodyTouchAction;\n this.el.removeEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.removeEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.removeEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype.on = function(cb, ctx) {\n this._emitter.on(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (events && events[EVT_ID] && events[EVT_ID].length === 1) this._bind();\n};\n\nVirtualScroll.prototype.off = function(cb, ctx) {\n this._emitter.off(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (!events[EVT_ID] || events[EVT_ID].length <= 0) this._unbind();\n};\n\nVirtualScroll.prototype.reset = function() {\n var evt = this._event;\n evt.x = 0;\n evt.y = 0;\n};\n\nVirtualScroll.prototype.destroy = function() {\n this._emitter.off();\n this._unbind();\n};\n\nfunction lerp(start, end, amt) {\n return (1 - amt) * start + amt * end;\n}\n\nfunction getTranslate(el) {\n var translate = {};\n if (!window.getComputedStyle) return;\n var style = getComputedStyle(el);\n var transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\n if (mat) {\n translate.x = mat ? parseFloat(mat[1].split(', ')[12]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[13]) : 0;\n } else {\n mat = transform.match(/^matrix\\((.+)\\)$/);\n translate.x = mat ? parseFloat(mat[1].split(', ')[4]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[5]) : 0;\n }\n\n return translate;\n}\n\n/**\n * Returns an array containing all the parent nodes of the given node\n * @param {object} node\n * @return {array} parent nodes\n */\nfunction getParents(elem) {\n // Set up a parent array\n var parents = []; // Push each parent element to the array\n\n for (; elem && elem !== document; elem = elem.parentNode) {\n parents.push(elem);\n } // Return our parent array\n\n\n return parents;\n} // https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/\n\n/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Ga\u00EBtan Renaudeau 2014 - 2015 \u2013 MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nvar src$1 = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n\nvar keyCodes$1 = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32,\n TAB: 9,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};\n\nvar _default$2 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n _this = _super.call(this, options);\n if (_this.inertia) _this.lerp = _this.inertia * 0.1;\n _this.isScrolling = false;\n _this.isDraggingScrollbar = false;\n _this.isTicking = false;\n _this.hasScrollTicking = false;\n _this.parallaxElements = {};\n _this.stop = false;\n _this.scrollbarContainer = options.scrollbarContainer;\n _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this));\n window.addEventListener('keydown', _this.checkKey, false);\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n this.html.classList.add(this.smoothClass);\n this.html.setAttribute(\"data-\".concat(this.name, \"-direction\"), this.direction);\n this.instance = _objectSpread2({\n delta: {\n x: this.initPosition.x,\n y: this.initPosition.y\n },\n scroll: {\n x: this.initPosition.x,\n y: this.initPosition.y\n }\n }, this.instance);\n this.vs = new src({\n el: this.scrollFromAnywhere ? document : this.el,\n mouseMultiplier: navigator.platform.indexOf('Win') > -1 ? 1 : 0.4,\n firefoxMultiplier: this.firefoxMultiplier,\n touchMultiplier: this.touchMultiplier,\n useKeyboard: false,\n passive: true\n });\n this.vs.on(function (e) {\n if (_this2.stop) {\n return;\n }\n\n if (!_this2.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n _this2.updateDelta(e);\n\n if (!_this2.isScrolling) _this2.startScrolling();\n });\n }\n });\n this.setScrollLimit();\n this.initScrollBar();\n this.addSections();\n this.addElements();\n this.checkScroll(true);\n this.transformElements(true, true);\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"setScrollLimit\",\n value: function setScrollLimit() {\n this.instance.limit.y = this.el.offsetHeight - this.windowHeight;\n\n if (this.direction === 'horizontal') {\n var totalWidth = 0;\n var nodes = this.el.children;\n\n for (var i = 0; i < nodes.length; i++) {\n totalWidth += nodes[i].offsetWidth;\n }\n\n this.instance.limit.x = totalWidth - this.windowWidth;\n }\n }\n }, {\n key: \"startScrolling\",\n value: function startScrolling() {\n this.startScrollTs = Date.now(); // Record timestamp\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"stopScrolling\",\n value: function stopScrolling() {\n cancelAnimationFrame(this.checkScrollRaf); // Prevent checkScroll to continue looping\n //Pevent scrollbar glitch/locking\n\n this.startScrollTs = undefined;\n\n if (this.scrollToRaf) {\n cancelAnimationFrame(this.scrollToRaf);\n this.scrollToRaf = null;\n }\n\n this.isScrolling = false;\n this.instance.scroll.y = Math.round(this.instance.scroll.y);\n this.html.classList.remove(this.scrollingClass);\n }\n }, {\n key: \"checkKey\",\n value: function checkKey(e) {\n var _this3 = this;\n\n if (this.stop) {\n // If we are stopped, we don't want any scroll to occur because of a keypress\n // Prevent tab to scroll to activeElement\n if (e.keyCode == keyCodes$1.TAB) {\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0;\n });\n }\n\n return;\n }\n\n switch (e.keyCode) {\n case keyCodes$1.TAB:\n // Do not remove the RAF\n // It allows to override the browser's native scrollTo, which is essential\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0; // Request scrollTo on the focusedElement, putting it at the center of the screen\n\n _this3.scrollTo(document.activeElement, {\n offset: -window.innerHeight / 2\n });\n });\n break;\n\n case keyCodes$1.UP:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] -= 240;\n }\n\n break;\n\n case keyCodes$1.DOWN:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] += 240;\n }\n\n break;\n\n case keyCodes$1.PAGEUP:\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n break;\n\n case keyCodes$1.PAGEDOWN:\n this.instance.delta[this.directionAxis] += window.innerHeight;\n break;\n\n case keyCodes$1.HOME:\n this.instance.delta[this.directionAxis] -= this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.END:\n this.instance.delta[this.directionAxis] += this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.SPACE:\n if (this.isActiveElementScrollSensitive()) {\n if (e.shiftKey) {\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n } else {\n this.instance.delta[this.directionAxis] += window.innerHeight;\n }\n }\n\n break;\n\n default:\n return;\n }\n\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"isActiveElementScrollSensitive\",\n value: function isActiveElementScrollSensitive() {\n return !(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement) && !(document.activeElement instanceof HTMLButtonElement) && !(document.activeElement instanceof HTMLSelectElement);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this4 = this;\n\n var forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (forced || this.isScrolling || this.isDraggingScrollbar) {\n if (!this.hasScrollTicking) {\n this.checkScrollRaf = requestAnimationFrame(function () {\n return _this4.checkScroll();\n });\n this.hasScrollTicking = true;\n }\n\n this.updateScroll();\n var distance = Math.abs(this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]);\n var timeSinceStart = Date.now() - this.startScrollTs; // Get the time since the scroll was started: the scroll can be stopped again only past 100ms\n\n if (!this.animatingScroll && timeSinceStart > 100 && (distance < 0.5 && this.instance.delta[this.directionAxis] != 0 || distance < 0.5 && this.instance.delta[this.directionAxis] == 0)) {\n this.stopScrolling();\n }\n\n Object.entries(this.sections).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n section = _ref2[1];\n\n if (section.persistent || _this4.instance.scroll[_this4.directionAxis] > section.offset[_this4.directionAxis] && _this4.instance.scroll[_this4.directionAxis] < section.limit[_this4.directionAxis]) {\n if (_this4.direction === 'horizontal') {\n _this4.transform(section.el, -_this4.instance.scroll[_this4.directionAxis], 0);\n } else {\n _this4.transform(section.el, 0, -_this4.instance.scroll[_this4.directionAxis]);\n }\n\n if (!section.inView) {\n section.inView = true;\n section.el.style.opacity = 1;\n section.el.style.pointerEvents = 'all';\n section.el.setAttribute(\"data-\".concat(_this4.name, \"-section-inview\"), '');\n }\n } else {\n if (section.inView || forced) {\n section.inView = false;\n section.el.style.opacity = 0;\n section.el.style.pointerEvents = 'none';\n section.el.removeAttribute(\"data-\".concat(_this4.name, \"-section-inview\"));\n }\n\n _this4.transform(section.el, 0, 0);\n }\n });\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.detectElements();\n this.transformElements();\n\n if (this.hasScrollbar) {\n var scrollBarTranslation = this.instance.scroll[this.directionAxis] / this.instance.limit[this.directionAxis] * this.scrollBarLimit[this.directionAxis];\n\n if (this.direction === 'horizontal') {\n this.transform(this.scrollbarThumb, scrollBarTranslation, 0);\n } else {\n this.transform(this.scrollbarThumb, 0, scrollBarTranslation);\n }\n }\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n this.hasScrollTicking = false;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.checkContext();\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.update();\n }\n }, {\n key: \"updateDelta\",\n value: function updateDelta(e) {\n var delta;\n var gestureDirection = this[this.context] && this[this.context].gestureDirection ? this[this.context].gestureDirection : this.gestureDirection;\n\n if (gestureDirection === 'both') {\n delta = e.deltaX + e.deltaY;\n } else if (gestureDirection === 'vertical') {\n delta = e.deltaY;\n } else if (gestureDirection === 'horizontal') {\n delta = e.deltaX;\n } else {\n delta = e.deltaY;\n }\n\n this.instance.delta[this.directionAxis] -= delta * this.multiplier;\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n }\n }, {\n key: \"updateScroll\",\n value: function updateScroll(e) {\n if (this.isScrolling || this.isDraggingScrollbar) {\n this.instance.scroll[this.directionAxis] = lerp(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis], this.lerp);\n } else {\n if (this.instance.scroll[this.directionAxis] > this.instance.limit[this.directionAxis]) {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.limit[this.directionAxis]);\n } else if (this.instance.scroll.y < 0) {\n this.setScroll(this.instance.scroll[this.directionAxis], 0);\n } else {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis]);\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (this.instance.delta.y > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (this.instance.delta.y < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n\n if (this.instance.delta.x > this.instance.scroll.x) {\n if (this.instance.direction !== 'right') {\n this.instance.direction = 'right';\n }\n } else if (this.instance.delta.x < this.instance.scroll.x) {\n if (this.instance.direction !== 'left') {\n this.instance.direction = 'left';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (this.instance.delta[this.directionAxis] != this.instance.scroll[this.directionAxis]) {\n this.instance.speed = (this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"initScrollBar\",\n value: function initScrollBar() {\n this.scrollbar = document.createElement('span');\n this.scrollbarThumb = document.createElement('span');\n this.scrollbar.classList.add(\"\".concat(this.scrollbarClass));\n this.scrollbarThumb.classList.add(\"\".concat(this.scrollbarClass, \"_thumb\"));\n this.scrollbar.append(this.scrollbarThumb);\n\n if (this.scrollbarContainer) {\n this.scrollbarContainer.append(this.scrollbar);\n } else {\n document.body.append(this.scrollbar);\n } // Scrollbar Events\n\n\n this.getScrollBar = this.getScrollBar.bind(this);\n this.releaseScrollBar = this.releaseScrollBar.bind(this);\n this.moveScrollBar = this.moveScrollBar.bind(this);\n this.scrollbarThumb.addEventListener('mousedown', this.getScrollBar);\n window.addEventListener('mouseup', this.releaseScrollBar);\n window.addEventListener('mousemove', this.moveScrollBar); // Set scrollbar values\n\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"reinitScrollBar\",\n value: function reinitScrollBar() {\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"destroyScrollBar\",\n value: function destroyScrollBar() {\n this.scrollbarThumb.removeEventListener('mousedown', this.getScrollBar);\n window.removeEventListener('mouseup', this.releaseScrollBar);\n window.removeEventListener('mousemove', this.moveScrollBar);\n this.scrollbar.remove();\n }\n }, {\n key: \"getScrollBar\",\n value: function getScrollBar(e) {\n this.isDraggingScrollbar = true;\n this.checkScroll();\n this.html.classList.remove(this.scrollingClass);\n this.html.classList.add(this.draggingClass);\n }\n }, {\n key: \"releaseScrollBar\",\n value: function releaseScrollBar(e) {\n this.isDraggingScrollbar = false;\n\n if (this.isScrolling) {\n this.html.classList.add(this.scrollingClass);\n }\n\n this.html.classList.remove(this.draggingClass);\n }\n }, {\n key: \"moveScrollBar\",\n value: function moveScrollBar(e) {\n var _this5 = this;\n\n if (this.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n var x = (e.clientX - _this5.scrollbarBCR.left) * 100 / _this5.scrollbarWidth * _this5.instance.limit.x / 100;\n var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit.y / 100;\n\n if (y > 0 && y < _this5.instance.limit.y) {\n _this5.instance.delta.y = y;\n }\n\n if (x > 0 && x < _this5.instance.limit.x) {\n _this5.instance.delta.x = x;\n }\n });\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this6 = this;\n\n this.els = {};\n this.parallaxElements = {}; // this.sections.forEach((section, y) => {\n\n var els = this.el.querySelectorAll(\"[data-\".concat(this.name, \"]\"));\n els.forEach(function (el, index) {\n // Try and find the target's parent section\n var targetParents = getParents(el);\n var section = Object.entries(_this6.sections).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n section = _ref4[1];\n\n return section;\n }).find(function (section) {\n return targetParents.includes(section.el);\n });\n var cl = el.dataset[_this6.name + 'Class'] || _this6[\"class\"];\n var id = typeof el.dataset[_this6.name + 'Id'] === 'string' ? el.dataset[_this6.name + 'Id'] : 'el' + index;\n var top;\n var left;\n var repeat = el.dataset[_this6.name + 'Repeat'];\n var call = el.dataset[_this6.name + 'Call'];\n var position = el.dataset[_this6.name + 'Position'];\n var delay = el.dataset[_this6.name + 'Delay'];\n var direction = el.dataset[_this6.name + 'Direction'];\n var sticky = typeof el.dataset[_this6.name + 'Sticky'] === 'string';\n var speed = el.dataset[_this6.name + 'Speed'] ? parseFloat(el.dataset[_this6.name + 'Speed']) / 10 : false;\n var offset = typeof el.dataset[_this6.name + 'Offset'] === 'string' ? el.dataset[_this6.name + 'Offset'].split(',') : _this6.offset;\n var target = el.dataset[_this6.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n\n if (section === null) {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n } else {\n if (!section.inView) {\n top = targetElBCR.top - getTranslate(section.el).y - getTranslate(targetEl).y;\n left = targetElBCR.left - getTranslate(section.el).x - getTranslate(targetEl).x;\n } else {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n }\n }\n\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n var middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n\n if (sticky) {\n var elBCR = el.getBoundingClientRect();\n var elTop = elBCR.top;\n var elLeft = elBCR.left;\n var elDistance = {\n x: elLeft - left,\n y: elTop - top\n };\n top += window.innerHeight;\n left += window.innerWidth;\n bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance[_this6.directionAxis];\n right = elLeft + targetEl.offsetWidth - el.offsetWidth - elDistance[_this6.directionAxis];\n middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n }\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this6.repeat;\n }\n\n var relativeOffset = [0, 0];\n\n if (offset) {\n if (_this6.direction === 'horizontal') {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowWidth / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n left = left + relativeOffset[0];\n right = right - relativeOffset[1];\n } else {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n }\n }\n\n var mappedEl = {\n el: el,\n id: id,\n \"class\": cl,\n section: section,\n top: top,\n middle: middle,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call,\n speed: speed,\n delay: delay,\n position: position,\n target: targetEl,\n direction: direction,\n sticky: sticky\n };\n _this6.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this6.setInView(_this6.els[id], id);\n }\n\n if (speed !== false || sticky) {\n _this6.parallaxElements[id] = mappedEl;\n }\n }); // });\n }\n }, {\n key: \"addSections\",\n value: function addSections() {\n var _this7 = this;\n\n this.sections = {};\n var sections = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-section]\"));\n\n if (sections.length === 0) {\n sections = [this.el];\n }\n\n sections.forEach(function (section, index) {\n var id = typeof section.dataset[_this7.name + 'Id'] === 'string' ? section.dataset[_this7.name + 'Id'] : 'section' + index;\n var sectionBCR = section.getBoundingClientRect();\n var offset = {\n x: sectionBCR.left - window.innerWidth * 1.5 - getTranslate(section).x,\n y: sectionBCR.top - window.innerHeight * 1.5 - getTranslate(section).y\n };\n var limit = {\n x: offset.x + sectionBCR.width + window.innerWidth * 2,\n y: offset.y + sectionBCR.height + window.innerHeight * 2\n };\n var persistent = typeof section.dataset[_this7.name + 'Persistent'] === 'string';\n section.setAttribute('data-scroll-section-id', id);\n var mappedSection = {\n el: section,\n offset: offset,\n limit: limit,\n inView: false,\n persistent: persistent,\n id: id\n };\n _this7.sections[id] = mappedSection;\n });\n }\n }, {\n key: \"transform\",\n value: function transform(element, x, y, delay) {\n var transform;\n\n if (!delay) {\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(x, \",\").concat(y, \",0,1)\");\n } else {\n var start = getTranslate(element);\n var lerpX = lerp(start.x, x, delay);\n var lerpY = lerp(start.y, y, delay);\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(lerpX, \",\").concat(lerpY, \",0,1)\");\n }\n\n element.style.webkitTransform = transform;\n element.style.msTransform = transform;\n element.style.transform = transform;\n }\n }, {\n key: \"transformElements\",\n value: function transformElements(isForced) {\n var _this8 = this;\n\n var setAllElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var scrollRight = this.instance.scroll.x + this.windowWidth;\n var scrollBottom = this.instance.scroll.y + this.windowHeight;\n var scrollMiddle = {\n x: this.instance.scroll.x + this.windowMiddle.x,\n y: this.instance.scroll.y + this.windowMiddle.y\n };\n Object.entries(this.parallaxElements).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n i = _ref6[0],\n current = _ref6[1];\n\n var transformDistance = false;\n\n if (isForced) {\n transformDistance = 0;\n }\n\n if (current.inView || setAllElements) {\n switch (current.position) {\n case 'top':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementTop':\n transformDistance = (scrollBottom - current.top) * -current.speed;\n break;\n\n case 'bottom':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollBottom + _this8.windowHeight) * current.speed;\n break;\n\n case 'left':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementLeft':\n transformDistance = (scrollRight - current.left) * -current.speed;\n break;\n\n case 'right':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollRight + _this8.windowHeight) * current.speed;\n break;\n\n default:\n transformDistance = (scrollMiddle[_this8.directionAxis] - current.middle[_this8.directionAxis]) * -current.speed;\n break;\n }\n }\n\n if (current.sticky) {\n if (current.inView) {\n if (_this8.direction === 'horizontal') {\n transformDistance = _this8.instance.scroll.x - current.left + window.innerWidth;\n } else {\n transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight;\n }\n } else {\n if (_this8.direction === 'horizontal') {\n if (_this8.instance.scroll.x < current.left - window.innerWidth && _this8.instance.scroll.x < current.left - window.innerWidth / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.x > current.right && _this8.instance.scroll.x > current.right + 100) {\n transformDistance = current.right - current.left + window.innerWidth;\n } else {\n transformDistance = false;\n }\n } else {\n if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) {\n transformDistance = current.bottom - current.top + window.innerHeight;\n } else {\n transformDistance = false;\n }\n }\n }\n }\n\n if (transformDistance !== false) {\n if (current.direction === 'horizontal' || _this8.direction === 'horizontal' && current.direction !== 'vertical') {\n _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay);\n } else {\n _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay);\n }\n }\n });\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var _this9 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var duration = !isNaN(parseInt(options.duration)) ? parseInt(options.duration) : 1000; // Duration of the scroll animation in milliseconds\n\n var easing = options.easing || [0.25, 0.0, 0.35, 1.0]; // An array of 4 floats between 0 and 1 defining the bezier curve for the animation's easing. See http://greweb.me/bezier-easing-editor/example/\n\n var disableLerp = options.disableLerp ? true : false; // Lerp effect won't be applied if set to true\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n easing = src$1.apply(void 0, _toConsumableArray(easing));\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = 0;\n } else if (target === 'bottom') {\n target = this.instance.limit.y;\n } else if (target === 'left') {\n target = 0;\n } else if (target === 'right') {\n target = this.instance.limit.x;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n // Verify the given target belongs to this scroll scope\n var targetInScope = getParents(target).includes(this.el);\n\n if (!targetInScope) {\n // If the target isn't inside our main element, abort any action\n return;\n } // Get target offset from top\n\n\n var targetBCR = target.getBoundingClientRect();\n var offsetTop = targetBCR.top;\n var offsetLeft = targetBCR.left; // Try and find the target's parent section\n\n var targetParents = getParents(target);\n var parentSection = targetParents.find(function (candidate) {\n return Object.entries(_this9.sections) // Get sections associative array as a regular array\n .map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n key = _ref8[0],\n section = _ref8[1];\n\n return section;\n }) // map to section only (we dont need the key here)\n .find(function (section) {\n return section.el == candidate;\n }); // finally find the section that matches the candidate\n });\n var parentSectionOffset = 0;\n\n if (parentSection) {\n parentSectionOffset = getTranslate(parentSection)[this.directionAxis]; // We got a parent section, store it's current offset to remove it later\n } else {\n // if no parent section is found we need to use instance scroll directly\n parentSectionOffset = -this.instance.scroll[this.directionAxis];\n } // Final value of scroll destination : offsetTop + (optional offset given in options) - (parent's section translate)\n\n\n if (this.direction === 'horizontal') {\n offset = offsetLeft + offset - parentSectionOffset;\n } else {\n offset = offsetTop + offset - parentSectionOffset;\n }\n } else {\n offset = target + offset;\n } // Actual scrollto\n // ==========================================================================\n // Setup\n\n\n var scrollStart = parseFloat(this.instance.delta[this.directionAxis]);\n var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit[this.directionAxis])); // Make sure our target is in the scroll boundaries\n\n var scrollDiff = scrollTarget - scrollStart;\n\n var render = function render(p) {\n if (disableLerp) {\n if (_this9.direction === 'horizontal') {\n _this9.setScroll(scrollStart + scrollDiff * p, _this9.instance.delta.y);\n } else {\n _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p);\n }\n } else {\n _this9.instance.delta[_this9.directionAxis] = scrollStart + scrollDiff * p;\n }\n }; // Prepare the scroll\n\n\n this.animatingScroll = true; // This boolean allows to prevent `checkScroll()` from calling `stopScrolling` when the animation is slow (i.e. at the beginning of an EaseIn)\n\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.startScrolling(); // Restart the scroll\n // Start the animation loop\n\n var start = Date.now();\n\n var loop = function loop() {\n var p = (Date.now() - start) / duration; // Animation progress\n\n if (p > 1) {\n // Animation ends\n render(1);\n _this9.animatingScroll = false;\n if (duration == 0) _this9.update();\n if (callback) callback();\n } else {\n _this9.scrollToRaf = requestAnimationFrame(loop);\n render(easing(p));\n }\n };\n\n loop();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.setScrollLimit();\n this.addSections();\n this.addElements();\n this.detectElements();\n this.updateScroll();\n this.transformElements(true);\n this.reinitScrollBar();\n this.checkScroll(true);\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {\n this.stop = false;\n }\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {\n this.stop = true;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance = _objectSpread2(_objectSpread2({}, this.instance), {}, {\n scroll: {\n x: x,\n y: y\n },\n delta: {\n x: x,\n y: y\n },\n speed: 0\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n this.stopScrolling();\n this.html.classList.remove(this.smoothClass);\n this.vs.destroy();\n this.destroyScrollBar();\n window.removeEventListener('keydown', this.checkKey, false);\n }\n }]);\n\n return _default;\n}(_default);\n\nvar Smooth = /*#__PURE__*/function () {\n function Smooth() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Smooth);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n if (!this.smooth && this.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible');\n if (!this.tablet.smooth && this.tablet.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (tablet)');\n if (!this.smartphone.smooth && this.smartphone.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (smartphone)');\n this.init();\n }\n\n _createClass(Smooth, [{\n key: \"init\",\n value: function init() {\n this.options.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || window.innerWidth < this.tablet.breakpoint;\n this.options.isTablet = this.options.isMobile && window.innerWidth >= this.tablet.breakpoint;\n\n if (this.smooth && !this.options.isMobile || this.tablet.smooth && this.options.isTablet || this.smartphone.smooth && this.options.isMobile && !this.options.isTablet) {\n this.scroll = new _default$2(this.options);\n } else {\n this.scroll = new _default$1(this.options);\n }\n\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Smooth;\n}();\n\nvar Native = /*#__PURE__*/function () {\n function Native() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Native);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.init();\n }\n\n _createClass(Native, [{\n key: \"init\",\n value: function init() {\n this.scroll = new _default$1(this.options);\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Native;\n}();\n\nexport default Smooth;\nexport { Native, Smooth };\n", "import { module } from 'modujs';\nimport { lazyLoadImage } from '../utils/image';\nimport LocomotiveScroll from 'locomotive-scroll';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.scroll = new LocomotiveScroll({\n el: this.el,\n smooth: true\n });\n\n this.scroll.on('call', (func, way, obj, id) => {\n // Using modularJS\n this.call(func[0], { way, obj }, func[1], func[2]);\n });\n\n this.scroll.on('scroll', (args) => {\n // console.log(args.scroll);\n })\n }\n\n /**\n * Lazy load the related image.\n *\n * @see ../utils/image.js\n *\n * It is recommended to wrap your `` into an element with the\n * CSS class name `.c-lazy`. The CSS class name modifier `.-lazy-loaded`\n * will be applied on both the image and the parent wrapper.\n *\n * ```html\n *
\n * \"\"\n *
\n * ```\n *\n * @param {LocomotiveScroll} args - The Locomotive Scroll instance.\n */\n lazyLoad(args) {\n lazyLoadImage(args.obj.el, null, () => {\n //callback\n })\n }\n\n destroy() {\n this.scroll.destroy();\n }\n}\n", "import svg4everybody from 'svg4everybody';\n\nexport default function() {\n svg4everybody();\n}\n", "const APP_NAME = 'Boilerplate';\nconst DATA_API_KEY = '.data-api';\n\nconst html = document.documentElement;\nconst body = document.body;\nconst isDebug = html.hasAttribute('data-debug');\n\nexport { APP_NAME, DATA_API_KEY, html, body, isDebug };\n", "import modular from 'modujs';\nimport * as modules from './modules';\nimport globals from './globals';\nimport { html } from './utils/environment';\n\nconst app = new modular({\n modules: modules\n});\n\nwindow.onload = (event) => {\n const $style = document.getElementById('main-css');\n\n if ($style) {\n if ($style.isLoaded) {\n init();\n } else {\n $style.addEventListener('load', (event) => {\n init();\n });\n }\n } else {\n console.warn('The \"main-css\" stylesheet not found');\n }\n};\n\nfunction init() {\n globals();\n\n app.init(app);\n\n html.classList.add('is-loaded');\n html.classList.add('is-ready');\n html.classList.remove('is-loading');\n}\n\n"], - "mappings": "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", + "mappings": "2jCAAA,mBAAC,UAAS,EAAM,EAAS,CACrB,AAAc,MAAO,SAArB,YAA+B,OAAO,IACtC,OAAO,CAAC,EAAG,UAAW,CAClB,MAAO,GAAK,cAAgB,EAAQ,CACxC,CAAC,EAAI,AAAY,MAAO,IAAnB,UAA6B,EAAO,QAGzC,EAAO,QAAU,EAAQ,EAAI,EAAK,cAAgB,EAAQ,CAC9D,GAAE,GAAM,UAAW,CACf,AACA,WAAe,EAAQ,EAAK,EAAQ,CAEhC,GAAI,EAAQ,CAER,GAAI,GAAW,SAAS,uBAAuB,EAAG,EAAU,CAAC,EAAI,aAAa,SAAS,GAAK,EAAO,aAAa,SAAS,EAEzH,GAAW,EAAI,aAAa,UAAW,CAAO,EAE9C,OACI,GAAQ,EAAO,UAAU,EAAE,EAAG,EAAM,WAAW,QAC/C,EAAS,YAAY,EAAM,UAAU,EAGzC,EAAO,YAAY,CAAQ,CAC/B,CACJ,CACA,WAA8B,EAAK,CAE/B,EAAI,mBAAqB,UAAW,CAEhC,GAAI,AAAM,EAAI,aAAV,EAAsB,CAEtB,GAAI,GAAiB,EAAI,gBAEzB,GAAmB,GAAiB,EAAI,gBAAkB,SAAS,eAAe,mBAAmB,EAAE,EACvG,EAAe,KAAK,UAAY,EAAI,aAAc,EAAI,cAAgB,CAAC,GACvE,EAAI,QAAQ,OAAO,CAAC,EAAE,IAAI,SAAS,EAAM,CAErC,GAAI,GAAS,EAAI,cAAc,EAAK,IAEpC,GAAW,GAAS,EAAI,cAAc,EAAK,IAAM,EAAe,eAAe,EAAK,EAAE,GAEtF,EAAM,EAAK,OAAQ,EAAK,IAAK,CAAM,CACvC,CAAC,CACL,CACJ,EACA,EAAI,mBAAmB,CAC3B,CACA,WAAuB,EAAS,CAC5B,YAAsB,CAElB,OACI,GAAQ,EAAG,EAAQ,EAAK,QAAU,CAElC,GAAI,GAAM,EAAK,GAAQ,EAAS,EAAI,WAAY,EAAM,EAAe,CAAM,EAAG,EAAM,EAAI,aAAa,YAAY,GAAK,EAAI,aAAa,MAAM,EAC7I,GAAI,CAAC,GAAO,EAAK,eAAkB,GAAM,EAAI,aAAa,EAAK,aAAa,GAC5E,GAAO,GACH,GAAI,EACA,GAAI,CAAC,EAAK,UAAY,EAAK,SAAS,EAAK,EAAK,CAAG,EAAG,CAEhD,EAAO,YAAY,CAAG,EAEtB,GAAI,GAAW,EAAI,MAAM,GAAG,EAAG,EAAM,EAAS,MAAM,EAAG,EAAK,EAAS,KAAK,GAAG,EAE7E,GAAI,EAAI,OAAQ,CAEZ,GAAI,GAAM,EAAS,GAEnB,GAAQ,GAAM,EAAS,GAAO,GAAI,gBAAkB,EAAI,KAAK,MAAO,CAAG,EAAG,EAAI,KAAK,EACnF,EAAI,QAAU,CAAC,GACf,EAAI,QAAQ,KAAK,CACb,OAAQ,EACR,IAAK,EACL,GAAI,CACR,CAAC,EACD,EAAqB,CAAG,CAC5B,KAEI,GAAM,EAAQ,EAAK,SAAS,eAAe,CAAE,CAAC,CAEtD,KAEI,EAAE,EAAO,EAAE,MAKnB,EAAE,CAEV,CAEA,AAAC,EAAC,EAAK,QAAU,EAAK,OAAS,EAAiC,IAAM,EAAsB,EAAY,EAAE,CAC9G,CACA,GAAI,GAAU,EAAO,OAAO,CAAO,EAAG,EAAY,0CAA2C,EAAW,yBAA0B,EAAc,sBAAuB,EAAS,mBAAoB,EAAW,OAAO,MAAQ,OAAO,KACrO,EAAW,YAAc,GAAO,EAAK,SAAW,EAAU,KAAK,UAAU,SAAS,GAAM,WAAU,UAAU,MAAM,CAAW,GAAK,CAAC,GAAG,GAAK,OAAU,WAAU,UAAU,MAAM,CAAQ,GAAK,CAAC,GAAG,GAAK,KAAO,EAAO,KAAK,UAAU,SAAS,GAAK,EAEhP,GAAI,GAAW,CAAC,EAAG,EAAwB,OAAO,uBAAyB,WAAY,EAAO,SAAS,qBAAqB,KAAK,EAAG,EAAiC,EAErK,GAAY,EAAW,CAC3B,CACA,WAAwB,EAAM,CAC1B,OAAS,GAAM,EAAM,AAAU,EAAI,SAAS,YAAY,IAAnC,OAAyC,GAAM,EAAI,aAAe,CACvF,MAAO,EACX,CACA,MAAO,EACX,CAAC,ICzGD,WAAiB,EAAK,CAGpB,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAC7D,EAAU,SAAU,EAAK,CACvB,MAAO,OAAO,EAChB,EAEA,EAAU,SAAU,EAAK,CACvB,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,EAC3H,EAGK,EAAQ,CAAG,CACpB,CAEA,YAAyB,EAAU,EAAa,CAC9C,GAAI,CAAE,aAAoB,IACxB,KAAM,IAAI,WAAU,mCAAmC,CAE3D,CAEA,YAA2B,EAAQ,EAAO,CACxC,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,GAAI,GAAa,EAAM,GACvB,EAAW,WAAa,EAAW,YAAc,GACjD,EAAW,aAAe,GACtB,SAAW,IAAY,GAAW,SAAW,IACjD,OAAO,eAAe,EAAQ,EAAW,IAAK,CAAU,CAC1D,CACF,CAEA,YAAsB,EAAa,EAAY,EAAa,CAC1D,MAAI,IAAY,GAAkB,EAAY,UAAW,CAAU,EAC/D,GAAa,GAAkB,EAAa,CAAW,EACpD,CACT,CAEA,YAAyB,EAAK,EAAK,EAAO,CACxC,MAAI,KAAO,GACT,OAAO,eAAe,EAAK,EAAK,CAC9B,MAAO,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACZ,CAAC,EAED,EAAI,GAAO,EAGN,CACT,CAEA,WAAwB,EAAK,EAAG,CAC9B,MAAO,IAAgB,CAAG,GAAK,GAAsB,EAAK,CAAC,GAAK,GAA4B,EAAK,CAAC,GAAK,GAAiB,CAC1H,CAEA,YAA4B,EAAK,CAC/B,MAAO,IAAmB,CAAG,GAAK,GAAiB,CAAG,GAAK,GAA4B,CAAG,GAAK,GAAmB,CACpH,CAEA,YAA4B,EAAK,CAC/B,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,IAAkB,CAAG,CACtD,CAEA,YAAyB,EAAK,CAC5B,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,EACjC,CAEA,YAA0B,EAAM,CAC9B,GAAI,MAAO,SAAW,aAAe,OAAO,WAAY,QAAO,CAAI,EAAG,MAAO,OAAM,KAAK,CAAI,CAC9F,CAEA,YAA+B,EAAK,EAAG,CACrC,GAAI,QAAO,SAAW,aAAe,CAAE,QAAO,WAAY,QAAO,CAAG,IACpE,IAAI,GAAO,CAAC,EACR,EAAK,GACL,EAAK,GACL,EAAK,OAET,GAAI,CACF,OAAS,GAAK,EAAI,OAAO,UAAU,EAAG,EAAI,CAAE,GAAM,GAAK,EAAG,KAAK,GAAG,OAChE,GAAK,KAAK,EAAG,KAAK,EAEd,KAAK,EAAK,SAAW,IAH8C,EAAK,GAG5E,CAEJ,OAAS,EAAP,CACA,EAAK,GACL,EAAK,CACP,QAAE,CACA,GAAI,CACF,AAAI,CAAC,GAAM,EAAG,QAAa,MAAM,EAAG,OAAU,CAChD,QAAE,CACA,GAAI,EAAI,KAAM,EAChB,CACF,CAEA,MAAO,GACT,CAEA,YAAqC,EAAG,EAAQ,CAC9C,GAAI,EAAC,EACL,IAAI,MAAO,IAAM,SAAU,MAAO,IAAkB,EAAG,CAAM,EAC7D,GAAI,GAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADI,IAAM,UAAY,EAAE,aAAa,GAAI,EAAE,YAAY,MACnD,IAAM,OAAS,IAAM,MAAO,MAAO,OAAM,KAAK,CAAC,EACnD,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,MAAO,IAAkB,EAAG,CAAM,EACjH,CAEA,YAA2B,EAAK,EAAK,CACnC,AAAI,IAAO,MAAQ,EAAM,EAAI,SAAQ,GAAM,EAAI,QAE/C,OAAS,GAAI,EAAG,EAAO,GAAI,OAAM,CAAG,EAAG,EAAI,EAAK,IAAK,EAAK,GAAK,EAAI,GAEnE,MAAO,EACT,CAEA,aAA8B,CAC5B,KAAM,IAAI,WAAU;AAAA,mFAAsI,CAC5J,CAEA,aAA4B,CAC1B,KAAM,IAAI,WAAU;AAAA,mFAA2I,CACjK,CAEA,GAAI,GAAwB,UAAY,CACtC,WAAkB,EAAS,CACzB,GAAgB,KAAM,CAAQ,EAE9B,KAAK,MAAQ,QAAU,EAAQ,SAC/B,KAAK,eAAiB,CAAC,aAAc,YAAY,EACjD,KAAK,GAAK,EAAQ,EACpB,CAEA,UAAa,EAAU,CAAC,CACtB,IAAK,QACL,MAAO,SAAe,EAAS,CAC7B,GAAI,GAAQ,KAEZ,KAAK,QAAU,EACf,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EAErD,KAAK,QACP,OAAO,KAAK,KAAK,MAAM,EAAE,QAAQ,SAAU,EAAO,CAChD,MAAO,GAAM,UAAU,CAAK,CAC9B,CAAC,CAEL,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAS,CAC/B,KAAK,QAAU,CACjB,CACF,EAAG,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,GAAI,GAAS,KAEb,AAAI,KAAK,QACP,OAAO,KAAK,KAAK,MAAM,EAAE,QAAQ,SAAU,EAAO,CAChD,MAAO,GAAO,aAAa,CAAK,CAClC,CAAC,CAEL,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAO,CAC/B,GAAI,GAAU,OAAK,eAAe,SAAS,CAAK,EAChD,KAAK,GAAG,iBAAiB,EAAO,KAAK,kBAAmB,CAAO,CACjE,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAO,CAClC,GAAI,GAAU,OAAK,eAAe,SAAS,CAAK,EAChD,KAAK,GAAG,oBAAoB,EAAO,KAAK,kBAAmB,CAAO,CACpE,CACF,EAAG,CACD,IAAK,oBACL,MAAO,SAA2B,EAAG,CACnC,GAAI,GAAQ,KAAK,OAAO,EAAE,MAE1B,GAAI,MAAO,IAAU,SACnB,KAAK,GAAO,CAAC,MACR,CACL,GAAI,GAAO,IAAM,KAAK,MAAQ,IAC1B,EAAS,EAAE,OAEf,GAAI,KAAK,eAAe,SAAS,EAAE,IAAI,EACrC,AAAI,EAAO,QAAQ,CAAI,GACrB,KAAK,iBAAiB,EAAG,EAAO,CAAM,MAGxC,MAAO,GAAU,IAAW,UACtB,IAAO,QAAQ,CAAI,GACjB,KAAK,iBAAiB,EAAG,EAAO,CAAM,GAAK,cAKjD,EAAS,EAAO,UAGtB,CACF,CACF,EAAG,CACD,IAAK,mBACL,MAAO,SAA0B,EAAG,EAAO,EAAQ,CACjD,GAAI,GAAO,EAAO,aAAa,KAAK,KAAK,EAEzC,GAAI,EAAM,eAAe,CAAI,EAAG,CAC9B,GAAI,GAAS,EAAM,GAEnB,AAAK,EAAE,eAAe,eAAe,GACnC,OAAO,eAAe,EAAG,gBAAiB,CACxC,MAAO,CACT,CAAC,EAGE,EAAE,eAAe,WAAW,GAC/B,OAAO,eAAe,EAAG,YAAa,CACpC,MAAO,CACT,CAAC,EAGH,KAAK,GAAQ,CAAC,CAChB,CACF,CACF,EAAG,CACD,IAAK,IACL,MAAO,SAAW,EAAO,EAAS,CAChC,GAAI,GAAa,EAAM,QAAQ,GAAG,EAC9B,EAAU,EAAM,QAAQ,GAAG,EAC3B,EAAY,EAAM,QAAQ,GAAG,EAC7B,EAAU,CAAC,EAAY,EAAS,CAAS,EAAE,OAAO,SAAU,EAAO,CACrE,MAAO,IAAS,EAClB,CAAC,EACG,EAAQ,GACR,EAAO,EACP,EAAO,GACP,EAAS,KAAK,GAElB,MAAI,GAAQ,QACV,GAAQ,KAAK,IAAI,MAAM,KAAM,GAAmB,CAAO,CAAC,EACxD,EAAO,EAAM,MAAM,EAAG,CAAK,EAC3B,EAAO,EAAM,MAAM,CAAK,GAGtB,EAAQ,CAAO,GAAK,UACtB,GAAS,GAGJ,EAAO,iBAAiB,IAAM,KAAK,MAAQ,IAAM,EAAO,IAAM,CAAI,CAC3E,CACF,EAAG,CACD,IAAK,SACL,MAAO,SAAgB,EAAO,EAAS,CAIrC,OAHI,GAAO,IAAM,KAAK,MAAQ,IAAM,EAAQ,IACxC,EAAS,EAAQ,WAEd,GAAU,IAAW,UAAU,CACpC,GAAI,EAAO,QAAQ,CAAI,EACrB,MAAO,GAGT,EAAS,EAAO,UAClB,CACF,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAM,EAAS,CACrC,GAAI,GAAS,GAAW,KAAK,GAC7B,MAAO,GAAO,aAAa,KAAK,MAAQ,IAAM,CAAI,CACpD,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAM,EAAO,EAAS,CAC5C,GAAI,GAAS,GAAW,KAAK,GAC7B,MAAO,GAAO,aAAa,KAAK,MAAQ,IAAM,EAAM,CAAK,CAC3D,CACF,EAAG,CACD,IAAK,OACL,MAAO,SAAc,EAAM,EAAM,EAAK,EAAI,CACxC,GAAI,GAAS,KAEb,AAAI,GAAQ,CAAC,GACX,GAAM,EACN,EAAO,IAGL,KAAK,QAAQ,IACf,CAAI,EACE,KAAK,QAAQ,GAAK,IACpB,KAAK,QAAQ,GAAK,GAAI,GAAM,CAAI,EAGlC,OAAO,KAAK,KAAK,QAAQ,EAAI,EAAE,QAAQ,SAAU,EAAI,CACnD,EAAO,QAAQ,GAAK,GAAI,GAAM,CAAI,CACpC,CAAC,EAGP,CACF,EAAG,CACD,IAAK,KACL,MAAO,SAAY,EAAG,EAAK,EAAM,EAAI,CACnC,GAAI,GAAS,KAEb,AAAI,KAAK,QAAQ,IACf,CAAI,EACF,KAAK,QAAQ,GAAK,GAAI,GAAG,iBAAiB,EAAG,SAAU,EAAG,CACxD,MAAO,GAAK,CAAC,CACf,CAAC,EAED,OAAO,KAAK,KAAK,QAAQ,EAAI,EAAE,QAAQ,SAAU,EAAG,CAClD,EAAO,QAAQ,GAAK,GAAG,GAAG,iBAAiB,EAAG,SAAU,EAAG,CACzD,MAAO,GAAK,CAAC,CACf,CAAC,CACH,CAAC,EAGP,CACF,EAAG,CACD,IAAK,OACL,MAAO,UAAgB,CAAC,CAC1B,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CAAC,CAC7B,CAAC,CAAC,EAEK,CACT,EAAE,EAEE,GAA0B,UAAY,CACxC,WAAkB,EAAS,CACzB,GAAgB,KAAM,CAAQ,EAE9B,KAAK,IACL,KAAK,QAAU,EAAQ,QACvB,KAAK,eAAiB,CAAC,EACvB,KAAK,cAAgB,CAAC,EACtB,KAAK,WAAa,CAAC,EACnB,KAAK,SAAW,CAClB,CAEA,UAAa,EAAU,CAAC,CACtB,IAAK,OACL,MAAO,SAAc,EAAK,EAAO,CAC/B,GAAI,GAAQ,KAER,EAAY,GAAS,SACrB,EAAW,EAAU,iBAAiB,GAAG,EAE7C,AAAI,GAAO,CAAC,KAAK,KACf,MAAK,IAAM,GAGb,KAAK,cAAc,IAAS,CAC1B,IAAO,KAAK,GACd,EACA,EAAS,QAAQ,SAAU,EAAI,CAC7B,MAAM,KAAK,EAAG,UAAU,EAAE,QAAQ,SAAU,EAAG,CAC7C,GAAI,EAAE,KAAK,WAAW,aAAa,EAAG,CACpC,GAAI,GAAe,GACf,EAAW,EAAE,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,EAErC,EAAa,EAAM,QAAQ,CAAQ,EASvC,GAPA,AAAI,EAAM,QAAQ,GAChB,EAAe,GACN,EAAM,QAAQ,EAAM,QAAQ,CAAU,IAC/C,GAAa,EAAM,QAAQ,CAAU,EACrC,EAAe,IAGb,EAAc,CAChB,GAAI,GAAU,CACZ,GAAI,EACJ,KAAM,EACN,SAAU,EAAS,KAAK,GAAG,CAC7B,EACI,EAAS,GAAI,GAAM,QAAQ,GAAY,CAAO,EAC9C,EAAK,EAAE,MAEX,AAAK,GACH,GAAM,WACN,EAAK,IAAM,EAAM,SACjB,EAAG,aAAa,EAAE,KAAM,CAAE,GAG5B,EAAM,gBAAgB,EAAY,EAAI,CAAM,EAE5C,GAAI,GAAW,EAAa,IAAM,EAElC,AAAI,EACF,EAAM,WAAW,GAAY,EAE7B,EAAM,eAAe,GAAY,CAErC,CACF,CACF,CAAC,CACH,CAAC,EACD,OAAO,QAAQ,KAAK,cAAc,EAAE,QAAQ,SAAU,EAAM,CAC1D,GAAI,GAAQ,EAAe,EAAM,CAAC,EAC9B,EAAK,EAAM,GACX,EAAS,EAAM,GAEnB,GAAI,EAAO,CACT,GAAI,GAAQ,EAAG,MAAM,GAAG,EACpB,EAAa,EAAM,MAAM,EACzB,EAAW,EAAM,IAAI,EAEzB,EAAM,gBAAgB,EAAY,EAAU,CAAM,CACpD,KACE,GAAM,WAAW,CAAM,CAE3B,CAAC,CACH,CACF,EAAG,CACD,IAAK,aACL,MAAO,SAAoB,EAAQ,CACjC,EAAO,MAAM,KAAK,aAAa,EAC/B,EAAO,KAAK,CACd,CACF,EAAG,CACD,IAAK,kBACL,MAAO,SAAyB,EAAM,EAAI,EAAQ,CAChD,AAAI,KAAK,cAAc,GACrB,OAAO,OAAO,KAAK,cAAc,GAAO,GAAgB,CAAC,EAAG,EAAI,CAAM,CAAC,EAEvE,KAAK,cAAc,GAAQ,GAAgB,CAAC,EAAG,EAAI,CAAM,CAE7D,CACF,EAAG,CACD,IAAK,SACL,MAAO,SAAgB,EAAO,CAC5B,GAAI,GAAS,KAEb,KAAK,KAAK,KAAK,IAAK,CAAK,EACzB,OAAO,QAAQ,KAAK,cAAc,EAAE,QAAQ,SAAU,EAAO,CAC3D,GAAI,GAAQ,EAAe,EAAO,CAAC,EAC/B,EAAK,EAAM,GACX,EAAS,EAAM,GAEnB,EAAO,QAAQ,EAAO,aAAa,CACrC,CAAC,EACD,OAAO,QAAQ,KAAK,UAAU,EAAE,QAAQ,SAAU,EAAO,CACvD,GAAI,GAAQ,EAAe,EAAO,CAAC,EAC/B,EAAK,EAAM,GACX,EAAS,EAAM,GAEnB,EAAO,WAAW,CAAM,CAC1B,CAAC,EACD,OAAO,OAAO,KAAK,eAAgB,KAAK,UAAU,CACpD,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAO,CAC7B,AAAI,EACF,KAAK,aAAa,CAAK,EAEvB,KAAK,eAAe,CAExB,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAO,CAClC,GAAI,GAAS,KAET,EAAW,EAAM,iBAAiB,GAAG,EACzC,EAAS,QAAQ,SAAU,EAAI,CAC7B,MAAM,KAAK,EAAG,UAAU,EAAE,QAAQ,SAAU,EAAG,CAC7C,GAAI,EAAE,KAAK,WAAW,aAAa,EAAG,CACpC,GAAI,GAAK,EAAE,MACP,EAAW,EAAE,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,EACrC,EAAa,EAAO,QAAQ,CAAQ,EAAI,IAAM,EAC9C,EAAe,GAEnB,AAAI,EAAO,eAAe,GACxB,EAAe,GACN,EAAO,eAAe,EAAO,QAAQ,CAAU,IACxD,GAAa,EAAO,QAAQ,CAAU,EACtC,EAAe,IAGb,GACF,GAAO,cAAc,EAAO,eAAe,EAAW,EAEtD,MAAO,GAAO,eAAe,GAEjC,CACF,CAAC,CACH,CAAC,EACD,KAAK,cAAgB,CAAC,EACtB,KAAK,WAAa,CAAC,CACrB,CACF,EAAG,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,GAAI,GAAS,KAEb,OAAO,QAAQ,KAAK,cAAc,EAAE,QAAQ,SAAU,EAAO,CAC3D,GAAI,GAAQ,EAAe,EAAO,CAAC,EAC/B,EAAK,EAAM,GACX,EAAS,EAAM,GAEnB,EAAO,cAAc,CAAM,CAC7B,CAAC,EACD,KAAK,eAAiB,CAAC,CACzB,CACF,EAAG,CACD,IAAK,gBACL,MAAO,SAAuB,EAAQ,CACpC,EAAO,SAAS,EAChB,EAAO,QAAQ,CACjB,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAK,CAC3B,GAAI,GAAS,KAEb,MAAO,GAAI,OAAO,SAAU,EAAG,EAAG,CAChC,MAAO,GAAI,EAAO,QAAQ,CAAC,CAC7B,CAAC,CACH,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAK,CAC3B,MAAO,GAAI,OAAO,CAAC,EAAE,YAAY,EAAI,EAAI,MAAM,CAAC,CAClD,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAEK,GAAQ,GCthBf,6CCAA,YAAyB,EAAU,EAAa,CAC9C,GAAI,CAAE,aAAoB,IACxB,KAAM,IAAI,WAAU,mCAAmC,CAE3D,CAEA,YAA2B,EAAQ,EAAO,CACxC,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,GAAI,GAAa,EAAM,GACvB,EAAW,WAAa,EAAW,YAAc,GACjD,EAAW,aAAe,GACtB,SAAW,IAAY,GAAW,SAAW,IACjD,OAAO,eAAe,EAAQ,EAAW,IAAK,CAAU,CAC1D,CACF,CAEA,YAAsB,EAAa,EAAY,EAAa,CAC1D,MAAI,IAAY,GAAkB,EAAY,UAAW,CAAU,EAC/D,GAAa,GAAkB,EAAa,CAAW,EACpD,CACT,CAEA,YAAwB,EAAK,EAAG,CAC9B,MAAO,IAAgB,CAAG,GAAK,GAAsB,EAAK,CAAC,GAAK,GAA4B,EAAK,CAAC,GAAK,GAAiB,CAC1H,CAEA,YAAyB,EAAK,CAC5B,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,EACjC,CAEA,YAA+B,EAAK,EAAG,CACrC,GAAI,GAAK,GAAO,KAAO,KAAO,MAAO,SAAW,aAAe,EAAI,OAAO,WAAa,EAAI,cAE3F,GAAI,GAAM,KACV,IAAI,GAAO,CAAC,EACR,EAAK,GACL,EAAK,GAEL,EAAI,EAER,GAAI,CACF,IAAK,EAAK,EAAG,KAAK,CAAG,EAAG,CAAE,GAAM,GAAK,EAAG,KAAK,GAAG,OAC9C,GAAK,KAAK,EAAG,KAAK,EAEd,KAAK,EAAK,SAAW,IAH4B,EAAK,GAG1D,CAEJ,OAAS,EAAP,CACA,EAAK,GACL,EAAK,CACP,QAAE,CACA,GAAI,CACF,AAAI,CAAC,GAAM,EAAG,QAAa,MAAM,EAAG,OAAU,CAChD,QAAE,CACA,GAAI,EAAI,KAAM,EAChB,CACF,CAEA,MAAO,GACT,CAEA,YAAqC,EAAG,EAAQ,CAC9C,GAAI,EAAC,EACL,IAAI,MAAO,IAAM,SAAU,MAAO,IAAkB,EAAG,CAAM,EAC7D,GAAI,GAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADI,IAAM,UAAY,EAAE,aAAa,GAAI,EAAE,YAAY,MACnD,IAAM,OAAS,IAAM,MAAO,MAAO,OAAM,KAAK,CAAC,EACnD,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,MAAO,IAAkB,EAAG,CAAM,EACjH,CAEA,YAA2B,EAAK,EAAK,CACnC,AAAI,IAAO,MAAQ,EAAM,EAAI,SAAQ,GAAM,EAAI,QAE/C,OAAS,GAAI,EAAG,EAAO,GAAI,OAAM,CAAG,EAAG,EAAI,EAAK,IAAK,EAAK,GAAK,EAAI,GAEnE,MAAO,EACT,CAEA,aAA4B,CAC1B,KAAM,IAAI,WAAU;AAAA,mFAA2I,CACjK,CAEA,GAAI,IAAwB,UAAY,CACtC,WAAkB,EAAS,CACzB,GAAgB,KAAM,CAAQ,EAE9B,KAAK,SAAW,CACd,KAAM,OACN,aAAc,aACd,YAAa,YACb,WAAY,WACZ,kBAAmB,MACnB,mBAAoB,GACpB,WAAY,EACZ,UAAW,EACX,YAAa,EACb,SAAU,GACV,UAAW,GACX,MAAO,GACP,oBAAqB,KACrB,eAAgB,EAClB,EACA,OAAO,OAAO,KAAM,KAAK,SAAU,CAAO,EAC1C,KAAK,QAAU,EACf,KAAK,UAAY,UACjB,KAAK,KAAO,SAAS,gBACrB,KAAK,KAAO,OAAO,SAAS,KAC5B,KAAK,UAAY,QAAU,KAAK,KAAO,aACvC,KAAK,aAAe,GACpB,KAAK,eAAiB,KACtB,KAAK,eAAiB,CAAC,MAAO,SAAU,QAAS,MAAM,EACvD,KAAK,WAAa,GAClB,KAAK,UAAY,GACjB,KAAK,aAAe,GACpB,KAAK,WAAa,GAAI,iBACtB,KAAK,eAAiB,KAAK,KAC3B,KAAK,SAAW,UAAU,UAAU,QAAQ,QAAQ,GAAK,GACzD,KAAK,KAAK,CACZ,CAEA,UAAa,EAAU,CAAC,CACtB,IAAK,OACL,MAAO,UAAgB,CACrB,GAAI,GAAQ,KAEZ,OAAO,iBAAiB,WAAY,SAAU,EAAG,CAC/C,MAAO,GAAM,WAAW,CAAC,CAC3B,EAAG,EAAK,EACR,KAAK,KAAK,iBAAiB,QAAS,SAAU,EAAG,CAC/C,MAAO,GAAM,WAAW,CAAC,CAC3B,EAAG,EAAK,EACR,KAAK,QAAQ,QAAQ,CACvB,CACF,EAAG,CACD,IAAK,aACL,MAAO,SAAoB,EAAG,CAC5B,GAAI,CAAC,EAAE,SAAW,CAAC,EAAE,QAGnB,OAFI,GAAS,EAAE,OAER,GAAU,IAAW,UAAU,CACpC,GAAI,EAAO,QAAQ,GAAG,GAAK,EAAO,aAAa,UAAU,GAAK,KAAM,CAClE,GAAI,GAAO,EAAO,aAAa,MAAM,EAErC,AAAI,CAAC,EAAK,WAAW,GAAG,GAAK,CAAC,EAAK,WAAW,SAAS,GAAK,CAAC,EAAK,WAAW,MAAM,GACjF,GAAE,eAAe,EACjB,KAAK,MAAM,EACX,KAAK,gBAAgB,CAAM,GAG7B,KACF,CAEA,EAAS,EAAO,UAClB,CAEJ,CACF,EAAG,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,AAAI,MAAO,MAAK,gBAAmB,UAAY,OAAO,SAAS,KAAK,QAAQ,KAAK,cAAc,EAAI,IAInG,MAAK,MAAM,EACX,KAAK,gBAAgB,EACvB,CACF,EAAG,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,AAAI,KAAK,WACP,MAAK,WAAW,MAAM,EACtB,KAAK,UAAY,GACjB,KAAK,WAAa,GAAI,kBAGxB,OAAO,aAAa,KAAK,YAAY,EAEjC,KAAK,YACP,KAAK,gBAAgB,EAGvB,KAAK,eAAiB,KAAK,KAC3B,OAAO,OAAO,KAAM,KAAK,SAAU,KAAK,OAAO,CACjD,CACF,EAAG,CACD,IAAK,kBACL,MAAO,SAAyB,EAAM,CACpC,KAAK,WAAa,EAAK,aAAa,QAAU,KAAK,IAAI,EACvD,KAAK,MAAQ,EAAK,aAAa,QAAU,KAAK,KAAO,MAAM,EAC3D,GAAI,GAAO,EAAK,aAAa,MAAM,EAC/B,EAAS,EAAK,aAAa,QAAQ,EAEvC,GAAI,GAAU,SAAU,CACtB,OAAO,KAAK,EAAM,QAAQ,EAC1B,MACF,CAEA,GAAI,KAAK,YAAc,QAAS,CAC9B,OAAO,SAAW,EAClB,MACF,CAEA,KAAK,WAAW,EAAM,EAAI,CAC5B,CACF,EAAG,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,AAAI,KAAK,mBACP,KAAK,WAAa,QAAQ,MAE1B,KAAK,WAAa,GAGpB,GAAI,GAAO,OAAO,SAAS,KAC3B,KAAK,WAAW,CAAI,CACtB,CACF,EAAG,CACD,IAAK,OACL,MAAO,SAAc,EAAM,EAAY,EAAO,CAC5C,KAAK,MAAM,EACX,KAAK,WAAa,EAClB,KAAK,MAAQ,EACb,KAAK,WAAW,EAAM,EAAI,CAC5B,CACF,EAAG,CACD,IAAK,aACL,MAAO,SAAoB,EAAM,EAAM,CACrC,GAAI,GAAY,IAAM,KAAK,UAAY,IACnC,EAEJ,AAAI,KAAK,YAAc,KAAK,YAAc,QACxC,MAAK,oBAAsB,IAAM,KAAK,UAAY,KAAO,KAAK,WAAa,KAC3E,KAAK,aAAe,KAAK,YAAY,KAAK,YAAY,cAAgB,KAAK,aAC3E,KAAK,YAAc,KAAK,YAAY,KAAK,YAAY,aAAe,KAAK,YACzE,KAAK,WAAa,KAAK,YAAY,KAAK,YAAY,YAAc,KAAK,WACvE,KAAK,kBAAoB,KAAK,YAAY,KAAK,YAAY,mBAAqB,KAAK,kBACrF,KAAK,WAAa,KAAK,YAAY,KAAK,YAAY,YAAc,KAAK,WACvE,KAAK,UAAY,KAAK,YAAY,KAAK,YAAY,WAAa,KAAK,UACrE,KAAK,YAAc,KAAK,YAAY,KAAK,YAAY,aAAe,KAAK,YACzE,EAAe,SAAS,cAAc,KAAK,mBAAmB,GAGhE,AAAI,EACF,GAAY,KAAK,oBACjB,KAAK,aAAe,EACpB,KAAK,eAAiB,KAAK,aAAa,WAEnC,KAAK,cACR,QAAQ,aAAa,KAAK,WAAY,KAAM,KAAK,IAAI,EAGvD,KAAK,aAAe,IAEpB,MAAK,aAAe,SAAS,cAAc,CAAS,EAEhD,KAAK,cACP,QAAQ,aAAa,KAAK,eAAgB,KAAM,KAAK,IAAI,EAG3D,KAAK,aAAe,IAGtB,KAAK,KAAO,EACZ,KAAK,gBAAkB,KAAK,aAAa,WAEzC,AAAI,KAAK,QAAU,IAAM,KAAK,OAAS,MAAQ,KAAK,OAAS,SAAW,KAAK,OAAS,GACpF,QAAQ,UAAU,KAAK,WAAY,KAAM,CAAI,EAE7C,MAAK,aAAa,UAAU,IAAI,QAAQ,EACxC,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAAM,EAAW,CAAI,EAEvC,CACF,EAAG,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,eAAe,UAAU,OAAO,KAAK,YAAa,KAAK,UAAU,EACtE,KAAK,eAAe,UAAU,IAAI,KAAK,YAAY,EACnD,KAAK,eAAe,UAAU,OAAO,KAAK,kBAAoB,KAAK,cAAc,EAE7E,KAAK,YACP,KAAK,eAAe,UAAU,IAAI,KAAK,kBAAoB,KAAK,UAAU,EAGvE,KAAK,cACR,MAAK,eAAiB,KAAK,YAG7B,GAAI,GAAe,GAAI,OAAM,KAAK,UAAY,SAAS,EACvD,OAAO,cAAc,CAAY,CACnC,CACF,EAAG,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,GAAI,GAAS,KAEb,KAAK,aAAe,OAAO,WAAW,UAAY,CAChD,EAAO,UAAY,GAEf,EAAO,UACT,EAAO,qBAAqB,CAEhC,EAAG,KAAK,UAAU,CACpB,CACF,EAAG,CACD,IAAK,WACL,MAAO,SAAkB,EAAM,EAAW,EAAM,CAC9C,GAAI,GAAS,KAEb,KAAK,UAAY,GACjB,GAAI,GAAS,KAAK,WAAW,OAC7B,MAAM,EAAM,CACV,OAAQ,CACV,CAAC,EAAE,KAAK,SAAU,EAAU,CAC1B,MAAO,GAAS,KAAK,CACvB,CAAC,EAAE,KAAK,SAAU,EAAM,CACtB,AAAI,GACF,QAAQ,UAAU,EAAO,WAAY,KAAM,CAAI,EAGjD,GAAI,GAAS,GAAI,WACjB,EAAO,KAAO,EAAO,gBAAgB,EAAM,WAAW,EACtD,EAAO,aAAe,EAAO,KAAK,cAAc,CAAS,EAEzD,EAAO,aAAa,UAAU,IAAI,QAAQ,EAE1C,EAAO,mBAAqB,EAAO,aAAa,WAEhD,EAAO,cAAc,EAErB,EAAO,gBAAgB,aAAa,EAAO,aAAc,EAAO,YAAY,EAE5E,EAAO,WAAa,GAEpB,EAAO,QAAQ,EAEf,EAAO,SAAW,GAEd,EAAO,WACT,EAAO,qBAAqB,EAG9B,EAAO,QAAQ,EAAO,YAAY,EAElC,EAAO,UAAY,EACrB,CAAC,EAAE,MAAS,SAAU,EAAK,CACzB,OAAO,SAAW,CACpB,CAAC,CACH,CACF,EAAG,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,GAAI,GAAS,KAEb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,WAAW,UAAY,CACrB,EAAO,gBAAgB,EAEvB,EAAO,SAAS,CAClB,EAAG,KAAK,SAAS,CACnB,CACF,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,GAAI,KAAK,SAAU,CACjB,GAAI,GAAO,KAAK,aAAa,iBAAiB,KAAK,EAEnD,AAAI,EAAK,QACP,EAAK,QAAQ,SAAU,EAAK,CAC1B,GAAI,GAAQ,EAAI,aAAa,YAAY,EAEzC,GAAI,EACF,EAAI,WAAW,UAAY,oBAAsB,EAAQ,eACpD,CACL,GAAI,GAAO,EAAI,aAAa,MAAM,EAClC,AAAI,GAAM,GAAI,WAAW,UAAY,cAAgB,EAAO,WAC9D,CACF,CAAC,CAEL,CACF,CACF,EAAG,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,GAAI,GAAS,KAET,EAAQ,KAAK,KAAK,qBAAqB,OAAO,EAAE,GAChD,EAAU,KAAK,KAAK,KAAK,cAAc,0BAA0B,EACjE,EAAU,SAAS,KAAK,cAAc,0BAA0B,EAChE,EACA,EAEJ,AAAI,KAAK,aACP,GAAe,KAAK,mBACpB,EAAY,SAAS,cAAc,KAAK,mBAAmB,EAAE,YAE7D,GAAe,KAAK,KAAK,cAAc,MAAM,EAC7C,EAAY,SAAS,cAAc,MAAM,GAG3C,GAAI,GAAQ,OAAO,OAAO,CAAC,EAAG,EAAa,OAAO,EAClD,AAAI,GAAO,UAAS,MAAQ,EAAM,WAC9B,GAAW,GAAS,EAAQ,aAAa,UAAW,EAAQ,aAAa,SAAS,CAAC,EAEnF,GACF,OAAO,QAAQ,CAAK,EAAE,QAAQ,SAAU,EAAM,CAC5C,GAAI,GAAQ,GAAe,EAAM,CAAC,EAC9B,EAAM,EAAM,GACZ,EAAM,EAAM,GAEhB,EAAU,aAAa,QAAU,EAAO,OAAO,CAAG,EAAG,CAAG,CAC1D,CAAC,CAEL,CACF,EAAG,CACD,IAAK,SACL,MAAO,SAAgB,EAAK,CAC1B,MAAO,GAAI,MAAM,WAAW,EAAE,KAAK,GAAG,EAAE,YAAY,CACtD,CACF,EAAG,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,KAAK,aAAa,MAAM,WAAa,SACrC,KAAK,aAAa,MAAM,OAAS,EACjC,KAAK,aAAa,MAAM,SAAW,QACrC,CACF,EAAG,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,KAAK,aAAa,MAAM,WAAa,GACrC,KAAK,aAAa,MAAM,OAAS,GACjC,KAAK,aAAa,MAAM,SAAW,EACrC,CACF,EAAG,CACD,IAAK,UACL,MAAO,SAAiB,EAAW,CACjC,GAAI,GAAS,KAET,EAAW,CAAC,EAChB,KAAK,eAAe,QAAQ,SAAU,EAAM,CAC1C,GAAI,GAAO,QAAU,EAAO,KAAO,IAAM,EACrC,EAAM,EAAU,iBAAiB,IAAM,EAAO,GAAG,EAErD,AAAI,EAAI,QACN,EAAI,QAAQ,SAAU,EAAI,CACxB,GAAI,GAAS,EAAG,aAAa,CAAI,EAGjC,GAFA,EAAG,aAAa,EAAM,CAAM,EAExB,GAAQ,OAAS,GAAQ,SAAU,CACrC,GAAI,GAAU,GAAI,SAAQ,SAAU,EAAS,CAC3C,EAAG,OAAS,UAAY,CACtB,MAAO,GAAQ,CAAE,CACnB,CACF,CAAC,EACD,EAAS,KAAK,CAAO,CACvB,CACF,CAAC,CAEL,CAAC,EACD,QAAQ,IAAI,CAAQ,EAAE,KAAK,SAAU,EAAK,CACxC,GAAI,GAAc,GAAI,OAAM,EAAO,UAAY,QAAQ,EACvD,OAAO,cAAc,CAAW,CAClC,CAAC,CACH,CACF,EAAG,CACD,IAAK,YACL,MAAO,UAAqB,CAC1B,GAAI,GAAS,KAEb,KAAK,eAAe,UAAU,OAAO,KAAK,YAAY,EACtD,WAAW,UAAY,CACrB,EAAO,eAAe,UAAU,IAAI,EAAO,WAAW,CACxD,EAAG,KAAK,WAAW,EACnB,GAAI,GAAc,GAAI,OAAM,KAAK,UAAY,QAAQ,EACrD,OAAO,cAAc,CAAW,CAClC,CACF,EAAG,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,KAAK,gBAAgB,YAAY,KAAK,YAAY,EAClD,KAAK,aAAa,UAAU,OAAO,QAAQ,EAC3C,KAAK,WAAa,EACpB,CACF,EAAG,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,KAAK,eAAe,UAAU,IAAI,KAAK,UAAU,EACjD,GAAI,GAAa,GAAI,OAAM,KAAK,UAAY,OAAO,EACnD,OAAO,cAAc,CAAU,CACjC,CACF,EAAG,CACD,IAAK,KACL,MAAO,SAAY,EAAO,EAAM,CAC9B,GAAI,GAAS,KAEb,OAAO,iBAAiB,KAAK,UAAY,EAAO,UAAY,CAC1D,OAAQ,OACD,UACH,MAAO,GAAK,EAAO,WAAY,EAAO,YAAY,MAE/C,SACH,MAAO,GAAK,EAAO,WAAY,EAAO,aAAc,EAAO,YAAY,MAEpE,QACH,MAAO,GAAK,EAAO,WAAY,EAAO,YAAY,UAGlD,MAAO,GAAK,EAElB,EAAG,EAAK,CACV,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAEK,GAAQ,GCngBf,oBAA6B,EAAO,CAChC,YAAY,EAAG,CACX,MAAM,CAAC,CACX,CAEA,MAAO,CAQH,AAPa,GAAI,IAAY,CACzB,WAAY,EACZ,YAAa,CACT,iBAAkB,CAAC,CACvB,CACJ,CAAC,EAEI,GAAG,SAAU,CAAC,EAAY,EAAc,IAAiB,CAC1D,KAAK,KAAK,UAAW,EAAc,KAAK,EACxC,KAAK,KAAK,SAAU,EAAc,KAAK,CAC3C,CAAC,CACL,CACJ,ECrBA,GAAM,IAAqB,CAAC,EAErB,YAAmB,EAAK,EAAU,CAAC,EAAG,CACzC,MAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACpC,GAAM,GAAO,GAAI,OAEjB,AAAI,EAAQ,aACR,GAAK,YAAc,EAAQ,aAG/B,GAAM,GAAe,IAAM,CACvB,EAAQ,IACJ,QAAS,GACN,GAAiB,CAAI,EAC3B,CACL,EAEA,AAAG,EAAK,OACJ,GAAK,IAAM,EACX,EAAK,OAAO,EAAE,KAAK,CAAY,EAAE,MAAM,GAAK,CACxC,EAAO,CAAC,CACZ,CAAC,GAED,GAAK,OAAS,EACd,EAAK,QAAU,AAAC,GAAM,CAClB,EAAO,CAAC,CACZ,EACA,EAAK,IAAM,EAEnB,CAAC,CACL,CAEO,YAA0B,EAAM,CACnC,MAAO,CACH,IAAK,EAAK,IACV,MAAO,EAAK,aACZ,OAAQ,EAAK,cACb,MAAO,EAAK,aAAe,EAAK,aACpC,CACJ,CAUA,YAAoC,EAAK,EAAK,EAAU,iCACpD,GAAI,GAAM,GAAY,EAAI,QAAQ,IAE9B,EAAc,GAAmB,KAAK,GAAS,EAAM,MAAQ,CAAG,EAEpE,GAAI,CAAC,EAAa,CAGd,GAFA,EAAc,KAAM,IAAU,CAAG,EAE7B,CAAC,EAAY,IACb,OAGJ,GAAmB,KAAK,CAAW,CACvC,CAEA,AAAG,EAAI,MAAQ,GAIf,CAAI,EAAI,UAAY,MAChB,EAAI,IAAM,EAAY,IAEtB,EAAI,MAAM,gBAAkB,OAAO,EAAY,OAGnD,sBAAsB,IAAM,CACxB,GAAI,GAAa,EAAI,QAAQ,SAAS,EAEtC,AAAG,GACC,GAAW,UAAU,IAAI,cAAc,EACvC,EAAW,MAAM,gBAAkB,IAGvC,EAAI,UAAU,IAAI,cAAc,EAEhC,YACJ,CAAC,EACL,GCrFA,WAAyB,EAAU,EAAa,CAC9C,GAAI,CAAE,aAAoB,IACxB,KAAM,IAAI,WAAU,mCAAmC,CAE3D,CAEA,YAA2B,EAAQ,EAAO,CACxC,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,GAAI,GAAa,EAAM,GACvB,EAAW,WAAa,EAAW,YAAc,GACjD,EAAW,aAAe,GACtB,SAAW,IAAY,GAAW,SAAW,IACjD,OAAO,eAAe,EAAQ,EAAW,IAAK,CAAU,CAC1D,CACF,CAEA,WAAsB,EAAa,EAAY,EAAa,CAC1D,MAAI,IAAY,GAAkB,EAAY,UAAW,CAAU,EAC/D,GAAa,GAAkB,EAAa,CAAW,EACpD,CACT,CAEA,YAAyB,EAAK,EAAK,EAAO,CACxC,MAAI,KAAO,GACT,OAAO,eAAe,EAAK,EAAK,CAC9B,MAAO,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACZ,CAAC,EAED,EAAI,GAAO,EAGN,CACT,CAEA,YAAiB,EAAQ,EAAgB,CACvC,GAAI,GAAO,OAAO,KAAK,CAAM,EAE7B,GAAI,OAAO,sBAAuB,CAChC,GAAI,GAAU,OAAO,sBAAsB,CAAM,EACjD,AAAI,GAAgB,GAAU,EAAQ,OAAO,SAAU,EAAK,CAC1D,MAAO,QAAO,yBAAyB,EAAQ,CAAG,EAAE,UACtD,CAAC,GACD,EAAK,KAAK,MAAM,EAAM,CAAO,CAC/B,CAEA,MAAO,EACT,CAEA,YAAwB,EAAQ,CAC9B,OAAS,GAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CACzC,GAAI,GAAS,UAAU,IAAM,KAAO,UAAU,GAAK,CAAC,EAEpD,AAAI,EAAI,EACN,GAAQ,OAAO,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAU,EAAK,CACnD,GAAgB,EAAQ,EAAK,EAAO,EAAI,CAC1C,CAAC,EACI,AAAI,OAAO,0BAChB,OAAO,iBAAiB,EAAQ,OAAO,0BAA0B,CAAM,CAAC,EAExE,GAAQ,OAAO,CAAM,CAAC,EAAE,QAAQ,SAAU,EAAK,CAC7C,OAAO,eAAe,EAAQ,EAAK,OAAO,yBAAyB,EAAQ,CAAG,CAAC,CACjF,CAAC,CAEL,CAEA,MAAO,EACT,CAEA,YAAmB,EAAU,EAAY,CACvC,GAAI,MAAO,IAAe,YAAc,IAAe,KACrD,KAAM,IAAI,WAAU,oDAAoD,EAG1E,EAAS,UAAY,OAAO,OAAO,GAAc,EAAW,UAAW,CACrE,YAAa,CACX,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CACF,CAAC,EACG,GAAY,GAAgB,EAAU,CAAU,CACtD,CAEA,WAAyB,EAAG,CAC1B,SAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB,EAAG,CAC5F,MAAO,GAAE,WAAa,OAAO,eAAe,CAAC,CAC/C,EACO,EAAgB,CAAC,CAC1B,CAEA,YAAyB,EAAG,EAAG,CAC7B,UAAkB,OAAO,gBAAkB,SAAyB,EAAG,EAAG,CACxE,SAAE,UAAY,EACP,CACT,EAEO,GAAgB,EAAG,CAAC,CAC7B,CAEA,aAAqC,CAEnC,GADI,MAAO,UAAY,aAAe,CAAC,QAAQ,WAC3C,QAAQ,UAAU,KAAM,MAAO,GACnC,GAAI,MAAO,QAAU,WAAY,MAAO,GAExC,GAAI,CACF,YAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,KAAM,CAAC,EAAG,UAAY,CAAC,CAAC,CAAC,EACjE,EACT,OAAS,EAAP,CACA,MAAO,EACT,CACF,CAEA,YAAgC,EAAM,CACpC,GAAI,IAAS,OACX,KAAM,IAAI,gBAAe,2DAA2D,EAGtF,MAAO,EACT,CAEA,YAAoC,EAAM,EAAM,CAC9C,MAAI,IAAS,OAAO,IAAS,UAAY,MAAO,IAAS,YAChD,EAGF,GAAuB,CAAI,CACpC,CAEA,YAAsB,EAAS,CAC7B,GAAI,GAA4B,GAA0B,EAE1D,MAAO,WAAgC,CACrC,GAAI,GAAQ,EAAgB,CAAO,EAC/B,EAEJ,GAAI,EAA2B,CAC7B,GAAI,GAAY,EAAgB,IAAI,EAAE,YAEtC,EAAS,QAAQ,UAAU,EAAO,UAAW,CAAS,CACxD,KACE,GAAS,EAAM,MAAM,KAAM,SAAS,EAGtC,MAAO,IAA2B,KAAM,CAAM,CAChD,CACF,CAEA,YAAwB,EAAQ,EAAU,CACxC,KAAO,CAAC,OAAO,UAAU,eAAe,KAAK,EAAQ,CAAQ,GAC3D,GAAS,EAAgB,CAAM,EAC3B,IAAW,OAAf,CAGF,MAAO,EACT,CAEA,WAAc,EAAQ,EAAU,EAAU,CACxC,MAAI,OAAO,UAAY,aAAe,QAAQ,IAC5C,EAAO,QAAQ,IAEf,EAAO,SAAc,EAAQ,EAAU,EAAU,CAC/C,GAAI,GAAO,GAAe,EAAQ,CAAQ,EAE1C,GAAI,EAAC,EACL,IAAI,GAAO,OAAO,yBAAyB,EAAM,CAAQ,EAEzD,MAAI,GAAK,IACA,EAAK,IAAI,KAAK,CAAQ,EAGxB,EAAK,MACd,EAGK,EAAK,EAAQ,EAAU,GAAY,CAAM,CAClD,CAEA,WAAwB,EAAK,EAAG,CAC9B,MAAO,IAAgB,CAAG,GAAK,GAAsB,EAAK,CAAC,GAAK,GAA4B,EAAK,CAAC,GAAK,GAAiB,CAC1H,CAEA,YAA4B,EAAK,CAC/B,MAAO,IAAmB,CAAG,GAAK,GAAiB,CAAG,GAAK,GAA4B,CAAG,GAAK,GAAmB,CACpH,CAEA,YAA4B,EAAK,CAC/B,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,IAAkB,CAAG,CACtD,CAEA,YAAyB,EAAK,CAC5B,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,EACjC,CAEA,YAA0B,EAAM,CAC9B,GAAI,MAAO,SAAW,aAAe,OAAO,WAAY,QAAO,CAAI,EAAG,MAAO,OAAM,KAAK,CAAI,CAC9F,CAEA,YAA+B,EAAK,EAAG,CACrC,GAAI,QAAO,SAAW,aAAe,CAAE,QAAO,WAAY,QAAO,CAAG,IACpE,IAAI,GAAO,CAAC,EACR,EAAK,GACL,EAAK,GACL,EAAK,OAET,GAAI,CACF,OAAS,GAAK,EAAI,OAAO,UAAU,EAAG,EAAI,CAAE,GAAM,GAAK,EAAG,KAAK,GAAG,OAChE,GAAK,KAAK,EAAG,KAAK,EAEd,KAAK,EAAK,SAAW,IAH8C,EAAK,GAG5E,CAEJ,OAAS,EAAP,CACA,EAAK,GACL,EAAK,CACP,QAAE,CACA,GAAI,CACF,AAAI,CAAC,GAAM,EAAG,QAAa,MAAM,EAAG,OAAU,CAChD,QAAE,CACA,GAAI,EAAI,KAAM,EAChB,CACF,CAEA,MAAO,GACT,CAEA,YAAqC,EAAG,EAAQ,CAC9C,GAAI,EAAC,EACL,IAAI,MAAO,IAAM,SAAU,MAAO,IAAkB,EAAG,CAAM,EAC7D,GAAI,GAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADI,IAAM,UAAY,EAAE,aAAa,GAAI,EAAE,YAAY,MACnD,IAAM,OAAS,IAAM,MAAO,MAAO,OAAM,KAAK,CAAC,EACnD,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,MAAO,IAAkB,EAAG,CAAM,EACjH,CAEA,YAA2B,EAAK,EAAK,CACnC,AAAI,IAAO,MAAQ,EAAM,EAAI,SAAQ,GAAM,EAAI,QAE/C,OAAS,GAAI,EAAG,EAAO,GAAI,OAAM,CAAG,EAAG,EAAI,EAAK,IAAK,EAAK,GAAK,EAAI,GAEnE,MAAO,EACT,CAEA,aAA8B,CAC5B,KAAM,IAAI,WAAU;AAAA,mFAAsI,CAC5J,CAEA,aAA4B,CAC1B,KAAM,IAAI,WAAU;AAAA,mFAA2I,CACjK,CAEA,GAAI,GAAW,CACb,GAAI,SACJ,KAAM,SACN,OAAQ,CAAC,EAAG,CAAC,EACb,OAAQ,GACR,OAAQ,GACR,aAAc,CACZ,EAAG,EACH,EAAG,CACL,EACA,UAAW,WACX,iBAAkB,WAClB,sBAAuB,GACvB,KAAM,GACN,MAAS,YACT,mBAAoB,GACpB,eAAgB,cAChB,eAAgB,uBAChB,cAAe,sBACf,YAAa,oBACb,UAAW,kBACX,SAAU,GACV,aAAc,GACd,mBAAoB,GACpB,WAAY,EACZ,kBAAmB,GACnB,gBAAiB,EACjB,kBAAmB,GACnB,OAAQ,CACN,OAAQ,GACR,UAAW,WACX,iBAAkB,WAClB,WAAY,IACd,EACA,WAAY,CACV,OAAQ,GACR,UAAW,WACX,iBAAkB,UACpB,CACF,EAEI,GAAwB,UAAY,CACtC,YAAoB,CAClB,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAEnF,EAAgB,KAAM,CAAQ,EAE9B,OAAO,OAAO,KAAM,EAAU,CAAO,EACrC,KAAK,WAAa,EAAS,WACvB,EAAQ,YAAY,OAAO,OAAO,KAAK,WAAY,EAAQ,UAAU,EACzE,KAAK,OAAS,EAAS,OACnB,EAAQ,QAAQ,OAAO,OAAO,KAAK,OAAQ,EAAQ,MAAM,EAC7D,KAAK,UAAY,aACjB,KAAK,KAAO,SAAS,gBACrB,KAAK,aAAe,OAAO,YAC3B,KAAK,YAAc,OAAO,WAC1B,KAAK,aAAe,CAClB,EAAG,KAAK,YAAc,EACtB,EAAG,KAAK,aAAe,CACzB,EACA,KAAK,IAAM,CAAC,EACZ,KAAK,gBAAkB,CAAC,EACxB,KAAK,UAAY,CAAC,EAClB,KAAK,iBAAmB,GACxB,KAAK,gBAAkB,GACvB,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,SAAW,CACd,OAAQ,CACN,EAAG,EACH,EAAG,CACL,EACA,MAAO,CACL,EAAG,KAAK,KAAK,YACb,EAAG,KAAK,KAAK,YACf,EACA,gBAAiB,KAAK,eACxB,EAEA,AAAI,KAAK,SACP,AAAI,KAAK,SACP,KAAK,QAAU,SAEf,KAAK,QAAU,aAGjB,KAAK,QAAU,UAGb,KAAK,UAAU,MAAK,UAAY,KAAK,KAAK,SAAS,WAEvD,AAAI,KAAK,YAAc,aACrB,KAAK,cAAgB,IAErB,KAAK,cAAgB,IAGnB,KAAK,cACP,MAAK,SAAS,UAAY,MAGxB,KAAK,cACP,MAAK,SAAS,MAAQ,GAGxB,KAAK,KAAK,UAAU,IAAI,KAAK,SAAS,EACtC,OAAO,iBAAiB,SAAU,KAAK,YAAa,EAAK,CAC3D,CAEA,SAAa,EAAU,CAAC,CACtB,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,WAAW,CAClB,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,KAAK,eAAe,CACtB,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAQ,KAEZ,AAAK,KAAK,YACR,MAAK,WAAa,GAClB,sBAAsB,UAAY,CAChC,EAAM,OAAO,EAEb,EAAM,WAAa,EACrB,CAAC,EAEL,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CAAC,CAC5B,EAAG,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,GAAI,EAAC,KAAK,sBACV,MAAK,SAAW,2DAA2D,KAAK,UAAU,SAAS,GAAK,UAAU,WAAa,YAAc,UAAU,eAAiB,GAAK,KAAK,YAAc,KAAK,OAAO,WAC5M,KAAK,SAAW,KAAK,UAAY,KAAK,aAAe,KAAK,OAAO,WACjE,GAAI,GAAa,KAAK,QAYtB,GAVA,AAAI,KAAK,SACP,AAAI,KAAK,SACP,KAAK,QAAU,SAEf,KAAK,QAAU,aAGjB,KAAK,QAAU,UAGb,GAAc,KAAK,QAAS,CAC9B,GAAI,GAAY,GAAc,UAAY,KAAK,OAAS,KAAK,GAAY,OACrE,EAAY,KAAK,SAAW,UAAY,KAAK,OAAS,KAAK,KAAK,SAAS,OAC7E,AAAI,GAAa,GAAW,OAAO,SAAS,OAAO,CACrD,EACF,CACF,EAAG,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,GAAI,GAAS,KAEb,KAAK,YAAc,KAAK,GAAG,iBAAiB,SAAS,OAAO,KAAK,KAAM,MAAM,CAAC,EAC9E,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,YAAY,QAAQ,SAAU,EAAI,CACrC,EAAG,iBAAiB,QAAS,EAAO,YAAa,EAAK,CACxD,CAAC,CACH,CACF,EAAG,CACD,IAAK,cACL,MAAO,SAAqB,EAAO,CACjC,EAAM,eAAe,EACrB,KAAK,SAAS,EAAM,cAAc,aAAa,QAAQ,OAAO,KAAK,KAAM,OAAO,CAAC,GAAK,EAAM,cAAc,aAAa,MAAM,EAAG,CAC9H,OAAQ,EAAM,cAAc,aAAa,QAAQ,OAAO,KAAK,KAAM,SAAS,CAAC,CAC/E,CAAC,CACH,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAAC,CACjC,EAAG,CACD,IAAK,iBACL,MAAO,SAAwB,EAAiB,CAC9C,GAAI,GAAS,KAET,EAAY,KAAK,SAAS,OAAO,EACjC,EAAe,EAAY,KAAK,aAChC,EAAa,KAAK,SAAS,OAAO,EAClC,EAAc,EAAa,KAAK,YACpC,OAAO,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAU,EAAM,CAC/C,GAAI,GAAQ,EAAe,EAAM,CAAC,EAC9B,EAAI,EAAM,GACV,EAAK,EAAM,GAcf,GAZI,GAAO,EAAC,EAAG,QAAU,IACvB,CAAI,EAAO,YAAc,aACnB,GAAe,EAAG,MAAQ,EAAa,EAAG,OAC5C,EAAO,UAAU,EAAI,CAAC,EAGpB,GAAgB,EAAG,KAAO,EAAY,EAAG,QAC3C,EAAO,UAAU,EAAI,CAAC,GAKxB,GAAM,EAAG,OACX,GAAI,EAAO,YAAc,aAAc,CACrC,GAAI,GAAQ,EAAG,MAAQ,EAAG,KAC1B,EAAG,SAAY,GAAO,SAAS,OAAO,EAAK,GAAG,KAAO,EAAO,cAAiB,GAAQ,EAAO,aAExF,GAAc,EAAG,MAAQ,EAAa,EAAG,QAC3C,EAAO,aAAa,EAAI,CAAC,CAE7B,KAAO,CACL,GAAI,GAAS,EAAG,OAAS,EAAG,IAC5B,EAAG,SAAY,GAAO,SAAS,OAAO,EAAK,GAAG,IAAM,EAAO,eAAkB,GAAS,EAAO,cAEzF,GAAe,EAAG,KAAO,EAAY,EAAG,SAC1C,EAAO,aAAa,EAAI,CAAC,CAE7B,CAEJ,CAAC,EAID,KAAK,iBAAmB,EAC1B,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAS,EAAG,CACpC,KAAK,IAAI,GAAG,OAAS,GACrB,EAAQ,GAAG,UAAU,IAAI,EAAQ,KAAQ,EACzC,KAAK,gBAAgB,GAAK,EAEtB,EAAQ,MAAQ,KAAK,iBACvB,MAAK,aAAa,EAAS,OAAO,EAE7B,EAAQ,QACX,MAAK,IAAI,GAAG,KAAO,IAQzB,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAS,EAAG,CACvC,GAAI,GAAS,KAGb,KAAK,IAAI,GAAG,OAAS,GAErB,OAAO,KAAK,KAAK,eAAe,EAAE,QAAQ,SAAU,EAAI,CACtD,IAAO,GAAK,MAAO,GAAO,gBAAgB,EAC5C,CAAC,EAEG,EAAQ,MAAQ,KAAK,iBACvB,KAAK,aAAa,EAAS,MAAM,EAG/B,EAAQ,QACV,EAAQ,GAAG,UAAU,OAAO,EAAQ,KAAQ,CAEhD,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAS,EAAK,CACzC,KAAK,QAAU,EACf,KAAK,UAAY,EAAQ,KAAK,MAAM,GAAG,EAAE,IAAI,SAAU,EAAM,CAC3D,MAAO,GAAK,KAAK,CACnB,CAAC,EACD,KAAK,QAAU,EACX,KAAK,UAAU,QAAU,GAAG,MAAK,UAAY,KAAK,UAAU,IAChE,GAAI,GAAY,GAAI,OAAM,KAAK,UAAY,MAAM,EACjD,KAAK,GAAG,cAAc,CAAS,CACjC,CACF,EAAG,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,GAAI,GAAc,GAAI,OAAM,KAAK,UAAY,QAAQ,EACrD,KAAK,GAAG,cAAc,CAAW,CACnC,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAO,EAAM,CACrC,AAAK,KAAK,UAAU,IAClB,MAAK,UAAU,GAAS,CAAC,GAG3B,GAAI,GAAO,KAAK,UAAU,GAC1B,EAAK,KAAK,CAAI,EAEV,EAAK,SAAW,GAClB,KAAK,GAAG,iBAAiB,KAAK,UAAY,EAAO,KAAK,WAAY,EAAK,EAGrE,IAAU,QACZ,MAAK,gBAAkB,GACvB,KAAK,eAAe,EAAI,EAE5B,CACF,EAAG,CACD,IAAK,cACL,MAAO,SAAqB,EAAO,EAAM,CACvC,GAAI,EAAC,KAAK,UAAU,GACpB,IAAI,GAAO,KAAK,UAAU,GACtB,EAAQ,EAAK,QAAQ,CAAI,EAC7B,AAAI,EAAQ,GACZ,GAAK,OAAO,EAAO,CAAC,EAEhB,EAAK,QAAU,GACjB,KAAK,GAAG,oBAAoB,KAAK,UAAY,EAAO,KAAK,WAAY,EAAK,GAE9E,CACF,EAAG,CACD,IAAK,aACL,MAAO,SAAoB,EAAO,CAChC,GAAI,GAAS,KAET,EAAO,EAAM,KAAK,QAAQ,KAAK,UAAW,EAAE,EAC5C,EAAO,KAAK,UAAU,GAC1B,AAAI,CAAC,GAAQ,EAAK,SAAW,GAC7B,EAAK,QAAQ,SAAU,EAAM,CAC3B,OAAQ,OACD,SACH,MAAO,GAAK,EAAO,QAAQ,MAExB,OACH,MAAO,GAAK,EAAO,UAAW,EAAO,QAAS,EAAO,OAAO,UAG5D,MAAO,GAAK,EAElB,CAAC,CACH,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAAC,CACjC,EAAG,CACD,IAAK,aACL,MAAO,UAAsB,CAAC,CAChC,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAG,EAAG,CAC9B,KAAK,SAAS,OAAS,CACrB,EAAG,EACH,EAAG,CACL,CACF,CACF,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,GAAI,GAAS,KAEb,OAAO,oBAAoB,SAAU,KAAK,YAAa,EAAK,EAC5D,OAAO,KAAK,KAAK,SAAS,EAAE,QAAQ,SAAU,EAAO,CACnD,EAAO,GAAG,oBAAoB,EAAO,UAAY,EAAO,EAAO,WAAY,EAAK,CAClF,CAAC,EACD,KAAK,UAAY,CAAC,EAClB,KAAK,YAAY,QAAQ,SAAU,EAAI,CACrC,EAAG,oBAAoB,QAAS,EAAO,YAAa,EAAK,CAC3D,CAAC,EACD,KAAK,KAAK,UAAU,OAAO,KAAK,SAAS,CAC3C,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAEE,GAAiB,MAAO,aAAe,YAAc,WAAa,MAAO,SAAW,YAAc,OAAS,MAAO,SAAW,YAAc,OAAS,MAAO,OAAS,YAAc,KAAO,CAAC,EAE9L,YAA8B,EAAI,EAAQ,CACzC,MAAO,GAAS,CAAE,QAAS,CAAC,CAAE,EAAG,EAAG,EAAQ,EAAO,OAAO,EAAG,EAAO,OACrE,CAEA,GAAI,IAAe,GAAqB,SAAU,EAAQ,EAAS,CAEnE,AAAC,WAAY,CAGX,YAAoB,CAElB,GAAI,GAAI,OACJ,EAAI,SAGR,GACE,kBAAoB,GAAE,gBAAgB,OACtC,EAAE,gCAAkC,GAEpC,OAIF,GAAI,GAAU,EAAE,aAAe,EAAE,QAC7B,EAAc,IAGd,EAAW,CACb,OAAQ,EAAE,QAAU,EAAE,SACtB,SAAU,EAAE,SACZ,cAAe,EAAQ,UAAU,QAAU,EAC3C,eAAgB,EAAQ,UAAU,cACpC,EAGI,EACF,EAAE,aAAe,EAAE,YAAY,IAC3B,EAAE,YAAY,IAAI,KAAK,EAAE,WAAW,EACpC,KAAK,IAQX,WAA4B,EAAW,CACrC,GAAI,GAAoB,CAAC,QAAS,WAAY,OAAO,EAErD,MAAO,IAAI,QAAO,EAAkB,KAAK,GAAG,CAAC,EAAE,KAAK,CAAS,CAC/D,CAOA,GAAI,GAAqB,EAAmB,EAAE,UAAU,SAAS,EAAI,EAAI,EASzE,WAAuB,EAAG,EAAG,CAC3B,KAAK,WAAa,EAClB,KAAK,UAAY,CACnB,CAQA,WAAc,EAAG,CACf,MAAO,IAAO,GAAI,KAAK,IAAI,KAAK,GAAK,CAAC,EACxC,CAQA,WAAuB,EAAU,CAC/B,GACE,IAAa,MACb,MAAO,IAAa,UACpB,EAAS,WAAa,QACtB,EAAS,WAAa,QACtB,EAAS,WAAa,UAItB,MAAO,GAGT,GAAI,MAAO,IAAa,UAAY,EAAS,WAAa,SAExD,MAAO,GAIT,KAAM,IAAI,WACR,oCACE,EAAS,SACT,uDACJ,CACF,CASA,WAA4B,EAAI,EAAM,CACpC,GAAI,IAAS,IACX,MAAO,GAAG,aAAe,EAAqB,EAAG,aAGnD,GAAI,IAAS,IACX,MAAO,GAAG,YAAc,EAAqB,EAAG,WAEpD,CASA,WAAqB,EAAI,EAAM,CAC7B,GAAI,GAAgB,EAAE,iBAAiB,EAAI,IAAI,EAAE,WAAa,GAE9D,MAAO,KAAkB,QAAU,IAAkB,QACvD,CASA,WAAsB,EAAI,CACxB,GAAI,GAAgB,EAAmB,EAAI,GAAG,GAAK,EAAY,EAAI,GAAG,EAClE,EAAgB,EAAmB,EAAI,GAAG,GAAK,EAAY,EAAI,GAAG,EAEtE,MAAO,IAAiB,CAC1B,CAQA,WAA8B,EAAI,CAChC,KAAO,IAAO,EAAE,MAAQ,EAAa,CAAE,IAAM,IAC3C,EAAK,EAAG,YAAc,EAAG,KAG3B,MAAO,EACT,CAQA,WAAc,EAAS,CACrB,GAAI,GAAO,EAAI,EACX,EACA,EACA,EACA,EAAW,GAAO,EAAQ,WAAa,EAG3C,EAAU,EAAU,EAAI,EAAI,EAG5B,EAAQ,EAAK,CAAO,EAEpB,EAAW,EAAQ,OAAU,GAAQ,EAAI,EAAQ,QAAU,EAC3D,EAAW,EAAQ,OAAU,GAAQ,EAAI,EAAQ,QAAU,EAE3D,EAAQ,OAAO,KAAK,EAAQ,WAAY,EAAU,CAAQ,EAGtD,KAAa,EAAQ,GAAK,IAAa,EAAQ,IACjD,EAAE,sBAAsB,EAAK,KAAK,EAAG,CAAO,CAAC,CAEjD,CAUA,WAAsB,EAAI,EAAG,EAAG,CAC9B,GAAI,GACA,EACA,EACA,EACA,EAAY,EAAI,EAGpB,AAAI,IAAO,EAAE,KACX,GAAa,EACb,EAAS,EAAE,SAAW,EAAE,YACxB,EAAS,EAAE,SAAW,EAAE,YACxB,EAAS,EAAS,QAElB,GAAa,EACb,EAAS,EAAG,WACZ,EAAS,EAAG,UACZ,EAAS,GAIX,EAAK,CACH,WAAY,EACZ,OAAQ,EACR,UAAW,EACX,OAAQ,EACR,OAAQ,EACR,EAAG,EACH,EAAG,CACL,CAAC,CACH,CAIA,EAAE,OAAS,EAAE,SAAW,UAAW,CAEjC,GAAI,UAAU,KAAO,OAKrB,IAAI,EAAc,UAAU,EAAE,IAAM,GAAM,CACxC,EAAS,OAAO,KACd,EACA,UAAU,GAAG,OAAS,OAClB,UAAU,GAAG,KACb,MAAO,WAAU,IAAO,SACtB,UAAU,GACV,EAAE,SAAW,EAAE,YAErB,UAAU,GAAG,MAAQ,OACjB,UAAU,GAAG,IACb,UAAU,KAAO,OACf,UAAU,GACV,EAAE,SAAW,EAAE,WACvB,EAEA,MACF,CAGA,EAAa,KACX,EACA,EAAE,KACF,UAAU,GAAG,OAAS,OAClB,CAAC,CAAC,UAAU,GAAG,KACf,EAAE,SAAW,EAAE,YACnB,UAAU,GAAG,MAAQ,OACjB,CAAC,CAAC,UAAU,GAAG,IACf,EAAE,SAAW,EAAE,WACrB,EACF,EAGA,EAAE,SAAW,UAAW,CAEtB,GAAI,UAAU,KAAO,OAKrB,IAAI,EAAc,UAAU,EAAE,EAAG,CAC/B,EAAS,SAAS,KAChB,EACA,UAAU,GAAG,OAAS,OAClB,UAAU,GAAG,KACb,MAAO,WAAU,IAAO,SAAW,UAAU,GAAK,EACtD,UAAU,GAAG,MAAQ,OACjB,UAAU,GAAG,IACb,UAAU,KAAO,OAAY,UAAU,GAAK,CAClD,EAEA,MACF,CAGA,EAAa,KACX,EACA,EAAE,KACF,CAAC,CAAC,UAAU,GAAG,KAAQ,GAAE,SAAW,EAAE,aACtC,CAAC,CAAC,UAAU,GAAG,IAAO,GAAE,SAAW,EAAE,YACvC,EACF,EAGA,EAAQ,UAAU,OAAS,EAAQ,UAAU,SAAW,UAAW,CAEjE,GAAI,UAAU,KAAO,OAKrB,IAAI,EAAc,UAAU,EAAE,IAAM,GAAM,CAExC,GAAI,MAAO,WAAU,IAAO,UAAY,UAAU,KAAO,OACvD,KAAM,IAAI,aAAY,8BAA8B,EAGtD,EAAS,cAAc,KACrB,KAEA,UAAU,GAAG,OAAS,OAClB,CAAC,CAAC,UAAU,GAAG,KACf,MAAO,WAAU,IAAO,SAAW,CAAC,CAAC,UAAU,GAAK,KAAK,WAE7D,UAAU,GAAG,MAAQ,OACjB,CAAC,CAAC,UAAU,GAAG,IACf,UAAU,KAAO,OAAY,CAAC,CAAC,UAAU,GAAK,KAAK,SACzD,EAEA,MACF,CAEA,GAAI,GAAO,UAAU,GAAG,KACpB,EAAM,UAAU,GAAG,IAGvB,EAAa,KACX,KACA,KACA,MAAO,IAAS,YAAc,KAAK,WAAa,CAAC,CAAC,EAClD,MAAO,IAAQ,YAAc,KAAK,UAAY,CAAC,CAAC,CAClD,EACF,EAGA,EAAQ,UAAU,SAAW,UAAW,CAEtC,GAAI,UAAU,KAAO,OAKrB,IAAI,EAAc,UAAU,EAAE,IAAM,GAAM,CACxC,EAAS,cAAc,KACrB,KACA,UAAU,GAAG,OAAS,OAClB,CAAC,CAAC,UAAU,GAAG,KAAO,KAAK,WAC3B,CAAC,CAAC,UAAU,GAAK,KAAK,WAC1B,UAAU,GAAG,MAAQ,OACjB,CAAC,CAAC,UAAU,GAAG,IAAM,KAAK,UAC1B,CAAC,CAAC,UAAU,GAAK,KAAK,SAC5B,EAEA,MACF,CAEA,KAAK,OAAO,CACV,KAAM,CAAC,CAAC,UAAU,GAAG,KAAO,KAAK,WACjC,IAAK,CAAC,CAAC,UAAU,GAAG,IAAM,KAAK,UAC/B,SAAU,UAAU,GAAG,QACzB,CAAC,EACH,EAGA,EAAQ,UAAU,eAAiB,UAAW,CAE5C,GAAI,EAAc,UAAU,EAAE,IAAM,GAAM,CACxC,EAAS,eAAe,KACtB,KACA,UAAU,KAAO,OAAY,GAAO,UAAU,EAChD,EAEA,MACF,CAGA,GAAI,GAAmB,EAAqB,IAAI,EAC5C,EAAc,EAAiB,sBAAsB,EACrD,EAAc,KAAK,sBAAsB,EAE7C,AAAI,IAAqB,EAAE,KAEzB,GAAa,KACX,KACA,EACA,EAAiB,WAAa,EAAY,KAAO,EAAY,KAC7D,EAAiB,UAAY,EAAY,IAAM,EAAY,GAC7D,EAGI,EAAE,iBAAiB,CAAgB,EAAE,WAAa,SACpD,EAAE,SAAS,CACT,KAAM,EAAY,KAClB,IAAK,EAAY,IACjB,SAAU,QACZ,CAAC,GAIH,EAAE,SAAS,CACT,KAAM,EAAY,KAClB,IAAK,EAAY,IACjB,SAAU,QACZ,CAAC,CAEL,CACF,CAIE,EAAO,QAAU,CAAE,SAAU,CAAS,CAG1C,GAAE,CACF,CAAC,EACG,GAAiB,GAAa,SAE9B,GAA0B,SAAU,EAAO,CAC7C,GAAU,EAAU,CAAK,EAEzB,GAAI,GAAS,GAAa,CAAQ,EAElC,YAAoB,CAClB,GAAI,GAEA,EAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAEnF,SAAgB,KAAM,CAAQ,EAE9B,EAAQ,EAAO,KAAK,KAAM,CAAO,EAE7B,EAAM,mBACJ,SAAQ,mBACV,SAAQ,kBAAoB,UAG9B,OAAO,SAAS,EAAG,CAAC,GAGtB,OAAO,iBAAiB,SAAU,EAAM,YAAa,EAAK,EAEtD,OAAO,uBAAyB,QAClC,QAAO,qBAAuB,GAC9B,OAAO,qBAAqB,SAAS,GAGhC,CACT,CAEA,SAAa,EAAU,CAAC,CACtB,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,SAAS,OAAO,EAAI,OAAO,YAChC,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,EAAK,EAAgB,EAAS,SAAS,EAAG,OAAQ,IAAI,EAAE,KAAK,IAAI,CACnE,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,KAEb,EAAK,EAAgB,EAAS,SAAS,EAAG,cAAe,IAAI,EAAE,KAAK,IAAI,EAEpE,KAAK,cACP,KAAK,aAAa,EAGhB,KAAK,UACP,MAAK,SAAS,EACd,KAAK,QAAU,KAAK,IAAI,GAG1B,KAAK,SAAS,OAAO,EAAI,OAAO,YAE5B,OAAO,QAAQ,KAAK,GAAG,EAAE,QACtB,MAAK,kBACR,uBAAsB,UAAY,CAChC,EAAO,eAAe,CACxB,CAAC,EACD,KAAK,iBAAmB,IAG9B,CACF,EAAG,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,AAAI,OAAO,YAAc,KAAK,SAAS,OAAO,EACxC,KAAK,SAAS,YAAc,QAC9B,MAAK,SAAS,UAAY,QAEnB,OAAO,YAAc,KAAK,SAAS,OAAO,GAC/C,KAAK,SAAS,YAAc,MAC9B,MAAK,SAAS,UAAY,KAGhC,CACF,EAAG,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,AAAI,OAAO,aAAe,KAAK,SAAS,OAAO,EAC7C,KAAK,SAAS,MAAS,QAAO,YAAc,KAAK,SAAS,OAAO,GAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,KAAK,OAAO,EAE3G,KAAK,SAAS,MAAQ,CAE1B,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,AAAI,OAAO,QAAQ,KAAK,GAAG,EAAE,QAC3B,MAAK,aAAe,OAAO,YAC3B,KAAK,eAAe,EAExB,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,KAEb,KAAK,IAAM,CAAC,EACZ,GAAI,GAAM,KAAK,GAAG,iBAAiB,SAAW,KAAK,KAAO,GAAG,EAC7D,EAAI,QAAQ,SAAU,EAAI,EAAO,CAC/B,GAAI,GAAM,EAAG,sBAAsB,EAC/B,EAAK,EAAG,QAAQ,EAAO,KAAO,UAAY,EAAO,MACjD,EAAK,MAAO,GAAG,QAAQ,EAAO,KAAO,OAAU,SAAW,EAAG,QAAQ,EAAO,KAAO,MAAQ,EAC3F,EACA,EACA,EAAS,MAAO,GAAG,QAAQ,EAAO,KAAO,WAAc,SAAW,EAAG,QAAQ,EAAO,KAAO,UAAU,MAAM,GAAG,EAAI,EAAO,OACzH,EAAS,EAAG,QAAQ,EAAO,KAAO,UAClC,EAAO,EAAG,QAAQ,EAAO,KAAO,QAChC,EAAS,EAAG,QAAQ,EAAO,KAAO,UAClC,EAEJ,AAAI,IAAW,OACb,EAAW,SAAS,cAAc,GAAG,OAAO,CAAM,CAAC,EAEnD,EAAW,EAGb,GAAI,GAAc,EAAS,sBAAsB,EACjD,EAAM,EAAY,IAAM,EAAO,SAAS,OAAO,EAC/C,EAAO,EAAY,KAAO,EAAO,SAAS,OAAO,EACjD,GAAI,GAAS,EAAM,EAAS,aACxB,EAAQ,EAAO,EAAS,YAE5B,AAAI,GAAU,QACZ,EAAS,GACJ,AAAI,GAAU,KACnB,EAAS,GAET,EAAS,EAAO,OAGlB,GAAI,GAAiB,EAAO,kBAAkB,CAAM,EAEpD,EAAM,EAAM,EAAe,GAC3B,EAAS,EAAS,EAAe,GACjC,GAAI,GAAW,CACb,GAAI,EACJ,SAAU,EACV,GAAI,EACJ,MAAS,EACT,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,OAAQ,EACR,SAAU,EACV,OAAQ,EACR,OAAQ,GACR,KAAM,CACR,EACA,EAAO,IAAI,GAAM,EAEb,EAAG,UAAU,SAAS,CAAE,GAC1B,EAAO,UAAU,EAAO,IAAI,GAAK,CAAE,CAEvC,CAAC,CACH,CACF,EAAG,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,GAAI,GAAS,KAEb,OAAO,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAU,EAAM,CAC/C,GAAI,GAAQ,EAAe,EAAM,CAAC,EAC9B,EAAI,EAAM,GACV,EAAK,EAAM,GAEX,EAAM,EAAG,SAAS,sBAAsB,EAAE,IAAM,EAAO,SAAS,OAAO,EAEvE,EAAS,EAAM,EAAG,SAAS,aAE3B,EAAiB,EAAO,kBAAkB,EAAG,MAAM,EAEvD,EAAO,IAAI,GAAG,IAAM,EAAM,EAAe,GACzC,EAAO,IAAI,GAAG,OAAS,EAAS,EAAe,EACjD,CAAC,EACD,KAAK,iBAAmB,EAC1B,CACF,EAAG,CACD,IAAK,oBACL,MAAO,SAA2B,EAAQ,CACxC,GAAI,GAAiB,CAAC,EAAG,CAAC,EAE1B,GAAI,EACF,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,MAAO,GAAO,IAAM,SACtB,AAAI,EAAO,GAAG,SAAS,GAAG,EACxB,EAAe,GAAK,SAAS,EAAO,GAAG,QAAQ,IAAK,EAAE,EAAI,KAAK,aAAe,GAAG,EAEjF,EAAe,GAAK,SAAS,EAAO,EAAE,EAGxC,EAAe,GAAK,EAAO,GAKjC,MAAO,EACT,CAUF,EAAG,CACD,IAAK,WACL,MAAO,SAAkB,EAAQ,CAC/B,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAE/E,EAAS,SAAS,EAAQ,MAAM,GAAK,EAErC,EAAW,EAAQ,SAAW,EAAQ,SAAW,GAErD,GAAI,MAAO,IAAW,UAEpB,GAAI,IAAW,MACb,EAAS,KAAK,aACL,IAAW,SACpB,EAAS,KAAK,KAAK,aAAe,OAAO,oBAEzC,EAAS,SAAS,cAAc,CAAM,EAElC,CAAC,EACH,eAGK,MAAO,IAAW,SAE3B,EAAS,SAAS,CAAM,UACf,KAAU,EAAO,SAAgB,CAC1C,QAAQ,KAAK,iCAAiC,EAC9C,MACF,CAGA,AAAI,MAAO,IAAW,SACpB,EAAS,EAAO,sBAAsB,EAAE,IAAM,EAAS,KAAK,SAAS,OAAO,EAE5E,EAAS,EAAS,EAGpB,GAAI,GAAkB,UAA2B,CAC/C,MAAO,UAAS,OAAO,WAAW,IAAM,SAAS,CAAM,CACzD,EAEA,GAAI,EACF,GAAI,EAAgB,EAAG,CACrB,EAAS,EACT,MACF,KAAO,CACL,GAAI,GAAW,YAAoB,CACjC,AAAI,EAAgB,GAClB,QAAO,oBAAoB,SAAU,CAAQ,EAC7C,EAAS,EAEb,EAEA,OAAO,iBAAiB,SAAU,CAAQ,CAC5C,CAGF,OAAO,SAAS,CACd,IAAK,EACL,SAAU,EAAQ,WAAa,EAAI,OAAS,QAC9C,CAAC,CACH,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,KAAK,YAAY,EACjB,KAAK,eAAe,CACtB,CACF,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,EAAK,EAAgB,EAAS,SAAS,EAAG,UAAW,IAAI,EAAE,KAAK,IAAI,EAEpE,OAAO,oBAAoB,SAAU,KAAK,YAAa,EAAK,CAC9D,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAAQ,EAEV,AAMA,GAAI,IAAwB,OAAO,sBAC/B,GAAiB,OAAO,UAAU,eAClC,GAAmB,OAAO,UAAU,qBAExC,YAAkB,EAAK,CACtB,GAAI,GAAQ,KACX,KAAM,IAAI,WAAU,uDAAuD,EAG5E,MAAO,QAAO,CAAG,CAClB,CAEA,aAA2B,CAC1B,GAAI,CACH,GAAI,CAAC,OAAO,OACX,MAAO,GAMR,GAAI,GAAQ,GAAI,QAAO,KAAK,EAE5B,GADA,EAAM,GAAK,KACP,OAAO,oBAAoB,CAAK,EAAE,KAAO,IAC5C,MAAO,GAKR,OADI,GAAQ,CAAC,EACJ,EAAI,EAAG,EAAI,GAAI,IACvB,EAAM,IAAM,OAAO,aAAa,CAAC,GAAK,EAEvC,GAAI,GAAS,OAAO,oBAAoB,CAAK,EAAE,IAAI,SAAU,EAAG,CAC/D,MAAO,GAAM,EACd,CAAC,EACD,GAAI,EAAO,KAAK,EAAE,IAAM,aACvB,MAAO,GAIR,GAAI,GAAQ,CAAC,EAIb,MAHA,uBAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,EAAQ,CAC1D,EAAM,GAAU,CACjB,CAAC,EACG,OAAO,KAAK,OAAO,OAAO,CAAC,EAAG,CAAK,CAAC,EAAE,KAAK,EAAE,IAC/C,sBAKH,OAAS,EAAP,CAED,MAAO,EACR,CACD,CAEA,GAAI,IAAe,GAAgB,EAAI,OAAO,OAAS,SAAU,EAAQ,EAAQ,CAKhF,OAJI,GACA,EAAK,GAAS,CAAM,EACpB,EAEK,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAC1C,EAAO,OAAO,UAAU,EAAE,EAE1B,OAAS,KAAO,GACf,AAAI,GAAe,KAAK,EAAM,CAAG,GAChC,GAAG,GAAO,EAAK,IAIjB,GAAI,GAAuB,CAC1B,EAAU,GAAsB,CAAI,EACpC,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IACnC,AAAI,GAAiB,KAAK,EAAM,EAAQ,EAAE,GACzC,GAAG,EAAQ,IAAM,EAAK,EAAQ,IAGjC,CACD,CAEA,MAAO,EACR,EAEA,aAAc,CAGd,CAEA,GAAE,UAAY,CACZ,GAAI,SAAU,EAAM,EAAU,EAAK,CACjC,GAAI,GAAI,KAAK,GAAM,MAAK,EAAI,CAAC,GAE7B,MAAC,GAAE,IAAU,GAAE,GAAQ,CAAC,IAAI,KAAK,CAC/B,GAAI,EACJ,IAAK,CACP,CAAC,EAEM,IACT,EAEA,KAAM,SAAU,EAAM,EAAU,EAAK,CACnC,GAAI,GAAO,KACX,YAAqB,CACnB,EAAK,IAAI,EAAM,CAAQ,EACvB,EAAS,MAAM,EAAK,SAAS,CAC/B,CACA,SAAS,EAAI,EACN,KAAK,GAAG,EAAM,EAAU,CAAG,CACpC,EAEA,KAAM,SAAU,EAAM,CACpB,GAAI,GAAO,CAAC,EAAE,MAAM,KAAK,UAAW,CAAC,EACjC,EAAW,OAAK,GAAM,MAAK,EAAI,CAAC,IAAI,IAAS,CAAC,GAAG,MAAM,EACvD,EAAI,EACJ,EAAM,EAAO,OAEjB,IAAK,EAAG,EAAI,EAAK,IACf,EAAO,GAAG,GAAG,MAAM,EAAO,GAAG,IAAK,CAAI,EAGxC,MAAO,KACT,EAEA,IAAK,SAAU,EAAM,EAAU,CAC7B,GAAI,GAAI,KAAK,GAAM,MAAK,EAAI,CAAC,GACzB,EAAO,EAAE,GACT,EAAa,CAAC,EAElB,GAAI,GAAQ,EACV,OAAS,GAAI,EAAG,EAAM,EAAK,OAAQ,EAAI,EAAK,IAC1C,AAAI,EAAK,GAAG,KAAO,GAAY,EAAK,GAAG,GAAG,IAAM,GAC9C,EAAW,KAAK,EAAK,EAAE,EAQ7B,MAAC,GAAW,OACR,EAAE,GAAQ,EACV,MAAO,GAAE,GAEN,IACT,CACF,EAEA,GAAI,IAAc,GAEd,GAAW,GAAqB,SAAU,EAAQ,EAAS,CAE/D,AAAC,WAAW,CACV,GAAI,GAEJ,EAAQ,IAAY,KAAO,EAAU,KAErC,EAAK,SAAY,UAAW,CAC1B,WAAkB,EAAW,EAAa,EAAW,EAAO,CAC1D,KAAK,UAAY,GAAa,KAAO,KAAK,IAAI,CAAS,EAAI,EAC3D,KAAK,YAAc,GAAe,KAAO,EAAI,KAAK,IAAI,CAAW,EAAI,IACrE,KAAK,UAAY,GAAa,KAAO,EAAI,KAAK,IAAI,CAAS,EAAI,IAC/D,KAAK,MAAQ,GAAS,KAAO,EAAQ,IACrC,KAAK,aAAgB,UAAW,CAC9B,GAAI,GAAG,EAAK,EAEZ,IADA,EAAU,CAAC,EACN,EAAI,EAAG,EAAM,KAAK,UAAY,EAAG,GAAK,EAAM,GAAK,EAAM,GAAK,EAAK,GAAK,EAAM,IAAM,IACrF,EAAQ,KAAK,IAAI,EAEnB,MAAO,EACT,EAAG,KAAK,IAAI,EACZ,KAAK,eAAkB,UAAW,CAChC,GAAI,GAAG,EAAK,EAEZ,IADA,EAAU,CAAC,EACN,EAAI,EAAG,EAAM,KAAK,UAAY,EAAG,GAAK,EAAM,GAAK,EAAM,GAAK,EAAK,GAAK,EAAM,IAAM,IACrF,EAAQ,KAAK,IAAI,EAEnB,MAAO,EACT,EAAG,KAAK,IAAI,EACZ,KAAK,gBAAmB,UAAW,CACjC,GAAI,GAAG,EAAK,EAEZ,IADA,EAAU,CAAC,EACN,EAAI,EAAG,EAAM,KAAK,UAAY,EAAG,GAAK,EAAM,GAAK,EAAM,GAAK,EAAK,GAAK,EAAM,IAAM,IACrF,EAAQ,KAAK,IAAI,EAEnB,MAAO,EACT,EAAG,KAAK,IAAI,CACd,CAEA,SAAS,UAAU,MAAQ,SAAS,EAAG,CACrC,GAAI,GAWJ,MAVA,GAAI,EAAE,eAAiB,EACvB,AAAI,EAAE,YAAc,KAClB,EAAY,EAAE,WACT,AAAI,EAAE,QAAU,KACrB,EAAY,EAAE,OAAS,IACb,GAAE,QAAU,MAAS,EAAE,SAAW,IAC5C,GAAY,EAAE,OAAS,KAEzB,KAAK,gBAAgB,KAAK,KAAK,IAAI,CAAC,EACpC,KAAK,gBAAgB,MAAM,EACvB,EAAY,EACd,MAAK,aAAa,KAAK,CAAS,EAChC,KAAK,aAAa,MAAM,EACjB,KAAK,UAAU,CAAC,GAEvB,MAAK,eAAe,KAAK,CAAS,EAClC,KAAK,eAAe,MAAM,EACnB,KAAK,UAAU,EAAE,EAE5B,EAEA,EAAS,UAAU,UAAY,SAAS,EAAW,CACjD,GAAI,GAAY,EAAe,EAAe,EAAY,EAAQ,EAAY,EAE9E,MADA,GAAa,IAAc,GAAK,KAAK,eAAiB,KAAK,aACvD,EAAW,KAAO,KACb,EAEL,KAAK,gBAAiB,KAAK,UAAY,EAAK,GAAK,KAAK,MAAQ,KAAK,IAAI,GAAK,EAAW,KAAO,EAAY,KAAK,UAAY,EAAK,GAC3H,GAET,GAAgB,EAAW,MAAM,EAAG,KAAK,SAAS,EAClD,EAAgB,EAAW,MAAM,KAAK,UAAW,KAAK,UAAY,CAAC,EACnE,EAAS,EAAc,OAAO,SAAS,EAAG,EAAG,CAC3C,MAAO,GAAI,CACb,CAAC,EACD,EAAS,EAAc,OAAO,SAAS,EAAG,EAAG,CAC3C,MAAO,GAAI,CACb,CAAC,EACD,EAAa,EAAS,EAAc,OACpC,EAAa,EAAS,EAAc,OAChC,KAAK,IAAI,CAAU,EAAI,KAAK,IAAI,EAAa,KAAK,SAAS,GAAM,KAAK,YAAc,KAAK,IAAI,CAAU,EAClG,EAEA,GAEX,EAEA,EAAS,UAAU,iBAAmB,UAAW,CAC/C,MAAO,MAAK,YACd,EAEA,EAAS,UAAU,mBAAqB,UAAW,CACjD,MAAO,MAAK,cACd,EAEO,CAET,EAAG,CAEL,GAAG,KAAK,EAAc,CACtB,CAAC,EAEG,EAAW,UAAsB,CACjC,MAAO,CACH,cAAe,WAAa,UAC5B,mBAAoB,gBAAkB,UACtC,SAAW,gBAAkB,SAAW,OAAO,YAAc,OAAO,eAAiB,mBAAoB,eACzG,YAAa,UAAU,kBAAoB,UAAU,iBAAmB,EACxE,WAAY,CAAC,CAAC,OAAO,UAAU,iBAC/B,WAAY,aAAe,UAC3B,UAAW,UAAU,UAAU,QAAQ,SAAS,EAAI,EACxD,CACJ,EAAG,EAEC,GAAW,OAAO,UAAU,SAC5B,GAAmB,OAAO,UAAU,eAEpC,GAAoB,SAAS,EAAQ,CACrC,GAAG,CAAC,EAAQ,MAAO,SAAQ,KAAK,yCAAyC,EAEzE,GAAI,GAAY,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAEvD,GAAI,EAAU,SAAW,EAErB,OAAS,KAAU,GACf,AAAG,GAAiB,KAAK,EAAQ,CAAM,GAChC,MAAO,GAAO,IAAW,YAAc,GAAS,KAAK,EAAO,EAAO,GAAK,qBACvE,EAAU,KAAK,CAAM,EAMrC,OAAQ,GAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CACtC,GAAI,GAAI,EAAU,GAClB,EAAO,GAAK,GAAK,EAAO,GAAI,CAAM,CACtC,CACJ,EAOA,YAAc,EAAM,EAAS,CAC3B,MAAO,WAAW,CAChB,MAAO,GAAK,MAAM,EAAS,SAAS,CACtC,CACF,CAEA,GAAI,IAAW,GAAS,SAIpB,EAAS,gBAET,GAAM,EAEN,EAAW,CACX,KAAM,GACN,GAAI,GACJ,MAAO,GACP,KAAM,GACN,MAAO,EACX,EAEA,WAAuB,EAAS,CAC5B,GAAkB,KAAM,WAAY,gBAAiB,gBAAiB,eAAgB,YAAY,EAElG,KAAK,GAAK,OACN,GAAW,EAAQ,IACnB,MAAK,GAAK,EAAQ,GAClB,MAAO,GAAQ,IAEnB,KAAK,QAAU,GAAa,CACxB,gBAAiB,EACjB,gBAAiB,EACjB,kBAAmB,GACnB,QAAS,IACT,aAAc,GACd,oBAAqB,uBACrB,aAAc,GACd,YAAa,GACb,SAAU,EACd,EAAG,CAAO,EAEN,KAAK,QAAQ,cAAc,MAAK,UAAY,GAAI,KAEpD,KAAK,SAAW,GAAI,IACpB,KAAK,OAAS,CACV,EAAG,EACH,EAAG,EACH,OAAQ,EACR,OAAQ,CACZ,EACA,KAAK,YAAc,KACnB,KAAK,YAAc,KACnB,KAAK,gBAAkB,KAEnB,KAAK,QAAQ,UAAY,QACzB,MAAK,gBAAkB,CAAC,QAAS,KAAK,QAAQ,OAAO,EAE7D,CAEA,EAAc,UAAU,QAAU,SAAS,EAAG,CAC1C,GAAI,GAAM,KAAK,OACf,EAAI,GAAK,EAAI,OACb,EAAI,GAAK,EAAI,OAEd,KAAK,SAAS,KAAK,EAAQ,CACtB,EAAG,EAAI,EACP,EAAG,EAAI,EACP,OAAQ,EAAI,OACZ,OAAQ,EAAI,OACZ,cAAe,CACpB,CAAC,CACJ,EAEA,EAAc,UAAU,SAAW,SAAS,EAAG,CAC3C,GAAI,GAAU,KAAK,QACnB,GAAI,OAAK,WAAa,KAAK,UAAU,MAAM,CAAC,IAAM,IAClD,IAAI,GAAM,KAAK,OAGf,EAAI,OAAS,EAAE,aAAe,EAAE,OAAS,GACzC,EAAI,OAAS,EAAE,aAAe,EAAE,OAAS,GAItC,EAAQ,WAAa,EAAE,WAAa,GACnC,GAAI,QAAU,EAAQ,kBACtB,EAAI,QAAU,EAAQ,mBAG1B,EAAI,QAAU,EAAQ,gBACtB,EAAI,QAAU,EAAQ,gBAEtB,KAAK,QAAQ,CAAC,EAClB,EAEA,EAAc,UAAU,cAAgB,SAAS,EAAG,CAChD,GAAI,OAAK,QAAQ,cAAgB,KAAK,UAAU,MAAM,CAAC,IAAM,IAE7D,IAAI,GAAM,KAAK,OAGf,EAAI,OAAU,EAAE,YAAe,EAAE,YAAc,EAC/C,EAAI,OAAU,EAAE,YAAe,EAAE,YAAc,EAAE,WAEjD,KAAK,QAAQ,CAAC,EAClB,EAEA,EAAc,UAAU,cAAgB,SAAS,EAAG,CAChD,GAAI,GAAK,EAAE,cAAiB,EAAE,cAAc,GAAK,EACjD,KAAK,YAAc,EAAE,MACrB,KAAK,YAAc,EAAE,KACzB,EAEA,EAAc,UAAU,aAAe,SAAS,EAAG,CAC/C,GAAI,GAAU,KAAK,QACnB,AAAG,EAAQ,cACJ,CAAC,EAAE,OAAO,UAAU,SAAS,EAAQ,mBAAmB,GAC3D,EAAE,eAAe,EAGrB,GAAI,GAAM,KAAK,OAEX,EAAK,EAAE,cAAiB,EAAE,cAAc,GAAK,EAEjD,EAAI,OAAU,GAAE,MAAQ,KAAK,aAAe,EAAQ,gBACpD,EAAI,OAAU,GAAE,MAAQ,KAAK,aAAe,EAAQ,gBAEpD,KAAK,YAAc,EAAE,MACrB,KAAK,YAAc,EAAE,MAErB,KAAK,QAAQ,CAAC,CAClB,EAEA,EAAc,UAAU,WAAa,SAAS,EAAG,CAC7C,GAAI,GAAM,KAAK,OACf,EAAI,OAAS,EAAI,OAAS,EAC1B,GAAI,GAAe,OAAO,YAAc,GAExC,OAAO,EAAE,aACA,GAAS,SACT,GAAS,GACV,EAAI,OAAS,KAAK,QAAQ,QAC1B,UAEC,GAAS,UACT,GAAS,KACV,EAAI,OAAS,CAAE,KAAK,QAAQ,QAC5B,UACE,GAAE,SACJ,EAAI,OAAS,EACb,UACC,GAAS,MACV,EAAI,OAAS,CAAE,EACf,cAEA,OAGR,KAAK,QAAQ,CAAC,CAClB,EAEA,EAAc,UAAU,MAAQ,UAAW,CACvC,AAAG,EAAQ,eAAe,KAAK,GAAG,iBAAiB,QAAS,KAAK,SAAU,KAAK,eAAe,EAC5F,EAAQ,oBAAoB,KAAK,GAAG,iBAAiB,aAAc,KAAK,cAAe,KAAK,eAAe,EAE3G,EAAQ,UAAY,KAAK,QAAQ,UAChC,MAAK,GAAG,iBAAiB,aAAc,KAAK,cAAe,KAAK,eAAe,EAC/E,KAAK,GAAG,iBAAiB,YAAa,KAAK,aAAc,KAAK,eAAe,GAG9E,EAAQ,YAAc,EAAQ,aAC7B,MAAK,gBAAkB,SAAS,KAAK,MAAM,cAC3C,SAAS,KAAK,MAAM,cAAgB,OACpC,KAAK,GAAG,iBAAiB,gBAAiB,KAAK,cAAe,EAAI,EAClE,KAAK,GAAG,iBAAiB,gBAAiB,KAAK,aAAc,EAAI,GAGlE,EAAQ,YAAc,KAAK,QAAQ,aAAa,SAAS,iBAAiB,UAAW,KAAK,UAAU,CAC3G,EAEA,EAAc,UAAU,QAAU,UAAW,CACzC,AAAG,EAAQ,eAAe,KAAK,GAAG,oBAAoB,QAAS,KAAK,QAAQ,EACzE,EAAQ,oBAAoB,KAAK,GAAG,oBAAoB,aAAc,KAAK,aAAa,EAExF,EAAQ,UACP,MAAK,GAAG,oBAAoB,aAAc,KAAK,aAAa,EAC5D,KAAK,GAAG,oBAAoB,YAAa,KAAK,YAAY,GAG3D,EAAQ,YAAc,EAAQ,aAC7B,UAAS,KAAK,MAAM,cAAgB,KAAK,gBACzC,KAAK,GAAG,oBAAoB,gBAAiB,KAAK,cAAe,EAAI,EACrE,KAAK,GAAG,oBAAoB,gBAAiB,KAAK,aAAc,EAAI,GAGrE,EAAQ,YAAc,KAAK,QAAQ,aAAa,SAAS,oBAAoB,UAAW,KAAK,UAAU,CAC9G,EAEA,EAAc,UAAU,GAAK,SAAS,EAAI,EAAK,CAC7C,KAAK,SAAS,GAAG,EAAQ,EAAI,CAAG,EAEhC,GAAI,GAAS,KAAK,SAAS,EAC3B,AAAI,GAAU,EAAO,IAAW,EAAO,GAAQ,SAAW,GAAG,KAAK,MAAM,CAC1E,EAEA,EAAc,UAAU,IAAM,SAAS,EAAI,EAAK,CAC9C,KAAK,SAAS,IAAI,EAAQ,EAAI,CAAG,EAEjC,GAAI,GAAS,KAAK,SAAS,EAC3B,AAAI,EAAC,EAAO,IAAW,EAAO,GAAQ,QAAU,IAAG,KAAK,QAAQ,CAClE,EAEA,EAAc,UAAU,MAAQ,UAAW,CACvC,GAAI,GAAM,KAAK,OACf,EAAI,EAAI,EACR,EAAI,EAAI,CACZ,EAEA,EAAc,UAAU,QAAU,UAAW,CACzC,KAAK,SAAS,IAAI,EAClB,KAAK,QAAQ,CACjB,EAEA,YAAc,EAAO,EAAK,EAAK,CAC7B,MAAQ,GAAI,GAAO,EAAQ,EAAM,CACnC,CAEA,WAAsB,EAAI,CACxB,GAAI,GAAY,CAAC,EACjB,GAAI,EAAC,OAAO,iBACZ,IAAI,GAAQ,iBAAiB,CAAE,EAC3B,EAAY,EAAM,WAAa,EAAM,iBAAmB,EAAM,aAC9D,EAAM,EAAU,MAAM,oBAAoB,EAE9C,MAAI,GACF,GAAU,EAAI,EAAM,WAAW,EAAI,GAAG,MAAM,IAAI,EAAE,GAAG,EAAI,EACzD,EAAU,EAAI,EAAM,WAAW,EAAI,GAAG,MAAM,IAAI,EAAE,GAAG,EAAI,GAEzD,GAAM,EAAU,MAAM,kBAAkB,EACxC,EAAU,EAAI,EAAM,WAAW,EAAI,GAAG,MAAM,IAAI,EAAE,EAAE,EAAI,EACxD,EAAU,EAAI,EAAM,WAAW,EAAI,GAAG,MAAM,IAAI,EAAE,EAAE,EAAI,GAGnD,EACT,CAOA,YAAoB,EAAM,CAIxB,OAFI,GAAU,CAAC,EAER,GAAQ,IAAS,SAAU,EAAO,EAAK,WAC5C,EAAQ,KAAK,CAAI,EAInB,MAAO,EACT,CASA,GAAI,IAAoB,EACpB,GAAmB,KACnB,GAAwB,KACxB,GAA6B,GAE7B,EAAmB,GACnB,EAAkB,EAAO,GAAmB,GAE5C,GAAwB,MAAO,eAAiB,WAEpD,YAAY,EAAK,EAAK,CAAE,MAAO,GAAM,EAAM,EAAM,EAAM,CAAK,CAC5D,YAAY,EAAK,EAAK,CAAE,MAAO,GAAM,EAAM,EAAM,CAAK,CACtD,YAAY,EAAU,CAAE,MAAO,GAAM,CAAK,CAG1C,WAAqB,EAAI,EAAK,EAAK,CAAE,MAAS,KAAE,EAAK,CAAG,EAAI,EAAK,GAAE,EAAK,CAAG,GAAK,EAAK,GAAE,CAAG,GAAK,CAAI,CAGnG,YAAmB,EAAI,EAAK,EAAK,CAAE,MAAO,GAAM,GAAE,EAAK,CAAG,EAAI,EAAK,EAAK,EAAM,GAAE,EAAK,CAAG,EAAI,EAAK,GAAE,CAAG,CAAG,CAEzG,YAA0B,EAAI,EAAI,EAAI,EAAK,EAAK,CAC9C,GAAI,GAAU,EAAU,EAAI,EAC5B,EACE,GAAW,EAAM,GAAK,GAAM,EAC5B,EAAW,EAAW,EAAU,EAAK,CAAG,EAAI,EAC5C,AAAI,EAAW,EACb,EAAK,EAEL,EAAK,QAEA,KAAK,IAAI,CAAQ,EAAI,IAAyB,EAAE,EAAI,IAC7D,MAAO,EACT,CAEA,YAA+B,EAAI,EAAS,EAAK,EAAK,CACrD,OAAS,GAAI,EAAG,EAAI,GAAmB,EAAE,EAAG,CAC1C,GAAI,GAAe,GAAS,EAAS,EAAK,CAAG,EAC7C,GAAI,IAAiB,EACnB,MAAO,GAET,GAAI,GAAW,EAAW,EAAS,EAAK,CAAG,EAAI,EAC/C,GAAW,EAAW,CACxB,CACA,MAAO,EACR,CAEA,YAAuB,EAAG,CACxB,MAAO,EACT,CAEA,GAAI,IAAQ,SAAiB,EAAK,EAAK,EAAK,EAAK,CAC/C,GAAI,CAAE,IAAK,GAAO,GAAO,GAAK,GAAK,GAAO,GAAO,GAC/C,KAAM,IAAI,OAAM,yCAAyC,EAG3D,GAAI,IAAQ,GAAO,IAAQ,EACzB,MAAO,IAKT,OADI,GAAe,GAAwB,GAAI,cAAa,CAAgB,EAAI,GAAI,OAAM,CAAgB,EACjG,EAAI,EAAG,EAAI,EAAkB,EAAE,EACtC,EAAa,GAAK,EAAW,EAAI,EAAiB,EAAK,CAAG,EAG5D,WAAmB,EAAI,CAKrB,OAJI,GAAgB,EAChB,EAAgB,EAChB,EAAa,EAAmB,EAE7B,IAAkB,GAAc,EAAa,IAAkB,EAAI,EAAE,EAC1E,GAAiB,EAEnB,EAAE,EAGF,GAAI,GAAQ,GAAK,EAAa,IAAmB,GAAa,EAAgB,GAAK,EAAa,IAC5F,EAAY,EAAgB,EAAO,EAEnC,EAAe,GAAS,EAAW,EAAK,CAAG,EAC/C,MAAI,IAAgB,GACX,GAAqB,EAAI,EAAW,EAAK,CAAG,EAC1C,IAAiB,EACnB,EAEA,GAAgB,EAAI,EAAe,EAAgB,EAAiB,EAAK,CAAG,CAEvF,CAEA,MAAO,UAAuB,EAAG,CAE/B,MAAI,KAAM,EACD,EAEL,IAAM,EACD,EAEF,EAAW,EAAS,CAAC,EAAG,EAAK,CAAG,CACzC,CACF,EAEI,EAAa,CACf,KAAM,GACN,GAAI,GACJ,MAAO,GACP,KAAM,GACN,MAAO,GACP,IAAK,EACL,OAAQ,GACR,SAAU,GACV,KAAM,GACN,IAAK,EACP,EAEI,GAA0B,SAAU,EAAO,CAC7C,GAAU,EAAU,CAAK,EAEzB,GAAI,GAAS,GAAa,CAAQ,EAElC,YAAoB,CAClB,GAAI,GAEA,EAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAEnF,SAAgB,KAAM,CAAQ,EAE1B,QAAQ,mBACV,SAAQ,kBAAoB,UAG9B,OAAO,SAAS,EAAG,CAAC,EACpB,EAAQ,EAAO,KAAK,KAAM,CAAO,EAC7B,EAAM,SAAS,GAAM,KAAO,EAAM,QAAU,IAChD,EAAM,YAAc,GACpB,EAAM,oBAAsB,GAC5B,EAAM,UAAY,GAClB,EAAM,iBAAmB,GACzB,EAAM,iBAAmB,CAAC,EAC1B,EAAM,KAAO,GACb,EAAM,mBAAqB,EAAQ,mBACnC,EAAM,SAAW,EAAM,SAAS,KAAK,GAAuB,CAAK,CAAC,EAClE,OAAO,iBAAiB,UAAW,EAAM,SAAU,EAAK,EACjD,CACT,CAEA,SAAa,EAAU,CAAC,CACtB,IAAK,OACL,MAAO,UAAgB,CACrB,GAAI,GAAS,KAEb,KAAK,KAAK,UAAU,IAAI,KAAK,WAAW,EACxC,KAAK,KAAK,aAAa,QAAQ,OAAO,KAAK,KAAM,YAAY,EAAG,KAAK,SAAS,EAC9E,KAAK,SAAW,GAAe,CAC7B,MAAO,CACL,EAAG,KAAK,aAAa,EACrB,EAAG,KAAK,aAAa,CACvB,EACA,OAAQ,CACN,EAAG,KAAK,aAAa,EACrB,EAAG,KAAK,aAAa,CACvB,CACF,EAAG,KAAK,QAAQ,EAChB,KAAK,GAAK,GAAI,IAAI,CAChB,GAAI,KAAK,mBAAqB,SAAW,KAAK,GAC9C,gBAAiB,UAAU,SAAS,QAAQ,KAAK,EAAI,GAAK,EAAI,GAC9D,kBAAmB,KAAK,kBACxB,gBAAiB,KAAK,gBACtB,YAAa,GACb,QAAS,EACX,CAAC,EACD,KAAK,GAAG,GAAG,SAAU,EAAG,CACtB,AAAI,EAAO,MAIN,EAAO,qBACV,sBAAsB,UAAY,CAChC,EAAO,YAAY,CAAC,EAEf,EAAO,aAAa,EAAO,eAAe,CACjD,CAAC,CAEL,CAAC,EACD,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EAAI,EACrB,KAAK,kBAAkB,GAAM,EAAI,EAEjC,EAAK,EAAgB,EAAS,SAAS,EAAG,OAAQ,IAAI,EAAE,KAAK,IAAI,CACnE,CACF,EAAG,CACD,IAAK,iBACL,MAAO,UAA0B,CAG/B,GAFA,KAAK,SAAS,MAAM,EAAI,KAAK,GAAG,aAAe,KAAK,aAEhD,KAAK,YAAc,aAAc,CAInC,OAHI,GAAa,EACb,EAAQ,KAAK,GAAG,SAEX,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,GAAc,EAAM,GAAG,YAGzB,KAAK,SAAS,MAAM,EAAI,EAAa,KAAK,WAC5C,CACF,CACF,EAAG,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,KAAK,cAAgB,KAAK,IAAI,EAE9B,KAAK,YAAc,GACnB,KAAK,YAAY,EACjB,KAAK,KAAK,UAAU,IAAI,KAAK,cAAc,CAC7C,CACF,EAAG,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,qBAAqB,KAAK,cAAc,EAGxC,KAAK,cAAgB,OAEjB,KAAK,aACP,sBAAqB,KAAK,WAAW,EACrC,KAAK,YAAc,MAGrB,KAAK,YAAc,GACnB,KAAK,SAAS,OAAO,EAAI,KAAK,MAAM,KAAK,SAAS,OAAO,CAAC,EAC1D,KAAK,KAAK,UAAU,OAAO,KAAK,cAAc,CAChD,CACF,EAAG,CACD,IAAK,WACL,MAAO,SAAkB,EAAG,CAC1B,GAAI,GAAS,KAEb,GAAI,KAAK,KAAM,CAGb,AAAI,EAAE,SAAW,EAAW,KAC1B,sBAAsB,UAAY,CAEhC,EAAO,KAAK,UAAY,EACxB,SAAS,KAAK,UAAY,EAC1B,EAAO,KAAK,WAAa,EACzB,SAAS,KAAK,WAAa,CAC7B,CAAC,EAGH,MACF,CAEA,OAAQ,EAAE,aACH,GAAW,IAGd,sBAAsB,UAAY,CAEhC,EAAO,KAAK,UAAY,EACxB,SAAS,KAAK,UAAY,EAC1B,EAAO,KAAK,WAAa,EACzB,SAAS,KAAK,WAAa,EAE3B,EAAO,SAAS,SAAS,cAAe,CACtC,OAAQ,CAAC,OAAO,YAAc,CAChC,CAAC,CACH,CAAC,EACD,UAEG,GAAW,GACd,AAAI,KAAK,+BAA+B,GACtC,MAAK,SAAS,MAAM,KAAK,gBAAkB,KAG7C,UAEG,GAAW,KACd,AAAI,KAAK,+BAA+B,GACtC,MAAK,SAAS,MAAM,KAAK,gBAAkB,KAG7C,UAEG,GAAW,OACd,KAAK,SAAS,MAAM,KAAK,gBAAkB,OAAO,YAClD,UAEG,GAAW,SACd,KAAK,SAAS,MAAM,KAAK,gBAAkB,OAAO,YAClD,UAEG,GAAW,KACd,KAAK,SAAS,MAAM,KAAK,gBAAkB,KAAK,SAAS,MAAM,KAAK,eACpE,UAEG,GAAW,IACd,KAAK,SAAS,MAAM,KAAK,gBAAkB,KAAK,SAAS,MAAM,KAAK,eACpE,UAEG,GAAW,MACd,AAAI,KAAK,+BAA+B,GACtC,CAAI,EAAE,SACJ,KAAK,SAAS,MAAM,KAAK,gBAAkB,OAAO,YAElD,KAAK,SAAS,MAAM,KAAK,gBAAkB,OAAO,aAItD,cAGA,OAGJ,AAAI,KAAK,SAAS,MAAM,KAAK,eAAiB,GAAG,MAAK,SAAS,MAAM,KAAK,eAAiB,GACvF,KAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,gBAAgB,MAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,gBAC1J,KAAK,cAAc,EAEnB,KAAK,YAAc,GACnB,KAAK,YAAY,EACjB,KAAK,KAAK,UAAU,IAAI,KAAK,cAAc,CAC7C,CACF,EAAG,CACD,IAAK,iCACL,MAAO,UAA0C,CAC/C,MAAO,CAAE,UAAS,wBAAyB,oBAAqB,CAAE,UAAS,wBAAyB,uBAAwB,CAAE,UAAS,wBAAyB,qBAAsB,CAAE,UAAS,wBAAyB,mBAC5N,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,KAET,EAAS,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,GAEjF,GAAI,GAAU,KAAK,aAAe,KAAK,oBAAqB,CAC1D,AAAK,KAAK,kBACR,MAAK,eAAiB,sBAAsB,UAAY,CACtD,MAAO,GAAO,YAAY,CAC5B,CAAC,EACD,KAAK,iBAAmB,IAG1B,KAAK,aAAa,EAClB,GAAI,GAAW,KAAK,IAAI,KAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,OAAO,KAAK,cAAc,EACtG,EAAiB,KAAK,IAAI,EAAI,KAAK,cAgDvC,GA9CI,CAAC,KAAK,iBAAmB,EAAiB,KAAQ,GAAW,IAAO,KAAK,SAAS,MAAM,KAAK,gBAAkB,GAAK,EAAW,IAAO,KAAK,SAAS,MAAM,KAAK,gBAAkB,IACnL,KAAK,cAAc,EAGrB,OAAO,QAAQ,KAAK,QAAQ,EAAE,QAAQ,SAAU,EAAM,CACpD,GAAI,GAAQ,EAAe,EAAM,CAAC,EAC9B,EAAI,EAAM,GACV,EAAU,EAAM,GAEpB,AAAI,EAAQ,YAAc,EAAO,SAAS,OAAO,EAAO,eAAiB,EAAQ,OAAO,EAAO,gBAAkB,EAAO,SAAS,OAAO,EAAO,eAAiB,EAAQ,MAAM,EAAO,eACnL,CAAI,EAAO,YAAc,aACvB,EAAO,UAAU,EAAQ,GAAI,CAAC,EAAO,SAAS,OAAO,EAAO,eAAgB,CAAC,EAE7E,EAAO,UAAU,EAAQ,GAAI,EAAG,CAAC,EAAO,SAAS,OAAO,EAAO,cAAc,EAG1E,EAAQ,QACX,GAAQ,OAAS,GACjB,EAAQ,GAAG,MAAM,QAAU,EAC3B,EAAQ,GAAG,MAAM,cAAgB,MACjC,EAAQ,GAAG,aAAa,QAAQ,OAAO,EAAO,KAAM,iBAAiB,EAAG,EAAE,IAGxE,IAAQ,QAAU,IACpB,GAAQ,OAAS,GACjB,EAAQ,GAAG,MAAM,QAAU,EAC3B,EAAQ,GAAG,MAAM,cAAgB,OACjC,EAAQ,GAAG,gBAAgB,QAAQ,OAAO,EAAO,KAAM,iBAAiB,CAAC,GAG3E,EAAO,UAAU,EAAQ,GAAI,EAAG,CAAC,EAErC,CAAC,EAEG,KAAK,cACP,KAAK,aAAa,EAGhB,KAAK,UACP,MAAK,SAAS,EACd,KAAK,QAAU,KAAK,IAAI,GAG1B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEnB,KAAK,aAAc,CACrB,GAAI,GAAuB,KAAK,SAAS,OAAO,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,eAAe,KAAK,eAEzI,AAAI,KAAK,YAAc,aACrB,KAAK,UAAU,KAAK,eAAgB,EAAsB,CAAC,EAE3D,KAAK,UAAU,KAAK,eAAgB,EAAG,CAAoB,CAE/D,CAEA,EAAK,EAAgB,EAAS,SAAS,EAAG,cAAe,IAAI,EAAE,KAAK,IAAI,EAExE,KAAK,iBAAmB,EAC1B,CACF,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,KAAK,aAAe,OAAO,YAC3B,KAAK,YAAc,OAAO,WAC1B,KAAK,aAAa,EAClB,KAAK,aAAe,CAClB,EAAG,KAAK,YAAc,EACtB,EAAG,KAAK,aAAe,CACzB,EACA,KAAK,OAAO,CACd,CACF,EAAG,CACD,IAAK,cACL,MAAO,SAAqB,EAAG,CAC7B,GAAI,GACA,EAAmB,KAAK,KAAK,UAAY,KAAK,KAAK,SAAS,iBAAmB,KAAK,KAAK,SAAS,iBAAmB,KAAK,iBAE9H,AAAI,IAAqB,OACvB,EAAQ,EAAE,OAAS,EAAE,OAChB,AAAI,IAAqB,WAC9B,EAAQ,EAAE,OACL,AAAI,IAAqB,aAC9B,EAAQ,EAAE,OAEV,EAAQ,EAAE,OAGZ,KAAK,SAAS,MAAM,KAAK,gBAAkB,EAAQ,KAAK,WACpD,KAAK,SAAS,MAAM,KAAK,eAAiB,GAAG,MAAK,SAAS,MAAM,KAAK,eAAiB,GACvF,KAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,gBAAgB,MAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,eAC5J,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAG,CAC9B,AAAI,KAAK,aAAe,KAAK,oBAC3B,KAAK,SAAS,OAAO,KAAK,eAAiB,GAAK,KAAK,SAAS,OAAO,KAAK,eAAgB,KAAK,SAAS,MAAM,KAAK,eAAgB,KAAK,IAAI,EAE5I,AAAI,KAAK,SAAS,OAAO,KAAK,eAAiB,KAAK,SAAS,MAAM,KAAK,eACtE,KAAK,UAAU,KAAK,SAAS,OAAO,KAAK,eAAgB,KAAK,SAAS,MAAM,KAAK,cAAc,EAC3F,AAAI,KAAK,SAAS,OAAO,EAAI,EAClC,KAAK,UAAU,KAAK,SAAS,OAAO,KAAK,eAAgB,CAAC,EAE1D,KAAK,UAAU,KAAK,SAAS,OAAO,KAAK,eAAgB,KAAK,SAAS,MAAM,KAAK,cAAc,CAGtG,CACF,EAAG,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,AAAI,KAAK,SAAS,MAAM,EAAI,KAAK,SAAS,OAAO,EAC3C,KAAK,SAAS,YAAc,QAC9B,MAAK,SAAS,UAAY,QAEnB,KAAK,SAAS,MAAM,EAAI,KAAK,SAAS,OAAO,GAClD,KAAK,SAAS,YAAc,MAC9B,MAAK,SAAS,UAAY,MAI9B,AAAI,KAAK,SAAS,MAAM,EAAI,KAAK,SAAS,OAAO,EAC3C,KAAK,SAAS,YAAc,SAC9B,MAAK,SAAS,UAAY,SAEnB,KAAK,SAAS,MAAM,EAAI,KAAK,SAAS,OAAO,GAClD,KAAK,SAAS,YAAc,QAC9B,MAAK,SAAS,UAAY,OAGhC,CACF,EAAG,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,AAAI,KAAK,SAAS,MAAM,KAAK,gBAAkB,KAAK,SAAS,OAAO,KAAK,eACvE,KAAK,SAAS,MAAS,MAAK,SAAS,MAAM,KAAK,eAAiB,KAAK,SAAS,OAAO,KAAK,gBAAkB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,KAAK,OAAO,EAElJ,KAAK,SAAS,MAAQ,CAE1B,CACF,EAAG,CACD,IAAK,gBACL,MAAO,UAAyB,CAuB9B,GAtBA,KAAK,UAAY,SAAS,cAAc,MAAM,EAC9C,KAAK,eAAiB,SAAS,cAAc,MAAM,EACnD,KAAK,UAAU,UAAU,IAAI,GAAG,OAAO,KAAK,cAAc,CAAC,EAC3D,KAAK,eAAe,UAAU,IAAI,GAAG,OAAO,KAAK,eAAgB,QAAQ,CAAC,EAC1E,KAAK,UAAU,OAAO,KAAK,cAAc,EAEzC,AAAI,KAAK,mBACP,KAAK,mBAAmB,OAAO,KAAK,SAAS,EAE7C,SAAS,KAAK,OAAO,KAAK,SAAS,EAIrC,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAC/C,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,eAAe,iBAAiB,YAAa,KAAK,YAAY,EACnE,OAAO,iBAAiB,UAAW,KAAK,gBAAgB,EACxD,OAAO,iBAAiB,YAAa,KAAK,aAAa,EAEvD,KAAK,aAAe,GAEhB,KAAK,WAAa,cACpB,GAAI,KAAK,SAAS,MAAM,EAAI,KAAK,aAAe,KAAK,YACnD,eAGE,KAAK,SAAS,MAAM,EAAI,KAAK,cAAgB,KAAK,aACpD,OAIJ,KAAK,aAAe,GACpB,KAAK,aAAe,KAAK,UAAU,sBAAsB,EACzD,KAAK,gBAAkB,KAAK,aAAa,OACzC,KAAK,eAAiB,KAAK,aAAa,MAExC,AAAI,KAAK,YAAc,aACrB,KAAK,eAAe,MAAM,MAAQ,GAAG,OAAO,KAAK,eAAiB,KAAK,eAAkB,MAAK,SAAS,MAAM,EAAI,KAAK,gBAAiB,IAAI,EAE3I,KAAK,eAAe,MAAM,OAAS,GAAG,OAAO,KAAK,gBAAkB,KAAK,gBAAmB,MAAK,SAAS,MAAM,EAAI,KAAK,iBAAkB,IAAI,EAGjJ,KAAK,kBAAoB,KAAK,eAAe,sBAAsB,EACnE,KAAK,eAAiB,CACpB,EAAG,KAAK,eAAiB,KAAK,kBAAkB,MAChD,EAAG,KAAK,gBAAkB,KAAK,kBAAkB,MACnD,CACF,CACF,EAAG,CACD,IAAK,kBACL,MAAO,UAA2B,CAGhC,GAFA,KAAK,aAAe,GAEhB,KAAK,WAAa,cACpB,GAAI,KAAK,SAAS,MAAM,EAAI,KAAK,aAAe,KAAK,YACnD,eAGE,KAAK,SAAS,MAAM,EAAI,KAAK,cAAgB,KAAK,aACpD,OAIJ,KAAK,aAAe,GACpB,KAAK,aAAe,KAAK,UAAU,sBAAsB,EACzD,KAAK,gBAAkB,KAAK,aAAa,OACzC,KAAK,eAAiB,KAAK,aAAa,MAExC,AAAI,KAAK,YAAc,aACrB,KAAK,eAAe,MAAM,MAAQ,GAAG,OAAO,KAAK,eAAiB,KAAK,eAAkB,MAAK,SAAS,MAAM,EAAI,KAAK,gBAAiB,IAAI,EAE3I,KAAK,eAAe,MAAM,OAAS,GAAG,OAAO,KAAK,gBAAkB,KAAK,gBAAmB,MAAK,SAAS,MAAM,EAAI,KAAK,iBAAkB,IAAI,EAGjJ,KAAK,kBAAoB,KAAK,eAAe,sBAAsB,EACnE,KAAK,eAAiB,CACpB,EAAG,KAAK,eAAiB,KAAK,kBAAkB,MAChD,EAAG,KAAK,gBAAkB,KAAK,kBAAkB,MACnD,CACF,CACF,EAAG,CACD,IAAK,mBACL,MAAO,UAA4B,CACjC,KAAK,eAAe,oBAAoB,YAAa,KAAK,YAAY,EACtE,OAAO,oBAAoB,UAAW,KAAK,gBAAgB,EAC3D,OAAO,oBAAoB,YAAa,KAAK,aAAa,EAC1D,KAAK,UAAU,OAAO,CACxB,CACF,EAAG,CACD,IAAK,eACL,MAAO,SAAsB,EAAG,CAC9B,KAAK,oBAAsB,GAC3B,KAAK,YAAY,EACjB,KAAK,KAAK,UAAU,OAAO,KAAK,cAAc,EAC9C,KAAK,KAAK,UAAU,IAAI,KAAK,aAAa,CAC5C,CACF,EAAG,CACD,IAAK,mBACL,MAAO,SAA0B,EAAG,CAClC,KAAK,oBAAsB,GAEvB,KAAK,aACP,KAAK,KAAK,UAAU,IAAI,KAAK,cAAc,EAG7C,KAAK,KAAK,UAAU,OAAO,KAAK,aAAa,CAC/C,CACF,EAAG,CACD,IAAK,gBACL,MAAO,SAAuB,EAAG,CAC/B,GAAI,GAAS,KAEb,AAAI,KAAK,qBACP,sBAAsB,UAAY,CAChC,GAAI,GAAK,GAAE,QAAU,EAAO,aAAa,MAAQ,IAAM,EAAO,eAAiB,EAAO,SAAS,MAAM,EAAI,IACrG,EAAK,GAAE,QAAU,EAAO,aAAa,KAAO,IAAM,EAAO,gBAAkB,EAAO,SAAS,MAAM,EAAI,IAEzG,AAAI,EAAI,GAAK,EAAI,EAAO,SAAS,MAAM,GACrC,GAAO,SAAS,MAAM,EAAI,GAGxB,EAAI,GAAK,EAAI,EAAO,SAAS,MAAM,GACrC,GAAO,SAAS,MAAM,EAAI,EAE9B,CAAC,CAEL,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,KAEb,KAAK,IAAM,CAAC,EACZ,KAAK,iBAAmB,CAAC,EAEzB,GAAI,GAAM,KAAK,GAAG,iBAAiB,SAAS,OAAO,KAAK,KAAM,GAAG,CAAC,EAClE,EAAI,QAAQ,SAAU,EAAI,EAAO,CAE/B,GAAI,GAAgB,GAAW,CAAE,EAC7B,EAAU,OAAO,QAAQ,EAAO,QAAQ,EAAE,IAAI,SAAU,EAAO,CACjE,GAAI,IAAQ,EAAe,EAAO,CAAC,EAC/B,GAAM,GAAM,GACZ,GAAU,GAAM,GAEpB,MAAO,GACT,CAAC,EAAE,KAAK,SAAU,EAAS,CACzB,MAAO,GAAc,SAAS,EAAQ,EAAE,CAC1C,CAAC,EACG,EAAK,EAAG,QAAQ,EAAO,KAAO,UAAY,EAAO,MACjD,EAAK,MAAO,GAAG,QAAQ,EAAO,KAAO,OAAU,SAAW,EAAG,QAAQ,EAAO,KAAO,MAAQ,KAAO,EAClG,EACA,EACA,EAAS,EAAG,QAAQ,EAAO,KAAO,UAClC,EAAO,EAAG,QAAQ,EAAO,KAAO,QAChC,EAAW,EAAG,QAAQ,EAAO,KAAO,YACpC,EAAQ,EAAG,QAAQ,EAAO,KAAO,SACjC,EAAY,EAAG,QAAQ,EAAO,KAAO,aACrC,EAAS,MAAO,GAAG,QAAQ,EAAO,KAAO,WAAc,SACvD,EAAQ,EAAG,QAAQ,EAAO,KAAO,SAAW,WAAW,EAAG,QAAQ,EAAO,KAAO,QAAQ,EAAI,GAAK,GACjG,EAAS,MAAO,GAAG,QAAQ,EAAO,KAAO,WAAc,SAAW,EAAG,QAAQ,EAAO,KAAO,UAAU,MAAM,GAAG,EAAI,EAAO,OACzH,EAAS,EAAG,QAAQ,EAAO,KAAO,UAClC,EAEJ,AAAI,IAAW,OACb,EAAW,SAAS,cAAc,GAAG,OAAO,CAAM,CAAC,EAEnD,EAAW,EAGb,GAAI,GAAc,EAAS,sBAAsB,EAEjD,AAAI,IAAY,MAIT,EAAQ,OAHb,GAAM,EAAY,IAAM,EAAO,SAAS,OAAO,EAAI,EAAa,CAAQ,EAAE,EAC1E,EAAO,EAAY,KAAO,EAAO,SAAS,OAAO,EAAI,EAAa,CAAQ,EAAE,GAG1E,GAAM,EAAY,IAAM,EAAa,EAAQ,EAAE,EAAE,EAAI,EAAa,CAAQ,EAAE,EAC5E,EAAO,EAAY,KAAO,EAAa,EAAQ,EAAE,EAAE,EAAI,EAAa,CAAQ,EAAE,GAOlF,GAAI,GAAS,EAAM,EAAS,aACxB,EAAQ,EAAO,EAAS,YACxB,EAAS,CACX,EAAI,GAAQ,GAAQ,EAAI,EACxB,EAAI,GAAS,GAAO,EAAI,CAC1B,EAEA,GAAI,EAAQ,CACV,GAAI,GAAQ,EAAG,sBAAsB,EACjC,EAAQ,EAAM,IACd,GAAS,EAAM,KACf,GAAa,CACf,EAAG,GAAS,EACZ,EAAG,EAAQ,CACb,EACA,GAAO,OAAO,YACd,GAAQ,OAAO,WACf,EAAS,EAAQ,EAAS,aAAe,EAAG,aAAe,GAAW,EAAO,eAC7E,EAAQ,GAAS,EAAS,YAAc,EAAG,YAAc,GAAW,EAAO,eAC3E,EAAS,CACP,EAAI,GAAQ,GAAQ,EAAI,EACxB,EAAI,GAAS,GAAO,EAAI,CAC1B,CACF,CAEA,AAAI,GAAU,QACZ,EAAS,GACJ,AAAI,GAAU,KACnB,EAAS,GAET,EAAS,EAAO,OAGlB,GAAI,GAAiB,CAAC,EAAG,CAAC,EAE1B,GAAI,EACF,GAAI,EAAO,YAAc,aAAc,CACrC,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,MAAO,GAAO,IAAM,SACtB,AAAI,EAAO,GAAG,SAAS,GAAG,EACxB,EAAe,GAAK,SAAS,EAAO,GAAG,QAAQ,IAAK,EAAE,EAAI,EAAO,YAAc,GAAG,EAElF,EAAe,GAAK,SAAS,EAAO,EAAE,EAGxC,EAAe,GAAK,EAAO,GAI/B,EAAO,EAAO,EAAe,GAC7B,EAAQ,EAAQ,EAAe,EACjC,KAAO,CACL,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,MAAO,GAAO,IAAM,SACtB,AAAI,EAAO,GAAG,SAAS,GAAG,EACxB,EAAe,GAAK,SAAS,EAAO,GAAG,QAAQ,IAAK,EAAE,EAAI,EAAO,aAAe,GAAG,EAEnF,EAAe,GAAK,SAAS,EAAO,EAAE,EAGxC,EAAe,GAAK,EAAO,GAI/B,EAAM,EAAM,EAAe,GAC3B,EAAS,EAAS,EAAe,EACnC,CAGF,GAAI,IAAW,CACb,GAAI,EACJ,GAAI,EACJ,MAAS,EACT,QAAS,EACT,IAAK,EACL,OAAQ,EACR,OAAQ,EACR,KAAM,EACN,MAAO,EACP,OAAQ,EACR,SAAU,EACV,OAAQ,EACR,OAAQ,GACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,SAAU,EACV,OAAQ,EACR,UAAW,EACX,OAAQ,CACV,EACA,EAAO,IAAI,GAAM,GAEb,EAAG,UAAU,SAAS,CAAE,GAC1B,EAAO,UAAU,EAAO,IAAI,GAAK,CAAE,EAGjC,KAAU,IAAS,IACrB,GAAO,iBAAiB,GAAM,GAElC,CAAC,CACH,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,KAEb,KAAK,SAAW,CAAC,EACjB,GAAI,GAAW,KAAK,GAAG,iBAAiB,SAAS,OAAO,KAAK,KAAM,WAAW,CAAC,EAE/E,AAAI,EAAS,SAAW,GACtB,GAAW,CAAC,KAAK,EAAE,GAGrB,EAAS,QAAQ,SAAU,EAAS,EAAO,CACzC,GAAI,GAAK,MAAO,GAAQ,QAAQ,EAAO,KAAO,OAAU,SAAW,EAAQ,QAAQ,EAAO,KAAO,MAAQ,UAAY,EACjH,EAAa,EAAQ,sBAAsB,EAC3C,EAAS,CACX,EAAG,EAAW,KAAO,OAAO,WAAa,IAAM,EAAa,CAAO,EAAE,EACrE,EAAG,EAAW,IAAM,OAAO,YAAc,IAAM,EAAa,CAAO,EAAE,CACvE,EACI,EAAQ,CACV,EAAG,EAAO,EAAI,EAAW,MAAQ,OAAO,WAAa,EACrD,EAAG,EAAO,EAAI,EAAW,OAAS,OAAO,YAAc,CACzD,EACI,EAAa,MAAO,GAAQ,QAAQ,EAAO,KAAO,eAAkB,SACxE,EAAQ,aAAa,yBAA0B,CAAE,EACjD,GAAI,GAAgB,CAClB,GAAI,EACJ,OAAQ,EACR,MAAO,EACP,OAAQ,GACR,WAAY,EACZ,GAAI,CACN,EACA,EAAO,SAAS,GAAM,CACxB,CAAC,CACH,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAS,EAAG,EAAG,EAAO,CAC9C,GAAI,GAEJ,GAAI,CAAC,EACH,EAAY,6CAA6C,OAAO,EAAG,GAAG,EAAE,OAAO,EAAG,OAAO,MACpF,CACL,GAAI,GAAQ,EAAa,CAAO,EAC5B,EAAQ,GAAK,EAAM,EAAG,EAAG,CAAK,EAC9B,EAAQ,GAAK,EAAM,EAAG,EAAG,CAAK,EAClC,EAAY,6CAA6C,OAAO,EAAO,GAAG,EAAE,OAAO,EAAO,OAAO,CACnG,CAEA,EAAQ,MAAM,gBAAkB,EAChC,EAAQ,MAAM,YAAc,EAC5B,EAAQ,MAAM,UAAY,CAC5B,CACF,EAAG,CACD,IAAK,oBACL,MAAO,SAA2B,EAAU,CAC1C,GAAI,GAAS,KAET,EAAiB,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,GACrF,EAAc,KAAK,SAAS,OAAO,EAAI,KAAK,YAC5C,EAAe,KAAK,SAAS,OAAO,EAAI,KAAK,aAC7C,EAAe,CACjB,EAAG,KAAK,SAAS,OAAO,EAAI,KAAK,aAAa,EAC9C,EAAG,KAAK,SAAS,OAAO,EAAI,KAAK,aAAa,CAChD,EACA,OAAO,QAAQ,KAAK,gBAAgB,EAAE,QAAQ,SAAU,EAAO,CAC7D,GAAI,GAAQ,EAAe,EAAO,CAAC,EAC/B,EAAI,EAAM,GACV,EAAU,EAAM,GAEhB,EAAoB,GAMxB,GAJI,GACF,GAAoB,GAGlB,EAAQ,QAAU,EACpB,OAAQ,EAAQ,cACT,MACH,EAAoB,EAAO,SAAS,OAAO,EAAO,eAAiB,CAAC,EAAQ,MAC5E,UAEG,aACH,EAAqB,GAAe,EAAQ,KAAO,CAAC,EAAQ,MAC5D,UAEG,SACH,EAAqB,GAAO,SAAS,MAAM,EAAO,eAAiB,EAAe,EAAO,cAAgB,EAAQ,MACjH,UAEG,OACH,EAAoB,EAAO,SAAS,OAAO,EAAO,eAAiB,CAAC,EAAQ,MAC5E,UAEG,cACH,EAAqB,GAAc,EAAQ,MAAQ,CAAC,EAAQ,MAC5D,UAEG,QACH,EAAqB,GAAO,SAAS,MAAM,EAAO,eAAiB,EAAc,EAAO,cAAgB,EAAQ,MAChH,cAGA,EAAqB,GAAa,EAAO,eAAiB,EAAQ,OAAO,EAAO,gBAAkB,CAAC,EAAQ,MAC3G,MAIN,AAAI,EAAQ,QACV,CAAI,EAAQ,OACV,AAAI,EAAO,YAAc,aACvB,EAAoB,EAAO,SAAS,OAAO,EAAI,EAAQ,KAAO,OAAO,WAErE,EAAoB,EAAO,SAAS,OAAO,EAAI,EAAQ,IAAM,OAAO,YAGtE,AAAI,EAAO,YAAc,aACvB,AAAI,EAAO,SAAS,OAAO,EAAI,EAAQ,KAAO,OAAO,YAAc,EAAO,SAAS,OAAO,EAAI,EAAQ,KAAO,OAAO,WAAa,EAC/H,EAAoB,EACf,AAAI,EAAO,SAAS,OAAO,EAAI,EAAQ,OAAS,EAAO,SAAS,OAAO,EAAI,EAAQ,MAAQ,IAChG,EAAoB,EAAQ,MAAQ,EAAQ,KAAO,OAAO,WAE1D,EAAoB,GAGtB,AAAI,EAAO,SAAS,OAAO,EAAI,EAAQ,IAAM,OAAO,aAAe,EAAO,SAAS,OAAO,EAAI,EAAQ,IAAM,OAAO,YAAc,EAC/H,EAAoB,EACf,AAAI,EAAO,SAAS,OAAO,EAAI,EAAQ,QAAU,EAAO,SAAS,OAAO,EAAI,EAAQ,OAAS,IAClG,EAAoB,EAAQ,OAAS,EAAQ,IAAM,OAAO,YAE1D,EAAoB,IAMxB,IAAsB,IACxB,CAAI,EAAQ,YAAc,cAAgB,EAAO,YAAc,cAAgB,EAAQ,YAAc,WACnG,EAAO,UAAU,EAAQ,GAAI,EAAmB,EAAG,EAAW,GAAQ,EAAQ,KAAK,EAEnF,EAAO,UAAU,EAAQ,GAAI,EAAG,EAAmB,EAAW,GAAQ,EAAQ,KAAK,EAGzF,CAAC,CACH,CAUF,EAAG,CACD,IAAK,WACL,MAAO,SAAkB,EAAQ,CAC/B,GAAI,GAAS,KAET,EAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAE/E,EAAS,SAAS,EAAQ,MAAM,GAAK,EAErC,EAAW,AAAC,MAAM,SAAS,EAAQ,QAAQ,CAAC,EAAiC,IAA7B,SAAS,EAAQ,QAAQ,EAEzE,EAAS,EAAQ,QAAU,CAAC,IAAM,EAAK,IAAM,CAAG,EAEhD,EAAc,IAAQ,YAEtB,EAAW,EAAQ,SAAW,EAAQ,SAAW,GAIrD,GAFA,EAAS,GAAM,MAAM,OAAQ,GAAmB,CAAM,CAAC,EAEnD,MAAO,IAAW,UAEpB,GAAI,IAAW,MACb,EAAS,UACA,IAAW,SACpB,EAAS,KAAK,SAAS,MAAM,UACpB,IAAW,OACpB,EAAS,UACA,IAAW,QACpB,EAAS,KAAK,SAAS,MAAM,UAE7B,EAAS,SAAS,cAAc,CAAM,EAElC,CAAC,EACH,eAGK,MAAO,IAAW,SAE3B,EAAS,SAAS,CAAM,UACf,KAAU,EAAO,SAAgB,CAC1C,QAAQ,KAAK,iCAAiC,EAC9C,MACF,CAGA,GAAI,MAAO,IAAW,SAAU,CAE9B,GAAI,GAAgB,GAAW,CAAM,EAAE,SAAS,KAAK,EAAE,EAEvD,GAAI,CAAC,EAEH,OAIF,GAAI,GAAY,EAAO,sBAAsB,EACzC,EAAY,EAAU,IACtB,EAAa,EAAU,KAEvB,EAAgB,GAAW,CAAM,EACjC,EAAgB,EAAc,KAAK,SAAU,EAAW,CAC1D,MAAO,QAAO,QAAQ,EAAO,QAAQ,EACpC,IAAI,SAAU,EAAO,CACpB,GAAI,GAAQ,EAAe,EAAO,CAAC,EAC/B,EAAM,EAAM,GACZ,EAAU,EAAM,GAEpB,MAAO,EACT,CAAC,EACA,KAAK,SAAU,EAAS,CACvB,MAAO,GAAQ,IAAM,CACvB,CAAC,CACH,CAAC,EACG,EAAsB,EAE1B,AAAI,EACF,EAAsB,EAAa,CAAa,EAAE,KAAK,eAGvD,EAAsB,CAAC,KAAK,SAAS,OAAO,KAAK,eAInD,AAAI,KAAK,YAAc,aACrB,EAAS,EAAa,EAAS,EAE/B,EAAS,EAAY,EAAS,CAElC,KACE,GAAS,EAAS,EAMpB,GAAI,GAAc,WAAW,KAAK,SAAS,MAAM,KAAK,cAAc,EAChE,EAAe,KAAK,IAAI,EAAG,KAAK,IAAI,EAAQ,KAAK,SAAS,MAAM,KAAK,cAAc,CAAC,EAEpF,EAAa,EAAe,EAE5B,EAAS,SAAgB,EAAG,CAC9B,AAAI,EACF,AAAI,EAAO,YAAc,aACvB,EAAO,UAAU,EAAc,EAAa,EAAG,EAAO,SAAS,MAAM,CAAC,EAEtE,EAAO,UAAU,EAAO,SAAS,MAAM,EAAG,EAAc,EAAa,CAAC,EAGxE,EAAO,SAAS,MAAM,EAAO,eAAiB,EAAc,EAAa,CAE7E,EAGA,KAAK,gBAAkB,GAEvB,KAAK,cAAc,EAEnB,KAAK,eAAe,EAGpB,GAAI,GAAQ,KAAK,IAAI,EAEjB,EAAO,YAAgB,CACzB,GAAI,GAAK,MAAK,IAAI,EAAI,GAAS,EAE/B,AAAI,EAAI,EAEN,GAAO,CAAC,EACR,EAAO,gBAAkB,GACrB,GAAY,GAAG,EAAO,OAAO,EAC7B,GAAU,EAAS,GAEvB,GAAO,YAAc,sBAAsB,CAAI,EAC/C,EAAO,EAAO,CAAC,CAAC,EAEpB,EAEA,EAAK,CACP,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAAI,EAC3B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAAI,CACvB,CACF,EAAG,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,KAAK,KAAO,EACd,CACF,EAAG,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,KAAO,EACd,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAG,EAAG,CAC9B,KAAK,SAAW,GAAe,GAAe,CAAC,EAAG,KAAK,QAAQ,EAAG,CAAC,EAAG,CACpE,OAAQ,CACN,EAAG,EACH,EAAG,CACL,EACA,MAAO,CACL,EAAG,EACH,EAAG,CACL,EACA,MAAO,CACT,CAAC,CACH,CACF,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,EAAK,EAAgB,EAAS,SAAS,EAAG,UAAW,IAAI,EAAE,KAAK,IAAI,EAEpE,KAAK,cAAc,EACnB,KAAK,KAAK,UAAU,OAAO,KAAK,WAAW,EAC3C,KAAK,GAAG,QAAQ,EAChB,KAAK,iBAAiB,EACtB,OAAO,oBAAoB,UAAW,KAAK,SAAU,EAAK,CAC5D,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAAQ,EAEN,GAAsB,UAAY,CACpC,YAAkB,CAChB,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAEnF,EAAgB,KAAM,CAAM,EAE5B,KAAK,QAAU,EAEf,OAAO,OAAO,KAAM,EAAU,CAAO,EACrC,KAAK,WAAa,EAAS,WACvB,EAAQ,YAAY,OAAO,OAAO,KAAK,WAAY,EAAQ,UAAU,EACzE,KAAK,OAAS,EAAS,OACnB,EAAQ,QAAQ,OAAO,OAAO,KAAK,OAAQ,EAAQ,MAAM,EACzD,CAAC,KAAK,QAAU,KAAK,WAAa,cAAc,QAAQ,KAAK,0EAAmE,EAChI,CAAC,KAAK,OAAO,QAAU,KAAK,OAAO,WAAa,cAAc,QAAQ,KAAK,mFAA4E,EACvJ,CAAC,KAAK,WAAW,QAAU,KAAK,WAAW,WAAa,cAAc,QAAQ,KAAK,uFAAgF,EACvK,KAAK,KAAK,CACZ,CAEA,SAAa,EAAQ,CAAC,CACpB,IAAK,OACL,MAAO,UAAgB,CAYrB,GAXA,KAAK,QAAQ,SAAW,2DAA2D,KAAK,UAAU,SAAS,GAAK,UAAU,WAAa,YAAc,UAAU,eAAiB,GAAK,OAAO,WAAa,KAAK,OAAO,WACrN,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,OAAO,YAAc,KAAK,OAAO,WAElF,AAAI,KAAK,QAAU,CAAC,KAAK,QAAQ,UAAY,KAAK,OAAO,QAAU,KAAK,QAAQ,UAAY,KAAK,WAAW,QAAU,KAAK,QAAQ,UAAY,CAAC,KAAK,QAAQ,SAC3J,KAAK,OAAS,GAAI,IAAW,KAAK,OAAO,EAEzC,KAAK,OAAS,GAAI,IAAW,KAAK,OAAO,EAG3C,KAAK,OAAO,KAAK,EAEb,OAAO,SAAS,KAAM,CAExB,GAAI,GAAK,OAAO,SAAS,KAAK,MAAM,EAAG,OAAO,SAAS,KAAK,MAAM,EAC9D,EAAS,SAAS,eAAe,CAAE,EAEvC,AAAI,GAAQ,KAAK,OAAO,SAAS,CAAM,CACzC,CACF,CACF,EAAG,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,KAAK,OAAO,OAAO,CACrB,CACF,EAAG,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,OAAO,YAAY,CAC1B,CACF,EAAG,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,OAAO,WAAW,CACzB,CACF,EAAG,CACD,IAAK,WACL,MAAO,SAAkB,EAAQ,EAAS,CACxC,KAAK,OAAO,SAAS,EAAQ,CAAO,CACtC,CACF,EAAG,CACD,IAAK,YACL,MAAO,SAAmB,EAAG,EAAG,CAC9B,KAAK,OAAO,UAAU,EAAG,CAAC,CAC5B,CACF,EAAG,CACD,IAAK,KACL,MAAO,SAAY,EAAO,EAAM,CAC9B,KAAK,OAAO,UAAU,EAAO,CAAI,CACnC,CACF,EAAG,CACD,IAAK,MACL,MAAO,SAAa,EAAO,EAAM,CAC/B,KAAK,OAAO,YAAY,EAAO,CAAI,CACrC,CACF,EAAG,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,KAAK,OAAO,QAAQ,CACtB,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EA6EF,GAAO,IAAQ,GCjpGf,oBAA6B,EAAO,CAChC,YAAY,EAAG,CACX,MAAM,CAAC,CACX,CAEA,MAAO,CACH,KAAK,OAAS,GAAI,IAAiB,CAC/B,GAAI,KAAK,GACT,OAAQ,EACZ,CAAC,EAED,KAAK,OAAO,GAAG,OAAQ,CAAC,EAAM,EAAK,EAAK,IAAO,CAE3C,KAAK,KAAK,EAAK,GAAI,CAAE,MAAK,KAAI,EAAG,EAAK,GAAI,EAAK,EAAE,CACrD,CAAC,EAED,KAAK,OAAO,GAAG,SAAU,AAAC,GAAS,CAEnC,CAAC,CACL,CAmBA,SAAS,EAAM,CACX,GAAc,EAAK,IAAI,GAAI,KAAM,IAAM,CAEvC,CAAC,CACL,CAEA,SAAU,CACN,KAAK,OAAO,QAAQ,CACxB,CACJ,ECnDA,OAA0B,WAEX,aAAW,CACtB,eAAc,CAClB,CCDA,GAAM,GAAe,SAAS,gBACxB,GAAe,SAAS,KACxB,GAAe,EAAK,aAAa,YAAY,ECAnD,GAAM,IAAM,GAAI,IAAQ,CACpB,QAAS,EACb,CAAC,EAED,OAAO,OAAS,AAAC,GAAU,CACvB,GAAM,GAAS,SAAS,eAAe,UAAU,EAEjD,AAAI,EACA,AAAI,EAAO,SACP,GAAK,EAEL,EAAO,iBAAiB,OAAQ,AAAC,GAAU,CACvC,GAAK,CACT,CAAC,EAGL,QAAQ,KAAK,qCAAqC,CAE1D,EAEA,aAAgB,CACZ,GAAQ,EAER,GAAI,KAAK,EAAG,EAEZ,EAAK,UAAU,IAAI,WAAW,EAC9B,EAAK,UAAU,IAAI,UAAU,EAC7B,EAAK,UAAU,OAAO,YAAY,CACtC", "names": [] }