{"version":3,"file":"front.js","sources":["../../node_modules/mdn-polyfills/NodeList.prototype.forEach.js","../../sources/javascripts/front/components/toggler/Toggler.js","../../sources/javascripts/front/components/navigation/Navigation.js","../../node_modules/vh-check/dist/vh-check.js","../../sources/javascripts/front/components/Header/Header.js","../../node_modules/debounce/index.js","../../sources/javascripts/front/components/Header/lifecycle.js","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Component.js","../../sources/javascripts/front/components/Breadcrumbs/Breadcrumbs.js","../../sources/javascripts/front/components/Breadcrumbs/lifecycle.js","../../sources/javascripts/front/components/Details/Details.js","../../node_modules/swiper/shared/ssr-window.esm.mjs","../../sources/javascripts/front/components/Details/lifecycle.js","../../node_modules/swiper/shared/utils.mjs","../../node_modules/swiper/shared/swiper-core.mjs","../../node_modules/swiper/modules/navigation.mjs","../../node_modules/swiper/shared/create-element-if-not-defined.mjs","../../sources/javascripts/front/components/slider/Slider.js","../../sources/javascripts/front/components/slider/lifecycle.js","../../sources/javascripts/front/components/Viewport/Viewport.js","../../sources/javascripts/front/components/Viewport/lifecycle.js","../../sources/javascripts/front/components/Dropdown/Dropdown.js","../../sources/javascripts/front/components/Dropdown/lifecycle.js","../../node_modules/glightbox/dist/js/glightbox.min.js","../../sources/javascripts/front/components/Glightbox/Glightbox.js","../../sources/javascripts/front/components/Glightbox/lifecycle.js","../../sources/javascripts/front/components/Glightboxbutton/Glightboxbutton.js","../../sources/javascripts/front/components/Glightboxbutton/lifecycle.js","../../sources/javascripts/front/components/Stickymenu/Stickymenu.js","../../sources/javascripts/front/components/Stickymenu/lifecycle.js","../../sources/javascripts/front/components/Seemore/Seemore.js","../../sources/javascripts/front/components/Seemore/lifecycle.js","../../sources/javascripts/front/components/Phone/Phone.js","../../sources/javascripts/front/components/Phone/lifecycle.js","../../sources/javascripts/front.js"],"sourcesContent":["window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(o,t){t=t||window;for(var i=0;i {\n if (toggler.target !== e.detail.toggler.target && toggler.expanded) {\n toggler.hide();\n }\n });\n this.toggler = e.detail.toggler.element;\n this.updateBackdrop();\n this.element.dispatchEvent(new CustomEvent('navigation:update'));\n }\n\n updateBackdrop() {\n let hasTogglerExpanded = false;\n\n this.togglers.forEach((toggler) => {\n toggler.expanded ? hasTogglerExpanded = true : hasTogglerExpanded;\n })\n\n if(hasTogglerExpanded) {\n this.hasMegaMenu = true;\n this.header.classList.add('has-megamenu');\n } else {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n }\n }\n\n mount() {\n this.element.querySelectorAll('[data-navigation-toggler]').forEach((element) => {\n const target = document.getElementById(element.dataset.navigationToggler);\n const toggler = new Toggler(element, target, true);\n this.togglers.push(toggler);\n\n element.addEventListener('toggler:hide', this.handleTogglerHide);\n element.addEventListener('toggler:show', this.handleTogglerShow);\n element.addEventListener('toggler:change', this.handleTargetChange);\n\n toggler.mount();\n });\n }\n\n unmount() {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n\n this.togglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleTogglerHide);\n toggler.element.removeEventListener('toggler:show', this.handleTogglerShow);\n toggler.element.removeEventListener('toggler:change', this.handleTargetChange);\n toggler.unmount();\n });\n\n this.togglers = [];\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.vhCheck = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n // don't know a better way to get the size of a CSS 100vh…\r\n function createTestElement() {\r\n var testElement = document.createElement('div');\r\n testElement.style.cssText =\r\n 'position: fixed; top: 0; height: 100vh; pointer-events: none;';\r\n document.documentElement.insertBefore(testElement, document.documentElement.firstChild);\r\n return testElement;\r\n }\r\n function removeTestElement(element) {\r\n document.documentElement.removeChild(element);\r\n }\r\n // in some browsers this will be bigger than window.innerHeight\r\n function checkSizes() {\r\n var vhTest = createTestElement();\r\n var windowHeight = window.innerHeight;\r\n var vh = vhTest.offsetHeight;\r\n var offset = vh - windowHeight;\r\n removeTestElement(vhTest);\r\n return {\r\n vh: vh,\r\n windowHeight: windowHeight,\r\n offset: offset,\r\n isNeeded: offset !== 0,\r\n value: 0,\r\n };\r\n }\r\n // export\r\n function noop() { }\r\n function computeDifference() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.offset;\r\n return sizes;\r\n }\r\n function redefineVhUnit() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.windowHeight * 0.01;\r\n return sizes;\r\n }\n\n var methods = /*#__PURE__*/Object.freeze({\n noop: noop,\n computeDifference: computeDifference,\n redefineVhUnit: redefineVhUnit\n });\n\n function isString(text) {\r\n return typeof text === \"string\" && text.length > 0;\r\n }\r\n function isFunction(f) {\r\n return typeof f === \"function\";\r\n }\r\n var defaultOptions = Object.freeze({\r\n cssVarName: 'vh-offset',\r\n redefineVh: false,\r\n method: computeDifference,\r\n force: false,\r\n bind: true,\r\n updateOnTouch: false,\r\n onUpdate: noop,\r\n });\r\n function getOptions(options) {\r\n // old options handling: only redefine the CSS var name\r\n if (isString(options)) {\r\n return __assign({}, defaultOptions, { cssVarName: options });\r\n }\r\n // be sure to have a configuration object\r\n if (typeof options !== 'object')\r\n return defaultOptions;\r\n // make sure we have the right options to start with\r\n var finalOptions = {\r\n force: options.force === true,\r\n bind: options.bind !== false,\r\n updateOnTouch: options.updateOnTouch === true,\r\n onUpdate: isFunction(options.onUpdate) ? options.onUpdate : noop,\r\n };\r\n // method change\r\n var redefineVh = options.redefineVh === true;\r\n finalOptions.method =\r\n methods[redefineVh ? 'redefineVhUnit' : 'computeDifference'];\r\n finalOptions.cssVarName = isString(options.cssVarName)\r\n ? options.cssVarName\r\n : redefineVh\r\n ? /*\r\n when redefining vh unit we follow this article name convention\r\n https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\r\n */\r\n 'vh'\r\n : defaultOptions.cssVarName;\r\n return finalOptions;\r\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n var passiveSupported = false;\r\n var eventListeners = [];\r\n /* istanbul ignore next */\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n passiveSupported = true;\r\n },\r\n });\r\n window.addEventListener(\"test\", options, options);\r\n window.removeEventListener(\"test\", options, options);\r\n }\r\n catch (err) {\r\n passiveSupported = false;\r\n }\r\n function addListener(eventName, callback) {\r\n eventListeners.push({\r\n eventName: eventName,\r\n callback: callback,\r\n });\r\n window.addEventListener(eventName, callback, \r\n /* istanbul ignore next */\r\n passiveSupported ? { passive: true } : false);\r\n }\r\n function removeAll() {\r\n eventListeners.forEach(function (config) {\r\n window.removeEventListener(config.eventName, config.callback);\r\n });\r\n eventListeners = [];\r\n }\n\n function updateCssVar(cssVarName, result) {\r\n document.documentElement.style.setProperty(\"--\" + cssVarName, result.value + \"px\");\r\n }\r\n function formatResult(sizes, options) {\r\n return __assign({}, sizes, { unbind: removeAll, recompute: options.method });\r\n }\r\n function vhCheck(options) {\r\n var config = Object.freeze(getOptions(options));\r\n var result = formatResult(config.method(), config);\r\n // usefulness check\r\n if (!result.isNeeded && !config.force) {\r\n return result;\r\n }\r\n updateCssVar(config.cssVarName, result);\r\n config.onUpdate(result);\r\n // enabled by default\r\n if (!config.bind)\r\n return result;\r\n function onWindowChange() {\r\n window.requestAnimationFrame(function () {\r\n var sizes = config.method();\r\n updateCssVar(config.cssVarName, sizes);\r\n config.onUpdate(formatResult(sizes, config));\r\n });\r\n }\r\n // be sure we don't duplicates events listeners\r\n result.unbind();\r\n // listen for orientation change\r\n // - this can't be configured\r\n // - because it's convenient and not a real performance bottleneck\r\n addListener('orientationchange', onWindowChange);\r\n // listen to touch move for scrolling\r\n // – disabled by default\r\n // - listening to scrolling can be expansive…\r\n if (config.updateOnTouch) {\r\n addListener('touchmove', onWindowChange);\r\n }\r\n return result;\r\n }\n\n return vhCheck;\n\n})));\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Toggler from '../toggler/Toggler';\nimport Navigation from '../navigation/Navigation';\nimport vhCheck from 'vh-check';\n\nexport default class Header {\n constructor(element) {\n this.element = element;\n this.navigationTogglers = [];\n this.height = this.element.offsetHeight;\n this.hasResized = true;\n this.tmpWidth = 0;\n this.hasScrolled = true;\n this.tmpScroll = document.documentElement.scrollTop;\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.navigation = null;\n this.navigationToggler = null;\n this.burger = null;\n this.direction = 'down';\n this.isPinned = false;\n this.isSticky = false;\n this.hasNavigationActive = false;\n\n this.handleNavigationHide = this.handleNavigationHide.bind(this);\n this.handleNavigationShow = this.handleNavigationShow.bind(this);\n this.handleNavigationUpdate = this.handleNavigationUpdate.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handlePinned = this.handlePinned.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n handleNavigationHide() {\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n\n this.navigation.togglers.forEach((toggler) => {\n toggler.hide(true);\n });\n\n this.navigationToggler.focus();\n this.navigationToggler = null;\n this.updateNavigation();\n }\n\n handleNavigationShow(e) {\n this.navigationToggler = e.detail.toggler.element;\n this.element.classList.add('has-navigation-active');\n this.hasNavigationActive = true;\n this.updateNavigation();\n }\n\n handleNavigationUpdate() {\n this.updateNavigation();\n }\n\n handlePinned() {\n this.element.removeEventListener('transitionend', this.handlePinned);\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.element.classList.remove('is-leaving');\n this.isPinned = false;\n }\n\n handleScroll() {\n this.hasScrolled = true;\n }\n\n handleResize() {\n this.hasResized = true;\n }\n\n calculate() {\n const vh = vhCheck();\n this.height = this.element.offsetHeight;\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n document.documentElement.style.setProperty('--vh', `${window.innerHeight/100}px`);\n }\n\n updateNavigation() {\n let isNavigationHasTogglerExpanded = false;\n\n this.navigation.togglers.forEach((toggler) => {\n if (!toggler.target.contains(toggler.element)) {\n isNavigationHasTogglerExpanded = toggler.expanded === true ? true : isNavigationHasTogglerExpanded;\n }\n });\n\n this.calculate();\n }\n\n updateResize() {\n if (this.tmpWidth !== this.element.offsetWidth) {\n this.height = this.element.offsetHeight;\n this.navigationTogglers.forEach((toggler) => {\n const isTogglable = window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none';\n\n if (toggler.mounted !== isTogglable) {\n if (isTogglable) {\n toggler.mount();\n } else {\n toggler.unmount();\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n }\n }\n });\n\n this.tmpWidth = this.element.offsetWidt;\n this.calculate();\n }\n }\n\n updateScroll() {\n let conditionSticky;\n if(this.element.classList.contains(\"c-header--landing\")) {\n conditionSticky = !this.hasNavigationActive;\n }else {\n conditionSticky = !this.hasNavigationActive && !this.navigation.hasMegaMenu\n }\n if(conditionSticky) {\n if(document.documentElement.scrollTop > this.tmpScroll) {\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.direction = 'down';\n } else {\n this.direction = 'up';\n }\n\n if (document.documentElement.scrollTop > this.height) {\n this.element.classList.add('is-sticky');\n this.isSticky = true;\n this.calculate();\n } else {\n this.element.classList.remove('is-sticky');\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.isSticky = false;\n this.isPinned = false;\n this.calculate();\n }\n\n if(this.isSticky) {\n if (this.direction === 'up') {\n const delta = this.lastDcrollDown - document.documentElement.scrollTop;\n if(delta > 150) {\n this.element.classList.add('is-pinned');\n document.querySelector(\"body\").classList.add('is-pinned');\n this.isPinned = true;\n }\n } else {\n if(this.isPinned) {\n this.element.addEventListener('transitionend', this.handlePinned);\n this.element.classList.add('is-leaving');\n }\n }\n }\n\n this.tmpScroll = document.documentElement.scrollTop;\n }\n }\n\n\n mount() {\n const nav = this.element.querySelector('#navigation');\n if (nav) {\n this.navigation = new Navigation(nav);\n this.navigation.element.addEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.mount();\n }\n\n this.burger = this.element.querySelector('.js-header-burger');\n\n // pas met header height a jour pour evite le sauter\n this.height = this.element.offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${this.height}px`);\n window.addEventListener('resize', function (e) {\n let headerHeight = this.document.querySelector(\".c-header\").offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${headerHeight}px`);\n });\n\n this.element.querySelectorAll('[data-header-toggler=\"navigation\"]').forEach((element) => {\n const target = document.getElementById(element.dataset.headerToggler);\n const toggler = new Toggler(element, target);\n this.navigationTogglers.push(toggler);\n element.addEventListener('toggler:hide', this.handleNavigationHide);\n element.addEventListener('toggler:show', this.handleNavigationShow);\n\n if (\n window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none'\n ) {\n toggler.mount();\n }\n });\n\n window.addEventListener('resize', this.handleResize);\n window.addEventListener('scroll', this.handleScroll);\n\n const loop = () => {\n if (this.hasScrolled) {\n this.updateScroll();\n this.hasScrolled = false;\n }\n if (this.hasResized) {\n this.updateResize();\n this.hasResized = false;\n }\n\n requestAnimationFrame(loop);\n }\n\n loop();\n\n this.element.classList.add('is-mounted');\n this.calculate();\n }\n\n unmount() {\n window.removeEventListener('resize', this.handleResize);\n window.removeEventListener('scroll', this.handleScroll);\n\n if(this.navigationTogglers) {\n this.navigationTogglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleNavigationHide);\n toggler.element.removeEventListener('toggler:show', this.handleNavigationShow);\n toggler.unmount();\n });\n this.navigationTogglers = [];\n }\n\n if (this.navigation) {\n this.navigation.element.removeEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.unmount();\n this.navigation = null;\n }\n\n this.element.classList.remove('is-mounted');\n }\n}\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import Header from './Header';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const headerElement = document.getElementById('header');\n if (headerElement) {\n const header = new Header(headerElement);\n header.mount();\n }\n});\n","/**\n * Name: Component\n * Description: Base model for all components\n */\n\nexport default class Component {\n static settings = {};\n\n #element;\n #mounted;\n #settings;\n\n #listeners = {};\n\n constructor (element, options = {}) {\n this.#element = element;\n this.#mounted = false;\n this.#settings = {\n ...Component.settings,\n ...options\n };\n }\n\n get element () {\n return this.#element;\n }\n\n get mounted () {\n return this.#mounted;\n }\n\n get settings () {\n return this.#settings;\n }\n\n getNode (parameter) {\n let element = null;\n\n if (parameter instanceof Element) {\n element = parameter;\n } else if (typeof parameter === 'string') {\n const testSelector = this.#element.querySelector(parameter);\n element = testSelector ? testSelector : element;\n }\n\n return element;\n }\n\n fire (type, data) {\n var listeners = this.#listeners[type] || [];\n\n listeners.forEach(function (listener) {\n listener(data);\n });\n }\n\n on (type, handler) {\n if (typeof this.#listeners[type] === 'undefined') {\n this.#listeners[type] = [];\n }\n\n this.#listeners[type].push(handler);\n\n return this;\n }\n\n off (type, handler) {\n var index = this.#listeners[type].indexOf(handler);\n\n if (index > -1) {\n this.#listeners[type].splice(index, 1);\n }\n\n return this;\n }\n\n mount () {\n this.#element.classList.add('is-mounted');\n this.#mounted = true;\n this.fire('mount', this);\n }\n\n unmount () {\n this.#element.classList.remove('is-mounted');\n this.#mounted = false;\n this.fire('unmount', this);\n }\n}\n","import { debounce } from \"debounce\";\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Breadcrumbs extends Component {\n static settings = {\n isResponsive: false,\n control: '.js-breadcrumbs-control',\n target: '.js-breadcrumbs-target',\n };\n\n #control;\n #target;\n #enabled;\n #hasEnded = false;\n #handleControlClick;\n #handleWindowDebouncedResize;\n\n constructor (element, options = {}) {\n super(element, {\n ...Breadcrumbs.settings,\n ...options\n });\n\n this.#control = this.getNode(this.settings.control);\n this.#target = this.getNode(this.settings.target);\n\n if (!this.#control) {\n throw new Error(`Breadcrumbs error: A control with the '${ this.settings.control }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Breadcrumbs error: A target with the '${ this.settings.target }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleWindowDebouncedResize = debounce(this._handleWindowDebouncedResize.bind(this), 20);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n get expandable () {\n return getComputedStyle(this.control).display !== 'none';\n }\n\n get enabled () {\n return this.#enabled;\n }\n\n get hasEnded () {\n return this.#hasEnded;\n }\n\n get windowWidth () {\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n }\n\n _handleWindowDebouncedResize () {\n // If the window width has changed since last time\n // (it's not necessary to update breadcrumbs state when the resize is on the window height)\n if (this.tempWidth !== this.windowWidth) {\n this.update();\n\n // Update temporary with new window width\n this.tempWidth = this.windowWidth;\n }\n }\n\n _handleControlClick (e) {\n this.open();\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.element.classList.add('has-ended');\n this.unmount();\n this.#hasEnded = true;\n this.target.focus();\n this.control.remove();\n\n this.fire('open', this);\n }\n\n update () {\n // hasEnded is at true when control has been clicked\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n }\n\n setResponsive () {\n this.tempWidth = 0;\n window.addEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n\n this.fire('setResponsive', this);\n }\n\n unsetResponsive () {\n delete this.tempWidth;\n window.removeEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n this.fire('unsetResponsive', this);\n }\n\n enable () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n\n this.#enabled = true;\n\n this.fire('enable', this);\n }\n\n disable () {\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('hidden');\n\n this.#enabled = false;\n\n this.fire('disable', this);\n }\n\n mount () {\n super.mount();\n\n if (this.settings.isResponsive && this.tempWidth === undefined) {\n this.setResponsive();\n } else {\n this.enable();\n }\n }\n\n unmount () {\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.disable();\n\n super.unmount();\n }\n}\n","import Breadcrumbs from './Breadcrumbs';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const breadcrumbsElements = document.querySelectorAll('.js-breadcrumbs');\n if (!breadcrumbsElements.length) {\n return;\n }\n breadcrumbsElements.forEach((element) => {\n const breadcrumbsElement = new Breadcrumbs(element, {\n isResponsive: true,\n });\n breadcrumbsElement.mount();\n });\n});\n","/**\n * Name: Details\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Details extends Component {\n static settings = {\n open: false,\n rememberExpanded: false,\n hasAdditionalControl: false,\n i18n: {\n hideSection: 'Masquer la section',\n showSection: 'Afficher la section',\n }\n };\n\n #control;\n #content;\n #label;\n\n #handleControlClick;\n #handleContentBeforeMatch;\n #handleHashChange;\n #handleToggle;\n\n constructor (element, options = {}) {\n super(element, {\n ...Details.settings,\n ...options\n });\n\n this.#control = this.element.querySelector('.js-details-control');\n this.#content = this.element.querySelector('.js-details-content');\n\n if (!this.element.getAttribute('id')) {\n throw new Error(`Details error: An id is required on the '.js-details' element.`, this.element);\n }\n\n if (!this.#control) {\n throw new Error(`Details error: A control with the 'js-details-control' class is missing.`, this.element);\n }\n\n if (!this.#content) {\n throw new Error(`Details error: A content with the 'js-details-content' class is missing.`, this.element);\n }\n\n if (!this.isNativeDetails) {\n this.#label = this.element.querySelector('.js-details-label');\n\n if (!this.#label) {\n throw new Error(`Details error: A label with the 'js-details-label' class is missing.`, this.element);\n }\n }\n\n if (this.settings.rememberExpanded) {\n try {\n this.sessionStorageValue;\n } catch (e) {\n this.settings.rememberExpanded = false;\n console.error('sessionStorage is not usable.');\n }\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleContentBeforeMatch = this._handleContentBeforeMatch.bind(this);\n this.#handleHashChange = this._handleHashChange.bind(this);\n this.#handleToggle = this._handleToggle.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get content () {\n return this.#content;\n }\n\n get expanded () {\n let state;\n\n if (this.isNativeDetails) {\n state = this.element.open;\n } else {\n state = this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n return state;\n }\n\n get sessionStorageValue () {\n return sessionStorage.getItem(this.element.getAttribute('id'));\n }\n\n get isNativeDetails () {\n return this.element.tagName.toLowerCase() === \"details\";\n }\n\n set sessionStorageValue (value) {\n sessionStorage.setItem(this.element.getAttribute('id'), value);\n }\n\n _handleControlClick (e) {\n this.toggle();\n\n if (this.additionalControl && e.target === this.additionalControl) {\n this.#control.focus();\n }\n }\n\n _handleContentBeforeMatch (e) {\n this.open();\n }\n\n _handleHashChange (e) {\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n }\n }\n\n _handleToggle (e) {\n const state = this.expanded ? 'open' : 'close';\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = state;\n }\n\n this.fire(state, this);\n }\n\n convertControlToButton () {\n let control = document.createElement('button');\n control.type = 'button';\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n }\n\n resetControl () {\n let control = document.createElement('span');\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.removeAttribute('type');\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n }\n\n addAdditionalControl () {\n const additionalControl = document.createElement('button');\n additionalControl.type = 'button';\n additionalControl.classList.add('c-details__button');\n additionalControl.setAttribute('aria-controls', this.#content.getAttribute('id'));\n\n const marker = this.#control.querySelector('.js-details-marker');\n\n additionalControl.innerHTML = `${ this.settings.i18n.hideSection } ${ marker.outerHTML }`;\n\n this.#content.appendChild(additionalControl);\n this.additionalControl = additionalControl;\n this.additionalControl.addEventListener('click', this.#handleControlClick);\n }\n\n removeAdditionalControl () {\n this.additionalControl.removeEventListener('click', this.#handleControlClick);\n this.additionalControl.remove();\n }\n\n toggle () {\n this.expanded ? this.close() : this.open();\n }\n\n open () {\n if (this.isNativeDetails) {\n this.element.open = true;\n } else {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#content.removeAttribute('hidden');\n this.#label.innerHTML = this.settings.i18n.hideSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'open';\n }\n\n this.fire('open', this);\n }\n\n close () {\n if (this.isNativeDetails) {\n this.element.open = false;\n } else {\n this.#control.setAttribute('aria-expanded', 'false');\n this.#content.setAttribute('hidden', 'until-found');\n this.#label.innerHTML = this.settings.i18n.showSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'close';\n }\n\n this.fire('close', this);\n }\n\n mount () {\n window.addEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.convertControlToButton();\n this.#control.setAttribute('aria-controls', this.#content.getAttribute('id'));\n this.#content.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#content.addEventListener('beforematch', this.#handleContentBeforeMatch);\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.settings.hasAdditionalControl) {\n this.addAdditionalControl();\n }\n\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n } else if (this.settings.rememberExpanded && this.sessionStorageValue) {\n this.sessionStorageValue === 'open' ? this.open() : this.close();\n } else {\n this.settings.open ? this.open() : this.close();\n }\n\n super.mount();\n }\n\n unmount () {\n window.removeEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.#content.removeEventListener('beforematch', this.#handleContentBeforeMatch);\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#content.removeAttribute('hidden');\n this.#content.removeAttribute('aria-labelledby');\n this.#control.removeAttribute('tabindex');\n this.#control.removeAttribute('role');\n this.#control.removeAttribute('aria-controls');\n this.#control.removeAttribute('aria-expanded');\n this.resetControl();\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.settings.rememberExpanded) {\n sessionStorage.removeItem(this.element.getAttribute('id'));\n }\n\n if (this.additionalControl) {\n this.removeAdditionalControl();\n }\n\n super.unmount();\n }\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import Details from './Details';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const detailsElements = document.querySelectorAll('.js-details');\n if (!detailsElements.length) {\n return;\n }\n detailsElements.forEach((element) => {\n const detailsElement = new Details(element, {\n // hasAdditionalControl: true,\n });\n detailsElement.mount();\n });\n});\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, elementStyle as o, elementNextAll as p, elementPrevAll as q, animateCSSModeScroll as r, setCSSProperty as s, showWarning as t, extend as u, deleteProps as v };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, o as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, p as elementNextAll, q as elementPrevAll, j as getTranslate, r as animateCSSModeScroll, n as nextTick, t as showWarning, c as createElement, d as now, u as extend, h as elementIndex, v as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Swiper from 'swiper';\nimport { Navigation } from 'swiper/modules';\n\nexport default class Slider {\n constructor(element) {\n this.element = element;\n this.next = this.element.querySelector(\".swiper-button-next .c-button\");\n this.prev = this.element.querySelector(\".swiper-button-prev .c-button\");\n\n this.swiperElement = this.element;\n\n this.spacing = 16;\n this.infinite = false;\n\n this.swiperElement = this.element;\n\n this.innerWidth = window.innerWidth;\n\n this.handleResize = this.handleResize.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n this.slidesPerView= \"1\";\n\n if (this.swiperElement.classList.contains(\"c-slider--conseille\")) {\n\n this.spaceBetweenValues = {\n 620: {\n spaceBetween: 24\n },\n }\n this.slidesPerView= \"auto\";\n }\n\n this.settings = {\n modules: [Navigation],\n navigation: {\n nextEl: \".swiper-button-next\",\n prevEl: \".swiper-button-prev\"\n },\n loop: this.infinite,\n on: {\n init: (swiper) => {\n this.updateNavigation(swiper);\n },\n slideChange: (swiper) => {\n this.updateNavigation(swiper);\n },\n slideChangeTransitionEnd:(swiper)=> {\n this.updateTabIndex(swiper);\n }\n },\n slidesPerView: this.slidesPerView,\n watchSlidesProgress: true,\n spaceBetween: 16,\n breakpoints: {\n 620: {\n spaceBetween:10\n },\n 690: {\n spaceBetween: 40\n }\n }\n\n };\n\n this.swiper;\n }\n\n handleResize() {\n }\n\n updateTabIndex(){\n let slides = this.element.querySelectorAll(\".swiper-slide\");\n\n for (let i = 0; i < slides.length; i++) {\n const element = slides[i];\n if (element.classList.contains(\"swiper-slide-active\")) {\n let slideButtons=element.querySelectorAll(\"a\");\n for (let index = 0; index < slideButtons.length; index++) {\n const elementButton = slideButtons[index];\n elementButton.setAttribute('tabIndex', '0');\n }\n }else {\n let slideButtons=element.querySelectorAll(\"a\");\n for (let index = 0; index < slideButtons.length; index++) {\n const elementButton = slideButtons[index];\n elementButton.setAttribute('tabIndex', '-1');\n }\n }\n\n }\n }\n\n updateNavigation(swiper) {\n this.prev.removeAttribute('disabled');\n this.next.removeAttribute('disabled');\n this.element.removeAttribute('sliderend', '');\n\n if (swiper.isBeginning) {\n this.prev.setAttribute('disabled', '');\n }\n if (swiper.isEnd) {\n this.next.setAttribute('disabled', '');\n this.element.setAttribute('sliderend', '');\n }\n\n }\n\n\n\n mount() {\n this.settings = {\n ...this.settings,\n }\n\n this.swiper = new Swiper(this.swiperElement, this.settings);\n window.addEventListener('resize', this.handleResize);\n this.updateTabIndex();\n\n\n\n this.swiper.on('reachBeginning', () => {\n this.prev.setAttribute('disabled', '');\n });\n\n this.swiper.on('reachEnd', () => {\n this.next.setAttribute('disabled', '');\n });\n }\n\n unmount() {\n this.destroy(this.swiper, true);\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Slider from './Slider';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const sliders = document.querySelectorAll('.swiper');\n if (!sliders.length) {\n return;\n }\n\n sliders.forEach((element) => {\n const slider = new Slider(element);\n slider.mount(element);\n });\n});\n","import 'mdn-polyfills/NodeList.prototype.forEach';\n\nexport default class Viewport {\n constructor(element) {\n this.element = element;\n }\n\n mount() {\n this.element.classList.add(\"is-viewport\");\n }\n\n unmount() {\n if(this.element.classList.contains(\"is-viewport\")){\n this.element.classList.remove(\"is-viewport\");\n\n const event = new Event('viewport:notIntersecting');\n document.dispatchEvent(event);\n }\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Viewport from './Viewport';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n const isReduced = window.matchMedia(`(prefers-reduced-motion: reduce)`) === true || window.matchMedia(`(prefers-reduced-motion: reduce)`).matches === true;\n\n if (!!isReduced) {\n } else {\n const observedElements = document.querySelectorAll('.is-observed');\n if (!observedElements.length) {\n return;\n }\n var halfHauter = window.innerHeight;\n\n if(!!window.IntersectionObserver){\n let observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if(entry.isIntersecting){\n const observedElement = new Viewport(entry.target);\n observedElement.mount();\n } else{\n const observedElement = new Viewport(entry.target);\n observedElement.unmount();\n }\n });\n }, {rootMargin: \"0px 0px \"+ halfHauter+\"px 0px\"});\n document.querySelectorAll('.is-observed').forEach(observedElement => {\n observer.observe(observedElement) });\n }\n }\n});\n","import Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Dropdown extends Component {\n static settings = {\n isPersistent: false,\n hasTransition: false,\n control: null,\n target: null,\n controlSelector: '.js-dropdown-control',\n targetSelector: '.js-dropdown-target',\n };\n\n #control;\n #target;\n #isHiding;\n #fieldName;\n #hiddenField;\n #handleControlClick;\n #handleItemClick;\n #handleChoose;\n #handleFocusout;\n #handleKeydown;\n #handleOutsideClick;\n #handleTransitionEnd;\n\n constructor (element, options = {}) {\n super(element, {\n ...Dropdown.settings,\n ...options\n });\n\n this.#isHiding = false;\n this.#control = this.settings.control ? this.settings.control : this.element.querySelector(this.settings.controlSelector);\n this.#target = this.settings.target ? this.settings.target : this.element.querySelector(this.settings.targetSelector);\n this.#fieldName = this.element.getAttribute('data-field-name');\n this.#hiddenField = document.getElementById(this.#fieldName);\n\n this.listOptions = this.element.querySelectorAll(\".c-dropdown__option\");\n\n if (!this.#control) {\n throw new Error(`Dropdown error: A control with the '${ this.settings.controlSelector }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Dropdown error: A target with the '${ this.settings.targetSelector }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Dropdown error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Dropdown error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleChoose = this._handleChoose.bind(this);\n this.#handleItemClick = this._handleItemClick.bind(this);\n this.#handleFocusout = this._handleFocusout.bind(this);\n this.#handleKeydown = this._handleKeydown.bind(this);\n this.#handleOutsideClick = this._handleOutsideClick.bind(this);\n this.#handleTransitionEnd = this._handleTransitionEnd.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n set expanded (state) {\n this.#control.setAttribute('aria-expanded', `${state}`);\n }\n\n get isHiding () {\n return this.#isHiding;\n }\n\n _handleControlClick (e) {\n this.toggle();\n }\n\n _handleChoose (choice) {\n if (choice.hasAttribute(\"aria-checked\")) {\n\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n }else {\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n\n if (this.#hiddenField) {\n this.#hiddenField.value = choice.getAttribute('data-value');\n }\n\n if (this.element.classList.contains(\"c-dropdown--quickaccess\")) {\n } else {\n choice.setAttribute('aria-checked', 'true');\n // pour branche a un form\n this.#control.setAttribute('isActive', 'true');\n\n this.element.querySelector(\".c-dropdown__label\").innerHTML = choice.innerHTML;\n }\n }\n }\n\n _handleItemClick (e) {\n this.#handleChoose(e.currentTarget);\n this.close(false);\n // e.preventDefault();\n }\n\n _handleFocusout (e) {\n if (e.relatedTarget && !this.#target.contains(e.relatedTarget) && !this.#control.contains(e.relatedTarget)) {\n this.close(false);\n }\n }\n\n _handleKeydown (e) {\n // Close on escape\n if (this.expanded && e.keyCode === 27) {\n this.toggle();\n }\n }\n\n _handleOutsideClick (e) {\n if (!this.#target.contains(e.target) && !this.#control.contains(e.target)) {\n this.close(false);\n }\n }\n\n _handleTransitionEnd (e) {\n if (e.target === this.#target) {\n this.#target.removeEventListener('transitionend', this.#handleTransitionEnd);\n this.#target.classList.remove('is-hiding');\n this.#isHiding = false;\n this.close();\n }\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n this.#target.setAttribute('tabindex', '1');\n\n if (!this.settings.isPersistent) {\n document.addEventListener('focusout', this.#handleFocusout);\n document.addEventListener('click', this.#handleOutsideClick);\n }\n\n this.fire('open', this);\n }\n\n close (refocus = true) {\n if (!this.settings.isPersistent) {\n document.removeEventListener('focusout', this.#handleFocusout);\n document.removeEventListener('click', this.#handleOutsideClick);\n }\n\n this.#control.setAttribute('aria-expanded', 'false');\n this.#target.setAttribute('hidden', '');\n this.#target.classList.remove('is-hiding');\n this.#target.setAttribute('tabindex', '-1');\n\n if (refocus) {\n this.#control.focus();\n }\n\n this.fire('close', this);\n }\n\n hide () {\n this.#target.classList.add('is-hiding');\n this.#isHiding = true;\n this.#target.addEventListener('transitionend', this.#handleTransitionEnd);\n }\n\n toggle () {\n if (this.settings.hasTransition) {\n this.expanded ? this.hide() : this.open();\n } else {\n this.expanded ? this.close() : this.open();\n }\n }\n\n mount () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('tabindex', '-1');\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-haspopup', 'true');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#target.addEventListener('keydown', this.#handleKeydown);\n\n for (let i = 0; i < this.listOptions.length; i++) {\n const element = this.listOptions[i];\n element.addEventListener('click', this.#handleItemClick);\n }\n\n // check if dropdown has hidden input\n if (this.element.getAttribute(\"data-field-name\")) {\n let formName=this.element.getAttribute(\"data-field-name\");\n // check if hidden input has value\n if (document.querySelector(\"[name='\"+formName+\"']\").value){\n let formValue=(document.querySelector(\"[name='\"+formName+\"']\").value);\n let fieldGroupOptions = this.element.querySelectorAll(\".c-dropdown__option\");\n // select value in dropdown\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n fieldGroupOption.setAttribute(\"aria-checked\", \"true\");\n }\n }\n\n // update placeholder text\n if(this.element.querySelector(\".c-dropdown__placeholder\")) {\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n this.element.querySelector(\".c-dropdown__placeholder\").innerHTML=fieldGroupOption.innerHTML;\n }\n }\n } else {\n // this.element.querySelector(\".c-dropdown__label\").innerHTML = choice.innerHTML;\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n this.element.querySelector(\".c-dropdown__label\").innerHTML=fieldGroupOption.innerHTML;\n }\n }\n }\n // highlight if slection is active\n this.#control.setAttribute(\"isactive\", \"true\");\n }\n }\n\n\n\n\n super.mount();\n }\n\n unmount () {\n if (this.expanded) {\n this.close(false);\n }\n\n this.#control.removeEventListener('click', this.#handleControlClick);\n this.#target.removeEventListener('keydown', this.#handleKeydown);\n\n this.#control.removeAttribute('aria-haspopup');\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('tabindex');\n this.#target.removeAttribute('hidden');\n\n super.unmount();\n }\n}\n","\nimport Dropdown from './Dropdown';\n\nconst dropdownElements = document.querySelectorAll('.js-dropdown');\nif (dropdownElements.length) {\n dropdownElements.forEach((dropdownElement) => {\n const dropdown = new Dropdown(dropdownElement);\n dropdown.mount();\n });\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).GLightbox=t()}(this,(function(){\"use strict\";function e(e){var t=function(e,t){if(\"object\"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:t+\"\"}function t(e){return(t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(t,i){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e[l]=e[l]||[],s={all:n,evt:null,found:null};return t&&i&&M(n)>0&&r(n,(function(e,n){if(e.eventName==t&&e.fn.toString()==i.toString())return s.found=!0,s.evt=n,!1})),s}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.onElement,n=t.withCallback,s=t.avoidDuplicate,l=void 0===s||s,o=t.once,h=void 0!==o&&o,d=t.useCapture,c=void 0!==d&&d,u=arguments.length>2?arguments[2]:void 0,g=i||[];function v(e){C(n)&&n.call(u,e,this),h&&v.destroy()}return k(g)&&(g=document.querySelectorAll(g)),v.destroy=function(){r(g,(function(t){var i=a(t,e,v);i.found&&i.all.splice(i.evt,1),t.removeEventListener&&t.removeEventListener(e,v,c)}))},r(g,(function(t){var i=a(t,e,v);(t.addEventListener&&l&&!i.found||!l)&&(t.addEventListener(e,v,c),i.all.push({eventName:e,fn:v}))})),v}function d(e,t){r(t.split(\" \"),(function(t){return e.classList.add(t)}))}function c(e,t){r(t.split(\" \"),(function(t){return e.classList.remove(t)}))}function u(e,t){return e.classList.contains(t)}function g(e,t){for(;e!==document.body;){if(!(e=e.parentElement))return!1;if(\"function\"==typeof e.matches?e.matches(t):e.msMatchesSelector(t))return e}}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||\"\"===t)return!1;if(\"none\"===t)return C(i)&&i(),!1;var n=b(),s=t.split(\" \");r(s,(function(t){d(e,\"g\"+t)})),h(n,{onElement:e,avoidDuplicate:!1,once:!0,withCallback:function(e,t){r(s,(function(e){c(t,\"g\"+e)})),C(i)&&i()}})}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(\"\"===t)return e.style.webkitTransform=\"\",e.style.MozTransform=\"\",e.style.msTransform=\"\",e.style.OTransform=\"\",e.style.transform=\"\",!1;e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function p(e){e.style.display=\"block\"}function m(e){e.style.display=\"none\"}function y(e){var t=document.createDocumentFragment(),i=document.createElement(\"div\");for(i.innerHTML=e;i.firstChild;)t.appendChild(i.firstChild);return t}function x(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}}function b(){var e,t=document.createElement(\"fakeelement\"),i={animation:\"animationend\",OAnimation:\"oAnimationEnd\",MozAnimation:\"animationend\",WebkitAnimation:\"webkitAnimationEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}function S(e,t,i,n){if(e())t();else{var s;i||(i=100);var l=setInterval((function(){e()&&(clearInterval(l),s&&clearTimeout(s),t())}),i);n&&(s=setTimeout((function(){clearInterval(l)}),n))}}function w(e,t,i){if(O(e))console.error(\"Inject assets error\");else if(C(t)&&(i=t,t=!1),k(t)&&t in window)C(i)&&i();else{var n;if(-1!==e.indexOf(\".css\")){if((n=document.querySelectorAll('link[href=\"'+e+'\"]'))&&n.length>0)return void(C(i)&&i());var s=document.getElementsByTagName(\"head\")[0],l=s.querySelectorAll('link[rel=\"stylesheet\"]'),o=document.createElement(\"link\");return o.rel=\"stylesheet\",o.type=\"text/css\",o.href=e,o.media=\"all\",l?s.insertBefore(o,l[0]):s.appendChild(o),void(C(i)&&i())}if((n=document.querySelectorAll('script[src=\"'+e+'\"]'))&&n.length>0){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}}else{var r=document.createElement(\"script\");r.type=\"text/javascript\",r.src=e,r.onload=function(){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}},document.body.appendChild(r)}}}function T(){return\"navigator\"in window&&window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)}function C(e){return\"function\"==typeof e}function k(e){return\"string\"==typeof e}function E(e){return!(!e||!e.nodeType||1!=e.nodeType)}function A(e){return Array.isArray(e)}function L(e){return e&&e.length&&isFinite(e.length)}function I(e){return\"object\"===t(e)&&null!=e&&!C(e)&&!A(e)}function O(e){return null==e}function P(e,t){return null!==e&&hasOwnProperty.call(e,t)}function M(e){if(I(e)){if(e.keys)return e.keys().length;var t=0;for(var i in e)P(e,i)&&t++;return t}return e.length}function z(e){return!isNaN(parseFloat(e))&&isFinite(e)}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=document.querySelectorAll(\".gbtn[data-taborder]:not(.disabled)\");if(!t.length)return!1;if(1==t.length)return t[0];\"string\"==typeof e&&(e=parseInt(e));var i=[];r(t,(function(e){i.push(e.getAttribute(\"data-taborder\"))}));var n=Math.max.apply(Math,i.map((function(e){return parseInt(e)}))),s=e<0?1:e+1;s>n&&(s=\"1\");var l=i.filter((function(e){return e>=parseInt(s)})),o=l.sort()[0];return document.querySelector('.gbtn[data-taborder=\"'.concat(o,'\"]'))}function Y(e){if(e.events.hasOwnProperty(\"keyboard\"))return!1;e.events.keyboard=h(\"keydown\",{onElement:window,withCallback:function(t,i){var n=(t=t||window.event).keyCode;if(9==n){var s=document.querySelector(\".gbtn.focused\");if(!s){var l=!(!document.activeElement||!document.activeElement.nodeName)&&document.activeElement.nodeName.toLocaleLowerCase();if(\"input\"==l||\"textarea\"==l||\"button\"==l)return}t.preventDefault();var o=document.querySelectorAll(\".gbtn[data-taborder]\");if(!o||o.length<=0)return;if(!s){var r=X();return void(r&&(r.focus(),d(r,\"focused\")))}var a=X(s.getAttribute(\"data-taborder\"));c(s,\"focused\"),a&&(a.focus(),d(a,\"focused\"))}39==n&&e.nextSlide(),37==n&&e.prevSlide(),27==n&&e.close()}})}var q=s((function e(t,n){var s=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(i(this,e),this.img=t,this.slide=n,this.onclose=l,this.img.setZoomEvents)return!1;this.active=!1,this.zoomedIn=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.img.addEventListener(\"mousedown\",(function(e){return s.dragStart(e)}),!1),this.img.addEventListener(\"mouseup\",(function(e){return s.dragEnd(e)}),!1),this.img.addEventListener(\"mousemove\",(function(e){return s.drag(e)}),!1),this.img.addEventListener(\"click\",(function(e){return s.slide.classList.contains(\"dragging-nav\")?(s.zoomOut(),!1):s.zoomedIn?void(s.zoomedIn&&!s.dragging&&s.zoomOut()):s.zoomIn()}),!1),this.img.setZoomEvents=!0}),[{key:\"zoomIn\",value:function(){var e=this.widowWidth();if(!(this.zoomedIn||e<=768)){var t=this.img;if(t.setAttribute(\"data-style\",t.getAttribute(\"style\")),t.style.maxWidth=t.naturalWidth+\"px\",t.style.maxHeight=t.naturalHeight+\"px\",t.naturalWidth>e){var i=e/2-t.naturalWidth/2;this.setTranslate(this.img.parentNode,i,0)}this.slide.classList.add(\"zoomed\"),this.zoomedIn=!0}}},{key:\"zoomOut\",value:function(){this.img.parentNode.setAttribute(\"style\",\"\"),this.img.setAttribute(\"style\",this.img.getAttribute(\"data-style\")),this.slide.classList.remove(\"zoomed\"),this.zoomedIn=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.onclose&&\"function\"==typeof this.onclose&&this.onclose()}},{key:\"dragStart\",value:function(e){e.preventDefault(),this.zoomedIn?(\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset),e.target===this.img&&(this.active=!0,this.img.classList.add(\"dragging\"))):this.active=!1}},{key:\"dragEnd\",value:function(e){var t=this;e.preventDefault(),this.initialX=this.currentX,this.initialY=this.currentY,this.active=!1,setTimeout((function(){t.dragging=!1,t.img.isDragging=!1,t.img.classList.remove(\"dragging\")}),100)}},{key:\"drag\",value:function(e){this.active&&(e.preventDefault(),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.img.isDragging=!0,this.dragging=!0,this.setTranslate(this.img,this.currentX,this.currentY))}},{key:\"onMove\",value:function(e){if(this.zoomedIn){var t=e.clientX-this.img.naturalWidth/2,i=e.clientY-this.img.naturalHeight/2;this.setTranslate(this.img,t,i)}}},{key:\"setTranslate\",value:function(e,t,i){e.style.transform=\"translate3d(\"+t+\"px, \"+i+\"px, 0)\"}},{key:\"widowWidth\",value:function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}}]),N=s((function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e);var s=n.dragEl,l=n.toleranceX,o=void 0===l?40:l,r=n.toleranceY,a=void 0===r?65:r,h=n.slide,d=void 0===h?null:h,c=n.instance,u=void 0===c?null:c;this.el=s,this.active=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.direction=null,this.lastDirection=null,this.toleranceX=o,this.toleranceY=a,this.toleranceReached=!1,this.dragContainer=this.el,this.slide=d,this.instance=u,this.el.addEventListener(\"mousedown\",(function(e){return t.dragStart(e)}),!1),this.el.addEventListener(\"mouseup\",(function(e){return t.dragEnd(e)}),!1),this.el.addEventListener(\"mousemove\",(function(e){return t.drag(e)}),!1)}),[{key:\"dragStart\",value:function(e){if(this.slide.classList.contains(\"zoomed\"))this.active=!1;else{\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset);var t=e.target.nodeName.toLowerCase();e.target.classList.contains(\"nodrag\")||g(e.target,\".nodrag\")||-1!==[\"input\",\"select\",\"textarea\",\"button\",\"a\"].indexOf(t)?this.active=!1:(e.preventDefault(),(e.target===this.el||\"img\"!==t&&g(e.target,\".gslide-inline\"))&&(this.active=!0,this.el.classList.add(\"dragging\"),this.dragContainer=g(e.target,\".ginner-container\")))}}},{key:\"dragEnd\",value:function(e){var t=this;e&&e.preventDefault(),this.initialX=0,this.initialY=0,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.active=!1,this.doSlideChange&&(this.instance.preventOutsideClick=!0,\"right\"==this.doSlideChange&&this.instance.prevSlide(),\"left\"==this.doSlideChange&&this.instance.nextSlide()),this.doSlideClose&&this.instance.close(),this.toleranceReached||this.setTranslate(this.dragContainer,0,0,!0),setTimeout((function(){t.instance.preventOutsideClick=!1,t.toleranceReached=!1,t.lastDirection=null,t.dragging=!1,t.el.isDragging=!1,t.el.classList.remove(\"dragging\"),t.slide.classList.remove(\"dragging-nav\"),t.dragContainer.style.transform=\"\",t.dragContainer.style.transition=\"\"}),100)}},{key:\"drag\",value:function(e){if(this.active){e.preventDefault(),this.slide.classList.add(\"dragging-nav\"),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.el.isDragging=!0,this.dragging=!0,this.doSlideChange=!1,this.doSlideClose=!1;var t=Math.abs(this.currentX),i=Math.abs(this.currentY);if(t>0&&t>=Math.abs(this.currentY)&&(!this.lastDirection||\"x\"==this.lastDirection)){this.yOffset=0,this.lastDirection=\"x\",this.setTranslate(this.dragContainer,this.currentX,0);var n=this.shouldChange();if(!this.instance.settings.dragAutoSnap&&n&&(this.doSlideChange=n),this.instance.settings.dragAutoSnap&&n)return this.instance.preventOutsideClick=!0,this.toleranceReached=!0,this.active=!1,this.instance.preventOutsideClick=!0,this.dragEnd(null),\"right\"==n&&this.instance.prevSlide(),void(\"left\"==n&&this.instance.nextSlide())}if(this.toleranceY>0&&i>0&&i>=t&&(!this.lastDirection||\"y\"==this.lastDirection)){this.xOffset=0,this.lastDirection=\"y\",this.setTranslate(this.dragContainer,0,this.currentY);var s=this.shouldClose();return!this.instance.settings.dragAutoSnap&&s&&(this.doSlideClose=!0),void(this.instance.settings.dragAutoSnap&&s&&this.instance.close())}}}},{key:\"shouldChange\",value:function(){var e=!1;if(Math.abs(this.currentX)>=this.toleranceX){var t=this.currentX>0?\"right\":\"left\";(\"left\"==t&&this.slide!==this.slide.parentNode.lastChild||\"right\"==t&&this.slide!==this.slide.parentNode.firstChild)&&(e=t)}return e}},{key:\"shouldClose\",value:function(){var e=!1;return Math.abs(this.currentY)>=this.toleranceY&&(e=!0),e}},{key:\"setTranslate\",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.style.transition=n?\"all .2s ease\":\"\",e.style.transform=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\")}}]);function D(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=new Image,o=\"gSlideTitle_\"+i,r=\"gSlideDesc_\"+i;l.addEventListener(\"load\",(function(){C(n)&&n()}),!1),l.src=t.href,\"\"!=t.sizes&&\"\"!=t.srcset&&(l.sizes=t.sizes,l.srcset=t.srcset),l.alt=\"\",O(t.alt)||\"\"===t.alt||(l.alt=t.alt),\"\"!==t.title&&l.setAttribute(\"aria-labelledby\",o),\"\"!==t.description&&l.setAttribute(\"aria-describedby\",r),t.hasOwnProperty(\"_hasCustomWidth\")&&t._hasCustomWidth&&(l.style.width=t.width),t.hasOwnProperty(\"_hasCustomHeight\")&&t._hasCustomHeight&&(l.style.height=t.height),s.insertBefore(l,s.firstChild)}function _(e,t,i,n){var s=this,l=e.querySelector(\".ginner-container\"),o=\"gvideo\"+i,r=e.querySelector(\".gslide-media\"),a=this.getAllPlayers();d(l,\"gvideo-container\"),r.insertBefore(y('
'),r.firstChild);var h=e.querySelector(\".gvideo-wrapper\");w(this.settings.plyr.css,\"Plyr\");var c=t.href,u=null==t?void 0:t.videoProvider,g=!1;r.style.maxWidth=t.width,w(this.settings.plyr.js,\"Plyr\",(function(){if(!u&&c.match(/vimeo\\.com\\/([0-9]*)/)&&(u=\"vimeo\"),!u&&(c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||c.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/))&&(u=\"youtube\"),\"local\"===u||!u){u=\"local\";var l='\")}var r=g||y('
'));d(h,\"\".concat(u,\"-video gvideo\")),h.appendChild(r),h.setAttribute(\"data-id\",o),h.setAttribute(\"data-index\",i);var v=P(s.settings.plyr,\"config\")?s.settings.plyr.config:{},f=new Plyr(\"#\"+o,v);f.on(\"ready\",(function(e){a[o]=e.detail.plyr,C(n)&&n()})),S((function(){return e.querySelector(\"iframe\")&&\"true\"==e.querySelector(\"iframe\").dataset.ready}),(function(){s.resize(e)})),f.on(\"enterfullscreen\",W),f.on(\"exitfullscreen\",W)}))}function W(e){var t=g(e.target,\".gslide-media\");\"enterfullscreen\"===e.type&&d(t,\"fullscreen\"),\"exitfullscreen\"===e.type&&c(t,\"fullscreen\")}function B(e,t,i,n){var s,l=this,o=e.querySelector(\".gslide-media\"),r=!(!P(t,\"href\")||!t.href)&&t.href.split(\"#\").pop().trim(),a=!(!P(t,\"content\")||!t.content)&&t.content;if(a&&(k(a)&&(s=y('
'.concat(a,\"
\"))),E(a))){\"none\"==a.style.display&&(a.style.display=\"block\");var c=document.createElement(\"div\");c.className=\"ginlined-content\",c.appendChild(a),s=c}if(r){var u=document.getElementById(r);if(!u)return!1;var g=u.cloneNode(!0);g.style.height=t.height,g.style.maxWidth=t.width,d(g,\"ginlined-content\"),s=g}if(!s)return console.error(\"Unable to append inline slide content\",t),!1;o.style.height=t.height,o.style.width=t.width,o.appendChild(s),this.events[\"inlineclose\"+r]=h(\"click\",{onElement:o.querySelectorAll(\".gtrigger-close\"),withCallback:function(e){e.preventDefault(),l.close()}}),C(n)&&n()}function H(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=function(e){var t=e.url,i=e.allow,n=e.callback,s=e.appendTo,l=document.createElement(\"iframe\");return l.className=\"vimeo-video gvideo\",l.src=t,l.style.width=\"100%\",l.style.height=\"100%\",i&&l.setAttribute(\"allow\",i),l.onload=function(){l.onload=null,d(l,\"node-ready\"),C(n)&&n()},s&&s.appendChild(l),l}({url:t.href,callback:n});s.parentNode.style.maxWidth=t.width,s.parentNode.style.height=t.height,s.appendChild(l)}var j=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.defaults={href:\"\",sizes:\"\",srcset:\"\",title:\"\",type:\"\",videoProvider:\"\",description:\"\",alt:\"\",descPosition:\"bottom\",effect:\"\",width:\"\",height:\"\",content:!1,zoomable:!0,draggable:!0},I(t)&&(this.defaults=o(this.defaults,t))}),[{key:\"sourceType\",value:function(e){var t=e;return null!==(e=e.toLowerCase()).match(/\\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/)?\"image\":e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||e.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/)||e.match(/vimeo\\.com\\/([0-9]*)/)||null!==e.match(/\\.(mp4|ogg|webm|mov)/)?\"video\":null!==e.match(/\\.(mp3|wav|wma|aac|ogg)/)?\"audio\":e.indexOf(\"#\")>-1&&\"\"!==t.split(\"#\").pop().trim()?\"inline\":e.indexOf(\"goajax=true\")>-1?\"ajax\":\"external\"}},{key:\"parseConfig\",value:function(e,t){var i=this,n=o({descPosition:t.descPosition},this.defaults);if(I(e)&&!E(e)){P(e,\"type\")||(P(e,\"content\")&&e.content?e.type=\"inline\":P(e,\"href\")&&(e.type=this.sourceType(e.href)));var s=o(n,e);return this.setSize(s,t),s}var l=\"\",a=e.getAttribute(\"data-glightbox\"),h=e.nodeName.toLowerCase();if(\"a\"===h&&(l=e.href),\"img\"===h&&(l=e.src,n.alt=e.alt),n.href=l,r(n,(function(s,l){P(t,l)&&\"width\"!==l&&(n[l]=t[l]);var o=e.dataset[l];O(o)||(n[l]=i.sanitizeValue(o))})),n.content&&(n.type=\"inline\"),!n.type&&l&&(n.type=this.sourceType(l)),O(a)){if(!n.title&&\"a\"==h){var d=e.title;O(d)||\"\"===d||(n.title=d)}if(!n.title&&\"img\"==h){var c=e.alt;O(c)||\"\"===c||(n.title=c)}}else{var u=[];r(n,(function(e,t){u.push(\";\\\\s?\"+t)})),u=u.join(\"\\\\s?:|\"),\"\"!==a.trim()&&r(n,(function(e,t){var s=a,l=new RegExp(\"s?\"+t+\"s?:s?(.*?)(\"+u+\"s?:|$)\"),o=s.match(l);if(o&&o.length&&o[1]){var r=o[1].trim().replace(/;\\s*$/,\"\");n[t]=i.sanitizeValue(r)}}))}if(n.description&&\".\"===n.description.substring(0,1)){var g;try{g=document.querySelector(n.description).innerHTML}catch(e){if(!(e instanceof DOMException))throw e}g&&(n.description=g)}if(!n.description){var v=e.querySelector(\".glightbox-desc\");v&&(n.description=v.innerHTML)}return this.setSize(n,t,e),this.slideConfig=n,n}},{key:\"setSize\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=\"video\"==e.type?this.checkSize(t.videosWidth):this.checkSize(t.width),s=this.checkSize(t.height);return e.width=P(e,\"width\")&&\"\"!==e.width?this.checkSize(e.width):n,e.height=P(e,\"height\")&&\"\"!==e.height?this.checkSize(e.height):s,i&&\"image\"==e.type&&(e._hasCustomWidth=!!i.dataset.width,e._hasCustomHeight=!!i.dataset.height),e}},{key:\"checkSize\",value:function(e){return z(e)?\"\".concat(e,\"px\"):e}},{key:\"sanitizeValue\",value:function(e){return\"true\"!==e&&\"false\"!==e?e:\"true\"===e}}]),V=s((function e(t,n,s){i(this,e),this.element=t,this.instance=n,this.index=s}),[{key:\"setContent\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(u(t,\"loaded\"))return!1;var n=this.instance.settings,s=this.slideConfig,l=T();C(n.beforeSlideLoad)&&n.beforeSlideLoad({index:this.index,slide:t,player:!1});var o=s.type,r=s.descPosition,a=t.querySelector(\".gslide-media\"),h=t.querySelector(\".gslide-title\"),c=t.querySelector(\".gslide-desc\"),g=t.querySelector(\".gdesc-inner\"),v=i,f=\"gSlideTitle_\"+this.index,p=\"gSlideDesc_\"+this.index;if(C(n.afterSlideLoad)&&(v=function(){C(i)&&i(),n.afterSlideLoad({index:e.index,slide:t,player:e.instance.getSlidePlayerInstance(e.index)})}),\"\"==s.title&&\"\"==s.description?g&&g.parentNode.parentNode.removeChild(g.parentNode):(h&&\"\"!==s.title?(h.id=f,h.innerHTML=s.title):h.parentNode.removeChild(h),c&&\"\"!==s.description?(c.id=p,l&&n.moreLength>0?(s.smallDescription=this.slideShortDesc(s.description,n.moreLength,n.moreText),c.innerHTML=s.smallDescription,this.descriptionEvents(c,s)):c.innerHTML=s.description):c.parentNode.removeChild(c),d(a.parentNode,\"desc-\".concat(r)),d(g.parentNode,\"description-\".concat(r))),d(a,\"gslide-\".concat(o)),d(t,\"loaded\"),\"video\"!==o){if(\"external\"!==o)return\"inline\"===o?(B.apply(this.instance,[t,s,this.index,v]),void(s.draggable&&new N({dragEl:t.querySelector(\".gslide-inline\"),toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:this.instance}))):void(\"image\"!==o?C(v)&&v():D(t,s,this.index,(function(){var i=t.querySelector(\"img\");s.draggable&&new N({dragEl:i,toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:e.instance}),s.zoomable&&i.naturalWidth>i.offsetWidth&&(d(i,\"zoomable\"),new q(i,t,(function(){e.instance.resize()}))),C(v)&&v()})));H.apply(this,[t,s,this.index,v])}else _.apply(this.instance,[t,s,this.index,v])}},{key:\"slideShortDesc\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement(\"div\");n.innerHTML=e;var s=n.innerText,l=i;if((e=s.trim()).length<=t)return e;var o=e.substr(0,t-1);return l?(n=null,o+'... '+i+\"\"):o}},{key:\"descriptionEvents\",value:function(e,t){var i=this,n=e.querySelector(\".desc-more\");if(!n)return!1;h(\"click\",{onElement:n,withCallback:function(e,n){e.preventDefault();var s=document.body,l=g(n,\".gslide-desc\");if(!l)return!1;l.innerHTML=t.description,d(s,\"gdesc-open\");var o=h(\"click\",{onElement:[s,g(l,\".gslide-description\")],withCallback:function(e,n){\"a\"!==e.target.nodeName.toLowerCase()&&(c(s,\"gdesc-open\"),d(s,\"gdesc-closed\"),l.innerHTML=t.smallDescription,i.descriptionEvents(l,t),setTimeout((function(){c(s,\"gdesc-closed\")}),400),o.destroy())}})}})}},{key:\"create\",value:function(){return y(this.instance.settings.slideHTML)}},{key:\"getConfig\",value:function(){E(this.element)||this.element.hasOwnProperty(\"draggable\")||(this.element.draggable=this.instance.settings.draggable);var e=new j(this.instance.settings.slideExtraAttributes);return this.slideConfig=e.parseConfig(this.element,this.instance.settings),this.slideConfig}}]);function F(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function R(e,t){var i=function(e,t){var i=F(e)*F(t);if(0===i)return 0;var n=function(e,t){return e.x*t.x+e.y*t.y}(e,t)/i;return n>1&&(n=1),Math.acos(n)}(e,t);return function(e,t){return e.x*t.y-t.x*e.y}(e,t)>0&&(i*=-1),180*i/Math.PI}var G=s((function e(t){i(this,e),this.handlers=[],this.el=t}),[{key:\"add\",value:function(e){this.handlers.push(e)}},{key:\"del\",value:function(e){e||(this.handlers=[]);for(var t=this.handlers.length;t>=0;t--)this.handlers[t]===e&&this.handlers.splice(t,1)}},{key:\"dispatch\",value:function(){for(var e=0,t=this.handlers.length;e=0)console.log(\"ignore drag for this touched element\",e.target.nodeName.toLowerCase());else{this.now=Date.now(),this.x1=e.touches[0].pageX,this.y1=e.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(e,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var t=this.preV;if(e.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:e.touches[1].pageX-this.x1,y:e.touches[1].pageY-this.y1};t.x=i.x,t.y=i.y,this.pinchStartLen=F(t),this.multipointStart.dispatch(e,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(e,this.element),this._preventTap=!0}.bind(this),750)}}},{key:\"move\",value:function(e){if(e.touches){var t=this.preV,i=e.touches.length,n=e.touches[0].pageX,s=e.touches[0].pageY;if(this.isDoubleTap=!1,i>1){var l=e.touches[1].pageX,o=e.touches[1].pageY,r={x:e.touches[1].pageX-n,y:e.touches[1].pageY-s};null!==t.x&&(this.pinchStartLen>0&&(e.zoom=F(r)/this.pinchStartLen,this.pinch.dispatch(e,this.element)),e.angle=R(r,t),this.rotate.dispatch(e,this.element)),t.x=r.x,t.y=r.y,null!==this.x2&&null!==this.sx2?(e.deltaX=(n-this.x2+l-this.sx2)/2,e.deltaY=(s-this.y2+o-this.sy2)/2):(e.deltaX=0,e.deltaY=0),this.twoFingerPressMove.dispatch(e,this.element),this.sx2=l,this.sy2=o}else{if(null!==this.x2){e.deltaX=n-this.x2,e.deltaY=s-this.y2;var a=Math.abs(this.x1-this.x2),h=Math.abs(this.y1-this.y2);(a>10||h>10)&&(this._preventTap=!0)}else e.deltaX=0,e.deltaY=0;this.pressMove.dispatch(e,this.element)}this.touchMove.dispatch(e,this.element),this._cancelLongTap(),this.x2=n,this.y2=s,i>1&&e.preventDefault()}}},{key:\"end\",value:function(e){if(e.changedTouches){this._cancelLongTap();var t=this;e.touches.length<2&&(this.multipointEnd.dispatch(e,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(e.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){t.swipe.dispatch(e,t.element)}),0)):(this.tapTimeout=setTimeout((function(){t._preventTap||t.tap.dispatch(e,t.element),t.isDoubleTap&&(t.doubleTap.dispatch(e,t.element),t.isDoubleTap=!1)}),0),t.isDoubleTap||(t.singleTapTimeout=setTimeout((function(){t.singleTap.dispatch(e,t.element)}),250))),this.touchEnd.dispatch(e,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}}},{key:\"cancelAll\",value:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)}},{key:\"cancel\",value:function(e){this.cancelAll(),this.touchCancel.dispatch(e,this.element)}},{key:\"_cancelLongTap\",value:function(){clearTimeout(this.longTapTimeout)}},{key:\"_cancelSingleTap\",value:function(){clearTimeout(this.singleTapTimeout)}},{key:\"_swipeDirection\",value:function(e,t,i,n){return Math.abs(e-t)>=Math.abs(i-n)?e-t>0?\"Left\":\"Right\":i-n>0?\"Up\":\"Down\"}},{key:\"on\",value:function(e,t){this[e]&&this[e].add(t)}},{key:\"off\",value:function(e,t){this[e]&&this[e].del(t)}},{key:\"destroy\",value:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(\"touchstart\",this.start),this.element.removeEventListener(\"touchmove\",this.move),this.element.removeEventListener(\"touchend\",this.end),this.element.removeEventListener(\"touchcancel\",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener(\"scroll\",this._cancelAllHandler),null}}]);function $(e){var t=function(){var e,t=document.createElement(\"fakeelement\"),i={transition:\"transitionend\",OTransition:\"oTransitionEnd\",MozTransition:\"transitionend\",WebkitTransition:\"webkitTransitionEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}(),i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u(e,\"gslide-media\")?e:e.querySelector(\".gslide-media\"),s=g(n,\".ginner-container\"),l=e.querySelector(\".gslide-description\");i>769&&(n=s),d(n,\"greset\"),f(n,\"translate3d(0, 0, 0)\"),h(t,{onElement:n,once:!0,withCallback:function(e,t){c(n,\"greset\")}}),n.style.opacity=\"\",l&&(l.style.opacity=\"\")}function J(e){if(e.events.hasOwnProperty(\"touch\"))return!1;var t,i,n,s=x(),l=s.width,o=s.height,r=!1,a=null,h=null,v=null,p=!1,m=1,y=1,b=!1,S=!1,w=null,T=null,C=null,k=null,E=0,A=0,L=!1,I=!1,O={},P={},M=0,z=0,X=document.getElementById(\"glightbox-slider\"),Y=document.querySelector(\".goverlay\"),q=new U(X,{touchStart:function(t){if(r=!0,(u(t.targetTouches[0].target,\"ginner-container\")||g(t.targetTouches[0].target,\".gslide-desc\")||\"a\"==t.targetTouches[0].target.nodeName.toLowerCase())&&(r=!1),g(t.targetTouches[0].target,\".gslide-inline\")&&!u(t.targetTouches[0].target.parentNode,\"gslide-inline\")&&(r=!1),r){if(P=t.targetTouches[0],O.pageX=t.targetTouches[0].pageX,O.pageY=t.targetTouches[0].pageY,M=t.targetTouches[0].clientX,z=t.targetTouches[0].clientY,a=e.activeSlide,h=a.querySelector(\".gslide-media\"),n=a.querySelector(\".gslide-inline\"),v=null,u(h,\"gslide-image\")&&(v=h.querySelector(\"img\")),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>769&&(h=a.querySelector(\".ginner-container\")),c(Y,\"greset\"),t.pageX>20&&t.pageXo){var a=O.pageX-P.pageX;if(Math.abs(a)<=13)return!1}p=!0;var d,c=s.targetTouches[0].clientX,u=s.targetTouches[0].clientY,g=M-c,m=z-u;if(Math.abs(g)>Math.abs(m)?(L=!1,I=!0):(I=!1,L=!0),t=P.pageX-O.pageX,E=100*t/l,i=P.pageY-O.pageY,A=100*i/o,L&&v&&(d=1-Math.abs(i)/o,Y.style.opacity=d,e.settings.touchFollowAxis&&(E=0)),I&&(d=1-Math.abs(t)/l,h.style.opacity=d,e.settings.touchFollowAxis&&(A=0)),!v)return f(h,\"translate3d(\".concat(E,\"%, 0, 0)\"));f(h,\"translate3d(\".concat(E,\"%, \").concat(A,\"%, 0)\"))}},touchEnd:function(){if(r){if(p=!1,S||b)return C=w,void(k=T);var t=Math.abs(parseInt(A)),i=Math.abs(parseInt(E));if(!(t>29&&v))return t<29&&i<25?(d(Y,\"greset\"),Y.style.opacity=1,$(h)):void 0;e.close()}},multipointEnd:function(){setTimeout((function(){b=!1}),50)},multipointStart:function(){b=!0,m=y||1},pinch:function(e){if(!v||p)return!1;b=!0,v.scaleX=v.scaleY=m*e.zoom;var t=m*e.zoom;if(S=!0,t<=1)return S=!1,t=1,k=null,C=null,w=null,T=null,void v.setAttribute(\"style\",\"\");t>4.5&&(t=4.5),v.style.transform=\"scale3d(\".concat(t,\", \").concat(t,\", 1)\"),y=t},pressMove:function(e){if(S&&!b){var t=P.pageX-O.pageX,i=P.pageY-O.pageY;C&&(t+=C),k&&(i+=k),w=t,T=i;var n=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\");y&&(n+=\" scale3d(\".concat(y,\", \").concat(y,\", 1)\")),f(v,n)}},swipe:function(t){if(!S)if(b)b=!1;else{if(\"Left\"==t.direction){if(e.index==e.elements.length-1)return $(h);e.nextSlide()}if(\"Right\"==t.direction){if(0==e.index)return $(h);e.prevSlide()}}}});e.events.touch=q}var K=T(),Q=null!==T()||void 0!==document.createTouch||\"ontouchstart\"in window||\"onmsgesturechange\"in window||navigator.msMaxTouchPoints,ee=document.getElementsByTagName(\"html\")[0],te={selector:\".glightbox\",elements:null,skin:\"clean\",theme:\"clean\",closeButton:!0,startAt:null,autoplayVideos:!0,autofocusVideos:!0,descPosition:\"bottom\",width:\"900px\",height:\"506px\",videosWidth:\"960px\",beforeSlideChange:null,afterSlideChange:null,beforeSlideLoad:null,afterSlideLoad:null,slideInserted:null,slideRemoved:null,slideExtraAttributes:null,onOpen:null,onClose:null,loop:!1,zoomable:!0,draggable:!0,dragAutoSnap:!1,dragToleranceX:40,dragToleranceY:65,preload:!0,oneSlidePerOpen:!1,touchNavigation:!0,touchFollowAxis:!0,keyboardNavigation:!0,closeOnOutsideClick:!0,plugins:!1,plyr:{css:\"https://cdn.plyr.io/3.6.12/plyr.css\",js:\"https://cdn.plyr.io/3.6.12/plyr.js\",config:{ratio:\"16:9\",fullscreen:{enabled:!0,iosNative:!0},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3},vimeo:{byline:!1,portrait:!1,title:!1,transparent:!1}}},openEffect:\"zoom\",closeEffect:\"zoom\",slideEffect:\"slide\",moreText:\"See more\",moreLength:60,cssEfects:{fade:{in:\"fadeIn\",out:\"fadeOut\"},zoom:{in:\"zoomIn\",out:\"zoomOut\"},slide:{in:\"slideInRight\",out:\"slideOutLeft\"},slideBack:{in:\"slideInLeft\",out:\"slideOutRight\"},none:{in:\"none\",out:\"none\"}},svg:{close:'',next:' ',prev:''},slideHTML:'
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n
\\n
\\n
\\n
\\n
\\n
',lightboxHTML:'
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
'},ie=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.customOptions=t,this.settings=o(te,t),this.effectsClasses=this.getAnimationClasses(),this.videoPlayers={},this.apiEvents=[],this.fullElementsList=!1}),[{key:\"init\",value:function(){var e=this,t=this.getSelector();t&&(this.baseEvents=h(\"click\",{onElement:t,withCallback:function(t,i){t.preventDefault(),e.open(i)}})),this.elements=this.getElements()}},{key:\"open\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(0===this.elements.length)return!1;this.activeSlide=null,this.prevActiveSlideIndex=null,this.prevActiveSlide=null;var i=z(t)?t:this.settings.startAt;if(E(e)){var n=e.getAttribute(\"data-gallery\");n&&(this.fullElementsList=this.elements,this.elements=this.getGalleryElements(this.elements,n)),O(i)&&(i=this.getElementIndex(e))<0&&(i=0)}z(i)||(i=0),this.build(),v(this.overlay,\"none\"===this.settings.openEffect?\"none\":this.settings.cssEfects.fade.in);var s=document.body,l=window.innerWidth-document.documentElement.clientWidth;if(l>0){var o=document.createElement(\"style\");o.type=\"text/css\",o.className=\"gcss-styles\",o.innerText=\".gscrollbar-fixer {margin-right: \".concat(l,\"px}\"),document.head.appendChild(o),d(s,\"gscrollbar-fixer\")}d(s,\"glightbox-open\"),d(ee,\"glightbox-open\"),K&&(d(document.body,\"glightbox-mobile\"),this.settings.slideEffect=\"slide\"),this.showSlide(i,!0),1===this.elements.length?(d(this.prevButton,\"glightbox-button-hidden\"),d(this.nextButton,\"glightbox-button-hidden\")):(c(this.prevButton,\"glightbox-button-hidden\"),c(this.nextButton,\"glightbox-button-hidden\")),this.lightboxOpen=!0,this.trigger(\"open\"),C(this.settings.onOpen)&&this.settings.onOpen(),Q&&this.settings.touchNavigation&&J(this),this.settings.keyboardNavigation&&Y(this)}},{key:\"openAt\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.open(null,e)}},{key:\"showSlide\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];p(this.loader),this.index=parseInt(t);var n=this.slidesContainer.querySelector(\".current\");n&&c(n,\"current\"),this.slideAnimateOut();var s=this.slidesContainer.querySelectorAll(\".gslide\")[t];if(u(s,\"loaded\"))this.slideAnimateIn(s,i),m(this.loader);else{p(this.loader);var l=this.elements[t],o={index:this.index,slide:s,slideNode:s,slideConfig:l.slideConfig,slideIndex:this.index,trigger:l.node,player:null};this.trigger(\"slide_before_load\",o),l.instance.setContent(s,(function(){m(e.loader),e.resize(),e.slideAnimateIn(s,i),e.trigger(\"slide_after_load\",o)}))}this.slideDescription=s.querySelector(\".gslide-description\"),this.slideDescriptionContained=this.slideDescription&&u(this.slideDescription.parentNode,\"gslide-media\"),this.settings.preload&&(this.preloadSlide(t+1),this.preloadSlide(t-1)),this.updateNavigationClasses(),this.activeSlide=s}},{key:\"preloadSlide\",value:function(e){var t=this;if(e<0||e>this.elements.length-1)return!1;if(O(this.elements[e]))return!1;var i=this.slidesContainer.querySelectorAll(\".gslide\")[e];if(u(i,\"loaded\"))return!1;var n=this.elements[e],s=n.type,l={index:e,slide:i,slideNode:i,slideConfig:n.slideConfig,slideIndex:e,trigger:n.node,player:null};this.trigger(\"slide_before_load\",l),\"video\"===s||\"external\"===s?setTimeout((function(){n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}),200):n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}},{key:\"prevSlide\",value:function(){this.goToSlide(this.index-1)}},{key:\"nextSlide\",value:function(){this.goToSlide(this.index+1)}},{key:\"goToSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.prevActiveSlide=this.activeSlide,this.prevActiveSlideIndex=this.index,!this.loop()&&(e<0||e>this.elements.length-1))return!1;e<0?e=this.elements.length-1:e>=this.elements.length&&(e=0),this.showSlide(e)}},{key:\"insertSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;t<0&&(t=this.elements.length);var i=new V(e,this,t),n=i.getConfig(),s=o({},n),l=i.create(),r=this.elements.length-1;s.index=t,s.node=!1,s.instance=i,s.slideConfig=n,this.elements.splice(t,0,s);var a=null,h=null;if(this.slidesContainer){if(t>r)this.slidesContainer.appendChild(l);else{var d=this.slidesContainer.querySelectorAll(\".gslide\")[t];this.slidesContainer.insertBefore(l,d)}(this.settings.preload&&0==this.index&&0==t||this.index-1==t||this.index+1==t)&&this.preloadSlide(t),0===this.index&&0===t&&(this.index=1),this.updateNavigationClasses(),a=this.slidesContainer.querySelectorAll(\".gslide\")[t],h=this.getSlidePlayerInstance(t),s.slideNode=a}this.trigger(\"slide_inserted\",{index:t,slide:a,slideNode:a,slideConfig:n,slideIndex:t,trigger:null,player:h}),C(this.settings.slideInserted)&&this.settings.slideInserted({index:t,slide:a,player:h})}},{key:\"removeSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(e<0||e>this.elements.length-1)return!1;var t=this.slidesContainer&&this.slidesContainer.querySelectorAll(\".gslide\")[e];t&&(this.getActiveSlideIndex()==e&&(e==this.elements.length-1?this.prevSlide():this.nextSlide()),t.parentNode.removeChild(t)),this.elements.splice(e,1),this.trigger(\"slide_removed\",e),C(this.settings.slideRemoved)&&this.settings.slideRemoved(e)}},{key:\"slideAnimateIn\",value:function(e,t){var i=this,n=e.querySelector(\".gslide-media\"),s=e.querySelector(\".gslide-description\"),l={index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlide,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},o={index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideConfig:this.elements[this.index].slideConfig,slideIndex:this.index,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)};if(n.offsetWidth>0&&s&&(m(s),s.style.display=\"\"),c(e,this.effectsClasses),t)v(e,this.settings.cssEfects[this.settings.openEffect].in,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}));else{var r=this.settings.slideEffect,a=\"none\"!==r?this.settings.cssEfects[r].in:r;this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(a=this.settings.cssEfects.slideBack.in),v(e,a,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}))}setTimeout((function(){i.resize(e)}),100),d(e,\"current\")}},{key:\"slideAnimateOut\",value:function(){if(!this.prevActiveSlide)return!1;var e=this.prevActiveSlide;c(e,this.effectsClasses),d(e,\"prev\");var t=this.settings.slideEffect,i=\"none\"!==t?this.settings.cssEfects[t].out:t;this.slidePlayerPause(e),this.trigger(\"slide_before_change\",{prev:{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlideIndex,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},current:{index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideIndex:this.index,slideConfig:this.elements[this.index].slideConfig,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)}}),C(this.settings.beforeSlideChange)&&this.settings.beforeSlideChange.apply(this,[{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},{index:this.index,slide:this.activeSlide,player:this.getSlidePlayerInstance(this.index)}]),this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(i=this.settings.cssEfects.slideBack.out),v(e,i,(function(){var t=e.querySelector(\".ginner-container\"),i=e.querySelector(\".gslide-media\"),n=e.querySelector(\".gslide-description\");t.style.transform=\"\",i.style.transform=\"\",c(i,\"greset\"),i.style.opacity=\"\",n&&(n.style.opacity=\"\"),c(e,\"prev\")}))}},{key:\"getAllPlayers\",value:function(){return this.videoPlayers}},{key:\"getSlidePlayerInstance\",value:function(e){var t=\"gvideo\"+e,i=this.getAllPlayers();return!(!P(i,t)||!i[t])&&i[t]}},{key:\"stopSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"stopSlideVideo is deprecated, use slidePlayerPause\");var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"slidePlayerPause\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"playSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"playSlideVideo is deprecated, use slidePlayerPlay\");var i=this.getSlidePlayerInstance(e);i&&!i.playing&&i.play()}},{key:\"slidePlayerPlay\",value:function(e){var t;if(!K||null!==(t=this.settings.plyr.config)&&void 0!==t&&t.muted){if(E(e)){var i=e.querySelector(\".gvideo-wrapper\");i&&(e=i.getAttribute(\"data-index\"))}var n=this.getSlidePlayerInstance(e);n&&!n.playing&&(n.play(),this.settings.autofocusVideos&&n.elements.container.focus())}}},{key:\"setElements\",value:function(e){var t=this;this.settings.elements=!1;var i=[];e&&e.length&&r(e,(function(e,n){var s=new V(e,t,n),l=s.getConfig(),r=o({},l);r.slideConfig=l,r.instance=s,r.index=n,i.push(r)})),this.elements=i,this.lightboxOpen&&(this.slidesContainer.innerHTML=\"\",this.elements.length&&(r(this.elements,(function(){var e=y(t.settings.slideHTML);t.slidesContainer.appendChild(e)})),this.showSlide(0,!0)))}},{key:\"getElementIndex\",value:function(e){var t=!1;return r(this.elements,(function(i,n){if(P(i,\"node\")&&i.node==e)return t=n,!0})),t}},{key:\"getElements\",value:function(){var e=this,t=[];this.elements=this.elements?this.elements:[],!O(this.settings.elements)&&A(this.settings.elements)&&this.settings.elements.length&&r(this.settings.elements,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=!1,r.index=n,r.instance=s,r.slideConfig=l,t.push(r)}));var i=!1;return this.getSelector()&&(i=document.querySelectorAll(this.getSelector())),i?(r(i,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=i,r.index=n,r.instance=s,r.slideConfig=l,r.gallery=i.getAttribute(\"data-gallery\"),t.push(r)})),t):t}},{key:\"getGalleryElements\",value:function(e,t){return e.filter((function(e){return e.gallery==t}))}},{key:\"getSelector\",value:function(){return!this.settings.elements&&(this.settings.selector&&\"data-\"==this.settings.selector.substring(0,5)?\"*[\".concat(this.settings.selector,\"]\"):this.settings.selector)}},{key:\"getActiveSlide\",value:function(){return this.slidesContainer.querySelectorAll(\".gslide\")[this.index]}},{key:\"getActiveSlideIndex\",value:function(){return this.index}},{key:\"getAnimationClasses\",value:function(){var e=[];for(var t in this.settings.cssEfects)if(this.settings.cssEfects.hasOwnProperty(t)){var i=this.settings.cssEfects[t];e.push(\"g\".concat(i.in)),e.push(\"g\".concat(i.out))}return e.join(\" \")}},{key:\"build\",value:function(){var e=this;if(this.built)return!1;var t=document.body.childNodes,i=[];r(t,(function(e){e.parentNode==document.body&&\"#\"!==e.nodeName.charAt(0)&&e.hasAttribute&&!e.hasAttribute(\"aria-hidden\")&&(i.push(e),e.setAttribute(\"aria-hidden\",\"true\"))}));var n=P(this.settings.svg,\"next\")?this.settings.svg.next:\"\",s=P(this.settings.svg,\"prev\")?this.settings.svg.prev:\"\",l=P(this.settings.svg,\"close\")?this.settings.svg.close:\"\",o=this.settings.lightboxHTML;o=y(o=(o=(o=o.replace(/{nextSVG}/g,n)).replace(/{prevSVG}/g,s)).replace(/{closeSVG}/g,l)),document.body.appendChild(o);var a=document.getElementById(\"glightbox-body\");this.modal=a;var c=a.querySelector(\".gclose\");this.prevButton=a.querySelector(\".gprev\"),this.nextButton=a.querySelector(\".gnext\"),this.overlay=a.querySelector(\".goverlay\"),this.loader=a.querySelector(\".gloader\"),this.slidesContainer=document.getElementById(\"glightbox-slider\"),this.bodyHiddenChildElms=i,this.events={},d(this.modal,\"glightbox-\"+this.settings.skin),this.settings.closeButton&&c&&(this.events.close=h(\"click\",{onElement:c,withCallback:function(t,i){t.preventDefault(),e.close()}})),c&&!this.settings.closeButton&&c.parentNode.removeChild(c),this.nextButton&&(this.events.next=h(\"click\",{onElement:this.nextButton,withCallback:function(t,i){t.preventDefault(),e.nextSlide()}})),this.prevButton&&(this.events.prev=h(\"click\",{onElement:this.prevButton,withCallback:function(t,i){t.preventDefault(),e.prevSlide()}})),this.settings.closeOnOutsideClick&&(this.events.outClose=h(\"click\",{onElement:a,withCallback:function(t,i){e.preventOutsideClick||u(document.body,\"glightbox-mobile\")||g(t.target,\".ginner-container\")||g(t.target,\".gbtn\")||u(t.target,\"gnext\")||u(t.target,\"gprev\")||e.close()}})),r(this.elements,(function(t,i){e.slidesContainer.appendChild(t.instance.create()),t.slideNode=e.slidesContainer.querySelectorAll(\".gslide\")[i]})),Q&&d(document.body,\"glightbox-touch\"),this.events.resize=h(\"resize\",{onElement:window,withCallback:function(){e.resize()}}),this.built=!0}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((e=e||this.activeSlide)&&!u(e,\"zoomed\")){var t=x(),i=e.querySelector(\".gvideo-wrapper\"),n=e.querySelector(\".gslide-image\"),s=this.slideDescription,l=t.width,o=t.height;if(l<=768?d(document.body,\"glightbox-mobile\"):c(document.body,\"glightbox-mobile\"),i||n){var r=!1;if(s&&(u(s,\"description-bottom\")||u(s,\"description-top\"))&&!u(s,\"gabsolute\")&&(r=!0),n)if(l<=768)n.querySelector(\"img\");else if(r){var a,h=s.offsetHeight,g=n.querySelector(\"img\"),v=this.elements[this.index].node,f=null!==(a=v.getAttribute(\"data-height\"))&&void 0!==a?a:\"100vh\";g.setAttribute(\"style\",\"max-height: calc(\".concat(f,\" - \").concat(h,\"px)\")),s.setAttribute(\"style\",\"max-width: \".concat(g.offsetWidth,\"px;\"))}if(i){var p=P(this.settings.plyr.config,\"ratio\")?this.settings.plyr.config.ratio:\"\";if(!p){var m=i.clientWidth,y=i.clientHeight,b=m/y;p=\"\".concat(m/b,\":\").concat(y/b)}var S=p.split(\":\"),w=this.settings.videosWidth,T=this.settings.videosWidth,C=(T=z(w)||-1!==w.indexOf(\"px\")?parseInt(w):-1!==w.indexOf(\"vw\")?l*parseInt(w)/100:-1!==w.indexOf(\"vh\")?o*parseInt(w)/100:-1!==w.indexOf(\"%\")?l*parseInt(w)/100:parseInt(i.clientWidth))/(parseInt(S[0])/parseInt(S[1]));if(C=Math.floor(C),r&&(o-=s.offsetHeight),T>l||C>o||oT){var k=i.offsetWidth,E=i.offsetHeight,A=o/E,L={width:k*A,height:E*A};i.parentNode.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px\")),r&&s.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px;\"))}else i.parentNode.style.maxWidth=\"\".concat(w),r&&s.setAttribute(\"style\",\"max-width: \".concat(w,\";\"))}}}}},{key:\"reload\",value:function(){this.init()}},{key:\"updateNavigationClasses\",value:function(){var e=this.loop();c(this.nextButton,\"disabled\"),c(this.prevButton,\"disabled\"),0==this.index&&this.elements.length-1==0?(d(this.prevButton,\"disabled\"),d(this.nextButton,\"disabled\")):0!==this.index||e?this.index!==this.elements.length-1||e||d(this.nextButton,\"disabled\"):d(this.prevButton,\"disabled\")}},{key:\"loop\",value:function(){var e=P(this.settings,\"loopAtEnd\")?this.settings.loopAtEnd:null;return e=P(this.settings,\"loop\")?this.settings.loop:e,e}},{key:\"close\",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&r(this.bodyHiddenChildElms,(function(e){e.removeAttribute(\"aria-hidden\")})),d(this.modal,\"glightbox-closing\"),v(this.overlay,\"none\"==this.settings.openEffect?\"none\":this.settings.cssEfects.fade.out),v(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;c(ee,\"glightbox-open\"),c(i,\"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer\"),e.modal.parentNode.removeChild(e.modal),e.trigger(\"close\"),C(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(\".gcss-styles\");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:\"destroy\",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:\"on\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!C(t))throw new TypeError(\"Event name and callback must be defined\");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:\"once\",value:function(e,t){this.on(e,t,!0)}},{key:\"trigger\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];r(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&r(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:\"clearAllEvents\",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:\"version\",value:function(){return\"3.3.0\"}}]);return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new ie(e);return t.init(),t}}));","\nimport GLightbox from 'GLightbox';\n\nexport default class Glightbox {\n constructor(element) {\n this.element = element;\n this.button = document.querySelector(\".js-glightbox__button\");\n }\n\n mount() {\n const lightbox = GLightbox({\n 'selector': '.glightbox'\n });\n }\n}\n","import Glightbox from './Glightbox';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n const glightboxElement = document.querySelectorAll('.glightbox');\n if (!glightboxElement.length) {\n return;\n }\n\n glightboxElement.forEach((element) => {\n const glightboxE = new Glightbox(element);\n glightboxE.mount(element);\n })\n});\n","\nimport GLightbox from 'GLightbox';\n\nexport default class Glightbox {\n constructor(element) {\n this.element = element;\n }\n\n mount() {\n const lightbox = GLightbox({\n 'selector': '.glightbox'\n });\n\n this.element.addEventListener('click', function(){\n lightbox.open();\n })\n }\n}\n","import Glightboxbutton from './Glightboxbutton';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n const glightboxElement = document.querySelectorAll('.js-glightbox__button');\n if (!glightboxElement.length) {\n return;\n }\n\n glightboxElement.forEach((element) => {\n const glightboxE = new Glightboxbutton(element);\n glightboxE.mount(element);\n })\n});\n","import 'mdn-polyfills/NodeList.prototype.forEach';\n\nexport default class Stickymenu {\n constructor(element) {\n this.element = element;\n this.sections = document.querySelectorAll(\".js-stickymenu-section\");\n this.menuItems = document.querySelectorAll(\".js-stickymenu-item\");\n }\n\n mount() {\n let lastKnownScrollPosition = 0;\n let ticking = false;\n\n document.addEventListener(\"scroll\", (event) => {\n lastKnownScrollPosition = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(() => {\n updateScroll(lastKnownScrollPosition);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n\n\n\n function updateScroll() {\n var current = \"\";\n\n var startPointElement = document.querySelector(\"body\").getBoundingClientRect();\n let startPointTop = startPointElement.top;\n\n\n let sections = document.querySelectorAll(\".js-stickymenu-section\");\n let menuItems = document.querySelectorAll(\".js-stickymenu-item\");\n\n sections.forEach((section,index) => {\n var rect = section.getBoundingClientRect();\n let sectionTop = rect.top;\n if (document.documentElement.scrollTop >= sectionTop - startPointTop + 100 - window.innerHeight) {\n current = section.getAttribute(\"id\"); }\n });\n\n menuItems.forEach((menuItem) => {\n menuItem.classList.remove(\"c-stickynav__item--active\");\n if (menuItem.getAttribute('data-id') === current) {\n menuItem.classList.add(\"c-stickynav__item--active\");\n }\n });\n }\n\n }\n\n unmount() {\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Stickymenu from './Stickymenu';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const stickymenus = document.querySelectorAll('.js-stickynav');\n if (!stickymenus.length) {\n return;\n }\n\n stickymenus.forEach((element) => {\n const stickymenu = new Stickymenu(element);\n stickymenu.mount(element);\n });\n});\n","/**\n * Name: Seemore\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Seemore extends Component {\n static settings = {\n i18n: {\n hideSection: 'En voir moins',\n showSection: 'En voir plus',\n }\n };\n\n #control;\n #content;\n #isOpen;\n\n\n #handleControlClick;\n #handleResize;\n #handleToggle;\n\n constructor (element, options = {}) {\n super(element, {\n ...Seemore.settings,\n ...options\n });\n\n this.#control = this.element.querySelector('.js-seemore-control');\n this.#content = this.element.querySelector('.js-seemore-content');\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleResize = this._handleResize.bind(this);\n }\n\n _handleResize() {\n this.createTeaser();\n }\n\n _handleControlClick (e) {\n this.toggle();\n }\n\n toggle () {\n this.#isOpen ? this.close() : this.open();\n }\n\n close () {\n this.#content.setAttribute('mainContentIsHiden', '');\n this.#control.querySelector(\".c-button__icon\").innerHTML ='';\n this.#control.querySelector(\".c-button__label\").innerText=this.settings.i18n.showSection;\n this.#isOpen = false;\n }\n\n open () {\n this.#content.removeAttribute('mainContentIsHiden', '');\n this.#control.querySelector(\".c-button__label\").innerText=this.settings.i18n.hideSection;\n\n this.#control.querySelector(\".c-button__icon\").innerHTML='';\n this.#isOpen = true;\n }\n\n mount () {\n this.createTeaser();\n super.mount();\n }\n\n createTeaser() {\n this.#content.setAttribute('mainContentIsHiden', '');\n this.#control.removeAttribute('aria-hidden', '');\n this.#isOpen = false;\n this.#control.addEventListener('click', this.#handleControlClick);\n }\n\n unmount () {\n\n super.unmount();\n }\n}\n","import Seemore from './Seemore';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const seemoreElements = document.querySelectorAll('.js-seemore');\n if (!seemoreElements.length) {\n return;\n }\n seemoreElements.forEach((element) => {\n const seemoreElement = new Seemore(element, {\n hasAdditionalControl: true,\n });\n seemoreElement.mount();\n });\n});\n","\nexport default class Phone {\n constructor(element) {\n this.element = element;\n }\n\n mount() {\n this.element.addEventListener('click', (event)=>{\n event.preventDefault();\n\n const number = this.element.dataset.number;\n if(this.element.classList.contains(\"c-button--link\")){\n this.element.parentNode.innerHTML = ''+ number +''\n } else {\n this.element.parentNode.innerHTML = ''+ number +''\n }\n });\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Phone from './Phone';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const phoneButtons = document.querySelectorAll('.js-phone');\n if (!phoneButtons.length) {\n return;\n }\n\n phoneButtons.forEach((element) => {\n const phoneButton = new Phone(element);\n phoneButton.mount(element);\n });\n});\n","import \"./front/components/Header/lifecycle\";\nimport './front/components/Breadcrumbs/lifecycle';\nimport './front/components/Details/lifecycle';\nimport './front/components/slider/lifecycle';\nimport './front/components/Viewport/lifecycle';\nimport './front/components/Dropdown/lifecycle';\nimport './front/components/Glightbox/lifecycle';\nimport './front/components/Glightboxbutton/lifecycle';\nimport './front/components/Stickymenu/lifecycle';\nimport './front/components/Seemore/lifecycle';\nimport './front/components/Phone/lifecycle';\n\nlet scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n\nwindow.addEventListener('resize', function(event) {\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n}, true);\n"],"names":["window","NodeList","prototype","forEach","o","t","i","this","length","call","Toggler","constructor","element","target","autoClose","autoFocus","expanded","mounted","isWaiting","lastEventType","handleClick","bind","handleKeyup","handleTarget","handleToggling","handleTransitionEnd","handleAnimationEnd","handleAutoClose","e","type","contains","hide","document","removeEventListener","preventDefault","dispatchEvent","CustomEvent","detail","toggler","toggle","key","setAttribute","classList","remove","show","addEventListener","focus","ignore","add","mount","id","tagName","unmount","removeAttribute","Navigation","togglers","hasMegaMenu","tmp","offsetWidth","header","querySelector","handleTargetChange","handleTogglerHide","handleTogglerShow","updateBackdrop","hasTogglerExpanded","querySelectorAll","getElementById","dataset","navigationToggler","push","exports","__assign","Object","assign","s","n","arguments","p","hasOwnProperty","apply","createTestElement","testElement","createElement","style","cssText","documentElement","insertBefore","firstChild","removeTestElement","removeChild","checkSizes","vhTest","windowHeight","innerHeight","vh","offsetHeight","offset","isNeeded","value","noop","computeDifference","sizes","redefineVhUnit","methods","freeze","isString","text","isFunction","f","defaultOptions","cssVarName","redefineVh","method","force","updateOnTouch","onUpdate","getOptions","options","finalOptions","passiveSupported","eventListeners","defineProperty","get","err","addListener","eventName","callback","passive","removeAll","config","updateCssVar","result","setProperty","formatResult","unbind","recompute","vhCheck","onWindowChange","requestAnimationFrame","factory","Header","navigationTogglers","height","hasResized","tmpWidth","hasScrolled","tmpScroll","scrollTop","lastDcrollDown","navigation","burger","direction","isPinned","isSticky","hasNavigationActive","handleNavigationHide","handleNavigationShow","handleNavigationUpdate","handleScroll","handlePinned","handleResize","updateNavigation","calculate","scrollbarWidth","innerWidth","body","clientWidth","isNavigationHasTogglerExpanded","updateResize","isTogglable","getComputedStyle","getPropertyValue","offsetWidt","updateScroll","conditionSticky","nav","headerHeight","headerToggler","loop","debounce","func","wait","immediate","timeout","args","context","timestamp","later","last","Date","now","setTimeout","debounced","callNow","clear","clearTimeout","flush","headerElement","debounce_1","Component","static","settings","listeners","getNode","parameter","Element","testSelector","fire","data","listener","on","handler","off","index","indexOf","splice","Breadcrumbs","super","_classPrivateFieldInitSpec","_control","writable","_target","_enabled","_hasEnded","_handleControlClick","_handleWindowDebouncedResize","_classPrivateFieldSet","control","_classPrivateFieldGet","Error","getAttribute","expandable","display","enabled","hasEnded","windowWidth","tempWidth","update","open","isResponsive","unsetResponsive","enable","disable","setResponsive","undefined","breadcrumbsElements","Details","_content","_label","_handleContentBeforeMatch","_handleHashChange","_handleToggle","isNativeDetails","rememberExpanded","sessionStorageValue","console","error","content","state","sessionStorage","getItem","toLowerCase","setItem","additionalControl","location","hash","substring","convertControlToButton","getAttributeNames","reduce","acc","name","innerHTML","replaceWith","resetControl","addAdditionalControl","marker","i18n","hideSection","outerHTML","appendChild","removeAdditionalControl","close","showSection","hasAdditionalControl","removeItem","isObject","obj","extend","src","keys","detailsElements","ssrDocument","activeElement","blur","nodeName","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","matchMedia","cancelAnimationFrame","getWindow","win","nextTick","delay","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","slice","isNode","node","HTMLElement","nodeType","to","noExtend","nextSource","keysArray","filter","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","selector","matches","showWarning","warn","tag","classes","Array","isArray","trim","c","classesToTokens","elementStyle","prop","elementIndex","child","previousSibling","elementOuterSize","size","includeMargins","makeElementsArray","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","String","includes","major","minor","num","Number","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","events","priority","self","eventsListeners","destroyed","event","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","emit","_len2","_key2","unshift","toggleSlideClasses$1","slideEl","condition","className","toggleSlideClasses","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","slides","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","rewind","realIndex","updateSize","clientHeight","isHorizontal","isVertical","parseInt","isNaN","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","originalEvent","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","bySwiperTouchMove","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","updateOnWindowResize","isGridEnabled","defaults","init","swiperElementNodeName","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","newDefaults","module","m","installModule","getEl","res","toggleEl","disabled","subEl","disabledClass","lockClass","onPrevClick","onNextClick","checkProps","createElementIfNotDefined","initButton","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","_s","pagination","clickable","isHidden","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parent","parentElement","elementParents","disconnect","Slider","swiperElement","spacing","infinite","spaceBetweenValues","slideChange","slideChangeTransitionEnd","updateTabIndex","slideButtons","sliders","Viewport","Event","halfHauter","IntersectionObserver","entry","isIntersecting","rootMargin","observedElement","Dropdown","_isHiding","_fieldName","_hiddenField","_handleItemClick","_handleChoose","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","controlSelector","targetSelector","listOptions","isHiding","choice","hasAttribute","currentTarget","relatedTarget","keyCode","isPersistent","refocus","hasTransition","formName","formValue","fieldGroupOptions","fieldGroupOption","dropdownElements","dropdownElement","Symbol","toPrimitive","TypeError","iterator","configurable","l","r","E","L","I","M","P","all","fn","h","onElement","withCallback","avoidDuplicate","d","useCapture","u","g","C","k","msMatchesSelector","createDocumentFragment","animation","OAnimation","MozAnimation","WebkitAnimation","S","setInterval","clearInterval","w","O","rel","media","onload","T","A","isFinite","z","X","concat","Y","keyboard","toLocaleLowerCase","q","img","onclose","setZoomEvents","active","zoomedIn","dragging","initialX","initialY","xOffset","yOffset","dragStart","dragEnd","drag","zoomOut","zoomIn","widowWidth","maxWidth","naturalWidth","maxHeight","naturalHeight","clientX","clientY","isDragging","N","dragEl","toleranceX","toleranceY","instance","lastDirection","toleranceReached","dragContainer","doSlideChange","preventOutsideClick","doSlideClose","shouldChange","dragAutoSnap","shouldClose","lastChild","D","srcset","alt","title","description","_hasCustomWidth","_hasCustomHeight","getAllPlayers","plyr","css","videoProvider","js","Plyr","ready","resize","W","B","pop","cloneNode","H","allow","appendTo","j","descPosition","zoomable","draggable","sourceType","setSize","sanitizeValue","RegExp","DOMException","slideConfig","checkSize","videosWidth","V","beforeSlideLoad","player","afterSlideLoad","getSlidePlayerInstance","moreLength","smallDescription","slideShortDesc","moreText","descriptionEvents","dragToleranceX","dragToleranceY","innerText","slideHTML","slideExtraAttributes","parseConfig","F","R","acos","G","handlers","Z","U","start","move","end","cancel","preV","pinchStartLen","zoom","isDoubleTap","rotate","touchStart","multipointStart","multipointEnd","pinch","swipe","tap","doubleTap","longTap","singleTap","pressMove","twoFingerPressMove","touchMove","touchEnd","touchCancel","translateContainer","_cancelAllHandler","cancelAll","delta","tapTimeout","singleTapTimeout","longTapTimeout","swipeTimeout","x1","x2","y1","y2","preTapPosition","log","dispatch","_cancelLongTap","_cancelSingleTap","_preventTap","angle","sx2","deltaX","deltaY","sy2","_swipeDirection","del","$","OTransition","MozTransition","WebkitTransition","opacity","J","touchFollowAxis","scaleX","scaleY","elements","K","Q","createTouch","msMaxTouchPoints","ee","te","skin","theme","closeButton","startAt","autoplayVideos","autofocusVideos","beforeSlideChange","afterSlideChange","slideInserted","slideRemoved","onOpen","onClose","oneSlidePerOpen","touchNavigation","keyboardNavigation","closeOnOutsideClick","plugins","fullscreen","iosNative","youtube","noCookie","showinfo","iv_load_policy","vimeo","byline","portrait","transparent","openEffect","closeEffect","slideEffect","cssEfects","fade","in","out","slideBack","none","svg","lightboxHTML","ie","customOptions","effectsClasses","getAnimationClasses","videoPlayers","apiEvents","fullElementsList","getSelector","baseEvents","getElements","prevActiveSlideIndex","prevActiveSlide","getGalleryElements","getElementIndex","build","overlay","head","showSlide","prevButton","nextButton","lightboxOpen","trigger","loader","slidesContainer","slideAnimateOut","slideAnimateIn","slideNode","setContent","slideDescription","slideDescriptionContained","preloadSlide","updateNavigationClasses","goToSlide","getConfig","create","getActiveSlideIndex","slidePlayerPlay","slidePlayerPause","playing","pause","play","muted","container","gallery","built","charAt","modal","bodyHiddenChildElms","outClose","loopAtEnd","closing","clearAllEvents","Glightbox","GLightbox","glightboxElement","lightbox","Glightboxbutton","Stickymenu","sections","menuItems","ticking","startPointTop","getBoundingClientRect","top","section","sectionTop","menuItem","stickymenus","Seemore","_isOpen","_handleResize","createTeaser","seemoreElements","Phone","number","replaceAll","phoneButtons"],"mappings":"yBAAAA,OAAOC,WAAWA,SAASC,UAAUC,UAAUF,SAASC,UAAUC,QAAQ,SAASC,EAAEC,GAAGA,EAAEA,GAAGL,OAAO,IAAI,IAAIM,EAAE,EAAEA,EAAEC,KAAKC,OAAOF,IAAIF,EAAEK,KAAKJ,EAAEE,KAAKD,GAAGA,EAAEC,QCAtI,MAAMG,EACnBC,YAAYC,EAASC,GAA2B,IAAnBC,0DAC3BP,KAAKK,QAAUA,EACfL,KAAKM,OAASA,EACdN,KAAKO,UAAYA,EACjBP,KAAKQ,WAAY,EACjBR,KAAKS,SAAW,KAChBT,KAAKU,SAAU,EACfV,KAAKW,WAAY,EACjBX,KAAKY,cAAgB,KAErBZ,KAAKa,YAAcb,KAAKa,YAAYC,KAAKd,MACzCA,KAAKe,YAAcf,KAAKe,YAAYD,KAAKd,MACzCA,KAAKgB,aAAehB,KAAKgB,aAAaF,KAAKd,MAC3CA,KAAKiB,eAAiBjB,KAAKiB,eAAeH,KAAKd,MAC/CA,KAAKkB,oBAAsBlB,KAAKkB,oBAAoBJ,KAAKd,MACzDA,KAAKmB,mBAAqBnB,KAAKmB,mBAAmBL,KAAKd,MACvDA,KAAKoB,gBAAkBpB,KAAKoB,gBAAgBN,KAAKd,MAGnDoB,gBAAgBC,GACdrB,KAAKY,cAAgBS,EAAEC,KAEpBtB,KAAKM,OAAOiB,SAASF,EAAEf,SACpBN,KAAKK,QAAQkB,SAASF,EAAEf,SACxBN,KAAKW,YAETX,KAAKwB,OACLC,SAASC,oBAAoB,QAAS1B,KAAKoB,iBAC3CK,SAASC,oBAAoB,QAAS1B,KAAKoB,kBAI/CP,YAAYQ,GACVA,EAAEM,iBACF3B,KAAKM,OAAOsB,cAAc,IAAIC,YAAY,WAAY,CAAEC,OAAQ,CAAEC,QAAS/B,SAC3EA,KAAKgC,SAGPjB,YAAYM,GACI,MAAVA,EAAEY,KAAyB,UAAVZ,EAAEY,MACrBZ,EAAEM,iBACF3B,KAAKgC,UAIThB,aAAaK,GACPA,EAAES,OAAOC,QAAQ1B,UAAYL,KAAKK,UACpCL,KAAKS,SAAWY,EAAES,OAAOC,QAAQtB,SACjCT,KAAKK,QAAQ6B,aAAa,gBAAiBlC,KAAKS,UAChDT,KAAKW,WAAY,EACjBX,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,iBAAkB,CAAEC,OAAQ,CAAEC,QAAS/B,UAItFiB,eAAeI,GACTA,EAAES,OAAOC,QAAQ1B,UAAYL,KAAKK,UACpCL,KAAKW,WAAY,GAIrBO,sBACElB,KAAKM,OAAO4B,aAAa,cAAe,QACxClC,KAAKM,OAAO6B,UAAUC,OAAO,aAC7BpC,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAQ,CAAEC,QAAS/B,SAChFA,KAAKM,OAAOoB,oBAAoB,gBAAiB1B,KAAKkB,qBACtDlB,KAAKM,OAAOsB,cAAc,IAAIC,YAAY,SAAU,CAAEC,OAAQ,CAAEC,QAAS/B,SAG3EmB,qBACEnB,KAAKM,OAAOoB,oBAAoB,gBAAiB1B,KAAKmB,oBACtDnB,KAAKM,OAAOsB,cAAc,IAAIC,YAAY,SAAU,CAAEC,OAAQ,CAAEC,QAAS/B,SAG3EgC,SACMhC,KAAKS,SACPT,KAAKwB,OAELxB,KAAKqC,OAITA,OACKrC,KAAKU,UACNV,KAAKK,QAAQ6B,aAAa,gBAAiB,QAC3ClC,KAAKM,OAAOgC,iBAAiB,eAAgBtC,KAAKmB,oBAClDnB,KAAKM,OAAO4B,aAAa,cAAe,SACxClC,KAAKS,UAAW,EAEbT,KAAKQ,WACNR,KAAKM,OAAOiC,QAGdvC,KAAKM,OAAO6B,UAAUC,OAAO,aAC7BpC,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAQ,CAAEC,QAAS/B,SAE5EA,KAAKO,YACPkB,SAASa,iBAAiB,QAAStC,KAAKoB,iBACxCK,SAASa,iBAAiB,QAAStC,KAAKoB,mBAK9CI,OAAqB,IAAhBgB,0DACAxC,KAAKU,UACFV,KAAKO,YACPkB,SAASC,oBAAoB,QAAS1B,KAAKoB,iBAC3CK,SAASC,oBAAoB,QAAS1B,KAAKoB,kBAGzCoB,GACFxC,KAAKK,QAAQ6B,aAAa,gBAAiB,SAC3ClC,KAAKM,OAAO4B,aAAa,cAAe,QACxClC,KAAKS,UAAW,IAEhBT,KAAKM,OAAOgC,iBAAiB,gBAAiBtC,KAAKkB,qBACnDlB,KAAKM,OAAO6B,UAAUM,IAAI,aAC1BzC,KAAKS,UAAW,EAChBT,KAAKK,QAAQ6B,aAAa,gBAAiB,SAC3ClC,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,iBAAkB,CAAEC,OAAQ,CAAEC,QAAS/B,WAKxF0C,QAEE1C,KAAKK,QAAQ6B,aAAa,gBAAiBlC,KAAKM,OAAOqC,IACvD3C,KAAKK,QAAQ6B,aAAa,gBAAiB,SAC3ClC,KAAKM,OAAO4B,aAAa,cAAe,QACxClC,KAAKM,OAAO4B,aAAa,WAAY,MACrClC,KAAKS,UAAW,EAChBT,KAAKU,SAAU,EAEc,WAAzBV,KAAKK,QAAQuC,UACf5C,KAAKK,QAAQ6B,aAAa,OAAQ,UAClClC,KAAKK,QAAQ6B,aAAa,WAAY,GACtClC,KAAKK,QAAQiC,iBAAiB,QAAStC,KAAKe,cAG9Cf,KAAKK,QAAQiC,iBAAiB,QAAStC,KAAKa,aAC5Cb,KAAKM,OAAOgC,iBAAiB,SAAUtC,KAAKgB,cAC5ChB,KAAKM,OAAOgC,iBAAiB,WAAYtC,KAAKiB,gBAC9CjB,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,kBAAmB,CAAEC,OAAQ,CAAEC,QAAS/B,SAGrF6C,UACE7C,KAAKK,QAAQyC,gBAAgB,iBAC7B9C,KAAKK,QAAQyC,gBAAgB,iBAC7B9C,KAAKM,OAAOwC,gBAAgB,eAC5B9C,KAAKM,OAAOwC,gBAAgB,YAC5B9C,KAAKM,OAAO6B,UAAUC,OAAO,aAC7BpC,KAAKS,SAAW,KAChBT,KAAKU,SAAU,EAEc,WAAzBV,KAAKK,QAAQuC,UACf5C,KAAKK,QAAQyC,gBAAgB,QAC7B9C,KAAKK,QAAQyC,gBAAgB,YAC7B9C,KAAKK,QAAQqB,oBAAoB,QAAS1B,KAAKe,cAGjDf,KAAKK,QAAQqB,oBAAoB,QAAS1B,KAAKa,aAC/Cb,KAAKM,OAAOoB,oBAAoB,SAAU1B,KAAKgB,cAC/ChB,KAAKM,OAAOoB,oBAAoB,WAAY1B,KAAKiB,gBACjDjB,KAAKM,OAAOoB,oBAAoB,gBAAiB1B,KAAKkB,qBACtDlB,KAAKM,OAAOoB,oBAAoB,gBAAiB1B,KAAKmB,oBACtDnB,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,oBAAqB,CAAEC,OAAQ,CAAEC,QAAS/B,UClK1E,MAAM+C,EACnB3C,YAAYC,GACVL,KAAKK,QAAUA,EACfL,KAAKgD,SAAW,GAChBhD,KAAK+B,QAAU,KACf/B,KAAKiD,aAAc,EACnBjD,KAAKkD,IAAMlD,KAAKK,QAAQ8C,YACxBnD,KAAKoD,OAAS3B,SAAS4B,cAAc,aAErCrD,KAAKsD,mBAAqBtD,KAAKsD,mBAAmBxC,KAAKd,MACvDA,KAAKuD,kBAAoBvD,KAAKuD,kBAAkBzC,KAAKd,MACrDA,KAAKwD,kBAAoBxD,KAAKwD,kBAAkB1C,KAAKd,MAGvDsD,mBAAmBjC,GACjBrB,KAAKyD,iBAGPF,kBAAkBlC,GACbrB,KAAK+B,SAA8C,UAAnCV,EAAES,OAAOC,QAAQnB,eAClCZ,KAAK+B,QAAQQ,QAEXvC,KAAK+B,UAAYV,EAAES,OAAOC,QAAQ1B,UACpCL,KAAK+B,QAAU,MAEjB/B,KAAKyD,iBACLzD,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,sBAG7C2B,kBAAkBnC,GAChBrB,KAAKgD,SAASpD,SAASmC,IACjBA,EAAQzB,SAAWe,EAAES,OAAOC,QAAQzB,QAAUyB,EAAQtB,UACxDsB,EAAQP,UAGZxB,KAAK+B,QAAUV,EAAES,OAAOC,QAAQ1B,QAChCL,KAAKyD,iBACLzD,KAAKK,QAAQuB,cAAc,IAAIC,YAAY,sBAG7C4B,iBACE,IAAIC,GAAqB,EAEzB1D,KAAKgD,SAASpD,SAASmC,IACrBA,EAAQtB,WAAWiD,GAAqB,MAGvCA,GACD1D,KAAKiD,aAAc,EACnBjD,KAAKoD,OAAOjB,UAAUM,IAAI,kBAE1BzC,KAAKiD,aAAc,EACnBjD,KAAKoD,OAAOjB,UAAUC,OAAO,iBAIjCM,QACE1C,KAAKK,QAAQsD,iBAAiB,6BAA6B/D,SAASS,IAClE,MAAMC,EAASmB,SAASmC,eAAevD,EAAQwD,QAAQC,mBACjD/B,EAAU,IAAI5B,EAAQE,EAASC,GAAQ,GAC7CN,KAAKgD,SAASe,KAAKhC,GAEnB1B,EAAQiC,iBAAiB,eAAgBtC,KAAKuD,mBAC9ClD,EAAQiC,iBAAiB,eAAgBtC,KAAKwD,mBAC9CnD,EAAQiC,iBAAiB,iBAAkBtC,KAAKsD,oBAEhDvB,EAAQW,WAIZG,UACE7C,KAAKiD,aAAc,EACnBjD,KAAKoD,OAAOjB,UAAUC,OAAO,gBAE7BpC,KAAKgD,SAASpD,SAASmC,IACrBA,EAAQ1B,QAAQqB,oBAAoB,eAAgB1B,KAAKuD,mBACzDxB,EAAQ1B,QAAQqB,oBAAoB,eAAgB1B,KAAKwD,mBACzDzB,EAAQ1B,QAAQqB,oBAAoB,iBAAkB1B,KAAKsD,oBAC3DvB,EAAQc,aAGV7C,KAAKgD,SAAW,sKCnFgEgB,QAG3E;;;;;;;;;;;;;AAiBL,IAAIC,EAAW,WAQX,OAPAA,EAAWC,OAAOC,QAAU,SAAkBrE,GAC1C,IAAK,IAAIsE,EAAGrE,EAAI,EAAGsE,EAAIC,UAAUrE,OAAQF,EAAIsE,EAAGtE,IAE5C,IAAK,IAAIwE,KADTH,EAAIE,UAAUvE,GACOmE,OAAOvE,UAAU6E,eAAetE,KAAKkE,EAAGG,KAAIzE,EAAEyE,GAAKH,EAAEG,IAE9E,OAAOzE,GAEJmE,EAASQ,MAAMzE,KAAMsE,YAIhC,SAASI,IACL,IAAIC,EAAclD,SAASmD,cAAc,OAIzC,OAHAD,EAAYE,MAAMC,QACd,gEACJrD,SAASsD,gBAAgBC,aAAaL,EAAalD,SAASsD,gBAAgBE,YACrEN,EAEX,SAASO,EAAkB7E,GACvBoB,SAASsD,gBAAgBI,YAAY9E,GAGzC,SAAS+E,IACL,IAAIC,EAASX,IACTY,EAAe7F,OAAO8F,YACtBC,EAAKH,EAAOI,aACZC,EAASF,EAAKF,EAElB,OADAJ,EAAkBG,GACX,CACHG,GAAIA,EACJF,aAAcA,EACdI,OAAQA,EACRC,SAAqB,IAAXD,EACVE,MAAO,GAIf,SAASC,KACT,SAASC,IACL,IAAIC,EAAQX,IAEZ,OADAW,EAAMH,MAAQG,EAAML,OACbK,EAEX,SAASC,IACL,IAAID,EAAQX,IAEZ,OADAW,EAAMH,MAA6B,IAArBG,EAAMT,aACbS,EAGX,IAAIE,EAAuB/B,OAAOgC,OAAO,CACrCL,KAAMA,EACNC,kBAAmBA,EACnBE,eAAgBA,IAGpB,SAASG,EAASC,GACd,MAAuB,iBAATA,GAAqBA,EAAKnG,OAAS,EAErD,SAASoG,EAAWC,GAChB,MAAoB,mBAANA,EAElB,IAAIC,EAAiBrC,OAAOgC,OAAO,CAC/BM,WAAY,YACZC,YAAY,EACZC,OAAQZ,EACRa,OAAO,EACP7F,MAAM,EACN8F,eAAe,EACfC,SAAUhB,IAEd,SAASiB,EAAWC,GAEhB,GAAIZ,EAASY,GACT,OAAO9C,EAAS,GAAIsC,EAAgB,CAAEC,WAAYO,IAGtD,GAAuB,iBAAZA,EACP,OAAOR,EAEX,IAAIS,EAAe,CACfL,OAAyB,IAAlBI,EAAQJ,MACf7F,MAAuB,IAAjBiG,EAAQjG,KACd8F,eAAyC,IAA1BG,EAAQH,cACvBC,SAAUR,EAAWU,EAAQF,UAAYE,EAAQF,SAAWhB,GAG5DY,GAAoC,IAAvBM,EAAQN,WAYzB,OAXAO,EAAaN,OACTT,EAAQQ,EAAa,iBAAmB,qBAC5CO,EAAaR,WAAaL,EAASY,EAAQP,YACrCO,EAAQP,WACRC,EAKM,KACFF,EAAeC,WAClBQ,EAIX,IAAIC,GAAmB,EACnBC,EAAiB,GAErB,IACI,IAAIH,EAAU7C,OAAOiD,eAAe,GAAI,UAAW,CAC/CC,IAAK,WACDH,GAAmB,KAG3BxH,OAAO6C,iBAAiB,OAAQyE,EAASA,GACzCtH,OAAOiC,oBAAoB,OAAQqF,EAASA,GAEhD,MAAOM,GACHJ,GAAmB,EAEvB,SAASK,EAAYC,EAAWC,GAC5BN,EAAenD,KAAK,CAChBwD,UAAWA,EACXC,SAAUA,IAEd/H,OAAO6C,iBAAiBiF,EAAWC,IAEnCP,GAAmB,CAAEQ,SAAS,IAElC,SAASC,IACLR,EAAetH,SAAQ,SAAU+H,GAC7BlI,OAAOiC,oBAAoBiG,EAAOJ,UAAWI,EAAOH,aAExDN,EAAiB,GAGrB,SAASU,EAAapB,EAAYqB,GAC9BpG,SAASsD,gBAAgBF,MAAMiD,YAAY,KAAOtB,EAAYqB,EAAOjC,MAAQ,MAEjF,SAASmC,EAAahC,EAAOgB,GACzB,OAAO9C,EAAS,GAAI8B,EAAO,CAAEiC,OAAQN,EAAWO,UAAWlB,EAAQL,SAEvE,SAASwB,EAAQnB,GACb,IAAIY,EAASzD,OAAOgC,OAAOY,EAAWC,IAClCc,EAASE,EAAaJ,EAAOjB,SAAUiB,GAE3C,IAAKE,EAAOlC,WAAagC,EAAOhB,MAC5B,OAAOkB,EAKX,GAHAD,EAAaD,EAAOnB,WAAYqB,GAChCF,EAAOd,SAASgB,IAEXF,EAAO7G,KACR,OAAO+G,EACX,SAASM,IACL1I,OAAO2I,uBAAsB,WACzB,IAAIrC,EAAQ4B,EAAOjB,SACnBkB,EAAaD,EAAOnB,WAAYT,GAChC4B,EAAOd,SAASkB,EAAahC,EAAO4B,OAe5C,OAXAE,EAAOG,SAIPV,EAAY,oBAAqBa,GAI7BR,EAAOf,eACPU,EAAY,YAAaa,GAEtBN,EAGX,OAAOK,EAlMyEG,mBCIrE,MAAMC,EACnBlI,YAAYC,GACVL,KAAKK,QAAUA,EACfL,KAAKuI,mBAAqB,GAC1BvI,KAAKwI,OAASxI,KAAKK,QAAQoF,aAC3BzF,KAAKyI,YAAa,EAClBzI,KAAK0I,SAAW,EAChB1I,KAAK2I,aAAc,EACnB3I,KAAK4I,UAAYnH,SAASsD,gBAAgB8D,UAC1C7I,KAAK8I,eAAiBrH,SAASsD,gBAAgB8D,UAC/C7I,KAAK+I,WAAa,KAClB/I,KAAK8D,kBAAoB,KACzB9D,KAAKgJ,OAAS,KACdhJ,KAAKiJ,UAAY,OACjBjJ,KAAKkJ,UAAW,EAChBlJ,KAAKmJ,UAAW,EAChBnJ,KAAKoJ,qBAAsB,EAE3BpJ,KAAKqJ,qBAAuBrJ,KAAKqJ,qBAAqBvI,KAAKd,MAC3DA,KAAKsJ,qBAAuBtJ,KAAKsJ,qBAAqBxI,KAAKd,MAC3DA,KAAKuJ,uBAAyBvJ,KAAKuJ,uBAAuBzI,KAAKd,MAC/DA,KAAKwJ,aAAexJ,KAAKwJ,aAAa1I,KAAKd,MAC3CA,KAAKyJ,aAAezJ,KAAKyJ,aAAa3I,KAAKd,MAC3CA,KAAK0J,aAAe1J,KAAK0J,aAAa5I,KAAKd,MAG7CqJ,uBACErJ,KAAKK,QAAQ8B,UAAUC,OAAO,yBAC9BpC,KAAKoJ,qBAAsB,EAE3BpJ,KAAK+I,WAAW/F,SAASpD,SAASmC,IAChCA,EAAQP,MAAK,MAGfxB,KAAK8D,kBAAkBvB,QACvBvC,KAAK8D,kBAAoB,KACzB9D,KAAK2J,mBAGPL,qBAAqBjI,GACnBrB,KAAK8D,kBAAoBzC,EAAES,OAAOC,QAAQ1B,QAC1CL,KAAKK,QAAQ8B,UAAUM,IAAI,yBAC3BzC,KAAKoJ,qBAAsB,EAC3BpJ,KAAK2J,mBAGPJ,yBACEvJ,KAAK2J,mBAGPF,eACEzJ,KAAKK,QAAQqB,oBAAoB,gBAAiB1B,KAAKyJ,cACvDzJ,KAAKK,QAAQ8B,UAAUC,OAAO,aAC9BX,SAAS4B,cAAc,QAAQlB,UAAUC,OAAO,aAChDpC,KAAKK,QAAQ8B,UAAUC,OAAO,cAC9BpC,KAAKkJ,UAAW,EAGlBM,eACExJ,KAAK2I,aAAc,EAGrBe,eACE1J,KAAKyI,YAAa,EAGpBmB,YACa1B,IACXlI,KAAKwI,OAASxI,KAAKK,QAAQoF,aAC3B,IAAIoE,EAAiBpK,OAAOqK,WAAarI,SAASsI,KAAKC,YACvDvI,SAASsD,gBAAgBF,MAAMiD,YAAY,mBAAqB,GAAE+B,OAClEpI,SAASsD,gBAAgBF,MAAMiD,YAAY,OAAWrI,OAAO8F,YAAY,IAArB,MAGtDoE,mBACE,IAAIM,GAAiC,EAErCjK,KAAK+I,WAAW/F,SAASpD,SAASmC,IAC3BA,EAAQzB,OAAOiB,SAASQ,EAAQ1B,WACnC4J,GAAsD,IAArBlI,EAAQtB,UAA2BwJ,MAIxEjK,KAAK4J,YAGPM,eACMlK,KAAK0I,WAAa1I,KAAKK,QAAQ8C,cACjCnD,KAAKwI,OAASxI,KAAKK,QAAQoF,aAC3BzF,KAAKuI,mBAAmB3I,SAASmC,IAC/B,MAAMoI,EAAmF,SAArE1K,OAAO2K,iBAAiBpK,KAAKgJ,QAAQqB,iBAAiB,WAEtEtI,EAAQrB,UAAYyJ,IAClBA,EACFpI,EAAQW,SAERX,EAAQc,UACR7C,KAAKK,QAAQ8B,UAAUC,OAAO,yBAC9BpC,KAAKoJ,qBAAsB,OAKjCpJ,KAAK0I,SAAW1I,KAAKK,QAAQiK,WAC7BtK,KAAK4J,aAITW,eACE,IAAIC,EAMJ,GAJEA,EADCxK,KAAKK,QAAQ8B,UAAUZ,SAAS,sBACdvB,KAAKoJ,qBAELpJ,KAAKoJ,sBAAwBpJ,KAAK+I,WAAW9F,YAE/DuH,EAAiB,CAqBlB,GApBG/I,SAASsD,gBAAgB8D,UAAY7I,KAAK4I,WAC3C5I,KAAK8I,eAAiBrH,SAASsD,gBAAgB8D,UAC/C7I,KAAKiJ,UAAY,QAEjBjJ,KAAKiJ,UAAY,KAGfxH,SAASsD,gBAAgB8D,UAAY7I,KAAKwI,QAC5CxI,KAAKK,QAAQ8B,UAAUM,IAAI,aAC3BzC,KAAKmJ,UAAW,EAChBnJ,KAAK4J,cAEL5J,KAAKK,QAAQ8B,UAAUC,OAAO,aAC9BpC,KAAKK,QAAQ8B,UAAUC,OAAO,aAC9BX,SAAS4B,cAAc,QAAQlB,UAAUC,OAAO,aAChDpC,KAAKmJ,UAAW,EAChBnJ,KAAKkJ,UAAW,EAChBlJ,KAAK4J,aAGJ5J,KAAKmJ,SACN,GAAuB,OAAnBnJ,KAAKiJ,UAAoB,CACbjJ,KAAK8I,eAAiBrH,SAASsD,gBAAgB8D,UAClD,MACT7I,KAAKK,QAAQ8B,UAAUM,IAAI,aAC3BhB,SAAS4B,cAAc,QAAQlB,UAAUM,IAAI,aAC7CzC,KAAKkJ,UAAW,QAGflJ,KAAKkJ,WACNlJ,KAAKK,QAAQiC,iBAAiB,gBAAiBtC,KAAKyJ,cACpDzJ,KAAKK,QAAQ8B,UAAUM,IAAI,eAKjCzC,KAAK4I,UAAYnH,SAASsD,gBAAgB8D,WAK9CnG,QACE,MAAM+H,EAAMzK,KAAKK,QAAQgD,cAAc,eACnCoH,IACFzK,KAAK+I,WAAa,IAAIhG,EAAW0H,GACjCzK,KAAK+I,WAAW1I,QAAQiC,iBAAiB,oBAAqBtC,KAAKuJ,wBACnEvJ,KAAK+I,WAAWrG,SAGlB1C,KAAKgJ,OAAShJ,KAAKK,QAAQgD,cAAc,qBAGzCrD,KAAKwI,OAASxI,KAAKK,QAAQoF,aAC3BhE,SAASsD,gBAAgBF,MAAMiD,YAAY,kBAAoB,GAAE9H,KAAKwI,YACtE/I,OAAO6C,iBAAiB,UAAU,SAAUjB,GAC1C,IAAIqJ,EAAe1K,KAAKyB,SAAS4B,cAAc,aAAaoC,aAC5DhE,SAASsD,gBAAgBF,MAAMiD,YAAY,kBAAoB,GAAE4C,UAGnE1K,KAAKK,QAAQsD,iBAAiB,sCAAsC/D,SAASS,IAC3E,MAAMC,EAASmB,SAASmC,eAAevD,EAAQwD,QAAQ8G,eACjD5I,EAAU,IAAI5B,EAAQE,EAASC,GACrCN,KAAKuI,mBAAmBxE,KAAKhC,GAC7B1B,EAAQiC,iBAAiB,eAAgBtC,KAAKqJ,sBAC9ChJ,EAAQiC,iBAAiB,eAAgBtC,KAAKsJ,sBAGyB,SAArE7J,OAAO2K,iBAAiBpK,KAAKgJ,QAAQqB,iBAAiB,YAEtDtI,EAAQW,WAIZjD,OAAO6C,iBAAiB,SAAUtC,KAAK0J,cACvCjK,OAAO6C,iBAAiB,SAAUtC,KAAKwJ,cAEvC,MAAMoB,EAAO,KACP5K,KAAK2I,cACP3I,KAAKuK,eACLvK,KAAK2I,aAAc,GAEjB3I,KAAKyI,aACPzI,KAAKkK,eACLlK,KAAKyI,YAAa,GAGpBL,sBAAsBwC,IAGxBA,IAEA5K,KAAKK,QAAQ8B,UAAUM,IAAI,cAC3BzC,KAAK4J,YAGP/G,UACEpD,OAAOiC,oBAAoB,SAAU1B,KAAK0J,cAC1CjK,OAAOiC,oBAAoB,SAAU1B,KAAKwJ,cAEvCxJ,KAAKuI,qBACNvI,KAAKuI,mBAAmB3I,SAASmC,IAC/BA,EAAQ1B,QAAQqB,oBAAoB,eAAgB1B,KAAKqJ,sBACzDtH,EAAQ1B,QAAQqB,oBAAoB,eAAgB1B,KAAKsJ,sBACzDvH,EAAQc,aAEV7C,KAAKuI,mBAAqB,IAGxBvI,KAAK+I,aACP/I,KAAK+I,WAAW1I,QAAQqB,oBAAoB,oBAAqB1B,KAAKuJ,wBACtEvJ,KAAK+I,WAAWlG,UAChB7C,KAAK+I,WAAa,MAGpB/I,KAAKK,QAAQ8B,UAAUC,OAAO,2qBC7NlC,SAASyI,EAASC,EAAMC,EAAMC,GAC5B,IAAIC,EAASC,EAAMC,EAASC,EAAWvD,EAGvC,SAASwD,IACP,IAAIC,EAAOC,KAAKC,MAAQJ,EAEpBE,EAAOP,GAAQO,GAAQ,EACzBL,EAAUQ,WAAWJ,EAAON,EAAOO,IAEnCL,EAAU,KACLD,IACHnD,EAASiD,EAAKrG,MAAM0G,EAASD,GAC7BC,EAAUD,EAAO,OAXnB,MAAQH,IAAMA,EAAO,KAgBzB,IAAIW,EAAY,WACdP,EAAUnL,KACVkL,EAAO5G,UACP8G,EAAYG,KAAKC,MACjB,IAAIG,EAAUX,IAAcC,EAO5B,OANKA,IAASA,EAAUQ,WAAWJ,EAAON,IACtCY,IACF9D,EAASiD,EAAKrG,MAAM0G,EAASD,GAC7BC,EAAUD,EAAO,MAGZrD,GAoBT,OAjBA6D,EAAUE,MAAQ,WACZX,IACFY,aAAaZ,GACbA,EAAU,OAIdS,EAAUI,MAAQ,WACZb,IACFpD,EAASiD,EAAKrG,MAAM0G,EAASD,GAC7BC,EAAUD,EAAO,KAEjBW,aAAaZ,GACbA,EAAU,OAIPS,EC7DTjK,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMyJ,EAAgBtK,SAASmC,eAAe,UAC9C,GAAImI,EAAe,CACF,IAAIzD,EAAOyD,GACnBrJ,YD6DXmI,EAASA,SAAWA,EAEpB,IAAAmB,EAAiBnB,EEhEF,MAAMoB,EACJC,gBAAG,GAElB7L,GACAK,GACAyL,GAEAC,GAAa,GAEbhM,YAAaC,EAAS0G,EAAU,IAC9B/G,MAAKK,EAAWA,EAChBL,MAAKU,GAAW,EAChBV,MAAKmM,EAAY,IACZF,EAAUE,YACVpF,GAIH1G,cACF,OAAOL,MAAKK,EAGVK,cACF,OAAOV,MAAKU,EAGVyL,eACF,OAAOnM,MAAKmM,EAGdE,QAASC,GACP,IAAIjM,EAAU,KAEd,GAAIiM,aAAqBC,QACvBlM,EAAUiM,OACL,GAAyB,iBAAdA,EAAwB,CACxC,MAAME,EAAexM,MAAKK,EAASgD,cAAciJ,GACjDjM,EAAUmM,GAA8BnM,EAG1C,OAAOA,EAGToM,KAAMnL,EAAMoL,IACM1M,MAAKoM,EAAW9K,IAAS,IAE/B1B,SAAQ,SAAU+M,GAC1BA,EAASD,MAIbE,GAAItL,EAAMuL,GAOR,YANqC,IAA1B7M,MAAKoM,EAAW9K,KACzBtB,MAAKoM,EAAW9K,GAAQ,IAG1BtB,MAAKoM,EAAW9K,GAAMyC,KAAK8I,GAEpB7M,KAGT8M,IAAKxL,EAAMuL,GACT,IAAIE,EAAQ/M,MAAKoM,EAAW9K,GAAM0L,QAAQH,GAM1C,OAJIE,GAAS,GACX/M,MAAKoM,EAAW9K,GAAM2L,OAAOF,EAAO,GAG/B/M,KAGT0C,QACE1C,MAAKK,EAAS8B,UAAUM,IAAI,cAC5BzC,MAAKU,GAAW,EAChBV,KAAKyM,KAAK,QAASzM,MAGrB6C,UACE7C,MAAKK,EAAS8B,UAAUC,OAAO,cAC/BpC,MAAKU,GAAW,EAChBV,KAAKyM,KAAK,UAAWzM,+FClFV,MAAMkN,UAAoBjB,EAcvC7L,YAAaC,GASX,GARA8M,MAAM9M,EAAS,IACV6M,EAAYf,mEAFa,KAAIiB,EAAApN,KAAAqN,EAAA,CAAAC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAuN,EAAA,CAAAD,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAwN,EAAA,CAAAF,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAyN,EAAA,CAAAH,UAAA,EAAA1H,OAJxB,IAIwBwH,EAAApN,KAAA0N,EAAA,CAAAJ,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAA2N,EAAA,CAAAL,UAAA,EAAA1H,WAAA,IAMlCgI,EAAA5N,KAAAqN,EAAgBrN,KAAKqM,QAAQrM,KAAKmM,SAAS0B,UAC3CD,EAAA5N,KAAAuN,EAAevN,KAAKqM,QAAQrM,KAAKmM,SAAS7L,UAEtCwN,EAAC9N,KAADqN,GACF,MAAM,IAAIU,MAAO,0CAA0C/N,KAAKmM,SAAS0B,iCAG3E,IAAIC,EAAC9N,KAADuN,GACF,MAAM,IAAIQ,MAAO,yCAAyC/N,KAAKmM,SAAS7L,gCAG1E,IAAKwN,EAAcE,KAAAA,GAAAA,aAAa,MAC9B,MAAM,IAAID,MAAO,gEAAXD,EAA2E9N,KAAjFqN,IAGF,IAAKS,EAAaE,KAAAA,GAAAA,aAAa,MAC7B,MAAM,IAAID,MAAO,+DAAXD,EAA0E9N,KAAhFuN,IAGFK,EAAA5N,KAAA0N,EAA2B1N,KAAK0N,oBAAoB5M,KAAKd,OACzD4N,EAAoC/C,KAAAA,EAAAA,EAAAA,SAAS7K,KAAK2N,6BAA6B7M,KAAKd,MAAO,KAGzF6N,cACF,OAAAC,EAAO9N,KAAPqN,GAGE/M,aACF,OAAAwN,EAAO9N,KAAPuN,GAGE9M,eACF,MAAuD,SAAhDqN,EAAcE,KAAAA,GAAAA,aAAa,iBAGhCC,iBACF,MAAkD,SAA3C7D,iBAAiBpK,KAAK6N,SAASK,QAGpCC,cACF,OAAAL,EAAO9N,KAAPwN,GAGEY,eACF,OAAAN,EAAO9N,KAAPyN,GAGEY,kBACF,OAAO5O,OAAOqK,YAAcrI,SAASsD,gBAAgBiF,aAAevI,SAASsI,KAAKC,YAGpF2D,+BAGM3N,KAAKsO,YAActO,KAAKqO,cAC1BrO,KAAKuO,SAGLvO,KAAKsO,UAAYtO,KAAKqO,aAI1BX,oBAAqBrM,GACnBrB,KAAKwO,OAGPA,OACEV,EAAA9N,KAAAqN,GAAcnL,aAAa,gBAAiB,QAC5C4L,EAAahL,KAAAA,GAAAA,gBAAgB,UAEzB9C,KAAKmM,SAASsC,cAChBzO,KAAK0O,kBAGP1O,KAAKK,QAAQ8B,UAAUM,IAAI,aAC3BzC,KAAK6C,UACL+K,EAAA5N,KAAAyN,GAAiB,GACjBzN,KAAKM,OAAOiC,QACZvC,KAAK6N,QAAQzL,SAEbpC,KAAKyM,KAAK,OAAQzM,MAGpBuO,SAEOvO,KAAKoO,WACJpO,KAAKiO,aAAeH,EAAA9N,QACtBA,KAAK2O,UACK3O,KAAKiO,YAAcH,EAAA9N,SAC7BA,KAAK4O,WAKXC,gBACE7O,KAAKsO,UAAY,EACjB7O,OAAO6C,iBAAiB,WAAUtC,KAAlC2N,IAEK3N,KAAKoO,WACJpO,KAAKiO,aAAeH,EAAA9N,QACtBA,KAAK2O,UACK3O,KAAKiO,YAAcH,EAAA9N,SAC7BA,KAAK4O,WAIT5O,KAAKyM,KAAK,gBAAiBzM,MAG7B0O,yBACS1O,KAAKsO,UACZ7O,OAAOiC,oBAAoB,WAAU1B,KAArC2N,IAEA3N,KAAKyM,KAAK,kBAAmBzM,MAG/B2O,SACEb,EAAa5L,KAAAA,GAAAA,aAAa,kBAAmB4L,UAAcE,aAAa,OACxEF,EAAA9N,KAAAuN,GAAarL,aAAa,SAAU,IACpC4L,EAAA9N,KAAAqN,GAAcnL,aAAa,gBAAiB,SAC5C4L,EAAc5L,KAAAA,GAAAA,aAAa,gBAAiB4L,UAAaE,aAAa,OAEtEF,EAAA9N,KAAAqN,GAAc/K,iBAAiB,QAA/BwL,EAAwC9N,KAAxC0N,IAEAE,EAAA5N,KAAAwN,GAAgB,GAEhBxN,KAAKyM,KAAK,SAAUzM,MAGtB4O,UACEd,EAAA9N,KAAAqN,GAAc3L,oBAAoB,QAAlCoM,EAA2C9N,KAA3C0N,IAEAI,EAAchL,KAAAA,GAAAA,gBAAgB,iBAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,iBAC9BgL,EAAahL,KAAAA,GAAAA,gBAAgB,mBAC7BgL,EAAahL,KAAAA,GAAAA,gBAAgB,UAE7B8K,EAAA5N,KAAAwN,GAAgB,GAEhBxN,KAAKyM,KAAK,UAAWzM,MAGvB0C,QACEyK,MAAMzK,QAEF1C,KAAKmM,SAASsC,mBAAmCK,IAAnB9O,KAAKsO,UACrCtO,KAAK6O,gBAEL7O,KAAK2O,SAIT9L,UACM7C,KAAKmM,SAASsC,cAChBzO,KAAK0O,kBAGP1O,KAAK4O,UAELzB,MAAMtK,WAnLWqK,EAAAA,EACD,WAAA,CAChBuB,cAAc,EACdZ,QAAS,0BACTvN,OAAQ,2BCLZmB,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMyM,EAAsBtN,SAASkC,iBAAiB,mBACjDoL,EAAoB9O,QAGzB8O,EAAoBnP,SAASS,IACA,IAAI6M,EAAY7M,EAAS,CAClDoO,cAAc,IAEG/L,oHCJR,MAAMsM,UAAgB/C,EAoBnC7L,YAAaC,GASX,GARA8M,MAAM9M,EAAS,IACV2O,EAAQ7C,mEAFiB,KAAIiB,EAAApN,KAAAqN,EAAA,CAAAC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAiP,EAAA,CAAA3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAkP,EAAA,CAAA5B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAA0N,EAAA,CAAAJ,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAmP,EAAA,CAAA7B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAoP,EAAA,CAAA9B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAqP,EAAA,CAAA/B,UAAA,EAAA1H,WAAA,IAMlCgI,EAAA5N,KAAAqN,EAAgBrN,KAAKK,QAAQgD,cAAc,wBAC3CuK,EAAA5N,KAAAiP,EAAgBjP,KAAKK,QAAQgD,cAAc,yBAEtCrD,KAAKK,QAAQ2N,aAAa,MAC7B,MAAM,IAAID,MAAO,iEAAiE/N,KAAKK,SAGzF,IAAIyN,EAAC9N,KAADqN,GACF,MAAM,IAAIU,MAAO,2EAA2E/N,KAAKK,SAGnG,IAAIyN,EAAC9N,KAADiP,GACF,MAAM,IAAIlB,MAAO,2EAA2E/N,KAAKK,SAGnG,IAAKL,KAAKsP,kBACR1B,EAAA5N,KAAAkP,EAAclP,KAAKK,QAAQgD,cAAc,uBAErCyK,EAAC9N,KAADkP,IACF,MAAM,IAAInB,MAAO,uEAAuE/N,KAAKK,SAIjG,GAAIL,KAAKmM,SAASoD,iBAChB,IACEvP,KAAKwP,oBACL,MAAOnO,GACPrB,KAAKmM,SAASoD,kBAAmB,EACjCE,QAAQC,MAAM,iCAIlB9B,EAAA5N,KAAA0N,EAA2B1N,KAAK0N,oBAAoB5M,KAAKd,OACzD4N,EAAA5N,KAAAmP,EAAiCnP,KAAKmP,0BAA0BrO,KAAKd,OACrE4N,EAAA5N,KAAAoP,EAAyBpP,KAAKoP,kBAAkBtO,KAAKd,OACrD4N,EAAA5N,KAAAqP,EAAqBrP,KAAKqP,cAAcvO,KAAKd,OAG3C6N,cACF,OAAAC,EAAO9N,KAAPqN,GAGEsC,cACF,OAAA7B,EAAO9N,KAAPiP,GAGExO,eACF,IAAImP,EAQJ,OALEA,EADE5P,KAAKsP,gBACCtP,KAAKK,QAAQmO,KAEmC,SAAhDV,EAAcE,KAAAA,GAAAA,aAAa,iBAG9B4B,EAGLJ,0BACF,OAAOK,eAAeC,QAAQ9P,KAAKK,QAAQ2N,aAAa,OAGtDsB,sBACF,MAA8C,YAAvCtP,KAAKK,QAAQuC,QAAQmN,cAG1BP,wBAAqB5J,GACvBiK,eAAeG,QAAQhQ,KAAKK,QAAQ2N,aAAa,MAAOpI,GAG1D8H,oBAAqBrM,GACnBrB,KAAKgC,SAEDhC,KAAKiQ,mBAAqB5O,EAAEf,SAAWN,KAAKiQ,mBAC9CnC,EAAA9N,KAAAqN,GAAc9K,QAIlB4M,0BAA2B9N,GACzBrB,KAAKwO,OAGPY,kBAAmB/N,GACbrB,KAAKK,QAAQsC,KAAOuN,SAASC,KAAKC,UAAU,IAC9CpQ,KAAKwO,OAITa,cAAehO,GACb,MAAMuO,EAAQ5P,KAAKS,SAAW,OAAS,QAEnCT,KAAKmM,SAASoD,mBAChBvP,KAAKwP,oBAAsBI,GAG7B5P,KAAKyM,KAAKmD,EAAO5P,MAGnBqQ,yBACE,IAAIxC,EAAUpM,SAASmD,cAAc,UACrCiJ,EAAQvM,KAAO,SACIwM,EAAA9N,KAAAqN,GAAciD,oBAAoBC,QAAO,CAACC,EAAKC,KAChE5C,EAAQ3L,aAAauO,EAAM3C,EAAcE,KAAAA,GAAAA,aAAayC,MACrD,IACH5C,EAAQ6C,UAAY5C,EAAA9N,KAAAqN,GAAcqD,UAClC5C,EAAc6C,KAAAA,GAAAA,YAAY9C,GAC1BD,EAAA5N,KAAAqN,EAAgBQ,GAGlB+C,eACE,IAAI/C,EAAUpM,SAASmD,cAAc,QAClBkJ,EAAA9N,KAAAqN,GAAciD,oBAAoBC,QAAO,CAACC,EAAKC,KAChE5C,EAAQ3L,aAAauO,EAAM3C,EAAcE,KAAAA,GAAAA,aAAayC,MACrD,IACH5C,EAAQ/K,gBAAgB,QACxB+K,EAAQ6C,UAAY5C,EAAA9N,KAAAqN,GAAcqD,UAClC5C,EAAc6C,KAAAA,GAAAA,YAAY9C,GAC1BD,EAAA5N,KAAAqN,EAAgBQ,GAGlBgD,uBACE,MAAMZ,EAAoBxO,SAASmD,cAAc,UACjDqL,EAAkB3O,KAAO,SACzB2O,EAAkB9N,UAAUM,IAAI,qBAChCwN,EAAkB/N,aAAa,gBAAiB4L,EAAcE,KAAAA,GAAAA,aAAa,OAE3E,MAAM8C,EAAShD,EAAA9N,KAAAqN,GAAchK,cAAc,sBAE3C4M,EAAkBS,UAAa,GAAG1Q,KAAKmM,SAAS4E,KAAKC,eAAiBF,EAAOG,YAE7EnD,EAAcoD,KAAAA,GAAAA,YAAYjB,GAC1BjQ,KAAKiQ,kBAAoBA,EACzBjQ,KAAKiQ,kBAAkB3N,iBAAiB,UAAStC,KAAjD0N,IAGFyD,0BACEnR,KAAKiQ,kBAAkBvO,oBAAoB,UAAS1B,KAApD0N,IACA1N,KAAKiQ,kBAAkB7N,SAGzBJ,SACEhC,KAAKS,SAAWT,KAAKoR,QAAUpR,KAAKwO,OAGtCA,OACMxO,KAAKsP,gBACPtP,KAAKK,QAAQmO,MAAO,GAEpBV,EAAA9N,KAAAqN,GAAcnL,aAAa,gBAAiB,QAC5C4L,EAAchL,KAAAA,GAAAA,gBAAgB,UAC9BgL,EAAA9N,KAAAkP,GAAYwB,UAAY1Q,KAAKmM,SAAS4E,KAAKC,aAGzChR,KAAKmM,SAASoD,mBAChBvP,KAAKwP,oBAAsB,QAG7BxP,KAAKyM,KAAK,OAAQzM,MAGpBoR,QACMpR,KAAKsP,gBACPtP,KAAKK,QAAQmO,MAAO,GAEpBV,EAAA9N,KAAAqN,GAAcnL,aAAa,gBAAiB,SAC5C4L,EAAA9N,KAAAiP,GAAc/M,aAAa,SAAU,eACrC4L,EAAA9N,KAAAkP,GAAYwB,UAAY1Q,KAAKmM,SAAS4E,KAAKM,aAGzCrR,KAAKmM,SAASoD,mBAChBvP,KAAKwP,oBAAsB,SAG7BxP,KAAKyM,KAAK,QAASzM,MAGrB0C,QACEjD,OAAO6C,iBAAiB,eAActC,KAAtCoP,IAEKpP,KAAKsP,gBAQRtP,KAAKK,QAAQiC,iBAAiB,WAAUtC,KAAxCqP,KAPArP,KAAKqQ,yBACLvC,EAAc5L,KAAAA,GAAAA,aAAa,gBAAiB4L,UAAcE,aAAa,OACvEF,EAAc5L,KAAAA,GAAAA,aAAa,kBAAmB4L,UAAcE,aAAa,OAEzEF,EAAA9N,KAAAqN,GAAc/K,iBAAiB,QAA/BwL,EAAwC9N,KAAxC0N,IACAI,EAAA9N,KAAAiP,GAAc3M,iBAAiB,cAA/BwL,EAA8C9N,KAA9CmP,KAKEnP,KAAKmM,SAASmF,sBAChBtR,KAAK6Q,uBAGH7Q,KAAKK,QAAQsC,KAAOuN,SAASC,KAAKC,UAAU,GAC9CpQ,KAAKwO,OACIxO,KAAKmM,SAASoD,kBAAoBvP,KAAKwP,oBACnB,SAA7BxP,KAAKwP,oBAAiCxP,KAAKwO,OAASxO,KAAKoR,QAEzDpR,KAAKmM,SAASqC,KAAOxO,KAAKwO,OAASxO,KAAKoR,QAG1CjE,MAAMzK,QAGRG,UACEpD,OAAOiC,oBAAoB,eAAc1B,KAAzCoP,IAEKpP,KAAKsP,gBAYRtP,KAAKK,QAAQiC,iBAAiB,WAAUtC,KAAxCqP,KAXAvB,EAAA9N,KAAAiP,GAAcvN,oBAAoB,cAAlCoM,EAAiD9N,KAAjDmP,IACArB,EAAA9N,KAAAqN,GAAc3L,oBAAoB,QAAlCoM,EAA2C9N,KAA3C0N,IAEAI,EAAchL,KAAAA,GAAAA,gBAAgB,UAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,mBAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,YAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,QAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,iBAC9BgL,EAAchL,KAAAA,GAAAA,gBAAgB,iBAC9B9C,KAAK4Q,gBAKH5Q,KAAKmM,SAASoD,kBAChBM,eAAe0B,WAAWvR,KAAKK,QAAQ2N,aAAa,OAGlDhO,KAAKiQ,mBACPjQ,KAAKmR,0BAGPhE,MAAMtK,WC5PV,SAAS2O,EAASC,GAChB,OAAe,OAARA,GAA+B,iBAARA,GAAoB,gBAAiBA,GAAOA,EAAIrR,cAAgB8D,OAEhG,SAASwN,EAAOpR,EAAQqR,QACP,IAAXrR,IACFA,EAAS,SAEC,IAARqR,IACFA,EAAM,IAERzN,OAAO0N,KAAKD,GAAK/R,SAAQqC,SACI,IAAhB3B,EAAO2B,GAAsB3B,EAAO2B,GAAO0P,EAAI1P,GAAcuP,EAASG,EAAI1P,KAASuP,EAASlR,EAAO2B,KAASiC,OAAO0N,KAAKD,EAAI1P,IAAMhC,OAAS,GACpJyR,EAAOpR,EAAO2B,GAAM0P,EAAI1P,ODjBT+M,EAAAA,EACD,WAAA,CAChBR,MAAM,EACNe,kBAAkB,EAClB+B,sBAAsB,EACtBP,KAAM,CACJC,YAAa,qBACbK,YAAa,yBEZnB5P,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMuP,EAAkBpQ,SAASkC,iBAAiB,eAC7CkO,EAAgB5R,QAGrB4R,EAAgBjS,SAASS,IACA,IAAI2O,EAAQ3O,EAAS,IAG7BqC,cDiBnB,MAAMoP,EAAc,CAClB/H,KAAM,GACNzH,qBACAZ,wBACAqQ,cAAe,CACbC,SACAC,SAAU,IAEZ5O,cAAa,IACJ,KAETM,iBAAgB,IACP,GAETC,eAAc,IACL,KAETsO,YAAW,KACF,CACLC,gBAGJvN,cAAa,KACJ,CACLwN,SAAU,GACVC,WAAY,GACZxN,MAAO,GACP3C,iBACAoQ,qBAAoB,IACX,KAIbC,gBAAe,KACN,IAETC,WAAU,IACD,KAETtC,SAAU,CACRC,KAAM,GACNsC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGZ,SAASC,IACP,MAAMC,EAA0B,oBAAbxR,SAA2BA,SAAW,GAEzD,OADAiQ,EAAOuB,EAAKnB,GACLmB,EAET,MAAMC,EAAY,CAChBzR,SAAUqQ,EACVqB,UAAW,CACTC,UAAW,IAEblD,SAAU,CACRC,KAAM,GACNsC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEVM,QAAS,CACPC,iBACAC,cACAC,OACAC,UAEF5R,YAAa,WACX,OAAO7B,MAETsC,qBACAZ,wBACA0I,iBAAgB,KACP,CACLC,iBAAgB,IACP,KAIbqJ,UACAnI,SACAoI,OAAQ,GACRlI,eACAI,iBACA+H,WAAU,KACD,IAETxL,sBAAsBZ,GACM,oBAAfiE,YACTjE,IACO,MAEFiE,WAAWjE,EAAU,GAE9BqM,qBAAqBlR,GACO,oBAAf8I,YAGXI,aAAalJ,KAGjB,SAASmR,IACP,MAAMC,EAAwB,oBAAXtU,OAAyBA,OAAS,GAErD,OADAiS,EAAOqC,EAAKb,GACLa,EErHT,SAASC,EAASxM,EAAUyM,GAI1B,YAHc,IAAVA,IACFA,EAAQ,GAEHxI,WAAWjE,EAAUyM,GAE9B,SAASzI,IACP,OAAOD,KAAKC,MAgBd,SAAS0I,EAAaC,EAAIC,QACX,IAATA,IACFA,EAAO,KAET,MAAM3U,EAASqU,IACf,IAAIO,EACAC,EACAC,EACJ,MAAMC,EAtBR,SAA0BL,GACxB,MAAM1U,EAASqU,IACf,IAAIjP,EAUJ,OATIpF,EAAO2K,mBACTvF,EAAQpF,EAAO2K,iBAAiB+J,EAAI,QAEjCtP,GAASsP,EAAGM,eACf5P,EAAQsP,EAAGM,cAER5P,IACHA,EAAQsP,EAAGtP,OAENA,EAUUuF,CAAiB+J,GA6BlC,OA5BI1U,EAAOiV,iBACTJ,EAAeE,EAASG,WAAaH,EAASI,gBAC1CN,EAAaO,MAAM,KAAK5U,OAAS,IACnCqU,EAAeA,EAAaO,MAAM,MAAMC,KAAIC,GAAKA,EAAEC,QAAQ,IAAK,OAAMC,KAAK,OAI7EV,EAAkB,IAAI9U,EAAOiV,gBAAiC,SAAjBJ,EAA0B,GAAKA,KAE5EC,EAAkBC,EAASU,cAAgBV,EAASW,YAAcX,EAASY,aAAeZ,EAASa,aAAeb,EAASG,WAAaH,EAASnK,iBAAiB,aAAa2K,QAAQ,aAAc,sBACrMX,EAASE,EAAgBe,WAAWT,MAAM,MAE/B,MAATT,IAE0BE,EAAxB7U,EAAOiV,gBAAgCH,EAAgBgB,IAEhC,KAAlBlB,EAAOpU,OAA8BuV,WAAWnB,EAAO,KAE5CmB,WAAWnB,EAAO,KAE3B,MAATD,IAE0BE,EAAxB7U,EAAOiV,gBAAgCH,EAAgBkB,IAEhC,KAAlBpB,EAAOpU,OAA8BuV,WAAWnB,EAAO,KAE5CmB,WAAWnB,EAAO,KAEjCC,GAAgB,EAEzB,SAAS9C,EAAS3R,GAChB,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEO,aAAkE,WAAnD8D,OAAOvE,UAAU2V,SAASpV,KAAKL,GAAG6V,MAAM,GAAI,GAE7G,SAASC,EAAOC,GAEd,MAAsB,oBAAXnW,aAAwD,IAAvBA,OAAOoW,YAC1CD,aAAgBC,YAElBD,IAA2B,IAAlBA,EAAKE,UAAoC,KAAlBF,EAAKE,UAE9C,SAASpE,IACP,MAAMqE,EAAK7R,OAAOI,UAAUrE,QAAU,OAAI6O,EAAYxK,UAAU,IAC1D0R,EAAW,CAAC,YAAa,cAAe,aAC9C,IAAK,IAAIjW,EAAI,EAAGA,EAAIuE,UAAUrE,OAAQF,GAAK,EAAG,CAC5C,MAAMkW,EAAalW,EAAI,GAAKuE,UAAUrE,QAAUF,OAAI+O,EAAYxK,UAAUvE,GAC1E,GAAIkW,MAAAA,IAAoDN,EAAOM,GAAa,CAC1E,MAAMC,EAAYhS,OAAO0N,KAAK1N,OAAO+R,IAAaE,QAAOlU,GAAO+T,EAAShJ,QAAQ/K,GAAO,IACxF,IAAK,IAAImU,EAAY,EAAGC,EAAMH,EAAUjW,OAAQmW,EAAYC,EAAKD,GAAa,EAAG,CAC/E,MAAME,EAAUJ,EAAUE,GACpBG,EAAOrS,OAAOsS,yBAAyBP,EAAYK,QAC5CxH,IAATyH,GAAsBA,EAAKE,aACzBjF,EAASuE,EAAGO,KAAa9E,EAASyE,EAAWK,IAC3CL,EAAWK,GAASI,WACtBX,EAAGO,GAAWL,EAAWK,GAEzB5E,EAAOqE,EAAGO,GAAUL,EAAWK,KAEvB9E,EAASuE,EAAGO,KAAa9E,EAASyE,EAAWK,KACvDP,EAAGO,GAAW,GACVL,EAAWK,GAASI,WACtBX,EAAGO,GAAWL,EAAWK,GAEzB5E,EAAOqE,EAAGO,GAAUL,EAAWK,KAGjCP,EAAGO,GAAWL,EAAWK,MAMnC,OAAOP,EAET,SAASY,EAAexC,EAAIyC,EAASC,GACnC1C,EAAGtP,MAAMiD,YAAY8O,EAASC,GAEhC,SAASC,EAAqBC,GAC5B,IAAIC,OACFA,EADEC,eAEFA,EAFEC,KAGFA,GACEH,EACJ,MAAMtX,EAASqU,IACTqD,GAAiBH,EAAOI,UAC9B,IACIC,EADAC,EAAY,KAEhB,MAAMC,EAAWP,EAAOQ,OAAOC,MAC/BT,EAAOU,UAAU7S,MAAM8S,eAAiB,OACxClY,EAAOoU,qBAAqBmD,EAAOY,gBACnC,MAAMC,EAAMZ,EAAiBE,EAAgB,OAAS,OAChDW,EAAe,CAACC,EAASzX,IACd,SAARuX,GAAkBE,GAAWzX,GAAkB,SAARuX,GAAkBE,GAAWzX,EAEvE0X,EAAU,KACdX,GAAO,IAAI9L,MAAO0M,UACA,OAAdX,IACFA,EAAYD,GAEd,MAAMa,EAAWC,KAAKC,IAAID,KAAKE,KAAKhB,EAAOC,GAAaC,EAAU,GAAI,GAChEe,EAAe,GAAMH,KAAKI,IAAIL,EAAWC,KAAKK,IAAM,EAC1D,IAAIC,EAAkBtB,EAAgBmB,GAAgBrB,EAAiBE,GAOvE,GANIW,EAAaW,EAAiBxB,KAChCwB,EAAkBxB,GAEpBD,EAAOU,UAAUgB,SAAS,CACxBxB,CAACA,GAAOuB,IAENX,EAAaW,EAAiBxB,GAUhC,OATAD,EAAOU,UAAU7S,MAAM8T,SAAW,SAClC3B,EAAOU,UAAU7S,MAAM8S,eAAiB,GACxClM,YAAW,KACTuL,EAAOU,UAAU7S,MAAM8T,SAAW,GAClC3B,EAAOU,UAAUgB,SAAS,CACxBxB,CAACA,GAAOuB,YAGZhZ,EAAOoU,qBAAqBmD,EAAOY,gBAGrCZ,EAAOY,eAAiBnY,EAAO2I,sBAAsB4P,IAEvDA,IAKF,SAASY,EAAgBvY,EAASwY,GAIhC,YAHiB,IAAbA,IACFA,EAAW,IAEN,IAAIxY,EAAQ+R,UAAU+D,QAAOhC,GAAMA,EAAG2E,QAAQD,KAEvD,SAASE,EAAY3S,GACnB,IAEE,YADAqJ,QAAQuJ,KAAK5S,GAEb,MAAOiB,KAIX,SAASzC,EAAcqU,EAAKC,QACV,IAAZA,IACFA,EAAU,IAEZ,MAAM/E,EAAK1S,SAASmD,cAAcqU,GAElC,OADA9E,EAAGhS,UAAUM,OAAQ0W,MAAMC,QAAQF,GAAWA,EAvMhD,SAAyBA,GAIvB,YAHgB,IAAZA,IACFA,EAAU,IAELA,EAAQG,OAAOxE,MAAM,KAAKsB,QAAOmD,KAAOA,EAAED,SAmMOE,CAAgBL,IACjE/E,EAsCT,SAASqF,EAAarF,EAAIsF,GAExB,OADe3F,IACD1J,iBAAiB+J,EAAI,MAAM9J,iBAAiBoP,GAE5D,SAASC,EAAavF,GACpB,IACIpU,EADA4Z,EAAQxF,EAEZ,GAAIwF,EAAO,CAGT,IAFA5Z,EAAI,EAEuC,QAAnC4Z,EAAQA,EAAMC,kBACG,IAAnBD,EAAM7D,WAAgB/V,GAAK,GAEjC,OAAOA,GA2BX,SAAS8Z,EAAiB1F,EAAI2F,EAAMC,GAClC,MAAMta,EAASqU,IACf,OAAIiG,EACK5F,EAAY,UAAT2F,EAAmB,cAAgB,gBAAkBtE,WAAW/V,EAAO2K,iBAAiB+J,EAAI,MAAM9J,iBAA0B,UAATyP,EAAmB,eAAiB,eAAiBtE,WAAW/V,EAAO2K,iBAAiB+J,EAAI,MAAM9J,iBAA0B,UAATyP,EAAmB,cAAgB,kBAE9Q3F,EAAGhR,YAEZ,SAAS6W,EAAkB7F,GACzB,OAAQgF,MAAMC,QAAQjF,GAAMA,EAAK,CAACA,IAAKgC,QAAO9U,KAAOA,IC7RvD,IAAI4Y,EAgBAC,EAqDAC,EA5DJ,SAASC,IAIP,OAHKH,IACHA,EAVJ,WACE,MAAMxa,EAASqU,IACTrS,EAAWuR,IACjB,MAAO,CACLqH,aAAc5Y,EAASsD,iBAAmBtD,EAASsD,gBAAgBF,OAAS,mBAAoBpD,EAASsD,gBAAgBF,MACzHyV,SAAU,iBAAkB7a,GAAUA,EAAO8a,eAAiB9Y,aAAoBhC,EAAO8a,gBAK/EC,IAELP,EA8CT,SAASQ,EAAUC,GAOjB,YANkB,IAAdA,IACFA,EAAY,IAETR,IACHA,EA/CJ,SAAoBS,GAClB,IAAIvH,UACFA,QACY,IAAVuH,EAAmB,GAAKA,EAC5B,MAAMV,EAAUG,IACV3a,EAASqU,IACT8G,EAAWnb,EAAO0T,UAAUyH,SAC5BC,EAAKzH,GAAa3T,EAAO0T,UAAUC,UACnC0H,EAAS,CACbC,KAAK,EACLC,SAAS,GAELC,EAAcxb,EAAOkU,OAAOuH,MAC5BC,EAAe1b,EAAOkU,OAAOnL,OAC7BwS,EAAUH,EAAGO,MAAM,+BACzB,IAAIC,EAAOR,EAAGO,MAAM,wBACpB,MAAME,EAAOT,EAAGO,MAAM,2BAChBG,GAAUF,GAAQR,EAAGO,MAAM,8BAC3BI,EAAuB,UAAbZ,EAChB,IAAIa,EAAqB,aAAbb,EAqBZ,OAjBKS,GAAQI,GAASxB,EAAQK,OADV,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACxGtN,QAAS,GAAEiO,KAAeE,MAAmB,IAC9FE,EAAOR,EAAGO,MAAM,uBACXC,IAAMA,EAAO,CAAC,EAAG,EAAG,WACzBI,GAAQ,GAINT,IAAYQ,IACdV,EAAOY,GAAK,UACZZ,EAAOE,SAAU,IAEfK,GAAQE,GAAUD,KACpBR,EAAOY,GAAK,MACZZ,EAAOC,KAAM,GAIRD,EAOUa,CAAWjB,IAErBR,EA6BT,SAAS0B,KAIP,OAHKzB,IACHA,EA3BJ,WACE,MAAM1a,EAASqU,IACTgH,EAASL,IACf,IAAIoB,GAAqB,EACzB,SAASC,IACP,MAAMjB,EAAKpb,EAAO0T,UAAUC,UAAUrD,cACtC,OAAO8K,EAAG7N,QAAQ,WAAa,GAAK6N,EAAG7N,QAAQ,UAAY,GAAK6N,EAAG7N,QAAQ,WAAa,EAE1F,GAAI8O,IAAY,CACd,MAAMjB,EAAKkB,OAAOtc,EAAO0T,UAAUC,WACnC,GAAIyH,EAAGmB,SAAS,YAAa,CAC3B,MAAOC,EAAOC,GAASrB,EAAGhG,MAAM,YAAY,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAKC,KAAIqH,GAAOC,OAAOD,KAC1FN,EAAqBI,EAAQ,IAAgB,KAAVA,GAAgBC,EAAQ,GAG/D,MAAMG,EAAY,+CAA+CC,KAAK7c,EAAO0T,UAAUC,WACjFmJ,EAAkBT,IAExB,MAAO,CACLA,SAAUD,GAAsBU,EAChCV,mBAAAA,EACAW,UAJgBD,GAAmBF,GAAavB,EAAOC,IAKvDsB,UAAAA,GAKUI,IAELtC,EAkJT,IAAIuC,GAAgB,CAClB9P,GAAG+P,EAAQ9P,EAAS+P,GAClB,MAAMC,EAAO7c,KACb,IAAK6c,EAAKC,iBAAmBD,EAAKE,UAAW,OAAOF,EACpD,GAAuB,mBAAZhQ,EAAwB,OAAOgQ,EAC1C,MAAMnW,EAASkW,EAAW,UAAY,OAKtC,OAJAD,EAAO9H,MAAM,KAAKjV,SAAQod,IACnBH,EAAKC,gBAAgBE,KAAQH,EAAKC,gBAAgBE,GAAS,IAChEH,EAAKC,gBAAgBE,GAAOtW,GAAQmG,MAE/BgQ,GAETI,KAAKN,EAAQ9P,EAAS+P,GACpB,MAAMC,EAAO7c,KACb,IAAK6c,EAAKC,iBAAmBD,EAAKE,UAAW,OAAOF,EACpD,GAAuB,mBAAZhQ,EAAwB,OAAOgQ,EAC1C,SAASK,IACPL,EAAK/P,IAAI6P,EAAQO,GACbA,EAAYC,uBACPD,EAAYC,eAErB,IAAK,IAAIC,EAAO9Y,UAAUrE,OAAQiL,EAAO,IAAIiO,MAAMiE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EnS,EAAKmS,GAAQ/Y,UAAU+Y,GAEzBxQ,EAAQpI,MAAMoY,EAAM3R,GAGtB,OADAgS,EAAYC,eAAiBtQ,EACtBgQ,EAAKjQ,GAAG+P,EAAQO,EAAaN,IAEtCU,MAAMzQ,EAAS+P,GACb,MAAMC,EAAO7c,KACb,IAAK6c,EAAKC,iBAAmBD,EAAKE,UAAW,OAAOF,EACpD,GAAuB,mBAAZhQ,EAAwB,OAAOgQ,EAC1C,MAAMnW,EAASkW,EAAW,UAAY,OAItC,OAHIC,EAAKU,mBAAmBvQ,QAAQH,GAAW,GAC7CgQ,EAAKU,mBAAmB7W,GAAQmG,GAE3BgQ,GAETW,OAAO3Q,GACL,MAAMgQ,EAAO7c,KACb,IAAK6c,EAAKC,iBAAmBD,EAAKE,UAAW,OAAOF,EACpD,IAAKA,EAAKU,mBAAoB,OAAOV,EACrC,MAAM9P,EAAQ8P,EAAKU,mBAAmBvQ,QAAQH,GAI9C,OAHIE,GAAS,GACX8P,EAAKU,mBAAmBtQ,OAAOF,EAAO,GAEjC8P,GAET/P,IAAI6P,EAAQ9P,GACV,MAAMgQ,EAAO7c,KACb,OAAK6c,EAAKC,iBAAmBD,EAAKE,UAAkBF,EAC/CA,EAAKC,iBACVH,EAAO9H,MAAM,KAAKjV,SAAQod,SACD,IAAZnQ,EACTgQ,EAAKC,gBAAgBE,GAAS,GACrBH,EAAKC,gBAAgBE,IAC9BH,EAAKC,gBAAgBE,GAAOpd,SAAQ,CAAC6d,EAAc1Q,MAC7C0Q,IAAiB5Q,GAAW4Q,EAAaN,gBAAkBM,EAAaN,iBAAmBtQ,IAC7FgQ,EAAKC,gBAAgBE,GAAO/P,OAAOF,EAAO,SAK3C8P,GAZ2BA,GAcpCa,OACE,MAAMb,EAAO7c,KACb,IAAK6c,EAAKC,iBAAmBD,EAAKE,UAAW,OAAOF,EACpD,IAAKA,EAAKC,gBAAiB,OAAOD,EAClC,IAAIF,EACAjQ,EACAvB,EACJ,IAAK,IAAIwS,EAAQrZ,UAAUrE,OAAQiL,EAAO,IAAIiO,MAAMwE,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1S,EAAK0S,GAAStZ,UAAUsZ,GAEH,iBAAZ1S,EAAK,IAAmBiO,MAAMC,QAAQlO,EAAK,KACpDyR,EAASzR,EAAK,GACdwB,EAAOxB,EAAKwK,MAAM,EAAGxK,EAAKjL,QAC1BkL,EAAU0R,IAEVF,EAASzR,EAAK,GAAGyR,OACjBjQ,EAAOxB,EAAK,GAAGwB,KACfvB,EAAUD,EAAK,GAAGC,SAAW0R,GAE/BnQ,EAAKmR,QAAQ1S,GAcb,OAboBgO,MAAMC,QAAQuD,GAAUA,EAASA,EAAO9H,MAAM,MACtDjV,SAAQod,IACdH,EAAKU,oBAAsBV,EAAKU,mBAAmBtd,QACrD4c,EAAKU,mBAAmB3d,SAAQ6d,IAC9BA,EAAahZ,MAAM0G,EAAS,CAAC6R,KAAUtQ,OAGvCmQ,EAAKC,iBAAmBD,EAAKC,gBAAgBE,IAC/CH,EAAKC,gBAAgBE,GAAOpd,SAAQ6d,IAClCA,EAAahZ,MAAM0G,EAASuB,SAI3BmQ,IA8WX,MAAMiB,GAAuB,CAACC,EAASC,EAAWC,KAC5CD,IAAcD,EAAQ5b,UAAUZ,SAAS0c,GAC3CF,EAAQ5b,UAAUM,IAAIwb,IACZD,GAAaD,EAAQ5b,UAAUZ,SAAS0c,IAClDF,EAAQ5b,UAAUC,OAAO6b,IAgH7B,MAAMC,GAAqB,CAACH,EAASC,EAAWC,KAC1CD,IAAcD,EAAQ5b,UAAUZ,SAAS0c,GAC3CF,EAAQ5b,UAAUM,IAAIwb,IACZD,GAAaD,EAAQ5b,UAAUZ,SAAS0c,IAClDF,EAAQ5b,UAAUC,OAAO6b,IA4D7B,MAAME,GAAuB,CAACnH,EAAQoH,KACpC,IAAKpH,GAAUA,EAAO+F,YAAc/F,EAAOQ,OAAQ,OACnD,MACMuG,EAAUK,EAAQC,QADIrH,EAAOsH,UAAa,eAAiB,IAAGtH,EAAOQ,OAAO+G,cAElF,GAAIR,EAAS,CACX,IAAIS,EAAST,EAAQ1a,cAAe,IAAG2T,EAAOQ,OAAOiH,uBAChDD,GAAUxH,EAAOsH,YAChBP,EAAQW,WACVF,EAAST,EAAQW,WAAWrb,cAAe,IAAG2T,EAAOQ,OAAOiH,sBAG5DrW,uBAAsB,KAChB2V,EAAQW,aACVF,EAAST,EAAQW,WAAWrb,cAAe,IAAG2T,EAAOQ,OAAOiH,sBACxDD,GAAQA,EAAOpc,cAKvBoc,GAAQA,EAAOpc,WAGjBuc,GAAS,CAAC3H,EAAQjK,KACtB,IAAKiK,EAAO4H,OAAO7R,GAAQ,OAC3B,MAAMqR,EAAUpH,EAAO4H,OAAO7R,GAAO1J,cAAc,oBAC/C+a,GAASA,EAAQtb,gBAAgB,YAEjC+b,GAAU7H,IACd,IAAKA,GAAUA,EAAO+F,YAAc/F,EAAOQ,OAAQ,OACnD,IAAIsH,EAAS9H,EAAOQ,OAAOuH,oBAC3B,MAAM1I,EAAMW,EAAO4H,OAAO3e,OAC1B,IAAKoW,IAAQyI,GAAUA,EAAS,EAAG,OACnCA,EAAS3G,KAAKE,IAAIyG,EAAQzI,GAC1B,MAAM2I,EAAgD,SAAhChI,EAAOQ,OAAOwH,cAA2BhI,EAAOiI,uBAAyB9G,KAAK+G,KAAKlI,EAAOQ,OAAOwH,eACjHG,EAAcnI,EAAOmI,YAC3B,GAAInI,EAAOQ,OAAO4H,MAAQpI,EAAOQ,OAAO4H,KAAKC,KAAO,EAAG,CACrD,MAAMC,EAAeH,EACfI,EAAiB,CAACD,EAAeR,GASvC,OARAS,EAAexb,QAAQoV,MAAMqG,KAAK,CAChCvf,OAAQ6e,IACPhK,KAAI,CAAC2K,EAAG1f,IACFuf,EAAeN,EAAgBjf,UAExCiX,EAAO4H,OAAOhf,SAAQ,CAACme,EAAShe,KAC1Bwf,EAAevD,SAAS+B,EAAQ2B,SAASf,GAAO3H,EAAQjX,MAIhE,MAAM4f,EAAuBR,EAAcH,EAAgB,EAC3D,GAAIhI,EAAOQ,OAAOoI,QAAU5I,EAAOQ,OAAO5M,KACxC,IAAK,IAAI7K,EAAIof,EAAcL,EAAQ/e,GAAK4f,EAAuBb,EAAQ/e,GAAK,EAAG,CAC7E,MAAM8f,GAAa9f,EAAIsW,EAAMA,GAAOA,GAChCwJ,EAAYV,GAAeU,EAAYF,IAAsBhB,GAAO3H,EAAQ6I,QAGlF,IAAK,IAAI9f,EAAIoY,KAAKC,IAAI+G,EAAcL,EAAQ,GAAI/e,GAAKoY,KAAKE,IAAIsH,EAAuBb,EAAQzI,EAAM,GAAItW,GAAK,EACtGA,IAAMof,IAAgBpf,EAAI4f,GAAwB5f,EAAIof,IACxDR,GAAO3H,EAAQjX,IA4JvB,IAAIwO,GAAS,CACXuR,WApvBF,WACE,MAAM9I,EAAShX,KACf,IAAIkb,EACA1S,EACJ,MAAM2L,EAAK6C,EAAO7C,GAEhB+G,OADiC,IAAxBlE,EAAOQ,OAAO0D,OAAiD,OAAxBlE,EAAOQ,OAAO0D,MACtDlE,EAAOQ,OAAO0D,MAEd/G,EAAGnK,YAGXxB,OADkC,IAAzBwO,EAAOQ,OAAOhP,QAAmD,OAAzBwO,EAAOQ,OAAOhP,OACtDwO,EAAOQ,OAAOhP,OAEd2L,EAAG4L,aAEA,IAAV7E,GAAelE,EAAOgJ,gBAA6B,IAAXxX,GAAgBwO,EAAOiJ,eAKnE/E,EAAQA,EAAQgF,SAAS1G,EAAarF,EAAI,iBAAmB,EAAG,IAAM+L,SAAS1G,EAAarF,EAAI,kBAAoB,EAAG,IACvH3L,EAASA,EAAS0X,SAAS1G,EAAarF,EAAI,gBAAkB,EAAG,IAAM+L,SAAS1G,EAAarF,EAAI,mBAAqB,EAAG,IACrHiI,OAAO+D,MAAMjF,KAAQA,EAAQ,GAC7BkB,OAAO+D,MAAM3X,KAASA,EAAS,GACnCtE,OAAOC,OAAO6S,EAAQ,CACpBkE,MAAAA,EACA1S,OAAAA,EACAsR,KAAM9C,EAAOgJ,eAAiB9E,EAAQ1S,MA0tBxC4X,aAttBF,WACE,MAAMpJ,EAAShX,KACf,SAASqgB,EAA0BzK,EAAM0K,GACvC,OAAO9K,WAAWI,EAAKvL,iBAAiB2M,EAAOuJ,kBAAkBD,KAAW,GAE9E,MAAM9I,EAASR,EAAOQ,QAChBE,UACJA,EADI8I,SAEJA,EACA1G,KAAM2G,EACNC,aAAcC,EAJVC,SAKJA,GACE5J,EACE6J,EAAY7J,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QAC7C4S,EAAuBF,EAAY7J,EAAO8J,QAAQlC,OAAO3e,OAAS+W,EAAO4H,OAAO3e,OAChF2e,EAAShG,EAAgB4H,EAAW,IAAGxJ,EAAOQ,OAAO+G,4BACrDyC,EAAeH,EAAY7J,EAAO8J,QAAQlC,OAAO3e,OAAS2e,EAAO3e,OACvE,IAAIghB,EAAW,GACf,MAAMC,EAAa,GACbC,EAAkB,GACxB,IAAIC,EAAe5J,EAAO6J,mBACE,mBAAjBD,IACTA,EAAe5J,EAAO6J,mBAAmBnhB,KAAK8W,IAEhD,IAAIsK,EAAc9J,EAAO+J,kBACE,mBAAhBD,IACTA,EAAc9J,EAAO+J,kBAAkBrhB,KAAK8W,IAE9C,MAAMwK,EAAyBxK,EAAOiK,SAAShhB,OACzCwhB,EAA2BzK,EAAOkK,WAAWjhB,OACnD,IAAIyhB,EAAelK,EAAOkK,aACtBC,GAAiBP,EACjBQ,EAAgB,EAChB7U,EAAQ,EACZ,QAA0B,IAAf0T,EACT,OAE0B,iBAAjBiB,GAA6BA,EAAa1U,QAAQ,MAAQ,EACnE0U,EAAelM,WAAWkM,EAAa1M,QAAQ,IAAK,KAAO,IAAMyL,EAChC,iBAAjBiB,IAChBA,EAAelM,WAAWkM,IAE5B1K,EAAO6K,aAAeH,EAGtB9C,EAAOhf,SAAQme,IACT4C,EACF5C,EAAQlZ,MAAMid,WAAa,GAE3B/D,EAAQlZ,MAAMkd,YAAc,GAE9BhE,EAAQlZ,MAAMmd,aAAe,GAC7BjE,EAAQlZ,MAAMod,UAAY,MAIxBzK,EAAO0K,gBAAkB1K,EAAO2K,UAClCxL,EAAee,EAAW,kCAAmC,IAC7Df,EAAee,EAAW,iCAAkC,KAE9D,MAAM0K,EAAc5K,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,GAAKrI,EAAOoI,KAQlE,IAAIiD,EAPAD,EACFpL,EAAOoI,KAAKkD,WAAW1D,GACd5H,EAAOoI,MAChBpI,EAAOoI,KAAKmD,cAKd,MAAMC,EAAgD,SAAzBhL,EAAOwH,eAA4BxH,EAAOiL,aAAeve,OAAO0N,KAAK4F,EAAOiL,aAAatM,QAAOlU,QACnE,IAA1CuV,EAAOiL,YAAYxgB,GAAK+c,gBACrC/e,OAAS,EACZ,IAAK,IAAIF,EAAI,EAAGA,EAAIihB,EAAcjhB,GAAK,EAAG,CAExC,IAAI2iB,EAKJ,GANAL,EAAY,EAERzD,EAAO7e,KAAI2iB,EAAQ9D,EAAO7e,IAC1BqiB,GACFpL,EAAOoI,KAAKuD,YAAY5iB,EAAG2iB,EAAO9D,IAEhCA,EAAO7e,IAAyC,SAAnCyZ,EAAakJ,EAAO,WAArC,CAEA,GAA6B,SAAzBlL,EAAOwH,cAA0B,CAC/BwD,IACF5D,EAAO7e,GAAG8E,MAAMmS,EAAOuJ,kBAAkB,UAAa,IAExD,MAAMqC,EAAcxY,iBAAiBsY,GAC/BG,EAAmBH,EAAM7d,MAAM8P,UAC/BmO,EAAyBJ,EAAM7d,MAAM+P,gBAO3C,GANIiO,IACFH,EAAM7d,MAAM8P,UAAY,QAEtBmO,IACFJ,EAAM7d,MAAM+P,gBAAkB,QAE5B4C,EAAOuL,aACTV,EAAYrL,EAAOgJ,eAAiBnG,EAAiB6I,EAAO,SAAS,GAAQ7I,EAAiB6I,EAAO,UAAU,OAC1G,CAEL,MAAMxH,EAAQmF,EAA0BuC,EAAa,SAC/CI,EAAc3C,EAA0BuC,EAAa,gBACrDK,EAAe5C,EAA0BuC,EAAa,iBACtDd,EAAazB,EAA0BuC,EAAa,eACpDb,EAAc1B,EAA0BuC,EAAa,gBACrDM,EAAYN,EAAYvY,iBAAiB,cAC/C,GAAI6Y,GAA2B,eAAdA,EACfb,EAAYnH,EAAQ4G,EAAaC,MAC5B,CACL,MAAM/X,YACJA,EADI7G,YAEJA,GACEuf,EACJL,EAAYnH,EAAQ8H,EAAcC,EAAenB,EAAaC,GAAe5e,EAAc6G,IAG3F6Y,IACFH,EAAM7d,MAAM8P,UAAYkO,GAEtBC,IACFJ,EAAM7d,MAAM+P,gBAAkBkO,GAE5BtL,EAAOuL,eAAcV,EAAYlK,KAAKgL,MAAMd,SAEhDA,GAAa5B,GAAcjJ,EAAOwH,cAAgB,GAAK0C,GAAgBlK,EAAOwH,cAC1ExH,EAAOuL,eAAcV,EAAYlK,KAAKgL,MAAMd,IAC5CzD,EAAO7e,KACT6e,EAAO7e,GAAG8E,MAAMmS,EAAOuJ,kBAAkB,UAAa,GAAE8B,OAGxDzD,EAAO7e,KACT6e,EAAO7e,GAAGqjB,gBAAkBf,GAE9BlB,EAAgBpd,KAAKse,GACjB7K,EAAO0K,gBACTP,EAAgBA,EAAgBU,EAAY,EAAIT,EAAgB,EAAIF,EAC9C,IAAlBE,GAA6B,IAAN7hB,IAAS4hB,EAAgBA,EAAgBlB,EAAa,EAAIiB,GAC3E,IAAN3hB,IAAS4hB,EAAgBA,EAAgBlB,EAAa,EAAIiB,GAC1DvJ,KAAKkL,IAAI1B,GAAiB,OAAUA,EAAgB,GACpDnK,EAAOuL,eAAcpB,EAAgBxJ,KAAKgL,MAAMxB,IAChD5U,EAAQyK,EAAO8L,gBAAmB,GAAGrC,EAASld,KAAK4d,GACvDT,EAAWnd,KAAK4d,KAEZnK,EAAOuL,eAAcpB,EAAgBxJ,KAAKgL,MAAMxB,KAC/C5U,EAAQoL,KAAKE,IAAIrB,EAAOQ,OAAO+L,mBAAoBxW,IAAUiK,EAAOQ,OAAO8L,gBAAmB,GAAGrC,EAASld,KAAK4d,GACpHT,EAAWnd,KAAK4d,GAChBA,EAAgBA,EAAgBU,EAAYX,GAE9C1K,EAAO6K,aAAeQ,EAAYX,EAClCE,EAAgBS,EAChBtV,GAAS,GAcX,GAZAiK,EAAO6K,YAAc1J,KAAKC,IAAIpB,EAAO6K,YAAapB,GAAca,EAC5DX,GAAOC,IAA+B,UAAlBpJ,EAAOgM,QAAwC,cAAlBhM,EAAOgM,UAC1D9L,EAAU7S,MAAMqW,MAAS,GAAElE,EAAO6K,YAAcH,OAE9ClK,EAAOiM,iBACT/L,EAAU7S,MAAMmS,EAAOuJ,kBAAkB,UAAa,GAAEvJ,EAAO6K,YAAcH,OAE3EU,GACFpL,EAAOoI,KAAKsE,kBAAkBrB,EAAWpB,IAItCzJ,EAAO0K,eAAgB,CAC1B,MAAMyB,EAAgB,GACtB,IAAK,IAAI5jB,EAAI,EAAGA,EAAIkhB,EAAShhB,OAAQF,GAAK,EAAG,CAC3C,IAAI6jB,EAAiB3C,EAASlhB,GAC1ByX,EAAOuL,eAAca,EAAiBzL,KAAKgL,MAAMS,IACjD3C,EAASlhB,IAAMiX,EAAO6K,YAAcpB,GACtCkD,EAAc5f,KAAK6f,GAGvB3C,EAAW0C,EACPxL,KAAKgL,MAAMnM,EAAO6K,YAAcpB,GAActI,KAAKgL,MAAMlC,EAASA,EAAShhB,OAAS,IAAM,GAC5FghB,EAASld,KAAKiT,EAAO6K,YAAcpB,GAGvC,GAAII,GAAarJ,EAAO5M,KAAM,CAC5B,MAAMkP,EAAOqH,EAAgB,GAAKO,EAClC,GAAIlK,EAAO8L,eAAiB,EAAG,CAC7B,MAAMO,EAAS1L,KAAK+G,MAAMlI,EAAO8J,QAAQgD,aAAe9M,EAAO8J,QAAQiD,aAAevM,EAAO8L,gBACvFU,EAAYlK,EAAOtC,EAAO8L,eAChC,IAAK,IAAIvjB,EAAI,EAAGA,EAAI8jB,EAAQ9jB,GAAK,EAC/BkhB,EAASld,KAAKkd,EAASA,EAAShhB,OAAS,GAAK+jB,GAGlD,IAAK,IAAIjkB,EAAI,EAAGA,EAAIiX,EAAO8J,QAAQgD,aAAe9M,EAAO8J,QAAQiD,YAAahkB,GAAK,EACnD,IAA1ByX,EAAO8L,gBACTrC,EAASld,KAAKkd,EAASA,EAAShhB,OAAS,GAAK6Z,GAEhDoH,EAAWnd,KAAKmd,EAAWA,EAAWjhB,OAAS,GAAK6Z,GACpD9C,EAAO6K,aAAe/H,EAI1B,GADwB,IAApBmH,EAAShhB,SAAcghB,EAAW,CAAC,IAClB,IAAjBS,EAAoB,CACtB,MAAMzf,EAAM+U,EAAOgJ,gBAAkBW,EAAM,aAAe3J,EAAOuJ,kBAAkB,eACnF3B,EAAOzI,QAAO,CAACsJ,EAAGwE,MACXzM,EAAO2K,UAAW3K,EAAO5M,OAC1BqZ,IAAerF,EAAO3e,OAAS,IAIlCL,SAAQme,IACTA,EAAQlZ,MAAM5C,GAAQ,GAAEyf,SAG5B,GAAIlK,EAAO0K,gBAAkB1K,EAAO0M,qBAAsB,CACxD,IAAIC,EAAgB,EACpBhD,EAAgBvhB,SAAQwkB,IACtBD,GAAiBC,GAAkB1C,GAAgB,MAErDyC,GAAiBzC,EACjB,MAAM2C,EAAUF,EAAgB1D,EAChCQ,EAAWA,EAASnM,KAAIwP,GAClBA,GAAQ,GAAWlD,EACnBkD,EAAOD,EAAgBA,EAAU/C,EAC9BgD,IAGX,GAAI9M,EAAO+M,yBAA0B,CACnC,IAAIJ,EAAgB,EACpBhD,EAAgBvhB,SAAQwkB,IACtBD,GAAiBC,GAAkB1C,GAAgB,MAErDyC,GAAiBzC,EACjB,MAAM8C,GAAchN,EAAO6J,oBAAsB,IAAM7J,EAAO+J,mBAAqB,GACnF,GAAI4C,EAAgBK,EAAa/D,EAAY,CAC3C,MAAMgE,GAAmBhE,EAAa0D,EAAgBK,GAAc,EACpEvD,EAASrhB,SAAQ,CAAC0kB,EAAMI,KACtBzD,EAASyD,GAAaJ,EAAOG,KAE/BvD,EAAWthB,SAAQ,CAAC0kB,EAAMI,KACxBxD,EAAWwD,GAAaJ,EAAOG,MAUrC,GANAvgB,OAAOC,OAAO6S,EAAQ,CACpB4H,OAAAA,EACAqC,SAAAA,EACAC,WAAAA,EACAC,gBAAAA,IAEE3J,EAAO0K,gBAAkB1K,EAAO2K,UAAY3K,EAAO0M,qBAAsB,CAC3EvN,EAAee,EAAW,mCAAuCuJ,EAAS,GAAZ,MAC9DtK,EAAee,EAAW,iCAAqCV,EAAO8C,KAAO,EAAIqH,EAAgBA,EAAgBlhB,OAAS,GAAK,EAAlE,MAC7D,MAAM0kB,GAAiB3N,EAAOiK,SAAS,GACjC2D,GAAmB5N,EAAOkK,WAAW,GAC3ClK,EAAOiK,SAAWjK,EAAOiK,SAASnM,KAAI+P,GAAKA,EAAIF,IAC/C3N,EAAOkK,WAAalK,EAAOkK,WAAWpM,KAAI+P,GAAKA,EAAID,IAgBrD,GAdI5D,IAAiBD,GACnB/J,EAAO0G,KAAK,sBAEVuD,EAAShhB,SAAWuhB,IAClBxK,EAAOQ,OAAOsN,eAAe9N,EAAO+N,gBACxC/N,EAAO0G,KAAK,yBAEVwD,EAAWjhB,SAAWwhB,GACxBzK,EAAO0G,KAAK,0BAEVlG,EAAOwN,qBACThO,EAAOiO,qBAETjO,EAAO0G,KAAK,mBACPmD,GAAcrJ,EAAO2K,SAA8B,UAAlB3K,EAAOgM,QAAwC,SAAlBhM,EAAOgM,QAAoB,CAC5F,MAAM0B,EAAuB,GAAE1N,EAAO2N,wCAChCC,EAA6BpO,EAAO7C,GAAGhS,UAAUZ,SAAS2jB,GAC5DlE,GAAgBxJ,EAAO6N,wBACpBD,GAA4BpO,EAAO7C,GAAGhS,UAAUM,IAAIyiB,GAChDE,GACTpO,EAAO7C,GAAGhS,UAAUC,OAAO8iB,KAyc/BI,iBApcF,SAA0B7N,GACxB,MAAMT,EAAShX,KACTulB,EAAe,GACf1E,EAAY7J,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAC1D,IACIpO,EADAylB,EAAY,EAEK,iBAAV/N,EACTT,EAAOyO,cAAchO,IACF,IAAVA,GACTT,EAAOyO,cAAczO,EAAOQ,OAAOC,OAErC,MAAMiO,EAAkB3Y,GAClB8T,EACK7J,EAAO4H,OAAO5H,EAAO2O,oBAAoB5Y,IAE3CiK,EAAO4H,OAAO7R,GAGvB,GAAoC,SAAhCiK,EAAOQ,OAAOwH,eAA4BhI,EAAOQ,OAAOwH,cAAgB,EAC1E,GAAIhI,EAAOQ,OAAO0K,gBACflL,EAAO4O,eAAiB,IAAIhmB,SAAQ8iB,IACnC6C,EAAaxhB,KAAK2e,WAGpB,IAAK3iB,EAAI,EAAGA,EAAIoY,KAAK+G,KAAKlI,EAAOQ,OAAOwH,eAAgBjf,GAAK,EAAG,CAC9D,MAAMgN,EAAQiK,EAAOmI,YAAcpf,EACnC,GAAIgN,EAAQiK,EAAO4H,OAAO3e,SAAW4gB,EAAW,MAChD0E,EAAaxhB,KAAK2hB,EAAgB3Y,SAItCwY,EAAaxhB,KAAK2hB,EAAgB1O,EAAOmI,cAI3C,IAAKpf,EAAI,EAAGA,EAAIwlB,EAAatlB,OAAQF,GAAK,EACxC,QAA+B,IAApBwlB,EAAaxlB,GAAoB,CAC1C,MAAMyI,EAAS+c,EAAaxlB,GAAG0F,aAC/B+f,EAAYhd,EAASgd,EAAYhd,EAASgd,GAK1CA,GAA2B,IAAdA,KAAiBxO,EAAOU,UAAU7S,MAAM2D,OAAU,GAAEgd,QA0ZrEP,mBAvZF,WACE,MAAMjO,EAAShX,KACT4e,EAAS5H,EAAO4H,OAEhBiH,EAAc7O,EAAOsH,UAAYtH,EAAOgJ,eAAiBhJ,EAAOU,UAAUoO,WAAa9O,EAAOU,UAAUqO,UAAY,EAC1H,IAAK,IAAIhmB,EAAI,EAAGA,EAAI6e,EAAO3e,OAAQF,GAAK,EACtC6e,EAAO7e,GAAGimB,mBAAqBhP,EAAOgJ,eAAiBpB,EAAO7e,GAAG+lB,WAAalH,EAAO7e,GAAGgmB,WAAaF,EAAc7O,EAAOiP,yBAkZ5HC,qBAvYF,SAA8B9O,QACV,IAAdA,IACFA,EAAYpX,MAAQA,KAAKoX,WAAa,GAExC,MAAMJ,EAAShX,KACTwX,EAASR,EAAOQ,QAChBoH,OACJA,EACA8B,aAAcC,EAFVM,SAGJA,GACEjK,EACJ,GAAsB,IAAlB4H,EAAO3e,OAAc,YACkB,IAAhC2e,EAAO,GAAGoH,mBAAmChP,EAAOiO,qBAC/D,IAAIkB,GAAgB/O,EAChBuJ,IAAKwF,EAAe/O,GACxBJ,EAAOoP,qBAAuB,GAC9BpP,EAAO4O,cAAgB,GACvB,IAAIlE,EAAelK,EAAOkK,aACE,iBAAjBA,GAA6BA,EAAa1U,QAAQ,MAAQ,EACnE0U,EAAelM,WAAWkM,EAAa1M,QAAQ,IAAK,KAAO,IAAMgC,EAAO8C,KACvC,iBAAjB4H,IAChBA,EAAelM,WAAWkM,IAE5B,IAAK,IAAI3hB,EAAI,EAAGA,EAAI6e,EAAO3e,OAAQF,GAAK,EAAG,CACzC,MAAM2iB,EAAQ9D,EAAO7e,GACrB,IAAIsmB,EAAc3D,EAAMsD,kBACpBxO,EAAO2K,SAAW3K,EAAO0K,iBAC3BmE,GAAezH,EAAO,GAAGoH,mBAE3B,MAAMM,GAAiBH,GAAgB3O,EAAO0K,eAAiBlL,EAAOuP,eAAiB,GAAKF,IAAgB3D,EAAMU,gBAAkB1B,GAC9H8E,GAAyBL,EAAelF,EAAS,IAAMzJ,EAAO0K,eAAiBlL,EAAOuP,eAAiB,GAAKF,IAAgB3D,EAAMU,gBAAkB1B,GACpJ+E,IAAgBN,EAAeE,GAC/BK,EAAaD,EAAczP,EAAOmK,gBAAgBphB,GAClD4mB,EAAiBF,GAAe,GAAKA,GAAezP,EAAO8C,KAAO9C,EAAOmK,gBAAgBphB,GACzF6mB,EAAYH,GAAe,GAAKA,EAAczP,EAAO8C,KAAO,GAAK4M,EAAa,GAAKA,GAAc1P,EAAO8C,MAAQ2M,GAAe,GAAKC,GAAc1P,EAAO8C,KAC3J8M,IACF5P,EAAO4O,cAAc7hB,KAAK2e,GAC1B1L,EAAOoP,qBAAqBriB,KAAKhE,IAEnC+d,GAAqB4E,EAAOkE,EAAWpP,EAAOqP,mBAC9C/I,GAAqB4E,EAAOiE,EAAgBnP,EAAOsP,wBACnDpE,EAAMxK,SAAWyI,GAAO2F,EAAgBA,EACxC5D,EAAMqE,iBAAmBpG,GAAO6F,EAAwBA,IA8V1DQ,eA1VF,SAAwB5P,GACtB,MAAMJ,EAAShX,KACf,QAAyB,IAAdoX,EAA2B,CACpC,MAAM6P,EAAajQ,EAAO0J,cAAgB,EAAI,EAE9CtJ,EAAYJ,GAAUA,EAAOI,WAAaJ,EAAOI,UAAY6P,GAAc,EAE7E,MAAMzP,EAASR,EAAOQ,OAChB0P,EAAiBlQ,EAAOmQ,eAAiBnQ,EAAOuP,eACtD,IAAIrO,SACFA,EADEkP,YAEFA,EAFEC,MAGFA,EAHEC,aAIFA,GACEtQ,EACJ,MAAMuQ,EAAeH,EACfI,EAASH,EACf,GAAuB,IAAnBH,EACFhP,EAAW,EACXkP,GAAc,EACdC,GAAQ,MACH,CACLnP,GAAYd,EAAYJ,EAAOuP,gBAAkBW,EACjD,MAAMO,EAAqBtP,KAAKkL,IAAIjM,EAAYJ,EAAOuP,gBAAkB,EACnEmB,EAAevP,KAAKkL,IAAIjM,EAAYJ,EAAOmQ,gBAAkB,EACnEC,EAAcK,GAAsBvP,GAAY,EAChDmP,EAAQK,GAAgBxP,GAAY,EAChCuP,IAAoBvP,EAAW,GAC/BwP,IAAcxP,EAAW,GAE/B,GAAIV,EAAO5M,KAAM,CACf,MAAM+c,EAAkB3Q,EAAO2O,oBAAoB,GAC7CiC,EAAiB5Q,EAAO2O,oBAAoB3O,EAAO4H,OAAO3e,OAAS,GACnE4nB,EAAsB7Q,EAAOkK,WAAWyG,GACxCG,EAAqB9Q,EAAOkK,WAAW0G,GACvCG,EAAe/Q,EAAOkK,WAAWlK,EAAOkK,WAAWjhB,OAAS,GAC5D+nB,EAAe7P,KAAKkL,IAAIjM,GAE5BkQ,EADEU,GAAgBH,GACFG,EAAeH,GAAuBE,GAEtCC,EAAeD,EAAeD,GAAsBC,EAElET,EAAe,IAAGA,GAAgB,GAExCpjB,OAAOC,OAAO6S,EAAQ,CACpBkB,SAAAA,EACAoP,aAAAA,EACAF,YAAAA,EACAC,MAAAA,KAEE7P,EAAOwN,qBAAuBxN,EAAO0K,gBAAkB1K,EAAOyQ,aAAYjR,EAAOkP,qBAAqB9O,GACtGgQ,IAAgBG,GAClBvQ,EAAO0G,KAAK,yBAEV2J,IAAUG,GACZxQ,EAAO0G,KAAK,oBAEV6J,IAAiBH,GAAeI,IAAWH,IAC7CrQ,EAAO0G,KAAK,YAEd1G,EAAO0G,KAAK,WAAYxF,IA+RxBgQ,oBArRF,WACE,MAAMlR,EAAShX,MACT4e,OACJA,EADIpH,OAEJA,EAFIgJ,SAGJA,EAHIrB,YAIJA,GACEnI,EACE6J,EAAY7J,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QAC7CiU,EAAcpL,EAAOoI,MAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,EAC/D8I,EAAmBtP,GAChBD,EAAgB4H,EAAW,IAAGhJ,EAAO+G,aAAa1F,kBAAyBA,KAAY,GAEhG,IAAIuP,EACAC,EACAC,EACJ,GAAIzH,EACF,GAAIrJ,EAAO5M,KAAM,CACf,IAAIqZ,EAAa9E,EAAcnI,EAAO8J,QAAQgD,aAC1CG,EAAa,IAAGA,EAAajN,EAAO8J,QAAQlC,OAAO3e,OAASgkB,GAC5DA,GAAcjN,EAAO8J,QAAQlC,OAAO3e,SAAQgkB,GAAcjN,EAAO8J,QAAQlC,OAAO3e,QACpFmoB,EAAcD,EAAkB,6BAA4BlE,YAE5DmE,EAAcD,EAAkB,6BAA4BhJ,YAG1DiD,GACFgG,EAAcxJ,EAAOzI,QAAO4H,GAAWA,EAAQ2B,SAAWP,IAAa,GACvEmJ,EAAY1J,EAAOzI,QAAO4H,GAAWA,EAAQ2B,SAAWP,EAAc,IAAG,GACzEkJ,EAAYzJ,EAAOzI,QAAO4H,GAAWA,EAAQ2B,SAAWP,EAAc,IAAG,IAEzEiJ,EAAcxJ,EAAOO,GAGrBiJ,IACGhG,IAEHkG,EDpoBN,SAAwBnU,EAAI0E,GAC1B,MAAM0P,EAAU,GAChB,KAAOpU,EAAGqU,oBAAoB,CAC5B,MAAMC,EAAOtU,EAAGqU,mBACZ3P,EACE4P,EAAK3P,QAAQD,IAAW0P,EAAQxkB,KAAK0kB,GACpCF,EAAQxkB,KAAK0kB,GACpBtU,EAAKsU,EAEP,OAAOF,EC2nBSG,CAAeN,EAAc,IAAG5Q,EAAO+G,4BAA4B,GAC3E/G,EAAO5M,OAAS0d,IAClBA,EAAY1J,EAAO,IAIrByJ,EDrpBN,SAAwBlU,EAAI0E,GAC1B,MAAM8P,EAAU,GAChB,KAAOxU,EAAGyU,wBAAwB,CAChC,MAAMC,EAAO1U,EAAGyU,uBACZ/P,EACEgQ,EAAK/P,QAAQD,IAAW8P,EAAQ5kB,KAAK8kB,GACpCF,EAAQ5kB,KAAK8kB,GACpB1U,EAAK0U,EAEP,OAAOF,EC4oBSG,CAAeV,EAAc,IAAG5Q,EAAO+G,4BAA4B,GAC3E/G,EAAO5M,MAAuB,KAAdyd,IAClBA,EAAYzJ,EAAOA,EAAO3e,OAAS,MAIzC2e,EAAOhf,SAAQme,IACbG,GAAmBH,EAASA,IAAYqK,EAAa5Q,EAAOuR,kBAC5D7K,GAAmBH,EAASA,IAAYuK,EAAW9Q,EAAOwR,gBAC1D9K,GAAmBH,EAASA,IAAYsK,EAAW7Q,EAAOyR,mBAE5DjS,EAAOkS,qBAgOPC,kBAtIF,SAA2BC,GACzB,MAAMpS,EAAShX,KACToX,EAAYJ,EAAO0J,aAAe1J,EAAOI,WAAaJ,EAAOI,WAC7D6J,SACJA,EADIzJ,OAEJA,EACA2H,YAAakK,EACbxJ,UAAWyJ,EACX5E,UAAW6E,GACTvS,EACJ,IACI0N,EADAvF,EAAciK,EAElB,MAAMI,EAAsBC,IAC1B,IAAI5J,EAAY4J,EAASzS,EAAO8J,QAAQgD,aAOxC,OANIjE,EAAY,IACdA,EAAY7I,EAAO8J,QAAQlC,OAAO3e,OAAS4f,GAEzCA,GAAa7I,EAAO8J,QAAQlC,OAAO3e,SACrC4f,GAAa7I,EAAO8J,QAAQlC,OAAO3e,QAE9B4f,GAKT,QAH2B,IAAhBV,IACTA,EA/CJ,SAAmCnI,GACjC,MAAMkK,WACJA,EADI1J,OAEJA,GACER,EACEI,EAAYJ,EAAO0J,aAAe1J,EAAOI,WAAaJ,EAAOI,UACnE,IAAI+H,EACJ,IAAK,IAAIpf,EAAI,EAAGA,EAAImhB,EAAWjhB,OAAQF,GAAK,OACT,IAAtBmhB,EAAWnhB,EAAI,GACpBqX,GAAa8J,EAAWnhB,IAAMqX,EAAY8J,EAAWnhB,EAAI,IAAMmhB,EAAWnhB,EAAI,GAAKmhB,EAAWnhB,IAAM,EACtGof,EAAcpf,EACLqX,GAAa8J,EAAWnhB,IAAMqX,EAAY8J,EAAWnhB,EAAI,KAClEof,EAAcpf,EAAI,GAEXqX,GAAa8J,EAAWnhB,KACjCof,EAAcpf,GAOlB,OAHIyX,EAAOkS,sBACLvK,EAAc,QAA4B,IAAhBA,KAA6BA,EAAc,GAEpEA,EAyBSwK,CAA0B3S,IAEtCiK,EAASjU,QAAQoK,IAAc,EACjCsN,EAAYzD,EAASjU,QAAQoK,OACxB,CACL,MAAMwS,EAAOzR,KAAKE,IAAIb,EAAO+L,mBAAoBpE,GACjDuF,EAAYkF,EAAOzR,KAAKgL,OAAOhE,EAAcyK,GAAQpS,EAAO8L,gBAG9D,GADIoB,GAAazD,EAAShhB,SAAQykB,EAAYzD,EAAShhB,OAAS,GAC5Dkf,IAAgBkK,IAAkBrS,EAAOQ,OAAO5M,KAKlD,YAJI8Z,IAAc6E,IAChBvS,EAAO0N,UAAYA,EACnB1N,EAAO0G,KAAK,qBAIhB,GAAIyB,IAAgBkK,GAAiBrS,EAAOQ,OAAO5M,MAAQoM,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAEjG,YADA6I,EAAO6I,UAAY2J,EAAoBrK,IAGzC,MAAMiD,EAAcpL,EAAOoI,MAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,EAGrE,IAAIQ,EACJ,GAAI7I,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,SAAWqJ,EAAO5M,KACrDiV,EAAY2J,EAAoBrK,QAC3B,GAAIiD,EAAa,CACtB,MAAMyH,EAAqB7S,EAAO4H,OAAOzI,QAAO4H,GAAWA,EAAQ2B,SAAWP,IAAa,GAC3F,IAAI2K,EAAmB5J,SAAS2J,EAAmB7b,aAAa,2BAA4B,IACxFoO,OAAO+D,MAAM2J,KACfA,EAAmB3R,KAAKC,IAAIpB,EAAO4H,OAAO5R,QAAQ6c,GAAqB,IAEzEhK,EAAY1H,KAAKgL,MAAM2G,EAAmBtS,EAAO4H,KAAKC,WACjD,GAAIrI,EAAO4H,OAAOO,GAAc,CACrC,MAAM8E,EAAajN,EAAO4H,OAAOO,GAAanR,aAAa,2BAEzD6R,EADEoE,EACU/D,SAAS+D,EAAY,IAErB9E,OAGdU,EAAYV,EAEdjb,OAAOC,OAAO6S,EAAQ,CACpBuS,kBAAAA,EACA7E,UAAAA,EACA4E,kBAAAA,EACAzJ,UAAAA,EACAwJ,cAAAA,EACAlK,YAAAA,IAEEnI,EAAO+S,aACTlL,GAAQ7H,GAEVA,EAAO0G,KAAK,qBACZ1G,EAAO0G,KAAK,oBACR1G,EAAO+S,aAAe/S,EAAOQ,OAAOwS,sBAClCV,IAAsBzJ,GACxB7I,EAAO0G,KAAK,mBAEd1G,EAAO0G,KAAK,iBAoDduM,mBAhDF,SAA4B9V,EAAI+V,GAC9B,MAAMlT,EAAShX,KACTwX,EAASR,EAAOQ,OACtB,IAAIkL,EAAQvO,EAAGkK,QAAS,IAAG7G,EAAO+G,6BAC7BmE,GAAS1L,EAAOsH,WAAa4L,GAAQA,EAAKjqB,OAAS,GAAKiqB,EAAKlO,SAAS7H,IACzE,IAAI+V,EAAKxU,MAAMwU,EAAKld,QAAQmH,GAAM,EAAG+V,EAAKjqB,SAASL,SAAQuqB,KACpDzH,GAASyH,EAAOrR,SAAWqR,EAAOrR,QAAS,IAAGtB,EAAO+G,8BACxDmE,EAAQyH,MAId,IACIlG,EADAmG,GAAa,EAEjB,GAAI1H,EACF,IAAK,IAAI3iB,EAAI,EAAGA,EAAIiX,EAAO4H,OAAO3e,OAAQF,GAAK,EAC7C,GAAIiX,EAAO4H,OAAO7e,KAAO2iB,EAAO,CAC9B0H,GAAa,EACbnG,EAAalkB,EACb,MAIN,IAAI2iB,IAAS0H,EAUX,OAFApT,EAAOqT,kBAAevb,OACtBkI,EAAOsT,kBAAexb,GARtBkI,EAAOqT,aAAe3H,EAClB1L,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAC1C6I,EAAOsT,aAAepK,SAASwC,EAAM1U,aAAa,2BAA4B,IAE9EgJ,EAAOsT,aAAerG,EAOtBzM,EAAO+S,0BAA+Czb,IAAxBkI,EAAOsT,cAA8BtT,EAAOsT,eAAiBtT,EAAOmI,aACpGnI,EAAOuT,wBAiLX,IAAInT,GAAY,CACdlD,aAlKF,SAA4BE,QACb,IAATA,IACFA,EAAOpU,KAAKggB,eAAiB,IAAM,KAErC,MACMxI,OACJA,EACAkJ,aAAcC,EAFVvJ,UAGJA,EAHIM,UAIJA,GALa1X,KAOf,GAAIwX,EAAOgT,iBACT,OAAO7J,GAAOvJ,EAAYA,EAE5B,GAAII,EAAO2K,QACT,OAAO/K,EAET,IAAIqT,EAAmBvW,EAAawD,EAAWtD,GAG/C,OAFAqW,GAdezqB,KAcYimB,wBACvBtF,IAAK8J,GAAoBA,GACtBA,GAAoB,GA+I3BC,aA5IF,SAAsBtT,EAAWuT,GAC/B,MAAM3T,EAAShX,MAEb0gB,aAAcC,EADVnJ,OAEJA,EAFIE,UAGJA,EAHIQ,SAIJA,GACElB,EACJ,IA0BI4T,EA1BAC,EAAI,EACJC,EAAI,EAEJ9T,EAAOgJ,eACT6K,EAAIlK,GAAOvJ,EAAYA,EAEvB0T,EAAI1T,EAEFI,EAAOuL,eACT8H,EAAI1S,KAAKgL,MAAM0H,GACfC,EAAI3S,KAAKgL,MAAM2H,IAEjB9T,EAAO+T,kBAAoB/T,EAAOI,UAClCJ,EAAOI,UAAYJ,EAAOgJ,eAAiB6K,EAAIC,EAC3CtT,EAAO2K,QACTzK,EAAUV,EAAOgJ,eAAiB,aAAe,aAAehJ,EAAOgJ,gBAAkB6K,GAAKC,EACpFtT,EAAOgT,mBACbxT,EAAOgJ,eACT6K,GAAK7T,EAAOiP,wBAEZ6E,GAAK9T,EAAOiP,wBAEdvO,EAAU7S,MAAM8P,UAAa,eAAckW,QAAQC,aAKrD,MAAM5D,EAAiBlQ,EAAOmQ,eAAiBnQ,EAAOuP,eAEpDqE,EADqB,IAAnB1D,EACY,GAEC9P,EAAYJ,EAAOuP,gBAAkBW,EAElD0D,IAAgB1S,GAClBlB,EAAOgQ,eAAe5P,GAExBJ,EAAO0G,KAAK,eAAgB1G,EAAOI,UAAWuT,IAiG9CpE,aA9FF,WACE,OAAQvmB,KAAKihB,SAAS,IA8FtBkG,aA3FF,WACE,OAAQnnB,KAAKihB,SAASjhB,KAAKihB,SAAShhB,OAAS,IA2F7C+qB,YAxFF,SAAqB5T,EAAWK,EAAOwT,EAAcC,EAAiBC,QAClD,IAAd/T,IACFA,EAAY,QAEA,IAAVK,IACFA,EAAQzX,KAAKwX,OAAOC,YAED,IAAjBwT,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAMlU,EAAShX,MACTwX,OACJA,EADIE,UAEJA,GACEV,EACJ,GAAIA,EAAOoU,WAAa5T,EAAO6T,+BAC7B,OAAO,EAET,MAAM9E,EAAevP,EAAOuP,eACtBY,EAAenQ,EAAOmQ,eAC5B,IAAImE,EAKJ,GAJiDA,EAA7CJ,GAAmB9T,EAAYmP,EAA6BA,EAAsB2E,GAAmB9T,EAAY+P,EAA6BA,EAAiC/P,EAGnLJ,EAAOgQ,eAAesE,GAClB9T,EAAO2K,QAAS,CAClB,MAAMoJ,EAAMvU,EAAOgJ,eACnB,GAAc,IAAVvI,EACFC,EAAU6T,EAAM,aAAe,cAAgBD,MAC1C,CACL,IAAKtU,EAAOiD,QAAQI,aAMlB,OALAvD,EAAqB,CACnBE,OAAAA,EACAC,gBAAiBqU,EACjBpU,KAAMqU,EAAM,OAAS,SAEhB,EAET7T,EAAUgB,SAAS,CACjB,CAAC6S,EAAM,OAAS,QAASD,EACzBE,SAAU,WAGd,OAAO,EAkCT,OAhCc,IAAV/T,GACFT,EAAOyO,cAAc,GACrBzO,EAAO0T,aAAaY,GAChBL,IACFjU,EAAO0G,KAAK,wBAAyBjG,EAAO0T,GAC5CnU,EAAO0G,KAAK,oBAGd1G,EAAOyO,cAAchO,GACrBT,EAAO0T,aAAaY,GAChBL,IACFjU,EAAO0G,KAAK,wBAAyBjG,EAAO0T,GAC5CnU,EAAO0G,KAAK,oBAET1G,EAAOoU,YACVpU,EAAOoU,WAAY,EACdpU,EAAOyU,oCACVzU,EAAOyU,kCAAoC,SAAuBpqB,GAC3D2V,IAAUA,EAAO+F,WAClB1b,EAAEf,SAAWN,OACjBgX,EAAOU,UAAUhW,oBAAoB,gBAAiBsV,EAAOyU,mCAC7DzU,EAAOyU,kCAAoC,YACpCzU,EAAOyU,kCACdzU,EAAOoU,WAAY,EACfH,GACFjU,EAAO0G,KAAK,oBAIlB1G,EAAOU,UAAUpV,iBAAiB,gBAAiB0U,EAAOyU,sCAGvD,IAoBT,SAASC,GAAe3U,GACtB,IAAIC,OACFA,EADEiU,aAEFA,EAFEhiB,UAGFA,EAHE0iB,KAIFA,GACE5U,EACJ,MAAMoI,YACJA,EADIkK,cAEJA,GACErS,EACJ,IAAIa,EAAM5O,EAKV,GAJK4O,IAC8BA,EAA7BsH,EAAckK,EAAqB,OAAgBlK,EAAckK,EAAqB,OAAkB,SAE9GrS,EAAO0G,KAAM,aAAYiO,KACrBV,GAAgB9L,IAAgBkK,EAAe,CACjD,GAAY,UAARxR,EAEF,YADAb,EAAO0G,KAAM,uBAAsBiO,KAGrC3U,EAAO0G,KAAM,wBAAuBiO,KACxB,SAAR9T,EACFb,EAAO0G,KAAM,sBAAqBiO,KAElC3U,EAAO0G,KAAM,sBAAqBiO,MAydxC,IAAIjJ,GAAQ,CACVkJ,QAxaF,SAAiB7e,EAAO0K,EAAOwT,EAAcE,EAAUU,QACvC,IAAV9e,IACFA,EAAQ,QAEW,IAAjBke,IACFA,GAAe,GAEI,iBAAVle,IACTA,EAAQmT,SAASnT,EAAO,KAE1B,MAAMiK,EAAShX,KACf,IAAIikB,EAAalX,EACbkX,EAAa,IAAGA,EAAa,GACjC,MAAMzM,OACJA,EADIyJ,SAEJA,EAFIC,WAGJA,EAHImI,cAIJA,EAJIlK,YAKJA,EACAuB,aAAcC,EANVjJ,UAOJA,EAPIvJ,QAQJA,GACE6I,EACJ,IAAK7I,IAAYgd,IAAaU,GAAW7U,EAAO+F,WAAa/F,EAAOoU,WAAa5T,EAAO6T,+BACtF,OAAO,OAEY,IAAV5T,IACTA,EAAQT,EAAOQ,OAAOC,OAExB,MAAMmS,EAAOzR,KAAKE,IAAIrB,EAAOQ,OAAO+L,mBAAoBU,GACxD,IAAIS,EAAYkF,EAAOzR,KAAKgL,OAAOc,EAAa2F,GAAQ5S,EAAOQ,OAAO8L,gBAClEoB,GAAazD,EAAShhB,SAAQykB,EAAYzD,EAAShhB,OAAS,GAChE,MAAMmX,GAAa6J,EAASyD,GAE5B,GAAIlN,EAAOkS,oBACT,IAAK,IAAI3pB,EAAI,EAAGA,EAAImhB,EAAWjhB,OAAQF,GAAK,EAAG,CAC7C,MAAM+rB,GAAuB3T,KAAKgL,MAAkB,IAAZ/L,GAClC2U,EAAiB5T,KAAKgL,MAAsB,IAAhBjC,EAAWnhB,IACvCisB,EAAqB7T,KAAKgL,MAA0B,IAApBjC,EAAWnhB,EAAI,SACpB,IAAtBmhB,EAAWnhB,EAAI,GACpB+rB,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAC9H9H,EAAalkB,EACJ+rB,GAAuBC,GAAkBD,EAAsBE,IACxE/H,EAAalkB,EAAI,GAEV+rB,GAAuBC,IAChC9H,EAAalkB,GAKnB,GAAIiX,EAAO+S,aAAe9F,IAAe9E,EAAa,CACpD,IAAKnI,EAAOiV,iBAAmBtL,EAAMvJ,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOuP,eAAiBnP,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOuP,gBAC1J,OAAO,EAET,IAAKvP,EAAOkV,gBAAkB9U,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOmQ,iBAC1EhI,GAAe,KAAO8E,EACzB,OAAO,EAUb,IAAIhb,EAIJ,GAVIgb,KAAgBoF,GAAiB,IAAM4B,GACzCjU,EAAO0G,KAAK,0BAId1G,EAAOgQ,eAAe5P,GAEQnO,EAA1Bgb,EAAa9E,EAAyB,OAAgB8E,EAAa9E,EAAyB,OAAwB,QAGpHwB,IAAQvJ,IAAcJ,EAAOI,YAAcuJ,GAAOvJ,IAAcJ,EAAOI,UAczE,OAbAJ,EAAOmS,kBAAkBlF,GAErBzM,EAAOyQ,YACTjR,EAAOsO,mBAETtO,EAAOkR,sBACe,UAAlB1Q,EAAOgM,QACTxM,EAAO0T,aAAatT,GAEJ,UAAdnO,IACF+N,EAAOmV,gBAAgBlB,EAAchiB,GACrC+N,EAAOoV,cAAcnB,EAAchiB,KAE9B,EAET,GAAIuO,EAAO2K,QAAS,CAClB,MAAMoJ,EAAMvU,EAAOgJ,eACblgB,EAAI6gB,EAAMvJ,GAAaA,EAC7B,GAAc,IAAVK,EAAa,CACf,MAAMoJ,EAAY7J,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QACtD0S,IACF7J,EAAOU,UAAU7S,MAAM8S,eAAiB,OACxCX,EAAOqV,mBAAoB,GAEzBxL,IAAc7J,EAAOsV,2BAA6BtV,EAAOQ,OAAO+U,aAAe,GACjFvV,EAAOsV,2BAA4B,EACnClkB,uBAAsB,KACpBsP,EAAU6T,EAAM,aAAe,aAAezrB,MAGhD4X,EAAU6T,EAAM,aAAe,aAAezrB,EAE5C+gB,GACFzY,uBAAsB,KACpB4O,EAAOU,UAAU7S,MAAM8S,eAAiB,GACxCX,EAAOqV,mBAAoB,SAG1B,CACL,IAAKrV,EAAOiD,QAAQI,aAMlB,OALAvD,EAAqB,CACnBE,OAAAA,EACAC,eAAgBnX,EAChBoX,KAAMqU,EAAM,OAAS,SAEhB,EAET7T,EAAUgB,SAAS,CACjB,CAAC6S,EAAM,OAAS,OAAQzrB,EACxB0rB,SAAU,WAGd,OAAO,EAwBT,OAtBAxU,EAAOyO,cAAchO,GACrBT,EAAO0T,aAAatT,GACpBJ,EAAOmS,kBAAkBlF,GACzBjN,EAAOkR,sBACPlR,EAAO0G,KAAK,wBAAyBjG,EAAO0T,GAC5CnU,EAAOmV,gBAAgBlB,EAAchiB,GACvB,IAAVwO,EACFT,EAAOoV,cAAcnB,EAAchiB,GACzB+N,EAAOoU,YACjBpU,EAAOoU,WAAY,EACdpU,EAAOwV,gCACVxV,EAAOwV,8BAAgC,SAAuBnrB,GACvD2V,IAAUA,EAAO+F,WAClB1b,EAAEf,SAAWN,OACjBgX,EAAOU,UAAUhW,oBAAoB,gBAAiBsV,EAAOwV,+BAC7DxV,EAAOwV,8BAAgC,YAChCxV,EAAOwV,8BACdxV,EAAOoV,cAAcnB,EAAchiB,MAGvC+N,EAAOU,UAAUpV,iBAAiB,gBAAiB0U,EAAOwV,iCAErD,GAqRPC,YAlRF,SAAqB1f,EAAO0K,EAAOwT,EAAcE,GAO/C,QANc,IAAVpe,IACFA,EAAQ,QAEW,IAAjBke,IACFA,GAAe,GAEI,iBAAVle,EAAoB,CAE7BA,EADsBmT,SAASnT,EAAO,IAGxC,MAAMiK,EAAShX,KACf,GAAIgX,EAAO+F,UAAW,YACD,IAAVtF,IACTA,EAAQT,EAAOQ,OAAOC,OAExB,MAAM2K,EAAcpL,EAAOoI,MAAQpI,EAAOQ,OAAO4H,MAAQpI,EAAOQ,OAAO4H,KAAKC,KAAO,EACnF,IAAIqN,EAAW3f,EACf,GAAIiK,EAAOQ,OAAO5M,KAChB,GAAIoM,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAE1Cue,GAAsB1V,EAAO8J,QAAQgD,iBAChC,CACL,IAAI6I,EACJ,GAAIvK,EAAa,CACf,MAAM6B,EAAayI,EAAW1V,EAAOQ,OAAO4H,KAAKC,KACjDsN,EAAmB3V,EAAO4H,OAAOzI,QAAO4H,GAA6D,EAAlDA,EAAQ/P,aAAa,6BAAmCiW,IAAY,GAAGvE,YAE1HiN,EAAmB3V,EAAO2O,oBAAoB+G,GAEhD,MAAME,EAAOxK,EAAcjK,KAAK+G,KAAKlI,EAAO4H,OAAO3e,OAAS+W,EAAOQ,OAAO4H,KAAKC,MAAQrI,EAAO4H,OAAO3e,QAC/FiiB,eACJA,GACElL,EAAOQ,OACX,IAAIwH,EAAgBhI,EAAOQ,OAAOwH,cACZ,SAAlBA,EACFA,EAAgBhI,EAAOiI,wBAEvBD,EAAgB7G,KAAK+G,KAAK1J,WAAWwB,EAAOQ,OAAOwH,cAAe,KAC9DkD,GAAkBlD,EAAgB,GAAM,IAC1CA,GAAgC,IAGpC,IAAI6N,EAAcD,EAAOD,EAAmB3N,EAO5C,GANIkD,IACF2K,EAAcA,GAAeF,EAAmBxU,KAAK+G,KAAKF,EAAgB,IAExEmM,GAAYjJ,GAAkD,SAAhClL,EAAOQ,OAAOwH,gBAA6BoD,IAC3EyK,GAAc,GAEZA,EAAa,CACf,MAAM5jB,EAAYiZ,EAAiByK,EAAmB3V,EAAOmI,YAAc,OAAS,OAASwN,EAAmB3V,EAAOmI,YAAc,EAAInI,EAAOQ,OAAOwH,cAAgB,OAAS,OAChLhI,EAAO8V,QAAQ,CACb7jB,UAAAA,EACA2iB,SAAS,EACT9B,iBAAgC,SAAd7gB,EAAuB0jB,EAAmB,EAAIA,EAAmBC,EAAO,EAC1FG,eAA8B,SAAd9jB,EAAuB+N,EAAO6I,eAAY/Q,IAG9D,GAAIsT,EAAa,CACf,MAAM6B,EAAayI,EAAW1V,EAAOQ,OAAO4H,KAAKC,KACjDqN,EAAW1V,EAAO4H,OAAOzI,QAAO4H,GAA6D,EAAlDA,EAAQ/P,aAAa,6BAAmCiW,IAAY,GAAGvE,YAElHgN,EAAW1V,EAAO2O,oBAAoB+G,GAO5C,OAHAtkB,uBAAsB,KACpB4O,EAAO4U,QAAQc,EAAUjV,EAAOwT,EAAcE,MAEzCnU,GA6MPgW,UAzMF,SAAmBvV,EAAOwT,EAAcE,QACjB,IAAjBF,IACFA,GAAe,GAEjB,MAAMjU,EAAShX,MACTmO,QACJA,EADIqJ,OAEJA,EAFI4T,UAGJA,GACEpU,EACJ,IAAK7I,GAAW6I,EAAO+F,UAAW,OAAO/F,OACpB,IAAVS,IACTA,EAAQT,EAAOQ,OAAOC,OAExB,IAAIwV,EAAWzV,EAAO8L,eACO,SAAzB9L,EAAOwH,eAAsD,IAA1BxH,EAAO8L,gBAAwB9L,EAAO0V,qBAC3ED,EAAW9U,KAAKC,IAAIpB,EAAOiI,qBAAqB,WAAW,GAAO,IAEpE,MAAMkO,EAAYnW,EAAOmI,YAAc3H,EAAO+L,mBAAqB,EAAI0J,EACjEpM,EAAY7J,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QACnD,GAAIqJ,EAAO5M,KAAM,CACf,GAAIwgB,IAAcvK,GAAarJ,EAAO4V,oBAAqB,OAAO,EAMlE,GALApW,EAAO8V,QAAQ,CACb7jB,UAAW,SAGb+N,EAAOqW,YAAcrW,EAAOU,UAAU4V,WAClCtW,EAAOmI,cAAgBnI,EAAO4H,OAAO3e,OAAS,GAAKuX,EAAO2K,QAI5D,OAHA/Z,uBAAsB,KACpB4O,EAAO4U,QAAQ5U,EAAOmI,YAAcgO,EAAW1V,EAAOwT,EAAcE,OAE/D,EAGX,OAAI3T,EAAOoI,QAAU5I,EAAOqQ,MACnBrQ,EAAO4U,QAAQ,EAAGnU,EAAOwT,EAAcE,GAEzCnU,EAAO4U,QAAQ5U,EAAOmI,YAAcgO,EAAW1V,EAAOwT,EAAcE,IAqK3EoC,UAjKF,SAAmB9V,EAAOwT,EAAcE,QACjB,IAAjBF,IACFA,GAAe,GAEjB,MAAMjU,EAAShX,MACTwX,OACJA,EADIyJ,SAEJA,EAFIC,WAGJA,EAHIR,aAIJA,EAJIvS,QAKJA,EALIid,UAMJA,GACEpU,EACJ,IAAK7I,GAAW6I,EAAO+F,UAAW,OAAO/F,OACpB,IAAVS,IACTA,EAAQT,EAAOQ,OAAOC,OAExB,MAAMoJ,EAAY7J,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QACnD,GAAIqJ,EAAO5M,KAAM,CACf,GAAIwgB,IAAcvK,GAAarJ,EAAO4V,oBAAqB,OAAO,EAClEpW,EAAO8V,QAAQ,CACb7jB,UAAW,SAGb+N,EAAOqW,YAAcrW,EAAOU,UAAU4V,WAGxC,SAASE,EAAUC,GACjB,OAAIA,EAAM,GAAWtV,KAAKgL,MAAMhL,KAAKkL,IAAIoK,IAClCtV,KAAKgL,MAAMsK,GAEpB,MAAM3B,EAAsB0B,EALV9M,EAAe1J,EAAOI,WAAaJ,EAAOI,WAMtDsW,EAAqBzM,EAASnM,KAAI2Y,GAAOD,EAAUC,KACzD,IAAIE,EAAW1M,EAASyM,EAAmB1gB,QAAQ8e,GAAuB,GAC1E,QAAwB,IAAb6B,GAA4BnW,EAAO2K,QAAS,CACrD,IAAIyL,EACJ3M,EAASrhB,SAAQ,CAAC0kB,EAAMI,KAClBoH,GAAuBxH,IAEzBsJ,EAAgBlJ,WAGS,IAAlBkJ,IACTD,EAAW1M,EAAS2M,EAAgB,EAAIA,EAAgB,EAAIA,IAGhE,IAAIC,EAAY,EAShB,QARwB,IAAbF,IACTE,EAAY3M,EAAWlU,QAAQ2gB,GAC3BE,EAAY,IAAGA,EAAY7W,EAAOmI,YAAc,GACvB,SAAzB3H,EAAOwH,eAAsD,IAA1BxH,EAAO8L,gBAAwB9L,EAAO0V,qBAC3EW,EAAYA,EAAY7W,EAAOiI,qBAAqB,YAAY,GAAQ,EACxE4O,EAAY1V,KAAKC,IAAIyV,EAAW,KAGhCrW,EAAOoI,QAAU5I,EAAOoQ,YAAa,CACvC,MAAM0G,EAAY9W,EAAOQ,OAAOsJ,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,SAAW6I,EAAO8J,QAAU9J,EAAO8J,QAAQlC,OAAO3e,OAAS,EAAI+W,EAAO4H,OAAO3e,OAAS,EACvJ,OAAO+W,EAAO4U,QAAQkC,EAAWrW,EAAOwT,EAAcE,GACjD,OAAI3T,EAAO5M,MAA+B,IAAvBoM,EAAOmI,aAAqB3H,EAAO2K,SAC3D/Z,uBAAsB,KACpB4O,EAAO4U,QAAQiC,EAAWpW,EAAOwT,EAAcE,OAE1C,GAEFnU,EAAO4U,QAAQiC,EAAWpW,EAAOwT,EAAcE,IAkGtD4C,WA9FF,SAAoBtW,EAAOwT,EAAcE,QAClB,IAAjBF,IACFA,GAAe,GAEjB,MAAMjU,EAAShX,KACf,IAAIgX,EAAO+F,UAIX,YAHqB,IAAVtF,IACTA,EAAQT,EAAOQ,OAAOC,OAEjBT,EAAO4U,QAAQ5U,EAAOmI,YAAa1H,EAAOwT,EAAcE,IAsF/D6C,eAlFF,SAAwBvW,EAAOwT,EAAcE,EAAU8C,QAChC,IAAjBhD,IACFA,GAAe,QAEC,IAAdgD,IACFA,EAAY,IAEd,MAAMjX,EAAShX,KACf,GAAIgX,EAAO+F,UAAW,YACD,IAAVtF,IACTA,EAAQT,EAAOQ,OAAOC,OAExB,IAAI1K,EAAQiK,EAAOmI,YACnB,MAAMyK,EAAOzR,KAAKE,IAAIrB,EAAOQ,OAAO+L,mBAAoBxW,GAClD2X,EAAYkF,EAAOzR,KAAKgL,OAAOpW,EAAQ6c,GAAQ5S,EAAOQ,OAAO8L,gBAC7DlM,EAAYJ,EAAO0J,aAAe1J,EAAOI,WAAaJ,EAAOI,UACnE,GAAIA,GAAaJ,EAAOiK,SAASyD,GAAY,CAG3C,MAAMwJ,EAAclX,EAAOiK,SAASyD,GAEhCtN,EAAY8W,GADClX,EAAOiK,SAASyD,EAAY,GACHwJ,GAAeD,IACvDlhB,GAASiK,EAAOQ,OAAO8L,oBAEpB,CAGL,MAAMqK,EAAW3W,EAAOiK,SAASyD,EAAY,GAEzCtN,EAAYuW,IADI3W,EAAOiK,SAASyD,GACOiJ,GAAYM,IACrDlhB,GAASiK,EAAOQ,OAAO8L,gBAK3B,OAFAvW,EAAQoL,KAAKC,IAAIrL,EAAO,GACxBA,EAAQoL,KAAKE,IAAItL,EAAOiK,EAAOkK,WAAWjhB,OAAS,GAC5C+W,EAAO4U,QAAQ7e,EAAO0K,EAAOwT,EAAcE,IAgDlDZ,oBA7CF,WACE,MAAMvT,EAAShX,KACf,GAAIgX,EAAO+F,UAAW,OACtB,MAAMvF,OACJA,EADIgJ,SAEJA,GACExJ,EACEgI,EAAyC,SAAzBxH,EAAOwH,cAA2BhI,EAAOiI,uBAAyBzH,EAAOwH,cAC/F,IACIa,EADAsO,EAAenX,EAAOsT,aAE1B,MAAM8D,EAAgBpX,EAAOsH,UAAa,eAAiB,IAAG9G,EAAO+G,aACrE,GAAI/G,EAAO5M,KAAM,CACf,GAAIoM,EAAOoU,UAAW,OACtBvL,EAAYK,SAASlJ,EAAOqT,aAAarc,aAAa,2BAA4B,IAC9EwJ,EAAO0K,eACLiM,EAAenX,EAAOqX,aAAerP,EAAgB,GAAKmP,EAAenX,EAAO4H,OAAO3e,OAAS+W,EAAOqX,aAAerP,EAAgB,GACxIhI,EAAO8V,UACPqB,EAAenX,EAAOsX,cAAc1V,EAAgB4H,EAAW,GAAE4N,8BAA0CvO,OAAe,IAC1H7L,GAAS,KACPgD,EAAO4U,QAAQuC,OAGjBnX,EAAO4U,QAAQuC,GAERA,EAAenX,EAAO4H,OAAO3e,OAAS+e,GAC/ChI,EAAO8V,UACPqB,EAAenX,EAAOsX,cAAc1V,EAAgB4H,EAAW,GAAE4N,8BAA0CvO,OAAe,IAC1H7L,GAAS,KACPgD,EAAO4U,QAAQuC,OAGjBnX,EAAO4U,QAAQuC,QAGjBnX,EAAO4U,QAAQuC,KAsSnB,IAAIvjB,GAAO,CACT2jB,WAzRF,SAAoBxB,GAClB,MAAM/V,EAAShX,MACTwX,OACJA,EADIgJ,SAEJA,GACExJ,EACJ,IAAKQ,EAAO5M,MAAQoM,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAAS,OACrE,MAAMmU,EAAa,KACF1J,EAAgB4H,EAAW,IAAGhJ,EAAO+G,4BAC7C3e,SAAQ,CAACuU,EAAIpH,KAClBoH,EAAGjS,aAAa,0BAA2B6K,OAGzCqV,EAAcpL,EAAOoI,MAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,EAC/DiE,EAAiB9L,EAAO8L,gBAAkBlB,EAAc5K,EAAO4H,KAAKC,KAAO,GAC3EmP,EAAkBxX,EAAO4H,OAAO3e,OAASqjB,GAAmB,EAC5DmL,EAAiBrM,GAAepL,EAAO4H,OAAO3e,OAASuX,EAAO4H,KAAKC,MAAS,EAC5EqP,EAAiBC,IACrB,IAAK,IAAI5uB,EAAI,EAAGA,EAAI4uB,EAAgB5uB,GAAK,EAAG,CAC1C,MAAMge,EAAU/G,EAAOsH,UAAY1Z,EAAc,eAAgB,CAAC4S,EAAOoX,kBAAoBhqB,EAAc,MAAO,CAAC4S,EAAO+G,WAAY/G,EAAOoX,kBAC7I5X,EAAOwJ,SAASqO,OAAO9Q,KAG3B,GAAIyQ,EAAiB,CACnB,GAAIhX,EAAOsX,mBAAoB,CAE7BJ,EADoBpL,EAAiBtM,EAAO4H,OAAO3e,OAASqjB,GAE5DtM,EAAO+X,eACP/X,EAAOoJ,oBAEPrH,EAAY,mLAEduJ,SACK,GAAImM,EAAgB,CACzB,GAAIjX,EAAOsX,mBAAoB,CAE7BJ,EADoBlX,EAAO4H,KAAKC,KAAOrI,EAAO4H,OAAO3e,OAASuX,EAAO4H,KAAKC,MAE1ErI,EAAO+X,eACP/X,EAAOoJ,oBAEPrH,EAAY,8KAEduJ,SAEAA,IAEFtL,EAAO8V,QAAQ,CACbC,eAAAA,EACA9jB,UAAWuO,EAAO0K,oBAAiBpT,EAAY,UA0OjDge,QAtOF,SAAiBnS,GACf,IAAIoS,eACFA,EADEnB,QAEFA,GAAU,EAFR3iB,UAGFA,EAHEyhB,aAIFA,EAJEZ,iBAKFA,EALEa,aAMFA,EANEqE,aAOFA,QACY,IAAVrU,EAAmB,GAAKA,EAC5B,MAAM3D,EAAShX,KACf,IAAKgX,EAAOQ,OAAO5M,KAAM,OACzBoM,EAAO0G,KAAK,iBACZ,MAAMkB,OACJA,EADIsN,eAEJA,EAFID,eAGJA,EAHIzL,SAIJA,EAJIhJ,OAKJA,GACER,GACEkL,eACJA,GACE1K,EAGJ,GAFAR,EAAOkV,gBAAiB,EACxBlV,EAAOiV,gBAAiB,EACpBjV,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QAanC,OAZIyd,IACGpU,EAAO0K,gBAAuC,IAArBlL,EAAO0N,UAE1BlN,EAAO0K,gBAAkBlL,EAAO0N,UAAYlN,EAAOwH,cAC5DhI,EAAO4U,QAAQ5U,EAAO8J,QAAQlC,OAAO3e,OAAS+W,EAAO0N,UAAW,GAAG,GAAO,GACjE1N,EAAO0N,YAAc1N,EAAOiK,SAAShhB,OAAS,GACvD+W,EAAO4U,QAAQ5U,EAAO8J,QAAQgD,aAAc,GAAG,GAAO,GAJtD9M,EAAO4U,QAAQ5U,EAAO8J,QAAQlC,OAAO3e,OAAQ,GAAG,GAAO,IAO3D+W,EAAOkV,eAAiBA,EACxBlV,EAAOiV,eAAiBA,OACxBjV,EAAO0G,KAAK,WAGd,IAAIsB,EAAgBxH,EAAOwH,cACL,SAAlBA,EACFA,EAAgBhI,EAAOiI,wBAEvBD,EAAgB7G,KAAK+G,KAAK1J,WAAWgC,EAAOwH,cAAe,KACvDkD,GAAkBlD,EAAgB,GAAM,IAC1CA,GAAgC,IAGpC,MAAMsE,EAAiB9L,EAAO0V,mBAAqBlO,EAAgBxH,EAAO8L,eAC1E,IAAI+K,EAAe/K,EACf+K,EAAe/K,GAAmB,IACpC+K,GAAgB/K,EAAiB+K,EAAe/K,GAElD+K,GAAgB7W,EAAOyX,qBACvBjY,EAAOqX,aAAeA,EACtB,MAAMjM,EAAcpL,EAAOoI,MAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,EACjET,EAAO3e,OAAS+e,EAAgBqP,EAClCtV,EAAY,6OACHqJ,GAAoC,QAArB5K,EAAO4H,KAAK8P,MACpCnW,EAAY,2EAEd,MAAMoW,EAAuB,GACvBC,EAAsB,GAC5B,IAAIjQ,EAAcnI,EAAOmI,iBACO,IAArB2K,EACTA,EAAmB9S,EAAOsX,cAAc1P,EAAOzI,QAAOhC,GAAMA,EAAGhS,UAAUZ,SAASiW,EAAOuR,oBAAmB,IAE5G5J,EAAc2K,EAEhB,MAAMuF,EAAuB,SAAdpmB,IAAyBA,EAClCqmB,EAAuB,SAAdrmB,IAAyBA,EACxC,IAAIsmB,EAAkB,EAClBC,EAAiB,EACrB,MAAM5C,EAAOxK,EAAcjK,KAAK+G,KAAKN,EAAO3e,OAASuX,EAAO4H,KAAKC,MAAQT,EAAO3e,OAE1EwvB,GADiBrN,EAAcxD,EAAOkL,GAAkBpK,OAASoK,IACrB5H,QAA0C,IAAjBwI,GAAgC1L,EAAgB,EAAI,GAAM,GAErI,GAAIyQ,EAA0BpB,EAAc,CAC1CkB,EAAkBpX,KAAKC,IAAIiW,EAAeoB,EAAyBnM,GACnE,IAAK,IAAIvjB,EAAI,EAAGA,EAAIsuB,EAAeoB,EAAyB1vB,GAAK,EAAG,CAClE,MAAMgN,EAAQhN,EAAIoY,KAAKgL,MAAMpjB,EAAI6sB,GAAQA,EACzC,GAAIxK,EAAa,CACf,MAAMsN,EAAoB9C,EAAO7f,EAAQ,EACzC,IAAK,IAAIhN,EAAI6e,EAAO3e,OAAS,EAAGF,GAAK,EAAGA,GAAK,EACvC6e,EAAO7e,GAAG2f,SAAWgQ,GAAmBP,EAAqBprB,KAAKhE,QAMxEovB,EAAqBprB,KAAK6oB,EAAO7f,EAAQ,SAGxC,GAAI0iB,EAA0BzQ,EAAgB4N,EAAOyB,EAAc,CACxEmB,EAAiBrX,KAAKC,IAAIqX,GAA2B7C,EAAsB,EAAfyB,GAAmB/K,GAC/E,IAAK,IAAIvjB,EAAI,EAAGA,EAAIyvB,EAAgBzvB,GAAK,EAAG,CAC1C,MAAMgN,EAAQhN,EAAIoY,KAAKgL,MAAMpjB,EAAI6sB,GAAQA,EACrCxK,EACFxD,EAAOhf,SAAQ,CAAC8iB,EAAOuB,KACjBvB,EAAMhD,SAAW3S,GAAOqiB,EAAoBrrB,KAAKkgB,MAGvDmL,EAAoBrrB,KAAKgJ,IAiC/B,GA7BAiK,EAAO2Y,qBAAsB,EAC7BvnB,uBAAsB,KACpB4O,EAAO2Y,qBAAsB,KAE3BL,GACFH,EAAqBvvB,SAAQmN,IAC3B6R,EAAO7R,GAAO6iB,mBAAoB,EAClCpP,EAASqP,QAAQjR,EAAO7R,IACxB6R,EAAO7R,GAAO6iB,mBAAoB,KAGlCP,GACFD,EAAoBxvB,SAAQmN,IAC1B6R,EAAO7R,GAAO6iB,mBAAoB,EAClCpP,EAASqO,OAAOjQ,EAAO7R,IACvB6R,EAAO7R,GAAO6iB,mBAAoB,KAGtC5Y,EAAO+X,eACsB,SAAzBvX,EAAOwH,cACThI,EAAOoJ,eACEgC,IAAgB+M,EAAqBlvB,OAAS,GAAKqvB,GAAUF,EAAoBnvB,OAAS,GAAKovB,IACxGrY,EAAO4H,OAAOhf,SAAQ,CAAC8iB,EAAOuB,KAC5BjN,EAAOoI,KAAKuD,YAAYsB,EAAYvB,EAAO1L,EAAO4H,WAGlDpH,EAAOwN,qBACThO,EAAOiO,qBAEL2G,EACF,GAAIuD,EAAqBlvB,OAAS,GAAKqvB,GACrC,QAA8B,IAAnBvC,EAAgC,CACzC,MAAM+C,EAAwB9Y,EAAOkK,WAAW/B,GAE1C4Q,EADoB/Y,EAAOkK,WAAW/B,EAAcoQ,GACzBO,EAC7Bd,EACFhY,EAAO0T,aAAa1T,EAAOI,UAAY2Y,IAEvC/Y,EAAO4U,QAAQzM,EAAchH,KAAK+G,KAAKqQ,GAAkB,GAAG,GAAO,GAC/D7E,IACF1T,EAAOgZ,gBAAgBC,eAAiBjZ,EAAOgZ,gBAAgBC,eAAiBF,EAChF/Y,EAAOgZ,gBAAgBvF,iBAAmBzT,EAAOgZ,gBAAgBvF,iBAAmBsF,SAIxF,GAAIrF,EAAc,CAChB,MAAMwF,EAAQ9N,EAAc+M,EAAqBlvB,OAASuX,EAAO4H,KAAKC,KAAO8P,EAAqBlvB,OAClG+W,EAAO4U,QAAQ5U,EAAOmI,YAAc+Q,EAAO,GAAG,GAAO,GACrDlZ,EAAOgZ,gBAAgBvF,iBAAmBzT,EAAOI,gBAGhD,GAAIgY,EAAoBnvB,OAAS,GAAKovB,EAC3C,QAA8B,IAAnBtC,EAAgC,CACzC,MAAM+C,EAAwB9Y,EAAOkK,WAAW/B,GAE1C4Q,EADoB/Y,EAAOkK,WAAW/B,EAAcqQ,GACzBM,EAC7Bd,EACFhY,EAAO0T,aAAa1T,EAAOI,UAAY2Y,IAEvC/Y,EAAO4U,QAAQzM,EAAcqQ,EAAgB,GAAG,GAAO,GACnD9E,IACF1T,EAAOgZ,gBAAgBC,eAAiBjZ,EAAOgZ,gBAAgBC,eAAiBF,EAChF/Y,EAAOgZ,gBAAgBvF,iBAAmBzT,EAAOgZ,gBAAgBvF,iBAAmBsF,QAGnF,CACL,MAAMG,EAAQ9N,EAAcgN,EAAoBnvB,OAASuX,EAAO4H,KAAKC,KAAO+P,EAAoBnvB,OAChG+W,EAAO4U,QAAQ5U,EAAOmI,YAAc+Q,EAAO,GAAG,GAAO,GAM3D,GAFAlZ,EAAOkV,eAAiBA,EACxBlV,EAAOiV,eAAiBA,EACpBjV,EAAOmZ,YAAcnZ,EAAOmZ,WAAWtiB,UAAY8c,EAAc,CACnE,MAAMyF,EAAa,CACjBrD,eAAAA,EACA9jB,UAAAA,EACAyhB,aAAAA,EACAZ,iBAAAA,EACAa,cAAc,GAEZxR,MAAMC,QAAQpC,EAAOmZ,WAAWtiB,SAClCmJ,EAAOmZ,WAAWtiB,QAAQjO,SAAQ0Z,KAC3BA,EAAEyD,WAAazD,EAAE9B,OAAO5M,MAAM0O,EAAEwT,QAAQ,IACxCsD,EACHxE,QAAStS,EAAE9B,OAAOwH,gBAAkBxH,EAAOwH,eAAgB4M,OAGtD5U,EAAOmZ,WAAWtiB,mBAAmBmJ,EAAO5W,aAAe4W,EAAOmZ,WAAWtiB,QAAQ2J,OAAO5M,MACrGoM,EAAOmZ,WAAWtiB,QAAQif,QAAQ,IAC7BsD,EACHxE,QAAS5U,EAAOmZ,WAAWtiB,QAAQ2J,OAAOwH,gBAAkBxH,EAAOwH,eAAgB4M,IAIzF5U,EAAO0G,KAAK,YA6BZ2S,YA1BF,WACE,MAAMrZ,EAAShX,MACTwX,OACJA,EADIgJ,SAEJA,GACExJ,EACJ,IAAKQ,EAAO5M,MAAQoM,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAAS,OACrE6I,EAAO+X,eACP,MAAMuB,EAAiB,GACvBtZ,EAAO4H,OAAOhf,SAAQme,IACpB,MAAMhR,OAA4C,IAA7BgR,EAAQwS,iBAAqF,EAAlDxS,EAAQ/P,aAAa,2BAAiC+P,EAAQwS,iBAC9HD,EAAevjB,GAASgR,KAE1B/G,EAAO4H,OAAOhf,SAAQme,IACpBA,EAAQjb,gBAAgB,8BAE1BwtB,EAAe1wB,SAAQme,IACrByC,EAASqO,OAAO9Q,MAElB/G,EAAO+X,eACP/X,EAAO4U,QAAQ5U,EAAO6I,UAAW,KA8DnC,SAAS2Q,GAAiBxZ,EAAQgG,EAAOyT,GACvC,MAAMhxB,EAASqU,KACT0D,OACJA,GACER,EACE0Z,EAAqBlZ,EAAOkZ,mBAC5BC,EAAqBnZ,EAAOmZ,mBAClC,OAAID,KAAuBD,GAAUE,GAAsBF,GAAUhxB,EAAOqK,WAAa6mB,IAC5D,YAAvBD,IACF1T,EAAMrb,kBACC,GAMb,SAASivB,GAAa5T,GACpB,MAAMhG,EAAShX,KACTyB,EAAWuR,IACjB,IAAI3R,EAAI2b,EACJ3b,EAAEwvB,gBAAexvB,EAAIA,EAAEwvB,eAC3B,MAAMnkB,EAAOsK,EAAOgZ,gBACpB,GAAe,gBAAX3uB,EAAEC,KAAwB,CAC5B,GAAuB,OAAnBoL,EAAKokB,WAAsBpkB,EAAKokB,YAAczvB,EAAEyvB,UAClD,OAEFpkB,EAAKokB,UAAYzvB,EAAEyvB,cACC,eAAXzvB,EAAEC,MAAoD,IAA3BD,EAAE0vB,cAAc9wB,SACpDyM,EAAKskB,QAAU3vB,EAAE0vB,cAAc,GAAGE,YAEpC,GAAe,eAAX5vB,EAAEC,KAGJ,YADAkvB,GAAiBxZ,EAAQ3V,EAAGA,EAAE0vB,cAAc,GAAGG,OAGjD,MAAM1Z,OACJA,EADI2Z,QAEJA,EAFIhjB,QAGJA,GACE6I,EACJ,IAAK7I,EAAS,OACd,IAAKqJ,EAAO4Z,eAAmC,UAAlB/vB,EAAEgwB,YAAyB,OACxD,GAAIra,EAAOoU,WAAa5T,EAAO6T,+BAC7B,QAEGrU,EAAOoU,WAAa5T,EAAO2K,SAAW3K,EAAO5M,MAChDoM,EAAO8V,UAET,IAAIwE,EAAWjwB,EAAEf,OACjB,GAAiC,YAA7BkX,EAAO+Z,oBACJva,EAAOU,UAAUnW,SAAS+vB,GAAW,OAE5C,GAAI,UAAWjwB,GAAiB,IAAZA,EAAEmwB,MAAa,OACnC,GAAI,WAAYnwB,GAAKA,EAAEowB,OAAS,EAAG,OACnC,GAAI/kB,EAAKglB,WAAahlB,EAAKilB,QAAS,OAGpC,MAAMC,IAAyBpa,EAAOqa,gBAA4C,KAA1Bra,EAAOqa,eAEzDC,EAAYzwB,EAAE0wB,aAAe1wB,EAAE0wB,eAAiB1wB,EAAE6oB,KACpD0H,GAAwBvwB,EAAEf,QAAUe,EAAEf,OAAOoe,YAAcoT,IAC7DR,EAAWQ,EAAU,IAEvB,MAAME,EAAoBxa,EAAOwa,kBAAoBxa,EAAOwa,kBAAqB,IAAGxa,EAAOqa,iBACrFI,KAAoB5wB,EAAEf,SAAUe,EAAEf,OAAOoe,YAG/C,GAAIlH,EAAO0a,YAAcD,EAlF3B,SAAwBpZ,EAAUsZ,GAahC,YAZa,IAATA,IACFA,EAAOnyB,MAET,SAASoyB,EAAcje,GACrB,IAAKA,GAAMA,IAAOnB,KAAiBmB,IAAOL,IAAa,OAAO,KAC1DK,EAAGke,eAAcle,EAAKA,EAAGke,cAC7B,MAAMC,EAAQne,EAAGkK,QAAQxF,GACzB,OAAKyZ,GAAUne,EAAGoe,YAGXD,GAASF,EAAcje,EAAGoe,cAAc9f,MAFtC,KAIJ2f,CAAcD,GAqEqBK,CAAeR,EAAmBV,GAAYA,EAASjT,QAAQ2T,IAEvG,YADAhb,EAAOyb,YAAa,GAGtB,GAAIjb,EAAOkb,eACJpB,EAASjT,QAAQ7G,EAAOkb,cAAe,OAE9CvB,EAAQwB,SAAWtxB,EAAE6vB,MACrBC,EAAQyB,SAAWvxB,EAAEwxB,MACrB,MAAMpC,EAASU,EAAQwB,SACjBG,EAAS3B,EAAQyB,SAIvB,IAAKpC,GAAiBxZ,EAAQ3V,EAAGovB,GAC/B,OAEFvsB,OAAOC,OAAOuI,EAAM,CAClBglB,WAAW,EACXC,SAAS,EACToB,qBAAqB,EACrBC,iBAAalkB,EACbmkB,iBAAankB,IAEfqiB,EAAQV,OAASA,EACjBU,EAAQ2B,OAASA,EACjBpmB,EAAKwmB,eAAiB1nB,IACtBwL,EAAOyb,YAAa,EACpBzb,EAAO8I,aACP9I,EAAOmc,oBAAiBrkB,EACpB0I,EAAOyW,UAAY,IAAGvhB,EAAK0mB,oBAAqB,GACpD,IAAIzxB,GAAiB,EACjB2vB,EAASxY,QAAQpM,EAAK2mB,qBACxB1xB,GAAiB,EACS,WAAtB2vB,EAASrf,WACXvF,EAAKglB,WAAY,IAGjBjwB,EAASsQ,eAAiBtQ,EAASsQ,cAAc+G,QAAQpM,EAAK2mB,oBAAsB5xB,EAASsQ,gBAAkBuf,GACjH7vB,EAASsQ,cAAcC,OAEzB,MAAMshB,EAAuB3xB,GAAkBqV,EAAOuc,gBAAkB/b,EAAOgc,0BAC1Ehc,EAAOic,gCAAiCH,GAA0BhC,EAASoC,mBAC9EryB,EAAEM,iBAEA6V,EAAOmc,UAAYnc,EAAOmc,SAASxlB,SAAW6I,EAAO2c,UAAY3c,EAAOoU,YAAc5T,EAAO2K,SAC/FnL,EAAO2c,SAAS/C,eAElB5Z,EAAO0G,KAAK,aAAcrc,GAG5B,SAASuyB,GAAY5W,GACnB,MAAMvb,EAAWuR,IACXgE,EAAShX,KACT0M,EAAOsK,EAAOgZ,iBACdxY,OACJA,EADI2Z,QAEJA,EACAzQ,aAAcC,EAHVxS,QAIJA,GACE6I,EACJ,IAAK7I,EAAS,OACd,IAAKqJ,EAAO4Z,eAAuC,UAAtBpU,EAAMqU,YAAyB,OAC5D,IAOIwC,EAPAxyB,EAAI2b,EAER,GADI3b,EAAEwvB,gBAAexvB,EAAIA,EAAEwvB,eACZ,gBAAXxvB,EAAEC,KAAwB,CAC5B,GAAqB,OAAjBoL,EAAKskB,QAAkB,OAE3B,GADW3vB,EAAEyvB,YACFpkB,EAAKokB,UAAW,OAG7B,GAAe,cAAXzvB,EAAEC,MAEJ,GADAuyB,EAAc,IAAIxyB,EAAEyyB,gBAAgB3d,QAAOrW,GAAKA,EAAEmxB,aAAevkB,EAAKskB,UAAS,IAC1E6C,GAAeA,EAAY5C,aAAevkB,EAAKskB,QAAS,YAE7D6C,EAAcxyB,EAEhB,IAAKqL,EAAKglB,UAIR,YAHIhlB,EAAKumB,aAAevmB,EAAKsmB,aAC3Bhc,EAAO0G,KAAK,oBAAqBrc,IAIrC,MAAM6vB,EAAQ2C,EAAY3C,MACpB2B,EAAQgB,EAAYhB,MAC1B,GAAIxxB,EAAE0yB,wBAGJ,OAFA5C,EAAQV,OAASS,OACjBC,EAAQ2B,OAASD,GAGnB,IAAK7b,EAAOuc,eAaV,OAZKlyB,EAAEf,OAAOwY,QAAQpM,EAAK2mB,qBACzBrc,EAAOyb,YAAa,QAElB/lB,EAAKglB,YACPxtB,OAAOC,OAAOgtB,EAAS,CACrBV,OAAQS,EACR4B,OAAQD,EACRF,SAAUzB,EACV0B,SAAUC,IAEZnmB,EAAKwmB,eAAiB1nB,MAI1B,GAAIgM,EAAOwc,sBAAwBxc,EAAO5M,KACxC,GAAIoM,EAAOiJ,cAET,GAAI4S,EAAQ1B,EAAQ2B,QAAU9b,EAAOI,WAAaJ,EAAOmQ,gBAAkB0L,EAAQ1B,EAAQ2B,QAAU9b,EAAOI,WAAaJ,EAAOuP,eAG9H,OAFA7Z,EAAKglB,WAAY,OACjBhlB,EAAKilB,SAAU,QAGZ,GAAIT,EAAQC,EAAQV,QAAUzZ,EAAOI,WAAaJ,EAAOmQ,gBAAkB+J,EAAQC,EAAQV,QAAUzZ,EAAOI,WAAaJ,EAAOuP,eACrI,OAGJ,GAAI9kB,EAASsQ,eACP1Q,EAAEf,SAAWmB,EAASsQ,eAAiB1Q,EAAEf,OAAOwY,QAAQpM,EAAK2mB,mBAG/D,OAFA3mB,EAAKilB,SAAU,OACf3a,EAAOyb,YAAa,GAIpB/lB,EAAKqmB,qBACP/b,EAAO0G,KAAK,YAAarc,GAE3B8vB,EAAQ8C,UAAY9C,EAAQwB,SAC5BxB,EAAQ+C,UAAY/C,EAAQyB,SAC5BzB,EAAQwB,SAAWzB,EACnBC,EAAQyB,SAAWC,EACnB,MAAMsB,EAAQhD,EAAQwB,SAAWxB,EAAQV,OACnC2D,EAAQjD,EAAQyB,SAAWzB,EAAQ2B,OACzC,GAAI9b,EAAOQ,OAAOyW,WAAa9V,KAAKkc,KAAKF,GAAS,EAAIC,GAAS,GAAKpd,EAAOQ,OAAOyW,UAAW,OAC7F,QAAgC,IAArBvhB,EAAKsmB,YAA6B,CAC3C,IAAIsB,EACAtd,EAAOgJ,gBAAkBmR,EAAQyB,WAAazB,EAAQ2B,QAAU9b,EAAOiJ,cAAgBkR,EAAQwB,WAAaxB,EAAQV,OACtH/jB,EAAKsmB,aAAc,EAGfmB,EAAQA,EAAQC,EAAQA,GAAS,KACnCE,EAA4D,IAA/Cnc,KAAKoc,MAAMpc,KAAKkL,IAAI+Q,GAAQjc,KAAKkL,IAAI8Q,IAAgBhc,KAAKK,GACvE9L,EAAKsmB,YAAchc,EAAOgJ,eAAiBsU,EAAa9c,EAAO8c,WAAa,GAAKA,EAAa9c,EAAO8c,YAY3G,GARI5nB,EAAKsmB,aACPhc,EAAO0G,KAAK,oBAAqBrc,QAEH,IAArBqL,EAAKumB,cACV9B,EAAQwB,WAAaxB,EAAQV,QAAUU,EAAQyB,WAAazB,EAAQ2B,SACtEpmB,EAAKumB,aAAc,IAGnBvmB,EAAKsmB,aAA0B,cAAX3xB,EAAEC,MAAwBoL,EAAK8nB,gCAErD,YADA9nB,EAAKglB,WAAY,GAGnB,IAAKhlB,EAAKumB,YACR,OAEFjc,EAAOyb,YAAa,GACfjb,EAAO2K,SAAW9gB,EAAEozB,YACvBpzB,EAAEM,iBAEA6V,EAAOkd,2BAA6Bld,EAAOmd,QAC7CtzB,EAAEuzB,kBAEJ,IAAI7E,EAAO/Y,EAAOgJ,eAAiBmU,EAAQC,EACvCS,EAAc7d,EAAOgJ,eAAiBmR,EAAQwB,SAAWxB,EAAQ8C,UAAY9C,EAAQyB,SAAWzB,EAAQ+C,UACxG1c,EAAOsd,iBACT/E,EAAO5X,KAAKkL,IAAI0M,IAASpP,EAAM,GAAK,GACpCkU,EAAc1c,KAAKkL,IAAIwR,IAAgBlU,EAAM,GAAK,IAEpDwQ,EAAQpB,KAAOA,EACfA,GAAQvY,EAAOud,WACXpU,IACFoP,GAAQA,EACR8E,GAAeA,GAEjB,MAAMG,EAAuBhe,EAAOie,iBACpCje,EAAOmc,eAAiBpD,EAAO,EAAI,OAAS,OAC5C/Y,EAAOie,iBAAmBJ,EAAc,EAAI,OAAS,OACrD,MAAMK,EAASle,EAAOQ,OAAO5M,OAAS4M,EAAO2K,QACvCgT,EAA2C,SAA5Bne,EAAOie,kBAA+Bje,EAAOiV,gBAA8C,SAA5BjV,EAAOie,kBAA+Bje,EAAOkV,eACjI,IAAKxf,EAAKilB,QAAS,CAQjB,GAPIuD,GAAUC,GACZne,EAAO8V,QAAQ,CACb7jB,UAAW+N,EAAOmc,iBAGtBzmB,EAAKujB,eAAiBjZ,EAAO9C,eAC7B8C,EAAOyO,cAAc,GACjBzO,EAAOoU,UAAW,CACpB,MAAMgK,EAAM,IAAI31B,OAAOoC,YAAY,gBAAiB,CAClDwzB,SAAS,EACTZ,YAAY,EACZ3yB,OAAQ,CACNwzB,mBAAmB,KAGvBte,EAAOU,UAAU9V,cAAcwzB,GAEjC1oB,EAAK6oB,qBAAsB,GAEvB/d,EAAOge,aAAyC,IAA1Bxe,EAAOiV,iBAAqD,IAA1BjV,EAAOkV,gBACjElV,EAAOye,eAAc,GAEvBze,EAAO0G,KAAK,kBAAmBrc,GAIjC,IADA,IAAIkK,MAAO0M,UACPvL,EAAKilB,SAAWjlB,EAAK0mB,oBAAsB4B,IAAyBhe,EAAOie,kBAAoBC,GAAUC,GAAgBhd,KAAKkL,IAAI0M,IAAS,EAU7I,OATA7rB,OAAOC,OAAOgtB,EAAS,CACrBV,OAAQS,EACR4B,OAAQD,EACRF,SAAUzB,EACV0B,SAAUC,EACV5C,eAAgBvjB,EAAK+d,mBAEvB/d,EAAKgpB,eAAgB,OACrBhpB,EAAKujB,eAAiBvjB,EAAK+d,kBAG7BzT,EAAO0G,KAAK,aAAcrc,GAC1BqL,EAAKilB,SAAU,EACfjlB,EAAK+d,iBAAmBsF,EAAOrjB,EAAKujB,eACpC,IAAI0F,GAAsB,EACtBC,EAAkBpe,EAAOoe,gBAiD7B,GAhDIpe,EAAOwc,sBACT4B,EAAkB,GAEhB7F,EAAO,GACLmF,GAAUC,GAA8BzoB,EAAK0mB,oBAAsB1mB,EAAK+d,kBAAoBjT,EAAO0K,eAAiBlL,EAAOuP,eAAiBvP,EAAOmK,gBAAgBnK,EAAOmI,YAAc,GAAKnI,EAAOuP,iBACtMvP,EAAO8V,QAAQ,CACb7jB,UAAW,OACXyhB,cAAc,EACdZ,iBAAkB,IAGlBpd,EAAK+d,iBAAmBzT,EAAOuP,iBACjCoP,GAAsB,EAClBne,EAAOqe,aACTnpB,EAAK+d,iBAAmBzT,EAAOuP,eAAiB,IAAMvP,EAAOuP,eAAiB7Z,EAAKujB,eAAiBF,IAAS6F,KAGxG7F,EAAO,IACZmF,GAAUC,GAA8BzoB,EAAK0mB,oBAAsB1mB,EAAK+d,kBAAoBjT,EAAO0K,eAAiBlL,EAAOmQ,eAAiBnQ,EAAOmK,gBAAgBnK,EAAOmK,gBAAgBlhB,OAAS,GAAK+W,EAAOmQ,iBACjNnQ,EAAO8V,QAAQ,CACb7jB,UAAW,OACXyhB,cAAc,EACdZ,iBAAkB9S,EAAO4H,OAAO3e,QAAmC,SAAzBuX,EAAOwH,cAA2BhI,EAAOiI,uBAAyB9G,KAAK+G,KAAK1J,WAAWgC,EAAOwH,cAAe,QAGvJtS,EAAK+d,iBAAmBzT,EAAOmQ,iBACjCwO,GAAsB,EAClBne,EAAOqe,aACTnpB,EAAK+d,iBAAmBzT,EAAOmQ,eAAiB,GAAKnQ,EAAOmQ,eAAiBza,EAAKujB,eAAiBF,IAAS6F,KAI9GD,IACFt0B,EAAE0yB,yBAA0B,IAIzB/c,EAAOiV,gBAA4C,SAA1BjV,EAAOmc,gBAA6BzmB,EAAK+d,iBAAmB/d,EAAKujB,iBAC7FvjB,EAAK+d,iBAAmB/d,EAAKujB,iBAE1BjZ,EAAOkV,gBAA4C,SAA1BlV,EAAOmc,gBAA6BzmB,EAAK+d,iBAAmB/d,EAAKujB,iBAC7FvjB,EAAK+d,iBAAmB/d,EAAKujB,gBAE1BjZ,EAAOkV,gBAAmBlV,EAAOiV,iBACpCvf,EAAK+d,iBAAmB/d,EAAKujB,gBAI3BzY,EAAOyW,UAAY,EAAG,CACxB,KAAI9V,KAAKkL,IAAI0M,GAAQvY,EAAOyW,WAAavhB,EAAK0mB,oBAW5C,YADA1mB,EAAK+d,iBAAmB/d,EAAKujB,gBAT7B,IAAKvjB,EAAK0mB,mBAMR,OALA1mB,EAAK0mB,oBAAqB,EAC1BjC,EAAQV,OAASU,EAAQwB,SACzBxB,EAAQ2B,OAAS3B,EAAQyB,SACzBlmB,EAAK+d,iBAAmB/d,EAAKujB,oBAC7BkB,EAAQpB,KAAO/Y,EAAOgJ,eAAiBmR,EAAQwB,SAAWxB,EAAQV,OAASU,EAAQyB,SAAWzB,EAAQ2B,QAQvGtb,EAAOse,eAAgBte,EAAO2K,WAG/B3K,EAAOmc,UAAYnc,EAAOmc,SAASxlB,SAAW6I,EAAO2c,UAAYnc,EAAOwN,uBAC1EhO,EAAOmS,oBACPnS,EAAOkR,uBAEL1Q,EAAOmc,UAAYnc,EAAOmc,SAASxlB,SAAW6I,EAAO2c,UACvD3c,EAAO2c,SAASC,cAGlB5c,EAAOgQ,eAAeta,EAAK+d,kBAE3BzT,EAAO0T,aAAahe,EAAK+d,mBAG3B,SAASsL,GAAW/Y,GAClB,MAAMhG,EAAShX,KACT0M,EAAOsK,EAAOgZ,gBACpB,IAEI6D,EAFAxyB,EAAI2b,EACJ3b,EAAEwvB,gBAAexvB,EAAIA,EAAEwvB,eAG3B,GADgC,aAAXxvB,EAAEC,MAAkC,gBAAXD,EAAEC,MAO9C,GADAuyB,EAAc,IAAIxyB,EAAEyyB,gBAAgB3d,QAAOrW,GAAKA,EAAEmxB,aAAevkB,EAAKskB,UAAS,IAC1E6C,GAAeA,EAAY5C,aAAevkB,EAAKskB,QAAS,WAN5C,CACjB,GAAqB,OAAjBtkB,EAAKskB,QAAkB,OAC3B,GAAI3vB,EAAEyvB,YAAcpkB,EAAKokB,UAAW,OACpC+C,EAAcxyB,EAKhB,GAAI,CAAC,gBAAiB,aAAc,eAAgB,eAAe2a,SAAS3a,EAAEC,MAAO,CAEnF,KADgB,CAAC,gBAAiB,eAAe0a,SAAS3a,EAAEC,QAAU0V,EAAOmD,QAAQ2B,UAAY9E,EAAOmD,QAAQkC,YAE9G,OAGJ3P,EAAKokB,UAAY,KACjBpkB,EAAKskB,QAAU,KACf,MAAMxZ,OACJA,EADI2Z,QAEJA,EACAzQ,aAAcC,EAHVO,WAIJA,EAJI/S,QAKJA,GACE6I,EACJ,IAAK7I,EAAS,OACd,IAAKqJ,EAAO4Z,eAAmC,UAAlB/vB,EAAEgwB,YAAyB,OAKxD,GAJI3kB,EAAKqmB,qBACP/b,EAAO0G,KAAK,WAAYrc,GAE1BqL,EAAKqmB,qBAAsB,GACtBrmB,EAAKglB,UAMR,OALIhlB,EAAKilB,SAAWna,EAAOge,YACzBxe,EAAOye,eAAc,GAEvB/oB,EAAKilB,SAAU,OACfjlB,EAAKumB,aAAc,GAKjBzb,EAAOge,YAAc9oB,EAAKilB,SAAWjlB,EAAKglB,aAAwC,IAA1B1a,EAAOiV,iBAAqD,IAA1BjV,EAAOkV,iBACnGlV,EAAOye,eAAc,GAIvB,MAAMO,EAAexqB,IACfyqB,EAAWD,EAAetpB,EAAKwmB,eAGrC,GAAIlc,EAAOyb,WAAY,CACrB,MAAMyD,EAAW70B,EAAE6oB,MAAQ7oB,EAAE0wB,cAAgB1wB,EAAE0wB,eAC/C/a,EAAOiT,mBAAmBiM,GAAYA,EAAS,IAAM70B,EAAEf,OAAQ41B,GAC/Dlf,EAAO0G,KAAK,YAAarc,GACrB40B,EAAW,KAAOD,EAAetpB,EAAKypB,cAAgB,KACxDnf,EAAO0G,KAAK,wBAAyBrc,GAOzC,GAJAqL,EAAKypB,cAAgB3qB,IACrBwI,GAAS,KACFgD,EAAO+F,YAAW/F,EAAOyb,YAAa,OAExC/lB,EAAKglB,YAAchlB,EAAKilB,UAAY3a,EAAOmc,gBAAmC,IAAjBhC,EAAQpB,OAAerjB,EAAKgpB,eAAiBhpB,EAAK+d,mBAAqB/d,EAAKujB,iBAAmBvjB,EAAKgpB,cAIpK,OAHAhpB,EAAKglB,WAAY,EACjBhlB,EAAKilB,SAAU,OACfjlB,EAAKumB,aAAc,GAMrB,IAAImD,EAMJ,GATA1pB,EAAKglB,WAAY,EACjBhlB,EAAKilB,SAAU,EACfjlB,EAAKumB,aAAc,EAGjBmD,EADE5e,EAAOse,aACInV,EAAM3J,EAAOI,WAAaJ,EAAOI,WAEhC1K,EAAK+d,iBAEjBjT,EAAO2K,QACT,OAEF,GAAI3K,EAAOmc,UAAYnc,EAAOmc,SAASxlB,QAIrC,YAHA6I,EAAO2c,SAASoC,WAAW,CACzBK,WAAAA,IAMJ,MAAMC,EAAcD,IAAepf,EAAOmQ,iBAAmBnQ,EAAOQ,OAAO5M,KAC3E,IAAI0rB,EAAY,EACZtS,EAAYhN,EAAOmK,gBAAgB,GACvC,IAAK,IAAIphB,EAAI,EAAGA,EAAImhB,EAAWjhB,OAAQF,GAAKA,EAAIyX,EAAO+L,mBAAqB,EAAI/L,EAAO8L,eAAgB,CACrG,MAAM6J,EAAYptB,EAAIyX,EAAO+L,mBAAqB,EAAI,EAAI/L,EAAO8L,oBACxB,IAA9BpC,EAAWnhB,EAAIotB,IACpBkJ,GAAeD,GAAclV,EAAWnhB,IAAMq2B,EAAalV,EAAWnhB,EAAIotB,MAC5EmJ,EAAYv2B,EACZikB,EAAY9C,EAAWnhB,EAAIotB,GAAajM,EAAWnhB,KAE5Cs2B,GAAeD,GAAclV,EAAWnhB,MACjDu2B,EAAYv2B,EACZikB,EAAY9C,EAAWA,EAAWjhB,OAAS,GAAKihB,EAAWA,EAAWjhB,OAAS,IAGnF,IAAIs2B,EAAmB,KACnBC,EAAkB,KAClBhf,EAAOoI,SACL5I,EAAOoQ,YACToP,EAAkBhf,EAAOsJ,SAAWtJ,EAAOsJ,QAAQ3S,SAAW6I,EAAO8J,QAAU9J,EAAO8J,QAAQlC,OAAO3e,OAAS,EAAI+W,EAAO4H,OAAO3e,OAAS,EAChI+W,EAAOqQ,QAChBkP,EAAmB,IAIvB,MAAME,GAASL,EAAalV,EAAWoV,IAActS,EAC/CmJ,EAAYmJ,EAAY9e,EAAO+L,mBAAqB,EAAI,EAAI/L,EAAO8L,eACzE,GAAI2S,EAAWze,EAAOkf,aAAc,CAElC,IAAKlf,EAAOmf,WAEV,YADA3f,EAAO4U,QAAQ5U,EAAOmI,aAGM,SAA1BnI,EAAOmc,iBACLsD,GAASjf,EAAOof,gBAAiB5f,EAAO4U,QAAQpU,EAAOoI,QAAU5I,EAAOqQ,MAAQkP,EAAmBD,EAAYnJ,GAAgBnW,EAAO4U,QAAQ0K,IAEtH,SAA1Btf,EAAOmc,iBACLsD,EAAQ,EAAIjf,EAAOof,gBACrB5f,EAAO4U,QAAQ0K,EAAYnJ,GACE,OAApBqJ,GAA4BC,EAAQ,GAAKte,KAAKkL,IAAIoT,GAASjf,EAAOof,gBAC3E5f,EAAO4U,QAAQ4K,GAEfxf,EAAO4U,QAAQ0K,QAGd,CAEL,IAAK9e,EAAOqf,YAEV,YADA7f,EAAO4U,QAAQ5U,EAAOmI,aAGEnI,EAAOjO,aAAe1H,EAAEf,SAAW0W,EAAOjO,WAAW+tB,QAAUz1B,EAAEf,SAAW0W,EAAOjO,WAAWguB,QAQ7G11B,EAAEf,SAAW0W,EAAOjO,WAAW+tB,OACxC9f,EAAO4U,QAAQ0K,EAAYnJ,GAE3BnW,EAAO4U,QAAQ0K,IATe,SAA1Btf,EAAOmc,gBACTnc,EAAO4U,QAA6B,OAArB2K,EAA4BA,EAAmBD,EAAYnJ,GAE9C,SAA1BnW,EAAOmc,gBACTnc,EAAO4U,QAA4B,OAApB4K,EAA2BA,EAAkBF,KAUpE,SAASU,KACP,MAAMhgB,EAAShX,MACTwX,OACJA,EADIrD,GAEJA,GACE6C,EACJ,GAAI7C,GAAyB,IAAnBA,EAAGhR,YAAmB,OAG5BqU,EAAOiL,aACTzL,EAAOigB,gBAIT,MAAMhL,eACJA,EADIC,eAEJA,EAFIjL,SAGJA,GACEjK,EACE6J,EAAY7J,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAG1D6I,EAAOiV,gBAAiB,EACxBjV,EAAOkV,gBAAiB,EACxBlV,EAAO8I,aACP9I,EAAOoJ,eACPpJ,EAAOkR,sBACP,MAAMgP,EAAgBrW,GAAarJ,EAAO5M,OACZ,SAAzB4M,EAAOwH,eAA4BxH,EAAOwH,cAAgB,KAAMhI,EAAOqQ,OAAUrQ,EAAOoQ,aAAgBpQ,EAAOQ,OAAO0K,gBAAmBgV,EAGxIlgB,EAAOQ,OAAO5M,OAASiW,EACzB7J,EAAOyV,YAAYzV,EAAO6I,UAAW,GAAG,GAAO,GAE/C7I,EAAO4U,QAAQ5U,EAAOmI,YAAa,GAAG,GAAO,GAL/CnI,EAAO4U,QAAQ5U,EAAO4H,OAAO3e,OAAS,EAAG,GAAG,GAAO,GAQjD+W,EAAOmgB,UAAYngB,EAAOmgB,SAASC,SAAWpgB,EAAOmgB,SAASE,SAChExrB,aAAamL,EAAOmgB,SAASG,eAC7BtgB,EAAOmgB,SAASG,cAAgB7rB,YAAW,KACrCuL,EAAOmgB,UAAYngB,EAAOmgB,SAASC,SAAWpgB,EAAOmgB,SAASE,QAChErgB,EAAOmgB,SAASI,WAEjB,MAGLvgB,EAAOkV,eAAiBA,EACxBlV,EAAOiV,eAAiBA,EACpBjV,EAAOQ,OAAOsN,eAAiB7D,IAAajK,EAAOiK,UACrDjK,EAAO+N,gBAIX,SAASyS,GAAQn2B,GACf,MAAM2V,EAAShX,KACVgX,EAAO7I,UACP6I,EAAOyb,aACNzb,EAAOQ,OAAOigB,eAAep2B,EAAEM,iBAC/BqV,EAAOQ,OAAOkgB,0BAA4B1gB,EAAOoU,YACnD/pB,EAAEuzB,kBACFvzB,EAAEs2B,8BAKR,SAASC,KACP,MAAM5gB,EAAShX,MACT0X,UACJA,EADIgJ,aAEJA,EAFIvS,QAGJA,GACE6I,EACJ,IAAK7I,EAAS,OAWd,IAAIyc,EAVJ5T,EAAO+T,kBAAoB/T,EAAOI,UAC9BJ,EAAOgJ,eACThJ,EAAOI,WAAaM,EAAUmgB,WAE9B7gB,EAAOI,WAAaM,EAAU7O,UAGP,IAArBmO,EAAOI,YAAiBJ,EAAOI,UAAY,GAC/CJ,EAAOmS,oBACPnS,EAAOkR,sBAEP,MAAMhB,EAAiBlQ,EAAOmQ,eAAiBnQ,EAAOuP,eAEpDqE,EADqB,IAAnB1D,EACY,GAEClQ,EAAOI,UAAYJ,EAAOuP,gBAAkBW,EAEzD0D,IAAgB5T,EAAOkB,UACzBlB,EAAOgQ,eAAetG,GAAgB1J,EAAOI,UAAYJ,EAAOI,WAElEJ,EAAO0G,KAAK,eAAgB1G,EAAOI,WAAW,GAGhD,SAAS0gB,GAAOz2B,GACd,MAAM2V,EAAShX,KACfme,GAAqBnH,EAAQ3V,EAAEf,QAC3B0W,EAAOQ,OAAO2K,SAA2C,SAAhCnL,EAAOQ,OAAOwH,gBAA6BhI,EAAOQ,OAAOyQ,YAGtFjR,EAAOzI,SAGT,SAASwpB,KACP,MAAM/gB,EAAShX,KACXgX,EAAOghB,gCACXhhB,EAAOghB,+BAAgC,EACnChhB,EAAOQ,OAAOwc,sBAChBhd,EAAO7C,GAAGtP,MAAMozB,YAAc,SAIlC,MAAMtb,GAAS,CAAC3F,EAAQtQ,KACtB,MAAMjF,EAAWuR,KACXwE,OACJA,EADIrD,GAEJA,EAFIuD,UAGJA,EAHIoD,OAIJA,GACE9D,EACEkhB,IAAY1gB,EAAOmd,OACnBwD,EAAuB,OAAXzxB,EAAkB,mBAAqB,sBACnD0xB,EAAe1xB,EAGrBjF,EAAS02B,GAAW,aAAcnhB,EAAO+gB,qBAAsB,CAC7DtwB,SAAS,EACTywB,QAAAA,IAEF/jB,EAAGgkB,GAAW,aAAcnhB,EAAO4Z,aAAc,CAC/CnpB,SAAS,IAEX0M,EAAGgkB,GAAW,cAAenhB,EAAO4Z,aAAc,CAChDnpB,SAAS,IAEXhG,EAAS02B,GAAW,YAAanhB,EAAO4c,YAAa,CACnDnsB,SAAS,EACTywB,QAAAA,IAEFz2B,EAAS02B,GAAW,cAAenhB,EAAO4c,YAAa,CACrDnsB,SAAS,EACTywB,QAAAA,IAEFz2B,EAAS02B,GAAW,WAAYnhB,EAAO+e,WAAY,CACjDtuB,SAAS,IAEXhG,EAAS02B,GAAW,YAAanhB,EAAO+e,WAAY,CAClDtuB,SAAS,IAEXhG,EAAS02B,GAAW,gBAAiBnhB,EAAO+e,WAAY,CACtDtuB,SAAS,IAEXhG,EAAS02B,GAAW,cAAenhB,EAAO+e,WAAY,CACpDtuB,SAAS,IAEXhG,EAAS02B,GAAW,aAAcnhB,EAAO+e,WAAY,CACnDtuB,SAAS,IAEXhG,EAAS02B,GAAW,eAAgBnhB,EAAO+e,WAAY,CACrDtuB,SAAS,IAEXhG,EAAS02B,GAAW,cAAenhB,EAAO+e,WAAY,CACpDtuB,SAAS,KAIP+P,EAAOigB,eAAiBjgB,EAAOkgB,2BACjCvjB,EAAGgkB,GAAW,QAASnhB,EAAOwgB,SAAS,GAErChgB,EAAO2K,SACTzK,EAAUygB,GAAW,SAAUnhB,EAAO4gB,UAIpCpgB,EAAO6gB,qBACTrhB,EAAOohB,GAActd,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyBgc,IAAU,GAEnIhgB,EAAOohB,GAAc,iBAAkBpB,IAAU,GAInD7iB,EAAGgkB,GAAW,OAAQnhB,EAAO8gB,OAAQ,CACnCI,SAAS,KA4Bb,MAAMI,GAAgB,CAACthB,EAAQQ,IACtBR,EAAOoI,MAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,EAkO1D,IAIIkZ,GAAW,CACbC,MAAM,EACNvvB,UAAW,aACX6rB,gBAAgB,EAChB2D,sBAAuB,mBACvBlH,kBAAmB,UACnBhF,aAAc,EACd9U,MAAO,IACP0K,SAAS,EACTkW,sBAAsB,EACtBK,gBAAgB,EAChB/D,QAAQ,EACRgE,gBAAgB,EAChBC,aAAc,SACdzqB,SAAS,EACTklB,kBAAmB,wDAEnBnY,MAAO,KACP1S,OAAQ,KAER6iB,gCAAgC,EAEhCjY,UAAW,KACXylB,IAAK,KAELnI,oBAAoB,EACpBC,mBAAoB,GAEpB1I,YAAY,EAEZxE,gBAAgB,EAEhB+G,kBAAkB,EAElBhH,OAAQ,QAIRf,iBAAa3T,EACbgqB,gBAAiB,SAEjBpX,aAAc,EACd1C,cAAe,EACfsE,eAAgB,EAChBC,mBAAoB,EACpB2J,oBAAoB,EACpBhL,gBAAgB,EAChBgC,sBAAsB,EACtB7C,mBAAoB,EAEpBE,kBAAmB,EAEnBmI,qBAAqB,EACrBnF,0BAA0B,EAE1BO,eAAe,EAEf/B,cAAc,EAEdgS,WAAY,EACZT,WAAY,GACZlD,eAAe,EACfyF,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBF,aAAc,IACdZ,cAAc,EACdvC,gBAAgB,EAChBtF,UAAW,EACXyG,0BAA0B,EAC1BlB,0BAA0B,EAC1BC,+BAA+B,EAC/BO,qBAAqB,EAErB+E,mBAAmB,EAEnBlD,YAAY,EACZD,gBAAiB,IAEjB5Q,qBAAqB,EAErBwQ,YAAY,EAEZiC,eAAe,EACfC,0BAA0B,EAC1BnN,qBAAqB,EAErB3f,MAAM,EACNkkB,oBAAoB,EACpBG,qBAAsB,EACtB7B,qBAAqB,EAErBxN,QAAQ,EAERsM,gBAAgB,EAChBD,gBAAgB,EAChByG,aAAc,KAEdR,WAAW,EACXL,eAAgB,oBAChBG,kBAAmB,KAEnBgH,kBAAkB,EAClB3T,wBAAyB,GAEzBF,uBAAwB,UAExB5G,WAAY,eACZqQ,gBAAiB,qBACjB7F,iBAAkB,sBAClBlC,kBAAmB,uBACnBC,uBAAwB,6BACxBkC,eAAgB,oBAChBC,eAAgB,oBAChBgQ,aAAc,iBACdxa,mBAAoB,wBACpBM,oBAAqB,EAErBiL,oBAAoB,EAEpBkP,cAAc,GAGhB,SAASC,GAAmB3hB,EAAQ4hB,GAClC,OAAO,SAAsB3nB,QACf,IAARA,IACFA,EAAM,IAER,MAAM4nB,EAAkBn1B,OAAO0N,KAAKH,GAAK,GACnC6nB,EAAe7nB,EAAI4nB,GACG,iBAAjBC,GAA8C,OAAjBA,IAIR,IAA5B9hB,EAAO6hB,KACT7hB,EAAO6hB,GAAmB,CACxBlrB,SAAS,IAGW,eAApBkrB,GAAoC7hB,EAAO6hB,IAAoB7hB,EAAO6hB,GAAiBlrB,UAAYqJ,EAAO6hB,GAAiBtC,SAAWvf,EAAO6hB,GAAiBvC,SAChKtf,EAAO6hB,GAAiBE,MAAO,GAE7B,CAAC,aAAc,aAAavsB,QAAQqsB,IAAoB,GAAK7hB,EAAO6hB,IAAoB7hB,EAAO6hB,GAAiBlrB,UAAYqJ,EAAO6hB,GAAiBllB,KACtJqD,EAAO6hB,GAAiBE,MAAO,GAE3BF,KAAmB7hB,GAAU,YAAa8hB,GAIT,iBAA5B9hB,EAAO6hB,IAAmC,YAAa7hB,EAAO6hB,KACvE7hB,EAAO6hB,GAAiBlrB,SAAU,GAE/BqJ,EAAO6hB,KAAkB7hB,EAAO6hB,GAAmB,CACtDlrB,SAAS,IAEXuD,EAAO0nB,EAAkB3nB,IATvBC,EAAO0nB,EAAkB3nB,IAfzBC,EAAO0nB,EAAkB3nB,IA6B/B,MAAM+nB,GAAa,CACjB9c,cAAAA,GACAnO,OAAAA,GACA6I,UAAAA,GACAqiB,WAh4De,CACfhU,cA/EF,SAAuBlO,EAAUoT,GAC/B,MAAM3T,EAAShX,KACVgX,EAAOQ,OAAO2K,UACjBnL,EAAOU,UAAU7S,MAAM60B,mBAAsB,GAAEniB,MAC/CP,EAAOU,UAAU7S,MAAM80B,gBAA+B,IAAbpiB,EAAkB,MAAO,IAEpEP,EAAO0G,KAAK,gBAAiBnG,EAAUoT,IA0EvCwB,gBAzCF,SAAyBlB,EAAchiB,QAChB,IAAjBgiB,IACFA,GAAe,GAEjB,MAAMjU,EAAShX,MACTwX,OACJA,GACER,EACAQ,EAAO2K,UACP3K,EAAOyQ,YACTjR,EAAOsO,mBAEToG,GAAe,CACb1U,OAAAA,EACAiU,aAAAA,EACAhiB,UAAAA,EACA0iB,KAAM,YA0BRS,cAtBF,SAAuBnB,EAAchiB,QACd,IAAjBgiB,IACFA,GAAe,GAEjB,MAAMjU,EAAShX,MACTwX,OACJA,GACER,EACJA,EAAOoU,WAAY,EACf5T,EAAO2K,UACXnL,EAAOyO,cAAc,GACrBiG,GAAe,CACb1U,OAAAA,EACAiU,aAAAA,EACAhiB,UAAAA,EACA0iB,KAAM,WAq4DRjJ,MAAAA,GACA9X,KAAAA,GACA4qB,WA9oCe,CACfC,cAjCF,SAAuBmE,GACrB,MAAM5iB,EAAShX,KACf,IAAKgX,EAAOQ,OAAO4Z,eAAiBpa,EAAOQ,OAAOsN,eAAiB9N,EAAO6iB,UAAY7iB,EAAOQ,OAAO2K,QAAS,OAC7G,MAAMhO,EAAyC,cAApC6C,EAAOQ,OAAO+Z,kBAAoCva,EAAO7C,GAAK6C,EAAOU,UAC5EV,EAAOsH,YACTtH,EAAO2Y,qBAAsB,GAE/Bxb,EAAGtP,MAAMi1B,OAAS,OAClB3lB,EAAGtP,MAAMi1B,OAASF,EAAS,WAAa,OACpC5iB,EAAOsH,WACTlW,uBAAsB,KACpB4O,EAAO2Y,qBAAsB,MAuBjCoK,gBAlBF,WACE,MAAM/iB,EAAShX,KACXgX,EAAOQ,OAAOsN,eAAiB9N,EAAO6iB,UAAY7iB,EAAOQ,OAAO2K,UAGhEnL,EAAOsH,YACTtH,EAAO2Y,qBAAsB,GAE/B3Y,EAA2C,cAApCA,EAAOQ,OAAO+Z,kBAAoC,KAAO,aAAa1sB,MAAMi1B,OAAS,GACxF9iB,EAAOsH,WACTlW,uBAAsB,KACpB4O,EAAO2Y,qBAAsB,QAopCjChT,OApZa,CACbqd,aArBF,WACE,MAAMhjB,EAAShX,MACTwX,OACJA,GACER,EACJA,EAAO4Z,aAAeA,GAAa9vB,KAAKkW,GACxCA,EAAO4c,YAAcA,GAAY9yB,KAAKkW,GACtCA,EAAO+e,WAAaA,GAAWj1B,KAAKkW,GACpCA,EAAO+gB,qBAAuBA,GAAqBj3B,KAAKkW,GACpDQ,EAAO2K,UACTnL,EAAO4gB,SAAWA,GAAS92B,KAAKkW,IAElCA,EAAOwgB,QAAUA,GAAQ12B,KAAKkW,GAC9BA,EAAO8gB,OAASA,GAAOh3B,KAAKkW,GAC5B2F,GAAO3F,EAAQ,OAQfijB,aANF,WAEEtd,GADe3c,KACA,SAuZfyiB,YAjRgB,CAChBwU,cA7HF,WACE,MAAMjgB,EAAShX,MACT6f,UACJA,EADIkK,YAEJA,EAFIvS,OAGJA,EAHIrD,GAIJA,GACE6C,EACEyL,EAAcjL,EAAOiL,YAC3B,IAAKA,GAAeA,GAAmD,IAApCve,OAAO0N,KAAK6Q,GAAaxiB,OAAc,OAG1E,MAAMi6B,EAAaljB,EAAOmjB,cAAc1X,EAAazL,EAAOQ,OAAOshB,gBAAiB9hB,EAAO7C,IAC3F,IAAK+lB,GAAcljB,EAAOojB,oBAAsBF,EAAY,OAC5D,MACMG,GADuBH,KAAczX,EAAcA,EAAYyX,QAAcprB,IAClCkI,EAAOsjB,eAClDC,EAAcjC,GAActhB,EAAQQ,GACpCgjB,EAAalC,GAActhB,EAAQqjB,GACnCI,EAAgBzjB,EAAOQ,OAAOge,WAC9BkF,EAAeL,EAAiB7E,WAChCmF,EAAanjB,EAAOrJ,QACtBosB,IAAgBC,GAClBrmB,EAAGhS,UAAUC,OAAQ,GAAEoV,EAAO2N,6BAA+B,GAAE3N,EAAO2N,qCACtEnO,EAAO4jB,yBACGL,GAAeC,IACzBrmB,EAAGhS,UAAUM,IAAK,GAAE+U,EAAO2N,+BACvBkV,EAAiBjb,KAAK8P,MAAuC,WAA/BmL,EAAiBjb,KAAK8P,OAAsBmL,EAAiBjb,KAAK8P,MAA6B,WAArB1X,EAAO4H,KAAK8P,OACtH/a,EAAGhS,UAAUM,IAAK,GAAE+U,EAAO2N,qCAE7BnO,EAAO4jB,wBAELH,IAAkBC,EACpB1jB,EAAO+iB,mBACGU,GAAiBC,GAC3B1jB,EAAOye,gBAIT,CAAC,aAAc,aAAc,aAAa71B,SAAQ6Z,IAChD,QAAsC,IAA3B4gB,EAAiB5gB,GAAuB,OACnD,MAAMohB,EAAmBrjB,EAAOiC,IAASjC,EAAOiC,GAAMtL,QAChD2sB,EAAkBT,EAAiB5gB,IAAS4gB,EAAiB5gB,GAAMtL,QACrE0sB,IAAqBC,GACvB9jB,EAAOyC,GAAM7K,WAEVisB,GAAoBC,GACvB9jB,EAAOyC,GAAM9K,YAGjB,MAAMosB,EAAmBV,EAAiBpxB,WAAaoxB,EAAiBpxB,YAAcuO,EAAOvO,UACvF+xB,EAAcxjB,EAAO5M,OAASyvB,EAAiBrb,gBAAkBxH,EAAOwH,eAAiB+b,GACzFE,EAAUzjB,EAAO5M,KACnBmwB,GAAoBhR,GACtB/S,EAAOkkB,kBAETxpB,EAAOsF,EAAOQ,OAAQ6iB,GACtB,MAAMc,EAAYnkB,EAAOQ,OAAOrJ,QAC1BitB,EAAUpkB,EAAOQ,OAAO5M,KAC9B1G,OAAOC,OAAO6S,EAAQ,CACpBuc,eAAgBvc,EAAOQ,OAAO+b,eAC9BtH,eAAgBjV,EAAOQ,OAAOyU,eAC9BC,eAAgBlV,EAAOQ,OAAO0U,iBAE5ByO,IAAeQ,EACjBnkB,EAAOpI,WACG+rB,GAAcQ,GACxBnkB,EAAOrI,SAETqI,EAAOojB,kBAAoBF,EAC3BljB,EAAO0G,KAAK,oBAAqB2c,GAC7BtQ,IACEiR,GACFhkB,EAAOqZ,cACPrZ,EAAOuX,WAAW1O,GAClB7I,EAAOoJ,iBACG6a,GAAWG,GACrBpkB,EAAOuX,WAAW1O,GAClB7I,EAAOoJ,gBACE6a,IAAYG,GACrBpkB,EAAOqZ,eAGXrZ,EAAO0G,KAAK,aAAc2c,IA4C1BF,cAzCF,SAAuB1X,EAAa0P,EAAMkJ,GAIxC,QAHa,IAATlJ,IACFA,EAAO,WAEJ1P,GAAwB,cAAT0P,IAAyBkJ,EAAa,OAC1D,IAAInB,GAAa,EACjB,MAAMz6B,EAASqU,IACTwnB,EAAyB,WAATnJ,EAAoB1yB,EAAO8F,YAAc81B,EAAYtb,aACrEwb,EAASr3B,OAAO0N,KAAK6Q,GAAa3N,KAAI0mB,IAC1C,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAMxuB,QAAQ,KAAY,CACzD,MAAMyuB,EAAWjmB,WAAWgmB,EAAME,OAAO,IAEzC,MAAO,CACL91B,MAFY01B,EAAgBG,EAG5BD,MAAAA,GAGJ,MAAO,CACL51B,MAAO41B,EACPA,MAAAA,MAGJD,EAAOI,MAAK,CAAC5mB,EAAG6mB,IAAM1b,SAASnL,EAAEnP,MAAO,IAAMsa,SAAS0b,EAAEh2B,MAAO,MAChE,IAAK,IAAI7F,EAAI,EAAGA,EAAIw7B,EAAOt7B,OAAQF,GAAK,EAAG,CACzC,MAAMy7B,MACJA,EADI51B,MAEJA,GACE21B,EAAOx7B,GACE,WAAToyB,EACE1yB,EAAOmU,WAAY,eAAchO,QAAYkT,UAC/CohB,EAAasB,GAEN51B,GAASy1B,EAAYrxB,cAC9BkwB,EAAasB,GAGjB,OAAOtB,GAAc,QAqRrBnV,cA9KoB,CACpBA,cA9BF,WACE,MAAM/N,EAAShX,MAEb65B,SAAUgC,EADNrkB,OAEJA,GACER,GACEqK,mBACJA,GACE7J,EACJ,GAAI6J,EAAoB,CACtB,MAAMuG,EAAiB5Q,EAAO4H,OAAO3e,OAAS,EACxC67B,EAAqB9kB,EAAOkK,WAAW0G,GAAkB5Q,EAAOmK,gBAAgByG,GAAuC,EAArBvG,EACxGrK,EAAO6iB,SAAW7iB,EAAO8C,KAAOgiB,OAEhC9kB,EAAO6iB,SAAsC,IAA3B7iB,EAAOiK,SAAShhB,QAEN,IAA1BuX,EAAOyU,iBACTjV,EAAOiV,gBAAkBjV,EAAO6iB,WAEJ,IAA1BriB,EAAO0U,iBACTlV,EAAOkV,gBAAkBlV,EAAO6iB,UAE9BgC,GAAaA,IAAc7kB,EAAO6iB,WACpC7iB,EAAOqQ,OAAQ,GAEbwU,IAAc7kB,EAAO6iB,UACvB7iB,EAAO0G,KAAK1G,EAAO6iB,SAAW,OAAS,YAkLzC3gB,QAjNY,CACZ6iB,WA/CF,WACE,MAAM/kB,EAAShX,MACTg8B,WACJA,EADIxkB,OAEJA,EAFImJ,IAGJA,EAHIxM,GAIJA,EAJI2G,OAKJA,GACE9D,EAEEilB,EAzBR,SAAwBC,EAASC,GAC/B,MAAMC,EAAgB,GAYtB,OAXAF,EAAQt8B,SAAQy8B,IACM,iBAATA,EACTn4B,OAAO0N,KAAKyqB,GAAMz8B,SAAQo8B,IACpBK,EAAKL,IACPI,EAAcr4B,KAAKo4B,EAASH,MAGP,iBAATK,GAChBD,EAAcr4B,KAAKo4B,EAASE,MAGzBD,EAYUE,CAAe,CAAC,cAAe9kB,EAAOvO,UAAW,CAChE,YAAa+N,EAAOQ,OAAOmc,UAAYnc,EAAOmc,SAASxlB,SACtD,CACDouB,WAAc/kB,EAAOyQ,YACpB,CACDtH,IAAOA,GACN,CACDvB,KAAQ5H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,GACzC,CACD,cAAe7H,EAAO4H,MAAQ5H,EAAO4H,KAAKC,KAAO,GAA0B,WAArB7H,EAAO4H,KAAK8P,MACjE,CACDlU,QAAWF,EAAOE,SACjB,CACDD,IAAOD,EAAOC,KACb,CACD,WAAYvD,EAAO2K,SAClB,CACDqa,SAAYhlB,EAAO2K,SAAW3K,EAAO0K,gBACpC,CACD,iBAAkB1K,EAAOwN,sBACvBxN,EAAO2N,wBACX6W,EAAWj4B,QAAQk4B,GACnB9nB,EAAGhS,UAAUM,OAAOu5B,GACpBhlB,EAAO4jB,wBAeP6B,cAZF,WACE,MACMtoB,GACJA,EADI6nB,WAEJA,GAHah8B,KAKfmU,EAAGhS,UAAUC,UAAU45B,GALRh8B,KAMR46B,0BAsNH8B,GAAmB,GACzB,MAAMC,GACJv8B,cACE,IAAI+T,EACAqD,EACJ,IAAK,IAAI4F,EAAO9Y,UAAUrE,OAAQiL,EAAO,IAAIiO,MAAMiE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EnS,EAAKmS,GAAQ/Y,UAAU+Y,GAEL,IAAhBnS,EAAKjL,QAAgBiL,EAAK,GAAG9K,aAAwE,WAAzD8D,OAAOvE,UAAU2V,SAASpV,KAAKgL,EAAK,IAAIwK,MAAM,GAAI,GAChG8B,EAAStM,EAAK,IAEbiJ,EAAIqD,GAAUtM,EAEZsM,IAAQA,EAAS,IACtBA,EAAS9F,EAAO,GAAI8F,GAChBrD,IAAOqD,EAAOrD,KAAIqD,EAAOrD,GAAKA,GAClC,MAAM1S,EAAWuR,IACjB,GAAIwE,EAAOrD,IAA2B,iBAAdqD,EAAOrD,IAAmB1S,EAASkC,iBAAiB6T,EAAOrD,IAAIlU,OAAS,EAAG,CACjG,MAAM28B,EAAU,GAQhB,OAPAn7B,EAASkC,iBAAiB6T,EAAOrD,IAAIvU,SAAQy7B,IAC3C,MAAMwB,EAAYnrB,EAAO,GAAI8F,EAAQ,CACnCrD,GAAIknB,IAENuB,EAAQ74B,KAAK,IAAI44B,GAAOE,OAGnBD,EAIT,MAAM5lB,EAAShX,KACfgX,EAAON,YAAa,EACpBM,EAAOiD,QAAUG,IACjBpD,EAAO8D,OAASL,EAAU,CACxBrH,UAAWoE,EAAOpE,YAEpB4D,EAAOmD,QAAUyB,KACjB5E,EAAO8F,gBAAkB,GACzB9F,EAAOuG,mBAAqB,GAC5BvG,EAAO8lB,QAAU,IAAI9lB,EAAO+lB,aACxBvlB,EAAOslB,SAAW3jB,MAAMC,QAAQ5B,EAAOslB,UACzC9lB,EAAO8lB,QAAQ/4B,QAAQyT,EAAOslB,SAEhC,MAAM1D,EAAmB,GACzBpiB,EAAO8lB,QAAQl9B,SAAQo9B,IACrBA,EAAI,CACFxlB,OAAAA,EACAR,OAAAA,EACAimB,aAAc9D,GAAmB3hB,EAAQ4hB,GACzCxsB,GAAIoK,EAAOpK,GAAG9L,KAAKkW,GACnBiG,KAAMjG,EAAOiG,KAAKnc,KAAKkW,GACvBlK,IAAKkK,EAAOlK,IAAIhM,KAAKkW,GACrB0G,KAAM1G,EAAO0G,KAAK5c,KAAKkW,QAK3B,MAAMkmB,EAAexrB,EAAO,GAAI6mB,GAAUa,GAqG1C,OAlGApiB,EAAOQ,OAAS9F,EAAO,GAAIwrB,EAAcR,GAAkBllB,GAC3DR,EAAOsjB,eAAiB5oB,EAAO,GAAIsF,EAAOQ,QAC1CR,EAAOmmB,aAAezrB,EAAO,GAAI8F,GAG7BR,EAAOQ,QAAUR,EAAOQ,OAAO5K,IACjC1I,OAAO0N,KAAKoF,EAAOQ,OAAO5K,IAAIhN,SAAQ2H,IACpCyP,EAAOpK,GAAGrF,EAAWyP,EAAOQ,OAAO5K,GAAGrF,OAGtCyP,EAAOQ,QAAUR,EAAOQ,OAAO8F,OACjCtG,EAAOsG,MAAMtG,EAAOQ,OAAO8F,OAI7BpZ,OAAOC,OAAO6S,EAAQ,CACpB7I,QAAS6I,EAAOQ,OAAOrJ,QACvBgG,GAAAA,EAEA6nB,WAAY,GAEZpd,OAAQ,GACRsC,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAEjBnB,aAAY,IACyB,eAA5BhJ,EAAOQ,OAAOvO,UAEvBgX,WAAU,IAC2B,aAA5BjJ,EAAOQ,OAAOvO,UAGvBkW,YAAa,EACbU,UAAW,EAEXuH,aAAa,EACbC,OAAO,EAEPjQ,UAAW,EACX2T,kBAAmB,EACnB7S,SAAU,EACVklB,SAAU,EACVhS,WAAW,EACXnF,wBAGE,OAAO9N,KAAKklB,MAAMr9B,KAAKoX,UAAY,GAAK,IAAM,GAAK,IAGrD6U,eAAgBjV,EAAOQ,OAAOyU,eAC9BC,eAAgBlV,EAAOQ,OAAO0U,eAE9B8D,gBAAiB,CACf0B,eAAW5iB,EACX6iB,aAAS7iB,EACTikB,yBAAqBjkB,EACrBokB,oBAAgBpkB,EAChBkkB,iBAAalkB,EACb2b,sBAAkB3b,EAClBmhB,oBAAgBnhB,EAChBskB,wBAAoBtkB,EAEpBukB,kBAAmBrc,EAAOQ,OAAO6b,kBAEjC8C,cAAe,EACfmH,kBAAcxuB,EAEdyuB,WAAY,GACZhI,yBAAqBzmB,EACrBmkB,iBAAankB,EACbgiB,UAAW,KACXE,QAAS,MAGXyB,YAAY,EAEZc,eAAgBvc,EAAOQ,OAAO+b,eAC9BpC,QAAS,CACPV,OAAQ,EACRqC,OAAQ,EACRH,SAAU,EACVC,SAAU,EACV7C,KAAM,GAGRyN,aAAc,GACdC,aAAc,IAEhBzmB,EAAO0G,KAAK,WAGR1G,EAAOQ,OAAOghB,MAChBxhB,EAAOwhB,OAKFxhB,EAETuJ,kBAAkBmd,GAChB,OAAI19B,KAAKggB,eACA0d,EAGF,CACLxiB,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjB6G,YAAe,gBACf2b,GAEJpP,cAAcvQ,GACZ,MAAMyC,SACJA,EADIhJ,OAEJA,GACExX,KAEE2nB,EAAkBjO,EADTd,EAAgB4H,EAAW,IAAGhJ,EAAO+G,4BACR,IAC5C,OAAO7E,EAAaqE,GAAW4J,EAEjChC,oBAAoB5Y,GAClB,OAAO/M,KAAKsuB,cAActuB,KAAK4e,OAAOzI,QAAO4H,GAA6D,EAAlDA,EAAQ/P,aAAa,6BAAmCjB,IAAO,IAEzHgiB,eACE,MACMvO,SACJA,EADIhJ,OAEJA,GAHaxX,KAAAA,KAKR4e,OAAShG,EAAgB4H,EAAW,IAAGhJ,EAAO+G,4BAEvD5P,SACE,MAAMqI,EAAShX,KACXgX,EAAO7I,UACX6I,EAAO7I,SAAU,EACb6I,EAAOQ,OAAOge,YAChBxe,EAAOye,gBAETze,EAAO0G,KAAK,WAEd9O,UACE,MAAMoI,EAAShX,KACVgX,EAAO7I,UACZ6I,EAAO7I,SAAU,EACb6I,EAAOQ,OAAOge,YAChBxe,EAAO+iB,kBAET/iB,EAAO0G,KAAK,YAEdigB,YAAYzlB,EAAUT,GACpB,MAAMT,EAAShX,KACfkY,EAAWC,KAAKE,IAAIF,KAAKC,IAAIF,EAAU,GAAI,GAC3C,MAAMG,EAAMrB,EAAOuP,eAEbxO,GADMf,EAAOmQ,eACI9O,GAAOH,EAAWG,EACzCrB,EAAOgU,YAAYjT,OAA0B,IAAVN,EAAwB,EAAIA,GAC/DT,EAAOmS,oBACPnS,EAAOkR,sBAET0S,uBACE,MAAM5jB,EAAShX,KACf,IAAKgX,EAAOQ,OAAO0hB,eAAiBliB,EAAO7C,GAAI,OAC/C,MAAMypB,EAAM5mB,EAAO7C,GAAG8J,UAAUpJ,MAAM,KAAKsB,QAAO8H,GACT,IAAhCA,EAAUjR,QAAQ,WAA+E,IAA5DiR,EAAUjR,QAAQgK,EAAOQ,OAAO2N,0BAE9EnO,EAAO0G,KAAK,oBAAqBkgB,EAAI3oB,KAAK,MAE5C4oB,gBAAgB9f,GACd,MAAM/G,EAAShX,KACf,OAAIgX,EAAO+F,UAAkB,GACtBgB,EAAQE,UAAUpJ,MAAM,KAAKsB,QAAO8H,GACI,IAAtCA,EAAUjR,QAAQ,iBAAyE,IAAhDiR,EAAUjR,QAAQgK,EAAOQ,OAAO+G,cACjFtJ,KAAK,KAEViU,oBACE,MAAMlS,EAAShX,KACf,IAAKgX,EAAOQ,OAAO0hB,eAAiBliB,EAAO7C,GAAI,OAC/C,MAAM2pB,EAAU,GAChB9mB,EAAO4H,OAAOhf,SAAQme,IACpB,MAAMie,EAAahlB,EAAO6mB,gBAAgB9f,GAC1C+f,EAAQ/5B,KAAK,CACXga,QAAAA,EACAie,WAAAA,IAEFhlB,EAAO0G,KAAK,cAAeK,EAASie,MAEtChlB,EAAO0G,KAAK,gBAAiBogB,GAE/B7e,qBAAqB8e,EAAMC,QACZ,IAATD,IACFA,EAAO,gBAEK,IAAVC,IACFA,GAAQ,GAEV,MACMxmB,OACJA,EADIoH,OAEJA,EAFIsC,WAGJA,EAHIC,gBAIJA,EACArH,KAAM2G,EALFtB,YAMJA,GAPanf,KASf,IAAIi+B,EAAM,EACV,GAAoC,iBAAzBzmB,EAAOwH,cAA4B,OAAOxH,EAAOwH,cAC5D,GAAIxH,EAAO0K,eAAgB,CACzB,IACIgc,EADA7b,EAAYzD,EAAOO,GAAehH,KAAK+G,KAAKN,EAAOO,GAAaiE,iBAAmB,EAEvF,IAAK,IAAIrjB,EAAIof,EAAc,EAAGpf,EAAI6e,EAAO3e,OAAQF,GAAK,EAChD6e,EAAO7e,KAAOm+B,IAChB7b,GAAalK,KAAK+G,KAAKN,EAAO7e,GAAGqjB,iBACjC6a,GAAO,EACH5b,EAAY5B,IAAYyd,GAAY,IAG5C,IAAK,IAAIn+B,EAAIof,EAAc,EAAGpf,GAAK,EAAGA,GAAK,EACrC6e,EAAO7e,KAAOm+B,IAChB7b,GAAazD,EAAO7e,GAAGqjB,gBACvB6a,GAAO,EACH5b,EAAY5B,IAAYyd,GAAY,SAK5C,GAAa,YAATH,EACF,IAAK,IAAIh+B,EAAIof,EAAc,EAAGpf,EAAI6e,EAAO3e,OAAQF,GAAK,EAAG,EACnCi+B,EAAQ9c,EAAWnhB,GAAKohB,EAAgBphB,GAAKmhB,EAAW/B,GAAesB,EAAaS,EAAWnhB,GAAKmhB,EAAW/B,GAAesB,KAEhJwd,GAAO,QAKX,IAAK,IAAIl+B,EAAIof,EAAc,EAAGpf,GAAK,EAAGA,GAAK,EAAG,CACxBmhB,EAAW/B,GAAe+B,EAAWnhB,GAAK0gB,IAE5Dwd,GAAO,GAKf,OAAOA,EAET1vB,SACE,MAAMyI,EAAShX,KACf,IAAKgX,GAAUA,EAAO+F,UAAW,OACjC,MAAMkE,SACJA,EADIzJ,OAEJA,GACER,EAcJ,SAAS0T,IACP,MAAMyT,EAAiBnnB,EAAO0J,cAAmC,EAApB1J,EAAOI,UAAiBJ,EAAOI,UACtEkU,EAAenT,KAAKE,IAAIF,KAAKC,IAAI+lB,EAAgBnnB,EAAOmQ,gBAAiBnQ,EAAOuP,gBACtFvP,EAAO0T,aAAaY,GACpBtU,EAAOmS,oBACPnS,EAAOkR,sBAET,IAAIkW,EACJ,GApBI5mB,EAAOiL,aACTzL,EAAOigB,gBAET,IAAIjgB,EAAO7C,GAAGxQ,iBAAiB,qBAAqB/D,SAAQwe,IACtDA,EAAQigB,UACVlgB,GAAqBnH,EAAQoH,MAGjCpH,EAAO8I,aACP9I,EAAOoJ,eACPpJ,EAAOgQ,iBACPhQ,EAAOkR,sBASH1Q,EAAOmc,UAAYnc,EAAOmc,SAASxlB,UAAYqJ,EAAO2K,QACxDuI,IACIlT,EAAOyQ,YACTjR,EAAOsO,uBAEJ,CACL,IAA8B,SAAzB9N,EAAOwH,eAA4BxH,EAAOwH,cAAgB,IAAMhI,EAAOqQ,QAAU7P,EAAO0K,eAAgB,CAC3G,MAAMtD,EAAS5H,EAAO8J,SAAWtJ,EAAOsJ,QAAQ3S,QAAU6I,EAAO8J,QAAQlC,OAAS5H,EAAO4H,OACzFwf,EAAapnB,EAAO4U,QAAQhN,EAAO3e,OAAS,EAAG,GAAG,GAAO,QAEzDm+B,EAAapnB,EAAO4U,QAAQ5U,EAAOmI,YAAa,GAAG,GAAO,GAEvDif,GACH1T,IAGAlT,EAAOsN,eAAiB7D,IAAajK,EAAOiK,UAC9CjK,EAAO+N,gBAET/N,EAAO0G,KAAK,UAEdwd,gBAAgBoD,EAAcC,QACT,IAAfA,IACFA,GAAa,GAEf,MAAMvnB,EAAShX,KACTw+B,EAAmBxnB,EAAOQ,OAAOvO,UAKvC,OAJKq1B,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE9DF,IAAiBE,GAAqC,eAAjBF,GAAkD,aAAjBA,IAG1EtnB,EAAO7C,GAAGhS,UAAUC,OAAQ,GAAE4U,EAAOQ,OAAO2N,yBAAyBqZ,KACrExnB,EAAO7C,GAAGhS,UAAUM,IAAK,GAAEuU,EAAOQ,OAAO2N,yBAAyBmZ,KAClEtnB,EAAO4jB,uBACP5jB,EAAOQ,OAAOvO,UAAYq1B,EAC1BtnB,EAAO4H,OAAOhf,SAAQme,IACC,aAAjBugB,EACFvgB,EAAQlZ,MAAMqW,MAAQ,GAEtB6C,EAAQlZ,MAAM2D,OAAS,MAG3BwO,EAAO0G,KAAK,mBACR6gB,GAAYvnB,EAAOzI,UAddyI,EAiBXynB,wBAAwBx1B,GACtB,MAAM+N,EAAShX,KACXgX,EAAO2J,KAAqB,QAAd1X,IAAwB+N,EAAO2J,KAAqB,QAAd1X,IACxD+N,EAAO2J,IAAoB,QAAd1X,EACb+N,EAAO0J,aAA2C,eAA5B1J,EAAOQ,OAAOvO,WAA8B+N,EAAO2J,IACrE3J,EAAO2J,KACT3J,EAAO7C,GAAGhS,UAAUM,IAAK,GAAEuU,EAAOQ,OAAO2N,6BACzCnO,EAAO7C,GAAG0D,IAAM,QAEhBb,EAAO7C,GAAGhS,UAAUC,OAAQ,GAAE4U,EAAOQ,OAAO2N,6BAC5CnO,EAAO7C,GAAG0D,IAAM,OAElBb,EAAOzI,UAET7L,MAAMrC,GACJ,MAAM2W,EAAShX,KACf,GAAIgX,EAAOtW,QAAS,OAAO,EAG3B,IAAIyT,EAAK9T,GAAW2W,EAAOQ,OAAOrD,GAIlC,GAHkB,iBAAPA,IACTA,EAAK1S,SAAS4B,cAAc8Q,KAEzBA,EACH,OAAO,EAETA,EAAG6C,OAASA,EACR7C,EAAGuqB,YAAcvqB,EAAGuqB,WAAWjsB,MAAQ0B,EAAGuqB,WAAWjsB,KAAKR,WAAa+E,EAAOQ,OAAOihB,sBAAsBkG,gBAC7G3nB,EAAOsH,WAAY,GAErB,MAAMsgB,EAAqB,IACjB,KAAI5nB,EAAOQ,OAAOyhB,cAAgB,IAAI5f,OAAOxE,MAAM,KAAKI,KAAK,OAWvE,IAAIyC,EATe,MACjB,GAAIvD,GAAMA,EAAGuK,YAAcvK,EAAGuK,WAAWrb,cAAe,CAGtD,OAFY8Q,EAAGuK,WAAWrb,cAAcu7B,KAI1C,OAAOhmB,EAAgBzE,EAAIyqB,KAAsB,IAGnCC,GAmBhB,OAlBKnnB,GAAaV,EAAOQ,OAAOmhB,iBAC9BjhB,EAAY9S,EAAc,MAAOoS,EAAOQ,OAAOyhB,cAC/C9kB,EAAG0a,OAAOnX,GACVkB,EAAgBzE,EAAK,IAAG6C,EAAOQ,OAAO+G,cAAc3e,SAAQme,IAC1DrG,EAAUmX,OAAO9Q,OAGrB7Z,OAAOC,OAAO6S,EAAQ,CACpB7C,GAAAA,EACAuD,UAAAA,EACA8I,SAAUxJ,EAAOsH,YAAcnK,EAAGuqB,WAAWjsB,KAAKqsB,WAAa3qB,EAAGuqB,WAAWjsB,KAAOiF,EACpFqnB,OAAQ/nB,EAAOsH,UAAYnK,EAAGuqB,WAAWjsB,KAAO0B,EAChDzT,SAAS,EAETigB,IAA8B,QAAzBxM,EAAG0D,IAAI9H,eAA6D,QAAlCyJ,EAAarF,EAAI,aACxDuM,aAA0C,eAA5B1J,EAAOQ,OAAOvO,YAAwD,QAAzBkL,EAAG0D,IAAI9H,eAA6D,QAAlCyJ,EAAarF,EAAI,cAC9GyM,SAAiD,gBAAvCpH,EAAa9B,EAAW,cAE7B,EAET8gB,KAAKrkB,GACH,MAAM6C,EAAShX,KACf,GAAIgX,EAAO+S,YAAa,OAAO/S,EAE/B,IAAgB,IADAA,EAAOtU,MAAMyR,GACN,OAAO6C,EAC9BA,EAAO0G,KAAK,cAGR1G,EAAOQ,OAAOiL,aAChBzL,EAAOigB,gBAITjgB,EAAO+kB,aAGP/kB,EAAO8I,aAGP9I,EAAOoJ,eACHpJ,EAAOQ,OAAOsN,eAChB9N,EAAO+N,gBAIL/N,EAAOQ,OAAOge,YAAcxe,EAAO7I,SACrC6I,EAAOye,gBAILze,EAAOQ,OAAO5M,MAAQoM,EAAO8J,SAAW9J,EAAOQ,OAAOsJ,QAAQ3S,QAChE6I,EAAO4U,QAAQ5U,EAAOQ,OAAO+U,aAAevV,EAAO8J,QAAQgD,aAAc,EAAG9M,EAAOQ,OAAOwS,oBAAoB,GAAO,GAErHhT,EAAO4U,QAAQ5U,EAAOQ,OAAO+U,aAAc,EAAGvV,EAAOQ,OAAOwS,oBAAoB,GAAO,GAIrFhT,EAAOQ,OAAO5M,MAChBoM,EAAOuX,aAITvX,EAAOgjB,eACP,MAAMgF,EAAe,IAAIhoB,EAAO7C,GAAGxQ,iBAAiB,qBAsBpD,OArBIqT,EAAOsH,WACT0gB,EAAaj7B,QAAQiT,EAAO+nB,OAAOp7B,iBAAiB,qBAEtDq7B,EAAap/B,SAAQwe,IACfA,EAAQigB,SACVlgB,GAAqBnH,EAAQoH,GAE7BA,EAAQ9b,iBAAiB,QAAQjB,IAC/B8c,GAAqBnH,EAAQ3V,EAAEf,cAIrCue,GAAQ7H,GAGRA,EAAO+S,aAAc,EACrBlL,GAAQ7H,GAGRA,EAAO0G,KAAK,QACZ1G,EAAO0G,KAAK,aACL1G,EAETioB,QAAQC,EAAgBC,QACC,IAAnBD,IACFA,GAAiB,QAEC,IAAhBC,IACFA,GAAc,GAEhB,MAAMnoB,EAAShX,MACTwX,OACJA,EADIrD,GAEJA,EAFIuD,UAGJA,EAHIkH,OAIJA,GACE5H,EACJ,YAA6B,IAAlBA,EAAOQ,QAA0BR,EAAO+F,YAGnD/F,EAAO0G,KAAK,iBAGZ1G,EAAO+S,aAAc,EAGrB/S,EAAOijB,eAGHziB,EAAO5M,MACToM,EAAOqZ,cAIL8O,IACFnoB,EAAOylB,gBACPtoB,EAAGrR,gBAAgB,SACnB4U,EAAU5U,gBAAgB,SACtB8b,GAAUA,EAAO3e,QACnB2e,EAAOhf,SAAQme,IACbA,EAAQ5b,UAAUC,OAAOoV,EAAOqP,kBAAmBrP,EAAOsP,uBAAwBtP,EAAOuR,iBAAkBvR,EAAOwR,eAAgBxR,EAAOyR,gBACzIlL,EAAQjb,gBAAgB,SACxBib,EAAQjb,gBAAgB,+BAI9BkU,EAAO0G,KAAK,WAGZxZ,OAAO0N,KAAKoF,EAAO8F,iBAAiBld,SAAQ2H,IAC1CyP,EAAOlK,IAAIvF,OAEU,IAAnB23B,IACFloB,EAAO7C,GAAG6C,OAAS,KD3wHzB,SAAqBvF,GACnB,MAAM2tB,EAAS3tB,EACfvN,OAAO0N,KAAKwtB,GAAQx/B,SAAQqC,IAC1B,IACEm9B,EAAOn9B,GAAO,KACd,MAAOZ,IAGT,WACS+9B,EAAOn9B,GACd,MAAOZ,QCkwHPg+B,CAAYroB,IAEdA,EAAO+F,WAAY,GAtCV,KAyCU7Q,sBAACozB,GACpB5tB,EAAOgrB,GAAkB4C,GAEhB5C,8BACT,OAAOA,GAEEnE,sBACT,OAAOA,GAEWrsB,qBAAC8wB,GACdL,GAAOh9B,UAAUo9B,cAAaJ,GAAOh9B,UAAUo9B,YAAc,IAClE,MAAMD,EAAUH,GAAOh9B,UAAUo9B,YACd,mBAARC,GAAsBF,EAAQ9vB,QAAQgwB,GAAO,GACtDF,EAAQ/4B,KAAKi5B,GAGP9wB,WAACqzB,GACT,OAAIpmB,MAAMC,QAAQmmB,IAChBA,EAAO3/B,SAAQ4/B,GAAK7C,GAAO8C,cAAcD,KAClC7C,KAETA,GAAO8C,cAAcF,GACd5C,KC7yHX,SAAS55B,GAAWgU,GAClB,IAAIC,OACFA,EADEimB,aAEFA,EAFErwB,GAGFA,EAHE8Q,KAIFA,GACE3G,EAgBJ,SAAS2oB,EAAMvrB,GACb,IAAIwrB,EACJ,OAAIxrB,GAAoB,iBAAPA,GAAmB6C,EAAOsH,YACzCqhB,EAAM3oB,EAAO7C,GAAG9Q,cAAc8Q,GAC1BwrB,GAAYA,GAEdxrB,IACgB,iBAAPA,IAAiBwrB,EAAM,IAAIl+B,SAASkC,iBAAiBwQ,KAC5D6C,EAAOQ,OAAOuhB,mBAAmC,iBAAP5kB,GAAmBwrB,GAAOA,EAAI1/B,OAAS,GAA+C,IAA1C+W,EAAO7C,GAAGxQ,iBAAiBwQ,GAAIlU,OACvH0/B,EAAM3oB,EAAO7C,GAAG9Q,cAAc8Q,GACrBwrB,GAAsB,IAAfA,EAAI1/B,SACpB0/B,EAAMA,EAAI,KAGVxrB,IAAOwrB,EAAYxrB,EAEhBwrB,GAET,SAASC,EAASzrB,EAAI0rB,GACpB,MAAMroB,EAASR,EAAOQ,OAAOzO,YAC7BoL,EAAK6F,EAAkB7F,IACpBvU,SAAQkgC,IACLA,IACFA,EAAM39B,UAAU09B,EAAW,MAAQ,aAAaroB,EAAOuoB,cAAclrB,MAAM,MACrD,WAAlBirB,EAAMl9B,UAAsBk9B,EAAMD,SAAWA,GAC7C7oB,EAAOQ,OAAOsN,eAAiB9N,EAAO7I,SACxC2xB,EAAM39B,UAAU6U,EAAO6iB,SAAW,MAAQ,UAAUriB,EAAOwoB,eAKnE,SAASzxB,IAEP,MAAMuoB,OACJA,EADIC,OAEJA,GACE/f,EAAOjO,WACX,GAAIiO,EAAOQ,OAAO5M,KAGhB,OAFAg1B,EAAS7I,GAAQ,QACjB6I,EAAS9I,GAAQ,GAGnB8I,EAAS7I,EAAQ/f,EAAOoQ,cAAgBpQ,EAAOQ,OAAOoI,QACtDggB,EAAS9I,EAAQ9f,EAAOqQ,QAAUrQ,EAAOQ,OAAOoI,QAElD,SAASqgB,EAAY5+B,GACnBA,EAAEM,mBACEqV,EAAOoQ,aAAgBpQ,EAAOQ,OAAO5M,MAASoM,EAAOQ,OAAOoI,UAChE5I,EAAOuW,YACP7P,EAAK,mBAEP,SAASwiB,EAAY7+B,GACnBA,EAAEM,mBACEqV,EAAOqQ,OAAUrQ,EAAOQ,OAAO5M,MAASoM,EAAOQ,OAAOoI,UAC1D5I,EAAOgW,YACPtP,EAAK,mBAEP,SAAS8a,IACP,MAAMhhB,EAASR,EAAOQ,OAAOzO,WAK7B,GAJAiO,EAAOQ,OAAOzO,WClFlB,SAAmCiO,EAAQsjB,EAAgB9iB,EAAQ2oB,GAejE,OAdInpB,EAAOQ,OAAOmhB,gBAChBz0B,OAAO0N,KAAKuuB,GAAYvgC,SAAQqC,IAC9B,IAAKuV,EAAOvV,KAAwB,IAAhBuV,EAAO+hB,KAAe,CACxC,IAAIl5B,EAAUuY,EAAgB5B,EAAO7C,GAAK,IAAGgsB,EAAWl+B,MAAQ,GAC3D5B,IACHA,EAAUuE,EAAc,MAAOu7B,EAAWl+B,IAC1C5B,EAAQ4d,UAAYkiB,EAAWl+B,GAC/B+U,EAAO7C,GAAG0a,OAAOxuB,IAEnBmX,EAAOvV,GAAO5B,EACdi6B,EAAer4B,GAAO5B,MAIrBmX,EDmEsB4oB,CAA0BppB,EAAQA,EAAOsjB,eAAevxB,WAAYiO,EAAOQ,OAAOzO,WAAY,CACvH+tB,OAAQ,qBACRC,OAAQ,wBAEJvf,EAAOsf,SAAUtf,EAAOuf,OAAS,OACvC,IAAID,EAAS4I,EAAMloB,EAAOsf,QACtBC,EAAS2I,EAAMloB,EAAOuf,QAC1B7yB,OAAOC,OAAO6S,EAAOjO,WAAY,CAC/B+tB,OAAAA,EACAC,OAAAA,IAEFD,EAAS9c,EAAkB8c,GAC3BC,EAAS/c,EAAkB+c,GAC3B,MAAMsJ,EAAa,CAAClsB,EAAI0D,KAClB1D,GACFA,EAAG7R,iBAAiB,QAAiB,SAARuV,EAAiBqoB,EAAcD,IAEzDjpB,EAAO7I,SAAWgG,GACrBA,EAAGhS,UAAUM,OAAO+U,EAAOwoB,UAAUnrB,MAAM,OAG/CiiB,EAAOl3B,SAAQuU,GAAMksB,EAAWlsB,EAAI,UACpC4iB,EAAOn3B,SAAQuU,GAAMksB,EAAWlsB,EAAI,UAEtC,SAAS8qB,IACP,IAAInI,OACFA,EADEC,OAEFA,GACE/f,EAAOjO,WACX+tB,EAAS9c,EAAkB8c,GAC3BC,EAAS/c,EAAkB+c,GAC3B,MAAMuJ,EAAgB,CAACnsB,EAAI0D,KACzB1D,EAAGzS,oBAAoB,QAAiB,SAARmW,EAAiBqoB,EAAcD,GAC/D9rB,EAAGhS,UAAUC,UAAU4U,EAAOQ,OAAOzO,WAAWg3B,cAAclrB,MAAM,OAEtEiiB,EAAOl3B,SAAQuU,GAAMmsB,EAAcnsB,EAAI,UACvC4iB,EAAOn3B,SAAQuU,GAAMmsB,EAAcnsB,EAAI,UA9GzC8oB,EAAa,CACXl0B,WAAY,CACV+tB,OAAQ,KACRC,OAAQ,KACRwJ,aAAa,EACbR,cAAe,yBACfS,YAAa,uBACbR,UAAW,qBACXS,wBAAyB,gCAG7BzpB,EAAOjO,WAAa,CAClB+tB,OAAQ,KACRC,OAAQ,MAmGVnqB,EAAG,QAAQ,MACgC,IAArCoK,EAAOQ,OAAOzO,WAAWoF,QAE3BS,KAEA4pB,IACAjqB,QAGJ3B,EAAG,+BAA+B,KAChC2B,OAEF3B,EAAG,WAAW,KACZqyB,OAEFryB,EAAG,kBAAkB,KACnB,IAAIkqB,OACFA,EADEC,OAEFA,GACE/f,EAAOjO,WACX+tB,EAAS9c,EAAkB8c,GAC3BC,EAAS/c,EAAkB+c,GACvB/f,EAAO7I,QACTI,IAGF,IAAIuoB,KAAWC,GAAQ5gB,QAAOhC,KAAQA,IAAIvU,SAAQuU,GAAMA,EAAGhS,UAAUM,IAAIuU,EAAOQ,OAAOzO,WAAWi3B,gBAEpGpzB,EAAG,SAAS,CAAC8zB,EAAIr/B,KACf,IAAIy1B,OACFA,EADEC,OAEFA,GACE/f,EAAOjO,WACX+tB,EAAS9c,EAAkB8c,GAC3BC,EAAS/c,EAAkB+c,GAC3B,MAAMzF,EAAWjwB,EAAEf,OACnB,GAAI0W,EAAOQ,OAAOzO,WAAWw3B,cAAgBxJ,EAAO/a,SAASsV,KAAcwF,EAAO9a,SAASsV,GAAW,CACpG,GAAIta,EAAO2pB,YAAc3pB,EAAOQ,OAAOmpB,YAAc3pB,EAAOQ,OAAOmpB,WAAWC,YAAc5pB,EAAO2pB,WAAWxsB,KAAOmd,GAAYta,EAAO2pB,WAAWxsB,GAAG5S,SAAS+vB,IAAY,OAC3K,IAAIuP,EACA/J,EAAO72B,OACT4gC,EAAW/J,EAAO,GAAG30B,UAAUZ,SAASyV,EAAOQ,OAAOzO,WAAWy3B,aACxDzJ,EAAO92B,SAChB4gC,EAAW9J,EAAO,GAAG50B,UAAUZ,SAASyV,EAAOQ,OAAOzO,WAAWy3B,cAGjE9iB,GADe,IAAbmjB,EACG,iBAEA,kBAEP,IAAI/J,KAAWC,GAAQ5gB,QAAOhC,KAAQA,IAAIvU,SAAQuU,GAAMA,EAAGhS,UAAUH,OAAOgV,EAAOQ,OAAOzO,WAAWy3B,mBAGzG,MAKM5xB,EAAU,KACdoI,EAAO7C,GAAGhS,UAAUM,OAAOuU,EAAOQ,OAAOzO,WAAW03B,wBAAwB5rB,MAAM,MAClFoqB,KAEF/6B,OAAOC,OAAO6S,EAAOjO,WAAY,CAC/B4F,OAVa,KACbqI,EAAO7C,GAAGhS,UAAUC,UAAU4U,EAAOQ,OAAOzO,WAAW03B,wBAAwB5rB,MAAM,MACrF2jB,IACAjqB,KAQAK,QAAAA,EACAL,OAAAA,EACAiqB,KAAAA,EACAyG,QAAAA,IDunHJ/6B,OAAO0N,KAAK4nB,IAAY55B,SAAQkhC,IAC9B58B,OAAO0N,KAAK4nB,GAAWsH,IAAiBlhC,SAAQmhC,IAC9CpE,GAAOh9B,UAAUohC,GAAevH,GAAWsH,GAAgBC,SAG/DpE,GAAOqE,IAAI,CA/sHX,SAAgBjqB,GACd,IAAIC,OACFA,EADEpK,GAEFA,EAFE8Q,KAGFA,GACE3G,EACJ,MAAMtX,EAASqU,IACf,IAAImtB,EAAW,KACXC,EAAiB,KACrB,MAAMC,EAAgB,KACfnqB,IAAUA,EAAO+F,WAAc/F,EAAO+S,cAC3CrM,EAAK,gBACLA,EAAK,YAsCD0jB,EAA2B,KAC1BpqB,IAAUA,EAAO+F,WAAc/F,EAAO+S,aAC3CrM,EAAK,sBAEP9Q,EAAG,QAAQ,KACLoK,EAAOQ,OAAOkhB,qBAAmD,IAA1Bj5B,EAAO4hC,eAxC7CrqB,IAAUA,EAAO+F,WAAc/F,EAAO+S,cAC3CkX,EAAW,IAAII,gBAAenF,IAC5BgF,EAAiBzhC,EAAO2I,uBAAsB,KAC5C,MAAM8S,MACJA,EADI1S,OAEJA,GACEwO,EACJ,IAAIsqB,EAAWpmB,EACXsK,EAAYhd,EAChB0zB,EAAQt8B,SAAQ2hC,IACd,IAAIC,eACFA,EADEC,YAEFA,EAFEnhC,OAGFA,GACEihC,EACAjhC,GAAUA,IAAW0W,EAAO7C,KAChCmtB,EAAWG,EAAcA,EAAYvmB,OAASsmB,EAAe,IAAMA,GAAgBE,WACnFlc,EAAYic,EAAcA,EAAYj5B,QAAUg5B,EAAe,IAAMA,GAAgBG,cAEnFL,IAAapmB,GAASsK,IAAchd,GACtC24B,UAINF,EAASW,QAAQ5qB,EAAO7C,MAoBxB1U,EAAO6C,iBAAiB,SAAU6+B,GAClC1hC,EAAO6C,iBAAiB,oBAAqB8+B,OAE/Cx0B,EAAG,WAAW,KApBRs0B,GACFzhC,EAAOoU,qBAAqBqtB,GAE1BD,GAAYA,EAASY,WAAa7qB,EAAO7C,KAC3C8sB,EAASY,UAAU7qB,EAAO7C,IAC1B8sB,EAAW,MAiBbxhC,EAAOiC,oBAAoB,SAAUy/B,GACrC1hC,EAAOiC,oBAAoB,oBAAqB0/B,OAIpD,SAAkBrqB,GAChB,IAAIC,OACFA,EADEimB,aAEFA,EAFErwB,GAGFA,EAHE8Q,KAIFA,GACE3G,EACJ,MAAM+qB,EAAY,GACZriC,EAASqU,IACTiuB,EAAS,SAAUzhC,EAAQyG,QACf,IAAZA,IACFA,EAAU,IAEZ,MACMk6B,EAAW,IADIxhC,EAAOuiC,kBAAoBviC,EAAOwiC,yBACrBC,IAIhC,GAAIlrB,EAAO2Y,oBAAqB,OAChC,GAAyB,IAArBuS,EAAUjiC,OAEZ,YADAyd,EAAK,iBAAkBwkB,EAAU,IAGnC,MAAMC,EAAiB,WACrBzkB,EAAK,iBAAkBwkB,EAAU,KAE/BziC,EAAO2I,sBACT3I,EAAO2I,sBAAsB+5B,GAE7B1iC,EAAOgM,WAAW02B,EAAgB,MAGtClB,EAASW,QAAQthC,EAAQ,CACvB8hC,gBAA0C,IAAvBr7B,EAAQq7B,YAAoCr7B,EAAQq7B,WACvEC,eAAwC,IAAtBt7B,EAAQs7B,WAAmCt7B,EAAQs7B,UACrEC,mBAAgD,IAA1Bv7B,EAAQu7B,eAAuCv7B,EAAQu7B,gBAE/ER,EAAU/9B,KAAKk9B,IA0BjBhE,EAAa,CACXgE,UAAU,EACVsB,gBAAgB,EAChBC,sBAAsB,IAExB51B,EAAG,QA7BU,KACX,GAAKoK,EAAOQ,OAAOypB,SAAnB,CACA,GAAIjqB,EAAOQ,OAAO+qB,eAAgB,CAChC,MAAME,EDyCZ,SAAwBtuB,EAAI0E,GAC1B,MAAM6pB,EAAU,GAChB,IAAIC,EAASxuB,EAAGyuB,cAChB,KAAOD,GACD9pB,EACE8pB,EAAO7pB,QAAQD,IAAW6pB,EAAQ3+B,KAAK4+B,GAE3CD,EAAQ3+B,KAAK4+B,GAEfA,EAASA,EAAOC,cAElB,OAAOF,ECpDsBG,CAAe7rB,EAAO+nB,QAC/C,IAAK,IAAIh/B,EAAI,EAAGA,EAAI0iC,EAAiBxiC,OAAQF,GAAK,EAChDgiC,EAAOU,EAAiB1iC,IAI5BgiC,EAAO/qB,EAAO+nB,OAAQ,CACpBsD,UAAWrrB,EAAOQ,OAAOgrB,uBAI3BT,EAAO/qB,EAAOU,UAAW,CACvB0qB,YAAY,QAehBx1B,EAAG,WAZa,KACdk1B,EAAUliC,SAAQqhC,IAChBA,EAAS6B,gBAEXhB,EAAU70B,OAAO,EAAG60B,EAAU7hC,cGvOnB,MAAM8iC,GACnB3iC,YAAYC,GACVL,KAAKK,QAAUA,EACfL,KAAKyoB,KAAOzoB,KAAKK,QAAQgD,cAAc,iCACvCrD,KAAK6oB,KAAO7oB,KAAKK,QAAQgD,cAAc,iCAEvCrD,KAAKgjC,cAAgBhjC,KAAKK,QAE1BL,KAAKijC,QAAU,GACfjjC,KAAKkjC,UAAW,EAEhBljC,KAAKgjC,cAAgBhjC,KAAKK,QAE1BL,KAAK8J,WAAarK,OAAOqK,WAEzB9J,KAAK0J,aAAe1J,KAAK0J,aAAa5I,KAAKd,MAC3CA,KAAK0J,aAAe1J,KAAK0J,aAAa5I,KAAKd,MAE3CA,KAAKgf,cAAe,IAEhBhf,KAAKgjC,cAAc7gC,UAAUZ,SAAS,yBAExCvB,KAAKmjC,mBAAqB,CACxB,IAAK,CACHzhB,aAAc,KAGlB1hB,KAAKgf,cAAe,QAGtBhf,KAAKmM,SAAW,CACd2wB,QAAS,CAAC/5B,IACVgG,WAAY,CACV+tB,OAAQ,sBACRC,OAAQ,uBAEVnsB,KAAM5K,KAAKkjC,SACXt2B,GAAI,CACF4rB,KAAOxhB,IACLhX,KAAK2J,iBAAiBqN,IAExBosB,YAAcpsB,IACZhX,KAAK2J,iBAAiBqN,IAExBqsB,yBAA0BrsB,IACxBhX,KAAKsjC,eAAetsB,KAGxBgI,cAAehf,KAAKgf,cACpBgG,qBAAqB,EACrBtD,aAAc,GACde,YAAa,CACX,IAAK,CACHf,aAAa,IAEf,IAAK,CACHA,aAAc,MAMpB1hB,KAAKgX,OAGPtN,gBAGA45B,iBACE,IAAI1kB,EAAS5e,KAAKK,QAAQsD,iBAAiB,iBAE3C,IAAK,IAAI5D,EAAI,EAAGA,EAAI6e,EAAO3e,OAAQF,IAAK,CACtC,MAAMM,EAAUue,EAAO7e,GACvB,GAAIM,EAAQ8B,UAAUZ,SAAS,uBAAwB,CACrD,IAAIgiC,EAAaljC,EAAQsD,iBAAiB,KAC1C,IAAK,IAAIoJ,EAAQ,EAAGA,EAAQw2B,EAAatjC,OAAQ8M,IAAS,CAClCw2B,EAAax2B,GACrB7K,aAAa,WAAY,UAErC,CACJ,IAAIqhC,EAAaljC,EAAQsD,iBAAiB,KAC1C,IAAK,IAAIoJ,EAAQ,EAAGA,EAAQw2B,EAAatjC,OAAQ8M,IAAS,CAClCw2B,EAAax2B,GACrB7K,aAAa,WAAY,SAO/CyH,iBAAiBqN,GACfhX,KAAK6oB,KAAK/lB,gBAAgB,YAC1B9C,KAAKyoB,KAAK3lB,gBAAgB,YAC1B9C,KAAKK,QAAQyC,gBAAgB,YAAa,IAEtCkU,EAAOoQ,aACTpnB,KAAK6oB,KAAK3mB,aAAa,WAAY,IAEjC8U,EAAOqQ,QACTrnB,KAAKyoB,KAAKvmB,aAAa,WAAY,IACnClC,KAAKK,QAAQ6B,aAAa,YAAa,KAO3CQ,QACE1C,KAAKmM,SAAW,IACXnM,KAAKmM,UAGVnM,KAAKgX,OAAS,IAAI2lB,GAAO38B,KAAKgjC,cAAehjC,KAAKmM,UAClD1M,OAAO6C,iBAAiB,SAAUtC,KAAK0J,cACvC1J,KAAKsjC,iBAIHtjC,KAAKgX,OAAOpK,GAAG,kBAAkB,KAC/B5M,KAAK6oB,KAAK3mB,aAAa,WAAY,OAGrClC,KAAKgX,OAAOpK,GAAG,YAAY,KACzB5M,KAAKyoB,KAAKvmB,aAAa,WAAY,OAIzCW,UACE7C,KAAKi/B,QAAQj/B,KAAKgX,QAAQ,ICjI9BvV,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMkhC,EAAU/hC,SAASkC,iBAAiB,WACrC6/B,EAAQvjC,QAIbujC,EAAQ5jC,SAASS,IACA,IAAI0iC,GAAO1iC,GACnBqC,MAAMrC,SCTF,MAAMojC,GACnBrjC,YAAYC,GACVL,KAAKK,QAAUA,EAGjBqC,QACE1C,KAAKK,QAAQ8B,UAAUM,IAAI,eAG7BI,UACE,GAAG7C,KAAKK,QAAQ8B,UAAUZ,SAAS,eAAe,CAChDvB,KAAKK,QAAQ8B,UAAUC,OAAO,eAE9B,MAAM4a,EAAQ,IAAI0mB,MAAM,4BACxBjiC,SAASG,cAAcob,KCb7Bvb,SAASa,iBAAiB,oBAAoB,KAI5C,IAF4E,IAA1D7C,OAAOmU,WAAY,sCAAiH,IAAlEnU,OAAOmU,WAAY,oCAAmCkF,aAGnI,CAEL,IADyBrX,SAASkC,iBAAiB,gBAC7B1D,OACpB,OAEF,IAAI0jC,EAAalkC,OAAO8F,YAExB,GAAK9F,OAAOmkC,qBAAqB,CAC/B,IAAI3C,EAAW,IAAI2C,sBAAqB,CAAC1H,EAAS+E,KAChD/E,EAAQt8B,SAAQikC,IACd,GAAGA,EAAMC,eAAe,CACE,IAAIL,GAASI,EAAMvjC,QAC3BoC,YACZ,CACoB,IAAI+gC,GAASI,EAAMvjC,QAC3BuC,gBAGnB,CAACkhC,WAAY,WAAYJ,EAAW,WACvCliC,SAASkC,iBAAiB,gBAAgB/D,SAAQokC,IAChD/C,EAASW,QAAQoC,mMC1BV,MAAMC,WAAiBh4B,EAuBpC7L,YAAaC,GAcX,GAbA8M,MAAM9M,EAAS,IACV4jC,GAAS93B,mEAFgB,KAAIiB,EAAApN,KAAAqN,GAAA,CAAAC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAuN,GAAA,CAAAD,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAkkC,GAAA,CAAA52B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAmkC,GAAA,CAAA72B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAokC,GAAA,CAAA92B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAA0N,GAAA,CAAAJ,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAqkC,GAAA,CAAA/2B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAskC,GAAA,CAAAh3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAukC,GAAA,CAAAj3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAwkC,GAAA,CAAAl3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAykC,GAAA,CAAAn3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAA0kC,GAAA,CAAAp3B,UAAA,EAAA1H,WAAA,IAMlCgI,EAAA5N,KAAAkkC,IAAiB,GACjBt2B,EAAA5N,KAAAqN,GAAgBrN,KAAKmM,SAAS0B,QAAU7N,KAAKmM,SAAS0B,QAAU7N,KAAKK,QAAQgD,cAAcrD,KAAKmM,SAASw4B,kBACzG/2B,EAAA5N,KAAAuN,GAAevN,KAAKmM,SAAS7L,OAASN,KAAKmM,SAAS7L,OAASN,KAAKK,QAAQgD,cAAcrD,KAAKmM,SAASy4B,iBACtGh3B,EAAA5N,KAAAmkC,GAAkBnkC,KAAKK,QAAQ2N,aAAa,oBAC5CJ,EAAA5N,KAAAokC,GAAoB3iC,SAASmC,eAATkK,EAAwB9N,KAA5CmkC,MAEAnkC,KAAK6kC,YAAc7kC,KAAKK,QAAQsD,iBAAiB,wBAE7CmK,EAAC9N,KAADqN,IACF,MAAM,IAAIU,MAAO,uCAAuC/N,KAAKmM,SAASw4B,yCAGxE,IAAI72B,EAAC9N,KAADuN,IACF,MAAM,IAAIQ,MAAO,sCAAsC/N,KAAKmM,SAASy4B,wCAGvE,IAAK92B,EAAcE,KAAAA,IAAAA,aAAa,MAC9B,MAAM,IAAID,MAAO,6DAAXD,EAAwE9N,KAA9EqN,KAGF,IAAKS,EAAaE,KAAAA,IAAAA,aAAa,MAC7B,MAAM,IAAID,MAAO,4DAAXD,EAAuE9N,KAA7EuN,KAGFK,EAAA5N,KAAA0N,GAA2B1N,KAAK0N,oBAAoB5M,KAAKd,OACzD4N,EAAA5N,KAAAskC,GAAqBtkC,KAAKskC,cAAcxjC,KAAKd,OAC7C4N,EAAA5N,KAAAqkC,GAAwBrkC,KAAKqkC,iBAAiBvjC,KAAKd,OACnD4N,EAAA5N,KAAAukC,GAAuBvkC,KAAKukC,gBAAgBzjC,KAAKd,OACjD4N,EAAA5N,KAAAwkC,GAAsBxkC,KAAKwkC,eAAe1jC,KAAKd,OAC/C4N,EAAA5N,KAAAykC,GAA2BzkC,KAAKykC,oBAAoB3jC,KAAKd,OACzD4N,EAAA5N,KAAA0kC,GAA4B1kC,KAAK0kC,qBAAqB5jC,KAAKd,OAGzD6N,cACF,OAAAC,EAAO9N,KAAPqN,IAGE/M,aACF,OAAAwN,EAAO9N,KAAPuN,IAGE9M,eACF,MAAuD,SAAhDqN,EAAcE,KAAAA,IAAAA,aAAa,iBAGhCvN,aAAUmP,GACZ9B,EAAA9N,KAAAqN,IAAcnL,aAAa,gBAAkB,GAAE0N,KAG7Ck1B,eACF,OAAAh3B,EAAO9N,KAAPkkC,IAGFx2B,oBAAqBrM,GACnBrB,KAAKgC,SAGPsiC,cAAeS,GACTA,EAAOC,aAAa,gBAEtBhlC,KAAK6kC,YAAYjlC,SAASy8B,IACxBA,EAAKv5B,gBAAgB,gBACrBgL,EAAchL,KAAAA,IAAAA,gBAAgB,gBAIhC9C,KAAK6kC,YAAYjlC,SAASy8B,IACxBA,EAAKv5B,gBAAgB,gBACrBgL,EAAchL,KAAAA,IAAAA,gBAAgB,eAIhCgL,EAAI9N,KAAmBokC,MACrBt2B,EAAA9N,KAAAokC,IAAkBx+B,MAAQm/B,EAAO/2B,aAAa,eAG5ChO,KAAKK,QAAQ8B,UAAUZ,SAAS,6BAElCwjC,EAAO7iC,aAAa,eAAgB,QAEpC4L,EAAA9N,KAAAqN,IAAcnL,aAAa,WAAY,QAEvClC,KAAKK,QAAQgD,cAAc,sBAAsBqN,UAAYq0B,EAAOr0B,YAK1E2zB,iBAAkBhjC,GAChByM,EAAmBzM,KAAAA,IAAAA,KAAAA,KAAAA,EAAE4jC,eACrBjlC,KAAKoR,OAAM,GAIbmzB,gBAAiBljC,IACXA,EAAE6jC,eAAkBp3B,EAAavM,KAAAA,IAAAA,SAASF,EAAE6jC,gBAAmBp3B,EAAcvM,KAAAA,IAAAA,SAASF,EAAE6jC,gBAC1FllC,KAAKoR,OAAM,GAIfozB,eAAgBnjC,GAEVrB,KAAKS,UAA0B,KAAdY,EAAE8jC,SACrBnlC,KAAKgC,SAITyiC,oBAAqBpjC,GACdyM,EAAavM,KAAAA,IAAAA,SAASF,EAAEf,SAAYwN,WAAcvM,SAASF,EAAEf,SAChEN,KAAKoR,OAAM,GAIfszB,qBAAsBrjC,GAChBA,EAAEf,SAAWwN,EAAA9N,WACf8N,EAAA9N,KAAAuN,IAAa7L,oBAAoB,gBAAjCoM,EAAkD9N,KAAlD0kC,KACA52B,EAAA9N,KAAAuN,IAAapL,UAAUC,OAAO,aAC9BwL,EAAA5N,KAAAkkC,IAAiB,GACjBlkC,KAAKoR,SAIT5C,OACEV,EAAA9N,KAAAqN,IAAcnL,aAAa,gBAAiB,QAC5C4L,EAAahL,KAAAA,IAAAA,gBAAgB,UAC7BgL,EAAA9N,KAAAuN,IAAarL,aAAa,WAAY,KAEjClC,KAAKmM,SAASi5B,eACjB3jC,SAASa,iBAAiB,aAAYtC,KAAtCukC,KACA9iC,SAASa,iBAAiB,UAAStC,KAAnCykC,MAGFzkC,KAAKyM,KAAK,OAAQzM,MAGpBoR,QAAuB,IAAhBi0B,6DACArlC,KAAKmM,SAASi5B,eACjB3jC,SAASC,oBAAoB,aAAY1B,KAAzCukC,KACA9iC,SAASC,oBAAoB,UAAS1B,KAAtCykC,MAGF32B,EAAA9N,KAAAqN,IAAcnL,aAAa,gBAAiB,SAC5C4L,EAAA9N,KAAAuN,IAAarL,aAAa,SAAU,IACpC4L,EAAA9N,KAAAuN,IAAapL,UAAUC,OAAO,aAC9B0L,EAAA9N,KAAAuN,IAAarL,aAAa,WAAY,MAElCmjC,GACFv3B,EAAA9N,KAAAqN,IAAc9K,QAGhBvC,KAAKyM,KAAK,QAASzM,MAGrBwB,OACEsM,EAAA9N,KAAAuN,IAAapL,UAAUM,IAAI,aAC3BmL,EAAA5N,KAAAkkC,IAAiB,GACjBp2B,EAAA9N,KAAAuN,IAAajL,iBAAiB,gBAA9BwL,EAA+C9N,KAA/C0kC,KAGF1iC,SACMhC,KAAKmM,SAASm5B,cAChBtlC,KAAKS,SAAWT,KAAKwB,OAASxB,KAAKwO,OAEnCxO,KAAKS,SAAWT,KAAKoR,QAAUpR,KAAKwO,OAIxC9L,QACEoL,EAAa5L,KAAAA,IAAAA,aAAa,kBAAmB4L,WAAcE,aAAa,OACxEF,EAAA9N,KAAAuN,IAAarL,aAAa,WAAY,MACtC4L,EAAA9N,KAAAuN,IAAarL,aAAa,SAAU,IACpC4L,EAAA9N,KAAAqN,IAAcnL,aAAa,gBAAiB,QAC5C4L,EAAA9N,KAAAqN,IAAcnL,aAAa,gBAAiB,SAC5C4L,EAAc5L,KAAAA,IAAAA,aAAa,gBAAiB4L,WAAaE,aAAa,OAEtEF,EAAA9N,KAAAqN,IAAc/K,iBAAiB,QAA/BwL,EAAwC9N,KAAxC0N,KACAI,EAAA9N,KAAAuN,IAAajL,iBAAiB,UAA9BwL,EAAyC9N,KAAzCwkC,KAEA,IAAK,IAAIzkC,EAAI,EAAGA,EAAIC,KAAK6kC,YAAY5kC,OAAQF,IAAK,CAChCC,KAAK6kC,YAAY9kC,GACzBuC,iBAAiB,UAAStC,KAAlCqkC,KAIF,GAAIrkC,KAAKK,QAAQ2N,aAAa,mBAAoB,CAChD,IAAIu3B,EAASvlC,KAAKK,QAAQ2N,aAAa,mBAEvC,GAAIvM,SAAS4B,cAAc,UAAUkiC,EAAS,MAAM3/B,MAAM,CACxD,IAAI4/B,EAAW/jC,SAAS4B,cAAc,UAAUkiC,EAAS,MAAM3/B,MAC3D6/B,EAAoBzlC,KAAKK,QAAQsD,iBAAiB,uBAEtD,IAAK,IAAI5D,EAAI,EAAGA,EAAI0lC,EAAkBxlC,OAAQF,IAAK,CACjD,MAAM2lC,EAAmBD,EAAkB1lC,GACvC2lC,EAAiB13B,aAAa,eAAiBw3B,GACjDE,EAAiBxjC,aAAa,eAAgB,QAKlD,GAAGlC,KAAKK,QAAQgD,cAAc,4BAC5B,IAAK,IAAItD,EAAI,EAAGA,EAAI0lC,EAAkBxlC,OAAQF,IAAK,CACjD,MAAM2lC,EAAmBD,EAAkB1lC,GACvC2lC,EAAiB13B,aAAa,eAAiBw3B,IACjDxlC,KAAKK,QAAQgD,cAAc,4BAA4BqN,UAAUg1B,EAAiBh1B,gBAKtF,IAAK,IAAI3Q,EAAI,EAAGA,EAAI0lC,EAAkBxlC,OAAQF,IAAK,CACjD,MAAM2lC,EAAmBD,EAAkB1lC,GACvC2lC,EAAiB13B,aAAa,eAAiBw3B,IACjDxlC,KAAKK,QAAQgD,cAAc,sBAAsBqN,UAAUg1B,EAAiBh1B,WAKlF5C,EAAA9N,KAAAqN,IAAcnL,aAAa,WAAY,SAO3CiL,MAAMzK,QAGRG,UACM7C,KAAKS,UACPT,KAAKoR,OAAM,GAGbtD,EAAA9N,KAAAqN,IAAc3L,oBAAoB,QAAlCoM,EAA2C9N,KAA3C0N,KACAI,EAAA9N,KAAAuN,IAAa7L,oBAAoB,UAAjCoM,EAA4C9N,KAA5CwkC,KAEA12B,EAAchL,KAAAA,IAAAA,gBAAgB,iBAC9BgL,EAAchL,KAAAA,IAAAA,gBAAgB,iBAC9BgL,EAAchL,KAAAA,IAAAA,gBAAgB,iBAC9BgL,EAAahL,KAAAA,IAAAA,gBAAgB,mBAC7BgL,EAAahL,KAAAA,IAAAA,gBAAgB,YAC7BgL,EAAahL,KAAAA,IAAAA,gBAAgB,UAE7BqK,MAAMtK,WA7QWohC,EAAAA,GACD,WAAA,CAChBmB,cAAc,EACdE,eAAe,EACfz3B,QAAS,KACTvN,OAAQ,KACRqkC,gBAAiB,uBACjBC,eAAgB,wBCNpB,MAAMe,GAAmBlkC,SAASkC,iBAAiB,gBAC/CgiC,GAAiB1lC,QACnB0lC,GAAiB/lC,SAASgmC,IACP,IAAI3B,GAAS2B,GACrBljC,8CCPuD68B,EAAev7B,QAAqF,WAAwB,SAAS3C,EAAEA,GAAG,IAAIvB,EAAE,SAASuB,EAAEvB,GAAG,GAAG,iBAAiBuB,IAAIA,EAAE,OAAOA,EAAE,IAAItB,EAAEsB,EAAEwkC,OAAOC,aAAa,QAAG,IAAS/lC,EAAE,CAAC,IAAIsE,EAAEtE,EAAEG,KAAKmB,EAAEvB,GAAG,WAAW,GAAG,iBAAiBuE,EAAE,OAAOA,EAAE,MAAM,IAAI0hC,UAAU,gDAAgD,OAAO,WAAWjmC,EAAEic,OAAOK,QAAQ/a,GAA/P,CAAmQA,EAAE,UAAU,MAAM,iBAAiBvB,EAAEA,EAAEA,EAAE,GAAG,SAASA,EAAEuB,GAAG,OAAOvB,EAAE,mBAAmB+lC,QAAQ,iBAAiBA,OAAOG,SAAS,SAAS3kC,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBwkC,QAAQxkC,EAAEjB,cAAcylC,QAAQxkC,IAAIwkC,OAAOlmC,UAAU,gBAAgB0B,IAAIA,GAAG,SAAStB,EAAEsB,EAAEvB,GAAG,KAAKuB,aAAavB,GAAG,MAAM,IAAIimC,UAAU,qCAAqC,SAAS1hC,EAAEvE,EAAEC,GAAG,IAAI,IAAIsE,EAAE,EAAEA,EAAEtE,EAAEE,OAAOoE,IAAI,CAAC,IAAID,EAAErE,EAAEsE,GAAGD,EAAEqS,WAAWrS,EAAEqS,aAAY,EAAGrS,EAAE6hC,cAAa,EAAG,UAAU7hC,IAAIA,EAAEkJ,UAAS,GAAIpJ,OAAOiD,eAAerH,EAAEuB,EAAE+C,EAAEnC,KAAKmC,IAAI,SAASA,EAAE/C,EAAEvB,EAAEC,GAAG,OAAOD,GAAGuE,EAAEhD,EAAE1B,UAAUG,GAAGC,GAAGsE,EAAEhD,EAAEtB,GAAGmE,OAAOiD,eAAe9F,EAAE,YAAY,CAACiM,UAAS,IAAKjM,EAAE,IAAI6kC,EAAE36B,KAAKC,MAAM,SAAS3L,IAAI,IAAIwB,EAAE,GAAGvB,GAAE,EAAGC,EAAE,EAAEsE,EAAEC,UAAUrE,OAAO,qBAAqBiE,OAAOvE,UAAU2V,SAASpV,KAAKoE,UAAU,MAAMxE,EAAEwE,UAAU,GAAGvE,KAAK,IAAI,IAAIqE,EAAE,SAASrE,GAAG,IAAI,IAAIsE,KAAKtE,EAAEmE,OAAOvE,UAAU6E,eAAetE,KAAKH,EAAEsE,KAAKvE,GAAG,oBAAoBoE,OAAOvE,UAAU2V,SAASpV,KAAKH,EAAEsE,IAAIhD,EAAEgD,GAAGxE,GAAE,EAAGwB,EAAEgD,GAAGtE,EAAEsE,IAAIhD,EAAEgD,GAAGtE,EAAEsE,KAAKtE,EAAEsE,EAAEtE,IAAwBqE,EAAbE,UAAUvE,IAAQ,OAAOsB,EAAE,SAAS8kC,EAAE9kC,EAAEvB,GAAG,IAAIsmC,EAAE/kC,IAAIA,IAAI5B,QAAQ4B,IAAII,YAAYJ,EAAE,CAACA,IAAIglC,EAAEhlC,IAAIilC,EAAEjlC,KAAKA,EAAE,CAACA,IAAI,GAAGklC,EAAEllC,GAAG,GAAGglC,EAAEhlC,KAAKilC,EAAEjlC,GAAG,IAAI,IAAItB,EAAEsB,EAAEpB,OAAOoE,EAAE,EAAEA,EAAEtE,IAAG,IAAKD,EAAEI,KAAKmB,EAAEgD,GAAGhD,EAAEgD,GAAGA,EAAEhD,GAAGgD,UAAU,GAAGiiC,EAAEjlC,GAAG,IAAI,IAAI+C,KAAK/C,EAAE,GAAGmlC,EAAEnlC,EAAE+C,KAAI,IAAKtE,EAAEI,KAAKmB,EAAE+C,GAAG/C,EAAE+C,GAAGA,EAAE/C,GAAG,MAAM,SAAS0T,EAAE1T,GAAG,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKvE,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKD,EAAEhD,EAAE6kC,GAAG7kC,EAAE6kC,IAAI,GAAG9hC,EAAE,CAACqiC,IAAIpiC,EAAE+wB,IAAI,KAAK9C,MAAM,MAAM,OAAOxyB,GAAGC,GAAGwmC,EAAEliC,GAAG,GAAG8hC,EAAE9hC,GAAG,SAAShD,EAAEgD,GAAG,GAAGhD,EAAEkG,WAAWzH,GAAGuB,EAAEqlC,GAAGpxB,YAAYvV,EAAEuV,WAAW,OAAOlR,EAAEkuB,OAAM,EAAGluB,EAAEgxB,IAAI/wB,GAAE,KAAMD,EAAE,SAASuiC,EAAEtlC,GAAG,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAED,EAAE8mC,UAAUviC,EAAEvE,EAAE+mC,aAAaziC,EAAEtE,EAAEgnC,eAAeZ,OAAE,IAAS9hC,GAAGA,EAAEvE,EAAEC,EAAEmd,KAAK0pB,OAAE,IAAS9mC,GAAGA,EAAEknC,EAAEjnC,EAAEknC,WAAW1tB,OAAE,IAASytB,GAAGA,EAAEE,EAAE3iC,UAAUrE,OAAO,EAAEqE,UAAU,QAAG,EAAO4iC,EAAEnnC,GAAG,GAAG,SAAS8kB,EAAExjB,GAAG8lC,EAAE9iC,IAAIA,EAAEnE,KAAK+mC,EAAE5lC,EAAErB,MAAM2mC,GAAG9hB,EAAEoa,UAAU,OAAOmI,EAAEF,KAAKA,EAAEzlC,SAASkC,iBAAiBujC,IAAIriB,EAAEoa,QAAQ,WAAWkH,EAAEe,GAAG,SAASpnC,GAAG,IAAIC,EAAEgV,EAAEjV,EAAEuB,EAAEwjB,GAAG9kB,EAAEuyB,OAAOvyB,EAAE0mC,IAAIx5B,OAAOlN,EAAEq1B,IAAI,GAAGt1B,EAAE4B,qBAAqB5B,EAAE4B,oBAAoBL,EAAEwjB,EAAEvL,OAAO6sB,EAAEe,GAAG,SAASpnC,GAAG,IAAIC,EAAEgV,EAAEjV,EAAEuB,EAAEwjB,IAAI/kB,EAAEwC,kBAAkB4jC,IAAInmC,EAAEuyB,QAAQ4T,KAAKpmC,EAAEwC,iBAAiBjB,EAAEwjB,EAAEvL,GAAGvZ,EAAE0mC,IAAI1iC,KAAK,CAACwD,UAAUlG,EAAEqlC,GAAG7hB,QAAQA,EAAE,SAASkiB,EAAE1lC,EAAEvB,GAAGqmC,EAAErmC,EAAE+U,MAAM,MAAM,SAAS/U,GAAG,OAAOuB,EAAEc,UAAUM,IAAI3C,MAAM,SAASwZ,EAAEjY,EAAEvB,GAAGqmC,EAAErmC,EAAE+U,MAAM,MAAM,SAAS/U,GAAG,OAAOuB,EAAEc,UAAUC,OAAOtC,MAAM,SAASmnC,EAAE5lC,EAAEvB,GAAG,OAAOuB,EAAEc,UAAUZ,SAASzB,GAAG,SAASonC,EAAE7lC,EAAEvB,GAAG,KAAKuB,IAAII,SAASsI,MAAM,CAAC,KAAK1I,EAAEA,EAAEuhC,eAAe,OAAM,EAAG,GAAG,mBAAmBvhC,EAAEyX,QAAQzX,EAAEyX,QAAQhZ,GAAGuB,EAAEgmC,kBAAkBvnC,GAAG,OAAOuB,GAAG,SAASwjB,EAAExjB,GAAG,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAG,IAAIjD,GAAG,KAAKvB,EAAE,OAAM,EAAG,GAAG,SAASA,EAAE,OAAOqnC,EAAEpnC,IAAIA,KAAI,EAAG,IAAIsE,EAAEu3B,IAAIx3B,EAAEtE,EAAE+U,MAAM,KAAKsxB,EAAE/hC,GAAG,SAAStE,GAAGinC,EAAE1lC,EAAE,IAAIvB,MAAM6mC,EAAEtiC,EAAE,CAACuiC,UAAUvlC,EAAEylC,gBAAe,EAAG7pB,MAAK,EAAG4pB,aAAa,SAASxlC,EAAEvB,GAAGqmC,EAAE/hC,GAAG,SAAS/C,GAAGiY,EAAExZ,EAAE,IAAIuB,MAAM8lC,EAAEpnC,IAAIA,OAAO,SAASuG,EAAEjF,GAAG,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAG,GAAG,KAAKxE,EAAE,OAAOuB,EAAEwD,MAAM+P,gBAAgB,GAAGvT,EAAEwD,MAAMqQ,aAAa,GAAG7T,EAAEwD,MAAMwQ,YAAY,GAAGhU,EAAEwD,MAAMsQ,WAAW,GAAG9T,EAAEwD,MAAM8P,UAAU,IAAG,EAAGtT,EAAEwD,MAAM+P,gBAAgB9U,EAAEuB,EAAEwD,MAAMqQ,aAAapV,EAAEuB,EAAEwD,MAAMwQ,YAAYvV,EAAEuB,EAAEwD,MAAMsQ,WAAWrV,EAAEuB,EAAEwD,MAAM8P,UAAU7U,EAAE,SAASyE,EAAElD,GAAGA,EAAEwD,MAAMqJ,QAAQ,QAAQ,SAASsxB,EAAEn+B,GAAGA,EAAEwD,MAAMqJ,QAAQ,OAAO,SAAS4c,EAAEzpB,GAAG,IAAIvB,EAAE2B,SAAS6lC,yBAAyBvnC,EAAE0B,SAASmD,cAAc,OAAO,IAAI7E,EAAE2Q,UAAUrP,EAAEtB,EAAEkF,YAAYnF,EAAEoR,YAAYnR,EAAEkF,YAAY,OAAOnF,EAAE,SAAS+qB,IAAI,MAAM,CAAC3P,MAAMzb,OAAOqK,YAAYrI,SAASsD,gBAAgBiF,aAAavI,SAASsI,KAAKC,YAAYxB,OAAO/I,OAAO8F,aAAa9D,SAASsD,gBAAgBgb,cAActe,SAASsI,KAAKgW,cAAc,SAAS6b,IAAI,IAAIv6B,EAAEvB,EAAE2B,SAASmD,cAAc,eAAe7E,EAAE,CAACwnC,UAAU,eAAeC,WAAW,gBAAgBC,aAAa,eAAeC,gBAAgB,sBAAsB,IAAIrmC,KAAKtB,EAAE,QAAG,IAASD,EAAE+E,MAAMxD,GAAG,OAAOtB,EAAEsB,GAAG,SAASsmC,EAAEtmC,EAAEvB,EAAEC,EAAEsE,GAAG,GAAGhD,IAAIvB,QAAQ,CAAC,IAAIsE,EAAErE,IAAIA,EAAE,KAAK,IAAImmC,EAAE0B,aAAa,WAAWvmC,MAAMwmC,cAAc3B,GAAG9hC,GAAGyH,aAAazH,GAAGtE,OAAOC,GAAGsE,IAAID,EAAEqH,YAAY,WAAWo8B,cAAc3B,KAAK7hC,KAAK,SAASyjC,EAAEzmC,EAAEvB,EAAEC,GAAG,GAAGgoC,EAAE1mC,GAAGoO,QAAQC,MAAM,4BAA4B,GAAGy3B,EAAErnC,KAAKC,EAAED,EAAEA,GAAE,GAAIsnC,EAAEtnC,IAAIA,KAAKL,OAAO0nC,EAAEpnC,IAAIA,QAAQ,CAAC,IAAIsE,EAAE,IAAI,IAAIhD,EAAE2L,QAAQ,QAAQ,CAAC,IAAI3I,EAAE5C,SAASkC,iBAAiB,cAActC,EAAE,QAAQgD,EAAEpE,OAAO,EAAE,YAAYknC,EAAEpnC,IAAIA,KAAK,IAAIqE,EAAE3C,SAAS6Q,qBAAqB,QAAQ,GAAG4zB,EAAE9hC,EAAET,iBAAiB,0BAA0B9D,EAAE4B,SAASmD,cAAc,QAAQ,OAAO/E,EAAEmoC,IAAI,aAAanoC,EAAEyB,KAAK,WAAWzB,EAAE8S,KAAKtR,EAAExB,EAAEooC,MAAM,MAAM/B,EAAE9hC,EAAEY,aAAanF,EAAEqmC,EAAE,IAAI9hC,EAAE8M,YAAYrR,QAAQsnC,EAAEpnC,IAAIA,KAAK,IAAIsE,EAAE5C,SAASkC,iBAAiB,eAAetC,EAAE,QAAQgD,EAAEpE,OAAO,GAAG,GAAGknC,EAAEpnC,GAAG,CAAC,GAAGqnC,EAAEtnC,GAAG,OAAO6nC,GAAG,WAAW,YAAO,IAASloC,OAAOK,MAAM,WAAWC,QAAO,EAAGA,SAAS,CAAC,IAAIomC,EAAE1kC,SAASmD,cAAc,UAAUuhC,EAAE7kC,KAAK,kBAAkB6kC,EAAEx0B,IAAItQ,EAAE8kC,EAAE+B,OAAO,WAAW,GAAGf,EAAEpnC,GAAG,CAAC,GAAGqnC,EAAEtnC,GAAG,OAAO6nC,GAAG,WAAW,YAAO,IAASloC,OAAOK,MAAM,WAAWC,QAAO,EAAGA,MAAM0B,SAASsI,KAAKmH,YAAYi1B,KAAK,SAASgC,IAAI,MAAM,cAAc1oC,QAAQA,OAAO0T,UAAUC,UAAUgI,MAAM,4GAA4G,SAAS+rB,EAAE9lC,GAAG,MAAM,mBAAmBA,EAAE,SAAS+lC,EAAE/lC,GAAG,MAAM,iBAAiBA,EAAE,SAAS+kC,EAAE/kC,GAAG,SAASA,IAAIA,EAAEyU,UAAU,GAAGzU,EAAEyU,UAAU,SAASsyB,EAAE/mC,GAAG,OAAO8X,MAAMC,QAAQ/X,GAAG,SAASglC,EAAEhlC,GAAG,OAAOA,GAAGA,EAAEpB,QAAQooC,SAAShnC,EAAEpB,QAAQ,SAASqmC,EAAEjlC,GAAG,MAAM,WAAWvB,EAAEuB,IAAI,MAAMA,IAAI8lC,EAAE9lC,KAAK+mC,EAAE/mC,GAAG,SAAS0mC,EAAE1mC,GAAG,OAAO,MAAMA,EAAE,SAASmlC,EAAEnlC,EAAEvB,GAAG,OAAO,OAAOuB,GAAGmD,eAAetE,KAAKmB,EAAEvB,GAAG,SAASymC,EAAEllC,GAAG,GAAGilC,EAAEjlC,GAAG,CAAC,GAAGA,EAAEuQ,KAAK,OAAOvQ,EAAEuQ,OAAO3R,OAAO,IAAIH,EAAE,EAAE,IAAI,IAAIC,KAAKsB,EAAEmlC,EAAEnlC,EAAEtB,IAAID,IAAI,OAAOA,EAAE,OAAOuB,EAAEpB,OAAO,SAASqoC,EAAEjnC,GAAG,OAAO8e,MAAM3K,WAAWnU,KAAKgnC,SAAShnC,GAAG,SAASknC,IAAI,IAAIlnC,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,IAAI,EAAExE,EAAE2B,SAASkC,iBAAiB,uCAAuC,IAAI7D,EAAEG,OAAO,OAAM,EAAG,GAAG,GAAGH,EAAEG,OAAO,OAAOH,EAAE,GAAG,iBAAiBuB,IAAIA,EAAE6e,SAAS7e,IAAI,IAAItB,EAAE,GAAGomC,EAAErmC,GAAG,SAASuB,GAAGtB,EAAEgE,KAAK1C,EAAE2M,aAAa,qBAAqB,IAAI3J,EAAE8T,KAAKC,IAAI3T,MAAM0T,KAAKpY,EAAE+U,KAAK,SAASzT,GAAG,OAAO6e,SAAS7e,OAAO+C,EAAE/C,EAAE,EAAE,EAAEA,EAAE,EAAE+C,EAAEC,IAAID,EAAE,KAAK,IAAI8hC,EAAEnmC,EAAEoW,QAAQ,SAAS9U,GAAG,OAAOA,GAAG6e,SAAS9b,MAAMvE,EAAEqmC,EAAEvK,OAAO,GAAG,OAAOl6B,SAAS4B,cAAc,wBAAwBmlC,OAAO3oC,EAAE,OAAO,SAAS4oC,EAAEpnC,GAAG,GAAGA,EAAEsb,OAAOnY,eAAe,YAAY,OAAM,EAAGnD,EAAEsb,OAAO+rB,SAAS/B,EAAE,UAAU,CAACC,UAAUnnC,OAAOonC,aAAa,SAAS/mC,EAAEC,GAAG,IAAIsE,GAAGvE,EAAEA,GAAGL,OAAOud,OAAOmoB,QAAQ,GAAG,GAAG9gC,EAAE,CAAC,IAAID,EAAE3C,SAAS4B,cAAc,iBAAiB,IAAIe,EAAE,CAAC,IAAI8hC,KAAKzkC,SAASsQ,gBAAgBtQ,SAASsQ,cAAcE,WAAWxQ,SAASsQ,cAAcE,SAAS02B,oBAAoB,GAAG,SAASzC,GAAG,YAAYA,GAAG,UAAUA,EAAE,OAAOpmC,EAAE6B,iBAAiB,IAAI9B,EAAE4B,SAASkC,iBAAiB,wBAAwB,IAAI9D,GAAGA,EAAEI,QAAQ,EAAE,OAAO,IAAImE,EAAE,CAAC,IAAI+hC,EAAEoC,IAAI,YAAYpC,IAAIA,EAAE5jC,QAAQwkC,EAAEZ,EAAE,aAAa,IAAIpxB,EAAEwzB,EAAEnkC,EAAE4J,aAAa,kBAAkBsL,EAAElV,EAAE,WAAW2Q,IAAIA,EAAExS,QAAQwkC,EAAEhyB,EAAE,YAAY,IAAI1Q,GAAGhD,EAAEinB,YAAY,IAAIjkB,GAAGhD,EAAEgnB,YAAY,IAAIhkB,GAAGhD,EAAE+P,WAAW,IAAIw3B,EAAExkC,GAAG,SAAS/C,EAAEvB,EAAEuE,GAAG,IAAID,EAAEpE,KAAKkmC,EAAE5hC,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAK,GAAGvE,EAAEC,KAAKqB,GAAGrB,KAAK6oC,IAAI/oC,EAAEE,KAAK0iB,MAAMre,EAAErE,KAAK8oC,QAAQ5C,EAAElmC,KAAK6oC,IAAIE,cAAc,OAAM,EAAG/oC,KAAKgpC,QAAO,EAAGhpC,KAAKipC,UAAS,EAAGjpC,KAAKkpC,UAAS,EAAGlpC,KAAK2yB,SAAS,KAAK3yB,KAAK4yB,SAAS,KAAK5yB,KAAKmpC,SAAS,KAAKnpC,KAAKopC,SAAS,KAAKppC,KAAKqpC,QAAQ,EAAErpC,KAAKspC,QAAQ,EAAEtpC,KAAK6oC,IAAIvmC,iBAAiB,aAAa,SAASjB,GAAG,OAAO+C,EAAEmlC,UAAUloC,MAAK,GAAIrB,KAAK6oC,IAAIvmC,iBAAiB,WAAW,SAASjB,GAAG,OAAO+C,EAAEolC,QAAQnoC,MAAK,GAAIrB,KAAK6oC,IAAIvmC,iBAAiB,aAAa,SAASjB,GAAG,OAAO+C,EAAEqlC,KAAKpoC,MAAK,GAAIrB,KAAK6oC,IAAIvmC,iBAAiB,SAAS,SAASjB,GAAG,OAAO+C,EAAEse,MAAMvgB,UAAUZ,SAAS,iBAAiB6C,EAAEslC,WAAU,GAAItlC,EAAE6kC,cAAc7kC,EAAE6kC,WAAW7kC,EAAE8kC,UAAU9kC,EAAEslC,WAAWtlC,EAAEulC,YAAW,GAAI3pC,KAAK6oC,IAAIE,eAAc,IAAK,CAAC,CAAC9mC,IAAI,SAAS2D,MAAM,WAAW,IAAIvE,EAAErB,KAAK4pC,aAAa,KAAK5pC,KAAKipC,UAAU5nC,GAAG,KAAK,CAAC,IAAIvB,EAAEE,KAAK6oC,IAAI,GAAG/oC,EAAEoC,aAAa,aAAapC,EAAEkO,aAAa,UAAUlO,EAAE+E,MAAMglC,SAAS/pC,EAAEgqC,aAAa,KAAKhqC,EAAE+E,MAAMklC,UAAUjqC,EAAEkqC,cAAc,KAAKlqC,EAAEgqC,aAAazoC,EAAE,CAAC,IAAItB,EAAEsB,EAAE,EAAEvB,EAAEgqC,aAAa,EAAE9pC,KAAK0qB,aAAa1qB,KAAK6oC,IAAInK,WAAW3+B,EAAE,GAAGC,KAAK0iB,MAAMvgB,UAAUM,IAAI,UAAUzC,KAAKipC,UAAS,KAAM,CAAChnC,IAAI,UAAU2D,MAAM,WAAW5F,KAAK6oC,IAAInK,WAAWx8B,aAAa,QAAQ,IAAIlC,KAAK6oC,IAAI3mC,aAAa,QAAQlC,KAAK6oC,IAAI76B,aAAa,eAAehO,KAAK0iB,MAAMvgB,UAAUC,OAAO,UAAUpC,KAAKipC,UAAS,EAAGjpC,KAAK2yB,SAAS,KAAK3yB,KAAK4yB,SAAS,KAAK5yB,KAAKmpC,SAAS,KAAKnpC,KAAKopC,SAAS,KAAKppC,KAAKqpC,QAAQ,EAAErpC,KAAKspC,QAAQ,EAAEtpC,KAAK8oC,SAAS,mBAAmB9oC,KAAK8oC,SAAS9oC,KAAK8oC,YAAY,CAAC7mC,IAAI,YAAY2D,MAAM,SAASvE,GAAGA,EAAEM,iBAAiB3B,KAAKipC,UAAU,eAAe5nC,EAAEC,MAAMtB,KAAKmpC,SAAS9nC,EAAE8vB,QAAQ,GAAG8Y,QAAQjqC,KAAKqpC,QAAQrpC,KAAKopC,SAAS/nC,EAAE8vB,QAAQ,GAAG+Y,QAAQlqC,KAAKspC,UAAUtpC,KAAKmpC,SAAS9nC,EAAE4oC,QAAQjqC,KAAKqpC,QAAQrpC,KAAKopC,SAAS/nC,EAAE6oC,QAAQlqC,KAAKspC,SAASjoC,EAAEf,SAASN,KAAK6oC,MAAM7oC,KAAKgpC,QAAO,EAAGhpC,KAAK6oC,IAAI1mC,UAAUM,IAAI,cAAczC,KAAKgpC,QAAO,IAAK,CAAC/mC,IAAI,UAAU2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEE,KAAKqB,EAAEM,iBAAiB3B,KAAKmpC,SAASnpC,KAAK2yB,SAAS3yB,KAAKopC,SAASppC,KAAK4yB,SAAS5yB,KAAKgpC,QAAO,EAAGv9B,YAAY,WAAW3L,EAAEopC,UAAS,EAAGppC,EAAE+oC,IAAIsB,YAAW,EAAGrqC,EAAE+oC,IAAI1mC,UAAUC,OAAO,cAAc,OAAO,CAACH,IAAI,OAAO2D,MAAM,SAASvE,GAAGrB,KAAKgpC,SAAS3nC,EAAEM,iBAAiB,cAAcN,EAAEC,MAAMtB,KAAK2yB,SAAStxB,EAAE8vB,QAAQ,GAAG8Y,QAAQjqC,KAAKmpC,SAASnpC,KAAK4yB,SAASvxB,EAAE8vB,QAAQ,GAAG+Y,QAAQlqC,KAAKopC,WAAWppC,KAAK2yB,SAAStxB,EAAE4oC,QAAQjqC,KAAKmpC,SAASnpC,KAAK4yB,SAASvxB,EAAE6oC,QAAQlqC,KAAKopC,UAAUppC,KAAKqpC,QAAQrpC,KAAK2yB,SAAS3yB,KAAKspC,QAAQtpC,KAAK4yB,SAAS5yB,KAAK6oC,IAAIsB,YAAW,EAAGnqC,KAAKkpC,UAAS,EAAGlpC,KAAK0qB,aAAa1qB,KAAK6oC,IAAI7oC,KAAK2yB,SAAS3yB,KAAK4yB,aAAa,CAAC3wB,IAAI,SAAS2D,MAAM,SAASvE,GAAG,GAAGrB,KAAKipC,SAAS,CAAC,IAAInpC,EAAEuB,EAAE4oC,QAAQjqC,KAAK6oC,IAAIiB,aAAa,EAAE/pC,EAAEsB,EAAE6oC,QAAQlqC,KAAK6oC,IAAImB,cAAc,EAAEhqC,KAAK0qB,aAAa1qB,KAAK6oC,IAAI/oC,EAAEC,MAAM,CAACkC,IAAI,eAAe2D,MAAM,SAASvE,EAAEvB,EAAEC,GAAGsB,EAAEwD,MAAM8P,UAAU,eAAe7U,EAAE,OAAOC,EAAE,WAAW,CAACkC,IAAI,aAAa2D,MAAM,WAAW,OAAOnG,OAAOqK,YAAYrI,SAASsD,gBAAgBiF,aAAavI,SAASsI,KAAKC,gBAAgBogC,EAAEhmC,GAAG,SAAS/C,IAAI,IAAIvB,EAAEE,KAAKqE,EAAEC,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAEC,KAAKqB,GAAG,IAAI+C,EAAEC,EAAEgmC,OAAOnE,EAAE7hC,EAAEimC,WAAWzqC,OAAE,IAASqmC,EAAE,GAAGA,EAAEC,EAAE9hC,EAAEkmC,WAAWx1B,OAAE,IAASoxB,EAAE,GAAGA,EAAEQ,EAAEtiC,EAAEqe,MAAMqkB,OAAE,IAASJ,EAAE,KAAKA,EAAErtB,EAAEjV,EAAEmmC,SAASvD,OAAE,IAAS3tB,EAAE,KAAKA,EAAEtZ,KAAKmU,GAAG/P,EAAEpE,KAAKgpC,QAAO,EAAGhpC,KAAKkpC,UAAS,EAAGlpC,KAAK2yB,SAAS,KAAK3yB,KAAK4yB,SAAS,KAAK5yB,KAAKmpC,SAAS,KAAKnpC,KAAKopC,SAAS,KAAKppC,KAAKqpC,QAAQ,EAAErpC,KAAKspC,QAAQ,EAAEtpC,KAAKiJ,UAAU,KAAKjJ,KAAKyqC,cAAc,KAAKzqC,KAAKsqC,WAAWzqC,EAAEG,KAAKuqC,WAAWx1B,EAAE/U,KAAK0qC,kBAAiB,EAAG1qC,KAAK2qC,cAAc3qC,KAAKmU,GAAGnU,KAAK0iB,MAAMqkB,EAAE/mC,KAAKwqC,SAASvD,EAAEjnC,KAAKmU,GAAG7R,iBAAiB,aAAa,SAASjB,GAAG,OAAOvB,EAAEypC,UAAUloC,MAAK,GAAIrB,KAAKmU,GAAG7R,iBAAiB,WAAW,SAASjB,GAAG,OAAOvB,EAAE0pC,QAAQnoC,MAAK,GAAIrB,KAAKmU,GAAG7R,iBAAiB,aAAa,SAASjB,GAAG,OAAOvB,EAAE2pC,KAAKpoC,MAAK,KAAM,CAAC,CAACY,IAAI,YAAY2D,MAAM,SAASvE,GAAG,GAAGrB,KAAK0iB,MAAMvgB,UAAUZ,SAAS,UAAUvB,KAAKgpC,QAAO,MAAO,CAAC,eAAe3nC,EAAEC,MAAMtB,KAAKmpC,SAAS9nC,EAAE8vB,QAAQ,GAAG8Y,QAAQjqC,KAAKqpC,QAAQrpC,KAAKopC,SAAS/nC,EAAE8vB,QAAQ,GAAG+Y,QAAQlqC,KAAKspC,UAAUtpC,KAAKmpC,SAAS9nC,EAAE4oC,QAAQjqC,KAAKqpC,QAAQrpC,KAAKopC,SAAS/nC,EAAE6oC,QAAQlqC,KAAKspC,SAAS,IAAIxpC,EAAEuB,EAAEf,OAAO2R,SAASlC,cAAc1O,EAAEf,OAAO6B,UAAUZ,SAAS,WAAW2lC,EAAE7lC,EAAEf,OAAO,aAAa,IAAI,CAAC,QAAQ,SAAS,WAAW,SAAS,KAAK0M,QAAQlN,GAAGE,KAAKgpC,QAAO,GAAI3nC,EAAEM,kBAAkBN,EAAEf,SAASN,KAAKmU,IAAI,QAAQrU,GAAGonC,EAAE7lC,EAAEf,OAAO,qBAAqBN,KAAKgpC,QAAO,EAAGhpC,KAAKmU,GAAGhS,UAAUM,IAAI,YAAYzC,KAAK2qC,cAAczD,EAAE7lC,EAAEf,OAAO,0BAA0B,CAAC2B,IAAI,UAAU2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEE,KAAKqB,GAAGA,EAAEM,iBAAiB3B,KAAKmpC,SAAS,EAAEnpC,KAAKopC,SAAS,EAAEppC,KAAK2yB,SAAS,KAAK3yB,KAAK4yB,SAAS,KAAK5yB,KAAKmpC,SAAS,KAAKnpC,KAAKopC,SAAS,KAAKppC,KAAKqpC,QAAQ,EAAErpC,KAAKspC,QAAQ,EAAEtpC,KAAKgpC,QAAO,EAAGhpC,KAAK4qC,gBAAgB5qC,KAAKwqC,SAASK,qBAAoB,EAAG,SAAS7qC,KAAK4qC,eAAe5qC,KAAKwqC,SAASniB,YAAY,QAAQroB,KAAK4qC,eAAe5qC,KAAKwqC,SAASliB,aAAatoB,KAAK8qC,cAAc9qC,KAAKwqC,SAASp5B,QAAQpR,KAAK0qC,kBAAkB1qC,KAAK0qB,aAAa1qB,KAAK2qC,cAAc,EAAE,GAAE,GAAIl/B,YAAY,WAAW3L,EAAE0qC,SAASK,qBAAoB,EAAG/qC,EAAE4qC,kBAAiB,EAAG5qC,EAAE2qC,cAAc,KAAK3qC,EAAEopC,UAAS,EAAGppC,EAAEqU,GAAGg2B,YAAW,EAAGrqC,EAAEqU,GAAGhS,UAAUC,OAAO,YAAYtC,EAAE4iB,MAAMvgB,UAAUC,OAAO,gBAAgBtC,EAAE6qC,cAAc9lC,MAAM8P,UAAU,GAAG7U,EAAE6qC,cAAc9lC,MAAM40B,WAAW,KAAK,OAAO,CAACx3B,IAAI,OAAO2D,MAAM,SAASvE,GAAG,GAAGrB,KAAKgpC,OAAO,CAAC3nC,EAAEM,iBAAiB3B,KAAK0iB,MAAMvgB,UAAUM,IAAI,gBAAgB,cAAcpB,EAAEC,MAAMtB,KAAK2yB,SAAStxB,EAAE8vB,QAAQ,GAAG8Y,QAAQjqC,KAAKmpC,SAASnpC,KAAK4yB,SAASvxB,EAAE8vB,QAAQ,GAAG+Y,QAAQlqC,KAAKopC,WAAWppC,KAAK2yB,SAAStxB,EAAE4oC,QAAQjqC,KAAKmpC,SAASnpC,KAAK4yB,SAASvxB,EAAE6oC,QAAQlqC,KAAKopC,UAAUppC,KAAKqpC,QAAQrpC,KAAK2yB,SAAS3yB,KAAKspC,QAAQtpC,KAAK4yB,SAAS5yB,KAAKmU,GAAGg2B,YAAW,EAAGnqC,KAAKkpC,UAAS,EAAGlpC,KAAK4qC,eAAc,EAAG5qC,KAAK8qC,cAAa,EAAG,IAAIhrC,EAAEqY,KAAKkL,IAAIrjB,KAAK2yB,UAAU5yB,EAAEoY,KAAKkL,IAAIrjB,KAAK4yB,UAAU,GAAG9yB,EAAE,GAAGA,GAAGqY,KAAKkL,IAAIrjB,KAAK4yB,aAAa5yB,KAAKyqC,eAAe,KAAKzqC,KAAKyqC,eAAe,CAACzqC,KAAKspC,QAAQ,EAAEtpC,KAAKyqC,cAAc,IAAIzqC,KAAK0qB,aAAa1qB,KAAK2qC,cAAc3qC,KAAK2yB,SAAS,GAAG,IAAItuB,EAAErE,KAAK+qC,eAAe,IAAI/qC,KAAKwqC,SAASr+B,SAAS6+B,cAAc3mC,IAAIrE,KAAK4qC,cAAcvmC,GAAGrE,KAAKwqC,SAASr+B,SAAS6+B,cAAc3mC,EAAE,OAAOrE,KAAKwqC,SAASK,qBAAoB,EAAG7qC,KAAK0qC,kBAAiB,EAAG1qC,KAAKgpC,QAAO,EAAGhpC,KAAKwqC,SAASK,qBAAoB,EAAG7qC,KAAKwpC,QAAQ,MAAM,SAASnlC,GAAGrE,KAAKwqC,SAASniB,iBAAiB,QAAQhkB,GAAGrE,KAAKwqC,SAASliB,aAAa,GAAGtoB,KAAKuqC,WAAW,GAAGxqC,EAAE,GAAGA,GAAGD,KAAKE,KAAKyqC,eAAe,KAAKzqC,KAAKyqC,eAAe,CAACzqC,KAAKqpC,QAAQ,EAAErpC,KAAKyqC,cAAc,IAAIzqC,KAAK0qB,aAAa1qB,KAAK2qC,cAAc,EAAE3qC,KAAK4yB,UAAU,IAAIxuB,EAAEpE,KAAKirC,cAAc,OAAOjrC,KAAKwqC,SAASr+B,SAAS6+B,cAAc5mC,IAAIpE,KAAK8qC,cAAa,QAAS9qC,KAAKwqC,SAASr+B,SAAS6+B,cAAc5mC,GAAGpE,KAAKwqC,SAASp5B,aAAa,CAACnP,IAAI,eAAe2D,MAAM,WAAW,IAAIvE,GAAE,EAAG,GAAG8W,KAAKkL,IAAIrjB,KAAK2yB,WAAW3yB,KAAKsqC,WAAW,CAAC,IAAIxqC,EAAEE,KAAK2yB,SAAS,EAAE,QAAQ,QAAQ,QAAQ7yB,GAAGE,KAAK0iB,QAAQ1iB,KAAK0iB,MAAMgc,WAAWwM,WAAW,SAASprC,GAAGE,KAAK0iB,QAAQ1iB,KAAK0iB,MAAMgc,WAAWz5B,cAAc5D,EAAEvB,GAAG,OAAOuB,IAAI,CAACY,IAAI,cAAc2D,MAAM,WAAW,IAAIvE,GAAE,EAAG,OAAO8W,KAAKkL,IAAIrjB,KAAK4yB,WAAW5yB,KAAKuqC,aAAalpC,GAAE,GAAIA,IAAI,CAACY,IAAI,eAAe2D,MAAM,SAASvE,EAAEvB,EAAEC,GAAG,IAAIsE,EAAEC,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAGjD,EAAEwD,MAAM40B,WAAWp1B,EAAE,eAAe,GAAGhD,EAAEwD,MAAM8P,UAAU,eAAe6zB,OAAO1oC,EAAE,QAAQ0oC,OAAOzoC,EAAE,cAAc,SAASorC,EAAE9pC,EAAEvB,EAAEC,EAAEsE,GAAG,IAAID,EAAE/C,EAAEgC,cAAc,iBAAiB6iC,EAAE,IAAIxyB,MAAM7T,EAAE,eAAeE,EAAEomC,EAAE,cAAcpmC,EAAEmmC,EAAE5jC,iBAAiB,QAAQ,WAAW6kC,EAAE9iC,IAAIA,OAAM,GAAI6hC,EAAEv0B,IAAI7R,EAAE6S,KAAK,IAAI7S,EAAEiG,OAAO,IAAIjG,EAAEsrC,SAASlF,EAAEngC,MAAMjG,EAAEiG,MAAMmgC,EAAEkF,OAAOtrC,EAAEsrC,QAAQlF,EAAEmF,IAAI,GAAGtD,EAAEjoC,EAAEurC,MAAM,KAAKvrC,EAAEurC,MAAMnF,EAAEmF,IAAIvrC,EAAEurC,KAAK,KAAKvrC,EAAEwrC,OAAOpF,EAAEhkC,aAAa,kBAAkBrC,GAAG,KAAKC,EAAEyrC,aAAarF,EAAEhkC,aAAa,mBAAmBikC,GAAGrmC,EAAE0E,eAAe,oBAAoB1E,EAAE0rC,kBAAkBtF,EAAErhC,MAAMqW,MAAMpb,EAAEob,OAAOpb,EAAE0E,eAAe,qBAAqB1E,EAAE2rC,mBAAmBvF,EAAErhC,MAAM2D,OAAO1I,EAAE0I,QAAQpE,EAAEY,aAAakhC,EAAE9hC,EAAEa,YAAY,SAASwa,EAAEpe,EAAEvB,EAAEC,EAAEsE,GAAG,IAAID,EAAEpE,KAAKkmC,EAAE7kC,EAAEgC,cAAc,qBAAqBxD,EAAE,SAASE,EAAEomC,EAAE9kC,EAAEgC,cAAc,iBAAiB0R,EAAE/U,KAAK0rC,gBAAgB3E,EAAEb,EAAE,oBAAoBC,EAAEnhC,aAAa8lB,EAAE,sCAAsCqb,EAAElhC,YAAY,IAAI0hC,EAAEtlC,EAAEgC,cAAc,mBAAmBykC,EAAE9nC,KAAKmM,SAASw/B,KAAKC,IAAI,QAAQ,IAAItyB,EAAExZ,EAAE6S,KAAKs0B,EAAE,MAAMnnC,OAAE,EAAOA,EAAE+rC,cAAc3E,GAAE,EAAGf,EAAEthC,MAAMglC,SAAS/pC,EAAEob,MAAM4sB,EAAE9nC,KAAKmM,SAASw/B,KAAKG,GAAG,QAAQ,WAAW,IAAI7E,GAAG3tB,EAAE8B,MAAM,0BAA0B6rB,EAAE,UAAUA,IAAI3tB,EAAE8B,MAAM,qEAAqE9B,EAAE8B,MAAM,iCAAiC9B,EAAE8B,MAAM,mEAAmE9B,EAAE8B,MAAM,sEAAsE6rB,EAAE,WAAW,UAAUA,IAAIA,EAAE,CAACA,EAAE,QAAQ,IAAIf,EAAE,cAAcrmC,EAAE,KAAKqmC,GAAG,sCAAsCsC,OAAO1oC,EAAEob,MAAM,OAAOgrB,GAAG,sBAAsBA,GAAG,4BAA4BA,GAAG,eAAeA,GAAG,YAAYA,GAAG,wBAAwBA,GAAG,gBAAgBsC,OAAOlvB,EAAE,MAAM4tB,EAAEpc,EAAEob,GAAG,YAAY,IAAIC,EAAEe,GAAGpc,EAAE,YAAY0d,OAAO3oC,EAAE,0BAA0B2oC,OAAOvB,EAAE,0BAA0BuB,OAAOlvB,EAAE,aAAaytB,EAAEJ,EAAE,GAAG6B,OAAOvB,EAAE,kBAAkBN,EAAEz1B,YAAYi1B,GAAGQ,EAAEzkC,aAAa,UAAUrC,GAAG8mC,EAAEzkC,aAAa,aAAanC,GAAG,IAAI8kB,EAAE2hB,EAAEpiC,EAAE+H,SAASw/B,KAAK,UAAUvnC,EAAE+H,SAASw/B,KAAKhkC,OAAO,GAAGrB,EAAE,IAAIylC,KAAK,IAAIlsC,EAAEglB,GAAGve,EAAEsG,GAAG,SAAS,SAASvL,GAAG0T,EAAElV,GAAGwB,EAAES,OAAO6pC,KAAKxE,EAAE9iC,IAAIA,OAAOsjC,GAAG,WAAW,OAAOtmC,EAAEgC,cAAc,WAAW,QAAQhC,EAAEgC,cAAc,UAAUQ,QAAQmoC,SAAS,WAAW5nC,EAAE6nC,OAAO5qC,MAAMiF,EAAEsG,GAAG,kBAAkBs/B,GAAG5lC,EAAEsG,GAAG,iBAAiBs/B,MAAM,SAASA,EAAE7qC,GAAG,IAAIvB,EAAEonC,EAAE7lC,EAAEf,OAAO,iBAAiB,oBAAoBe,EAAEC,MAAMylC,EAAEjnC,EAAE,cAAc,mBAAmBuB,EAAEC,MAAMgY,EAAExZ,EAAE,cAAc,SAASqsC,EAAE9qC,EAAEvB,EAAEC,EAAEsE,GAAG,IAAID,EAAE8hC,EAAElmC,KAAKH,EAAEwB,EAAEgC,cAAc,iBAAiB8iC,KAAKK,EAAE1mC,EAAE,UAAUA,EAAE6S,OAAO7S,EAAE6S,KAAKkC,MAAM,KAAKu3B,MAAM/yB,OAAOtE,KAAKyxB,EAAE1mC,EAAE,aAAaA,EAAE6P,UAAU7P,EAAE6P,QAAQ,GAAGoF,IAAIqyB,EAAEryB,KAAK3Q,EAAE0mB,EAAE,iCAAiC0d,OAAOzzB,EAAE,YAAYqxB,EAAErxB,IAAI,CAAC,QAAQA,EAAElQ,MAAMqJ,UAAU6G,EAAElQ,MAAMqJ,QAAQ,SAAS,IAAIoL,EAAE7X,SAASmD,cAAc,OAAO0U,EAAE2E,UAAU,mBAAmB3E,EAAEpI,YAAY6D,GAAG3Q,EAAEkV,EAAE,GAAG6sB,EAAE,CAAC,IAAIc,EAAExlC,SAASmC,eAAeuiC,GAAG,IAAIc,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEoF,WAAU,GAAInF,EAAEriC,MAAM2D,OAAO1I,EAAE0I,OAAO0+B,EAAEriC,MAAMglC,SAAS/pC,EAAEob,MAAM6rB,EAAEG,EAAE,oBAAoB9iC,EAAE8iC,EAAE,IAAI9iC,EAAE,OAAOqL,QAAQC,MAAM,wCAAwC5P,IAAG,EAAGD,EAAEgF,MAAM2D,OAAO1I,EAAE0I,OAAO3I,EAAEgF,MAAMqW,MAAMpb,EAAEob,MAAMrb,EAAEqR,YAAY9M,GAAGpE,KAAK2c,OAAO,cAAcwpB,GAAGQ,EAAE,QAAQ,CAACC,UAAU/mC,EAAE8D,iBAAiB,mBAAmBkjC,aAAa,SAASxlC,GAAGA,EAAEM,iBAAiBukC,EAAE90B,WAAW+1B,EAAE9iC,IAAIA,IAAI,SAASioC,EAAEjrC,EAAEvB,EAAEC,EAAEsE,GAAG,IAAID,EAAE/C,EAAEgC,cAAc,iBAAiB6iC,EAAE,SAAS7kC,GAAG,IAAIvB,EAAEuB,EAAEw3B,IAAI94B,EAAEsB,EAAEkrC,MAAMloC,EAAEhD,EAAEmG,SAASpD,EAAE/C,EAAEmrC,SAAStG,EAAEzkC,SAASmD,cAAc,UAAU,OAAOshC,EAAEjoB,UAAU,qBAAqBioB,EAAEv0B,IAAI7R,EAAEomC,EAAErhC,MAAMqW,MAAM,OAAOgrB,EAAErhC,MAAM2D,OAAO,OAAOzI,GAAGmmC,EAAEhkC,aAAa,QAAQnC,GAAGmmC,EAAEgC,OAAO,WAAWhC,EAAEgC,OAAO,KAAKnB,EAAEb,EAAE,cAAciB,EAAE9iC,IAAIA,KAAKD,GAAGA,EAAE8M,YAAYg1B,GAAGA,EAA1S,CAA6S,CAACrN,IAAI/4B,EAAE6S,KAAKnL,SAASnD,IAAID,EAAEs6B,WAAW75B,MAAMglC,SAAS/pC,EAAEob,MAAM9W,EAAEs6B,WAAW75B,MAAM2D,OAAO1I,EAAE0I,OAAOpE,EAAE8M,YAAYg1B,GAAG,IAAIuG,EAAEroC,GAAG,SAAS/C,IAAI,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAEC,KAAKqB,GAAGrB,KAAKu4B,SAAS,CAAC5lB,KAAK,GAAG5M,MAAM,GAAGqlC,OAAO,GAAGE,MAAM,GAAGhqC,KAAK,GAAGuqC,cAAc,GAAGN,YAAY,GAAGF,IAAI,GAAGqB,aAAa,SAASlpB,OAAO,GAAGtI,MAAM,GAAG1S,OAAO,GAAGmH,SAAQ,EAAGg9B,UAAS,EAAGC,WAAU,GAAItG,EAAExmC,KAAKE,KAAKu4B,SAAS14B,EAAEG,KAAKu4B,SAASz4B,MAAM,CAAC,CAACmC,IAAI,aAAa2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEuB,EAAE,OAAO,QAAQA,EAAEA,EAAE0O,eAAeqL,MAAM,8CAA8C,QAAQ/Z,EAAE+Z,MAAM,qEAAqE/Z,EAAE+Z,MAAM,iCAAiC/Z,EAAE+Z,MAAM,mEAAmE/Z,EAAE+Z,MAAM,oEAAoE/Z,EAAE+Z,MAAM,yBAAyB,OAAO/Z,EAAE+Z,MAAM,wBAAwB,QAAQ,OAAO/Z,EAAE+Z,MAAM,2BAA2B,QAAQ/Z,EAAE2L,QAAQ,MAAM,GAAG,KAAKlN,EAAE+U,MAAM,KAAKu3B,MAAM/yB,OAAO,SAAShY,EAAE2L,QAAQ,gBAAgB,EAAE,OAAO,aAAa,CAAC/K,IAAI,cAAc2D,MAAM,SAASvE,EAAEvB,GAAG,IAAIC,EAAEC,KAAKqE,EAAExE,EAAE,CAAC6sC,aAAa5sC,EAAE4sC,cAAc1sC,KAAKu4B,UAAU,GAAG+N,EAAEjlC,KAAK+kC,EAAE/kC,GAAG,CAACmlC,EAAEnlC,EAAE,UAAUmlC,EAAEnlC,EAAE,YAAYA,EAAEsO,QAAQtO,EAAEC,KAAK,SAASklC,EAAEnlC,EAAE,UAAUA,EAAEC,KAAKtB,KAAK6sC,WAAWxrC,EAAEsR,QAAQ,IAAIvO,EAAEvE,EAAEwE,EAAEhD,GAAG,OAAOrB,KAAK8sC,QAAQ1oC,EAAEtE,GAAGsE,EAAE,IAAI8hC,EAAE,GAAGnxB,EAAE1T,EAAE2M,aAAa,kBAAkB24B,EAAEtlC,EAAE4Q,SAASlC,cAAc,GAAG,MAAM42B,IAAIT,EAAE7kC,EAAEsR,MAAM,QAAQg0B,IAAIT,EAAE7kC,EAAEsQ,IAAItN,EAAEgnC,IAAIhqC,EAAEgqC,KAAKhnC,EAAEsO,KAAKuzB,EAAEC,EAAE9hC,GAAG,SAASD,EAAE8hC,GAAGM,EAAE1mC,EAAEomC,IAAI,UAAUA,IAAI7hC,EAAE6hC,GAAGpmC,EAAEomC,IAAI,IAAIrmC,EAAEwB,EAAEwC,QAAQqiC,GAAG6B,EAAEloC,KAAKwE,EAAE6hC,GAAGnmC,EAAEgtC,cAAcltC,OAAOwE,EAAEsL,UAAUtL,EAAE/C,KAAK,WAAW+C,EAAE/C,MAAM4kC,IAAI7hC,EAAE/C,KAAKtB,KAAK6sC,WAAW3G,IAAI6B,EAAEhzB,GAAG,CAAC,IAAI1Q,EAAEinC,OAAO,KAAK3E,EAAE,CAAC,IAAII,EAAE1lC,EAAEiqC,MAAMvD,EAAEhB,IAAI,KAAKA,IAAI1iC,EAAEinC,MAAMvE,GAAG,IAAI1iC,EAAEinC,OAAO,OAAO3E,EAAE,CAAC,IAAIrtB,EAAEjY,EAAEgqC,IAAItD,EAAEzuB,IAAI,KAAKA,IAAIjV,EAAEinC,MAAMhyB,QAAQ,CAAC,IAAI2tB,EAAE,GAAGd,EAAE9hC,GAAG,SAAShD,EAAEvB,GAAGmnC,EAAEljC,KAAK,QAAQjE,MAAMmnC,EAAEA,EAAEhyB,KAAK,UAAU,KAAKF,EAAEsE,QAAQ8sB,EAAE9hC,GAAG,SAAShD,EAAEvB,GAAG,IAAIsE,EAAE2Q,EAAEmxB,EAAE,IAAI8G,OAAO,KAAKltC,EAAE,cAAcmnC,EAAE,UAAUpnC,EAAEuE,EAAEgX,MAAM8qB,GAAG,GAAGrmC,GAAGA,EAAEI,QAAQJ,EAAE,GAAG,CAAC,IAAIsmC,EAAEtmC,EAAE,GAAGwZ,OAAOrE,QAAQ,QAAQ,IAAI3Q,EAAEvE,GAAGC,EAAEgtC,cAAc5G,OAAO,GAAG9hC,EAAEknC,aAAa,MAAMlnC,EAAEknC,YAAYn7B,UAAU,EAAE,GAAG,CAAC,IAAI82B,EAAE,IAAIA,EAAEzlC,SAAS4B,cAAcgB,EAAEknC,aAAa76B,UAAU,MAAMrP,GAAG,KAAKA,aAAa4rC,cAAc,MAAM5rC,EAAE6lC,IAAI7iC,EAAEknC,YAAYrE,GAAG,IAAI7iC,EAAEknC,YAAY,CAAC,IAAI1mB,EAAExjB,EAAEgC,cAAc,mBAAmBwhB,IAAIxgB,EAAEknC,YAAY1mB,EAAEnU,WAAW,OAAO1Q,KAAK8sC,QAAQzoC,EAAEvE,EAAEuB,GAAGrB,KAAKktC,YAAY7oC,EAAEA,IAAI,CAACpC,IAAI,UAAU2D,MAAM,SAASvE,EAAEvB,GAAG,IAAIC,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKD,EAAE,SAAShD,EAAEC,KAAKtB,KAAKmtC,UAAUrtC,EAAEstC,aAAaptC,KAAKmtC,UAAUrtC,EAAEob,OAAO9W,EAAEpE,KAAKmtC,UAAUrtC,EAAE0I,QAAQ,OAAOnH,EAAE6Z,MAAMsrB,EAAEnlC,EAAE,UAAU,KAAKA,EAAE6Z,MAAMlb,KAAKmtC,UAAU9rC,EAAE6Z,OAAO7W,EAAEhD,EAAEmH,OAAOg+B,EAAEnlC,EAAE,WAAW,KAAKA,EAAEmH,OAAOxI,KAAKmtC,UAAU9rC,EAAEmH,QAAQpE,EAAErE,GAAG,SAASsB,EAAEC,OAAOD,EAAEmqC,kBAAkBzrC,EAAE8D,QAAQqX,MAAM7Z,EAAEoqC,mBAAmB1rC,EAAE8D,QAAQ2E,QAAQnH,IAAI,CAACY,IAAI,YAAY2D,MAAM,SAASvE,GAAG,OAAOinC,EAAEjnC,GAAG,GAAGmnC,OAAOnnC,EAAE,MAAMA,IAAI,CAACY,IAAI,gBAAgB2D,MAAM,SAASvE,GAAG,MAAM,SAASA,GAAG,UAAUA,EAAEA,EAAE,SAASA,MAAMgsC,EAAEjpC,GAAG,SAAS/C,EAAEvB,EAAEuE,EAAED,GAAGrE,EAAEC,KAAKqB,GAAGrB,KAAKK,QAAQP,EAAEE,KAAKwqC,SAASnmC,EAAErE,KAAK+M,MAAM3I,IAAI,CAAC,CAACnC,IAAI,aAAa2D,MAAM,WAAW,IAAIvE,EAAErB,KAAKF,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKvE,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAG,GAAG2iC,EAAEnnC,EAAE,UAAU,OAAM,EAAG,IAAIuE,EAAErE,KAAKwqC,SAASr+B,SAAS/H,EAAEpE,KAAKktC,YAAYhH,EAAEiC,IAAIhB,EAAE9iC,EAAEipC,kBAAkBjpC,EAAEipC,gBAAgB,CAACvgC,MAAM/M,KAAK+M,MAAM2V,MAAM5iB,EAAEytC,QAAO,IAAK,IAAI1tC,EAAEuE,EAAE9C,KAAK6kC,EAAE/hC,EAAEsoC,aAAa33B,EAAEjV,EAAEuD,cAAc,iBAAiBsjC,EAAE7mC,EAAEuD,cAAc,iBAAiBiW,EAAExZ,EAAEuD,cAAc,gBAAgB6jC,EAAEpnC,EAAEuD,cAAc,gBAAgBwhB,EAAE9kB,EAAEuG,EAAE,eAAetG,KAAK+M,MAAMxI,EAAE,cAAcvE,KAAK+M,MAAM,GAAGo6B,EAAE9iC,EAAEmpC,kBAAkB3oB,EAAE,WAAWsiB,EAAEpnC,IAAIA,IAAIsE,EAAEmpC,eAAe,CAACzgC,MAAM1L,EAAE0L,MAAM2V,MAAM5iB,EAAEytC,OAAOlsC,EAAEmpC,SAASiD,uBAAuBpsC,EAAE0L,WAAW,IAAI3I,EAAEknC,OAAO,IAAIlnC,EAAEmnC,YAAYrE,GAAGA,EAAExI,WAAWA,WAAWv5B,YAAY+hC,EAAExI,aAAaiI,GAAG,KAAKviC,EAAEknC,OAAO3E,EAAEhkC,GAAG2D,EAAEqgC,EAAEj2B,UAAUtM,EAAEknC,OAAO3E,EAAEjI,WAAWv5B,YAAYwhC,GAAGrtB,GAAG,KAAKlV,EAAEmnC,aAAajyB,EAAE3W,GAAG4B,EAAE2hC,GAAG7hC,EAAEqpC,WAAW,GAAGtpC,EAAEupC,iBAAiB3tC,KAAK4tC,eAAexpC,EAAEmnC,YAAYlnC,EAAEqpC,WAAWrpC,EAAEwpC,UAAUv0B,EAAE5I,UAAUtM,EAAEupC,iBAAiB3tC,KAAK8tC,kBAAkBx0B,EAAElV,IAAIkV,EAAE5I,UAAUtM,EAAEmnC,aAAajyB,EAAEolB,WAAWv5B,YAAYmU,GAAGytB,EAAEhyB,EAAE2pB,WAAW,QAAQ8J,OAAOrC,IAAIY,EAAEG,EAAExI,WAAW,eAAe8J,OAAOrC,KAAKY,EAAEhyB,EAAE,UAAUyzB,OAAO3oC,IAAIknC,EAAEjnC,EAAE,UAAU,UAAUD,EAAE,CAAC,GAAG,aAAaA,EAAE,MAAM,WAAWA,GAAGssC,EAAE1nC,MAAMzE,KAAKwqC,SAAS,CAAC1qC,EAAEsE,EAAEpE,KAAK+M,MAAM8X,SAASzgB,EAAEwoC,WAAW,IAAIxC,EAAE,CAACC,OAAOvqC,EAAEuD,cAAc,kBAAkBinC,WAAWjmC,EAAE0pC,eAAexD,WAAWlmC,EAAE2pC,eAAetrB,MAAM5iB,EAAE0qC,SAASxqC,KAAKwqC,kBAAkB,UAAU3qC,EAAEsnC,EAAEtiB,IAAIA,IAAIsmB,EAAErrC,EAAEsE,EAAEpE,KAAK+M,OAAO,WAAW,IAAIhN,EAAED,EAAEuD,cAAc,OAAOe,EAAEwoC,WAAW,IAAIxC,EAAE,CAACC,OAAOtqC,EAAEuqC,WAAWjmC,EAAE0pC,eAAexD,WAAWlmC,EAAE2pC,eAAetrB,MAAM5iB,EAAE0qC,SAASnpC,EAAEmpC,WAAWpmC,EAAEuoC,UAAU5sC,EAAE+pC,aAAa/pC,EAAEoD,cAAc4jC,EAAEhnC,EAAE,YAAY,IAAI6oC,EAAE7oC,EAAED,GAAG,WAAWuB,EAAEmpC,SAASyB,aAAa9E,EAAEtiB,IAAIA,QAAQynB,EAAE7nC,MAAMzE,KAAK,CAACF,EAAEsE,EAAEpE,KAAK+M,MAAM8X,SAASpF,EAAEhb,MAAMzE,KAAKwqC,SAAS,CAAC1qC,EAAEsE,EAAEpE,KAAK+M,MAAM8X,MAAM,CAAC5iB,IAAI,iBAAiB2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAGD,EAAE5C,SAASmD,cAAc,OAAOP,EAAEqM,UAAUrP,EAAE,IAAkB6kC,EAAEnmC,EAAE,IAAIsB,EAApBgD,EAAE4pC,UAAsB50B,QAAQpZ,QAAQH,EAAE,OAAOuB,EAAE,IAAIxB,EAAEwB,EAAEq6B,OAAO,EAAE57B,EAAE,GAAG,OAAOomC,GAAG7hC,EAAE,KAAKxE,EAAE,qCAAqCE,EAAE,QAAQF,IAAI,CAACoC,IAAI,oBAAoB2D,MAAM,SAASvE,EAAEvB,GAAG,IAAIC,EAAEC,KAAKqE,EAAEhD,EAAEgC,cAAc,cAAc,IAAIgB,EAAE,OAAM,EAAGsiC,EAAE,QAAQ,CAACC,UAAUviC,EAAEwiC,aAAa,SAASxlC,EAAEgD,GAAGhD,EAAEM,iBAAiB,IAAIyC,EAAE3C,SAASsI,KAAKm8B,EAAEgB,EAAE7iC,EAAE,gBAAgB,IAAI6hC,EAAE,OAAM,EAAGA,EAAEx1B,UAAU5Q,EAAEyrC,YAAYxE,EAAE3iC,EAAE,cAAc,IAAIvE,EAAE8mC,EAAE,QAAQ,CAACC,UAAU,CAACxiC,EAAE8iC,EAAEhB,EAAE,wBAAwBW,aAAa,SAASxlC,EAAEgD,GAAG,MAAMhD,EAAEf,OAAO2R,SAASlC,gBAAgBuJ,EAAElV,EAAE,cAAc2iC,EAAE3iC,EAAE,gBAAgB8hC,EAAEx1B,UAAU5Q,EAAE6tC,iBAAiB5tC,EAAE+tC,kBAAkB5H,EAAEpmC,GAAG2L,YAAY,WAAW6N,EAAElV,EAAE,kBAAkB,KAAKvE,EAAEo/B,mBAAmB,CAACh9B,IAAI,SAAS2D,MAAM,WAAW,OAAOklB,EAAE9qB,KAAKwqC,SAASr+B,SAAS+hC,aAAa,CAACjsC,IAAI,YAAY2D,MAAM,WAAWwgC,EAAEpmC,KAAKK,UAAUL,KAAKK,QAAQmE,eAAe,eAAexE,KAAKK,QAAQusC,UAAU5sC,KAAKwqC,SAASr+B,SAASygC,WAAW,IAAIvrC,EAAE,IAAIorC,EAAEzsC,KAAKwqC,SAASr+B,SAASgiC,sBAAsB,OAAOnuC,KAAKktC,YAAY7rC,EAAE+sC,YAAYpuC,KAAKK,QAAQL,KAAKwqC,SAASr+B,UAAUnM,KAAKktC,gBAAgB,SAASmB,EAAEhtC,GAAG,OAAO8W,KAAKkc,KAAKhzB,EAAEwpB,EAAExpB,EAAEwpB,EAAExpB,EAAEypB,EAAEzpB,EAAEypB,GAAG,SAASwjB,EAAEjtC,EAAEvB,GAAG,IAAIC,EAAE,SAASsB,EAAEvB,GAAG,IAAIC,EAAEsuC,EAAEhtC,GAAGgtC,EAAEvuC,GAAG,GAAG,IAAIC,EAAE,OAAO,EAAE,IAAIsE,EAAE,SAAShD,EAAEvB,GAAG,OAAOuB,EAAEwpB,EAAE/qB,EAAE+qB,EAAExpB,EAAEypB,EAAEhrB,EAAEgrB,EAAnC,CAAsCzpB,EAAEvB,GAAGC,EAAE,OAAOsE,EAAE,IAAIA,EAAE,GAAG8T,KAAKo2B,KAAKlqC,GAA/H,CAAmIhD,EAAEvB,GAAG,OAAO,SAASuB,EAAEvB,GAAG,OAAOuB,EAAEwpB,EAAE/qB,EAAEgrB,EAAEhrB,EAAE+qB,EAAExpB,EAAEypB,EAAnC,CAAsCzpB,EAAEvB,GAAG,IAAIC,IAAI,GAAG,IAAIA,EAAEoY,KAAKK,GAAG,IAAIg2B,EAAEpqC,GAAG,SAAS/C,EAAEvB,GAAGC,EAAEC,KAAKqB,GAAGrB,KAAKyuC,SAAS,GAAGzuC,KAAKmU,GAAGrU,IAAI,CAAC,CAACmC,IAAI,MAAM2D,MAAM,SAASvE,GAAGrB,KAAKyuC,SAAS1qC,KAAK1C,KAAK,CAACY,IAAI,MAAM2D,MAAM,SAASvE,GAAGA,IAAIrB,KAAKyuC,SAAS,IAAI,IAAI,IAAI3uC,EAAEE,KAAKyuC,SAASxuC,OAAOH,GAAG,EAAEA,IAAIE,KAAKyuC,SAAS3uC,KAAKuB,GAAGrB,KAAKyuC,SAASxhC,OAAOnN,EAAE,KAAK,CAACmC,IAAI,WAAW2D,MAAM,WAAW,IAAI,IAAIvE,EAAE,EAAEvB,EAAEE,KAAKyuC,SAASxuC,OAAOoB,EAAEvB,EAAEuB,IAAI,CAAC,IAAItB,EAAEC,KAAKyuC,SAASptC,GAAG,mBAAmBtB,GAAGA,EAAE0E,MAAMzE,KAAKmU,GAAG7P,gBAAgB,SAASoqC,EAAErtC,EAAEvB,GAAG,IAAIC,EAAE,IAAIyuC,EAAEntC,GAAG,OAAOtB,EAAE0C,IAAI3C,GAAGC,EAAE,IAAI4uC,EAAEvqC,GAAG,SAAS/C,EAAEvB,EAAEuE,GAAGtE,EAAEC,KAAKqB,GAAGrB,KAAKK,QAAQ,iBAAiBP,EAAE2B,SAAS4B,cAAcvD,GAAGA,EAAEE,KAAK4uC,MAAM5uC,KAAK4uC,MAAM9tC,KAAKd,MAAMA,KAAK6uC,KAAK7uC,KAAK6uC,KAAK/tC,KAAKd,MAAMA,KAAK8uC,IAAI9uC,KAAK8uC,IAAIhuC,KAAKd,MAAMA,KAAK+uC,OAAO/uC,KAAK+uC,OAAOjuC,KAAKd,MAAMA,KAAKK,QAAQiC,iBAAiB,aAAatC,KAAK4uC,OAAM,GAAI5uC,KAAKK,QAAQiC,iBAAiB,YAAYtC,KAAK6uC,MAAK,GAAI7uC,KAAKK,QAAQiC,iBAAiB,WAAWtC,KAAK8uC,KAAI,GAAI9uC,KAAKK,QAAQiC,iBAAiB,cAActC,KAAK+uC,QAAO,GAAI/uC,KAAKgvC,KAAK,CAACnkB,EAAE,KAAKC,EAAE,MAAM9qB,KAAKivC,cAAc,KAAKjvC,KAAKkvC,KAAK,EAAElvC,KAAKmvC,aAAY,EAAG,IAAI/qC,EAAE,aAAapE,KAAKovC,OAAOV,EAAE1uC,KAAKK,QAAQgE,EAAE+qC,QAAQhrC,GAAGpE,KAAKqvC,WAAWX,EAAE1uC,KAAKK,QAAQgE,EAAEgrC,YAAYjrC,GAAGpE,KAAKsvC,gBAAgBZ,EAAE1uC,KAAKK,QAAQgE,EAAEirC,iBAAiBlrC,GAAGpE,KAAKuvC,cAAcb,EAAE1uC,KAAKK,QAAQgE,EAAEkrC,eAAenrC,GAAGpE,KAAKwvC,MAAMd,EAAE1uC,KAAKK,QAAQgE,EAAEmrC,OAAOprC,GAAGpE,KAAKyvC,MAAMf,EAAE1uC,KAAKK,QAAQgE,EAAEorC,OAAOrrC,GAAGpE,KAAK0vC,IAAIhB,EAAE1uC,KAAKK,QAAQgE,EAAEqrC,KAAKtrC,GAAGpE,KAAK2vC,UAAUjB,EAAE1uC,KAAKK,QAAQgE,EAAEsrC,WAAWvrC,GAAGpE,KAAK4vC,QAAQlB,EAAE1uC,KAAKK,QAAQgE,EAAEurC,SAASxrC,GAAGpE,KAAK6vC,UAAUnB,EAAE1uC,KAAKK,QAAQgE,EAAEwrC,WAAWzrC,GAAGpE,KAAK8vC,UAAUpB,EAAE1uC,KAAKK,QAAQgE,EAAEyrC,WAAW1rC,GAAGpE,KAAK+vC,mBAAmBrB,EAAE1uC,KAAKK,QAAQgE,EAAE0rC,oBAAoB3rC,GAAGpE,KAAKgwC,UAAUtB,EAAE1uC,KAAKK,QAAQgE,EAAE2rC,WAAW5rC,GAAGpE,KAAKiwC,SAASvB,EAAE1uC,KAAKK,QAAQgE,EAAE4rC,UAAU7rC,GAAGpE,KAAKkwC,YAAYxB,EAAE1uC,KAAKK,QAAQgE,EAAE6rC,aAAa9rC,GAAGpE,KAAKmwC,mBAAmBnwC,KAAKK,QAAQL,KAAKowC,kBAAkBpwC,KAAKqwC,UAAUvvC,KAAKd,MAAMP,OAAO6C,iBAAiB,SAAStC,KAAKowC,mBAAmBpwC,KAAKswC,MAAM,KAAKtwC,KAAKsL,KAAK,KAAKtL,KAAKwL,IAAI,KAAKxL,KAAKuwC,WAAW,KAAKvwC,KAAKwwC,iBAAiB,KAAKxwC,KAAKywC,eAAe,KAAKzwC,KAAK0wC,aAAa,KAAK1wC,KAAK2wC,GAAG3wC,KAAK4wC,GAAG5wC,KAAK6wC,GAAG7wC,KAAK8wC,GAAG,KAAK9wC,KAAK+wC,eAAe,CAAClmB,EAAE,KAAKC,EAAE,QAAQ,CAAC,CAAC7oB,IAAI,QAAQ2D,MAAM,SAASvE,GAAG,GAAGA,EAAE8vB,QAAQ,GAAG9vB,EAAEf,QAAQe,EAAEf,OAAO2R,UAAU,CAAC,IAAI,SAAS,SAASjF,QAAQ3L,EAAEf,OAAO2R,SAASlC,gBAAgB,EAAEN,QAAQuhC,IAAI,uCAAuC3vC,EAAEf,OAAO2R,SAASlC,mBAAmB,CAAC/P,KAAKwL,IAAID,KAAKC,MAAMxL,KAAK2wC,GAAGtvC,EAAE8vB,QAAQ,GAAGD,MAAMlxB,KAAK6wC,GAAGxvC,EAAE8vB,QAAQ,GAAG0B,MAAM7yB,KAAKswC,MAAMtwC,KAAKwL,KAAKxL,KAAKsL,MAAMtL,KAAKwL,KAAKxL,KAAKqvC,WAAW4B,SAAS5vC,EAAErB,KAAKK,SAAS,OAAOL,KAAK+wC,eAAelmB,IAAI7qB,KAAKmvC,YAAYnvC,KAAKswC,MAAM,GAAGtwC,KAAKswC,OAAO,KAAKn4B,KAAKkL,IAAIrjB,KAAK+wC,eAAelmB,EAAE7qB,KAAK2wC,IAAI,IAAIx4B,KAAKkL,IAAIrjB,KAAK+wC,eAAejmB,EAAE9qB,KAAK6wC,IAAI,GAAG7wC,KAAKmvC,aAAatjC,aAAa7L,KAAKwwC,mBAAmBxwC,KAAK+wC,eAAelmB,EAAE7qB,KAAK2wC,GAAG3wC,KAAK+wC,eAAejmB,EAAE9qB,KAAK6wC,GAAG7wC,KAAKsL,KAAKtL,KAAKwL,IAAI,IAAI1L,EAAEE,KAAKgvC,KAAK,GAAG3tC,EAAE8vB,QAAQlxB,OAAO,EAAE,CAACD,KAAKkxC,iBAAiBlxC,KAAKmxC,mBAAmB,IAAIpxC,EAAE,CAAC8qB,EAAExpB,EAAE8vB,QAAQ,GAAGD,MAAMlxB,KAAK2wC,GAAG7lB,EAAEzpB,EAAE8vB,QAAQ,GAAG0B,MAAM7yB,KAAK6wC,IAAI/wC,EAAE+qB,EAAE9qB,EAAE8qB,EAAE/qB,EAAEgrB,EAAE/qB,EAAE+qB,EAAE9qB,KAAKivC,cAAcZ,EAAEvuC,GAAGE,KAAKsvC,gBAAgB2B,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKoxC,aAAY,EAAGpxC,KAAKywC,eAAehlC,WAAW,WAAWzL,KAAK4vC,QAAQqB,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKoxC,aAAY,GAAItwC,KAAKd,MAAM,QAAQ,CAACiC,IAAI,OAAO2D,MAAM,SAASvE,GAAG,GAAGA,EAAE8vB,QAAQ,CAAC,IAAIrxB,EAAEE,KAAKgvC,KAAKjvC,EAAEsB,EAAE8vB,QAAQlxB,OAAOoE,EAAEhD,EAAE8vB,QAAQ,GAAGD,MAAM9sB,EAAE/C,EAAE8vB,QAAQ,GAAG0B,MAAM,GAAG7yB,KAAKmvC,aAAY,EAAGpvC,EAAE,EAAE,CAAC,IAAImmC,EAAE7kC,EAAE8vB,QAAQ,GAAGD,MAAMrxB,EAAEwB,EAAE8vB,QAAQ,GAAG0B,MAAMsT,EAAE,CAACtb,EAAExpB,EAAE8vB,QAAQ,GAAGD,MAAM7sB,EAAEymB,EAAEzpB,EAAE8vB,QAAQ,GAAG0B,MAAMzuB,GAAG,OAAOtE,EAAE+qB,IAAI7qB,KAAKivC,cAAc,IAAI5tC,EAAE6tC,KAAKb,EAAElI,GAAGnmC,KAAKivC,cAAcjvC,KAAKwvC,MAAMyB,SAAS5vC,EAAErB,KAAKK,UAAUgB,EAAEgwC,MAAM/C,EAAEnI,EAAErmC,GAAGE,KAAKovC,OAAO6B,SAAS5vC,EAAErB,KAAKK,UAAUP,EAAE+qB,EAAEsb,EAAEtb,EAAE/qB,EAAEgrB,EAAEqb,EAAErb,EAAE,OAAO9qB,KAAK4wC,IAAI,OAAO5wC,KAAKsxC,KAAKjwC,EAAEkwC,QAAQltC,EAAErE,KAAK4wC,GAAG1K,EAAElmC,KAAKsxC,KAAK,EAAEjwC,EAAEmwC,QAAQptC,EAAEpE,KAAK8wC,GAAGjxC,EAAEG,KAAKyxC,KAAK,IAAIpwC,EAAEkwC,OAAO,EAAElwC,EAAEmwC,OAAO,GAAGxxC,KAAK+vC,mBAAmBkB,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKsxC,IAAIpL,EAAElmC,KAAKyxC,IAAI5xC,MAAM,CAAC,GAAG,OAAOG,KAAK4wC,GAAG,CAACvvC,EAAEkwC,OAAOltC,EAAErE,KAAK4wC,GAAGvvC,EAAEmwC,OAAOptC,EAAEpE,KAAK8wC,GAAG,IAAI/7B,EAAEoD,KAAKkL,IAAIrjB,KAAK2wC,GAAG3wC,KAAK4wC,IAAIjK,EAAExuB,KAAKkL,IAAIrjB,KAAK6wC,GAAG7wC,KAAK8wC,KAAK/7B,EAAE,IAAI4xB,EAAE,MAAM3mC,KAAKoxC,aAAY,QAAS/vC,EAAEkwC,OAAO,EAAElwC,EAAEmwC,OAAO,EAAExxC,KAAK8vC,UAAUmB,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKgwC,UAAUiB,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKkxC,iBAAiBlxC,KAAK4wC,GAAGvsC,EAAErE,KAAK8wC,GAAG1sC,EAAErE,EAAE,GAAGsB,EAAEM,oBAAoB,CAACM,IAAI,MAAM2D,MAAM,SAASvE,GAAG,GAAGA,EAAEyyB,eAAe,CAAC9zB,KAAKkxC,iBAAiB,IAAIpxC,EAAEE,KAAKqB,EAAE8vB,QAAQlxB,OAAO,IAAID,KAAKuvC,cAAc0B,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKsxC,IAAItxC,KAAKyxC,IAAI,MAAMzxC,KAAK4wC,IAAIz4B,KAAKkL,IAAIrjB,KAAK2wC,GAAG3wC,KAAK4wC,IAAI,IAAI5wC,KAAK8wC,IAAI34B,KAAKkL,IAAIrjB,KAAK6wC,GAAG7wC,KAAK8wC,IAAI,IAAIzvC,EAAE4H,UAAUjJ,KAAK0xC,gBAAgB1xC,KAAK2wC,GAAG3wC,KAAK4wC,GAAG5wC,KAAK6wC,GAAG7wC,KAAK8wC,IAAI9wC,KAAK0wC,aAAajlC,YAAY,WAAW3L,EAAE2vC,MAAMwB,SAAS5vC,EAAEvB,EAAEO,WAAW,KAAKL,KAAKuwC,WAAW9kC,YAAY,WAAW3L,EAAEsxC,aAAatxC,EAAE4vC,IAAIuB,SAAS5vC,EAAEvB,EAAEO,SAASP,EAAEqvC,cAAcrvC,EAAE6vC,UAAUsB,SAAS5vC,EAAEvB,EAAEO,SAASP,EAAEqvC,aAAY,KAAM,GAAGrvC,EAAEqvC,cAAcrvC,EAAE0wC,iBAAiB/kC,YAAY,WAAW3L,EAAE+vC,UAAUoB,SAAS5vC,EAAEvB,EAAEO,WAAW,OAAOL,KAAKiwC,SAASgB,SAAS5vC,EAAErB,KAAKK,SAASL,KAAKgvC,KAAKnkB,EAAE,EAAE7qB,KAAKgvC,KAAKlkB,EAAE,EAAE9qB,KAAKkvC,KAAK,EAAElvC,KAAKivC,cAAc,KAAKjvC,KAAK2wC,GAAG3wC,KAAK4wC,GAAG5wC,KAAK6wC,GAAG7wC,KAAK8wC,GAAG,QAAQ,CAAC7uC,IAAI,YAAY2D,MAAM,WAAW5F,KAAKoxC,aAAY,EAAGvlC,aAAa7L,KAAKwwC,kBAAkB3kC,aAAa7L,KAAKuwC,YAAY1kC,aAAa7L,KAAKywC,gBAAgB5kC,aAAa7L,KAAK0wC,gBAAgB,CAACzuC,IAAI,SAAS2D,MAAM,SAASvE,GAAGrB,KAAKqwC,YAAYrwC,KAAKkwC,YAAYe,SAAS5vC,EAAErB,KAAKK,WAAW,CAAC4B,IAAI,iBAAiB2D,MAAM,WAAWiG,aAAa7L,KAAKywC,kBAAkB,CAACxuC,IAAI,mBAAmB2D,MAAM,WAAWiG,aAAa7L,KAAKwwC,oBAAoB,CAACvuC,IAAI,kBAAkB2D,MAAM,SAASvE,EAAEvB,EAAEC,EAAEsE,GAAG,OAAO8T,KAAKkL,IAAIhiB,EAAEvB,IAAIqY,KAAKkL,IAAItjB,EAAEsE,GAAGhD,EAAEvB,EAAE,EAAE,OAAO,QAAQC,EAAEsE,EAAE,EAAE,KAAK,SAAS,CAACpC,IAAI,KAAK2D,MAAM,SAASvE,EAAEvB,GAAGE,KAAKqB,IAAIrB,KAAKqB,GAAGoB,IAAI3C,KAAK,CAACmC,IAAI,MAAM2D,MAAM,SAASvE,EAAEvB,GAAGE,KAAKqB,IAAIrB,KAAKqB,GAAGswC,IAAI7xC,KAAK,CAACmC,IAAI,UAAU2D,MAAM,WAAW,OAAO5F,KAAKwwC,kBAAkB3kC,aAAa7L,KAAKwwC,kBAAkBxwC,KAAKuwC,YAAY1kC,aAAa7L,KAAKuwC,YAAYvwC,KAAKywC,gBAAgB5kC,aAAa7L,KAAKywC,gBAAgBzwC,KAAK0wC,cAAc7kC,aAAa7L,KAAK0wC,cAAc1wC,KAAKK,QAAQqB,oBAAoB,aAAa1B,KAAK4uC,OAAO5uC,KAAKK,QAAQqB,oBAAoB,YAAY1B,KAAK6uC,MAAM7uC,KAAKK,QAAQqB,oBAAoB,WAAW1B,KAAK8uC,KAAK9uC,KAAKK,QAAQqB,oBAAoB,cAAc1B,KAAK+uC,QAAQ/uC,KAAKovC,OAAOuC,MAAM3xC,KAAKqvC,WAAWsC,MAAM3xC,KAAKsvC,gBAAgBqC,MAAM3xC,KAAKuvC,cAAcoC,MAAM3xC,KAAKwvC,MAAMmC,MAAM3xC,KAAKyvC,MAAMkC,MAAM3xC,KAAK0vC,IAAIiC,MAAM3xC,KAAK2vC,UAAUgC,MAAM3xC,KAAK4vC,QAAQ+B,MAAM3xC,KAAK6vC,UAAU8B,MAAM3xC,KAAK8vC,UAAU6B,MAAM3xC,KAAK+vC,mBAAmB4B,MAAM3xC,KAAKgwC,UAAU2B,MAAM3xC,KAAKiwC,SAAS0B,MAAM3xC,KAAKkwC,YAAYyB,MAAM3xC,KAAKgvC,KAAKhvC,KAAKivC,cAAcjvC,KAAKkvC,KAAKlvC,KAAKmvC,YAAYnvC,KAAKswC,MAAMtwC,KAAKsL,KAAKtL,KAAKwL,IAAIxL,KAAKuwC,WAAWvwC,KAAKwwC,iBAAiBxwC,KAAKywC,eAAezwC,KAAK0wC,aAAa1wC,KAAK2wC,GAAG3wC,KAAK4wC,GAAG5wC,KAAK6wC,GAAG7wC,KAAK8wC,GAAG9wC,KAAK+wC,eAAe/wC,KAAKovC,OAAOpvC,KAAKqvC,WAAWrvC,KAAKsvC,gBAAgBtvC,KAAKuvC,cAAcvvC,KAAKwvC,MAAMxvC,KAAKyvC,MAAMzvC,KAAK0vC,IAAI1vC,KAAK2vC,UAAU3vC,KAAK4vC,QAAQ5vC,KAAK6vC,UAAU7vC,KAAK8vC,UAAU9vC,KAAKgwC,UAAUhwC,KAAKiwC,SAASjwC,KAAKkwC,YAAYlwC,KAAK+vC,mBAAmB,KAAKtwC,OAAOiC,oBAAoB,SAAS1B,KAAKowC,mBAAmB,SAAS,SAASwB,EAAEvwC,GAAG,IAAIvB,EAAE,WAAW,IAAIuB,EAAEvB,EAAE2B,SAASmD,cAAc,eAAe7E,EAAE,CAAC05B,WAAW,gBAAgBoY,YAAY,iBAAiBC,cAAc,gBAAgBC,iBAAiB,uBAAuB,IAAI1wC,KAAKtB,EAAE,QAAG,IAASD,EAAE+E,MAAMxD,GAAG,OAAOtB,EAAEsB,GAArO,GAA2OtB,EAAEN,OAAOqK,YAAYrI,SAASsD,gBAAgBiF,aAAavI,SAASsI,KAAKC,YAAY3F,EAAE4iC,EAAE5lC,EAAE,gBAAgBA,EAAEA,EAAEgC,cAAc,iBAAiBe,EAAE8iC,EAAE7iC,EAAE,qBAAqB6hC,EAAE7kC,EAAEgC,cAAc,uBAAuBtD,EAAE,MAAMsE,EAAED,GAAG2iC,EAAE1iC,EAAE,UAAUiC,EAAEjC,EAAE,wBAAwBsiC,EAAE7mC,EAAE,CAAC8mC,UAAUviC,EAAE4Y,MAAK,EAAG4pB,aAAa,SAASxlC,EAAEvB,GAAGwZ,EAAEjV,EAAE,aAAaA,EAAEQ,MAAMmtC,QAAQ,GAAG9L,IAAIA,EAAErhC,MAAMmtC,QAAQ,IAAI,SAASC,EAAE5wC,GAAG,GAAGA,EAAEsb,OAAOnY,eAAe,SAAS,OAAM,EAAG,IAAI1E,EAAEC,EAAEsE,EAAED,EAAEymB,IAAIqb,EAAE9hC,EAAE8W,MAAMrb,EAAEuE,EAAEoE,OAAO29B,GAAE,EAAGpxB,EAAE,KAAK4xB,EAAE,KAAK9hB,EAAE,KAAKtgB,GAAE,EAAGi7B,EAAE,EAAE1U,EAAE,EAAE8Q,GAAE,EAAG+L,GAAE,EAAGG,EAAE,KAAKK,EAAE,KAAKhB,EAAE,KAAKC,EAAE,KAAKhB,EAAE,EAAEgC,EAAE,EAAE/B,GAAE,EAAGC,GAAE,EAAGyB,EAAE,GAAGvB,EAAE,GAAGD,EAAE,EAAE+B,EAAE,EAAEC,EAAE9mC,SAASmC,eAAe,oBAAoB6kC,EAAEhnC,SAAS4B,cAAc,aAAaulC,EAAE,IAAI+F,EAAEpG,EAAE,CAAC8G,WAAW,SAASvvC,GAAG,GAAGqmC,GAAE,GAAIc,EAAEnnC,EAAEixB,cAAc,GAAGzwB,OAAO,qBAAqB4mC,EAAEpnC,EAAEixB,cAAc,GAAGzwB,OAAO,iBAAiB,KAAKR,EAAEixB,cAAc,GAAGzwB,OAAO2R,SAASlC,iBAAiBo2B,GAAE,GAAIe,EAAEpnC,EAAEixB,cAAc,GAAGzwB,OAAO,oBAAoB2mC,EAAEnnC,EAAEixB,cAAc,GAAGzwB,OAAOo+B,WAAW,mBAAmByH,GAAE,GAAIA,EAAE,CAAC,GAAGK,EAAE1mC,EAAEixB,cAAc,GAAGgX,EAAE7W,MAAMpxB,EAAEixB,cAAc,GAAGG,MAAM6W,EAAElV,MAAM/yB,EAAEixB,cAAc,GAAG8B,MAAM0T,EAAEzmC,EAAEixB,cAAc,GAAGkZ,QAAQ3B,EAAExoC,EAAEixB,cAAc,GAAGmZ,QAAQn1B,EAAE1T,EAAE+mB,YAAYue,EAAE5xB,EAAE1R,cAAc,iBAAiBgB,EAAE0Q,EAAE1R,cAAc,kBAAkBwhB,EAAE,KAAKoiB,EAAEN,EAAE,kBAAkB9hB,EAAE8hB,EAAEtjC,cAAc,SAAS5D,OAAOqK,YAAYrI,SAASsD,gBAAgBiF,aAAavI,SAASsI,KAAKC,aAAa,MAAM28B,EAAE5xB,EAAE1R,cAAc,sBAAsBiW,EAAEmvB,EAAE,UAAU3oC,EAAEoxB,MAAM,IAAIpxB,EAAEoxB,MAAMzxB,OAAOqK,WAAW,GAAG,OAAOhK,EAAE6B,mBAAmBquC,UAAU,SAAS5rC,GAAG,GAAG+hC,IAAIK,EAAEpiC,EAAE2sB,cAAc,IAAI6K,IAAI+L,GAAG,CAAC,GAAGtjC,GAAGA,EAAEoB,aAAa5F,EAAE,CAAC,IAAIkV,EAAEgzB,EAAE7W,MAAMsV,EAAEtV,MAAM,GAAG/Y,KAAKkL,IAAItO,IAAI,GAAG,OAAM,EAAGxQ,GAAE,EAAG,IAAIwiC,EAAEztB,EAAElV,EAAE2sB,cAAc,GAAGkZ,QAAQhD,EAAE7iC,EAAE2sB,cAAc,GAAGmZ,QAAQhD,EAAEX,EAAEjtB,EAAEkmB,EAAE8I,EAAErB,EAAE,GAAG9uB,KAAKkL,IAAI6jB,GAAG/uB,KAAKkL,IAAImc,IAAI6G,GAAE,EAAGC,GAAE,IAAKA,GAAE,EAAGD,GAAE,GAAIvmC,EAAE0mC,EAAEtV,MAAM6W,EAAE7W,MAAMkV,EAAE,IAAItmC,EAAEomC,EAAEnmC,EAAEymC,EAAE3T,MAAMkV,EAAElV,MAAMuV,EAAE,IAAIroC,EAAEF,EAAEwmC,GAAGxhB,IAAIkiB,EAAE,EAAE5uB,KAAKkL,IAAItjB,GAAGF,EAAE4oC,EAAE5jC,MAAMmtC,QAAQjL,EAAE1lC,EAAE8K,SAAS+lC,kBAAkB9L,EAAE,IAAIE,IAAIS,EAAE,EAAE5uB,KAAKkL,IAAIvjB,GAAGomC,EAAES,EAAE9hC,MAAMmtC,QAAQjL,EAAE1lC,EAAE8K,SAAS+lC,kBAAkB9J,EAAE,KAAKvjB,EAAE,OAAOve,EAAEqgC,EAAE,eAAe6B,OAAOpC,EAAE,aAAa9/B,EAAEqgC,EAAE,eAAe6B,OAAOpC,EAAE,OAAOoC,OAAOJ,EAAE,YAAY6H,SAAS,WAAW,GAAG9J,EAAE,CAAC,GAAG5hC,GAAE,EAAGojC,GAAG/L,EAAE,OAAOuL,EAAEW,OAAOV,EAAEe,GAAG,IAAIroC,EAAEqY,KAAKkL,IAAInD,SAASkoB,IAAIroC,EAAEoY,KAAKkL,IAAInD,SAASkmB,IAAI,KAAKtmC,EAAE,IAAI+kB,GAAG,OAAO/kB,EAAE,IAAIC,EAAE,IAAIgnC,EAAE0B,EAAE,UAAUA,EAAE5jC,MAAMmtC,QAAQ,EAAEJ,EAAEjL,SAAI,EAAOtlC,EAAE+P,UAAUm+B,cAAc,WAAW9jC,YAAY,WAAWmwB,GAAE,IAAK,KAAK0T,gBAAgB,WAAW1T,GAAE,EAAG4D,EAAE1U,GAAG,GAAG0kB,MAAM,SAASnuC,GAAG,IAAIwjB,GAAGtgB,EAAE,OAAM,EAAGq3B,GAAE,EAAG/W,EAAEstB,OAAOttB,EAAEutB,OAAO5S,EAAEn+B,EAAE6tC,KAAK,IAAIpvC,EAAE0/B,EAAEn+B,EAAE6tC,KAAK,GAAGvH,GAAE,EAAG7nC,GAAG,EAAE,OAAO6nC,GAAE,EAAG7nC,EAAE,EAAEsnC,EAAE,KAAKD,EAAE,KAAKW,EAAE,KAAKK,EAAE,UAAUtjB,EAAE3iB,aAAa,QAAQ,IAAIpC,EAAE,MAAMA,EAAE,KAAK+kB,EAAEhgB,MAAM8P,UAAU,WAAW6zB,OAAO1oC,EAAE,MAAM0oC,OAAO1oC,EAAE,QAAQgrB,EAAEhrB,GAAGgwC,UAAU,SAASzuC,GAAG,GAAGsmC,IAAI/L,EAAE,CAAC,IAAI97B,EAAE0mC,EAAEtV,MAAM6W,EAAE7W,MAAMnxB,EAAEymC,EAAE3T,MAAMkV,EAAElV,MAAMsU,IAAIrnC,GAAGqnC,GAAGC,IAAIrnC,GAAGqnC,GAAGU,EAAEhoC,EAAEqoC,EAAEpoC,EAAE,IAAIsE,EAAE,eAAemkC,OAAO1oC,EAAE,QAAQ0oC,OAAOzoC,EAAE,UAAU+qB,IAAIzmB,GAAG,YAAYmkC,OAAO1d,EAAE,MAAM0d,OAAO1d,EAAE,SAASxkB,EAAEue,EAAExgB,KAAKorC,MAAM,SAAS3vC,GAAG,IAAI6nC,EAAE,GAAG/L,EAAEA,GAAE,MAAO,CAAC,GAAG,QAAQ97B,EAAEmJ,UAAU,CAAC,GAAG5H,EAAE0L,OAAO1L,EAAEgxC,SAASpyC,OAAO,EAAE,OAAO2xC,EAAEjL,GAAGtlC,EAAEinB,YAAY,GAAG,SAASxoB,EAAEmJ,UAAU,CAAC,GAAG,GAAG5H,EAAE0L,MAAM,OAAO6kC,EAAEjL,GAAGtlC,EAAEgnB,iBAAiBhnB,EAAEsb,OAAOrC,MAAMsuB,EAAE,IAAI0J,EAAEnK,IAAIoK,EAAE,OAAOpK,UAAK,IAAS1mC,SAAS+wC,aAAa,iBAAiB/yC,QAAQ,sBAAsBA,QAAQ0T,UAAUs/B,iBAAiBC,GAAGjxC,SAAS6Q,qBAAqB,QAAQ,GAAGqgC,GAAG,CAAC95B,SAAS,aAAaw5B,SAAS,KAAKO,KAAK,QAAQC,MAAM,QAAQC,aAAY,EAAGC,QAAQ,KAAKC,gBAAe,EAAGC,iBAAgB,EAAGvG,aAAa,SAASxxB,MAAM,QAAQ1S,OAAO,QAAQ4kC,YAAY,QAAQ8F,kBAAkB,KAAKC,iBAAiB,KAAK7F,gBAAgB,KAAKE,eAAe,KAAK4F,cAAc,KAAKC,aAAa,KAAKlF,qBAAqB,KAAKmF,OAAO,KAAKC,QAAQ,KAAK3oC,MAAK,EAAG+hC,UAAS,EAAGC,WAAU,EAAG5B,cAAa,EAAG+C,eAAe,GAAGC,eAAe,GAAGnvB,SAAQ,EAAG20B,iBAAgB,EAAGC,iBAAgB,EAAGvB,iBAAgB,EAAGwB,oBAAmB,EAAGC,qBAAoB,EAAGC,SAAQ,EAAGjI,KAAK,CAACC,IAAI,sCAAsCE,GAAG,qCAAqCnkC,OAAO,CAAC8uB,MAAM,OAAOod,WAAW,CAAC1lC,SAAQ,EAAG2lC,WAAU,GAAIC,QAAQ,CAACC,UAAS,EAAGhM,IAAI,EAAEiM,SAAS,EAAEC,eAAe,GAAGC,MAAM,CAACC,QAAO,EAAGC,UAAS,EAAG/I,OAAM,EAAGgJ,aAAY,KAAMC,WAAW,OAAOC,YAAY,OAAOC,YAAY,QAAQ5G,SAAS,WAAWH,WAAW,GAAGgH,UAAU,CAACC,KAAK,CAACC,GAAG,SAASC,IAAI,WAAW3F,KAAK,CAAC0F,GAAG,SAASC,IAAI,WAAWnyB,MAAM,CAACkyB,GAAG,eAAeC,IAAI,gBAAgBC,UAAU,CAACF,GAAG,cAAcC,IAAI,iBAAiBE,KAAK,CAACH,GAAG,OAAOC,IAAI,SAASG,IAAI,CAAC5jC,MAAM,ypBAAypBqX,KAAK,iZAAiZI,KAAK,mXAAmXqlB,UAAU,qbAAqb+G,aAAa,qiBAAqiBC,GAAG9wC,GAAG,SAAS/C,IAAI,IAAIvB,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGvE,EAAEC,KAAKqB,GAAGrB,KAAKm1C,cAAcr1C,EAAEE,KAAKmM,SAAStM,EAAE8yC,GAAG7yC,GAAGE,KAAKo1C,eAAep1C,KAAKq1C,sBAAsBr1C,KAAKs1C,aAAa,GAAGt1C,KAAKu1C,UAAU,GAAGv1C,KAAKw1C,kBAAiB,IAAK,CAAC,CAACvzC,IAAI,OAAO2D,MAAM,WAAW,IAAIvE,EAAErB,KAAKF,EAAEE,KAAKy1C,cAAc31C,IAAIE,KAAK01C,WAAW/O,EAAE,QAAQ,CAACC,UAAU9mC,EAAE+mC,aAAa,SAAS/mC,EAAEC,GAAGD,EAAE6B,iBAAiBN,EAAEmN,KAAKzO,OAAOC,KAAKqyC,SAASryC,KAAK21C,gBAAgB,CAAC1zC,IAAI,OAAO2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKxE,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAK,GAAG,IAAItE,KAAKqyC,SAASpyC,OAAO,OAAM,EAAGD,KAAKooB,YAAY,KAAKpoB,KAAK41C,qBAAqB,KAAK51C,KAAK61C,gBAAgB,KAAK,IAAI91C,EAAEuoC,EAAExoC,GAAGA,EAAEE,KAAKmM,SAAS4mC,QAAQ,GAAG3M,EAAE/kC,GAAG,CAAC,IAAIgD,EAAEhD,EAAE2M,aAAa,gBAAgB3J,IAAIrE,KAAKw1C,iBAAiBx1C,KAAKqyC,SAASryC,KAAKqyC,SAASryC,KAAK81C,mBAAmB91C,KAAKqyC,SAAShuC,IAAI0jC,EAAEhoC,KAAKA,EAAEC,KAAK+1C,gBAAgB10C,IAAI,IAAItB,EAAE,GAAGuoC,EAAEvoC,KAAKA,EAAE,GAAGC,KAAKg2C,QAAQnxB,EAAE7kB,KAAKi2C,QAAQ,SAASj2C,KAAKmM,SAASooC,WAAW,OAAOv0C,KAAKmM,SAASuoC,UAAUC,KAAKC,IAAI,IAAIxwC,EAAE3C,SAASsI,KAAKm8B,EAAEzmC,OAAOqK,WAAWrI,SAASsD,gBAAgBiF,YAAY,GAAGk8B,EAAE,EAAE,CAAC,IAAIrmC,EAAE4B,SAASmD,cAAc,SAAS/E,EAAEyB,KAAK,WAAWzB,EAAEoe,UAAU,cAAcpe,EAAEouC,UAAU,oCAAoCzF,OAAOtC,EAAE,OAAOzkC,SAASy0C,KAAKhlC,YAAYrR,GAAGknC,EAAE3iC,EAAE,oBAAoB2iC,EAAE3iC,EAAE,kBAAkB2iC,EAAE2L,GAAG,kBAAkBJ,IAAIvL,EAAEtlC,SAASsI,KAAK,oBAAoB/J,KAAKmM,SAASsoC,YAAY,SAASz0C,KAAKm2C,UAAUp2C,GAAE,GAAI,IAAIC,KAAKqyC,SAASpyC,QAAQ8mC,EAAE/mC,KAAKo2C,WAAW,2BAA2BrP,EAAE/mC,KAAKq2C,WAAW,6BAA6B/8B,EAAEtZ,KAAKo2C,WAAW,2BAA2B98B,EAAEtZ,KAAKq2C,WAAW,4BAA4Br2C,KAAKs2C,cAAa,EAAGt2C,KAAKu2C,QAAQ,QAAQpP,EAAEnnC,KAAKmM,SAASmnC,SAAStzC,KAAKmM,SAASmnC,SAASf,GAAGvyC,KAAKmM,SAASsnC,iBAAiBxB,EAAEjyC,MAAMA,KAAKmM,SAASunC,oBAAoBjL,EAAEzoC,QAAQ,CAACiC,IAAI,SAAS2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,EAAEtE,KAAKwO,KAAK,KAAKnN,KAAK,CAACY,IAAI,YAAY2D,MAAM,WAAW,IAAIvE,EAAErB,KAAKF,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,EAAEvE,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAGC,EAAEvE,KAAKw2C,QAAQx2C,KAAK+M,MAAMmT,SAASpgB,GAAG,IAAIuE,EAAErE,KAAKy2C,gBAAgBpzC,cAAc,YAAYgB,GAAGiV,EAAEjV,EAAE,WAAWrE,KAAK02C,kBAAkB,IAAItyC,EAAEpE,KAAKy2C,gBAAgB9yC,iBAAiB,WAAW7D,GAAG,GAAGmnC,EAAE7iC,EAAE,UAAUpE,KAAK22C,eAAevyC,EAAErE,GAAGy/B,EAAEx/B,KAAKw2C,YAAY,CAACjyC,EAAEvE,KAAKw2C,QAAQ,IAAItQ,EAAElmC,KAAKqyC,SAASvyC,GAAGD,EAAE,CAACkN,MAAM/M,KAAK+M,MAAM2V,MAAMte,EAAEwyC,UAAUxyC,EAAE8oC,YAAYhH,EAAEgH,YAAYjpB,WAAWjkB,KAAK+M,MAAMwpC,QAAQrQ,EAAEtwB,KAAK23B,OAAO,MAAMvtC,KAAKu2C,QAAQ,oBAAoB12C,GAAGqmC,EAAEsE,SAASqM,WAAWzyC,GAAG,WAAWo7B,EAAEn+B,EAAEm1C,QAAQn1C,EAAE4qC,SAAS5qC,EAAEs1C,eAAevyC,EAAErE,GAAGsB,EAAEk1C,QAAQ,mBAAmB12C,MAAMG,KAAK82C,iBAAiB1yC,EAAEf,cAAc,uBAAuBrD,KAAK+2C,0BAA0B/2C,KAAK82C,kBAAkB7P,EAAEjnC,KAAK82C,iBAAiBpY,WAAW,gBAAgB1+B,KAAKmM,SAAS0S,UAAU7e,KAAKg3C,aAAal3C,EAAE,GAAGE,KAAKg3C,aAAal3C,EAAE,IAAIE,KAAKi3C,0BAA0Bj3C,KAAKooB,YAAYhkB,IAAI,CAACnC,IAAI,eAAe2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEE,KAAK,GAAGqB,EAAE,GAAGA,EAAErB,KAAKqyC,SAASpyC,OAAO,EAAE,OAAM,EAAG,GAAG8nC,EAAE/nC,KAAKqyC,SAAShxC,IAAI,OAAM,EAAG,IAAItB,EAAEC,KAAKy2C,gBAAgB9yC,iBAAiB,WAAWtC,GAAG,GAAG4lC,EAAElnC,EAAE,UAAU,OAAM,EAAG,IAAIsE,EAAErE,KAAKqyC,SAAShxC,GAAG+C,EAAEC,EAAE/C,KAAK4kC,EAAE,CAACn5B,MAAM1L,EAAEqhB,MAAM3iB,EAAE62C,UAAU72C,EAAEmtC,YAAY7oC,EAAE6oC,YAAYjpB,WAAW5iB,EAAEk1C,QAAQlyC,EAAEuR,KAAK23B,OAAO,MAAMvtC,KAAKu2C,QAAQ,oBAAoBrQ,GAAG,UAAU9hC,GAAG,aAAaA,EAAEqH,YAAY,WAAWpH,EAAEmmC,SAASqM,WAAW92C,GAAG,WAAWD,EAAEy2C,QAAQ,mBAAmBrQ,QAAQ,KAAK7hC,EAAEmmC,SAASqM,WAAW92C,GAAG,WAAWD,EAAEy2C,QAAQ,mBAAmBrQ,QAAQ,CAACjkC,IAAI,YAAY2D,MAAM,WAAW5F,KAAKk3C,UAAUl3C,KAAK+M,MAAM,KAAK,CAAC9K,IAAI,YAAY2D,MAAM,WAAW5F,KAAKk3C,UAAUl3C,KAAK+M,MAAM,KAAK,CAAC9K,IAAI,YAAY2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAG,GAAGtE,KAAK61C,gBAAgB71C,KAAKooB,YAAYpoB,KAAK41C,qBAAqB51C,KAAK+M,OAAO/M,KAAK4K,SAASvJ,EAAE,GAAGA,EAAErB,KAAKqyC,SAASpyC,OAAO,GAAG,OAAM,EAAGoB,EAAE,EAAEA,EAAErB,KAAKqyC,SAASpyC,OAAO,EAAEoB,GAAGrB,KAAKqyC,SAASpyC,SAASoB,EAAE,GAAGrB,KAAKm2C,UAAU90C,KAAK,CAACY,IAAI,cAAc2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,GAAGxE,EAAEwE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,IAAI,EAAExE,EAAE,IAAIA,EAAEE,KAAKqyC,SAASpyC,QAAQ,IAAIF,EAAE,IAAIstC,EAAEhsC,EAAErB,KAAKF,GAAGuE,EAAEtE,EAAEo3C,YAAY/yC,EAAEvE,EAAE,GAAGwE,GAAG6hC,EAAEnmC,EAAEq3C,SAASjR,EAAEnmC,KAAKqyC,SAASpyC,OAAO,EAAEmE,EAAE2I,MAAMjN,EAAEsE,EAAEwR,MAAK,EAAGxR,EAAEomC,SAASzqC,EAAEqE,EAAE8oC,YAAY7oC,EAAErE,KAAKqyC,SAASplC,OAAOnN,EAAE,EAAEsE,GAAG,IAAI2Q,EAAE,KAAK4xB,EAAE,KAAK,GAAG3mC,KAAKy2C,gBAAgB,CAAC,GAAG32C,EAAEqmC,EAAEnmC,KAAKy2C,gBAAgBvlC,YAAYg1B,OAAO,CAAC,IAAIa,EAAE/mC,KAAKy2C,gBAAgB9yC,iBAAiB,WAAW7D,GAAGE,KAAKy2C,gBAAgBzxC,aAAakhC,EAAEa,IAAI/mC,KAAKmM,SAAS0S,SAAS,GAAG7e,KAAK+M,OAAO,GAAGjN,GAAGE,KAAK+M,MAAM,GAAGjN,GAAGE,KAAK+M,MAAM,GAAGjN,IAAIE,KAAKg3C,aAAal3C,GAAG,IAAIE,KAAK+M,OAAO,IAAIjN,IAAIE,KAAK+M,MAAM,GAAG/M,KAAKi3C,0BAA0BliC,EAAE/U,KAAKy2C,gBAAgB9yC,iBAAiB,WAAW7D,GAAG6mC,EAAE3mC,KAAKytC,uBAAuB3tC,GAAGsE,EAAEwyC,UAAU7hC,EAAE/U,KAAKu2C,QAAQ,iBAAiB,CAACxpC,MAAMjN,EAAE4iB,MAAM3N,EAAE6hC,UAAU7hC,EAAEm4B,YAAY7oC,EAAE4f,WAAWnkB,EAAEy2C,QAAQ,KAAKhJ,OAAO5G,IAAIQ,EAAEnnC,KAAKmM,SAASinC,gBAAgBpzC,KAAKmM,SAASinC,cAAc,CAACrmC,MAAMjN,EAAE4iB,MAAM3N,EAAEw4B,OAAO5G,MAAM,CAAC1kC,IAAI,cAAc2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,IAAI,EAAE,GAAGjD,EAAE,GAAGA,EAAErB,KAAKqyC,SAASpyC,OAAO,EAAE,OAAM,EAAG,IAAIH,EAAEE,KAAKy2C,iBAAiBz2C,KAAKy2C,gBAAgB9yC,iBAAiB,WAAWtC,GAAGvB,IAAIE,KAAKq3C,uBAAuBh2C,IAAIA,GAAGrB,KAAKqyC,SAASpyC,OAAO,EAAED,KAAKqoB,YAAYroB,KAAKsoB,aAAaxoB,EAAE4+B,WAAWv5B,YAAYrF,IAAIE,KAAKqyC,SAASplC,OAAO5L,EAAE,GAAGrB,KAAKu2C,QAAQ,gBAAgBl1C,GAAG8lC,EAAEnnC,KAAKmM,SAASknC,eAAerzC,KAAKmM,SAASknC,aAAahyC,KAAK,CAACY,IAAI,iBAAiB2D,MAAM,SAASvE,EAAEvB,GAAG,IAAIC,EAAEC,KAAKqE,EAAEhD,EAAEgC,cAAc,iBAAiBe,EAAE/C,EAAEgC,cAAc,uBAAuB6iC,EAAE,CAACn5B,MAAM/M,KAAK41C,qBAAqBlzB,MAAM1iB,KAAK61C,gBAAgBe,UAAU52C,KAAK61C,gBAAgB5xB,WAAWjkB,KAAK61C,gBAAgB3I,YAAYnF,EAAE/nC,KAAK41C,sBAAsB,KAAK51C,KAAKqyC,SAASryC,KAAK41C,sBAAsB1I,YAAYqJ,QAAQxO,EAAE/nC,KAAK41C,sBAAsB,KAAK51C,KAAKqyC,SAASryC,KAAK41C,sBAAsBhgC,KAAK23B,OAAOvtC,KAAKytC,uBAAuBztC,KAAK41C,uBAAuB/1C,EAAE,CAACkN,MAAM/M,KAAK+M,MAAM2V,MAAM1iB,KAAKooB,YAAYwuB,UAAU52C,KAAKooB,YAAY8kB,YAAYltC,KAAKqyC,SAASryC,KAAK+M,OAAOmgC,YAAYjpB,WAAWjkB,KAAK+M,MAAMwpC,QAAQv2C,KAAKqyC,SAASryC,KAAK+M,OAAO6I,KAAK23B,OAAOvtC,KAAKytC,uBAAuBztC,KAAK+M,QAAQ,GAAG1I,EAAElB,YAAY,GAAGiB,IAAIo7B,EAAEp7B,GAAGA,EAAES,MAAMqJ,QAAQ,IAAIoL,EAAEjY,EAAErB,KAAKo1C,gBAAgBt1C,EAAE+kB,EAAExjB,EAAErB,KAAKmM,SAASuoC,UAAU10C,KAAKmM,SAASooC,YAAYK,IAAI,WAAW70C,EAAEoM,SAAS6mC,gBAAgBjzC,EAAEu3C,gBAAgBj2C,GAAGtB,EAAEw2C,QAAQ,gBAAgB,CAAC1tB,KAAKqd,EAAEnuB,QAAQlY,IAAIsnC,EAAEpnC,EAAEoM,SAASgnC,mBAAmBpzC,EAAEoM,SAASgnC,iBAAiB1uC,MAAM1E,EAAE,CAACmmC,EAAErmC,WAAW,CAAC,IAAIsmC,EAAEnmC,KAAKmM,SAASsoC,YAAY1/B,EAAE,SAASoxB,EAAEnmC,KAAKmM,SAASuoC,UAAUvO,GAAGyO,GAAGzO,EAAEnmC,KAAK41C,qBAAqB51C,KAAK+M,OAAO,SAAS/M,KAAKmM,SAASsoC,cAAc1/B,EAAE/U,KAAKmM,SAASuoC,UAAUI,UAAUF,IAAI/vB,EAAExjB,EAAE0T,GAAG,WAAWhV,EAAEoM,SAAS6mC,gBAAgBjzC,EAAEu3C,gBAAgBj2C,GAAGtB,EAAEw2C,QAAQ,gBAAgB,CAAC1tB,KAAKqd,EAAEnuB,QAAQlY,IAAIsnC,EAAEpnC,EAAEoM,SAASgnC,mBAAmBpzC,EAAEoM,SAASgnC,iBAAiB1uC,MAAM1E,EAAE,CAACmmC,EAAErmC,OAAO4L,YAAY,WAAW1L,EAAEksC,OAAO5qC,KAAK,KAAK0lC,EAAE1lC,EAAE,aAAa,CAACY,IAAI,kBAAkB2D,MAAM,WAAW,IAAI5F,KAAK61C,gBAAgB,OAAM,EAAG,IAAIx0C,EAAErB,KAAK61C,gBAAgBv8B,EAAEjY,EAAErB,KAAKo1C,gBAAgBrO,EAAE1lC,EAAE,QAAQ,IAAIvB,EAAEE,KAAKmM,SAASsoC,YAAY10C,EAAE,SAASD,EAAEE,KAAKmM,SAASuoC,UAAU50C,GAAG+0C,IAAI/0C,EAAEE,KAAKu3C,iBAAiBl2C,GAAGrB,KAAKu2C,QAAQ,sBAAsB,CAAC1tB,KAAK,CAAC9b,MAAM/M,KAAK41C,qBAAqBlzB,MAAM1iB,KAAK61C,gBAAgBe,UAAU52C,KAAK61C,gBAAgB5xB,WAAWjkB,KAAK41C,qBAAqB1I,YAAYnF,EAAE/nC,KAAK41C,sBAAsB,KAAK51C,KAAKqyC,SAASryC,KAAK41C,sBAAsB1I,YAAYqJ,QAAQxO,EAAE/nC,KAAK41C,sBAAsB,KAAK51C,KAAKqyC,SAASryC,KAAK41C,sBAAsBhgC,KAAK23B,OAAOvtC,KAAKytC,uBAAuBztC,KAAK41C,uBAAuB79B,QAAQ,CAAChL,MAAM/M,KAAK+M,MAAM2V,MAAM1iB,KAAKooB,YAAYwuB,UAAU52C,KAAKooB,YAAYnE,WAAWjkB,KAAK+M,MAAMmgC,YAAYltC,KAAKqyC,SAASryC,KAAK+M,OAAOmgC,YAAYqJ,QAAQv2C,KAAKqyC,SAASryC,KAAK+M,OAAO6I,KAAK23B,OAAOvtC,KAAKytC,uBAAuBztC,KAAK+M,UAAUo6B,EAAEnnC,KAAKmM,SAAS+mC,oBAAoBlzC,KAAKmM,SAAS+mC,kBAAkBzuC,MAAMzE,KAAK,CAAC,CAAC+M,MAAM/M,KAAK41C,qBAAqBlzB,MAAM1iB,KAAK61C,gBAAgBtI,OAAOvtC,KAAKytC,uBAAuBztC,KAAK41C,uBAAuB,CAAC7oC,MAAM/M,KAAK+M,MAAM2V,MAAM1iB,KAAKooB,YAAYmlB,OAAOvtC,KAAKytC,uBAAuBztC,KAAK+M,UAAU/M,KAAK41C,qBAAqB51C,KAAK+M,OAAO,SAAS/M,KAAKmM,SAASsoC,cAAc10C,EAAEC,KAAKmM,SAASuoC,UAAUI,UAAUD,KAAKhwB,EAAExjB,EAAEtB,GAAG,WAAW,IAAID,EAAEuB,EAAEgC,cAAc,qBAAqBtD,EAAEsB,EAAEgC,cAAc,iBAAiBgB,EAAEhD,EAAEgC,cAAc,uBAAuBvD,EAAE+E,MAAM8P,UAAU,GAAG5U,EAAE8E,MAAM8P,UAAU,GAAG2E,EAAEvZ,EAAE,UAAUA,EAAE8E,MAAMmtC,QAAQ,GAAG3tC,IAAIA,EAAEQ,MAAMmtC,QAAQ,IAAI14B,EAAEjY,EAAE,aAAa,CAACY,IAAI,gBAAgB2D,MAAM,WAAW,OAAO5F,KAAKs1C,eAAe,CAACrzC,IAAI,yBAAyB2D,MAAM,SAASvE,GAAG,IAAIvB,EAAE,SAASuB,EAAEtB,EAAEC,KAAK0rC,gBAAgB,SAASlF,EAAEzmC,EAAED,KAAKC,EAAED,KAAKC,EAAED,KAAK,CAACmC,IAAI,iBAAiB2D,MAAM,SAASvE,GAAG,GAAG+kC,EAAE/kC,GAAG,CAAC,IAAIvB,EAAEuB,EAAEgC,cAAc,mBAAmBvD,IAAIuB,EAAEvB,EAAEkO,aAAa,eAAeyB,QAAQuhC,IAAI,sDAAsD,IAAIjxC,EAAEC,KAAKytC,uBAAuBpsC,GAAGtB,GAAGA,EAAEy3C,SAASz3C,EAAE03C,UAAU,CAACx1C,IAAI,mBAAmB2D,MAAM,SAASvE,GAAG,GAAG+kC,EAAE/kC,GAAG,CAAC,IAAIvB,EAAEuB,EAAEgC,cAAc,mBAAmBvD,IAAIuB,EAAEvB,EAAEkO,aAAa,eAAe,IAAIjO,EAAEC,KAAKytC,uBAAuBpsC,GAAGtB,GAAGA,EAAEy3C,SAASz3C,EAAE03C,UAAU,CAACx1C,IAAI,iBAAiB2D,MAAM,SAASvE,GAAG,GAAG+kC,EAAE/kC,GAAG,CAAC,IAAIvB,EAAEuB,EAAEgC,cAAc,mBAAmBvD,IAAIuB,EAAEvB,EAAEkO,aAAa,eAAeyB,QAAQuhC,IAAI,qDAAqD,IAAIjxC,EAAEC,KAAKytC,uBAAuBpsC,GAAGtB,IAAIA,EAAEy3C,SAASz3C,EAAE23C,SAAS,CAACz1C,IAAI,kBAAkB2D,MAAM,SAASvE,GAAG,IAAIvB,EAAE,IAAIwyC,GAAG,QAAQxyC,EAAEE,KAAKmM,SAASw/B,KAAKhkC,cAAS,IAAS7H,GAAGA,EAAE63C,MAAM,CAAC,GAAGvR,EAAE/kC,GAAG,CAAC,IAAItB,EAAEsB,EAAEgC,cAAc,mBAAmBtD,IAAIsB,EAAEtB,EAAEiO,aAAa,eAAe,IAAI3J,EAAErE,KAAKytC,uBAAuBpsC,GAAGgD,IAAIA,EAAEmzC,UAAUnzC,EAAEqzC,OAAO13C,KAAKmM,SAAS8mC,iBAAiB5uC,EAAEguC,SAASuF,UAAUr1C,YAAY,CAACN,IAAI,cAAc2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEE,KAAKA,KAAKmM,SAASkmC,UAAS,EAAG,IAAItyC,EAAE,GAAGsB,GAAGA,EAAEpB,QAAQkmC,EAAE9kC,GAAG,SAASA,EAAEgD,GAAG,IAAID,EAAE,IAAIipC,EAAEhsC,EAAEvB,EAAEuE,GAAG6hC,EAAE9hC,EAAE+yC,YAAYhR,EAAEtmC,EAAE,GAAGqmC,GAAGC,EAAE+G,YAAYhH,EAAEC,EAAEqE,SAASpmC,EAAE+hC,EAAEp5B,MAAM1I,EAAEtE,EAAEgE,KAAKoiC,MAAMnmC,KAAKqyC,SAAStyC,EAAEC,KAAKs2C,eAAet2C,KAAKy2C,gBAAgB/lC,UAAU,GAAG1Q,KAAKqyC,SAASpyC,SAASkmC,EAAEnmC,KAAKqyC,UAAU,WAAW,IAAIhxC,EAAEypB,EAAEhrB,EAAEqM,SAAS+hC,WAAWpuC,EAAE22C,gBAAgBvlC,YAAY7P,MAAMrB,KAAKm2C,UAAU,GAAE,OAAQ,CAACl0C,IAAI,kBAAkB2D,MAAM,SAASvE,GAAG,IAAIvB,GAAE,EAAG,OAAOqmC,EAAEnmC,KAAKqyC,UAAU,SAAStyC,EAAEsE,GAAG,GAAGmiC,EAAEzmC,EAAE,SAASA,EAAE6V,MAAMvU,EAAE,OAAOvB,EAAEuE,GAAE,KAAMvE,IAAI,CAACmC,IAAI,cAAc2D,MAAM,WAAW,IAAIvE,EAAErB,KAAKF,EAAE,GAAGE,KAAKqyC,SAASryC,KAAKqyC,SAASryC,KAAKqyC,SAAS,IAAItK,EAAE/nC,KAAKmM,SAASkmC,WAAWjK,EAAEpoC,KAAKmM,SAASkmC,WAAWryC,KAAKmM,SAASkmC,SAASpyC,QAAQkmC,EAAEnmC,KAAKmM,SAASkmC,UAAU,SAAStyC,EAAEsE,GAAG,IAAID,EAAE,IAAIipC,EAAEttC,EAAEsB,EAAEgD,GAAG6hC,EAAE9hC,EAAE+yC,YAAYhR,EAAEtmC,EAAE,GAAGqmC,GAAGC,EAAEvwB,MAAK,EAAGuwB,EAAEp5B,MAAM1I,EAAE8hC,EAAEqE,SAASpmC,EAAE+hC,EAAE+G,YAAYhH,EAAEpmC,EAAEiE,KAAKoiC,MAAM,IAAIpmC,GAAE,EAAG,OAAOC,KAAKy1C,gBAAgB11C,EAAE0B,SAASkC,iBAAiB3D,KAAKy1C,gBAAgB11C,GAAGomC,EAAEpmC,GAAG,SAASA,EAAEsE,GAAG,IAAID,EAAE,IAAIipC,EAAEttC,EAAEsB,EAAEgD,GAAG6hC,EAAE9hC,EAAE+yC,YAAYhR,EAAEtmC,EAAE,GAAGqmC,GAAGC,EAAEvwB,KAAK7V,EAAEomC,EAAEp5B,MAAM1I,EAAE8hC,EAAEqE,SAASpmC,EAAE+hC,EAAE+G,YAAYhH,EAAEC,EAAE0R,QAAQ93C,EAAEiO,aAAa,gBAAgBlO,EAAEiE,KAAKoiC,MAAMrmC,GAAGA,IAAI,CAACmC,IAAI,qBAAqB2D,MAAM,SAASvE,EAAEvB,GAAG,OAAOuB,EAAE8U,QAAQ,SAAS9U,GAAG,OAAOA,EAAEw2C,SAAS/3C,OAAO,CAACmC,IAAI,cAAc2D,MAAM,WAAW,OAAO5F,KAAKmM,SAASkmC,WAAWryC,KAAKmM,SAAS0M,UAAU,SAAS7Y,KAAKmM,SAAS0M,SAASzI,UAAU,EAAE,GAAG,KAAKo4B,OAAOxoC,KAAKmM,SAAS0M,SAAS,KAAK7Y,KAAKmM,SAAS0M,YAAY,CAAC5W,IAAI,iBAAiB2D,MAAM,WAAW,OAAO5F,KAAKy2C,gBAAgB9yC,iBAAiB,WAAW3D,KAAK+M,SAAS,CAAC9K,IAAI,sBAAsB2D,MAAM,WAAW,OAAO5F,KAAK+M,QAAQ,CAAC9K,IAAI,sBAAsB2D,MAAM,WAAW,IAAIvE,EAAE,GAAG,IAAI,IAAIvB,KAAKE,KAAKmM,SAASuoC,UAAU,GAAG10C,KAAKmM,SAASuoC,UAAUlwC,eAAe1E,GAAG,CAAC,IAAIC,EAAEC,KAAKmM,SAASuoC,UAAU50C,GAAGuB,EAAE0C,KAAK,IAAIykC,OAAOzoC,EAAE60C,KAAKvzC,EAAE0C,KAAK,IAAIykC,OAAOzoC,EAAE80C,MAAM,OAAOxzC,EAAE4T,KAAK,OAAO,CAAChT,IAAI,QAAQ2D,MAAM,WAAW,IAAIvE,EAAErB,KAAK,GAAGA,KAAK83C,MAAM,OAAM,EAAG,IAAIh4C,EAAE2B,SAASsI,KAAKsI,WAAWtS,EAAE,GAAGomC,EAAErmC,GAAG,SAASuB,GAAGA,EAAEq9B,YAAYj9B,SAASsI,MAAM,MAAM1I,EAAE4Q,SAAS8lC,OAAO,IAAI12C,EAAE2jC,eAAe3jC,EAAE2jC,aAAa,iBAAiBjlC,EAAEgE,KAAK1C,GAAGA,EAAEa,aAAa,cAAc,YAAY,IAAImC,EAAEmiC,EAAExmC,KAAKmM,SAAS6oC,IAAI,QAAQh1C,KAAKmM,SAAS6oC,IAAIvsB,KAAK,GAAGrkB,EAAEoiC,EAAExmC,KAAKmM,SAAS6oC,IAAI,QAAQh1C,KAAKmM,SAAS6oC,IAAInsB,KAAK,GAAGqd,EAAEM,EAAExmC,KAAKmM,SAAS6oC,IAAI,SAASh1C,KAAKmM,SAAS6oC,IAAI5jC,MAAM,GAAGvR,EAAEG,KAAKmM,SAAS8oC,aAAap1C,EAAEirB,EAAEjrB,GAAGA,GAAGA,EAAEA,EAAEmV,QAAQ,aAAa3Q,IAAI2Q,QAAQ,aAAa5Q,IAAI4Q,QAAQ,cAAckxB,IAAIzkC,SAASsI,KAAKmH,YAAYrR,GAAG,IAAIkV,EAAEtT,SAASmC,eAAe,kBAAkB5D,KAAKg4C,MAAMjjC,EAAE,IAAIuE,EAAEvE,EAAE1R,cAAc,WAAWrD,KAAKo2C,WAAWrhC,EAAE1R,cAAc,UAAUrD,KAAKq2C,WAAWthC,EAAE1R,cAAc,UAAUrD,KAAKi2C,QAAQlhC,EAAE1R,cAAc,aAAarD,KAAKw2C,OAAOzhC,EAAE1R,cAAc,YAAYrD,KAAKy2C,gBAAgBh1C,SAASmC,eAAe,oBAAoB5D,KAAKi4C,oBAAoBl4C,EAAEC,KAAK2c,OAAO,GAAGoqB,EAAE/mC,KAAKg4C,MAAM,aAAah4C,KAAKmM,SAASymC,MAAM5yC,KAAKmM,SAAS2mC,aAAax5B,IAAItZ,KAAK2c,OAAOvL,MAAMu1B,EAAE,QAAQ,CAACC,UAAUttB,EAAEutB,aAAa,SAAS/mC,EAAEC,GAAGD,EAAE6B,iBAAiBN,EAAE+P,YAAYkI,IAAItZ,KAAKmM,SAAS2mC,aAAax5B,EAAEolB,WAAWv5B,YAAYmU,GAAGtZ,KAAKq2C,aAAar2C,KAAK2c,OAAO8L,KAAKke,EAAE,QAAQ,CAACC,UAAU5mC,KAAKq2C,WAAWxP,aAAa,SAAS/mC,EAAEC,GAAGD,EAAE6B,iBAAiBN,EAAEinB,gBAAgBtoB,KAAKo2C,aAAap2C,KAAK2c,OAAOkM,KAAK8d,EAAE,QAAQ,CAACC,UAAU5mC,KAAKo2C,WAAWvP,aAAa,SAAS/mC,EAAEC,GAAGD,EAAE6B,iBAAiBN,EAAEgnB,gBAAgBroB,KAAKmM,SAASwnC,sBAAsB3zC,KAAK2c,OAAOu7B,SAASvR,EAAE,QAAQ,CAACC,UAAU7xB,EAAE8xB,aAAa,SAAS/mC,EAAEC,GAAGsB,EAAEwpC,qBAAqB5D,EAAExlC,SAASsI,KAAK,qBAAqBm9B,EAAEpnC,EAAEQ,OAAO,sBAAsB4mC,EAAEpnC,EAAEQ,OAAO,UAAU2mC,EAAEnnC,EAAEQ,OAAO,UAAU2mC,EAAEnnC,EAAEQ,OAAO,UAAUe,EAAE+P,YAAY+0B,EAAEnmC,KAAKqyC,UAAU,SAASvyC,EAAEC,GAAGsB,EAAEo1C,gBAAgBvlC,YAAYpR,EAAE0qC,SAAS4M,UAAUt3C,EAAE82C,UAAUv1C,EAAEo1C,gBAAgB9yC,iBAAiB,WAAW5D,MAAMwyC,GAAGxL,EAAEtlC,SAASsI,KAAK,mBAAmB/J,KAAK2c,OAAOsvB,OAAOtF,EAAE,SAAS,CAACC,UAAUnnC,OAAOonC,aAAa,WAAWxlC,EAAE4qC,YAAYjsC,KAAK83C,OAAM,IAAK,CAAC71C,IAAI,SAAS2D,MAAM,WAAW,IAAIvE,EAAEiD,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIjD,EAAEA,GAAGrB,KAAKooB,eAAe6e,EAAE5lC,EAAE,UAAU,CAAC,IAAIvB,EAAE+qB,IAAI9qB,EAAEsB,EAAEgC,cAAc,mBAAmBgB,EAAEhD,EAAEgC,cAAc,iBAAiBe,EAAEpE,KAAK82C,iBAAiB5Q,EAAEpmC,EAAEob,MAAMrb,EAAEC,EAAE0I,OAAO,GAAG09B,GAAG,IAAIa,EAAEtlC,SAASsI,KAAK,oBAAoBuP,EAAE7X,SAASsI,KAAK,oBAAoBhK,GAAGsE,EAAE,CAAC,IAAI8hC,GAAE,EAAG,GAAG/hC,IAAI6iC,EAAE7iC,EAAE,uBAAuB6iC,EAAE7iC,EAAE,sBAAsB6iC,EAAE7iC,EAAE,eAAe+hC,GAAE,GAAI9hC,EAAE,GAAG6hC,GAAG,IAAI7hC,EAAEhB,cAAc,YAAY,GAAG8iC,EAAE,CAAC,IAAIpxB,EAAE4xB,EAAEviC,EAAEqB,aAAayhC,EAAE7iC,EAAEhB,cAAc,OAAwCiD,EAAE,QAAQyO,EAAzC/U,KAAKqyC,SAASryC,KAAK+M,OAAO6I,KAAmB5H,aAAa,sBAAiB,IAAS+G,EAAEA,EAAE,QAAQmyB,EAAEhlC,aAAa,QAAQ,oBAAoBsmC,OAAOliC,EAAE,OAAOkiC,OAAO7B,EAAE,QAAQviC,EAAElC,aAAa,QAAQ,cAAcsmC,OAAOtB,EAAE/jC,YAAY,QAAQ,GAAGpD,EAAE,CAAC,IAAIwE,EAAEiiC,EAAExmC,KAAKmM,SAASw/B,KAAKhkC,OAAO,SAAS3H,KAAKmM,SAASw/B,KAAKhkC,OAAO8uB,MAAM,GAAG,IAAIlyB,EAAE,CAAC,IAAIi7B,EAAEz/B,EAAEiK,YAAY8gB,EAAE/qB,EAAEggB,aAAa6b,EAAE4D,EAAE1U,EAAEvmB,EAAE,GAAGikC,OAAOhJ,EAAE5D,EAAE,KAAK4M,OAAO1d,EAAE8Q,GAAG,IAAI+L,EAAEpjC,EAAEsQ,MAAM,KAAKizB,EAAE9nC,KAAKmM,SAASihC,YAAYjF,EAAEnoC,KAAKmM,SAASihC,YAAYjG,GAAGgB,EAAEG,EAAER,KAAK,IAAIA,EAAE96B,QAAQ,MAAMkT,SAAS4nB,IAAI,IAAIA,EAAE96B,QAAQ,MAAMk5B,EAAEhmB,SAAS4nB,GAAG,KAAK,IAAIA,EAAE96B,QAAQ,MAAMnN,EAAEqgB,SAAS4nB,GAAG,KAAK,IAAIA,EAAE96B,QAAQ,KAAKk5B,EAAEhmB,SAAS4nB,GAAG,IAAI5nB,SAASngB,EAAEiK,eAAekW,SAASynB,EAAE,IAAIznB,SAASynB,EAAE,KAAK,GAAGR,EAAEhvB,KAAKgL,MAAMgkB,GAAGhB,IAAItmC,GAAGuE,EAAEqB,cAAc0iC,EAAEjC,GAAGiB,EAAEtnC,GAAGA,EAAEsnC,GAAGjB,EAAEiC,EAAE,CAAC,IAAIf,EAAErnC,EAAEoD,YAAYijC,EAAErmC,EAAE0F,aAAa2iC,EAAEvoC,EAAEumC,EAAEC,EAAE,CAACnrB,MAAMksB,EAAEgB,EAAE5/B,OAAO49B,EAAEgC,GAAGroC,EAAE2+B,WAAWx8B,aAAa,QAAQ,cAAcsmC,OAAOnC,EAAEnrB,MAAM,OAAOirB,GAAG/hC,EAAElC,aAAa,QAAQ,cAAcsmC,OAAOnC,EAAEnrB,MAAM,aAAanb,EAAE2+B,WAAW75B,MAAMglC,SAAS,GAAGrB,OAAOV,GAAG3B,GAAG/hC,EAAElC,aAAa,QAAQ,cAAcsmC,OAAOV,EAAE,WAAW,CAAC7lC,IAAI,SAAS2D,MAAM,WAAW5F,KAAKw4B,SAAS,CAACv2B,IAAI,0BAA0B2D,MAAM,WAAW,IAAIvE,EAAErB,KAAK4K,OAAO0O,EAAEtZ,KAAKq2C,WAAW,YAAY/8B,EAAEtZ,KAAKo2C,WAAW,YAAY,GAAGp2C,KAAK+M,OAAO/M,KAAKqyC,SAASpyC,OAAO,GAAG,GAAG8mC,EAAE/mC,KAAKo2C,WAAW,YAAYrP,EAAE/mC,KAAKq2C,WAAW,aAAa,IAAIr2C,KAAK+M,OAAO1L,EAAErB,KAAK+M,QAAQ/M,KAAKqyC,SAASpyC,OAAO,GAAGoB,GAAG0lC,EAAE/mC,KAAKq2C,WAAW,YAAYtP,EAAE/mC,KAAKo2C,WAAW,cAAc,CAACn0C,IAAI,OAAO2D,MAAM,WAAW,IAAIvE,EAAEmlC,EAAExmC,KAAKmM,SAAS,aAAanM,KAAKmM,SAASgsC,UAAU,KAAK,OAAO92C,EAAEmlC,EAAExmC,KAAKmM,SAAS,QAAQnM,KAAKmM,SAASvB,KAAKvJ,IAAM,CAACY,IAAI,QAAQ2D,MAAM,WAAW,IAAIvE,EAAErB,KAAK,IAAIA,KAAKs2C,aAAa,CAAC,GAAGt2C,KAAK2c,OAAO,CAAC,IAAI,IAAI7c,KAAKE,KAAK2c,OAAO3c,KAAK2c,OAAOnY,eAAe1E,IAAIE,KAAK2c,OAAO7c,GAAGm/B,UAAUj/B,KAAK2c,OAAO,KAAK,OAAM,EAAG,GAAG3c,KAAKo4C,QAAQ,OAAM,EAAGp4C,KAAKo4C,SAAQ,EAAGp4C,KAAKu3C,iBAAiBv3C,KAAKooB,aAAapoB,KAAKw1C,mBAAmBx1C,KAAKqyC,SAASryC,KAAKw1C,kBAAkBx1C,KAAKi4C,oBAAoBh4C,QAAQkmC,EAAEnmC,KAAKi4C,qBAAqB,SAAS52C,GAAGA,EAAEyB,gBAAgB,kBAAkBikC,EAAE/mC,KAAKg4C,MAAM,qBAAqBnzB,EAAE7kB,KAAKi2C,QAAQ,QAAQj2C,KAAKmM,SAASooC,WAAW,OAAOv0C,KAAKmM,SAASuoC,UAAUC,KAAKE,KAAKhwB,EAAE7kB,KAAKooB,YAAYpoB,KAAKmM,SAASuoC,UAAU10C,KAAKmM,SAASqoC,aAAaK,KAAK,WAAW,GAAGxzC,EAAE+mB,YAAY,KAAK/mB,EAAEu0C,qBAAqB,KAAKv0C,EAAEw0C,gBAAgB,KAAKx0C,EAAEy2C,OAAM,EAAGz2C,EAAEsb,OAAO,CAAC,IAAI,IAAI7c,KAAKuB,EAAEsb,OAAOtb,EAAEsb,OAAOnY,eAAe1E,IAAIuB,EAAEsb,OAAO7c,GAAGm/B,UAAU59B,EAAEsb,OAAO,KAAK,IAAI5c,EAAE0B,SAASsI,KAAKuP,EAAEo5B,GAAG,kBAAkBp5B,EAAEvZ,EAAE,wFAAwFsB,EAAE22C,MAAMtZ,WAAWv5B,YAAY9D,EAAE22C,OAAO32C,EAAEk1C,QAAQ,SAASpP,EAAE9lC,EAAE8K,SAASonC,UAAUlyC,EAAE8K,SAASonC,UAAU,IAAIlvC,EAAE5C,SAAS4B,cAAc,gBAAgBgB,GAAGA,EAAEq6B,WAAWv5B,YAAYd,GAAGhD,EAAEi1C,cAAa,EAAGj1C,EAAE+2C,QAAQ,UAAU,CAACn2C,IAAI,UAAU2D,MAAM,WAAW5F,KAAKoR,QAAQpR,KAAKq4C,iBAAiBr4C,KAAK01C,YAAY11C,KAAK01C,WAAWzW,YAAY,CAACh9B,IAAI,KAAK2D,MAAM,SAASvE,EAAEvB,GAAG,IAAIC,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,IAAIA,UAAU,GAAG,IAAIjD,IAAI8lC,EAAErnC,GAAG,MAAM,IAAIimC,UAAU,2CAA2C/lC,KAAKu1C,UAAUxxC,KAAK,CAACqxB,IAAI/zB,EAAE4b,KAAKld,EAAEyH,SAAS1H,MAAM,CAACmC,IAAI,OAAO2D,MAAM,SAASvE,EAAEvB,GAAGE,KAAK4M,GAAGvL,EAAEvB,GAAE,KAAM,CAACmC,IAAI,UAAU2D,MAAM,SAASvE,GAAG,IAAIvB,EAAEE,KAAKD,EAAEuE,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,KAAKD,EAAE,GAAG8hC,EAAEnmC,KAAKu1C,WAAW,SAASz1C,EAAEsE,GAAG,IAAI8hC,EAAEpmC,EAAEs1B,IAAIv1B,EAAEC,EAAEmd,KAAKkpB,EAAErmC,EAAE0H,SAAS0+B,GAAG7kC,IAAI8kC,EAAEpmC,GAAGF,GAAGwE,EAAEN,KAAKK,OAAOC,EAAEpE,QAAQkmC,EAAE9hC,GAAG,SAAShD,GAAG,OAAOvB,EAAEy1C,UAAUtoC,OAAO5L,EAAE,QAAQ,CAACY,IAAI,iBAAiB2D,MAAM,WAAW5F,KAAKu1C,UAAUtoC,OAAO,EAAEjN,KAAKu1C,UAAUt1C,UAAU,CAACgC,IAAI,UAAU2D,MAAM,WAAW,MAAM,YAAY,OAAO,WAAW,IAAgE9F,EAAE,IAAIo1C,GAAhE5wC,UAAUrE,OAAO,QAAG,IAASqE,UAAU,GAAGA,UAAU,GAAG,IAAe,OAAOxE,EAAE04B,OAAO14B,GAAn5tDA,0BCGpE,MAAMw4C,GACnBl4C,YAAYC,GACVL,KAAKK,QAAUA,EACfL,KAAKyxB,OAAShwB,SAAS4B,cAAc,yBAGvCX,QACmB61C,GAAU,CACzB1/B,SAAY,gBCTlBpX,SAASa,iBAAiB,oBAAoB,KAE5C,MAAMk2C,EAAmB/2C,SAASkC,iBAAiB,cAC9C60C,EAAiBv4C,QAItBu4C,EAAiB54C,SAASS,IACL,IAAIi4C,GAAUj4C,GACtBqC,MAAMrC,SCRN,MAAMi4C,GACnBl4C,YAAYC,GACVL,KAAKK,QAAUA,EAGjBqC,QACE,MAAM+1C,EAAWF,GAAU,CACzB1/B,SAAY,eAGd7Y,KAAKK,QAAQiC,iBAAiB,SAAS,WACrCm2C,EAASjqC,WCZf/M,SAASa,iBAAiB,oBAAoB,KAE5C,MAAMk2C,EAAmB/2C,SAASkC,iBAAiB,yBAC9C60C,EAAiBv4C,QAItBu4C,EAAiB54C,SAASS,IACL,IAAIq4C,GAAgBr4C,GAC5BqC,MAAMrC,SCTN,MAAMs4C,GACnBv4C,YAAYC,GACVL,KAAKK,QAAUA,EACfL,KAAK44C,SAAWn3C,SAASkC,iBAAiB,0BAC1C3D,KAAK64C,UAAYp3C,SAASkC,iBAAiB,uBAG7CjB,QAEE,IAAIo2C,GAAU,EAEdr3C,SAASa,iBAAiB,UAAW0a,IAG9B87B,IACHr5C,OAAO2I,uBAAsB,MAWjC,WACE,IAAI2P,EAAU,GAGd,IAAIghC,EADoBt3C,SAAS4B,cAAc,QAAQ21C,wBACjBC,IAGlCL,EAAWn3C,SAASkC,iBAAiB,0BACrCk1C,EAAYp3C,SAASkC,iBAAiB,uBAE1Ci1C,EAASh5C,SAAQ,CAACs5C,EAAQnsC,KAExB,IAAIosC,EADOD,EAAQF,wBACGC,IAClBx3C,SAASsD,gBAAgB8D,WAAaswC,EAAaJ,EAAgB,IAAMt5C,OAAO8F,cAClFwS,EAAUmhC,EAAQlrC,aAAa,UAGnC6qC,EAAUj5C,SAASw5C,IACjBA,EAASj3C,UAAUC,OAAO,6BACtBg3C,EAASprC,aAAa,aAAe+J,GACvCqhC,EAASj3C,UAAUM,IAAI,gCA9BvB8H,GACAuuC,GAAU,KAGZA,GAAU,MAiChBj2C,YCpDFpB,SAASa,iBAAiB,oBAAoB,KAC5C,MAAM+2C,EAAc53C,SAASkC,iBAAiB,iBACzC01C,EAAYp5C,QAIjBo5C,EAAYz5C,SAASS,IACA,IAAIs4C,GAAWt4C,GACvBqC,MAAMrC,uGCJN,MAAMi5C,WAAgBrtC,EAiBnC7L,YAAaC,GACX8M,MAAM9M,EAAS,IACVi5C,GAAQntC,mEAFiB,KAAIiB,EAAApN,KAAAqN,GAAA,CAAAC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAiP,GAAA,CAAA3B,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAu5C,GAAA,CAAAjsC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAA0N,GAAA,CAAAJ,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAw5C,GAAA,CAAAlsC,UAAA,EAAA1H,WAAA,IAAAwH,EAAApN,KAAAqP,GAAA,CAAA/B,UAAA,EAAA1H,WAAA,IAMlCgI,EAAA5N,KAAAqN,GAAgBrN,KAAKK,QAAQgD,cAAc,wBAC3CuK,EAAA5N,KAAAiP,GAAgBjP,KAAKK,QAAQgD,cAAc,wBAE3CuK,EAAA5N,KAAA0N,GAA2B1N,KAAK0N,oBAAoB5M,KAAKd,OACzD4N,EAAA5N,KAAAw5C,GAAqBx5C,KAAKw5C,cAAc14C,KAAKd,OAG/Cw5C,gBACEx5C,KAAKy5C,eAGP/rC,oBAAqBrM,GACnBrB,KAAKgC,SAGPA,SACE8L,EAAA9N,KAAAu5C,IAAev5C,KAAKoR,QAAUpR,KAAKwO,OAGrC4C,QACEtD,EAAA9N,KAAAiP,IAAc/M,aAAa,qBAAsB,IACjD4L,EAAA9N,KAAAqN,IAAchK,cAAc,mBAAmBqN,UAAW,iSAC1D5C,EAAczK,KAAAA,IAAAA,cAAc,oBAAoB4qC,UAAUjuC,KAAKmM,SAAS4E,KAAKM,YAC7EzD,EAAA5N,KAAAu5C,IAAe,GAGjB/qC,OACEV,EAAA9N,KAAAiP,IAAcnM,gBAAgB,qBAAsB,IACpDgL,EAAczK,KAAAA,IAAAA,cAAc,oBAAoB4qC,UAAUjuC,KAAKmM,SAAS4E,KAAKC,YAE7ElD,EAAA9N,KAAAqN,IAAchK,cAAc,mBAAmBqN,UAAU,8LACzD9C,EAAA5N,KAAAu5C,IAAe,GAGjB72C,QACE1C,KAAKy5C,eACLtsC,MAAMzK,QAGR+2C,eACE3rC,EAAA9N,KAAAiP,IAAc/M,aAAa,qBAAsB,IACjD4L,EAAA9N,KAAAqN,IAAcvK,gBAAgB,cAAe,IAC7C8K,EAAA5N,KAAAu5C,IAAe,GACfzrC,EAAA9N,KAAAqN,IAAc/K,iBAAiB,QAA/BwL,EAAwC9N,KAAxC0N,KAGF7K,UAEEsK,MAAMtK,WAvEWy2C,EAAAA,GACD,WAAA,CAChBvoC,KAAM,CACJC,YAAa,gBACbK,YAAa,kBCTnB5P,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMo3C,EAAkBj4C,SAASkC,iBAAiB,eAC7C+1C,EAAgBz5C,QAGrBy5C,EAAgB95C,SAASS,IACA,IAAIi5C,GAAQj5C,EAAS,CAC1CiR,sBAAsB,IAET5O,cCVJ,MAAMi3C,GACnBv5C,YAAYC,GACVL,KAAKK,QAAUA,EAGjBqC,QACE1C,KAAKK,QAAQiC,iBAAiB,SAAU0a,IACtCA,EAAMrb,iBAEN,MAAMi4C,EAAU55C,KAAKK,QAAQwD,QAAQ+1C,OAClC55C,KAAKK,QAAQ8B,UAAUZ,SAAS,kBACjCvB,KAAKK,QAAQq+B,WAAWhuB,UAAY,gBAAkBkpC,EAAOC,WAAW,IAAK,IAAM,07DAA27DD,EAAQ,mBAEthE55C,KAAKK,QAAQq+B,WAAWhuB,UAAY,gBAAkBkpC,EAAOC,WAAW,IAAK,IAAM,48DAA68DD,EAAQ,uBCXhjEn4C,SAASa,iBAAiB,oBAAoB,KAC5C,MAAMw3C,EAAer4C,SAASkC,iBAAiB,aAC1Cm2C,EAAa75C,QAIlB65C,EAAal6C,SAASS,IACA,IAAIs5C,GAAMt5C,GAClBqC,MAAMrC,SCCtB,IAAIwJ,GAAiBpK,OAAOqK,WAAarI,SAASsI,KAAKC,YACrDvI,SAASsD,gBAAgBF,MAAMiD,YAAY,mBAAqB,GAAE+B,QAEpEpK,OAAO6C,iBAAiB,UAAU,SAAS0a,GACzC,IAAInT,EAAiBpK,OAAOqK,WAAarI,SAASsI,KAAKC,YACvDvI,SAASsD,gBAAgBF,MAAMiD,YAAY,mBAAqB,GAAE+B,UACjE"}