UNPKG

220 kBSource Map (JSON)View Raw
1{"version":3,"file":"Lightgallery.es5.js","sources":["../../dist/lightgallery.es5.js"],"sourcesContent":["/*!\n * lightgallery | 2.7.1 | January 11th 2023\n * http://www.lightgalleryjs.com/\n * Copyright (c) 2020 Sachin Neravath;\n * @license GPLv3\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __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};\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\n/**\r\n * List of lightGallery events\r\n * All events should be documented here\r\n * Below interfaces are used to build the website documentations\r\n * */\r\nvar lGEvents = {\r\n afterAppendSlide: 'lgAfterAppendSlide',\r\n init: 'lgInit',\r\n hasVideo: 'lgHasVideo',\r\n containerResize: 'lgContainerResize',\r\n updateSlides: 'lgUpdateSlides',\r\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\r\n beforeOpen: 'lgBeforeOpen',\r\n afterOpen: 'lgAfterOpen',\r\n slideItemLoad: 'lgSlideItemLoad',\r\n beforeSlide: 'lgBeforeSlide',\r\n afterSlide: 'lgAfterSlide',\r\n posterClick: 'lgPosterClick',\r\n dragStart: 'lgDragStart',\r\n dragMove: 'lgDragMove',\r\n dragEnd: 'lgDragEnd',\r\n beforeNextSlide: 'lgBeforeNextSlide',\r\n beforePrevSlide: 'lgBeforePrevSlide',\r\n beforeClose: 'lgBeforeClose',\r\n afterClose: 'lgAfterClose',\r\n rotateLeft: 'lgRotateLeft',\r\n rotateRight: 'lgRotateRight',\r\n flipHorizontal: 'lgFlipHorizontal',\r\n flipVertical: 'lgFlipVertical',\r\n autoplay: 'lgAutoplay',\r\n autoplayStart: 'lgAutoplayStart',\r\n autoplayStop: 'lgAutoplayStop',\r\n};\n\nvar lightGalleryCoreSettings = {\r\n mode: 'lg-slide',\r\n easing: 'ease',\r\n speed: 400,\r\n licenseKey: '0000-0000-000-0000',\r\n height: '100%',\r\n width: '100%',\r\n addClass: '',\r\n startClass: 'lg-start-zoom',\r\n backdropDuration: 300,\r\n container: '',\r\n startAnimationDuration: 400,\r\n zoomFromOrigin: true,\r\n hideBarsDelay: 0,\r\n showBarsAfter: 10000,\r\n slideDelay: 0,\r\n supportLegacyBrowser: true,\r\n allowMediaOverlap: false,\r\n videoMaxSize: '1280-720',\r\n loadYouTubePoster: true,\r\n defaultCaptionHeight: 0,\r\n ariaLabelledby: '',\r\n ariaDescribedby: '',\r\n resetScrollPosition: true,\r\n hideScrollbar: false,\r\n closable: true,\r\n swipeToClose: true,\r\n closeOnTap: true,\r\n showCloseIcon: true,\r\n showMaximizeIcon: false,\r\n loop: true,\r\n escKey: true,\r\n keyPress: true,\r\n trapFocus: true,\r\n controls: true,\r\n slideEndAnimation: true,\r\n hideControlOnEnd: false,\r\n mousewheel: false,\r\n getCaptionFromTitleOrAlt: true,\r\n appendSubHtmlTo: '.lg-sub-html',\r\n subHtmlSelectorRelative: false,\r\n preload: 2,\r\n numberOfSlideItemsInDom: 10,\r\n selector: '',\r\n selectWithin: '',\r\n nextHtml: '',\r\n prevHtml: '',\r\n index: 0,\r\n iframeWidth: '100%',\r\n iframeHeight: '100%',\r\n iframeMaxWidth: '100%',\r\n iframeMaxHeight: '100%',\r\n download: true,\r\n counter: true,\r\n appendCounterTo: '.lg-toolbar',\r\n swipeThreshold: 50,\r\n enableSwipe: true,\r\n enableDrag: true,\r\n dynamic: false,\r\n dynamicEl: [],\r\n extraProps: [],\r\n exThumbImage: '',\r\n isMobile: undefined,\r\n mobileSettings: {\r\n controls: false,\r\n showCloseIcon: false,\r\n download: false,\r\n },\r\n plugins: [],\r\n strings: {\r\n closeGallery: 'Close gallery',\r\n toggleMaximize: 'Toggle maximize',\r\n previousSlide: 'Previous slide',\r\n nextSlide: 'Next slide',\r\n download: 'Download',\r\n playVideo: 'Play video',\r\n },\r\n};\n\nfunction initLgPolyfills() {\r\n (function () {\r\n if (typeof window.CustomEvent === 'function')\r\n return false;\r\n function CustomEvent(event, params) {\r\n params = params || {\r\n bubbles: false,\r\n cancelable: false,\r\n detail: null,\r\n };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n (function () {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n }\r\n })();\r\n}\r\nvar lgQuery = /** @class */ (function () {\r\n function lgQuery(selector) {\r\n this.cssVenderPrefixes = [\r\n 'TransitionDuration',\r\n 'TransitionTimingFunction',\r\n 'Transform',\r\n 'Transition',\r\n ];\r\n this.selector = this._getSelector(selector);\r\n this.firstElement = this._getFirstEl();\r\n return this;\r\n }\r\n lgQuery.generateUUID = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n };\r\n lgQuery.prototype._getSelector = function (selector, context) {\r\n if (context === void 0) { context = document; }\r\n if (typeof selector !== 'string') {\r\n return selector;\r\n }\r\n context = context || document;\r\n var fl = selector.substring(0, 1);\r\n if (fl === '#') {\r\n return context.querySelector(selector);\r\n }\r\n else {\r\n return context.querySelectorAll(selector);\r\n }\r\n };\r\n lgQuery.prototype._each = function (func) {\r\n if (!this.selector) {\r\n return this;\r\n }\r\n if (this.selector.length !== undefined) {\r\n [].forEach.call(this.selector, func);\r\n }\r\n else {\r\n func(this.selector, 0);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\r\n // prettier-ignore\r\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\r\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\r\n el.style['webkit' + property] = value;\r\n el.style['moz' + property] = value;\r\n el.style['ms' + property] = value;\r\n el.style['o' + property] = value;\r\n }\r\n else {\r\n el.style[property] = value;\r\n }\r\n };\r\n lgQuery.prototype._getFirstEl = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return this.selector[0];\r\n }\r\n else {\r\n return this.selector;\r\n }\r\n };\r\n lgQuery.prototype.isEventMatched = function (event, eventName) {\r\n var eventNamespace = eventName.split('.');\r\n return event\r\n .split('.')\r\n .filter(function (e) { return e; })\r\n .every(function (e) {\r\n return eventNamespace.indexOf(e) !== -1;\r\n });\r\n };\r\n lgQuery.prototype.attr = function (attr, value) {\r\n if (value === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.getAttribute(attr);\r\n }\r\n this._each(function (el) {\r\n el.setAttribute(attr, value);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.find = function (selector) {\r\n return $LG(this._getSelector(selector, this.selector));\r\n };\r\n lgQuery.prototype.first = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return $LG(this.selector[0]);\r\n }\r\n else {\r\n return $LG(this.selector);\r\n }\r\n };\r\n lgQuery.prototype.eq = function (index) {\r\n return $LG(this.selector[index]);\r\n };\r\n lgQuery.prototype.parent = function () {\r\n return $LG(this.selector.parentElement);\r\n };\r\n lgQuery.prototype.get = function () {\r\n return this._getFirstEl();\r\n };\r\n lgQuery.prototype.removeAttr = function (attributes) {\r\n var attrs = attributes.split(' ');\r\n this._each(function (el) {\r\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.wrap = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var wrapper = document.createElement('div');\r\n wrapper.className = className;\r\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\r\n this.firstElement.parentNode.removeChild(this.firstElement);\r\n wrapper.appendChild(this.firstElement);\r\n return this;\r\n };\r\n lgQuery.prototype.addClass = function (classNames) {\r\n if (classNames === void 0) { classNames = ''; }\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.add(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.removeClass = function (classNames) {\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.remove(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.hasClass = function (className) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.classList.contains(className);\r\n };\r\n lgQuery.prototype.hasAttribute = function (attribute) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.hasAttribute(attribute);\r\n };\r\n lgQuery.prototype.toggleClass = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n if (this.hasClass(className)) {\r\n this.removeClass(className);\r\n }\r\n else {\r\n this.addClass(className);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype.css = function (property, value) {\r\n var _this = this;\r\n this._each(function (el) {\r\n _this._setCssVendorPrefix(el, property, value);\r\n });\r\n return this;\r\n };\r\n // Need to pass separate namespaces for separate elements\r\n lgQuery.prototype.on = function (events, listener) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n events.split(' ').forEach(function (event) {\r\n if (!Array.isArray(lgQuery.eventListeners[event])) {\r\n lgQuery.eventListeners[event] = [];\r\n }\r\n lgQuery.eventListeners[event].push(listener);\r\n _this.selector.addEventListener(event.split('.')[0], listener);\r\n });\r\n return this;\r\n };\r\n // @todo - test this\r\n lgQuery.prototype.once = function (event, listener) {\r\n var _this = this;\r\n this.on(event, function () {\r\n _this.off(event);\r\n listener(event);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.off = function (event) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\r\n if (_this.isEventMatched(event, eventName)) {\r\n lgQuery.eventListeners[eventName].forEach(function (listener) {\r\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\r\n });\r\n lgQuery.eventListeners[eventName] = [];\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.trigger = function (event, detail) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var customEvent = new CustomEvent(event.split('.')[0], {\r\n detail: detail || null,\r\n });\r\n this.firstElement.dispatchEvent(customEvent);\r\n return this;\r\n };\r\n // Does not support IE\r\n lgQuery.prototype.load = function (url) {\r\n var _this = this;\r\n fetch(url)\r\n .then(function (res) { return res.text(); })\r\n .then(function (html) {\r\n _this.selector.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.html = function (html) {\r\n if (html === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.innerHTML;\r\n }\r\n this._each(function (el) {\r\n el.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.append = function (html) {\r\n this._each(function (el) {\r\n if (typeof html === 'string') {\r\n el.insertAdjacentHTML('beforeend', html);\r\n }\r\n else {\r\n el.appendChild(html);\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.prepend = function (html) {\r\n this._each(function (el) {\r\n el.insertAdjacentHTML('afterbegin', html);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.remove = function () {\r\n this._each(function (el) {\r\n el.parentNode.removeChild(el);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.empty = function () {\r\n this._each(function (el) {\r\n el.innerHTML = '';\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.scrollTop = function (scrollTop) {\r\n if (scrollTop !== undefined) {\r\n document.body.scrollTop = scrollTop;\r\n document.documentElement.scrollTop = scrollTop;\r\n return this;\r\n }\r\n else {\r\n return (window.pageYOffset ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\r\n if (scrollLeft !== undefined) {\r\n document.body.scrollLeft = scrollLeft;\r\n document.documentElement.scrollLeft = scrollLeft;\r\n return this;\r\n }\r\n else {\r\n return (window.pageXOffset ||\r\n document.documentElement.scrollLeft ||\r\n document.body.scrollLeft ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.offset = function () {\r\n if (!this.firstElement) {\r\n return {\r\n left: 0,\r\n top: 0,\r\n };\r\n }\r\n var rect = this.firstElement.getBoundingClientRect();\r\n var bodyMarginLeft = $LG('body').style().marginLeft;\r\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\r\n return {\r\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\r\n top: rect.top + this.scrollTop(),\r\n };\r\n };\r\n lgQuery.prototype.style = function () {\r\n if (!this.firstElement) {\r\n return {};\r\n }\r\n return (this.firstElement.currentStyle ||\r\n window.getComputedStyle(this.firstElement));\r\n };\r\n // Width without padding and border even if box-sizing is used.\r\n lgQuery.prototype.width = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientWidth -\r\n parseFloat(style.paddingLeft) -\r\n parseFloat(style.paddingRight));\r\n };\r\n // Height without padding and border even if box-sizing is used.\r\n lgQuery.prototype.height = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientHeight -\r\n parseFloat(style.paddingTop) -\r\n parseFloat(style.paddingBottom));\r\n };\r\n lgQuery.eventListeners = {};\r\n return lgQuery;\r\n}());\r\nfunction $LG(selector) {\r\n initLgPolyfills();\r\n return new lgQuery(selector);\r\n}\n\nvar defaultDynamicOptions = [\r\n 'src',\r\n 'sources',\r\n 'subHtml',\r\n 'subHtmlUrl',\r\n 'html',\r\n 'video',\r\n 'poster',\r\n 'slideName',\r\n 'responsive',\r\n 'srcset',\r\n 'sizes',\r\n 'iframe',\r\n 'downloadUrl',\r\n 'download',\r\n 'width',\r\n 'facebookShareUrl',\r\n 'tweetText',\r\n 'iframeTitle',\r\n 'twitterShareUrl',\r\n 'pinterestShareUrl',\r\n 'pinterestText',\r\n 'fbHtml',\r\n 'disqusIdentifier',\r\n 'disqusUrl',\r\n];\r\n// Convert html data-attribute to camalcase\r\nfunction convertToData(attr) {\r\n // FInd a way for lgsize\r\n if (attr === 'href') {\r\n return 'src';\r\n }\r\n attr = attr.replace('data-', '');\r\n attr = attr.charAt(0).toLowerCase() + attr.slice(1);\r\n attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\r\n return attr;\r\n}\r\nvar utils = {\r\n /**\r\n * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option\r\n */\r\n getSize: function (el, container, spacing, defaultLgSize) {\r\n if (spacing === void 0) { spacing = 0; }\r\n var LGel = $LG(el);\r\n var lgSize = LGel.attr('data-lg-size') || defaultLgSize;\r\n if (!lgSize) {\r\n return;\r\n }\r\n var isResponsiveSizes = lgSize.split(',');\r\n // if at-least two viewport sizes are available\r\n if (isResponsiveSizes[1]) {\r\n var wWidth = window.innerWidth;\r\n for (var i = 0; i < isResponsiveSizes.length; i++) {\r\n var size_1 = isResponsiveSizes[i];\r\n var responsiveWidth = parseInt(size_1.split('-')[2], 10);\r\n if (responsiveWidth > wWidth) {\r\n lgSize = size_1;\r\n break;\r\n }\r\n // take last item as last option\r\n if (i === isResponsiveSizes.length - 1) {\r\n lgSize = size_1;\r\n }\r\n }\r\n }\r\n var size = lgSize.split('-');\r\n var width = parseInt(size[0], 10);\r\n var height = parseInt(size[1], 10);\r\n var cWidth = container.width();\r\n var cHeight = container.height() - spacing;\r\n var maxWidth = Math.min(cWidth, width);\r\n var maxHeight = Math.min(cHeight, height);\r\n var ratio = Math.min(maxWidth / width, maxHeight / height);\r\n return { width: width * ratio, height: height * ratio };\r\n },\r\n /**\r\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\r\n * @param {jQuery Element}\r\n * @returns {String} Transform CSS string\r\n */\r\n getTransform: function (el, container, top, bottom, imageSize) {\r\n if (!imageSize) {\r\n return;\r\n }\r\n var LGel = $LG(el).find('img').first();\r\n if (!LGel.get()) {\r\n return;\r\n }\r\n var containerRect = container.get().getBoundingClientRect();\r\n var wWidth = containerRect.width;\r\n // using innerWidth to include mobile safari bottom bar\r\n var wHeight = container.height() - (top + bottom);\r\n var elWidth = LGel.width();\r\n var elHeight = LGel.height();\r\n var elStyle = LGel.style();\r\n var x = (wWidth - elWidth) / 2 -\r\n LGel.offset().left +\r\n (parseFloat(elStyle.paddingLeft) || 0) +\r\n (parseFloat(elStyle.borderLeft) || 0) +\r\n $LG(window).scrollLeft() +\r\n containerRect.left;\r\n var y = (wHeight - elHeight) / 2 -\r\n LGel.offset().top +\r\n (parseFloat(elStyle.paddingTop) || 0) +\r\n (parseFloat(elStyle.borderTop) || 0) +\r\n $LG(window).scrollTop() +\r\n top;\r\n var scX = elWidth / imageSize.width;\r\n var scY = elHeight / imageSize.height;\r\n var transform = 'translate3d(' +\r\n (x *= -1) +\r\n 'px, ' +\r\n (y *= -1) +\r\n 'px, 0) scale3d(' +\r\n scX +\r\n ', ' +\r\n scY +\r\n ', 1)';\r\n return transform;\r\n },\r\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\r\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\r\n return \"<div class=\\\"lg-video-cont lg-has-iframe\\\" style=\\\"width:\" + iframeWidth + \"; max-width:\" + iframeMaxWidth + \"; height: \" + iframeHeight + \"; max-height:\" + iframeMaxHeight + \"\\\">\\n <iframe class=\\\"lg-object\\\" frameborder=\\\"0\\\" \" + title + \" src=\\\"\" + src + \"\\\" allowfullscreen=\\\"true\\\"></iframe>\\n </div>\";\r\n },\r\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\r\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\r\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\r\n var imgMarkup = \"<img \" + altAttr + \" \" + srcsetAttr + \" \" + sizesAttr + \" class=\\\"lg-object lg-image\\\" data-index=\\\"\" + index + \"\\\" src=\\\"\" + src + \"\\\" />\";\r\n var sourceTag = '';\r\n if (sources) {\r\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\r\n sourceTag = sourceObj.map(function (source) {\r\n var attrs = '';\r\n Object.keys(source).forEach(function (key) {\r\n // Do not remove the first space as it is required to separate the attributes\r\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\r\n });\r\n return \"<source \" + attrs + \"></source>\";\r\n });\r\n }\r\n return \"\" + sourceTag + imgMarkup;\r\n },\r\n // Get src from responsive src\r\n getResponsiveSrc: function (srcItms) {\r\n var rsWidth = [];\r\n var rsSrc = [];\r\n var src = '';\r\n for (var i = 0; i < srcItms.length; i++) {\r\n var _src = srcItms[i].split(' ');\r\n // Manage empty space\r\n if (_src[0] === '') {\r\n _src.splice(0, 1);\r\n }\r\n rsSrc.push(_src[0]);\r\n rsWidth.push(_src[1]);\r\n }\r\n var wWidth = window.innerWidth;\r\n for (var j = 0; j < rsWidth.length; j++) {\r\n if (parseInt(rsWidth[j], 10) > wWidth) {\r\n src = rsSrc[j];\r\n break;\r\n }\r\n }\r\n return src;\r\n },\r\n isImageLoaded: function (img) {\r\n if (!img)\r\n return false;\r\n // During the onload event, IE correctly identifies any images that\r\n // weren’t downloaded as not complete. Others should too. Gecko-based\r\n // browsers act like NS4 in that they report this incorrectly.\r\n if (!img.complete) {\r\n return false;\r\n }\r\n // However, they do have two very useful properties: naturalWidth and\r\n // naturalHeight. These give the true size of the image. If it failed\r\n // to load, either of these should be zero.\r\n if (img.naturalWidth === 0) {\r\n return false;\r\n }\r\n // No other way of checking: assume it’s ok.\r\n return true;\r\n },\r\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {\r\n var videoClass = '';\r\n if (_isVideo && _isVideo.youtube) {\r\n videoClass = 'lg-has-youtube';\r\n }\r\n else if (_isVideo && _isVideo.vimeo) {\r\n videoClass = 'lg-has-vimeo';\r\n }\r\n else {\r\n videoClass = 'lg-has-html5';\r\n }\r\n return \"<div class=\\\"lg-video-cont \" + videoClass + \"\\\" style=\\\"\" + videoContStyle + \"\\\">\\n <div class=\\\"lg-video-play-button\\\">\\n <svg\\n viewBox=\\\"0 0 20 20\\\"\\n preserveAspectRatio=\\\"xMidYMid\\\"\\n focusable=\\\"false\\\"\\n aria-labelledby=\\\"\" + playVideoString + \"\\\"\\n role=\\\"img\\\"\\n class=\\\"lg-video-play-icon\\\"\\n >\\n <title>\" + playVideoString + \"</title>\\n <polygon class=\\\"lg-video-play-icon-inner\\\" points=\\\"1,0 20,10 1,20\\\"></polygon>\\n </svg>\\n <svg class=\\\"lg-video-play-icon-bg\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle></svg>\\n <svg class=\\\"lg-video-play-icon-circle\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle>\\n </svg>\\n </div>\\n \" + (dummyImg || '') + \"\\n <img class=\\\"lg-object lg-video-poster\\\" src=\\\"\" + _poster + \"\\\" />\\n </div>\";\r\n },\r\n getFocusableElements: function (container) {\r\n var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type=\"text\"]:not([disabled]), input[type=\"radio\"]:not([disabled]), input[type=\"checkbox\"]:not([disabled]), select:not([disabled])');\r\n var visibleElements = [].filter.call(elements, function (element) {\r\n var style = window.getComputedStyle(element);\r\n return style.display !== 'none' && style.visibility !== 'hidden';\r\n });\r\n return visibleElements;\r\n },\r\n /**\r\n * @desc Create dynamic elements array from gallery items when dynamic option is false\r\n * It helps to avoid frequent DOM interaction\r\n * and avoid multiple checks for dynamic elments\r\n *\r\n * @returns {Array} dynamicEl\r\n */\r\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\r\n var dynamicElements = [];\r\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\r\n [].forEach.call(items, function (item) {\r\n var dynamicEl = {};\r\n for (var i = 0; i < item.attributes.length; i++) {\r\n var attr = item.attributes[i];\r\n if (attr.specified) {\r\n var dynamicAttr = convertToData(attr.name);\r\n var label = '';\r\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\r\n label = dynamicAttr;\r\n }\r\n if (label) {\r\n dynamicEl[label] = attr.value;\r\n }\r\n }\r\n }\r\n var currentItem = $LG(item);\r\n var alt = currentItem.find('img').first().attr('alt');\r\n var title = currentItem.attr('title');\r\n var thumb = exThumbImage\r\n ? currentItem.attr(exThumbImage)\r\n : currentItem.find('img').first().attr('src');\r\n dynamicEl.thumb = thumb;\r\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\r\n dynamicEl.subHtml = title || alt || '';\r\n }\r\n dynamicEl.alt = alt || title || '';\r\n dynamicElements.push(dynamicEl);\r\n });\r\n return dynamicElements;\r\n },\r\n isMobile: function () {\r\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n },\r\n /**\r\n * @desc Check the given src is video\r\n * @param {String} src\r\n * @return {Object} video type\r\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\r\n *\r\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\r\n */\r\n isVideo: function (src, isHTML5VIdeo, index) {\r\n if (!src) {\r\n if (isHTML5VIdeo) {\r\n return {\r\n html5: true,\r\n };\r\n }\r\n else {\r\n console.error('lightGallery :- data-src is not provided on slide item ' +\r\n (index + 1) +\r\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\r\n return;\r\n }\r\n }\r\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\r\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\r\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\r\n if (youtube) {\r\n return {\r\n youtube: youtube,\r\n };\r\n }\r\n else if (vimeo) {\r\n return {\r\n vimeo: vimeo,\r\n };\r\n }\r\n else if (wistia) {\r\n return {\r\n wistia: wistia,\r\n };\r\n }\r\n },\r\n};\n\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\r\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\r\n// Unique id for each gallery\r\nvar lgId = 0;\r\nvar LightGallery = /** @class */ (function () {\r\n function LightGallery(element, options) {\r\n this.lgOpened = false;\r\n this.index = 0;\r\n // lightGallery modules\r\n this.plugins = [];\r\n // false when lightGallery load first slide content;\r\n this.lGalleryOn = false;\r\n // True when a slide animation is in progress\r\n this.lgBusy = false;\r\n this.currentItemsInDom = [];\r\n // Scroll top value before lightGallery is opened\r\n this.prevScrollTop = 0;\r\n this.bodyPaddingRight = 0;\r\n this.isDummyImageRemoved = false;\r\n this.dragOrSwipeEnabled = false;\r\n this.mediaContainerPosition = {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n if (!element) {\r\n return this;\r\n }\r\n lgId++;\r\n this.lgId = lgId;\r\n this.el = element;\r\n this.LGel = $LG(element);\r\n this.generateSettings(options);\r\n this.buildModules();\r\n // When using dynamic mode, ensure dynamicEl is an array\r\n if (this.settings.dynamic &&\r\n this.settings.dynamicEl !== undefined &&\r\n !Array.isArray(this.settings.dynamicEl)) {\r\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\r\n }\r\n this.galleryItems = this.getItems();\r\n this.normalizeSettings();\r\n // Gallery items\r\n this.init();\r\n this.validateLicense();\r\n return this;\r\n }\r\n LightGallery.prototype.generateSettings = function (options) {\r\n // lightGallery settings\r\n this.settings = __assign(__assign({}, lightGalleryCoreSettings), options);\r\n if (this.settings.isMobile &&\r\n typeof this.settings.isMobile === 'function'\r\n ? this.settings.isMobile()\r\n : utils.isMobile()) {\r\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\r\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\r\n }\r\n };\r\n LightGallery.prototype.normalizeSettings = function () {\r\n if (this.settings.slideEndAnimation) {\r\n this.settings.hideControlOnEnd = false;\r\n }\r\n if (!this.settings.closable) {\r\n this.settings.swipeToClose = false;\r\n }\r\n // And reset it on close to get the correct value next time\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n // At the moment, Zoom from image doesn't support dynamic options\r\n // @todo add zoomFromOrigin support for dynamic images\r\n if (this.settings.dynamic) {\r\n this.zoomFromOrigin = false;\r\n }\r\n if (!this.settings.container) {\r\n this.settings.container = document.body;\r\n }\r\n // settings.preload should not be grater than $item.length\r\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\r\n };\r\n LightGallery.prototype.init = function () {\r\n var _this = this;\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.buildStructure();\r\n this.LGel.trigger(lGEvents.init, {\r\n instance: this,\r\n });\r\n if (this.settings.keyPress) {\r\n this.keyPress();\r\n }\r\n setTimeout(function () {\r\n _this.enableDrag();\r\n _this.enableSwipe();\r\n _this.triggerPosterClick();\r\n }, 50);\r\n this.arrow();\r\n if (this.settings.mousewheel) {\r\n this.mousewheel();\r\n }\r\n if (!this.settings.dynamic) {\r\n this.openGalleryOnItemClick();\r\n }\r\n };\r\n LightGallery.prototype.openGalleryOnItemClick = function () {\r\n var _this = this;\r\n var _loop_1 = function (index) {\r\n var element = this_1.items[index];\r\n var $element = $LG(element);\r\n // Using different namespace for click because click event should not unbind if selector is same object('this')\r\n // @todo manage all event listners - should have namespace that represent element\r\n var uuid = lgQuery.generateUUID();\r\n $element\r\n .attr('data-lg-id', uuid)\r\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\r\n e.preventDefault();\r\n var currentItemIndex = _this.settings.index || index;\r\n _this.openGallery(currentItemIndex, element);\r\n });\r\n };\r\n var this_1 = this;\r\n // Using for loop instead of using bubbling as the items can be any html element.\r\n for (var index = 0; index < this.items.length; index++) {\r\n _loop_1(index);\r\n }\r\n };\r\n /**\r\n * Module constructor\r\n * Modules are build incrementally.\r\n * Gallery should be opened only once all the modules are initialized.\r\n * use moduleBuildTimeout to make sure this\r\n */\r\n LightGallery.prototype.buildModules = function () {\r\n var _this = this;\r\n this.settings.plugins.forEach(function (plugin) {\r\n _this.plugins.push(new plugin(_this, $LG));\r\n });\r\n };\r\n LightGallery.prototype.validateLicense = function () {\r\n if (!this.settings.licenseKey) {\r\n console.error('Please provide a valid license key');\r\n }\r\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\r\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\r\n }\r\n };\r\n LightGallery.prototype.getSlideItem = function (index) {\r\n return $LG(this.getSlideItemId(index));\r\n };\r\n LightGallery.prototype.getSlideItemId = function (index) {\r\n return \"#lg-item-\" + this.lgId + \"-\" + index;\r\n };\r\n LightGallery.prototype.getIdName = function (id) {\r\n return id + \"-\" + this.lgId;\r\n };\r\n LightGallery.prototype.getElementById = function (id) {\r\n return $LG(\"#\" + this.getIdName(id));\r\n };\r\n LightGallery.prototype.manageSingleSlideClassName = function () {\r\n if (this.galleryItems.length < 2) {\r\n this.outer.addClass('lg-single-item');\r\n }\r\n else {\r\n this.outer.removeClass('lg-single-item');\r\n }\r\n };\r\n LightGallery.prototype.buildStructure = function () {\r\n var _this = this;\r\n var container = this.$container && this.$container.get();\r\n if (container) {\r\n return;\r\n }\r\n var controls = '';\r\n var subHtmlCont = '';\r\n // Create controls\r\n if (this.settings.controls) {\r\n controls = \"<button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-prev') + \"\\\" aria-label=\\\"\" + this.settings.strings['previousSlide'] + \"\\\" class=\\\"lg-prev lg-icon\\\"> \" + this.settings.prevHtml + \" </button>\\n <button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-next') + \"\\\" aria-label=\\\"\" + this.settings.strings['nextSlide'] + \"\\\" class=\\\"lg-next lg-icon\\\"> \" + this.settings.nextHtml + \" </button>\";\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n subHtmlCont =\r\n '<div class=\"lg-sub-html\" role=\"status\" aria-live=\"polite\"></div>';\r\n }\r\n var addClasses = '';\r\n if (this.settings.allowMediaOverlap) {\r\n // Do not remove space before last single quote\r\n addClasses += 'lg-media-overlap ';\r\n }\r\n var ariaLabelledby = this.settings.ariaLabelledby\r\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\r\n : '';\r\n var ariaDescribedby = this.settings.ariaDescribedby\r\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\r\n : '';\r\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\r\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\r\n ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['closeGallery'] + \"\\\" id=\\\"\" + this.getIdName('lg-close') + \"\\\" class=\\\"lg-close lg-icon\\\"></button>\"\r\n : '';\r\n var maximizeIcon = this.settings.showMaximizeIcon\r\n ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['toggleMaximize'] + \"\\\" id=\\\"\" + this.getIdName('lg-maximize') + \"\\\" class=\\\"lg-maximize lg-icon\\\"></button>\"\r\n : '';\r\n var template = \"\\n <div class=\\\"\" + containerClassName + \"\\\" id=\\\"\" + this.getIdName('lg-container') + \"\\\" tabindex=\\\"-1\\\" aria-modal=\\\"true\\\" \" + ariaLabelledby + \" \" + ariaDescribedby + \" role=\\\"dialog\\\"\\n >\\n <div id=\\\"\" + this.getIdName('lg-backdrop') + \"\\\" class=\\\"lg-backdrop\\\"></div>\\n\\n <div id=\\\"\" + this.getIdName('lg-outer') + \"\\\" class=\\\"lg-outer lg-use-css3 lg-css3 lg-hide-items \" + addClasses + \" \\\">\\n\\n <div id=\\\"\" + this.getIdName('lg-content') + \"\\\" class=\\\"lg-content\\\">\\n <div id=\\\"\" + this.getIdName('lg-inner') + \"\\\" class=\\\"lg-inner\\\">\\n </div>\\n \" + controls + \"\\n </div>\\n <div id=\\\"\" + this.getIdName('lg-toolbar') + \"\\\" class=\\\"lg-toolbar lg-group\\\">\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n </div>\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\r\n ? subHtmlCont\r\n : '') + \"\\n <div id=\\\"\" + this.getIdName('lg-components') + \"\\\" class=\\\"lg-components\\\">\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\r\n ? subHtmlCont\r\n : '') + \"\\n </div>\\n </div>\\n </div>\\n \";\r\n $LG(this.settings.container).append(template);\r\n if (document.body !== this.settings.container) {\r\n $LG(this.settings.container).css('position', 'relative');\r\n }\r\n this.outer = this.getElementById('lg-outer');\r\n this.$lgComponents = this.getElementById('lg-components');\r\n this.$backdrop = this.getElementById('lg-backdrop');\r\n this.$container = this.getElementById('lg-container');\r\n this.$inner = this.getElementById('lg-inner');\r\n this.$content = this.getElementById('lg-content');\r\n this.$toolbar = this.getElementById('lg-toolbar');\r\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\r\n var outerClassNames = this.settings.mode + \" \";\r\n this.manageSingleSlideClassName();\r\n if (this.settings.enableDrag) {\r\n outerClassNames += 'lg-grab ';\r\n }\r\n this.outer.addClass(outerClassNames);\r\n this.$inner.css('transition-timing-function', this.settings.easing);\r\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\r\n if (this.settings.download) {\r\n this.$toolbar.append(\"<a id=\\\"\" + this.getIdName('lg-download') + \"\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" aria-label=\\\"\" + this.settings.strings['download'] + \"\\\" download class=\\\"lg-download lg-icon\\\"></a>\");\r\n }\r\n this.counter();\r\n $LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\r\n _this.refreshOnResize();\r\n });\r\n this.hideBars();\r\n this.manageCloseGallery();\r\n this.toggleMaximize();\r\n this.initModules();\r\n };\r\n LightGallery.prototype.refreshOnResize = function () {\r\n if (this.lgOpened) {\r\n var currentGalleryItem = this.galleryItems[this.index];\r\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\r\n this.currentImageSize = utils.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n if (__slideVideoInfo) {\r\n this.resizeVideoSlide(this.index, this.currentImageSize);\r\n }\r\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n this.outer\r\n .find('.lg-current .lg-dummy-img')\r\n .first()\r\n .attr('style', imgStyle);\r\n }\r\n this.LGel.trigger(lGEvents.containerResize);\r\n }\r\n };\r\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\r\n var lgVideoStyle = this.getVideoContStyle(imageSize);\r\n var currentSlide = this.getSlideItem(index);\r\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\r\n };\r\n /**\r\n * Update slides dynamically.\r\n * Add, edit or delete slides dynamically when lightGallery is opened.\r\n * Modify the current gallery items and pass it via updateSlides method\r\n * @note\r\n * - Do not mutate existing lightGallery items directly.\r\n * - Always pass new list of gallery items\r\n * - You need to take care of thumbnails outside the gallery if any\r\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\r\n * @param items Gallery items\r\n * @param index After the update operation, which slide gallery should navigate to\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n *\r\n * // Adding slides dynamically\r\n * let galleryItems = [\r\n * // Access existing lightGallery items\r\n * // galleryItems are automatically generated internally from the gallery HTML markup\r\n * // or directly from galleryItems when dynamic gallery is used\r\n * ...plugin.galleryItems,\r\n * ...[\r\n * {\r\n * src: 'img/img-1.png',\r\n * thumb: 'img/thumb1.png',\r\n * },\r\n * ],\r\n * ];\r\n * plugin.updateSlides(\r\n * galleryItems,\r\n * plugin.index,\r\n * );\r\n *\r\n *\r\n * // Remove slides dynamically\r\n * galleryItems = JSON.parse(\r\n * JSON.stringify(updateSlideInstance.galleryItems),\r\n * );\r\n * galleryItems.shift();\r\n * updateSlideInstance.updateSlides(galleryItems, 1);\r\n * @see <a href=\"/demos/update-slides/\">Demo</a>\r\n */\r\n LightGallery.prototype.updateSlides = function (items, index) {\r\n if (this.index > items.length - 1) {\r\n this.index = items.length - 1;\r\n }\r\n if (items.length === 1) {\r\n this.index = 0;\r\n }\r\n if (!items.length) {\r\n this.closeGallery();\r\n return;\r\n }\r\n var currentSrc = this.galleryItems[index].src;\r\n this.galleryItems = items;\r\n this.updateControls();\r\n this.$inner.empty();\r\n this.currentItemsInDom = [];\r\n var _index = 0;\r\n // Find the current index based on source value of the slide\r\n this.galleryItems.some(function (galleryItem, itemIndex) {\r\n if (galleryItem.src === currentSrc) {\r\n _index = itemIndex;\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\r\n this.loadContent(_index, true);\r\n this.getSlideItem(_index).addClass('lg-current');\r\n this.index = _index;\r\n this.updateCurrentCounter(_index);\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n // Get gallery items based on multiple conditions\r\n LightGallery.prototype.getItems = function () {\r\n // Gallery items\r\n this.items = [];\r\n if (!this.settings.dynamic) {\r\n if (this.settings.selector === 'this') {\r\n this.items.push(this.el);\r\n }\r\n else if (this.settings.selector) {\r\n if (typeof this.settings.selector === 'string') {\r\n if (this.settings.selectWithin) {\r\n var selectWithin = $LG(this.settings.selectWithin);\r\n this.items = selectWithin\r\n .find(this.settings.selector)\r\n .get();\r\n }\r\n else {\r\n this.items = this.el.querySelectorAll(this.settings.selector);\r\n }\r\n }\r\n else {\r\n this.items = this.settings.selector;\r\n }\r\n }\r\n else {\r\n this.items = this.el.children;\r\n }\r\n return utils.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\r\n }\r\n else {\r\n return this.settings.dynamicEl || [];\r\n }\r\n };\r\n LightGallery.prototype.shouldHideScrollbar = function () {\r\n return (this.settings.hideScrollbar &&\r\n document.body === this.settings.container);\r\n };\r\n LightGallery.prototype.hideScrollbar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight);\r\n var bodyRect = document.documentElement.getBoundingClientRect();\r\n var scrollbarWidth = window.innerWidth - bodyRect.width;\r\n $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');\r\n $LG(document.body).addClass('lg-overlay-open');\r\n };\r\n LightGallery.prototype.resetScrollBar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');\r\n $LG(document.body).removeClass('lg-overlay-open');\r\n };\r\n /**\r\n * Open lightGallery.\r\n * Open gallery with specific slide by passing index of the slide as parameter.\r\n * @category lGPublicMethods\r\n * @param {Number} index - index of the slide\r\n * @param {HTMLElement} element - Which image lightGallery should zoom from\r\n *\r\n * @example\r\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\r\n * const dynamicGallery = lightGallery($dynamicGallery, {\r\n * dynamic: true,\r\n * dynamicEl: [\r\n * {\r\n * src: 'img/1.jpg',\r\n * thumb: 'img/thumb-1.jpg',\r\n * subHtml: '<h4>Image 1 title</h4><p>Image 1 descriptions.</p>',\r\n * },\r\n * ...\r\n * ],\r\n * });\r\n * $dynamicGallery.addEventListener('click', function () {\r\n * // Starts with third item.(Optional).\r\n * // This is useful if you want use dynamic mode with\r\n * // custom thumbnails (thumbnails outside gallery),\r\n * dynamicGallery.openGallery(2);\r\n * });\r\n *\r\n */\r\n LightGallery.prototype.openGallery = function (index, element) {\r\n var _this = this;\r\n if (index === void 0) { index = this.settings.index; }\r\n // prevent accidental double execution\r\n if (this.lgOpened)\r\n return;\r\n this.lgOpened = true;\r\n this.outer.removeClass('lg-hide-items');\r\n this.hideScrollbar();\r\n // Add display block, but still has opacity 0\r\n this.$container.addClass('lg-show');\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\r\n this.currentItemsInDom = itemsToBeInsertedToDom;\r\n var items = '';\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n items = items + (\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\r\n });\r\n this.$inner.append(items);\r\n this.addHtml(index);\r\n var transform = '';\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\r\n if (!this.settings.allowMediaOverlap) {\r\n this.setMediaContainerPosition(top, bottom);\r\n }\r\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\r\n if (this.zoomFromOrigin && element) {\r\n this.currentImageSize = utils.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n transform = utils.getTransform(element, this.outer, top, bottom, this.currentImageSize);\r\n }\r\n if (!this.zoomFromOrigin || !transform) {\r\n this.outer.addClass(this.settings.startClass);\r\n this.getSlideItem(index).removeClass('lg-complete');\r\n }\r\n var timeout = this.settings.zoomFromOrigin\r\n ? 100\r\n : this.settings.backdropDuration;\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-components-open');\r\n }, timeout);\r\n this.index = index;\r\n this.LGel.trigger(lGEvents.beforeOpen);\r\n // add class lg-current to remove initial transition\r\n this.getSlideItem(index).addClass('lg-current');\r\n this.lGalleryOn = false;\r\n // Store the current scroll top value to scroll back after closing the gallery..\r\n this.prevScrollTop = $LG(window).scrollTop();\r\n setTimeout(function () {\r\n // Need to check both zoomFromOrigin and transform values as we need to set set the\r\n // default opening animation if user missed to add the lg-size attribute\r\n if (_this.zoomFromOrigin && transform) {\r\n var currentSlide_1 = _this.getSlideItem(index);\r\n currentSlide_1.css('transform', transform);\r\n setTimeout(function () {\r\n currentSlide_1\r\n .addClass('lg-start-progress lg-start-end-progress')\r\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\r\n _this.outer.addClass('lg-zoom-from-image');\r\n });\r\n setTimeout(function () {\r\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\r\n }, 100);\r\n }\r\n setTimeout(function () {\r\n _this.$backdrop.addClass('in');\r\n _this.$container.addClass('lg-show-in');\r\n }, 10);\r\n setTimeout(function () {\r\n if (_this.settings.trapFocus &&\r\n document.body === _this.settings.container) {\r\n _this.trapFocus();\r\n }\r\n }, _this.settings.backdropDuration + 50);\r\n // lg-visible class resets gallery opacity to 1\r\n if (!_this.zoomFromOrigin || !transform) {\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-visible');\r\n }, _this.settings.backdropDuration);\r\n }\r\n // initiate slide function\r\n _this.slide(index, false, false, false);\r\n _this.LGel.trigger(lGEvents.afterOpen);\r\n });\r\n if (document.body === this.settings.container) {\r\n $LG('html').addClass('lg-on');\r\n }\r\n };\r\n /**\r\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\r\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\r\n * if you have dynamic captions for each media,\r\n * you can provide an appropriate height for the captions via allowMediaOverlap option\r\n */\r\n LightGallery.prototype.getMediaContainerPosition = function () {\r\n if (this.settings.allowMediaOverlap) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n }\r\n var top = this.$toolbar.get().clientHeight || 0;\r\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\r\n var captionHeight = this.settings.defaultCaptionHeight ||\r\n (subHtml && subHtml.clientHeight) ||\r\n 0;\r\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\r\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\r\n var bottom = thumbHeight + captionHeight;\r\n return {\r\n top: top,\r\n bottom: bottom,\r\n };\r\n };\r\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\r\n if (top === void 0) { top = 0; }\r\n if (bottom === void 0) { bottom = 0; }\r\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\r\n };\r\n LightGallery.prototype.hideBars = function () {\r\n var _this = this;\r\n // Hide controllers if mouse doesn't move for some period\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n if (_this.settings.hideBarsDelay > 0) {\r\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n clearTimeout(_this.hideBarTimeout);\r\n // Timeout will be cleared on each slide movement also\r\n _this.hideBarTimeout = setTimeout(function () {\r\n _this.outer.addClass('lg-hide-items');\r\n }, _this.settings.hideBarsDelay);\r\n });\r\n _this.outer.trigger('mousemove.lg');\r\n }\r\n }, this.settings.showBarsAfter);\r\n };\r\n LightGallery.prototype.initPictureFill = function ($img) {\r\n if (this.settings.supportLegacyBrowser) {\r\n try {\r\n picturefill({\r\n elements: [$img.get()],\r\n });\r\n }\r\n catch (e) {\r\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Create image counter\r\n * Ex: 1/10\r\n */\r\n LightGallery.prototype.counter = function () {\r\n if (this.settings.counter) {\r\n var counterHtml = \"<div class=\\\"lg-counter\\\" role=\\\"status\\\" aria-live=\\\"polite\\\">\\n <span id=\\\"\" + this.getIdName('lg-counter-current') + \"\\\" class=\\\"lg-counter-current\\\">\" + (this.index + 1) + \" </span> /\\n <span id=\\\"\" + this.getIdName('lg-counter-all') + \"\\\" class=\\\"lg-counter-all\\\">\" + this.galleryItems.length + \" </span></div>\";\r\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\r\n }\r\n };\r\n /**\r\n * @desc add sub-html into the slide\r\n * @param {Number} index - index of the slide\r\n */\r\n LightGallery.prototype.addHtml = function (index) {\r\n var subHtml;\r\n var subHtmlUrl;\r\n if (this.galleryItems[index].subHtmlUrl) {\r\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\r\n }\r\n else {\r\n subHtml = this.galleryItems[index].subHtml;\r\n }\r\n if (!subHtmlUrl) {\r\n if (subHtml) {\r\n // get first letter of sub-html\r\n // if first letter starts with . or # get the html form the jQuery object\r\n var fL = subHtml.substring(0, 1);\r\n if (fL === '.' || fL === '#') {\r\n if (this.settings.subHtmlSelectorRelative &&\r\n !this.settings.dynamic) {\r\n subHtml = $LG(this.items)\r\n .eq(index)\r\n .find(subHtml)\r\n .first()\r\n .html();\r\n }\r\n else {\r\n subHtml = $LG(subHtml).first().html();\r\n }\r\n }\r\n }\r\n else {\r\n subHtml = '';\r\n }\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n if (subHtmlUrl) {\r\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\r\n }\r\n else {\r\n this.outer.find('.lg-sub-html').html(subHtml);\r\n }\r\n }\r\n else {\r\n var currentSlide = $LG(this.getSlideItemId(index));\r\n if (subHtmlUrl) {\r\n currentSlide.load(subHtmlUrl);\r\n }\r\n else {\r\n currentSlide.append(\"<div class=\\\"lg-sub-html\\\">\" + subHtml + \"</div>\");\r\n }\r\n }\r\n // Add lg-empty-html class if title doesn't exist\r\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\r\n if (subHtml === '') {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .addClass('lg-empty-html');\r\n }\r\n else {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .removeClass('lg-empty-html');\r\n }\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSubHtml, {\r\n index: index,\r\n });\r\n };\r\n /**\r\n * @desc Preload slides\r\n * @param {Number} index - index of the slide\r\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\r\n */\r\n LightGallery.prototype.preload = function (index) {\r\n for (var i = 1; i <= this.settings.preload; i++) {\r\n if (i >= this.galleryItems.length - index) {\r\n break;\r\n }\r\n this.loadContent(index + i, false);\r\n }\r\n for (var j = 1; j <= this.settings.preload; j++) {\r\n if (index - j < 0) {\r\n break;\r\n }\r\n this.loadContent(index - j, false);\r\n }\r\n };\r\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\r\n var $currentItem;\r\n if (!this.settings.dynamic) {\r\n $currentItem = $LG(this.items).eq(index);\r\n }\r\n if ($currentItem) {\r\n var _dummyImgSrc = void 0;\r\n if (!this.settings.exThumbImage) {\r\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\r\n }\r\n else {\r\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\r\n }\r\n if (!_dummyImgSrc)\r\n return '';\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n var dummyImgContent = \"<img \" + alt + \" style=\\\"\" + imgStyle + \"\\\" class=\\\"lg-dummy-img\\\" src=\\\"\" + _dummyImgSrc + \"\\\" />\";\r\n $currentSlide.addClass('lg-first-slide');\r\n this.outer.addClass('lg-first-slide-loading');\r\n return dummyImgContent;\r\n }\r\n return '';\r\n };\r\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n // Use the thumbnail as dummy image which will be resized to actual image size and\r\n // displayed on top of actual image\r\n var imgContent = '';\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\r\n }\r\n else {\r\n imgContent = utils.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\r\n }\r\n var imgMarkup = \"<picture class=\\\"lg-img-wrap\\\"> \" + imgContent + \"</picture>\";\r\n $currentSlide.prepend(imgMarkup);\r\n };\r\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\r\n var mediaObject = $slide.find('.lg-object').first();\r\n if (utils.isImageLoaded(mediaObject.get()) ||\r\n isHTML5VideoWithoutPoster) {\r\n onLoad();\r\n }\r\n else {\r\n mediaObject.on('load.lg error.lg', function () {\r\n onLoad && onLoad();\r\n });\r\n mediaObject.on('error.lg', function () {\r\n onError && onError();\r\n });\r\n }\r\n };\r\n /**\r\n *\r\n * @param $el Current slide item\r\n * @param index\r\n * @param delay Delay is 0 except first time\r\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\r\n * @param isFirstSlide\r\n */\r\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\r\n var _this = this;\r\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\r\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\r\n }, function () {\r\n currentSlide.addClass('lg-complete lg-complete_');\r\n currentSlide.html('<span class=\"lg-error-msg\">Oops... Failed to load content...</span>');\r\n });\r\n };\r\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n // Adding delay for video slides without poster for better performance and user experience\r\n // Videos should start playing once once the gallery is completely loaded\r\n var _speed = isFirstSlide &&\r\n this.getSlideType(currentGalleryItem) === 'video' &&\r\n !currentGalleryItem.poster\r\n ? speed\r\n : 0;\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete lg-complete_');\r\n _this.LGel.trigger(lGEvents.slideItemLoad, {\r\n index: index,\r\n delay: delay || 0,\r\n isFirstSlide: isFirstSlide,\r\n });\r\n }, _speed);\r\n };\r\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\r\n return !!(!this.lGalleryOn &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize);\r\n };\r\n // Add video slideInfo\r\n LightGallery.prototype.addSlideVideoInfo = function (items) {\r\n var _this = this;\r\n items.forEach(function (element, index) {\r\n element.__slideVideoInfo = utils.isVideo(element.src, !!element.video, index);\r\n if (element.__slideVideoInfo &&\r\n _this.settings.loadYouTubePoster &&\r\n !element.poster &&\r\n element.__slideVideoInfo.youtube) {\r\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\r\n }\r\n });\r\n };\r\n /**\r\n * Load slide content into slide.\r\n * This is used to load content into slides that is not visible too\r\n * @param {Number} index - index of the slide.\r\n * @param {Boolean} rec - if true call loadcontent() function again.\r\n */\r\n LightGallery.prototype.loadContent = function (index, rec) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n var $currentSlide = $LG(this.getSlideItemId(index));\r\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n var src = currentGalleryItem.src;\r\n var video = currentGalleryItem.video;\r\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\r\n if (currentGalleryItem.responsive) {\r\n var srcDyItms = currentGalleryItem.responsive.split(',');\r\n src = utils.getResponsiveSrc(srcDyItms) || src;\r\n }\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n var lgVideoStyle = '';\r\n var iframe = !!currentGalleryItem.iframe;\r\n var isFirstSlide = !this.lGalleryOn;\r\n // delay for adding complete class. it is 0 except first time.\r\n var delay = 0;\r\n if (isFirstSlide) {\r\n if (this.zoomFromOrigin && this.currentImageSize) {\r\n delay = this.settings.startAnimationDuration + 10;\r\n }\r\n else {\r\n delay = this.settings.backdropDuration + 10;\r\n }\r\n }\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\r\n lgVideoStyle = this.getVideoContStyle(videoSize);\r\n }\r\n if (iframe) {\r\n var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (poster) {\r\n var dummyImg = '';\r\n var hasStartAnimation = isFirstSlide &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize;\r\n if (hasStartAnimation) {\r\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\r\n }\r\n var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (videoInfo) {\r\n var markup = \"<div class=\\\"lg-video-cont \\\" style=\\\"\" + lgVideoStyle + \"\\\"></div>\";\r\n $currentSlide.prepend(markup);\r\n }\r\n else {\r\n this.setImgMarkup(src, $currentSlide, index);\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n this.initPictureFill($img);\r\n }\r\n }\r\n if (poster || videoInfo) {\r\n this.LGel.trigger(lGEvents.hasVideo, {\r\n index: index,\r\n src: src,\r\n html5Video: _html5Video,\r\n hasPoster: !!poster,\r\n });\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSlide, { index: index });\r\n if (this.lGalleryOn &&\r\n this.settings.appendSubHtmlTo === '.lg-item') {\r\n this.addHtml(index);\r\n }\r\n }\r\n // For first time add some delay for displaying the start animation.\r\n var _speed = 0;\r\n // Do not change the delay value because it is required for zoom plugin.\r\n // If gallery opened from direct url (hash) speed value should be 0\r\n if (delay && !$LG(document.body).hasClass('lg-from-hash')) {\r\n _speed = delay;\r\n }\r\n // Only for first slide and zoomFromOrigin is enabled\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n setTimeout(function () {\r\n $currentSlide\r\n .removeClass('lg-start-end-progress lg-start-progress')\r\n .removeAttr('style');\r\n }, this.settings.startAnimationDuration + 100);\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n setTimeout(function () {\r\n if (_this.getSlideType(currentGalleryItem) === 'image') {\r\n var alt = currentGalleryItem.alt;\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n $currentSlide\r\n .find('.lg-img-wrap')\r\n .append(utils.getImgMarkup(index, src, altAttr, srcset, sizes, currentGalleryItem.sources));\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n _this.initPictureFill($img);\r\n }\r\n }\r\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\r\n (_this.getSlideType(currentGalleryItem) === 'video' &&\r\n poster)) {\r\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\r\n // load remaining slides once the slide is completely loaded\r\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n }, function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n });\r\n }\r\n }, this.settings.startAnimationDuration + 100);\r\n }\r\n }\r\n // SLide content has been added to dom\r\n $currentSlide.addClass('lg-loaded');\r\n if (!this.isFirstSlideWithZoomAnimation() ||\r\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\r\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\r\n }\r\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\r\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\r\n $currentSlide.hasClass('lg-complete_') &&\r\n !this.lGalleryOn) {\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete');\r\n }, this.settings.backdropDuration);\r\n }\r\n // Content loaded\r\n // Need to set lGalleryOn before calling preload function\r\n this.lGalleryOn = true;\r\n if (rec === true) {\r\n if (!$currentSlide.hasClass('lg-complete_')) {\r\n $currentSlide\r\n .find('.lg-object')\r\n .first()\r\n .on('load.lg error.lg', function () {\r\n _this.preload(index);\r\n });\r\n }\r\n else {\r\n this.preload(index);\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Remove dummy image content and load next slides\r\n * Called only for the first time if zoomFromOrigin animation is enabled\r\n * @param index\r\n * @param $currentSlide\r\n * @param speed\r\n */\r\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\r\n var _this = this;\r\n setTimeout(function () {\r\n $currentSlide.find('.lg-dummy-img').remove();\r\n $currentSlide.removeClass('lg-first-slide');\r\n _this.outer.removeClass('lg-first-slide-loading');\r\n _this.isDummyImageRemoved = true;\r\n _this.preload(index);\r\n }, speed + 300);\r\n };\r\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\r\n var _this = this;\r\n if (numberOfItems === void 0) { numberOfItems = 0; }\r\n var itemsToBeInsertedToDom = [];\r\n // Minimum 2 items should be there\r\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\r\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\r\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\r\n if (this.galleryItems.length <= 3) {\r\n this.galleryItems.forEach(function (_element, index) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\r\n });\r\n return itemsToBeInsertedToDom;\r\n }\r\n if (index < (this.galleryItems.length - 1) / 2) {\r\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\r\n }\r\n }\r\n else {\r\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\r\n idx < index + possibleNumberOfItems / 2; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\r\n }\r\n }\r\n if (this.settings.loop) {\r\n if (index === this.galleryItems.length - 1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\r\n }\r\n else if (index === 0) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\r\n }\r\n }\r\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\r\n }\r\n return itemsToBeInsertedToDom;\r\n };\r\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\r\n var _this = this;\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n if (_this.currentItemsInDom.indexOf(item) === -1) {\r\n _this.$inner.append(\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\r\n }\r\n });\r\n this.currentItemsInDom.forEach(function (item) {\r\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\r\n $LG(\"#\" + item).remove();\r\n }\r\n });\r\n return itemsToBeInsertedToDom;\r\n };\r\n /**\r\n * Get previous index of the slide\r\n */\r\n LightGallery.prototype.getPreviousSlideIndex = function () {\r\n var prevIndex = 0;\r\n try {\r\n var currentItemId = this.outer\r\n .find('.lg-current')\r\n .first()\r\n .attr('id');\r\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\r\n }\r\n catch (error) {\r\n prevIndex = 0;\r\n }\r\n return prevIndex;\r\n };\r\n LightGallery.prototype.setDownloadValue = function (index) {\r\n if (this.settings.download) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\r\n currentGalleryItem.downloadUrl === 'false';\r\n if (hideDownloadBtn) {\r\n this.outer.addClass('lg-hide-download');\r\n }\r\n else {\r\n var $download = this.getElementById('lg-download');\r\n this.outer.removeClass('lg-hide-download');\r\n $download.attr('href', currentGalleryItem.downloadUrl ||\r\n currentGalleryItem.src);\r\n if (currentGalleryItem.download) {\r\n $download.attr('download', currentGalleryItem.download);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\r\n var _this = this;\r\n if (this.lGalleryOn) {\r\n previousSlideItem.addClass('lg-slide-progress');\r\n }\r\n setTimeout(function () {\r\n // remove all transitions\r\n _this.outer.addClass('lg-no-trans');\r\n _this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-next-slide');\r\n if (direction === 'prev') {\r\n //prevslide\r\n currentSlideItem.addClass('lg-prev-slide');\r\n previousSlideItem.addClass('lg-next-slide');\r\n }\r\n else {\r\n // next slide\r\n currentSlideItem.addClass('lg-next-slide');\r\n previousSlideItem.addClass('lg-prev-slide');\r\n }\r\n // give 50 ms for browser to add/remove class\r\n setTimeout(function () {\r\n _this.outer.find('.lg-item').removeClass('lg-current');\r\n currentSlideItem.addClass('lg-current');\r\n // reset all transitions\r\n _this.outer.removeClass('lg-no-trans');\r\n }, 50);\r\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\r\n };\r\n /**\r\n * Goto a specific slide.\r\n * @param {Number} index - index of the slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\r\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\r\n * @param {String} direction - Direction of the slide(next/prev)\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // to go to 3rd slide\r\n * plugin.slide(2);\r\n *\r\n */\r\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\r\n var _this = this;\r\n var prevIndex = this.getPreviousSlideIndex();\r\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\r\n // Prevent multiple call, Required for hsh plugin\r\n if (this.lGalleryOn && prevIndex === index) {\r\n return;\r\n }\r\n var numberOfGalleryItems = this.galleryItems.length;\r\n if (!this.lgBusy) {\r\n if (this.settings.counter) {\r\n this.updateCurrentCounter(index);\r\n }\r\n var currentSlideItem = this.getSlideItem(index);\r\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\r\n var currentGalleryItem = this.galleryItems[index];\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\r\n this.setDownloadValue(index);\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\r\n this.resizeVideoSlide(index, videoSize);\r\n }\r\n this.LGel.trigger(lGEvents.beforeSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: !!fromTouch,\r\n fromThumb: !!fromThumb,\r\n });\r\n this.lgBusy = true;\r\n clearTimeout(this.hideBarTimeout);\r\n this.arrowDisable(index);\r\n if (!direction) {\r\n if (index < prevIndex) {\r\n direction = 'prev';\r\n }\r\n else if (index > prevIndex) {\r\n direction = 'next';\r\n }\r\n }\r\n if (!fromTouch) {\r\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\r\n }\r\n else {\r\n this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-current lg-next-slide');\r\n var touchPrev = void 0;\r\n var touchNext = void 0;\r\n if (numberOfGalleryItems > 2) {\r\n touchPrev = index - 1;\r\n touchNext = index + 1;\r\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\r\n // next slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n else if (index === numberOfGalleryItems - 1 &&\r\n prevIndex === 0) {\r\n // prev slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n }\r\n else {\r\n touchPrev = 0;\r\n touchNext = 1;\r\n }\r\n if (direction === 'prev') {\r\n this.getSlideItem(touchNext).addClass('lg-next-slide');\r\n }\r\n else {\r\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\r\n }\r\n currentSlideItem.addClass('lg-current');\r\n }\r\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\r\n if (!this.lGalleryOn) {\r\n this.loadContent(index, true);\r\n }\r\n else {\r\n setTimeout(function () {\r\n _this.loadContent(index, true);\r\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\r\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\r\n _this.addHtml(index);\r\n }\r\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n setTimeout(function () {\r\n _this.lgBusy = false;\r\n previousSlideItem_1.removeClass('lg-slide-progress');\r\n _this.LGel.trigger(lGEvents.afterSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: fromTouch,\r\n fromThumb: fromThumb,\r\n });\r\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n this.index = index;\r\n };\r\n LightGallery.prototype.updateCurrentCounter = function (index) {\r\n this.getElementById('lg-counter-current').html(index + 1 + '');\r\n };\r\n LightGallery.prototype.updateCounterTotal = function () {\r\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\r\n };\r\n LightGallery.prototype.getSlideType = function (item) {\r\n if (item.__slideVideoInfo) {\r\n return 'video';\r\n }\r\n else if (item.iframe) {\r\n return 'iframe';\r\n }\r\n else {\r\n return 'image';\r\n }\r\n };\r\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\r\n var distanceX = endCoords.pageX - startCoords.pageX;\r\n var distanceY = endCoords.pageY - startCoords.pageY;\r\n var allowSwipe = false;\r\n if (this.swipeDirection) {\r\n allowSwipe = true;\r\n }\r\n else {\r\n if (Math.abs(distanceX) > 15) {\r\n this.swipeDirection = 'horizontal';\r\n allowSwipe = true;\r\n }\r\n else if (Math.abs(distanceY) > 15) {\r\n this.swipeDirection = 'vertical';\r\n allowSwipe = true;\r\n }\r\n }\r\n if (!allowSwipe) {\r\n return;\r\n }\r\n var $currentSlide = this.getSlideItem(this.index);\r\n if (this.swipeDirection === 'horizontal') {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n // reset opacity and transition duration\r\n this.outer.addClass('lg-dragging');\r\n // move current slide\r\n this.setTranslate($currentSlide, distanceX, 0);\r\n // move next and prev slide with current slide\r\n var width = $currentSlide.get().offsetWidth;\r\n var slideWidthAmount = (width * 15) / 100;\r\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\r\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\r\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\r\n }\r\n else if (this.swipeDirection === 'vertical') {\r\n if (this.settings.swipeToClose) {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n this.$container.addClass('lg-dragging-vertical');\r\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\r\n this.$backdrop.css('opacity', opacity);\r\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\r\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\r\n if (Math.abs(distanceY) > 100) {\r\n this.outer\r\n .addClass('lg-hide-items')\r\n .removeClass('lg-components-open');\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\r\n var _this = this;\r\n var distance;\r\n // keep slide animation for any mode while dragg/swipe\r\n if (this.settings.mode !== 'lg-slide') {\r\n this.outer.addClass('lg-slide');\r\n }\r\n // set transition duration\r\n setTimeout(function () {\r\n _this.$container.removeClass('lg-dragging-vertical');\r\n _this.outer\r\n .removeClass('lg-dragging lg-hide-items')\r\n .addClass('lg-components-open');\r\n var triggerClick = true;\r\n if (_this.swipeDirection === 'horizontal') {\r\n distance = endCoords.pageX - startCoords.pageX;\r\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\r\n if (distance < 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToNextSlide(true);\r\n triggerClick = false;\r\n }\r\n else if (distance > 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToPrevSlide(true);\r\n triggerClick = false;\r\n }\r\n }\r\n else if (_this.swipeDirection === 'vertical') {\r\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\r\n if (_this.settings.closable &&\r\n _this.settings.swipeToClose &&\r\n distance > 100) {\r\n _this.closeGallery();\r\n return;\r\n }\r\n else {\r\n _this.$backdrop.css('opacity', 1);\r\n }\r\n }\r\n _this.outer.find('.lg-item').removeAttr('style');\r\n if (triggerClick &&\r\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\r\n // Trigger click if distance is less than 5 pix\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.swipeDirection = undefined;\r\n });\r\n // remove slide class once drag/swipe is completed if mode is not slide\r\n setTimeout(function () {\r\n if (!_this.outer.hasClass('lg-dragging') &&\r\n _this.settings.mode !== 'lg-slide') {\r\n _this.outer.removeClass('lg-slide');\r\n }\r\n }, this.settings.speed + 100);\r\n };\r\n LightGallery.prototype.enableSwipe = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isMoved = false;\r\n var isSwiping = false;\r\n if (this.settings.enableSwipe) {\r\n this.$inner.on('touchstart.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if (($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) &&\r\n !_this.outer.hasClass('lg-zoomed') &&\r\n !_this.lgBusy &&\r\n e.touches.length === 1) {\r\n isSwiping = true;\r\n _this.touchAction = 'swipe';\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n }\r\n });\r\n this.$inner.on('touchmove.lg', function (e) {\r\n if (isSwiping &&\r\n _this.touchAction === 'swipe' &&\r\n e.touches.length === 1) {\r\n endCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords, e);\r\n isMoved = true;\r\n }\r\n });\r\n this.$inner.on('touchend.lg', function (event) {\r\n if (_this.touchAction === 'swipe') {\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n }\r\n else if (isSwiping) {\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.touchAction = undefined;\r\n isSwiping = false;\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.enableDrag = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isDraging = false;\r\n var isMoved = false;\r\n if (this.settings.enableDrag) {\r\n this.outer.on('mousedown.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if ($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) {\r\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\r\n e.preventDefault();\r\n if (!_this.lgBusy) {\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n isDraging = true;\r\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\r\n _this.outer.get().scrollLeft += 1;\r\n _this.outer.get().scrollLeft -= 1;\r\n // *\r\n _this.outer\r\n .removeClass('lg-grab')\r\n .addClass('lg-grabbing');\r\n _this.LGel.trigger(lGEvents.dragStart);\r\n }\r\n }\r\n }\r\n });\r\n $LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\r\n if (isDraging && _this.lgOpened) {\r\n isMoved = true;\r\n endCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords);\r\n _this.LGel.trigger(lGEvents.dragMove);\r\n }\r\n });\r\n $LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var target = $LG(event.target);\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n _this.LGel.trigger(lGEvents.dragEnd);\r\n }\r\n else if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n // Prevent execution on click\r\n if (isDraging) {\r\n isDraging = false;\r\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.triggerPosterClick = function () {\r\n var _this = this;\r\n this.$inner.on('click.lg', function (event) {\r\n if (!_this.dragOrSwipeEnabled &&\r\n _this.isPosterElement($LG(event.target))) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageSwipeClass = function () {\r\n var _touchNext = this.index + 1;\r\n var _touchPrev = this.index - 1;\r\n if (this.settings.loop && this.galleryItems.length > 2) {\r\n if (this.index === 0) {\r\n _touchPrev = this.galleryItems.length - 1;\r\n }\r\n else if (this.index === this.galleryItems.length - 1) {\r\n _touchNext = 0;\r\n }\r\n }\r\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\r\n if (_touchPrev > -1) {\r\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\r\n }\r\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\r\n };\r\n /**\r\n * Go to next slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.goToNextSlide();\r\n * @see <a href=\"/demos/methods/\">Demo</a>\r\n */\r\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index + 1 < this.galleryItems.length) {\r\n this.index++;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = 0;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-right-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-right-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Go to previous slides\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery({});\r\n * plugin.goToPrevSlide();\r\n * @see <a href=\"/demos/methods/\">Demo</a>\r\n *\r\n */\r\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index > 0) {\r\n this.index--;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = this.galleryItems.length - 1;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-left-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-left-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.keyPress = function () {\r\n var _this = this;\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (_this.lgOpened &&\r\n _this.settings.escKey === true &&\r\n e.keyCode === 27) {\r\n e.preventDefault();\r\n if (_this.settings.allowMediaOverlap &&\r\n _this.outer.hasClass('lg-can-toggle') &&\r\n _this.outer.hasClass('lg-components-open')) {\r\n _this.outer.removeClass('lg-components-open');\r\n }\r\n else {\r\n _this.closeGallery();\r\n }\r\n }\r\n if (_this.lgOpened && _this.galleryItems.length > 1) {\r\n if (e.keyCode === 37) {\r\n e.preventDefault();\r\n _this.goToPrevSlide();\r\n }\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n _this.goToNextSlide();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.arrow = function () {\r\n var _this = this;\r\n this.getElementById('lg-prev').on('click.lg', function () {\r\n _this.goToPrevSlide();\r\n });\r\n this.getElementById('lg-next').on('click.lg', function () {\r\n _this.goToNextSlide();\r\n });\r\n };\r\n LightGallery.prototype.arrowDisable = function (index) {\r\n // Disable arrows if settings.hideControlOnEnd is true\r\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\r\n var $prev = this.getElementById('lg-prev');\r\n var $next = this.getElementById('lg-next');\r\n if (index + 1 === this.galleryItems.length) {\r\n $next.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $next.removeAttr('disabled').removeClass('disabled');\r\n }\r\n if (index === 0) {\r\n $prev.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $prev.removeAttr('disabled').removeClass('disabled');\r\n }\r\n }\r\n };\r\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\r\n if (scaleX === void 0) { scaleX = 1; }\r\n if (scaleY === void 0) { scaleY = 1; }\r\n $el.css('transform', 'translate3d(' +\r\n xValue +\r\n 'px, ' +\r\n yValue +\r\n 'px, 0px) scale3d(' +\r\n scaleX +\r\n ', ' +\r\n scaleY +\r\n ', 1)');\r\n };\r\n LightGallery.prototype.mousewheel = function () {\r\n var _this = this;\r\n var lastCall = 0;\r\n this.outer.on('wheel.lg', function (e) {\r\n if (!e.deltaY || _this.galleryItems.length < 2) {\r\n return;\r\n }\r\n e.preventDefault();\r\n var now = new Date().getTime();\r\n if (now - lastCall < 1000) {\r\n return;\r\n }\r\n lastCall = now;\r\n if (e.deltaY > 0) {\r\n _this.goToNextSlide();\r\n }\r\n else if (e.deltaY < 0) {\r\n _this.goToPrevSlide();\r\n }\r\n });\r\n };\r\n LightGallery.prototype.isSlideElement = function (target) {\r\n return (target.hasClass('lg-outer') ||\r\n target.hasClass('lg-item') ||\r\n target.hasClass('lg-img-wrap'));\r\n };\r\n LightGallery.prototype.isPosterElement = function (target) {\r\n var playButton = this.getSlideItem(this.index)\r\n .find('.lg-video-play-button')\r\n .get();\r\n return (target.hasClass('lg-video-poster') ||\r\n target.hasClass('lg-video-play-button') ||\r\n (playButton && playButton.contains(target.get())));\r\n };\r\n /**\r\n * Maximize minimize inline gallery.\r\n * @category lGPublicMethods\r\n */\r\n LightGallery.prototype.toggleMaximize = function () {\r\n var _this = this;\r\n this.getElementById('lg-maximize').on('click.lg', function () {\r\n _this.$container.toggleClass('lg-inline');\r\n _this.refreshOnResize();\r\n });\r\n };\r\n LightGallery.prototype.invalidateItems = function () {\r\n for (var index = 0; index < this.items.length; index++) {\r\n var element = this.items[index];\r\n var $element = $LG(element);\r\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\r\n }\r\n };\r\n LightGallery.prototype.trapFocus = function () {\r\n var _this = this;\r\n this.$container.get().focus({\r\n preventScroll: true,\r\n });\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\r\n if (!isTabPressed) {\r\n return;\r\n }\r\n var focusableEls = utils.getFocusableElements(_this.$container.get());\r\n var firstFocusableEl = focusableEls[0];\r\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n if (e.shiftKey) {\r\n if (document.activeElement === firstFocusableEl) {\r\n lastFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n else {\r\n if (document.activeElement === lastFocusableEl) {\r\n firstFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageCloseGallery = function () {\r\n var _this = this;\r\n if (!this.settings.closable)\r\n return;\r\n var mousedown = false;\r\n this.getElementById('lg-close').on('click.lg', function () {\r\n _this.closeGallery();\r\n });\r\n if (this.settings.closeOnTap) {\r\n // If you drag the slide and release outside gallery gets close on chrome\r\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\r\n this.outer.on('mousedown.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target)) {\r\n mousedown = true;\r\n }\r\n else {\r\n mousedown = false;\r\n }\r\n });\r\n this.outer.on('mousemove.lg', function () {\r\n mousedown = false;\r\n });\r\n this.outer.on('mouseup.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target) && mousedown) {\r\n if (!_this.outer.hasClass('lg-dragging')) {\r\n _this.closeGallery();\r\n }\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Close lightGallery if it is opened.\r\n *\r\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\r\n * @return returns the estimated time to close gallery completely including the close animation duration\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.closeGallery();\r\n *\r\n */\r\n LightGallery.prototype.closeGallery = function (force) {\r\n var _this = this;\r\n if (!this.lgOpened || (!this.settings.closable && !force)) {\r\n return 0;\r\n }\r\n this.LGel.trigger(lGEvents.beforeClose);\r\n if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {\r\n $LG(window).scrollTop(this.prevScrollTop);\r\n }\r\n var currentItem = this.items[this.index];\r\n var transform;\r\n if (this.zoomFromOrigin && currentItem) {\r\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\r\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\r\n var imageSize = utils.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\r\n transform = utils.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\r\n }\r\n if (this.zoomFromOrigin && transform) {\r\n this.outer.addClass('lg-closing lg-zoom-from-image');\r\n this.getSlideItem(this.index)\r\n .addClass('lg-start-end-progress')\r\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\r\n .css('transform', transform);\r\n }\r\n else {\r\n this.outer.addClass('lg-hide-items');\r\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\r\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\r\n this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n // Unbind all events added by lightGallery\r\n // @todo\r\n //this.$el.off('.lg.tm');\r\n this.destroyModules();\r\n this.lGalleryOn = false;\r\n this.isDummyImageRemoved = false;\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n clearTimeout(this.hideBarTimeout);\r\n this.hideBarTimeout = false;\r\n $LG('html').removeClass('lg-on');\r\n this.outer.removeClass('lg-visible lg-components-open');\r\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\r\n this.$backdrop.removeClass('in').css('opacity', 0);\r\n var removeTimeout = this.zoomFromOrigin && transform\r\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\r\n : this.settings.backdropDuration;\r\n this.$container.removeClass('lg-show-in');\r\n // Once the closign animation is completed and gallery is invisible\r\n setTimeout(function () {\r\n if (_this.zoomFromOrigin && transform) {\r\n _this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n _this.$container.removeClass('lg-show');\r\n // Reset scrollbar\r\n _this.resetScrollBar();\r\n // Need to remove inline opacity as it is used in the stylesheet as well\r\n _this.$backdrop\r\n .removeAttr('style')\r\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\r\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\r\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\r\n _this.$inner.empty();\r\n if (_this.lgOpened) {\r\n _this.LGel.trigger(lGEvents.afterClose, {\r\n instance: _this,\r\n });\r\n }\r\n if (_this.$container.get()) {\r\n _this.$container.get().blur();\r\n }\r\n _this.lgOpened = false;\r\n }, removeTimeout + 100);\r\n return removeTimeout + 100;\r\n };\r\n LightGallery.prototype.initModules = function () {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n module.init();\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\r\n }\r\n });\r\n };\r\n LightGallery.prototype.destroyModules = function (destroy) {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n if (destroy) {\r\n module.destroy();\r\n }\r\n else {\r\n module.closeGallery && module.closeGallery();\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\r\n }\r\n });\r\n };\r\n /**\r\n * Refresh lightGallery with new set of children.\r\n *\r\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\r\n *\r\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\r\n * @see <a href=\"/demos/dynamic-mode/\">Demo</a>\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // Delete or add children, then call\r\n * plugin.refresh();\r\n *\r\n */\r\n LightGallery.prototype.refresh = function (galleryItems) {\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n if (galleryItems) {\r\n this.galleryItems = galleryItems;\r\n }\r\n else {\r\n this.galleryItems = this.getItems();\r\n }\r\n this.updateControls();\r\n this.openGalleryOnItemClick();\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n LightGallery.prototype.updateControls = function () {\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.updateCounterTotal();\r\n this.manageSingleSlideClassName();\r\n };\r\n LightGallery.prototype.destroyGallery = function () {\r\n this.destroyModules(true);\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n $LG(window).off(\".lg.global\" + this.lgId);\r\n this.LGel.off('.lg');\r\n this.$container.remove();\r\n };\r\n /**\r\n * Destroy lightGallery.\r\n * Destroy lightGallery and its plugin instances completely\r\n *\r\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\r\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\r\n * You can use refresh method most of the times.\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.destroy();\r\n *\r\n */\r\n LightGallery.prototype.destroy = function () {\r\n var closeTimeout = this.closeGallery(true);\r\n if (closeTimeout) {\r\n setTimeout(this.destroyGallery.bind(this), closeTimeout);\r\n }\r\n else {\r\n this.destroyGallery();\r\n }\r\n return closeTimeout;\r\n };\r\n return LightGallery;\r\n}());\n\nfunction lightGallery(el, options) {\r\n return new LightGallery(el, options);\r\n}\n\nexport default lightGallery;\n//# sourceMappingURL=lightgallery.es5.js.map\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,WAAW;AAC1B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACA,SAAS,cAAc,GAAG;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,IAAI,gBAAgB,EAAE,oBAAoB;AAC1C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,kBAAkB,EAAE,sBAAsB;AAC9C,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,aAAa,EAAE,iBAAiB;AACpC,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,aAAa,EAAE,iBAAiB;AACpC,IAAI,YAAY,EAAE,gBAAgB;AAClC,CAAC,CAAC;AACF;AACA,IAAI,wBAAwB,GAAG;AAC/B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,UAAU,EAAE,oBAAoB;AACpC,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,eAAe;AAC/B,IAAI,gBAAgB,EAAE,GAAG;AACzB,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,sBAAsB,EAAE,GAAG;AAC/B,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,oBAAoB,EAAE,IAAI;AAC9B,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,YAAY,EAAE,UAAU;AAC5B,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,oBAAoB,EAAE,CAAC;AAC3B,IAAI,cAAc,EAAE,EAAE;AACtB,IAAI,eAAe,EAAE,EAAE;AACvB,IAAI,mBAAmB,EAAE,IAAI;AAC7B,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,wBAAwB,EAAE,IAAI;AAClC,IAAI,eAAe,EAAE,cAAc;AACnC,IAAI,uBAAuB,EAAE,KAAK;AAClC,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,uBAAuB,EAAE,EAAE;AAC/B,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,WAAW,EAAE,MAAM;AACvB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,cAAc,EAAE,MAAM;AAC1B,IAAI,eAAe,EAAE,MAAM;AAC3B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,eAAe,EAAE,aAAa;AAClC,IAAI,cAAc,EAAE,EAAE;AACtB,IAAI,WAAW,EAAE,IAAI;AACrB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,cAAc,EAAE;AACpB,QAAQ,QAAQ,EAAE,KAAK;AACvB,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,QAAQ,EAAE,KAAK;AACvB,KAAK;AACL,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,OAAO,EAAE;AACb,QAAQ,YAAY,EAAE,eAAe;AACrC,QAAQ,cAAc,EAAE,iBAAiB;AACzC,QAAQ,aAAa,EAAE,gBAAgB;AACvC,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,QAAQ,EAAE,UAAU;AAC5B,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,CAAC,CAAC;AACF;AACA,SAAS,eAAe,GAAG;AAC3B,IAAI,CAAC,YAAY;AACjB,QAAQ,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU;AACpD,YAAY,OAAO,KAAK,CAAC;AACzB,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC5C,YAAY,MAAM,GAAG,MAAM,IAAI;AAC/B,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,UAAU,EAAE,KAAK;AACjC,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,YAAY,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC1D,YAAY,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACzF,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,QAAQ,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;AACzC,KAAK,GAAG,CAAC;AACT,IAAI,CAAC,YAAY;AACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;AACxC,YAAY,OAAO,CAAC,SAAS,CAAC,OAAO;AACrC,gBAAgB,OAAO,CAAC,SAAS,CAAC,iBAAiB;AACnD,oBAAoB,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC;AAC5D,SAAS;AACT,KAAK,GAAG,CAAC;AACT,CAAC;AACD,IAAI,OAAO,kBAAkB,YAAY;AACzC,IAAI,SAAS,OAAO,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,iBAAiB,GAAG;AACjC,YAAY,oBAAoB;AAChC,YAAY,0BAA0B;AACtC,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY;AACvC,QAAQ,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;AACpF,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACjF,YAAY,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,QAAQ,EAAE,OAAO,EAAE;AAClE,QAAQ,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,QAAQ,CAAC,EAAE;AACvD,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC1C,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC;AACtC,QAAQ,IAAI,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,EAAE,KAAK,GAAG,EAAE;AACxB,YAAY,OAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,SAAS;AACT,aAAa;AACb,YAAY,OAAO,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACtD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE;AAC9C,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AAChD,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjD,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;AAC9E;AACA,QAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE;AAC9E,YAAY,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;AACxC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,YAAY,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACnF,YAAY,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAClD,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC/C,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC9C,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC7C,SAAS;AACT,aAAa;AACb,YAAY,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AACvC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AAChD,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACjE,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AACnE,QAAQ,IAAI,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,OAAO,KAAK;AACpB,aAAa,KAAK,CAAC,GAAG,CAAC;AACvB,aAAa,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAC/C,aAAa,KAAK,CAAC,UAAU,CAAC,EAAE;AAChC,YAAY,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE;AACpD,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,QAAQ,EAAE;AACjD,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC1C,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACjE,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,SAAS;AACT,aAAa;AACb,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,KAAK,EAAE;AAC5C,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC3C,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY;AACxC,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,UAAU,EAAE;AACzD,QAAQ,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,SAAS,EAAE;AAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpD,QAAQ,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AACtC,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpE,QAAQ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,UAAU,EAAE;AACvD,QAAQ,IAAI,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE;AACvD,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC;AACA,YAAY,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AAC/D,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChD,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,UAAU,EAAE;AAC1D,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC;AACA,YAAY,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AAC/D,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,SAAS,EAAE;AACtD,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,SAAS,EAAE;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,SAAS,EAAE;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtC,YAAY,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACxC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,QAAQ,EAAE,KAAK,EAAE;AACvD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3D,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,MAAM,EAAE,QAAQ,EAAE;AACvD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACnD,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/D,gBAAgB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACnD,aAAa;AACb,YAAY,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAY,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3E,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;AACnC,YAAY,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,YAAY,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE;AAC7C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AACzE,YAAY,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AACxD,gBAAgB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;AAC9E,oBAAoB,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1F,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AACvD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,YAAY,MAAM,EAAE,MAAM,IAAI,IAAI;AAClC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACrD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE;AAC5C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,KAAK,CAAC,GAAG,CAAC;AAClB,aAAa,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,aAAa,IAAI,CAAC,UAAU,IAAI,EAAE;AAClC,YAAY,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;AAC7C,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1C,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACrC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;AAChD,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACtD,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC1C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AACjC,YAAY,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,SAAS,EAAE;AACvD,QAAQ,IAAI,SAAS,KAAK,SAAS,EAAE;AACrC,YAAY,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAChD,YAAY,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3D,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,aAAa;AACb,YAAY,QAAQ,MAAM,CAAC,WAAW;AACtC,gBAAgB,QAAQ,CAAC,eAAe,CAAC,SAAS;AAClD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,SAAS;AACvC,gBAAgB,CAAC,EAAE;AACnB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,UAAU,EAAE;AACzD,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE;AACtC,YAAY,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAClD,YAAY,QAAQ,CAAC,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7D,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,aAAa;AACb,YAAY,QAAQ,MAAM,CAAC,WAAW;AACtC,gBAAgB,QAAQ,CAAC,eAAe,CAAC,UAAU;AACnD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,UAAU;AACxC,gBAAgB,CAAC,EAAE;AACnB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,GAAG,EAAE,CAAC;AACtB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;AAC7D,QAAQ,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC;AAC5D;AACA,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC5E,YAAY,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AAC5C,SAAS,CAAC;AACV,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC1C,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY;AAC9C,YAAY,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACxD,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC1C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,QAAQ,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW;AAC7C,YAAY,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;AACzC,YAAY,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC5C,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC3C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,QAAQ,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY;AAC9C,YAAY,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;AACxC,YAAY,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AAC7C,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC;AAChC,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,EAAE,CAAC,CAAC;AACL,SAAS,GAAG,CAAC,QAAQ,EAAE;AACvB,IAAI,eAAe,EAAE,CAAC;AACtB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AACD;AACA,IAAI,qBAAqB,GAAG;AAC5B,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,aAAa;AACjB,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,CAAC,CAAC;AACF;AACA,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B;AACA,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAClF,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,IAAI,KAAK,GAAG;AACZ;AACA;AACA;AACA,IAAI,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE;AAC9D,QAAQ,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE;AAChD,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD;AACA,QAAQ,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAClC,YAAY,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,gBAAgB,IAAI,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAClD,gBAAgB,IAAI,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,gBAAgB,IAAI,eAAe,GAAG,MAAM,EAAE;AAC9C,oBAAoB,MAAM,GAAG,MAAM,CAAC;AACpC,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,KAAK,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,oBAAoB,MAAM,GAAG,MAAM,CAAC;AACpC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1C,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3C,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;AACvC,QAAQ,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;AACnD,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;AACnE,QAAQ,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;AAChE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;AACnE,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AACzB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,aAAa,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AACpE,QAAQ,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;AACzC;AACA,QAAQ,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC;AAC1D,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACnC,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACrC,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,IAAI,CAAC;AACtC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;AAC9B,aAAa,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,aAAa,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjD,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE;AACpC,YAAY,aAAa,CAAC,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,IAAI,CAAC;AACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG;AAC7B,aAAa,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjD,aAAa,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChD,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;AACnC,YAAY,GAAG,CAAC;AAChB,QAAQ,IAAI,GAAG,GAAG,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;AAC9C,QAAQ,IAAI,SAAS,GAAG,cAAc;AACtC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,YAAY,MAAM;AAClB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,YAAY,iBAAiB;AAC7B,YAAY,GAAG;AACf,YAAY,IAAI;AAChB,YAAY,GAAG;AACf,YAAY,MAAM,CAAC;AACnB,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL,IAAI,eAAe,EAAE,UAAU,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE;AAC7G,QAAQ,IAAI,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,CAAC;AACrE,QAAQ,OAAO,2DAA2D,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,yEAAyE,GAAG,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,gEAAgE,CAAC;AACtW,KAAK;AACL,IAAI,YAAY,EAAE,UAAU,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACzE,QAAQ,IAAI,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AACnE,QAAQ,IAAI,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/D,QAAQ,IAAI,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,6CAA6C,GAAG,KAAK,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;AACtK,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACxF,YAAY,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,MAAM,EAAE;AACxD,gBAAgB,IAAI,KAAK,GAAG,EAAE,CAAC;AAC/B,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC3D;AACA,oBAAoB,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACpE,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,UAAU,GAAG,KAAK,GAAG,YAAY,CAAC;AACzD,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,EAAE,GAAG,SAAS,GAAG,SAAS,CAAC;AAC1C,KAAK;AACL;AACA,IAAI,gBAAgB,EAAE,UAAU,OAAO,EAAE;AACzC,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;AACzB,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;AACvB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C;AACA,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,aAAa;AACb,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE;AACnD,gBAAgB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,aAAa,EAAE,UAAU,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,GAAG;AAChB,YAAY,OAAO,KAAK,CAAC;AACzB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC3B,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE;AACpC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,oBAAoB,EAAE,UAAU,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE;AAClG,QAAQ,IAAI,UAAU,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1C,YAAY,UAAU,GAAG,gBAAgB,CAAC;AAC1C,SAAS;AACT,aAAa,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;AAC7C,YAAY,UAAU,GAAG,cAAc,CAAC;AACxC,SAAS;AACT,aAAa;AACb,YAAY,UAAU,GAAG,cAAc,CAAC;AACxC,SAAS;AACT,QAAQ,OAAO,6BAA6B,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,mQAAmQ,GAAG,eAAe,GAAG,wIAAwI,GAAG,eAAe,GAAG,0hBAA0hB,IAAI,QAAQ,IAAI,EAAE,CAAC,GAAG,+DAA+D,GAAG,OAAO,GAAG,uBAAuB,CAAC;AACtqC,KAAK;AACL,IAAI,oBAAoB,EAAE,UAAU,SAAS,EAAE;AAC/C,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,oNAAoN,CAAC,CAAC;AACxQ,QAAQ,IAAI,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,OAAO,EAAE;AAC1E,YAAY,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACzD,YAAY,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC;AAC7E,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,eAAe,CAAC;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,EAAE,UAAU,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAE;AAC5F,QAAQ,IAAI,eAAe,GAAG,EAAE,CAAC;AACjC,QAAQ,IAAI,uBAAuB,GAAG,cAAc,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;AACxF,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE;AAC/C,YAAY,IAAI,SAAS,GAAG,EAAE,CAAC;AAC/B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7D,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE;AACpC,oBAAoB,IAAI,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,oBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC;AACnC,oBAAoB,IAAI,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3E,wBAAwB,KAAK,GAAG,WAAW,CAAC;AAC5C,qBAAqB;AACrB,oBAAoB,IAAI,KAAK,EAAE;AAC/B,wBAAwB,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACtD,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,YAAY,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClE,YAAY,IAAI,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,YAAY,IAAI,KAAK,GAAG,YAAY;AACpC,kBAAkB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAChD,kBAAkB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAY,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AACpC,YAAY,IAAI,wBAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAChE,gBAAgB,SAAS,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,IAAI,EAAE,CAAC;AACvD,aAAa;AACb,YAAY,SAAS,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;AAC/C,YAAY,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,eAAe,CAAC;AAC/B,KAAK;AACL,IAAI,QAAQ,EAAE,YAAY;AAC1B,QAAQ,OAAO,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACrE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE;AACjD,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB,CAAC;AAClB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,KAAK,CAAC,yDAAyD;AACvF,qBAAqB,KAAK,GAAG,CAAC,CAAC;AAC/B,oBAAoB,gIAAgI,CAAC,CAAC;AACtJ,gBAAgB,OAAO;AACvB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,8GAA8G,CAAC,CAAC;AAChJ,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;AACxG,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AAC3G,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,OAAO;AAChC,aAAa,CAAC;AACd,SAAS;AACT,aAAa,IAAI,KAAK,EAAE;AACxB,YAAY,OAAO;AACnB,gBAAgB,KAAK,EAAE,KAAK;AAC5B,aAAa,CAAC;AACd,SAAS;AACT,aAAa,IAAI,MAAM,EAAE;AACzB,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,MAAM;AAC9B,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,IAAI,YAAY,kBAAkB,YAAY;AAC9C,IAAI,SAAS,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACpC;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,sBAAsB,GAAG;AACtC,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5B;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;AACjC,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;AACjD,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACrD,YAAY,MAAM,sEAAsE,CAAC;AACzF,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5C,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACjC;AACA,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,YAAY,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,OAAO,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,wBAAwB,CAAC,EAAE,OAAO,CAAC,CAAC;AAClF,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAClC,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU;AACxD,cAAc,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACtC,cAAc,KAAK,CAAC,QAAQ,EAAE,EAAE;AAChC,YAAY,IAAI,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpH,YAAY,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;AAClF,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAY;AAC3D,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC7C,YAAY,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;AAC/C,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3D;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACxC,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACtC,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AACpD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1F,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AAC9C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzC,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,SAAS;AACT,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC;AAC/B,YAAY,KAAK,CAAC,WAAW,EAAE,CAAC;AAChC,YAAY,KAAK,CAAC,kBAAkB,EAAE,CAAC;AACvC,SAAS,EAAE,EAAE,CAAC,CAAC;AACf,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;AACrB,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC1C,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,sBAAsB,GAAG,YAAY;AAChE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,GAAG,UAAU,KAAK,EAAE;AACvC,YAAY,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAY,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACxC;AACA;AACA,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC9C,YAAY,QAAQ;AACpB,iBAAiB,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;AACzC,iBAAiB,EAAE,CAAC,sBAAsB,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE;AAChE,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,IAAI,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;AACrE,gBAAgB,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC7D,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;AAC1B;AACA,QAAQ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAChE,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACtD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACxD,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACvC,YAAY,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAChE,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,oBAAoB,EAAE;AACpE,YAAY,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,8CAA8C,CAAC,CAAC;AACvH,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC3D,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AAC7D,QAAQ,OAAO,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;AACrD,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,EAAE,EAAE;AACrD,QAAQ,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AACpC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,EAAE,EAAE;AAC1D,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,0BAA0B,GAAG,YAAY;AACpE,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAClD,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACrD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACjE,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,WAAW,GAAG,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpC,YAAY,QAAQ,GAAG,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,2DAA2D,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC;AAC5a,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE;AAC1D,YAAY,WAAW;AACvB,gBAAgB,kEAAkE,CAAC;AACnF,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC7C;AACA,YAAY,UAAU,IAAI,mBAAmB,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;AACzD,cAAc,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,GAAG;AACtE,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe;AAC3D,cAAc,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG;AACxE,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,kBAAkB,GAAG,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;AACjJ,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC7E,cAAc,uCAAuC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,yCAAyC;AACnL,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB;AACzD,cAAc,uCAAuC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,4CAA4C;AAC3L,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,QAAQ,GAAG,yBAAyB,GAAG,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,yCAAyC,GAAG,cAAc,GAAG,GAAG,GAAG,eAAe,GAAG,qDAAqD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,2DAA2D,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,wDAAwD,GAAG,UAAU,GAAG,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,sDAAsD,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,kEAAkE,GAAG,QAAQ,GAAG,oDAAoD,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,yDAAyD,GAAG,YAAY,GAAG,wBAAwB,GAAG,SAAS,GAAG,oDAAoD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,WAAW;AAC79B,cAAc,WAAW;AACzB,cAAc,EAAE,CAAC,GAAG,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,mDAAmD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,cAAc;AAC9L,cAAc,WAAW;AACzB,cAAc,EAAE,CAAC,GAAG,wEAAwE,CAAC;AAC7F,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtD,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvD,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AACzF,QAAQ,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;AACvD,QAAQ,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1C,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,YAAY,eAAe,IAAI,UAAU,CAAC;AAC1C,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC3E,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpC,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,qDAAqD,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,gDAAgD,CAAC,CAAC;AAC5N,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,GAAG,8BAA8B,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY;AAChH,YAAY,KAAK,CAAC,eAAe,EAAE,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AACzD,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnE,YAAY,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AACvE,YAAY,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAC3E,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACrF,YAAY,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtJ,YAAY,IAAI,gBAAgB,EAAE;AAClC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzE,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAClE,gBAAgB,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7E,gBAAgB,IAAI,CAAC,KAAK;AAC1B,qBAAqB,IAAI,CAAC,2BAA2B,CAAC;AACtD,qBAAqB,KAAK,EAAE;AAC5B,qBAAqB,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7C,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACxD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AAC1E,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC7D,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpD,QAAQ,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACxE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AAClE,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;AAChC,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACtD,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACpC,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,WAAW,EAAE,SAAS,EAAE;AACjE,YAAY,IAAI,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAChD,gBAAgB,MAAM,GAAG,SAAS,CAAC;AACnC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;AAC5B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACjD,KAAK,CAAC;AACN;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAClD;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE;AACnD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,aAAa;AACb,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC7C,gBAAgB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAChE,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACpD,wBAAwB,IAAI,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3E,wBAAwB,IAAI,CAAC,KAAK,GAAG,YAAY;AACjD,6BAA6B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACzD,6BAA6B,GAAG,EAAE,CAAC;AACnC,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtF,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC9C,aAAa;AACb,YAAY,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrJ,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;AACjD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAY;AAC7D,QAAQ,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3C,YAAY,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvD,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACvD,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AACzC,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC;AAC7E,QAAQ,IAAI,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;AACxE,QAAQ,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChE,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC/F,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACvD,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AACzC,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC9E,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC1D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AACnE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC9D;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY,OAAO;AACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAQ,IAAI,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,CAAC;AACxD,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;AACvB,QAAQ,sBAAsB,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACvD,YAAY,KAAK,GAAG,KAAK,IAAI,YAAY,GAAG,IAAI,GAAG,6BAA6B,CAAC,CAAC;AAClF,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACvE,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/E,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC9C,YAAY,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AACzE,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,EAAE;AAC5C,YAAY,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrI,YAAY,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpG,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE;AAChD,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChE,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;AAClD,cAAc,GAAG;AACjB,cAAc,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC7C,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AACvD,SAAS,EAAE,OAAO,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/C;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;AACrD,QAAQ,UAAU,CAAC,YAAY;AAC/B;AACA;AACA,YAAY,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE;AACnD,gBAAgB,IAAI,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/D,gBAAgB,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC3D,gBAAgB,UAAU,CAAC,YAAY;AACvC,oBAAoB,cAAc;AAClC,yBAAyB,QAAQ,CAAC,yCAAyC,CAAC;AAC5E,yBAAyB,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;AAClG,oBAAoB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC/D,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,UAAU,CAAC,YAAY;AACvC,oBAAoB,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;AAC5E,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACxB,aAAa;AACb,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAgB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD,aAAa,EAAE,EAAE,CAAC,CAAC;AACnB,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS;AAC5C,oBAAoB,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;AAChE,oBAAoB,KAAK,CAAC,SAAS,EAAE,CAAC;AACtC,iBAAiB;AACjB,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACrD;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE;AACrD,gBAAgB,UAAU,CAAC,YAAY;AACvC,oBAAoB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvD,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACpD,aAAa;AACb;AACA,YAAY,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACpD,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnD,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvD,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,yBAAyB,GAAG,YAAY;AACnE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC7C,YAAY,OAAO;AACnB,gBAAgB,GAAG,EAAE,CAAC;AACtB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC;AACxD,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3E,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB;AAC9D,aAAa,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;AAC7C,YAAY,CAAC,CAAC;AACd,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;AACtE,QAAQ,IAAI,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC;AAC3E,QAAQ,IAAI,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AACjD,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,GAAG;AACpB,YAAY,MAAM,EAAE,MAAM;AAC1B,SAAS,CAAC;AACV,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE;AAC9E,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE;AACxC,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAC1E,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAClD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB;AACA,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACrD,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,EAAE;AAClD,gBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,qCAAqC,EAAE,YAAY;AAClF,oBAAoB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAC7D,oBAAoB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACvD;AACA,oBAAoB,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,YAAY;AAClE,wBAAwB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9D,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACrD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACpD,aAAa;AACb,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACxC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC7D,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;AAChD,YAAY,IAAI;AAChB,gBAAgB,WAAW,CAAC;AAC5B,oBAAoB,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,oJAAoJ,CAAC,CAAC;AACnL,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACjD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACnC,YAAY,IAAI,WAAW,GAAG,8FAA8F,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,GAAG,kCAAkC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,yCAAyC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,8BAA8B,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,gBAAgB,CAAC;AAC1X,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/E,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACtD,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;AACjD,YAAY,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;AAC7D,SAAS;AACT,aAAa;AACb,YAAY,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACvD,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,IAAI,OAAO,EAAE;AACzB;AACA;AACA,gBAAgB,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,gBAAgB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;AAC9C,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB;AAC7D,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChD,wBAAwB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD,6BAA6B,EAAE,CAAC,KAAK,CAAC;AACtC,6BAA6B,IAAI,CAAC,OAAO,CAAC;AAC1C,6BAA6B,KAAK,EAAE;AACpC,6BAA6B,IAAI,EAAE,CAAC;AACpC,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AAC9D,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,EAAE,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE;AAC1D,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,IAAI,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,YAAY,CAAC,MAAM,CAAC,6BAA6B,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AACxF,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE;AAChE,YAAY,IAAI,OAAO,KAAK,EAAE,EAAE;AAChC,gBAAgB,IAAI,CAAC,KAAK;AAC1B,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AACxD,qBAAqB,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK;AAC1B,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AACxD,qBAAqB,WAAW,CAAC,eAAe,CAAC,CAAC;AAClD,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AACvD,YAAY,KAAK,EAAE,KAAK;AACxB,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACtD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,EAAE;AACvD,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/B,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,SAAS,EAAE;AACpE,QAAQ,IAAI,CAAC,SAAS;AACtB,YAAY,OAAO,EAAE,CAAC;AACtB,QAAQ,OAAO,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,qCAAqC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,oCAAoC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,8BAA8B,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AACjO,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,SAAS,EAAE;AACpE,QAAQ,IAAI,CAAC,SAAS;AACtB,YAAY,OAAO,EAAE,CAAC;AACtB,QAAQ,OAAO,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,8BAA8B,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AACrG,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE;AACvF,QAAQ,IAAI,YAAY,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,YAAY,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC7C,gBAAgB,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5E,aAAa;AACb,iBAAiB;AACjB,gBAAgB,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC7E,aAAa;AACb,YAAY,IAAI,CAAC,YAAY;AAC7B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzE,YAAY,IAAI,eAAe,GAAG,OAAO,GAAG,GAAG,GAAG,WAAW,GAAG,QAAQ,GAAG,kCAAkC,GAAG,YAAY,GAAG,OAAO,CAAC;AACvI,YAAY,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC1D,YAAY,OAAO,eAAe,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE;AAC/E,QAAQ,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAQ,IAAI,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;AACrJ;AACA;AACA,QAAQ,IAAI,UAAU,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrD,QAAQ,IAAI,IAAI,CAAC,6BAA6B,EAAE,EAAE;AAClD,YAAY,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClF,SAAS;AACT,aAAa;AACb,YAAY,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,IAAI,SAAS,GAAG,kCAAkC,GAAG,UAAU,GAAG,YAAY,CAAC;AACvF,QAAQ,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7G,QAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5D,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAClD,YAAY,yBAAyB,EAAE;AACvC,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS;AACT,aAAa;AACb,YAAY,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,YAAY;AAC3D,gBAAgB,MAAM,IAAI,MAAM,EAAE,CAAC;AACnC,aAAa,CAAC,CAAC;AACf,YAAY,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY;AACnD,gBAAgB,OAAO,IAAI,OAAO,EAAE,CAAC;AACrC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE;AAClI,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,yBAAyB,EAAE,YAAY;AACpF,YAAY,KAAK,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACxF,SAAS,EAAE,YAAY;AACvB,YAAY,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC9D,YAAY,YAAY,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;AACrG,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;AAC9G,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1D;AACA;AACA,QAAQ,IAAI,MAAM,GAAG,YAAY;AACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,OAAO;AAC7D,YAAY,CAAC,kBAAkB,CAAC,MAAM;AACtC,cAAc,KAAK;AACnB,cAAc,CAAC,CAAC;AAChB,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC/D,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE;AACvD,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,KAAK,EAAE,KAAK,IAAI,CAAC;AACjC,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS,EAAE,MAAM,CAAC,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,6BAA6B,GAAG,YAAY;AACvE,QAAQ,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU;AAClC,YAAY,IAAI,CAAC,cAAc;AAC/B,YAAY,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnC,KAAK,CAAC;AACN;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,KAAK,EAAE;AAChE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,KAAK,EAAE;AAChD,YAAY,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1F,YAAY,IAAI,OAAO,CAAC,gBAAgB;AACxC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,iBAAiB;AAChD,gBAAgB,CAAC,OAAO,CAAC,MAAM;AAC/B,gBAAgB,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAClD,gBAAgB,OAAO,CAAC,MAAM,GAAG,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AACtH,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE;AAC/D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAQ,IAAI,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,QAAQ,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAC3J,QAAQ,IAAI,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACzC,QAAQ,IAAI,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAC7C,QAAQ,IAAI,WAAW,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACzF,QAAQ,IAAI,kBAAkB,CAAC,UAAU,EAAE;AAC3C,YAAY,IAAI,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrE,YAAY,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,SAAS,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AAC5D,QAAQ,IAAI,YAAY,GAAG,EAAE,CAAC;AAC9B,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACjD,QAAQ,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C;AACA,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC9D,gBAAgB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,EAAE,CAAC;AAClE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC5D,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAClD,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACzF,gBAAgB,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtI,gBAAgB,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACjE,aAAa;AACb,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAC5M,gBAAgB,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,aAAa;AACb,iBAAiB,IAAI,MAAM,EAAE;AAC7B,gBAAgB,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClC,gBAAgB,IAAI,iBAAiB,GAAG,YAAY;AACpD,oBAAoB,IAAI,CAAC,cAAc;AACvC,oBAAoB,IAAI,CAAC,gBAAgB,CAAC;AAC1C,gBAAgB,IAAI,iBAAiB,EAAE;AACvC,oBAAoB,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACnF,iBAAiB;AACjB,gBAAgB,IAAI,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7I,gBAAgB,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,aAAa;AACb,iBAAiB,IAAI,SAAS,EAAE;AAChC,gBAAgB,IAAI,MAAM,GAAG,wCAAwC,GAAG,YAAY,GAAG,WAAW,CAAC;AACnG,gBAAgB,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAC7D,gBAAgB,IAAI,MAAM,IAAI,OAAO,EAAE;AACvC,oBAAoB,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,oBAAoB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/C,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,MAAM,IAAI,SAAS,EAAE;AACrC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACrD,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,GAAG,EAAE,GAAG;AAC5B,oBAAoB,UAAU,EAAE,WAAW;AAC3C,oBAAoB,SAAS,EAAE,CAAC,CAAC,MAAM;AACvC,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,YAAY,IAAI,IAAI,CAAC,UAAU;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE;AAC9D,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC;AACvB;AACA;AACA,QAAQ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACnE,YAAY,MAAM,GAAG,KAAK,CAAC;AAC3B,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,6BAA6B,EAAE,EAAE;AAClD,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,aAAa;AAC7B,qBAAqB,WAAW,CAAC,yCAAyC,CAAC;AAC3E,qBAAqB,UAAU,CAAC,OAAO,CAAC,CAAC;AACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAgB,UAAU,CAAC,YAAY;AACvC,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,OAAO,EAAE;AAC5E,wBAAwB,IAAI,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACzD,wBAAwB,IAAI,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrE,wBAAwB,aAAa;AACrC,6BAA6B,IAAI,CAAC,cAAc,CAAC;AACjD,6BAA6B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxH,wBAAwB,IAAI,MAAM,IAAI,OAAO,EAAE;AAC/C,4BAA4B,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxE,4BAA4B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,OAAO;AAC1E,yBAAyB,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,OAAO;AAC3E,4BAA4B,MAAM,CAAC,EAAE;AACrC,wBAAwB,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/F;AACA,wBAAwB,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY;AACxH,4BAA4B,KAAK,CAAC,2BAA2B,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC5F,yBAAyB,EAAE,YAAY;AACvC,4BAA4B,KAAK,CAAC,2BAA2B,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC5F,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC;AAC/D,aAAa;AACb,SAAS;AACT;AACA,QAAQ,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;AACjD,aAAa,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5E,YAAY,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAChI,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB;AAC3D,YAAY,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;AAClD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC/C,SAAS;AACT;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC1B,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACzD,gBAAgB,aAAa;AAC7B,qBAAqB,IAAI,CAAC,YAAY,CAAC;AACvC,qBAAqB,KAAK,EAAE;AAC5B,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,YAAY;AACxD,oBAAoB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzC,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,2BAA2B,GAAG,UAAU,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;AAChG,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;AACzD,YAAY,aAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxD,YAAY,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAC9D,YAAY,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAC7C,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjC,SAAS,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;AACxB,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AAClG,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,aAAa,KAAK,KAAK,CAAC,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE;AAC5D,QAAQ,IAAI,sBAAsB,GAAG,EAAE,CAAC;AACxC;AACA,QAAQ,IAAI,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC/D,QAAQ,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1F,QAAQ,IAAI,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC;AACrE,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,KAAK,EAAE;AACjE,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;AACnF,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,sBAAsB,CAAC;AAC1C,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE;AACxD,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,GAAG,qBAAqB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;AAC9F,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAChF,aAAa;AACb,YAAY,IAAI,qBAAqB,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACtE,YAAY,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,EAAE,EAAE;AAC1F,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9F,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;AACrE,gBAAgB,GAAG,GAAG,KAAK,GAAG,qBAAqB,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAChE,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAChF,aAAa;AACb,YAAY,IAAI,qBAAqB,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACtE,YAAY,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,EAAE,EAAE;AAC1F,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9F,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAChC,YAAY,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9E,aAAa;AACb,iBAAiB,IAAI,KAAK,KAAK,CAAC,EAAE;AAClC,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3G,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;AAClE,YAAY,sBAAsB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,OAAO,sBAAsB,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AAC5E,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAC7H,QAAQ,sBAAsB,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACvD,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9D,gBAAgB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,6BAA6B,CAAC,CAAC;AACzF,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACvD,YAAY,IAAI,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,gBAAgB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACzC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,sBAAsB,CAAC;AACtC,KAAK,CAAC;AACN;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,qBAAqB,GAAG,YAAY;AAC/D,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC;AAC1B,QAAQ,IAAI;AACZ,YAAY,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK;AAC1C,iBAAiB,IAAI,CAAC,aAAa,CAAC;AACpC,iBAAiB,KAAK,EAAE;AACxB,iBAAiB,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAY,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,SAAS,GAAG,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,KAAK,EAAE;AAC/D,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpC,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAY,IAAI,eAAe,GAAG,kBAAkB,CAAC,WAAW,KAAK,KAAK;AAC1E,gBAAgB,kBAAkB,CAAC,WAAW,KAAK,OAAO,CAAC;AAC3D,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACxD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AACnE,gBAAgB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAC3D,gBAAgB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,WAAW;AACrE,oBAAoB,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC5C,gBAAgB,IAAI,kBAAkB,CAAC,QAAQ,EAAE;AACjD,oBAAoB,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC5E,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE;AAC1G,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,UAAU,CAAC,YAAY;AAC/B;AACA,YAAY,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAChD,YAAY,KAAK,CAAC,KAAK;AACvB,iBAAiB,IAAI,CAAC,UAAU,CAAC;AACjC,iBAAiB,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAC5D,YAAY,IAAI,SAAS,KAAK,MAAM,EAAE;AACtC;AACA,gBAAgB,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC3D,gBAAgB,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC5D,aAAa;AACb,iBAAiB;AACjB;AACA,gBAAgB,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC3D,gBAAgB,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC5D,aAAa;AACb;AACA,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACvE,gBAAgB,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD;AACA,gBAAgB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACvD,aAAa,EAAE,EAAE,CAAC,CAAC;AACnB,SAAS,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC3D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;AACrF,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3E;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,KAAK,EAAE;AACpD,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC5D,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvC,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa;AACb,YAAY,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,YAAY,IAAI,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACnE,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAY,IAAI,SAAS,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AAChE,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACzF,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzC,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACzF,gBAAgB,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxD,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE;AACpD,gBAAgB,SAAS,EAAE,SAAS;AACpC,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,SAAS,EAAE,CAAC,CAAC,SAAS;AACtC,gBAAgB,SAAS,EAAE,CAAC,CAAC,SAAS;AACtC,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,IAAI,KAAK,GAAG,SAAS,EAAE;AACvC,oBAAoB,SAAS,GAAG,MAAM,CAAC;AACvC,iBAAiB;AACjB,qBAAqB,IAAI,KAAK,GAAG,SAAS,EAAE;AAC5C,oBAAoB,SAAS,GAAG,MAAM,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AAC1F,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK;AAC1B,qBAAqB,IAAI,CAAC,UAAU,CAAC;AACrC,qBAAqB,WAAW,CAAC,wCAAwC,CAAC,CAAC;AAC3E,gBAAgB,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC;AACvC,gBAAgB,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC;AACvC,gBAAgB,IAAI,oBAAoB,GAAG,CAAC,EAAE;AAC9C,oBAAoB,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAC1C,oBAAoB,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAC1C,oBAAoB,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,oBAAoB,GAAG,CAAC,EAAE;AAC/E;AACA,wBAAwB,SAAS,GAAG,CAAC,CAAC;AACtC,wBAAwB,SAAS,GAAG,oBAAoB,GAAG,CAAC,CAAC;AAC7D,qBAAqB;AACrB,yBAAyB,IAAI,KAAK,KAAK,oBAAoB,GAAG,CAAC;AAC/D,wBAAwB,SAAS,KAAK,CAAC,EAAE;AACzC;AACA,wBAAwB,SAAS,GAAG,CAAC,CAAC;AACtC,wBAAwB,SAAS,GAAG,oBAAoB,GAAG,CAAC,CAAC;AAC7D,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,SAAS,GAAG,CAAC,CAAC;AAClC,oBAAoB,SAAS,GAAG,CAAC,CAAC;AAClC,iBAAiB;AACjB,gBAAgB,IAAI,SAAS,KAAK,MAAM,EAAE;AAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC3E,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC3E,iBAAiB;AACjB,gBAAgB,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD,aAAa;AACb;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClC,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,YAAY;AACvC,oBAAoB,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACnD;AACA,oBAAoB,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE;AACvE,wBAAwB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7C,qBAAqB;AACrB,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1F,aAAa;AACb,YAAY,UAAU,CAAC,YAAY;AACnC,gBAAgB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AACrC,gBAAgB,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACrE,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE;AACxD,oBAAoB,SAAS,EAAE,SAAS;AACxC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,SAAS,EAAE,SAAS;AACxC,oBAAoB,SAAS,EAAE,SAAS;AACxC,iBAAiB,CAAC,CAAC;AACnB,aAAa,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACjH,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,KAAK,EAAE;AACnE,QAAQ,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;AAC5D,QAAQ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAClF,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE;AAC1D,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS;AACT,aAAa;AACb,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE;AAC5E,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5D,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5D,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,UAAU,GAAG,IAAI,CAAC;AAC9B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;AAC1C,gBAAgB,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACnD,gBAAgB,UAAU,GAAG,IAAI,CAAC;AAClC,aAAa;AACb,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;AAC/C,gBAAgB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;AACjD,gBAAgB,UAAU,GAAG,IAAI,CAAC;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,YAAY,EAAE;AAClD,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;AACrE;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC/C;AACA,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3D;AACA,YAAY,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;AACxD,YAAY,IAAI,gBAAgB,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,GAAG,CAAC;AACtD,YAAY,IAAI,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AAC7E,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACzG,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACxG,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE;AACrD,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC5C,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;AACzE,gBAAgB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACjE,gBAAgB,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;AAC3E,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACvD,gBAAgB,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9E,gBAAgB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7E,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE;AAC/C,oBAAoB,IAAI,CAAC,KAAK;AAC9B,yBAAyB,QAAQ,CAAC,eAAe,CAAC;AAClD,yBAAyB,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAC3D,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE;AAC/E,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,QAAQ,CAAC;AACrB;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAS;AACT;AACA,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACjE,YAAY,KAAK,CAAC,KAAK;AACvB,iBAAiB,WAAW,CAAC,2BAA2B,CAAC;AACzD,iBAAiB,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAChD,YAAY,IAAI,YAAY,GAAG,IAAI,CAAC;AACpC,YAAY,IAAI,KAAK,CAAC,cAAc,KAAK,YAAY,EAAE;AACvD,gBAAgB,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC/D,gBAAgB,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AAChF,gBAAgB,IAAI,QAAQ,GAAG,CAAC;AAChC,oBAAoB,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE;AACjE,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9C,oBAAoB,YAAY,GAAG,KAAK,CAAC;AACzC,iBAAiB;AACjB,qBAAqB,IAAI,QAAQ,GAAG,CAAC;AACrC,oBAAoB,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE;AACjE,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9C,oBAAoB,YAAY,GAAG,KAAK,CAAC;AACzC,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE;AAC1D,gBAAgB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACzE,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ;AAC3C,oBAAoB,KAAK,CAAC,QAAQ,CAAC,YAAY;AAC/C,oBAAoB,QAAQ,GAAG,GAAG,EAAE;AACpC,oBAAoB,KAAK,CAAC,YAAY,EAAE,CAAC;AACzC,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACtD,iBAAiB;AACjB,aAAa;AACb,YAAY,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7D,YAAY,IAAI,YAAY;AAC5B,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACnE;AACA,gBAAgB,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/C,gBAAgB,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AACnD,oBAAoB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7D,iBAAiB;AACjB,aAAa;AACb,YAAY,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;AAC7C,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;AACpD,gBAAgB,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AACpD,gBAAgB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACpD,aAAa;AACb,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACrD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,WAAW,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACvC,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;AACzD,gBAAgB,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChD,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD,oBAAoB,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;AACtD,oBAAoB,CAAC,KAAK,CAAC,MAAM;AACjC,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,oBAAoB,SAAS,GAAG,IAAI,CAAC;AACrC,oBAAoB,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAChD,oBAAoB,KAAK,CAAC,gBAAgB,EAAE,CAAC;AAC7C,oBAAoB,WAAW,GAAG;AAClC,wBAAwB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACjD,wBAAwB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACjD,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE;AACxD,gBAAgB,IAAI,SAAS;AAC7B,oBAAoB,KAAK,CAAC,WAAW,KAAK,OAAO;AACjD,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,oBAAoB,SAAS,GAAG;AAChC,wBAAwB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACjD,wBAAwB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACjD,qBAAqB,CAAC;AACtB,oBAAoB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/D,oBAAoB,OAAO,GAAG,IAAI,CAAC;AACnC,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,EAAE;AAC3D,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;AACnD,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,OAAO,GAAG,KAAK,CAAC;AACxC,wBAAwB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACtE,qBAAqB;AACrB,yBAAyB,IAAI,SAAS,EAAE;AACxC,wBAAwB,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvD,wBAAwB,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAC3D,4BAA4B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACrE,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;AAClD,oBAAoB,SAAS,GAAG,KAAK,CAAC;AACtC,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACpD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,WAAW,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE;AACvD,gBAAgB,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChD,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AACrD,oBAAoB,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD,oBAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7E,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3C,4BAA4B,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACrD,4BAA4B,WAAW,GAAG;AAC1C,gCAAgC,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9C,gCAAgC,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9C,6BAA6B,CAAC;AAC9B,4BAA4B,SAAS,GAAG,IAAI,CAAC;AAC7C;AACA,4BAA4B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC;AAC9D,4BAA4B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC;AAC9D;AACA,4BAA4B,KAAK,CAAC,KAAK;AACvC,iCAAiC,WAAW,CAAC,SAAS,CAAC;AACvD,iCAAiC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzD,4BAA4B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnE,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AAC3E,gBAAgB,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;AACjD,oBAAoB,OAAO,GAAG,IAAI,CAAC;AACnC,oBAAoB,SAAS,GAAG;AAChC,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK;AACtC,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK;AACtC,qBAAqB,CAAC;AACtB,oBAAoB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC5D,oBAAoB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1D,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,EAAE;AAC7E,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACrC,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,gBAAgB,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/C,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,GAAG,KAAK,CAAC;AACpC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAClE,oBAAoB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD,iBAAiB;AACjB,qBAAqB,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AACxD,oBAAoB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7D,iBAAiB;AACjB;AACA,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,SAAS,GAAG,KAAK,CAAC;AACtC,oBAAoB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/E,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE;AACpD,YAAY,IAAI,CAAC,KAAK,CAAC,kBAAkB;AACzC,gBAAgB,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAC1D,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AAC1D,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAChE,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAClC,gBAAgB,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,aAAa;AACb,iBAAiB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAClE,gBAAgB,UAAU,GAAG,CAAC,CAAC;AAC/B,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAC/E,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;AAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACpE,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAChE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,SAAS,EAAE;AAChE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,KAAK,GAAG,KAAK,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3D,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC;AAC7B,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;AAC5D,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK;AACrC,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACnE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnC,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;AAChE,wBAAwB,KAAK,EAAE,IAAI,CAAC,KAAK;AACzC,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,iBAAiB;AACjB,qBAAqB,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE;AACxE,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACxD,oBAAoB,UAAU,CAAC,YAAY;AAC3C,wBAAwB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AAChE,qBAAqB,EAAE,GAAG,CAAC,CAAC;AAC5B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,SAAS,EAAE;AAChE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,KAAK,GAAG,KAAK,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC;AAC7B,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;AAC5D,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK;AACrC,oBAAoB,SAAS,EAAE,SAAS;AACxC,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACnE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;AAChE,wBAAwB,KAAK,EAAE,IAAI,CAAC,KAAK;AACzC,wBAAwB,SAAS,EAAE,SAAS;AAC5C,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,iBAAiB;AACjB,qBAAqB,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE;AACxE,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACvD,oBAAoB,UAAU,CAAC,YAAY;AAC3C,wBAAwB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC/D,qBAAqB,EAAE,GAAG,CAAC,CAAC;AAC5B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAClD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AACrE,YAAY,IAAI,KAAK,CAAC,QAAQ;AAC9B,gBAAgB,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI;AAC9C,gBAAgB,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AAClC,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB;AACpD,oBAAoB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;AACzD,oBAAoB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AAChE,oBAAoB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAClE,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,KAAK,CAAC,YAAY,EAAE,CAAC;AACzC,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,gBAAgB,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACtC,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC;AACvC,oBAAoB,KAAK,CAAC,aAAa,EAAE,CAAC;AAC1C,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACtC,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC;AACvC,oBAAoB,KAAK,CAAC,aAAa,EAAE,CAAC;AAC1C,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC/C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY;AAClE,YAAY,KAAK,CAAC,aAAa,EAAE,CAAC;AAClC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY;AAClE,YAAY,KAAK,CAAC,aAAa,EAAE,CAAC;AAClC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC3D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AACnE,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACvD,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACvD,YAAY,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACxD,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrE,aAAa;AACb,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;AAC7B,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrE,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACzF,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc;AAC3C,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,mBAAmB;AAC/B,YAAY,MAAM;AAClB,YAAY,IAAI;AAChB,YAAY,MAAM;AAClB,YAAY,MAAM,CAAC,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACpD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AAC/C,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5D,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE;AACvC,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,QAAQ,GAAG,GAAG,CAAC;AAC3B,YAAY,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAgB,KAAK,CAAC,aAAa,EAAE,CAAC;AACtC,aAAa;AACb,iBAAiB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAgB,KAAK,CAAC,aAAa,EAAE,CAAC;AACtC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE;AAC9D,QAAQ,QAAQ,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC3C,YAAY,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtC,YAAY,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC5C,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,MAAM,EAAE;AAC/D,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD,aAAa,IAAI,CAAC,uBAAuB,CAAC;AAC1C,aAAa,GAAG,EAAE,CAAC;AACnB,QAAQ,QAAQ,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAClD,YAAY,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AACnD,aAAa,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AAC/D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY;AACtE,YAAY,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AACtD,YAAY,KAAK,CAAC,eAAe,EAAE,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AACzD,QAAQ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAChE,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAY,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACxC,YAAY,QAAQ,CAAC,GAAG,CAAC,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/E,SAAS;AACT,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AACnD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACpC,YAAY,aAAa,EAAE,IAAI;AAC/B,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AACrE,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACjC,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,IAAI,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;AAClE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,IAAI,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,YAAY,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,YAAY,IAAI,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,CAAC,QAAQ,EAAE;AAC5B,gBAAgB,IAAI,QAAQ,CAAC,aAAa,KAAK,gBAAgB,EAAE;AACjE,oBAAoB,eAAe,CAAC,KAAK,EAAE,CAAC;AAC5C,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,KAAK,eAAe,EAAE;AAChE,oBAAoB,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC7C,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACnC,YAAY,OAAO;AACnB,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY;AACnE,YAAY,KAAK,CAAC,YAAY,EAAE,CAAC;AACjC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC;AACA;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE;AACvD,gBAAgB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,gBAAgB,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAClD,oBAAoB,SAAS,GAAG,IAAI,CAAC;AACrC,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,SAAS,GAAG,KAAK,CAAC;AACtC,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY;AACtD,gBAAgB,SAAS,GAAG,KAAK,CAAC;AAClC,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;AACrD,gBAAgB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,gBAAgB,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE;AAC/D,oBAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC9D,wBAAwB,KAAK,CAAC,YAAY,EAAE,CAAC;AAC7C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC3D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;AACnE,YAAY,OAAO,CAAC,CAAC;AACrB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC/E,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD,SAAS;AACT,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,IAAI,SAAS,CAAC;AACtB,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,WAAW,EAAE;AAChD,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACrF,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/G,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC7I,YAAY,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9F,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AACjE,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,iBAAiB,QAAQ,CAAC,uBAAuB,CAAC;AAClD,iBAAiB,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACxF,iBAAiB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC7C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACjD;AACA;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AACzD,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3D,QAAQ,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACpC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS;AAC5D,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC5F,cAAc,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAClD;AACA,QAAQ,UAAU,CAAC,YAAY;AAC/B,YAAY,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE;AACnD,gBAAgB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAC9D,aAAa;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACpD;AACA,YAAY,KAAK,CAAC,cAAc,EAAE,CAAC;AACnC;AACA,YAAY,KAAK,CAAC,SAAS;AAC3B,iBAAiB,UAAU,CAAC,OAAO,CAAC;AACpC,iBAAiB,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AACpF,YAAY,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/E,YAAY,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AACjF,YAAY,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE;AAChC,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE;AACxD,oBAAoB,QAAQ,EAAE,KAAK;AACnC,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE;AACxC,gBAAgB,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAC9C,aAAa;AACb,YAAY,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,SAAS,EAAE,aAAa,GAAG,GAAG,CAAC,CAAC;AAChC,QAAQ,OAAO,aAAa,GAAG,GAAG,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACrD,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAC/C,YAAY,IAAI;AAChB,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9B,aAAa;AACb,YAAY,OAAO,GAAG,EAAE;AACxB,gBAAgB,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACnG,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,OAAO,EAAE;AAC/D,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAC/C,YAAY,IAAI;AAChB,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC;AACrC,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;AACjE,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,GAAG,EAAE;AACxB,gBAAgB,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACnG,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,YAAY,EAAE;AAC7D,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AAC7C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACxD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1C,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACxD,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACjC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACjD,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACnD,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK,CAAC;AACN,IAAI,OAAO,YAAY,CAAC;AACxB,CAAC,EAAE,CAAC,CAAC;AACL;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE;AACnC,IAAI,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\No newline at end of file