{"version":3,"file":"jarallax.js","sources":["../src/utils/ready.js","../src/utils/global.js","../src/core.js","../src/core.umd.js"],"sourcesContent":["function ready(callback) {\n if ('complete' === document.readyState || 'interactive' === document.readyState) {\n // Already ready or interactive, execute callback\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback, {\n capture: true,\n once: true,\n passive: true,\n });\n }\n}\n\nexport default ready;\n","/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-restricted-globals */\nlet win;\n\nif ('undefined' !== typeof window) {\n win = window;\n} else if ('undefined' !== typeof global) {\n win = global;\n} else if ('undefined' !== typeof self) {\n win = self;\n} else {\n win = {};\n}\n\nexport default win;\n","import domReady from './utils/ready';\nimport global from './utils/global';\n\nconst { navigator } = global;\n\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n);\n\nlet $deviceHelper;\n\n/**\n * The most popular mobile browsers changes height after page scroll and this generates image jumping.\n * We can fix it using this workaround with vh units.\n */\nfunction getDeviceHeight() {\n if (!$deviceHelper && document.body) {\n $deviceHelper = document.createElement('div');\n $deviceHelper.style.cssText =\n 'position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;';\n document.body.appendChild($deviceHelper);\n }\n\n return (\n ($deviceHelper ? $deviceHelper.clientHeight : 0) ||\n global.innerHeight ||\n document.documentElement.clientHeight\n );\n}\n\n// Window height data\nlet wndH;\nfunction updateWndVars() {\n if (isMobile) {\n wndH = getDeviceHeight();\n } else {\n wndH = global.innerHeight || document.documentElement.clientHeight;\n }\n}\nupdateWndVars();\nglobal.addEventListener('resize', updateWndVars);\nglobal.addEventListener('orientationchange', updateWndVars);\nglobal.addEventListener('load', updateWndVars);\ndomReady(() => {\n updateWndVars({\n type: 'dom-loaded',\n });\n});\n\n// list with all jarallax instances\n// need to render all in one scroll/resize event\nconst jarallaxList = [];\n\n// get all parents of the element.\nfunction getParents(elem) {\n const parents = [];\n\n while (null !== elem.parentElement) {\n elem = elem.parentElement;\n\n if (1 === elem.nodeType) {\n parents.push(elem);\n }\n }\n\n return parents;\n}\n\nfunction updateParallax() {\n if (!jarallaxList.length) {\n return;\n }\n\n jarallaxList.forEach((data, k) => {\n const { instance, oldData } = data;\n\n const clientRect = instance.$item.getBoundingClientRect();\n\n const newData = {\n width: clientRect.width,\n height: clientRect.height,\n top: clientRect.top,\n bottom: clientRect.bottom,\n wndW: global.innerWidth,\n wndH,\n };\n\n const isResized =\n !oldData ||\n oldData.wndW !== newData.wndW ||\n oldData.wndH !== newData.wndH ||\n oldData.width !== newData.width ||\n oldData.height !== newData.height;\n const isScrolled =\n isResized || !oldData || oldData.top !== newData.top || oldData.bottom !== newData.bottom;\n\n jarallaxList[k].oldData = newData;\n\n if (isResized) {\n instance.onResize();\n }\n if (isScrolled) {\n instance.onScroll();\n }\n });\n\n global.requestAnimationFrame(updateParallax);\n}\n\nlet instanceID = 0;\n\n// Jarallax class\nclass Jarallax {\n constructor(item, userOptions) {\n const self = this;\n\n self.instanceID = instanceID;\n instanceID += 1;\n\n self.$item = item;\n\n self.defaults = {\n type: 'scroll', // type of parallax: scroll, scale, opacity, scale-opacity, scroll-opacity\n speed: 0.5, // supported value from -1 to 2\n imgSrc: null,\n imgElement: '.jarallax-img',\n imgSize: 'cover',\n imgPosition: '50% 50%',\n imgRepeat: 'no-repeat', // supported only for background, not for tag\n keepImg: false, // keep tag in it's default place\n elementInViewport: null,\n zIndex: -100,\n disableParallax: false,\n disableVideo: false,\n\n // video\n videoSrc: null,\n videoStartTime: 0,\n videoEndTime: 0,\n videoVolume: 0,\n videoLoop: true,\n videoPlayOnlyVisible: true,\n videoLazyLoading: true,\n\n // events\n onScroll: null, // function(calculations) {}\n onInit: null, // function() {}\n onDestroy: null, // function() {}\n onCoverImage: null, // function() {}\n };\n\n // prepare data-options\n const dataOptions = self.$item.dataset || {};\n const pureDataOptions = {};\n Object.keys(dataOptions).forEach((key) => {\n const loweCaseOption = key.substr(0, 1).toLowerCase() + key.substr(1);\n if (loweCaseOption && 'undefined' !== typeof self.defaults[loweCaseOption]) {\n pureDataOptions[loweCaseOption] = dataOptions[key];\n }\n });\n\n self.options = self.extend({}, self.defaults, pureDataOptions, userOptions);\n self.pureOptions = self.extend({}, self.options);\n\n // prepare 'true' and 'false' strings to boolean\n Object.keys(self.options).forEach((key) => {\n if ('true' === self.options[key]) {\n self.options[key] = true;\n } else if ('false' === self.options[key]) {\n self.options[key] = false;\n }\n });\n\n // fix speed option [-1.0, 2.0]\n self.options.speed = Math.min(2, Math.max(-1, parseFloat(self.options.speed)));\n\n // prepare disableParallax callback\n if ('string' === typeof self.options.disableParallax) {\n self.options.disableParallax = new RegExp(self.options.disableParallax);\n }\n if (self.options.disableParallax instanceof RegExp) {\n const disableParallaxRegexp = self.options.disableParallax;\n self.options.disableParallax = () => disableParallaxRegexp.test(navigator.userAgent);\n }\n if ('function' !== typeof self.options.disableParallax) {\n self.options.disableParallax = () => false;\n }\n\n // prepare disableVideo callback\n if ('string' === typeof self.options.disableVideo) {\n self.options.disableVideo = new RegExp(self.options.disableVideo);\n }\n if (self.options.disableVideo instanceof RegExp) {\n const disableVideoRegexp = self.options.disableVideo;\n self.options.disableVideo = () => disableVideoRegexp.test(navigator.userAgent);\n }\n if ('function' !== typeof self.options.disableVideo) {\n self.options.disableVideo = () => false;\n }\n\n // custom element to check if parallax in viewport\n let elementInVP = self.options.elementInViewport;\n // get first item from array\n if (\n elementInVP &&\n 'object' === typeof elementInVP &&\n 'undefined' !== typeof elementInVP.length\n ) {\n [elementInVP] = elementInVP;\n }\n // check if dom element\n if (!(elementInVP instanceof Element)) {\n elementInVP = null;\n }\n self.options.elementInViewport = elementInVP;\n\n self.image = {\n src: self.options.imgSrc || null,\n $container: null,\n useImgTag: false,\n\n // 1. Position fixed is needed for the most of browsers because absolute position have glitches\n // 2. On MacOS with smooth scroll there is a huge lags with absolute position - https://github.com/nk-o/jarallax/issues/75\n // 3. Previously used 'absolute' for mobile devices. But we re-tested on iPhone 12 and 'fixed' position is working better, then 'absolute', so for now position is always 'fixed'\n position: 'fixed',\n };\n\n if (self.initImg() && self.canInitParallax()) {\n self.init();\n }\n }\n\n // add styles to element\n // eslint-disable-next-line class-methods-use-this\n css(el, styles) {\n if ('string' === typeof styles) {\n return global.getComputedStyle(el).getPropertyValue(styles);\n }\n\n Object.keys(styles).forEach((key) => {\n el.style[key] = styles[key];\n });\n return el;\n }\n\n // Extend like jQuery.extend\n // eslint-disable-next-line class-methods-use-this\n extend(out, ...args) {\n out = out || {};\n\n Object.keys(args).forEach((i) => {\n if (!args[i]) {\n return;\n }\n Object.keys(args[i]).forEach((key) => {\n out[key] = args[i][key];\n });\n });\n\n return out;\n }\n\n // get window size and scroll position. Useful for extensions\n // eslint-disable-next-line class-methods-use-this\n getWindowData() {\n return {\n width: global.innerWidth || document.documentElement.clientWidth,\n height: wndH,\n y: document.documentElement.scrollTop,\n };\n }\n\n // Jarallax functions\n initImg() {\n const self = this;\n\n // find image element\n let $imgElement = self.options.imgElement;\n if ($imgElement && 'string' === typeof $imgElement) {\n $imgElement = self.$item.querySelector($imgElement);\n }\n\n // check if dom element\n if (!($imgElement instanceof Element)) {\n if (self.options.imgSrc) {\n $imgElement = new Image();\n $imgElement.src = self.options.imgSrc;\n } else {\n $imgElement = null;\n }\n }\n\n if ($imgElement) {\n if (self.options.keepImg) {\n self.image.$item = $imgElement.cloneNode(true);\n } else {\n self.image.$item = $imgElement;\n self.image.$itemParent = $imgElement.parentNode;\n }\n self.image.useImgTag = true;\n }\n\n // true if there is img tag\n if (self.image.$item) {\n return true;\n }\n\n // get image src\n if (null === self.image.src) {\n self.image.src =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n self.image.bgImage = self.css(self.$item, 'background-image');\n }\n return !(!self.image.bgImage || 'none' === self.image.bgImage);\n }\n\n canInitParallax() {\n return !this.options.disableParallax();\n }\n\n init() {\n const self = this;\n const containerStyles = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n };\n let imageStyles = {\n pointerEvents: 'none',\n transformStyle: 'preserve-3d',\n backfaceVisibility: 'hidden',\n willChange: 'transform,opacity',\n };\n\n if (!self.options.keepImg) {\n // save default user styles\n const curStyle = self.$item.getAttribute('style');\n if (curStyle) {\n self.$item.setAttribute('data-jarallax-original-styles', curStyle);\n }\n if (self.image.useImgTag) {\n const curImgStyle = self.image.$item.getAttribute('style');\n if (curImgStyle) {\n self.image.$item.setAttribute('data-jarallax-original-styles', curImgStyle);\n }\n }\n }\n\n // set relative position and z-index to the parent\n if ('static' === self.css(self.$item, 'position')) {\n self.css(self.$item, {\n position: 'relative',\n });\n }\n if ('auto' === self.css(self.$item, 'z-index')) {\n self.css(self.$item, {\n zIndex: 0,\n });\n }\n\n // container for parallax image\n self.image.$container = document.createElement('div');\n self.css(self.image.$container, containerStyles);\n self.css(self.image.$container, {\n 'z-index': self.options.zIndex,\n });\n\n // it will remove some image overlapping\n // overlapping occur due to an image position fixed inside absolute position element\n // needed only when background in fixed position\n if ('fixed' === this.image.position) {\n self.css(self.image.$container, {\n '-webkit-clip-path': 'polygon(0 0, 100% 0, 100% 100%, 0 100%)',\n 'clip-path': 'polygon(0 0, 100% 0, 100% 100%, 0 100%)',\n });\n }\n\n self.image.$container.setAttribute('id', `jarallax-container-${self.instanceID}`);\n self.$item.appendChild(self.image.$container);\n\n // use img tag\n if (self.image.useImgTag) {\n imageStyles = self.extend(\n {\n 'object-fit': self.options.imgSize,\n 'object-position': self.options.imgPosition,\n 'max-width': 'none',\n },\n containerStyles,\n imageStyles\n );\n\n // use div with background image\n } else {\n self.image.$item = document.createElement('div');\n if (self.image.src) {\n imageStyles = self.extend(\n {\n 'background-position': self.options.imgPosition,\n 'background-size': self.options.imgSize,\n 'background-repeat': self.options.imgRepeat,\n 'background-image': self.image.bgImage || `url(\"${self.image.src}\")`,\n },\n containerStyles,\n imageStyles\n );\n }\n }\n\n if (\n 'opacity' === self.options.type ||\n 'scale' === self.options.type ||\n 'scale-opacity' === self.options.type ||\n 1 === self.options.speed\n ) {\n self.image.position = 'absolute';\n }\n\n // 1. Check if one of parents have transform style (without this check, scroll transform will be inverted if used parallax with position fixed)\n // discussion - https://github.com/nk-o/jarallax/issues/9\n // 2. Check if parents have overflow scroll\n if ('fixed' === self.image.position) {\n const $parents = getParents(self.$item).filter((el) => {\n const styles = global.getComputedStyle(el);\n const parentTransform =\n styles['-webkit-transform'] || styles['-moz-transform'] || styles.transform;\n const overflowRegex = /(auto|scroll)/;\n\n return (\n (parentTransform && 'none' !== parentTransform) ||\n overflowRegex.test(styles.overflow + styles['overflow-y'] + styles['overflow-x'])\n );\n });\n\n self.image.position = $parents.length ? 'absolute' : 'fixed';\n }\n\n // add position to parallax block\n imageStyles.position = self.image.position;\n\n // insert parallax image\n self.css(self.image.$item, imageStyles);\n self.image.$container.appendChild(self.image.$item);\n\n // set initial position and size\n self.onResize();\n self.onScroll(true);\n\n // call onInit event\n if (self.options.onInit) {\n self.options.onInit.call(self);\n }\n\n // remove default user background\n if ('none' !== self.css(self.$item, 'background-image')) {\n self.css(self.$item, {\n 'background-image': 'none',\n });\n }\n\n self.addToParallaxList();\n }\n\n // add to parallax instances list\n addToParallaxList() {\n jarallaxList.push({\n instance: this,\n });\n\n if (1 === jarallaxList.length) {\n global.requestAnimationFrame(updateParallax);\n }\n }\n\n // remove from parallax instances list\n removeFromParallaxList() {\n const self = this;\n\n jarallaxList.forEach((data, key) => {\n if (data.instance.instanceID === self.instanceID) {\n jarallaxList.splice(key, 1);\n }\n });\n }\n\n destroy() {\n const self = this;\n\n self.removeFromParallaxList();\n\n // return styles on container as before jarallax init\n const originalStylesTag = self.$item.getAttribute('data-jarallax-original-styles');\n self.$item.removeAttribute('data-jarallax-original-styles');\n // null occurs if there is no style tag before jarallax init\n if (!originalStylesTag) {\n self.$item.removeAttribute('style');\n } else {\n self.$item.setAttribute('style', originalStylesTag);\n }\n\n if (self.image.useImgTag) {\n // return styles on img tag as before jarallax init\n const originalStylesImgTag = self.image.$item.getAttribute('data-jarallax-original-styles');\n self.image.$item.removeAttribute('data-jarallax-original-styles');\n // null occurs if there is no style tag before jarallax init\n if (!originalStylesImgTag) {\n self.image.$item.removeAttribute('style');\n } else {\n self.image.$item.setAttribute('style', originalStylesTag);\n }\n\n // move img tag to its default position\n if (self.image.$itemParent) {\n self.image.$itemParent.appendChild(self.image.$item);\n }\n }\n\n // remove additional dom elements\n if (self.image.$container) {\n self.image.$container.parentNode.removeChild(self.image.$container);\n }\n\n // call onDestroy event\n if (self.options.onDestroy) {\n self.options.onDestroy.call(self);\n }\n\n // delete jarallax from item\n delete self.$item.jarallax;\n }\n\n // Fallback for removed function.\n // Does nothing now.\n // eslint-disable-next-line class-methods-use-this\n clipContainer() {}\n\n coverImage() {\n const self = this;\n\n const rect = self.image.$container.getBoundingClientRect();\n const contH = rect.height;\n const { speed } = self.options;\n const isScroll = 'scroll' === self.options.type || 'scroll-opacity' === self.options.type;\n let scrollDist = 0;\n let resultH = contH;\n let resultMT = 0;\n\n // scroll parallax\n if (isScroll) {\n // scroll distance and height for image\n if (0 > speed) {\n scrollDist = speed * Math.max(contH, wndH);\n\n if (wndH < contH) {\n scrollDist -= speed * (contH - wndH);\n }\n } else {\n scrollDist = speed * (contH + wndH);\n }\n\n // size for scroll parallax\n if (1 < speed) {\n resultH = Math.abs(scrollDist - wndH);\n } else if (0 > speed) {\n resultH = scrollDist / speed + Math.abs(scrollDist);\n } else {\n resultH += (wndH - contH) * (1 - speed);\n }\n\n scrollDist /= 2;\n }\n\n // store scroll distance\n self.parallaxScrollDistance = scrollDist;\n\n // vertical center\n if (isScroll) {\n resultMT = (wndH - resultH) / 2;\n } else {\n resultMT = (contH - resultH) / 2;\n }\n\n // apply result to item\n self.css(self.image.$item, {\n height: `${resultH}px`,\n marginTop: `${resultMT}px`,\n left: 'fixed' === self.image.position ? `${rect.left}px` : '0',\n width: `${rect.width}px`,\n });\n\n // call onCoverImage event\n if (self.options.onCoverImage) {\n self.options.onCoverImage.call(self);\n }\n\n // return some useful data. Used in the video cover function\n return {\n image: {\n height: resultH,\n marginTop: resultMT,\n },\n container: rect,\n };\n }\n\n isVisible() {\n return this.isElementInViewport || false;\n }\n\n onScroll(force) {\n const self = this;\n\n const rect = self.$item.getBoundingClientRect();\n const contT = rect.top;\n const contH = rect.height;\n const styles = {};\n\n // check if in viewport\n let viewportRect = rect;\n if (self.options.elementInViewport) {\n viewportRect = self.options.elementInViewport.getBoundingClientRect();\n }\n self.isElementInViewport =\n 0 <= viewportRect.bottom &&\n 0 <= viewportRect.right &&\n viewportRect.top <= wndH &&\n viewportRect.left <= global.innerWidth;\n\n // stop calculations if item is not in viewport\n if (force ? false : !self.isElementInViewport) {\n return;\n }\n\n // calculate parallax helping variables\n const beforeTop = Math.max(0, contT);\n const beforeTopEnd = Math.max(0, contH + contT);\n const afterTop = Math.max(0, -contT);\n const beforeBottom = Math.max(0, contT + contH - wndH);\n const beforeBottomEnd = Math.max(0, contH - (contT + contH - wndH));\n const afterBottom = Math.max(0, -contT + wndH - contH);\n const fromViewportCenter = 1 - 2 * ((wndH - contT) / (wndH + contH));\n\n // calculate on how percent of section is visible\n let visiblePercent = 1;\n if (contH < wndH) {\n visiblePercent = 1 - (afterTop || beforeBottom) / contH;\n } else if (beforeTopEnd <= wndH) {\n visiblePercent = beforeTopEnd / wndH;\n } else if (beforeBottomEnd <= wndH) {\n visiblePercent = beforeBottomEnd / wndH;\n }\n\n // opacity\n if (\n 'opacity' === self.options.type ||\n 'scale-opacity' === self.options.type ||\n 'scroll-opacity' === self.options.type\n ) {\n styles.transform = 'translate3d(0,0,0)';\n styles.opacity = visiblePercent;\n }\n\n // scale\n if ('scale' === self.options.type || 'scale-opacity' === self.options.type) {\n let scale = 1;\n if (0 > self.options.speed) {\n scale -= self.options.speed * visiblePercent;\n } else {\n scale += self.options.speed * (1 - visiblePercent);\n }\n styles.transform = `scale(${scale}) translate3d(0,0,0)`;\n }\n\n // scroll\n if ('scroll' === self.options.type || 'scroll-opacity' === self.options.type) {\n let positionY = self.parallaxScrollDistance * fromViewportCenter;\n\n // fix if parallax block in absolute position\n if ('absolute' === self.image.position) {\n positionY -= contT;\n }\n\n styles.transform = `translate3d(0,${positionY}px,0)`;\n }\n\n self.css(self.image.$item, styles);\n\n // call onScroll event\n if (self.options.onScroll) {\n self.options.onScroll.call(self, {\n section: rect,\n\n beforeTop,\n beforeTopEnd,\n afterTop,\n beforeBottom,\n beforeBottomEnd,\n afterBottom,\n\n visiblePercent,\n fromViewportCenter,\n });\n }\n }\n\n onResize() {\n this.coverImage();\n }\n}\n\n// global definition\nconst jarallax = function (items, options, ...args) {\n // check for dom element\n // thanks: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n if (\n 'object' === typeof HTMLElement\n ? items instanceof HTMLElement\n : items &&\n 'object' === typeof items &&\n null !== items &&\n 1 === items.nodeType &&\n 'string' === typeof items.nodeName\n ) {\n items = [items];\n }\n\n const len = items.length;\n let k = 0;\n let ret;\n\n for (k; k < len; k += 1) {\n if ('object' === typeof options || 'undefined' === typeof options) {\n if (!items[k].jarallax) {\n items[k].jarallax = new Jarallax(items[k], options);\n }\n } else if (items[k].jarallax) {\n // eslint-disable-next-line prefer-spread\n ret = items[k].jarallax[options].apply(items[k].jarallax, args);\n }\n if ('undefined' !== typeof ret) {\n return ret;\n }\n }\n\n return items;\n};\njarallax.constructor = Jarallax;\n\nexport default jarallax;\n","import domReady from './utils/ready';\nimport global from './utils/global';\nimport jarallax from './core';\n\nconst $ = global.jQuery;\n\n// jQuery support\nif ('undefined' !== typeof $) {\n const $Plugin = function (...args) {\n Array.prototype.unshift.call(args, this);\n const res = jarallax.apply(global, args);\n return 'object' !== typeof res ? res : this;\n };\n $Plugin.constructor = jarallax.constructor;\n\n // no conflict\n const old$Plugin = $.fn.jarallax;\n $.fn.jarallax = $Plugin;\n $.fn.jarallax.noConflict = function () {\n $.fn.jarallax = old$Plugin;\n return this;\n };\n}\n\n// data-jarallax initialization\ndomReady(() => {\n jarallax(document.querySelectorAll('[data-jarallax]'));\n});\n\nexport default jarallax;\n"],"names":["ready","callback","document","readyState","addEventListener","capture","once","passive","win","window","global","self","navigator","isMobile","test","userAgent","$deviceHelper","getDeviceHeight","body","createElement","style","cssText","appendChild","clientHeight","innerHeight","documentElement","wndH","updateWndVars","domReady","jarallaxList","getParents","elem","parents","parentElement","nodeType","push","updateParallax","length","forEach","data","k","instance","oldData","clientRect","$item","getBoundingClientRect","newData","width","height","top","bottom","wndW","innerWidth","isResized","isScrolled","onResize","onScroll","requestAnimationFrame","instanceID","Jarallax","constructor","item","userOptions","defaults","type","speed","imgSrc","imgElement","imgSize","imgPosition","imgRepeat","keepImg","elementInViewport","zIndex","disableParallax","disableVideo","videoSrc","videoStartTime","videoEndTime","videoVolume","videoLoop","videoPlayOnlyVisible","videoLazyLoading","onInit","onDestroy","onCoverImage","dataOptions","dataset","pureDataOptions","Object","keys","key","loweCaseOption","substr","toLowerCase","options","extend","pureOptions","Math","min","max","parseFloat","RegExp","disableParallaxRegexp","disableVideoRegexp","elementInVP","Element","image","src","$container","useImgTag","position","initImg","canInitParallax","init","css","el","styles","getComputedStyle","getPropertyValue","out","args","i","getWindowData","clientWidth","y","scrollTop","$imgElement","querySelector","Image","cloneNode","$itemParent","parentNode","bgImage","containerStyles","left","overflow","imageStyles","pointerEvents","transformStyle","backfaceVisibility","willChange","curStyle","getAttribute","setAttribute","curImgStyle","$parents","filter","parentTransform","transform","overflowRegex","call","addToParallaxList","removeFromParallaxList","splice","destroy","originalStylesTag","removeAttribute","originalStylesImgTag","removeChild","jarallax","clipContainer","coverImage","rect","contH","isScroll","scrollDist","resultH","resultMT","abs","parallaxScrollDistance","marginTop","container","isVisible","isElementInViewport","force","contT","viewportRect","right","beforeTop","beforeTopEnd","afterTop","beforeBottom","beforeBottomEnd","afterBottom","fromViewportCenter","visiblePercent","opacity","scale","positionY","section","items","HTMLElement","nodeName","len","ret","apply","$","jQuery","$Plugin","Array","prototype","unshift","res","old$Plugin","fn","noConflict","querySelectorAll"],"mappings":";;;;;;;;;;;EAAA,SAASA,KAAT,CAAeC,QAAf,EAAyB;EACvB,MAAI,eAAeC,QAAQ,CAACC,UAAxB,IAAsC,kBAAkBD,QAAQ,CAACC,UAArE,EAAiF;EAC/E;EACAF,IAAAA,QAAQ;EACT,GAHD,MAGO;EACLC,IAAAA,QAAQ,CAACE,gBAAT,CAA0B,kBAA1B,EAA8CH,QAA9C,EAAwD;EACtDI,MAAAA,OAAO,EAAE,IAD6C;EAEtDC,MAAAA,IAAI,EAAE,IAFgD;EAGtDC,MAAAA,OAAO,EAAE;EAH6C,KAAxD;EAKD;EACF;;ECXD;;EACA;EACA,IAAIC,GAAJ;;EAEA,IAAI,gBAAgB,OAAOC,MAA3B,EAAmC;EACjCD,EAAAA,GAAG,GAAGC,MAAN;EACD,CAFD,MAEO,IAAI,gBAAgB,OAAOC,MAA3B,EAAmC;EACxCF,EAAAA,GAAG,GAAGE,MAAN;EACD,CAFM,MAEA,IAAI,gBAAgB,OAAOC,IAA3B,EAAiC;EACtCH,EAAAA,GAAG,GAAGG,IAAN;EACD,CAFM,MAEA;EACLH,EAAAA,GAAG,GAAG,EAAN;EACD;;AAED,iBAAeA,GAAf;;ECXA,MAAM;EAAEI,EAAAA;EAAF,IAAgBF,QAAtB;EAEA,MAAMG,QAAQ,kFAAoEC,IAAjE,CACfF,SAAS,CAACG,SADK,CAAjB;EAIA,IAAIC,aAAJ;EAEA;EACA;EACA;EACA;;EACA,SAASC,eAAT,GAA2B;EACzB,MAAI,CAACD,aAAD,IAAkBd,QAAQ,CAACgB,IAA/B,EAAqC;EACnCF,IAAAA,aAAa,GAAGd,QAAQ,CAACiB,aAAT,CAAuB,KAAvB,CAAhB;EACAH,IAAAA,aAAa,CAACI,KAAd,CAAoBC,OAApB,GACE,kEADF;EAEAnB,IAAAA,QAAQ,CAACgB,IAAT,CAAcI,WAAd,CAA0BN,aAA1B;EACD;;EAED,SACE,CAACA,aAAa,GAAGA,aAAa,CAACO,YAAjB,GAAgC,CAA9C,KACAb,QAAM,CAACc,WADP,IAEAtB,QAAQ,CAACuB,eAAT,CAAyBF,YAH3B;EAKD;;;EAGD,IAAIG,IAAJ;;EACA,SAASC,aAAT,GAAyB;EACvB,MAAId,QAAJ,EAAc;EACZa,IAAAA,IAAI,GAAGT,eAAe,EAAtB;EACD,GAFD,MAEO;EACLS,IAAAA,IAAI,GAAGhB,QAAM,CAACc,WAAP,IAAsBtB,QAAQ,CAACuB,eAAT,CAAyBF,YAAtD;EACD;EACF;;EACDI,aAAa;AACbjB,UAAM,CAACN,gBAAP,CAAwB,QAAxB,EAAkCuB,aAAlC;AACAjB,UAAM,CAACN,gBAAP,CAAwB,mBAAxB,EAA6CuB,aAA7C;AACAjB,UAAM,CAACN,gBAAP,CAAwB,MAAxB,EAAgCuB,aAAhC;AACAC,OAAQ,CAAC,MAAM;EACbD,EAAAA,aAAa,CAAA,CAAb;EAGD,CAJO,CAAR;EAOA;;EACA,MAAME,YAAY,GAAG,EAArB;;EAGA,SAASC,UAAT,CAAoBC,IAApB,EAA0B;EACxB,QAAMC,OAAO,GAAG,EAAhB;;EAEA,SAAO,SAASD,IAAI,CAACE,aAArB,EAAoC;EAClCF,IAAAA,IAAI,GAAGA,IAAI,CAACE,aAAZ;;EAEA,QAAI,MAAMF,IAAI,CAACG,QAAf,EAAyB;EACvBF,MAAAA,OAAO,CAACG,IAAR,CAAaJ,IAAb;EACD;EACF;;EAED,SAAOC,OAAP;EACD;;EAED,SAASI,cAAT,GAA0B;EACxB,MAAI,CAACP,YAAY,CAACQ,MAAlB,EAA0B;EACxB;EACD;;EAEDR,EAAAA,YAAY,CAACS,OAAb,CAAqB,CAACC,IAAD,EAAOC,CAAP,KAAa;EAChC,UAAM;EAAEC,MAAAA,QAAF;EAAYC,MAAAA;EAAZ,QAAwBH,IAA9B;EAEA,UAAMI,UAAU,GAAGF,QAAQ,CAACG,KAAT,CAAeC,qBAAf,EAAnB;EAEA,UAAMC,OAAO,GAAG;EACdC,MAAAA,KAAK,EAAEJ,UAAU,CAACI,KADJ;EAEdC,MAAAA,MAAM,EAAEL,UAAU,CAACK,MAFL;EAGdC,MAAAA,GAAG,EAAEN,UAAU,CAACM,GAHF;EAIdC,MAAAA,MAAM,EAAEP,UAAU,CAACO,MAJL;EAKdC,MAAAA,IAAI,EAAEzC,QAAM,CAAC0C,UALC;EAMd1B,MAAAA;EANc,KAAhB;EASA,UAAM2B,SAAS,GACb,CAACX,OAAD,IACAA,OAAO,CAACS,IAAR,KAAiBL,OAAO,CAACK,IADzB,IAEAT,OAAO,CAAChB,IAAR,KAAiBoB,OAAO,CAACpB,IAFzB,IAGAgB,OAAO,CAACK,KAAR,KAAkBD,OAAO,CAACC,KAH1B,IAIAL,OAAO,CAACM,MAAR,KAAmBF,OAAO,CAACE,MAL7B;EAMA,UAAMM,UAAU,GACdD,SAAS,IAAI,CAACX,OAAd,IAAyBA,OAAO,CAACO,GAAR,KAAgBH,OAAO,CAACG,GAAjD,IAAwDP,OAAO,CAACQ,MAAR,KAAmBJ,OAAO,CAACI,MADrF;EAGArB,IAAAA,YAAY,CAACW,CAAD,CAAZ,CAAgBE,OAAhB,GAA0BI,OAA1B;;EAEA,QAAIO,SAAJ,EAAe;EACbZ,MAAAA,QAAQ,CAACc,QAAT;EACD;;EACD,QAAID,UAAJ,EAAgB;EACdb,MAAAA,QAAQ,CAACe,QAAT;EACD;EACF,GA/BD;EAiCA9C,EAAAA,QAAM,CAAC+C,qBAAP,CAA6BrB,cAA7B;EACD;;EAED,IAAIsB,UAAU,GAAG,CAAjB;;EAGA,MAAMC,QAAN,CAAe;EACbC,EAAAA,WAAW,CAACC,IAAD,EAAOC,WAAP,EAAoB;EAC7B,UAAMnD,IAAI,GAAG,IAAb;EAEAA,IAAAA,IAAI,CAAC+C,UAAL,GAAkBA,UAAlB;EACAA,IAAAA,UAAU,IAAI,CAAd;EAEA/C,IAAAA,IAAI,CAACiC,KAAL,GAAaiB,IAAb;EAEAlD,IAAAA,IAAI,CAACoD,QAAL,GAAgB;EACdC,MAAAA,IAAI,EAAE,QADQ;EACE;EAChBC,MAAAA,KAAK,EAAE,GAFO;EAEF;EACZC,MAAAA,MAAM,EAAE,IAHM;EAIdC,MAAAA,UAAU,EAAE,eAJE;EAKdC,MAAAA,OAAO,EAAE,OALK;EAMdC,MAAAA,WAAW,EAAE,SANC;EAOdC,MAAAA,SAAS,EAAE,WAPG;EAOU;EACxBC,MAAAA,OAAO,EAAE,KARK;EAQE;EAChBC,MAAAA,iBAAiB,EAAE,IATL;EAUdC,MAAAA,MAAM,EAAE,CAAC,GAVK;EAWdC,MAAAA,eAAe,EAAE,KAXH;EAYdC,MAAAA,YAAY,EAAE,KAZA;EAcd;EACAC,MAAAA,QAAQ,EAAE,IAfI;EAgBdC,MAAAA,cAAc,EAAE,CAhBF;EAiBdC,MAAAA,YAAY,EAAE,CAjBA;EAkBdC,MAAAA,WAAW,EAAE,CAlBC;EAmBdC,MAAAA,SAAS,EAAE,IAnBG;EAoBdC,MAAAA,oBAAoB,EAAE,IApBR;EAqBdC,MAAAA,gBAAgB,EAAE,IArBJ;EAuBd;EACA1B,MAAAA,QAAQ,EAAE,IAxBI;EAwBE;EAChB2B,MAAAA,MAAM,EAAE,IAzBM;EAyBA;EACdC,MAAAA,SAAS,EAAE,IA1BG;EA0BG;EACjBC,MAAAA,YAAY,EAAE,IA3BA;;EAAA,KAAhB,CAR6B;;EAuC7B,UAAMC,WAAW,GAAG3E,IAAI,CAACiC,KAAL,CAAW2C,OAAX,IAAsB,EAA1C;EACA,UAAMC,eAAe,GAAG,EAAxB;EACAC,IAAAA,MAAM,CAACC,IAAP,CAAYJ,WAAZ,EAAyBhD,OAAzB,CAAkCqD,GAAD,IAAS;EACxC,YAAMC,cAAc,GAAGD,GAAG,CAACE,MAAJ,CAAW,CAAX,EAAc,CAAd,EAAiBC,WAAjB,KAAiCH,GAAG,CAACE,MAAJ,CAAW,CAAX,CAAxD;;EACA,UAAID,cAAc,IAAI,gBAAgB,OAAOjF,IAAI,CAACoD,QAAL,CAAc6B,cAAd,CAA7C,EAA4E;EAC1EJ,QAAAA,eAAe,CAACI,cAAD,CAAf,GAAkCN,WAAW,CAACK,GAAD,CAA7C;EACD;EACF,KALD;EAOAhF,IAAAA,IAAI,CAACoF,OAAL,GAAepF,IAAI,CAACqF,MAAL,CAAY,EAAZ,EAAgBrF,IAAI,CAACoD,QAArB,EAA+ByB,eAA/B,EAAgD1B,WAAhD,CAAf;EACAnD,IAAAA,IAAI,CAACsF,WAAL,GAAmBtF,IAAI,CAACqF,MAAL,CAAY,EAAZ,EAAgBrF,IAAI,CAACoF,OAArB,CAAnB,CAjD6B;;EAoD7BN,IAAAA,MAAM,CAACC,IAAP,CAAY/E,IAAI,CAACoF,OAAjB,EAA0BzD,OAA1B,CAAmCqD,GAAD,IAAS;EACzC,UAAI,WAAWhF,IAAI,CAACoF,OAAL,CAAaJ,GAAb,CAAf,EAAkC;EAChChF,QAAAA,IAAI,CAACoF,OAAL,CAAaJ,GAAb,IAAoB,IAApB;EACD,OAFD,MAEO,IAAI,YAAYhF,IAAI,CAACoF,OAAL,CAAaJ,GAAb,CAAhB,EAAmC;EACxChF,QAAAA,IAAI,CAACoF,OAAL,CAAaJ,GAAb,IAAoB,KAApB;EACD;EACF,KAND,EApD6B;;EA6D7BhF,IAAAA,IAAI,CAACoF,OAAL,CAAa9B,KAAb,GAAqBiC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYD,IAAI,CAACE,GAAL,CAAS,CAAC,CAAV,EAAaC,UAAU,CAAC1F,IAAI,CAACoF,OAAL,CAAa9B,KAAd,CAAvB,CAAZ,CAArB,CA7D6B;;EAgE7B,QAAI,aAAa,OAAOtD,IAAI,CAACoF,OAAL,CAAarB,eAArC,EAAsD;EACpD/D,MAAAA,IAAI,CAACoF,OAAL,CAAarB,eAAb,GAA+B,IAAI4B,MAAJ,CAAW3F,IAAI,CAACoF,OAAL,CAAarB,eAAxB,CAA/B;EACD;;EACD,QAAI/D,IAAI,CAACoF,OAAL,CAAarB,eAAb,YAAwC4B,MAA5C,EAAoD;EAClD,YAAMC,qBAAqB,GAAG5F,IAAI,CAACoF,OAAL,CAAarB,eAA3C;;EACA/D,MAAAA,IAAI,CAACoF,OAAL,CAAarB,eAAb,GAA+B,MAAM6B,qBAAqB,CAACzF,IAAtB,CAA2BF,SAAS,CAACG,SAArC,CAArC;EACD;;EACD,QAAI,eAAe,OAAOJ,IAAI,CAACoF,OAAL,CAAarB,eAAvC,EAAwD;EACtD/D,MAAAA,IAAI,CAACoF,OAAL,CAAarB,eAAb,GAA+B,MAAM,KAArC;EACD,KAzE4B;;;EA4E7B,QAAI,aAAa,OAAO/D,IAAI,CAACoF,OAAL,CAAapB,YAArC,EAAmD;EACjDhE,MAAAA,IAAI,CAACoF,OAAL,CAAapB,YAAb,GAA4B,IAAI2B,MAAJ,CAAW3F,IAAI,CAACoF,OAAL,CAAapB,YAAxB,CAA5B;EACD;;EACD,QAAIhE,IAAI,CAACoF,OAAL,CAAapB,YAAb,YAAqC2B,MAAzC,EAAiD;EAC/C,YAAME,kBAAkB,GAAG7F,IAAI,CAACoF,OAAL,CAAapB,YAAxC;;EACAhE,MAAAA,IAAI,CAACoF,OAAL,CAAapB,YAAb,GAA4B,MAAM6B,kBAAkB,CAAC1F,IAAnB,CAAwBF,SAAS,CAACG,SAAlC,CAAlC;EACD;;EACD,QAAI,eAAe,OAAOJ,IAAI,CAACoF,OAAL,CAAapB,YAAvC,EAAqD;EACnDhE,MAAAA,IAAI,CAACoF,OAAL,CAAapB,YAAb,GAA4B,MAAM,KAAlC;EACD,KArF4B;;;EAwF7B,QAAI8B,WAAW,GAAG9F,IAAI,CAACoF,OAAL,CAAavB,iBAA/B,CAxF6B;;EA0F7B,QACEiC,WAAW,IACX,aAAa,OAAOA,WADpB,IAEA,gBAAgB,OAAOA,WAAW,CAACpE,MAHrC,EAIE;EACA,OAACoE,WAAD,IAAgBA,WAAhB;EACD,KAhG4B;;;EAkG7B,QAAI,EAAEA,WAAW,YAAYC,OAAzB,CAAJ,EAAuC;EACrCD,MAAAA,WAAW,GAAG,IAAd;EACD;;EACD9F,IAAAA,IAAI,CAACoF,OAAL,CAAavB,iBAAb,GAAiCiC,WAAjC;EAEA9F,IAAAA,IAAI,CAACgG,KAAL,GAAa;EACXC,MAAAA,GAAG,EAAEjG,IAAI,CAACoF,OAAL,CAAa7B,MAAb,IAAuB,IADjB;EAEX2C,MAAAA,UAAU,EAAE,IAFD;EAGXC,MAAAA,SAAS,EAAE,KAHA;EAKX;EACA;EACA;EACAC,MAAAA,QAAQ,EAAE;EARC,KAAb;;EAWA,QAAIpG,IAAI,CAACqG,OAAL,MAAkBrG,IAAI,CAACsG,eAAL,EAAtB,EAA8C;EAC5CtG,MAAAA,IAAI,CAACuG,IAAL;EACD;EACF,GAtHY;EAyHb;;;EACAC,EAAAA,GAAG,CAACC,EAAD,EAAKC,MAAL,EAAa;EACd,QAAI,aAAa,OAAOA,MAAxB,EAAgC;EAC9B,aAAO3G,QAAM,CAAC4G,gBAAP,CAAwBF,EAAxB,EAA4BG,gBAA5B,CAA6CF,MAA7C,CAAP;EACD;;EAED5B,IAAAA,MAAM,CAACC,IAAP,CAAY2B,MAAZ,EAAoB/E,OAApB,CAA6BqD,GAAD,IAAS;EACnCyB,MAAAA,EAAE,CAAChG,KAAH,CAASuE,GAAT,IAAgB0B,MAAM,CAAC1B,GAAD,CAAtB;EACD,KAFD;EAGA,WAAOyB,EAAP;EACD,GAnIY;EAsIb;;;EACApB,EAAAA,MAAM,CAACwB,GAAD,EAAM,GAAGC,IAAT,EAAe;EACnBD,IAAAA,GAAG,GAAGA,GAAG,IAAI,EAAb;EAEA/B,IAAAA,MAAM,CAACC,IAAP,CAAY+B,IAAZ,EAAkBnF,OAAlB,CAA2BoF,CAAD,IAAO;EAC/B,UAAI,CAACD,IAAI,CAACC,CAAD,CAAT,EAAc;EACZ;EACD;;EACDjC,MAAAA,MAAM,CAACC,IAAP,CAAY+B,IAAI,CAACC,CAAD,CAAhB,EAAqBpF,OAArB,CAA8BqD,GAAD,IAAS;EACpC6B,QAAAA,GAAG,CAAC7B,GAAD,CAAH,GAAW8B,IAAI,CAACC,CAAD,CAAJ,CAAQ/B,GAAR,CAAX;EACD,OAFD;EAGD,KAPD;EASA,WAAO6B,GAAP;EACD,GApJY;EAuJb;;;EACAG,EAAAA,aAAa,GAAG;EACd,WAAO;EACL5E,MAAAA,KAAK,EAAErC,QAAM,CAAC0C,UAAP,IAAqBlD,QAAQ,CAACuB,eAAT,CAAyBmG,WADhD;EAEL5E,MAAAA,MAAM,EAAEtB,IAFH;EAGLmG,MAAAA,CAAC,EAAE3H,QAAQ,CAACuB,eAAT,CAAyBqG;EAHvB,KAAP;EAKD,GA9JY;;;EAiKbd,EAAAA,OAAO,GAAG;EACR,UAAMrG,IAAI,GAAG,IAAb,CADQ;;EAIR,QAAIoH,WAAW,GAAGpH,IAAI,CAACoF,OAAL,CAAa5B,UAA/B;;EACA,QAAI4D,WAAW,IAAI,aAAa,OAAOA,WAAvC,EAAoD;EAClDA,MAAAA,WAAW,GAAGpH,IAAI,CAACiC,KAAL,CAAWoF,aAAX,CAAyBD,WAAzB,CAAd;EACD,KAPO;;;EAUR,QAAI,EAAEA,WAAW,YAAYrB,OAAzB,CAAJ,EAAuC;EACrC,UAAI/F,IAAI,CAACoF,OAAL,CAAa7B,MAAjB,EAAyB;EACvB6D,QAAAA,WAAW,GAAG,IAAIE,KAAJ,EAAd;EACAF,QAAAA,WAAW,CAACnB,GAAZ,GAAkBjG,IAAI,CAACoF,OAAL,CAAa7B,MAA/B;EACD,OAHD,MAGO;EACL6D,QAAAA,WAAW,GAAG,IAAd;EACD;EACF;;EAED,QAAIA,WAAJ,EAAiB;EACf,UAAIpH,IAAI,CAACoF,OAAL,CAAaxB,OAAjB,EAA0B;EACxB5D,QAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,GAAmBmF,WAAW,CAACG,SAAZ,CAAsB,IAAtB,CAAnB;EACD,OAFD,MAEO;EACLvH,QAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,GAAmBmF,WAAnB;EACApH,QAAAA,IAAI,CAACgG,KAAL,CAAWwB,WAAX,GAAyBJ,WAAW,CAACK,UAArC;EACD;;EACDzH,MAAAA,IAAI,CAACgG,KAAL,CAAWG,SAAX,GAAuB,IAAvB;EACD,KA3BO;;;EA8BR,QAAInG,IAAI,CAACgG,KAAL,CAAW/D,KAAf,EAAsB;EACpB,aAAO,IAAP;EACD,KAhCO;;;EAmCR,QAAI,SAASjC,IAAI,CAACgG,KAAL,CAAWC,GAAxB,EAA6B;EAC3BjG,MAAAA,IAAI,CAACgG,KAAL,CAAWC,GAAX,GACE,gFADF;EAEAjG,MAAAA,IAAI,CAACgG,KAAL,CAAW0B,OAAX,GAAqB1H,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB,kBAArB,CAArB;EACD;;EACD,WAAO,EAAE,CAACjC,IAAI,CAACgG,KAAL,CAAW0B,OAAZ,IAAuB,WAAW1H,IAAI,CAACgG,KAAL,CAAW0B,OAA/C,CAAP;EACD;;EAEDpB,EAAAA,eAAe,GAAG;EAChB,WAAO,CAAC,KAAKlB,OAAL,CAAarB,eAAb,EAAR;EACD;;EAEDwC,EAAAA,IAAI,GAAG;EACL,UAAMvG,IAAI,GAAG,IAAb;EACA,UAAM2H,eAAe,GAAG;EACtBvB,MAAAA,QAAQ,EAAE,UADY;EAEtB9D,MAAAA,GAAG,EAAE,CAFiB;EAGtBsF,MAAAA,IAAI,EAAE,CAHgB;EAItBxF,MAAAA,KAAK,EAAE,MAJe;EAKtBC,MAAAA,MAAM,EAAE,MALc;EAMtBwF,MAAAA,QAAQ,EAAE;EANY,KAAxB;EAQA,QAAIC,WAAW,GAAG;EAChBC,MAAAA,aAAa,EAAE,MADC;EAEhBC,MAAAA,cAAc,EAAE,aAFA;EAGhBC,MAAAA,kBAAkB,EAAE,QAHJ;EAIhBC,MAAAA,UAAU,EAAE;EAJI,KAAlB;;EAOA,QAAI,CAAClI,IAAI,CAACoF,OAAL,CAAaxB,OAAlB,EAA2B;EACzB;EACA,YAAMuE,QAAQ,GAAGnI,IAAI,CAACiC,KAAL,CAAWmG,YAAX,CAAwB,OAAxB,CAAjB;;EACA,UAAID,QAAJ,EAAc;EACZnI,QAAAA,IAAI,CAACiC,KAAL,CAAWoG,YAAX,CAAwB,+BAAxB,EAAyDF,QAAzD;EACD;;EACD,UAAInI,IAAI,CAACgG,KAAL,CAAWG,SAAf,EAA0B;EACxB,cAAMmC,WAAW,GAAGtI,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBmG,YAAjB,CAA8B,OAA9B,CAApB;;EACA,YAAIE,WAAJ,EAAiB;EACftI,UAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBoG,YAAjB,CAA8B,+BAA9B,EAA+DC,WAA/D;EACD;EACF;EACF,KA7BI;;;EAgCL,QAAI,aAAatI,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB,UAArB,CAAjB,EAAmD;EACjDjC,MAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB;EACnBmE,QAAAA,QAAQ,EAAE;EADS,OAArB;EAGD;;EACD,QAAI,WAAWpG,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB,SAArB,CAAf,EAAgD;EAC9CjC,MAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB;EACnB6B,QAAAA,MAAM,EAAE;EADW,OAArB;EAGD,KAzCI;;;EA4CL9D,IAAAA,IAAI,CAACgG,KAAL,CAAWE,UAAX,GAAwB3G,QAAQ,CAACiB,aAAT,CAAuB,KAAvB,CAAxB;EACAR,IAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAWE,UAApB,EAAgCyB,eAAhC;EACA3H,IAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAWE,UAApB,EAAgC;EAC9B,iBAAWlG,IAAI,CAACoF,OAAL,CAAatB;EADM,KAAhC,EA9CK;EAmDL;EACA;;EACA,QAAI,YAAY,KAAKkC,KAAL,CAAWI,QAA3B,EAAqC;EACnCpG,MAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAWE,UAApB,EAAgC;EAC9B,6BAAqB,yCADS;EAE9B,qBAAa;EAFiB,OAAhC;EAID;;EAEDlG,IAAAA,IAAI,CAACgG,KAAL,CAAWE,UAAX,CAAsBmC,YAAtB,CAAmC,IAAnC,EAA0C,sBAAqBrI,IAAI,CAAC+C,UAAW,EAA/E;EACA/C,IAAAA,IAAI,CAACiC,KAAL,CAAWtB,WAAX,CAAuBX,IAAI,CAACgG,KAAL,CAAWE,UAAlC,EA7DK;;EAgEL,QAAIlG,IAAI,CAACgG,KAAL,CAAWG,SAAf,EAA0B;EACxB2B,MAAAA,WAAW,GAAG9H,IAAI,CAACqF,MAAL,CACZ;EACE,sBAAcrF,IAAI,CAACoF,OAAL,CAAa3B,OAD7B;EAEE,2BAAmBzD,IAAI,CAACoF,OAAL,CAAa1B,WAFlC;EAGE,qBAAa;EAHf,OADY,EAMZiE,eANY,EAOZG,WAPY,CAAd,CADwB;EAYzB,KAZD,MAYO;EACL9H,MAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,GAAmB1C,QAAQ,CAACiB,aAAT,CAAuB,KAAvB,CAAnB;;EACA,UAAIR,IAAI,CAACgG,KAAL,CAAWC,GAAf,EAAoB;EAClB6B,QAAAA,WAAW,GAAG9H,IAAI,CAACqF,MAAL,CACZ;EACE,iCAAuBrF,IAAI,CAACoF,OAAL,CAAa1B,WADtC;EAEE,6BAAmB1D,IAAI,CAACoF,OAAL,CAAa3B,OAFlC;EAGE,+BAAqBzD,IAAI,CAACoF,OAAL,CAAazB,SAHpC;EAIE,8BAAoB3D,IAAI,CAACgG,KAAL,CAAW0B,OAAX,IAAuB,QAAO1H,IAAI,CAACgG,KAAL,CAAWC,GAAI;EAJnE,SADY,EAOZ0B,eAPY,EAQZG,WARY,CAAd;EAUD;EACF;;EAED,QACE,cAAc9H,IAAI,CAACoF,OAAL,CAAa/B,IAA3B,IACA,YAAYrD,IAAI,CAACoF,OAAL,CAAa/B,IADzB,IAEA,oBAAoBrD,IAAI,CAACoF,OAAL,CAAa/B,IAFjC,IAGA,MAAMrD,IAAI,CAACoF,OAAL,CAAa9B,KAJrB,EAKE;EACAtD,MAAAA,IAAI,CAACgG,KAAL,CAAWI,QAAX,GAAsB,UAAtB;EACD,KAnGI;EAsGL;EACA;;;EACA,QAAI,YAAYpG,IAAI,CAACgG,KAAL,CAAWI,QAA3B,EAAqC;EACnC,YAAMmC,QAAQ,GAAGpH,UAAU,CAACnB,IAAI,CAACiC,KAAN,CAAV,CAAuBuG,MAAvB,CAA+B/B,EAAD,IAAQ;EACrD,cAAMC,MAAM,GAAG3G,QAAM,CAAC4G,gBAAP,CAAwBF,EAAxB,CAAf;EACA,cAAMgC,eAAe,GACnB/B,MAAM,CAAC,mBAAD,CAAN,IAA+BA,MAAM,CAAC,gBAAD,CAArC,IAA2DA,MAAM,CAACgC,SADpE;EAEA,cAAMC,aAAa,GAAG,eAAtB;EAEA,eACGF,eAAe,IAAI,WAAWA,eAA/B,IACAE,aAAa,CAACxI,IAAd,CAAmBuG,MAAM,CAACmB,QAAP,GAAkBnB,MAAM,CAAC,YAAD,CAAxB,GAAyCA,MAAM,CAAC,YAAD,CAAlE,CAFF;EAID,OAVgB,CAAjB;EAYA1G,MAAAA,IAAI,CAACgG,KAAL,CAAWI,QAAX,GAAsBmC,QAAQ,CAAC7G,MAAT,GAAkB,UAAlB,GAA+B,OAArD;EACD,KAtHI;;;EAyHLoG,IAAAA,WAAW,CAAC1B,QAAZ,GAAuBpG,IAAI,CAACgG,KAAL,CAAWI,QAAlC,CAzHK;;EA4HLpG,IAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAW/D,KAApB,EAA2B6F,WAA3B;EACA9H,IAAAA,IAAI,CAACgG,KAAL,CAAWE,UAAX,CAAsBvF,WAAtB,CAAkCX,IAAI,CAACgG,KAAL,CAAW/D,KAA7C,EA7HK;;EAgILjC,IAAAA,IAAI,CAAC4C,QAAL;EACA5C,IAAAA,IAAI,CAAC6C,QAAL,CAAc,IAAd,EAjIK;;EAoIL,QAAI7C,IAAI,CAACoF,OAAL,CAAaZ,MAAjB,EAAyB;EACvBxE,MAAAA,IAAI,CAACoF,OAAL,CAAaZ,MAAb,CAAoBoE,IAApB,CAAyB5I,IAAzB;EACD,KAtII;;;EAyIL,QAAI,WAAWA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB,kBAArB,CAAf,EAAyD;EACvDjC,MAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACiC,KAAd,EAAqB;EACnB,4BAAoB;EADD,OAArB;EAGD;;EAEDjC,IAAAA,IAAI,CAAC6I,iBAAL;EACD,GAhWY;;;EAmWbA,EAAAA,iBAAiB,GAAG;EAClB3H,IAAAA,YAAY,CAACM,IAAb,CAAkB;EAChBM,MAAAA,QAAQ,EAAE;EADM,KAAlB;;EAIA,QAAI,MAAMZ,YAAY,CAACQ,MAAvB,EAA+B;EAC7B3B,MAAAA,QAAM,CAAC+C,qBAAP,CAA6BrB,cAA7B;EACD;EACF,GA3WY;;;EA8WbqH,EAAAA,sBAAsB,GAAG;EACvB,UAAM9I,IAAI,GAAG,IAAb;EAEAkB,IAAAA,YAAY,CAACS,OAAb,CAAqB,CAACC,IAAD,EAAOoD,GAAP,KAAe;EAClC,UAAIpD,IAAI,CAACE,QAAL,CAAciB,UAAd,KAA6B/C,IAAI,CAAC+C,UAAtC,EAAkD;EAChD7B,QAAAA,YAAY,CAAC6H,MAAb,CAAoB/D,GAApB,EAAyB,CAAzB;EACD;EACF,KAJD;EAKD;;EAEDgE,EAAAA,OAAO,GAAG;EACR,UAAMhJ,IAAI,GAAG,IAAb;EAEAA,IAAAA,IAAI,CAAC8I,sBAAL,GAHQ;;EAMR,UAAMG,iBAAiB,GAAGjJ,IAAI,CAACiC,KAAL,CAAWmG,YAAX,CAAwB,+BAAxB,CAA1B;EACApI,IAAAA,IAAI,CAACiC,KAAL,CAAWiH,eAAX,CAA2B,+BAA3B,EAPQ;;EASR,QAAI,CAACD,iBAAL,EAAwB;EACtBjJ,MAAAA,IAAI,CAACiC,KAAL,CAAWiH,eAAX,CAA2B,OAA3B;EACD,KAFD,MAEO;EACLlJ,MAAAA,IAAI,CAACiC,KAAL,CAAWoG,YAAX,CAAwB,OAAxB,EAAiCY,iBAAjC;EACD;;EAED,QAAIjJ,IAAI,CAACgG,KAAL,CAAWG,SAAf,EAA0B;EACxB;EACA,YAAMgD,oBAAoB,GAAGnJ,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBmG,YAAjB,CAA8B,+BAA9B,CAA7B;EACApI,MAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBiH,eAAjB,CAAiC,+BAAjC,EAHwB;;EAKxB,UAAI,CAACC,oBAAL,EAA2B;EACzBnJ,QAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBiH,eAAjB,CAAiC,OAAjC;EACD,OAFD,MAEO;EACLlJ,QAAAA,IAAI,CAACgG,KAAL,CAAW/D,KAAX,CAAiBoG,YAAjB,CAA8B,OAA9B,EAAuCY,iBAAvC;EACD,OATuB;;;EAYxB,UAAIjJ,IAAI,CAACgG,KAAL,CAAWwB,WAAf,EAA4B;EAC1BxH,QAAAA,IAAI,CAACgG,KAAL,CAAWwB,WAAX,CAAuB7G,WAAvB,CAAmCX,IAAI,CAACgG,KAAL,CAAW/D,KAA9C;EACD;EACF,KA9BO;;;EAiCR,QAAIjC,IAAI,CAACgG,KAAL,CAAWE,UAAf,EAA2B;EACzBlG,MAAAA,IAAI,CAACgG,KAAL,CAAWE,UAAX,CAAsBuB,UAAtB,CAAiC2B,WAAjC,CAA6CpJ,IAAI,CAACgG,KAAL,CAAWE,UAAxD;EACD,KAnCO;;;EAsCR,QAAIlG,IAAI,CAACoF,OAAL,CAAaX,SAAjB,EAA4B;EAC1BzE,MAAAA,IAAI,CAACoF,OAAL,CAAaX,SAAb,CAAuBmE,IAAvB,CAA4B5I,IAA5B;EACD,KAxCO;;;EA2CR,WAAOA,IAAI,CAACiC,KAAL,CAAWoH,QAAlB;EACD,GApaY;EAuab;EACA;;;EACAC,EAAAA,aAAa,GAAG;;EAEhBC,EAAAA,UAAU,GAAG;EACX,UAAMvJ,IAAI,GAAG,IAAb;EAEA,UAAMwJ,IAAI,GAAGxJ,IAAI,CAACgG,KAAL,CAAWE,UAAX,CAAsBhE,qBAAtB,EAAb;EACA,UAAMuH,KAAK,GAAGD,IAAI,CAACnH,MAAnB;EACA,UAAM;EAAEiB,MAAAA;EAAF,QAAYtD,IAAI,CAACoF,OAAvB;EACA,UAAMsE,QAAQ,GAAG,aAAa1J,IAAI,CAACoF,OAAL,CAAa/B,IAA1B,IAAkC,qBAAqBrD,IAAI,CAACoF,OAAL,CAAa/B,IAArF;EACA,QAAIsG,UAAU,GAAG,CAAjB;EACA,QAAIC,OAAO,GAAGH,KAAd;EACA,QAAII,QAAQ,GAAG,CAAf,CATW;;EAYX,QAAIH,QAAJ,EAAc;EACZ;EACA,UAAI,IAAIpG,KAAR,EAAe;EACbqG,QAAAA,UAAU,GAAGrG,KAAK,GAAGiC,IAAI,CAACE,GAAL,CAASgE,KAAT,EAAgB1I,IAAhB,CAArB;;EAEA,YAAIA,IAAI,GAAG0I,KAAX,EAAkB;EAChBE,UAAAA,UAAU,IAAIrG,KAAK,IAAImG,KAAK,GAAG1I,IAAZ,CAAnB;EACD;EACF,OAND,MAMO;EACL4I,QAAAA,UAAU,GAAGrG,KAAK,IAAImG,KAAK,GAAG1I,IAAZ,CAAlB;EACD,OAVW;;;EAaZ,UAAI,IAAIuC,KAAR,EAAe;EACbsG,QAAAA,OAAO,GAAGrE,IAAI,CAACuE,GAAL,CAASH,UAAU,GAAG5I,IAAtB,CAAV;EACD,OAFD,MAEO,IAAI,IAAIuC,KAAR,EAAe;EACpBsG,QAAAA,OAAO,GAAGD,UAAU,GAAGrG,KAAb,GAAqBiC,IAAI,CAACuE,GAAL,CAASH,UAAT,CAA/B;EACD,OAFM,MAEA;EACLC,QAAAA,OAAO,IAAI,CAAC7I,IAAI,GAAG0I,KAAR,KAAkB,IAAInG,KAAtB,CAAX;EACD;;EAEDqG,MAAAA,UAAU,IAAI,CAAd;EACD,KAlCU;;;EAqCX3J,IAAAA,IAAI,CAAC+J,sBAAL,GAA8BJ,UAA9B,CArCW;;EAwCX,QAAID,QAAJ,EAAc;EACZG,MAAAA,QAAQ,GAAG,CAAC9I,IAAI,GAAG6I,OAAR,IAAmB,CAA9B;EACD,KAFD,MAEO;EACLC,MAAAA,QAAQ,GAAG,CAACJ,KAAK,GAAGG,OAAT,IAAoB,CAA/B;EACD,KA5CU;;;EA+CX5J,IAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAW/D,KAApB,EAA2B;EACzBI,MAAAA,MAAM,EAAG,GAAEuH,OAAQ,IADM;EAEzBI,MAAAA,SAAS,EAAG,GAAEH,QAAS,IAFE;EAGzBjC,MAAAA,IAAI,EAAE,YAAY5H,IAAI,CAACgG,KAAL,CAAWI,QAAvB,GAAmC,GAAEoD,IAAI,CAAC5B,IAAK,IAA/C,GAAqD,GAHlC;EAIzBxF,MAAAA,KAAK,EAAG,GAAEoH,IAAI,CAACpH,KAAM;EAJI,KAA3B,EA/CW;;EAuDX,QAAIpC,IAAI,CAACoF,OAAL,CAAaV,YAAjB,EAA+B;EAC7B1E,MAAAA,IAAI,CAACoF,OAAL,CAAaV,YAAb,CAA0BkE,IAA1B,CAA+B5I,IAA/B;EACD,KAzDU;;;EA4DX,WAAO;EACLgG,MAAAA,KAAK,EAAE;EACL3D,QAAAA,MAAM,EAAEuH,OADH;EAELI,QAAAA,SAAS,EAAEH;EAFN,OADF;EAKLI,MAAAA,SAAS,EAAET;EALN,KAAP;EAOD;;EAEDU,EAAAA,SAAS,GAAG;EACV,WAAO,KAAKC,mBAAL,IAA4B,KAAnC;EACD;;EAEDtH,EAAAA,QAAQ,CAACuH,KAAD,EAAQ;EACd,UAAMpK,IAAI,GAAG,IAAb;EAEA,UAAMwJ,IAAI,GAAGxJ,IAAI,CAACiC,KAAL,CAAWC,qBAAX,EAAb;EACA,UAAMmI,KAAK,GAAGb,IAAI,CAAClH,GAAnB;EACA,UAAMmH,KAAK,GAAGD,IAAI,CAACnH,MAAnB;EACA,UAAMqE,MAAM,GAAG,EAAf,CANc;;EASd,QAAI4D,YAAY,GAAGd,IAAnB;;EACA,QAAIxJ,IAAI,CAACoF,OAAL,CAAavB,iBAAjB,EAAoC;EAClCyG,MAAAA,YAAY,GAAGtK,IAAI,CAACoF,OAAL,CAAavB,iBAAb,CAA+B3B,qBAA/B,EAAf;EACD;;EACDlC,IAAAA,IAAI,CAACmK,mBAAL,GACE,KAAKG,YAAY,CAAC/H,MAAlB,IACA,KAAK+H,YAAY,CAACC,KADlB,IAEAD,YAAY,CAAChI,GAAb,IAAoBvB,IAFpB,IAGAuJ,YAAY,CAAC1C,IAAb,IAAqB7H,QAAM,CAAC0C,UAJ9B,CAbc;;EAoBd,QAAI2H,KAAK,GAAG,KAAH,GAAW,CAACpK,IAAI,CAACmK,mBAA1B,EAA+C;EAC7C;EACD,KAtBa;;;EAyBd,UAAMK,SAAS,GAAGjF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY4E,KAAZ,CAAlB;EACA,UAAMI,YAAY,GAAGlF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYgE,KAAK,GAAGY,KAApB,CAArB;EACA,UAAMK,QAAQ,GAAGnF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY,CAAC4E,KAAb,CAAjB;EACA,UAAMM,YAAY,GAAGpF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY4E,KAAK,GAAGZ,KAAR,GAAgB1I,IAA5B,CAArB;EACA,UAAM6J,eAAe,GAAGrF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYgE,KAAK,IAAIY,KAAK,GAAGZ,KAAR,GAAgB1I,IAApB,CAAjB,CAAxB;EACA,UAAM8J,WAAW,GAAGtF,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY,CAAC4E,KAAD,GAAStJ,IAAT,GAAgB0I,KAA5B,CAApB;EACA,UAAMqB,kBAAkB,GAAG,IAAI,KAAK,CAAC/J,IAAI,GAAGsJ,KAAR,KAAkBtJ,IAAI,GAAG0I,KAAzB,CAAL,CAA/B,CA/Bc;;EAkCd,QAAIsB,cAAc,GAAG,CAArB;;EACA,QAAItB,KAAK,GAAG1I,IAAZ,EAAkB;EAChBgK,MAAAA,cAAc,GAAG,IAAI,CAACL,QAAQ,IAAIC,YAAb,IAA6BlB,KAAlD;EACD,KAFD,MAEO,IAAIgB,YAAY,IAAI1J,IAApB,EAA0B;EAC/BgK,MAAAA,cAAc,GAAGN,YAAY,GAAG1J,IAAhC;EACD,KAFM,MAEA,IAAI6J,eAAe,IAAI7J,IAAvB,EAA6B;EAClCgK,MAAAA,cAAc,GAAGH,eAAe,GAAG7J,IAAnC;EACD,KAzCa;;;EA4Cd,QACE,cAAcf,IAAI,CAACoF,OAAL,CAAa/B,IAA3B,IACA,oBAAoBrD,IAAI,CAACoF,OAAL,CAAa/B,IADjC,IAEA,qBAAqBrD,IAAI,CAACoF,OAAL,CAAa/B,IAHpC,EAIE;EACAqD,MAAAA,MAAM,CAACgC,SAAP,GAAmB,oBAAnB;EACAhC,MAAAA,MAAM,CAACsE,OAAP,GAAiBD,cAAjB;EACD,KAnDa;;;EAsDd,QAAI,YAAY/K,IAAI,CAACoF,OAAL,CAAa/B,IAAzB,IAAiC,oBAAoBrD,IAAI,CAACoF,OAAL,CAAa/B,IAAtE,EAA4E;EAC1E,UAAI4H,KAAK,GAAG,CAAZ;;EACA,UAAI,IAAIjL,IAAI,CAACoF,OAAL,CAAa9B,KAArB,EAA4B;EAC1B2H,QAAAA,KAAK,IAAIjL,IAAI,CAACoF,OAAL,CAAa9B,KAAb,GAAqByH,cAA9B;EACD,OAFD,MAEO;EACLE,QAAAA,KAAK,IAAIjL,IAAI,CAACoF,OAAL,CAAa9B,KAAb,IAAsB,IAAIyH,cAA1B,CAAT;EACD;;EACDrE,MAAAA,MAAM,CAACgC,SAAP,GAAoB,SAAQuC,KAAM,sBAAlC;EACD,KA9Da;;;EAiEd,QAAI,aAAajL,IAAI,CAACoF,OAAL,CAAa/B,IAA1B,IAAkC,qBAAqBrD,IAAI,CAACoF,OAAL,CAAa/B,IAAxE,EAA8E;EAC5E,UAAI6H,SAAS,GAAGlL,IAAI,CAAC+J,sBAAL,GAA8Be,kBAA9C,CAD4E;;EAI5E,UAAI,eAAe9K,IAAI,CAACgG,KAAL,CAAWI,QAA9B,EAAwC;EACtC8E,QAAAA,SAAS,IAAIb,KAAb;EACD;;EAED3D,MAAAA,MAAM,CAACgC,SAAP,GAAoB,iBAAgBwC,SAAU,OAA9C;EACD;;EAEDlL,IAAAA,IAAI,CAACwG,GAAL,CAASxG,IAAI,CAACgG,KAAL,CAAW/D,KAApB,EAA2ByE,MAA3B,EA5Ec;;EA+Ed,QAAI1G,IAAI,CAACoF,OAAL,CAAavC,QAAjB,EAA2B;EACzB7C,MAAAA,IAAI,CAACoF,OAAL,CAAavC,QAAb,CAAsB+F,IAAtB,CAA2B5I,IAA3B,EAAiC;EAC/BmL,QAAAA,OAAO,EAAE3B,IADsB;EAG/BgB,QAAAA,SAH+B;EAI/BC,QAAAA,YAJ+B;EAK/BC,QAAAA,QAL+B;EAM/BC,QAAAA,YAN+B;EAO/BC,QAAAA,eAP+B;EAQ/BC,QAAAA,WAR+B;EAU/BE,QAAAA,cAV+B;EAW/BD,QAAAA;EAX+B,OAAjC;EAaD;EACF;;EAEDlI,EAAAA,QAAQ,GAAG;EACT,SAAK2G,UAAL;EACD;;EAtlBY;;;QA0lBTF,QAAQ,GAAG,UAAU+B,KAAV,EAAiBhG,OAAjB,EAA0B,GAAG0B,IAA7B,EAAmC;EAClD;EACA;EACA,MACE,aAAa,OAAOuE,WAApB,GACID,KAAK,YAAYC,WADrB,GAEID,KAAK,IACL,aAAa,OAAOA,KADpB,IAEA,SAASA,KAFT,IAGA,MAAMA,KAAK,CAAC7J,QAHZ,IAIA,aAAa,OAAO6J,KAAK,CAACE,QAPhC,EAQE;EACAF,IAAAA,KAAK,GAAG,CAACA,KAAD,CAAR;EACD;;EAED,QAAMG,GAAG,GAAGH,KAAK,CAAC1J,MAAlB;EACA,MAAIG,CAAC,GAAG,CAAR;EACA,MAAI2J,GAAJ;;EAEA,OAAK3J,CAAL,EAAQA,CAAC,GAAG0J,GAAZ,EAAiB1J,CAAC,IAAI,CAAtB,EAAyB;EACvB,QAAI,aAAa,OAAOuD,OAApB,IAA+B,gBAAgB,OAAOA,OAA1D,EAAmE;EACjE,UAAI,CAACgG,KAAK,CAACvJ,CAAD,CAAL,CAASwH,QAAd,EAAwB;EACtB+B,QAAAA,KAAK,CAACvJ,CAAD,CAAL,CAASwH,QAAT,GAAoB,IAAIrG,QAAJ,CAAaoI,KAAK,CAACvJ,CAAD,CAAlB,EAAuBuD,OAAvB,CAApB;EACD;EACF,KAJD,MAIO,IAAIgG,KAAK,CAACvJ,CAAD,CAAL,CAASwH,QAAb,EAAuB;EAC5B;EACAmC,MAAAA,GAAG,GAAGJ,KAAK,CAACvJ,CAAD,CAAL,CAASwH,QAAT,CAAkBjE,OAAlB,EAA2BqG,KAA3B,CAAiCL,KAAK,CAACvJ,CAAD,CAAL,CAASwH,QAA1C,EAAoDvC,IAApD,CAAN;EACD;;EACD,QAAI,gBAAgB,OAAO0E,GAA3B,EAAgC;EAC9B,aAAOA,GAAP;EACD;EACF;;EAED,SAAOJ,KAAP;EACD;;EACD/B,QAAQ,CAACpG,WAAT,GAAuBD,QAAvB;;ECzuBA,MAAM0I,CAAC,GAAG3L,QAAM,CAAC4L,MAAjB;;EAGA,IAAI,gBAAgB,OAAOD,CAA3B,EAA8B;EAC5B,QAAME,OAAO,GAAG,UAAU,GAAG9E,IAAb,EAAmB;EACjC+E,IAAAA,KAAK,CAACC,SAAN,CAAgBC,OAAhB,CAAwBnD,IAAxB,CAA6B9B,IAA7B,EAAmC,IAAnC;EACA,UAAMkF,GAAG,GAAG3C,QAAQ,CAACoC,KAAT,CAAe1L,QAAf,EAAuB+G,IAAvB,CAAZ;EACA,WAAO,aAAa,OAAOkF,GAApB,GAA0BA,GAA1B,GAAgC,IAAvC;EACD,GAJD;;EAKAJ,EAAAA,OAAO,CAAC3I,WAAR,GAAsBoG,QAAQ,CAACpG,WAA/B,CAN4B;;EAS5B,QAAMgJ,UAAU,GAAGP,CAAC,CAACQ,EAAF,CAAK7C,QAAxB;EACAqC,EAAAA,CAAC,CAACQ,EAAF,CAAK7C,QAAL,GAAgBuC,OAAhB;;EACAF,EAAAA,CAAC,CAACQ,EAAF,CAAK7C,QAAL,CAAc8C,UAAd,GAA2B,YAAY;EACrCT,IAAAA,CAAC,CAACQ,EAAF,CAAK7C,QAAL,GAAgB4C,UAAhB;EACA,WAAO,IAAP;EACD,GAHD;EAID;;;AAGDhL,OAAQ,CAAC,MAAM;EACboI,EAAAA,QAAQ,CAAC9J,QAAQ,CAAC6M,gBAAT,CAA0B,iBAA1B,CAAD,CAAR;EACD,CAFO,CAAR;;;;;;;;"}