{"version":3,"file":"chunk-gafxbqts.js","sources":["node_modules/dexie/dist/dexie.js","packages/design-system/ui/searchbar/src/ds-searchbar-directive.ts","packages/design-system/ui/searchbar/src/searchbar.component.html","packages/design-system/ui/searchbar/src/searchbar.component.ts","packages/casino/platform-lib/core/client-config/abtesting-config.ts","packages/casino/platform-lib/core/client-config/advance-game-data.config.ts","packages/casino/platform-lib/core/client-config/api-paths.config.ts","packages/casino/platform-lib/core/client-config/arcadelobby-config.ts","packages/casino/platform-lib/core/client-config/betmgmoriginals-config.ts","packages/casino/platform-lib/core/client-config/casino-config.config.ts","packages/casino/platform-lib/core/client-config/casino-overlay.config.ts","packages/casino/platform-lib/core/client-config/clientside-config.ts","packages/casino/platform-lib/core/client-config/common.config.ts","packages/casino/platform-lib/core/client-config/cozy-bingo.config.ts","packages/casino/platform-lib/core/client-config/dev-settings.config.ts","packages/casino/platform-lib/core/client-config/discover-feed.config.ts","packages/casino/platform-lib/core/client-config/download-app-from-device.config.ts","packages/casino/platform-lib/core/client-config/features.config.ts","packages/casino/platform-lib/core/client-config/feed-cache.config.ts","packages/casino/platform-lib/core/client-config/freespins.config.ts","packages/casino/platform-lib/core/client-config/game-launch-tracking.config.ts","packages/casino/platform-lib/core/client-config/game-premiere.config.ts","packages/casino/platform-lib/core/client-config/game-selector-widget.config.ts","packages/casino/platform-lib/core/client-config/game-show-hub.config.ts","packages/casino/platform-lib/core/client-config/game.config.ts","packages/casino/platform-lib/core/client-config/gameimpressions-config.ts","packages/casino/platform-lib/core/client-config/gamification-widget-config.ts","packages/casino/platform-lib/core/client-config/gaming-stories-config.ts","packages/casino/platform-lib/core/client-config/gaming-stories-phase2-config.ts","packages/casino/platform-lib/core/client-config/geo-location.config.ts","packages/casino/platform-lib/core/client-config/global-jackpot.config.ts","packages/casino/platform-lib/core/client-config/global-search.config.ts","packages/casino/platform-lib/core/client-config/global.config.ts","packages/casino/platform-lib/core/client-config/header-teaser.config.ts","packages/casino/platform-lib/core/client-config/image-load-optimization.config.ts","packages/casino/platform-lib/core/client-config/immersive-lobby.config.ts","packages/casino/platform-lib/core/client-config/jackpot-data.config.ts","packages/casino/platform-lib/core/client-config/live-casino-lounge.config.ts","packages/casino/platform-lib/core/client-config/live-dealer.config.ts","packages/casino/platform-lib/core/client-config/livecasino-config.ts","packages/casino/platform-lib/core/client-config/lmt-data.config.ts","packages/casino/platform-lib/core/client-config/mc-page.config.ts","packages/casino/platform-lib/core/client-config/minbetgames-config.ts","packages/casino/platform-lib/core/client-config/modular-bingo.config.ts","packages/casino/platform-lib/core/client-config/modular-settings.config.ts","packages/casino/platform-lib/core/client-config/modularization-config.ts","packages/casino/platform-lib/core/client-config/native-game-launch.config.ts","packages/casino/platform-lib/core/client-config/news-feed.config.ts","packages/casino/platform-lib/core/client-config/noncritical-config.ts","packages/casino/platform-lib/core/client-config/optimized-teaser.config.ts","packages/casino/platform-lib/core/client-config/player-stats-config.ts","packages/casino/platform-lib/core/client-config/pre-login.config.ts","packages/casino/platform-lib/core/client-config/promo-coin-economy-config.ts","packages/casino/platform-lib/core/client-config/promo-offer-widget-config.ts","packages/casino/platform-lib/core/client-config/promoted-games.config.ts","packages/casino/platform-lib/core/client-config/promotions-banner.config.ts","packages/casino/platform-lib/core/client-config/promotions-info.config.ts","packages/casino/platform-lib/core/client-config/quick-info.config.ts","packages/casino/platform-lib/core/client-config/recent-winners-config.ts","packages/casino/platform-lib/core/client-config/recentlyplayed-games.config.ts","packages/casino/platform-lib/core/client-config/search.config.ts","packages/casino/platform-lib/core/client-config/slot-races.config.ts","packages/casino/platform-lib/core/client-config/smart-lobby.config.ts","packages/casino/platform-lib/core/client-config/sub-nav.config.ts","packages/casino/platform-lib/core/client-config/super-button.config.ts","packages/casino/platform-lib/core/client-config/thumbnailconfig.ts","packages/casino/platform-lib/core/client-config/video-preview.config.ts","packages/casino/platform-lib/core/client-config/widget.config.ts","packages/casino/platform-lib/core/public-api.ts","packages/casino/platform-lib/core/cashier-iframe/cashier-iframe.component.ts","packages/casino/platform-lib/core/cashier-iframe/cashier-iframe.component.html","packages/casino/platform-lib/core/cashier-iframe/game-pop-out.component.ts","packages/casino/platform-lib/core/cashier-iframe/game-pop-out.component.html","packages/casino/platform-lib/core/casino-lobby-manager/lobby-details-model/lobby-item.model.ts","packages/casino/platform-lib/core/casino-lobby-manager/casino-lobby.models.ts","packages/casino/platform-lib/utils/utils.ts","packages/casino/platform-lib/core/platform-api/platform-api.service.ts","packages/casino/platform-lib/core/shared/models/common.model.ts","packages/casino/platform-lib/core/casino-lobby-manager/game-manager/game-manager.service.ts","packages/casino/platform-lib/core/image-loader/image-loader.component.ts","packages/casino/platform-lib/core/image-loader/image-loader.component.html","packages/casino/platform-lib/core/shared/invoker-product.service.ts","packages/casino/platform-lib/core/shared/casino-widget.service.ts","packages/casino/platform-lib/core/shared/models/home-lobby.model.ts","packages/casino/platform-lib/core/shared/nativeapi.service.ts","packages/casino/platform-lib/core/shared/casino-manager.service.ts","packages/casino/platform-lib/core/shared/const.service.ts","packages/casino/platform-lib/core/tracking/vanilla-tracking-adapter.model.ts","packages/casino/platform-lib/core/tracking/vanilla-tracking-adapter.service.ts","packages/casino/platform-lib/core/platform-api/platform-bingo-api.service.ts","packages/casino/platform-lib/core/utilities/url-utility.service.ts","packages/casino/platform-lib/core/shared/api-paths-helper-service.ts","packages/casino/platform-lib/core/shared/bingo-favorite-service.ts","packages/casino/platform-lib/core/shared/casino-core-npm-params.service.ts","packages/casino/platform-lib/core/shared/casino-iframe-overlay.service.ts","packages/casino/platform-lib/core/shared/casino-api.service.ts","packages/casino/platform-lib/core/shared/cozybingodata.service.ts","packages/casino/platform-lib/core/shared/favourite.service.ts","packages/casino/platform-lib/core/shared/gamelaunchfactory.service.ts","packages/casino/platform-lib/core/shared/jackpotdata-service.ts","node_modules/dexie/import-wrapper.mjs","packages/casino/platform-lib/core/indexed-db/indexed-db.model.ts","packages/casino/platform-lib/core/indexed-db/indexed-db.service.ts","packages/casino/platform-lib/core/indexed-db/indexed-db-manager.service.ts","packages/casino/platform-lib/core/shared/localstorage.expirable.persistence.service.ts","packages/casino/platform-lib/core/shared/models/gameDataFromCacheResponse.model.ts","packages/casino/platform-lib/core/shared/cache-manager.service.ts","packages/casino/platform-lib/core/shared/unfinished-games-service.ts","packages/casino/platform-lib/core/game-embed/game-embed.component.html","packages/casino/platform-lib/core/game-embed/game-embed.component.ts","packages/casino/platform-lib/core/search-desktop/lazy-search-desktop.component.ts","packages/casino/platform-lib/core/shared/models/advance-game-data.model.ts","packages/casino/platform-lib/core/shared/advance-game-data.service.ts","packages/casino/platform-lib/core/shared/cashier.service.ts","packages/casino/platform-lib/core/shared/freespins-summary.service.ts","packages/casino/platform-lib/core/shared/models/game-lobby.model.ts","packages/casino/platform-lib/core/shared/game-data-manager.service.ts","packages/casino/platform-lib/core/shared/game-launch-tracking.service.ts","packages/casino/platform-lib/core/shared/jackpot.service.ts","packages/casino/platform-lib/core/shared/models/gamelaunch.model.ts","packages/casino/platform-lib/core/shared/open-login-dialog-v6.ts","packages/casino/platform-lib/core/shared/recent-games.service.ts","packages/casino/platform-lib/core/slot-races/shared/slot-races.service.ts","packages/casino/platform-lib/core/embedded-game-view/embedded-game-view.component.html","packages/casino/platform-lib/core/embedded-game-view/embedded-game-view.component.ts","packages/casino/platform-lib/core/shared/teaser.service.ts","packages/casino/platform-lib/core/embedded-game-popup/embedded-game-popup.component.html","packages/casino/platform-lib/core/embedded-game-popup/embedded-game-popup.component.ts","packages/casino/platform-lib/core/directives/globaltranslate/globaltranslate.component.ts","packages/casino/platform-lib/core/header-box/header-box.component.html","packages/casino/platform-lib/core/header-box/header-box.component.ts","packages/casino/platform-lib/core/shared/game-launch-places.service.ts","packages/casino/platform-lib/core/game-detail/game-detail-buttons/game-detail-buttons.component.html","packages/casino/platform-lib/core/game-detail/game-detail-buttons/game-detail-buttons.component.ts","packages/casino/platform-lib/core/game-detail/game-detail.component.html","packages/casino/platform-lib/core/game-detail/game-detail.component.ts","packages/casino/platform-lib/core/geolocation/services/activator.service.ts","packages/geo-coordinator-lib/permissions-manager/src/permissions-manager.component.ts","packages/geo-coordinator-lib/permissions-manager/src/permissions-manager.component.html","packages/geo-coordinator-lib/permissions-manager/src/geocoordinator-permissions-manager.service.ts","packages/casino/platform-lib/core/geolocation/services/coordinator.service.ts","packages/geo-coordinator-lib/client-stub/src/coordinator.models.ts","packages/casino/platform-lib/core/geolocation/geo-location-error/geo-location-error.html","packages/casino/platform-lib/core/geolocation/geo-location-error/geo-location-error.component.ts","packages/casino/platform-lib/core/geolocation/services/geolocation-validation.service.ts","packages/casino/platform-lib/core/shared/geolocation-tracking.service.ts","packages/casino/platform-lib/core/geolocation/installer/installer.component.html","packages/casino/platform-lib/core/geolocation/installer/installer.component.ts","packages/casino/platform-lib/core/geolocation/services/installer-dialog.service.ts","packages/casino/platform-lib/core/geolocation/services/geolocation-check.service.ts","packages/casino/platform-lib/core/shared/utility.service.ts","packages/casino/platform-lib/core/shared/cookie.service.ts","packages/casino/platform-lib/core/shared/gamelaunch-url-formation.service.ts","packages/casino/platform-lib/core/shared/globalsearch-helper.service.ts","packages/casino/platform-lib/core/shared/monitor.service.ts","packages/casino/platform-lib/core/shared/nativeapphelper.service.ts","packages/casino/platform-lib/core/shared/navigator.service.ts","packages/casino/platform-lib/core/shared/search-section.service.ts","packages/casino/platform-lib/core/shared/vc-client.service.ts","packages/casino/platform-lib/core/shared/gamelaunch.service.ts","packages/casino/platform-lib/core/confirm-message/confirm-message.component.html","packages/casino/platform-lib/core/confirm-message/confirm-message.component.ts","packages/casino/platform-lib/core/directives/custom-carousel-pagination.component.ts","packages/casino/platform-lib/core/directives/intersection-observer/from-intersection-observer.ts","packages/casino/platform-lib/core/directives/intersection-observer/intersection-observer.directive.ts","packages/casino/platform-lib/core/directives/long-press.directive.ts","packages/casino/platform-lib/core/directives/search-highlight-filter/search-highlight.filter.ts","packages/casino/platform-lib/core/gif-tag/gif-tag.component.html","packages/casino/platform-lib/core/gif-tag/gif-tag.component.ts","packages/casino/platform-lib/core/shared/time-zone.service.ts","packages/casino/platform-lib/core/lc-timer/lc-timer.component.html","packages/casino/platform-lib/core/lc-timer/lc-timer.component.ts","packages/casino/platform-lib/core/shared/arcade-lobby-tracking.service.ts","packages/casino/platform-lib/core/shared/betmgm-originals.service.ts","packages/casino/platform-lib/core/shared/bingo-vf-services/bingo-game-launch.service.ts","packages/casino/platform-lib/core/shared/category-manager.service.ts","packages/casino/platform-lib/core/shared/cozybingo-toast-message.service.ts","packages/casino/platform-lib/core/shared/discover-feed.service.ts","packages/casino/platform-lib/core/shared/ds-enabler.service.ts","packages/casino/platform-lib/core/shared/forceGameLaunchHandler.service.ts","packages/casino/platform-lib/core/shared/game-selector-widget.service.ts","packages/casino/platform-lib/core/shared/game.service.ts","packages/casino/platform-lib/core/shared/models/gaming-stories.model.ts","packages/casino/platform-lib/core/shared/gaming-stories.service.ts","packages/casino/platform-lib/core/shared/global-jackpot-mod.service.ts","packages/casino/platform-lib/core/shared/livecasino.service.ts","packages/casino/platform-lib/core/shared/models/game-selector-widget.model.ts","packages/casino/platform-lib/core/shared/new-quick-info.service.ts","packages/casino/platform-lib/core/shared/news-feed-v2.service.ts","packages/casino/platform-lib/core/shared/news-feed.service.ts","packages/casino/platform-lib/core/shared/optimizedTeaser-manager.service.ts","packages/casino/platform-lib/core/shared/other-product.service.ts","packages/casino/platform-lib/core/shared/pipes/currencySymbol.pipe.ts","packages/casino/platform-lib/core/shared/pipes/currencyformat.pipe.ts","packages/casino/platform-lib/core/shared/pipes/sitecore-image-resize.pipe.ts","packages/casino/platform-lib/core/shared/player-stats.service.ts","packages/casino/platform-lib/core/shared/promoted-games.service.ts","packages/casino/platform-lib/core/shared/promotions-banner.service.ts","packages/casino/platform-lib/core/shared/quick-info-modal.service.ts","packages/casino/platform-lib/core/shared/recent-winners.service.ts","packages/casino/platform-lib/core/shared/sign-posting.service.ts","packages/casino/platform-lib/core/shared/smartBanner.service.ts","packages/casino/platform-lib/core/shared/super-button.service.ts","packages/casino/platform-lib/core/shared/thumbnail.service.ts","packages/casino/platform-lib/core/shared/timezone-format.pipe.ts","packages/casino/platform-lib/core/shared/windowref.service.ts","packages/casino/platform-lib/core/slot-races/shared/slot-races-tracking.service.ts","packages/casino/platform-lib/core/slot-races/shared/slot-races.models.ts","packages/casino/platform-lib/core/casino-lobby-manager/global-search/global-search.model.ts","packages/casino/platform-lib/core/casino-lobby-manager/global-search/global-search.service.ts","packages/casino/platform-lib/core/casino-lobby-manager/casino-styles/casino-styles.service.ts","node_modules/@rx-angular/state/fesm2022/state-effects.mjs","packages/casino/platform-lib/core/casino-lobby-manager/jackpot-and-promotions/jackpot-and-promotions.service.ts","packages/casino/platform-lib/core/config-provider/config-provider.service.ts","packages/casino/platform-lib/core/casino-lobby-manager/geo-location/geo-location.model.ts","packages/casino/platform-lib/core/casino-lobby-manager/geo-location/geo-location.service.ts","packages/casino/platform-lib/core/casino-lobby-manager/casino-lobby.service.ts","packages/casino/platform-lib/core/search-desktop/search-desktop.component.html","packages/casino/platform-lib/core/search-desktop/search-desktop.component.ts","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-free-spins/quick-info-free-spins.component.html","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-free-spins/quick-info-free-spins.component.ts","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-game-description/quick-info-game-description.component.html","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-game-description/quick-info-game-description.component.ts","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-more-info/quick-info-more-info.component.html","packages/casino/platform-lib/new-game-quick-info/nav-quick-info-more-info/quick-info-more-info.component.ts","packages/casino/platform-lib/new-game-quick-info/new-quick-info-modal/new-quick-info-modal.component.html","packages/casino/platform-lib/new-game-quick-info/new-quick-info-modal/new-quick-info-modal.component.ts","packages/casino/platform-lib/new-game-quick-info/new-game-quick-info.component.ts","node_modules/@angular/material/fesm2022/bottom-sheet.mjs","packages/casino/platform-lib/src/lib/services/lib-mock.service.ts","packages/casino/platform-lib/src/lib/modular-casino/services/games-reader.service.ts","packages/casino/platform-lib/src/lib/modular-casino/screen-size.enum.ts","packages/casino/platform-lib/src/lib/modular-casino/services/swiper-config.service.ts","packages/casino/ui-lib/jackpot-ribbon/src/jackpot-value-serializer.service.ts","packages/casino/ui-lib/jackpot-ribbon/src/jackpot-value-formatter.pipe.ts","packages/casino/ui-lib/jackpot-ribbon/src/jackpot-ribbon.component.html","packages/casino/ui-lib/jackpot-ribbon/src/jackpot-ribbon.component.ts","packages/casino/ui-lib/jackpot-ribbon/src/incremental-ticking.directive.ts","packages/casino/ui-lib/jackpot-ribbon/src/jackpot-value-event-hydrator.directive.ts","packages/casino/platform-lib/src/lib/modular-casino/directives/favourite.directive.ts","packages/casino/platform-lib/src/lib/modular-casino/directives/moreinfo.directive.ts","packages/casino/platform-lib/src/lib/modular-casino/services/jackpot-ribbon-render.service.ts","packages/casino/platform-lib/src/lib/modular-casino/services/modular-gamelaunch.service.ts","packages/casino/platform-lib/src/lib/top-ten-games/top-ten-game-tile/top-ten-game-tile.component.ts","packages/casino/platform-lib/src/lib/top-ten-games/top-ten-game-tile/top-ten-game-tile.component.html","packages/casino/platform-lib/src/lib/top-ten-games/top-ten-games.model.ts","packages/casino/platform-lib/src/lib/top-ten-games/top-ten-games.component.html","packages/casino/platform-lib/src/lib/top-ten-games/top-ten-games.component.ts","node_modules/@angular/material/fesm2022/progress-bar.mjs","node_modules/@ngu/carousel/fesm2022/ngu-carousel.mjs","packages/casino/platform-lib/src/lib/casino-core-lazy-placeholder/casino-core-lazy-routes.ts","packages/casino/platform-lib/src/lib/casino-core-lazy-placeholder/casino-core-lazy-route.service.ts","packages/casino/platform-lib/src/lib/casino-core-lazy-placeholder/casino-core-lazy-placeholder.component.ts","packages/casino/platform-lib/src/lib/casino-core-lazy-placeholder/casino-core-lazy-placeholder.component.html","node_modules/@angular/material/fesm2022/grid-list.mjs","node_modules/ng-in-viewport/fesm2022/ng-in-viewport.mjs","node_modules/@rx-angular/cdk/fesm2022/cdk-notifications.mjs","node_modules/@rx-angular/cdk/fesm2022/cdk-template.mjs","node_modules/@rx-angular/template/fesm2022/template-let.mjs","packages/casino/platform-lib/src/lib/freespins-summary/freespins-summary.component.html","packages/casino/platform-lib/src/lib/freespins-summary/freespins-summary.component.ts","packages/casino/platform-lib/src/lib/freespins-summary/freespins-quick-info/freespins-quick-info.component.html","packages/casino/platform-lib/src/lib/freespins-summary/freespins-quick-info/freespins-quick-info.component.ts","packages/casino/platform-lib/src/lib/stickers-jackpot/stickers-jackpot.component.html","packages/casino/platform-lib/src/lib/stickers-jackpot/stickers-jackpot.component.ts","packages/casino/platform-lib/bingo-quick-info-model/bingo-quick-info-model.component.html","packages/casino/platform-lib/bingo-quick-info-model/bingo-quick-info-model.component.ts","packages/casino/platform-lib/src/lib/game-quick-info/game-quick-info.component.html","packages/casino/platform-lib/src/lib/game-quick-info/game-quick-info.component.ts","packages/casino/platform-lib/src/lib/services/quick-info.service.ts","packages/casino/platform-lib/src/lib/quick-info-modal/quick-info-modal.component.html","packages/casino/platform-lib/src/lib/quick-info-modal/quick-info-modal.component.ts","packages/casino/platform-lib/src/lib/gamelobby/gamelobby.component.html","packages/casino/platform-lib/src/lib/gamelobby/gamelobby.component.ts","packages/casino/platform-lib/src/lib/feature-grid/feature-grid.component.html","packages/casino/platform-lib/src/lib/feature-grid/feature-grid.component.ts","node_modules/@cloudflare/stream-angular/fesm2020/cloudflare-stream-angular.mjs"],"sourcesContent":["/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 4.0.10, Fri Nov 15 2024\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dexie = factory());\n})(this, function () {\n 'use strict';\n\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n var _global = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n var keys = Object.keys;\n var isArray = Array.isArray;\n if (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n }\n function extend(obj, extension) {\n if (typeof extension !== 'object') return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n }\n var getProto = Object.getPrototypeOf;\n var _hasOwn = {}.hasOwnProperty;\n function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n }\n function props(proto, extension) {\n if (typeof extension === 'function') extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n }\n var defineProperty = Object.defineProperty;\n function setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ? {\n get: functionOrGetSet.get,\n set: functionOrGetSet.set,\n configurable: true\n } : {\n value: functionOrGetSet,\n configurable: true,\n writable: true\n }, options));\n }\n function derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n }\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n function getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n }\n var _slice = [].slice;\n function slice(args, start, end) {\n return _slice.call(args, start, end);\n }\n function override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n }\n function assert(b) {\n if (!b) throw new Error(\"Assertion Failed\");\n }\n function asap$1(fn) {\n if (_global.setImmediate) setImmediate(fn);else setTimeout(fn, 0);\n }\n function arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue) result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n }\n function getByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath)) return obj[keyPath];\n if (!keyPath) return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n }\n function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined) return;\n if ('isFrozen' in Object && Object.isFrozen(obj)) return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n } else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\") {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) obj.splice(currentKeyPath, 1);else delete obj[currentKeyPath];\n } else obj[currentKeyPath] = value;\n } else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath)) innerObj = obj[currentKeyPath] = {};\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n } else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath))) obj.splice(keyPath, 1);else delete obj[keyPath];\n } else obj[keyPath] = value;\n }\n }\n }\n function delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string') setByKeyPath(obj, keyPath, undefined);else if ('length' in keyPath) [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n }\n function shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m)) rv[m] = obj[m];\n }\n return rv;\n }\n var concat = [].concat;\n function flatten(a) {\n return concat.apply([], a);\n }\n var intrinsicTypeNames = \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\".split(',').concat(flatten([8, 16, 32, 64].map(function (num) {\n return [\"Int\", \"Uint\", \"Float\"].map(function (t) {\n return t + num + \"Array\";\n });\n }))).filter(function (t) {\n return _global[t];\n });\n var intrinsicTypes = new Set(intrinsicTypeNames.map(function (t) {\n return _global[t];\n }));\n function cloneSimpleObjectTree(o) {\n var rv = {};\n for (var k in o) if (hasOwn(o, k)) {\n var v = o[k];\n rv[k] = !v || typeof v !== 'object' || intrinsicTypes.has(v.constructor) ? v : cloneSimpleObjectTree(v);\n }\n return rv;\n }\n function objectIsEmpty(o) {\n for (var k in o) if (hasOwn(o, k)) return false;\n return true;\n }\n var circularRefs = null;\n function deepClone(any) {\n circularRefs = new WeakMap();\n var rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n }\n function innerDeepClone(x) {\n if (!x || typeof x !== 'object') return x;\n var rv = circularRefs.get(x);\n if (rv) return rv;\n if (isArray(x)) {\n rv = [];\n circularRefs.set(x, rv);\n for (var i = 0, l = x.length; i < l; ++i) {\n rv.push(innerDeepClone(x[i]));\n }\n } else if (intrinsicTypes.has(x.constructor)) {\n rv = x;\n } else {\n var proto = getProto(x);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs.set(x, rv);\n for (var prop in x) {\n if (hasOwn(x, prop)) {\n rv[prop] = innerDeepClone(x[prop]);\n }\n }\n }\n return rv;\n }\n var toString = {}.toString;\n function toStringTag(o) {\n return toString.call(o).slice(8, -1);\n }\n var iteratorSymbol = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n var getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n } : function () {\n return null;\n };\n function delArrayItem(a, x) {\n var i = a.indexOf(x);\n if (i >= 0) a.splice(i, 1);\n return i >= 0;\n }\n var NO_CHAR_ARRAY = {};\n function getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike)) return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') return [arrayLike];\n if (it = getIteratorOf(arrayLike)) {\n a = [];\n while (x = it.next(), !x.done) a.push(x.value);\n return a;\n }\n if (arrayLike == null) return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--) a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--) a[i] = arguments[i];\n return a;\n }\n var isAsyncFunction = typeof Symbol !== 'undefined' ? function (fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n } : function () {\n return false;\n };\n var dexieErrorNames = ['Modify', 'Bulk', 'OpenFailed', 'VersionChange', 'Schema', 'Upgrade', 'InvalidTable', 'MissingAPI', 'NoSuchDatabase', 'InvalidArgument', 'SubTransaction', 'Unsupported', 'Internal', 'DatabaseClosed', 'PrematureCommit', 'ForeignAwait'];\n var idbDomErrorNames = ['Unknown', 'Constraint', 'Data', 'TransactionInactive', 'ReadOnly', 'Version', 'NotFound', 'InvalidState', 'InvalidAccess', 'Abort', 'Timeout', 'QuotaExceeded', 'Syntax', 'DataClone'];\n var errorList = dexieErrorNames.concat(idbDomErrorNames);\n var defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n };\n function DexieError(name, msg) {\n this.name = name;\n this.message = msg;\n }\n derive(DexieError).from(Error).extend({\n toString: function () {\n return this.name + \": \" + this.message;\n }\n });\n function getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures).map(function (key) {\n return failures[key].toString();\n }).filter(function (v, i, s) {\n return s.indexOf(v) === i;\n }).join('\\n');\n }\n function ModifyError(msg, failures, successCount, failedKeys) {\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n }\n derive(ModifyError).from(DexieError);\n function BulkError(msg, failures) {\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(function (pos) {\n return failures[pos];\n });\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, this.failures);\n }\n derive(BulkError).from(DexieError);\n var errnames = errorList.reduce(function (obj, name) {\n return obj[name] = name + \"Error\", obj;\n }, {});\n var BaseException = DexieError;\n var exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n } else if (typeof msgOrInner === 'string') {\n this.message = \"\".concat(msgOrInner).concat(!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n } else if (typeof msgOrInner === 'object') {\n this.message = \"\".concat(msgOrInner.name, \" \").concat(msgOrInner.message);\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n }, {});\n exceptions.Syntax = SyntaxError;\n exceptions.Type = TypeError;\n exceptions.Range = RangeError;\n var exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n }, {});\n function mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name]) return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", {\n get: function () {\n return this.inner.stack;\n }\n });\n }\n return rv;\n }\n var fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1) obj[name + \"Error\"] = exceptions[name];\n return obj;\n }, {});\n fullNameExceptions.ModifyError = ModifyError;\n fullNameExceptions.DexieError = DexieError;\n fullNameExceptions.BulkError = BulkError;\n function nop() {}\n function mirror(val) {\n return val;\n }\n function pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror) return f2;\n return function (val) {\n return f2(f1(val));\n };\n }\n function callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n }\n function hookCreatingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined) arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n }\n function hookDeletingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n }\n function hookUpdatingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ? res2 === undefined ? undefined : res2 : extend(res, res2);\n };\n }\n function reverseStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n if (f2.apply(this, arguments) === false) return false;\n return f1.apply(this, arguments);\n };\n }\n function promisableChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this,\n i = arguments.length,\n args = new Array(i);\n while (i--) args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n }\n var debug = typeof location !== 'undefined' && /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\n function setDebug(value, filter) {\n debug = value;\n }\n var INTERNAL = {};\n var ZONE_ECHO_LIMIT = 100,\n _a$1 = typeof Promise === 'undefined' ? [] : function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle) return [globalP, getProto(globalP), globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [nativeP, getProto(nativeP), globalP];\n }(),\n resolvedNativePromise = _a$1[0],\n nativePromiseProto = _a$1[1],\n resolvedGlobalPromise = _a$1[2],\n nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\n var NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\n var patchGlobalPromise = !!resolvedGlobalPromise;\n function schedulePhysicalTick() {\n queueMicrotask(physicalTick);\n }\n var asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n };\n var isOutsideMicroTick = true,\n needsNewPhysicalTick = true,\n unhandledErrors = [],\n rejectingErrors = [],\n rejectionMapper = mirror;\n var globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: nop,\n pgp: false,\n env: {},\n finalize: nop\n };\n var PSD = globalPSD;\n var microtickQueue = [];\n var numScheduledCalls = 0;\n var tickFinalizers = [];\n function DexiePromise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this._lib = false;\n var psd = this._PSD = PSD;\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL) throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false) handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n }\n var thenProp = {\n get: function () {\n var psd = PSD,\n microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n if (this._consoleTask) rv._consoleTask = this._consoleTask;\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ? thenProp : {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n };\n props(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1) return this.then(null, onRejected);\n var type = arguments[0],\n handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n }) : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n return DexiePromise.resolve(onFinally()).then(function () {\n return value;\n });\n }, function (err) {\n return DexiePromise.resolve(onFinally()).then(function () {\n return PromiseReject(err);\n });\n });\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ? new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () {\n return reject(new exceptions.Timeout(msg));\n }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n });\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\n globalPSD.env = snapShot();\n function Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n }\n props(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0) resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) {\n return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (! --remaining) resolve(values);\n }, reject);\n });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise) return value;\n if (value && typeof value.then === 'function') return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) {\n return DexiePromise.resolve(value).then(resolve, reject);\n });\n });\n },\n PSD: {\n get: function () {\n return PSD;\n },\n set: function (value) {\n return PSD = value;\n }\n },\n totalEchoes: {\n get: function () {\n return totalEchoes;\n }\n },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () {\n return asap;\n },\n set: function (value) {\n asap = value;\n }\n },\n rejectionMapper: {\n get: function () {\n return rejectionMapper;\n },\n set: function (value) {\n rejectionMapper = value;\n }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n });\n if (NativePromise) {\n if (NativePromise.allSettled) setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0) resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) {\n return DexiePromise.resolve(p).then(function (value) {\n return results[i] = {\n status: \"fulfilled\",\n value: value\n };\n }, function (reason) {\n return results[i] = {\n status: \"rejected\",\n reason: reason\n };\n }).then(function () {\n return --remaining || resolve(results);\n });\n });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined') setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0) reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) {\n return DexiePromise.resolve(p).then(function (value) {\n return resolve(value);\n }, function (failure) {\n failures[i] = failure;\n if (! --remaining) reject(new AggregateError(failures));\n });\n });\n });\n });\n if (NativePromise.withResolvers) DexiePromise.withResolvers = NativePromise.withResolvers;\n }\n function executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null) return;\n if (value === promise) throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ? value._then(resolve, reject) : value.then(resolve, reject);\n });\n } else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick) endMicroTickScope();\n }, handleRejection.bind(null, promise));\n } catch (ex) {\n handleRejection(promise, ex);\n }\n }\n function handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null) return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick) endMicroTickScope();\n }\n function propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n }, []);\n }\n }\n function propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap(callListener, [cb, promise, listener]);\n }\n function callListener(cb, promise, listener) {\n try {\n var ret,\n value = promise._value;\n if (!promise._state && rejectingErrors.length) rejectingErrors = [];\n ret = debug && promise._consoleTask ? promise._consoleTask.run(function () {\n return cb(value);\n }) : cb(value);\n if (!promise._state && rejectingErrors.indexOf(value) === -1) {\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n } catch (e) {\n listener.reject(e);\n } finally {\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n }\n function physicalTick() {\n usePSD(globalPSD, function () {\n beginMicroTickScope() && endMicroTickScope();\n });\n }\n function beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n }\n function endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n }\n function finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i) finalizers[--i]();\n }\n function run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n }, []);\n }\n function addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) {\n return p._value === promise._value;\n })) unhandledErrors.push(promise);\n }\n function markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i) if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n }\n function PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n }\n function wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(),\n outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n } catch (e) {\n errorCatcher && errorCatcher(e);\n } finally {\n switchToZone(outerScope, false);\n if (wasRootExec) endMicroTickScope();\n }\n };\n }\n var task = {\n awaits: 0,\n echoes: 0,\n id: 0\n };\n var taskCounter = 0;\n var zoneStack = [];\n var zoneEchoes = 0;\n var totalEchoes = 0;\n var zone_id_counter = 0;\n function newScope(fn, props, a1, a2) {\n var parent = PSD,\n psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: {\n value: DexiePromise,\n configurable: true,\n writable: true\n },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject\n } : {};\n if (props) extend(psd, props);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0) psd.finalize();\n return rv;\n }\n function incrementExpectedAwaits() {\n if (!task.id) task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n }\n function decrementExpectedAwaits() {\n if (!task.awaits) return false;\n if (--task.awaits === 0) task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n }\n if (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n }\n function onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n }\n function zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.awaits = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n }\n function zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n }\n function switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (! --zoneEchoes || targetZone !== PSD)) {\n queueMicrotask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD) return;\n PSD = targetZone;\n if (currentZone === globalPSD) globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise.all = targetEnv.all;\n GlobalPromise.race = targetEnv.race;\n GlobalPromise.resolve = targetEnv.resolve;\n GlobalPromise.reject = targetEnv.reject;\n if (targetEnv.allSettled) GlobalPromise.allSettled = targetEnv.allSettled;\n if (targetEnv.any) GlobalPromise.any = targetEnv.any;\n }\n }\n }\n function snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject\n } : {};\n }\n function usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n } finally {\n switchToZone(outerScope, false);\n }\n }\n function nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait) incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n } finally {\n switchToZone(outerZone, false);\n if (cleanup) queueMicrotask(decrementExpectedAwaits);\n }\n };\n }\n function execInGlobalContext(cb) {\n if (Promise === NativePromise && task.echoes === 0) {\n if (zoneEchoes === 0) {\n cb();\n } else {\n enqueueNativeMicroTask(cb);\n }\n } else {\n setTimeout(cb, 0);\n }\n }\n var rejection = DexiePromise.reject;\n function tempTransaction(db, mode, storeNames, fn) {\n if (!db.idbdb || !db._state.openComplete && !PSD.letThrough && !db._vip) {\n if (db._state.openComplete) {\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._state.autoOpen) return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () {\n return tempTransaction(db, mode, storeNames, fn);\n });\n } else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db.close({\n disableAutoOpen: false\n });\n return db.open().then(function () {\n return tempTransaction(db, mode, storeNames, fn);\n });\n }\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n if (mode === 'readwrite') try {\n trans.idbtrans.commit();\n } catch (_a) {}\n return mode === 'readonly' ? result : trans._completion.then(function () {\n return result;\n });\n });\n }\n }\n var DEXIE_VERSION = '4.0.10';\n var maxString = String.fromCharCode(65535);\n var minKey = -Infinity;\n var INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\n var STRING_EXPECTED = \"String expected.\";\n var connections = [];\n var DBNAMES_DB = '__dbnames';\n var READONLY = 'readonly';\n var READWRITE = 'readwrite';\n function combine(filter1, filter2) {\n return filter1 ? filter2 ? function () {\n return filter1.apply(this, arguments) && filter2.apply(this, arguments);\n } : filter1 : filter2;\n }\n var AnyRange = {\n type: 3,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n };\n function workaroundForUndefinedPrimKey(keyPath) {\n return typeof keyPath === \"string\" && !/\\./.test(keyPath) ? function (obj) {\n if (obj[keyPath] === undefined && keyPath in obj) {\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n } : function (obj) {\n return obj;\n };\n }\n function Entity() {\n throw exceptions.Type();\n }\n function cmp(a, b) {\n try {\n var ta = type(a);\n var tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array') return 1;\n if (tb === 'Array') return -1;\n if (ta === 'binary') return 1;\n if (tb === 'binary') return -1;\n if (ta === 'string') return 1;\n if (tb === 'string') return -1;\n if (ta === 'Date') return 1;\n if (tb !== 'Date') return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary':\n {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n } catch (_a) {}\n return NaN;\n }\n function compareArrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n var res = cmp(a[i], b[i]);\n if (res !== 0) return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n }\n function compareUint8Arrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n }\n function type(x) {\n var t = typeof x;\n if (t !== 'object') return t;\n if (ArrayBuffer.isView(x)) return 'binary';\n var tsTag = toStringTag(x);\n return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n }\n function getUint8Array(a) {\n if (a instanceof Uint8Array) return a;\n if (ArrayBuffer.isView(a)) return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a);\n }\n var Table = function () {\n function Table() {}\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n var task = debug && typeof console !== 'undefined' && console.createTask && console.createTask(\"Dexie: \".concat(mode === 'readonly' ? 'read' : 'write', \" \").concat(this.name));\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName]) throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n var p = trans && trans.db._novip === this.db._novip ? trans === PSD.trans ? trans._promise(mode, checkTableInTransaction, writeLocked) : newScope(function () {\n return trans._promise(mode, checkTableInTransaction, writeLocked);\n }, {\n trans: trans,\n transless: PSD.transless || PSD\n }) : tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n if (task) {\n p._consoleTask = task;\n p = p.catch(function (err) {\n console.trace(err);\n return rejection(err);\n });\n }\n return p;\n } finally {\n if (wasRootExec) endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object) return this.where(keyOrCrit).first(cb);\n if (keyOrCrit == null) return rejection(new exceptions.Type(\"Invalid argument to Table.get()\"));\n return this._trans('readonly', function (trans) {\n return _this.core.get({\n trans: trans,\n key: keyOrCrit\n }).then(function (res) {\n return _this.hook.reading.fire(res);\n });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string') return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit)) return new this.db.WhereClause(this, \"[\".concat(indexOrCrit.join('+'), \"]\"));\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1) return this.where(keyPaths[0]).equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n if (ix.compound && keyPaths.every(function (keyPath) {\n return ix.keyPath.indexOf(keyPath) >= 0;\n })) {\n for (var i = 0; i < keyPaths.length; ++i) {\n if (keyPaths.indexOf(ix.keyPath[i]) === -1) return false;\n }\n return true;\n }\n return false;\n }).sort(function (a, b) {\n return a.keyPath.length - b.keyPath.length;\n })[0];\n if (compoundIndex && this.db._maxKey !== maxString) {\n var keyPathsInValidOrder = compoundIndex.keyPath.slice(0, keyPaths.length);\n return this.where(keyPathsInValidOrder).equals(keyPathsInValidOrder.map(function (kp) {\n return indexOrCrit[kp];\n }));\n }\n if (!compoundIndex && debug) console.warn(\"The query \".concat(JSON.stringify(indexOrCrit), \" on \").concat(this.name, \" would benefit from a \") + \"compound index [\".concat(keyPaths.join('+'), \"]\"));\n var idxByName = this.schema.idxByName;\n function equals(a, b) {\n return cmp(a, b) === 0;\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0],\n prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [prevIndex || index, prevIndex || !index ? combine(prevFilterFn, index && index.multi ? function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) {\n return equals(value, item);\n });\n } : function (x) {\n return equals(value, getByKeyPath(x, keyPath));\n }) : prevFilterFn];\n }, [null, null]),\n idx = _a[0],\n filterFunction = _a[1];\n return idx ? this.where(idx.name).equals(indexOrCrit[idx.keyPath]).filter(filterFunction) : compoundIndex ? this.filter(filterFunction) : this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ? \"[\".concat(index.join('+'), \"]\") : index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n var _a = this,\n db = _a.db,\n tableName = _a.name;\n this.schema.mappedClass = constructor;\n if (constructor.prototype instanceof Entity) {\n constructor = function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_1.prototype, \"db\", {\n get: function () {\n return db;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.table = function () {\n return tableName;\n };\n return class_1;\n }(constructor);\n }\n var inheritedProps = new Set();\n for (var proto = constructor.prototype; proto; proto = getProto(proto)) {\n Object.getOwnPropertyNames(proto).forEach(function (propName) {\n return inheritedProps.add(propName);\n });\n }\n var readHook = function (obj) {\n if (!obj) return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj) if (!inheritedProps.has(m)) try {\n res[m] = obj[m];\n } catch (_) {}\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey,\n auto = _a.auto,\n keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({\n trans: trans,\n type: 'add',\n keys: key != null ? [key] : null,\n values: [objToAdd]\n });\n }).then(function (res) {\n return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult;\n }).then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n } catch (_) {}\n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined) return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n return this.where(\":id\").equals(key).modify(modifications);\n } else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey,\n auto = _a.auto,\n keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({\n trans: trans,\n type: 'put',\n values: [objToAdd],\n keys: key != null ? [key] : null\n });\n }).then(function (res) {\n return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult;\n }).then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n } catch (_) {}\n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({\n trans: trans,\n type: 'delete',\n keys: [key]\n });\n }).then(function (res) {\n return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined;\n });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({\n trans: trans,\n type: 'deleteRange',\n range: AnyRange\n });\n }).then(function (res) {\n return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined;\n });\n };\n Table.prototype.bulkGet = function (keys) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys,\n trans: trans\n }).then(function (result) {\n return result.map(function (res) {\n return _this.hook.reading.fire(res);\n });\n });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey,\n auto = _a.auto,\n keyPath = _a.keyPath;\n if (keyPath && keys) throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length) throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ? objects.map(workaroundForUndefinedPrimKey(keyPath)) : objects;\n return _this.core.mutate({\n trans: trans,\n type: 'add',\n keys: keys,\n values: objectsToAdd,\n wantResults: wantResults\n }).then(function (_a) {\n var numFailures = _a.numFailures,\n results = _a.results,\n lastResult = _a.lastResult,\n failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\"\".concat(_this.name, \".bulkAdd(): \").concat(numFailures, \" of \").concat(numObjects, \" operations failed\"), failures);\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey,\n auto = _a.auto,\n keyPath = _a.keyPath;\n if (keyPath && keys) throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length) throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ? objects.map(workaroundForUndefinedPrimKey(keyPath)) : objects;\n return _this.core.mutate({\n trans: trans,\n type: 'put',\n keys: keys,\n values: objectsToPut,\n wantResults: wantResults\n }).then(function (_a) {\n var numFailures = _a.numFailures,\n results = _a.results,\n lastResult = _a.lastResult,\n failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\"\".concat(_this.name, \".bulkPut(): \").concat(numFailures, \" of \").concat(numObjects, \" operations failed\"), failures);\n });\n });\n };\n Table.prototype.bulkUpdate = function (keysAndChanges) {\n var _this = this;\n var coreTable = this.core;\n var keys = keysAndChanges.map(function (entry) {\n return entry.key;\n });\n var changeSpecs = keysAndChanges.map(function (entry) {\n return entry.changes;\n });\n var offsetMap = [];\n return this._trans('readwrite', function (trans) {\n return coreTable.getMany({\n trans: trans,\n keys: keys,\n cache: 'clone'\n }).then(function (objs) {\n var resultKeys = [];\n var resultObjs = [];\n keysAndChanges.forEach(function (_a, idx) {\n var key = _a.key,\n changes = _a.changes;\n var obj = objs[idx];\n if (obj) {\n for (var _i = 0, _b = Object.keys(changes); _i < _b.length; _i++) {\n var keyPath = _b[_i];\n var value = changes[keyPath];\n if (keyPath === _this.schema.primKey.keyPath) {\n if (cmp(value, key) !== 0) {\n throw new exceptions.Constraint(\"Cannot update primary key in bulkUpdate()\");\n }\n } else {\n setByKeyPath(obj, keyPath, value);\n }\n }\n offsetMap.push(idx);\n resultKeys.push(key);\n resultObjs.push(obj);\n }\n });\n var numEntries = resultKeys.length;\n return coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: resultKeys,\n values: resultObjs,\n updates: {\n keys: keys,\n changeSpecs: changeSpecs\n }\n }).then(function (_a) {\n var numFailures = _a.numFailures,\n failures = _a.failures;\n if (numFailures === 0) return numEntries;\n for (var _i = 0, _b = Object.keys(failures); _i < _b.length; _i++) {\n var offset = _b[_i];\n var mappedOffset = offsetMap[Number(offset)];\n if (mappedOffset != null) {\n var failure = failures[offset];\n delete failures[offset];\n failures[mappedOffset] = failure;\n }\n }\n throw new BulkError(\"\".concat(_this.name, \".bulkUpdate(): \").concat(numFailures, \" of \").concat(numEntries, \" operations failed\"), failures);\n });\n });\n });\n };\n Table.prototype.bulkDelete = function (keys) {\n var _this = this;\n var numKeys = keys.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({\n trans: trans,\n type: 'delete',\n keys: keys\n });\n }).then(function (_a) {\n var numFailures = _a.numFailures,\n lastResult = _a.lastResult,\n failures = _a.failures;\n if (numFailures === 0) return lastResult;\n throw new BulkError(\"\".concat(_this.name, \".bulkDelete(): \").concat(numFailures, \" of \").concat(numKeys, \" operations failed\"), failures);\n });\n };\n return Table;\n }();\n function Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length,\n args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n } else if (typeof eventName === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object') return addConfiguredEvents(eventName);\n if (!chainFunction) chainFunction = reverseStoppableEventChain;\n if (!defaultFunction) defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) {\n return fn !== cb;\n });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n } else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length,\n args = new Array(i);\n while (i--) args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap$1(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n } else throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n }\n function makeClassConstructor(prototype, constructor) {\n derive(constructor).from({\n prototype: prototype\n });\n return constructor;\n }\n function createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n }\n function isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) && (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n }\n function addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n }\n function addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () {\n return combine(curr(), factory());\n } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n }\n function addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n }\n function getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey) return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index) throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n }\n function openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }\n function iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n } else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) {\n return cursor.stop(result);\n }, function (err) {\n return cursor.fail(err);\n })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]') key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([ctx.or._iterate(union, coreTrans), iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)]);\n }\n }\n function iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) {\n return fn(valueMapper(x), c, a);\n } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () {\n return cursor.continue();\n };\n if (!filter || filter(cursor, function (advancer) {\n return c = advancer;\n }, function (val) {\n cursor.stop(val);\n c = nop;\n }, function (e) {\n cursor.fail(e);\n c = nop;\n })) wrappedFn(cursor.value, cursor, function (advancer) {\n return c = advancer;\n });\n c();\n });\n }\n });\n }\n var PropModSymbol = Symbol();\n var PropModification = function () {\n function PropModification(spec) {\n Object.assign(this, spec);\n }\n PropModification.prototype.execute = function (value) {\n var _a;\n if (this.add !== undefined) {\n var term = this.add;\n if (isArray(term)) {\n return __spreadArray(__spreadArray([], isArray(value) ? value : [], true), term, true).sort();\n }\n if (typeof term === 'number') return (Number(value) || 0) + term;\n if (typeof term === 'bigint') {\n try {\n return BigInt(value) + term;\n } catch (_b) {\n return BigInt(0) + term;\n }\n }\n throw new TypeError(\"Invalid term \".concat(term));\n }\n if (this.remove !== undefined) {\n var subtrahend_1 = this.remove;\n if (isArray(subtrahend_1)) {\n return isArray(value) ? value.filter(function (item) {\n return !subtrahend_1.includes(item);\n }).sort() : [];\n }\n if (typeof subtrahend_1 === 'number') return Number(value) - subtrahend_1;\n if (typeof subtrahend_1 === 'bigint') {\n try {\n return BigInt(value) - subtrahend_1;\n } catch (_c) {\n return BigInt(0) - subtrahend_1;\n }\n }\n throw new TypeError(\"Invalid subtrahend \".concat(subtrahend_1));\n }\n var prefixToReplace = (_a = this.replacePrefix) === null || _a === void 0 ? void 0 : _a[0];\n if (prefixToReplace && typeof value === 'string' && value.startsWith(prefixToReplace)) {\n return this.replacePrefix[1] + value.substring(prefixToReplace.length);\n }\n return value;\n };\n return PropModification;\n }();\n var Collection = function () {\n function Collection() {}\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ? ctx.table._trans(null, rejection.bind(null, ctx.error)) : ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ? ctx.table._trans(null, rejection.bind(null, ctx.error)) : ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props) {\n var rv = Object.create(this.constructor.prototype),\n ctx = Object.create(this._ctx);\n if (props) extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) {\n return iter(ctx, fn, trans, ctx.table.core);\n });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) {\n return Math.min(count, ctx.limit);\n });\n } else {\n var count = 0;\n return iter(ctx, function () {\n ++count;\n return false;\n }, trans, coreTable).then(function () {\n return count;\n });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(),\n lastPart = parts[0],\n lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i) return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex),\n bVal = getval(b, lastIndex);\n return cmp(aVal, bVal) * order;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n } else {\n var a_1 = [];\n return iter(ctx, function (item) {\n return a_1.push(item);\n }, trans, ctx.table.core).then(function () {\n return a_1;\n });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0) return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0) return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n } else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () {\n return --offsetLeft < 0;\n };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0) advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n } else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) {\n return a[0];\n }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = this._ctx.dir === \"prev\" ? \"next\" : \"prev\";\n if (this._ondirectionchange) this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) {\n cb(cursor.key, cursor);\n });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) {\n cb(cursor.primaryKey, cursor);\n });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) {\n return a[0];\n }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx,\n idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi) return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n } else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i];\n var val = changes[keyPath];\n var origVal = getByKeyPath(item, keyPath);\n if (val instanceof PropModification) {\n setByKeyPath(item, keyPath, val.execute(origVal));\n anythingModified = true;\n } else if (origVal !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey,\n outbound = _a.outbound,\n extractKey = _a.extractKey;\n var limit = 200;\n var modifyChunkSize = _this.db._options.modifyChunkSize;\n if (modifyChunkSize) {\n if (typeof modifyChunkSize == 'object') {\n limit = modifyChunkSize[coreTable.name] || modifyChunkSize['*'] || 200;\n } else {\n limit = modifyChunkSize;\n }\n }\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures,\n numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys) {\n var criteria = isPlainKeyRange(ctx) && ctx.limit === Infinity && (typeof changes !== 'function' || changes === deleteCallback) && {\n index: ctx.index,\n range: ctx.range\n };\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans: trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\"\n }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys[offset + i]);\n } else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys[offset + i]);\n addValues.push(ctx_1.value);\n } else {\n putValues.push(ctx_1.value);\n if (outbound) putKeys.push(keys[offset + i]);\n }\n }\n }\n return Promise.resolve(addValues.length > 0 && coreTable.mutate({\n trans: trans,\n type: 'add',\n values: addValues\n }).then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function () {\n return (putValues.length > 0 || criteria && typeof changes === 'object') && coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria: criteria,\n changeSpec: typeof changes !== 'function' && changes,\n isAdditionalChunk: offset > 0\n }).then(function (res) {\n return applyMutateResult(putValues.length, res);\n });\n }).then(function () {\n return (deleteKeys.length > 0 || criteria && changes === deleteCallback) && coreTable.mutate({\n trans: trans,\n type: 'delete',\n keys: deleteKeys,\n criteria: criteria,\n isAdditionalChunk: offset > 0\n }).then(function (res) {\n return applyMutateResult(deleteKeys.length, res);\n });\n }).then(function () {\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0) throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx,\n range = ctx.range;\n if (isPlainKeyRange(ctx) && (ctx.isPrimKey || range.type === 3)) {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({\n trans: trans,\n query: {\n index: primaryKey,\n range: coreRange\n }\n }).then(function (count) {\n return ctx.table.core.mutate({\n trans: trans,\n type: 'deleteRange',\n range: coreRange\n }).then(function (_a) {\n var failures = _a.failures;\n _a.lastResult;\n _a.results;\n var numFailures = _a.numFailures;\n if (numFailures) throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) {\n return failures[pos];\n }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(deleteCallback);\n };\n return Collection;\n }();\n var deleteCallback = function (value, ctx) {\n return ctx.value = null;\n };\n function createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange,\n error = null;\n if (keyRangeGenerator) try {\n keyRange = keyRangeGenerator();\n } catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: !whereCtx.index || table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name,\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n }\n function simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n }\n function simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n }\n function fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ? new collectionOrWhereClause.Collection(collectionOrWhereClause) : collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n }\n function emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () {\n return rangeEqual(\"\");\n }).limit(0);\n }\n function upperFactory(dir) {\n return dir === \"next\" ? function (s) {\n return s.toUpperCase();\n } : function (s) {\n return s.toLowerCase();\n };\n }\n function lowerFactory(dir) {\n return dir === \"next\" ? function (s) {\n return s.toLowerCase();\n } : function (s) {\n return s.toUpperCase();\n };\n }\n function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0) return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0) return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0) return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0) llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\") return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\") return key.substr(0, upperNeedle.length);\n return llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1);\n }\n function addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper,\n lower,\n compare,\n upperNeedles,\n lowerNeedles,\n direction,\n nextKeySuffix,\n needlesLen = needles.length;\n if (!needles.every(function (s) {\n return typeof s === 'string';\n })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = dir === \"next\" ? simpleCompare : simpleCompareReverse;\n var needleBounds = needles.map(function (needle) {\n return {\n lower: lower(needle),\n upper: upper(needle)\n };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) {\n return nb.upper;\n });\n lowerNeedles = needleBounds.map(function (nb) {\n return nb.lower;\n });\n direction = dir;\n nextKeySuffix = dir === \"next\" ? \"\" : suffix;\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () {\n return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix);\n });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string') return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n } else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null) firstPossibleNeedle = i + 1;else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () {\n cursor.continue(lowestPossibleCasing + nextKeySuffix);\n });\n } else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n }\n function createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n }\n function rangeEqual(value) {\n return {\n type: 1,\n lower: value,\n upper: value\n };\n }\n var WhereClause = function () {\n function WhereClause() {}\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: false,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if (this._cmp(lower, upper) > 0 || this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)) return emptyCollection(this);\n return new this.Collection(this, function () {\n return createRange(lower, upper, !includeLower, !includeUpper);\n });\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () {\n return rangeEqual(value);\n });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () {\n return createRange(value, undefined, true);\n });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () {\n return createRange(value, undefined, false);\n });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () {\n return createRange(undefined, value, false, true);\n });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () {\n return createRange(undefined, value);\n });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string') return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\") return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) {\n return x.indexOf(a[0]) === 0;\n }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) {\n return x === a[0];\n }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) {\n return a.indexOf(x) !== -1;\n }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) {\n return a.some(function (n) {\n return x.indexOf(n) === 0;\n });\n }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0) return emptyCollection(this);\n var c = new this.Collection(this, function () {\n return createRange(set[0], set[set.length - 1]);\n });\n c._ondirectionchange = function (direction) {\n compare = direction === \"next\" ? _this._ascending : _this._descending;\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n } else {\n advance(function () {\n cursor.continue(set[i]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], {\n includeLowers: false,\n includeUppers: false\n });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return new this.Collection(this);\n try {\n set.sort(this._ascending);\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) {\n return res ? res.concat([[res[res.length - 1][1], val]]) : [[minKey, val]];\n }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, {\n includeLowers: false,\n includeUppers: false\n });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp,\n ascending = this._ascending,\n descending = this._descending,\n min = this._min,\n max = this._max;\n if (ranges.length === 0) return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined && range[1] !== undefined && ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0,\n l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l) ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) {\n return sortDirection(a[0], b[0]);\n }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n } catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ? function (key) {\n return ascending(key, set[rangePos][1]) > 0;\n } : function (key) {\n return ascending(key, set[rangePos][1]) >= 0;\n };\n var keyIsBeforeCurrentEntry = includeLowers ? function (key) {\n return descending(key, set[rangePos][0]) > 0;\n } : function (key) {\n return descending(key, set[rangePos][0]) >= 0;\n };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () {\n return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers);\n });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n } else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n } else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n } else {\n advance(function () {\n if (sortDirection === ascending) cursor.continue(set[rangePos][0]);else cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) {\n return typeof s === 'string';\n })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0) return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) {\n return [str, str + maxString];\n }));\n };\n return WhereClause;\n }();\n function createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n this._cmp = this._ascending = cmp;\n this._descending = function (a, b) {\n return cmp(b, a);\n };\n this._max = function (a, b) {\n return cmp(a, b) > 0 ? a : b;\n };\n this._min = function (a, b) {\n return cmp(a, b) < 0 ? a : b;\n };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n if (!this._IDBKeyRange) throw new exceptions.MissingAPI();\n });\n }\n function eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n }\n function preventDefault(event) {\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n }\n var DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\n var STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\n var globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n var Transaction = function () {\n function Transaction() {}\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global) PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global) PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n } catch (e) {}\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode) return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active) throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans || (this.db.core ? this.db.core.transaction(this.storeNames, this.mode, {\n durability: this.chromeTransactionDurability\n }) : idbdb.transaction(this.storeNames, this.mode, {\n durability: this.chromeTransactionDurability\n }));\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite') return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active) return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n } else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p.finally(function () {\n return _this._unlock();\n });\n p._lib = true;\n return p;\n });\n } else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () {\n return promise;\n });\n } else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length) root._waitingQueue.shift()();\n if (root._waitingFor) store.get(-Infinity).onsuccess = spin;\n })();\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) {\n return root._waitingQueue.push(wrap(resolve.bind(null, res)));\n }, function (err) {\n return root._waitingQueue.push(wrap(reject.bind(null, err)));\n }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n if (this.active) {\n this.active = false;\n if (this.idbtrans) this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = this._memoizedTables || (this._memoizedTables = {});\n if (hasOwn(memoizedTables, tableName)) return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n }();\n function createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ? _this.parent._reject(e) : wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n }\n function createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n }\n function nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ? keyPath : keyPath ? '[' + [].join.call(keyPath, '+') + ']' : \"\";\n }\n function createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) {\n return [index.name, index];\n })\n };\n }\n function safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n }\n var getMaxKey = function (IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = function () {\n return [[]];\n };\n return [[]];\n } catch (e) {\n getMaxKey = function () {\n return maxString;\n };\n return maxString;\n }\n };\n function getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () {\n return undefined;\n };\n } else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n } else {\n return function (obj) {\n return getByKeyPath(obj, keyPath);\n };\n }\n }\n function getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) {\n return obj[keyPath];\n };\n } else {\n return function (obj) {\n return getByKeyPath(obj, keyPath);\n };\n }\n }\n function arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n }\n var _id_counter = 0;\n function getKeyPathAlias(keyPath) {\n return keyPath == null ? \":id\" : typeof keyPath === 'string' ? keyPath : \"[\".concat(keyPath.join('+'), \"]\");\n }\n function createDBCore(db, IdbKeyRange, tmpTrans) {\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) {\n return trans.objectStore(table);\n }).map(function (store) {\n var keyPath = store.keyPath,\n autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) {\n return store.index(indexName);\n }).map(function (index) {\n var name = index.name,\n unique = index.unique,\n multiEntry = index.multiEntry,\n keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) {\n return indexByKeyPath[getKeyPathAlias(keyPath)];\n }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && 'getAll' in trans.objectStore(tables[0]) && !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) && [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3) return null;\n if (range.type === 4) throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower,\n upper = range.upper,\n lowerOpen = range.lowerOpen,\n upperOpen = range.upperOpen;\n var idbRange = lower === undefined ? upper === undefined ? null : IdbKeyRange.upperBound(upper, !!upperOpen) : upper === undefined ? IdbKeyRange.lowerBound(lower, !!lowerOpen) : IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans,\n type = _a.type,\n keys = _a.keys,\n values = _a.values,\n range = _a.range;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange') throw new Error(\"Invalid operation type: \" + type);\n var length = (keys || values || {\n length: 1\n }).length;\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0) return resolve({\n numFailures: 0,\n failures: {},\n results: [],\n lastResult: undefined\n });\n var req;\n var reqs = [];\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n };\n if (type === 'deleteRange') {\n if (range.type === 4) return resolve({\n numFailures: numFailures,\n failures: failures,\n results: [],\n lastResult: undefined\n });\n if (range.type === 3) reqs.push(req = store.clear());else reqs.push(req = store.delete(makeIDBKeyRange(range)));\n } else {\n var _a = isAddOrPut ? outbound ? [values, keys] : [values, null] : [keys, null],\n args1 = _a[0],\n args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = args2 && args2[i] !== undefined ? store[type](args1[i], args2[i]) : store[type](args1[i]));\n req.onerror = errorHandler;\n }\n } else {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = store[type](args1[i]));\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n reqs.forEach(function (req, i) {\n return req.error != null && (failures[i] = req.error);\n });\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: type === \"delete\" ? keys : reqs.map(function (req) {\n return req.result;\n }),\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans,\n values = _a.values,\n query = _a.query,\n reverse = _a.reverse,\n unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index,\n range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var direction = reverse ? unique ? \"prevunique\" : \"prev\" : unique ? \"nextunique\" : \"next\";\n var req = values || !('openKeyCursor' in source) ? source.openCursor(makeIDBKeyRange(range), direction) : source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey) _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () {\n throw new Error(\"Cursor not started\");\n };\n var doThrowCursorIsStopped = function () {\n throw new Error(\"Cursor not stopped\");\n };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () {\n return gotOne-- ? _this.continue() : _this.stop();\n }).then(function () {\n return _this;\n });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n } catch (err) {\n cursor.fail(err);\n }\n } else {\n cursor.done = true;\n cursor.start = function () {\n throw new Error(\"Cursor behind last entry\");\n };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans,\n values = request.values,\n limit = request.limit,\n query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index,\n range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0) return resolve({\n result: []\n });\n if (hasGetAll) {\n var req = values ? source.getAll(idbKeyRange, nonInfinitLimit) : source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) {\n return resolve({\n result: event.target.result\n });\n };\n req.onerror = eventRejectHandler(reject);\n } else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ? source.openCursor(idbKeyRange) : source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor) return resolve({\n result: result_1\n });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit) return resolve({\n result: result_1\n });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans,\n keys = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null) ;\n if (++callbackCount === keyCount) resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0) resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans,\n key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) {\n return resolve(event.target.result);\n };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query,\n trans = _a.trans;\n var index = query.index,\n range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) {\n return resolve(ev.target.result);\n });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans),\n schema = _a.schema,\n hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) {\n return createDbCoreTable(tableSchema);\n });\n var tableMap = {};\n tables.forEach(function (table) {\n return tableMap[table.name] = table;\n });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result) throw new Error(\"Table '\".concat(name, \"' not found\"));\n return tableMap[name];\n },\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n }\n function createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return __assign(__assign({}, down), create(down));\n }, stackImpl);\n }\n function createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange;\n _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n }\n function generateMiddlewareStacks(db, tmpTrans) {\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) {\n return tbl.name === tableName;\n })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n }\n function setApiOnPlace(db, objs, tableNames, dbschema) {\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || \"value\" in propDesc && propDesc.value === undefined) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () {\n return this.table(tableName);\n },\n set: function (value) {\n defineProperty(this, tableName, {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n });\n } else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n }\n function removeTablesApi(db, objs) {\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table) delete obj[key];\n }\n });\n }\n function lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n }\n function runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n if (idbUpgradeTrans.objectStoreNames.contains('$meta') && !globalSchema.$meta) {\n globalSchema.$meta = createTableSchema(\"$meta\", parseIndexSyntax(\"\")[0], []);\n db._storeNames.push('$meta');\n }\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () {\n return db.on.populate.fire(trans);\n }).catch(rejectTransaction);\n } else {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n return getExistingVersion(db, trans, oldVersion).then(function (oldVersion) {\n return updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans);\n }).catch(rejectTransaction);\n }\n });\n }\n function patchCurrentVersion(db, idbUpgradeTrans) {\n createMissingTables(db._dbSchema, idbUpgradeTrans);\n if (idbUpgradeTrans.db.version % 10 === 0 && !idbUpgradeTrans.objectStoreNames.contains('$meta')) {\n idbUpgradeTrans.db.createObjectStore('$meta').add(Math.ceil(idbUpgradeTrans.db.version / 10 - 1), 'version');\n }\n var globalSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n adjustToExistingIndexNames(db, db._dbSchema, idbUpgradeTrans);\n var diff = getSchemaDiff(globalSchema, db._dbSchema);\n var _loop_1 = function (tableChange) {\n if (tableChange.change.length || tableChange.recreate) {\n console.warn(\"Unable to patch indexes of table \".concat(tableChange.name, \" because it has changes on the type of index or primary key.\"));\n return {\n value: void 0\n };\n }\n var store = idbUpgradeTrans.objectStore(tableChange.name);\n tableChange.add.forEach(function (idx) {\n if (debug) console.debug(\"Dexie upgrade patch: Creating missing index \".concat(tableChange.name, \".\").concat(idx.src));\n addIndex(store, idx);\n });\n };\n for (var _i = 0, _a = diff.change; _i < _a.length; _i++) {\n var tableChange = _a[_i];\n var state_1 = _loop_1(tableChange);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n }\n function getExistingVersion(db, trans, oldVersion) {\n if (trans.storeNames.includes('$meta')) {\n return trans.table('$meta').get('version').then(function (metaVersion) {\n return metaVersion != null ? metaVersion : oldVersion;\n });\n } else {\n return DexiePromise.resolve(oldVersion);\n }\n }\n function updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans) {\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var versToRun = versions.filter(function (v) {\n return v._cfg.version >= oldVersion;\n });\n if (versToRun.length === 0) {\n return DexiePromise.resolve();\n }\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n } else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) {\n return addIndex(store_1, idx);\n });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) {\n return store_1.deleteIndex(idxName);\n });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return returnValue_1 && typeof returnValue_1.then === 'function' ? DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () {\n return returnValue_1;\n });\n }\n });\n queue.push(function (idbtrans) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n queue.push(function (idbtrans) {\n if (db.idbdb.objectStoreNames.contains('$meta')) {\n if (Math.ceil(db.idbdb.version / 10) === version._cfg.version) {\n db.idbdb.deleteObjectStore('$meta');\n delete db._dbSchema.$meta;\n db._storeNames = db._storeNames.filter(function (name) {\n return name !== '$meta';\n });\n } else {\n idbtrans.objectStore('$meta').put(version._cfg.version, 'version');\n }\n }\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) : DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n }\n function getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table]) diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table],\n newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n } else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ('' + (oldDef.primKey.keyPath || '') !== '' + (newDef.primKey.keyPath || '') || oldDef.primKey.auto !== newDef.primKey.auto) {\n change.recreate = true;\n diff.change.push(change);\n } else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName]) change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName],\n newIdx = newIndexes[idxName];\n if (!oldIdx) change.add.push(newIdx);else if (oldIdx.src !== newIdx.src) change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n }\n function createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ? {\n keyPath: primKey.keyPath,\n autoIncrement: primKey.auto\n } : {\n autoIncrement: primKey.auto\n });\n indexes.forEach(function (idx) {\n return addIndex(store, idx);\n });\n return store;\n }\n function createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n if (debug) console.debug('Dexie: Creating missing table', tableName);\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n }\n function deleteRemovedTables(newSchema, idbtrans) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n });\n }\n function addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, {\n unique: idx.unique,\n multiEntry: idx.multi\n });\n }\n function buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", true, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n }\n function readGlobalSchema(db, idbdb, tmpTrans) {\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n }\n function verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) {\n return ch.add.length || ch.change.length;\n }));\n }\n function adjustToExistingIndexNames(db, schema, idbtrans) {\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) && _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope && [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n }\n function parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n }\n var Version = function () {\n function Version() {}\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n primKey.unique = true;\n if (primKey.multi) throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto) throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath) throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ? extend(this._cfg.storesSource, stores) : stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = version._cfg.dbschema = {};\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n };\n return Version;\n }();\n function createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n }\n function getDbNamesTable(indexedDB, IDBKeyRange) {\n var dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n addons: [],\n indexedDB: indexedDB,\n IDBKeyRange: IDBKeyRange\n });\n dbNamesDB.version(1).stores({\n dbnames: \"name\"\n });\n }\n return dbNamesDB.table(\"dbnames\");\n }\n function hasDatabasesNative(indexedDB) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n }\n function getDatabaseNames(_a) {\n var indexedDB = _a.indexedDB,\n IDBKeyRange = _a.IDBKeyRange;\n return hasDatabasesNative(indexedDB) ? Promise.resolve(indexedDB.databases()).then(function (infos) {\n return infos.map(function (info) {\n return info.name;\n }).filter(function (name) {\n return name !== DBNAMES_DB;\n });\n }) : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n }\n function _onDatabaseCreated(_a, name) {\n var indexedDB = _a.indexedDB,\n IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) && name !== DBNAMES_DB && getDbNamesTable(indexedDB, IDBKeyRange).put({\n name: name\n }).catch(nop);\n }\n function _onDatabaseDeleted(_a, name) {\n var indexedDB = _a.indexedDB,\n IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) && name !== DBNAMES_DB && getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n }\n function vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n }\n function idbReady() {\n var isSafari = !navigator.userAgentData && /Safari\\//.test(navigator.userAgent) && !/Chrom(e|ium)\\//.test(navigator.userAgent);\n if (!isSafari || !indexedDB.databases) return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () {\n return indexedDB.databases().finally(resolve);\n };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () {\n return clearInterval(intervalId);\n });\n }\n var _a;\n function isEmptyRange(node) {\n return !(\"from\" in node);\n }\n var RangeSet = function (fromOrTree, to) {\n if (this) {\n extend(this, arguments.length ? {\n d: 1,\n from: fromOrTree,\n to: arguments.length > 1 ? to : fromOrTree\n } : {\n d: 0\n });\n } else {\n var rv = new RangeSet();\n if (fromOrTree && \"d\" in fromOrTree) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n };\n props(RangeSet.prototype, (_a = {\n add: function (rangeSet) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey: function (key) {\n addRange(this, key, key);\n return this;\n },\n addKeys: function (keys) {\n var _this = this;\n keys.forEach(function (key) {\n return addRange(_this, key, key);\n });\n return this;\n },\n hasKey: function (key) {\n var node = getRangeSetIterator(this).next(key).value;\n return node && cmp(node.from, key) <= 0 && cmp(node.to, key) >= 0;\n }\n }, _a[iteratorSymbol] = function () {\n return getRangeSetIterator(this);\n }, _a));\n function addRange(target, from, to) {\n var diff = cmp(from, to);\n if (isNaN(diff)) return;\n if (diff > 0) throw RangeError();\n if (isEmptyRange(target)) return extend(target, {\n from: from,\n to: to,\n d: 1\n });\n var left = target.l;\n var right = target.r;\n if (cmp(to, target.from) < 0) {\n left ? addRange(left, from, to) : target.l = {\n from: from,\n to: to,\n d: 1,\n l: null,\n r: null\n };\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right ? addRange(right, from, to) : target.r = {\n from: from,\n to: to,\n d: 1,\n l: null,\n r: null\n };\n return rebalance(target);\n }\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null;\n target.d = right ? right.d + 1 : 1;\n }\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null;\n target.d = target.l ? target.l.d + 1 : 1;\n }\n var rightWasCutOff = !target.r;\n if (left && !target.l) {\n mergeRanges(target, left);\n }\n if (right && rightWasCutOff) {\n mergeRanges(target, right);\n }\n }\n function mergeRanges(target, newSet) {\n function _addRangeSet(target, _a) {\n var from = _a.from,\n to = _a.to,\n l = _a.l,\n r = _a.r;\n addRange(target, from, to);\n if (l) _addRangeSet(target, l);\n if (r) _addRangeSet(target, r);\n }\n if (!isEmptyRange(newSet)) _addRangeSet(target, newSet);\n }\n function rangesOverlap(rangeSet1, rangeSet2) {\n var i1 = getRangeSetIterator(rangeSet2);\n var nextResult1 = i1.next();\n if (nextResult1.done) return false;\n var a = nextResult1.value;\n var i2 = getRangeSetIterator(rangeSet1);\n var nextResult2 = i2.next(a.from);\n var b = nextResult2.value;\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0) return true;\n cmp(a.from, b.from) < 0 ? a = (nextResult1 = i1.next(b.from)).value : b = (nextResult2 = i2.next(a.from)).value;\n }\n return false;\n }\n function getRangeSetIterator(node) {\n var state = isEmptyRange(node) ? null : {\n s: 0,\n n: node\n };\n return {\n next: function (key) {\n var keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0) state = {\n up: state,\n n: state.n.l,\n s: 1\n };\n } else {\n while (state.n.l) state = {\n up: state,\n n: state.n.l,\n s: 1\n };\n }\n case 1:\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0) return {\n value: state.n,\n done: false\n };\n case 2:\n if (state.n.r) {\n state.s = 3;\n state = {\n up: state,\n n: state.n.r,\n s: 0\n };\n continue;\n }\n case 3:\n state = state.up;\n }\n }\n return {\n done: true\n };\n }\n };\n }\n function rebalance(target) {\n var _a, _b;\n var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);\n var r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n var l = r === \"r\" ? \"l\" : \"r\";\n var rootClone = __assign({}, target);\n var oldRootRight = target[r];\n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n }\n function computeDepth(_a) {\n var r = _a.r,\n l = _a.l;\n return (r ? l ? Math.max(r.d, l.d) : r.d : l ? l.d : 0) + 1;\n }\n function extendObservabilitySet(target, newSet) {\n keys(newSet).forEach(function (part) {\n if (target[part]) mergeRanges(target[part], newSet[part]);else target[part] = cloneSimpleObjectTree(newSet[part]);\n });\n return target;\n }\n function obsSetsOverlap(os1, os2) {\n return os1.all || os2.all || Object.keys(os1).some(function (key) {\n return os2[key] && rangesOverlap(os2[key], os1[key]);\n });\n }\n var cache = {};\n var unsignaledParts = {};\n var isTaskEnqueued = false;\n function signalSubscribersLazily(part, optimistic) {\n extendObservabilitySet(unsignaledParts, part);\n if (!isTaskEnqueued) {\n isTaskEnqueued = true;\n setTimeout(function () {\n isTaskEnqueued = false;\n var parts = unsignaledParts;\n unsignaledParts = {};\n signalSubscribersNow(parts, false);\n }, 0);\n }\n }\n function signalSubscribersNow(updatedParts, deleteAffectedCacheEntries) {\n if (deleteAffectedCacheEntries === void 0) {\n deleteAffectedCacheEntries = false;\n }\n var queriesToSignal = new Set();\n if (updatedParts.all) {\n for (var _i = 0, _a = Object.values(cache); _i < _a.length; _i++) {\n var tblCache = _a[_i];\n collectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);\n }\n } else {\n for (var key in updatedParts) {\n var parts = /^idb\\:\\/\\/(.*)\\/(.*)\\//.exec(key);\n if (parts) {\n var dbName = parts[1],\n tableName = parts[2];\n var tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n if (tblCache) collectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);\n }\n }\n }\n queriesToSignal.forEach(function (requery) {\n return requery();\n });\n }\n function collectTableSubscribers(tblCache, updatedParts, outQueriesToSignal, deleteAffectedCacheEntries) {\n var updatedEntryLists = [];\n for (var _i = 0, _a = Object.entries(tblCache.queries.query); _i < _a.length; _i++) {\n var _b = _a[_i],\n indexName = _b[0],\n entries = _b[1];\n var filteredEntries = [];\n for (var _c = 0, entries_1 = entries; _c < entries_1.length; _c++) {\n var entry = entries_1[_c];\n if (obsSetsOverlap(updatedParts, entry.obsSet)) {\n entry.subscribers.forEach(function (requery) {\n return outQueriesToSignal.add(requery);\n });\n } else if (deleteAffectedCacheEntries) {\n filteredEntries.push(entry);\n }\n }\n if (deleteAffectedCacheEntries) updatedEntryLists.push([indexName, filteredEntries]);\n }\n if (deleteAffectedCacheEntries) {\n for (var _d = 0, updatedEntryLists_1 = updatedEntryLists; _d < updatedEntryLists_1.length; _d++) {\n var _e = updatedEntryLists_1[_d],\n indexName = _e[0],\n filteredEntries = _e[1];\n tblCache.queries.query[indexName] = filteredEntries;\n }\n }\n }\n function dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb) return state.dbReadyPromise.then(function () {\n return state.dbOpenError ? rejection(state.dbOpenError) : db;\n });\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var openCanceller = state.openCanceller;\n var nativeVerToOpen = Math.round(db.verno * 10);\n var schemaPatchMode = false;\n function throwIfCancelled() {\n if (state.openCanceller !== openCanceller) throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null,\n wasCreated = false;\n var tryOpenDB = function () {\n return new DexiePromise(function (resolve, reject) {\n throwIfCancelled();\n if (!indexedDB) throw new exceptions.MissingAPI();\n var dbName = db.name;\n var req = state.autoSchema || !nativeVerToOpen ? indexedDB.open(dbName) : indexedDB.open(dbName, nativeVerToOpen);\n if (!req) throw new exceptions.MissingAPI();\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \".concat(dbName, \" doesnt exist\")));\n });\n } else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n wasCreated = oldVer < 1;\n db.idbdb = req.result;\n if (schemaPatchMode) {\n patchCurrentVersion(db, upgradeTransaction);\n }\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0) try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema) readGlobalSchema(db, idbdb, tmpTrans);else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans) && !schemaPatchMode) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.\");\n idbdb.close();\n nativeVerToOpen = idbdb.version + 1;\n schemaPatchMode = true;\n return resolve(tryOpenDB());\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n } catch (e) {}\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n idbdb.onclose = wrap(function (ev) {\n db.on(\"close\").fire(ev);\n });\n if (wasCreated) _onDatabaseCreated(db._deps, dbName);\n resolve();\n }, reject);\n }).catch(function (err) {\n switch (err === null || err === void 0 ? void 0 : err.name) {\n case \"UnknownError\":\n if (state.PR1398_maxLoop > 0) {\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n }\n break;\n case \"VersionError\":\n if (nativeVerToOpen > 0) {\n nativeVerToOpen = 0;\n return tryOpenDB();\n }\n break;\n }\n return DexiePromise.reject(err);\n });\n };\n return DexiePromise.race([openCanceller, (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(tryOpenDB)]).then(function () {\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () {\n return db.on.ready.fire(db.vip);\n })).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () {\n return remainders_1(db.vip);\n })).then(fireRemainders);\n }\n });\n }).finally(function () {\n if (state.openCanceller === openCanceller) {\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }\n }).catch(function (err) {\n state.dbOpenError = err;\n try {\n upgradeTransaction && upgradeTransaction.abort();\n } catch (_a) {}\n if (openCanceller === state.openCanceller) {\n db._close();\n }\n return rejection(err);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n }).then(function () {\n if (wasCreated) {\n var everything_1 = {};\n db.tables.forEach(function (table) {\n table.schema.indexes.forEach(function (idx) {\n if (idx.name) everything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/\").concat(idx.name)] = new RangeSet(-Infinity, [[[]]]);\n });\n everything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/\")] = everything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/:dels\")] = new RangeSet(-Infinity, [[[]]]);\n });\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME).fire(everything_1);\n signalSubscribersNow(everything_1, true);\n }\n return db;\n });\n }\n function awaitIterator(iterator) {\n var callNext = function (result) {\n return iterator.next(result);\n },\n doThrow = function (error) {\n return iterator.throw(error);\n },\n onSuccess = step(callNext),\n onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val),\n value = next.value;\n return next.done ? value : !value || typeof value.then !== 'function' ? isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) : value.then(onSuccess, onError);\n };\n }\n return step(callNext)();\n }\n function extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2) throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n }\n function enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n trans.explicit = true;\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n } else {\n try {\n trans.create();\n trans.idbtrans._explicit = true;\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db.close({\n disableAutoOpen: false\n });\n return db.open().then(function () {\n return enterTransactionScope(db, mode, storeNames, null, scopeFunc);\n });\n }\n return rejection(ex);\n }\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n } else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ? DexiePromise.resolve(returnValue).then(function (x) {\n return trans.active ? x : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\"));\n }) : promiseFollowed.then(function () {\n return returnValue;\n })).then(function (x) {\n if (parentTransaction) trans._resolve();\n return trans._completion.then(function () {\n return x;\n });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n }\n function pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i) result.push(value);\n return result;\n }\n function createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), {\n table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || [];\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), {\n name: isVirtual ? \"\".concat(keyPathAlias, \"(virtual-from:\").concat(lowLevelIndex.name, \")\") : lowLevelIndex.name,\n lowLevelIndex: lowLevelIndex,\n isVirtual: isVirtual,\n keyTail: keyTail,\n keyLength: keyLength,\n extractKey: getKeyExtractor(keyPath),\n unique: !isVirtual && lowLevelIndex.unique\n });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ? keyPath[0] : keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) {\n return a.keyTail - b.keyTail;\n });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ? 2 : range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), {\n query: {\n index: index.lowLevelIndex,\n range: translateRange(req.query.range, index.keyTail)\n }\n }) : req;\n }\n var result = __assign(__assign({}, table), {\n schema: __assign(__assign({}, schema), {\n primaryKey: primaryKey,\n indexes: allVirtualIndexes,\n getIndexByKeyPath: findBestIndex\n }),\n count: function (req) {\n return table.count(translateRequest(req));\n },\n query: function (req) {\n return table.query(translateRequest(req));\n },\n openCursor: function (req) {\n var _a = req.query.index,\n keyTail = _a.keyTail,\n isVirtual = _a.isVirtual,\n keyLength = _a.keyLength;\n if (!isVirtual) return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ? cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) : req.unique ? cursor.continue(cursor.key.slice(0, keyLength).concat(req.reverse ? down.MIN_KEY : down.MAX_KEY, keyTail)) : cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: {\n value: _continue\n },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get: function () {\n return cursor.primaryKey;\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ? key[0] : key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req)).then(function (cursor) {\n return cursor && createVirtualCursor(cursor);\n });\n }\n });\n return result;\n }\n });\n }\n var virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n };\n function getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop)) {\n rv[prfx + prop] = undefined;\n } else {\n var ap = a[prop],\n bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop];\n } else if (apTypeName === 'Object') {\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n } else if (ap !== bp) {\n rv[prfx + prop] = b[prop];\n }\n } else if (ap !== bp) rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n }\n function getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete') return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n }\n var hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) {\n return __assign(__assign({}, downCore), {\n table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), {\n mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook,\n deleting = _a.deleting,\n creating = _a.creating,\n updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop) break;\n return dxTrans._promise('readwrite', function () {\n return addPutOrDelete(req);\n }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop) break;\n return dxTrans._promise('readwrite', function () {\n return addPutOrDelete(req);\n }, true);\n case 'delete':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', function () {\n return addPutOrDelete(req);\n }, true);\n case 'deleteRange':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', function () {\n return deleteRange(req);\n }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys) throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), {\n keys: keys\n }) : __assign({}, req);\n if (req.type !== 'delete') req.values = __spreadArray([], req.values, true);\n if (req.keys) req.keys = __spreadArray([], req.keys, true);\n return getExistingValues(downTable, req, keys).then(function (existingValues) {\n var contexts = keys.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = {\n onerror: null,\n onsuccess: null\n };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n } else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n } else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n } else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures,\n results = _a.results,\n numFailures = _a.numFailures,\n lastResult = _a.lastResult;\n for (var i = 0; i < keys.length; ++i) {\n var primKey = results ? results[i] : keys[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n } else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ? req.values[i] : primKey);\n }\n }\n return {\n failures: failures,\n results: results,\n numFailures: numFailures,\n lastResult: lastResult\n };\n }).catch(function (error) {\n contexts.forEach(function (ctx) {\n return ctx.onerror && ctx.onerror(error);\n });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({\n trans: trans,\n values: false,\n query: {\n index: primaryKey,\n range: range\n },\n limit: limit\n }).then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({\n type: 'delete',\n keys: result,\n trans: trans\n }).then(function (res) {\n if (res.numFailures > 0) return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return {\n failures: [],\n numFailures: 0,\n lastResult: undefined\n };\n } else {\n return deleteNextChunk(trans, __assign(__assign({}, range), {\n lower: result[result.length - 1],\n lowerOpen: true\n }), limit);\n }\n });\n });\n }\n }\n });\n return tableMiddleware;\n }\n });\n }\n };\n function getExistingValues(table, req, effectiveKeys) {\n return req.type === \"add\" ? Promise.resolve([]) : table.getMany({\n trans: req.trans,\n keys: effectiveKeys,\n cache: \"immutable\"\n });\n }\n function getFromTransactionCache(keys, cache, clone) {\n try {\n if (!cache) return null;\n if (cache.keys.length < keys.length) return null;\n var result = [];\n for (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0) continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n return result.length === keys.length ? result : null;\n } catch (_a) {\n return null;\n }\n }\n var cacheExistingValuesMiddleware = {\n stack: \"dbcore\",\n level: -1,\n create: function (core) {\n return {\n table: function (tableName) {\n var table = core.table(tableName);\n return __assign(__assign({}, table), {\n getMany: function (req) {\n if (!req.cache) {\n return table.getMany(req);\n }\n var cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n if (cachedResult) {\n return DexiePromise.resolve(cachedResult);\n }\n return table.getMany(req).then(function (res) {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res\n };\n return res;\n });\n },\n mutate: function (req) {\n if (req.type !== \"add\") req.trans[\"_cache\"] = null;\n return table.mutate(req);\n }\n });\n }\n };\n }\n };\n function isCachableContext(ctx, table) {\n return ctx.trans.mode === 'readonly' && !!ctx.subscr && !ctx.trans.explicit && ctx.trans.db._options.cache !== 'disabled' && !table.schema.primaryKey.outbound;\n }\n function isCachableRequest(type, req) {\n switch (type) {\n case 'query':\n return req.values && !req.unique;\n case 'get':\n return false;\n case 'getMany':\n return false;\n case 'count':\n return false;\n case 'openCursor':\n return false;\n }\n }\n var observabilityMiddleware = {\n stack: \"dbcore\",\n level: 0,\n name: \"Observability\",\n create: function (core) {\n var dbName = core.schema.name;\n var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n return __assign(__assign({}, core), {\n transaction: function (stores, mode, options) {\n if (PSD.subscr && mode !== 'readonly') {\n throw new exceptions.ReadOnly(\"Readwrite transaction in liveQuery context. Querier source: \".concat(PSD.querier));\n }\n return core.transaction(stores, mode, options);\n },\n table: function (tableName) {\n var table = core.table(tableName);\n var schema = table.schema;\n var primaryKey = schema.primaryKey,\n indexes = schema.indexes;\n var extractKey = primaryKey.extractKey,\n outbound = primaryKey.outbound;\n var indexesWithAutoIncPK = primaryKey.autoIncrement && indexes.filter(function (index) {\n return index.compound && index.keyPath.includes(primaryKey.keyPath);\n });\n var tableClone = __assign(__assign({}, table), {\n mutate: function (req) {\n var _a, _b;\n var trans = req.trans;\n var mutatedParts = req.mutatedParts || (req.mutatedParts = {});\n var getRangeSet = function (indexName) {\n var part = \"idb://\".concat(dbName, \"/\").concat(tableName, \"/\").concat(indexName);\n return mutatedParts[part] || (mutatedParts[part] = new RangeSet());\n };\n var pkRangeSet = getRangeSet(\"\");\n var delsRangeSet = getRangeSet(\":dels\");\n var type = req.type;\n var _c = req.type === \"deleteRange\" ? [req.range] : req.type === \"delete\" ? [req.keys] : req.values.length < 50 ? [getEffectiveKeys(primaryKey, req).filter(function (id) {\n return id;\n }), req.values] : [],\n keys = _c[0],\n newObjs = _c[1];\n var oldCache = req.trans[\"_cache\"];\n if (isArray(keys)) {\n pkRangeSet.addKeys(keys);\n var oldObjs = type === 'delete' || keys.length === newObjs.length ? getFromTransactionCache(keys, oldCache) : null;\n if (!oldObjs) {\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n } else if (keys) {\n var range = {\n from: (_a = keys.lower) !== null && _a !== void 0 ? _a : core.MIN_KEY,\n to: (_b = keys.upper) !== null && _b !== void 0 ? _b : core.MAX_KEY\n };\n delsRangeSet.add(range);\n pkRangeSet.add(range);\n } else {\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(function (idx) {\n return getRangeSet(idx.name).add(FULL_RANGE);\n });\n }\n return table.mutate(req).then(function (res) {\n if (keys && (req.type === 'add' || req.type === 'put')) {\n pkRangeSet.addKeys(res.results);\n if (indexesWithAutoIncPK) {\n indexesWithAutoIncPK.forEach(function (idx) {\n var idxVals = req.values.map(function (v) {\n return idx.extractKey(v);\n });\n var pkPos = idx.keyPath.findIndex(function (prop) {\n return prop === primaryKey.keyPath;\n });\n for (var i = 0, len = res.results.length; i < len; ++i) {\n idxVals[i][pkPos] = res.results[i];\n }\n getRangeSet(idx.name).addKeys(idxVals);\n });\n }\n }\n trans.mutatedParts = extendObservabilitySet(trans.mutatedParts || {}, mutatedParts);\n return res;\n });\n }\n });\n var getRange = function (_a) {\n var _b, _c;\n var _d = _a.query,\n index = _d.index,\n range = _d.range;\n return [index, new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY)];\n };\n var readSubscribers = {\n get: function (req) {\n return [primaryKey, new RangeSet(req.key)];\n },\n getMany: function (req) {\n return [primaryKey, new RangeSet().addKeys(req.keys)];\n },\n count: getRange,\n query: getRange,\n openCursor: getRange\n };\n keys(readSubscribers).forEach(function (method) {\n tableClone[method] = function (req) {\n var subscr = PSD.subscr;\n var isLiveQuery = !!subscr;\n var cachable = isCachableContext(PSD, table) && isCachableRequest(method, req);\n var obsSet = cachable ? req.obsSet = {} : subscr;\n if (isLiveQuery) {\n var getRangeSet = function (indexName) {\n var part = \"idb://\".concat(dbName, \"/\").concat(tableName, \"/\").concat(indexName);\n return obsSet[part] || (obsSet[part] = new RangeSet());\n };\n var pkRangeSet_1 = getRangeSet(\"\");\n var delsRangeSet_1 = getRangeSet(\":dels\");\n var _a = readSubscribers[method](req),\n queriedIndex = _a[0],\n queriedRanges = _a[1];\n if (method === 'query' && queriedIndex.isPrimaryKey && !req.values) {\n delsRangeSet_1.add(queriedRanges);\n } else {\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n }\n if (!queriedIndex.isPrimaryKey) {\n if (method === \"count\") {\n delsRangeSet_1.add(FULL_RANGE);\n } else {\n var keysPromise_1 = method === \"query\" && outbound && req.values && table.query(__assign(__assign({}, req), {\n values: false\n }));\n return table[method].apply(this, arguments).then(function (res) {\n if (method === \"query\") {\n if (outbound && req.values) {\n return keysPromise_1.then(function (_a) {\n var resultingKeys = _a.result;\n pkRangeSet_1.addKeys(resultingKeys);\n return res;\n });\n }\n var pKeys = req.values ? res.result.map(extractKey) : res.result;\n if (req.values) {\n pkRangeSet_1.addKeys(pKeys);\n } else {\n delsRangeSet_1.addKeys(pKeys);\n }\n } else if (method === \"openCursor\") {\n var cursor_1 = res;\n var wantValues_1 = req.values;\n return cursor_1 && Object.create(cursor_1, {\n key: {\n get: function () {\n delsRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.key;\n }\n },\n primaryKey: {\n get: function () {\n var pkey = cursor_1.primaryKey;\n delsRangeSet_1.addKey(pkey);\n return pkey;\n }\n },\n value: {\n get: function () {\n wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.value;\n }\n }\n });\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n }\n });\n }\n };\n function trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n function addAffectedIndex(ix) {\n var rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n var addKeyOrKeys = function (key) {\n return ix.multiEntry && isArray(key) ? key.forEach(function (key) {\n return rangeSet.addKey(key);\n }) : rangeSet.addKey(key);\n };\n (oldObjs || newObjs).forEach(function (_, i) {\n var oldKey = oldObjs && extractKey(oldObjs[i]);\n var newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n if (oldKey != null) addKeyOrKeys(oldKey);\n if (newKey != null) addKeyOrKeys(newKey);\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n }\n function adjustOptimisticFromFailures(tblCache, req, res) {\n if (res.numFailures === 0) return req;\n if (req.type === 'deleteRange') {\n return null;\n }\n var numBulkOps = req.keys ? req.keys.length : 'values' in req && req.values ? req.values.length : 1;\n if (res.numFailures === numBulkOps) {\n return null;\n }\n var clone = __assign({}, req);\n if (isArray(clone.keys)) {\n clone.keys = clone.keys.filter(function (_, i) {\n return !(i in res.failures);\n });\n }\n if ('values' in clone && isArray(clone.values)) {\n clone.values = clone.values.filter(function (_, i) {\n return !(i in res.failures);\n });\n }\n return clone;\n }\n function isAboveLower(key, range) {\n return range.lower === undefined ? true : range.lowerOpen ? cmp(key, range.lower) > 0 : cmp(key, range.lower) >= 0;\n }\n function isBelowUpper(key, range) {\n return range.upper === undefined ? true : range.upperOpen ? cmp(key, range.upper) < 0 : cmp(key, range.upper) <= 0;\n }\n function isWithinRange(key, range) {\n return isAboveLower(key, range) && isBelowUpper(key, range);\n }\n function applyOptimisticOps(result, req, ops, table, cacheEntry, immutable) {\n if (!ops || ops.length === 0) return result;\n var index = req.query.index;\n var multiEntry = index.multiEntry;\n var queryRange = req.query.range;\n var primaryKey = table.schema.primaryKey;\n var extractPrimKey = primaryKey.extractKey;\n var extractIndex = index.extractKey;\n var extractLowLevelIndex = (index.lowLevelIndex || index).extractKey;\n var finalResult = ops.reduce(function (result, op) {\n var modifedResult = result;\n var includedValues = [];\n if (op.type === 'add' || op.type === 'put') {\n var includedPKs = new RangeSet();\n for (var i = op.values.length - 1; i >= 0; --i) {\n var value = op.values[i];\n var pk = extractPrimKey(value);\n if (includedPKs.hasKey(pk)) continue;\n var key = extractIndex(value);\n if (multiEntry && isArray(key) ? key.some(function (k) {\n return isWithinRange(k, queryRange);\n }) : isWithinRange(key, queryRange)) {\n includedPKs.addKey(pk);\n includedValues.push(value);\n }\n }\n }\n switch (op.type) {\n case 'add':\n {\n var existingKeys_1 = new RangeSet().addKeys(req.values ? result.map(function (v) {\n return extractPrimKey(v);\n }) : result);\n modifedResult = result.concat(req.values ? includedValues.filter(function (v) {\n var key = extractPrimKey(v);\n if (existingKeys_1.hasKey(key)) return false;\n existingKeys_1.addKey(key);\n return true;\n }) : includedValues.map(function (v) {\n return extractPrimKey(v);\n }).filter(function (k) {\n if (existingKeys_1.hasKey(k)) return false;\n existingKeys_1.addKey(k);\n return true;\n }));\n break;\n }\n case 'put':\n {\n var keySet_1 = new RangeSet().addKeys(op.values.map(function (v) {\n return extractPrimKey(v);\n }));\n modifedResult = result.filter(function (item) {\n return !keySet_1.hasKey(req.values ? extractPrimKey(item) : item);\n }).concat(req.values ? includedValues : includedValues.map(function (v) {\n return extractPrimKey(v);\n }));\n break;\n }\n case 'delete':\n var keysToDelete_1 = new RangeSet().addKeys(op.keys);\n modifedResult = result.filter(function (item) {\n return !keysToDelete_1.hasKey(req.values ? extractPrimKey(item) : item);\n });\n break;\n case 'deleteRange':\n var range_1 = op.range;\n modifedResult = result.filter(function (item) {\n return !isWithinRange(extractPrimKey(item), range_1);\n });\n break;\n }\n return modifedResult;\n }, result);\n if (finalResult === result) return result;\n finalResult.sort(function (a, b) {\n return cmp(extractLowLevelIndex(a), extractLowLevelIndex(b)) || cmp(extractPrimKey(a), extractPrimKey(b));\n });\n if (req.limit && req.limit < Infinity) {\n if (finalResult.length > req.limit) {\n finalResult.length = req.limit;\n } else if (result.length === req.limit && finalResult.length < req.limit) {\n cacheEntry.dirty = true;\n }\n }\n return immutable ? Object.freeze(finalResult) : finalResult;\n }\n function areRangesEqual(r1, r2) {\n return cmp(r1.lower, r2.lower) === 0 && cmp(r1.upper, r2.upper) === 0 && !!r1.lowerOpen === !!r2.lowerOpen && !!r1.upperOpen === !!r2.upperOpen;\n }\n function compareLowers(lower1, lower2, lowerOpen1, lowerOpen2) {\n if (lower1 === undefined) return lower2 !== undefined ? -1 : 0;\n if (lower2 === undefined) return 1;\n var c = cmp(lower1, lower2);\n if (c === 0) {\n if (lowerOpen1 && lowerOpen2) return 0;\n if (lowerOpen1) return 1;\n if (lowerOpen2) return -1;\n }\n return c;\n }\n function compareUppers(upper1, upper2, upperOpen1, upperOpen2) {\n if (upper1 === undefined) return upper2 !== undefined ? 1 : 0;\n if (upper2 === undefined) return -1;\n var c = cmp(upper1, upper2);\n if (c === 0) {\n if (upperOpen1 && upperOpen2) return 0;\n if (upperOpen1) return -1;\n if (upperOpen2) return 1;\n }\n return c;\n }\n function isSuperRange(r1, r2) {\n return compareLowers(r1.lower, r2.lower, r1.lowerOpen, r2.lowerOpen) <= 0 && compareUppers(r1.upper, r2.upper, r1.upperOpen, r2.upperOpen) >= 0;\n }\n function findCompatibleQuery(dbName, tableName, type, req) {\n var tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n if (!tblCache) return [];\n var queries = tblCache.queries[type];\n if (!queries) return [null, false, tblCache, null];\n var indexName = req.query ? req.query.index.name : null;\n var entries = queries[indexName || ''];\n if (!entries) return [null, false, tblCache, null];\n switch (type) {\n case 'query':\n var equalEntry = entries.find(function (entry) {\n return entry.req.limit === req.limit && entry.req.values === req.values && areRangesEqual(entry.req.query.range, req.query.range);\n });\n if (equalEntry) return [equalEntry, true, tblCache, entries];\n var superEntry = entries.find(function (entry) {\n var limit = 'limit' in entry.req ? entry.req.limit : Infinity;\n return limit >= req.limit && (req.values ? entry.req.values : true) && isSuperRange(entry.req.query.range, req.query.range);\n });\n return [superEntry, false, tblCache, entries];\n case 'count':\n var countQuery = entries.find(function (entry) {\n return areRangesEqual(entry.req.query.range, req.query.range);\n });\n return [countQuery, !!countQuery, tblCache, entries];\n }\n }\n function subscribeToCacheEntry(cacheEntry, container, requery, signal) {\n cacheEntry.subscribers.add(requery);\n signal.addEventListener(\"abort\", function () {\n cacheEntry.subscribers.delete(requery);\n if (cacheEntry.subscribers.size === 0) {\n enqueForDeletion(cacheEntry, container);\n }\n });\n }\n function enqueForDeletion(cacheEntry, container) {\n setTimeout(function () {\n if (cacheEntry.subscribers.size === 0) {\n delArrayItem(container, cacheEntry);\n }\n }, 3000);\n }\n var cacheMiddleware = {\n stack: 'dbcore',\n level: 0,\n name: 'Cache',\n create: function (core) {\n var dbName = core.schema.name;\n var coreMW = __assign(__assign({}, core), {\n transaction: function (stores, mode, options) {\n var idbtrans = core.transaction(stores, mode, options);\n if (mode === 'readwrite') {\n var ac_1 = new AbortController();\n var signal = ac_1.signal;\n var endTransaction = function (wasCommitted) {\n return function () {\n ac_1.abort();\n if (mode === 'readwrite') {\n var affectedSubscribers_1 = new Set();\n for (var _i = 0, stores_1 = stores; _i < stores_1.length; _i++) {\n var storeName = stores_1[_i];\n var tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(storeName)];\n if (tblCache) {\n var table = core.table(storeName);\n var ops = tblCache.optimisticOps.filter(function (op) {\n return op.trans === idbtrans;\n });\n if (idbtrans._explicit && wasCommitted && idbtrans.mutatedParts) {\n for (var _a = 0, _b = Object.values(tblCache.queries.query); _a < _b.length; _a++) {\n var entries = _b[_a];\n for (var _c = 0, _d = entries.slice(); _c < _d.length; _c++) {\n var entry = _d[_c];\n if (obsSetsOverlap(entry.obsSet, idbtrans.mutatedParts)) {\n delArrayItem(entries, entry);\n entry.subscribers.forEach(function (requery) {\n return affectedSubscribers_1.add(requery);\n });\n }\n }\n }\n } else if (ops.length > 0) {\n tblCache.optimisticOps = tblCache.optimisticOps.filter(function (op) {\n return op.trans !== idbtrans;\n });\n for (var _e = 0, _f = Object.values(tblCache.queries.query); _e < _f.length; _e++) {\n var entries = _f[_e];\n for (var _g = 0, _h = entries.slice(); _g < _h.length; _g++) {\n var entry = _h[_g];\n if (entry.res != null && idbtrans.mutatedParts) {\n if (wasCommitted && !entry.dirty) {\n var freezeResults = Object.isFrozen(entry.res);\n var modRes = applyOptimisticOps(entry.res, entry.req, ops, table, entry, freezeResults);\n if (entry.dirty) {\n delArrayItem(entries, entry);\n entry.subscribers.forEach(function (requery) {\n return affectedSubscribers_1.add(requery);\n });\n } else if (modRes !== entry.res) {\n entry.res = modRes;\n entry.promise = DexiePromise.resolve({\n result: modRes\n });\n }\n } else {\n if (entry.dirty) {\n delArrayItem(entries, entry);\n }\n entry.subscribers.forEach(function (requery) {\n return affectedSubscribers_1.add(requery);\n });\n }\n }\n }\n }\n }\n }\n }\n affectedSubscribers_1.forEach(function (requery) {\n return requery();\n });\n }\n };\n };\n idbtrans.addEventListener('abort', endTransaction(false), {\n signal: signal\n });\n idbtrans.addEventListener('error', endTransaction(false), {\n signal: signal\n });\n idbtrans.addEventListener('complete', endTransaction(true), {\n signal: signal\n });\n }\n return idbtrans;\n },\n table: function (tableName) {\n var downTable = core.table(tableName);\n var primKey = downTable.schema.primaryKey;\n var tableMW = __assign(__assign({}, downTable), {\n mutate: function (req) {\n var trans = PSD.trans;\n if (primKey.outbound || trans.db._options.cache === 'disabled' || trans.explicit || trans.idbtrans.mode !== 'readwrite') {\n return downTable.mutate(req);\n }\n var tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n if (!tblCache) return downTable.mutate(req);\n var promise = downTable.mutate(req);\n if ((req.type === 'add' || req.type === 'put') && (req.values.length >= 50 || getEffectiveKeys(primKey, req).some(function (key) {\n return key == null;\n }))) {\n promise.then(function (res) {\n var reqWithResolvedKeys = __assign(__assign({}, req), {\n values: req.values.map(function (value, i) {\n var _a;\n if (res.failures[i]) return value;\n var valueWithKey = ((_a = primKey.keyPath) === null || _a === void 0 ? void 0 : _a.includes('.')) ? deepClone(value) : __assign({}, value);\n setByKeyPath(valueWithKey, primKey.keyPath, res.results[i]);\n return valueWithKey;\n })\n });\n var adjustedReq = adjustOptimisticFromFailures(tblCache, reqWithResolvedKeys, res);\n tblCache.optimisticOps.push(adjustedReq);\n queueMicrotask(function () {\n return req.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n });\n });\n } else {\n tblCache.optimisticOps.push(req);\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n promise.then(function (res) {\n if (res.numFailures > 0) {\n delArrayItem(tblCache.optimisticOps, req);\n var adjustedReq = adjustOptimisticFromFailures(tblCache, req, res);\n if (adjustedReq) {\n tblCache.optimisticOps.push(adjustedReq);\n }\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n }\n });\n promise.catch(function () {\n delArrayItem(tblCache.optimisticOps, req);\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n });\n }\n return promise;\n },\n query: function (req) {\n var _a;\n if (!isCachableContext(PSD, downTable) || !isCachableRequest(\"query\", req)) return downTable.query(req);\n var freezeResults = ((_a = PSD.trans) === null || _a === void 0 ? void 0 : _a.db._options.cache) === 'immutable';\n var _b = PSD,\n requery = _b.requery,\n signal = _b.signal;\n var _c = findCompatibleQuery(dbName, tableName, 'query', req),\n cacheEntry = _c[0],\n exactMatch = _c[1],\n tblCache = _c[2],\n container = _c[3];\n if (cacheEntry && exactMatch) {\n cacheEntry.obsSet = req.obsSet;\n } else {\n var promise = downTable.query(req).then(function (res) {\n var result = res.result;\n if (cacheEntry) cacheEntry.res = result;\n if (freezeResults) {\n for (var i = 0, l = result.length; i < l; ++i) {\n Object.freeze(result[i]);\n }\n Object.freeze(result);\n } else {\n res.result = deepClone(result);\n }\n return res;\n }).catch(function (error) {\n if (container && cacheEntry) delArrayItem(container, cacheEntry);\n return Promise.reject(error);\n });\n cacheEntry = {\n obsSet: req.obsSet,\n promise: promise,\n subscribers: new Set(),\n type: 'query',\n req: req,\n dirty: false\n };\n if (container) {\n container.push(cacheEntry);\n } else {\n container = [cacheEntry];\n if (!tblCache) {\n tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)] = {\n queries: {\n query: {},\n count: {}\n },\n objs: new Map(),\n optimisticOps: [],\n unsignaledParts: {}\n };\n }\n tblCache.queries.query[req.query.index.name || ''] = container;\n }\n }\n subscribeToCacheEntry(cacheEntry, container, requery, signal);\n return cacheEntry.promise.then(function (res) {\n return {\n result: applyOptimisticOps(res.result, req, tblCache === null || tblCache === void 0 ? void 0 : tblCache.optimisticOps, downTable, cacheEntry, freezeResults)\n };\n });\n }\n });\n return tableMW;\n }\n });\n return coreMW;\n }\n };\n function vipify(target, vipDb) {\n return new Proxy(target, {\n get: function (target, prop, receiver) {\n if (prop === 'db') return vipDb;\n return Reflect.get(target, prop, receiver);\n }\n });\n }\n var Dexie$1 = function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons,\n autoOpen: true,\n indexedDB: deps.indexedDB,\n IDBKeyRange: deps.IDBKeyRange,\n cache: 'cloned'\n }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true,\n PR1398_maxLoop: 3,\n autoOpen: options.autoOpen\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", {\n ready: [promisableChain, nop]\n });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError) DexiePromise.resolve().then(subscriber);\n if (bSticky) subscribe(subscriber);\n } else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky) subscribe(subscriber);\n } else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky) subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0) console.warn(\"Another connection wants to upgrade database '\".concat(_this.name, \"'. Closing db now to resume the upgrade.\"));else console.warn(\"Another connection wants to delete database '\".concat(_this.name, \"'. Closing db now to resume the delete request.\"));\n _this.close({\n disableAutoOpen: false\n });\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion) console.warn(\"Dexie.delete('\".concat(_this.name, \"') was blocked\"));else console.warn(\"Upgrade '\".concat(_this.name, \"' blocked by other connection holding version \").concat(ev.oldVersion / 10));\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) {\n return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction);\n };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections.filter(function (c) {\n return c.name === _this.name && c !== _this && !c._state.vcFired;\n }).map(function (c) {\n return c.on(\"versionchange\").fire(ev);\n });\n };\n this.use(cacheExistingValuesMiddleware);\n this.use(cacheMiddleware);\n this.use(observabilityMiddleware);\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n var vipDB = new Proxy(this, {\n get: function (_, prop, receiver) {\n if (prop === '_vip') return true;\n if (prop === 'table') return function (tableName) {\n return vipify(_this.table(tableName), vipDB);\n };\n var rv = Reflect.get(_, prop, receiver);\n if (rv instanceof Table) return vipify(rv, vipDB);\n if (prop === 'tables') return rv.map(function (t) {\n return vipify(t, vipDB);\n });\n if (prop === '_createTransaction') return function () {\n var tx = rv.apply(this, arguments);\n return vipify(tx, vipDB);\n };\n return rv;\n }\n });\n this.vip = vipDB;\n addons.forEach(function (addon) {\n return addon(_this);\n });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1) throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened) throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) {\n return v._cfg.version === versionNumber;\n })[0];\n if (versionInstance) return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip) ? fn() : new DexiePromise(function (resolve, reject) {\n if (_this._state.openComplete) {\n return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n }\n if (!_this._state.isBeingOpened) {\n if (!_this._state.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack,\n create = _a.create,\n level = _a.level,\n name = _a.name;\n if (name) this.unuse({\n stack: stack,\n name: name\n });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({\n stack: stack,\n create: create,\n level: level == null ? 10 : level,\n name: name\n });\n middlewares.sort(function (a, b) {\n return a.level - b.level;\n });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack,\n name = _a.name,\n create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create : name ? mw.name !== name : false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n var _this = this;\n return usePSD(globalPSD, function () {\n return dexieOpen(_this);\n });\n };\n Dexie.prototype._close = function () {\n var state = this._state;\n var idx = connections.indexOf(this);\n if (idx >= 0) connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n } catch (e) {}\n this.idbdb = null;\n }\n if (!state.isBeingOpened) {\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n }\n };\n Dexie.prototype.close = function (_a) {\n var _b = _a === void 0 ? {\n disableAutoOpen: true\n } : _a,\n disableAutoOpen = _b.disableAutoOpen;\n var state = this._state;\n if (disableAutoOpen) {\n if (state.isBeingOpened) {\n state.cancelOpen(new exceptions.DatabaseClosed());\n }\n this._close();\n state.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n } else {\n this._close();\n state.autoOpen = this._options.autoOpen || state.isBeingOpened;\n state.openComplete = false;\n state.dbOpenError = null;\n }\n };\n Dexie.prototype.delete = function (closeOptions) {\n var _this = this;\n if (closeOptions === void 0) {\n closeOptions = {\n disableAutoOpen: true\n };\n }\n var hasInvalidArguments = arguments.length > 0 && typeof arguments[0] !== 'object';\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close(closeOptions);\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n _onDatabaseDeleted(_this._deps, _this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasInvalidArguments) throw new exceptions.InvalidArgument(\"Invalid closeOptions argument to db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n } else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && dbOpenError.name === 'DatabaseClosed';\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) {\n return _this._allTables[name];\n });\n },\n enumerable: false,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string') throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY) idbMode = READONLY;else if (mode == \"rw\" || mode == READWRITE) idbMode = READWRITE;else throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n } else throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n } else throw new exceptions.SubTransaction(\"Table \" + storeName + \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n } catch (e) {\n return parentTransaction ? parentTransaction._promise(null, function (_, reject) {\n reject(e);\n }) : rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return parentTransaction ? parentTransaction._promise(idbMode, enterTransaction, \"lock\") : PSD.trans ? usePSD(PSD.transless, function () {\n return _this._whenReady(enterTransaction);\n }) : this._whenReady(enterTransaction);\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \".concat(tableName, \" does not exist\"));\n }\n return this._allTables[tableName];\n };\n return Dexie;\n }();\n var symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol ? Symbol.observable : \"@@observable\";\n var Observable = function () {\n function Observable(subscribe) {\n this._subscribe = subscribe;\n }\n Observable.prototype.subscribe = function (x, error, complete) {\n return this._subscribe(!x || typeof x === \"function\" ? {\n next: x,\n error: error,\n complete: complete\n } : x);\n };\n Observable.prototype[symbolObservable] = function () {\n return this;\n };\n return Observable;\n }();\n var domDeps;\n try {\n domDeps = {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n } catch (e) {\n domDeps = {\n indexedDB: null,\n IDBKeyRange: null\n };\n }\n function liveQuery(querier) {\n var hasValue = false;\n var currentValue;\n var observable = new Observable(function (observer) {\n var scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(ctx) {\n var wasRootExec = beginMicroTickScope();\n try {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var rv = newScope(querier, ctx);\n if (scopeFuncIsAsync) {\n rv = rv.finally(decrementExpectedAwaits);\n }\n return rv;\n } finally {\n wasRootExec && endMicroTickScope();\n }\n }\n var closed = false;\n var abortController;\n var accumMuts = {};\n var currentObs = {};\n var subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: function () {\n if (closed) return;\n closed = true;\n if (abortController) abortController.abort();\n if (startedListening) globalEvents.storagemutated.unsubscribe(mutationListener);\n }\n };\n observer.start && observer.start(subscription);\n var startedListening = false;\n var doQuery = function () {\n return execInGlobalContext(_doQuery);\n };\n function shouldNotify() {\n return obsSetsOverlap(currentObs, accumMuts);\n }\n var mutationListener = function (parts) {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n var _doQuery = function () {\n if (closed || !domDeps.indexedDB) {\n return;\n }\n accumMuts = {};\n var subscr = {};\n if (abortController) abortController.abort();\n abortController = new AbortController();\n var ctx = {\n subscr: subscr,\n signal: abortController.signal,\n requery: doQuery,\n querier: querier,\n trans: null\n };\n var ret = execute(ctx);\n Promise.resolve(ret).then(function (result) {\n hasValue = true;\n currentValue = result;\n if (closed || ctx.signal.aborted) {\n return;\n }\n accumMuts = {};\n currentObs = subscr;\n if (!objectIsEmpty(currentObs) && !startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n execInGlobalContext(function () {\n return !closed && observer.next && observer.next(result);\n });\n }, function (err) {\n hasValue = false;\n if (!['DatabaseClosedError', 'AbortError'].includes(err === null || err === void 0 ? void 0 : err.name)) {\n if (!closed) execInGlobalContext(function () {\n if (closed) return;\n observer.error && observer.error(err);\n });\n }\n });\n };\n setTimeout(doQuery, 0);\n return subscription;\n });\n observable.hasValue = function () {\n return hasValue;\n };\n observable.getValue = function () {\n return currentValue;\n };\n return observable;\n }\n var Dexie = Dexie$1;\n props(Dexie, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie(databaseName, {\n addons: []\n });\n return db.delete();\n },\n exists: function (name) {\n return new Dexie(name, {\n addons: []\n }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () {\n return false;\n });\n },\n getDatabaseNames: function (cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n } catch (_a) {\n return rejection(new exceptions.MissingAPI());\n }\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n },\n ignoreTransaction: function (scopeFunc) {\n return PSD.trans ? usePSD(PSD.transless, scopeFunc) : scopeFunc();\n },\n vip: vip,\n async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function') return DexiePromise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n };\n },\n spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function') return DexiePromise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () {\n return PSD.trans || null;\n }\n },\n waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ? Dexie.ignoreTransaction(promiseOrFunction) : promiseOrFunction).timeout(optionalTimeout || 60000);\n return PSD.trans ? PSD.trans.waitFor(promise) : promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () {\n return debug;\n },\n set: function (value) {\n setDebug(value);\n }\n },\n derive: derive,\n extend: extend,\n props: props,\n override: override,\n Events: Events,\n on: globalEvents,\n liveQuery: liveQuery,\n extendObservabilitySet: extendObservabilitySet,\n getByKeyPath: getByKeyPath,\n setByKeyPath: setByKeyPath,\n delByKeyPath: delByKeyPath,\n shallowClone: shallowClone,\n deepClone: deepClone,\n getObjectDiff: getObjectDiff,\n cmp: cmp,\n asap: asap$1,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: domDeps,\n cache: cache,\n semVer: DEXIE_VERSION,\n version: DEXIE_VERSION.split('.').map(function (n) {\n return parseInt(n);\n }).reduce(function (p, c, i) {\n return p + c / Math.pow(10, i * 2);\n })\n }));\n Dexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n if (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n if (!propagatingLocally) {\n var event_1;\n event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n propagatingLocally = true;\n dispatchEvent(event_1);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n var detail = _a.detail;\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n }\n function propagateLocally(updateParts) {\n var wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n signalSubscribersNow(updateParts, true);\n } finally {\n propagatingLocally = wasMe;\n }\n }\n var propagatingLocally = false;\n var bc;\n var createBC = function () {};\n if (typeof BroadcastChannel !== 'undefined') {\n createBC = function () {\n bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n bc.onmessage = function (ev) {\n return ev.data && propagateLocally(ev.data);\n };\n };\n createBC();\n if (typeof bc.unref === 'function') {\n bc.unref();\n }\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n if (!propagatingLocally) {\n bc.postMessage(changedParts);\n }\n });\n }\n if (typeof addEventListener !== 'undefined') {\n addEventListener('pagehide', function (event) {\n if (!Dexie$1.disableBfCache && event.persisted) {\n if (debug) console.debug('Dexie: handling persisted pagehide');\n bc === null || bc === void 0 ? void 0 : bc.close();\n for (var _i = 0, connections_1 = connections; _i < connections_1.length; _i++) {\n var db = connections_1[_i];\n db.close({\n disableAutoOpen: false\n });\n }\n }\n });\n addEventListener('pageshow', function (event) {\n if (!Dexie$1.disableBfCache && event.persisted) {\n if (debug) console.debug('Dexie: handling persisted pageshow');\n createBC();\n propagateLocally({\n all: new RangeSet(-Infinity, [[]])\n });\n }\n });\n }\n function add(value) {\n return new PropModification({\n add: value\n });\n }\n function remove(value) {\n return new PropModification({\n remove: value\n });\n }\n function replacePrefix(a, b) {\n return new PropModification({\n replacePrefix: [a, b]\n });\n }\n DexiePromise.rejectionMapper = mapError;\n setDebug(debug);\n var namedExports = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Dexie: Dexie$1,\n liveQuery: liveQuery,\n Entity: Entity,\n cmp: cmp,\n PropModSymbol: PropModSymbol,\n PropModification: PropModification,\n replacePrefix: replacePrefix,\n add: add,\n remove: remove,\n 'default': Dexie$1,\n RangeSet: RangeSet,\n mergeRanges: mergeRanges,\n rangesOverlap: rangesOverlap\n });\n __assign(Dexie$1, namedExports, {\n default: Dexie$1\n });\n return Dexie$1;\n});\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[dsSearchInput]',\n standalone: true,\n host: {\n class: 'ds-search-input',\n },\n})\nexport class DsSearchInput {\n elementRef = inject>(ElementRef, { optional: true });\n ngControl = inject(NgControl, { optional: true });\n\n getForm() {\n if (this.ngControl instanceof FormControlDirective) {\n return this.ngControl.form;\n }\n if (this.ngControl instanceof FormControlName) {\n return this.ngControl.control;\n }\n return null;\n }\n}\n","
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Output,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { DsSearchInput } from './ds-searchbar-directive';\n\nexport const DS_SEARCH_SIZES_ARRAY = ['small', 'large'] as const;\nexport type DsSearchBarSizes = (typeof DS_SEARCH_SIZES_ARRAY)[number];\n\n@Component({\n standalone: true,\n selector: 'ds-search-bar',\n templateUrl: './searchbar.component.html',\n styleUrls: ['./searchbar.component.scss'],\n host: {\n '[class.ds-search-bar-disabled]': 'disabled()',\n '[class.ds-search-bar-inverse]': 'inverse()',\n '[class]': 'hostClass()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, DsSearchInput],\n})\nexport class DsSearchBar {\n @ContentChild(DsSearchInput, { static: true }) searchInput!: DsSearchInput;\n @ContentChild('searchIcon') searchIcon?: TemplateRef;\n @ContentChild('closeIcon') closeIcon?: TemplateRef;\n\n size = input('large');\n placeholder = input('search');\n disabled = input(false, { transform: booleanAttribute });\n inverse = input(false, { transform: booleanAttribute });\n clearIconTabIndex = 0;\n private clickEventListener!: () => void;\n\n @Output() searchCleared = new EventEmitter(false);\n @Output() searchBarClicked = new EventEmitter(false);\n\n hostClass = computed(() => `ds-search-bar-${this.size()}`);\n\n clearIconMouseDownEventHandler() {\n this.searchCleared.emit(true);\n if (this.searchInput) {\n const form = this.searchInput.getForm();\n this.clearIconTabIndex = -1;\n if (form) {\n form.setValue('');\n } else if (this.searchInput.elementRef?.nativeElement) {\n this.searchInput.elementRef.nativeElement.value = '';\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.searchInput) {\n this.clickEventListener = () => {\n this.searchBarClicked.emit(true);\n };\n this.searchInput.elementRef?.nativeElement.addEventListener('click', this.clickEventListener);\n }\n }\n\n clearIconMouseUpEventHandler() {\n this.clearIconTabIndex = 0;\n }\n\n ngOnDestroy() {\n if (this.searchInput && this.clickEventListener) {\n this.searchInput.elementRef?.nativeElement.removeEventListener('click', this.clickEventListener);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csAbTestingConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: abTestingClientConfigFactory,\n})\nexport class ABTestingClientConfig {\n isEnabled: boolean;\n recentlyPlayedAsContainer: boolean;\n recentlyPlayedAsWidget: boolean;\n}\n\nexport function abTestingClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ABTestingClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csAdvanceGameDataModel', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: advanceGameDataClientConfigFactory,\n})\nexport class AdvanceGameDataClientConfig {\n enableAdvanceGameData: boolean;\n advanceUrlPattern: string;\n enableFeatureId: boolean;\n}\n\nexport function advanceGameDataClientConfigFactory(service: LazyClientConfigService) {\n return service.get(AdvanceGameDataClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csApiPathsConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: apiPathsClientConfigFactory,\n})\nexport class ApiPathsClientConfig {\n bingo: any;\n globalJackpots: any;\n lmt: any;\n slotRaces: any;\n jackpots: any;\n gameData: any;\n teasers: any;\n playerSegmentation: any;\n portal: any;\n cashier: any;\n liveCasino: any;\n freeSpins: any;\n nonCriticalFeeds: any;\n gamesServices: any;\n disjointFeeds: any;\n ping: any;\n}\n\nexport function apiPathsClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ApiPathsClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csAracdeLobbyConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: arcadeLobbyClientConfigFactory,\n})\nexport class ArcadeLobbyClientConfig {\n rpCount: number;\n rpCountOverlay: number;\n widgetGamesConfig: any;\n arcadeIconConfigMap: any;\n tabletRpCount: number;\n}\n\nexport function arcadeLobbyClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ArcadeLobbyClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csBetMGMOriginals', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: betMGMOriginalsClientConfigFactory,\n})\nexport class BetMGMOriginalsClientConfig {\n enabledBetMGMOriginals: boolean;\n originalsExpiryDateFormat: string;\n betmgmOriginalsConfigurations: betmgmOriginalsSitecoreData;\n}\n\nexport interface betmgmOriginalsSitecoreData {\n readonly AditionalInformation: string;\n readonly BackGroundImage: string;\n readonly BeforeOptInContent: string;\n readonly Days: string;\n readonly Description: string;\n readonly DurationText: string;\n readonly BonusIcon: string;\n readonly GreenTick: string;\n readonly HeaderTextcolour: string;\n readonly HeaderTitleText: string;\n readonly HedearTextSize: string;\n readonly Hours: string;\n readonly IconContent: string;\n readonly Minutes: string;\n readonly OptedInText: string;\n readonly OptinText: string;\n readonly OverlayHeaderButtonText: string;\n readonly OverlayHeaderText: string;\n readonly PrizeText: string;\n readonly PrizeValue: string;\n readonly SeeDetailsDesc: string;\n readonly SeeDetailsLastPrize: string;\n readonly SeeDetailsText: string;\n readonly SubCategoryPill: string;\n readonly SubDetailsHeaderText: string;\n readonly SubDetailsText1: string;\n readonly SubDetaisText2: string;\n readonly CategoryBackgroundImage: string;\n readonly TicketIcon: string;\n readonly TicketInfo: string;\n readonly TicketTextDetails: string;\n readonly TimeTextDetails: string;\n readonly TimeZoneText: string;\n readonly TimerIcon: string;\n readonly ViewDetailsText: string;\n readonly ViewGamesText: string;\n readonly TimerCount: number;\n readonly Seconds: string;\n readonly SourceType: string;\n readonly SourceId: string;\n readonly HeaderTitleSubText: string;\n readonly MobileBackGroundImage: string;\n readonly MobileCategoryBackgroundImage: string;\n readonly ViewDetailsUrl: string;\n readonly TimerExpiryDate: string;\n}\n\nexport function betMGMOriginalsClientConfigFactory(service: LazyClientConfigService) {\n return service.get(BetMGMOriginalsClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csCasinoConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: casinoCoreConfigClientConfigFactory,\n})\nexport class CasinoCoreConfigClientConfig {\n gameLogUrl: string;\n frontendId: string;\n brandId: string;\n productId: string;\n defaultCategory: string;\n teasers: any;\n gameIconsQuality: string;\n desktopGameIconsQuality: string;\n liveGamesCategories: string[];\n maxNavigationLevel: number;\n gamesLoadCount: any;\n gymlLimit: number;\n gymlLimitForSearch: number;\n recentGamesCountLimit: number;\n defaultyLobbyTypeCategory: any;\n cacheKeys: any;\n casinoContextValues: any;\n detailPageModeLobbyType: any;\n enableLiveGames: boolean;\n}\n\nexport function casinoCoreConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(CasinoCoreConfigClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csCasinoAsIFrameOverlayConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: casinoAsIFrameOverlayConfigFactory,\n})\nexport class CasinoAsIFrameOverlayConfig {\n bottomNavCategoriesToLobbyTypeMap: any;\n isIFrameOverlay: any;\n appendOpenCasinoCoreOverlayQueryParam: boolean;\n hideBottomNav: boolean;\n overlayLobbyTypeMap: any;\n overlayBottomNavLobbyTypeMap: any;\n enableSearch: boolean;\n}\n\nexport function casinoAsIFrameOverlayConfigFactory(service: LazyClientConfigService) {\n return service.get(CasinoAsIFrameOverlayConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csClientSideConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: clientSideConfigClientConfigFactory,\n})\nexport class ClientSideConfigClientConfig {\n bonusInterval: number;\n playForFunAndRealButtons: boolean;\n labelId: string;\n playForFunAndRealButtonsLobbyType: any;\n}\n\nexport function clientSideConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ClientSideConfigClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csCommonConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: commonClientConfigFactory,\n})\nexport class CommonClientConfig {\n scriptsInjectionData: { [key: string]: { url: string; customAttributes: { [key: string]: string } } };\n}\n\nexport function commonClientConfigFactory(service: LazyClientConfigService) {\n return service.get(CommonClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csCozyBingo', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: cozyBingoClientConfigFactory,\n})\nexport class CozyBingoClientConfig {\n cozyBingoWidgetPosition: any;\n cozyBingoWidgetIframeSegment: string;\n cozyBingoFavouritesInRpwidget: boolean;\n cozybingoSchedulerWidgetIframeSegment: string;\n cozyBingoRecentGamesInRpwidget: boolean;\n enableBingoGameLaunchPostMethod: boolean;\n enableLastLoginTimeCheck: boolean;\n enableWidgetImageForBingoGame: boolean;\n}\n\nexport function cozyBingoClientConfigFactory(service: LazyClientConfigService) {\n return service.get(CozyBingoClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csDevSettingsConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: devSettingsConfigFactory,\n})\nexport class DevSettingsConfig {\n categoryDataCacheTimeOut: number;\n enableCategoryDataCache: boolean;\n gameIconTemplate: string;\n getGameIconFromLMT: boolean;\n isOptimizedLobby: boolean;\n isFullyOptimizedLobby: boolean;\n multiProductSupport: boolean;\n showInhouseGamesConsole: boolean;\n masterUserPattern: string;\n isPreviewUser: boolean;\n subCategoryLoadLimit: number;\n subCategoryLoadLimitOverlayOverride: number;\n}\n\nexport function devSettingsConfigFactory(service: LazyClientConfigService) {\n return service.get(DevSettingsConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csDiscoverFeed', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: discoverFeedClientConfigFactory,\n})\nexport class DiscoverFeedClientConfig {\n discoverFeedLmtkey: any;\n enableDiscoverFeed: boolean;\n staticDiscoverfeedLobbytype: string;\n}\n\nexport function discoverFeedClientConfigFactory(service: LazyClientConfigService) {\n return service.get(DiscoverFeedClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csDownloadAppFromDevice', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: downloadAppFromDeviceClientConfigFactory,\n})\nexport class DownloadAppFromDeviceClientConfig {\n downloadAppFromDevice: boolean;\n downloadAppErrorMsgs: string;\n geoComplyMessage: any;\n}\n\nexport function downloadAppFromDeviceClientConfigFactory(service: LazyClientConfigService) {\n return service.get(DownloadAppFromDeviceClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csFeatures', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: featuresClientConfigFactory,\n})\nexport class FeaturesClientConfig {\n showMD3Teasers: boolean;\n useFavouriteGames: boolean;\n useRecentGames: boolean;\n useEmbeddedTeasers: boolean;\n sendJSErrorsToServer: boolean;\n showAddToHome: boolean;\n isAnonymousLobbyEnabled: boolean;\n isPromotionPagesEnabled: boolean;\n gamesSearch: boolean;\n gameVideo: any;\n showSearchInTopNavigation: boolean;\n showHomeInTopNavigation: boolean;\n taxWithheld: boolean;\n bonusSection: boolean;\n freespinsSection: boolean;\n showGameTitle: boolean;\n goToTopArrow: boolean;\n showSeoBoxes: boolean;\n showLastLoginTime: boolean;\n showUnfinishedTooltipIcon: boolean;\n instagramHeight: string;\n disableFreeSpins: boolean;\n enableJackpotTickerTeasers: boolean;\n showHomeFixedNavigation: boolean;\n enableRefresh: boolean;\n aamsEnabled: boolean;\n quickInfo: boolean;\n useLMTFeed: boolean;\n isFullyOptimizedLobby: boolean;\n browserLocalStorageCacheDuration: any;\n browserLocalStorageCategoryDataValidityDuration: number;\n browserLocalStorageCategoryDataUpdateInterval: number;\n enableClientStorage: boolean;\n downloadAppOnGameLaunch: boolean;\n enableEnhancedSearch: boolean;\n enableHashText: boolean;\n hashText: string;\n showSeeAllGamesCount: boolean;\n hideHomeInSubNav: boolean;\n setNavBarLimitTimeout: number;\n showSmartBanner: boolean;\n hideFavouritesOnPreLogin: string;\n favouriteGamesLobbyType: any;\n enableQuickInfoLobbyType: any;\n matGridColCount: number;\n showSubNavigationAboveTeaser: boolean;\n matGridColCountForLobbyType: any;\n showSubNavigationAboveTeaserLobbyType: any;\n newJackpotRibbonStyling: boolean;\n stickersForUk: any;\n newQuickInfoStyle: any;\n showStickersInOverlay: any;\n showJackpotvalueInOverlay: any;\n enableHotIcon: any;\n isUkHeading: any;\n enableFastLoadingGames: boolean;\n enableSkeletonLoading: any;\n enableUkMouseOverStyle: boolean;\n alignIconRight: any;\n globalJackpotInterVal: any;\n isGlobalJackpotEnabled: boolean;\n isAnchorTagVisibleOnQuickInfo: boolean;\n globalSearchFixedNavMobile: boolean;\n enableGSInRegularSearch: boolean;\n extendedTopMenuStatus: any;\n enableTitleOnGameTile: any;\n playNowHoverEffect: boolean;\n showEmbeddedTeasersAboveGames: boolean;\n enableEmbeddedTeasers: boolean;\n enableAccountUpgrade: boolean;\n preLoginPlayNowText: boolean;\n extendedTopMenuToRight: boolean;\n highlightCategoryHeader: any;\n enableFixedMobileNavigation: boolean;\n enableFortifiedOnWithdrwal: boolean;\n enablePlayBingoButton: boolean;\n isVanillaHomePageEnabled: boolean;\n enableRpForPrelogin: any;\n enableSignpostingSticker: any;\n enablePreLoginRecentlyPlayed: any;\n enableFreeSpinSummary: boolean;\n isPromoHubExist: boolean;\n showGlobalSearch: boolean;\n useSingleCookieForGameIndexCountInEGV: boolean;\n delimiterForDynamicGameNames: any;\n checkQDAllowedForDepositURL: boolean;\n rpPositionLmtKey: any;\n liveGamesIFrameHeight: number;\n showDesktopSearch: boolean;\n enableSkeleton: boolean;\n enableBottomSubNavigation: boolean;\n enableHeaderforCategory: boolean;\n skipDocReferrer: boolean;\n enableOptimoveFavProduct: boolean;\n showNetflixVideo: boolean;\n enableSlotRacesForLobbyType: any;\n enableVideoPhase2: boolean;\n downloadAppFromDevice: boolean;\n enableLobbyBackgroundImage: boolean;\n enableLobbyStaticImage: boolean;\n teaserSetIndexTimeout: number;\n enableTransparentLobbyBackground: any;\n enableDefaultCategoryStaticImage: any;\n enableStaticImageNonDefault: any;\n gameIconTheming: any;\n enableGameIconTheming: any;\n enableLobbyStaticImageForMobile: boolean;\n enableLocalDateTimeFormat: boolean;\n changeCarouselView: boolean;\n dynamicSeeAllLink: any;\n rpGamesFilterInLiveCasino: boolean;\n rpWidgetGamesFilterInLiveCasino: boolean;\n enableOverlayMobileSearchTopPosition: boolean;\n navigationBackgroundColor: boolean;\n hotIconPath: any;\n enableNewQuickInfoLobbyType: any;\n showVolatilityTable: any;\n storeVendorInfoInCache: boolean;\n nonCasinoUrls: any;\n scrollOnTopTimeFrame: number;\n clickInteractionTimeout: number;\n enableTrackingEntireNavigation: boolean;\n singleGameErrorTimeout: number;\n scrollTopTimeout: number;\n enableFullTakeOverImageForAllCategories: boolean;\n fullTakeOverImageForAllCategories: any;\n gameLaunchTrackingParams: boolean;\n enableStickerStyles: boolean;\n superButtonTimeout: number;\n enableGameIconImageSuffix: boolean;\n displayEdsSmartWidget: boolean;\n activateDesignSystem: boolean;\n enableDsComponents: DsComponentsModel;\n}\nexport interface DsComponentsModel {\n DsComponents: any;\n}\n\nexport function featuresClientConfigFactory(service: LazyClientConfigService) {\n return service.get(FeaturesClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csFeedCacheConfiguration', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: feedCacheClientConfigFactory,\n})\nexport class FeedCacheClientConfig {\n disabledCacheTimeOut: number;\n disabledRequestThreshold: number;\n enableDisabledGames: boolean;\n favouriteCacheTimeOut: number;\n favouriteRequestThreshold: number;\n enableFavoritesFeed: boolean;\n jackpotCacheTimeOut: number;\n jackpotRequestThreshold: number;\n enableJackpotFeed: boolean;\n freeSpinsCacheTimeOut: number;\n freespinRequestThreshold: number;\n enableFreespinsFeed: boolean;\n recentCacheTimeOut: number;\n recentRequestThreshold: number;\n enableRecentlyPlayed: boolean;\n unFinishedCacheTimeOut: number;\n unFinishedRequestThreshold: number;\n enableUnfinishedGamesFeed: boolean;\n lmtCacheThreshold: number;\n enableLMTFeedCache: boolean;\n}\n\nexport function feedCacheClientConfigFactory(service: LazyClientConfigService) {\n return service.get(FeedCacheClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { IContentImage } from '@casinocore/type-utils';\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csFreeSpins', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: freeSpinsClientConfigFactory,\n})\nexport class FreeSpinsClientConfig {\n freeSpinsConfigurations: any;\n freeSpinsMoreInfo: any;\n freespinHost: string;\n freeSpinSummaryPathSegment: string;\n rewardDetailsPathSegment: string;\n isFreeSpinSummaryEnabled: boolean;\n isEnableFreeSpinsOnQuickInfo: boolean;\n freespinsVanillaActiveHeader: string;\n prominentFreeSpinsConfigurations: any;\n isEnableProminentFreeSpinsDisplay: boolean;\n prominentFreeSpinsWidgetBackgroundImage: IContentImage;\n currentWinningsImage: IContentImage;\n ctaSpinBackgroundImage: IContentImage;\n}\n\nexport function freeSpinsClientConfigFactory(service: LazyClientConfigService) {\n return service.get(FreeSpinsClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGameLaunchTrackingConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gameLaunchTrackingClientConfigFactory,\n})\nexport class GameLaunchTrackingClientConfig {\n endpoint: any;\n gA3: any;\n gA4: any;\n isEnabled: boolean;\n mp: any;\n onetrustKey: any;\n}\n\nexport function gameLaunchTrackingClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GameLaunchTrackingClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { IContentImage } from '@casinocore/type-utils';\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\nimport { IContentLink, IContentParameters, IContentVideo } from '../public-api';\n\n@LazyClientConfig({ key: 'csGamePremiere', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gamePremiereClientConfigFactory,\n})\nexport class GamePremiereClientConfig {\n readonly enableGamePremiere: boolean;\n readonly gamePremiereOverlayConfiguration: GamePremiereOverlayConfiguration;\n readonly showOverlyByCampaignStatus: string[];\n readonly showGamePremiereByLobbyTypeCategory: any;\n}\nexport interface GamePremiereOverlayConfiguration {\n readonly headerText: string;\n readonly closeCTA: string;\n readonly sticker: string;\n readonly desktopGameImage: IContentImage;\n readonly mobileGameImage: IContentImage;\n readonly desktopGameVideo: IContentVideo;\n readonly mobileGameVideo: IContentVideo;\n readonly enableVideo: boolean;\n readonly subTitle1: string;\n readonly subTitile2: string;\n readonly mainTitle: string;\n readonly stepsTitle: string;\n readonly step1: string;\n readonly step2: string;\n readonly step3: string;\n readonly additionalInfo: string;\n readonly optinCta: IContentLink;\n readonly playnowCta: IContentLink;\n readonly viewDetails: IContentLink;\n readonly moreInfoText: string;\n readonly lessInfoText: string;\n readonly moreInfoContent: string;\n readonly styles: IContentParameters;\n}\n\nexport function gamePremiereClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GamePremiereClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGameSelectorConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gameSelectorWidgetClientConfigFactory,\n})\nexport class GameSelectorWidgetClientConfig {\n isEnabled: boolean;\n gameSelectionLimit: number;\n gameSelectorWidgetPhaseTwo: boolean;\n}\n\nexport function gameSelectorWidgetClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GameSelectorWidgetClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGameShowHubConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gameShowHubClientConfigFactory,\n})\nexport class GameShowHubClientConfig {\n lobbyType: string;\n loadingConfig: any;\n triviaGameType: string;\n onboardingDataPath: string;\n noOfHours: number;\n gameLaunchUri: string;\n tiltingPhoneMessageImageUrl: string;\n scheduleGames: Array;\n tiltingMessage: string;\n idleTimeout: number;\n enableSupportForLandscape: boolean;\n mobileLandscapeConfig: any;\n mobilePortraitMaxWidth: number;\n defaultRenderer: string;\n fallbackRenderer: string;\n fallbackForIpad: boolean;\n setMapAdjustedTimeout: number;\n enableAudioButton: boolean;\n jackpotGroupName: string;\n pauseLottieAnimations: boolean;\n chatWindowEvents: object;\n enableGSPreloginPopup: boolean;\n}\n\nexport function gameShowHubClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GameShowHubClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGameConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gameConfigClientConfigFactory,\n})\nexport class GameConfigClientConfig {\n host: string;\n gameIconTemplate: string;\n iconTypeMapping: string[];\n maxGamesPerCategory: number;\n showLoadigIndicatorOnGamesLoading: boolean;\n nativeGameLaunchEnabled: boolean;\n vendorsWithOnlyRealModeLobbyType: any;\n enableDemoPlayLobbyType: any;\n showRGLinkOnDetailPageLobbyType: any;\n responsibleGamingLink: any;\n gameMode: string;\n iconConfigMap: any;\n enablePlaytechLiveGameDetailsPage: boolean;\n enableRCPFavWidgetOnPublicPages: boolean;\n enableDemoMode: boolean;\n mgsGameLaunchUrl: any;\n desktopMGSGameLaunchUrl: any;\n desktopMGSLiveGameLaunchURL: any;\n win: any;\n desktopChannelIds: Array;\n demoModeExcludedGamesRegex: string;\n enableQuickInfoReels: boolean;\n removeAllQueryParamsForVendor: Array;\n enableSpinnerOnGameLaunch: boolean;\n gameCloseDelay: number;\n isGameCloseApiEnabled: boolean;\n gameCloseApiPath: string;\n gameCloseApiTimeOut: number;\n isGameCloseAckEventEnabled: boolean;\n gameOwnerIdMap: any;\n enableRefreshonGameClose: boolean;\n iframeAllowattributes: string;\n storeSsotokenInCookies: boolean;\n enableGamestartCookie: boolean;\n gameNotAvailableTimeOut: any;\n enableArcPlayBreakEvent: boolean;\n passNativeAppCookieToGameLaunch: boolean;\n egvOverlayFlag: boolean;\n singleHostLobbyMap: any;\n arcadeLobbyType: string;\n singleGameLaunchUrl: string;\n storeUserDetails: boolean;\n enableNativeOdrEvent: any;\n backToPortalLobby: string;\n enableSlotRaceParams: boolean;\n lottoMGSGameLaunchUrl: any;\n storeLottoSsotokenInCookies: boolean;\n enableSGLForPokerOrOdr: any;\n enableNgOptimizedImage: boolean;\n}\n\nexport function gameConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GameConfigClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGameImpressionsConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gameImpressionsClientConfigFactory,\n})\nexport class GameImpressionsClientConfig {\n isEnabled: boolean;\n targetedCategoryRoutes: any;\n}\n\nexport function gameImpressionsClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GameImpressionsClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGamificationWidget', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gamificationWidgetConfigFactory,\n})\nexport class GamificationWidgetConfig {\n enableGamificationForLobbyType: any;\n enableGamificationWidget: boolean;\n}\n\nfunction gamificationWidgetConfigFactory(service: LazyClientConfigService) {\n return service.get(GamificationWidgetConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGamingStoriesConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gamingStoriesClientConfigFactory,\n})\nexport class GamingStoriesClientConfig {\n localStorageExpirationDuration: number;\n trackViewedStateForPostLogin: boolean;\n trackViewedStateForPreLogin: boolean;\n showStoryViewedTickMark: boolean;\n enableOverlayMobileSearchTopPosition: boolean;\n gameLaunchSetTimeOut: number;\n}\n\nexport function gamingStoriesClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GamingStoriesClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\nimport { IGamingStoriesNpmModel } from '../shared/models/gaming-stories.model';\n\n@LazyClientConfig({ key: 'csGamingStoriesPhase2Config', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: gamingStoriesPhase2ClientConfigFactory,\n})\nexport class GamingStoriesPhase2ClientConfig {\n enabled: boolean;\n storyItemInterval: number;\n gamingStoriesNpmPath: Array;\n}\n\nexport function gamingStoriesPhase2ClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GamingStoriesPhase2ClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\nimport { GeolocationConfigurationModel, InstallerSettingsModel, OobeeIntimationModel } from '../shared/models/geolocation.configuration.model';\n\n@LazyClientConfig({ key: 'csGeolocationConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: geolocationClientConfigFactory,\n})\nexport class GeolocationClientConfig {\n isEnabled: boolean;\n coordinatorSettings: GeolocationConfigurationModel;\n installerSettings: InstallerSettingsModel;\n oobeeIntimation: OobeeIntimationModel;\n synchronizationEvent: string;\n synchronizeCoordination: boolean;\n assetsPath: any;\n gdsUrl: any;\n initialRetryInterval: number;\n isRetryButtonEnabled: boolean;\n retryInterval: number;\n shouldCheckNativeGeoLocation: boolean;\n loadAssetsOnServer: boolean;\n enableRetryCountToCallNative: boolean;\n gdsFailureCount: number;\n enableNDBS: boolean;\n}\n\nexport function geolocationClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GeolocationClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGlobalJackpot', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: globalJackpotClientConfigFactory,\n})\nexport class GlobalJackpotClientConfig {\n globalJackpotPathSegments: string;\n lobbyType: string;\n}\n\nexport function globalJackpotClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GlobalJackpotClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\nimport { IPathBasedEnableORDisable } from '../shared/models/common.model';\n\n@LazyClientConfig({ key: 'csCasinoGlobalSearch', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: globalSearchClientConfigFactory,\n})\nexport class GlobalSearchClientConfig {\n isEnabled: boolean;\n bootstrapOrigin: string;\n bootstraptimeout: number;\n pathBasedEnabler: IPathBasedEnableORDisable;\n}\n\nexport function globalSearchClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GlobalSearchClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csGlobal', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: globalClientConfigFactory,\n})\nexport class GlobalClientConfig {\n messages: any;\n unfinishedTooltip: any;\n unfinishedStyle: any;\n lobbyConfigurations: any;\n arcadeLobbyConfigurations: any;\n gameDescriptionMapping: any;\n globalJackpotEnabled: boolean;\n takeoverStaticImage: any;\n stickerStyles: any;\n freespinsCountBackgroundColor: string;\n jackpotDisplayNameConfigurations: any;\n moreInfoConfiguration: {\n HighVolatilityText: string;\n High: string;\n HighVolatilityImagelink: string;\n MildVolatilityText: string;\n Low: string;\n MildVolatilityImagelink: string;\n RegVolatilityHeaderText: string;\n Medium: string;\n RegVolatilityImagelink: string;\n MaxPayout: string;\n GameProviderHeader: string;\n RelatedGamesText: string;\n MaxPayoutText: string;\n ReelsText: string;\n LinesText: string;\n HowItWorksLink: string;\n GotItCta: string;\n HighVolatilityDescription: string;\n MildVolatilityDescription: string;\n RegVolatilityText: string;\n RegVolatilityDescription: string;\n stickerStyles: any;\n };\n staticImages: StaticImages;\n}\n\nexport function globalClientConfigFactory(service: LazyClientConfigService) {\n return service.get(GlobalClientConfig);\n}\n\ninterface StaticImages {\n gray: string;\n potrait: string;\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csHeaderTeasers', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: headerTeasersClientConfigFactory,\n})\nexport class HeaderTeasersClientConfig {\n teaserModels: any;\n}\n\nexport function headerTeasersClientConfigFactory(service: LazyClientConfigService) {\n return service.get(HeaderTeasersClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csImageLoadOptimizationConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: imageLoadOptimizationClientConfigFactory,\n})\nexport class ImageLoadOptimizationClientConfig {\n isDynamicResizingEnabled: boolean;\n dynamicResizingQueryString: string;\n}\n\nexport function imageLoadOptimizationClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ImageLoadOptimizationClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'csImmersiveLobbyConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: immersiveLobbyClientConfigFactory,\n})\nexport class ImmersiveLobbyClientConfig {\n enabled: boolean;\n lobbyType: string;\n defaultCategoryId: string;\n loadingConfig: any;\n onboardingDataPath: string;\n mobileLandscapeConfig: any;\n mobilePortraitMaxWidth: number;\n defaultRenderer: string;\n fallbackRenderer: string;\n fallbackForIpad: boolean;\n idleTimeout: number;\n setMapAdjustedTimeout: number;\n gameLaunchUri: string;\n statCategoriesDataPath: string;\n statItemsDataPath: string;\n statsDataPath: string;\n pauseLottieAnimations: boolean;\n enableAudioButton: boolean;\n enableStats: boolean;\n chatWindowEvents: object;\n enableGameNameMapping: boolean;\n enableSupportForLandscape: boolean;\n scheduleGames: Array;\n triviaGameType: string;\n noOfHours: number;\n tiltingPhoneMessageImageUrl: string;\n tiltingMessage: string;\n jackpotGroupName: string;\n enableGSPreloginPopup: boolean;\n}\nexport function immersiveLobbyClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ImmersiveLobbyClientConfig);\n}\n","import { Time } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\nimport { IContentImage } from '@casinocore/type-utils';\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csJackpotData', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: jackpotDataClientConfigFactory,\n})\nexport class JackpotDataClientConfig {\n showOnTiles: boolean;\n jpInterval: number;\n mustGoJackpotTimerBase: Time;\n showJackpotOnGameTilesLobbyType: any;\n enableTickingForJackpotOnGameTiles: boolean;\n enableJpTickingForLobbyType: any;\n enableJpGroupTickingForLobbyType: any;\n showJackpotCurrencyOnRight: boolean;\n enableRibbonConfig: boolean;\n enableSingleJackpot: boolean;\n enableMultiJackpot: boolean;\n enableMustGoJackpot: boolean;\n jackpotWidgetConfigurations: any;\n multiJackpotLeftArrowImage: IContentImage;\n multiJackpotRightArrowImage: IContentImage;\n mustGoJackpotRightGradientImage: IContentImage;\n mustGoJackpotLeftGradientImage: IContentImage;\n multiJackpotBottomImage: IContentImage;\n jackpotGamesSortingTime: any;\n enableJackpotSortGames: boolean;\n isEnableMustgoRedesignModes: boolean;\n jackpotMoreInfoEnable: boolean;\n nativeProductKeys: object;\n}\n\nexport function jackpotDataClientConfigFactory(service: LazyClientConfigService) {\n return service.get(JackpotDataClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'csLiveCasinoLoungeConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: liveCasinoLoungeClientConfigFactory,\n})\nexport class LiveCasinoLoungeClientConfig {\n enabled: boolean;\n lobbyType: string;\n defaultCategoryId: string;\n loadingConfig: any;\n onboardingDataPath: string;\n mobileLandscapeConfig: any;\n mobilePortraitMaxWidth: number;\n defaultRenderer: string;\n fallbackRenderer: string;\n fallbackForIpad: boolean;\n idleTimeout: number;\n setMapAdjustedTimeout: number;\n gameLaunchUri: string;\n statCategoriesDataPath: string;\n statItemsDataPath: string;\n statsDataPath: string;\n pauseLottieAnimations: boolean;\n enableAudioButton: boolean;\n enableStats: boolean;\n enableFlagIconForVendor: any;\n}\n\nexport function liveCasinoLoungeClientConfigFactory(service: LazyClientConfigService) {\n return service.get(LiveCasinoLoungeClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csLiveDealerConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: liveDealerConfigClientConfigFactory,\n})\nexport class LiveDealerConfigClientConfig {\n operatingHoursEnabled: boolean;\n openHours: number;\n openMinutes: number;\n openSeconds: number;\n closeHours: number;\n closeMinutes: number;\n closeSeconds: number;\n}\n\nexport function liveDealerConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(LiveDealerConfigClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csLiveCasinoApi', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: liveCasinoClientConfigFactory,\n})\nexport class LiveCasinoClientConfig {\n enabled: any;\n vendorName: any;\n liveCasinoApiFeedInterval: number;\n flagUrlPattern: string;\n enableQuickInfo: boolean;\n enableFavouriteGames: boolean;\n hideMoreInfoLink: boolean;\n avatarIcon: string;\n enableLobbyType: any;\n enableIconsForAll: boolean;\n enableFlagIconForEvolution: boolean;\n displayPlaytechBackgroundImage: boolean;\n displayPlaytechDealerImage: boolean;\n}\n\nexport function liveCasinoClientConfigFactory(service: LazyClientConfigService) {\n return service.get(LiveCasinoClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'cslmtData', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: lmtDataClientConfigFactory,\n})\nexport class LMTDataClientConfig {\n useLMTFeedForLobby: boolean;\n brand: string;\n invokerProd: string;\n enableLMTGameLaunch: boolean;\n lmtCacheTimeout: number;\n lmtCacheTimeoutAuth: number;\n lobbyType: string;\n noIconUrl: string;\n fallbackCategoryTheme: string;\n homeCategory: string;\n gamesYouMightLikeCategory: string;\n lobbyTypeMap: any;\n enableDefaultHomeUrl: any;\n defaultProductHomeUrl: string;\n enableValidateGames: boolean;\n otherProductsLobbyTypeForOdr: any;\n enableLMTMockData: boolean;\n enableIndexedDBStorage: boolean;\n subLobbyType: Record;\n}\n\nexport function lmtDataClientConfigFactory(service: LazyClientConfigService) {\n return service.get(LMTDataClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csMcPage', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: mcPageClientConfigFactory,\n})\nexport class McPageClientConfig {\n cashierTrackerIds: any[];\n cashierWithdrawUrlTemplate: string;\n cashierDepositUrlTemplate: string;\n cashierQDUrlTemplate: string;\n prefix: string;\n myFreeSpinsHistoryItem: any;\n minAgeValidationCasinoPlay: number;\n defaultPage: any;\n defaultHomePage: any;\n casinoHomePage: any;\n portalUrl: any;\n langName: string;\n nativeAppScheme: string;\n extendTopMenu: any;\n labelPrefix: string;\n isAccountPage: boolean;\n isLobbyPage: boolean;\n isFreespinsPage: boolean;\n channelId: any;\n accountUpgrade: string;\n invokerProductHomePage: any;\n depositUrl: any;\n bingoPageUrl: any;\n bingoSeeAllOnCasino: any;\n playBingoButton: any;\n widgetHelpButton: any;\n widgetContactusButton: any;\n gamingHomeButtonUrl: any;\n gamingOverlayLogoUrl: any;\n gameLaunchTrackingParams: any;\n}\n\nexport function mcPageClientConfigFactory(service: LazyClientConfigService) {\n return service.get(McPageClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csMinBetGamesConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: minBetGamesClientConfigFactory,\n})\nexport class MinBetGamesClientConfig {\n CoinArcade_MinBetGames: any;\n}\n\nexport function minBetGamesClientConfigFactory(service: LazyClientConfigService) {\n return service.get(MinBetGamesClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csModularBingo', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: modularBingoClientConfigFactory,\n})\nexport class ModularBingoClientConfig {\n bingoTournamentsRoute: string;\n isEnabled: boolean;\n isBingoTournamentsEnabled: boolean;\n stopSchedulePolling: boolean;\n}\n\nexport function modularBingoClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ModularBingoClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csModularSettings', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: modularSettingsClientConfigFactory,\n})\nexport class ModularSettingsClientConfig {\n productMap: any;\n forceLoginGameObjectExpirationTime: any;\n featuredGridSetHeightTimeOut: any;\n forceGameLaunchExecutionTimeOut: number;\n}\n\nexport function modularSettingsClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ModularSettingsClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csModularization', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: modularizationClientConfigFactory,\n})\nexport class ModularizationClientConfig {\n modularComposition: ModularComponentCompositionModel[];\n enableModularization: boolean;\n}\n\nexport function modularizationClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ModularizationClientConfig);\n}\n\nexport interface ModularComponentCompositionModel {\n lobbyType: string;\n jsonValue: JsonValueModel[];\n}\nexport interface JsonValueModel {\n component: string;\n enabled: boolean;\n category: string[];\n subCategory: string[];\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csNativeGameLaunch', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: nativeGameLaunchClientConfigFactory,\n})\nexport class NativeGameLaunchClientConfig {\n isOnlyGameidLaunchEvent: boolean;\n vendorsforShouldOverrideUserAgent: string[];\n isNewMacEvent: boolean;\n}\n\nexport function nativeGameLaunchClientConfigFactory(service: LazyClientConfigService) {\n return service.get(NativeGameLaunchClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csNewsFeedConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: newsFeedConfigClientConfigFactory,\n})\nexport class NewsFeedConfigClientConfig {\n isEnabled: boolean;\n isEnabledOnHomeCategory: boolean;\n isEnabledOnNonHomeCategory: boolean;\n newsFeedPosition: any;\n isEnableNewsFeedV2: boolean;\n newsFeedConfiguration: any;\n}\n\nexport function newsFeedConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(NewsFeedConfigClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csNonCriticalFeedConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: nonCriticalClientConfigFactory,\n})\nexport class NonCriticalClientConfig {\n enableRecommendationGames: boolean;\n}\n\nexport function nonCriticalClientConfigFactory(service: LazyClientConfigService) {\n return service.get(NonCriticalClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csOptimizedTeaser', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: optimizedTeaserClientConfigFactory,\n})\nexport class OptimizedTeaserClientConfig {\n teaserOptimization: boolean;\n teaserDefaultHorizontalAlignment: string;\n teaserDefaultVerticalAlignment: string;\n teaserDefaultImageAlignment: string;\n teaserDefaultHorizontalTextAlignment: string;\n teaserDefaultTermsTextAlignment: string;\n maxRenderedTeasers: number;\n desktopViewTeaserHeight: number;\n mobileViewTeaserHeight: number;\n tabletViewTeaserHeight: number;\n desktopViewEmbeddedTeaserheight: number;\n mobileViewEmbeddedTeaserHeight: number;\n tabletViewEmbeddedTeaserHeight: number;\n enableTickingForJackpotOnTeasers: boolean;\n enableOptMiniTeasers: boolean;\n enableAluminiumTeaser: boolean;\n enableFixedWidthAluminiumTeaser: boolean;\n setAluminiumDesktopTeaserHeight: number;\n setAluminiumTabletTeaserHeight: number;\n setAluminiumMobileTeaserHeight: number;\n setAluminiumDesktopTeaserWidth: number;\n setAluminiumTabletTeaserWidth: number;\n setAluminiumMobileTeaserWidth: number;\n desktopFixedWidthAluTeaserOffsetValue: any;\n tabletFixedWidthAluTeaserOffsetValue: any;\n mobileFixedWidthAluTeaserOffsetValue: any;\n}\n\nexport function optimizedTeaserClientConfigFactory(service: LazyClientConfigService) {\n return service.get(OptimizedTeaserClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPlayerStatsConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: playerStatsWidgetClientConfigFactory,\n})\nexport class PlayerStatsWidgetClientConfig {\n readonly enablePlayerstats: boolean;\n readonly playerStatFilters: Array<{ readonly name: string; readonly value: string }>;\n readonly playerStatsWidgetImagesContent: PlayerStatsWidgetImagesContent;\n readonly playerStatsSitecoreData: PlayerStatsSitecoreData;\n readonly playerStatsInterval: number;\n readonly minimumMuliplierBet: number;\n readonly enableTitleOnGameIcon: boolean;\n}\n\nexport interface PlayerStatsWidgetImagesContent {\n readonly backgroundImageLayer1: string;\n readonly backgroundImageLayer2: string;\n readonly backgroundImageLayer3: string;\n readonly playerStatsWidgetMultiplier: any;\n}\nexport interface PlayerStatsSitecoreData {\n readonly playerStatsWidgetSubtitleConfigs: any;\n readonly playerStatsWidgetFilterNameConfigs: any;\n readonly playerStatsWidgetTitleConfigs: any;\n readonly displayFilterNameColor: string;\n readonly titleTextColor: string;\n readonly subtitleTextColor: string;\n readonly statsWigetCarousalIconBgColor: string;\n readonly multiplierColor: string;\n readonly filterNameBgColor: string;\n readonly multiplierBorderColor: string;\n readonly multiplierBgColor: string;\n readonly filterCarousalIconBgColor: string;\n readonly multiplierComponent: string;\n readonly displayfilterNamefontsize: any;\n readonly displayfilterNamefontweight: string;\n readonly filterTextfontSize: string;\n readonly filterTextfontweight: string;\n readonly subtitlefontsize: string;\n readonly subtitlefontweight: string;\n readonly titlefontSize: string;\n readonly titlefontweight: string;\n readonly filterTextColor: string;\n readonly statsWigetCarousalIconColor: string;\n readonly filterCarousalIconColor: string;\n readonly mobileDisplayfilterNamefontsize: string;\n readonly mobileDisplayfilterNamefontweight: string;\n readonly mobileSubtitlefontsize: string;\n readonly mobileSubtitlefontweight: string;\n readonly mobileTitlefontSize: string;\n readonly mobileTitlefontweight: string;\n}\n\nexport function playerStatsWidgetClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PlayerStatsWidgetClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPrelogin', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: preLoginClientConfigFactory,\n})\nexport class PreLoginClientConfig {\n nemIDHost: string;\n nemIdPathSegment: string;\n redirectForLogin: boolean;\n}\n\nexport function preLoginClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PreLoginClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPromoCoinEconomyConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: promoCoinEconomyClientConfigFactory,\n})\nexport class PromoCoinEconomyClientConfig {\n coinExpiryDay: number;\n}\n\nexport function promoCoinEconomyClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PromoCoinEconomyClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPromoOfferWidget', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: promoOfferWidgetConfigFactory,\n})\nexport class PromoOfferWidgetConfig {\n promoOfferWidgetPosition: any;\n products: any;\n enablePromoOfferWidget: boolean;\n headerColor: string;\n viewallColor: string;\n subTitleFontSize: string;\n titleFontSize: string;\n fontFamily: string;\n titleFontWeight: number;\n viewallSize: string;\n isUkHeading: string;\n viewallTextTransform: string;\n viewallFontFamily: string;\n viewallSizeMobile: string;\n subtitleMobileFontSize: string;\n titleMobileFontSize: string;\n subtitleFontFamily: string;\n}\n\nexport function promoOfferWidgetConfigFactory(service: LazyClientConfigService) {\n return service.get(PromoOfferWidgetConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPromotedGamesConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: promotedGamesClientConfigFactory,\n})\nexport class PromotedGamesClientConfig {\n isEnabled: boolean;\n}\n\nexport function promotedGamesClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PromotedGamesClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'csPromotionsBannerConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: promotionsBannerClientConfigFactory,\n})\nexport class PromotionsBannerClientConfig {\n isEnablePromotionsBanner: boolean;\n showPromotionsCount: boolean;\n}\n\nexport function promotionsBannerClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PromotionsBannerClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csPromotionsInfo', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: promotionsInfoClientConfigFactory,\n})\nexport class PromotionsInfoClientConfig {\n showPromotions: boolean;\n promotionPageLink: any;\n}\n\nexport function promotionsInfoClientConfigFactory(service: LazyClientConfigService) {\n return service.get(PromotionsInfoClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csQuickInfo', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: quickInfoClientConfigFactory,\n})\nexport class QuickInfoClientConfig {\n quickInfo: {\n cta: string;\n gameProviderHeader: string;\n preLogincta: string;\n };\n}\n\nexport function quickInfoClientConfigFactory(service: LazyClientConfigService) {\n return service.get(QuickInfoClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csRecentWinnersConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: recentWinnersWidgetClientConfigFactory,\n})\nexport class RecentWinnersWidgetClientConfig {\n readonly enablePagination: boolean;\n readonly enableLoadingIcon: boolean;\n readonly enableNewsfeedStyle: boolean;\n readonly enableODR: boolean;\n readonly filters: Array<{ readonly name: string; readonly value: string }>;\n readonly isEnabled: boolean;\n readonly maximumGamesLength: number;\n readonly recentWinnersInterval: number;\n readonly recentWinnersWidgetGlobalMessages: RecentWinnersWidgetGlobalMessages;\n readonly recentWinnerWidgetConfiguration: RecentWinnersWidgetConfiguration;\n readonly winnersFeedUrl: string;\n readonly enableFilterWidth: boolean;\n readonly enableTitleOnGameIcon: boolean;\n readonly maxNumbersForDecimal: number;\n}\n\ninterface RecentWinnersWidgetConfiguration {\n readonly backgroundImageLayer1: string;\n readonly backgroundImageLayer2: string;\n readonly backgroundImageLayer3: string;\n}\n\ninterface RecentWinnersWidgetGlobalMessages {\n readonly FilterBgColor?: string;\n readonly FilterCarousalIconBgColor?: string;\n readonly NewsFeedAnimationTiming?: string;\n readonly WinnerBgColor?: string;\n readonly WinnersErrorTextColor?: string;\n readonly WinnersTextColor?: string;\n readonly winners?: string;\n readonly winnersResult?: string;\n readonly RECENT?: string;\n readonly TEN_DAYS?: string;\n readonly PREVIOUS_MONTH?: string;\n readonly CURRENT_MONTH?: string;\n readonly PREVIOUS_YEAR?: string;\n readonly LIFE_TIME?: string;\n readonly WinnersGameNameFontsize?: string;\n}\n\nfunction recentWinnersWidgetClientConfigFactory(service: LazyClientConfigService) {\n return service.get(RecentWinnersWidgetClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csRecentlyPlayed', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: recentlyPlayedClientConfigFactory,\n})\nexport class RecentlyPlayedClientConfig {\n recentlyPlayedRoutes: any;\n isMostRecentlyPlayedEnabled: boolean;\n recentlyPlayedFilterThreshold: number;\n}\n\nexport function recentlyPlayedClientConfigFactory(service: LazyClientConfigService) {\n return service.get(RecentlyPlayedClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csSearchConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: searchClientConfigFactory,\n})\nexport class SearchClientConfig {\n CategoryGamesSearchCriteria: any;\n EnableCategorySearchCriteria: any;\n}\n\nexport function searchClientConfigFactory(service: LazyClientConfigService) {\n return service.get(SearchClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csSlotRaces', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: slotRacesClientConfigFactory,\n})\nexport class SlotRacesClientConfig {\n enableOptIn: boolean;\n host: string;\n joinUrlTemplate: string;\n leaderboardUrl: string;\n raceListUrl: string;\n racesListPollingInterval: number;\n notificationPopupTimeout: number;\n leaderboardPollingInterval: number;\n showAwardsAndPrizes: boolean;\n slotRacesLMTCategoryIdForLobbyType: any;\n maxLeaderboardRows: number;\n upcomingSlotsDuration: number;\n noOfCards: number;\n resultsForNoOfDays: number;\n enablePreLogin: boolean;\n disableWhenNoPromotions: boolean;\n enableResultsHistoryPage: boolean;\n enableMaxBet: boolean;\n enableStickersFreeToPlay: boolean;\n enableStickersFreePlayTech: boolean;\n enableSlotRacesStickers: boolean;\n enableJpRibbonOnFreeTourney: boolean;\n enable24HrTimeFormat: boolean;\n enableSlotRaces: boolean;\n displayBonusAsText: boolean;\n upcomingSlotStickersDuration: number;\n slotraceLobbytypeForGamesOrdering: string;\n enableBetterVisualization: boolean;\n hideGenericPoints: boolean;\n enableUpcomingOptinForPlaytech: boolean;\n disablePreloginApiCalls: boolean;\n disablePrizesApiCall: boolean;\n enableRaceNotification: boolean;\n disableSlotRacesPoints: boolean;\n enableCoinEconomy: boolean;\n enableConfigMaps: boolean;\n enableCoinShower: boolean;\n resultsDateFormat: string;\n enableSlotRacesPhase2: boolean;\n raceInfoGameCount: number;\n characterIconPath: string;\n enableTermsNConditions: boolean;\n}\n\nexport function slotRacesClientConfigFactory(service: LazyClientConfigService) {\n return service.get(SlotRacesClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csSmartLobbyConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: smartLobbyClientConfigFactory,\n})\nexport class SmartLobbyClientConfig {\n enableGameIconFallback: boolean;\n}\n\nexport function smartLobbyClientConfigFactory(service: LazyClientConfigService) {\n return service.get(SmartLobbyClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csSubNavigationConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: subNavigationClientConfigFactory,\n})\nexport class SubNavigationClientConfig {\n isEnabledCondition: string;\n showFavInSubNav: any;\n showRecentInSubNav: any;\n hardProductOverride: string;\n enableDesktopIcon: boolean;\n isInstaStoriesEnabled: any;\n enableSubNavigationBgColor: boolean;\n enableIconTextColor: boolean;\n enableEpcotSubNavigation: boolean;\n hideNavBarForEpcotTouch: any;\n}\n\nexport function subNavigationClientConfigFactory(service: LazyClientConfigService) {\n return service.get(SubNavigationClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'csSuperButtonConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: superButtonClientConfigFactory,\n})\nexport class SuperButtonClientConfig {\n enabled: boolean;\n}\n\nexport function superButtonClientConfigFactory(service: LazyClientConfigService) {\n return service.get(SuperButtonClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csThumbnail', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: thumbnailConfigClientConfigFactory,\n})\nexport class ThumbnailConfigClientConfig {\n enableGameThumbnail: any;\n isGameThumbnailsVisible: any;\n thumbnailConfigurations: any;\n displayStaticThumbnail: any;\n}\n\nexport function thumbnailConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(ThumbnailConfigClientConfig);\n}\n","//import { PlatformModule } from '../platform.module';\nimport { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'csVideoPreviewConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: videoPreviewClientConfigFactory,\n})\nexport class VideoPreviewClientConfig {\n playVideoFromStart: boolean;\n setVideoPlayTimeoutint: number;\n}\n\nexport function videoPreviewClientConfigFactory(service: LazyClientConfigService) {\n return service.get(VideoPreviewClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'csWidgetConfig', product: ClientConfigProductName.CASINO })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: widgetConfigClientConfigFactory,\n})\nexport class WidgetConfigClientConfig {\n authenticatePromoEdsWidget: boolean;\n isRpFavWidgetEnabled: any;\n isGymlInFavourites: any;\n favouriteGamesBaseCount: any;\n recentGamesCountLimit: number;\n enableRcpwidgetHelpContactUs: any;\n isStickyEnabledForWidget: any;\n maxHeightCount: number;\n enableHelpContactForPrelogin: any;\n enableBingoWidgetForLabel: boolean;\n enableWidgetinFreespinsPage: boolean;\n enablePromoEdsWidget: boolean;\n widgetLinks: any;\n lobbyTypeForRpFavOnOtherProducts: string;\n lobbyTypeForRpGymlOnOtherProducts: string;\n lobbyTypeForFooterOnOtherProducts: string;\n lobbyTypeForSlotRacesOnOtherProducts: string;\n enableSlotRacesForOtherProducts: boolean;\n subCatRouteForSlotRacesOnOtherProducts: string;\n subCategoryRouteForFooterOnOtherProducts: string;\n rpGymlWidgetPostHeightTimeOut: number;\n rpFavWidgetPostHeightTimeOut: number;\n rpFavTogglePostHeightTimeOut: number;\n displayFavInRPFavWidget: boolean;\n}\n\nexport function widgetConfigClientConfigFactory(service: LazyClientConfigService) {\n return service.get(WidgetConfigClientConfig);\n}\n","import 'hammerjs';\n\nexport * from './cashier-iframe/cashier-iframe.component';\nexport * from './cashier-iframe/game-pop-out.component';\nexport * from './casino-lobby-manager/casino-lobby.models';\nexport * from './casino-lobby-manager/casino-lobby.service';\nexport * from './client-config/betmgmoriginals-config';\nexport * from './client-config/game-premiere.config';\nexport * from './client-config/gamification-widget-config';\nexport * from './client-config/global.config';\nexport * from './client-config/modularization-config';\nexport * from './client-config/player-stats-config';\nexport * from './client-config/recent-winners-config';\nexport * from './client-config/lmt-data.config';\nexport { CasinoAudioButtonComponent } from './components/casino-audio-button/casino-audio-button.component';\nexport * from './config-provider/config-provider.service';\nexport * from './confirm-message/confirm-message.component';\nexport * from './directives/browser-state.directive';\nexport * from './directives/custom-carousel-pagination.component';\nexport * from './directives/draggable.directive';\nexport * from './directives/globaltranslate/globaltranslate.component';\nexport * from './directives/intersection-observer/from-intersection-observer';\nexport * from './directives/intersection-observer/intersection-observer.directive';\nexport * from './directives/long-press.directive';\nexport * from './directives/search-highlight-filter/search-highlight.filter';\nexport * from './embedded-game-popup/embedded-game-popup.component';\nexport * from './embedded-game-view/embedded-game-view.component';\nexport * from './game-detail/game-detail-buttons/game-detail-buttons.component';\nexport * from './game-detail/game-detail.component';\nexport * from './game-embed/game-embed.component';\nexport * from './geolocation/geo-location-error/geo-location-error.component';\nexport * from './geolocation/installer/installer.component';\nexport * from './geolocation/services/activator.service';\nexport * from './geolocation/services/coordinator.service';\nexport * from './geolocation/services/geolocation-check.service';\nexport * from './geolocation/services/geolocation-validation.service';\nexport * from './geolocation/services/installer-dialog.service';\nexport * from './geolocation/services/oobee-intimation-toaster.service';\nexport * from './gif-tag/gif-tag.component';\nexport * from './header-box/header-box.component';\nexport * from './image-loader/image-loader.component';\nexport * from './lc-timer/lc-timer.component';\nexport * from './platform-api/platform-api.service';\nexport { LazySearchDesktopComponent } from './search-desktop/lazy-search-desktop.component';\nexport * from './search-desktop/search-desktop.component';\nexport * from './shared/advance-game-data.service';\nexport * from './shared/api-paths-helper-service';\nexport * from './shared/arcade-lobby-tracking.service';\nexport * from './shared/betmgm-originals.service';\nexport * from './shared/bingo-favorite-service';\nexport * from './shared/bingo-vf-services/bingo-game-launch.service';\nexport * from './shared/cache-manager.service';\nexport * from './shared/cashier.service';\nexport * from './shared/casino-api.service';\nexport * from './shared/casino-core-npm-params.service';\nexport * from './shared/casino-iframe-overlay.service';\nexport * from './shared/casino-manager.service';\nexport * from './shared/casino-widget.service';\nexport * from './shared/category-manager.service';\nexport * from './shared/const.service';\nexport * from './shared/cookie.service';\nexport * from './shared/cozybingo-toast-message.service';\nexport * from './shared/cozybingodata.service';\nexport * from './shared/discover-feed.service';\nexport * from './shared/ds-enabler.service';\nexport * from './shared/favourite.service';\nexport * from './shared/forceGameLaunchHandler.service';\nexport * from './shared/freespins-summary.service';\nexport * from './shared/game-data-manager.service';\nexport * from './shared/game-launch-places.service';\nexport * from './shared/game-launch-tracking.service';\nexport * from './shared/game-premiere.service';\nexport * from './shared/game-selector-widget.service';\nexport * from './shared/game-show-hub.service';\nexport * from './shared/game.service';\nexport * from './shared/gamelaunch-url-formation.service';\nexport * from './shared/gamelaunch.service';\nexport * from './shared/gamelaunchfactory.service';\nexport * from './shared/gaming-stories.service';\nexport * from './shared/geolocation-tracking.service';\nexport * from './shared/global-jackpot-constants.service';\nexport * from './shared/global-jackpot-mod.service';\nexport * from './shared/global-jackpots.service';\nexport * from './shared/globalsearch-helper.service';\nexport * from './shared/immersive-lobby.service';\nexport * from './shared/invoker-product.service';\nexport * from './shared/jackpot.service';\nexport * from './shared/jackpotdata-service';\nexport * from './shared/live-casino-lounge.service';\nexport * from './shared/live-dealer.service';\nexport * from './shared/livecasino.service';\nexport * from './shared/localstorage.expirable.persistence.service';\nexport * from './shared/models/advance-game-data.model';\nexport * from './shared/models/betmgm-originals.model';\nexport * from './shared/models/casino-core-npm.params';\nexport * from './shared/models/common.model';\nexport * from './shared/models/game-lobby.model';\nexport * from './shared/models/game-premiere.model';\nexport * from './shared/models/game-selector-widget.model';\nexport * from './shared/models/game-show-hub.model';\nexport * from './shared/models/gameDataFromCacheResponse.model';\nexport * from './shared/models/gamelaunch.model';\nexport * from './shared/models/gaming-stories.model';\nexport * from './shared/models/geolocation.configuration.model';\nexport * from './shared/models/home-lobby.model';\nexport * from './shared/models/immersive-lobby.model';\nexport * from './shared/models/live-casino-lounge.model';\nexport * from './shared/models/modular-game-tile.model';\nexport * from './shared/models/output-event.model';\nexport * from './shared/models/promotions-banner.model';\nexport * from './shared/models/publish-lobby.model';\nexport * from './shared/models/super-button.model';\nexport * from './shared/monitor.service';\nexport * from './shared/nativeapi.service';\nexport * from './shared/nativeapphelper.service';\nexport * from './shared/navigator.service';\nexport * from './shared/new-quick-info.service';\nexport * from './shared/news-feed-v2.service';\nexport * from './shared/news-feed.service';\nexport * from './shared/open-login-dialog-v6';\nexport * from './shared/optimizedTeaser-manager.service';\nexport * from './shared/other-product.service';\nexport * from './shared/pipes/asterisk.pipe';\nexport * from './shared/pipes/culture-date.pipe';\nexport * from './shared/pipes/currencySymbol.pipe';\nexport * from './shared/pipes/currencyformat.pipe';\nexport * from './shared/pipes/safe.pipe';\nexport * from './shared/pipes/sitecore-image-resize.pipe';\nexport * from './shared/player-segmentation.service';\nexport * from './shared/player-stats.service';\nexport * from './shared/promoted-games.service';\nexport * from './shared/promotions-banner.service';\nexport * from './shared/quick-info-modal.service';\nexport * from './shared/recent-games.service';\nexport * from './shared/recent-winners.service';\nexport * from './shared/script-injector.service';\nexport * from './shared/search-section.service';\nexport * from './shared/sign-posting.service';\nexport * from './shared/smartBanner.service';\nexport * from './shared/super-button.service';\nexport * from './shared/teaser.service';\nexport * from './shared/thumbnail.service';\nexport * from './shared/time-zone.service';\nexport { TimeZoneFormatPipe } from './shared/timezone-format.pipe';\nexport * from './shared/unfinished-games-service';\nexport * from './shared/utility.service';\nexport * from './shared/vc-client.service';\nexport * from './shared/windowref.service';\nexport * from './slot-races/shared/slot-races-tracking.service';\nexport * from './slot-races/shared/slot-races.models';\nexport * from './slot-races/shared/slot-races.service';\nexport * from './toaster-msg/toaster-msg.component';\nexport * from './tracking/vanilla-tracking-adapter.model';\nexport * from './tracking/vanilla-tracking-adapter.service';\nexport * from './utilities/url-utility.service';\nexport * from './casino-lobby-manager/global-search/global-search.service';\nexport * from './casino-lobby-manager/casino-styles/casino-styles.service';\nexport * from './casino-lobby-manager/game-manager/game-manager.service';\nexport * from './casino-lobby-manager/jackpot-and-promotions/jackpot-and-promotions.service';\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef } from '@angular/material/dialog';\n\nimport { AppInfoConfig, Page, UserService, UtilsService, WindowRef } from '@frontend/vanilla/core';\nimport { TrustAsResourceUrlPipe } from '@frontend/vanilla/shared/browser';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Component({\n selector: 'cc-cashier-iframe',\n templateUrl: 'cashier-iframe.component.html',\n standalone: true,\n imports: [MatDialogContent, MatDialogActions, TrustAsResourceUrlPipe],\n})\nexport class CashierIframeComponent implements OnInit, OnDestroy {\n @Input() isQDAllowed: boolean;\n cashierIframeUrl: string;\n private iframeCommunicationEnabled: boolean = false;\n private qdUrl: string;\n private depositUrl: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private user: UserService,\n private page: Page,\n private windowRef: WindowRef,\n private utils: UtilsService,\n private appInfoConfig: AppInfoConfig,\n private configProviderService: ConfigProviderService,\n ) {}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n ngOnInit() {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const mcPage = this.configProviderService.provideMcPageConfig();\n const features = this.configProviderService.provideFeaturesConfig();\n if (!this.iframeCommunicationEnabled) {\n this.enableIframeCommunication();\n this.iframeCommunicationEnabled = true;\n }\n\n this.qdUrl = this.utils.format(\n mcPage.cashierQDUrlTemplate,\n this.user.id,\n this.appInfoConfig.brand,\n casinoConfig.productId,\n this.appInfoConfig.channel,\n this.page.lang,\n this.user.ssoToken,\n );\n this.qdUrl += '&hideCloseButton=true';\n\n this.depositUrl = mcPage.cashierDepositUrlTemplate;\n this.depositUrl = this.depositUrl.replace('{0}', 'this.user.ssoToken');\n this.depositUrl = this.depositUrl.replace('{1}', this.page.lang);\n this.depositUrl = this.depositUrl.replace('{2}', '');\n this.depositUrl = this.depositUrl.replace('{3}', '');\n this.depositUrl = this.depositUrl + '&hideCloseButton=true';\n\n if (features.checkQDAllowedForDepositURL && this.isQDAllowed) {\n this.cashierIframeUrl = this.qdUrl;\n } else {\n this.cashierIframeUrl = this.depositUrl;\n }\n }\n\n ngOnDestroy(): void {\n this.windowRef.nativeWindow.removeEventListener('message', () => {});\n }\n\n private enableIframeCommunication() {\n const cashierIframe = document.getElementById('casinocashieriframe') as HTMLIFrameElement;\n this.windowRef.nativeWindow.addEventListener('message', (event) => {\n if (!event || !event.data || typeof event.data !== 'string') {\n return;\n }\n const message = unescape(event.data)\n .split('&')\n .reduce((seed, cur): any => {\n const param: any = cur.trim().split('=');\n const paramIndex: any = param[0];\n seed[paramIndex as keyof Object] = param[1];\n return seed;\n }, {}) as {\n action: string;\n [key: string]: any;\n };\n const action = (message.action || '').toUpperCase();\n if (action === 'CLOSE') {\n if (message.showAllOptions === 'true') {\n cashierIframe.src = this.depositUrl;\n } else {\n this.dialogRef.close();\n }\n }\n });\n }\n}\n","\n
\n
\n
\n \n
\n \n \n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef } from '@angular/material/dialog';\n\nimport { CommonMessages } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Component({\n selector: 'cc-game-pop-out',\n templateUrl: 'game-pop-out.component.html',\n standalone: true,\n imports: [MatDialogContent, MatDialogActions, MatDialogClose],\n})\nexport class GamePopoutComponent implements OnInit {\n gamePopOutUrl: string;\n continue: string;\n cancel: string;\n gameLaunchNewWindow: string;\n gameSessionRestart: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private commonMessages: CommonMessages,\n private configProviderService: ConfigProviderService,\n ) {}\n onNoClick(): void {\n this.dialogRef.close();\n }\n ngOnInit() {\n const global = this.configProviderService.provideGlobalConfig();\n const mcPage = this.configProviderService.provideMcPageConfig();\n this.continue = this.commonMessages['Continue'];\n this.cancel = this.commonMessages['Cancel'];\n this.gameLaunchNewWindow = global.messages['LaunchGameNewWindow'];\n this.gameSessionRestart = global.messages['GameSessionRestart'];\n this.gamePopOutUrl = mcPage.cashierDepositUrlTemplate;\n }\n}\n","
\n
\n
\n
\n

{{ gameLaunchNewWindow }}

\n

{{ gameSessionRestart }}

\n
\n
\n
\n \n \n
\n
\n
\n","import { Categories } from './categories.model';\nimport { CategoryFeatureMetadata } from './category-feature-metadata-model';\nimport { GameMetaDataMap } from './game-metadata.model';\n\nexport class LobbyItemBaseModel {\n lsCategoriesMap: [string, Categories][];\n lsCategorytNameLangMap: [string, string][];\n lsStickerNameMap: [string, string][];\n lsGameMetaDataMap: [string, GameMetaDataMap][];\n catVsFeatureMetadata: Map;\n lbyTempName: string;\n lbyTargetType: string;\n lobbyGameIconImageSuffix: string;\n optSegName?: string;\n lsCatVsFeatureMetadata: [string, CategoryFeatureMetadata][];\n}\n","import { Categories } from './lobby-details-model/categories.model';\nimport { GameMetaDataMap } from './lobby-details-model/game-metadata.model';\nimport { LobbyItemBaseModel } from './lobby-details-model/lobby-item.model';\n\nexport class LobbyItem extends LobbyItemBaseModel {\n categoriesMap: Map;\n categoryNameLangMap: Map;\n stickerNameMap: Map;\n gameMetaDataMap: Map;\n setCategoriesMap(map: Map) {\n this.categoriesMap = map;\n this.lsCategoriesMap = Array.from(map.entries());\n }\n\n setcategoryNameLangMap(map: Map) {\n this.categoryNameLangMap = map;\n this.lsCategorytNameLangMap = Array.from(map.entries());\n }\n\n setStickerNameMap(map: Map) {\n this.stickerNameMap = map;\n this.lsStickerNameMap = Array.from(map.entries());\n }\n\n setGameMetaDataMap(map: Map) {\n this.gameMetaDataMap = map;\n this.lsGameMetaDataMap = Array.from(map.entries());\n }\n\n setLobbyItemFromLocalStorage(lobbyInfoLocalStorage: LobbyItemBaseModel) {\n if (lobbyInfoLocalStorage) {\n if (lobbyInfoLocalStorage.lsCategoriesMap && lobbyInfoLocalStorage.lsCategoriesMap.length > 0) {\n this.categoriesMap = new Map(lobbyInfoLocalStorage.lsCategoriesMap);\n }\n if (lobbyInfoLocalStorage.lsCategorytNameLangMap && lobbyInfoLocalStorage.lsCategorytNameLangMap.length > 0) {\n this.categoryNameLangMap = new Map(lobbyInfoLocalStorage.lsCategorytNameLangMap);\n }\n if (lobbyInfoLocalStorage.lsStickerNameMap && lobbyInfoLocalStorage.lsStickerNameMap.length > 0) {\n this.stickerNameMap = new Map(lobbyInfoLocalStorage.lsStickerNameMap);\n }\n if (lobbyInfoLocalStorage.lsGameMetaDataMap && lobbyInfoLocalStorage.lsGameMetaDataMap.length > 0) {\n this.gameMetaDataMap = new Map(lobbyInfoLocalStorage.lsGameMetaDataMap);\n }\n if (lobbyInfoLocalStorage.lbyTempName) {\n this.lbyTempName = lobbyInfoLocalStorage.lbyTempName;\n }\n if (lobbyInfoLocalStorage.lbyTargetType) {\n this.lbyTargetType = lobbyInfoLocalStorage.lbyTargetType;\n }\n if (lobbyInfoLocalStorage.optSegName) {\n this.optSegName = lobbyInfoLocalStorage.optSegName;\n }\n if (lobbyInfoLocalStorage.lsCatVsFeatureMetadata) {\n this.catVsFeatureMetadata = new Map(lobbyInfoLocalStorage.lsCatVsFeatureMetadata);\n }\n\n this.lobbyGameIconImageSuffix = lobbyInfoLocalStorage.lobbyGameIconImageSuffix;\n }\n }\n}\n\nexport interface LobbyInfo {\n key: string;\n value: LobbyItem;\n}\n","export function getPosition(element: HTMLElement): { left: number; top: number } {\n let xPosition = 0;\n let yPosition = 0;\n\n while (element) {\n xPosition += element.offsetLeft - element.scrollLeft + element.clientLeft;\n yPosition += element.offsetTop - element.scrollTop + element.clientTop;\n element = element.offsetParent as HTMLElement;\n }\n\n return { left: xPosition, top: yPosition };\n}\n\nexport function getClientPosition(element: HTMLElement): { left: number; top: number } {\n const postion = element.getBoundingClientRect();\n return { left: postion.x, top: postion.y };\n}\n\nexport function getHiddenValues(child: HTMLElement, parent: HTMLElement): { x: number; y: number } {\n return {\n x: child.clientWidth - parent.clientWidth,\n y: child.clientHeight - parent.clientHeight,\n };\n}\n\nexport function isElementInView(element: HTMLElement, fullyInView: boolean = false) {\n const pageTop = document.documentElement.scrollTop;\n const pageBottom = pageTop + document.documentElement.clientHeight;\n const elementTop = element.offsetTop;\n const elementBottom = elementTop + element.clientHeight;\n\n if (fullyInView === true) {\n return pageTop < elementTop && pageBottom > elementBottom;\n } else {\n return elementTop <= pageBottom && elementBottom >= pageTop;\n }\n}\n\nexport function getTranslateValues(element: HTMLElement): { x: number; y: number; z: number } {\n try {\n const style = window.getComputedStyle(element);\n const matrix = style['transform'];\n\n // No transform property. Simply return 0 values.\n if (matrix === 'none' || typeof matrix === 'undefined') {\n return { x: 0, y: 0, z: 0 };\n }\n\n // Can either be 2d or 3d transform\n const matrixType = matrix.includes('3d') ? '3d' : '2d';\n const matrixArray = matrix.match(/matrix.*\\((.+)\\)/);\n if (matrixArray && matrixArray.length) {\n const matrixValues = matrixArray[1]!.split(', ');\n\n // 2d matrices have 6 values\n // Last 2 values are X and Y.\n // 2d matrices does not have Z value.\n if (matrixType === '2d') {\n return { x: parseFloat(matrixValues[4]!), y: parseFloat(matrixValues[5]!), z: 0 };\n }\n\n // 3d matrices have 16 values\n // The 13th, 14th, and 15th values are X, Y, and Z\n if (matrixType === '3d') {\n return { x: parseFloat(matrixValues[12]!), y: parseFloat(matrixValues[13]!), z: parseFloat(matrixValues[14]!) };\n }\n\n return { x: 0, y: 0, z: 0 };\n }\n\n return { x: 0, y: 0, z: 0 };\n } catch {\n return { x: 0, y: 0, z: 0 };\n }\n}\n\nexport function onlyUnique(value: string, index: number, self: Array): boolean {\n return self.indexOf(value) === index;\n}\n\nexport function hasClass(el: HTMLElement, className: string): boolean {\n if (el.classList) return el.classList.contains(className);\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'));\n}\n\nexport function addClass(className: string, el?: HTMLElement): void {\n const elm = el || document.documentElement;\n if (elm.classList) elm.classList.add(className);\n else if (!hasClass(elm, className)) elm.className += ' ' + className;\n}\n\nexport function removeClass(className: string, el?: HTMLElement): void {\n const elm = el || document.documentElement;\n if (elm.classList) elm.classList.remove(className);\n else if (hasClass(elm, className)) {\n const reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n elm.className = elm.className.replace(reg, ' ');\n }\n}\n\nexport function endsWith(str: string, suffix: string): boolean {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n}\n\nexport function getAmount(amount: any, currency: string, locale: string): { value: string; isValid: boolean } {\n try {\n if (isNaN(amount) && amount.indexOf(' ') > -1) currency = amount.split(' ')[1];\n\n const formatter = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency,\n });\n\n let value = parseFloat(amount);\n value = isNaN(value) || !value ? 0 : value;\n return { value: formatter.format(value), isValid: value !== 0 };\n } catch {\n return { value: amount, isValid: false };\n }\n}\n\nexport function toDate(text: any): string {\n try {\n if (isNaN(text)) {\n const date = text.replace(/\\./g, '/').replaceAll(' ', '');\n const year = date.substring(0, 4);\n const month = date.substring(5, 7);\n const day = date.substring(8, 10);\n return day + '/' + month + '/' + year;\n }\n\n const timestamp = parseFloat(text);\n return new Date(timestamp).toLocaleDateString('en-GB');\n } catch {\n return text;\n }\n}\n\nexport function toTimeStamp(text: any): string {\n try {\n let totalMinutes = text.replace(/\\./g, '/').replaceAll(' ', '');\n totalMinutes = totalMinutes && !isNaN(totalMinutes) ? parseInt(totalMinutes) : null;\n if (!totalMinutes) return text;\n\n const minutes = Math.floor(totalMinutes % 60);\n const hours = Math.floor(Math.floor(totalMinutes / 60) % 24);\n const days = Math.floor(totalMinutes / 60 / 24);\n\n let timeStamp = '';\n if (days) timeStamp = days + (days > 1 ? ' days' : ' day');\n if (hours) timeStamp = (timeStamp ? timeStamp + ' ' : '') + hours + (hours > 1 ? ' hrs' : ' hr');\n if (minutes) timeStamp = (timeStamp ? timeStamp + ' ' : '') + minutes + (minutes > 1 ? ' mins' : ' min');\n\n return timeStamp;\n } catch {\n return text;\n }\n}\n\nexport function textToNumber(text: string) {\n const small: any = {\n zero: 0,\n one: 1,\n two: 2,\n three: 3,\n four: 4,\n five: 5,\n six: 6,\n seven: 7,\n eight: 8,\n nine: 9,\n ten: 10,\n eleven: 11,\n twelve: 12,\n thirteen: 13,\n fourteen: 14,\n fifteen: 15,\n sixteen: 16,\n seventeen: 17,\n eighteen: 18,\n nineteen: 19,\n twenty: 20,\n thirty: 30,\n forty: 40,\n fifty: 50,\n sixty: 60,\n seventy: 70,\n eighty: 80,\n ninety: 90,\n };\n\n const magnitude: any = {\n hundred: 100,\n thousand: 1000,\n million: 1000000,\n billion: 1000000000,\n };\n\n let finalNumber = 0;\n const words = text.toString().split(/[\\s-]+/);\n\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n let number = small[word] || null;\n\n if (number !== null) finalNumber += number;\n else {\n number = magnitude[word] || null;\n if (number !== null) {\n finalNumber = finalNumber ? finalNumber * number : number;\n } else finalNumber = -1;\n }\n }\n\n return finalNumber;\n}\n\nexport function elementScroll(\n element: HTMLElement,\n offsetWidth: number,\n isLeft: boolean,\n leftCheckValue: number = 0,\n event?: Event,\n): { showLeft: boolean; showRight: boolean } {\n event && event.preventDefault();\n event && event.stopImmediatePropagation();\n\n let offset = element.scrollLeft;\n offset = isLeft ? offset - offsetWidth : offset + offsetWidth;\n offset = offset < 0 ? 0 : offset;\n\n if (!isLeft && element.scrollWidth - offset - offsetWidth < offsetWidth) offset = element.scrollWidth;\n\n if (isLeft && offset < offsetWidth) offset = 0;\n\n const showLeft = offset > leftCheckValue;\n const showRight = element.scrollWidth - leftCheckValue * 2 > element.clientWidth + offset;\n\n const isSafari = hasClass(document.documentElement, 'is-safari');\n if (isSafari) {\n element.style.overflow = 'auto';\n requestAnimationFrame(() => (element.scrollLeft = offset));\n setTimeout(() => (element.style.overflow = 'hidden'), 500);\n } else element.scrollLeft = offset;\n\n return { showLeft, showRight };\n}\n\nexport function replaceUrlState(urlPrefix: string): void {\n const location = window.location.href;\n window.history.replaceState(null, '', location.substring(0, location.indexOf(urlPrefix)));\n}\n\nexport function pushUrlState(urlParts: Array): void {\n window.history.pushState({}, '', window.location.origin + '/' + urlParts.join('/'));\n}\n\nexport function isNotInUrl(urlPrefix: string): boolean {\n return window.location.href.indexOf(urlPrefix) === -1;\n}\n\nexport function findParent(element: HTMLElement, className: string): HTMLElement | null {\n // while (element.parentElement && (element = element.parentElement) && !element.classList.contains(className));\n // return element;\n return element.closest('.' + className);\n}\n\nexport function isDateValid(date: string | number | Date): boolean {\n const convertedDate = new Date(date);\n return !isNaN(convertedDate.getTime());\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiBase, ApiServiceFactory, ClientConfigProductName, ProductService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n useFactory: apiServiceFactory,\n deps: [ApiServiceFactory, ProductService],\n})\nexport class PlatformApiService extends ApiBase {}\n\nexport function apiServiceFactory(apiServiceFactory: ApiServiceFactory, productService: ProductService) {\n return apiServiceFactory.createForProduct(PlatformApiService, {\n product: ClientConfigProductName.CASINO,\n area: 'games',\n forwardProductApiRequestHeader: productService.getMetadata(ClientConfigProductName.CASINO).isEnabledProductApi,\n });\n}\n","import { IContentImage } from '@casinocore/type-utils';\n\nimport { IGameShowHubSectorItem } from './game-show-hub.model';\nimport { IImmersiveLobbySectorItem } from './immersive-lobby.model';\nimport { ILiveCasinoLoungeCustomLink } from './live-casino-lounge.model';\n\nexport enum ImageType {\n SVG,\n Image,\n Lottie,\n}\n\nexport enum PromoOptinStatusType {\n Offered = 'OFFERED',\n NotOffered = 'NOT_OFFERED',\n Expired = 'EXPIRED',\n OptedIn = 'OPTED_IN',\n OptedOut = 'OPTED_OUT',\n Invalid = 'INVALID',\n AccountNew = 'ACCOUNT_NEW',\n NotVerified = 'NOT_VERIFIED',\n RGLimitNew = 'RGLIMIT_NEW',\n WithdrowPending = 'WITHDROW_PENDING',\n SelfExcluded = 'SELF_EXCLUDED',\n Risky = 'RISKY',\n Blocked = 'BLOCKED',\n Error = 'ERROR',\n}\n\nexport interface IContentLink {\n url: any;\n attributes: any;\n title: string;\n text: string;\n}\n\nexport interface IContentVideo {\n id: string;\n src: string;\n width?: number;\n height?: number;\n}\n\nexport interface IOption {\n title: string;\n key: string;\n condition: string;\n selected: boolean;\n selectedValue: number;\n defaultValue: number;\n}\n\nexport const CUSTOM_LINK_TYPE_DRAWER = 'Drawer';\nexport const CUSTOM_LINK_TYPE_LINK = 'Link';\n\nexport class ImmersiveLobbySkeletonLoadingConfiguration {\n logo?: string;\n lottieUrl?: string;\n spinnerType: string;\n backgroundColor?: string;\n loadingText?: string;\n loadingTextColor?: string;\n gameShowLogoUrl?: string;\n ferrisSpinningWheelUrl?: string;\n}\n\nexport class Dimension {\n width: string;\n height: string;\n y: string;\n x: string;\n}\n\nexport interface IMobileLandscapeConfiguration {\n minWidth: number;\n maxWidth: number;\n minHeight: number;\n maxHeight: number;\n}\n\nexport interface ICustomLinkDrawerContent {\n title: string;\n content: string;\n isOnboarding: boolean;\n onboardingCTAText: string;\n image?: IContentImage;\n imageCTA?: IContentLink;\n imageLink?: IContentLink;\n terms: string;\n primaryCTA?: IContentLink;\n condition: string;\n path: string;\n}\n\nexport interface ICustomLinkModalInfo {\n index: number;\n event: Event;\n panelClass: string;\n isMobilePhone: boolean;\n isStats: boolean;\n modalItem: IGameShowHubSectorItem | ILiveCasinoLoungeCustomLink | IImmersiveLobbySectorItem;\n launchRealtiveUri: string;\n from: string;\n}\n\nexport class ImmersiveLobbyConfig {\n lobbyType: string;\n loadingConfig: ImmersiveLobbySkeletonLoadingConfiguration;\n onboardingDataPath: string;\n enableSupportForLandscape: boolean;\n mobileLandscapeConfig: IMobileLandscapeConfiguration;\n defaultRenderer: string;\n fallbackRenderer: string;\n fallbackForIpad: boolean;\n idleTimeout: number;\n setMapAdjustedTimeout: number;\n gameLaunchUri: string;\n pauseLottieAnimations: boolean;\n}\n\nexport class LobbyGameInfo {\n gameId: string;\n gameIconUrl: string;\n icon?: number;\n isLoaded: boolean;\n isDisabled: boolean;\n isGameIconFallback: boolean;\n}\n\nexport enum LottieAnimationStatus {\n Play,\n Pause,\n}\n\nexport class ISchedule {\n gameId: string;\n position: string;\n timestamp: Date;\n}\nexport class ICustomLinkDrawer {\n content: Array;\n}\n\nexport class IPathBasedEnableORDisable {\n disablePaths: Array;\n disableDelay: string;\n enablePaths: Array;\n enableDelay: string;\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { GameMetaDataMap } from '../lobby-details-model/game-metadata.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameManagerService {\n gameMetaDataMap: Map = new Map();\n gameMetaDataPlayerStatsSubject = new BehaviorSubject | null>(null);\n gameMetaDataPlayerStatsObservable: Observable = this.gameMetaDataPlayerStatsSubject.asObservable().pipe(\n map((arr) => (arr ? arr.size : 0)),\n distinctUntilChanged(),\n );\n\n getGameInfo(gameId: string): GameMetaDataMap | null {\n if (!this.gameMetaDataMap) {\n return null;\n }\n return this.gameMetaDataMap.get(gameId) ?? null;\n }\n\n getGameDisplayName(gameId: string): string {\n if (!this.gameMetaDataMap) {\n return '';\n }\n return this.gameMetaDataMap.get(gameId)?.name ?? '';\n }\n\n setGameIconNotFound(gameId: string, iconType: number = 1): void {\n const gameInfo: GameMetaDataMap | null = this.gameMetaDataMap?.get(gameId) || null;\n if (gameInfo && !gameInfo.isImageNotFound) {\n gameInfo.isImageNotFound = new Map();\n gameInfo.isImageNotFound.set(iconType.toString(), true);\n }\n }\n\n isGameIconNotAvailable(gameId: string, iconType: number = 1): boolean {\n if (!this.gameMetaDataMap) {\n return false;\n }\n const gameInfo: GameMetaDataMap | null = this.gameMetaDataMap.get(gameId) || null;\n if (gameInfo?.isImageNotFound && gameInfo?.isImageNotFound?.size > 0) {\n return gameInfo.isImageNotFound.get(iconType.toString()) || false;\n }\n return false;\n }\n\n updateMetaData(gameMetaDataMap: Map): void {\n if (gameMetaDataMap) {\n this.gameMetaDataMap = gameMetaDataMap;\n this.gameMetaDataPlayerStatsSubject.next(gameMetaDataMap);\n }\n }\n}\n","import { Component, computed, inject, input, signal } from '@angular/core';\n\nimport { Image } from '@frontend/casino-ui';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoManager, CasinoStylesService, GameManagerService } from '../public-api';\n\ninterface ImageConfig {\n src: string;\n gameTileBorderRadius: string;\n}\n\n@Component({\n selector: 'cc-image-loader',\n templateUrl: 'image-loader.component.html',\n standalone: true,\n imports: [Image],\n})\nexport class ImageLoaderComponent {\n icon = input.required();\n gameId = input.required();\n iconType = input.required();\n alt = input('');\n priority = input(false);\n disableTheme = input(false);\n\n src = signal('');\n defaultSrc = signal('');\n host = signal('');\n isImageLoaded = signal(false);\n // This signal and lifecycle should be removed once grey image is under the cloudflare domain\n isImageLoadError = signal(false);\n\n optimisedSrc = computed(() => {\n return this.src();\n });\n\n computedStyle = computed(() => this.getComputedStyle(this.icon()));\n\n private casinoManagerService = inject(CasinoManager);\n private configProviderService = inject(ConfigProviderService);\n private gameManagerService = inject(GameManagerService);\n private casinoStylesService = inject(CasinoStylesService);\n\n ngOnInit() {\n this.initialiseImageConfig();\n }\n\n private initialiseImageConfig() {\n let gameConfig = this.configProviderService.provideGameConfig();\n let defaultUrl = this.casinoManagerService.getGrayImageUrl();\n let src = this.icon().src;\n\n this.host.set(gameConfig.host);\n this.defaultSrc.set(defaultUrl);\n\n const feature = this.configProviderService.provideFeaturesConfig();\n if (feature.enableGameIconTheming) {\n src = this.casinoStylesService.appendTheme(src, this.gameId());\n }\n\n if (this.disableTheme()) {\n const isImageNotFound = this.gameManagerService.isGameIconNotAvailable(this.gameId(), this.iconType());\n src = isImageNotFound ? this.defaultSrc() : this.icon().src;\n isImageNotFound && this.isImageLoadError.set(true);\n }\n\n this.src.set(src || '');\n }\n\n getComputedStyle(icon: ImageConfig) {\n return `border-radius: ${icon.gameTileBorderRadius}; background-color: unset;`;\n }\n\n onLoad() {\n this.isImageLoaded.set(true);\n }\n\n onLoadError() {\n this.gameManagerService.setGameIconNotFound(this.gameId(), this.iconType());\n this.src.set(this.defaultSrc());\n this.isImageLoadError.set(true);\n }\n}\n","\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, ClientConfigProductName, NativeAppService, ProductService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InvokerProductService {\n invokerProduct: string;\n constructor(\n private appInfoConfig: AppInfoConfig,\n private nativeAppService: NativeAppService,\n private productService: ProductService,\n ) {}\n\n getInvokerProduct(): string {\n // Note: Single domain app condition is temporary, until we move all products to single domain\n if (this.productService.isSingleDomainApp && this.productService.current.name === ClientConfigProductName.HOST) {\n this.productService.setActive(ClientConfigProductName.CASINO);\n }\n\n let appProduct: string = this.productService.isSingleDomainApp\n ? this.productService.current.name\n : this.appInfoConfig?.product?.toLowerCase();\n if (this.nativeAppService.isNative) {\n appProduct = this.nativeAppService?.product?.toLowerCase();\n }\n return appProduct;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NativeAppService, NavigationService } from '@frontend/vanilla/core';\n\nimport { InvokerProductService } from './invoker-product.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoWidgetService {\n product: string | null;\n currentWidgetHeight: number;\n newWidgetHeight: number;\n interval: any;\n maxHeightCount: number;\n constructor(\n private nativeAppService: NativeAppService,\n private navigationService: NavigationService,\n private invokerProductService: InvokerProductService,\n ) {}\n\n isCasinoWidget(): boolean {\n if (window.location.href.indexOf('casinowidget') > -1) {\n return true;\n }\n return false;\n }\n // NFR - Services optimization - Remove\n isfromCasino(): boolean {\n if (window.location.href.indexOf('launchEmbedded') == -1) {\n return true;\n }\n return false;\n }\n\n setWidgetProduct(): void {\n const invokerProduct: string = this.invokerProductService.getInvokerProduct();\n const widgetInvokerProduct: string | null = this.navigationService.location.search.get('invokerProduct');\n if (widgetInvokerProduct && widgetInvokerProduct != '') {\n this.product = widgetInvokerProduct.toUpperCase();\n } else if (invokerProduct) {\n this.product = invokerProduct;\n } else {\n this.product = null;\n }\n }\n\n getApiParams(params?: any): any {\n if (this.product) {\n const invokerProduct: string = params && params.invokerProduct && params.invokerProduct.length > 0 ? params.invokerProduct : this.product;\n if (params) {\n params.invokerProduct = invokerProduct;\n } else {\n params = {\n invokerProduct: invokerProduct,\n };\n }\n }\n return params;\n }\n\n postMessageToParent(eventName: string, params: any): void {\n window.parent.postMessage({ eventName: eventName, params: params }, '*');\n }\n\n getWidgetPosition() {\n const widgetPosition = this.navigationService.location.search.get('widgetPosition');\n if (widgetPosition) {\n return widgetPosition?.toLowerCase();\n } else {\n return '';\n }\n }\n\n getWidgetHeight(categoryId: string, elementId: string) {\n if (this.isCasinoWidget()) {\n const widget = document.getElementById(elementId);\n if (widget) {\n this.currentWidgetHeight = widget.scrollHeight;\n this.assigningWidgetParams(categoryId, this.currentWidgetHeight);\n }\n if (!this.interval) {\n this.interval = setInterval(() => {\n this.checkAndUpdateWidgetHeight(categoryId, elementId);\n }, 500);\n }\n }\n }\n\n checkAndUpdateWidgetHeight(categoryId: string, elementId: string) {\n this.newWidgetHeight = document.getElementById(elementId)?.scrollHeight || 0;\n if (this.currentWidgetHeight === this.newWidgetHeight) {\n this.maxHeightCount--;\n }\n if (!this.maxHeightCount) {\n clearInterval(this.interval);\n }\n if (this.newWidgetHeight !== this.currentWidgetHeight) {\n this.currentWidgetHeight = this.newWidgetHeight;\n this.assigningWidgetParams(categoryId, this.currentWidgetHeight);\n }\n }\n\n assigningWidgetParams(categoryId: string, currentWidgetHeight: number) {\n const isFooterWidget: boolean = this.getWidgetPosition() === 'footer' ? true : false;\n if (isFooterWidget) {\n const params = {\n isFooterWidget: this.getWidgetPosition() ? true : false,\n categoryid: categoryId,\n height: currentWidgetHeight + 30,\n };\n this.postMessageToParent('FooterLobbyLoaded', params);\n } else {\n const params = {\n isFooterWidget: this.getWidgetPosition() ? true : false,\n categoryid: categoryId,\n height: currentWidgetHeight + 30,\n };\n this.postMessageToParent('LobbyLoaded', params);\n }\n }\n\n getWidgetProduct(): string {\n let widgetInvokerProduct: string = this.invokerProductService.getInvokerProduct();\n if (!widgetInvokerProduct || widgetInvokerProduct === '') {\n widgetInvokerProduct = this.navigationService.location.search.get('invokerProduct') || '';\n }\n if (this.nativeAppService.isNative) {\n widgetInvokerProduct = this.nativeAppService.product;\n }\n return widgetInvokerProduct;\n }\n // NFR - Services optimization - Remove\n setInvokerProduct(invokerProduct: string) {\n this.product = invokerProduct.toUpperCase();\n }\n}\n","export class HomeLobbyModel {\n activeCategory: string;\n navigationLevel: number;\n currentCategory: any;\n changeEvent: string;\n lobbyType: string;\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { NativeAppService, WindowRef } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeApiService {\n mcPage: any;\n constructor(\n private nativeApplication: NativeAppService,\n private windowRef: WindowRef,\n private configProviderService: ConfigProviderService,\n ) {\n this.mcPage = this.configProviderService.provideMcPageConfig();\n }\n count: number = 0;\n raiseEvent(event: string, action?: string, parameters?: string) {\n const actionValue = action ? action : 'action';\n if (this.nativeApplication.isNative) {\n this.count++;\n const id = 'NativeApi_iframe_' + this.count;\n const frame = document.createElement('iframe');\n frame.id = id;\n frame.src = `bwinex://?event=${event}&${actionValue}=${parameters}`;\n frame.style.display = 'none';\n this.windowRef.nativeWindow.document.body.appendChild(frame);\n return id;\n }\n return null;\n }\n\n raiseEventCommon(eventInfo: string) {\n if (this.nativeApplication.isNative || this.nativeApplication.isNativeWrapper) {\n this.count++;\n const id = 'NativeApi_iframe_' + this.count;\n const frame = document.createElement('iframe');\n frame.id = id;\n frame.src = `bwinex://${eventInfo}`;\n frame.style.display = 'none';\n this.windowRef.nativeWindow.document.body.appendChild(frame);\n return id;\n }\n return null;\n }\n\n raiseTeaserEvent(prevEventId: string, eventInfo: string) {\n if (prevEventId) {\n this.clearEvent(prevEventId);\n }\n\n return this.raiseEventCommon(eventInfo);\n }\n // NFR - Services optimization - Remove\n processPromoEvent(link: string, eventId: string) {\n const index = link.indexOf('?event=promo');\n if (index === -1) {\n return null;\n }\n if (eventId !== null) {\n this.clearEvent(eventId);\n }\n return this.raiseEventCommon(link.substr(index));\n }\n // NFR - Services optimization - Remove\n processLobbyEvent(link: string, eventId: string) {\n const index = link.indexOf('?event=lobby');\n if (index === -1) {\n return null;\n }\n if (eventId !== null) {\n this.clearEvent(eventId);\n }\n return this.raiseEventCommon(link.substr(index));\n }\n\n raiseOpenGameEvent(prevEventId: string, openUrl: string, gameId: string, isAuthenticated: boolean) {\n if (prevEventId) {\n this.clearEvent(prevEventId);\n }\n\n if (!isAuthenticated) {\n return this.raiseEvent('lobby', 'opengame', 'gameId=' + gameId);\n }\n\n return this.raiseEvent('lobby', 'opengame', 'url=' + openUrl);\n }\n\n raiseNativeAppEvent(eventInfo: string) {\n if (this.nativeApplication.isNative) {\n this.count++;\n const nativeScheme = this.mcPage.nativeAppScheme;\n const id = 'NativeApi_iframe_' + this.count;\n const frame = document.createElement('iframe');\n frame.id = id;\n frame.src = `${nativeScheme}://${eventInfo}`;\n frame.style.display = 'none';\n this.windowRef.nativeWindow.document.body.appendChild(frame);\n return id;\n }\n return null;\n }\n\n // NFR - Services optimization - Remove\n targetEvent(event: string, scheme: string = 'bwinex://') {\n if (this.nativeApplication.isNative) {\n const iframe: any = document.createElement('iframe');\n iframe.src = scheme + event;\n\n document.documentElement.appendChild(iframe);\n iframe.parentNode.removeChild(iframe);\n }\n }\n\n clearEvent(id: string) {\n if (this.nativeApplication.isNative && id !== null) {\n this.windowRef?.nativeWindow?.document?.getElementById(id)?.remove();\n }\n }\n}\n","import { Injectable, effect } from '@angular/core';\n\nimport { CookieService, DeviceService, Logger, NativeAppService, NavigationService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoWidgetService } from './casino-widget.service';\nimport { InvokerProductService } from './invoker-product.service';\nimport { HomeLobbyModel } from './models/home-lobby.model';\nimport { PublishLobbyModel } from './models/publish-lobby.model';\nimport { NativeApiService } from './nativeapi.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoManager {\n lobbyType: string;\n gameEventId: any;\n private isTouchDevice = this.checkTouchDevice();\n toggleEnabled: string;\n gameHomeUrl: string;\n get currentWidth() {\n return this.deviceService.windowRect().width;\n }\n product: string;\n headerTeasers: any;\n currentlobbyType: any;\n\n private loadNextGamesSetPublisher = new BehaviorSubject(null);\n loadNextGamesSetObservable: Observable = this.loadNextGamesSetPublisher.asObservable();\n\n private lobbyModelPublisher = new BehaviorSubject(new HomeLobbyModel());\n lobbyObservable: Observable = this.lobbyModelPublisher.asObservable();\n\n private reSizePublisher = new BehaviorSubject(this.deviceService.windowRect().width);\n reSizeObservable = this.reSizePublisher.pipe(distinctUntilChanged());\n\n categoryLookup: any;\n lobbyModel: HomeLobbyModel = new HomeLobbyModel();\n\n private playerSegmentionSubject = new BehaviorSubject(null);\n playerSegmentDataObservable: Observable = this.playerSegmentionSubject.asObservable();\n\n previousProduct: string;\n invokerProduct: string;\n constructor(\n private deviceService: DeviceService,\n private casinoWidgetService: CasinoWidgetService,\n private cookieService: CookieService,\n private nativeAppService: NativeAppService,\n private nativeApiService: NativeApiService,\n private navigation: NavigationService,\n private configProviderService: ConfigProviderService,\n private invokerProductService: InvokerProductService,\n private logger: Logger,\n ) {\n effect(() => {\n this.reSizePublisher.next(this.deviceService.windowRect().width);\n });\n }\n setCategoryLobby(publishCategory: PublishLobbyModel) {\n const sourceCategory = this.navigation.location;\n const publishCtgry = publishCategory.category?.toLowerCase();\n let defCategory: any;\n if (this.deviceService.windowRect().width > 500) {\n if (\n publishCtgry != defCategory &&\n (sourceCategory.pathname.indexOf(defCategory) > -1 || sourceCategory.pathname === '/' || sourceCategory.pathname == '/en/games')\n ) {\n document.documentElement.style.setProperty('--isNewsFeedDisplayed', 'none');\n }\n if (publishCtgry == defCategory && !(sourceCategory.pathname.indexOf(defCategory) > -1)) {\n document.documentElement.style.setProperty('--isNewsFeedDisplayed', 'none');\n }\n } else {\n document.documentElement.style.setProperty('--isNewsFeedDisplayed', 'none');\n }\n this.lobbyModel.activeCategory = publishCategory.category;\n this.lobbyModel.navigationLevel = publishCategory.navigationLevel;\n if (this.previousProduct !== publishCategory.product) {\n this.previousProduct = publishCategory.product;\n this.lobbyModel.currentCategory = null;\n }\n this.lobbyModelPublisher.next(this.lobbyModel);\n }\n\n setWidgetToggleInfo(enableToggle: string) {\n this.toggleEnabled = enableToggle;\n }\n getWidgetToggleInfo() {\n return this.toggleEnabled;\n }\n\n getActiveCategory() {\n return this.lobbyModel.activeCategory;\n }\n\n getLobbyType() {\n let lobbyType: string = this.cookieService.get('LobbyType');\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n if (lobbyType) {\n return lobbyType;\n } else if (lmtConfig.lobbyTypeMap) {\n lobbyType = lmtConfig.lobbyTypeMap[0].lobbyType;\n return lobbyType;\n } else {\n return null;\n }\n }\n\n getProductForLobbyType(lobbyType: string): string {\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n const lobbyTypeMap: any = lmtConfig.lobbyTypeMap;\n if (lobbyTypeMap) {\n for (let lobbyTypeMapt of lobbyTypeMap) {\n if (lobbyTypeMapt.lobbyType == lobbyType) {\n return lobbyTypeMapt.product;\n }\n }\n } else {\n return '';\n }\n return '';\n }\n\n private checkTouchDevice(): boolean {\n try {\n return (\n !this.nativeAppService.isDownloadClient &&\n this.deviceService.isTouch &&\n !window.matchMedia('(pointer: fine)').matches &&\n !navigator.userAgent.match(/Win64/ || /WOW64/)\n );\n } catch (error) {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n }\n }\n\n isTouch(): boolean {\n return this.isTouchDevice;\n }\n\n setGameHomeUrl(gameHomeUrl: string) {\n this.gameHomeUrl = gameHomeUrl;\n }\n getGameHomeUrl(): string {\n return this.gameHomeUrl;\n }\n\n loadNextGamesSet() {\n this.loadNextGamesSetPublisher.next(true);\n }\n\n getCurrentWidth() {\n return this.currentWidth;\n }\n\n getDefaultCategoryType1(): string {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const defaultCategory = casinoConfig.defaultCategory;\n\n if (this.categoryLookup?.filter((c: any) => c.sitecoreData?.categoryId === defaultCategory)[0]) {\n return defaultCategory;\n }\n\n return this.categoryLookup[0] ? this.categoryLookup[0].sitecoreData.categoryId : undefined;\n }\n\n getDefaultCategoryType(): string {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n return casinoConfig.defaultCategory;\n }\n\n goToLobby() {\n const mcPage = this.configProviderService.provideMcPageConfig();\n if (this.nativeAppService.isNative && this.nativeAppService.product === 'CASINO') {\n if (this.gameEventId) {\n this.nativeApiService.clearEvent(this.gameEventId);\n }\n\n this.gameEventId = this.nativeApiService.raiseEventCommon('?event=promo&action=openlobbytab');\n\n return;\n }\n this.navigation.goTo(mcPage?.prefix);\n }\n\n getLobbyUrlPrefix(lobbyType: string = ''): string {\n if (!this.lobbyType) {\n this.lobbyType = lobbyType;\n }\n const lmtDataClientConfig = this.configProviderService.provideLmtConfig();\n for (let lobbyTypeMap of lmtDataClientConfig.lobbyTypeMap) {\n if (lobbyTypeMap.lobbyType.toLowerCase() === lobbyType.toLowerCase()) {\n return lobbyTypeMap.product?.toLowerCase();\n }\n }\n return '';\n }\n getProduct(): string {\n const lmtDataClientConfig = this.configProviderService.provideLmtConfig();\n if (!this.product && lmtDataClientConfig.lobbyTypeMap) {\n this.product = lmtDataClientConfig.lobbyTypeMap[0].product;\n }\n return this.product;\n }\n\n getProductForGivenLobbyType(lobbyType: string): string {\n const lmtDataClientConfig = this.configProviderService.provideLmtConfig();\n const lobbyTypeMap: any = lmtDataClientConfig.lobbyTypeMap;\n for (let lobbyTypet of lobbyTypeMap) {\n if (lobbyTypet.lobbyType == lobbyType) {\n if (lobbyTypet.product) return lobbyTypet?.product?.toLowerCase();\n }\n }\n return '';\n }\n\n IsFeatureEnabledforLobbytype(lobbyType: string, features: any): any {\n if (features && lobbyType) {\n const featureType = features.find((x: { lobbyType?: string }) => x?.lobbyType?.toLowerCase() == lobbyType?.toLowerCase());\n if (featureType?.countValue) {\n return featureType.countValue;\n }\n if (featureType?.value) {\n return true;\n }\n if (featureType?.stringValue) {\n return featureType.stringValue;\n }\n if (featureType?.stringArray && featureType.stringArray.length > 0) {\n return featureType.stringArray;\n }\n if (featureType?.jsonValue) {\n return featureType.jsonValue;\n }\n if (featureType?.defaultCategory) {\n return featureType.defaultCategory;\n }\n if (featureType?.forceMobileNav) {\n return featureType.forceMobileNav;\n }\n if (featureType?.fetchMeta) {\n return featureType.fetchMeta;\n }\n return false;\n }\n return false;\n }\n\n IsFeatureEnabledforLobbytypeWithInvokerProduct(lobbyType: string, feature: any): any {\n if (feature?.[0].invokerProduct) {\n let invokerproduct: string = this.getInvokerProduct();\n if (!invokerproduct || invokerproduct === '') {\n invokerproduct = 'casino';\n }\n feature = feature.filter((x: any) => x?.invokerProduct?.toLowerCase() == invokerproduct?.toLowerCase());\n }\n if (!lobbyType || lobbyType === '') {\n lobbyType = this.cookieService.get('LobbyType');\n }\n if (feature && lobbyType) {\n const featureType = feature.find((x: any) => x?.lobbyType?.toLowerCase() == lobbyType?.toLowerCase());\n if (featureType?.countValue) {\n return featureType.countValue;\n }\n if (featureType?.value) {\n return true;\n }\n if (featureType?.stringValue) {\n return featureType.stringValue;\n }\n if (featureType?.stringArray && featureType.stringArray.length > 0) {\n return featureType.stringArray;\n }\n return false;\n }\n return false;\n }\n\n assignGameClass(currentWidth: any, iconType: any): any {\n if (currentWidth < 383) {\n switch (iconType) {\n case '1':\n return 'xs-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'xs-icon';\n\n case '4':\n return 'medium-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'xs-icon';\n\n case '7':\n return 'xs-icon';\n case '10':\n return 'medium-icon';\n default:\n return 'xs-icon';\n }\n } else if (currentWidth < 480) {\n switch (iconType) {\n case '1':\n case '2':\n case '3':\n return 'small-icon';\n\n case '4':\n case '5':\n return 'medium-icon';\n\n case '6':\n case '7':\n return 'small-icon';\n\n case '10':\n return 'medium-icon';\n\n default:\n return 'small-icon';\n }\n } else if (currentWidth < 533) {\n switch (iconType) {\n case '1':\n return 'xs-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'xs-icon';\n\n case '4':\n return 'medium-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'xs-icon';\n\n case '7':\n return 'xs-icon';\n\n case '10':\n return 'medium-icon';\n\n default:\n return 'xs-icon';\n }\n } else if (currentWidth < 625) {\n switch (iconType) {\n case '1':\n return 'small-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'small-icon';\n\n case '4':\n return 'large-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'small-icon';\n\n case '7':\n return 'small-icon';\n\n case '10':\n return 'large-icon';\n\n default:\n return 'small-icon';\n }\n } else if (currentWidth < 689) {\n switch (iconType) {\n case '1':\n return 'xs-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'xs-icon';\n\n case '4':\n return 'medium-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'xs-icon';\n\n case '7':\n return 'xs-icon';\n\n case '10':\n return 'medium-icon';\n\n default:\n return 'xs-icon';\n }\n } else if (currentWidth < 768) {\n switch (iconType) {\n case '1':\n return 'small-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'small-icon';\n\n case '4':\n return 'large-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'small-icon';\n\n case '7':\n return 'small-icon';\n\n case '10':\n return 'large-icon';\n\n default:\n return 'small-icon';\n }\n } else if (currentWidth < 1024) {\n switch (iconType) {\n case '1':\n return 'xs-icon';\n\n case '2':\n return 'medium-icon';\n\n case '3':\n return 'small-icon';\n\n case '4':\n return 'medium-icon';\n\n case '5':\n return 'medium-icon';\n\n case '6':\n return 'xs-icon';\n\n case '7':\n return 'xs-icon';\n\n case '10':\n return 'medium-icon';\n\n default:\n return 'small-icon';\n }\n } else {\n switch (iconType) {\n case '1':\n return 'small-icon';\n\n case '2':\n return 'large-icon';\n\n case '3':\n return 'small-icon';\n\n case '4':\n return 'large-icon';\n\n case '5':\n return 'large-icon';\n\n case '6':\n return 'small-icon';\n\n case '7':\n return 'small-icon';\n\n case '10':\n return 'large-icon';\n\n default:\n return 'small-icon';\n }\n }\n }\n\n getInvokerProduct(): string {\n return this.casinoWidgetService.getWidgetProduct();\n }\n\n getSlotRaceCategoryId(lobbyType: string): string {\n const slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n for (let slotRacesLMTCategoryIdForLobbyType of slotRacesConfig.slotRacesLMTCategoryIdForLobbyType) {\n if (slotRacesLMTCategoryIdForLobbyType.lobbyType === lobbyType) {\n return slotRacesLMTCategoryIdForLobbyType.stringValue;\n }\n }\n return '';\n }\n\n getJackpotTileCategoryId(lobbyType: string): string {\n const jackpotConfig = this.configProviderService.provideJackpotConfig();\n for (let jackpotTilesLMTCategoryIdForLobbyType of jackpotConfig.jackpotTilesLMTCategoryIdForLobbyType) {\n if (jackpotTilesLMTCategoryIdForLobbyType.lobbyType.toLowerCase() === lobbyType.toLowerCase()) {\n return jackpotTilesLMTCategoryIdForLobbyType.stringValue;\n }\n }\n return '';\n }\n\n getLobbyTypeForProduct(productRoute: string): string {\n const lmtDataClientConfig = this.configProviderService.provideLmtConfig();\n if (lmtDataClientConfig?.lobbyTypeMap?.length > 0) {\n let invokerProduct: string = this.invokerProductService.getInvokerProduct();\n if (!invokerProduct || invokerProduct === '') {\n invokerProduct = 'CASINO';\n }\n const productLobbyTypes: any = lmtDataClientConfig.lobbyTypeMap.filter((lobbytype: any) => {\n return lobbytype?.invokerProduct?.toLowerCase() === invokerProduct?.toLowerCase();\n });\n if (productLobbyTypes && productLobbyTypes.length > 0) {\n return this.extractLobbyType(productLobbyTypes, productRoute);\n } else {\n this.logger.error(\n 'No lobby types configured for invoker product::',\n invokerProduct,\n ':: Considering all configured values for product route.',\n );\n return this.extractLobbyType(lmtDataClientConfig.lobbyTypeMap, productRoute);\n }\n }\n this.logger.error('Lobby Type Map values not configured.');\n return '';\n }\n\n setCurrentLobby(lobbyType: string) {\n this.currentlobbyType = lobbyType;\n }\n\n getCurrentLobby() {\n return this.currentlobbyType;\n }\n private extractLobbyType(lobbyTypeMap: any, product: string): string {\n if (lobbyTypeMap?.length > 0) {\n for (let lobbyType of lobbyTypeMap) {\n if (lobbyType?.product?.toLowerCase() == product?.toLowerCase()) {\n return lobbyType.lobbyType;\n }\n }\n this.logger.error('No lobby type found for product route::', product);\n }\n return '';\n }\n\n isSingleHostLobbyType(lobbyType: string, currentProduct: string): boolean {\n let singleHostLobbyItem: any = null;\n let singleHostLobbyMap: any = this.configProviderService.provideGameConfig()?.singleHostLobbyMap;\n if (singleHostLobbyMap) {\n singleHostLobbyItem = singleHostLobbyMap.filter((sh: any) => {\n return currentProduct && sh?.lobbyType?.toLowerCase() == lobbyType?.toLowerCase();\n });\n }\n return singleHostLobbyItem?.length && singleHostLobbyItem[0].singleHost ? true : false;\n }\n\n getGrayImageUrl(): string {\n return this.configProviderService.provideGlobalConfig()?.staticImages?.gray;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConstService {\n public static readonly Instant_Casino: string = 'instantCasino';\n public static readonly Live_Casino: string = 'LiveCasino';\n public static readonly Recent_Games: string = 'RECENTGAMES';\n public static readonly Favourite_Games: string = 'FAVOURITEGAMES';\n public static readonly LMC_GYML = 'LMC_GYML';\n public static readonly ALL_GAMES_CATEGORY_ID: string = 'allgames';\n public static readonly LIVE_DEALER_GAMES_CATEGORY_ID: string = 'livecasino';\n public static readonly LIVE_CASINO_ALL_GAMES_CATEGORY_ID: string = 'livecasinoallgames';\n public static readonly LOBBY_LOADING_COMPLETED_EVENT: string = '?event=lobby&action=loadingcompleted';\n public static readonly FAVOURITE_GAMES_CATEGORY_ID: string = 'favouritegames';\n public static readonly RECENT_GAMES_CATEGORY_ID: string = 'recentgames';\n public static readonly SPORTS_HOME_ICON_EVENT: string = 'Highlights';\n public static readonly UNFINISHED_GAMES_CATEGORY_ID: string = 'unfinishedgames';\n public static readonly GYML_GAMES_CATEGORY_ID: string = 'gamesyoumightlike';\n public static readonly HOME_CATEGORY_ID = 'home';\n public static readonly LMC_GYML_CATEGORY_ID = 'LMC_GYML';\n public static readonly EGV_GYML = 'GYML';\n public static readonly DETAIL_PAGE_MODE_PICKER = 'Picker';\n public static readonly DETAIL_PAGE_MODE_FORCEPICKER = 'ForcePicker';\n public static readonly DETAIL_PAGE_MODE_FORCE = 'Force';\n public static readonly DETAIL_PAGE_MODE_ALL = 'All';\n public static readonly GAME_OF_THE_DAY = 'gameoftheday';\n public static readonly HIGHLIGHT_JACKPOTS = 'highlightjackpots';\n public static readonly LIVE_CASINO = 'livecasino';\n public static readonly PROMOTIONS_DISCOVER = 'promotions';\n public static readonly QUICK_LINKS = 'quicklinks';\n public static readonly EDITORS_PICK = 'editorspick';\n public static readonly SEARCH = 'Search';\n public static readonly SEARCH_GYML = 'Search_GYML';\n public static readonly ADV_GAME = 'advanceGameDataModel';\n}\n","import { GameLaunch } from '../public-api';\n\nexport enum EventNames {\n EventClick = 'Event.Clicks',\n EventTracking = 'Event.Tracking',\n GameOpen = 'gameOpen',\n GameInteraction = 'GameInteraction',\n}\n\nexport enum EventDataKeys {\n ComponentUrlClicked = 'component.URLClicked',\n ComponentGameName = 'component.gameName',\n ComponentGameType = 'component.gameType',\n ComponentGamePosition = 'component.Game.position',\n ComponentGameSection = 'component.Game.section',\n ComponentGameGridPosition = 'component.Game.GridPosition',\n ComponentGameContainerLocation = 'component.gameContainerLocation',\n ComponentGameStatus = 'component.gameStatus',\n ComponentGameContainerDescription = 'component.gameContainerDescription',\n ComponentGameFavorite = 'component.gameFavourite',\n ComponentGamePlayingStatus = 'component.gamePlayingStatus',\n ComponentGameDisplayName = 'component.gameDisplayName',\n ComponentCategoryType = 'component.categoryType',\n ComponentCategorySubType = 'component.categorySubType',\n ComponentRecommendationType = 'component.recommendationtype',\n ComponentGameInteraction = 'component.Game.interaction',\n CasinoLobbyName = 'casino.lobbyName',\n CasinoLobbySource = 'casino.lobbySource',\n CasinoOptimoveSegment = 'casino.optimoveSegment',\n AddGameFavorites = 'Add_Game_Favorites',\n RemoveGameFavourite = 'Remove_Game_Favorites',\n}\n\ntype EventData = {\n [EventDataKeys.ComponentUrlClicked]?: string;\n [EventDataKeys.ComponentGameName]?: string;\n [EventDataKeys.ComponentGameType]?: string;\n [EventDataKeys.ComponentGamePosition]?: number;\n [EventDataKeys.ComponentGameSection]?: string;\n [EventDataKeys.ComponentGameGridPosition]?: string;\n [EventDataKeys.ComponentGameContainerLocation]?: string;\n [EventDataKeys.ComponentGameStatus]?: string;\n [EventDataKeys.ComponentGameContainerDescription]?: string;\n [EventDataKeys.ComponentGameFavorite]?: string;\n [EventDataKeys.ComponentGamePlayingStatus]?: string;\n [EventDataKeys.ComponentGameDisplayName]?: string;\n [EventDataKeys.ComponentCategoryType]?: string;\n [EventDataKeys.ComponentCategorySubType]?: string;\n [EventDataKeys.ComponentRecommendationType]?: string;\n [EventDataKeys.ComponentGameInteraction]?: string;\n [EventDataKeys.CasinoLobbyName]?: string;\n [EventDataKeys.CasinoLobbySource]?: string;\n [EventDataKeys.CasinoOptimoveSegment]?: string;\n [EventDataKeys.CasinoLobbyName]?: string;\n [EventDataKeys.AddGameFavorites]?: string;\n [EventDataKeys.RemoveGameFavourite]?: string;\n};\n\nexport interface Event {\n name: EventNames;\n data: EventData;\n}\n\ntype ErrorType = {\n message: string;\n code?: string;\n};\n\nexport interface ErrorEvent {\n data: ErrorType;\n}\n\nenum UpdateTypeKeys {\n Event = 'event',\n PageName = 'page.name',\n}\n\ntype UpdateType = {\n [UpdateTypeKeys.Event]?: string;\n [UpdateTypeKeys.PageName]?: string;\n};\n\nexport interface DataUpdateEvent {\n data: UpdateType;\n}\n\nexport interface TrackGame {\n name: string;\n type: string;\n position: number;\n section: string;\n gridPosition: string;\n location: string;\n status: string;\n description: string;\n favourite: string;\n playingStatus: string;\n displayName: string;\n categoryType: string;\n categorySubType: string;\n recommendationType: string;\n lobbyName: string;\n lobbySource: string;\n optimoveSegment: string;\n params: GameLaunch;\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { TrackingService as VanillaTrackingService } from '@frontend/vanilla/core';\n\nimport { DataUpdateEvent, ErrorEvent, Event } from './vanilla-tracking-adapter.model';\n\n@Injectable({ providedIn: 'root' })\nexport class VanillaTrackingAdapter {\n vanillaTrackingService = inject(VanillaTrackingService);\n\n trigger(event: Event) {\n this.vanillaTrackingService.triggerEvent(event.name, event.data);\n }\n\n reportError(event: ErrorEvent) {\n this.vanillaTrackingService.reportError(event.data);\n }\n\n update(event: DataUpdateEvent) {\n this.vanillaTrackingService.updateDataLayer(event.data);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiBase, ApiServiceFactory, ClientConfigProductName, ProductService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n useFactory: apiServiceFactory,\n deps: [ApiServiceFactory, ProductService],\n})\nexport class PlatformBingoApiService extends ApiBase {}\n\nexport function apiServiceFactory(apiServiceFactory: ApiServiceFactory, productService: ProductService) {\n return apiServiceFactory.createForProduct(PlatformBingoApiService, {\n product: ClientConfigProductName.BINGO,\n area: 'bingo',\n forwardProductApiRequestHeader: productService.getMetadata(ClientConfigProductName.BINGO).isEnabled,\n });\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, Page, ProductHomepagesConfig, ProductService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UrlUtilityService {\n isDev: boolean;\n devUrl: string;\n\n constructor(\n private products: ProductHomepagesConfig,\n private page: Page,\n private productService: ProductService,\n private appInfoConfig: AppInfoConfig,\n ) {}\n\n getCasinoBaseUrl = (): string => this.getUrl('casino') || '';\n\n getProductBaseUrl = (productOverride?: string) => this.getUrl('', true, productOverride);\n\n getProductApiBaseUrl = (productOverride?: string): string => this.getProductBaseUrl(productOverride) + '/' + this.page.lang;\n\n getApiBaseUrl = (): string => this.getCasinoBaseUrl() + '/' + this.page.lang;\n\n getCasinoApiBaseUrl = (): string => this.productService.getMetadata('casino').apiBaseUrl;\n\n getClientConfigUrl = () => `${this.getCasinoApiBaseUrl()}/${this.page.lang}/api/clientconfig`;\n\n getCategoryNavigationBaseUrl = (): string => this.getUrl('casino') || '';\n\n getBingoApiBaseUrl = (): string => this.getUrl('bingo') + '/' + this.page.lang;\n\n getPromoSmartUrl = (): string => `${this.getUrl('promo')}/${this.page.lang}`;\n\n getDiceSmartUrl = (): string => `${this.getUrl('dicegames')}/${this.page.lang}`;\n\n getCasinoSmartUrl = (): string => `${this.getUrl('casino')}/${this.page.lang}`;\n\n private getUrl = (type: string, isProduct: boolean = false, productOverride?: string) => {\n // Note: Single domain app condition is temporary, until we move all products to single domain\n let currentProduct: string = this.productService.isSingleDomainApp\n ? this.productService.current.name\n : this.appInfoConfig?.product?.toLowerCase();\n const product: any = isProduct && productOverride ? productOverride : isProduct ? currentProduct.toLowerCase() : type;\n const productUrl = new URL(this.products[product as keyof ProductHomepagesConfig]);\n return productUrl.origin;\n };\n\n getAppCurrentProduct(): boolean {\n const appProduct: string = this.productService.isSingleDomainApp\n ? this.productService.current.name\n : this.appInfoConfig?.product?.toLowerCase();\n return appProduct === 'casino';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiPathsHelperService {\n constructor(private logger: Logger) {}\n\n transformApi(apiPathConfig: string, ...args: any[]) {\n this.logger.info('Api Path Arguments::', args);\n\n const interpolate = new Function('args', 'return `' + apiPathConfig + '`;');\n return interpolate(args);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { PlatformBingoApiService } from '../platform-api/platform-bingo-api.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BingoFavouriteService {\n _favouriteAddedMessage: string;\n _favouriteRemovedMessage: string;\n _favouriteAddedErrorMessage: string;\n _favouriteRemovedErrorMessage: string;\n\n constructor(\n private apiBingoService: PlatformBingoApiService,\n private api: PlatformApiService,\n private router: Router,\n private urlUtilityService: UrlUtilityService,\n private apiPathsHelperService: ApiPathsHelperService,\n private readonly configProviderService: ConfigProviderService,\n ) {}\n\n addFavourite(roomId: string, accountName: string) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n return this.apiBingoService.get(apiPathsConfig.bingo['bgSetFavourite'], { roomId: roomId, isFavourite: true, accountName: accountName });\n } else {\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.bingo['bgSetFavourite'],\n this.urlUtilityService.getBingoApiBaseUrl(),\n );\n return this.api.get(endPoint, { roomId: roomId, isFavourite: true, accountName: accountName });\n }\n }\n\n removeFavourite(roomId: string, accountName: string) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n return this.apiBingoService.get(apiPathsConfig.bingo['bgSetFavourite'], { roomId: roomId, isFavourite: false, accountName: accountName });\n } else {\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.bingo['bgSetFavourite'],\n this.urlUtilityService.getBingoApiBaseUrl(),\n );\n return this.api.get(endPoint, { roomId: roomId, isFavourite: false, accountName: accountName });\n }\n }\n // NFR - Services optimization - Remove\n getFavouriteUrl(roomId: string, isFavourite: boolean, favAddClass: string, favRemClass: string): string {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const result = this.apiPathsHelperService.transformApi(\n apiPathsConfig.bingo['bgForcedFavourite'],\n this.urlUtilityService.getBingoApiBaseUrl(),\n roomId,\n isFavourite,\n favAddClass,\n favRemClass,\n this.router.url,\n );\n return result;\n }\n\n getFavouriteWidgetGames(sso: string, accountName: string) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n return this.apiBingoService.get(apiPathsConfig.bingo['bgSchedule'], { sso: sso, accountName: accountName });\n } else {\n const endPoint = this.apiPathsHelperService.transformApi(apiPathsConfig.bingo['bgSchedule'], this.urlUtilityService.getBingoApiBaseUrl());\n return this.api.get(endPoint, { sso: sso, accountName: accountName });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CasinoCoreNpmParams } from './models/casino-core-npm.params';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoCoreNpmParamsService {\n private casinoNpmParams: CasinoCoreNpmParams;\n\n constructor() {}\n\n setcasinoCoreNpmParams(casinoCoreNpmParams: CasinoCoreNpmParams) {\n this.casinoNpmParams = casinoCoreNpmParams;\n }\n\n getcasinoCoreNpmParams(): CasinoCoreNpmParams {\n return this.casinoNpmParams;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoCoreNpmParamsService } from './casino-core-npm-params.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { InvokerProductService } from './invoker-product.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoIFrameOverlayService {\n isOverlay: boolean;\n constructor(\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private casinoCoreNpmParamsService: CasinoCoreNpmParamsService,\n private invokerProductService: InvokerProductService,\n ) {}\n\n setOverlayStatus(isOverlay: boolean) {\n this.isOverlay = isOverlay;\n }\n\n getOverlayStatus() {\n return this.isOverlay;\n }\n\n isOverLayOnAProduct(lobbyType: string = ''): boolean {\n const casinoAsIFrameOverlayConfig = this.configProviderService.provideCasinoAsIFrameConfig();\n if (casinoAsIFrameOverlayConfig?.overlayLobbyTypeMap && casinoAsIFrameOverlayConfig.overlayLobbyTypeMap.length > 0) {\n const overlayLobbyTypeMap = casinoAsIFrameOverlayConfig?.overlayLobbyTypeMap.filter(\n (l: any) => l?.invokerProduct?.toLowerCase() === this.invokerProductService?.getInvokerProduct()?.toLowerCase(),\n );\n return lobbyType ? this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, overlayLobbyTypeMap) : false;\n }\n return false;\n }\n\n lobbyTypeForNavCategories(): string {\n const casinoAsIFrameOverlayConfig = this.configProviderService.provideCasinoAsIFrameConfig();\n if (\n casinoAsIFrameOverlayConfig &&\n casinoAsIFrameOverlayConfig.overlayBottomNavLobbyTypeMap &&\n casinoAsIFrameOverlayConfig.overlayBottomNavLobbyTypeMap.length > 0\n ) {\n const overlayBottomNavLobbyTypeMap = casinoAsIFrameOverlayConfig.overlayBottomNavLobbyTypeMap.filter(\n (l: any) => l?.invokerProduct?.toLowerCase() === this.invokerProductService?.getInvokerProduct()?.toLowerCase(),\n );\n if (overlayBottomNavLobbyTypeMap && overlayBottomNavLobbyTypeMap.length > 0) {\n for (let overlayBottomNavLobbyTypeMapItem of overlayBottomNavLobbyTypeMap.length) {\n return overlayBottomNavLobbyTypeMapItem.lobbyType;\n }\n }\n }\n return '';\n }\n\n fetchOverlayLobby(): string {\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n const invokerProduct: string = this.invokerProductService.getInvokerProduct();\n const overlayConfig: any = this.configProviderService.provideCasinoAsIFrameConfig();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n let overlayLobbyType: string = '';\n\n if (lmtConfig.lobbyTypeMap && lmtConfig.lobbyTypeMap.length > 0) {\n const applicableLobbyTypeMaps: any = lmtConfig.lobbyTypeMap.filter(\n (l: any) => l?.invokerProduct?.toLowerCase() === invokerProduct?.toLowerCase(),\n );\n if (applicableLobbyTypeMaps && applicableLobbyTypeMaps.length > 0) {\n if (casinoNpmParams.customLobbyTypeMaps && casinoNpmParams.customLobbyTypeMaps.length > 0) {\n overlayLobbyType = applicableLobbyTypeMaps[0].lobbyType ? applicableLobbyTypeMaps[0].lobbyType : '';\n } else if (overlayConfig && overlayConfig.overlayLobbyTypeMap && overlayConfig.overlayLobbyTypeMap.length > 0) {\n const lobbyTypeObj = overlayConfig.overlayLobbyTypeMap.filter(\n (l: any) => l?.invokerProduct?.toLowerCase() === invokerProduct?.toLowerCase(),\n );\n if (lobbyTypeObj?.length > 0) overlayLobbyType = lobbyTypeObj[0].fetchMeta ? lobbyTypeObj[0].lobbyType : '';\n }\n }\n }\n return overlayLobbyType;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiOptions, Page } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { PlatformBingoApiService } from '../platform-api/platform-bingo-api.service';\nimport { CasinoWidgetService } from './casino-widget.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoApiService {\n constructor(\n private casinoWidgetService: CasinoWidgetService,\n private apiService: PlatformApiService,\n private apiBingoService: PlatformBingoApiService,\n private configProviderService: ConfigProviderService,\n private page: Page,\n ) {}\n // NFR - Services optimization - Remove\n request(url: string, options?: any): Observable {\n return this.apiService.request(url, options);\n }\n\n get(url: string, params?: any, options?: any): Observable {\n const requestParams = this.casinoWidgetService.getApiParams(params);\n return this.apiService.get(url, requestParams, options);\n }\n\n post(url: string, data?: any, options?: any): Observable {\n return this.apiService.post(url, data, options);\n }\n /**\n * @getCasinoProductApi is also used by other products like bingo, lottery. In that case we need to send x-bwin-casino-api in headers.\n * @param url relative url\n * @param params optional\n * @param options optional *\n */\n getCasinoProductApi(url: string, params?: any, options?: ApiOptions): Observable {\n const requestParams = params ? this.casinoWidgetService.getApiParams(params) : null;\n if (!options) options = { headers: {} };\n options.headers!['x-bwin-casino-api'] = this.page.environment;\n options.withCredentials = true;\n return this.apiService.get(url, requestParams, options);\n }\n\n getBingoApi(url: string, params?: any, options?: any): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const requestParams = this.casinoWidgetService.getApiParams(params);\n // remove newApiStrucute check when new bingo api structure is ready and rolled out.\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled')\n return this.apiBingoService.get(url, requestParams, options);\n else return this.apiService.get(url, requestParams, options);\n }\n\n postBingoApi(url: string, data?: any, options?: any): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n // remove newApiStrucute check when new bingo api structure is ready and rolled out.\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled')\n return this.apiBingoService.post(url, data, options);\n else return this.apiService.post(url, data, options);\n }\n\n // NFR - Services optimization - Remove\n put(url: string, data?: any, options?: any): Observable {\n return this.apiService.put(url, data, options);\n }\n // NFR - Services optimization - Remove\n delete(url: string, params?: any, options?: any): Observable {\n return this.apiService.delete(url, params, options);\n }\n // NFR - Services optimization - Remove\n jsonp(url: string, callbackParam: string): Observable {\n return this.apiService.jsonp(url, callbackParam);\n }\n}\nexport const headerValue = '';\n","import { Injectable } from '@angular/core';\n\nimport { Logger, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\nimport { CasinoApiService } from './casino-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CozyBingoDataService {\n private cozyBingoRoomsData = new BehaviorSubject(null);\n cozyBingoRoomsDataObservable: Observable = this.cozyBingoRoomsData.asObservable();\n private cozyBingoRecentGamesData = new BehaviorSubject(null);\n cozyBingoRecentGamesObservable: Observable = this.cozyBingoRecentGamesData.asObservable();\n cozyBingoRoomsMap: Map = new Map();\n cozyBingofavourites: any = [];\n sitecoreResponseRooms: any;\n sitecoreResponseRoomnames: any;\n featuresConfiguration: any;\n globalMessages: any;\n categoryList: any;\n bingoConfiguration: any;\n schedulePolling: any;\n cozyBingoRecentGames: any = [];\n constructor(\n private casinoApiService: CasinoApiService,\n private urlUtilityService: UrlUtilityService,\n private configProviderService: ConfigProviderService,\n private apiPathsHelperService: ApiPathsHelperService,\n private logger: Logger,\n private user: UserService,\n ) {}\n\n getBingoData(fetchBingoRoomsSitecoreData: boolean, fetchRecentlyPlayed: boolean) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n let endPoint = this.apiPathsHelperService.transformApi(apiPathsConfig.bingo['bgExternalBingo'], this.urlUtilityService.getBingoApiBaseUrl());\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n // Remove this once bingo moved to new api structure\n endPoint = apiPathsConfig.bingo['bgExternalBingo'];\n }\n this.casinoApiService\n .getBingoApi(\n endPoint,\n { fetchBingoRoomsSitecoreData: fetchBingoRoomsSitecoreData, fetchRecentlyPlayed: fetchRecentlyPlayed },\n { withCredentials: true },\n )\n .subscribe(\n (response) => {\n if (response) {\n if (fetchBingoRoomsSitecoreData) {\n this.sitecoreResponseRooms = response['bingoRoomsSitecoreResponse']['rooms'];\n this.sitecoreResponseRoomnames = response['bingoRoomsSitecoreResponse']['roomNames'];\n this.featuresConfiguration = response['dynaconConfigurations']['featuresConfiguration'];\n this.globalMessages = response['dynaconConfigurations']['globalMessages'];\n this.categoryList = response['dynaconConfigurations']['categoryList'];\n this.bingoConfiguration = response['dynaconConfigurations']['bingoConfiguration'];\n }\n if (response.scheduleData?.result?.games_list) {\n this.roomDataMap(\n response['scheduleData']['result']['games_list'],\n this.sitecoreResponseRooms,\n this.sitecoreResponseRoomnames,\n );\n }\n const cozybingoConfig: any = this.configProviderService.provideCozyBingoConfig();\n if (cozybingoConfig.cozyBingoFavouritesInRpwidget) {\n this.cozyBingofavourites = response['scheduleData']['result']['favouriteRooms'];\n }\n if (cozybingoConfig.cozyBingoRecentGamesInRpwidget && response['recentGamesData']) {\n this.cozyBingoRecentGames = response['recentGamesData']['result']['rooms'];\n //Send recently played games to Global Search\n this.raiseEventForRecentlyPlayed(this.cozyBingoRecentGames);\n }\n if (this.cozyBingoRoomsMap) {\n this.cozyBingoRoomsData.next(this.cozyBingoRoomsMap);\n }\n }\n },\n (error) => {\n this.logger.error('unable to retrieve data from bgExternalBingo API : ' + error);\n },\n );\n }\n\n // Method to send Recent Games to Global Search\n private raiseEventForRecentlyPlayed(recentGamesObject: any): void {\n const recentgames: any = {};\n recentgames['cozybingo'] = recentGamesObject;\n const globalsearchconfig: any = this.configProviderService.provideGlobalSearchConfig();\n if (globalsearchconfig.isEnabled && recentGamesObject.length > 0) {\n this.cozyBingoRecentGamesData.next(recentgames);\n }\n }\n\n roomDataMap(rooms: any, sitecorerooms: any, sitecoreroomnames: any) {\n if (this.schedulePolling) clearInterval(this.schedulePolling);\n if (rooms && sitecorerooms) {\n let defaultRoomSitecoreInfo: any = sitecorerooms.filter((item: any) => item.roomId == 'default');\n if (defaultRoomSitecoreInfo) {\n defaultRoomSitecoreInfo = defaultRoomSitecoreInfo[0];\n }\n rooms &&\n rooms.forEach((room: any) => {\n let roomSitecoreInfo = sitecorerooms.filter((sitecoreroom: any) => sitecoreroom.roomId == room.id);\n\n if (roomSitecoreInfo && roomSitecoreInfo.length > 0) {\n roomSitecoreInfo = roomSitecoreInfo[0];\n if (!roomSitecoreInfo.desktopImage) {\n roomSitecoreInfo.desktopImage = defaultRoomSitecoreInfo.desktopImage;\n }\n } else {\n roomSitecoreInfo = defaultRoomSitecoreInfo;\n }\n const cozybingoConfig: any = this.configProviderService.provideCozyBingoConfig();\n if (cozybingoConfig.enableWidgetImageForBingoGame) {\n roomSitecoreInfo.desktopImage = roomSitecoreInfo?.widgetImage\n ? roomSitecoreInfo.widgetImage\n : defaultRoomSitecoreInfo.widgetImage;\n }\n if (sitecoreroomnames && roomSitecoreInfo && sitecoreroomnames[roomSitecoreInfo.roomId]) {\n roomSitecoreInfo.titleFromRoomNames = sitecoreroomnames[roomSitecoreInfo.roomId];\n }\n room.sitecoreInfo = roomSitecoreInfo;\n if (room.sitecoreInfo.roomId !== 'default' && room.sitecoreInfo.titleFromRoomNames) {\n room.name = room.sitecoreInfo.titleFromRoomNames;\n }\n this.cozyBingoRoomsMap.set(room.id, room);\n });\n }\n }\n getRoomdatabyId(roomid: any) {\n return this.cozyBingoRoomsMap.get(roomid);\n }\n getcozybingofavourites() {\n let cozyFavs: any = [];\n if (this.cozyBingoRoomsMap && this.cozyBingoRoomsMap.size > 0 && this.cozyBingofavourites && this.cozyBingofavourites.length > 0) {\n cozyFavs = this.cozyBingofavourites.filter((item: any) => this.cozyBingoRoomsMap.has(item));\n if (cozyFavs && cozyFavs.length > 0) {\n return cozyFavs;\n }\n }\n return cozyFavs;\n }\n checkForFavouriteGame(game: any): boolean {\n if (this.user.isAuthenticated && game?.fromCasino != undefined && game?.fromCasino && this.cozyBingofavourites.length > 0) {\n return this.cozyBingofavourites.indexOf(game.gameId) > -1;\n }\n return false;\n }\n getcozybingorecentgames() {\n let cozyrpgames: any = [];\n if (this.cozyBingoRoomsMap && this.cozyBingoRoomsMap.size > 0 && this.cozyBingoRecentGames && this.cozyBingoRecentGames.length > 0) {\n cozyrpgames = this.cozyBingoRecentGames.filter((item: any) => this.cozyBingoRoomsMap.has(item));\n if (cozyrpgames && cozyrpgames.length > 0) {\n return cozyrpgames;\n }\n }\n return cozyrpgames;\n }\n\n getFeatureConfigs() {\n return this.featuresConfiguration;\n }\n getGlobalMessages() {\n return this.globalMessages;\n }\n getcategoryList() {\n return this.categoryList;\n }\n getbingoConfiguration() {\n return this.bingoConfiguration;\n }\n // NFR - Services optimization - Remove\n ReloadFeed(gameData: any) {\n let timeOut = 0;\n const curentTime = new Date().getTime();\n if (gameData && gameData.length != 0) {\n const games = gameData.filter((g: any) => {\n return (\n this.cozyBingofavourites &&\n this.cozyBingofavourites.indexOf(g.id) > -1 &&\n g.status.state_end_time != null &&\n new Date(g.status.state_end_time * 1000).getTime() > curentTime\n );\n });\n const f_game = Math.min.apply(\n Math,\n games.map((g: any) => {\n return g.status.state_end_time;\n }),\n );\n if (f_game) timeOut = Math.max(0, new Date(f_game * 1000).getTime() - curentTime);\n }\n if (this.bingoConfiguration && this.bingoConfiguration['schedulePagePolling']) {\n if (timeOut > this.bingoConfiguration['scheduleLobbyRefreshTimeFrame'] || timeOut == 0)\n timeOut = this.bingoConfiguration['scheduleLobbyRefreshTimeFrame'];\n }\n if (timeOut > 0)\n this.schedulePolling = setTimeout(() => {\n this.getBingoData(false, false);\n }, timeOut);\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { CookieService, MessageLifetime, MessageQueueService, MessageType, NavigationService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { EventDataKeys, EventNames } from '../tracking/vanilla-tracking-adapter.model';\nimport { VanillaTrackingAdapter } from '../tracking/vanilla-tracking-adapter.service';\nimport { BingoFavouriteService } from './bingo-favorite-service';\nimport { CasinoIFrameOverlayService } from './casino-iframe-overlay.service';\nimport { CasinoWidgetService } from './casino-widget.service';\nimport { CozyBingoDataService } from './cozybingodata.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FavouriteService {\n favouriteGames: string[] = [];\n otherProductFavouriteGames: string[] = [];\n private favouriteGamesSubject = new BehaviorSubject(null);\n favouriteGamesFeedObservable: Observable = this.favouriteGamesSubject.asObservable();\n private otherProductFavouriteGamesSubject = new BehaviorSubject(null);\n private bingoProductFavouriteGamesSubject = new BehaviorSubject(null);\n otherProductFavouriteGamesFeedObservable: Observable = this.otherProductFavouriteGamesSubject.asObservable();\n bingoProductFavouriteGamesFeedObservable: Observable = this.bingoProductFavouriteGamesSubject.asObservable();\n private quickInfoPublisher = new BehaviorSubject(false);\n quickIconObservable: Observable = this.quickInfoPublisher.asObservable();\n\n vanillaTrackingAdapter = inject(VanillaTrackingAdapter);\n\n constructor(\n private api: PlatformApiService,\n private user: UserService,\n private messageQueueService: MessageQueueService,\n private navigator: NavigationService,\n private casinoWidgetService: CasinoWidgetService,\n private configProviderService: ConfigProviderService,\n private cookie: CookieService,\n private bingoFavouriteService: BingoFavouriteService,\n private cozyBingoService: CozyBingoDataService,\n private casinoIFrameOverlayService: CasinoIFrameOverlayService,\n ) {\n window.addEventListener('cc:casinocore_AB_fav_game', (event) => {\n if (event) {\n this.setFavouriteGames();\n }\n });\n }\n\n setFavouriteGames() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const isOverlay: boolean = this.casinoIFrameOverlayService.getOverlayStatus();\n this.api.get(apiPathsConfig.nonCriticalFeeds['favGames'], { isOverlay: isOverlay }, { withCredentials: true }).subscribe(\n (response: any) => {\n this.favouriteGames = response;\n this.favouriteGamesSubject.next(this.favouriteGames);\n if (this.cookie.getObject('favouriteGame')) {\n const gameToBeFavorited = this.cookie.getObject('favouriteGame');\n this.toggleGameFavourite({ ...gameToBeFavorited }, true);\n this.cookie.remove('favouriteGame');\n }\n },\n () => {\n this.favouriteGamesSubject.next(this.favouriteGames);\n },\n );\n }\n\n getFavouriteGames() {\n if (this.favouriteGames && this.favouriteGames.length > 0) {\n return this.favouriteGames;\n }\n return [];\n }\n // NFR - Services optimization - Remove\n updateOtherProductFavouriteGames(isFavourite: boolean, gameId: string) {\n if (isFavourite) {\n this.otherProductFavouriteGames.push(gameId);\n } else if (this.otherProductFavouriteGames) {\n this.otherProductFavouriteGames.splice(this.otherProductFavouriteGames.indexOf(gameId), 1);\n }\n this.otherProductFavouriteGamesSubject.next(this.otherProductFavouriteGames);\n this.publishingFavObervable(isFavourite, gameId);\n }\n\n publishingFavObervable(isFavourite: boolean, gameId: string) {\n let bingoFavData: any;\n bingoFavData = {\n isFavourite: isFavourite,\n gameName: gameId,\n };\n this.bingoProductFavouriteGamesSubject.next(bingoFavData);\n }\n\n trackFavourite(gameInteraction: string, game: any) {\n this.vanillaTrackingAdapter.trigger({\n name: EventNames.GameInteraction,\n data: {\n [EventDataKeys.ComponentGameInteraction]: gameInteraction,\n [EventDataKeys.ComponentGameSection]: game.shouldTrackSection ? game.gameSection : undefined,\n },\n });\n }\n\n fetchGames(gameToBeFavorited?: any, preLoginFavourite: boolean = false, isFromEgv: boolean = false) {\n const global = this.configProviderService.provideGlobalConfig();\n if (preLoginFavourite && gameToBeFavorited && this.checkForFavouriteGame(gameToBeFavorited)) {\n this.trackFavourite(EventDataKeys.RemoveGameFavourite, gameToBeFavorited);\n return;\n }\n if (this.user.isAuthenticated) {\n const gameVariantName = gameToBeFavorited.gameId;\n const isFavourite = !this.checkForFavouriteGame(gameToBeFavorited);\n if (gameToBeFavorited.fromCasino != undefined && !gameToBeFavorited.fromCasino) {\n if (gameToBeFavorited.isFavourite) {\n this.bingoFavouriteService.removeFavourite(gameToBeFavorited.gameId, this.user.id || '').subscribe(\n (response: any) => {\n if (response.result) {\n this.cozyBingoService.getBingoData(false, false);\n this.publishingFavObervable(false, gameToBeFavorited.gameId);\n if (this.casinoWidgetService.isCasinoWidget() || gameToBeFavorited.fromCozybingo) {\n const contactUsParam = {\n categoryid: 'rcp-widget',\n roomid: gameToBeFavorited.gameId,\n isFavourite: false,\n };\n this.casinoWidgetService.postMessageToParent('favupdated', contactUsParam);\n }\n }\n },\n () => {},\n );\n } else {\n this.bingoFavouriteService.addFavourite(gameToBeFavorited.gameId, this.user.id || '').subscribe(\n (response: any) => {\n if (response.result) {\n this.cozyBingoService.getBingoData(false, false);\n this.publishingFavObervable(true, gameToBeFavorited.gameId);\n if (this.casinoWidgetService.isCasinoWidget() || gameToBeFavorited.fromCozybingo) {\n const contactUsParam = {\n categoryid: 'rcp-widget',\n roomid: gameToBeFavorited.gameId,\n isFavourite: true,\n };\n this.casinoWidgetService.postMessageToParent('favupdated', contactUsParam);\n }\n }\n },\n () => {},\n );\n }\n } else {\n const requestBody = { gameVariantName, isFavourite };\n this.api.put('update-favourite-games', requestBody, { withCredentials: true, showSpinner: false }).subscribe(\n (response: any) => {\n if (response) {\n if (response && response.errorcode === 0) {\n this.favouriteGames = response.favourites;\n const arr = response.favourites;\n this.raiseFavEvent(gameToBeFavorited);\n this.favouriteGamesSubject.next(this.favouriteGames);\n if (arr && arr.indexOf(gameToBeFavorited.gameId) > -1 && !isFromEgv) {\n this.trackFavourite(EventDataKeys.AddGameFavorites, gameToBeFavorited);\n } else if (!isFromEgv) {\n this.trackFavourite(EventDataKeys.RemoveGameFavourite, gameToBeFavorited);\n }\n }\n }\n },\n (response) => {\n if (response && response.redirect) {\n const message = this.messageQueueService.addError('SessionExpired');\n if (message) {\n this.messageQueueService.remove(message);\n }\n if (global?.messages['SessionExpired']) {\n this.messageQueueService.add(global.messages['SessionExpired'], MessageType.Information, MessageLifetime.TempData);\n }\n this.navigator.goTo(response.redirect, { forceReload: true });\n }\n },\n );\n }\n }\n }\n\n removeQuickInfoClass() {\n this.quickInfoPublisher.next(true);\n }\n toggleGameFavourite(gameToBeFavorited: any, preLoginFavourite: boolean = false, isFromEgv: boolean = false) {\n this.fetchGames(gameToBeFavorited, preLoginFavourite, isFromEgv);\n }\n\n checkForFavouriteGame(game: any): boolean {\n if (this.user.isAuthenticated && game != undefined) {\n if (game.fromCasino != undefined && !game.fromCasino && this.otherProductFavouriteGames && !game.fromCozybingo) {\n return this.otherProductFavouriteGames.indexOf(game.gameId) > -1;\n } else if (game.fromCozybingo) {\n return game.isFavourite;\n } else if (this.favouriteGames) {\n return this.favouriteGames && this.favouriteGames.indexOf(game.gameId) > -1;\n }\n }\n return false;\n }\n\n raiseFavEvent(game: any) {\n const isFavourite = this.checkForFavouriteGame(game);\n const favEvent = {\n gameId: game.gameId,\n isFavourite: isFavourite,\n };\n const evt = new CustomEvent('cc:casinocore_fav_game', { detail: favEvent });\n window.dispatchEvent(evt);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoCoreGameLaunchFactoryService {\n gameLaunchService: any;\n gameService: any;\n constructor() {}\n setGameLaunchService(gameLaunchService: any): void {\n this.gameLaunchService = gameLaunchService;\n }\n\n getGameLaunchService(): any {\n return this.gameLaunchService;\n }\n // NFR - Services optimization - Remove\n setGameService(gameService: any): void {\n this.gameService = gameService;\n }\n\n getGameService(): any {\n return this.gameService;\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\n\nimport { Logger, TimerService, WebWorkerService, WorkerType } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\nimport { CasinoApiService } from './casino-api.service';\nimport { InvokerProductService } from './invoker-product.service';\n\nconst JACKPOT_MAP_BROADCAST_EVENT = 'cs-jackpot-map-broadcast';\nconst JACKPOT_VALUE_QUERY_EVENT = 'cs-jackpot-value-query';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JackpotDataService {\n private jackpotSubject = new BehaviorSubject(null);\n private jpTickingSubject = new BehaviorSubject(null);\n private jackpotSortGames = new BehaviorSubject(null);\n private jackpotTilesSubject = new BehaviorSubject(null);\n jpSortGamesObservable: Observable = this.jackpotSortGames.asObservable();\n private multiJackpotWidgetCarouselSubject = new BehaviorSubject(false);\n jackpotFeedObservable: Observable = this.jackpotSubject.asObservable();\n jackpotTilesFeedObservable: Observable = this.jackpotTilesSubject.asObservable();\n multiJackpotWidgetCarouselChangedObservable: Observable = this.multiJackpotWidgetCarouselSubject.asObservable();\n jpTickingObservable: Observable = this.jpTickingSubject.asObservable();\n jackpotsCache: any;\n gameJackpotMap: Map = new Map();\n jackpotGroupNameMap: Map = new Map();\n fetchJackpotPromise: any;\n listenersCnt = 0;\n tickingInterval: any;\n sortInterval: any;\n incrementTickingForJackpotOnGameTiles: any = 1;\n overlayLobbyType: any;\n jackpotValue: any;\n sortGames: any;\n enableJpGroupTicking: boolean;\n currentLobbyType: any;\n constructor(\n private api: PlatformApiService,\n private casinoApiService: CasinoApiService,\n private configProviderService: ConfigProviderService,\n private timerService: TimerService,\n private apiPathsHelperService: ApiPathsHelperService,\n private invokerProductService: InvokerProductService,\n private logger: Logger,\n private ngZone: NgZone,\n private webWorkerService: WebWorkerService,\n private urlUtilityService: UrlUtilityService,\n ) {\n addEventListener(JACKPOT_VALUE_QUERY_EVENT, this.queryJackpotValueHandler);\n }\n\n fetchJackpot() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.jackpots['jpDataOfProduct'],\n this.invokerProductService.getInvokerProduct(),\n );\n\n this.casinoApiService.getCasinoProductApi(endPoint).subscribe(\n (response: any) => {\n this.jackpotsCache = response;\n this.setJackpots(response);\n },\n () => {\n this.logger.error('Unable to retrieve data from jpDataOfProduct API');\n },\n );\n }\n\n fetchJackpotTiles() {\n const jackpotConfig = this.configProviderService.provideJackpotConfig();\n if (jackpotConfig.enableJackpotTile) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.jackpotTiles['jpDataOfProduct'],\n this.invokerProductService.getInvokerProduct(),\n );\n this.casinoApiService.get(endPoint).subscribe(\n (response: any) => {\n this.jackpotTilesSubject.next(response);\n },\n () => {\n this.logger.error('Unable to retrieve data from jpDataOfProduct API');\n },\n );\n }\n }\n\n startFeed() {\n const JackpotData = this.configProviderService.provideJackpotConfig();\n const feedCacheConfig = this.configProviderService.provideFeedCacheConfig();\n if (feedCacheConfig.enableJackpotFeed) {\n this.listenersCnt++;\n if (!this.fetchJackpotPromise) {\n this.fetchJackpot();\n this.fetchJackpotTiles();\n\n if (JackpotData.enableTickingForJackpotOnGameTiles) {\n this.setJackpotTickers();\n }\n this.webWorkerService.createWorker(WorkerType.SelfExclusionPollInterval, { interval: JackpotData.jpInterval }, () => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.fetchJackpot();\n this.fetchJackpotTiles();\n if (JackpotData.enableTickingForJackpotOnGameTiles) {\n this.setJackpotTickers();\n }\n });\n }\n }\n }\n\n setJackpots(jackpotFeed: any) {\n if (jackpotFeed) {\n Object.keys(jackpotFeed).forEach((jackpotKey: string) => {\n if (jackpotFeed[jackpotKey]?.jackpotGroupName) {\n this.jackpotGroupNameMap?.set(jackpotFeed[jackpotKey].jackpotGroupName?.toLowerCase(), jackpotFeed[jackpotKey]);\n }\n if (jackpotFeed[jackpotKey] && jackpotFeed[jackpotKey].gamesList && jackpotFeed[jackpotKey].gamesList.length > 0) {\n jackpotFeed[jackpotKey].gamesList.forEach((gameId: string) => {\n const jackpotObject: any = {\n amount: jackpotFeed[jackpotKey].amount,\n isHotJackpotGroup: jackpotFeed[jackpotKey].isHotJackpotGroup,\n jackpotName: jackpotKey,\n jackpotAttributes: jackpotFeed[jackpotKey].attributes,\n globalJackpotAttributes: jackpotFeed[jackpotKey].globalJackpotAttributes,\n };\n this.gameJackpotMap.set(gameId, jackpotObject);\n });\n }\n });\n }\n dispatchEvent(\n new CustomEvent(JACKPOT_MAP_BROADCAST_EVENT, {\n detail: this.gameJackpotMap,\n }),\n );\n this.jackpotSubject.next(this.gameJackpotMap);\n this.incrementJackpotValues();\n }\n // NFR - Services optimization - Remove\n changeActiveMultiJackpotWidget(isChanged: boolean) {\n this.multiJackpotWidgetCarouselSubject.next(isChanged);\n }\n\n getJackpotData() {\n return this.jackpotsCache;\n }\n private get globalMessages(): any {\n return this.configProviderService.provideGlobalConfig()?.messages;\n }\n\n get jpRibbonBgColor(): string {\n return this.globalMessages?.JackpotRibbonBgColor;\n }\n\n get jpRibbonTextColor(): string {\n return this.globalMessages?.JackpotRibbonTextColor;\n }\n\n getJackpotRibbonStyles(jackpotValue: any): { jpBgColor: string; jpTextColor: string } {\n let jpRibbonBgClr: string = '';\n let jpRibbonTextClr: string = '';\n if (jackpotValue && this.jpRibbonBgColor && this.jpRibbonTextColor) {\n jpRibbonBgClr = this.jpRibbonBgColor;\n jpRibbonTextClr = this.jpRibbonTextColor;\n }\n if (jackpotValue?.jackpotAttributes?.JackpotRibbonBgColor && jackpotValue?.jackpotAttributes?.JackpotRibbonTextColor) {\n jpRibbonBgClr = jackpotValue?.jackpotAttributes?.JackpotRibbonBgColor;\n jpRibbonTextClr = jackpotValue?.jackpotAttributes?.JackpotRibbonTextColor;\n }\n if (jackpotValue?.globalJackpotAttributes) {\n jpRibbonBgClr = jackpotValue?.globalJackpotAttributes?.JackpotRibbonBgColor;\n jpRibbonTextClr = jackpotValue?.globalJackpotAttributes?.JackpotRibbonTextColor;\n }\n return { jpBgColor: jpRibbonBgClr, jpTextColor: jpRibbonTextClr };\n }\n\n getJackpotGroupNameMap() {\n return this.jackpotGroupNameMap;\n }\n\n getJackpotByGroupName(groupName: string): any {\n if (this.jackpotGroupNameMap && this.jackpotGroupNameMap.size > 0) {\n return this.jackpotGroupNameMap.get(groupName);\n }\n return null;\n }\n\n getGameJackpotValue(gameId: string) {\n return this.gameJackpotMap.get(gameId);\n }\n\n stopFeed() {\n this.listenersCnt--;\n if (this.listenersCnt === 0 && this.fetchJackpotPromise) {\n // this.timerService.clearInterval(this.fetchJackpotPromise);\n this.webWorkerService.removeWorker(WorkerType.SelfExclusionPollInterval);\n this.fetchJackpotPromise = undefined;\n this.jackpotsCache = undefined;\n this.gameJackpotMap = new Map();\n }\n }\n\n setJackpotTickers() {\n clearInterval(this.tickingInterval);\n this.tickingInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.incrementJackpotValues();\n }, 1500);\n }\n\n formatcurrency(value: any) {\n const inputarr = value.toString().split('.');\n const realpart = inputarr[0];\n const decimalpart = inputarr[1];\n let amt = '';\n for (let i = realpart.length; i > 0; i = i - 3) {\n if (i - 3 > 0) {\n amt = ',' + realpart.substring(i - 3, i) + amt;\n } else {\n amt = realpart.substring(0, i) + amt;\n }\n }\n return amt + '.' + decimalpart;\n }\n\n incrementJackpotValues() {\n const globalClientConfig = this.configProviderService.provideGlobalConfig();\n const JackpotData = this.configProviderService.provideJackpotConfig();\n\n this.gameJackpotMap.forEach((value, key) => {\n let currency: any = '';\n let valueStr = value.amount;\n valueStr = valueStr.replace(/\\ /g, '');\n const initialcurrency = valueStr.match(/[^\\d\\.\\,\\s]/g);\n if (initialcurrency && initialcurrency.length > 0) {\n for (let i = 0; i < initialcurrency.length; i++) {\n currency = currency + initialcurrency[i];\n }\n currency = currency.replace(/\\,/g, '');\n currency = currency.replace(/\\./g, '');\n }\n valueStr = valueStr.replace(/\\ /g, '');\n valueStr = valueStr.replace(/\\,/g, '');\n valueStr = valueStr.replace(/\\./g, '');\n valueStr = valueStr.replace(currency, '');\n valueStr = valueStr.replace(/\\s/g, '');\n valueStr = valueStr.match(/\\b[\\d, ]+\\b/g)[0];\n if (valueStr.length > 2) {\n const realpart = valueStr.slice(0, valueStr.length - 2);\n const decimalpart = valueStr.slice(-2);\n valueStr = realpart + '.' + decimalpart;\n }\n\n let jackpotTickValue: any = parseFloat(valueStr.replace(/,/g, ''));\n if (globalClientConfig.lobbyConfigurations.IncrementTickingForJackpotOnGameTiles) {\n this.incrementTickingForJackpotOnGameTiles = +globalClientConfig.lobbyConfigurations.IncrementTickingForJackpotOnGameTiles;\n }\n jackpotTickValue = jackpotTickValue + this.incrementTickingForJackpotOnGameTiles * 0.01;\n\n jackpotTickValue = this.formatcurrency(jackpotTickValue.toFixed(2));\n if (JackpotData && JackpotData.showJackpotCurrencyOnRight) {\n jackpotTickValue = jackpotTickValue.replace(/[,.]/g, (m: any) => (m === ',' ? '.' : ','));\n value.amount = jackpotTickValue + ' ' + currency + '.';\n } else {\n value.amount = currency + ' ' + jackpotTickValue;\n }\n\n this.gameJackpotMap.set(key, value);\n });\n\n this.ngZone.run(() => {\n // observable fire\n this.jpTickingSubject.next(this.gameJackpotMap);\n });\n }\n currencyFormat(value: any) {\n const JackpotData = this.configProviderService.provideJackpotConfig();\n let currency: any = '';\n let valueStr = value;\n valueStr = valueStr.replace(/\\ /g, '');\n const initialcurrency = valueStr.match(/[^\\d\\.\\,\\s]/g);\n if (initialcurrency && initialcurrency.length > 0) {\n for (let i = 0; i < initialcurrency.length; i++) {\n currency = currency + initialcurrency[i];\n }\n currency = currency.replace(/\\,/g, '');\n currency = currency.replace(/\\./g, '');\n }\n valueStr = valueStr.replace(/\\ /g, '');\n valueStr = valueStr.replace(/\\,/g, '');\n valueStr = valueStr.replace(/\\./g, '');\n valueStr = valueStr.replace(currency, '');\n valueStr = valueStr.replace(/\\s/g, '');\n valueStr = valueStr.match(/\\b[\\d, ]+\\b/g)[0];\n if (valueStr.length > 2) {\n const realpart = valueStr.slice(0, valueStr.length - 2);\n const decimalpart = valueStr.slice(-2);\n valueStr = realpart + '.' + decimalpart;\n }\n let jackpotTickValue: any = parseFloat(valueStr.replace(/,/g, ''));\n jackpotTickValue = this.formatcurrency(jackpotTickValue.toFixed(2));\n if (JackpotData && JackpotData.showJackpotCurrencyOnRight) {\n jackpotTickValue = jackpotTickValue.replace(/[,.]/g, (m: any) => (m === ',' ? '.' : ','));\n this.jackpotValue = jackpotTickValue + ' ' + currency + '.';\n } else {\n this.jackpotValue = currency + ' ' + jackpotTickValue;\n }\n return this.jackpotValue;\n }\n\n fetchJackpotSortGames(): void {\n this.api.get('jackpot/GetJackpotGamesSort').subscribe((response: any) => {\n this.jackpotSortGames.next(response);\n this.sortgamesInterval(response.nextUpdateTime);\n });\n }\n sortgamesInterval(sortDataNextTime: any) {\n let resultTime: number = 0;\n const jackpotDataConfig = this.configProviderService.provideJackpotConfig();\n const nextUpdateTime = sortDataNextTime - Math.floor(Date.now());\n if (nextUpdateTime > 0 && nextUpdateTime < jackpotDataConfig?.jackpotGamesSortingTime) {\n resultTime = nextUpdateTime;\n } else {\n resultTime = jackpotDataConfig?.jackpotGamesSortingTime;\n }\n\n if (this.sortInterval) {\n clearInterval(this.sortInterval);\n }\n this.sortInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.fetchJackpotSortGames();\n }, resultTime);\n }\n /// filter Jackport group games\n filterJpGroup(jackpotGroups: any, gpGroupName: any) {\n const gamesList = jackpotGroups.filter((sortData: any) => sortData.jackpotGroupName == gpGroupName);\n if (gamesList && gamesList[0]?.gamesAvailable) return gamesList[0]?.gamesAvailable;\n }\n // filter sort games and un sort games\n filterGames(sortGamesList: any, gamesList: any) {\n const sortGames: any = [];\n sortGamesList.forEach((sgame: any) => {\n gamesList.forEach((game: any) => {\n if (sgame.game == game.gameId) {\n sortGames.push(game);\n }\n });\n });\n const unSortGames: any = gamesList.filter(({ gameId: id1 }: any) => !sortGames.some(({ gameId: id2 }: any) => id2 === id1));\n const sortList = sortGames.concat(unSortGames);\n return sortList;\n }\n //sort feature grid Array games and rowspan and calspan in single jackpot\n newFeaturegridArray(gamesList: any) {\n const featureGrid: any = [];\n gamesList.forEach((game: any) => {\n featureGrid.push({\n games: [game],\n maxRowSpan: game.rowSpan,\n maxColSpan: game.colSpan,\n });\n });\n return featureGrid;\n }\n\n private queryJackpotValueHandler(ev: CustomEventInit): JackpotData {\n const gameId = ev.detail?.gameId ?? '';\n if (ev.detail) {\n return {\n ...ev.detail.value,\n amount: this.gameJackpotMap?.get(gameId)?.amount ?? '',\n isHotJackpotGroup: this.gameJackpotMap?.get(gameId)?.isHotJackpotGroup ?? false,\n };\n }\n return { gameId: 'ivybookofhorus', value: { amount: '', isHotJackpotGroup: false } };\n }\n}\ninterface JackpotData {\n gameId: string;\n value: { amount: string; isHotJackpotGroup: boolean };\n}\n","// Making the module version consumable via require - to prohibit\n// multiple occurrancies of the same module in the same app\n// (dual package hazard, https://nodejs.org/api/packages.html#dual-package-hazard)\nimport _Dexie from \"./dist/dexie.js\";\nconst DexieSymbol = Symbol.for(\"Dexie\");\nconst Dexie = globalThis[DexieSymbol] || (globalThis[DexieSymbol] = _Dexie);\nif (_Dexie.semVer !== Dexie.semVer) {\n throw new Error(`Two different versions of Dexie loaded in the same app: ${_Dexie.semVer} and ${Dexie.semVer}`);\n}\nconst {\n liveQuery,\n mergeRanges,\n rangesOverlap,\n RangeSet,\n cmp,\n Entity,\n PropModSymbol,\n PropModification,\n replacePrefix,\n add,\n remove\n} = Dexie;\nexport { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Dexie, Entity, PropModSymbol, PropModification, replacePrefix, add, remove };\nexport default Dexie;","import { ICacheItem } from '../shared/localstorage.expirable.persistence.service';\n\nexport const IDB_NAME = 'casino';\n\nexport interface IIndexedDBCacheItem extends ICacheItem {\n cacheKey: string;\n}\n\nexport interface ITableSchema {\n name: string;\n schema: string;\n}\n\nexport const DBTableSchemas: ITableSchema[] = [\n {\n name: 'LobbyFeed',\n schema: 'cacheKey',\n },\n];\n","import { Injectable } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport Dexie from 'dexie';\n\nimport { DBTableSchemas, IDB_NAME } from './indexed-db.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IndexedDBService extends Dexie {\n versionNumber: number = 1;\n\n constructor(private logger: Logger) {\n super(IDB_NAME);\n this.setupIndexedDB();\n }\n\n private async setupIndexedDB(): Promise {\n this.setIndexedDbTable();\n if (this.isOpen()) return;\n try {\n await this.open();\n this.logger.info('IndexedDB Connected');\n } catch (err) {\n this.logger.error(`Failed to connect ${IDB_NAME} indexedDB, Error: ${err.message}`);\n }\n }\n\n private setIndexedDbTable(): void {\n this.version(this.versionNumber).stores(this.setTablesSchema());\n }\n\n private setTablesSchema(): Record {\n return DBTableSchemas.reduce((tables: Record, { name, schema }) => {\n tables[name] = schema;\n return tables;\n }, {});\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport Dexie, { Table } from 'dexie';\n\nimport { LobbyItemBaseModel } from '../casino-lobby-manager/lobby-details-model/lobby-item.model';\nimport { ICacheItem } from '../shared/localstorage.expirable.persistence.service';\nimport { DBTableSchemas, IIndexedDBCacheItem } from './indexed-db.model';\nimport { IndexedDBService } from './indexed-db.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IndexedDBManager extends Dexie {\n lobbyFeed!: Table;\n\n indexedDBService = inject(IndexedDBService);\n logger = inject(Logger);\n\n getIndexedDbStore(): Table {\n // \"We'll take `DBTableSchemas` as an argument from the caller.\n // Currently, it supports one table, but handling multiple tables for IndexedDB will be addressed in the next task, when we have multiple tables schema ready\n return this.indexedDBService.table(DBTableSchemas[0].name);\n }\n\n async read(cacheKey: string, lmtExpirationTime: number): Promise {\n const cachedItem: ICacheItem | undefined = await this.getIndexedDbStore().get(cacheKey);\n\n if (cachedItem) {\n const cachedAt = cachedItem.createdAt;\n const resolveData = cachedAt && new Date().getTime() - cachedAt < lmtExpirationTime ? cachedItem.value : null;\n\n if (!resolveData) {\n await this.getIndexedDbStore().clear();\n }\n\n return resolveData;\n }\n\n return undefined;\n }\n\n write(key: string, cacheValue: any): void {\n if (key?.trim() && cacheValue) {\n const cachedItem: IIndexedDBCacheItem = { cacheKey: key.trim(), createdAt: new Date().getTime(), value: cacheValue };\n this.getIndexedDbStore()\n .put(cachedItem)\n .catch((err) => this.logger.error('Unable to add the lobby feed to IndexedDB, ', err));\n }\n }\n\n // for now we are adding `any` but there is an ongoing work to remove it and instead introduce proper data models through out the flow of LMTFEED Data\n}\n","import { Injectable } from '@angular/core';\n\nimport { LobbyItemBaseModel } from '../casino-lobby-manager/lobby-details-model/lobby-item.model';\n\nexport interface IExpirablePersistenceService {\n read(key: string, expirationInterval: number): LobbyItemBaseModel | null;\n write(key: string, cacheValue: any): void;\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalStorageExpirablePersistenceService implements IExpirablePersistenceService {\n //expirationInterval to be given in miliseconds.\n read(key: string, expirationInterval: number): LobbyItemBaseModel | null {\n if (key && key.trim()) {\n const cachedItem = localStorage.getItem(key.trim());\n const parsedCacheItem: ICacheItem = cachedItem && JSON.parse(cachedItem);\n if (parsedCacheItem) {\n const cachedAt = parsedCacheItem.createdAt;\n if (cachedAt && new Date().getTime() - cachedAt < expirationInterval) {\n return parsedCacheItem.value;\n }\n }\n }\n return null;\n }\n\n write(key: string, cacheValue: LobbyItemBaseModel): void {\n if (key && key.trim() && cacheValue) {\n const cachedItem: ICacheItem = { createdAt: new Date().getTime(), value: cacheValue };\n localStorage.setItem(key.trim(), JSON.stringify(cachedItem));\n }\n }\n}\nexport interface ICacheItem {\n readonly createdAt: number;\n readonly value: LobbyItemBaseModel | any;\n}\n\nexport class CacheItem implements ICacheItem {\n createdAt: number;\n value: LobbyItemBaseModel;\n}\n","export class GameDataFromCacheResponseModel {\n gameMetaData: Map = new Map();\n gamesNotInCache: string[] = [];\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Page, UserService } from '@frontend/vanilla/core';\n\nimport { LobbyItemBaseModel } from '../casino-lobby-manager/lobby-details-model/lobby-item.model';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { IndexedDBManager } from '../indexed-db/indexed-db-manager.service';\nimport { LobbyItem } from '../public-api';\nimport { CasinoCoreNpmParamsService } from './casino-core-npm-params.service';\nimport { CasinoWidgetService } from './casino-widget.service';\nimport { LocalStorageExpirablePersistenceService } from './localstorage.expirable.persistence.service';\nimport { GameDataFromCacheResponseModel } from './models/gameDataFromCacheResponse.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CacheManagerService {\n constructor(\n private localStorageExpirablePersistenceService: LocalStorageExpirablePersistenceService,\n private page: Page,\n private casinoWidgetService: CasinoWidgetService,\n private configProviderService: ConfigProviderService,\n private user: UserService,\n private casinoCoreNpmParamsService: CasinoCoreNpmParamsService,\n private indexedDBManager: IndexedDBManager,\n ) {}\n\n getCategoryCacheKey(lobbyType: string = '', invokerProduct: string = '') {\n let cachekey;\n let casinoConfig: any = this.configProviderService.provideCasinoConfig();\n if (this.user.isAuthenticated) {\n cachekey = 'categoryCoreLookUp_' + this.page.lang + '_' + lobbyType + '_' + this.user.username;\n } else {\n cachekey = 'categoryCoreLookUp_' + this.page.lang + '_' + lobbyType;\n }\n if (invokerProduct && invokerProduct != '') {\n cachekey += '_' + invokerProduct;\n } else if (this.casinoWidgetService.product) {\n cachekey += '_' + this.casinoWidgetService.product;\n } else {\n cachekey += '_' + casinoConfig.casinoContextValues.invokerProduct;\n }\n return cachekey;\n }\n\n async readCategoryDataLocalCache(\n expirationIntervalInSeconds: number,\n lobbyType: string = '',\n invokerProduct: string = '',\n ): Promise {\n let cachedCategoryData: LobbyItemBaseModel | any;\n let featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n let devSettingsConfig: any = this.configProviderService.provideDevSettingsConfig();\n let isPreviewUser = lobbyType === 'globalBonusJackpots' ? true : devSettingsConfig.isPreviewUser;\n if (this.isIndexedDBEnabled()) {\n cachedCategoryData =\n featuresConfig.enableClientStorage && !isPreviewUser\n ? await this.indexedDBManager.read(this.getCategoryCacheKey(lobbyType, invokerProduct), expirationIntervalInSeconds * 1000)\n : null;\n return cachedCategoryData;\n } else {\n cachedCategoryData =\n featuresConfig.enableClientStorage && !isPreviewUser\n ? this.localStorageExpirablePersistenceService.read(\n this.getCategoryCacheKey(lobbyType, invokerProduct),\n expirationIntervalInSeconds * 1000,\n )\n : null;\n return Promise.resolve(cachedCategoryData);\n }\n }\n\n writeCategoryLocalStorageCacheMap(lobbyType: string, fullLobbyInfo: LobbyItem, invokerProduct: string = '') {\n try {\n let lobbyItemToStore: LobbyItemBaseModel = new LobbyItemBaseModel();\n if (!this.casinoCoreNpmParamsService.getcasinoCoreNpmParams().disableCasinoLocalStorage) {\n lobbyItemToStore.lsCategoriesMap = fullLobbyInfo.lsCategoriesMap;\n lobbyItemToStore.lsCategorytNameLangMap = fullLobbyInfo.lsCategorytNameLangMap;\n lobbyItemToStore.lsStickerNameMap = fullLobbyInfo.lsStickerNameMap;\n lobbyItemToStore.lsGameMetaDataMap = fullLobbyInfo.lsGameMetaDataMap;\n lobbyItemToStore.catVsFeatureMetadata = fullLobbyInfo.catVsFeatureMetadata;\n lobbyItemToStore.lbyTempName = fullLobbyInfo.lbyTempName;\n lobbyItemToStore.lobbyGameIconImageSuffix = fullLobbyInfo.lobbyGameIconImageSuffix;\n if (this.isIndexedDBEnabled()) {\n this.indexedDBManager.write(this.getCategoryCacheKey(lobbyType, invokerProduct), lobbyItemToStore);\n } else {\n this.localStorageExpirablePersistenceService.write(this.getCategoryCacheKey(lobbyType, invokerProduct), lobbyItemToStore);\n }\n }\n } catch (error) {}\n }\n\n isIndexedDBEnabled(): boolean {\n let enableIndexedDBStorage = this.configProviderService.provideLmtConfig()?.enableIndexedDBStorage;\n return enableIndexedDBStorage;\n }\n\n writeForceGameLaunchObjInSessionStorage(sessionStorageObjName: string, gameObj: any) {\n try {\n sessionStorage.setItem(sessionStorageObjName, JSON.stringify(gameObj));\n } catch (error) {}\n }\n getAuthenticatedThumbnailCacheKey(lobbyType: string = '') {\n if (this.user.username) {\n return 'thumbnailLookUp_' + this.user.username + '_' + lobbyType;\n }\n return '';\n }\n getAnonymousThumbnailCacheKey(lobbyType: string = '') {\n return 'thumbnailLookUp_' + lobbyType;\n }\n getThumbnailCacheKey(lobbyType: string = '') {\n let cachekey: any;\n if (this.user.isAuthenticated) {\n cachekey = this.getAuthenticatedThumbnailCacheKey(lobbyType);\n } else {\n cachekey = this.getAnonymousThumbnailCacheKey(lobbyType);\n }\n return cachekey;\n }\n\n setThumbnailLocalStorageCacheMap(lobbyType: string = '', thumbnailGames: any, forceLaunch: boolean = false) {\n try {\n if (!forceLaunch) {\n thumbnailGames && localStorage.setItem(this.getThumbnailCacheKey(lobbyType), thumbnailGames);\n } else {\n thumbnailGames && localStorage.setItem(this.getAuthenticatedThumbnailCacheKey(lobbyType), thumbnailGames);\n thumbnailGames && localStorage.setItem(this.getAnonymousThumbnailCacheKey(lobbyType), thumbnailGames);\n }\n } catch (error) {}\n }\n getThumbnailsfromLocalStorage(lobbyType: string = '') {\n try {\n return localStorage.getItem(this.getThumbnailCacheKey(lobbyType));\n } catch (error) {\n return null;\n }\n }\n\n removeThumbnailfromLocalStorage(lobbyType: string = '') {\n try {\n localStorage.removeItem(this.getThumbnailCacheKey(lobbyType));\n } catch (error) {}\n }\n\n readForceGameLaunchObjDataFromSessionStorage(objName: string) {\n if (sessionStorage.getItem(objName)) {\n let ForceGameLaunchObjData = sessionStorage.getItem(objName) || '';\n return JSON.parse(ForceGameLaunchObjData);\n }\n }\n\n getAllCategoriesFromLocalCache(lobbyType: string = '', invokerProduct: string = ''): LobbyItemBaseModel | null | any {\n let features = this.configProviderService.provideFeaturesConfig();\n return this.readCategoryDataLocalCache(features.browserLocalStorageCategoryDataUpdateInterval, lobbyType, invokerProduct);\n }\n\n setGameToStickersMap(data: any): any {\n data && localStorage.setItem('stickersMap', JSON.stringify(data));\n }\n\n getGamesDataFromCache(gamesList: string[]): GameDataFromCacheResponseModel {\n let features = this.configProviderService.provideFeaturesConfig();\n let devSettings = this.configProviderService.provideDevSettingsConfig();\n try {\n if (features.enableClientStorage && !devSettings.isPreviewUser) {\n let gameDataSet: Map = new Map(),\n gamesNotInCache: string[] = [];\n gamesList.forEach((game) => {\n let singleGameData: any = localStorage.getItem(game) && JSON.stringify(localStorage.getItem(game));\n if (\n singleGameData &&\n singleGameData.localStorageTimeStamp + features.browserLocalStorageCacheDuration * 1000 > new Date().getTime()\n ) {\n gameDataSet.set(game, singleGameData);\n } else {\n if (singleGameData) {\n localStorage.removeItem(game);\n }\n gamesNotInCache.push(game);\n }\n });\n let data: GameDataFromCacheResponseModel = {\n gameMetaData: gameDataSet,\n gamesNotInCache: gamesNotInCache.length > 0 ? gamesNotInCache : [],\n };\n return data;\n } else return new GameDataFromCacheResponseModel();\n } catch (error) {\n return new GameDataFromCacheResponseModel();\n }\n }\n setGameDataCache(data: Map) {\n try {\n Array.from(data.entries()).forEach((entry: any) => {\n if (!localStorage.getItem(entry[0])) {\n entry[1].localStorageTimeStamp = new Date().getTime();\n localStorage.setItem(entry[0], JSON.stringify(entry[1]));\n }\n });\n } catch (error) {}\n }\n getGameToStickersMap(): any {\n let data = localStorage.getItem('stickersMap');\n return data ? JSON.parse(data) : false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { InvokerProductService } from './invoker-product.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UnfinishedGamesService {\n unfinishedGames: any = [];\n unfinishedGamesFromAllLobby: any = [];\n private unfinishedGamesSubject = new BehaviorSubject(null);\n unfinishedFeedObservable: Observable = this.unfinishedGamesSubject.asObservable();\n private unfinishedGamesFromAllLobbySubject = new BehaviorSubject(null);\n unfinishedFeedFromAllLobbyObservable: Observable = this.unfinishedGamesFromAllLobbySubject.asObservable();\n\n constructor(\n private api: PlatformApiService,\n private readonly configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private cacheManager: CacheManagerService,\n private invokerProductService: InvokerProductService,\n private logger: Logger,\n ) {}\n\n setUnfinishedGames() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const apiurl: string = `${apiPathsConfig.gamesServices['unfinishedGames']}?invokerProduct=${this.invokerProductService.getInvokerProduct()}`;\n this.api.get(apiurl, null, { withCredentials: true }).subscribe(\n (response: any) => {\n this.unfinishedGames = [];\n if (response) {\n this.unfinishedGames = response?.games;\n this.unfinishedGamesFromAllLobby = cloneDeep(this.unfinishedGames);\n // this.unfinishedGamesFromAllLobby = [...this.unfinishedGames];\n if (featuresConfig?.rpGamesFilterInLiveCasino && this.casinoManager.getCurrentLobby()?.toLowerCase() == 'livecasino')\n this.filterLiveCasinoGames(this.unfinishedGames);\n if (featuresConfig?.rpWidgetGamesFilterInLiveCasino) this.unfinishedGamesFromAllLobby = this.unfinishedGames;\n this.unfinishedGamesSubject.next(this.unfinishedGames);\n this.unfinishedGamesFromAllLobbySubject.next(this.unfinishedGamesFromAllLobby);\n }\n },\n (error) => {\n this.logger.error('unable to retrieve the data from unfinishedGames api ' + error);\n },\n );\n }\n\n filterLiveCasinoGames(unfinishedGames: any) {\n const categoryCoreLookUp: any = this.cacheManager.getAllCategoriesFromLocalCache('LiveCasino', this.casinoManager.getInvokerProduct());\n this.unfinishedGames =\n categoryCoreLookUp?.lsGameMetaDataMap?.map((x: any) => x && x[0])?.filter((y: any) => unfinishedGames?.includes(y)) || [];\n }\n\n getUnfinishedGamesFromAllLobby() {\n return this.unfinishedGamesFromAllLobby;\n }\n\n getUnfinishedGames() {\n return this.unfinishedGames;\n }\n\n checkForUnfinishedGame(game: any) {\n return this.unfinishedGamesFromAllLobby && this.unfinishedGamesFromAllLobby.indexOf(game.gameId) > -1;\n }\n}\n","
\n \n \n \n \n \n \n \n {{ game.jackpotValue }}\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n
\n {{ game.title }}\n \n \n \n
\n\n","import { NgClass, NgIf, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { MessageQueueService, UserService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { ImageLoaderComponent } from '../image-loader/image-loader.component';\nimport { CasinoManager } from '../shared/casino-manager.service';\nimport { ConstService } from '../shared/const.service';\nimport { FavouriteService } from '../shared/favourite.service';\nimport { CasinoCoreGameLaunchFactoryService } from '../shared/gamelaunchfactory.service';\nimport { JackpotDataService } from '../shared/jackpotdata-service';\nimport { UnfinishedGamesService } from '../shared/unfinished-games-service';\n\n@Component({\n selector: 'cc-game-embed',\n templateUrl: 'game-embed.component.html',\n standalone: true,\n imports: [NgStyle, ImageLoaderComponent, NgIf, NgClass],\n})\nexport class GameEmbedComponent implements OnInit, OnChanges, OnDestroy {\n @Input() game: any;\n @Input() radius: number;\n @Input() categorytype: string;\n @Input() lobbyType: any;\n @Output() embedGameClicked: EventEmitter = new EventEmitter();\n Navigator: any;\n FavouriteGames: any;\n showJackpotOnGameTiles: any;\n unfinishedStyle: any;\n unfinishedBG: any;\n unfinishedBGOpacity: any;\n unfinishedText: any;\n gameClass: string[] = [];\n forceVisible: boolean = true;\n useFavouriteGames: boolean;\n useQuickInfo: boolean;\n showGameTitle: boolean;\n isTouch: boolean;\n isOverlay: boolean;\n QuickInfoDisplay = new Map();\n unfinishedFeedSubscription: any;\n jackpotHandle: any;\n enableTickingForJackpotOnGameTiles: boolean;\n newJackpotRibbonStyling: boolean;\n enableHotIcon: boolean;\n hotIcon: any;\n epcotHotIcon: any;\n gameService: any;\n enableEpcotSubNavigation: boolean;\n jpRibbonStyles: { jpBgColor: string; jpTextColor: string };\n constructor(\n private user: UserService,\n private favouriteService: FavouriteService,\n private messageQueue: MessageQueueService,\n private unfinishedGamesService: UnfinishedGamesService,\n private casinoManager: CasinoManager,\n private jackpotDataService: JackpotDataService,\n private configProviderService: ConfigProviderService,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n ) {}\n\n ngOnInit() {\n this.gameService = this.gameLaunchFactoryService.getGameService();\n if (this.game && !this.game.icon) {\n this.game.icon = {\n alt: '',\n height: 0,\n width: 0,\n };\n }\n const global = this.configProviderService.provideGlobalConfig();\n const jackpotData = this.configProviderService.provideJackpotConfig();\n const subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n this.enableTickingForJackpotOnGameTiles = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.lobbyType,\n jackpotData.enableJpTickingForLobbyType,\n );\n this.showJackpotOnGameTiles = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, jackpotData.showJackpotOnGameTilesLobbyType);\n this.unfinishedStyle = global.unfinishedStyle.bageStyle;\n this.unfinishedBG = global.unfinishedStyle.unfinishedBackground ? global.unfinishedStyle.unfinishedBackground : 'transparent';\n this.unfinishedBGOpacity = global.unfinishedStyle.unfinishedBGOpacity ? global.unfinishedStyle.unfinishedBGOpacity : '0.5';\n this.unfinishedText = global.messages.UNFINISHED;\n const features = this.configProviderService.provideFeaturesConfig();\n const gameConfig = this.configProviderService.provideGameConfig();\n this.isTouch = this.casinoManager.isTouch();\n this.useFavouriteGames = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.favouriteGamesLobbyType);\n this.useQuickInfo = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.enableQuickInfoLobbyType);\n this.showGameTitle = features.showGameTitle;\n this.setGameClass();\n this.game.isFavourite = this.favouriteService.checkForFavouriteGame(this.game);\n this.QuickInfoDisplay = new Map();\n this.subscribrToUnfinishedFeed();\n this.setJackPotValue();\n this.subscribtToJackpotFeed();\n this.newJackpotRibbonStyling = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.newJackpotRibbonStyling);\n this.enableHotIcon = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.enableHotIcon);\n this.hotIcon = gameConfig.host + features.hotIconPath.hotIcon;\n this.epcotHotIcon = gameConfig.host + features.hotIconPath.epcotHotIcon;\n }\n\n ngOnDestroy() {\n this.unfinishedFeedSubscription.unsubscribe();\n this.jackpotHandle.unsubscribe();\n }\n\n onResize() {\n this.isTouch = this.casinoManager.isTouch();\n }\n ngOnChanges() {\n const features = this.configProviderService.provideFeaturesConfig();\n this.newJackpotRibbonStyling = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.newJackpotRibbonStyling);\n }\n toggleFavourite(game: any, $event: any) {\n if (this.user.isAuthenticated) {\n $event.stopImmediatePropagation();\n this.FavouriteGames.toggleGameFavourite(game);\n } else {\n this.Navigator.navigateToLogin();\n }\n }\n\n displayQuickInfo(game: any, $event: any) {\n $event.stopImmediatePropagation();\n this.QuickInfoDisplay.set(game.gameId + this.categorytype, true);\n }\n\n hideQuickInfo(game: any) {\n this.QuickInfoDisplay.set(game.gameId + this.categorytype, false);\n }\n\n mouseOver(game: any) {\n this.gameService.overlayVisibilityStatus.subscribe((overlayStatus: any) => {\n if (!this.isTouch && !overlayStatus) {\n this.QuickInfoDisplay.set(game.gameId + this.categorytype, true);\n }\n });\n }\n\n mouseLeave(game: any) {\n if (!this.isTouch) {\n this.QuickInfoDisplay.set(game.gameId + this.categorytype, false);\n }\n }\n\n //Manish- I don't see any use of below method.\n\n //Need to call this function for to track game launch based on position\n // gameLaunchTracking() {\n // //Game launch tracking implementation\n // let gameLuanchCategory;\n // let selectedCategoryType = this.casinoManager.getActiveCategory();\n\n // if (selectedCategoryType) {\n // gameLuanchCategory = selectedCategoryType;\n // }\n\n // if (this.categorytype) {\n // gameLuanchCategory = gameLuanchCategory + '/' + this.categorytype;\n // }\n\n // }\n\n action(game: any) {\n this.messageQueue.clear({ clearPersistent: true });\n this.embedGameClicked.emit(game);\n }\n setUnfinishedImageStyle() {\n if (\n this.game.isUnfinishedBadge &&\n (this.categorytype === ConstService.RECENT_GAMES_CATEGORY_ID || this.categorytype === ConstService.UNFINISHED_GAMES_CATEGORY_ID)\n ) {\n return 'opacity: ' + this.unfinishedBGOpacity + ' ; border-radius : ' + this.radius;\n }\n\n return null;\n }\n setBageStyle() {\n let fullStyle = this.unfinishedStyle;\n\n if (this.unfinishedText.length > 11) {\n fullStyle += '; font-size: 0.56em;';\n }\n\n const isiOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);\n if (\n this.game.isUnfinishedBadge &&\n isiOS &&\n (this.categorytype === ConstService.RECENT_GAMES_CATEGORY_ID || this.categorytype === ConstService.UNFINISHED_GAMES_CATEGORY_ID)\n ) {\n const textLength = this.unfinishedText.length * 5.5;\n fullStyle += ' ; padding : 2px ' + textLength + 'px 2px 2px ; width: -web-fit-content !important;';\n }\n\n return fullStyle;\n }\n subscribrToUnfinishedFeed() {\n this.unfinishedFeedSubscription = this.unfinishedGamesService.unfinishedFeedObservable.subscribe(() => {\n this.game.isUnfinishedBadge = this.unfinishedGamesService.checkForUnfinishedGame(this.game);\n if (\n this.game.isUnfinishedBadge &&\n (this.categorytype === ConstService.RECENT_GAMES_CATEGORY_ID || this.categorytype === ConstService.UNFINISHED_GAMES_CATEGORY_ID)\n ) {\n this.gameClass.push('showunfinishedbage');\n }\n });\n }\n\n setJackPotValue() {\n const jackpotValue = this.jackpotDataService.getGameJackpotValue(this.game.gameId);\n const enableRibbonConfig = this.configProviderService.provideJackpotConfig().enableRibbonConfig;\n if (jackpotValue) {\n this.game.jackpotValue = jackpotValue.amount;\n this.game.isHotJackpotGroup = jackpotValue.isHotJackpotGroup;\n if (enableRibbonConfig) {\n this.jpRibbonStyles = this.jackpotDataService.getJackpotRibbonStyles(jackpotValue);\n }\n }\n }\n\n subscribtToJackpotFeed() {\n this.jackpotHandle = this.jackpotDataService.jackpotFeedObservable.subscribe(() => {\n this.setJackPotValue();\n });\n if (this.enableTickingForJackpotOnGameTiles) {\n this.jackpotDataService.jpTickingObservable.subscribe(() => {\n this.setJackPotValue();\n });\n }\n }\n private setGameClass() {\n if (this.game) {\n if (!this.user.isAuthenticated && this.game.demoAvailable) {\n this.gameClass.push('demo');\n }\n if (this.game.isNewBadge) {\n this.gameClass.push('new');\n }\n if (this.game.isCashbackBadge) {\n this.gameClass.push('cashback');\n }\n if (this.game.isCasinoLiveBadge) {\n this.gameClass.push('casino-live');\n }\n if (this.game.isFlagBadge) {\n this.gameClass.push('flag');\n }\n if (this.game['isExclusiveBadge']) {\n this.gameClass.push('exclusive');\n }\n if (\n this.game.isUnfinishedBadge &&\n (this.categorytype === ConstService.RECENT_GAMES_CATEGORY_ID || this.categorytype === ConstService.UNFINISHED_GAMES_CATEGORY_ID)\n ) {\n this.gameClass.push('showunfinishedbage');\n }\n }\n if (this.gameClass.length > 0) {\n this.gameClass = ['game-badge'].concat(this.gameClass);\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SearchDesktopComponent } from './search-desktop.component';\n\n@Component({\n selector: 'cc-lazy-search-desktop',\n template: `\n @defer (on immediate) {\n \n }\n `,\n standalone: true,\n imports: [SearchDesktopComponent],\n})\nexport class LazySearchDesktopComponent {\n @Input() isTouch: boolean;\n @Input() lobbyType: string;\n @Input() placeholder: string;\n @Input() categoryRoute: string;\n @Output() embedGameClicked = new EventEmitter();\n}\n","export class AdvanceGameDataModel {\n parentcategoryId: string;\n subcategoryId: string;\n rowNumber: any;\n columnNumber: number;\n iconSize: any;\n iconTypeForTracking: string;\n browserName: string;\n browserVersion: any;\n osName: any;\n osVersion: any;\n userAgent: string;\n devicemake: any;\n featureId: any;\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\n\n//need to check\nimport { DeviceService, NativeAppService } from '@frontend/vanilla/core';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { ConstService } from './const.service';\nimport { AdvanceGameDataModel } from './models/advance-game-data.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdvanceGameDataService {\n advanceGameDataModel = new AdvanceGameDataModel();\n featureid: any;\n constructor(\n private casinoLobbyService: CasinoLobbyService,\n private configProviderService: ConfigProviderService,\n private deviceService: DeviceService,\n private nativeAppService: NativeAppService,\n ) {}\n\n getAdvanceCategoryInfo(gameLaunchParam: any) {\n let parentcategoryId: string;\n let subcategoryId: string;\n const categoryType: string = gameLaunchParam.categoryType;\n const catInfoObject = this.casinoLobbyService.getCategoryInfo(gameLaunchParam.game.lobbyType, categoryType);\n\n let rowNumber: any;\n let catInfo: any;\n if (catInfoObject) {\n catInfo = catInfoObject.categoryInfo;\n this.featureid = catInfo?.filterFeatureIds ? catInfo?.filterFeatureIds[0] : null;\n }\n if (!catInfo) {\n parentcategoryId = categoryType;\n subcategoryId = '';\n } else if (!catInfo.parentLMTCategoryId) {\n if (!catInfo.lmtCategoryId) {\n parentcategoryId = categoryType;\n subcategoryId = '';\n } else {\n parentcategoryId = catInfo.lmtCategoryId;\n subcategoryId = '';\n }\n } else {\n parentcategoryId = catInfo.parentLMTCategoryId;\n subcategoryId = catInfo.lmtCategoryId;\n }\n if (categoryType == ConstService.SEARCH || categoryType == ConstService.SEARCH_GYML) {\n rowNumber = '';\n }\n const advanceCatInfoObj = {\n parentCategoryId: parentcategoryId,\n subCategoryId: subcategoryId,\n rowNumber: rowNumber,\n };\n return advanceCatInfoObj;\n }\n createAdvanceGameModel(\n parentCategory: string,\n subCategory: string,\n columnNumber: number,\n iconType: any,\n iconTypeForTracking: string,\n gridPosition?: any,\n ) {\n const advanceGameDataConfig = this.configProviderService.provideAdvanceGameDataConfig();\n const featureId = this.featureid;\n if (advanceGameDataConfig.enableAdvanceGameData) {\n const advanceGameDataModel: AdvanceGameDataModel = new AdvanceGameDataModel();\n advanceGameDataModel.parentcategoryId = parentCategory;\n advanceGameDataModel.subcategoryId = subCategory;\n advanceGameDataModel.rowNumber = gridPosition;\n advanceGameDataModel.columnNumber = columnNumber;\n advanceGameDataModel.iconSize = iconType;\n advanceGameDataModel.iconTypeForTracking = iconTypeForTracking;\n advanceGameDataModel.featureId = featureId;\n this.setRemainingAdvanceGameDataParameters(advanceGameDataModel);\n }\n }\n\n gameClickedFromSearchAdvanceGameDataModel(game: any, section: string, gridPos: any, index: any) {\n const advanceGameDataModel: AdvanceGameDataModel = new AdvanceGameDataModel();\n advanceGameDataModel.parentcategoryId = 'egv_' + section;\n advanceGameDataModel.subcategoryId = '';\n advanceGameDataModel.rowNumber = '';\n if (section != ConstService.SEARCH) {\n advanceGameDataModel.rowNumber = gridPos ? gridPos : '';\n }\n advanceGameDataModel.columnNumber = index + 1;\n advanceGameDataModel.iconSize = game.iconType;\n advanceGameDataModel.iconTypeForTracking = game.iconTypeForTracking;\n this.setRemainingAdvanceGameDataParameters(advanceGameDataModel);\n }\n\n setRemainingAdvanceGameDataParameters(advanceGameDataModel: AdvanceGameDataModel) {\n advanceGameDataModel.userAgent = window.navigator.userAgent;\n advanceGameDataModel.browserName = this.deviceService.getCapability('browserName') || '';\n advanceGameDataModel.browserVersion = this.deviceService.getCapability('browserVersion');\n advanceGameDataModel.osName = this.deviceService.osName;\n advanceGameDataModel.osVersion = this.deviceService.osVersion;\n advanceGameDataModel.devicemake = this.deviceService.vendor;\n this.setAdvanceGameModel(advanceGameDataModel);\n }\n setAdvanceGameModel(advanceGameDataModel: AdvanceGameDataModel) {\n this.advanceGameDataModel = advanceGameDataModel;\n }\n\n getAdvanceGameModel() {\n const advanceGameDataModelObj: AdvanceGameDataModel | null = {\n parentcategoryId: this.advanceGameDataModel.parentcategoryId,\n subcategoryId: this.advanceGameDataModel.subcategoryId,\n rowNumber: this.advanceGameDataModel.rowNumber,\n columnNumber: this.advanceGameDataModel.columnNumber,\n iconSize: this.advanceGameDataModel.iconSize,\n iconTypeForTracking: this.advanceGameDataModel.iconTypeForTracking,\n browserName: this.advanceGameDataModel.browserName,\n browserVersion: this.advanceGameDataModel.browserVersion,\n osName: this.advanceGameDataModel.osName,\n osVersion: this.advanceGameDataModel.osVersion,\n userAgent: this.advanceGameDataModel.userAgent,\n devicemake: this.advanceGameDataModel.devicemake,\n featureId: this.advanceGameDataModel.featureId,\n };\n if (Object.keys(advanceGameDataModelObj).length > 0) {\n return advanceGameDataModelObj;\n }\n return null;\n }\n\n appendAdvanceGameDataUrl(url: string, channelId: string): string {\n const advanceGameDataConfig = this.configProviderService.provideAdvanceGameDataConfig();\n const advanceGameDataModelObj = this.getAdvanceGameModel();\n const device = this.deviceService.isMobilePhone ? 'mobile' : this.deviceService.isTablet ? 'tablet' : 'desktop';\n const clientVersion: string = '';\n const model = this.deviceService.model != null ? this.deviceService.model : '';\n let appType;\n switch (channelId) {\n case 'VC':\n appType = 'VC_Client';\n break;\n case 'MC':\n appType = 'MAC_Client';\n break;\n case 'AW':\n appType = 'Android_Web';\n break;\n case 'IW':\n appType = 'IOS_Web';\n break;\n case 'AN':\n case 'IN':\n appType = this.nativeAppService.isNativeApp ? 'NativeApp' : this.nativeAppService.isNativeWrapper ? 'NativeWrapperApp' : '';\n break;\n case 'FC':\n appType = 'Desktop';\n break;\n default:\n appType = 'Web';\n }\n const advanceGameDataParamArray: Array = [\n advanceGameDataModelObj?.parentcategoryId,\n advanceGameDataModelObj?.subcategoryId,\n advanceGameDataModelObj?.rowNumber,\n advanceGameDataModelObj?.columnNumber,\n advanceGameDataModelObj?.iconTypeForTracking,\n advanceGameDataModelObj?.browserName,\n advanceGameDataModelObj?.browserVersion,\n advanceGameDataModelObj?.osName,\n device,\n clientVersion,\n advanceGameDataModelObj?.userAgent,\n advanceGameDataModelObj?.osVersion,\n advanceGameDataModelObj?.devicemake,\n model,\n appType,\n advanceGameDataModelObj?.featureId,\n ];\n\n const advanceGameDataUrl = this.format(advanceGameDataConfig.advanceUrlPattern, advanceGameDataParamArray);\n const finalUrl = this.appendAdvanceGameDataQueryString(url, advanceGameDataUrl);\n if (\n (advanceGameDataModelObj?.featureId == null || advanceGameDataModelObj?.featureId == '') &&\n finalUrl &&\n finalUrl.indexOf('&featureId=') > -1\n ) {\n const replacedUrl = finalUrl.replace('&featureId=', '');\n return replacedUrl;\n } else {\n return finalUrl;\n }\n }\n format(content: string, array: Array) {\n let theString = content;\n for (let i = 0; i < content.length; i++) {\n const regEx = new RegExp('\\\\{' + i + '\\\\}', 'gm');\n if (array[i] != undefined) {\n theString = theString.replace(regEx, encodeURIComponent(array[i]));\n } else {\n theString = theString.replace(regEx, '');\n }\n }\n return theString;\n }\n\n setGameLaunchProductsIndex() {\n let index = 1;\n const windowObj = window as any;\n if (windowObj.clientConfig.vnHeader !== undefined) {\n windowObj.clientConfig.vnHeader.products.forEach((headerPrduct: any) => {\n headerPrduct.ProductIndex = index++;\n });\n }\n if ((this.deviceService.isMobile || this.deviceService.isTouch) && windowObj.clientConfig.vnBottomNav !== undefined) {\n windowObj.clientConfig.vnBottomNav.items.forEach((bottmNavItems: any) => {\n bottmNavItems.ProductIndex = index++;\n });\n }\n }\n\n appendAdvanceGameDataQueryString(url: string, value: string) {\n if (url.indexOf('?') > -1) {\n url += '&' + value;\n } else {\n url += '?' + value;\n }\n return url;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CashierService {\n constructor(\n private api: PlatformApiService,\n private configProviderService: ConfigProviderService,\n ) {}\n\n getQuickDepositAllowedStatus(): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.cashier['csQuickDeposit']);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger, TrackingService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FreespinSummaryService {\n freeSpinsGameDetails = new BehaviorSubject(null);\n freeSpinsCategoryDetails = new BehaviorSubject(null);\n freeSpinsRewardDetails = new BehaviorSubject(null);\n freespinsMoreInfoClick = new BehaviorSubject(null);\n freeSpinsSummaryData = new BehaviorSubject(null);\n private freeSpinsSummaryDataPublisher = new BehaviorSubject(false);\n freeSpinsSummaryDataMapObservable: Observable;\n\n freeSpinsGameDetailsObser: Observable = this.freeSpinsGameDetails.asObservable();\n freeSpinsCategoryDetailsObser: Observable = this.freeSpinsCategoryDetails.asObservable();\n freeSpinsRewardDetailsObser: Observable = this.freeSpinsRewardDetails.asObservable();\n freespinsMoreInfoClickObser: Observable = this.freespinsMoreInfoClick.asObservable();\n freeSpinsGameDetailsMap: Map = new Map();\n freeSpinsCategoryDetailsMap: Map = new Map();\n freeSpinsRewardDetailsMap: Map = new Map();\n freeSpinsSummaryDataObser: Observable = this.freeSpinsSummaryData.asObservable();\n timeZoneData: any;\n moreinfoUrl: string = '';\n constructor(\n private api: PlatformApiService,\n private tracking: TrackingService,\n private configProviderService: ConfigProviderService,\n private logger: Logger,\n ) {\n this.freeSpinsSummaryDataMapObservable = this.freeSpinsSummaryDataPublisher.asObservable();\n }\n\n setFreespinsummary() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.freeSpins['spinsSummary'], {}, { withCredentials: true }).subscribe(\n (response: any) => {\n this.freeSpinsSummaryDataPublisher.next(response);\n this.setFreespinsummaryData(response);\n },\n () => {},\n );\n }\n\n setFreespinsummaryData(freeSpinResponse: any) {\n if (freeSpinResponse) {\n const response = freeSpinResponse.freeSpinSummaryData;\n const rewardDetailsData = freeSpinResponse.freeSpinRewardDetails;\n this.timeZoneData = freeSpinResponse.timeZone;\n if (response) {\n if (response.gameDetails && Object.keys(response.gameDetails) && Object.keys(response.gameDetails).length > 0) {\n for (const game in response.gameDetails) {\n this.freeSpinsGameDetailsMap.set(game, response.gameDetails[game]);\n }\n this.freeSpinsGameDetails.next(this.freeSpinsGameDetailsMap);\n } else {\n this.freeSpinsGameDetailsMap.clear();\n this.freeSpinsGameDetails.next(this.freeSpinsGameDetailsMap);\n }\n if (response.gameTypeDetails) {\n for (const game in response.gameTypeDetails) {\n this.freeSpinsCategoryDetailsMap.set(game, response.gameTypeDetails[game]);\n }\n this.freeSpinsCategoryDetails.next(this.freeSpinsCategoryDetailsMap);\n }\n if (rewardDetailsData && rewardDetailsData.rewardDetails && rewardDetailsData.rewardDetails.length > 0) {\n rewardDetailsData.rewardDetails.forEach((item: any) => {\n this.freeSpinsRewardDetailsMap.set(item.userRewardId, item);\n });\n this.freeSpinsRewardDetails.next(this.freeSpinsRewardDetailsMap);\n } else {\n this.freeSpinsRewardDetailsMap.clear();\n this.freeSpinsRewardDetails.next(this.freeSpinsRewardDetailsMap);\n }\n }\n }\n }\n getTimeZoneInfo() {\n return this.timeZoneData;\n }\n getFreespinCountInfoForGame(gameId: string) {\n return this.freeSpinsGameDetailsMap.get(gameId);\n }\n // NFR - Services optimization - Remove\n getFreespinCountInfoForCategory(categoryId: any) {\n return this.freeSpinsCategoryDetailsMap.get(categoryId);\n }\n\n getFreeSpinRewardDetail(rewardId: number) {\n return this.freeSpinsRewardDetailsMap.get(rewardId);\n }\n getFreeSpinRewardDetails(rewardIds: number[]): any[] {\n if (this.configProviderService.providefreeSpinsClientConfig().freeSpinsMoreInfo) {\n this.moreinfoUrl = this.configProviderService.providefreeSpinsClientConfig().freeSpinsMoreInfo.url;\n }\n const rewardetails: any[] = [];\n if (rewardIds && rewardIds.length > 0) {\n rewardIds.forEach((id: number) => {\n const rewardDetailItem = this.getFreeSpinRewardDetail(id);\n if (rewardDetailItem) {\n const freespinRewardId = String(rewardDetailItem.userRewardId);\n const redirectUrl = this.moreinfoUrl.replace('{freespinId}', freespinRewardId);\n rewardDetailItem.moreinfoUrl = redirectUrl;\n rewardetails.push(rewardDetailItem);\n }\n });\n }\n return rewardetails;\n }\n\n handleRejection(rejection: any) {\n // error\n if (rejection) {\n this.logger.debug('http code: ' + rejection.status + '; message: ' + rejection.message);\n let errorCode = '';\n if (rejection && rejection.errorCode) {\n errorCode = rejection.errorCode;\n }\n this.tracking.updateDataLayer({ 'page.name': 'MyFreeSpins' });\n this.tracking.reportError({ message: 'Technical error', code: errorCode });\n // TODO: To be removed once all teams will migrate Omniture tracking to GTM data layer\n this.tracking.updateDataLayer({\n pageName: 'freespin',\n v68: 'Technical error ' + errorCode,\n });\n\n this.logger.debug('error', rejection);\n }\n }\n freespinMoreinfoClick() {\n this.freespinsMoreInfoClick.next(true);\n }\n addTrackingEvent(\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n index?: any,\n ) {\n const disPlaycontent = actionEvent == 'load' ? 'contentView' : 'Event.Tracking';\n this.tracking.triggerEvent(disPlaycontent, {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.ContentPosition': index,\n // 'component.URLClicked': uRLClicked\n });\n }\n}\n","export class GameLobbyModel {\n gameId: string;\n icon: any;\n internalGameName: string;\n ownerId: string;\n launchType: any;\n title: string;\n isDataNotAvailable: boolean = false;\n jackpotvalue: string;\n isFavourite: boolean;\n sticker: string;\n rowSpan: number;\n colSpan: number;\n isUnfinished: boolean;\n isFastLoadingGame: boolean = false;\n infoIconClass: string = '';\n lobbyType: string = '';\n iconType: string;\n iconTypeForTracking: string;\n format: string = 'jpg';\n secondsToStartTable: number;\n name: string;\n provider: string;\n gameSection: string;\n gameContainer: string;\n condition: string;\n gameTileBorderRadius: string;\n gameTileDropShadow: string;\n newgridbgcolor: string;\n amazonstylebottombgclr: string;\n gameIndex: number;\n bgTileMode: boolean;\n jackpotValue: string;\n widgetName: string;\n isPromoted: boolean;\n isGYML: boolean;\n enableDetailPage: boolean;\n forceDetailPage: boolean;\n isHotJackpotGroup: boolean;\n fromCasino?: boolean;\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { GameLobbyModel } from './models/game-lobby.model';\nimport { GameDataFromCacheResponseModel } from './models/gameDataFromCacheResponse.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameDataManager {\n gameDataLookup: Map = new Map();\n gamesLookUp: string[] = [];\n gameDataFromLMT: any = [];\n liveCasinoLookup: any = [];\n gameConfig: any;\n\n private gameLookUpFilledPublisher = new BehaviorSubject(null);\n gameLookUpObservable: Observable = this.gameLookUpFilledPublisher.asObservable();\n\n constructor(\n private configProviderService: ConfigProviderService,\n private api: PlatformApiService,\n private cacheManager: CacheManagerService,\n private casinoLobbyService: CasinoLobbyService,\n private casinoManager: CasinoManager,\n ) {}\n\n formIconImageUrl(gameModelItem: any, isArcade = false) {\n const gameConfig = this.configProviderService.provideGameConfig();\n\n return `${gameConfig.host}${gameConfig.gameIconTemplate.replace('{0}', this.getGameIcon(gameModelItem, isArcade)).replace('{1}', gameModelItem.game)}.${this.getGameFormat(gameModelItem, isArcade)}`;\n }\n\n setGameLobbyModel(gameModelItem: any, isTouch: boolean, arcadeLobbyType: string = '', currentLobbyType = ''): GameLobbyModel {\n const gameConfig = this.configProviderService.provideGameConfig();\n const isArcade: boolean =\n arcadeLobbyType && currentLobbyType && currentLobbyType?.toLowerCase() == arcadeLobbyType?.toLowerCase() ? true : false;\n const gamelobbyModel: GameLobbyModel = new GameLobbyModel();\n gamelobbyModel.gameId = gameModelItem.game;\n gamelobbyModel.jackpotValue = gameModelItem.jackpotValue ? gameModelItem.jackpotValue : '';\n gamelobbyModel.name = gameModelItem.name;\n gamelobbyModel.provider = gameModelItem.provider;\n gamelobbyModel.ownerId = gameModelItem.ownerId;\n if (gameModelItem.sticker) {\n gamelobbyModel.sticker = gameModelItem.sticker;\n }\n gamelobbyModel.internalGameName = gameModelItem.gameId;\n gamelobbyModel.lobbyType = gameModelItem.lobbyType;\n gamelobbyModel.gameIndex = gameModelItem.gameIndex;\n gamelobbyModel.icon = {\n src:\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', this.getGameIcon(gameModelItem, isArcade)).replace('{1}', gamelobbyModel.gameId) +\n '.' +\n this.getGameFormat(gameModelItem, isArcade),\n };\n\n gamelobbyModel.format = this.getGameFormat(gameModelItem, isArcade);\n gamelobbyModel.rowSpan = this.getRowSpan(String(gameModelItem.icon), isArcade);\n gamelobbyModel.colSpan = this.getColSpan(String(gameModelItem.icon), isTouch);\n gamelobbyModel.iconType = gameModelItem.icon ? gameModelItem.icon : '1';\n gamelobbyModel.iconTypeForTracking = gamelobbyModel.iconType;\n if (gamelobbyModel.iconType && typeof gamelobbyModel.iconType === 'number') {\n gamelobbyModel.iconType = String(gamelobbyModel.iconType);\n }\n if (gamelobbyModel.iconType && gamelobbyModel.iconType.indexOf('-') > -1) {\n gamelobbyModel.iconType = gamelobbyModel.iconType.replace('-', '');\n }\n\n return gamelobbyModel;\n }\n\n getGameIcon(gameModelItem: any, isArcade: boolean = false): string {\n const gameConfig: any = this.configProviderService.provideGameConfig();\n const arcadeConfig: any = this.configProviderService.provideAracadeLobbyConfig();\n let featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const lobbyType = this.casinoManager.getLobbyType() || '';\n const lobbyInfo = this.casinoLobbyService.getLobbyInfo(lobbyType);\n const gameConfigMap = isArcade ? arcadeConfig.arcadeIconConfigMap : gameConfig.iconConfigMap;\n if (gameModelItem) {\n const gameIcon = gameConfigMap.filter((s: any) => s.id == gameModelItem.icon);\n if (gameIcon && gameIcon[0]) {\n // iskyc check commented\n if (lobbyInfo?.lobbyGameIconImageSuffix && featuresConfig.enableGameIconImageSuffix) {\n return gameIcon[0].icon + lobbyInfo?.lobbyGameIconImageSuffix;\n }\n return gameIcon[0].icon;\n }\n }\n if (lobbyInfo?.lobbyGameIconImageSuffix && featuresConfig.enableGameIconImageSuffix) {\n return gameConfigMap[5].icon + lobbyInfo?.lobbyGameIconImageSuffix;\n }\n return gameConfigMap[5].icon;\n }\n\n getGameFormat(gameModelItem: any, isArcade: boolean = false): string {\n let gameConfig: any = this.configProviderService.provideGameConfig();\n let arcadeConfig: any = this.configProviderService.provideAracadeLobbyConfig();\n let gameConfigMap = isArcade ? arcadeConfig.arcadeIconConfigMap : gameConfig.iconConfigMap;\n if (gameModelItem) {\n let gameIcon = gameConfigMap.filter((s: any) => s.id == gameModelItem.icon);\n if (gameIcon && gameIcon[0]) {\n return gameIcon[0].format;\n }\n }\n return 'jpg';\n }\n\n getRowSpan(icon: string, isArcade: boolean): number {\n switch (icon) {\n case '2':\n case '-2':\n return 1;\n case '3':\n case '-3':\n return 2;\n case '4':\n case '-4':\n return 2;\n case '5':\n case '-5':\n return 2;\n case '6':\n case '-6':\n return isArcade ? 2 : 1;\n case '7':\n case '-7':\n return 1;\n case '10':\n case '-10':\n return 2;\n default:\n return isArcade ? 2 : 1;\n }\n }\n\n getColSpan(icon: string, isTouch: boolean): number {\n switch (icon) {\n case '2':\n case '-2':\n return 2;\n case '3':\n case '-3':\n return 1;\n case '4':\n case '-4':\n return 2;\n case '5':\n case '-5':\n if (isTouch) {\n return 2;\n } else {\n return 3;\n }\n case '6':\n case '-6':\n return 1;\n case '7':\n case '-7':\n return 2;\n case '10':\n case '-10':\n return 2;\n default:\n return 1;\n }\n }\n getAllGamesFromLMT() {\n return this.gameDataFromLMT;\n }\n // NFR - Services optimization - Remove\n getGameData(gameId: string) {\n const promise = new Promise((resolve, reject) => {\n const gameDataFromCache = this.tryAndGetGameDataFromCache([gameId]);\n if (gameDataFromCache && gameDataFromCache.gameMetaData.size > 0 && gameDataFromCache.gameMetaData.get(gameId)) {\n resolve(gameDataFromCache.gameMetaData.get(gameId));\n } else {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n this.api.get(apiPathsConfig.gameData['gameData'], { n: [gameId], gameNames: true }).subscribe(\n (response) => {\n if (response && response[0]) {\n resolve(response[0]);\n this.updateLookUp(response);\n } else {\n const result = this.createEmptyGameModel(gameId);\n resolve(result);\n this.updateLookUp([result]);\n }\n },\n (error) => {\n reject(error);\n },\n );\n }\n });\n return promise;\n }\n tryAndGetGameDataFromCache(gamesList: string[]): GameDataFromCacheResponseModel {\n let response: GameDataFromCacheResponseModel = new GameDataFromCacheResponseModel();\n const gamesData = this.getGamesDataFromLookUp(gamesList);\n if (gamesData !== null) {\n response = gamesData;\n gamesList = gamesData.gamesNotInCache;\n }\n if (gamesData == null || gamesData.gamesNotInCache !== null) {\n const gameDataFromLocalStorage = this.cacheManager.getGamesDataFromCache(gamesList);\n if (gameDataFromLocalStorage !== null && gameDataFromLocalStorage.gameMetaData.size > 0) {\n if (response == null) response = new GameDataFromCacheResponseModel();\n Array.from(gameDataFromLocalStorage.gameMetaData.entries()).forEach((entry: any) => {\n response.gameMetaData.set(entry[0], entry[1]);\n });\n response.gamesNotInCache = gameDataFromLocalStorage.gamesNotInCache;\n }\n }\n return response;\n }\n updateLookUp(gameData: any) {\n gameData.forEach((game: any) => {\n this.gameDataLookup.set(game.gameId, game);\n });\n this.cacheManager.setGameDataCache(this.gameDataLookup);\n }\n createEmptyGameModel(gameId: string) {\n const emptyGameModel: GameLobbyModel = new GameLobbyModel();\n emptyGameModel.isDataNotAvailable = true;\n emptyGameModel.gameId = gameId;\n return emptyGameModel;\n }\n getGamesDataFromLookUp(gamesList: string[]): GameDataFromCacheResponseModel {\n const gameDataSet: Map = new Map(),\n gamesNotInCache: string[] = [];\n if (this.gameDataLookup.size > 0) {\n const gameDataMap = this.gameDataLookup;\n if (gamesList && gamesList.length > 0) {\n gamesList.forEach((game) => {\n if (gameDataMap.get(game)) {\n gameDataSet.set(game, gameDataMap.get(game));\n } else {\n gamesNotInCache.push(game);\n }\n });\n }\n const data: GameDataFromCacheResponseModel = {\n gameMetaData: gameDataSet,\n gamesNotInCache: gamesNotInCache.length > 0 ? gamesNotInCache : [],\n };\n return data;\n }\n return new GameDataFromCacheResponseModel();\n }\n setDefaultGameIcons(gameIds: string[]) {\n const gamesModel: any[] = [];\n if (gameIds && gameIds.length > 0) {\n gameIds.forEach((gameId: string) => {\n const GameModelItem: any = {\n game: gameId,\n icon: '1',\n };\n gamesModel.push(GameModelItem);\n });\n }\n return gamesModel;\n }\n getGameDisplayName(gameId: string): string {\n const gameMetaData = this.getLMTGameData(gameId);\n return gameMetaData && gameMetaData.name;\n }\n getLMTGameData(gameId: string): any {\n if (this.gameDataFromLMT && this.gameDataFromLMT.length > 0) {\n for (let i = 0; i < this.gameDataFromLMT.length; i++) {\n if (this.gameDataFromLMT[i].game === gameId) {\n return this.gameDataFromLMT[i];\n }\n }\n }\n return null;\n }\n getGameDescription(gameId: string, providerId: string): Observable {\n if (gameId) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n return this.api.get(apiPathsConfig.gameData['gameDataDescription'], { gameId: gameId, providerId: providerId });\n }\n return new Observable();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { AppInfoConfig, DeviceService, NativeAppService, Page, UserService, WindowRef } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { EventDataKeys, EventNames, TrackGame } from '../tracking/vanilla-tracking-adapter.model';\nimport { VanillaTrackingAdapter } from '../tracking/vanilla-tracking-adapter.service';\n\nenum Type {\n GA3 = 'GA3',\n GA4 = 'GA4',\n MP = 'MP',\n ALL = 'ALL',\n}\n\nenum Group {\n EU = 'EU',\n LCG = 'LCG',\n US = 'US',\n}\n\nconst NA = 'not applicable';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameLaunchTrackingService {\n private config: any;\n\n vanillaTrackingAdapter = inject(VanillaTrackingAdapter);\n\n constructor(\n private configProviderService: ConfigProviderService,\n private user: UserService,\n private page: Page,\n private appInfoConfig: AppInfoConfig,\n private nativeAppService: NativeAppService,\n private windowRef: WindowRef,\n private deviceService: DeviceService,\n ) {}\n //Alex and Oliver from Analytics team told, that dataLayer and API approaches should work together. So removing the toggle\n track(trackingData: TrackGame) {\n this.config = this.configProviderService.provideGameLaunchTrackingConfig();\n this.trackDataLayer(trackingData);\n //Added this if according to POR-41059\n let onetrustKey: any = window[this.config?.onetrustTracking.key];\n if (this.config?.onetrustTracking?.enabled === 'True' && onetrustKey?.split(',')?.indexOf(this.config?.onetrustTracking?.value) === -1) {\n return;\n } //POR-41059\n let url: string, payload: any;\n for (let type in this.config?.endpoint) {\n url = this.config?.endpoint[type];\n payload = this.getPayload(trackingData, type?.toUpperCase());\n if (url && payload) this.trackAPI(url, payload.params, payload.body);\n }\n }\n\n /* This block will be restored when above block is removed\n track(gameTrackingObj: any) {\n this.config = this.configProviderService.provideGameLaunchTrackingConfig();\n if (this.config.isEnabled) {\n let url: string, payload: any;\n for (let type in this.config?.endpoint) {\n url = this.config?.endpoint[type];\n payload = this.getPayload(gameTrackingObj, type?.toUpperCase());\n if (url && payload)\n this.trackAPI(url, payload.params, payload.body);\n }\n } else {\n this.trackDataLayer(gameTrackingObj);\n }\n }\n */\n\n private trackDataLayer(trackingData: TrackGame) {\n const {\n name,\n type,\n position,\n section,\n gridPosition,\n location,\n status,\n description,\n favourite,\n playingStatus,\n displayName,\n categoryType,\n categorySubType,\n recommendationType,\n lobbyName,\n lobbySource,\n optimoveSegment,\n } = trackingData;\n const eventData = {\n [EventDataKeys.ComponentGameName]: name,\n [EventDataKeys.ComponentGameType]: type,\n [EventDataKeys.ComponentGamePosition]: position,\n [EventDataKeys.ComponentGameSection]: section,\n [EventDataKeys.ComponentGameGridPosition]: gridPosition,\n [EventDataKeys.ComponentGameContainerLocation]: location,\n [EventDataKeys.ComponentGameStatus]: status,\n [EventDataKeys.ComponentGameContainerDescription]: description,\n [EventDataKeys.ComponentGameFavorite]: favourite,\n [EventDataKeys.ComponentGamePlayingStatus]: playingStatus,\n [EventDataKeys.ComponentGameDisplayName]: displayName,\n [EventDataKeys.ComponentCategoryType]: categoryType,\n [EventDataKeys.ComponentCategorySubType]: categorySubType,\n [EventDataKeys.ComponentRecommendationType]: recommendationType,\n [EventDataKeys.CasinoLobbyName]: lobbyName,\n [EventDataKeys.CasinoLobbySource]: lobbySource,\n [EventDataKeys.CasinoOptimoveSegment]: optimoveSegment,\n };\n this.vanillaTrackingAdapter.trigger({ name: EventNames.GameOpen, data: eventData });\n }\n\n private getTimeStamp(gameTrackingObj: any) {\n return gameTrackingObj?.params?.clickTimeStamp || new Date().getTime();\n }\n\n private getPageName() {\n return window.location?.pathname?.replace('/' + this.page.lang + '/', '')?.toLowerCase();\n }\n\n private getCookieValue(name: string) {\n return document.cookie\n ?.split(';')\n .find((x) => x.includes(name))\n ?.split('=')[1];\n }\n\n private getSessionValue(sessionId: string) {\n let item: any = document.cookie?.split(';').find((x) => x.includes(sessionId));\n let sessionValue: any = item?.split('.')[2];\n return sessionValue?.match(/^\\d{10}$/) ? sessionValue : '';\n }\n\n private getDistinctId(id: string) {\n if (this.user.isAuthenticated) return this.user.accountId;\n const key: string = 'mp_' + this.config?.mp.token + '_mixpanel';\n let item: any = JSON.parse(localStorage.getItem(key) || 'null');\n return item ? item[id] : null;\n }\n\n //Get Frontend values based on Vanilla Logic\n private getFrontEndValue() {\n if (this.nativeAppService.isNative) {\n return this.nativeAppService.applicationName;\n }\n if (this.deviceService.isMobile) {\n return 'mobile';\n }\n return 'desktop';\n }\n\n private getClientId(id: string) {\n const cid: any = this.windowRef.nativeWindow['ga']?.getAll && this.windowRef.nativeWindow['ga']?.getAll()[0].get(id);\n if (cid) return cid;\n let cookie: string[] | undefined = document.cookie\n .split(';')\n .find((x) => x.includes('_ga='))\n ?.split('.');\n return cookie && cookie.length == 4 ? cookie[2] + '.' + cookie[3] : null;\n }\n\n private getPayload(gameTrackingObj: any, type: string) {\n let payload: any;\n switch (type) {\n case Type.GA3:\n payload = this.getGA3Payload(gameTrackingObj);\n break;\n case Type.GA4:\n payload = this.getGA4Payload(gameTrackingObj);\n break;\n case Type.MP:\n payload = this.getMPPayload(gameTrackingObj);\n break;\n default:\n payload = null;\n break;\n }\n return payload;\n }\n private getGA3Payload(gameTrackingObj: any) {\n let specificParams: any,\n commonParams: any = {\n v: 1,\n t: 'event',\n tid: this.config?.gA3.measurementId,\n cid: this.getClientId('clientId'),\n ds: this.nativeAppService.isNative ? 'native' : 'web',\n z: Math.floor(Math.random() * 1000000 + 1),\n ua: navigator.userAgent?.toLowerCase(),\n de: 'UTF-8',\n je: 0,\n dt: document.title,\n dl: document.URL,\n dr: document.referrer,\n dh: document.location.host,\n ul: this.page.culture?.toLowerCase(),\n geoid: this.user.geoCountry?.toLowerCase(),\n ec: 'game_launch_api',\n el: this.getPageName(),\n ea: gameTrackingObj.displayName?.toLowerCase(),\n ni: 0,\n sid: this.getSessionValue(this.config?.gA4.sessionId),\n };\n if (this.config?.gA3.group === Group.LCG) {\n specificParams = {\n cd1: this.user.accountId,\n cd5: this.user.currency?.toLowerCase(),\n cd6: this.appInfoConfig.brand?.toLowerCase(),\n cd8: commonParams.ds,\n cd11: gameTrackingObj.position,\n cd12: gameTrackingObj.section?.toLowerCase(),\n cd13: gameTrackingObj.type?.toLowerCase(),\n cd84: commonParams.dr,\n cd126: gameTrackingObj.gridPosition,\n cd127: gameTrackingObj.status?.toLowerCase(),\n cd128: gameTrackingObj.location?.toLowerCase(),\n cd129: gameTrackingObj.description?.toLowerCase(),\n cd130: gameTrackingObj.favourite?.toLowerCase(),\n cd131: gameTrackingObj.playingStatus?.toLowerCase(),\n cd132: commonParams.ea,\n cd133: gameTrackingObj.categoryType?.toLowerCase(),\n cd134: gameTrackingObj.categorySubType?.toLowerCase(),\n cd135: commonParams.dl,\n cd164: gameTrackingObj.name?.toLowerCase(),\n cd154: this.appInfoConfig.product?.toLowerCase(),\n cd155: gameTrackingObj.recommendationType?.toLowerCase(),\n cd170: gameTrackingObj.lobbyName?.toLowerCase(),\n cd171: gameTrackingObj.lobbySource?.toLowerCase(),\n cd172: gameTrackingObj.optimoveSegment?.toLowerCase(),\n };\n } else {\n specificParams = {\n cd1: this.user.accountId,\n cd3: this.user.country?.toLowerCase(),\n cd6: this.user.isAuthenticated ? 1 : 0,\n cd11: this.nativeAppService.isNative,\n cd12: this.appInfoConfig.frontend,\n cd15: commonParams.el,\n cd33: commonParams.ea,\n cd35: gameTrackingObj.position,\n cd36: gameTrackingObj.section?.toLowerCase(),\n cd38: gameTrackingObj.gridPosition,\n cd39: gameTrackingObj.type?.toLowerCase(),\n cd40: gameTrackingObj.favourite?.toLowerCase(),\n cd41: gameTrackingObj.name?.toLowerCase(),\n cd42: gameTrackingObj.status?.toLowerCase(),\n cd43: gameTrackingObj.location?.toLowerCase(),\n cd44: gameTrackingObj.description?.toLowerCase(),\n cd96: gameTrackingObj.categoryType?.toLowerCase(),\n cd97: gameTrackingObj.categorySubType?.toLowerCase(),\n cd100: commonParams.dl,\n cd134: this.user.accountId,\n cd157: gameTrackingObj.recommendationType?.toLowerCase(),\n cd174: commonParams.ua,\n cd194: gameTrackingObj.lobbyName?.toLowerCase(),\n cd195: gameTrackingObj.lobbySource?.toLowerCase(),\n cd196: gameTrackingObj.optimoveSegment?.toLowerCase(),\n cd119: document.referrer,\n };\n }\n let params: any = Object.assign({}, commonParams, specificParams);\n let body;\n return { params, body };\n }\n\n private getGA4Payload(gameTrackingObj: any) {\n let params: any = {\n measurement_id: this.config?.gA4.measurementId,\n api_secret: this.config?.gA4.apiSecretKey,\n };\n let data: any = {\n client_id: this.getClientId('clientId'),\n user_id: this.user.accountId,\n timestamp_micros: this.getTimeStamp(gameTrackingObj) * 1000,\n user_properties: {\n appinfo: {\n value: this.appInfoConfig.channel?.toLowerCase(),\n },\n device_native: {\n value: this.nativeAppService.isNative,\n },\n prof_country: {\n value: this.user.country?.toLowerCase(),\n },\n prof_customerid: {\n value: this.user.accountId,\n },\n prof_loggedin: {\n value: this.user.isAuthenticated ? 'logged_in' : 'not_logged_in',\n },\n page_fe: {\n value: this.getFrontEndValue(),\n },\n },\n events: [\n {\n name: 'game_launch_api',\n params: {\n z: Math.floor(Math.random() * 1000000 + 1),\n page_title: document.title,\n page_location: document.URL,\n page_referrer: document.referrer,\n page_hostname: document.location.host,\n ul: this.page.culture?.toLowerCase(),\n session_id: this.getSessionValue(this.config?.gA4.sessionId),\n seg: 1,\n category_event: 'game_launch_api',\n label_event: this.getPageName()?.toLowerCase(),\n action_event: gameTrackingObj.displayName?.toLowerCase(),\n location_event: NA,\n event_details: NA,\n prof_currency: this.user.currency?.toLowerCase(),\n clean_page_URL: document.URL,\n game_name: gameTrackingObj.displayName?.toLowerCase(),\n game_position: gameTrackingObj.position,\n game_category: gameTrackingObj.section?.toLowerCase(),\n game_grid: gameTrackingObj.gridPosition,\n game_type: gameTrackingObj.type?.toLowerCase(),\n game_fav: gameTrackingObj.favourite?.toLowerCase(),\n game_id: gameTrackingObj.name?.toLowerCase(),\n game_status: gameTrackingObj.status?.toLowerCase(),\n game_containerloc: gameTrackingObj.location?.toLowerCase(),\n game_containerdesc: gameTrackingObj.description?.toLowerCase(),\n position_event: NA,\n test_abtest: this.getCookieValue('gvc_expt'),\n category_type: gameTrackingObj.categoryType?.toLowerCase(),\n category_subtype: gameTrackingObj.categorySubType?.toLowerCase(),\n game_recommendation_type: gameTrackingObj.recommendationType?.toLowerCase(),\n lobby_name: gameTrackingObj.lobbyName?.toLowerCase(),\n lobby_source: gameTrackingObj.lobbySource?.toLowerCase(),\n optimove_segment: gameTrackingObj.optimoveSegment?.toLowerCase() || NA,\n custom_timestamp: this.getTimeStamp(gameTrackingObj) * 1000,\n user_agent: navigator.userAgent?.toLowerCase(),\n page_name: this.getPageName(),\n },\n },\n ],\n };\n let body = JSON.stringify(data);\n return { params, body };\n }\n\n private getMPPayload(gameTrackingObj: any) {\n let params: any = {\n ip: 1,\n verbose: 1,\n _: this.getTimeStamp(gameTrackingObj),\n };\n let data: any = [\n {\n event: 'game_open_api',\n properties: {\n token: this.config?.mp.token,\n distinct_id: this.getDistinctId('distinct_id'),\n time: this.getTimeStamp(gameTrackingObj),\n app: this.appInfoConfig,\n game: {\n GridPosition: gameTrackingObj.gridPosition,\n Position: gameTrackingObj.position,\n Section: gameTrackingObj.section?.toLowerCase(),\n CategoryType: gameTrackingObj.categoryType?.toLowerCase(),\n CategorySubType: gameTrackingObj.categorySubType?.toLowerCase(),\n ContainerDescription: gameTrackingObj.description?.toLowerCase(),\n ContainerLocation: gameTrackingObj.location,\n DisplayName: gameTrackingObj.displayName?.toLowerCase(),\n Favourite: gameTrackingObj.favourite?.toLowerCase(),\n Name: gameTrackingObj.name?.toLowerCase(),\n PlayingStatus: gameTrackingObj.playingStatus?.toLowerCase(),\n Status: gameTrackingObj.status?.toLowerCase(),\n Type: gameTrackingObj.type?.toLowerCase(),\n RecommendationType: gameTrackingObj.recommendationType?.toLowerCase(),\n LobbyName: gameTrackingObj.lobbyName?.toLowerCase(),\n LobbySource: gameTrackingObj.lobbySource?.toLowerCase(),\n OptimoveSegment: gameTrackingObj.optimoveSegment?.toLowerCase() || NA,\n },\n page: {\n Brand: this.appInfoConfig.brand,\n Host: document.location.host,\n Label: this.page.domain.replace('.', ''),\n Name: this.getPageName(),\n Referrer: document.referrer,\n Path: document.location.href.replace(document.location.origin, ''),\n },\n },\n },\n ];\n let body = new URLSearchParams({ data: JSON.stringify(data) });\n return { params, body };\n }\n\n private async trackAPI(url: string, params: any, body: any) {\n let xhr = new XMLHttpRequest();\n xhr.open('POST', url + '?' + new URLSearchParams(params));\n xhr.send(body);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger, TimerService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JackpotService {\n jackpotsCache: any = {};\n fetchJackpotPromise: any;\n listenersCnt = 0;\n timer: number;\n\n constructor(\n private api: PlatformApiService,\n private timerService: TimerService,\n private configProviderService: ConfigProviderService,\n private logger: Logger,\n private urlUtilityService: UrlUtilityService,\n ) {}\n fetchJackpot() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.jackpots['jpData'], null, { showSpinner: false }).subscribe(\n (response: any) => {\n this.jackpotsCache = response;\n },\n (error) => {\n this.logger.error('Unable to retrieve data from jpData API : ' + error);\n },\n );\n }\n startFeed() {\n const JackpotData = this.configProviderService.provideJackpotConfig();\n this.listenersCnt++;\n if (!this.fetchJackpotPromise) {\n this.fetchJackpot();\n this.fetchJackpotPromise = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.fetchJackpot();\n }, JackpotData.jpInterval);\n }\n }\n getJackpotData() {\n return this.jackpotsCache;\n }\n stopFeed() {\n this.listenersCnt--;\n if (this.listenersCnt === 0 && this.fetchJackpotPromise) {\n this.timerService.clearInterval(this.fetchJackpotPromise);\n this.fetchJackpotPromise = undefined;\n this.jackpotsCache = [];\n }\n }\n}\n","import { LoadingIndicatorHandler } from '@frontend/vanilla/core';\n\nexport class GameLaunch {\n game: any;\n isTouch: boolean;\n gamePosition: number;\n categoryType: string;\n from: string;\n replaceRouteInHistory: boolean = false;\n isDemoLaunch: boolean = false;\n skipUnfinGame: boolean = false;\n gameLaunchedFrom?: string;\n gridPosition?: number;\n specialProduct: string = '';\n mode?: string = '';\n gameSection: string = '';\n trackingproduct?: string = undefined;\n isNewSportsNative: boolean = false;\n lobbyType: string = '';\n gameContainer: string;\n isLive: boolean;\n returnUrl: string = '';\n highlightedColor: string = '';\n Globalsearchsection?: string = '';\n Globalsearchgameposition?: number;\n appendRUrlToLoginDialogWindow: boolean;\n skipMetaDataCheck?: boolean = false;\n fetchLiveGameIFrame?: boolean = false;\n noGameTraking: boolean;\n clickTimeStamp: any;\n launchSource: string;\n loadingIndicatorHandler: LoadingIndicatorHandler | null;\n recommendationType?: string;\n gameLaunchedLocation?: string;\n customLobbyTypeMap?: any = null;\n moreInfoOverlay: boolean = false;\n isMoreInfoOverlay: boolean = false;\n audioFrom?: boolean = false;\n screennameGameLaunchTracking: any;\n isFavorite: boolean = false;\n currentProduct: string;\n promoId?: number;\n slotUniqueId?: number;\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoginDialogService, NavigationService, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoCoreGameLaunchFactoryService } from './gamelaunchfactory.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpenLoginDialog {\n casinoCoreGamelaunchService: any;\n constructor(\n private loginDialogService: LoginDialogService,\n private navigation: NavigationService,\n private user: UserService,\n private configProviderService: ConfigProviderService,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n ) {}\n open(options?: any) {\n const preLoginConfig = this.configProviderService.providePreLoginConfig();\n if (preLoginConfig.redirectForLogin) {\n const redirectUrl =\n preLoginConfig?.nemIDHost +\n preLoginConfig?.nemIdPathSegment.replace('__encodeURL_location_href__', encodeURIComponent(window?.location?.href));\n if (redirectUrl) {\n this.navigation.goTo(redirectUrl);\n }\n return;\n }\n if (options) {\n this.loginDialogService.whenReady.subscribe(() => {\n const loginDialogRef = this.loginDialogService.open(options);\n const afterclosesubcription: Subscription = loginDialogRef.afterClosed().subscribe(() => {\n if (afterclosesubcription) {\n this.casinoCoreGamelaunchService = this.gameLaunchFactoryService.getGameLaunchService();\n this.casinoCoreGamelaunchService?.stopAudio();\n afterclosesubcription.unsubscribe();\n }\n if (!this.user.isAuthenticated) {\n sessionStorage.removeItem('CasinoCoreForceGameObj');\n sessionStorage.removeItem('CasinoCoreScreenNameGameObj');\n // added newly for force coinbalance and force option\n sessionStorage.removeItem('forceCoinBalance');\n sessionStorage.removeItem('ForceOptin');\n if (options?.loginCloseUrl) {\n this.navigation.goTo(options.loginCloseUrl);\n }\n }\n });\n });\n } else {\n this.loginDialogService.whenReady.subscribe(() => {\n this.loginDialogService.open();\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoIFrameOverlayService } from './casino-iframe-overlay.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { CozyBingoDataService } from './cozybingodata.service';\nimport { InvokerProductService } from './invoker-product.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RecentGamesService {\n private recentGames: string[] = [];\n private recentGamesFromAllLobby: string[] = [];\n private mostRecentPlayedGames: any[] = [];\n private recentGamesSubject = new BehaviorSubject(null);\n recentGamesFeedObservable: Observable = this.recentGamesSubject.asObservable();\n private recentGamesFromAllLobbySubject = new BehaviorSubject(null);\n recentGamesFeedFromAllLobbyObservable: Observable = this.recentGamesFromAllLobbySubject.asObservable();\n private isRpfavWidgetDisplayed = new BehaviorSubject(null);\n isRpfavWidgetDisplayedObservable: Observable = this.isRpfavWidgetDisplayed.asObservable();\n private collectiveRecentGames: any = {};\n\n constructor(\n private api: PlatformApiService,\n private tracking: TrackingService,\n private invokerProductService: InvokerProductService,\n private configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private cacheManager: CacheManagerService,\n private apiPathsHelperService: ApiPathsHelperService,\n private casinoIFrameOverlayService: CasinoIFrameOverlayService,\n private cozyBingoDataService: CozyBingoDataService,\n ) {}\n\n setRecentGames() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const isOverlay: boolean = this.casinoIFrameOverlayService.getOverlayStatus();\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.nonCriticalFeeds['rpGamesOfProduct'],\n this.invokerProductService.getInvokerProduct(),\n );\n\n this.api.get(endPoint, { isOverlay: isOverlay }, { withCredentials: true }).subscribe(\n (response: any) => {\n this.collectiveRecentGames = response;\n this.recentGamesFromAllLobby = response?.casino?.map((game: any) => game.gamevariant) || [];\n if (response.casino) {\n if (\n featuresConfig?.rpGamesFilterInLiveCasino &&\n response.casino.length > 0 &&\n this.casinoManager?.getCurrentLobby()?.toLowerCase() == 'livecasino'\n ) {\n this.collectiveRecentGames = cloneDeep(response);\n // this.collectiveRecentGames = {...response};\n response.casino = this.filterLiveCasinoGames(response.casino);\n }\n let arcadeLobby = this.configProviderService.provideGameConfig()?.arcadeLobbyType.toLowerCase();\n if (response.casino.length > 0 && this.casinoManager?.getCurrentLobby()?.toLowerCase() == arcadeLobby) {\n this.collectiveRecentGames = cloneDeep(response);\n // this.collectiveRecentGames = {...response};\n response.casino = this.filterArcadeLobbyGames(response.casino);\n }\n\n this.mostRecentPlayedGames = response.casino;\n this.recentGames = response.casino.map((game: any) => game.gamevariant);\n }\n if (featuresConfig?.rpWidgetGamesFilterInLiveCasino) this.recentGamesFromAllLobby = this.recentGames;\n this.recentGamesSubject.next(this.recentGames);\n this.recentGamesFromAllLobbySubject.next(this.recentGamesFromAllLobby);\n // Send recently played games to GTM\n this.collectiveRecentGames && this.raiseEventForRecentlyPlayed(this.collectiveRecentGames);\n },\n () => {\n this.recentGamesSubject.next(this.recentGames);\n this.recentGamesFromAllLobbySubject.next(this.recentGamesFromAllLobby);\n },\n );\n }\n\n filterLiveCasinoGames(casinoGames: any) {\n const categoryCoreLookUp: any = this.cacheManager.getAllCategoriesFromLocalCache('LiveCasino', this.casinoManager.getInvokerProduct());\n const gamesLookUp: any = categoryCoreLookUp?.lsGameMetaDataMap?.map((x: any) => x && x[0]);\n return casinoGames?.filter((x: any) => gamesLookUp?.includes(x.gamevariant)) || [];\n }\n\n filterArcadeLobbyGames(casinoGames: any) {\n const categoryCoreLookUp: any = this.cacheManager.getAllCategoriesFromLocalCache('coinArcade', this.casinoManager.getInvokerProduct());\n const gamesLookUp: any = categoryCoreLookUp?.lsGameMetaDataMap?.map((x: any) => x && x[0]);\n return casinoGames?.filter((x: any) => gamesLookUp?.includes(x.gamevariant)) || [];\n }\n\n getrecentGames() {\n if (this.recentGames && this.recentGames.length > 0) {\n return this.recentGames;\n }\n return [];\n }\n\n getrecentGamesFromAllLobby() {\n return this.recentGamesFromAllLobby?.length > 0 ? this.recentGamesFromAllLobby : [];\n }\n\n private raiseEventForRecentlyPlayed(recentGamesObject: any): void {\n let recentPlayedGames = {};\n const globalsearchconfig: any = this.configProviderService.provideGlobalSearchConfig();\n if (globalsearchconfig.isEnabled) {\n this.cozyBingoDataService.cozyBingoRecentGamesObservable.subscribe((response: any) => {\n if (response) {\n const cozybingodata = response;\n recentPlayedGames = Object.assign(recentGamesObject, cozybingodata);\n } else {\n recentPlayedGames = recentGamesObject;\n }\n });\n dispatchEvent(new CustomEvent('casino:Recent_Games_Updated', { detail: recentPlayedGames }));\n }\n this.tracking.triggerEvent('Event.RecentlyPlayed', { 'user.recentGames': recentPlayedGames });\n }\n\n getMostRecentlyPlayedGames() {\n if (this.mostRecentPlayedGames && this.mostRecentPlayedGames.length > 0) {\n return this.mostRecentPlayedGames;\n }\n return [];\n }\n\n getMostRecentlyPlayedRouteInfo(subCategoryId: string) {\n const recentlyPlayedClientConfig = this.configProviderService.provideRecentlyPlayedGamesConfig();\n if (recentlyPlayedClientConfig.isMostRecentlyPlayedEnabled) {\n const mostRecentlyPlayedRoutes: any = recentlyPlayedClientConfig.recentlyPlayedRoutes;\n for (let i = 0; i < mostRecentlyPlayedRoutes.length; i++) {\n if (mostRecentlyPlayedRoutes[i]?.mostPlayedRoute?.toLowerCase() == subCategoryId?.toLowerCase()) {\n return mostRecentlyPlayedRoutes[i];\n }\n }\n }\n }\n\n isRpfavDisplayed(value: boolean) {\n this.isRpfavWidgetDisplayed.next(value);\n }\n\n getRecentGames(): any {\n return this.collectiveRecentGames;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClaimsService, MessageLifetime, MessageQueueService, TimerService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject, combineLatest, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { LobbyItem } from '../../casino-lobby-manager/casino-lobby.models';\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CasinoApiService } from '../../shared/casino-api.service';\nimport { CasinoManager } from '../../shared/casino-manager.service';\nimport { UrlUtilityService } from '../../utilities/url-utility.service';\nimport { Race, ResultsHistory, SitecoreContent, SlotApiParams, SlotRacesLive, SlotRacesResponseError, SlotRacesUpcoming } from './slot-races.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlotRacesService {\n categoryRoutePrefix = '/c/';\n isSlotRacesEnabled: boolean;\n isNotificationEnabled: boolean;\n slotRacesCategoryId: string;\n isCoin: boolean;\n selectedFilteredtOption: string;\n stickerMap: Map = new Map();\n raceGamesMap: Map = new Map();\n messages: { [item: string]: string };\n private contentPublisher = new BehaviorSubject({});\n content: Observable = this.contentPublisher.asObservable();\n contentData: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n\n private notifyPublisher = new Subject<{ promoId: number; slotUniqueId: number; status: boolean }>();\n notifyObservable: Observable<{ promoId: number; slotUniqueId: number; status: boolean }> = this.notifyPublisher.asObservable();\n private liveRacesPublisher = new BehaviorSubject({ liveNow: [] });\n liveRacesData: Observable = this.liveRacesPublisher.asObservable();\n\n forcRacepublisher = new BehaviorSubject({});\n forceRace: Observable = this.forcRacepublisher.asObservable();\n\n forceCoinBalancepublisher = new BehaviorSubject({});\n forceCoinBalanceObs: Observable = this.forceCoinBalancepublisher.asObservable();\n\n private upcomingRacesPublisher = new BehaviorSubject({ upcomingToday: [], upcomingTomorrow: [] });\n upcomingRacesData: Observable = this.upcomingRacesPublisher.asObservable();\n\n private globalTimerPublisher = new BehaviorSubject({});\n globalTimerObservable: Observable = this.globalTimerPublisher.asObservable();\n\n private updateNavigationCategories = new BehaviorSubject(true);\n updateNavigation: Observable = this.updateNavigationCategories.asObservable();\n\n private stickerRacesPublisher = new BehaviorSubject({});\n stickerRacesData: Observable = this.stickerRacesPublisher.asObservable();\n\n private rtmsDatPublisher = new BehaviorSubject({});\n rtmsData: Observable = this.rtmsDatPublisher.asObservable();\n\n coinDetailsPublisher = new BehaviorSubject(false);\n coinDetails: Observable = this.coinDetailsPublisher.asObservable();\n\n raceCompletedPublisher = new BehaviorSubject(false);\n raceCompletedObs: Observable = this.raceCompletedPublisher.asObservable();\n\n selectedEntryOption = new Subject();\n liveSlotPollingStarted: boolean;\n pollForUser: boolean = true;\n private pollingInterval: any;\n private globalTimerInterval: number = 1000; //take this value from dynacon if possible\n private gameMetadata: { [game: string]: any };\n private isGameMetadataAvailable: boolean;\n private slotRaces: Race[];\n private disabledGameNames: string[] = [];\n private isSlotRacesInitiated: boolean;\n private isNavCategoryVisible: boolean;\n private promoPrizesMap: any = {};\n private timer: any;\n optInButtonText: string;\n categoryMap: any = [];\n slotInputArr: any[] = [];\n\n constructor(\n private api: CasinoApiService,\n private timerService: TimerService,\n private messageQueue: MessageQueueService,\n private claims: ClaimsService,\n private casinoManager: CasinoManager,\n private user: UserService,\n private configProviderService: ConfigProviderService,\n private urlUtilityService: UrlUtilityService,\n ) {}\n\n setNotifyStatus(promoId: number, slotUniqueId: number, status: boolean): void {\n this.notifyPublisher.next({ promoId: promoId, slotUniqueId: slotUniqueId, status: status });\n }\n\n initSlotRaces(gameDataMap: any, disabledGames: any, lmtData: LobbyItem | undefined, isDLL: boolean, isInItSlotRaces: boolean): void {\n if (isInItSlotRaces) {\n this.emptySlotRacesData();\n }\n if (!this.isSlotRacesInitiated) {\n this.isSlotRacesInitiated = true;\n this.updateLobbyNavigation();\n this.getSitecoreData(!isDLL);\n }\n const configs = this.configProviderService.provideSlotRacesConfig();\n if (lmtData) this.getlmtData(lmtData);\n if (this.user.isAuthenticated || configs.enablePreLogin) {\n this.getLiveRaces();\n this.getUpcomingRaces();\n }\n\n if (gameDataMap && gameDataMap.size > 0) {\n this.updateGameMetaData(Array.from(gameDataMap.values()));\n }\n this.disabledGameNames = disabledGames && disabledGames.length > 0 ? disabledGames : [];\n if (configs.enableSlotRacesStickers) {\n this.slotRaceStickersData();\n }\n }\n\n private emptySlotRacesData(): void {\n this.slotRaces = [];\n this.raceGamesMap.clear();\n this.liveRacesPublisher.next({ liveNow: [] });\n this.upcomingRacesPublisher.next({ upcomingToday: [], upcomingTomorrow: [] });\n }\n\n setSlotRaces(lobbyType: string): void {\n this.setSlotRacesParams(lobbyType);\n const configs = this.configProviderService.provideSlotRacesConfig();\n if (this.isPrizesMapEmpty()) {\n if (!configs.disablePrizesApiCall || (configs.disablePrizesApiCall && this.user.isAuthenticated)) {\n this.getPrizes().subscribe();\n }\n }\n if (!this.timer) {\n this.globalTimerCountDown();\n }\n }\n\n getRaces(): void {\n if (this.isSlotRacesEnabled) {\n this.getLiveRaces();\n this.getUpcomingRaces();\n }\n }\n\n startLiveSlotPolling() {\n if (!this.liveSlotPollingStarted && this.pollForUser) {\n const configs = this.configProviderService.provideSlotRacesConfig();\n\n this.liveSlotPollingStarted = true;\n this.pollingInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.getLiveRaces();\n }, configs.racesListPollingInterval);\n }\n }\n\n stopLiveSlotPolling() {\n this.liveSlotPollingStarted = false;\n this.timerService.clearInterval(this.pollingInterval);\n }\n\n private getSitecoreData(fetchNPMData: boolean): void {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.slotRaces['racesContent'], { fetchNPMData: fetchNPMData }).subscribe((content: SitecoreContent) => {\n this.contentData = content;\n this.contentPublisher.next(content);\n if (\n content &&\n content.textTranslations &&\n content.textTranslations.sharedList &&\n content.textTranslations.sharedList.progressBarColor &&\n content.textTranslations.sharedList.progressBarColor != ''\n ) {\n const style = document.createElement('style');\n style.innerHTML =\n '.sr-progress-bar-color.mat-accent .mat-slider-thumb,.mat-slider-thumb-label,.mat-slider-track-fill { background-color:' +\n content.textTranslations.sharedList.progressBarColor +\n ' !important } ';\n document.getElementsByTagName('head')[0]!.appendChild(style);\n }\n });\n }\n\n getPrizes(): Observable {\n return this.getPrizesFromAPI().pipe(\n map((data: any) => {\n let prizesMap;\n if (data?.offers && data.offers?.length) {\n prizesMap = this.createPrizesMap(data.offers);\n }\n if (prizesMap) {\n this.promoPrizesMap = prizesMap;\n }\n return prizesMap;\n }),\n catchError((error: any) => {\n return error;\n }),\n );\n }\n\n private createPrizesMap(prizes: any): {} {\n const promoPrizes: { [promoId: number]: any } = [];\n prizes = prizes.filter((prize: any) => prize && prize.promoId && prize.rankDetails && prize.rankDetails.length);\n for (let n = 0; n < prizes.length; n++) {\n if (!promoPrizes[prizes[n].promoId]) {\n const prizesArray: any[] = [];\n for (let i = 0; i < prizes[n].rankDetails.length; i++) {\n prizesArray.push(prizes[n].rankDetails[i].configMaps);\n }\n\n if (prizes[n].beatBanker) {\n prizes[n].beatBanker.isBeatBanker = true;\n prizesArray.push([prizes[n].beatBanker]);\n }\n promoPrizes[prizes[n].promoId] = prizesArray;\n }\n }\n return promoPrizes;\n }\n\n getPrizesForPromo(promoId: number): any {\n if (this.promoPrizesMap) {\n const prize = this.promoPrizesMap[promoId];\n if (prize && prize.length) {\n const currencyPrize = prize.find((p: any) => p?.currency && p?.currency?.length);\n if (currencyPrize) {\n if (currencyPrize.currency === this.claims.get('currency')) {\n return prize;\n } else {\n return []; // so that a downstream call is made to fetch latest data for prizes with new currency\n }\n } else {\n return prize; //return prize if it does not involve any prize with currency\n }\n }\n }\n return [];\n }\n\n private isPrizesMapEmpty(): boolean {\n for (const promo in this.promoPrizesMap) {\n if (this.promoPrizesMap.hasOwnProperty(promo)) {\n return false;\n }\n }\n\n return JSON.stringify(this.promoPrizesMap) === JSON.stringify({});\n }\n\n getLiveRaces(): void {\n const params: SlotApiParams = {\n slotInput: 'LIVE',\n };\n this.getRacesList(params);\n }\n\n getUpcomingRaces(): void {\n const configs = this.configProviderService.provideSlotRacesConfig();\n\n const params: SlotApiParams = {\n slotInput: 'UPCOMING',\n slotDuration: configs.upcomingSlotsDuration,\n };\n this.getRacesList(params);\n }\n\n private getRacesList(params: any): void {\n const configs = this.configProviderService.provideSlotRacesConfig();\n if (!configs.disablePreloginApiCalls || (configs.disablePreloginApiCalls && this.user.isAuthenticated)) {\n this.getRacesFromAPI(params).subscribe(\n (races: any) => {\n if (races) {\n if (races.statusDtls && races.statusDtls.statusCode == 1016 && this.liveSlotPollingStarted) {\n this.pollForUser = false;\n this.stopLiveSlotPolling();\n } else {\n if (!this.pollForUser) {\n this.pollForUser = true;\n }\n }\n this.getRaceCompletedStatus(params, configs);\n if (races.offerResponses && races.offerResponses.length > 0) {\n this.makeDateConversions(races.offerResponses, params.slotInput);\n }\n }\n },\n (error: any) => {\n if (error) {\n this.getRaceCompletedStatus(params, configs);\n }\n },\n );\n }\n }\n\n private getRaceCompletedStatus(params: any, configs: any) {\n if (configs?.enableSlotRacesPhase2 && !this.liveSlotPollingStarted) {\n this.slotInputArr.push(params.slotInput);\n const slotInputUniqueArr = this.slotInputArr.filter(function (item, pos, self) {\n return self.indexOf(item) == pos;\n });\n if (slotInputUniqueArr?.length == 2) {\n setTimeout(() => {\n this.raceCompletedPublisher.next(true);\n }, 100);\n }\n }\n }\n\n private makeDateConversions(races: Race[], slotInput: string) {\n const finalRaces: Race[] = [];\n const now = Date.now();\n races.forEach((race: Race) => {\n const startDate = new Date(race.startTime); // as date coming from API is epoch UTC\n const endDate = new Date(race.endTime);\n const optinExpiryDate = new Date(race.optinExpiryTime);\n race.startDate = startDate;\n race.endDate = endDate;\n race.optinExpiryDate = optinExpiryDate;\n //adding following if-else block to eliminate older data showing up in response from pre-login cache\n if (slotInput === 'LIVE' && race.startDate.getTime() < now && race.endDate.getTime() > now) {\n race.startTimeAMPM = this.getAMPMTime(race.startDate);\n finalRaces.push(race);\n } else if (slotInput === 'UPCOMING' && race.startDate.getTime() > now) {\n race.startTimeAMPM = this.getAMPMTime(race.startDate);\n finalRaces.push(race);\n }\n });\n this.slotRaces = finalRaces;\n this.populateRacesObject();\n }\n\n getAMPMTime(date: Date): string {\n const features = this.configProviderService.provideSlotRacesConfig();\n let hours = date.getHours();\n const minutes = date.getMinutes();\n if (features.enable24HrTimeFormat) {\n return ('0' + hours).slice(-2) + ':' + ('0' + minutes).slice(-2);\n }\n const ampm = hours >= 12 ? 'pm' : 'am';\n hours = hours % 12;\n hours = hours ? hours : 12; // the hour '0' should be '12'\n const mnts = minutes < 10 ? '0' + minutes : minutes;\n const startTime = hours + ':' + mnts + ampm;\n return startTime;\n }\n\n private populateRacesObject(): void {\n if (this.slotRaces && this.slotRaces.length && this.isGameMetadataAvailable) {\n const tomorrow = new Date();\n tomorrow.setHours(24, 0, 0, 0);\n const dayAfter = new Date();\n dayAfter.setHours(48, 0, 0, 0);\n const now = Date.now();\n const liveSlots: SlotRacesLive = { liveNow: [] };\n const upcomingSlots: SlotRacesUpcoming = { upcomingToday: [], upcomingTomorrow: [] };\n this.slotRaces.every((race: Race) => {\n const ordandunordGames: any = {};\n let mappedObject: any;\n this.filterPromoGames(race);\n const raceMetaData = this.gameMetadata[race.gameVariantList[0]!];\n if (raceMetaData && race.gameVariantList && race.gameVariantList.length && race.endDate.getTime() > now) {\n if (race.gameVariantList.length > 1) {\n mappedObject = this.raceGamesMap && this.raceGamesMap.get(race.promoId?.toString());\n if (!mappedObject || (mappedObject && mappedObject?.unorderedGames !== race.gameVariantList)) {\n ordandunordGames.unorderedGames = race.gameVariantList;\n ordandunordGames.orderedGames = race.gameVariantList = this.getOrderedGames(race);\n this.raceGamesMap.set(race.promoId.toString(), ordandunordGames);\n } else {\n race.gameVariantList = mappedObject.orderedGames;\n }\n }\n race.gameId = raceMetaData.name;\n if (race.startDate.getTime() <= now) {\n race.isLive = true;\n liveSlots.liveNow.push(race);\n return true;\n } else if (race.startDate < tomorrow) {\n upcomingSlots.upcomingToday.push(race);\n return true;\n } else if (race.startDate < dayAfter) {\n upcomingSlots.upcomingTomorrow.push(race);\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n });\n if (liveSlots && liveSlots.liveNow && liveSlots.liveNow.length) {\n if (\n upcomingSlots &&\n ((upcomingSlots.upcomingToday && upcomingSlots.upcomingToday.length) ||\n (upcomingSlots.upcomingTomorrow && upcomingSlots.upcomingTomorrow.length))\n ) {\n this.publishRaces(liveSlots, upcomingSlots);\n } else {\n this.publishRaces(liveSlots, '');\n }\n } else {\n this.publishRaces('', upcomingSlots);\n }\n }\n }\n private filterPromoGames(promo: any) {\n if (promo) {\n if (!promo.gameVariantList || !promo.gameVariantList.length) {\n promo.gameVariantList = [promo.gameVariantName];\n }\n\n const tempGameList: any = [];\n for (let i = 0; i < promo.gameVariantList.length; i++) {\n if (this.gameMetadata[promo.gameVariantList[i]] && this.disabledGameNames.indexOf(promo.gameVariantList[i]) < 0) {\n tempGameList.push(promo.gameVariantList[i]);\n }\n }\n promo.gameVariantList = tempGameList;\n }\n }\n\n getLeaderboard(promoId: any, slotId: any, maxRank: number = 0, fromResultsHistory: boolean): Observable {\n return this.getLeaderboardFromAPI(promoId, slotId, maxRank, fromResultsHistory);\n }\n\n updateRacesArrays(): void {\n const upcomingRaces = this.upcomingRacesPublisher.value;\n const liveRaces = this.liveRacesPublisher.value;\n const now = Date.now();\n const newLiveRaces: Race[] = upcomingRaces.upcomingToday.filter((r) => r.startDate.getTime() <= now);\n newLiveRaces.forEach((race: Race) => {\n race.isLive = true;\n upcomingRaces.upcomingToday.splice(upcomingRaces.upcomingToday.indexOf(race), 1);\n });\n const endedRaces: Race[] = liveRaces.liveNow.filter((r) => r.endDate.getTime() <= now);\n endedRaces.forEach((race: Race) => {\n liveRaces.liveNow.splice(liveRaces.liveNow.indexOf(race), 1);\n });\n liveRaces.liveNow = liveRaces.liveNow.concat(newLiveRaces);\n\n this.publishRaces(liveRaces, upcomingRaces);\n }\n\n private publishRaces(liveRaces: SlotRacesLive | '', upcomingRaces: SlotRacesUpcoming | ''): void {\n if (upcomingRaces) {\n if (upcomingRaces.upcomingToday && upcomingRaces.upcomingToday.length) {\n const timeoutInterval = upcomingRaces.upcomingToday[0]!.startDate.getTime() - Date.now();\n setTimeout(() => {\n this.updateRacesArrays();\n }, timeoutInterval);\n } else if (upcomingRaces.upcomingTomorrow && upcomingRaces.upcomingTomorrow.length) {\n const timeoutInterval = upcomingRaces.upcomingTomorrow[0]!.startDate.getTime() - Date.now();\n setTimeout(() => {\n this.updateRacesArrays();\n }, timeoutInterval);\n }\n }\n\n if (liveRaces && liveRaces.liveNow) {\n this.liveRacesPublisher.next(liveRaces);\n }\n if (upcomingRaces && (upcomingRaces.upcomingToday || upcomingRaces.upcomingTomorrow)) {\n this.upcomingRacesPublisher.next(upcomingRaces);\n }\n }\n //To Show Stickers on Game Tile\n slotRaceStickersData() {\n this.content.subscribe((content: SitecoreContent) => {\n this.contentData = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n combineLatest(this.liveRacesData, this.upcomingRacesData).subscribe((races: any) => {\n const liveRaces = races[0] && races[0].liveNow && races[0].liveNow.slice(0, races[0].liveNow.length);\n const upcomingToday = races[1] && races[1].upcomingToday && races[1].upcomingToday.slice(0, races[1].upcomingToday.length);\n this.raceData(liveRaces, upcomingToday, this.contentData);\n });\n });\n }\n\n raceData(liveRaces: Race[], upcomingToday: Race[], contentData: any) {\n if (liveRaces.length > 0 || upcomingToday.length > 0) {\n for (let i = 0; i < upcomingToday.length; i++) {\n const corrLive = liveRaces.find((r) => r.promoId === upcomingToday[i]!.promoId);\n if (corrLive) {\n if (corrLive.optinExpiryDate.getTime() < Date.now()) {\n continue;\n } else {\n this.stickersDataMap(upcomingToday[i]!, contentData, 'upcomingRaces');\n }\n } else {\n this.stickersDataMap(upcomingToday[i]!, contentData, 'upcomingRaces');\n }\n }\n for (let i = 0; i < liveRaces.length; i++) {\n if (liveRaces[i]!.optinExpiryDate.getTime() < Date.now()) {\n continue;\n } else {\n this.stickersDataMap(liveRaces[i]!, contentData, 'liveRaces');\n }\n }\n if (this.stickerMap.size > 0) {\n this.stickerRacesPublisher.next(this.stickerMap);\n }\n }\n }\n stickersDataMap(raceItem: Race, contentData: any, races: string) {\n const configs = this.configProviderService.provideSlotRacesConfig();\n const milliseconds = raceItem.startDate.getTime() - Date.now();\n const seconds: number = Math.floor(milliseconds / 1000);\n const minutes: number = Math.floor(seconds / 60);\n if (races === 'upcomingRaces') {\n if (minutes > configs.upcomingSlotStickersDuration) {\n return;\n }\n if (minutes && minutes <= configs.upcomingSlotStickersDuration) {\n this.getUpdatedSlotStickerDuration(raceItem, contentData);\n }\n } else if (races === 'liveRaces') {\n if (minutes > 30) {\n return;\n }\n if (minutes && minutes <= 30) {\n this.getUpdatedSlotStickerDuration(raceItem, contentData);\n }\n }\n }\n getUpdatedSlotStickerDuration(raceItem: Race, contentData: any) {\n this.messages = contentData && contentData.textTranslations ? contentData.textTranslations.versionedList : {};\n const configs = this.configProviderService.provideSlotRacesConfig();\n let gameName: string;\n let stickerText: string = '';\n const awardType: string = raceItem.additionalParams.awardType!;\n const awardTypeSticker: string = 'sticker_' + (awardType == null ? '' : awardType?.toLowerCase());\n const subType: string = raceItem.subType;\n const milliseconds = raceItem.startDate.getTime() - Date.now();\n const seconds: number = Math.floor(milliseconds / 1000);\n const minutes: number = Math.floor(seconds / 60);\n for (let i = 0; i < raceItem.gameVariantList.length; i++) {\n gameName = raceItem.gameVariantList[i]!;\n\n if (subType == 'CASINO_LEADERBOARD' && awardType) {\n stickerText = this.messages[awardTypeSticker]!;\n } else if (configs.enableStickersFreeToPlay && subType == 'FREE_TO_PLAY') {\n stickerText = this.messages.sticker_free_to_play!;\n } else if (configs.enableStickersFreePlayTech && subType?.toLowerCase() == 'free_play_tech') {\n stickerText = this.messages.sticker_free_play_tech!;\n }\n const stickerItem = {\n minutes: minutes,\n optinExpiryDate: raceItem.optinExpiryDate,\n optinExpiryTime: raceItem.optinExpiryTime,\n endDate: raceItem.endDate,\n stickerText: [stickerText],\n };\n if (stickerText !== undefined) {\n this.stickerMap.set(gameName, { data: stickerItem });\n }\n }\n }\n\n getResultsHistory(to: string, from?: string): Observable {\n return this.getResultsHistoryFromAPI(to, from).pipe(\n map((data: any) => {\n if (data && data.rankDetails && data.rankDetails.length > 0) {\n const resultHistory = this.formatResults(data.rankDetails);\n return resultHistory;\n }\n return null;\n }),\n catchError((error: any) => {\n return throwError(error);\n }),\n );\n }\n\n private formatResults(results: ResultsHistory[]) {\n let prizes: any;\n let beatBanker: any;\n results.forEach((result: ResultsHistory) => {\n this.filterPromoGames(result);\n result.startDate = new Date(result.slotStartDate);\n result.endDate = new Date(result.slotEndDate);\n result.dateStr = result.startDate.getDate() + '-' + (result.startDate.getMonth() + 1) + '-' + result.startDate.getFullYear();\n if ((result.content && result.content.promotion && result.content.promotion.prizes) || result?.content?.promotion?.beatBanker) {\n if (result.configMaps && result.configMaps[0]?.awardType) {\n result.isWin = true;\n } else {\n result.isWin = false;\n }\n prizes = this.getParsedData(result.content.promotion.prizes);\n if (result?.content?.promotion?.beatBanker) {\n result.isBeatBanker = true;\n beatBanker = this.getParsedData(result.content.promotion.beatBanker);\n }\n prizes?.forEach((prize: any) => {\n if (result.rank >= Number(prize.FromRank) && result.rank < Number(prize.ToRank)) {\n result.prizeIcon = prize.Icon;\n }\n });\n beatBanker?.forEach((banker: any) => {\n if (result.configMaps && result?.configMaps[0]?.awardType && result?.configMaps[0]?.value) {\n result.prizeIcon = banker.Icon;\n }\n });\n }\n });\n return results;\n }\n\n getParsedData(data: any) {\n try {\n return JSON.parse(data);\n } catch {\n return null;\n }\n }\n\n updateGameMetaData(data: any[]): void {\n this.gameMetadata = this.buildGameIdBasedMetadataIndex(data);\n this.populateRacesObject();\n }\n\n private buildGameIdBasedMetadataIndex(metadata: Array): { [game: string]: object } {\n const indexedMetadata: { [game: string]: object } = {};\n if (metadata && metadata.length) {\n this.isGameMetadataAvailable = true;\n metadata\n .filter((item) => item)\n .forEach((metadataItem) => {\n if (!indexedMetadata[metadataItem.game.trim()]) {\n indexedMetadata[metadataItem.game.trim()] = metadataItem;\n }\n });\n return indexedMetadata;\n }\n return {};\n }\n\n private getRacesFromAPI(params: any): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['racesList'], params, { withCredentials: true });\n }\n\n private getLeaderboardFromAPI(promoId: number, slotId: number, maxRank: number, fromResultsHistory: boolean): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(\n apiPathsConfig.slotRaces['racesLeaderboard'],\n { prmId: promoId, slotId: slotId, maxRank: maxRank, fromResultsHistory: fromResultsHistory },\n { withCredentials: true },\n );\n }\n\n private getResultsHistoryFromAPI(to: string, from?: string): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['racesResults'], { fromDate: from, endDate: to }, { withCredentials: true });\n }\n\n private getPrizesFromAPI(): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['racesPrizes'], {}, { withCredentials: true });\n }\n\n updateOptinStatus(promoId: number, slotId: number, coinsForOptin: number): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['racesOptin'], { prmId: promoId, slotId, coinsForOptin }, { withCredentials: true });\n }\n\n GetCoinBalnce(): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['racesCoinBalance'], {}, { withCredentials: true });\n }\n\n updateNotificationStatus(promoId: number, slotId: number, notificationStatus: boolean): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces['raceUpdateNotification'], { promoId, slotId, notificationStatus }, { withCredentials: true });\n }\n\n notificationPopupTimeout(): number {\n const config = this.configProviderService.provideSlotRacesConfig();\n return config.notificationPopupTimeout;\n }\n\n addErrorMessage(errCode: number): void {\n this.messageQueue.clear();\n const msg = this.getErrorMessage(errCode);\n if (msg) {\n this.messageQueue.addError(msg, MessageLifetime.Single, 'casinocorelobby');\n window.scrollTo(0, 0); //added so that the error message is visible to the user as vanilla scroll is not wokring properly here. Assumption agreed upon after discussion is that the error message panel would always be at the top of the lobby\n }\n }\n\n getErrorMessage(errCode: number): string {\n if (this.contentData && this.contentData.errorMessages && this.contentData.errorMessages.versionedList) {\n if (this.contentData.errorMessages.versionedList[errCode]) return this.contentData.errorMessages.versionedList[errCode]!;\n else return this.contentData.errorMessages.versionedList['defaultErrorCode']!;\n //add this to sitecore\n }\n return '';\n }\n\n globalTimerCountDown(): void {\n this.timer = setInterval(() => {\n this.globalTimerPublisher.next({ timerInterval: this.globalTimerInterval });\n }, this.globalTimerInterval);\n }\n\n forceOptin() {\n const forceOptinRace = sessionStorage.getItem('ForceOptin');\n if (forceOptinRace) {\n const parsedForceOptinRace = (forceOptinRace && JSON.parse(forceOptinRace)) || {};\n sessionStorage.removeItem('ForceOptin');\n const promoId = parsedForceOptinRace.promoId;\n const slotId = parsedForceOptinRace.slotUniqueId;\n const coinsForOptin = parsedForceOptinRace.coinsForOptin;\n this.updateOptinStatus(promoId, slotId, coinsForOptin).subscribe(\n () => {\n this.forcRacepublisher.next({ race: parsedForceOptinRace });\n },\n (error: SlotRacesResponseError) => {\n this.addErrorMessage(error.errorCode);\n },\n );\n }\n }\n forceCoinBalance() {\n const forceCoinBalance = sessionStorage.getItem('forceCoinBalance');\n if (forceCoinBalance) {\n const parsedForceCoinBalance = (forceCoinBalance && JSON.parse(forceCoinBalance)) || {};\n sessionStorage.removeItem('forceCoinBalance');\n this.GetCoinBalnce().subscribe(\n (coinBal: any) => {\n this.forceCoinBalancepublisher.next({ coinBal: coinBal, race: parsedForceCoinBalance });\n },\n (error: SlotRacesResponseError) => {\n this.addErrorMessage(error.errorCode);\n },\n );\n }\n }\n\n getCurrentRaces(): any {\n const liveRaces = this.liveRacesPublisher.value;\n const upcomingRaces = this.upcomingRacesPublisher.value;\n const data = {\n liveNow: liveRaces.liveNow || [],\n upcomingToday: upcomingRaces.upcomingToday || [],\n upcomingTomorrow: upcomingRaces.upcomingTomorrow || [],\n };\n return data;\n }\n\n private updateLobbyNavigation(): void {\n const configs = this.configProviderService.provideSlotRacesConfig();\n if (configs.disableWhenNoPromotions) {\n combineLatest(this.liveRacesData, this.upcomingRacesData).subscribe((races: any) => {\n let newNavCategoryVisibility: boolean;\n if (\n races &&\n ((races[0] && races[0].liveNow && races[0].liveNow.length) ||\n (races[1] &&\n ((races[1].upcomingToday && races[1].upcomingToday.length) ||\n (races[1].upcomingTomorrow && races[1].upcomingTomorrow.length))))\n ) {\n newNavCategoryVisibility = true;\n } else {\n newNavCategoryVisibility = false;\n }\n if (newNavCategoryVisibility !== this.isNavCategoryVisible) {\n this.isNavCategoryVisible = newNavCategoryVisibility;\n this.updateNavigationCategories.next(true);\n }\n });\n }\n }\n\n setSlotRacesParams(lobbyType: string): void {\n this.slotRacesCategoryId = this.casinoManager.getSlotRaceCategoryId(lobbyType);\n const configs = this.configProviderService.provideSlotRacesConfig();\n const features = this.configProviderService.provideFeaturesConfig();\n if (this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, features.enableSlotRacesForLobbyType)) {\n if (this.user.isAuthenticated || (!this.user.isAuthenticated && configs.enablePreLogin)) {\n this.isSlotRacesEnabled = true;\n }\n }\n }\n\n gameClose(category: string): void {\n if (this.isSlotRacesEnabled) {\n const slotRacesCategory = this.slotRacesCategoryId;\n const cardsCarousel = document.getElementById('casinotournamentscards');\n if (cardsCarousel) {\n this.startLiveSlotPolling();\n this.getRaces();\n } else if (category === slotRacesCategory) {\n this.getRaces();\n }\n }\n }\n\n getOrderedGames(race: any = []): string[] {\n const lmtGames = this.categoryMap?.length && this.categoryMap.filter((item: any) => item.categoryname == race.promoId)[0]?.gamelist;\n if (lmtGames?.length > 0) {\n const tempArray: any[] = [];\n const patGames = race.gameVariantList;\n for (let i = 0; i < lmtGames.length; i++) {\n if (patGames.includes(lmtGames[i].game)) {\n tempArray.push(lmtGames[i].game);\n }\n }\n return Array.from(new Set(tempArray.concat(patGames)));\n } else {\n return race.gameVariantList;\n }\n }\n updateCoinIcon(value: boolean) {\n if (value) {\n this.isCoin = value;\n }\n }\n getcoinValue() {\n return this.isCoin;\n }\n\n selectedEntryFilter(entryFilter: any) {\n if (entryFilter) {\n this.selectedFilteredtOption = entryFilter;\n }\n }\n getselectedEntryFilter() {\n return this.selectedFilteredtOption;\n }\n getlmtData(lmtData: LobbyItem) {\n this.categoryMap = lmtData.categoriesMap?.values()?.next()?.value?.subcategories;\n }\n\n bindCoinImg(race: any, coinImg: string) {\n const raceObj = {\n isDisplayCoin: false,\n coinSrc: '',\n };\n if (race) {\n if (race?.additionalParams?.awardType !== 'COINS' && race?.additionalParams?.isCoinAward === 'YES') {\n raceObj.isDisplayCoin = true;\n raceObj.coinSrc = coinImg;\n } else {\n raceObj.isDisplayCoin = false;\n raceObj.coinSrc = '';\n }\n }\n return raceObj;\n }\n getCoinDetails(): Observable {\n return this.api.get('CoinAnimation/GetCoinDetails', {}, { responseType: 'json', withCredentials: true, showSpinner: false });\n }\n\n getAwardTypeDetails(race: any, messages: any) {\n if (race) {\n const awardType = 'AwardType_' + race?.additionalParams?.awardType?.toLowerCase();\n const awardTypeDescription = messages[awardType];\n return awardTypeDescription || null;\n }\n }\n}\n","
\n \n \n \n \n \n \n
\n
\n
\n
\n {{ date | date: 'shortTime' }}\n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n {{ date | date: 'shortTime' }}\n
\n \n
\n \n\n
\n
\n
\n
\n \n 0\">\n
{{ Global.messages.RecentlyPlayedGames }}
\n
\n \n \n
\n
\n
\n 0\">\n
{{ GamesyouMightLikeMessage }}
\n
\n \n \n
\n
\n
\n \n \n \n\n","import { DOCUMENT, DatePipe, Location, NgClass, NgFor, NgIf, NgStyle, SlicePipe } from '@angular/common';\nimport { AfterViewInit, Component, DoCheck, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n CommonMessages,\n CookieService,\n DeviceService,\n Logger,\n MessageLifetime,\n MessageQueueService,\n NavigationService,\n Page,\n ProductHomepagesConfig,\n TrackingService,\n UserService,\n WindowRef,\n} from '@frontend/vanilla/core';\nimport { BalancePropertiesService } from '@frontend/vanilla/features/balance-properties';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { TrustAsResourceUrlPipe } from '@frontend/vanilla/shared/browser';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CashierIframeComponent } from '../cashier-iframe/cashier-iframe.component';\nimport { GamePopoutComponent } from '../cashier-iframe/game-pop-out.component';\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { GameManagerService } from '../casino-lobby-manager/game-manager/game-manager.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { GameEmbedComponent } from '../game-embed/game-embed.component';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { LazySearchDesktopComponent } from '../search-desktop/lazy-search-desktop.component';\nimport { AdvanceGameDataService } from '../shared/advance-game-data.service';\nimport { ApiPathsHelperService } from '../shared/api-paths-helper-service';\nimport { CashierService } from '../shared/cashier.service';\nimport { CasinoManager } from '../shared/casino-manager.service';\nimport { CasinoWidgetService } from '../shared/casino-widget.service';\nimport { ConstService } from '../shared/const.service';\nimport { FavouriteService } from '../shared/favourite.service';\nimport { FreespinSummaryService } from '../shared/freespins-summary.service';\nimport { GameDataManager } from '../shared/game-data-manager.service';\nimport { GameLaunchTrackingService } from '../shared/game-launch-tracking.service';\nimport { InvokerProductService } from '../shared/invoker-product.service';\nimport { JackpotService } from '../shared/jackpot.service';\nimport { JackpotDataService } from '../shared/jackpotdata-service';\nimport { GameLobbyModel } from '../shared/models/game-lobby.model';\nimport { GameLaunch } from '../shared/models/gamelaunch.model';\nimport { OpenLoginDialog } from '../shared/open-login-dialog-v6';\nimport { RecentGamesService } from '../shared/recent-games.service';\nimport { UnfinishedGamesService } from '../shared/unfinished-games-service';\nimport { SlotRacesService } from '../slot-races/shared/slot-races.service';\nimport { CasinoCoreGameLaunchFactoryService } from './../shared/gamelaunchfactory.service';\n\n@Component({\n selector: 'cc-embedded-game-view',\n templateUrl: 'embedded-game-view.component.html',\n standalone: true,\n imports: [\n MessagePanelComponent,\n NgIf,\n NgClass,\n NgStyle,\n NgFor,\n GameEmbedComponent,\n SlicePipe,\n DatePipe,\n TrustAsResourceUrlPipe,\n LazySearchDesktopComponent,\n ],\n})\nexport class EmbeddedGameViewComponent implements OnInit, DoCheck, OnDestroy, AfterViewInit {\n @Input() borderRadius: any;\n @Input() gameEmbedPop: any;\n @Input() lobbyType: any;\n @Output() sendDataToEmbeddedGamePopUp = new EventEmitter();\n @Output() sendDialogCloseEventToEmbeddedGamePopUp = new EventEmitter();\n @Input() errorMessageQueue: any;\n value: string;\n Game: any;\n favouriteGames: any;\n useFavouriteGames: boolean;\n Favorites: boolean;\n isIframeVisible: boolean = false;\n gameIds: any = [];\n isGreaterthan: boolean = false;\n iframe: any;\n RecentlyPlayedNGamesUMightLike: any;\n RecentlyPlayed: any;\n getCategory: any;\n jackpotsFeed: any;\n isFullScreen: boolean = false;\n extrasColumnFlag: boolean = false;\n RecentlyPlayedGamesList: any = [];\n gamesUMightLikeList: any = [];\n gamesUMightLikeStringList: any = [];\n recentlyPlayedGamesStringList: any = [];\n mobHeight: any;\n mobWidth: any;\n isLiveDealerOpen: any;\n date: Date;\n gameWindowReference: any;\n iframeUrl: string;\n iconShrinkClickedFirst: boolean = false;\n depositButtonString: string;\n catgeoryDataClientConfig: any;\n globalsearchconfig: any;\n embededPopUpWidth: any;\n embededPopUpHeight: any;\n gameLaunchSuccess: boolean;\n unfinishedGamesResource: any;\n unfinishedgameMessgaes: any;\n teaserLaunchRealtiveUri: string;\n recentGames: any = ConstService.RECENT_GAMES_CATEGORY_ID;\n GYML: any = ConstService.GYML_GAMES_CATEGORY_ID;\n EGV_GYML: any = ConstService.EGV_GYML;\n commonMessages: any;\n isLoaderHide: boolean;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n isTouch: boolean;\n recommendationGames: any = [];\n recommendationGamesList: any = [];\n combineData: any = [];\n multipleGameLaunched: boolean = false;\n isQDAllowed: boolean;\n gameclickedfromsearch: boolean;\n Global: any;\n recentObs: Subscription;\n GamesyouMightLikeMessage: string;\n category: string;\n unsubscribe: Subject;\n gameCloseAckEventReceived: boolean;\n gameConfig: any;\n game: any;\n index: number;\n section: string;\n popUpClicked: boolean;\n summaryPopUpIsOpened: boolean;\n casinoCoreGamelaunchService: any;\n allowAttributes: string;\n isMobileView: boolean;\n iconsNewPosition: boolean;\n isGameCloseTracked: boolean = false;\n enableEpcotSubNavigation: boolean;\n rpGameClickedEGV: boolean = false;\n titlePopout: string = '';\n titleFullScreen: string = '';\n titleExitFullScreen: string = '';\n egvOverlayFlag: boolean = false;\n cozyBingoIframe: any;\n\n constructor(\n private user: UserService,\n private recentGameService: RecentGamesService,\n private favouriteService: FavouriteService,\n private gameDataManager: GameDataManager,\n @Inject(DOCUMENT) private document: any,\n private api: PlatformApiService,\n private jackpotService: JackpotService,\n private messageQueue: MessageQueueService,\n private dialog: MatDialog,\n private balanceService: BalancePropertiesService,\n private cookie: CookieService,\n private navigationService: NavigationService,\n private tracking: TrackingService,\n private location: Location,\n private unfinishedGamesService: UnfinishedGamesService,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n private loginDialogService: OpenLoginDialog,\n private commonMessagesObject: CommonMessages,\n private casinoManager: CasinoManager,\n private jackpotDataService: JackpotDataService,\n private m2Page: Page,\n private route: ActivatedRoute,\n private casinoWidgetService: CasinoWidgetService,\n private productHomepagesConfig: ProductHomepagesConfig,\n private freespinSummaryService: FreespinSummaryService,\n private cashierService: CashierService,\n private readonly configProviderService: ConfigProviderService,\n private casinoLobbyService: CasinoLobbyService,\n private advanceGameDataService: AdvanceGameDataService,\n private slotRacesService: SlotRacesService,\n private apiPathsHelperService: ApiPathsHelperService,\n private deviceService: DeviceService,\n private readonly windowRef: WindowRef,\n private gameLaunchTrackingService: GameLaunchTrackingService,\n private invokerProductService: InvokerProductService,\n private logger: Logger,\n private gameManagerService: GameManagerService,\n ) {\n this.unsubscribe = new Subject();\n }\n\n ngOnInit() {\n this.casinoCoreGamelaunchService = this.gameLaunchFactoryService.getGameLaunchService();\n this.gameConfig = this.configProviderService.provideGameConfig();\n this.allowAttributes = this.gameConfig.iframeAllowattributes;\n this.Game = this.gameEmbedPop.game;\n this.iframeUrl = this.gameEmbedPop.iframeUrl;\n this.cozyBingoIframe = document.getElementsByClassName('cozy-bingo-iFrame').length\n ? (document.getElementsByClassName('cozy-bingo-iFrame')[0] as HTMLIFrameElement)\n : null;\n this.category = this.gameEmbedPop.categoryType;\n this.setGameTitle();\n const features = this.configProviderService.provideFeaturesConfig();\n this.Global = this.configProviderService.provideGlobalConfig();\n this.globalsearchconfig = this.configProviderService.provideGlobalSearchConfig();\n this.GamesyouMightLikeMessage = this.Global.messages['EmbeddedYouMightLike']\n ? this.Global.messages['EmbeddedYouMightLike']\n : this.Global.messages['GamesYouMightLike'];\n this.isTouch = this.casinoManager.isTouch();\n this.iconsNewPosition = features.enableNewEmbeddedViewIconsPosition;\n const product = this.casinoManager.getProductForLobbyType(this.lobbyType);\n const homeUrl = this.route.snapshot.queryParamMap.get('widgetHomeUrl');\n if (this.Global.messages['TooltipPopOut']) this.titlePopout = this.Global.messages['TooltipPopOut'];\n if (this.Global.messages['TooltipFullScreen']) this.titleFullScreen = this.Global.messages['TooltipFullScreen'];\n if (this.Global.messages['TooltipExitFullScreen']) this.titleExitFullScreen = this.Global.messages['TooltipExitFullScreen'];\n if (homeUrl && homeUrl.length > 0) {\n this.casinoManager.setGameHomeUrl(homeUrl);\n }\n\n if (features.checkQDAllowedForDepositURL) {\n this.cashierService.getQuickDepositAllowedStatus().subscribe((response) => {\n this.isQDAllowed = response.isQuickDepositAllowed;\n this.depositButtonString = this.isQDAllowed ? this.Global.messages['QuickDeposit'] : this.Global.messages['Deposit'];\n });\n }\n\n this.teaserLaunchRealtiveUri = '/' + product + '/launchng/';\n this.messageQueue.clear({ clearPersistent: true });\n this.commonMessages = this.commonMessagesObject;\n if (!this.lobbyType) {\n this.lobbyType = this.casinoManager.getLobbyType();\n }\n this.useFavouriteGames = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.favouriteGamesLobbyType);\n this.recommendationFeed(this.Game.gameId);\n const nonCriticalConfig: any = this.configProviderService.provideNonCriticalConfig();\n if (this.user.isAuthenticated && !nonCriticalConfig.enableRecommendationGames) {\n this.getGamesYouMightLikeOnLMT();\n }\n\n const recentGamesString = this.recentGameService.getrecentGames();\n this.assignRecentlyPlayedGames(recentGamesString);\n this.recentObs = this.recentGameService.recentGamesFeedObservable.subscribe((response: any) => {\n if (response) {\n this.assignRecentlyPlayedGames(response);\n }\n });\n this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.setGameTitle();\n }\n });\n\n this.RecentlyPlayedNGamesUMightLike = this.casinoLobbyService.getCategoryInfo(this.lobbyType, ConstService.RECENT_GAMES_CATEGORY_ID);\n this.favouriteService.favouriteGamesFeedObservable.subscribe((favouriteGameIds) => {\n if (favouriteGameIds) {\n this.Game.isFavourite = favouriteGameIds.indexOf(this.Game.gameId) > -1;\n }\n });\n\n if (\n this.Global.lobbyConfigurations.FavouriteHeart === 'true' ||\n this.Global.lobbyConfigurations.FavouriteHeart === 'True' ||\n this.Global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n this.isLoaderHide = false;\n this.depositButtonString = this.isQDAllowed ? this.Global.messages['QuickDeposit'] : this.Global.messages['Deposit'];\n this.maximizeFullScreen();\n this.gameLaunchSuccess = true;\n if (features.useSingleCookieForGameIndexCountInEGV) {\n this.multipleGameLaunched = this.getFromCookie('gameIndexCount');\n } else {\n this.multipleGameLaunched = this.getFromCookie('gameLaunchedCount');\n }\n if (this.multipleGameLaunched) {\n this.gameLaunchSuccess = false;\n if (!this.iconsNewPosition) {\n const message = this.Global.messages['OnlyOneGameAtTime'];\n if (message) {\n this.messageQueue.addError(message, MessageLifetime.Single, 'embeddedGameError');\n }\n } else {\n this.sendDialogCloseEventToEmbeddedGamePopUp.emit(this.Game);\n return;\n }\n } else {\n if (!this.iframeUrl && this.errorMessageQueue) {\n this.gameLaunchSuccess = false;\n this.messageQueue.add(this.errorMessageQueue);\n }\n const subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n }\n\n this.date = new Date();\n this.Favorites = false;\n\n //emit event to stop schedule polling in bingo\n this.stopSchedulePollingInBingo(true, true);\n }\n\n ngAfterViewInit() {\n document.getElementById('embedGameIframe')?.setAttribute('allow', this.allowAttributes);\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition && this.deviceService.isTouch) {\n this.embeddedGameOverlayTopAllignment();\n }\n }\n recommendationFeed(gameid: string) {\n //when user logged into account,then hit recomendation feed\n const nonCriticalConfig: any = this.configProviderService.provideNonCriticalConfig();\n if (this.user.isAuthenticated && nonCriticalConfig.enableRecommendationGames) {\n //Url pattern creation\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n const recommendationUrl = this.apiPathsHelperService.transformApi(apiPathsConfig.gameData['gameRecommendations'], gameid);\n //api call\n this.api.get(`/games/api/${recommendationUrl}`).subscribe((response: any) => {\n if (response) {\n //response\n this.recommendationGames = response.recommendationgames;\n //calling function\n this.getGamesYouMightLikeOnLMT();\n }\n });\n }\n }\n setGameTitle() {\n const lmtGameMetaData: any = this.gameManagerService.getGameInfo(this.Game.gameId);\n if (this.Game && this.Game.name) {\n this.Game.title = this.Game.name;\n } else if (lmtGameMetaData) {\n this.Game.title = lmtGameMetaData.name;\n }\n }\n\n setToCookie(key: any, value: any) {\n this.cookie.put(key, value);\n }\n getFromCookie(key: any): boolean {\n if (this.cookie.get(key) === '1') {\n return true;\n }\n return false;\n }\n GetParam(name: any, url: any) {\n const results = new RegExp('[\\\\?&]' + name + '=([^&#]*)').exec(url);\n if (!results) {\n return 0;\n }\n return results[1] || 0;\n }\n\n /*\n Author : Naresh Tatikonda\n Purpose : preparing recommendation games array based on conditions\n */\n\n getGamesYouMightLikeOnLMT() {\n /*\n condution checks,when recommendationsgames length <6 ,then merging recommendation games and gamesyoumightlike games object\n */\n if (this.recommendationGames.length < 6 || this.recommendationGames.length == 0) {\n const disabledGames: any = this.casinoLobbyService.getDisabledGames();\n const gamesYouMightLikeDataSet = this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML');\n if (gamesYouMightLikeDataSet && gamesYouMightLikeDataSet.categoryInfo && gamesYouMightLikeDataSet.categoryInfo.gamelist.length > 0) {\n const gamesModellist = gamesYouMightLikeDataSet.categoryInfo.gamelist;\n for (let i = 0; i < gamesModellist.length; i++) {\n const gameModelItem: any = gamesModellist[i];\n const filteredGame: any = disabledGames.filter((disabledGame: any) => disabledGame === gameModelItem.game);\n if (!(filteredGame && filteredGame.length > 0)) {\n gameModelItem.icon = '1';\n const gamelobbyModel: GameLobbyModel = this.gameDataManager.setGameLobbyModel(gameModelItem, this.isTouch);\n gamelobbyModel.jackpotvalue = this.getJackpotValueForGame(gamelobbyModel);\n if (this.gamesUMightLikeList.length > 0) {\n if (!this.gamesUMightLikeList.find((game: any) => game.gameId === gamelobbyModel.gameId)) {\n this.gamesUMightLikeList.push(gamelobbyModel);\n }\n } else {\n this.gamesUMightLikeList.push(gamelobbyModel);\n }\n }\n }\n }\n this.assignRecommendationGamesList(this.recommendationGames);\n this.combineData = this.recommendationGamesList.concat(this.gamesUMightLikeList);\n //filter for remove duplicate objects from array object\n this.recommendationGamesList = Array.from(this.combineData.reduce((m: any, t: any) => m.set(t.gameId, t), new Map()).values());\n } else {\n //here recommendation games count >=6\n this.recommendationGamesList = this.assignRecommendationGamesList(this.recommendationGames);\n }\n }\n\n /*\n Author : Naresh Tatikonda\n Purpose : preparing recommendation games array from list of string\n */\n assignRecommendationGamesList(gameslist: string[]) {\n const recommendationGamesData = this.assignGames(gameslist);\n this.recommendationGamesList = [];\n recommendationGamesData.forEach((game: any) => {\n this.recommendationGamesList.push(this.getJackpotValueForGame(game));\n });\n if (this.recommendationGamesList && this.recommendationGamesList.length > 0) {\n this.recommendationGamesList = this.recommendationGamesList.filter((item: any) => {\n return !item.isDataNotAvailable;\n });\n\n return this.recommendationGamesList;\n }\n }\n\n assignRecentlyPlayedGames(gameslist: string[]) {\n const unfinishedGames = this.unfinishedGamesService.getUnfinishedGames();\n if (gameslist && gameslist.length > 0) {\n gameslist = gameslist.filter((a) => unfinishedGames.indexOf(a) === -1);\n }\n const recentandUnfinishedGames = unfinishedGames.concat(gameslist);\n const RecentlyPlayedGameData = this.assignGames(recentandUnfinishedGames);\n this.RecentlyPlayedGamesList = [];\n RecentlyPlayedGameData.forEach((game: any) => {\n this.RecentlyPlayedGamesList.push(this.getJackpotValueForGame(game));\n });\n if (this.RecentlyPlayedGamesList && this.RecentlyPlayedGamesList.length > 0) {\n this.RecentlyPlayedGamesList = this.RecentlyPlayedGamesList.filter((item: any) => {\n return !item.isDataNotAvailable;\n });\n }\n }\n\n assignGamesYouMightLike(gameslist: any[]) {\n const GYMLGameData = this.assignGames(gameslist);\n this.gamesUMightLikeList = [];\n if (GYMLGameData.length > 0) {\n GYMLGameData.forEach((games: any) => {\n if (!this.gamesUMightLikeList.find((game: any) => game.gameId === games.gameId)) {\n this.gamesUMightLikeList.push(this.getJackpotValueForGame(games));\n }\n });\n }\n }\n\n assignGames(gameslist: any): any {\n const gamesData: any = [];\n const defaultGamesModel: any = this.gameDataManager.setDefaultGameIcons(gameslist);\n for (let i = 0; i < defaultGamesModel.length; i++) {\n const gameInfo: any = this.gameManagerService.getGameInfo(defaultGamesModel[i].game);\n if (gameInfo) {\n const gamelobbyModel: GameLobbyModel = this.gameDataManager.setGameLobbyModel(gameInfo, this.isTouch);\n gamelobbyModel.isUnfinished = this.getUnfinishedStatus(gamelobbyModel.gameId);\n gamelobbyModel.jackpotvalue = this.jackpotDataService.getGameJackpotValue(gamelobbyModel.gameId);\n gamesData.push(gamelobbyModel);\n }\n }\n return gamesData;\n }\n\n getUnfinishedStatus(gameId: string): boolean {\n const unfinishedGamesArray: any = this.unfinishedGamesService.getUnfinishedGames();\n return unfinishedGamesArray.indexOf(gameId) != -1;\n }\n\n //Assign Jackpot Stickers to game\n getJackpotValueForGame(game: any) {\n this.jackpotsFeed = this.jackpotService.getJackpotData();\n if (this.jackpotsFeed) {\n for (const key in this.jackpotsFeed) {\n if (this.jackpotsFeed[key].gamesAvailable.indexOf(game.gameId) !== -1) {\n game.jackpotValue = this.jackpotsFeed[key].amount;\n return game;\n }\n }\n }\n return game;\n }\n\n refreshJackpots() {\n this.jackpotsFeed = this.jackpotService.getJackpotData();\n if (this.jackpotsFeed) {\n for (const key in this.jackpotsFeed) {\n this.RecentlyPlayedGamesList.forEach((g: any) => {\n if (this.jackpotsFeed[key].gamesAvailable.indexOf(g.gameId) !== -1) {\n g.jackpotValue = this.jackpotsFeed[key].amount;\n }\n });\n\n this.gamesUMightLikeList.forEach((g: any) => {\n if (this.jackpotsFeed[key].gamesAvailable.indexOf(g.gameId) !== -1) {\n g.jackpotValue = this.jackpotsFeed[key].amount;\n }\n });\n }\n }\n }\n\n handleScreenChange(event: any) {\n this.maximizeFullScreen();\n event.stopImmediatePropagation();\n }\n\n @HostListener('window:message', ['$event']) closeOnRCPUClose(event: any) {\n if (event?.data?.gamechange === 'GAME_CHANGED') {\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.updateGameInfo(event?.data?.gamevariantname);\n this.close(false, false, true, false, false);\n }\n if (event?.data?.type === 'GAME_CHANGED_MINIGAME') {\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.updateGameInfo(event?.data?.data);\n this.close(false, false, true, false, false);\n }\n if ((event.data === 'CASINO_GAME_CLOSED' || event.data === 'CASINO_GAME_EXIT') && !this.rpGameClickedEGV) {\n this.logger.info('[Casino Portal]', '[EGV]', '[Event Handler]', '[CASINO_GAME_CLOSED]', this.get_formatted_timestamp());\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.close(false);\n }\n if (this.gameConfig.enableArcPlayBreakEvent && event.data === 'ARC_CASINO_GAME_CLOSE') {\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.logger.info('Received by Casino_Portal' + 'ARC_CASINO_GAME_CLOSE');\n this.close(false);\n }\n if (event.data === 'PREVIOUS_CASINO_GAME_CLOSED_ACK' && !this.gameclickedfromsearch) {\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.logger.info('Received by Casino_Portal' + 'PREVIOUS_CASINO_GAME_CLOSED_ACK');\n this.close(true, false, false);\n }\n //Portugal game close changes\n if (event.data === 'PREVIOUS_CASINO_GAME_CLOSED_ACK' && this.gameConfig.isGameCloseAckEventEnabled) {\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.logger.info('Received by Casino_Portal' + 'PREVIOUS_CASINO_GAME_CLOSED_ACK');\n if (this.gameclickedfromsearch) {\n this.gameclickedfromsearch = false;\n this.gameClickedProcessing(this.game, this.index, this.section);\n } else if (this.popUpClicked) {\n this.popUpClicked = false;\n this.popUpClickedProcessing();\n }\n }\n if (event.data === 'CASINOGAME_IDLE_LOGGED_OUT') {\n this.logger.info('[Casino Portal]', '[EGV]', '[Event Handler]', '[CASINOGAME_IDLE_LOGGED_OUT]', this.get_formatted_timestamp());\n this.gameCloseAckEventReceived = true;\n this.summaryPopUpIsOpened = false;\n this.close(true, true);\n }\n if (event.data === 'CASINO_GAME_STARTED') {\n this.rpGameClickedEGV = false;\n this.logger.info('Received by Casino_Portal' + 'CASINO_GAME_STARTED');\n if (this.gameConfig.enableGamestartCookie) this.setToCookie('gameInProgress', 1);\n }\n if (this.gameConfig.egvOverlayFlag) {\n if (event.data === 'EGV_SHOW_OVERLAY') {\n this.egvOverlayFlag = true;\n } else if (event.data === 'EGV_REMOVE_OVERLAY') {\n this.egvOverlayFlag = false;\n }\n }\n }\n\n updateGameInfo(gameId: string) {\n const gameMetaData: any = this.casinoLobbyService.getGameMetaData()?.get(gameId);\n if (gameMetaData) {\n const returnUrl: string = this.Game.returnUrl;\n this.Game = this.gameDataManager.setGameLobbyModel(gameMetaData, false);\n this.setGameTitle();\n this.Game.returnUrl = returnUrl;\n this.Game.isFavourite = this.favouriteService.checkForFavouriteGame(this.Game);\n const gameModel: any = {};\n gameModel.game = this.Game;\n gameModel.game.lobbyType = gameModel?.game?.lobbyType ? gameModel.game.lobbyType : this.lobbyType;\n this.casinoCoreGamelaunchService.getDesktopGameLaunchUrl(gameModel, (callbackResponse: any) => {\n setTimeout(() => {\n this.iframeUrl = callbackResponse.iframeUrl;\n });\n });\n }\n }\n\n @HostListener('window:unload', [])\n unloadHandler() {\n this.cookie.remove('gameLaunchedCount');\n this.setToCookie('gameIndexCount', 0);\n this.cookie.remove('gameInProgress');\n }\n\n @HostListener('document:fullscreenchange', ['$event']) fullscreenchangeHandler(event: KeyboardEvent) {\n this.isFullScreen = this.document['webkitIsFullScreen'];\n this.handleScreenChange(event);\n }\n @HostListener('document:webkitfullscreenchange', ['$event']) webkitfullscreenchangeHandler(event: KeyboardEvent) {\n this.isFullScreen = this.document['webkitIsFullScreen'];\n this.handleScreenChange(event);\n }\n @HostListener('document:mozfullscreenchange', ['$event']) mozfullscreenchangeHandler(event: KeyboardEvent) {\n const doc: any = document;\n this.isFullScreen = doc.mozFullScreen;\n this.handleScreenChange(event);\n }\n @HostListener('document:MSFullscreenChange', ['$event']) MSFullscreenChangeHandler(event: KeyboardEvent) {\n this.isFullScreen = this.document['webkitIsFullScreen'];\n this.handleScreenChange(event);\n }\n\n ngDoCheck() {\n this.date = new Date();\n }\n close(\n fromEmbedded: boolean,\n skipRefresh: boolean = false,\n triggerRecentGameCall: boolean = true,\n closeGamePopUp: boolean = true,\n gameExited: boolean = true,\n ) {\n if (!this.summaryPopUpIsOpened) {\n dispatchEvent(new CustomEvent('portal_chat_reconnect'));\n this.windowRef.nativeWindow['gamification_initialized'] = false;\n this.slotRacesService.gameClose(this.category);\n this.emitVideoStatus();\n const freespinsConfig = this.configProviderService.providefreeSpinsClientConfig();\n const mcPage = this.configProviderService.provideMcPageConfig();\n const widgetPosition = this.casinoWidgetService.getWidgetPosition();\n const launchCategory = this.route.snapshot.queryParamMap.get('launchCategory');\n //let nav = this.Navigator;\n this.cookie.remove('PCGameData');\n this.messageQueue.clear({ clearPersistent: true });\n if (fromEmbedded && !this.getFromCookie('gamePopOutWindow')) {\n this.cookie.remove('gameLaunchedCount');\n this.setToCookie('gameIndexCount', 0);\n this.cookie.remove('gameInProgress');\n }\n if (fromEmbedded) {\n this.gameclickedfromsearch = false;\n }\n if (!skipRefresh) {\n this.balanceService.refresh();\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n this.api.get(apiPathsConfig.ping['pgKeepAlive'], null, { withCredentials: true }).subscribe(() => {});\n }\n // As per Zlatko, this should be removed Vanilla 8 onwards.\n if (gameExited) {\n const iframe = document.getElementById('embedGameIframe') as HTMLIFrameElement;\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage('PREVIOUS_CASINO_GAME_CLOSED', '*'); //ask Integration to set cookie to 0 on receipt of this message\n this.logger.info('Sent from Casino_Portal' + 'PREVIOUS_CASINO_GAME_CLOSED');\n this.setToCookie('gameIndexCount', 0);\n }\n }\n const isWidget = this.route.snapshot.queryParamMap.get('widgetGameLaunch');\n if (this.gameConfig.isGameCloseApiEnabled) {\n this.casinoCoreGamelaunchService\n .closeGame(this.Game.gameId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(\n (response: any) => {\n if (response) {\n this.gameCloseAction(closeGamePopUp);\n }\n },\n () => {\n this.gameCloseAction(closeGamePopUp);\n },\n );\n } else if (this.gameConfig.isGameCloseAckEventEnabled && !this.gameCloseAckEventReceived && this.gameLaunchSuccess) {\n this.summaryPopUpIsOpened = true;\n return;\n } else {\n setTimeout(() => {\n this.gameCloseAction(closeGamePopUp);\n }, this.gameConfig.gameCloseDelay);\n }\n\n if (isWidget) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': widgetPosition ? 'X-Sell Casino ' + widgetPosition : 'X-Sell - Sports Widget',\n 'component.LabelEvent': widgetPosition ? 'X-Sell Casino ' + widgetPosition + '|' + launchCategory : 'X-Sell - Sports Widget',\n 'component.ActionEvent': 'Game Exit',\n 'component.LocationEvent': widgetPosition ? 'X-Sell Casino ' + widgetPosition : 'X-Sell Widget',\n 'component.EventDetails': widgetPosition\n ? 'User closes the casino game and is taken back to sports lobby'\n : 'User exits the game and is returned back to sports page',\n 'component.URLClicked': mcPage.invokerProductHomePage.url,\n });\n }\n if (!this.isGameCloseTracked) {\n this.tracking.triggerEvent('gameClose', {\n 'component.gameName': this.Game.gameId,\n 'component.gameType': this.getGameLunchType(this.Game.gameId),\n 'component.gameDisplayName': this.gameManagerService.getGameDisplayName(this.Game.gameId),\n });\n this.isGameCloseTracked = true;\n }\n\n //To update unfinished game stickers.\n if (!skipRefresh) {\n this.unfinishedGamesService.setUnfinishedGames();\n if (triggerRecentGameCall) {\n this.recentGameService.setRecentGames();\n }\n }\n if (freespinsConfig.isFreeSpinSummaryEnabled) {\n this.freespinSummaryService.setFreespinsummary();\n }\n if (this.gameConfig.enableRefreshonGameClose) {\n this.casinoCoreGamelaunchService.playerPlayBreakStatus();\n }\n }\n }\n\n emitVideoStatus() {\n if (!this.getFromCookie('gamePopOutWindow')) this.casinoCoreGamelaunchService?.stopAudio();\n }\n\n gameCloseAction(closeGamePopUp: boolean) {\n const globalJackpotClientConfig = this.configProviderService.provideGlobalJackpotConfig();\n document.body.classList.remove('embed-hide-scroll');\n if (closeGamePopUp) this.sendDataToEmbeddedGamePopUp.emit(this.Game);\n if (this.location.path().indexOf('forcedEmbeddedLaunch') > -1) {\n if (this.casinoManager?.getProductForLobbyType(this.lobbyType)?.toLowerCase() == 'globaljackpot') {\n this.navigationService.goTo('/' + this.m2Page.lang + '/g/' + globalJackpotClientConfig?.globalJackpotPathSegments?.toLowerCase());\n } else {\n this.navigationService.goTo('/' + this.m2Page.lang + '/' + this.casinoManager?.getProductForLobbyType(this.lobbyType)?.toLowerCase());\n }\n }\n }\n\n isCasinoDomain(gameHomeUrl: string): boolean {\n if (!gameHomeUrl) {\n //gameHomeUrl is not set in casino domain\n return true;\n }\n if (gameHomeUrl && gameHomeUrl != '' && gameHomeUrl.indexOf(this.productHomepagesConfig.casino) === 0) {\n return true;\n }\n return false;\n }\n\n urlParser(href: any) {\n const l = document.createElement('a');\n l.href = href;\n return l;\n }\n\n addFavourate(game: any, $event: any) {\n if (this.user.isAuthenticated) {\n $event.stopImmediatePropagation();\n this.favouriteService.toggleGameFavourite(game, false, true);\n } else {\n this.loginDialogService.open({ loginMessageKey: 'Favourite' });\n }\n if (this.Game.isFavourite) {\n this.tracking.triggerEvent('GameInteraction', {\n 'component.Game.interaction': 'Remove_Game_Favorites_EGV',\n });\n } else {\n this.tracking.triggerEvent('GameInteraction', {\n 'component.Game.interaction': 'Add_Game_Favorites_EGV',\n });\n }\n }\n\n openNav() {\n this.isIframeVisible = true;\n this.isGreaterthan = true;\n document.getElementById('mySidenav')!.style.width = '100%';\n document.getElementById('mySidenav')!.style.position = 'fixed';\n }\n closeNav() {\n this.isIframeVisible = false;\n this.isGreaterthan = false;\n document.getElementById('mySidenav')!.style.width = '100%';\n document.getElementById('mySidenav')!.style.position = 'inherit';\n }\n fullScreen() {\n if (this.checkFullScreen()) {\n this.adjustGamesPanel();\n this.requestFullScreen();\n } else {\n this.minimizeFullScreen();\n }\n }\n\n minimizeFullScreen() {\n this.isIframeVisible = false;\n document.getElementById('mySidenav')!.style.width = '100%';\n document.getElementById('mySidenav')!.style.position = 'inherit';\n this.isFullScreen = false;\n if (this.document.cancelFullScreen) {\n this.document.cancelFullScreen();\n } else if (this.document.mozCancelFullScreen) {\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitCancelFullScreen) {\n this.document.webkitCancelFullScreen();\n } else if (this.document.msExitFullscreen) {\n this.document.msExitFullscreen();\n }\n }\n\n adjustGamesPanel() {\n document.getElementById('mySidenav')!.style.width = '100%';\n document.getElementById('mySidenav')!.style.position = 'fixed';\n this.isIframeVisible = true;\n this.isFullScreen = true;\n if (this.isFullScreen) {\n this.isGreaterthan = false;\n }\n }\n\n checkFullScreen(): boolean {\n return (\n (this.document.fullScreenElement !== undefined && this.document.fullScreenElement === null) ||\n (this.document.msFullscreenElement !== undefined && this.document.msFullscreenElement === null) ||\n (this.document.mozFullScreen !== undefined && !this.document.mozFullScreen) ||\n (this.document.webkitIsFullScreen !== undefined && !this.document.webkitIsFullScreen)\n );\n }\n\n requestFullScreen() {\n if (this.document.body.requestFullScreen) {\n this.document.body.requestFullScreen();\n } else if (this.document.body.mozRequestFullScreen) {\n this.document.body.mozRequestFullScreen();\n } else if (this.document.body.webkitRequestFullScreen) {\n this.document.querySelector('body').webkitRequestFullScreen();\n } else if (this.document.body.msRequestFullscreen) {\n this.document.body.msRequestFullscreen();\n }\n }\n\n toggleFullWindowScreen() {\n if (!this.document['webkitIsFullScreen']) {\n this.allowFullScreen();\n } else {\n this.cancelFullScreen();\n }\n }\n\n allowFullScreen() {\n const doc: any = document;\n if (this.document.body.requestFullScreen) {\n this.document.body.requestFullScreen();\n } else if (doc.body.mozRequestFullScreen) {\n const docElm: any = document.documentElement;\n docElm.mozRequestFullScreen();\n } else if (this.document.body.webkitRequestFullScreen) {\n this.document.querySelector('body').webkitRequestFullScreen();\n } else if (this.document.body.msRequestFullscreen) {\n this.document.body.msRequestFullscreen();\n }\n }\n cancelFullScreen() {\n if (this.document.cancelFullScreen) {\n this.document.cancelFullScreen();\n } else if (this.document.mozCancelFullScreen) {\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitCancelFullScreen) {\n this.document.webkitCancelFullScreen();\n } else if (this.document.msExitFullscreen) {\n this.document.msExitFullscreen();\n }\n }\n\n toggleFullScreen(event: any) {\n if (!this.summaryPopUpIsOpened) {\n this.tracking.triggerEvent('GameInteraction', {\n 'component.Game.interaction': 'EGV_PlayGame_FullScreen',\n });\n document.getElementsByClassName('embed-left-section')[0].setAttribute('style', 'width:100%');\n if (\n (this.document.fullScreenElement !== undefined && this.document.fullScreenElement === null) ||\n (this.document.msFullscreenElement !== undefined && this.document.msFullscreenElement === null) ||\n (this.document.mozFullScreen !== undefined && !this.document.mozFullScreen) ||\n (this.document.webkitIsFullScreen !== undefined && !this.document.webkitIsFullScreen)\n ) {\n this.iconShrinkClickedFirst = false;\n if (this.document.body.requestFullScreen) {\n this.document.body.requestFullScreen();\n } else if (this.document.body.mozRequestFullScreen) {\n this.document.body.mozRequestFullScreen();\n } else if (this.document.body.webkitRequestFullScreen) {\n this.document.querySelector('body').webkitRequestFullScreen();\n } else if (this.document.body.msRequestFullscreen) {\n this.document.body.msRequestFullscreen();\n }\n this.maximizeFullScreen();\n } else {\n if (event.target.className === 'icon-shrink') {\n this.iconShrinkClickedFirst = true;\n }\n\n if (this.document.cancelFullScreen) {\n this.document.cancelFullScreen();\n } else if (this.document.mozCancelFullScreen) {\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitCancelFullScreen) {\n this.document.webkitCancelFullScreen();\n } else if (this.document.msExitFullscreen) {\n this.document.msExitFullscreen();\n }\n this.maximizeFullScreen();\n }\n }\n }\n\n maximizeFullScreen() {\n setTimeout(() => {\n if (document.getElementById('casinoEmbeddedModal')) {\n document.getElementById('casinoEmbeddedModal')!.style.height = window.screen.height + 'px';\n }\n }, 200);\n }\n\n toggleExtrasColumn() {\n this.extrasColumnFlag = !this.extrasColumnFlag;\n document.getElementsByClassName('embed-left-section')[0].setAttribute('style', 'width:100%');\n }\n\n getGameLunchType(gameId: any) {\n const gameInfo: any = this.gameManagerService.getGameInfo(gameId);\n if (gameInfo) {\n return gameInfo.provider;\n }\n return null;\n }\n\n gameClickedOnSearch(game: any, index: number, section: string) {\n if (section == 'recentgames' || section == 'Search' || section == 'GYML') {\n this.rpGameClickedEGV = true;\n }\n this.gameclickedfromsearch = true;\n const iframe = document.getElementById('embedGameIframe') as HTMLIFrameElement;\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage('PREVIOUS_CASINO_GAME_CLOSED', '*');\n this.logger.info('Sent from Casino_Portal on gameClickedOnSearch' + 'PREVIOUS_CASINO_GAME_CLOSED');\n }\n if (!this.gameConfig.isGameCloseAckEventEnabled || !this.gameLaunchSuccess) {\n this.gameClickedProcessing(game, index, section);\n } else {\n this.game = game;\n this.index = index;\n this.section = section;\n this.summaryPopUpIsOpened = true;\n }\n }\n\n gameClickedProcessing(game: any, index: number, section: string) {\n const Global = this.configProviderService.provideGlobalConfig();\n const features = this.configProviderService.provideFeaturesConfig();\n this.gameCloseAckEventReceived = false;\n this.recommendationFeed(game.gameId);\n if (this.getFromCookie('gamePopOutWindow')) {\n const returnUrl: string = this.Game.returnUrl;\n this.Game = game;\n this.Game.returnUrl = returnUrl;\n\n this.gameLaunchSuccess = false;\n if (!this.iconsNewPosition) {\n const message = Global.messages['OnlyOneGameAtTime'];\n if (message) {\n this.messageQueue.addError(message, MessageLifetime.Single, 'embeddedGameError');\n }\n }\n return;\n }\n\n this.messageQueue.clear();\n if (index || section) {\n let gridPos = 1;\n if (this.RecentlyPlayedGamesList && this.RecentlyPlayedGamesList.length > 0) {\n gridPos = 2;\n }\n if (game.GamePosition >= 0) {\n index = game.GamePosition;\n }\n const isSearch: boolean = section == 'Search';\n const lobbyData: any = this.casinoLobbyService.getLobbyBasedOnLobbyType(this.lobbyType);\n const gameTrackingObj: any = {\n name: game.gameId,\n type: game.provider || this.getGameLunchType(game.gameId),\n position: index + 1,\n section: 'egv_' + section,\n gridPosition: (isSearch ? gridPos : 1) + ':' + (index + 1),\n location: `${game?.gameContainer ? game?.gameContainer : 'Page Container'}`,\n displayName: !isSearch && game.name ? game.name : this.gameManagerService.getGameDisplayName(game.gameId),\n lobbyName: lobbyData?.lbyTempName ? lobbyData?.lbyTempName : null,\n lobbySource: lobbyData?.lbyTargetType ? lobbyData?.lbyTargetType : null,\n optimoveSegment: lobbyData?.optSegName ? lobbyData?.optSegName : null,\n };\n this.gameLaunchTrackingService.track(gameTrackingObj);\n const gridPosToBePass = section == this.recentGames ? 1 : gridPos;\n game.iconType = 1; // for advance game data model\n this.advanceGameDataService.gameClickedFromSearchAdvanceGameDataModel(game, section, gridPosToBePass, index);\n const gamemodel = new GameLaunch();\n game.lobbyType = game.lobbyType ? game.lobbyType : this.lobbyType;\n gamemodel.game = game;\n gamemodel.isTouch = this.isTouch;\n gamemodel.gamePosition = index;\n gamemodel.gameSection = section;\n gamemodel.clickTimeStamp = this.casinoCoreGamelaunchService.currentTimeStamp();\n //check whether game is present in gamedatamap\n this.messageQueue.clear();\n if (!this.casinoCoreGamelaunchService.checkGameInGameMetaData(gamemodel.game.gameId) && this.user.isAuthenticated) {\n this.casinoCoreGamelaunchService.gameNotFoundAction(gamemodel);\n }\n // check for disabled game\n const disabledGames: Array = this.casinoLobbyService.getDisabledGames();\n if (disabledGames) {\n disabledGames.forEach((element) => {\n if (element?.toLowerCase() == gamemodel?.game?.gameId?.toLowerCase() && this.user.isAuthenticated) {\n this.casinoCoreGamelaunchService.gameNotFoundAction(gamemodel);\n }\n });\n }\n this.casinoCoreGamelaunchService.getDesktopGameLaunchUrl(gamemodel, (callbackResponse: any) => {\n setTimeout(() => {\n this.gameclickedfromsearch = true;\n this.iframeUrl = callbackResponse.iframeUrl;\n if (!features.useSingleCookieForGameIndexCountInEGV) {\n this.setToCookie('gameLaunchedCount', '1');\n }\n this.casinoCoreGamelaunchService.storeUserInfo(gameTrackingObj?.displayName);\n const returnUrl: string = this.Game.returnUrl;\n this.Game = game;\n this.Game.returnUrl = returnUrl;\n\n this.setGameTitle();\n this.gameLaunchSuccess = true;\n this.recentGameService.setRecentGames();\n }, 400);\n });\n }\n }\n\n openDialog(): void {\n const dialogRef = this.dialog.open(CashierIframeComponent, {\n width: '790px',\n data: { name: 'cashier' },\n panelClass: 'casino-lobby-container-main',\n });\n const instance = dialogRef.componentInstance;\n instance.isQDAllowed = this.isQDAllowed;\n\n dialogRef.afterClosed().subscribe(() => {});\n }\n\n public openRequestedPopup() {\n if (!this.summaryPopUpIsOpened) {\n const features = this.configProviderService.provideFeaturesConfig();\n this.tracking.triggerEvent('GameInteraction', {\n 'component.Game.interaction': 'EGV_PlayGame_NewWindow',\n });\n\n const dialogRef = this.dialog.open(GamePopoutComponent, {\n width: '386px',\n data: { name: 'popOut' },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result === 'continue') {\n //emit event to start schedule polling in bingo\n this.stopSchedulePollingInBingo(true, false);\n if (!features.useSingleCookieForGameIndexCountInEGV) {\n this.setToCookie('gameLaunchedCount', '1');\n } else {\n this.setToCookie('gameIndexCount', 0);\n const iframe = document.getElementById('embedGameIframe') as HTMLIFrameElement;\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage('PREVIOUS_CASINO_GAME_CLOSED', '*');\n this.logger.info('Sent from Casino_Portal on openRequestedPopup' + 'PREVIOUS_CASINO_GAME_CLOSED');\n }\n }\n if (this.gameConfig.isGameCloseAckEventEnabled) {\n this.popUpClicked = true;\n this.summaryPopUpIsOpened = true;\n } else {\n this.popUpClickedProcessing();\n }\n }\n });\n }\n }\n\n popUpClickedProcessing() {\n const windowOptions: any = 'resizable=no,toolbar=no,scrollbars=no,width=' + this.embededPopUpWidth + ',height=' + this.embededPopUpHeight;\n const gamePopOutWindow: any = window.open(this.iframeUrl, 'GameWindow', windowOptions);\n\n if (!gamePopOutWindow.closed) this.setToCookie('gamePopOutWindow', '1');\n\n this.close(true);\n const checkPopOutWindowOpenInterval = setInterval(() => {\n if (gamePopOutWindow.closed) {\n this.cookie.remove('gameLaunchedCount');\n this.cookie.remove('gamePopOutWindow');\n this.emitVideoStatus();\n this.setToCookie('gameIndexCount', 0);\n this.cookie.remove('gameInProgress');\n clearInterval(checkPopOutWindowOpenInterval);\n }\n }, this.gameConfig.gameCloseDelay);\n }\n\n ngOnDestroy() {\n if (this.recentObs) {\n this.recentObs.unsubscribe();\n }\n this.unsubscribe.next(true);\n this.unsubscribe.complete();\n }\n embeddedGameOverlayTopAllignment() {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n const contentMessageElement: HTMLElement =\n document.querySelector('.content-messages-header-top .content-message-container') || new HTMLElement();\n const egv_overlay: HTMLElement = document.querySelector('.game-container') || new HTMLElement();\n egv_overlay.style.top = contentMessageElement.clientHeight + 'px';\n }\n }\n\n private get_formatted_timestamp() {\n const dateNow = new Date();\n let datetime = dateNow.toString();\n datetime = datetime.substring(0, datetime.indexOf(' GMT')) + '.' + dateNow.getMilliseconds();\n return datetime;\n }\n\n stopSchedulePollingInBingo(fromEmbedded: boolean, flag: boolean) {\n if (fromEmbedded && !this.gameCloseAckEventReceived) {\n //for Iframe\n if (this.cozyBingoIframe && this.cozyBingoIframe.contentWindow) {\n this.cozyBingoIframe.contentWindow.postMessage({ stopSchedulePolling: flag }, this.productHomepagesConfig.bingo);\n }\n if (this.invokerProductService?.getInvokerProduct()?.toLowerCase() == 'casino') {\n if (this.cozyBingoIframe) (window as any).Disable_SchedulePolling = flag;\n else (window as any).Disable_SchedulePolling = true;\n } else {\n (window as any).Disable_SchedulePolling = flag;\n }\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TeaserService {\n private readonly _headerTeasers = signal(undefined);\n readonly headerTeasers = this._headerTeasers.asReadonly();\n public mercuryBgImage: any;\n\n teaserDataPublisher = new BehaviorSubject(null);\n teaserDataObservable: Observable = this.teaserDataPublisher.asObservable();\n optMiniTeasersMap: Map = new Map();\n private optMiniTeasersMapPublisher = new BehaviorSubject(false);\n optMiniTeasersMapObservable: Observable = this.optMiniTeasersMapPublisher.asObservable();\n teaserMutedSubject = new BehaviorSubject(null);\n teaserMutedObservable: Observable = this.teaserMutedSubject.asObservable();\n indexChangedSubject = new BehaviorSubject(null);\n indexChangedObservable: Observable = this.indexChangedSubject.asObservable();\n indexChangedDataSubject = new BehaviorSubject(null);\n indexChangedDataObservable: Observable = this.indexChangedDataSubject.asObservable();\n\n constructor(\n private api: PlatformApiService,\n private configProviderService: ConfigProviderService,\n private logger: Logger,\n ) {}\n\n setIndex(value: any) {\n this.indexChangedSubject.next(value);\n }\n\n muteVideo(identifier: string, index: number, value: boolean) {\n this.teaserMutedSubject.next({\n identifierClass: identifier,\n realIndex: index,\n isMuted: value,\n });\n }\n\n muteAllVideos() {\n this.teaserMutedSubject.next({ muteAllVideos: true });\n }\n\n setTeasers() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.teasers['teasersData'], {}, { withCredentials: true }).subscribe(\n (response) => {\n this._headerTeasers.set(response);\n this.teaserDataPublisher.next(response);\n },\n (error) => {\n this.logger.error('Unable to retrieve data from teasers API: ' + error);\n },\n );\n }\n\n getTeaserData() {\n return this.headerTeasers;\n }\n\n indexChangeTeaserData(teaserData: any) {\n this.indexChangedDataSubject.next(teaserData);\n }\n\n fetchOptMiniTeasers(optMiniTeaserPaths: Array) {\n if (optMiniTeaserPaths && optMiniTeaserPaths.length) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.post(apiPathsConfig.teasers['optMiniTeasersData'], optMiniTeaserPaths, { withCredentials: true }).subscribe(\n (response: IOptMiniTeasersResponse) => {\n if (this.optMiniTeasersMap && this.optMiniTeasersMap.size > 0) {\n this.optMiniTeasersMap.clear();\n }\n response.teasers.forEach((item) => {\n this.optMiniTeasersMap.set(item.path, item.contents);\n });\n this.mercuryBgImage = response.mercuryBgImage;\n this.optMiniTeasersMapPublisher.next(true);\n },\n (error) => {\n this.logger.error('Unable to retrieve data from optMiniTeaser API: ' + error);\n },\n );\n }\n }\n\n getOptMiniTeasers(path: string) {\n return this.optMiniTeasersMap.get(path);\n }\n}\n\nclass OptMiniTeasersResponse {\n path: string;\n contents: any;\n}\n\ninterface IOptMiniTeasersResponse {\n teasers: Array;\n mercuryBgImage: any;\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n","import { NgIf } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { MessageLifetime, MessageQueueService, NavigationService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { EmbeddedGameViewComponent } from '../embedded-game-view/embedded-game-view.component';\nimport { CasinoCoreGamelaunchService } from '../shared/gamelaunch.service';\nimport { CasinoCoreGameLaunchFactoryService } from '../shared/gamelaunchfactory.service';\nimport { TeaserService } from '../shared/teaser.service';\n\n@Component({\n selector: 'cc-embedded-game-popup',\n templateUrl: './embedded-game-popup.component.html',\n standalone: true,\n imports: [NgIf, EmbeddedGameViewComponent],\n})\nexport class EmbeddedGamePopupComponent implements OnInit {\n constructor(\n private teaserService: TeaserService,\n private messageQueue: MessageQueueService,\n private navigationService: NavigationService,\n @Inject(MAT_DIALOG_DATA) public gameData: any,\n private gameLaunchService: CasinoCoreGamelaunchService,\n public dialogRef: MatDialogRef,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n private configProviderService: ConfigProviderService,\n ) {\n this.gameLaunchFactoryService.setGameLaunchService(this.gameLaunchService);\n this.dialogRef.disableClose = true;\n }\n\n ngOnInit(): void {\n this.teaserService.muteAllVideos();\n }\n dialogCloseEventFromEmbeddedGameView(data: any): void {\n const Global = this.configProviderService.provideGlobalConfig();\n const features = this.configProviderService.provideFeaturesConfig();\n const message = Global.messages['OnlyOneGameAtTime'];\n this.dialogRef.close();\n this.messageQueue.clear();\n setTimeout(() => {\n this.messageQueue.addError(message, MessageLifetime.Single, 'casinocorelobby');\n window.scrollTo(0, 0);\n setTimeout(() => {\n this.messageQueue.clear();\n if (\n window.location.href.includes('games/launchng') ||\n window.location.href.includes('slots/launchng') ||\n window.location.href.includes('livecasino/launchng')\n ) {\n this.navigationService.goTo(data.returnUrl);\n }\n this.gameLaunchService?.stopAudio();\n }, features.singleGameErrorTimeout);\n }, features.scrollTopTimeout);\n this.gameLaunchService.messageQueuePublisher.next({\n showMessageInBingo: true,\n message: Global.messages['OnlyOneGameAtTime'],\n });\n }\n eventFromEmbeddedGameView(data: any): void {\n const returnUrl =\n new URLSearchParams(window.location.search).get('returnUrl') || new URLSearchParams(window.location.search).get('returnurl');\n if (returnUrl) {\n this.dialogRef.close();\n this.navigationService.goTo(returnUrl);\n } else if (\n window.location.href.includes('games/launchng') ||\n window.location.href.includes('slots/launchng') ||\n window.location.href.includes('livecasino/launchng')\n ) {\n this.messageQueue.clear();\n this.dialogRef.close();\n this.navigationService.goTo(data.returnUrl);\n } else this.dialogRef.close();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\n\n// declare var angular: angular.IAngularStatic;\n\n@Component({\n selector: 'cc-global-translate',\n template: '{{value}}',\n standalone: true,\n})\nexport class GlobalTranslateComponent implements OnInit {\n @Input() key: string;\n value: string;\n global: any;\n\n constructor(private configProviderService: ConfigProviderService) {}\n\n ngOnInit() {\n this.configProviderService.casinoClientConfigObservable.subscribe((isClientConfigLoaded) => {\n if (isClientConfigLoaded) {\n this.global = this.configProviderService.provideGlobalConfig();\n if (this.global.messages[this.key]) {\n this.value = this.global.messages[this.key];\n }\n }\n });\n }\n}\n","
\n
\n
\n \n \n \n
\n \n \n \n
\n
\n
\n","import { NgIf, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { NativeAppService, NavigationService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { GlobalTranslateComponent } from '../directives/globaltranslate/globaltranslate.component';\n\n@Component({\n selector: 'cc-header-box',\n templateUrl: 'header-box.component.html',\n standalone: true,\n imports: [NgIf, NgStyle, GlobalTranslateComponent],\n})\nexport class HeaderBoxComponent implements OnInit {\n @Input() showInNative?: boolean;\n @Input() title: string;\n @Output() navigateTo: EventEmitter = new EventEmitter();\n isVisible: boolean;\n isNavigation: boolean;\n feature: boolean;\n error: boolean;\n goBackURL: string | null;\n constructor(\n private nativeApplication: NativeAppService,\n private navigation: NavigationService,\n private configProviderService: ConfigProviderService,\n ) {}\n\n ngOnInit() {\n const mcPage = this.configProviderService.provideMcPageConfig();\n this.isVisible = this.showInNative === true || !this.nativeApplication.isNative;\n\n this.isNavigation = false;\n if (this.navigateTo && this.navigateTo.observers && this.navigateTo.observers.length > 0) {\n this.isNavigation = true;\n }\n this.goBackURL = this.navigation.location.search.get('gobackUrl');\n if (!this.goBackURL || this.goBackURL === '') {\n this.goBackURL = mcPage.prefix;\n }\n }\n\n goBack() {\n this.navigateTo.emit();\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameLaunchPlaces {\n gameIconOnLobby: string;\n gameTitleOnLobby: string;\n gameInfoIconOnLobby: string;\n demoPlayPage: string;\n playNowOnDetailPage: number;\n playNowOnDetailPageAfterScreenshots: number;\n playRedirectCtrl: string;\n unfinGamePage: string;\n searchOnLobby: string;\n teaser: string;\n activeFreeSpin: string;\n constructor() {\n this.gameIconOnLobby = 'p';\n this.gameTitleOnLobby = 'l';\n this.gameInfoIconOnLobby = 'i';\n this.demoPlayPage = 'demoPlay';\n this.playNowOnDetailPage = 1;\n this.playNowOnDetailPageAfterScreenshots = 3;\n this.playRedirectCtrl = 'playRedirectCtrl';\n this.unfinGamePage = 'unfinGamePage';\n this.searchOnLobby = 'searchOnLobby';\n this.teaser = 'Teaser';\n this.activeFreeSpin = 'activeFreeSpin';\n }\n\n isLobby(place: string) {\n return (\n !place ||\n place === this.gameIconOnLobby ||\n place === this.gameTitleOnLobby ||\n place === this.gameInfoIconOnLobby ||\n place === this.searchOnLobby ||\n place === this.teaser\n );\n }\n}\n","\n\n\n\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { GlobalTranslateComponent } from '../../directives/globaltranslate/globaltranslate.component';\nimport { CasinoManager } from '../../shared/casino-manager.service';\nimport { GameLaunchPlaces } from '../../shared/game-launch-places.service';\nimport { CasinoCoreGameLaunchFactoryService } from '../../shared/gamelaunchfactory.service';\nimport { GameLaunch } from '../../shared/models/gamelaunch.model';\n\n@Component({\n selector: 'cc-game-detail-buttons',\n templateUrl: 'game-detail-buttons.component.html',\n standalone: true,\n imports: [NgIf, GlobalTranslateComponent],\n})\nexport class GameDetailButtonsComponent implements OnInit {\n @Input() game: any;\n @Input() launchType: string;\n @Input() place: any;\n @Input() cssClass: any;\n twoButtons: any;\n isInhouseGame: any;\n constructor(\n private gameLaunchService: CasinoCoreGameLaunchFactoryService,\n private configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private gameLaunchPlaces: GameLaunchPlaces,\n ) {}\n ngOnInit() {\n const clientSideConfig = this.configProviderService.provideClientSideConfig();\n this.twoButtons = clientSideConfig.playForFunAndRealButtons;\n this.isInhouseGame = this.launchType === 'inhouse';\n }\n goToPlayGame(mode: boolean) {\n const gameModel = new GameLaunch();\n gameModel.game = this.game;\n gameModel.isTouch = this.casinoManager.isTouch();\n gameModel.lobbyType = this.game.lobbyType;\n gameModel.gamePosition = 0;\n gameModel.categoryType = this.game.categoryType;\n gameModel.from = this.gameLaunchPlaces.playNowOnDetailPage.toLocaleString();\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = mode;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = '';\n gameModel.gameSection = this.game.gameSection;\n gameModel.gameContainer = 'PageContainer';\n gameModel.returnUrl = window.location.href;\n const gameLaunchService: any = this.gameLaunchService.getGameLaunchService();\n gameModel.clickTimeStamp = gameLaunchService.currentTimeStamp();\n gameLaunchService.launchGame(gameModel);\n }\n}\n","\n \n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n

{{ gameInfo.game.game.name }}

\n
\n
\n \n {{ model.responsibleGamingLink.linkText }}\n\n
\n\n
\n

{{ model.disclaimer }}

\n
\n
0\" class=\"game-preview\">\n

\n \n

\n
\n \n
\n
\n","import { NgClass, NgIf } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DeviceService, NavigationService, UserService } from '@frontend/vanilla/core';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { GlobalTranslateComponent } from '../directives/globaltranslate/globaltranslate.component';\nimport { HeaderBoxComponent } from '../header-box/header-box.component';\nimport { FavouriteService } from '../shared/favourite.service';\nimport { GameDataManager } from '../shared/game-data-manager.service';\nimport { CasinoCoreGamelaunchService } from '../shared/gamelaunch.service';\nimport { CasinoCoreGameLaunchFactoryService } from '../shared/gamelaunchfactory.service';\nimport { GameDetailButtonsComponent } from './game-detail-buttons/game-detail-buttons.component';\n\n@Component({\n selector: 'cc-game-detail',\n templateUrl: 'game-detail.component.html',\n standalone: true,\n imports: [HeaderBoxComponent, MessagePanelComponent, NgIf, NgClass, GameDetailButtonsComponent, GlobalTranslateComponent, TrustAsHtmlPipe],\n})\nexport class GameDetailComponent implements OnInit {\n data: any;\n twoButtons: any;\n model: any;\n gameData: any;\n useFavouriteGames: boolean;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n constructor(\n private user: UserService,\n private gameDataManager: GameDataManager,\n private deviceService: DeviceService,\n private navigation: NavigationService,\n private favouritesService: FavouriteService,\n private configProviderService: ConfigProviderService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n @Inject(MAT_DIALOG_DATA) public gameInfo: any,\n public dialogRef: MatDialogRef,\n ) {\n this.gameLaunchFactoryService.setGameLaunchService(this.gameLaunchService);\n }\n ngOnInit() {\n if (this.gameInfo) {\n this.assignGameModel();\n }\n const global = this.configProviderService.provideGlobalConfig();\n if (\n global.lobbyConfigurations.FavouriteHeart === 'true' ||\n global.lobbyConfigurations.FavouriteHeart === 'True' ||\n global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n }\n\n assignGameModel() {\n const mcPage = this.configProviderService.provideMcPageConfig();\n const global = this.configProviderService.provideGlobalConfig();\n const clientSideConfig = this.configProviderService.provideClientSideConfig();\n const features = this.configProviderService.provideFeaturesConfig();\n const gamedetailObj: any = {\n game: this.gameInfo.game.game.gameId,\n gameId: this.gameInfo.game.game.gameId,\n name: this.gameInfo.game.game.name,\n ownerId: this.gameInfo.game.game.ownerId,\n provider: this.gameInfo.game.game.provider,\n icon: this.gameInfo.game.game.iconType,\n };\n this.data = this.gameDataManager.setGameLobbyModel(gamedetailObj, this.deviceService.isTouch);\n this.twoButtons = clientSideConfig.playForFunAndRealButtons;\n this.useFavouriteGames = features.useFavouriteGames;\n if (!this.data) {\n this.navigation.goTo(mcPage?.prefix);\n return;\n }\n this.model = this.data;\n this.model.categoryType = this.gameInfo.game.categoryType;\n this.model.lobbyType = this.gameInfo.game.game.lobbyType;\n this.model.gameSection = this.gameInfo.game.gameSection;\n this.model = this.model && this.model[0] ? this.model[0] : this.model;\n this.model.disclaimer = global.messages['Disclaimer'];\n this.model.isFavourite = this.favouritesService.checkForFavouriteGame(this.model);\n }\n\n playButtonMode(game: any) {\n switch (game.launchType) {\n case 'inhouse':\n return 1;\n default:\n return 2;\n }\n }\n\n toggleFavourite(game: any, $event: any) {\n if (this.user.isAuthenticated) {\n $event.stopImmediatePropagation();\n this.favouritesService.toggleGameFavourite(game);\n }\n }\n isFavouriteGame(model: any) {\n return this.favouritesService.checkForFavouriteGame(model);\n }\n closeGameDetailDialog() {\n this.dialogRef.close();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationActivatorService {\n constructor(\n private configProviderService: ConfigProviderService,\n private readonly activatedRoute: ActivatedRoute,\n ) {}\n get isActive(): boolean {\n const geolocationConfiguration = this.configProviderService.provideGeoLocationConfig();\n let isDisabledViaRoute: any = false;\n const disableFeaureQueryParameter = this.activatedRoute.snapshot.queryParamMap.get('_disableFeature');\n isDisabledViaRoute =\n disableFeaureQueryParameter &&\n disableFeaureQueryParameter\n .trim()\n .split(',')\n .some((queryParameterValue) => queryParameterValue?.toLowerCase() === 'geolocation');\n return !isDisabledViaRoute && geolocationConfiguration.isEnabled;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cs-geo-permissions-manager',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n host: {\n 'class': 'geo-coordinator permissions-manager',\n '[class]': 'managerClasses()',\n '[class.android]': 'deviceService.isAndroid ? true : null',\n '[class.iOS]': 'deviceService.isiOS ? true : null',\n '[class.chrome]': 'deviceService.isChrome ? true : null',\n '[class.nexus]': 'deviceService.isNexus ? true : null',\n '[class.touch]': 'deviceService.isTouch ? true : null',\n '[class.mobile]': 'deviceService.isMobile ? true : null',\n '[class.mobile-phone]': 'deviceService.isMobilePhone ? true : null',\n '[class.robot]': 'deviceService.isRobot ? true : null',\n },\n templateUrl: './permissions-manager.component.html',\n})\nexport class PermissionsManagerComponent implements AfterViewInit {\n @ViewChild('templateLoaderHost')\n templateLoaderHost: ElementRef | null = null;\n\n private readonly matContext = inject(MAT_DIALOG_DATA);\n private readonly dialogRef = inject(MatDialogRef);\n readonly deviceService = inject(DeviceService);\n\n permissionsInfo = input<{ [key: string]: string }>(this.matContext?.permissionsInfo ?? {});\n permissionsConfig = input<{ [key: string]: string }>(this.matContext?.permissionsConfig ?? {});\n private geoCoordinatorService = this.matContext?.geoCoordinatorService;\n\n parsedConfig = computed(() => this.prepareConfig(this.permissionsConfig()));\n templateContent = signal('');\n\n managerClasses = computed(() => {\n const permissionInfoClasses = `permissions-info-status-${this.permissionsInfo()['status'] || ''} permissions-info-reason-${this.permissionsInfo()['reason'] || ''}`;\n const devicePropertyClasses = `orientation-${this.deviceService.currentOrientation} ${this.deviceService.deviceType} os-${this.deviceService.osName} os-version-${this.deviceService.osVersion} vendor-${this.deviceService.vendor}`;\n const browserClasses = `browser-name-${this.deviceService.getCapability('browserName')} browser-version-${this.deviceService.getCapability('browserVersion')}`;\n\n return `${permissionInfoClasses} ${devicePropertyClasses} ${browserClasses}`;\n });\n\n async ngAfterViewInit(): Promise {\n if (this.geoCoordinatorService) {\n if (this.geoCoordinatorService?.permissionsManager?.loadAssets) {\n await this.geoCoordinatorService.permissionsManager.loadAssets({\n configStore: this.permissionsConfig(),\n hostElement: this.templateLoaderHost?.nativeElement,\n activateTemplate: true,\n });\n }\n }\n }\n\n @HostListener('document:closeGeoPermissionsManagerDialog', ['$event'])\n @HostListener('closeGeoPermissionsManagerDialog', ['$event'])\n handleCloseDialog() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n private prepareConfig(permissionsConfig: { [key: string]: string }) {\n const parsedConfig: { [key: string]: string } = {};\n const permissionDictionaryConfig = permissionsConfig['GeoComply_Hints_Permissions_Dictionary'] ?? '';\n if (permissionDictionaryConfig) {\n const dictionaryEntries = permissionDictionaryConfig.split(';');\n if (dictionaryEntries && dictionaryEntries.length > 0) {\n dictionaryEntries\n .filter((x) => (x || '').trim())\n .forEach((dictEntry) => {\n const [key, value] = dictEntry.split('=');\n parsedConfig[key] = value || '';\n });\n }\n }\n\n return parsedConfig;\n }\n}\n\nexport enum PermissionsTypes {\n geoPermissions = 'geo-permissions',\n geoCurrentState = 'geo-current-state',\n}\n","\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { IIntegrationApp } from '@frontend/geo-coordinator/client-stub';\n\nimport { PermissionsManagerComponent } from './permissions-manager.component';\n\n@Injectable({ providedIn: 'root' })\nexport class GeoCoordinatorPermissionsManagerService {\n private readonly dialog = inject(MatDialog);\n private readonly documentRef = inject(DOCUMENT);\n\n private dialogRef: MatDialogRef | null = null;\n private _permissionsInfoOptions: PermissionsInfoOptions | null = null;\n\n handlePermissionsInfo(options: PermissionsInfoOptions): void {\n console.log('[GeoCoordinatorPermissionsManagerService]', '[handlePermissionsInfo]', options);\n if (this.canReopenDialog(this._permissionsInfoOptions, options)) {\n this.closePermissionsInfo();\n this._permissionsInfoOptions = options;\n this.dialogRef = this.dialog.open(PermissionsManagerComponent, {\n width: '100%',\n disableClose: true,\n data: {\n permissionsInfo: options.permissionsInfo,\n permissionsConfig: options.textDictionary,\n geoCoordinatorService: options.geoCoordinatorService,\n },\n panelClass: 'geo-permission-manager-popup',\n });\n }\n this.handleDialogClassesDecoration(['geo-location-permission-overlay', 'cdk-global-scrollblock'], this.dialogRef, this.documentRef);\n }\n\n closePermissionsInfo() {\n if (this.dialogRef) {\n this.dialogRef.close();\n this._permissionsInfoOptions = null;\n }\n }\n\n private handleDialogClassesDecoration(\n whichClasses: string[],\n dialogRef: MatDialogRef | null,\n documentRef: Document,\n ) {\n if (dialogRef) {\n dialogRef.afterOpened().subscribe(() => {\n if (documentRef) {\n whichClasses.forEach((cls) => {\n documentRef.documentElement.classList.add(cls);\n });\n }\n });\n dialogRef.afterClosed().subscribe(() => {\n if (documentRef) {\n whichClasses.forEach((cls) => {\n documentRef.documentElement.classList.remove(cls);\n });\n }\n // this._permissionsInfoOptions = null;\n });\n }\n }\n\n private canReopenDialog(existing: PermissionsInfoOptions | null, incoming: PermissionsInfoOptions | null) {\n if (!existing && !incoming) {\n return true;\n }\n\n if (existing || incoming) {\n if (existing !== incoming) {\n return !(\n existing?.permissionsInfo?.status === incoming?.permissionsInfo?.status &&\n existing?.permissionsInfo?.reason === incoming?.permissionsInfo?.reason\n );\n }\n }\n return false;\n }\n}\n\nexport interface PermissionsInfoOptions {\n readonly permissionsInfo: { readonly status: string; readonly reason: string };\n readonly textDictionary: { [key: string]: string };\n readonly geoCoordinatorService: IIntegrationApp;\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\nimport {\n CoordinatorStates,\n ICoordinatorProbeResult,\n IErrorData,\n IInitializationInput,\n IIntegrationApp,\n OnCoordinatorProbed,\n OnError,\n OnInitialized,\n OnUninitialized,\n Optional,\n PLCIdentifier,\n} from '@frontend/geo-coordinator/client-stub';\nimport { PermissionsManager, PermissionsManagerable } from '@frontend/geo-coordinator/permissions-manager';\nimport { DeviceService, UserService, WindowRef } from '@frontend/vanilla/core';\n\nimport { GeolocationClientConfig } from '../../client-config/geo-location.config';\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CasinoManager } from '../../shared/casino-manager.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationCoordinatorService implements IIntegrationApp, PermissionsManagerable {\n private _onInitialized: OnInitialized;\n private _onUninitialized: OnUninitialized;\n private _onError: OnError;\n private _onProbed: OnCoordinatorProbed;\n private geolocationCoordinator: Optional & PermissionsManagerable;\n private geolocationConfig: GeolocationClientConfig;\n private _initializePending: boolean = false;\n private _uninitializePending: boolean = false;\n private _initializationInput: IInitializationInput | null | undefined;\n isSynchronizedUninit: boolean = false;\n constructor(\n private windowRef: WindowRef,\n private casinoManager: CasinoManager,\n private deviceservice: DeviceService,\n private readonly userService: UserService,\n private readonly configProviderService: ConfigProviderService,\n ) {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n this.hookupCoordinator();\n addEventListener(\n 'geolocationcoordinator:bootstrapped',\n () => {\n this.hookupCoordinator();\n },\n {\n once: true,\n },\n );\n }\n triggerFetchLocation(input?: IInitializationInput): void {\n this.geolocationCoordinator?.triggerFetchLocation(input);\n }\n\n onAvailable: EventEmitter;\n\n get permissionsManager(): Optional {\n return this.geolocationCoordinator?.permissionsManager;\n }\n\n get appDownloadUrl(): string {\n return this.geolocationCoordinator?.appDownloadUrl || '';\n }\n\n probe(): void {\n this.geolocationCoordinator!.probe();\n }\n\n initialize(input?: IInitializationInput): void {\n this.isSynchronizedUninit = false;\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.initialize({\n session: (input && input.session) || (this.userService && this.userService.ssoToken) || 'NotAvailable',\n channelId: input && input.channelId,\n plcIdentifier: input && input?.plcIdentifier,\n showPLCPopup: input && input.showPLCPopup,\n });\n } else {\n this._initializePending = true;\n this._initializationInput = input;\n }\n }\n\n uninitialize(): void {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.uninitialize();\n } else {\n this._uninitializePending = true;\n }\n }\n\n set onInitialized(callback_funvction: OnInitialized) {\n this._onInitialized = callback_funvction;\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onInitialized = this._onInitialized;\n }\n }\n\n set onUninitialized(value: OnUninitialized) {\n this._onUninitialized = value;\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onUninitialized = value!;\n }\n }\n\n set onError(value: OnError) {\n this._onError = value;\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onError = value!;\n }\n }\n\n set onProbed(value: OnCoordinatorProbed) {\n this._onProbed = value;\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onProbed = value!;\n }\n }\n\n registerUnload() {\n this.windowRef.nativeWindow.onunload = () => {\n //console.info('Window onunload::');\n this.uninitialize();\n };\n this.windowRef.nativeWindow.removeEventListener('message', this.coordinationSynchronizer);\n }\n\n registerSynchronization() {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (this.geolocationConfig.isEnabled && this.geolocationConfig.synchronizeCoordination) {\n this.windowRef.nativeWindow.addEventListener('message', this.coordinationSynchronizer);\n }\n }\n\n getPLCIdentifier(): PLCIdentifier {\n if (this.casinoManager.isTouch()) {\n if (this.deviceservice.isiOS) {\n return 'oobeeiOS';\n }\n return 'oobeeAndroid';\n }\n return 'geocomply';\n }\n\n private onGeolocationError(errorData: IErrorData): void {\n if (this.onError) {\n this.onError(errorData);\n } else {\n if (this._onError) {\n this._onError(errorData);\n }\n }\n }\n\n private onGeolocationInitialized(initializationData: CoordinatorStates): void {\n if (this.onInitialized) {\n this.onInitialized(initializationData);\n } else {\n if (this._onInitialized) {\n this._onInitialized(initializationData);\n }\n }\n }\n\n private onGeolocationUninitialized(): void {\n if (this.onUninitialized) {\n this.onUninitialized();\n } else {\n if (this._onUninitialized) {\n this._onUninitialized();\n }\n }\n }\n\n private onGeolocationProbed(probeResult: ICoordinatorProbeResult): void {\n if (this.onProbed) {\n this.onProbed(probeResult);\n } else {\n if (this._onProbed) {\n this._onProbed(probeResult);\n }\n }\n }\n\n private hookupCoordinator(): void {\n const geolocationCoordinator = (window as any).geolocationCoordinator as IIntegrationApp & PermissionsManagerable;\n if (geolocationCoordinator) {\n this.geolocationCoordinator = geolocationCoordinator;\n this.geolocationCoordinator.onError = this.onGeolocationError.bind(this);\n this.geolocationCoordinator.onInitialized = this.onGeolocationInitialized.bind(this);\n this.geolocationCoordinator.onUninitialized = this.onGeolocationUninitialized.bind(this);\n this.geolocationCoordinator.onProbed = this.onGeolocationProbed.bind(this);\n this.onAvailable && this.onAvailable.emit(this);\n\n if (this._initializePending) {\n this._initializePending = false;\n this.initialize(this._initializationInput || undefined);\n this._initializationInput = null;\n return;\n }\n if (this._uninitializePending) {\n this._uninitializePending = false;\n this.uninitialize();\n }\n }\n }\n\n private readonly coordinationSynchronizer = (messageEvent: MessageEvent): void => {\n if (this.geolocationConfig.isEnabled && this.geolocationConfig.synchronizeCoordination) {\n if (\n messageEvent &&\n messageEvent.data &&\n messageEvent.data.trim &&\n messageEvent.data.trim() === this.geolocationConfig.synchronizationEvent.trim()\n ) {\n this.isSynchronizedUninit = true;\n this.geolocationCoordinator?.uninitialize();\n }\n }\n };\n}\n","// import type { PermissionsManager } from '@frontend/geo-coordinator/permissions-manager';\n\nexport type Optional = Type | undefined | null;\n\nexport type OnInitialized = Optional<(initializationStatus?: Optional) => void>;\nexport type OnUninitialized = Optional<() => void>;\n\nexport const enum CoordinatorStates {\n NOTINITIALIZED = 'NOTINITIALIZED',\n INITIALIZING = 'INITIALIZING',\n INITIALIZED = 'INITIALIZED',\n ERROR = 'ERROR',\n LOCATIONAVAILABLE = 'LOCATIONAVAILABLE',\n PROBING = 'PROBING',\n}\n\nexport type PLCIdentifier = 'geocomply' | 'oobeeAndroid' | 'oobeeiOS' | 'gchtml5';\n\nexport interface IPLCProbeResult {\n readonly status: boolean;\n readonly additionalInfo?: Object;\n}\n\nexport type OnCoordinatorProbed = (probeResult: ICoordinatorProbeResult) => void;\nexport interface ICoordinatorProbeResult extends IPLCProbeResult {\n readonly coordinatorState: CoordinatorStates;\n}\n\nexport type OnProbed = (probeResult: ICoordinatorProbeResult) => void;\n\nexport interface IOnError {\n onError: OnError;\n}\nexport interface IErrorData {\n errorCode: number;\n errorMessage: string;\n errorType?: ErrorTypes;\n additionalInfo?: any;\n}\nexport enum ErrorTypes {\n APP_ERROR = 'APPLICATION_ERROR',\n COMM_ERROR = 'COMMUNICATION_ERROR',\n NETWORK_ERROR = 'NETWORK_ERROR',\n DATA_ERROR = 'DATA_ERROR',\n CONFIG_ERROR = 'CONFIGURATION_ERROR',\n FATAL = 'FATAL',\n}\nexport type OnError = Optional<(errorData: IErrorData) => void>;\n\nexport interface IIntegrationApp {\n readonly appDownloadUrl: string;\n onInitialized: OnInitialized;\n onError: OnError;\n onProbed: OnProbed;\n onUninitialized: OnUninitialized;\n initialize(input?: IInitializationInput): void;\n probe(input?: IInitializationInput): void;\n uninitialize(): void;\n // readonly permissionsManager: Optional;\n triggerFetchLocation(input?: IInitializationInput): void;\n}\n\nexport interface IInitializationInput {\n readonly session?: string;\n readonly channelId?: string;\n readonly plcIdentifier?: PLCIdentifier | string;\n readonly showPLCPopup?: boolean;\n readonly productId?: string;\n}\n\nexport enum RetryType {\n NonRetry = 0,\n Retry = 1,\n}\n\nexport interface GDSResponse {\n locationStatus: string;\n isLocationAvailable: boolean;\n errorCode: number;\n errorMsg: string;\n troubleShooterMessages?: { tsMsgs?: GDSTroubleshooterMessage[] };\n}\n\nexport interface GDSTroubleshooterMessage {\n rule: string;\n retry: number;\n message: string;\n}\n","
\n
\n
{{ geoComplyErrorHeader }}
\n
\n
\n
\n
{{ turnOnWiFiDescription }}
\n
\n
    \n
  • \n
\n
\n
{{ addressAboveItemsDescription }}
\n
\n \n \n
\n
\n
\n","import { NgFor, NgIf } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { GDSTroubleshooterMessage, RetryType } from '@frontend/geo-coordinator/client-stub';\nimport { NavigationService, Page, WindowRef } from '@frontend/vanilla/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CasinoManager } from '../../shared/casino-manager.service';\nimport { GeoLocationValidationService } from '../services/geolocation-validation.service';\n\nexport enum TriggerGeoLocationOption {\n EventName = 'TRIGGER_GEO_LOCATION',\n Action = 'fetchLocation',\n}\n\nexport enum GeoLocationOptionFetchType {\n NativeCcb = 'NATIVE_CCB',\n Gds = 'GDS',\n}\n\n@Component({\n selector: 'cc-geo-location-error',\n templateUrl: 'geo-location-error.html',\n standalone: true,\n imports: [NgFor, NgIf, TrustAsHtmlPipe],\n})\nexport class GeoLocationErrorComponent implements OnInit {\n geoLocationErrorMessages: GDSTroubleshooterMessage[] = [];\n shouldRetryLocation = false;\n geolocationConfig: any;\n errorMessages: GDSTroubleshooterMessage[] = [];\n\n constructor(\n public readonly dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private geoLocationValidationService: GeoLocationValidationService,\n private configProviderService: ConfigProviderService,\n private navigator: NavigationService,\n private casinoManager: CasinoManager,\n private m2Page: Page,\n private route: ActivatedRoute,\n private windowRef: WindowRef,\n ) {}\n\n ngOnInit(): void {\n this.errorMessages = this.data.errorMessages;\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n this.checkGeoLocationError();\n }\n\n getGlobalConfig(): any {\n return this.configProviderService.provideGlobalConfig();\n }\n\n get geoComplyErrorHeader(): string {\n return this.getGlobalConfig().messages['GeoComplyErrorHeader'] || 'We Cannot Place Your Bet';\n }\n\n get turnOnWiFiDescription(): string {\n return this.getGlobalConfig().messages['TurnOnWiFiDescription'];\n }\n\n get addressAboveItemsDescription(): string {\n return this.getGlobalConfig().messages['AddressAboveItemsDescription'] || 'Please address the items above, then try again';\n }\n\n get recheckLocation(): string {\n return this.getGlobalConfig().messages['RecheckLocation'] || 'RECHECK LOCATION';\n }\n\n get ok(): string {\n return this.getGlobalConfig().messages['Ok'] || 'OK';\n }\n\n get invalidLocation(): string {\n return this.getGlobalConfig().messages['InvalidLocation'] || 'Ensure you are well within a permitted area to place your bet successfully';\n }\n\n close(): void {\n this.dialogRef && this.dialogRef.close();\n if (this.windowRef.nativeWindow.location?.pathname?.toLowerCase()?.indexOf('launchng') >= 0) {\n const returnUrl = this.route?.snapshot?.queryParamMap?.get('returnUrl') || this.route?.snapshot?.queryParamMap?.get('returnurl');\n if (returnUrl) {\n this.navigator?.goTo(returnUrl);\n } else {\n const lobbyType = this.casinoManager?.getLobbyType() || '';\n this.navigator?.goTo('/' + this.m2Page.lang + '/' + this.casinoManager?.getProductForLobbyType(lobbyType)?.toLowerCase());\n }\n }\n }\n\n reCheckLocation(): void {\n if (this.geolocationConfig.shouldCheckNativeGeoLocation) {\n this.geoLocationValidationService.fetchLocationDetailsfromNativeEvent();\n } else {\n this.geoLocationValidationService.reCheckLocationClicked.next(true);\n }\n this.close();\n }\n private formattingMessage(geoLocationErrorMessages: GDSTroubleshooterMessage[]) {\n geoLocationErrorMessages.forEach((err) => {\n err.message = err.message.replace(/(\\r\\n|\\n|\\r|\\n\\n)/g, '
');\n });\n }\n private checkGeoLocationError(): void {\n if (!this.errorMessages?.length) {\n this.geoLocationErrorMessages.push({ rule: '', retry: RetryType.NonRetry, message: this.invalidLocation });\n this.formattingMessage(this.geoLocationErrorMessages);\n return;\n }\n this.geoLocationErrorMessages = [...this.errorMessages];\n this.formattingMessage(this.geoLocationErrorMessages);\n this.shouldRetryLocation =\n this.geolocationConfig.isRetryButtonEnabled && this.errorMessages.some((errMsg) => errMsg.retry === RetryType.Retry);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { GDSResponse, RetryType } from '@frontend/geo-coordinator/client-stub';\nimport { NativeAppService, RemoteLogger, TimerService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { UrlUtilityService } from '../../utilities/url-utility.service';\nimport { GeoLocationErrorComponent, TriggerGeoLocationOption } from '../geo-location-error/geo-location-error.component';\nimport { GeolocationCoordinatorService } from './coordinator.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeoLocationValidationService {\n dialogRef: MatDialogRef;\n isLocationFetchTimeOut: boolean;\n isLocationFetched: boolean;\n resetTimerAndRefetchLocation: boolean;\n errorResponse: GDSResponse;\n gdsApiInterval: any;\n resetTimer: any;\n geolocationConfig: any;\n private retryCount: number = 0;\n reCheckLocationClicked = new BehaviorSubject(null);\n reCheckLocationClickedObservable: Observable = this.reCheckLocationClicked.asObservable();\n\n constructor(\n private apiService: HttpClient,\n private timerService: TimerService,\n private readonly dialog: MatDialog,\n private configProviderService: ConfigProviderService,\n private geolocationCoordinatorService: GeolocationCoordinatorService,\n private user: UserService,\n private nativeAppService: NativeAppService,\n private logger: RemoteLogger,\n private urlUtilityService: UrlUtilityService,\n ) {}\n\n public validateLocation(callback: (isLocationFailed: boolean) => void): void {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n this.isLocationFetchTimeOut = false;\n this.isLocationFetched = false;\n this.resetTimerAndRefetchLocation = false;\n this.errorResponse = {} as GDSResponse;\n this.gdsApiInterval = this.geolocationConfig.initialRetryInterval;\n this.getLocationDetailsfromGDS(callback);\n this.startTimer(callback);\n }\n\n private startTimer(callback: (isLocationFailed: boolean) => void): void {\n this.clearTimer();\n this.resetTimer = this.timerService.setTimeout(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.isLocationFetchTimeOut = true;\n if (!this.isLocationFetched) {\n this.showGeoLocationError();\n callback(true);\n return;\n }\n }, this.gdsApiInterval);\n }\n\n private getLocationDetailsfromGDS(callback: (isLocationFailed: boolean) => void): void {\n if (!this.isLocationFetchTimeOut) {\n this.apiService.post(this.geolocationConfig.gdsUrl, 'ssoKey=' + this.user.ssoToken).subscribe((result) => {\n const results: any = result;\n if (results?.isLocationAvailable) {\n if (results?.locationStatus === 'VALID_LOCATION' && results?.errorCode === 0) {\n this.isLocationFetched = true;\n this.retryCount = 0;\n callback(false);\n return;\n }\n const isRetryableErrCode =\n this.geolocationConfig.isRetryButtonEnabled &&\n results?.troubleShooterMessages?.tsMsgs?.find((errMsg: any) => errMsg.retry === RetryType.Retry);\n\n this.errorResponse = results;\n if (isRetryableErrCode) {\n this.isLocationFetched = false;\n this.refetchLocationOnRetryableErrorCodes(callback);\n this.refetchGdsApi(callback);\n } else {\n this.clearTimer();\n this.showGeoLocationError();\n this.retryCount = 0;\n callback(true);\n return;\n }\n } else {\n this.errorResponse = results;\n this.refetchGdsApi(callback);\n }\n });\n }\n }\n\n private refetchLocationOnRetryableErrorCodes(callback: (isLocationFailed: boolean) => void): void {\n if (!this.resetTimerAndRefetchLocation) {\n this.isLocationFetchTimeOut = false;\n this.gdsApiInterval = this.geolocationConfig.retryInterval;\n this.resetTimerAndRefetchLocation = true;\n this.startTimer(callback);\n }\n }\n\n private clearTimer(): void {\n if (this.resetTimer) {\n this.timerService.clearTimeout(this.resetTimer);\n }\n }\n\n private refetchGdsApi(callback: (isLocationFailed: boolean) => void): void {\n let geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (geolocationConfig.enableRetryCountToCallNative) {\n if (this.retryCount === geolocationConfig.gdsFailureCount) {\n this.fetchLocationDetailsfromNativeEvent();\n }\n this.retryCount++;\n }\n this.timerService.setTimeout(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.getLocationDetailsfromGDS(callback);\n }, 1000);\n }\n\n private showGeoLocationError(): void {\n this.retryCount = 0;\n const tsMsgs = this.errorResponse?.troubleShooterMessages?.tsMsgs;\n this.dialogRef = this.dialog.open(GeoLocationErrorComponent, {\n data: {\n errorMessages: tsMsgs,\n },\n disableClose: true,\n panelClass: 'geo-comply-error-dialog',\n });\n //this.doTracking();\n }\n assignToCoordinatorService() {\n this.geolocationCoordinatorService.onError = undefined;\n this.geolocationCoordinatorService.onInitialized = undefined;\n }\n fetchLocationDetailsfromNativeEvent(): void {\n this.nativeAppService.sendToNative({\n eventName: TriggerGeoLocationOption.EventName,\n parameters: { action: TriggerGeoLocationOption.Action },\n });\n this.logger.log('casinofetchLocation ', TriggerGeoLocationOption.EventName);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationTrackingService {\n constructor(private trackingService: TrackingService) {}\n trackPosition(labelEvent: string, actionEvent: string, positionEvent: string) {\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'US_NJ_GEOAPP',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': 'not_applicable',\n 'component.EventDetails': 'not_applicable',\n 'component.URLClicked': 'not_applicable',\n });\n }\n track(labelEvent: string, actionEvent: string, locationEvent?: string) {\n if (locationEvent) {\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'US_NJ_GEOAPP',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': 'not_applicable',\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': 'not_applicable',\n 'component.URLClicked': 'not_applicable',\n });\n } else {\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'US_NJ_GEOAPP',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': 'not_applicable',\n 'component.LocationEvent': 'not_applicable',\n 'component.EventDetails': 'not_applicable',\n 'component.URLClicked': 'not_applicable',\n });\n }\n }\n}\n","
\n
\n
\n

\n \n
\n
\n
\n \n \n
\n
\n
\n
\n

\n \n
\n
\n
\n
\n

\n

\n
\n

\n
\n \n
\n
\n
\n
\n
\n
\n

\n
\n
\n

\n \n
\n
\n

\n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n {{ geoGuardDescriptionText }}\n \n \n
\n
\n
\n
\n","import { NgIf } from '@angular/common';\nimport { AfterViewInit, Component, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { DynamicHtmlDirective, LoadingIndicatorHandler, LoadingIndicatorService, NavigationService, Page, WindowRef } from '@frontend/vanilla/core';\nimport { PopperContentComponent } from '@frontend/vanilla/features/popper';\nimport { NgxFloatUiDirective, NgxFloatUiModule } from 'ngx-float-ui';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { BroswerStateDirective } from '../../directives/browser-state.directive';\nimport { CasinoManager } from '../../shared/casino-manager.service';\nimport { GeolocationTrackingService } from '../../shared/geolocation-tracking.service';\nimport { GeolocationCoordinatorService } from '../services/coordinator.service';\nimport { GeolocationCheckService } from '../services/geolocation-check.service';\n\n@Component({\n selector: 'cc-geolocation-installer',\n templateUrl: 'installer.component.html',\n standalone: true,\n imports: [\n NgIf,\n MatDialogTitle,\n MatDialogContent,\n DynamicHtmlDirective,\n MatDialogActions,\n NgxFloatUiDirective,\n PopperContentComponent,\n BroswerStateDirective,\n PopperContentComponent,\n NgxFloatUiModule,\n ],\n})\nexport class GeolocationInstallerComponent implements AfterViewInit {\n showLoader = false;\n @Input() data: any;\n loadingIndicatorHandler: LoadingIndicatorHandler;\n constructor(\n public readonly dialogRef: MatDialogRef,\n private readonly geolocationCoordinatorService: GeolocationCoordinatorService,\n private readonly geoLocationCheckService: GeolocationCheckService,\n private readonly _domSanitizer: DomSanitizer,\n @Inject(MAT_DIALOG_DATA) private readonly additionalInfo: any,\n private readonly _geolocationTrackingService: GeolocationTrackingService,\n private configProviderService: ConfigProviderService,\n private navigationService: NavigationService,\n private casinoManager: CasinoManager,\n private m2Page: Page,\n private route: ActivatedRoute,\n private windowRef: WindowRef,\n private loadingIndicatorService: LoadingIndicatorService,\n ) {}\n\n get geoComplyMessage(): string {\n return this.configProviderService.provideDownloadAppFromDeviceConfig().geoComplyMessage;\n }\n\n get appDownloadLink(): SafeResourceUrl {\n return this._domSanitizer.bypassSecurityTrustUrl(\n /(iPad|iPhone|iPod)/g.test(navigator.userAgent)\n ? 'javascript:void(0)'\n : /(Android)/g.test(navigator.userAgent)\n ? this.getGlobalConfig().messages.AndroidAppDownloadLink\n : '',\n );\n }\n\n get continueButtonText(): string {\n return this.getGlobalConfig().messages['GeoComplyContinueButtonText'];\n }\n\n get continuePlayOnAppInstructionText(): string {\n return this.getGlobalConfig().messages['ContinuePlayOnAppInstructionText'] || 'Continue play on our app, with automatic geolocation';\n }\n\n get continuePlayOnAppUserActionText(): string {\n return this.getGlobalConfig().messages['ContinuePlayOnAppUserActionText'] || 'CONTINUE PLAY ON PLAYMGM APP';\n }\n\n get continuePlayOnWebInstructionText(): string {\n return (\n this.getGlobalConfig().messages['ContinuePlayOnWebInstructionText'] ||\n 'To play on web, Geoguard needs to be installed and running on your device'\n );\n }\n\n get oobeeInstallerDownloadUserActionText(): string {\n return this.getGlobalConfig().messages['OobeeInstallerDownloadUserActionText'] || 'INSTALL OR OPEN GEOGUARD';\n }\n\n get oobeeInstallerContinueUserActionText(): string {\n return this.getGlobalConfig().messages['OobeeInstallerContinueUserActionText'] || 'GEOGUARD IS INSTALLED AND RUNNING';\n }\n\n get downloadButtonText(): string {\n return this.getGlobalConfig().messages['GeoComplyDownloadButtonText'];\n }\n\n get geocomplyText(): string {\n return this.getGlobalConfig().messages['GeoComplyText'];\n }\n get geocomplyTitle(): string {\n return this.getGlobalConfig().messages['GeoComplyTitle'];\n }\n\n get geoguardEnquiryUserActionText(): string {\n return this.getGlobalConfig().messages['GeoguardEnquiryUserActionText'] || 'WHAT IS GEOGUARD?';\n }\n\n get oobeeInstallerDownloadStepText(): string {\n return this.getGlobalConfig().messages['OobeeInstallerDownloadStepText'] || 'Step 1';\n }\n\n get oobeeInstallerContinueStepText(): string {\n return this.getGlobalConfig().messages['OobeeInstallerContinueStepText'] || 'Step 2';\n }\n\n get geolocationMobileInstallerTitle(): string {\n return this.getGlobalConfig().messages['GeolocationMobileInstallerTitle'] || 'LOCATION';\n }\n\n get isMobileInstaller(): boolean {\n if (this.data && this.data.isMobileInstaller) {\n return this.data && this.data.isMobileInstaller;\n } else {\n return this.additionalInfo && this.additionalInfo.isMobileInstaller;\n }\n }\n\n get oobeeInstallerHeadingText(): string {\n return this.getGlobalConfig().messages['OobeeInstallerHeadingText'] || 'Want to continue playing?';\n }\n\n get oobeeInstallerHeadingInstruction(): string {\n return (\n this.getGlobalConfig().messages['OobeeInstallerHeadingInstruction'] ||\n 'Before you launch a game we are required by law to confirm your location.'\n );\n }\n\n get playOnAppOrWebPlayerOptionsSeparatorText(): string {\n return this.getGlobalConfig().messages['PlayOnAppOrWebPlayerOptionsSeparatorText'] || 'OR';\n }\n\n get geoGuardDescriptionText(): string {\n return (\n this.getGlobalConfig().messages['GeoGuardDescriptionText'] ||\n `GeoGuard, a trusted 3rd party partner, allows you to obtain location data from your Android device. One time only install, launch every time you want to place a bet on web`\n );\n }\n continue(): void {\n this.showLoader = true;\n this.loadingIndicatorHandler = this.loadingIndicatorService.start();\n if (this.isMobileInstaller) {\n this._geolocationTrackingService.track('GeoLoc_Pop-up how to', 'Step 2 - Geoguard is Intalled and running - CTA Clicked');\n }\n this.geolocationCoordinatorService.initialize({\n showPLCPopup: true,\n });\n const callback = () => {\n this.showLoader = false;\n this.loadingIndicatorHandler.done();\n };\n this.geoLocationCheckService.checkGeolocation(callback, callback);\n }\n\n download(): void {\n if (this.isMobileInstaller) {\n this._geolocationTrackingService.track('GeoLoc_Pop-up how to', 'Step 1 - install or Open GeoGuard - CTA Clicked');\n if (this.data && this.data.downloadUrl) {\n window.open((this.data && this.data.downloadUrl) || '', '_blank');\n return;\n } else {\n window.open((this.additionalInfo && this.additionalInfo.downloadUrl) || '', '_blank');\n return;\n }\n }\n if (this.data && this.data.downloadUrl) {\n window.open((this.data && this.data.downloadUrl) || '', '_self');\n } else {\n window.open((this.additionalInfo && this.additionalInfo.downloadUrl) || '', '_self');\n }\n }\n\n close(): void {\n if (this.isMobileInstaller) {\n this._geolocationTrackingService.track('GeoLoc_Pop-up how to', 'Pop-up_Close');\n }\n this.dialogRef && this.dialogRef.close();\n if (\n this.navigationService.location.search.has('specialproduct') &&\n this.navigationService.location.search.get('specialproduct') === 'globalsearch'\n ) {\n const returnUrl = this.navigationService.location.search.has('returnurl')\n ? this.navigationService.location.search.get('returnurl')\n : this.navigationService.goToLastKnownProduct();\n if (returnUrl) {\n this.navigationService.goTo(returnUrl);\n }\n } else if (this.windowRef.nativeWindow.location?.pathname?.toLowerCase()?.indexOf('launchng') >= 0) {\n const returnUrl = this.route?.snapshot?.queryParamMap?.get('returnUrl') || this.route?.snapshot?.queryParamMap?.get('returnurl');\n if (returnUrl) {\n this.navigationService?.goTo(returnUrl);\n } else {\n const lobbyType = this.casinoManager?.getLobbyType() || '';\n this.navigationService?.goTo('/' + this.m2Page.lang + '/' + this.casinoManager?.getProductForLobbyType(lobbyType)?.toLowerCase());\n }\n } else if (this.windowRef.nativeWindow.location?.pathname?.toLowerCase()?.indexOf('forcedgamelaunch') >= 0) {\n const returnUrl =\n this.route?.snapshot?.queryParamMap?.get('originUrl') ||\n this.route?.snapshot?.queryParamMap?.get('originurl') ||\n this.route?.snapshot?.queryParamMap?.get('returnUrl') ||\n this.route?.snapshot?.queryParamMap?.get('returnurl');\n if (returnUrl) {\n this.navigationService?.goTo(returnUrl);\n } else {\n const lobbyType = this.casinoManager?.getLobbyType() || '';\n this.navigationService?.goTo('/' + this.m2Page.lang + '/' + this.casinoManager?.getProductForLobbyType(lobbyType)?.toLowerCase());\n }\n }\n }\n\n appDownloaderClicked(): void {\n let appDownloadLink = '';\n let appId = this.getGlobalConfig().messages.AndroidAppID ? this.getGlobalConfig().messages.AndroidAppID : '';\n if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) {\n appDownloadLink = this.getGlobalConfig().messages.iOSAppDownloadLink;\n appId = this.getGlobalConfig().messages.iOSAppID ? this.getGlobalConfig().messages.iOSAppID : '';\n }\n this._geolocationTrackingService.trackPosition('GeoLoc_Pop-up how to', 'Continue to play on an APP_ CTA Clicked', appId);\n if (!appDownloadLink) {\n return;\n }\n window.open(appDownloadLink, '_blank');\n }\n\n hideLoader(): void {\n this.showLoader = false;\n }\n\n info() {\n if (this.isMobileInstaller) {\n this._geolocationTrackingService.track('GeoLoc_Pop-up how to', 'InfoTool - What is Geoguard - CTA Clicked');\n }\n }\n\n ngAfterViewInit() {\n this._geolocationTrackingService.track('GeoLoc_Pop-up how to', 'Pop-up_Loaded');\n }\n\n getGlobalConfig(): any {\n return this.configProviderService.provideGlobalConfig();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { GeolocationInstallerComponent } from '../installer/installer.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationInstallerDialogService {\n onDialogClosed: () => void;\n\n private dialogRef: MatDialogRef;\n private _isDialogOpen: boolean = false;\n\n constructor(private readonly dialog: MatDialog) {}\n\n openDialog(downloadUrl: string, isMobileInstaller: boolean) {\n this.dialogRef = this.dialog.open(GeolocationInstallerComponent, {\n width: '250px',\n data: {\n downloadUrl: downloadUrl,\n isMobileInstaller: isMobileInstaller,\n },\n panelClass: 'geo-location-installer',\n });\n this._isDialogOpen = true;\n\n this.dialogRef.afterClosed().subscribe(() => {\n //console.info('The dialog was closed:', result);\n this._isDialogOpen = false;\n if (this.onDialogClosed) {\n this.onDialogClosed();\n }\n });\n }\n\n closeDialog(): void {\n this.dialogRef && this.dialogRef.close();\n }\n\n get isDialogOpen(): boolean {\n return this._isDialogOpen;\n }\n\n hideLoader(): void {\n this.dialogRef && this.dialogRef.componentInstance && this.dialogRef.componentInstance.hideLoader();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { CoordinatorStates, IErrorData } from '@frontend/geo-coordinator/client-stub';\nimport { GeoCoordinatorPermissionsManagerService, PermissionInfo } from '@frontend/geo-coordinator/permissions-manager';\nimport { Logger } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CasinoManager } from '../../shared/casino-manager.service';\nimport { GeolocationCoordinatorService } from './coordinator.service';\nimport { GeoLocationValidationService } from './geolocation-validation.service';\nimport { GeolocationInstallerDialogService } from './installer-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationCheckService {\n onCheckClosed: () => void;\n isOnErrorInvoked: boolean = false;\n errorData: IErrorData;\n geolocationConfig: any;\n\n private readonly geoCoordinatorPermissionsManagerService = inject(GeoCoordinatorPermissionsManagerService);\n\n constructor(\n private geolocationCoordinatorService: GeolocationCoordinatorService,\n private geolocationInstallerService: GeolocationInstallerDialogService,\n private geoLocationValidation: GeoLocationValidationService,\n private readonly casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private logger: Logger,\n ) {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n this.geolocationInstallerService.onDialogClosed = this.onInstallerServiceDialogClosed.bind(this);\n }\n\n checkGeolocation(callback: any, errorCallback: any): void {\n this.isOnErrorInvoked = false;\n this.geolocationCoordinatorService.isSynchronizedUninit = false;\n const geoConfig = this.configProviderService.provideGeoLocationConfig();\n this.geolocationCoordinatorService.onInitialized = (initializationStatus: CoordinatorStates) => {\n this.isOnErrorInvoked = false;\n this.logger.info('[GeolocationCheckService]', 'GeolocationCoordinatorService::', 'onInitialized::', initializationStatus);\n if (initializationStatus === CoordinatorStates.INITIALIZED) this.closeDialogAndLaunchGame(callback);\n };\n\n this.geolocationCoordinatorService.onError = (errorData: IErrorData) => {\n this.isOnErrorInvoked = true;\n this.errorData = errorData;\n this.logger.error('[GeolocationCheckService]', 'GeolocationCoordinatorService::', 'onError::', errorData);\n if (errorData && errorData.errorCode == -1111) {\n const geoConfig = this.configProviderService.provideGeoLocationConfig();\n if (!geoConfig?.enableNDBS) {\n this.showGeolocationInstallerPopup(this.extractAppDownloadUrlFromErrorData(errorData), this.isMobileInstaller());\n errorCallback();\n } else {\n callback();\n }\n return;\n } else {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (this.geolocationConfig?.desktopLocationValidation) {\n this.geoLocationValidation?.validateLocation((response: boolean) => {\n if (response != null && !response) {\n callback();\n } else {\n errorCallback();\n }\n });\n } else this.closeDialogAndLaunchGame(callback);\n return;\n }\n };\n\n this.geolocationCoordinatorService.onUninitialized = () => {\n if (this.isOnErrorInvoked) this.isOnErrorInvoked = false;\n else if (!this.geolocationCoordinatorService.isSynchronizedUninit) {\n this.geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (this.geolocationConfig?.desktopLocationValidation) {\n this.geoLocationValidation.validateLocation((response: boolean) => {\n if (response != null && !response) callback();\n else errorCallback();\n });\n } else this.closeDialogAndLaunchGame(callback);\n }\n this.logger.info('[GeolocationCheckService]', 'GeolocationCoordinatorService::', 'onUninitialized::');\n };\n\n if (!geoConfig.enableNDBS) {\n this.geolocationCoordinatorService.initialize({\n showPLCPopup: false,\n });\n } else {\n if (this.geolocationCoordinatorService?.permissionsManager) {\n this.geolocationCoordinatorService.permissionsManager.onPermissionInfo = (permissionsInfo: PermissionInfo) => {\n if (permissionsInfo.status === 'available') {\n this.geoCoordinatorPermissionsManagerService.closePermissionsInfo();\n this.geolocationCoordinatorService.initialize({\n showPLCPopup: false,\n });\n return;\n }\n if (permissionsInfo.status === 'notavailable') {\n this.geoCoordinatorPermissionsManagerService.handlePermissionsInfo({\n permissionsInfo,\n textDictionary: this.configProviderService.provideGlobalConfig().messages,\n geoCoordinatorService: this.geolocationCoordinatorService,\n });\n }\n };\n this.geolocationCoordinatorService?.permissionsManager?.seekPermission();\n }\n }\n }\n\n closeDialogAndLaunchGame(callback: any): void {\n this.geolocationInstallerService.closeDialog();\n callback();\n }\n\n private showGeolocationInstallerPopup(downloadUrl: string, isMobileInstaller: boolean): void {\n this.geolocationInstallerService.hideLoader();\n if (!this.geolocationInstallerService.isDialogOpen) this.geolocationInstallerService.openDialog(downloadUrl, isMobileInstaller);\n }\n\n private isMobileInstaller(): boolean {\n return this.casinoManager.isTouch();\n }\n\n private onInstallerServiceDialogClosed(): void {\n if (this.onCheckClosed) {\n this.onCheckClosed();\n }\n }\n\n private extractAppDownloadUrlFromErrorData(errorData: IErrorData): string {\n const appDownloadUrl = 'appDownloadUrl';\n return (\n (errorData && errorData.additionalInfo && errorData.additionalInfo[appDownloadUrl]) || this.geolocationCoordinatorService.appDownloadUrl\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilityService {\n private readonly configProviderService = inject(ConfigProviderService);\n constructor() {}\n\n getPositionXY(e: any) {\n const res = { x: 0, y: 0 };\n if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {\n const touch = e.touches[0] || e.changedTouches[0];\n res.x = touch.pageX;\n res.y = touch.pageY;\n } else if (\n e.type === 'mousedown' ||\n e.type === 'mouseup' ||\n e.type === 'mousemove' ||\n e.type === 'mouseover' ||\n e.type === 'mouseout' ||\n e.type === 'mouseenter' ||\n e.type === 'mouseleave'\n ) {\n res.x = e.pageX;\n res.y = e.pageY;\n }\n return res;\n }\n\n deepMergeObjects(mergeAccumulator: any, ...mergees: any[]) {\n if (mergeAccumulator == null) {\n mergeAccumulator = {};\n }\n\n const accumulatedMerge = Object(mergeAccumulator);\n\n //iterative vs recursive\n for (let argumentIndex = 0; argumentIndex < mergees.length; argumentIndex++) {\n const nextMergee = mergees[argumentIndex];\n\n if (nextMergee) {\n // Skip over if undefined or null\n for (const nextKeyToBeMerged in nextMergee) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextMergee, nextKeyToBeMerged)) {\n if (\n typeof accumulatedMerge[nextKeyToBeMerged] === 'object' &&\n accumulatedMerge[nextKeyToBeMerged] &&\n typeof nextMergee[nextKeyToBeMerged] === 'object' &&\n nextMergee[nextKeyToBeMerged]\n ) {\n this.deepMergeObjects(accumulatedMerge[nextKeyToBeMerged]);\n } else {\n accumulatedMerge[nextKeyToBeMerged] = nextMergee[nextKeyToBeMerged];\n }\n }\n }\n }\n }\n return accumulatedMerge;\n }\n\n getDaysInMonth(year: number, month: number): number {\n return new Date(year, month, 0).getDate();\n }\n\n getLastMonthArcadeExpiry(): string {\n const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n const coinExpiryDay = this.configProviderService.providePromoCoinEconomyConfig()?.coinExpiryDay - 1;\n const currentDay = new Date().getDate();\n if (currentDay <= coinExpiryDay) {\n return monthNames[new Date().getMonth() - 1];\n } else {\n return monthNames[new Date().getMonth()];\n }\n }\n\n /**Duplicate function present in casino manager file as well */\n getProductForGivenLobbyType(lobbyType: string): string {\n const lmtDataClientConfig: any = this.configProviderService.provideLmtConfig();\n const lobbyTypeMap: any = lmtDataClientConfig.lobbyTypeMap;\n for (let i = 0; i < lobbyTypeMap.length; i++) {\n if (lobbyTypeMap[i].lobbyType == lobbyType) {\n if (lobbyTypeMap[i].product) return lobbyTypeMap[i]?.product?.toLowerCase();\n }\n }\n return '';\n }\n\n getLanguageContentMap(languageArray: any): Map {\n const languageMap: Map = new Map();\n if (languageArray && languageArray.length > 0) {\n for (let i = 0; i < languageArray.length; i++) {\n const langItem: string = languageArray[i];\n if (langItem.indexOf(':') > -1) {\n const langResolve: any = langItem.split(':');\n languageMap.set(langResolve[0], langResolve[1]);\n }\n }\n }\n return languageMap;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { NativeAppService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CookieService {\n isConsented = false;\n private readonly nativeAppService = inject(NativeAppService);\n\n getCookie(name: string) {\n const ca: Array = decodeURIComponent(document.cookie).split(';');\n const caLen: number = ca.length;\n const cookieName = `${name}=`;\n let c: string;\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return '';\n }\n\n setCookie(name: string, value: string, expireDays: number, path: string = '') {\n const d: Date = new Date();\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\n const expires = `expires=${d.toUTCString()}`;\n const cpath = path ? `; path=${path}` : '';\n document.cookie = `${name}=${value}; ${expires}${cpath}; SameSite=Lax`;\n }\n\n // NFR - Services optimization - Remove\n consent(isConsent: boolean, e: any, COOKIE: string, EXPIRE_DAYS: number) {\n if (!isConsent) {\n return this.isConsented;\n } else if (isConsent) {\n this.setCookie(COOKIE, '1', EXPIRE_DAYS);\n this.isConsented = true;\n e.preventDefault();\n }\n return false;\n }\n\n isODR(odrName: string) {\n const nativeAppCookie = this.getCookie('NativeApp');\n const isODR: boolean = this.nativeAppService?.applicationName?.toLowerCase() === odrName || nativeAppCookie?.toLowerCase() === odrName;\n return isODR;\n }\n\n isPokerApp() {\n const nativeAppCookie = this.getCookie('NativeApp');\n return nativeAppCookie?.toLowerCase() == 'poker';\n }\n\n getFromCookie(key: any): boolean {\n if (this.getCookie(key) > '0') {\n return true;\n }\n return false;\n }\n}\n\nexport enum ODR_NAME {\n CASINO_WODR = 'casinowodr',\n SPORTS_WODR = 'sportswodr',\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, ClaimsService, CookieService, DeviceService, NativeAppService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { AdvanceGameDataService } from './advance-game-data.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\nimport { CasinoManager } from './casino-manager.service';\nimport { CookieService as CasinoCookieService, ODR_NAME } from './cookie.service';\nimport { FavouriteService } from './favourite.service';\nimport { GameLaunch } from './models/gamelaunch.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameLaunchUrlFormationService {\n currentProduct: string;\n isPokerOROdr: boolean;\n constructor(\n private configProviderService: ConfigProviderService,\n private claimsConfig: ClaimsService,\n private advanceGameDataService: AdvanceGameDataService,\n private urlUtilityService: UrlUtilityService,\n private favouriteService: FavouriteService,\n private casinoManager: CasinoManager,\n private apiPathsHelperService: ApiPathsHelperService,\n private readonly nativeAppService: NativeAppService,\n private cookieService: CookieService,\n private deviceService: DeviceService,\n private appInfoConfig: AppInfoConfig,\n private casinoCookieService: CasinoCookieService,\n ) {}\n\n launchMGSGame(response: any, gameLaunchParam: GameLaunch) {\n let url: string;\n let defaultUrlPattern: any;\n const gameLaunchParams = response.casinoCoreGameLaunchResponseParams;\n const gameLaunchQueryParams = response.casinoCoreGameLaunchQueryResponseParams; //parameters from api response\n const gameConfig = this.configProviderService.provideGameConfig();\n const featureConfig = this.configProviderService.provideFeaturesConfig();\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const advanceGameDataConfig = this.configProviderService.provideAdvanceGameDataConfig();\n const product = this.getInvokerProduct(gameLaunchParams.product);\n const channelId = gameLaunchParams.channelId;\n const currencyCode = this.claimsConfig.get('currency');\n const ssoToken = this.claimsConfig.get('ssoToken');\n const enableMultigameView = featureConfig.enableMultiGameVIew;\n const egvFavourites = featureConfig.egvFavourites;\n const brandId = casinoConfig.brandId;\n const frontendId = casinoConfig.frontendId;\n const pingUrl = this.getPingUrlWithToken() ? this.getPingUrlWithToken() : '';\n const accountUrl = this.getAccountUrl();\n const historyUrl = this.getHistoryUrl();\n const indexFilePath = this.getIndexFilePath();\n const isFavGame = this.favouriteService.checkForFavouriteGame(gameLaunchParam.game);\n const isGeoGuardEnabled = this.nativeAppService.isNativeApp || this.nativeAppService.isNativeWrapper ? false : true;\n const geoPollingUrl = gameLaunchParams.geoPollingUrl;\n const launchType = this.casinoManager.isTouch() ? 'EL' : 'IL';\n const casinoAsIFrameConfig = this.configProviderService.provideCasinoAsIFrameConfig();\n const vnChannel = this.appInfoConfig?.channel;\n let depositRedirectUrl = gameLaunchParams.depositRedirectUrl;\n if (gameLaunchParam.gameLaunchedFrom != 'playRedirect') {\n depositRedirectUrl = this.updateDepositRedirectUrl(gameLaunchParams.depositRedirectUrl);\n }\n gameLaunchParams.gameHomeUrl = decodeURIComponent(gameLaunchParams.gameHomeUrl);\n gameLaunchParams.gameHomeUrl = gameLaunchParams.gameHomeUrl.replace('/?', '?');\n\n if (gameLaunchParam.gameContainer === 'Overlay' && casinoAsIFrameConfig.appendOpenCasinoCoreOverlayQueryParam) {\n if (!(gameLaunchParams.gameHomeUrl.indexOf('openCasinoCoreOverlay=true') > -1)) {\n gameLaunchParams.gameHomeUrl = this.appendQueryString(gameLaunchParams.gameHomeUrl, 'openCasinoCoreOverlay', 'true');\n }\n }\n if (gameLaunchParam.returnUrl && gameLaunchParam.returnUrl != '') {\n gameLaunchParams.gameHomeUrl = gameLaunchParam.returnUrl;\n }\n gameLaunchParams.gameHomeUrl = encodeURIComponent(gameLaunchParams.gameHomeUrl);\n this.advanceGameDataService.setGameLaunchProductsIndex();\n const windowObj = window as any;\n let pageNumber = 0;\n if (windowObj.clientConfig.vnHeader !== undefined) {\n windowObj.clientConfig.vnHeader.products.forEach((headerPrduct: any) => {\n if (headerPrduct?.name?.toLowerCase() === this.currentProduct?.toLowerCase()) {\n pageNumber = headerPrduct.ProductIndex;\n }\n });\n }\n if ((this.deviceService.isMobile || this.deviceService.isTouch) && windowObj.clientConfig.vnBottomNav !== undefined) {\n windowObj.clientConfig.vnBottomNav.items.forEach((bottmNavItems: any) => {\n if (bottmNavItems?.name?.toLowerCase() === this.currentProduct?.toLowerCase()) {\n pageNumber = bottmNavItems.ProductIndex;\n }\n });\n }\n let sglProduct = this.currentProduct ? this.currentProduct : gameLaunchParam?.currentProduct;\n sglProduct = sglProduct ? sglProduct : 'games'; // if current product is not available by default consider games as product\n const isLiveConfig = gameLaunchParam?.isLive && gameConfig.desktopChannelIds.indexOf(channelId) > -1;\n let enableSGLForPokerOrOdr = this.configProviderService.provideGameConfig()?.enableSGLForPokerOrOdr; // to enable SGL for poker/casinowodr apps\n this.isPokerOROdr =\n (enableSGLForPokerOrOdr?.isPokerApp && this.casinoCookieService.isPokerApp()) ||\n (enableSGLForPokerOrOdr?.isOdr && this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR));\n if ((this.casinoManager.isSingleHostLobbyType(gameLaunchParam?.game?.lobbyType, sglProduct) || this.isPokerOROdr) && !isLiveConfig) {\n url = this.singleGameLaunchUrlFormation(\n gameConfig,\n gameLaunchParams,\n gameLaunchParam,\n channelId,\n product,\n pageNumber,\n brandId,\n ssoToken,\n frontendId,\n currencyCode,\n vnChannel,\n geoPollingUrl,\n isGeoGuardEnabled,\n );\n } else {\n const mobileUrlParamArray: Array = [\n ssoToken,\n gameLaunchParams.internalGameName,\n gameLaunchParams.languageCode,\n channelId,\n product,\n gameLaunchParams.gameHomeUrl,\n encodeURIComponent(pingUrl),\n encodeURIComponent(accountUrl),\n encodeURIComponent(depositRedirectUrl),\n encodeURIComponent(gameLaunchParams.responsibleGamingUrl),\n brandId,\n gameLaunchParam.game.lobbyType,\n gameConfig.win.casinoEnvironment,\n gameLaunchParams.userHostAddress,\n gameConfig.win.keepAliveInterval,\n historyUrl,\n encodeURIComponent(gameLaunchParams.generalTermsAndConditionsUrl),\n encodeURIComponent(gameLaunchParams.casinoHomeUrl),\n gameLaunchParam.mode,\n gameLaunchParam.isDemoLaunch,\n encodeURIComponent(indexFilePath),\n gameLaunchParams.portalLanguage.routeValue,\n encodeURIComponent(geoPollingUrl),\n isGeoGuardEnabled,\n frontendId,\n pageNumber,\n gameLaunchParam.gamePosition + 1,\n vnChannel,\n ];\n\n const desktopUrlParamArray: Array = [\n gameLaunchParams.languageCode,\n gameLaunchParams.internalGameName,\n product,\n channelId,\n gameLaunchParams.languageCode,\n currencyCode,\n ssoToken,\n 'lobby',\n pageNumber,\n gameLaunchParam.gamePosition + 1,\n '1024',\n '770',\n encodeURIComponent(gameLaunchParams.casinoNoLanguageBaseUrl),\n enableMultigameView,\n egvFavourites.toString(),\n brandId,\n frontendId,\n isFavGame.toString(),\n gameLaunchParams.portalLanguage.routeValue,\n gameConfig.win.keepAliveInterval,\n encodeURIComponent(pingUrl),\n launchType,\n gameLaunchParams.gameHomeUrl,\n gameLaunchParam.game.lobbyType,\n vnChannel,\n ];\n if (gameConfig.desktopChannelIds.indexOf(channelId) > -1) {\n // todo ---- check for live games\n if (gameLaunchParam.fetchLiveGameIFrame) {\n defaultUrlPattern = gameConfig.desktopMGSLiveGameLaunchURL;\n url = this.format(defaultUrlPattern, desktopUrlParamArray);\n } else if (!response.isLiveGame) {\n defaultUrlPattern = gameConfig.desktopMGSGameLaunchUrl.defaultUrlPattern;\n url = this.format(defaultUrlPattern, desktopUrlParamArray);\n } else {\n defaultUrlPattern = gameConfig.desktopMGSLiveGameLaunchURL;\n url = this.format(defaultUrlPattern, desktopUrlParamArray);\n }\n } else {\n if (gameLaunchParam.gameLaunchedFrom == 'LotteryGameIframe') {\n defaultUrlPattern = gameConfig.lottoMGSGameLaunchUrl.defaultUrlPattern;\n } else {\n defaultUrlPattern = gameConfig.mgsGameLaunchUrl.defaultUrlPattern;\n }\n url = this.format(defaultUrlPattern, mobileUrlParamArray);\n }\n }\n if (gameLaunchQueryParams) {\n if (gameConfig?.enableSlotRaceParams && (gameLaunchParam?.promoId || gameLaunchParam?.slotUniqueId)) {\n gameLaunchQueryParams.promoId = gameLaunchParam.promoId;\n gameLaunchQueryParams.slotUniqueId = gameLaunchParam.slotUniqueId;\n }\n\n if (gameLaunchQueryParams.clickTimeStamp) {\n gameLaunchQueryParams.clickTimeStamp = gameLaunchParam.clickTimeStamp;\n }\n if (gameLaunchQueryParams.launchSource) {\n if (gameLaunchParam.launchSource) {\n gameLaunchQueryParams.launchSource = gameLaunchParam.launchSource;\n } else {\n gameLaunchQueryParams.launchSource = this.launchSource();\n }\n }\n Object.keys(gameLaunchQueryParams).forEach((key: string) => {\n url = this.appendQueryString(url, key, gameLaunchQueryParams[key]);\n });\n }\n if (advanceGameDataConfig.enableAdvanceGameData) {\n url = this.advanceGameDataService.appendAdvanceGameDataUrl(url, channelId);\n }\n url = url.split('//').join('/');\n url = this.encodeQueryParam(url, 'bgColor');\n url = this.addHost(url);\n if (this.configProviderService?.gameConfig?.passNativeAppCookieToGameLaunch) {\n const nativeApp: string = '_nativeApp';\n const nativeAppCookie = this.cookieService.get('NativeApp');\n if (nativeAppCookie != null) url = this.appendQueryString(url, nativeApp, nativeAppCookie);\n }\n //console.log('gamelaunchurl:' + url);\n return url;\n }\n\n singleGameLaunchUrlFormation(\n gameConfig: any,\n gameLaunchParams: any,\n gameLaunchParam: GameLaunch,\n channelId: string,\n product: string,\n pageNumber: number,\n brandId: string,\n ssoToken: string | null,\n frontendId: string,\n currencyCode: string | null,\n vnChannel: string | null,\n geoPollingUrl: string,\n isGeoGuardEnabled: boolean,\n ) {\n let url: string;\n let defaultUrlPattern: any;\n let isDesktopContainer: boolean = gameConfig.desktopChannelIds.indexOf(channelId) > -1;\n let coinGame: boolean = gameLaunchParam?.game?.lobbyType?.toLowerCase() == gameConfig?.arcadeLobbyType?.toLowerCase();\n gameLaunchParams.gameHomeUrl = this.isPokerOROdr\n ? gameConfig?.backToPortalLobby\n ? encodeURIComponent(gameConfig?.backToPortalLobby)\n : gameLaunchParams.gameHomeUrl\n : gameLaunchParams.gameHomeUrl;\n\n let singleGameUrlParamArray: Array = [\n gameLaunchParams.internalGameName,\n gameLaunchParams.languageCode,\n channelId,\n product,\n pageNumber,\n gameLaunchParam.gamePosition + 1,\n brandId,\n gameLaunchParam.game.lobbyType,\n gameLaunchParams.userHostAddress,\n gameLaunchParam.mode,\n ssoToken,\n gameLaunchParams.gameHomeUrl,\n gameLaunchParams.portalLanguage.routeValue,\n frontendId,\n currencyCode,\n 'lobby',\n isDesktopContainer,\n coinGame,\n vnChannel,\n encodeURIComponent(geoPollingUrl),\n isGeoGuardEnabled,\n ];\n defaultUrlPattern = gameConfig?.singleGameLaunchUrl?.defaultUrlPattern;\n url = this.format(defaultUrlPattern, singleGameUrlParamArray);\n return url;\n }\n\n format(content: string, array: Array) {\n let theString = content;\n for (let i = 0; i < content.length; i++) {\n const regEx = new RegExp('\\\\{' + i + '\\\\}', 'gm');\n if (array[i] != undefined) {\n theString = theString.replace(regEx, array[i]);\n } else {\n theString = theString.replace(regEx, '');\n }\n }\n return theString;\n }\n getPingUrlWithToken() {\n const userToken = this.claimsConfig.get('userToken');\n const sessionToken = this.claimsConfig.get('sessionToken');\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.apiPathsHelperService.transformApi(\n apiPathsConfig.ping['pgUrlWithToken'],\n this.urlUtilityService.getApiBaseUrl(),\n userToken,\n sessionToken,\n );\n }\n getAccountUrl() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.urlUtilityService.getApiBaseUrl() + apiPathsConfig.gameData['myCasino'];\n }\n getHistoryUrl() {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const gameLogUrl = casinoConfig.gameLogUrl;\n if (gameLogUrl == null) {\n return null;\n } else {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return encodeURIComponent(this.urlUtilityService.getApiBaseUrl() + apiPathsConfig.gameData['gameLogs']);\n }\n }\n getIndexFilePath() {\n const gameConfig = this.configProviderService.provideGameConfig();\n const indexFilePath: string = gameConfig.win.winGameLaunchFile;\n return indexFilePath.substring(0, indexFilePath.lastIndexOf('/'));\n }\n addHost(url: string) {\n const gameConfig = this.configProviderService.provideGameConfig();\n if (url.indexOf('http') != -1) {\n url = gameConfig.host + '/' + url;\n }\n return url;\n }\n appendQueryString(url: string, key: string, value: string): string {\n if (url.indexOf('?') > -1) {\n url += '&' + key + '=' + value;\n } else {\n url += '?' + key + '=' + value;\n }\n return url;\n }\n\n launchSource() {\n const nativeAppCookie = this.cookieService.get('NativeApp');\n if (nativeAppCookie && (nativeAppCookie?.toLowerCase() === 'pokervc' || nativeAppCookie?.toLowerCase() === 'pokermc')) {\n return 'poker_portal';\n } else if (nativeAppCookie?.toLowerCase() === 'poker') {\n return 'pk_pc_native';\n }\n return 'casino_portal';\n }\n\n setCurrentProduct(routeCurrentProduct: string) {\n this.currentProduct = routeCurrentProduct;\n }\n\n getCurrentProduct() {\n return this.currentProduct;\n }\n\n encodeQueryParam(url: string, key: string): string {\n const queryParamValue = this.getQueryParameter(url, key);\n if (queryParamValue) {\n let updatedUrl = this.removeParam(url, key);\n updatedUrl = this.appendQueryString(updatedUrl, key, encodeURIComponent(queryParamValue));\n return updatedUrl;\n }\n return url;\n }\n\n getQueryParameter(url: string, key: string): string {\n const parameters = new URLSearchParams(url);\n return parameters.get(key) || '';\n }\n\n removeParam(url: string, key: string) {\n let splittedURL = url.split('?')[0];\n let params_arr: string[] = [];\n const queryString = url.indexOf('?') !== -1 ? url.split('?')[1] : '';\n if (queryString !== '') {\n params_arr = queryString.split('&');\n for (let i = params_arr.length - 1; i >= 0; i -= 1) {\n const param = params_arr[i].split('=')[0];\n if (param === key) {\n params_arr.splice(i, 1);\n }\n }\n if (params_arr?.length > 0) {\n splittedURL = splittedURL + '?' + params_arr.join('&');\n }\n }\n return splittedURL;\n }\n\n getInvokerProduct(product: string) {\n const modularSettingsConfig = this.configProviderService.provideModularSettingsConfig();\n const productMap = modularSettingsConfig.productMap;\n const invokerProduct = productMap.filter((af: any) => af?.product?.toLowerCase() === product?.toLowerCase());\n return invokerProduct[0].invokerProduct.toUpperCase();\n }\n\n updateDepositRedirectUrl(depositRedirectUrl: string): string {\n let depositUrl: string = decodeURIComponent(depositRedirectUrl);\n if (depositUrl) {\n let parentUrl = depositUrl.slice(depositUrl.indexOf('parentUrl=') + 'parentUrl='.length);\n parentUrl = this.appendQueryString(parentUrl, 'returnUrl', window.location.href);\n parentUrl = parentUrl.replace('/?', '?');\n depositUrl = this.removeParam(depositUrl, 'parentUrl');\n depositUrl = this.appendQueryString(depositUrl, 'parentUrl', parentUrl);\n }\n return depositUrl;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalSearchHelperService {\n presentationBootstraped: EventEmitter = new EventEmitter();\n contextAvailable: EventEmitter = new EventEmitter();\n\n launchGlobalSearch() {\n dispatchEvent(new CustomEvent('gs:presentation:launchsearch', { detail: { launchChannel: 'desktop', launchedFrom: 'sub-nav' } }));\n }\n\n closeGlobaSearch() {\n dispatchEvent(new CustomEvent('gs:presentation:closesearch', { detail: { closedFrom: 'close', launchedFrom: 'sub-nav' } }));\n }\n\n registerEventHandlers() {\n addEventListener('gs:search:service:context:result', this.contextResultEventHandler);\n addEventListener('gs:presentation:bootstrapped', this.presentationBootstrappedEventHandler);\n }\n\n deregisterEvents() {\n removeEventListener('gs:search:service:context:result', this.contextResultEventHandler);\n removeEventListener('gs:presentation:bootstrapped', this.presentationBootstrappedEventHandler);\n }\n\n fetchContext() {\n dispatchEvent(new CustomEvent('gs:search:service:context:fetch'));\n }\n\n private readonly contextResultEventHandler = (messageEvent: CustomEventInit) => {\n this.contextAvailable.emit(messageEvent.detail);\n dispatchEvent(new CustomEvent('gs:productstub:entrypoint:active', { detail: { activeFrom: 'sub-nav' } }));\n };\n\n private readonly presentationBootstrappedEventHandler = (messageEvent: CustomEventInit) => {\n this.presentationBootstraped.emit(messageEvent.detail);\n dispatchEvent(new CustomEvent('gs:productstub:entrypoint:active', { detail: { activeFrom: 'sub-nav' } }));\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonitorService {\n active: boolean = false;\n portalInfoAvailable: boolean = false;\n portalInfo: any = null;\n MONITOR_INACTIVE: string = 'monitor:inactive';\n\n private monitorActiveStatus = new BehaviorSubject('');\n monitorActiveObservable: Observable = this.monitorActiveStatus.asObservable();\n\n setMonitorActiveStatus(status: string) {\n this.monitorActiveStatus.next(status);\n }\n\n activate() {\n this.active = true;\n return true;\n }\n deactivate() {\n this.active = false;\n this.setMonitorActiveStatus(this.MONITOR_INACTIVE);\n return true;\n }\n\n isActive() {\n return this.active;\n }\n // NFR - Services optimization - Remove\n isPortalInfoAvailable() {\n return this.portalInfoAvailable;\n }\n // NFR - Services optimization - Remove\n getPortalInfo() {\n return this.portalInfo;\n }\n\n managePortalInfo(response: any, success: any) {\n if (!this.active) {\n return;\n }\n\n let info;\n\n if (response) {\n if (success && response.portalInfo) {\n info = response.portalInfo;\n } else if (response.data && response.data.data && response.data.data.portalInfo) {\n info = response.data.data.portalInfo;\n }\n }\n\n if (!info) {\n info = {};\n }\n if (info.statusCode == null) {\n info.statusCode = -1;\n }\n if (!info.statusMessage) {\n info.statusMessage = 'Result unknown. Unable to receive Portal Info from server';\n info.isProtected = false;\n }\n\n this.portalInfo = info;\n this.portalInfoAvailable = true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MessageQueueService, NativeAppService, NativeEvent, UserService } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoApiService } from './casino-api.service';\nimport { GameLaunchUrlFormationService } from './gamelaunch-url-formation.service';\nimport { OpenLoginDialog } from './open-login-dialog-v6';\n\nclass NativeAppFeatures {\n topBar: string;\n footer: string;\n navigationBar: string;\n fixednav: string;\n nativeStyle: string;\n constructor() {\n this.topBar = 'topBar';\n this.footer = 'footer';\n this.navigationBar = 'navigationBar';\n this.fixednav = 'fixednav';\n this.nativeStyle = 'nativeStyle';\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeAppHelperService {\n nativeAppFeatures: NativeAppFeatures = new NativeAppFeatures();\n\n constructor(\n private nativeApplication: NativeAppService,\n private configProviderService: ConfigProviderService,\n private messageQueue: MessageQueueService,\n private casinoapi: CasinoApiService,\n private user: UserService,\n private loginDialog: OpenLoginDialog,\n private gameLaunchUrlFormationService: GameLaunchUrlFormationService,\n ) {}\n\n isNativeFeatureEnabled(featureName: string) {\n switch (featureName) {\n case this.nativeAppFeatures.topBar:\n case this.nativeAppFeatures.footer:\n case this.nativeAppFeatures.navigationBar:\n if (!this.nativeApplication.isNativeApp || this.nativeApplication.isNativeWrapper) {\n return true;\n }\n break;\n case this.nativeAppFeatures.fixednav:\n if (!this.nativeApplication.isNativeApp && !this.nativeApplication.isNativeWrapper) {\n return true;\n }\n break;\n case this.nativeAppFeatures.nativeStyle:\n if (this.nativeApplication.isNativeApp) {\n return true;\n }\n break;\n }\n return false;\n }\n\n handleNativeGameLaunch(params: any, gameLaunchModel: any, callback?: any): void {\n if (this.user.isAuthenticated) {\n this.launchGameForNativeApp(params, gameLaunchModel, callback);\n } else {\n this.loginDialog.open();\n }\n }\n\n launchGameForNativeApp(params: any, gameLaunchModel: any, callback?: any): void {\n const globalConfig = this.configProviderService.provideGlobalConfig();\n this.getLaunchData(params).subscribe(\n (response) => {\n if (response) {\n if (response.redirect && response.redirect.indexOf('/unfinished') > -1) {\n const message = globalConfig.messages['UnfinishedGames'];\n if (message) {\n this.messageQueue.addError(message);\n }\n } else {\n const redirectUrl = this.gameLaunchUrlFormationService.launchMGSGame(response, gameLaunchModel);\n response.redirect = redirectUrl;\n if (callback) {\n const callbackResponse = {\n isError: false,\n errorMessage: '',\n gameLaunchUrl: redirectUrl,\n };\n callback(callbackResponse);\n } else {\n this.raiseNativeGameLaunchEvent(response.redirect);\n }\n }\n }\n },\n (error) => {\n if (error && error.data && error.data.common && error.data.common.messages && error.data.common.messages[0]) {\n if (callback) {\n const callbackResponse = {\n isError: true,\n errorMessage: error.data.common.messages[0],\n gameLaunchUrl: '',\n };\n callback(callbackResponse);\n } else {\n this.messageQueue.addError(error.data.common.messages[0]);\n }\n }\n },\n );\n }\n\n getLaunchData(params: any): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.casinoapi.get(apiPathsConfig.gameData['gameLaunchData'], params);\n }\n\n raiseNativeGameLaunchEvent(gameLaunchUrl: string): void {\n const event: NativeEvent = {\n eventName: 'Native_Game_Launch',\n parameters: {\n gameLaunchUrl: gameLaunchUrl,\n },\n };\n this.nativeApplication.sendToNative(event);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GoToOptions, NavigationService, Page, WindowRef } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoIFrameOverlayService } from './casino-iframe-overlay.service';\nimport { CasinoWidgetService } from './casino-widget.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigatorService {\n firstLoadFlag: number = 2;\n goingBack: boolean = false;\n prevUrl: string;\n returnUrl: string;\n historySupport: boolean;\n lastClicked: any;\n showSpinnerForExternalNavigation: boolean | undefined = true;\n loadingIndicator: any;\n defaultNavigateOptions: GoToOptions = {\n forceReload: false,\n appendReferrer: false,\n replace: false,\n showSpinnerForExternalNavigation: true,\n };\n\n constructor(\n private navigation: NavigationService,\n private configProviderService: ConfigProviderService,\n private windowRef: WindowRef,\n private m2Page: Page,\n private casinoWidgetService: CasinoWidgetService,\n private casinoIFrameOverlayService: CasinoIFrameOverlayService,\n ) {}\n\n detailPage(gameId: string) {\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n const window = this.windowRef.nativeWindow;\n return window.location.protocol + '://' + window.location.host + mcPageConfig.prefix + '/gamedetail/' + gameId + window.location.search;\n }\n demoPlayPage(gameId: string) {\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n const window = this.windowRef.nativeWindow;\n return window.location.protocol + '://' + window.location.host + mcPageConfig.prefix + '/demoplay/' + gameId + window.location.search;\n }\n\n publicPage(publicPageName: string, options: GoToOptions, portalPage: boolean) {\n let appendUrlPrefix: any = 'lang';\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n options = Object.assign({}, this.defaultNavigateOptions, options);\n let url: string;\n if (portalPage) {\n url = mcPageConfig.portalUrl + '/p/' + publicPageName;\n appendUrlPrefix = false;\n } else {\n url = 'p/' + publicPageName;\n }\n this.navigate(url, options, appendUrlPrefix);\n }\n\n navigate(url: string, options?: GoToOptions, appendUrlPrefix?: any, statusCode?: number, errorMessages?: any[]) {\n options = Object.assign({}, this.defaultNavigateOptions, options);\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n this.showSpinnerForExternalNavigation = this.defaultNavigateOptions.showSpinnerForExternalNavigation;\n if (url.indexOf('http') === -1) {\n if (url.charAt(0) !== '/') {\n url = '/' + url;\n }\n if (appendUrlPrefix === true) {\n url = mcPageConfig.prefix + url;\n } else if (appendUrlPrefix === 'lang') {\n url = '/' + this.m2Page.lang + url;\n }\n }\n if (this.casinoWidgetService.isCasinoWidget() || this.casinoIFrameOverlayService.isOverLayOnAProduct()) {\n if (statusCode === 0) {\n this.casinoWidgetService.postMessageToParent('GameLaunch', { promptLogin: false, redirectUrl: url });\n } else if (statusCode === -1) {\n this.casinoWidgetService.postMessageToParent('Error', { promptLogin: false, redirectUrl: url, errorMessages: errorMessages });\n }\n } else {\n this.navigation.goTo(url, options);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SearchSectionService {\n private isMobileSearchVisible = new BehaviorSubject(false);\n private isDesktopSearchGYMLVisible = new BehaviorSubject(false);\n searchVisibilityStatus: Observable = this.isMobileSearchVisible.asObservable();\n searchGYMLVisibilityStatus: Observable = this.isDesktopSearchGYMLVisible.asObservable();\n\n setSearchVisibility(isVisible: boolean) {\n this.isMobileSearchVisible.next(isVisible);\n }\n // NFR - Services optimization - Remove\n setDesktopSearchGYMLVisibility(isDesktopSearchGYMLVisible: boolean) {\n this.isDesktopSearchGYMLVisible.next(isDesktopSearchGYMLVisible);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CookieService,\n Message,\n MessageLifetime,\n MessageQueueService,\n MessageType,\n NativeAppService,\n NavigationService,\n ProductHomepagesConfig,\n UserService,\n WindowRef,\n} from '@frontend/vanilla/core';\n\nimport { GameManagerService } from '../casino-lobby-manager/game-manager/game-manager.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoApiService } from './casino-api.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { GameLaunchUrlFormationService } from './gamelaunch-url-formation.service';\n\nclass VCConstService {\n public static readonly CASINO_OPEN_GAME_URL: string = 'CASINO_OPEN_GAME_URL';\n public static readonly CASINO_OPEN_GAME: string = 'CASINO_OPEN_GAME';\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VCClientService {\n constructor(\n private windowRef: WindowRef,\n private api: CasinoApiService,\n private configProviderService: ConfigProviderService,\n private messageQueue: MessageQueueService,\n private user: UserService,\n private cookieService: CookieService,\n private navigationService: NavigationService,\n private casinoManager: CasinoManager,\n private gameLaunchUrlFormationService: GameLaunchUrlFormationService,\n private lhProductHomepagesConfig: ProductHomepagesConfig,\n private nativeAppService: NativeAppService,\n private gameManagerService: GameManagerService,\n ) {}\n\n handleVCGameLaunch(gameLaunchParam: any, isNotLobby: boolean, callback?: any) {\n if (this.user.isAuthenticated) {\n this.launchGameForVC(gameLaunchParam, isNotLobby, callback);\n } else {\n this.raiseNativeVCEvent(gameLaunchParam.game.gameId, gameLaunchParam.returnUrl, '');\n }\n }\n\n launchGameForVC(gameLaunchParam: any, isNotLobby: boolean, callback?: any) {\n const globalConfig = this.configProviderService.provideGlobalConfig();\n //todo: controller side\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.gameData['gameLaunchData'], { gameId: gameLaunchParam.game.gameId, skipUnfinGame: true }).subscribe(\n (response: any) => {\n if (response) {\n if (response.redirect && response.redirect.indexOf('/unfinished') > -1) {\n const message = globalConfig.messages['UnfinishedGames'];\n if (message) {\n this.messageQueue.addError(message);\n }\n } else {\n const redirectUrl = this.gameLaunchUrlFormationService.launchMGSGame(response, gameLaunchParam);\n response.redirect = redirectUrl;\n if (callback) {\n const callbackResponse = {\n isError: false,\n errorMessage: '',\n gameLaunchUrl: redirectUrl,\n };\n callback(callbackResponse);\n } else {\n this.raiseNativeVCEvent(gameLaunchParam.game.gameId, gameLaunchParam.returnUrl, response.redirect, isNotLobby);\n }\n }\n }\n },\n (error) => {\n if (\n error.data &&\n error.data.common &&\n error.data.common.messages &&\n error.data.common.messages.length > 0 &&\n error.data.common.messages[0]\n ) {\n if (callback) {\n const callbackResponse = {\n isError: true,\n errorMessage: error.data.common.messages[0].html,\n gameLaunchUrl: '',\n };\n callback(callbackResponse);\n } else {\n this.showErrorMessageQueue(error.data.common.messages[0].html, error?.data?.redirect);\n }\n } else if (error && error.common && error.common.messages && error.common.messages.length > 0 && error.common.messages[0]) {\n if (callback) {\n const callbackResponse = {\n isError: true,\n errorMessage: error.common.messages[0].html,\n gameLaunchUrl: '',\n };\n callback(callbackResponse);\n } else {\n this.showErrorMessageQueue(error.common.messages[0].html, error?.redirect);\n }\n }\n },\n );\n }\n showErrorMessageQueue(errorText: string, redirectUrl: any) {\n this.messageQueue.clear();\n const message: Message = {\n html: errorText,\n type: MessageType.Information,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n }\n const homePageUrl = this.casinoManager.getGameHomeUrl();\n setTimeout(() => {\n this.messageQueue.clear();\n if (redirectUrl) this.navigationService.goTo(redirectUrl);\n else this.navigationService.goTo(homePageUrl);\n }, 5000);\n }\n raiseNativeVCEvent(gameId: string, returnUrl: string, launchUrl: string, isNotLobby: boolean = false, gameTitle: string = ''): void {\n const nativeGameLaunchConfig = this.configProviderService.provideNativeGameLaunchConfig();\n const nativeAppCookie = this.cookieService.get('NativeApp');\n const nativeDis: any = this.windowRef.nativeWindow.external['NativeDispatch' as keyof typeof this.windowRef.nativeWindow.external];\n if (nativeGameLaunchConfig.isOnlyGameidLaunchEvent) {\n const request: any = {\n CASINO_OPEN_GAME: gameId,\n gameName: gameId,\n clickTimeStamp: this.getQueryParameter(launchUrl, 'clickTimeStamp'),\n launchSource: this.getQueryParameter(launchUrl, 'launchSource'),\n lobbyType: this.casinoManager.getCurrentLobby(),\n };\n isNotLobby = !isNotLobby ? this.checkPokerVCOutsideCasinoLobby(returnUrl) : true;\n if (isNotLobby && nativeAppCookie?.toLowerCase() === 'pokervc') {\n const eventName: string = 'app:GAME_NAME=' + gameId + '#' + gameTitle;\n nativeDis(eventName, JSON.stringify(request));\n //console.log('app:GAME_NAME= event rised from GameidLaunchEvent');\n } else {\n const gameDetails: any = this.gameManagerService.getGameInfo(gameId);\n const vendorsList = nativeGameLaunchConfig.vendorsforShouldOverrideUserAgent;\n if (gameDetails && vendorsList && vendorsList.indexOf(gameDetails.provider) > -1) {\n request.shouldOverrideUserAgent = '1';\n }\n if (nativeGameLaunchConfig.isNewMacEvent) {\n this.nativeAppService.sendToNative({\n eventName: VCConstService.CASINO_OPEN_GAME,\n parameters: request,\n });\n } else {\n nativeDis(VCConstService.CASINO_OPEN_GAME, JSON.stringify(request));\n }\n //console.log('CASINO_OPEN_GAME event rised from GameidLaunchEvent');\n }\n } else {\n const request: any = {\n CASINO_OPEN_GAME_URL: launchUrl,\n casinoEvents: {\n CASINO_OPEN_GAME: launchUrl,\n },\n gameName: gameId,\n height: '680',\n width: '960',\n };\n isNotLobby = !isNotLobby ? this.checkPokerVCOutsideCasinoLobby(returnUrl) : true;\n if (isNotLobby && nativeAppCookie?.toLowerCase() === 'pokervc') {\n const eventName: string = 'app:GAME_NAME=' + gameId + '#' + gameTitle;\n nativeDis(eventName, JSON.stringify(request));\n //console.log('app:GAME_NAME= event rised with GameDetails');\n } else {\n const gameDetails: any = this.gameManagerService.getGameInfo(gameId);\n const vendorsList = nativeGameLaunchConfig.vendorsforShouldOverrideUserAgent;\n if (gameDetails && vendorsList && vendorsList.indexOf(gameDetails.provider) > -1) {\n request.shouldOverrideUserAgent = '1';\n }\n if (nativeGameLaunchConfig.isNewMacEvent) {\n this.nativeAppService.sendToNative({\n eventName: VCConstService.CASINO_OPEN_GAME_URL,\n parameters: request,\n });\n } else {\n nativeDis(VCConstService.CASINO_OPEN_GAME_URL, JSON.stringify(request));\n }\n //console.log('CASINO_OPEN_GAME event rised with GameDetails');\n }\n }\n if (returnUrl) {\n this.navigationService.goTo(returnUrl);\n }\n return;\n }\n\n private getQueryParameter(gameLaunchUrl: string, key: string): string | null {\n const parameters = new URLSearchParams(gameLaunchUrl);\n return parameters.get(key);\n }\n\n isPokerVC() {\n const nativeAppCookie = this.cookieService.get('NativeApp');\n return nativeAppCookie && (nativeAppCookie?.toLowerCase() === 'pokervc' || nativeAppCookie?.toLowerCase() === 'pokermc');\n }\n\n checkPokerVCOutsideCasinoLobby(returnUrl: string): boolean {\n if (returnUrl != '') {\n const casinoURL = this.lhProductHomepagesConfig.casino;\n const indexOfCasinoURL = returnUrl.indexOf(casinoURL);\n if (indexOfCasinoURL == -1) {\n return true;\n }\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport {\n AppInfoConfig,\n ClaimsService,\n CookieService,\n GoToOptions,\n LoadingIndicatorService,\n Logger,\n Message,\n MessageLifetime,\n MessageQueueClearOptions,\n MessageQueueService,\n MessageType,\n NativeAppService,\n NavigationService,\n Page,\n ProductHomepagesConfig,\n ProductService,\n UserService,\n} from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { GameManagerService } from '../casino-lobby-manager/game-manager/game-manager.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { EmbeddedGamePopupComponent } from '../embedded-game-popup/embedded-game-popup.component';\nimport { GameDetailComponent } from '../game-detail/game-detail.component';\nimport { GeolocationActivatorService } from '../geolocation/services/activator.service';\nimport { GeolocationCheckService } from '../geolocation/services/geolocation-check.service';\nimport { GeoLocationValidationService } from '../geolocation/services/geolocation-validation.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { TrackGame } from '../public-api';\nimport { UtilityService } from '../shared/utility.service';\nimport { SlotRacesService } from '../slot-races/shared/slot-races.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { AdvanceGameDataService } from './advance-game-data.service';\nimport { ApiPathsHelperService } from './api-paths-helper-service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoCoreNpmParamsService } from './casino-core-npm-params.service';\nimport { CasinoIFrameOverlayService } from './casino-iframe-overlay.service';\nimport { CasinoManager } from './casino-manager.service';\nimport { CasinoWidgetService } from './casino-widget.service';\nimport { ConstService } from './const.service';\nimport { CookieService as CasinoCookieService, ODR_NAME } from './cookie.service';\nimport { FavouriteService } from './favourite.service';\nimport { GameLaunchPlaces } from './game-launch-places.service';\nimport { GameLaunchTrackingService } from './game-launch-tracking.service';\nimport { GameLaunchUrlFormationService } from './gamelaunch-url-formation.service';\nimport { GlobalSearchHelperService } from './globalsearch-helper.service';\nimport { InvokerProductService } from './invoker-product.service';\nimport { GameLaunch } from './models/gamelaunch.model';\nimport { MonitorService } from './monitor.service';\nimport { NativeApiService } from './nativeapi.service';\nimport { NativeAppHelperService } from './nativeapphelper.service';\nimport { NavigatorService } from './navigator.service';\nimport { OpenLoginDialog } from './open-login-dialog-v6';\nimport { SearchSectionService } from './search-section.service';\nimport { UnfinishedGamesService } from './unfinished-games-service';\nimport { VCClientService } from './vc-client.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoCoreGamelaunchService {\n OPEN_URL: string = 'OPEN_URL';\n navItems: any;\n isTouch: boolean;\n gameObj: any;\n gameModel: GameLaunch;\n\n customRecommendationType: string | undefined;\n private _gameLaunchInProgress: boolean;\n private updateFreespinsSubject = new BehaviorSubject(false);\n updateFreespinsObs: Observable = this.updateFreespinsSubject.asObservable();\n private gameDetailPageSubject = new BehaviorSubject(null);\n gameDetailPageObservable: Observable = this.gameDetailPageSubject.asObservable();\n private stopAudioSubject = new BehaviorSubject(null);\n stopAudioObservable: Observable = this.stopAudioSubject.asObservable();\n messageQueuePublisher = new BehaviorSubject(null);\n messageQueueObservable: Observable = this.messageQueuePublisher.asObservable();\n validationService: any;\n gameNotAvailableTimeOutData: any;\n delayAfterRefreshInterval: any;\n millisecondsToDisplayInterval: any;\n showDesktopSearch: boolean = true;\n showGSInDesktopSearch: boolean = true;\n loadingIndicatorHandler: any = null;\n navItemIndex: number = 0;\n isSingleMessage: boolean = true;\n\n generateGuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n\n constructor(\n private configProviderService: ConfigProviderService,\n private claimsConfig: ClaimsService,\n private m2NativeApp: NativeAppService,\n private user: UserService,\n private messageQueue: MessageQueueService,\n private casinoLobbyService: CasinoLobbyService,\n private api: PlatformApiService,\n private navigation: NavigationService,\n private casinoWidgetService: CasinoWidgetService,\n private route: ActivatedRoute,\n private gameLaunchPlaces: GameLaunchPlaces,\n private productHomepagesConfig: ProductHomepagesConfig,\n private navigator: NavigatorService,\n private cookies: CookieService,\n private nativeApiService: NativeApiService,\n private vCClientService: VCClientService,\n private nativeAppHelperService: NativeAppHelperService,\n private monitorService: MonitorService,\n private casinoIFrameOverlayService: CasinoIFrameOverlayService,\n private geolocationCheckService: GeolocationCheckService,\n private loginDialog: OpenLoginDialog,\n private casinoManager: CasinoManager,\n private dialog: MatDialog,\n private cacheManagerService: CacheManagerService,\n private advanceGameDataService: AdvanceGameDataService,\n private gameLaunchUrlFormationService: GameLaunchUrlFormationService,\n private urlUtility: UrlUtilityService,\n private unfinishedGamesService: UnfinishedGamesService,\n private favouriteService: FavouriteService,\n private invokerProductService: InvokerProductService,\n private readonly geolocationActivator: GeolocationActivatorService,\n private slotRacesService: SlotRacesService,\n private router: Router,\n private apiPathsHelperService: ApiPathsHelperService,\n private loadingIndicatorService: LoadingIndicatorService,\n private casinoNpmParamsService: CasinoCoreNpmParamsService,\n private geoLocationValidation: GeoLocationValidationService,\n private appInfoConfig: AppInfoConfig,\n private page: Page,\n private searchSection: SearchSectionService,\n private gshService: GlobalSearchHelperService,\n private gameLaunchTrackingService: GameLaunchTrackingService,\n private logger: Logger,\n private casinoCookieService: CasinoCookieService,\n private utilityService: UtilityService,\n private productService: ProductService,\n private gameManagerService: GameManagerService,\n ) {}\n\n launchGame(gameLaunchParam: GameLaunch, callback?: any) {\n this.stopAudioSubject.next(true);\n const gameConfig = this.configProviderService.provideGameConfig();\n this.gameNotAvailableTimeOutData = gameConfig.gameNotAvailableTimeOut;\n if (this.gameNotAvailableTimeOutData && this.gameNotAvailableTimeOutData[0]) {\n this.delayAfterRefreshInterval = this.gameNotAvailableTimeOutData[0].delayAfterRefresh;\n this.millisecondsToDisplayInterval = this.gameNotAvailableTimeOutData[0].millisecondsToDisplay;\n }\n if (gameConfig.enableSpinnerOnGameLaunch && this.user.isAuthenticated) {\n if (this._gameLaunchInProgress) {\n return;\n }\n this._gameLaunchInProgress = true;\n gameLaunchParam.loadingIndicatorHandler = this.loadingIndicatorService.start();\n }\n this.messageQueue.clear();\n this.isTouch = gameLaunchParam.isTouch;\n this.gameObj = gameLaunchParam.game;\n this.gameObj.returnUrl = gameLaunchParam.returnUrl;\n this.customRecommendationType = gameLaunchParam.recommendationType;\n const featureConfig = this.configProviderService.provideFeaturesConfig();\n this.showDesktopSearch = featureConfig.showDesktopSearch;\n this.showGSInDesktopSearch = featureConfig.enableGSInRegularSearch;\n const advanceGameDataConfig = this.configProviderService.provideAdvanceGameDataConfig();\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n gameLaunchParam.mode = gameLaunchParam.isDemoLaunch ? 'play' : gameConfig.gameMode;\n if (!gameLaunchParam.gameSection) {\n gameLaunchParam.gameSection =\n gameLaunchParam.gameLaunchedFrom !== undefined ? gameLaunchParam.gameLaunchedFrom : gameLaunchParam.categoryType;\n }\n gameLaunchParam.game.isDemo = gameLaunchParam.isDemoLaunch;\n const forceGameLaunchParam = gameLaunchParam;\n gameLaunchParam.gridPosition = this.calculateGridPosition(gameLaunchParam);\n if (this.casinoIFrameOverlayService.isOverLayOnAProduct(gameLaunchParam.game.lobbyType)) {\n const customLobbyType: any = this.casinoIFrameOverlayService.fetchOverlayLobby();\n if (customLobbyType) gameLaunchParam.customLobbyTypeMap = Array(customLobbyType);\n } else {\n const casinoCoreNpmParams: any = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n gameLaunchParam.customLobbyTypeMap = casinoCoreNpmParams.customLobbyTypeMaps\n ? [...new Set(casinoCoreNpmParams.customLobbyTypeMaps.map((cl: any) => cl.lobbyType))]\n : null;\n }\n\n //Advance Game Data Model\n this.setActiveCategory();\n if (advanceGameDataConfig.enableAdvanceGameData) {\n const iconType = gameLaunchParam.game.iconType;\n const iconTypeForTracking = gameLaunchParam.game.iconTypeForTracking;\n const advanceCatInfoObj = this.advanceGameDataService.getAdvanceCategoryInfo(gameLaunchParam);\n const rowNumber = advanceCatInfoObj.rowNumber == undefined ? gameLaunchParam.gridPosition : advanceCatInfoObj.rowNumber;\n this.advanceGameDataService.createAdvanceGameModel(\n advanceCatInfoObj.parentCategoryId,\n advanceCatInfoObj.subCategoryId,\n this.navItemIndex,\n iconType,\n iconTypeForTracking,\n rowNumber,\n );\n }\n\n this.gameLaunchTracking(gameLaunchParam);\n if (!this.user.claims.get('screenname') || this.user.claims.get('screenname') == '') {\n const guid = this.generateGuid();\n gameLaunchParam.screennameGameLaunchTracking = guid;\n if (!this.loadingIndicatorHandler) {\n this.loadingIndicatorHandler = gameLaunchParam.loadingIndicatorHandler;\n gameLaunchParam.loadingIndicatorHandler = null;\n }\n const gamelaunchlocal = JSON.stringify(gameLaunchParam);\n if (this.loadingIndicatorHandler) {\n gameLaunchParam.loadingIndicatorHandler = this.loadingIndicatorHandler;\n this.loadingIndicatorHandler = null;\n }\n localStorage.setItem(guid, gamelaunchlocal);\n }\n if (this.user.isAuthenticated) {\n if (this.claimsConfig.get('accBusinessPhase') == 'in-shop') {\n if (featureConfig.enableAccountUpgrade) {\n this.navigation.goTo(mcPageConfig?.accountUpgrade);\n return;\n }\n }\n }\n if (this.vCClientService.isPokerVC()) {\n this.vCClientService.handleVCGameLaunch(gameLaunchParam, true, callback);\n this.onGameLaunchDone(gameLaunchParam);\n return;\n } else if (gameConfig.nativeGameLaunchEnabled) {\n const params: any = this.getParams(gameLaunchParam);\n this.nativeAppHelperService.handleNativeGameLaunch(params, gameLaunchParam, callback);\n return;\n }\n\n //check whether game is present in gamedatamap\n if (!this.checkGameInGameMetaData(gameLaunchParam.game.gameId) && this.user.isAuthenticated && !gameLaunchParam.skipMetaDataCheck) {\n this.gameNotFoundAction(gameLaunchParam, callback);\n return;\n }\n // check for disabled game\n const disabledGames: Array = this.casinoLobbyService.getDisabledGames();\n if (disabledGames) {\n disabledGames.forEach((element) => {\n if (element?.toLowerCase() == gameLaunchParam?.game?.gameId?.toLowerCase() && this.user.isAuthenticated) {\n this.gameNotFoundAction(gameLaunchParam, callback);\n return;\n }\n });\n }\n //todo: check for unfinished game\n\n // if (advanceGameDataConfig.enableAdvanceGameData) {\n // let advanceCatInfoObj = this.advanceGameDataService.getAdvanceCategoryInfo(gameLaunchParam.gameSection);\n // let rowNumber = (advanceCatInfoObj.rowNumber == undefined) ? gameLaunchParam.gridPosition : advanceCatInfoObj.rowNumber;\n // playUrl = this.appendQueryString(playUrl, 'adv_parentcat', advanceCatInfoObj.parentCategoryId);\n // playUrl = this.appendQueryString(playUrl, 'adv_subcat', advanceCatInfoObj.subCategoryId);\n // playUrl = this.appendQueryString(playUrl, 'adv_pos', String(gameLaunchParam.gamePosition));\n // playUrl = this.appendQueryString(playUrl, 'adv_icon', gameLaunchParam.game.iconType);\n // playUrl = this.appendQueryString(playUrl, 'adv_grid', String(rowNumber));\n\n // gameLaunchParam.game.advanceDataModel = {\n // adv_parentcat : advanceCatInfoObj.parentCategoryId,\n // adv_subcat : advanceCatInfoObj.subCategoryId,\n // adv_pos : String(gameLaunchParam.gamePosition),\n // adv_icon : gameLaunchParam.game.iconType,\n // adv_grid : String(rowNumber)\n // };\n // }\n let playUrl = this.getPlayUrl(gameLaunchParam);\n\n if (this.user.isAuthenticated) {\n if (\n this.slotRacesService.liveSlotPollingStarted &&\n !(this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR) || this.casinoCookieService.isPokerApp())\n ) {\n this.slotRacesService.stopLiveSlotPolling();\n }\n if (gameLaunchParam.isTouch) {\n this.searchSection.setSearchVisibility(false);\n if (this.casinoWidgetService.isCasinoWidget()) {\n const params = {\n promptLogin: false,\n redirectUrl: (playUrl += '&returnUrl=' + document.referrer),\n categoryid: 'rcp-widget',\n };\n this.casinoWidgetService.postMessageToParent('GameLaunch', params);\n } else {\n const downloadAppFromDeviceConfig = this.configProviderService.provideDownloadAppFromDeviceConfig();\n if (downloadAppFromDeviceConfig && downloadAppFromDeviceConfig.downloadAppFromDevice) {\n this.goToPlayGame(gameLaunchParam, callback);\n } else {\n this.checkGeolocationAndLaunchMobileGame(\n () => {\n this.goToPlayGame(gameLaunchParam, callback);\n },\n () => {\n if (gameLaunchParam.loadingIndicatorHandler) {\n gameLaunchParam.loadingIndicatorHandler.done();\n this._gameLaunchInProgress = false;\n }\n },\n );\n }\n }\n } else {\n if (this.casinoWidgetService.isCasinoWidget()) {\n playUrl += '&returnUrl=' + document.referrer;\n }\n this.checkGeolocationAndLaunchDesktopGame(gameLaunchParam, playUrl, callback);\n setTimeout(() => {\n if (this.showDesktopSearch && this.showGSInDesktopSearch) {\n this.gshService.closeGlobaSearch();\n }\n }, 1000);\n }\n } else {\n if (this.casinoWidgetService.isCasinoWidget() || this.casinoIFrameOverlayService.isOverLayOnAProduct()) {\n playUrl += '&returnUrl=' + document.referrer;\n this.casinoWidgetService.postMessageToParent('UserAction', {\n promptLogin: true,\n redirectUrl: playUrl,\n loginMessageKey: 'GameLaunch',\n });\n } else {\n const loginOpenUrl = this.getPlayUrl(gameLaunchParam);\n const product: string = this.casinoWidgetService.getWidgetProduct();\n if (!product || product?.toLowerCase() == 'casino') {\n this.appendQueryString(loginOpenUrl, 'skipreferrer', 'true');\n }\n\n const loginResponseObj: any = {\n loginMessageKey: 'GameLaunch',\n };\n const forceGameLaunchObj: any = {\n lobbyType: gameLaunchParam.game.lobbyType,\n gameLaunchParam: forceGameLaunchParam,\n timeStamp: new Date().getTime(),\n };\n\n if (!(gameLaunchParam.gameLaunchedFrom == 'playRedirect')) {\n this.cacheManagerService.writeForceGameLaunchObjInSessionStorage('CasinoCoreForceGameObj', forceGameLaunchObj);\n }\n\n if (gameLaunchParam.appendRUrlToLoginDialogWindow) {\n loginResponseObj.returnUrl = gameLaunchParam.returnUrl;\n }\n if (gameLaunchParam.gameLaunchedFrom == 'playRedirect') {\n loginResponseObj.loginCloseUrl = gameLaunchParam.returnUrl;\n if (document.getElementsByTagName('lh-login-standalone').length == 0) this.loginDialog.open(loginResponseObj);\n }\n if (!(gameLaunchParam.gameLaunchedFrom == 'globalsearch') && !(gameLaunchParam.gameLaunchedFrom == 'playRedirect')) {\n this.loginDialog.open(loginResponseObj);\n }\n if (gameLaunchParam.gameLaunchedFrom == 'globalsearch') {\n loginResponseObj.loginCloseUrl = gameLaunchParam.returnUrl;\n this.loginDialog.open(loginResponseObj);\n }\n }\n }\n }\n\n setGameLaunchNavItems(navItems: any) {\n this.navItems = navItems;\n }\n\n setActiveCategory() {\n if (this.navItems !== undefined) {\n this.navItemIndex = this.navItems.findIndex((m: any) => m.pathname === location.pathname);\n this.navItemIndex = this.navItemIndex + 1;\n }\n }\n\n getLaunchData(params: any): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.gameData['gameLaunchDataOfProduct'],\n this.invokerProductService.getInvokerProduct(),\n );\n /*\n for e.g. endPoint = gamedata/casinocoregetlaunchdata?invokerProduct=casino\n */\n return this.api.get(endPoint, params, { withCredentials: true });\n }\n\n getParams(gameLaunchParam: GameLaunch) {\n let gameHomeUrl: string = this.casinoManager.getGameHomeUrl(); // need to change it to casinomanager\n if (!gameHomeUrl) {\n gameHomeUrl = gameLaunchParam.returnUrl;\n }\n if (!gameHomeUrl) {\n gameHomeUrl = window.location.href;\n }\n const gameConfig = this.configProviderService.provideGameConfig();\n if (!gameLaunchParam.skipUnfinGame) gameLaunchParam.skipUnfinGame = true;\n if (!gameLaunchParam.mode) gameLaunchParam.mode = gameConfig.gameMode;\n\n return {\n gameId: gameLaunchParam.game.gameId,\n mode: gameLaunchParam.mode,\n demo: gameLaunchParam.isDemoLaunch,\n launchProductId: this.navigation.location.search.get('launchProductId'),\n launchOrigin: this.navigation.location.search.get('launchOrigin'),\n skipUnfinGame: gameLaunchParam.skipUnfinGame,\n gameHomeUrl: encodeURIComponent(gameHomeUrl),\n isLiveGames: gameLaunchParam.isLive,\n skipMetaDataCheck: gameLaunchParam.skipMetaDataCheck,\n fetchLiveGameIFrame: gameLaunchParam.fetchLiveGameIFrame,\n customLobbyTypeMap: gameLaunchParam.customLobbyTypeMap,\n gamelaunchparams: gameLaunchParam.game.gamelaunchparams,\n screennameGameLaunchTracking: gameLaunchParam.screennameGameLaunchTracking,\n };\n }\n\n checkGameInGameMetaData(gameId: string): boolean {\n const gameMetaDataMap = this.gameManagerService.getGameInfo(gameId);\n if (gameMetaDataMap) {\n return true;\n }\n return false;\n }\n\n getPlayUrl(gameLaunchParam: GameLaunch) {\n const gameConfig = this.configProviderService.provideGameConfig();\n const globalJackpotClientConfig = this.configProviderService.provideGlobalJackpotConfig();\n if (!gameLaunchParam.mode) gameLaunchParam.mode = gameConfig.gameMode;\n let product: string = this.casinoManager.getProductForLobbyType(gameLaunchParam.game.lobbyType);\n if (gameLaunchParam.specialProduct) {\n product = gameLaunchParam.specialProduct;\n }\n if (!product) {\n product = 'games';\n }\n let result = this.urlUtility.getApiBaseUrl() + '/' + product?.toLowerCase();\n if (product?.toLowerCase() == 'globaljackpot') {\n result = this.productHomepagesConfig.casino + '/g/' + globalJackpotClientConfig?.globalJackpotPathSegments?.toLowerCase();\n }\n\n result += '/launchng/' + gameLaunchParam.game.gameId;\n\n if (this.casinoWidgetService.isCasinoWidget() || this.route.snapshot.queryParamMap.get('widgetGameLaunch')) {\n const queryStringMap: Map = new Map();\n queryStringMap.set('widgetGameLaunch', 'true');\n queryStringMap.set('invokerProduct', this.casinoWidgetService.getWidgetProduct());\n queryStringMap.set('widgetPostion', this.casinoWidgetService.getWidgetPosition());\n queryStringMap.set('launchCategory', gameLaunchParam.categoryType);\n result = this.appendQueryStringMap(result, queryStringMap);\n }\n // Sending the entire game launch url as rurl so that it works fine even if the user is not fully verified after login during force game launch\n if (gameLaunchParam.isDemoLaunch) {\n result = this.appendQueryString(result, 'demo', 'true');\n } else if (gameLaunchParam.mode) {\n result = this.appendQueryString(result, 'mode', gameLaunchParam.mode);\n }\n if (gameLaunchParam.from) {\n result = this.appendQueryString(result, 'place', gameLaunchParam.from);\n\n if (\n gameLaunchParam.from === this.gameLaunchPlaces.gameIconOnLobby ||\n gameLaunchParam.from === this.gameLaunchPlaces.gameTitleOnLobby ||\n gameLaunchParam.from === this.gameLaunchPlaces.gameInfoIconOnLobby\n ) {\n result = this.appendQueryString(result, 'gameLaunchCategory', gameLaunchParam.categoryType);\n }\n\n if (gameLaunchParam.gamePosition) {\n result = this.appendQueryString(result, 'gamePosition', gameLaunchParam.gamePosition.toString());\n }\n }\n return result;\n }\n\n goToPlayGame(gameLaunchParam: GameLaunch, callback?: any) {\n const featureConfig = this.configProviderService.provideFeaturesConfig();\n const downloadAppFromDeviceConfig = this.configProviderService.provideDownloadAppFromDeviceConfig();\n const gamesConfig = this.configProviderService.provideGameConfig();\n // If download app on game launch is enabled in mobile web, then show the info message for downloading the app (post login game launch scenario)\n if (\n downloadAppFromDeviceConfig &&\n downloadAppFromDeviceConfig.downloadAppFromDevice &&\n this.user.isAuthenticated &&\n this.user.isAuthenticated\n ) {\n const errormessage: string = downloadAppFromDeviceConfig.downloadAppErrorMsgs;\n this.messageQueue.clear();\n const message: Message = {\n html: errormessage,\n type: MessageType.Information,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n }\n this.onGameLaunchDone(gameLaunchParam);\n } else {\n gameLaunchParam.isNewSportsNative =\n this.m2NativeApp.isNativeApp &&\n (this.m2NativeApp.product === 'SPORTSBOOK' || this.m2NativeApp.product === 'BETTING') &&\n (this.cookies.get('useNewOpenGames') === 'true' || this.navigation.location.search.get('useNewOpenGames') === 'true');\n //ASK RAM\n if (gameLaunchParam.isNewSportsNative && featureConfig.isAnonymousLobbyEnabled && !this.user.isAuthenticated) {\n this.casinoManager.gameEventId = this.nativeApiService.raiseOpenGameEvent(\n this.casinoManager.gameEventId,\n '',\n gameLaunchParam.game.gameId,\n false,\n );\n return;\n }\n\n const placeCheckForGameDetail: boolean =\n gameLaunchParam.from === this.gameLaunchPlaces.gameIconOnLobby ||\n gameLaunchParam.from === this.gameLaunchPlaces.searchOnLobby ||\n gameLaunchParam.from === this.gameLaunchPlaces.gameTitleOnLobby ||\n gameLaunchParam.from === 'q' ||\n gameLaunchParam.from === 's' ||\n gameLaunchParam.from === this.gameLaunchPlaces.teaser;\n\n if (placeCheckForGameDetail && gameLaunchParam.game.lobbyType) {\n gameLaunchParam.game = this.checkforGameDetailVisible(gameLaunchParam.game);\n }\n\n if (\n (placeCheckForGameDetail && gameLaunchParam.game.ForceDetailPage) ||\n (placeCheckForGameDetail && gameLaunchParam.game.EnableDetailPage)\n ) {\n if (gameLaunchParam.isNewSportsNative) {\n this.casinoManager.gameEventId = this.nativeApiService.raiseOpenGameEvent(\n this.casinoManager.gameEventId,\n encodeURIComponent(this.navigator.detailPage(gameLaunchParam.game.gameId)),\n gameLaunchParam.game.gameId,\n this.user.isAuthenticated,\n );\n }\n if (gameLaunchParam.isNewSportsNative) {\n this.casinoManager.gameEventId = this.nativeApiService.raiseOpenGameEvent(\n this.casinoManager.gameEventId,\n encodeURIComponent(this.navigator.detailPage(gameLaunchParam.game.gameId)),\n gameLaunchParam.game.gameId,\n this.user.isAuthenticated,\n );\n } else {\n const gamedetailPopUpData: any = {\n game: gameLaunchParam,\n };\n this.dialog.open(GameDetailComponent, { data: gamedetailPopUpData });\n this.gameDetailPageSubject.next(gamedetailPopUpData);\n }\n return;\n }\n const options: MessageQueueClearOptions = {\n clearPersistent: true,\n };\n if (options) this.messageQueue.clear(options);\n const params: any = this.getParams(gameLaunchParam);\n this.handleGamelaunch(params, gameLaunchParam, gamesConfig, callback);\n }\n }\n\n handleGamelaunch(params: any, gameLaunchParam: GameLaunch, gamesConfig: any, callback?: any) {\n this.getLaunchData(params).subscribe(\n (response: any) => {\n // response is coming here instead of going to error so added this condition\n if (response && response.portalInfo && response.redirect) {\n this.onGameLaunchDone(gameLaunchParam);\n this.handleGameLaunchError(response, gameLaunchParam, callback);\n return;\n }\n this.onGameLaunchDone(gameLaunchParam);\n if (response.data && response.data.aams) {\n } else {\n let enableNativeOdrEvent = this.configProviderService.provideGameConfig()?.enableNativeOdrEvent;\n const redirectUrl = this.gameLaunchUrlFormationService.launchMGSGame(response, gameLaunchParam);\n response.redirect = redirectUrl;\n if (\n (enableNativeOdrEvent?.isPokerApp && this.casinoCookieService.isPokerApp()) ||\n (enableNativeOdrEvent?.isOdr && this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR))\n ) {\n this.sendCCBEventToPokerAndOdr(redirectUrl);\n return;\n }\n\n this.launchGameFromResponse(response, gameLaunchParam, callback);\n }\n if (gamesConfig.storeSsotokenInCookies)\n this.cookies.put('ssoToken', this.user.ssoToken || '', {\n domain: this.page.domain,\n });\n const gameName = gameLaunchParam?.game?.name\n ? gameLaunchParam?.game?.name\n : this.gameManagerService.getGameDisplayName(gameLaunchParam?.game.gameId);\n this.storeUserInfo(gameName);\n },\n (error: any) => {\n this.onGameLaunchDone(gameLaunchParam);\n this.handleGameLaunchError(error, gameLaunchParam, callback);\n },\n );\n }\n\n onGameLaunchDone(gameLaunchParam: any) {\n this.messageQueue.clear(); //clearing any error messages from message queue\n const gameConfig = this.configProviderService.provideGameConfig();\n if (gameConfig.enableSpinnerOnGameLaunch && gameLaunchParam.loadingIndicatorHandler && this._gameLaunchInProgress) {\n gameLaunchParam.loadingIndicatorHandler.done();\n this._gameLaunchInProgress = false;\n }\n }\n\n sendCCBEventToPokerAndOdr(gameLaunchUrl: string) {\n const urlParameters = new URLSearchParams(gameLaunchUrl);\n const request: any = {};\n request.url = gameLaunchUrl;\n request.type = 'GAMELAUNCHURL';\n if (!urlParameters.get('ssoKey')) {\n request.sessionKey = 'ssoKey';\n }\n this.m2NativeApp.sendToNative({\n eventName: this.OPEN_URL,\n parameters: request,\n });\n }\n\n getDesktopGameLaunchUrl(gameLaunchParam: any, callback: (data: any) => void) {\n const params: any = this.getParams(gameLaunchParam);\n this.getLaunchData(params).subscribe(\n (response: any) => {\n if (response.data && response.data.aams) {\n } else {\n const redirectUrl = this.gameLaunchUrlFormationService.launchMGSGame(response, gameLaunchParam);\n const callbackResponse: any = {\n iframeUrl: redirectUrl,\n };\n callback(callbackResponse);\n }\n },\n (error: any) => {\n this.handleGameLaunchError(error, gameLaunchParam);\n },\n );\n }\n\n appendQueryString(url: string, key: string, value: string): string {\n if (url.indexOf('?') > -1) {\n url += '&' + key + '=' + value;\n } else {\n url += '?' + key + '=' + value;\n }\n return url;\n }\n\n appendQueryStringMap(url: string, queryMap: Map): string {\n if (queryMap && queryMap.size > 0) {\n queryMap.forEach((value, key) => {\n if (url.indexOf('?') > -1) {\n url += '&' + key + '=' + value;\n } else {\n url += '?' + key + '=' + value;\n }\n });\n }\n return url;\n }\n validateUser(playUrl: string, replaceRouteInHistory: boolean) {\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n if (!this.user.isAuthenticated) {\n const loginResponseObj: any = {\n returnUrl: playUrl,\n loginMessageKey: 'GameLaunch',\n };\n this.loginDialog.open(loginResponseObj);\n return false;\n }\n const birthDate: Date = new Date(this.user.dateOfBirth || '');\n const minAge: number = mcPageConfig.minAgeValidationCasinoPlay;\n if (minAge > 0) {\n const minDate: Date = new Date(),\n portalPage = true;\n minDate.setFullYear(minDate.getFullYear() - minAge);\n const options: GoToOptions = {\n replace: replaceRouteInHistory,\n };\n if (minDate < birthDate) {\n if (minAge === 18) {\n this.navigator.publicPage('18plus', options, portalPage);\n }\n if (minAge === 21) {\n this.navigator.publicPage('18_21plus', options, portalPage);\n }\n return false;\n }\n }\n return true;\n }\n\n checkforGameDetailVisible(game: any): boolean {\n const gameConfig = this.configProviderService.provideGameConfig();\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const lobbyType = game.lobbyType;\n if (game && (!game.provider || game.provider === '')) {\n const gameDetails: any = this.gameManagerService.getGameInfo(game.gameId);\n if (gameDetails) {\n game.provider = gameDetails.provider;\n }\n }\n\n const detailPageMode: string = this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, casinoConfig.detailPageModeLobbyType);\n const vendorsWithOnlyRealMode: any = this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, gameConfig.vendorsWithOnlyRealModeLobbyType);\n const enableDemoPlay: any = gameConfig.enableDemoMode;\n const rglinkOnDetailPage: any = this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, gameConfig.showRGLinkOnDetailPageLobbyType);\n\n if (detailPageMode == ConstService.DETAIL_PAGE_MODE_PICKER || detailPageMode == ConstService.DETAIL_PAGE_MODE_FORCEPICKER) {\n if (\n (!gameConfig.enablePlaytechLiveGameDetailsPage &&\n vendorsWithOnlyRealMode.indexOf(game.provider) > -1 &&\n !game.gameId.startsWith('ivy')) ||\n (game.provider == 'Playtech' && game.gameId.startsWith('playtechlive'))\n ) {\n game.EnableDetailPage = false;\n game.ForceDetailPage = false;\n } else {\n game.EnableDetailPage = true;\n game.ForceDetailPage = true;\n }\n } else {\n const force = detailPageMode == ConstService.DETAIL_PAGE_MODE_FORCE;\n const enabled = detailPageMode == ConstService.DETAIL_PAGE_MODE_ALL || force;\n if (\n (!gameConfig.enablePlaytechLiveGameDetailsPage &&\n vendorsWithOnlyRealMode.indexOf(game.provider) > -1 &&\n !game.gameId.startsWith('ivy')) ||\n (game.provider == 'Playtech' && game.gameId.startsWith('playtechlive'))\n ) {\n game.EnableDetailPage = false;\n game.ForceDetailPage = false;\n } else {\n game.EnableDetailPage = enabled;\n game.ForceDetailPage = force;\n }\n }\n if (enableDemoPlay && !(vendorsWithOnlyRealMode.indexOf(game.provider) > -1 && !game.gameId.startsWith('ivy'))) {\n game.DemoEnabled = true;\n game.DemoAvailable = true;\n if (rglinkOnDetailPage && rglinkOnDetailPage.length > 0) {\n const matchedProviderFound = rglinkOnDetailPage.filter((c: any) => c === game.provider);\n if (matchedProviderFound && matchedProviderFound[0]) {\n game.ResponsibleGamingLink = gameConfig.responsibleGamingLink;\n }\n }\n }\n return game;\n }\n\n launchGameFromResponse(response: any, gameLaunchParam: GameLaunch, callback?: any) {\n this.monitorService.managePortalInfo(response, true);\n\n if (this.monitorService.isActive() === false) {\n this.proceed(response, gameLaunchParam, callback);\n } else {\n this.monitorService.monitorActiveObservable.subscribe((monitorStatus: any) => {\n if (monitorStatus && monitorStatus === this.monitorService.MONITOR_INACTIVE) {\n this.proceed(response, gameLaunchParam, callback);\n }\n });\n }\n }\n\n proceed(response: any, gameLaunchParam: GameLaunch, callback?: any) {\n if (gameLaunchParam.isNewSportsNative && this.gameLaunchPlaces.isLobby(gameLaunchParam.from)) {\n this.casinoManager.gameEventId = this.nativeApiService.raiseOpenGameEvent(\n this.casinoManager.gameEventId,\n encodeURIComponent(response.redirect),\n gameLaunchParam.game.gameId,\n this.user.isAuthenticated,\n );\n } else {\n const options: GoToOptions = {\n replace: gameLaunchParam.replaceRouteInHistory,\n forceReload: true,\n };\n\n if (gameLaunchParam.from == 'thumbnail' && gameLaunchParam.lobbyType) {\n this.cacheManagerService.setThumbnailLocalStorageCacheMap(gameLaunchParam.lobbyType, gameLaunchParam.game.gameId);\n }\n\n if (callback) {\n const callbackResponse = {\n isError: false,\n errorMessage: '',\n gameLaunchUrl: response.redirect,\n };\n callback(callbackResponse);\n } else {\n if (this.isTouch) {\n this.storeUserInfo(gameLaunchParam?.game?.name);\n this.navigator.navigate(response.redirect, options, true, 0);\n } else {\n // designed for launching game as SingleHost\n let sglProduct = this.gameLaunchUrlFormationService?.getCurrentProduct()\n ? this.gameLaunchUrlFormationService?.getCurrentProduct()\n : gameLaunchParam?.currentProduct;\n // if current product is not available by default consider games as product\n sglProduct = sglProduct || 'games';\n if (this.casinoManager.isSingleHostLobbyType(gameLaunchParam?.game?.lobbyType, sglProduct)) {\n this.storeUserInfo(gameLaunchParam?.game?.name);\n this.navigator.navigate(response.redirect, options, true, 0);\n return;\n }\n // end - designed for launching game as SingleHost\n const features = this.configProviderService.provideFeaturesConfig();\n if (features.enableNewEmbeddedViewIconsPosition) {\n const multipleGameLaunched = this.getFromCookie('gamePopOutWindow');\n if (multipleGameLaunched) {\n const Global = this.configProviderService.provideGlobalConfig();\n const errormessage = Global.messages['OnlyOneGameAtTime'];\n this.messageQueue.clear();\n setTimeout(() => {\n if (errormessage && this.isSingleMessage)\n this.messageQueue.addError(errormessage, MessageLifetime.Single, 'casinocorelobby');\n this.isSingleMessage = false;\n window.scrollTo({ top: 0 });\n setTimeout(() => {\n this.messageQueue.clear();\n this.isSingleMessage = true;\n if (this.navigation.location.url().indexOf('launchng') >= 0) {\n this.casinoManager.goToLobby();\n }\n this.stopAudio();\n }, features.singleGameErrorTimeout);\n }, 0);\n } else {\n const embedGamePopUpData: any = {\n iframeUrl: response.redirect,\n game: this.gameObj,\n categoryType: gameLaunchParam.categoryType,\n };\n //open the mat dialog\n this.openEmbeddedGameDailog(embedGamePopUpData);\n }\n } else {\n const embedGamePopUpData: any = {\n iframeUrl: response.redirect,\n game: this.gameObj,\n categoryType: gameLaunchParam.categoryType,\n };\n //open the mat dialog\n this.openEmbeddedGameDailog(embedGamePopUpData);\n }\n }\n }\n }\n }\n\n getFromCookie(key: any): boolean {\n if (this.cookies.get(key) === '1') {\n return true;\n }\n return false;\n }\n\n openEmbeddedGameDailog(data: any = null): void {\n const dialogRef = this.dialog.open(EmbeddedGamePopupComponent, {\n width: '790px',\n height: '779px',\n data: data,\n });\n dialogRef.afterClosed().subscribe(() => {\n this.updateFreespinsSubject.next(true);\n this.stopSchedulePollingInBingo(false);\n });\n }\n\n stopSchedulePollingInBingo(flag: boolean) {\n //for Iframe\n const cozyBingoIframe = document.getElementsByClassName('cozy-bingo-iFrame').length\n ? (document.getElementsByClassName('cozy-bingo-iFrame')[0] as HTMLIFrameElement)\n : null;\n if (cozyBingoIframe && cozyBingoIframe.contentWindow) {\n cozyBingoIframe.contentWindow.postMessage({ stopSchedulePolling: flag }, this.productHomepagesConfig.bingo);\n }\n if (this.invokerProductService?.getInvokerProduct()?.toLowerCase() == 'casino') {\n if (cozyBingoIframe) (window as any).Disable_SchedulePolling = flag;\n else (window as any).Disable_SchedulePolling = true;\n } else {\n (window as any).Disable_SchedulePolling = flag;\n }\n }\n\n checkGeolocationAndLaunchDesktopGame(gameLaunchParam: any, playUrl: string, callback?: any): void {\n const geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (geolocationConfig.isEnabled) {\n this.geolocationCheckService.checkGeolocation(\n () => {\n this.launchDesktopGame(gameLaunchParam, playUrl, callback);\n },\n () => {\n if (gameLaunchParam.loadingIndicatorHandler) {\n gameLaunchParam.loadingIndicatorHandler.done();\n this._gameLaunchInProgress = false;\n }\n },\n );\n return;\n }\n this.launchDesktopGame(gameLaunchParam, playUrl, callback);\n }\n\n handleGameLaunchError(error: any, gameLaunchParam: GameLaunch, callback?: any) {\n if (error) {\n let errormessages: any[] = [];\n if (error?.common && error?.common?.messages) {\n errormessages = error.common.messages;\n }\n if (error.redirect) {\n const isNewSportsNative = this.m2NativeApp.isNativeApp;\n if (isNewSportsNative && this.gameLaunchPlaces.isLobby(gameLaunchParam.from)) {\n this.casinoManager.gameEventId = this.nativeApiService.raiseOpenGameEvent(\n this.casinoManager.gameEventId,\n encodeURIComponent(error.redirect),\n gameLaunchParam.game.gameId,\n this.user.isAuthenticated,\n );\n if (this.casinoIFrameOverlayService.isOverLayOnAProduct()) {\n window.parent.postMessage(\n {\n eventName: 'UserAction',\n params: { redirectUrl: error.redirect },\n },\n window.location.origin,\n );\n }\n } else {\n const options: GoToOptions = {\n replace: gameLaunchParam.replaceRouteInHistory,\n };\n if (this.casinoIFrameOverlayService.isOverLayOnAProduct()) {\n window.parent.postMessage(\n {\n eventName: 'UserAction',\n params: { redirectUrl: error.redirect },\n },\n window.location.origin,\n );\n } else {\n //case when return error is same as current url\n //check mobile/desktop\n //if mobile then add to msg queue and navigate(msg queue will be displayed if screen name is coming with error)\n //if desktop then open pop-up with error otherwise redirect(maybe compare url)\n if (error.portalInfo && error.portalInfo.statusCode == 101) {\n const forceGameLaunchObj: any = {\n lobbyType: gameLaunchParam.game.lobbyType,\n gameLaunchParam: gameLaunchParam,\n timeStamp: new Date().getTime(),\n };\n if (!gameLaunchParam.fetchLiveGameIFrame) {\n // check for thunderbite game\n this.cacheManagerService.writeForceGameLaunchObjInSessionStorage('CasinoCoreScreenNameGameObj', forceGameLaunchObj);\n }\n const redirect = this.addClickTimeStamp(decodeURIComponent(error.redirect), gameLaunchParam);\n this.navigator.navigate(redirect, options, true, -1, errormessages);\n } else {\n this.gameLaunchRedirectErrorAction(errormessages, callback);\n this.navigator.navigate(decodeURIComponent(error.redirect), options, true, -1, errormessages);\n }\n }\n }\n } else {\n this.gameLaunchRedirectErrorAction(errormessages, callback);\n }\n }\n }\n\n launchDesktopGame(gameLaunchParam: any, playUrl: string, callback?: any): void {\n if (this.casinoWidgetService.isCasinoWidget()) {\n const params = {\n promptLogin: false,\n redirectUrl: playUrl,\n categoryid: 'rcp-widget',\n };\n this.casinoWidgetService.postMessageToParent('GameLaunch', params);\n } else {\n this.goToPlayGame(gameLaunchParam, callback);\n }\n }\n\n getGameLunchType(gameId: any) {\n const gameMetaData = this.casinoLobbyService.getGameMetaData();\n let launchType: string;\n if (gameMetaData && gameMetaData.size > 0) {\n const gameObj = gameMetaData.get(gameId);\n if (gameObj) {\n launchType = gameObj.provider;\n\n return launchType;\n }\n }\n return null;\n }\n\n getProductForLobbyType(lobbyType: string) {\n // Note: Single domain app condition is temporary, until we move all products to single domain\n let product: string = this.productService.isSingleDomainApp ? this.productService.current.name : this.appInfoConfig?.product;\n if (lobbyType && product?.toLowerCase() == 'casino') {\n product = this.utilityService.getProductForGivenLobbyType(lobbyType);\n if (product?.toLowerCase() == 'games') {\n product = 'casino';\n }\n }\n return product?.toUpperCase();\n }\n\n getGameSection(gameLaunchParam: any, trackingContainer: string) {\n const { gameLaunchedFrom, game, moreInfoOverlay, gameSection } = gameLaunchParam;\n\n if (gameLaunchedFrom === 'Top10Games') {\n return game.gameSection;\n }\n if (game?.widgetName == 'RecentWinners' || game?.widgetName == 'PlayerStats' || moreInfoOverlay) {\n return gameSection;\n }\n return trackingContainer || gameSection;\n }\n\n gameLaunchTracking(gameLaunchParam: any) {\n const catInfo = this.casinoLobbyService.getCategoryInfo(gameLaunchParam.game.lobbyType, gameLaunchParam.categoryType);\n let gameContainerDescription!: string;\n let parentCategoryId!: string;\n let trackingContainer!: string;\n let childChildcategoryId!: string;\n let categoryEngName!: string;\n const categoryType = this.getProductForLobbyType(gameLaunchParam.game.lobbyType);\n if (catInfo && catInfo.categoryInfo) {\n parentCategoryId = catInfo.categoryInfo.parentCategoryId;\n childChildcategoryId = catInfo.categoryInfo.categoryid;\n trackingContainer = this.casinoLobbyService.getCategoryName(gameLaunchParam.game.lobbyType, childChildcategoryId);\n if (!parentCategoryId) {\n parentCategoryId = childChildcategoryId;\n trackingContainer = gameLaunchParam?.gameLaunchedFrom;\n }\n if (\n gameLaunchParam?.gameLaunchedFrom?.startsWith('MustGoJackpot_') ||\n gameLaunchParam?.gameLaunchedFrom?.startsWith('JackpotWidget_') ||\n gameLaunchParam?.gameLaunchedFrom?.startsWith('Netflix_Video_') ||\n gameLaunchParam?.gameLaunchedFrom?.startsWith('Teaser')\n ) {\n trackingContainer = gameLaunchParam.gameLaunchedFrom;\n }\n categoryEngName = this.casinoLobbyService.getCategoryName(gameLaunchParam.game.lobbyType, parentCategoryId);\n gameContainerDescription =\n gameLaunchParam?.game?.gameContainerDescription ||\n (catInfo.categoryInfo.sitecoreData &&\n (catInfo.categoryInfo.sitecoreData.backgroundImageLayer1 ||\n catInfo.categoryInfo.sitecoreData.backgroundImageLayer2 ||\n catInfo.categoryInfo.sitecoreData.backgroundImageLayer3)\n ? 'Highlighted | image'\n : 'Non Highlighted | nocolor');\n }\n const gameName = gameLaunchParam.game.name\n ? gameLaunchParam?.game?.name\n : this.gameManagerService.getGameDisplayName(gameLaunchParam?.game.gameId);\n const gameSection = parentCategoryId || gameLaunchParam.gameSection;\n let trackingGridPosition: string = gameLaunchParam.gridPosition;\n if (gameLaunchParam?.gameLaunchedFrom?.startsWith('RecentlyPlayed_widget_')) {\n trackingContainer = gameLaunchParam.gameLaunchedFrom;\n categoryEngName = this.casinoLobbyService.getCategoryName(gameLaunchParam.game.lobbyType, childChildcategoryId);\n }\n if (gameLaunchParam?.gameSection == 'Module_Discover_Promo' || gameLaunchParam?.gameSection?.toLowerCase() == 'globalsearch') {\n trackingGridPosition = 'Not Applicable';\n } else if (gameLaunchParam?.gridPosition) {\n trackingGridPosition = gameLaunchParam?.gamePosition\n ? `${gameLaunchParam?.gridPosition}:${gameLaunchParam?.gamePosition + 1}`\n : `${gameLaunchParam?.gridPosition}:1`;\n } else {\n trackingGridPosition = gameLaunchParam?.gamePosition ? `1:${gameLaunchParam?.gamePosition + 1}` : '1:1';\n }\n if (gameLaunchParam.Globalsearchgameposition) {\n gameLaunchParam.gamePosition = gameLaunchParam.Globalsearchgameposition;\n }\n const lobbyData: any = this.casinoLobbyService.getLobbyBasedOnLobbyType(gameLaunchParam.game.lobbyType);\n const gameTrackingObj: TrackGame = {\n name: gameLaunchParam?.game?.gameId,\n type: gameLaunchParam?.game?.provider ? gameLaunchParam?.game?.provider : this.getGameLunchType(gameLaunchParam.game.gameId),\n position: gameLaunchParam?.gamePosition + 1,\n section: this.getGameSection(gameLaunchParam, trackingContainer),\n gridPosition: trackingGridPosition,\n location:\n gameLaunchParam?.game?.widgetName == 'RecentWinners' || gameLaunchParam?.game?.widgetName == 'PlayerStats'\n ? gameLaunchParam.gameSection + '-' + gameLaunchParam?.game?.currentTab\n : gameLaunchParam.isMoreInfoOverlay\n ? 'moreinfo overlay' + ' | ' + gameSection\n : gameLaunchParam?.gameLaunchedLocation || (gameLaunchParam?.gameContainer || 'Page Container') + ' | ' + gameSection,\n status: gameLaunchParam?.game?.isSignPostedGame ? 'New' : 'Existing',\n description: gameContainerDescription || 'Not Applicable',\n favourite: this.favouriteService.checkForFavouriteGame(gameLaunchParam?.game) ? 'Favourite' : 'Non_favourite',\n playingStatus: this.unfinishedGamesService.checkForUnfinishedGame(gameLaunchParam?.game) ? 'Unfinished' : 'Start',\n displayName: gameName || gameLaunchParam?.game?.gameVariantName,\n categoryType: categoryType,\n categorySubType: gameLaunchParam?.Globalsearchsection || categoryEngName || gameLaunchParam?.gameSection,\n recommendationType: this.customRecommendationType || (catInfo?.categoryInfo?.havingCasiaGames ? 'Casia' : 'Default'),\n lobbyName: lobbyData?.lbyTempName,\n lobbySource: lobbyData?.lbyTargetType,\n optimoveSegment: lobbyData?.optSegName,\n params: gameLaunchParam,\n };\n this.gameLaunchTrackingService.track(gameTrackingObj);\n }\n\n checkGeolocationAndLaunchMobileGame(callback: any, errorCallback: any) {\n const geolocationConfig = this.configProviderService.provideGeoLocationConfig();\n if (this.geolocationActivator.isActive) {\n this.geolocationCheckService.onCheckClosed = () => {\n if (this.route.snapshot.queryParamMap.has('returnUrl')) {\n const returnUrlInQueryParameter = this.route.snapshot.queryParamMap.get('returnUrl');\n if (returnUrlInQueryParameter && returnUrlInQueryParameter.trim()) {\n this.navigator.navigate(returnUrlInQueryParameter.trim());\n return;\n }\n }\n if (this.router.routerState.snapshot.url.split('/').some((segment) => segment?.trim()?.toLowerCase() === 'launchng')) {\n const gameHomeUrl = this.casinoManager.getGameHomeUrl();\n if (gameHomeUrl) {\n this.navigator.navigate(gameHomeUrl);\n return;\n }\n }\n };\n this.geolocationCheckService.checkGeolocation(\n () => {\n callback();\n },\n () => {\n errorCallback();\n },\n );\n return;\n }\n if (geolocationConfig.shouldCheckNativeGeoLocation && (this.m2NativeApp.isNativeApp || this.m2NativeApp.isNativeWrapper)) {\n this.geoLocationValidation.validateLocation((response: boolean) => {\n if (response != null && !response) {\n callback();\n } else {\n errorCallback();\n }\n });\n return;\n }\n callback();\n }\n\n calculateGridPosition(gameLaunchParam: any) {\n const trackedClassList: any = document.getElementsByClassName('gametracking');\n const gridPosition: any = gameLaunchParam.gridPosition;\n if (gameLaunchParam.game.trackCategory && gameLaunchParam.game.trackCategory != '') {\n gameLaunchParam.categoryType = gameLaunchParam.game.trackCategory;\n }\n if (trackedClassList.length > 0) {\n for (let i = 0; i < trackedClassList.length; i++) {\n const value: any = trackedClassList[i];\n if (value.classList.contains('track_' + gameLaunchParam.categoryType)) {\n return (i + 1).toString();\n }\n }\n }\n return gridPosition ? gridPosition.toString() : '';\n }\n\n gameNotFoundAction(gameLaunchParam: any, callback?: any) {\n this.onGameLaunchDone(gameLaunchParam);\n this.messageQueue.clear();\n const globalConfig = this.configProviderService.provideGlobalConfig();\n let errormessage: string = globalConfig.messages['GameNotAvailable'];\n errormessage = errormessage.replace('{0}', gameLaunchParam.game.gameId);\n const message: Message = {\n html: errormessage,\n type: MessageType.Information,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (callback) {\n const callbackResponse = {\n isError: true,\n errorMessage: errormessage,\n gameLaunchUrl: '',\n };\n callback(callbackResponse);\n } else {\n if (gameLaunchParam.isTouch) {\n //this.messageQueue.add(message);\n if (gameLaunchParam.returnUrl) {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n let returnurl: string = gameLaunchParam?.returnUrl;\n if (this.navigation.location.search.get('gamenotfound') === 'true') {\n returnurl = gameLaunchParam?.returnUrl;\n } else if (!casinoNpmParams.isDll) {\n returnurl = this.appendQueryString(gameLaunchParam.returnUrl, 'gamenotfound', 'true');\n }\n sessionStorage.setItem('gameNotAvailable', JSON.stringify(message));\n if (returnurl) {\n this.navigation.goTo(returnurl);\n }\n setTimeout(() => {\n this.getGameNotAvailable();\n }, this.delayAfterRefreshInterval);\n } else {\n sessionStorage.setItem('gameNotAvailable', JSON.stringify(message));\n this.getGameNotAvailable();\n }\n } else {\n const features = this.configProviderService.provideFeaturesConfig();\n if (features.enableNewEmbeddedViewIconsPosition) {\n const returnurl = gameLaunchParam?.returnUrl;\n const homePageUrl = this.casinoManager.getGameHomeUrl();\n if (errormessage) {\n this.messageQueue.addError(errormessage, MessageLifetime.Single, 'casinocorelobby');\n }\n setTimeout(() => {\n this.messageQueue.clear();\n if (returnurl) this.navigation.goTo(returnurl);\n else this.navigation.goTo(homePageUrl);\n }, features.singleGameErrorTimeout);\n } else {\n message.scope = 'embeddedGameError';\n const embedGamePopUpData: any = {\n game: this.gameObj,\n errorMessageQueue: message,\n };\n this.openEmbeddedGameDailog(embedGamePopUpData);\n }\n }\n }\n return;\n }\n\n getGameNotAvailable() {\n this.messageQueue.clear();\n const message = JSON.parse(sessionStorage.getItem('gameNotAvailable') || '');\n if (message) {\n this.messageQueue.add(message);\n }\n setTimeout(() => {\n this.messageQueue.clear();\n sessionStorage.removeItem('gameNotAvailable');\n }, this.millisecondsToDisplayInterval);\n }\n\n gameLaunchRedirectErrorAction(errormessages: any, callback?: any) {\n if (callback) {\n const callbackResponse = {\n isError: true,\n errorMessage: errormessages[0].html?.value ? errormessages[0].html.value : errormessages[0].html,\n gameLaunchUrl: '',\n };\n callback(callbackResponse);\n } else if (errormessages && errormessages.length > 0) {\n this.messageQueue.clear();\n errormessages.forEach((msg: any) => {\n msg.html = msg.html?.value ? msg.html?.value : msg.html;\n msg.lifetime = 'Single';\n msg.scope = 'casinocorelobby';\n });\n if (errormessages) {\n this.messageQueue.addMultiple(errormessages);\n }\n }\n }\n\n handleDirectDesktopGameLaunch(gameId: string): void {\n if (this.user.isAuthenticated) {\n if (this.vCClientService.isPokerVC()) {\n let isNotLobby: boolean = false;\n if (this.cookies.get('fromLobby')) {\n isNotLobby = true;\n }\n this.vCClientService.handleVCGameLaunch(gameId, isNotLobby);\n return;\n }\n\n const gameObject: any = {\n gameId: gameId,\n };\n this.checkGeolocationAndLaunchDesktopGame(gameObject, '');\n } else {\n this.loginDialog.open();\n }\n }\n\n currentTimeStamp() {\n return new Date().getTime();\n }\n\n addClickTimeStamp(redirectUrl: string, gameLaunchParams: any): string {\n if (gameLaunchParams && gameLaunchParams.clickTimeStamp) {\n const url = new URL(redirectUrl);\n const rurl = url.searchParams.get('rurl');\n if (url && rurl && rurl != '') {\n let appendString: string = '';\n if (gameLaunchParams.clickTimeStamp) {\n appendString += '&clickTimeStamp=' + gameLaunchParams.clickTimeStamp;\n }\n if (gameLaunchParams.launchSource) {\n appendString += '&launchSource=' + gameLaunchParams.launchSource;\n }\n url.searchParams.set('rurl', rurl + appendString);\n return url.toString();\n }\n }\n return redirectUrl;\n }\n\n validateGames(gameId: string): Observable {\n return this.api.get('gamedata/validategame', { gameId: gameId }, { withCredentials: true });\n }\n\n closeGame(gameId: string): Observable {\n return this.api.get('gamedata/closegame', { gameId: gameId }, { withCredentials: true });\n }\n\n playerPlayBreakStatus() {\n this.api\n .get('gamedata/GetUserPlayBreakStatus', null, { withCredentials: true })\n .toPromise()\n .then(\n (statusObj: any) => {\n if (statusObj && (statusObj.playBreak || statusObj.gracePeriod)) {\n window.location.reload();\n }\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Unable to retrieve user play break status' + error);\n },\n );\n }\n\n stopAudio() {\n this.stopAudioSubject.next(false);\n }\n storeUserInfo(data: string) {\n this.logger.info(data);\n const gamesConfig = this.configProviderService.provideGameConfig();\n if (gamesConfig.storeUserDetails) {\n const cookieObj: any = {\n userToken: this.user.claims.get('usertoken') || '',\n sessionToken: this.user.claims.get('sessiontoken') || '',\n // gameDisplayname: data || '',\n };\n\n this.cookies.putObject('PCGameData', cookieObj, {\n domain: this.page.domain,\n });\n }\n }\n}\n","
\n
\n
\n
\n
{{ messagesInfo.header }}
\n
\n
\n
\n
\n
\n

{{ messagesInfo.message }}

\n
\n
\n \n
\n
\n","import { NgIf } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { NavigationService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Component({\n selector: 'cc-confirm-message',\n templateUrl: './confirm-message.component.html',\n standalone: true,\n imports: [NgIf],\n})\nexport class ConfirmMessageComponent implements OnInit {\n message: any;\n messagesInfo: any;\n constructor(\n private navigator: NavigationService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private configProviderService: ConfigProviderService,\n ) {}\n\n ngOnInit() {\n this.messagesInfo = this.data;\n }\n\n cancelBtn(): void {\n this.dialogRef.close();\n }\n\n depositBtn() {\n const mcPage: any = this.configProviderService.provideMcPageConfig();\n this.navigator.goTo(mcPage.depositUrl.url);\n }\n}\n","import { NgForOf } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\n\n@Component({\n selector: 'cc-custom-carousel-pagination',\n template: `\n
\n \n \n \n \n
\n \n `,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgForOf],\n})\nexport class CustomCarouselPaginationComponent {\n @Input() loop: boolean = true;\n @Input() backgroundColor: boolean = false;\n @Input() disableClick: boolean = false;\n @Input() noOfItems: number;\n @Input() currentIndex: number;\n @Input() carousel: SwiperComponent;\n\n paginationClick(index: number, event: Event) {\n if (this.disableClick || this.currentIndex === index) {\n event.stopPropagation();\n event.stopImmediatePropagation();\n } else {\n const i = index;\n const slideIndex = this.carousel.swiper?.slides.length > i ? i : 0;\n if (this.carousel.swiper?.params.loop) {\n if (this.carousel.swiper?.realIndex === slideIndex) return;\n this.carousel.swiper?.slideToLoop(slideIndex);\n } else {\n this.carousel.swiper?.slideTo(slideIndex);\n }\n }\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nexport enum IntersectionStatus {\n Visible = 'Visible',\n Pending = 'Pending',\n NotVisible = 'NotVisible',\n}\n\nexport const fromIntersectionObserver = (element: HTMLElement, config: IntersectionObserverInit, debounce = 0) =>\n new Observable((subscriber) => {\n const subject$ = new Subject<{\n entry: IntersectionObserverEntry;\n observer: IntersectionObserver;\n }>();\n\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (isIntersecting(entry)) {\n subject$.next({ entry, observer });\n } else {\n const videoElementStatus = {\n status: IntersectionStatus.NotVisible,\n };\n subscriber.next(videoElementStatus);\n }\n });\n }, config);\n\n subject$.pipe(debounceTime(debounce), filter(Boolean)).subscribe(async (result: any) => {\n const isEntryVisible = await isVisible(result.entry.target as HTMLElement);\n\n if (isEntryVisible) {\n const videoElementStatus = {\n status: IntersectionStatus.Visible,\n src: getSrc(result.entry.target),\n };\n subscriber.next(videoElementStatus);\n }\n });\n\n intersectionObserver.observe(element);\n\n return {\n unsubscribe() {\n intersectionObserver.disconnect();\n subject$.unsubscribe();\n },\n };\n });\n\nfunction getSrc(target: any) {\n return target.currentSrc ?? target.childNodes[0]?.attributes?.src?.nodeValue;\n}\n\nasync function isVisible(element: HTMLElement) {\n return new Promise((resolve) => {\n const observer = new IntersectionObserver(([entry]) => {\n resolve(entry.isIntersecting);\n });\n\n observer.observe(element);\n });\n}\n\nfunction isIntersecting(entry: IntersectionObserverEntry) {\n return entry.isIntersecting && entry.intersectionRatio > 0;\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IntersectionStatus, fromIntersectionObserver } from './from-intersection-observer';\n\n@Directive({\n selector: '[ccIntersectionObserver]',\n standalone: true,\n})\nexport class IntersectionObserverDirective implements OnInit, OnDestroy {\n @Input() intersectionDebounce = 0;\n @Input() intersectionRootMargin = '0px';\n @Input() intersectionRoot: HTMLElement;\n @Input() intersectionThreshold: number | number[] = 0.1;\n\n @Output() visibilityChange = new EventEmitter();\n\n private destroy$ = new Subject();\n\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n const element = this.element.nativeElement;\n const config = {\n root: this.intersectionRoot,\n rootMargin: this.intersectionRootMargin,\n threshold: this.intersectionThreshold,\n };\n\n fromIntersectionObserver(element, config, this.intersectionDebounce)\n .pipe(takeUntil(this.destroy$))\n .subscribe((status) => {\n this.visibilityChange.emit(status);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnDestroy, Output } from '@angular/core';\n\nimport { Subscription, fromEvent, merge } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\n@Directive({\n selector: '[ccLongPress]',\n standalone: true,\n})\nexport class LongPressDirective implements OnDestroy {\n private eventSubscribe: Subscription;\n threshold = 500;\n\n @Output()\n onMouseLongPress = new EventEmitter();\n\n constructor(private elementRef: ElementRef) {\n const touchstart = fromEvent(this.elementRef.nativeElement, 'touchstart').pipe(map(() => true));\n\n const touchEnd = fromEvent(this.elementRef.nativeElement, 'touchend').pipe(map(() => false));\n\n const mousedown = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(\n filter((event) => event.button == 0),\n map(() => true),\n );\n\n const mouseup = fromEvent(this.elementRef.nativeElement, 'mouseup').pipe(\n filter((event) => event.button == 0),\n map(() => false),\n );\n\n this.eventSubscribe = merge(mousedown, mouseup, touchstart, touchEnd).subscribe((value) => this.onMouseLongPress.emit(value));\n }\n\n ngOnDestroy(): void {\n if (this.eventSubscribe) {\n this.eventSubscribe.unsubscribe();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'highlightsearch',\n standalone: true,\n})\nexport class HighlightSearch implements PipeTransform {\n transform(value: string, args: any): string {\n let pattern = args.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n pattern = pattern\n .split(' ')\n .filter((t: any) => {\n return t.length > 0;\n })\n .join('|');\n const regex = new RegExp(pattern, 'gi');\n return args ? value.replace(regex, (match) => '
' + match + '
') : value;\n }\n}\n","
\n \n
\n
\n \n
\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { NavigationService } from '@frontend/vanilla/core';\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\n\nimport { GameManagerService } from '../casino-lobby-manager/game-manager/game-manager.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoManager } from '../shared/casino-manager.service';\nimport { CasinoCoreGamelaunchService } from '../shared/gamelaunch.service';\nimport { GameLaunch } from '../shared/models/gamelaunch.model';\n\n@Component({\n selector: 'cc-gif-tag',\n templateUrl: 'gif-tag.component.html',\n standalone: true,\n imports: [NgIf, LazyLoadImageModule],\n})\nexport class GifTagComponent implements OnInit {\n @Input() url: string;\n @Input() imageThumbnail: any;\n @Input() type: string;\n @Input() launchUrl: any;\n @Input() subcategory: any;\n @Input() lobbyType: string;\n @Input() gameContainer: string;\n @Input() videoBoxContent: any;\n\n isTouch: boolean;\n gameObj: any = {};\n imageThumbnailSrc: string;\n videoLaunchRealtiveUri: string;\n\n constructor(\n private casinoManager: CasinoManager,\n private navigation: NavigationService,\n private casinoCoreGamelaunchService: CasinoCoreGamelaunchService,\n private configProviderService: ConfigProviderService,\n private gameManagerService: GameManagerService,\n ) {\n this.isTouch = this.casinoManager.isTouch();\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n this.videoLaunchRealtiveUri = '/' + mcPageConfig.labelPrefix + '/launchng/';\n }\n ngOnInit() {\n if (this.imageThumbnail && this.imageThumbnail.src) {\n this.imageThumbnailSrc = this.imageThumbnail.src;\n } else {\n this.imageThumbnailSrc = '';\n }\n }\n launchGame() {\n let gameSection: string;\n if (this.type == 'gif') {\n gameSection = 'Netflix_gif';\n } else {\n gameSection = 'Netflix_svg';\n }\n const gameModel = new GameLaunch();\n const gameId: string = this.getGameIdFromLaunchUrl(this.launchUrl.url);\n gameModel.game = this.gameManagerService.getGameInfo(gameId);\n gameModel.game.gameId = gameId;\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = 1;\n gameModel.categoryType = this.subcategory;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = 'Netflix_Video';\n gameModel.gridPosition = 1;\n gameModel.gameSection = gameSection;\n gameModel.gameContainer = this.gameContainer;\n gameModel.returnUrl = window.location.href;\n gameModel.clickTimeStamp = this.casinoCoreGamelaunchService.currentTimeStamp();\n if (this.launchUrl) {\n if (this.isGameUrl(this.launchUrl.url)) {\n this.casinoCoreGamelaunchService.launchGame(gameModel);\n } else {\n this.navigation.goTo(this.launchUrl?.url);\n }\n }\n }\n getGameIdFromLaunchUrl(link: string) {\n return link.substr(link.indexOf(this.videoLaunchRealtiveUri) + this.videoLaunchRealtiveUri.length);\n }\n\n isGameUrl(link: string) {\n return link.indexOf(this.videoLaunchRealtiveUri) > 0;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimeZoneService {\n convertToClientTimeZone(timeString: string, timeZone: string) {\n const clientTimeZoneSeconds: number = this.getClientTimeZoneSeconds(timeString, timeZone);\n return this.formatTimeFromSeconds(clientTimeZoneSeconds);\n }\n\n getClientTimeZoneSeconds(timeString: string, timeZone: string): number {\n const totalSeconds: number = this.getSecondsFromTimeString(timeString);\n const UTCSeconds: number = this.getUTCSeconds(totalSeconds, timeZone);\n const clientDate: Date = new Date();\n const clientTimeZoneSeconds: number = UTCSeconds - clientDate.getTimezoneOffset() * 60;\n return clientTimeZoneSeconds;\n }\n\n getUTCSeconds(totalSeconds: number, timezone: string): number {\n const offSetSeconds: number = this.getOffsetFromTimeZoneSeconds(timezone);\n return totalSeconds - offSetSeconds;\n }\n\n getOffsetFromTimeZoneSeconds(timezone: string): number {\n if (timezone === 'UTC') {\n return 0;\n }\n //TODO: Maintain a map in configuration\n return -14400 * 60;\n }\n\n formatTimeNumber(value: number): string {\n if (value === 0 || !value) {\n return '00';\n } else if (value < 10) {\n return '0' + value;\n }\n return value.toString();\n }\n\n getSecondsFromTimeString(timeString: string): number {\n if (timeString) {\n const timeArray: any = timeString.split(':');\n\n const hours: number = timeArray[0] ? Number(timeArray[0]) : 0;\n const minutes: number = timeArray[1] ? Number(timeArray[1]) : 0;\n const seconds: number = timeArray[2] ? Number(timeArray[2]) : 0;\n const totalSeconds: number = hours * 60 * 60 + minutes * 60 + seconds;\n return totalSeconds;\n }\n return 0;\n }\n\n formatTimeFromSeconds(totalSeconds: number): string {\n const hours = Math.floor(totalSeconds / (60 * 60));\n const minutes = Math.floor((totalSeconds - hours * 60 * 60) / 60);\n const seconds = totalSeconds - (hours * 60 * 60 + minutes * 60);\n return this.formatTimeNumber(hours) + ':' + this.formatTimeNumber(minutes) + ':' + this.formatTimeNumber(seconds);\n }\n\n getTimerStartInstance(timeString: string, timeZone: string) {\n const startTime: string = this.convertToClientTimeZone(timeString, timeZone);\n const startTimeSeconds: number = this.getSecondsFromTimeString(startTime);\n const currentDate: Date = new Date();\n const currentDateSeconds: number = currentDate.getHours() * 60 * 60 + currentDate.getMinutes() * 60 + currentDate.getSeconds();\n const durationSeconds: number = startTimeSeconds - currentDateSeconds;\n if (durationSeconds < 0) {\n return null;\n }\n return this.formatTimeFromSeconds(durationSeconds);\n }\n\n getDateFormat(dateFormat: any) {\n const mm = dateFormat.getMonth() + 1;\n const dd = dateFormat.getDate();\n const yyyy = dateFormat.getFullYear();\n const format = dd + '/' + mm + '/' + yyyy;\n const hour = dateFormat.getHours();\n const minutes = dateFormat.getMinutes();\n const newformat = hour >= 12 ? 'PM' : 'AM';\n return format + ' | ' + hour + ':' + minutes + ' ' + newformat;\n }\n}\n","\n {{ time }}\n\n","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, Output } from '@angular/core';\n\nimport { TimerService } from '@frontend/vanilla/core';\n\nimport { TimeZoneService } from '../shared/time-zone.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\n\n@Component({\n selector: 'cc-lc-timer',\n templateUrl: 'lc-timer.component.html',\n standalone: true,\n imports: [NgIf],\n})\nexport class LCTimerComponent implements OnChanges, OnDestroy {\n @Input() showDays: boolean = false;\n @Input() daysDisplayText: string = '';\n @Input() showTimer: boolean = true;\n @Input() startTime: string;\n @Output() onTimerEnd: EventEmitter = new EventEmitter();\n\n timerInstance: any;\n displayTime: string;\n\n constructor(\n private timerService: TimerService,\n private timeZoneService: TimeZoneService,\n private urlUtilityService: UrlUtilityService,\n ) {}\n\n ngOnChanges() {\n this.displayTime = this.startTime;\n if (!this.timerInstance) {\n this.timerInstance = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n const seconds: number = this.timeZoneService.getSecondsFromTimeString(this.displayTime);\n if (seconds === 0) {\n this.timerService.clearInterval(this.timerInstance);\n this.onTimerEnd.emit(true);\n }\n this.displayTime = this.timeZoneService.formatTimeFromSeconds(seconds - 1);\n }, 1000);\n }\n }\n\n get time() {\n if (!this.showDays) {\n return this.displayTime;\n }\n\n const seconds: number = this.timeZoneService.getSecondsFromTimeString(this.displayTime);\n const days = Math.ceil(seconds / (3600 * 24));\n return days > 1 ? days - 1 + (this.daysDisplayText ? ' ' + this.daysDisplayText : '') : this.displayTime;\n }\n\n ngOnDestroy() {\n this.timerService.clearInterval(this.timerInstance);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ArcadeLobbyTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackEvent(\n trackingType: string,\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n uRLClicked: string,\n ): void {\n this.trackingService.triggerEvent(trackingType, {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': uRLClicked,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { isDateValid } from '@casinocore/platform/utils';\nimport { Logger, Message, MessageLifetime, MessageType, TrackingService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { betmgmOriginalsSitecoreData } from '../client-config/betmgmoriginals-config';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { BetMGMOriginalsRequestModel } from './models/betmgm-originals.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BetmgmOriginalsService {\n observable: Observable;\n private optInPublisher = new BehaviorSubject(false);\n optInObservable: Observable;\n private getOptInPublisher = new BehaviorSubject(false);\n getOptInObservable: Observable;\n private publisher = new BehaviorSubject(false);\n private betMgmOriginalsTimerPublisher = new BehaviorSubject(true);\n betMgmOriginalsTimerObservable: Observable;\n betmgmOriginalConfig: boolean;\n betmgmOriginalsSitecoreData: betmgmOriginalsSitecoreData;\n overLaySitecoreData: any;\n BetmgmOriginalOptInData: any;\n bottomSheetRef: any;\n dialogRef: any;\n\n constructor(\n private configProviderService: ConfigProviderService,\n private api: PlatformApiService,\n private logger: Logger,\n private trackingService: TrackingService,\n ) {\n this.betmgmOriginalConfig = this.configProviderService?.providerBetMGMOriginalsConfig()?.enabledBetMGMOriginals;\n this.betmgmOriginalsSitecoreData = this.configProviderService?.providerBetMGMOriginalsConfig()?.betmgmOriginalsConfigurations;\n this.observable = this.publisher.asObservable();\n this.optInObservable = this.optInPublisher.asObservable();\n this.getOptInObservable = this.getOptInPublisher.asObservable();\n this.betMgmOriginalsTimerObservable = this.betMgmOriginalsTimerPublisher.asObservable();\n }\n\n get betmgmoriginalOptIn(): any {\n return this.BetmgmOriginalOptInData;\n }\n\n getBetmgmOriginalsUserStatus(type: string, id: string): void {\n this.api\n .get(\n 'betmgmoriginals/GetBetMGMOriginalsStatus',\n { type: type, id: id },\n {\n responseType: 'json',\n withCredentials: true,\n },\n )\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.getOptInPublisher.next(response);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n };\n this.logger.error(message);\n },\n });\n }\n postBetmgmOptIn(postRequestModel: BetMGMOriginalsRequestModel): void {\n this.api\n .post('betmgmoriginals/PostBetMGMOriginalsStatus', postRequestModel, {\n responseType: 'json',\n withCredentials: true,\n })\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.optInPublisher.next(response);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n };\n this.logger.error(message);\n },\n });\n }\n trackEvent(\n trackingType: string,\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n uRLClicked: string,\n ): void {\n this.trackingService.triggerEvent(trackingType, {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': uRLClicked,\n });\n }\n setOriginalsTimerStatus(isTimerRunning: boolean): void {\n this.betMgmOriginalsTimerPublisher.next(isTimerRunning);\n }\n\n isTimerValidForOriginals(timerExpiryDate: string): boolean {\n if (isDateValid(timerExpiryDate)) {\n const targetDate = new Date(timerExpiryDate);\n const milliseconds = targetDate.getTime() - new Date().getTime();\n if (milliseconds <= 0) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n validateBetMgmOriginalsConfigs(displayBetMGMOriginals: boolean, betMGMOriginalsConfig: any, isUserAuthenticated: boolean): boolean {\n return (\n betMGMOriginalsConfig?.enabledBetMGMOriginals &&\n isUserAuthenticated &&\n displayBetMGMOriginals &&\n betMGMOriginalsConfig?.betmgmOriginalsConfigurations?.SourceType &&\n betMGMOriginalsConfig?.betmgmOriginalsConfigurations?.SourceId &&\n this.isTimerValidForOriginals(betMGMOriginalsConfig?.betmgmOriginalsConfigurations?.TimerExpiryDate)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n ClaimsService,\n DeviceService,\n LoginDialogService,\n MessageQueueService,\n NavigationService,\n SessionStoreService,\n UserService,\n} from '@frontend/vanilla/core';\nimport { CurrentSessionConfig } from '@frontend/vanilla/shared/current-session';\nimport { toNumber } from 'lodash-es';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { ConfirmMessageComponent } from '../../confirm-message/confirm-message.component';\nimport { PlatformApiService } from '../../platform-api/platform-api.service';\nimport { PlatformBingoApiService } from '../../platform-api/platform-bingo-api.service';\nimport { UrlUtilityService } from '../../utilities/url-utility.service';\nimport { ApiPathsHelperService } from '../api-paths-helper-service';\nimport { CacheManagerService } from '../cache-manager.service';\nimport { CasinoWidgetService } from '../casino-widget.service';\nimport { CozyBingoDataService } from '../cozybingodata.service';\nimport { GameLaunchTrackingService } from '../game-launch-tracking.service';\nimport { RecentGamesService } from '../recent-games.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BingoGameLaunchService {\n isInGameClient: boolean;\n isRealPlayer: any;\n activeroom: string;\n openedRooms: string[];\n private destroy$ = new Subject();\n constructor(\n private activatedRoute: ActivatedRoute,\n private user: UserService,\n private loginDialog: LoginDialogService,\n private messageQueue: MessageQueueService,\n private claimsConfig: ClaimsService,\n private navigator: NavigationService,\n private session: SessionStoreService,\n private recentGamesService: RecentGamesService,\n private deviceService: DeviceService,\n private casinoWidgetService: CasinoWidgetService,\n private dialog: MatDialog,\n private apiBingoService: PlatformBingoApiService,\n private api: PlatformApiService,\n private urlUtilityService: UrlUtilityService,\n private configProviderService: ConfigProviderService,\n private cacheManagerService: CacheManagerService,\n private cozyBingoDataService: CozyBingoDataService,\n private apiPathsHelperService: ApiPathsHelperService,\n private currentSessionConfig: CurrentSessionConfig,\n private gameLaunchTrackingService: GameLaunchTrackingService,\n ) {\n if (this.activatedRoute.snapshot.queryParamMap.get('hideHeader') == 'true' || this.activatedRoute.snapshot.queryParamMap.get('.box')) {\n this.isInGameClient = true;\n }\n }\n\n checkUserStatus(): boolean {\n if (this.isRealPlayer === undefined || this.isRealPlayer == null) {\n this.isRealPlayer = this.claimsConfig.get('realplayer');\n }\n if (this.isRealPlayer == 'True') {\n return true;\n }\n\n return false;\n }\n\n bingoGameLaunchTracking(gameObj: any) {\n let data: any;\n data = this.cozyBingoDataService.getRoomdatabyId(gameObj.id);\n if (data?.sitecoreInfo) {\n data.isNew = data.sitecoreInfo.isNew;\n }\n data = data || {};\n const gameTrackingObj: any = {\n name: gameObj.gameName,\n type: gameObj.gameType,\n position: Number.isInteger(gameObj.position) ? gameObj.position + 1 : undefined,\n section: gameObj.section,\n gridPosition: Number.isInteger(gameObj.position) ? gameObj.position + 1 + ':1' : undefined,\n location: gameObj.gameContainerLocation,\n status: data.isNew ? 'New' : 'Existing',\n description: gameObj.widgetFrameClr ? 'Highlighted|' + gameObj.widgetFrameClr : 'Non-Highlighted|No Color Code',\n favourite: data.isFavourite ? 'Favourite' : 'Non-Favourite',\n playingStatus: 'Not Applicable',\n displayName: gameObj.gameName,\n categoryType: 'Bingo',\n categorySubType: 'Bingo',\n };\n this.gameLaunchTrackingService.track(gameTrackingObj);\n }\n\n initiateGameLaunch(\n gameName: string,\n gameType: string,\n ballType: string,\n launchType: string,\n gameIcon: string,\n gameId: string,\n favstatus: boolean,\n originUrl: string | undefined,\n gameObj: any = {},\n ): void {\n let origin: string;\n const globalMessages: any = this.configProviderService.provideGlobalConfig();\n\n if (originUrl) {\n origin = originUrl;\n } else {\n origin = window.location.href;\n }\n\n gameObj.id = gameId;\n gameObj.gameType = gameType;\n gameObj.gameName = gameName;\n\n if (!this.validateUser(gameName, gameType, ballType, launchType, gameIcon, gameId, favstatus, origin, gameObj)) {\n return;\n }\n if (!this.checkUserStatus()) {\n const isPlayUser: boolean = this.claimsConfig?.get('realplayer')?.toLowerCase() === 'false';\n if (isPlayUser) {\n this.openBingoPlayUserDialog(origin);\n }\n\n return;\n }\n this.bingoGameLaunchTracking(gameObj);\n this.messageQueue.clear();\n if (this.deviceService.isTouch) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const bingoGameUrl = this.apiPathsHelperService.transformApi(\n apiPathsConfig.bingo['bgMenuLaunchRoom'],\n this.urlUtilityService.getBingoApiBaseUrl(),\n gameName,\n );\n const params = {\n promptLogin: false,\n redirectUrl: bingoGameUrl,\n categoryid: 'rcp-widget',\n };\n this.casinoWidgetService.postMessageToParent('GameLaunch', params);\n }\n if (this.deviceService.isMobilePhone && gameType?.toLowerCase() === 'casino') {\n this.getCasinoGameLaunchUrl(gameId).subscribe(\n (response) => {\n if (response.redirect) {\n this.launchGame(response.redirect);\n } else {\n if (globalMessages?.messages['gameLaunchErrorMessage']) {\n this.messageQueue.addError(globalMessages.messages['gameLaunchErrorMessage']);\n }\n }\n },\n (error) => {\n if (error && globalMessages?.messages['gameLaunchErrorMessage'])\n this.messageQueue.addError(globalMessages.messages['gameLaunchErrorMessage']);\n },\n );\n } else {\n this.getGameLaunchUrl(gameName, gameType, ballType, launchType, gameIcon, gameId, favstatus, origin).subscribe(\n (response) => {\n if (response.redirectUrl) {\n this.launchBingoGames(response.redirectUrl, gameName, gameType, origin);\n } else if (response.responseCode && response.responseCode != '0') {\n let errorMessage = globalMessages.messages[response.responseCode];\n errorMessage = globalMessages.messages['gl_' + response.responseCode];\n if (!errorMessage) {\n errorMessage = globalMessages.messages['gameLaunchErrorMessage'];\n }\n if (errorMessage) {\n this.messageQueue.addError(errorMessage);\n }\n if (this.isForcedGameLaunch()) {\n this.session.set('GameLaunchErrorCode', 'gl_' + response.responseCode);\n this.navigator.goTo(origin);\n }\n } else {\n if (globalMessages?.messages['gameLaunchErrorMessage']) {\n this.messageQueue.addError(globalMessages.messages['gameLaunchErrorMessage']);\n }\n }\n setTimeout(() => this.messageQueue.clear(), 3000);\n },\n (error) => {\n if (error && globalMessages?.messages['gameLaunchErrorMessage'])\n this.messageQueue.addError(globalMessages.messages['gameLaunchErrorMessage']);\n },\n );\n }\n }\n\n isForcedGameLaunch() {\n if (window.location.href.indexOf('bingoForcedGameLaunch') > -1) return true;\n else return false;\n }\n openBingoPlayUserDialog(origin: string): void {\n if (this.user.isAuthenticated && this.claimsConfig?.get('realplayer')?.toLowerCase() == 'false') {\n let requiredMessages;\n const cozyBingoConfig: any = this.configProviderService.provideCozyBingoConfig();\n if (cozyBingoConfig.cozyBingoFavouritesInRpwidget) {\n const bingoGlobalMessages = this.cozyBingoDataService.getGlobalMessages();\n requiredMessages = {\n message: bingoGlobalMessages.preBuyUserDepositMessage,\n header: bingoGlobalMessages.preBuyUserDepositHeader,\n closeBtn: bingoGlobalMessages.confirmCloseButton,\n purchaseButtonText: bingoGlobalMessages.preBuyUserDepositBtn,\n };\n } else {\n const globalMessages: any = this.configProviderService.provideGlobalConfig();\n requiredMessages = {\n message: globalMessages.messages.preBuyUserDepositMessage,\n header: globalMessages.messages.preBuyUserDepositHeader,\n closeBtn: globalMessages.messages.confirmCloseButton,\n purchaseButtonText: globalMessages.messages.preBuyUserDepositBtn,\n };\n }\n const dialogRef = this.dialog.open(ConfirmMessageComponent, {\n width: '378px',\n data: requiredMessages,\n });\n\n dialogRef.afterClosed().subscribe(() => {\n this.navigator.goTo(origin);\n });\n }\n }\n\n getPlayUrl(\n gameName: string,\n gameType: string,\n ballType: string,\n launchType: string,\n gameIcon: string,\n gameId: string,\n favstatus: boolean,\n origin: string,\n ): string {\n let result: string = '';\n if (origin.indexOf('?') === -1) {\n result =\n origin +\n '?bingoForcedGameLaunch=true&gameName=' +\n gameName +\n '&gameType=' +\n gameType +\n '&ballType=' +\n ballType +\n '&launchType=' +\n launchType +\n '&gameIcon=' +\n gameIcon +\n '&gameId=' +\n gameId +\n '&favstatus=' +\n favstatus +\n '&originUrl=' +\n origin;\n } else {\n result =\n origin +\n '&bingoForcedGameLaunch=true&gameName=' +\n gameName +\n '&gameType=' +\n gameType +\n '&ballType=' +\n ballType +\n '&launchType=' +\n launchType +\n '&gameIcon=' +\n gameIcon +\n '&gameId=' +\n gameId +\n '&favstatus=' +\n favstatus +\n '&originUrl=' +\n origin;\n }\n return result;\n }\n\n validateUser(\n gameName: string,\n gameType: any,\n ballType: any,\n launchType: any,\n gameIcon: any,\n gameId: any,\n favstatus: any,\n origin: any,\n gameObj: any,\n ): boolean {\n let forceGameLaunchObj: any;\n const playUrlObj: any = {};\n playUrlObj.gameName = gameName;\n playUrlObj.gameType = gameType;\n playUrlObj.ballType = ballType;\n playUrlObj.launchType = launchType;\n playUrlObj.gameIcon = gameIcon;\n playUrlObj.gameId = gameId;\n playUrlObj.favstatus = favstatus;\n playUrlObj.origin = origin;\n playUrlObj.vfBingo = true;\n playUrlObj.gameObj = gameObj;\n\n forceGameLaunchObj = {\n gameLaunchParam: playUrlObj,\n timeStamp: new Date().getTime(),\n };\n if (!this.user.isAuthenticated) {\n this.cacheManagerService.writeForceGameLaunchObjInSessionStorage('CasinoCoreForceGameObj', forceGameLaunchObj);\n this.loginDialog.whenReady.pipe(takeUntil(this.destroy$)).subscribe(() => this.loginDialog.open());\n return false;\n }\n\n return true;\n }\n\n launchBingoGames(redirectUrl: any, _gameName: string, gameType: string, origin: string): void {\n //setting overlay visibility.\n redirectUrl = decodeURIComponent(redirectUrl);\n if (gameType == 'Bingovf') {\n if (this.deviceService.isTouch) {\n this.navigator.goTo(redirectUrl);\n } else {\n this.openedRooms = [];\n if (!this.session.get('openedRooms')) this.session.set('openedRooms', this.openedRooms);\n this.openedRooms = this.session.get('openedRooms') || [];\n\n if (this.openedRooms.indexOf(_gameName) > -1) {\n this.activeroom = _gameName;\n return;\n }\n const gamePopOutWindow = window.open(\n redirectUrl,\n '_blank',\n 'height=605,width=975,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes',\n );\n if (origin) {\n this.navigator.goTo(origin);\n }\n this.openedRooms.push(_gameName);\n this.session.set('openedRooms', this.openedRooms);\n const checkPopOutWindowOpenInterval = setInterval(() => {\n if (this.activeroom == _gameName) {\n this.activeroom = '';\n gamePopOutWindow?.focus();\n }\n if (gamePopOutWindow?.closed) {\n this.openedRooms = this.openedRooms.filter((a: string) => {\n return a != _gameName;\n });\n this.session.set('openedRooms', this.openedRooms);\n clearInterval(checkPopOutWindowOpenInterval);\n this.recentGamesService.setRecentGames();\n }\n }, 500);\n }\n } else this.navigator.goTo(redirectUrl);\n }\n launchGame(redirectUrl: any) {\n redirectUrl = decodeURIComponent(redirectUrl);\n if (this.isInGameClient) {\n window.parent.postMessage({ type: 'LaunchGame', data: redirectUrl }, window.location.origin);\n //return true;\n }\n this.navigator.goTo(redirectUrl);\n }\n\n getGameLaunchUrl(\n gameName: string,\n gameType: string,\n ballType: string,\n launchType: string,\n gameIcon: string,\n gameId: string,\n favstatus: boolean,\n originUrl: string,\n ): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n let endPoint = this.apiPathsHelperService.transformApi(apiPathsConfig.bingo['bgGameLaunch'], this.urlUtilityService.getBingoApiBaseUrl());\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n endPoint = apiPathsConfig.bingo['bgGameLaunch'];\n }\n const cozyBingoConfig = this.configProviderService.provideCozyBingoConfig();\n if (cozyBingoConfig.enableBingoGameLaunchPostMethod) {\n let lastLoginTime: any;\n if (this.currentSessionConfig.loginDuration != null) {\n const clientLoginDuration = toNumber(this.session.get('clientLoginDuration'));\n this.session.remove('clientLoginDuration');\n if (cozyBingoConfig.enableLastLoginTimeCheck) {\n lastLoginTime = clientLoginDuration ? Date.now() - clientLoginDuration : Date.now() - this.currentSessionConfig.loginDuration;\n }\n }\n const postObj = {\n gameName: gameName,\n gameType: gameType,\n ballType: ballType,\n launchType: launchType,\n gameIcon: gameIcon,\n gameId: gameId,\n favstatus: favstatus,\n originUrl: originUrl,\n sso: this.claimsConfig.get('ssotoken'),\n themeId: '',\n originGameId: '',\n isReplaceGameSrc: false,\n lastLoginTime: lastLoginTime,\n isInGameClient: false,\n };\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n this.apiBingoService.post(endPoint, postObj, { withCredentials: true });\n } else {\n this.api.post(endPoint, postObj, { withCredentials: true });\n }\n }\n let res: Observable;\n if (apiPathsConfig.bingo['newApiStructure'] && apiPathsConfig.bingo['newApiStructure'] == 'enabled') {\n res = this.apiBingoService.get(\n endPoint,\n {\n gameName: gameName,\n gameType: gameType,\n ballType: ballType,\n launchType: launchType,\n gameIcon: gameIcon,\n gameId: gameId,\n favstatus: favstatus,\n originUrl: originUrl,\n sso: this.claimsConfig.get('ssotoken'),\n },\n { withCredentials: true },\n );\n } else {\n res = this.api.get(\n endPoint,\n {\n gameName: gameName,\n gameType: gameType,\n ballType: ballType,\n launchType: launchType,\n gameIcon: gameIcon,\n gameId: gameId,\n favstatus: favstatus,\n originUrl: originUrl,\n sso: this.claimsConfig.get('ssotoken'),\n },\n { withCredentials: true },\n );\n }\n\n return res;\n }\n getCasinoGameLaunchUrl(variantName: string): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.bingo['ccGameLaunch'], { variantName: variantName });\n }\n ngOnDestroy() {\n this.destroy$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoManager } from './casino-manager.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CategoryManager {\n lobbyCategoryLookup: Map> = new Map>();\n parentCategoryLookUpMap: Map> = new Map>();\n\n public currentCategory: any;\n private categoryLookUpFilledPublisher = new BehaviorSubject>(new Map());\n categoryLookUpObservable: Observable = this.categoryLookUpFilledPublisher.asObservable();\n\n private defaultCategoryFilledPublisher = new BehaviorSubject(null);\n defaultCategoryLookUpObservable: Observable = this.defaultCategoryFilledPublisher.asObservable();\n\n gameStickersMap: any = {};\n stickersLookupCompletePublisher = new BehaviorSubject(new Boolean());\n\n constructor(\n private api: PlatformApiService,\n private cacheManager: CacheManagerService,\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n ) {}\n\n getAllLMTCategories(lobbyType: string = '', invokerproduct: string = ''): Observable {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.lmt['lmtCategoriesAsync'], { lobbytype: lobbyType, invokerProduct: invokerproduct });\n }\n\n defaultCategoryLoadEvent(gymlandRecentfromDefaultCategory: any) {\n this.defaultCategoryFilledPublisher.next(gymlandRecentfromDefaultCategory);\n }\n\n getAllCategories(lobbyType: string = '') {\n if (lobbyType === '') {\n lobbyType = this.casinoManager.getLobbyType() || '';\n }\n let categoryLookUp: Map = new Map();\n categoryLookUp = this.lobbyCategoryLookup.get(lobbyType) || new Map();\n if (categoryLookUp && categoryLookUp.size > 0) {\n return categoryLookUp;\n } else {\n const categoryMap: any = this.cacheManager.getAllCategoriesFromLocalCache(lobbyType);\n if (categoryMap) {\n this.lobbyCategoryLookup.set(lobbyType, categoryMap);\n this.parentCategoryLookUpMap.set(lobbyType, this.setParentCategoryLookUpMap(categoryMap));\n }\n return categoryMap;\n }\n }\n\n setParentCategoryLookUpMap(categoryLookup: any) {\n const tempParentCategories: Map = new Map();\n if (categoryLookup && categoryLookup.size > 0) {\n categoryLookup.entries().forEach((entry: any) => {\n if (!entry[1].isNavigationCategory) {\n categoryLookup.entries().forEach((category: any) => {\n if (category[1].linkedCategory == entry[0]) {\n categoryLookup.entries().forEach((category2: any) => {\n if (category2[1].lmtSubCategories && category2[1].lmtSubCategories.indexOf(category[1].categoryid) > -1) {\n entry[1].parentCategoryid = category2[1].categoryid;\n tempParentCategories.set(entry[1].categoryid, entry[1].parentCategoryid);\n }\n });\n }\n });\n }\n });\n }\n return tempParentCategories;\n }\n\n getDefaultCategoryFromDynacon(): string {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const lobbyType: string = this.casinoManager.getLobbyType() || '';\n if (lobbyType) {\n for (let i = 0; i < casinoConfig.defaultyLobbyTypeCategory.length; i++) {\n if (casinoConfig?.defaultyLobbyTypeCategory[i]?.lobbyType?.toLowerCase() === lobbyType?.toLowerCase()) {\n return casinoConfig.defaultyLobbyTypeCategory[i].defaultCategory;\n }\n }\n }\n return '';\n }\n\n getDefaultLMTCategory() {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n return this.getLMTMap(casinoConfig.defaultCategory);\n }\n\n getLMTMap(categoryOnAddressBar: string): any {\n if (!categoryOnAddressBar || categoryOnAddressBar === '') {\n return this.getDefaultCategoryInfo();\n }\n if (categoryOnAddressBar?.toLowerCase() === this.getDefaultCategoryFromDynacon()?.toLowerCase()) {\n return this.getDefaultCategoryInfo();\n }\n return this.fetchCategoryInfoOnsiteCoreDataCategoryId(categoryOnAddressBar);\n }\n\n fetchCategoryInfoOnsiteCoreDataCategoryId(sitecoreDataCategoryId: string) {\n if (sitecoreDataCategoryId) {\n const allCategoryLookUpMap: any = this.getAllCategories();\n if (allCategoryLookUpMap && allCategoryLookUpMap.size > 0) {\n for (const key of Array.from(allCategoryLookUpMap.keys())) {\n const category: any = allCategoryLookUpMap.get(key);\n if (category && category.categoryid && category?.categoryid?.toLowerCase() === sitecoreDataCategoryId?.toLowerCase()) {\n return allCategoryLookUpMap.get(key);\n }\n }\n return null;\n }\n }\n return null;\n }\n\n getDefaultCategoryInfo() {\n const defaultLobbyCategory: string = this.getDefaultCategoryFromDynacon();\n const defaultCategoryInfo: any = this.fetchCategoryInfoOnsiteCoreDataCategoryId(defaultLobbyCategory);\n if (defaultCategoryInfo) {\n return defaultCategoryInfo;\n } else {\n const allCategoryLookUpMap: any = this.getAllCategories();\n if (allCategoryLookUpMap && allCategoryLookUpMap.size > 0) {\n return allCategoryLookUpMap.entries().next().value[1];\n }\n }\n return null;\n }\n\n mapGameStickers(lookUpResponse: any) {\n const gameStickersMap: any = {};\n lookUpResponse.forEach((category: any) => {\n if (category['gamesModel'])\n category['gamesModel'].forEach((gameModel: any) => {\n 'sticker' in gameModel && (gameStickersMap[gameModel.game] = gameModel.sticker);\n });\n });\n this.gameStickersMap = gameStickersMap;\n this.cacheManager.setGameToStickersMap(this.gameStickersMap);\n this.stickersLookupCompletePublisher.next(true);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastMessageService {\n eventId: any;\n isShown: boolean;\n iconClass: string;\n message: string;\n isIconShown: boolean;\n\n constructor() {}\n\n on(iconClass: string, message: string, isIconShown: boolean = false) {\n this.isShown = true;\n this.eventId = setTimeout(() => {\n this.off();\n }, 2000);\n this.iconClass = iconClass;\n this.message = message;\n this.isIconShown = isIconShown;\n }\n // NFR - Services optimization - Remove\n off() {\n clearTimeout(this.eventId);\n this.isShown = false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DiscoverFeedService {\n discoverFeedData: any;\n isStickerDisplay: boolean;\n private discoverFeedObject = new BehaviorSubject(null);\n private displayDiscoverSticker = new BehaviorSubject(null);\n discoverFeedObservable: Observable = this.discoverFeedObject.asObservable();\n discoverFeedStickerObservable: Observable = this.displayDiscoverSticker.asObservable();\n constructor(\n private api: PlatformApiService,\n private configProviderService: ConfigProviderService,\n ) {}\n\n GetDiscoverFeedSitecoreData() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.disjointFeeds['dsFeedData']).subscribe(\n (response: any) => {\n this.discoverFeedData = response;\n this.expiryDatecal(response.discoverContainer);\n this.discoverFeedObject.next(response);\n },\n () => {},\n );\n }\n getDiscoverFeed() {\n return this.discoverFeedData;\n }\n getStickerExpiryTime(discoverData: any) {\n this.displayDiscoverSticker.next(discoverData);\n }\n expiryDatecal(data: any) {\n if (data.highlightExpiryDate) {\n const expiryDate: any = new Date(data.highlightExpiryDate);\n const currentDate: any = new Date();\n const remainingTime = expiryDate - currentDate;\n const remainingTimeInMints = remainingTime / 1000 / 60;\n this.isStickerDisplay = remainingTimeInMints > 0 ? true : false;\n if (this.isStickerDisplay) {\n this.getStickerExpiryTime(data);\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DesignSystemEnablerService {\n constructor(\n private readonly _queryParamReader: ActivatedRoute,\n private configProvider: ConfigProviderService,\n ) {}\n\n isEnabled() {\n const queryParams = this._queryParamReader.snapshot.queryParams;\n const activateDesignSystem = this.configProvider.provideFeaturesConfig().activateDesignSystem;\n\n return this.isEnabledInQueryParameter(queryParams) || activateDesignSystem;\n }\n private isEnabledInQueryParameter(queryParams: { [k: string]: string }) {\n const enablerKeyInQueryParam = Object.keys(queryParams).find((p) => p.trim().toLowerCase() === '_enablefeature');\n const enablerEntryInQueryParam = Object.entries(queryParams).find((p) => p[0].trim().toLowerCase() === '_enablefeature');\n if (enablerKeyInQueryParam) {\n if (enablerEntryInQueryParam && (enablerEntryInQueryParam[1] || '').trim().toLowerCase() === 'ds') {\n return true;\n }\n }\n return false;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { BingoGameLaunchService } from './bingo-vf-services/bingo-game-launch.service';\nimport { CasinoCoreGamelaunchService } from './gamelaunch.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ForceGameLaunchHandlerService implements OnDestroy {\n gameLaunchObservable: Subscription;\n constructor(\n private casinoLobbyService: CasinoLobbyService,\n private casinoCoreGamelaunchService: CasinoCoreGamelaunchService,\n private bingoGameLaunchService: BingoGameLaunchService,\n ) {}\n\n onAppInit() {\n this.gameLaunchObservable = this.casinoLobbyService.forceGameLaunchObservable.subscribe(\n (response: any) => {\n if (response) {\n if (response.gameLaunchParam.vfBingo) {\n const params = response.gameLaunchParam;\n this.bingoGameLaunchService.initiateGameLaunch(\n params.gameName,\n params.gameType,\n params.ballType,\n params.launchType,\n params.gameIcon,\n params.gameId,\n params.favstatus,\n params.origin,\n params.gameObj,\n );\n } else {\n this.casinoCoreGamelaunchService.launchGame(response.gameLaunchParam);\n }\n }\n },\n () => {},\n );\n }\n ngOnDestroy() {\n this.gameLaunchObservable?.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, Message, MessageLifetime, MessageQueueService, MessageType, TrackingService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { IGameSelectorWidget, IGameSelectorWidgetGlobalConfig } from './models/game-selector-widget.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameSelectorWidgetService {\n widgetsMap: Map = new Map();\n private widgetsMapPublisher = new BehaviorSubject(false);\n widgetsMapObservable: Observable = this.widgetsMapPublisher.asObservable();\n\n globalConfig: IGameSelectorWidgetGlobalConfig;\n widgetProduct: string;\n constructor(\n private api: PlatformApiService,\n private messageQueue: MessageQueueService,\n private tracking: TrackingService,\n private appInfoConfig: AppInfoConfig,\n ) {}\n\n private emptyMap() {\n if (this.widgetsMap && this.widgetsMap.size > 0) {\n this.widgetsMap.clear();\n }\n }\n\n fetchWidgets(widgetPaths: Array) {\n this.api\n .post('GameSelector/FetchWidgets', widgetPaths, {\n responseType: 'json',\n withCredentials: true,\n showSpinner: false,\n })\n .subscribe(\n (response: IFetchWidgetsResponse) => {\n if (response.globalConfig) this.globalConfig = response.globalConfig;\n\n this.emptyMap();\n response.widgets.forEach((widget: IGameSelectorWidget) => {\n this.widgetsMap.set(widget.path, widget);\n });\n this.widgetsMapPublisher.next(true);\n },\n (error: string) => {\n let message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n setTimeout(() => {\n this.messageQueue.clear();\n }, 1000);\n }\n },\n );\n }\n // NFR - Services optimization - Remove\n getWidgetsMap() {\n return this.widgetsMap;\n }\n\n getWidget(path: string) {\n return this.widgetsMap.get(path);\n }\n\n getGlobaConfig() {\n return this.globalConfig;\n }\n\n addTrackingEvent(\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n uRLClicked: string,\n ) {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': this.appInfoConfig.product + '-' + positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': uRLClicked,\n });\n }\n}\n\ninterface IFetchWidgetsResponse {\n widgets: Array;\n globalConfig: IGameSelectorWidgetGlobalConfig;\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { DeviceService, Page, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { EmbeddedGamePopupComponent } from '../embedded-game-popup/embedded-game-popup.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GameService {\n constructor(\n private page: Page,\n private user: UserService,\n private dialog: MatDialog,\n private deviceService: DeviceService,\n ) {}\n\n gameDataVar: any = {};\n dialogRef: any;\n private isVisible = new BehaviorSubject(false);\n private gameData = new BehaviorSubject(this.gameDataVar);\n overlayVisibilityStatus: Observable = this.isVisible.asObservable();\n\n setOverlayVisibility(isVisible: boolean) {\n this.isVisible.next(isVisible);\n }\n // NFR - Services optimization - Remove\n openDialog(gameData: any): void {\n gameData.fromEmbedPopUp = true;\n this.dialogRef = this.dialog.open(EmbeddedGamePopupComponent, {\n width: this.deviceService.windowWidth() + 'px',\n data: gameData,\n });\n }\n\n closeDialog() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n gameDataInfo(data: any) {\n this.gameData.next(data);\n }\n // NFR - Services optimization - Remove\n getCategoryGamesFromLocalStorage(categoryType: string) {\n const dataFromSessionStorage = this.getDataFromSessionStorage(this.getCacheKey());\n if (dataFromSessionStorage) {\n const categoryLookUp = JSON.parse(dataFromSessionStorage);\n if (categoryLookUp[categoryType] && categoryLookUp[categoryType].games && categoryLookUp[categoryType].games.length > 0) {\n return this.findGamesInLocalStorage(categoryLookUp[categoryType].games);\n }\n }\n return null;\n }\n\n getGameDataByGameId(gameId: any) {\n const dataFromLocalStorage = this.getDataFromLocalStorage(gameId + '_GameMetaData');\n if (dataFromLocalStorage) {\n return JSON.parse(dataFromLocalStorage);\n }\n return null;\n }\n\n findGamesInLocalStorage(gameIds: any[]) {\n const gameDataSet: any = {\n gamesInLocalStorage: null,\n gamesNotAvailableInLocalStorage: null,\n };\n const localStorageGames: any[] = [];\n const localStorageGamesNotAvailable: string[] = [];\n gameIds.forEach((gameId: string) => {\n const dataFromLocalStorage = this.getDataFromLocalStorage(gameId + '_GameMetaData');\n if (dataFromLocalStorage) {\n localStorageGames.push(dataFromLocalStorage);\n } else {\n localStorageGamesNotAvailable.push(gameId);\n }\n });\n gameDataSet.gamesInLocalStorage = localStorageGames;\n gameDataSet.gamesNotAvailableInLocalStorage = localStorageGamesNotAvailable;\n return gameDataSet;\n }\n // NFR - Services optimization - Remove\n getCacheKey() {\n if (this.user.isAuthenticated) {\n return 'allCategoryLookupData_' + this.page.lang + '_' + this.user.username;\n } else {\n return 'allCategoryLookupData_' + this.page.lang;\n }\n }\n // NFR - Services optimization - Remove\n getDataFromSessionStorage(key: string) {\n try {\n return sessionStorage.getItem(key);\n } catch (error) {\n //console.log('error occurred while getting categories from session storage' + error);\n return null;\n }\n }\n\n getDataFromLocalStorage(key: string) {\n try {\n return localStorage.getItem(key);\n } catch (error) {\n return null;\n }\n }\n}\n","import { IContentImage } from '@casinocore/type-utils';\n\nimport { IContentLink, IContentVideo, IOption } from './common.model';\n\nexport interface GamingStoriesPhase2Configuration {\n enabled: boolean;\n storyItemInterval: number;\n gamingStoriesNpmPath: Array;\n expirationTime: number;\n localStorageExpirationDuration: number;\n}\n\nexport interface IGamingStoriesNpmModel {\n product: string;\n productPath: string;\n}\n\nexport interface IGamingStoryContainer {\n sharedList: any;\n versionedList: any;\n storyList: Array;\n storyIconType: string;\n titlePosition: string;\n condition: string;\n tiltImageUrl: IContentImage;\n tiltMessage: string;\n}\n\nexport interface IGamingStory {\n // backgroundImage: IContentImage;\n storyImage: IContentImage;\n storyItems: Array;\n title: string;\n storyViewed: boolean;\n storyName: string;\n condition: string;\n storyId: string;\n}\n\nexport interface IGamingStoryItem {\n storyImage: IContentImage;\n backgroundImage: IContentImage;\n configurations: any;\n customCTA: IContentLink;\n actorImage: IContentImage;\n description: string;\n emojies: Array;\n enableSwipeup: boolean;\n //gameId: string;\n yesNoPollOption: Array;\n actionTypePosition: string;\n titlePosition: string;\n subTitlePosition: string;\n descriptionPosition: string;\n showTnC: boolean;\n showVideo: boolean;\n showAudio: boolean;\n audio: string;\n storyItemActionType: string;\n storyItemInterval: number;\n storyType: string;\n subTitle: string;\n swipeupStoryItemContent: any;\n title: string;\n tnCContent: string;\n videoURL: string;\n cmsVideoURL: IContentVideo;\n audioFile: string;\n storyItemsPath: any;\n activeStoryItemIndex: number;\n activeStoriesIndex: number;\n storyItemViewed: boolean;\n question: string;\n answers: Array;\n showOptIn: boolean;\n optInCTAText: string;\n optedInCTAText: string;\n targetPromoId: string;\n targetPromoStatus: string;\n isValid: string;\n userId: string;\n emojieName: string;\n storyItemId: string;\n condition: string;\n storyId: string;\n optedInUrl: IContentLink;\n expiryTime: any;\n}\nexport interface IMyDate {\n year: number;\n month: number;\n day: number;\n}\n\nexport interface IEmojis {\n emojiName: string;\n emojiPath: string;\n}\nexport class GamingStoriesStorageCloseModel {\n storyList: Array;\n activeStoriesIndex: number;\n activeStoryItemIndex: number;\n}\nexport class PostUserRequestAPIModel {\n userId: string;\n brandId: string;\n storyInfo: Array;\n}\nexport class StoryInfoModel {\n storyId: string;\n subStoryId: string;\n storyType: string;\n templateType: string;\n userInput: string;\n expTime: number;\n}\nexport class FetchUserRequestAPIModel {\n userId: string;\n brandId: string;\n reqStoryIds: Array;\n}\nexport class ReqStoryIdsModel {\n storyId: string;\n subStoryId: string;\n}\nexport class FetchUserResponseAPIModel {\n statusCode: string;\n status: string;\n errorMessage: string;\n uId: string;\n brId: string;\n response: Array;\n}\nexport class ResponseDataModel {\n sId: string;\n subSId: string;\n tType: string;\n uInput: string;\n uAvg: Map;\n\n constructor() {\n this.uAvg = new Map();\n }\n}\nexport class StoryInfoData {\n storyId: string;\n subStoryId: string;\n storyType: string;\n templateType: string;\n userInput: string;\n expTime: number;\n storyIndex: number;\n}\nexport class StoryInfoDataInSessionStorage {\n response: ResponseDataModel;\n expiryTime: number;\n userId: string;\n storyIndex: number;\n}\nexport class OptInStoriesTrack {\n activeStoriesIndex: number;\n activeStoryItemIndex: number;\n}\nexport class StoriesLocalStorageModel {\n userId: string;\n storyId: string;\n viewedTimeStamp: number;\n}\n","import { Injectable } from '@angular/core';\n\nimport { Message, MessageLifetime, MessageQueueService, MessageType, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport {\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesStorageCloseModel,\n IGamingStoryContainer,\n IGamingStoryItem,\n PostUserRequestAPIModel,\n ResponseDataModel,\n StoriesLocalStorageModel,\n StoryInfoData,\n StoryInfoDataInSessionStorage,\n} from './models/gaming-stories.model';\n\ninterface IGetSwipeUpDataResponse {\n swipeUpStoryItemContent: Array;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GamingStoriesService {\n observable: Observable;\n swipeUpObservable: Observable;\n postGamingStoriesAPIObservable: Observable;\n fetchGamingStoriesAPIObservable: Observable;\n storiesFeedObservable: Observable;\n storyContainerCloseList: GamingStoriesStorageCloseModel;\n pausePlayStory: boolean = false;\n muteVideo: string = 'muted';\n storyPaused: boolean = false;\n storyHasVideo: boolean = false;\n spliceDuplicateStore: boolean = false;\n storyInfoPostRequestList: Array = [];\n storyInfoDataInPreLoginSessionStorageList: Array = [];\n storeFetchAPIDataResList: Array = [];\n duplicateRecords: Array = [];\n uInputUndefinedCheck: Array = [];\n private videoPresentBehaviourSubject = new BehaviorSubject(null);\n videoPresentObservable: Observable = this.videoPresentBehaviourSubject.asObservable();\n private videoProgressBehaviourSubject = new Subject();\n videoProgressObservable: Observable = this.videoProgressBehaviourSubject.asObservable();\n private optInPublisher = new BehaviorSubject(false);\n optInObservable: Observable;\n private changePromoStatusBehaviourSubject = new BehaviorSubject(null);\n changePromoStatusObservable: Observable = this.changePromoStatusBehaviourSubject.asObservable();\n pauseStoryBehaviourSubject = new BehaviorSubject(null);\n pauseStoryObservable: Observable = this.pauseStoryBehaviourSubject.asObservable();\n videoMuteBehaviourSubject = new BehaviorSubject('');\n videoMuteObservable: Observable = this.videoMuteBehaviourSubject.asObservable();\n fetchAPIBehaviourSubject = new BehaviorSubject(null);\n fetchAPIObservable: Observable = this.fetchAPIBehaviourSubject.asObservable();\n\n private fetchUserAPIResponse: FetchUserResponseAPIModel;\n private storyData: IGamingStoryContainer;\n private gamingStoriesPhase2Config: GamingStoriesPhase2Configuration;\n private publisher = new BehaviorSubject(false);\n private swipeUpContentData: Array;\n private swipeUpPublisher = new BehaviorSubject(false);\n private postGamingStoriesAPIPublisher = new BehaviorSubject(false);\n private fetchGamingStoriesAPIPublisher = new BehaviorSubject(false);\n private storiesFeedPublisher = new BehaviorSubject(false);\n private gamingStoryItemOptInData: any;\n\n constructor(\n private tracking: TrackingService,\n private api: PlatformApiService,\n private messageQueue: MessageQueueService,\n private configProviderService: ConfigProviderService,\n private user: UserService,\n ) {\n this.gamingStoriesPhase2Config = this.configProviderService.provideGamingStoriesPhase2Config();\n this.observable = this.publisher.asObservable();\n this.swipeUpObservable = this.swipeUpPublisher.asObservable();\n this.postGamingStoriesAPIObservable = this.postGamingStoriesAPIPublisher.asObservable();\n this.fetchGamingStoriesAPIObservable = this.fetchGamingStoriesAPIPublisher.asObservable();\n this.storiesFeedObservable = this.storiesFeedPublisher.asObservable();\n this.optInObservable = this.optInPublisher.asObservable();\n }\n\n get config(): GamingStoriesPhase2Configuration {\n return this.gamingStoriesPhase2Config;\n }\n get getStoryContainerData(): IGamingStoryContainer {\n return this.storyData;\n }\n get gamingStoryItemOptIn(): any {\n return this.gamingStoryItemOptInData;\n }\n get swipeUpContentList(): Array {\n return this.swipeUpContentData;\n }\n get fetchGamingStoriesAPIRes(): FetchUserResponseAPIModel {\n return this.fetchUserAPIResponse;\n }\n get postStoryInfoRequestItemsList(): Array {\n return this.storyInfoPostRequestList;\n }\n get fetchstoryInfoDataInPreLoginSessionStorageList(): Array {\n return this.storyInfoDataInPreLoginSessionStorageList;\n }\n get fetchStoryInfoDataList(): Array {\n return this.storeFetchAPIDataResList;\n }\n get getStoryContainerCloseList(): GamingStoriesStorageCloseModel {\n return this.storyContainerCloseList;\n }\n getGamingStories(storyContainerPath: string, product: string, productPath: string): void {\n this.api\n .post(\n 'GamingStoriesPhase2/GetGamingStories',\n { storyContainerPath: storyContainerPath, product: product, productPath: productPath },\n { responseType: 'json', withCredentials: true, showSpinner: false },\n )\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.storyData = response.gamingStories;\n let data: any = {};\n if (this.user.isAuthenticated) {\n data = { AfterApiCall: true };\n } else {\n data = { AfterApiCall: false };\n }\n this.publisher.next(data);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.messageQueue.add(message);\n },\n });\n }\n getSwipeUpContent(swipeUpContentPath: string): void {\n this.api\n .post(\n 'GamingStoriesPhase2/GetSwipeUpContent',\n { storyContainerPath: swipeUpContentPath },\n { responseType: 'json', withCredentials: true, showSpinner: false },\n )\n .subscribe({\n next: (response: IGetSwipeUpDataResponse) => {\n if (response) {\n this.swipeUpContentData = response.swipeUpStoryItemContent;\n this.swipeUpPublisher.next(true);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.messageQueue.add(message);\n },\n });\n }\n getGamingOptIn(type: string, id: string, optIn: boolean, source: string): void {\n this.api\n .get(\n 'optinpromo/GetOptedPromo',\n { type: type, id: id, optIn: optIn, source: source },\n { responseType: 'json', withCredentials: true, showSpinner: false },\n )\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.gamingStoryItemOptInData = response;\n this.optInPublisher.next(true);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.messageQueue.add(message);\n },\n });\n }\n\n postGamingStoriesAPI(postUserRequestAPIModel: PostUserRequestAPIModel): void {\n this.api\n .post('GamingStoriesPhase2/PostUserResponseAsync', postUserRequestAPIModel, {\n responseType: 'json',\n withCredentials: true,\n showSpinner: false,\n })\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.postGamingStoriesAPIPublisher.next(true);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.messageQueue.add(message);\n },\n });\n }\n fetchGamingStoriesAPI(fetchUserRequestAPIModel: FetchUserRequestAPIModel, expirationTime: number): void {\n this.api\n .post('GamingStoriesPhase2/FetchingUserResponseAsync', fetchUserRequestAPIModel, {\n responseType: 'json',\n withCredentials: true,\n showSpinner: true,\n })\n .subscribe({\n next: (response: FetchUserResponseAPIModel) => {\n if (response.status !== 'Failed') {\n this.fetchUserAPIResponse = response;\n this.fetchGamingStoriesAPIPublisher.next(true);\n this.fetchGamingStoriesAPIRes.response.forEach((fetchDataRes) => {\n const currentEpocTime = new Date().getTime() / 1000;\n const storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage = new StoryInfoDataInSessionStorage();\n storyInfoDataInSessionStorage.response = new ResponseDataModel();\n storyInfoDataInSessionStorage.response.sId = fetchDataRes.sId;\n storyInfoDataInSessionStorage.response.subSId = fetchDataRes.subSId;\n storyInfoDataInSessionStorage.response.uInput = fetchDataRes.uInput;\n storyInfoDataInSessionStorage.response.uAvg = fetchDataRes.uAvg;\n storyInfoDataInSessionStorage.expiryTime = Math.round(currentEpocTime + expirationTime * 60);\n storyInfoDataInSessionStorage.userId = this.fetchGamingStoriesAPIRes.uId;\n this.storeFetchAPIDataRes(storyInfoDataInSessionStorage);\n });\n } else {\n const message: Message = {\n html: 'failed',\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.fetchAPIBehaviourSubject.next(message);\n }\n },\n error: (error: string) => {\n let message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n this.messageQueue.add(message);\n this.fetchAPIBehaviourSubject.next(message);\n },\n });\n }\n trackingGamingStoriesPhase2Event(\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n contentPosition: string,\n uRLClicked: string,\n ): void {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.ContentPosition': contentPosition,\n 'component.URLClicked': uRLClicked,\n });\n }\n pauseStory(pauseStoryTrigger: boolean) {\n this.storyPaused = pauseStoryTrigger;\n this.pauseStoryBehaviourSubject.next(pauseStoryTrigger);\n }\n pauseVideo() {\n let video = document.getElementById('casino-gamingstory-video');\n let stream: HTMLMediaElement = {} as HTMLMediaElement;\n if (!video) stream = document.querySelector('#casino-gamingstory-cmsvideo stream') as HTMLMediaElement;\n if (video) {\n if (!video.paused) {\n video.pause();\n }\n } else if (stream) {\n if (!stream.paused) {\n stream.pause();\n }\n }\n }\n playVideo() {\n let video = document.getElementById('casino-gamingstory-video');\n let stream: HTMLMediaElement = {} as HTMLMediaElement;\n if (!video) stream = document.querySelector('#casino-gamingstory-cmsvideo stream') as HTMLMediaElement;\n if (video) {\n if (video.paused) video.play();\n } else if (stream) {\n if (stream.paused) stream.play();\n }\n }\n storeGamingStoriesCloseContainer(storyContainerCloseList: GamingStoriesStorageCloseModel) {\n this.storyContainerCloseList = storyContainerCloseList;\n }\n storyInfoRequestItemsList(storyInfo: StoryInfoData) {\n this.storyInfoPostRequestList.push(storyInfo);\n }\n storingDataInPreLoginSessionStorage(storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage) {\n this.storyInfoDataInPreLoginSessionStorageList.push(storyInfoDataInSessionStorage);\n sessionStorage.setItem('GS:StoryItemsInPreLoginSessionStorage', JSON.stringify(this.storyInfoDataInPreLoginSessionStorageList));\n }\n storeFetchAPIDataRes(storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage) {\n this.spliceDuplicateStore = false;\n this.storeFetchAPIDataResList.push(storyInfoDataInSessionStorage);\n this.duplicateRecords = this.storeFetchAPIDataResList.filter(\n (x) =>\n x.userId === storyInfoDataInSessionStorage.userId &&\n x.response.sId === storyInfoDataInSessionStorage.response.sId &&\n x.response.subSId === storyInfoDataInSessionStorage.response.subSId,\n );\n this.uInputUndefinedCheck = this.storeFetchAPIDataResList.filter(\n (x) =>\n x.userId === storyInfoDataInSessionStorage.userId &&\n x.response.sId === storyInfoDataInSessionStorage.response.sId &&\n x.response.subSId === storyInfoDataInSessionStorage.response.subSId &&\n x.response.uInput === undefined,\n );\n if (this.duplicateRecords.length > 1 && this.uInputUndefinedCheck.length >= 1) {\n this.duplicateRecords.forEach((storyApi) => {\n if (!this.spliceDuplicateStore && storyApi.response.uInput === undefined) {\n this.storeFetchAPIDataResList.splice(this.storeFetchAPIDataResList.indexOf(storyApi), 1);\n this.spliceDuplicateStore = true;\n }\n });\n } else if (this.duplicateRecords.length > 1) {\n this.duplicateRecords.forEach((storyApi) => {\n if (!this.spliceDuplicateStore) {\n this.storeFetchAPIDataResList.splice(this.storeFetchAPIDataResList.indexOf(storyApi), 1);\n this.spliceDuplicateStore = true;\n }\n });\n }\n sessionStorage.setItem('GS:StoryItemsInPostLoginSessionStorage', JSON.stringify(this.storeFetchAPIDataResList));\n }\n videoPresentStatus(isVideoPresent: boolean) {\n this.videoPresentBehaviourSubject.next(isVideoPresent);\n }\n videoProgressStatus(videoProgress: number) {\n this.videoProgressBehaviourSubject.next(videoProgress);\n }\n changePromoStatus(storyStatusObject: any) {\n this.changePromoStatusBehaviourSubject.next(storyStatusObject);\n }\n writeGamingStoriesPhase2Array(gamingStoriesLocalStorageArray: Array) {\n if (this.user.isAuthenticated) {\n localStorage.setItem('gamingStoriesPhase2ViewedState_' + this.user.username, JSON.stringify(gamingStoriesLocalStorageArray));\n } else {\n localStorage.setItem('gamingStoriesPhase2ViewedState', JSON.stringify(gamingStoriesLocalStorageArray));\n }\n }\n readGamingStoriesPhase2Array() {\n let gamingStoriesArrayFromLocalStorage: any;\n if (this.user.isAuthenticated) {\n gamingStoriesArrayFromLocalStorage = JSON.parse(localStorage.getItem('gamingStoriesPhase2ViewedState_' + this.user.username)!);\n } else {\n gamingStoriesArrayFromLocalStorage = JSON.parse(localStorage.getItem('gamingStoriesPhase2ViewedState')!);\n }\n return gamingStoriesArrayFromLocalStorage;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalJackpotModService {\n globalJackpotPoolInfoMap: Map = new Map();\n siteCoreData: Map = new Map();\n lobbyData: Map = new Map();\n jackpotConfigData: Map = new Map();\n jackpotTeaserData: Map = new Map();\n jackpotSharedContentData: Map = new Map();\n historyFeedData: Map = new Map();\n private defaultTandCData: Map = new Map();\n private defaultTandCDataSubject = new BehaviorSubject(null);\n defaultTandCDataSubjectObservable: Observable = this.defaultTandCDataSubject.asObservable();\n\n constructor(private casinoLobbyService: CasinoLobbyService) {}\n\n onAppInit() {}\n\n setGlobalJackpotPoolInfoMap(lobbyType: string, pathSegment: string, jackpotPoolInfo: any) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.globalJackpotPoolInfoMap.set(key, jackpotPoolInfo);\n }\n\n getGlobalJackpotPoolInfoMap(key: string) {\n return this.globalJackpotPoolInfoMap.get(key);\n }\n\n setSitecoreTemplateMap(lobbyType: string, pathSegment: string, siteCoreData: any) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.siteCoreData.set(key, siteCoreData);\n }\n\n getSitecoreTemplateMap(key: string) {\n return this.siteCoreData.get(key);\n }\n\n setGlobalJackpotConfigData(lobbyType: string, pathSegment: string, jackpotConfigData: any) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.jackpotConfigData.set(key, jackpotConfigData);\n }\n\n getGlobalJackpotConfigData(key: string) {\n return this.jackpotConfigData.get(key);\n }\n setJackpotTeaserContentMap(lobbyType: string, pathSegment: string, siteCoreData: any) {\n let key = lobbyType + '#' + pathSegment + '#';\n this.jackpotTeaserData.set(key, siteCoreData);\n }\n getJackpotTeaserContentMap(key: string) {\n return this.jackpotTeaserData.get(key);\n }\n setGlobalJackpotSharedContentData(lobbyType: string, pathSegment: string, jackpotSharedContentData: any) {\n let key = lobbyType + '#' + pathSegment + '#';\n this.jackpotSharedContentData?.set(key, jackpotSharedContentData);\n }\n getGlobalJackpotSharedContentData(key: string) {\n return this.jackpotSharedContentData?.get(key);\n }\n setGlobalJackpotLobbyTypeMap(lobbyType: string, pathSegment: string, lobbyData: any) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.lobbyData.set(key, lobbyData);\n this.casinoLobbyService.setGlobalJackpotLobbyTypeMap(key, lobbyData);\n }\n\n async getGlobalJackpotLobbyDataFromLocalStorage(key: string): Promise {\n const lobbyData: any = await this.casinoLobbyService.getGlobalJackpotLobbyDataFromLocalStorage(key);\n return lobbyData;\n }\n\n setHistoryFeedData(HistoryFeedData: any, lobbyType: string, pathSegment: string) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.historyFeedData.set(key, HistoryFeedData);\n }\n getHistoryFeedData(key: string) {\n return this.historyFeedData.get(key);\n }\n\n setDisabledGames(DisabledGames: any) {\n this.casinoLobbyService.setDisabledGames(DisabledGames);\n }\n\n setDefaultTandCData(lobbyType: string, pathSegment: string, defaultTandCData: any) {\n const key = lobbyType + '#' + pathSegment + '#';\n this.defaultTandCData.set(key, defaultTandCData);\n this.defaultTandCDataSubject.next(defaultTandCData);\n }\n\n getDefaultTandCData(key: string) {\n return this.defaultTandCData.get(key);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TimerService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { CasinoApiService } from './casino-api.service';\nimport { TimeZoneService } from './time-zone.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LiveCasinoService {\n private liveGamesLookUp: Map = new Map();\n private liveGamesSubject = new BehaviorSubject(null);\n liveGamesFeedObservable: Observable = this.liveGamesSubject.asObservable();\n private liveGameswithSitecoreSubject = new BehaviorSubject(null);\n liveGameswithSitecoreObservable: Observable = this.liveGameswithSitecoreSubject.asObservable();\n\n liveCasinoApiSitecoreInfo: any;\n liveCasinoApiFeedStarted: boolean = false;\n liveCasinoApiFeedIntervalRefresh: any;\n isSitecoreInfoPublished: boolean;\n listenersCnt = 0;\n\n constructor(\n private api: CasinoApiService,\n private timeZoneService: TimeZoneService,\n private configProvider: ConfigProviderService,\n private timerService: TimerService,\n private urlUtilityService: UrlUtilityService,\n ) {}\n\n onAppInit() {\n this.liveGameswithSitecoreObservable.subscribe((liveCasinoData) => {\n if (liveCasinoData) {\n this.startLiveCasinoApiTntervalFeed();\n }\n });\n }\n\n startLiveCasinoApiTntervalFeed() {\n this.listenersCnt++;\n const liveCasinoConfig = this.configProvider.provideLiveCasinoConfig();\n this.liveCasinoApiFeedIntervalRefresh = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.getLiveCasinoData(false);\n }, liveCasinoConfig.liveCasinoApiFeedInterval);\n }\n\n getLiveCasinoData(isSitecoreInfoRequired: boolean): void {\n const options: any = { headers: {} };\n options.headers['Cache-Control'] = 'no-cache';\n options.headers['Pragma'] = 'no-cache';\n options.headers['Expires'] = '0';\n const apiPathsConfig = this.configProvider.provideApiPathsConfig();\n this.api\n .getCasinoProductApi(apiPathsConfig.liveCasino['liveCasinoData'], { isSitecoreInfoRequired: isSitecoreInfoRequired }, options)\n .subscribe(\n (response: any) => {\n this.getLiveCasinoDataSuccess(response, isSitecoreInfoRequired);\n },\n () => {},\n );\n }\n\n getLiveCasinoDataSuccess(response: any, isSitecoreInfoRequired: boolean) {\n if (response && response.liveCasinoApiDataItems && response.liveCasinoApiDataItems.length > 0) {\n response.liveCasinoApiDataItems.forEach((item: any) => {\n if (item && item.gamevariantname) {\n if (!(item.gameType && item?.gameType?.toLowerCase() === 'blackjack') && !item.seatsTaken) {\n item.seatsTaken = [];\n }\n this.liveGamesLookUp.set(item?.gamevariantname?.toLowerCase(), item);\n }\n });\n if (response.liveCasinoApiItemSitecoreData) {\n this.liveCasinoApiSitecoreInfo = response.liveCasinoApiItemSitecoreData;\n }\n\n this.liveGamesSubject.next(this.liveGamesLookUp);\n if (isSitecoreInfoRequired) {\n this.liveGameswithSitecoreSubject.next(this.liveGamesLookUp);\n this.isSitecoreInfoPublished = true;\n }\n }\n }\n getSitecoreInfoPublishedStatus(): boolean {\n return this.isSitecoreInfoPublished;\n }\n // NFR - Services optimization - Remove\n getLiveGamesLookUp() {\n return this.liveGamesLookUp;\n }\n\n getLiveGameLookUpInfo(gameId: string) {\n if (this.liveGamesLookUp.size > 0) {\n const liveGameInfo: any = this.liveGamesLookUp.get(gameId);\n if (liveGameInfo) {\n liveGameInfo.vendorName = liveGameInfo.vendorname;\n return liveGameInfo;\n }\n }\n }\n\n getLiveCasinoApiSitecoreInfo() {\n return this.liveCasinoApiSitecoreInfo;\n }\n\n getFlagIconURL(liveGameInfo: any): string {\n const gameConfig = this.configProvider.provideGameConfig();\n const liveCasinoConfig = this.configProvider.provideLiveCasinoConfig();\n if (liveGameInfo && liveGameInfo.language && liveGameInfo?.language?.toLowerCase() != 'en') {\n return gameConfig.host + liveCasinoConfig.flagUrlPattern.replace('{language}', liveGameInfo.language);\n } else {\n return '';\n }\n }\n\n isTableOnline(gameId: string): boolean {\n const liveGameInfo: any = this.getLiveGameLookUpInfo(gameId);\n if (liveGameInfo && liveGameInfo?.gameType) {\n if (!liveGameInfo.tableStatus) {\n return false;\n } else {\n if (!liveGameInfo.countdown) {\n return true;\n }\n if (liveGameInfo?.countdown?.type?.toLowerCase() === 'full time') {\n return true;\n } else if (liveGameInfo?.countdown?.type?.toLowerCase() === 'bounded') {\n const timerStartInstance: string = this.timeZoneService.getTimerStartInstance(liveGameInfo.countdown.time + ':00', 'UTC') || '';\n const seconds: number = this.timeZoneService.getSecondsFromTimeString(timerStartInstance);\n if (seconds > 0) {\n return false;\n } else {\n return true;\n }\n }\n }\n } else {\n //it is not a live Game. Hope it does not come here!\n return true;\n }\n return false;\n }\n // NFR - Services optimization - Remove\n setLiveCasinoStartVariable(value: boolean) {\n this.liveCasinoApiFeedStarted = value;\n }\n getLiveCasinoStartVariable(): boolean {\n return this.liveCasinoApiFeedStarted;\n }\n // NFR - Services optimization - Remove\n clearLiveCasinoDataPoints() {\n this.liveGamesLookUp = new Map();\n this.liveGamesSubject.next(this.liveGamesLookUp);\n }\n secondsToStartTable(timeString: string): number {\n const timerStartInstance: string = this.timeZoneService.getTimerStartInstance(timeString + ':00', 'UTC') || '';\n const seconds: number = this.timeZoneService.getSecondsFromTimeString(timerStartInstance);\n return seconds;\n }\n\n stopFeed() {\n this.listenersCnt--;\n if (this.listenersCnt === 0 && this.liveCasinoApiFeedIntervalRefresh) {\n this.timerService.clearInterval(this.liveCasinoApiFeedIntervalRefresh);\n this.liveCasinoApiFeedIntervalRefresh = undefined;\n if (this.liveGamesSubject) {\n this.liveGamesSubject.unsubscribe();\n }\n if (this.liveGameswithSitecoreSubject) {\n this.liveGameswithSitecoreSubject.unsubscribe();\n }\n if (this.liveCasinoApiSitecoreInfo) {\n this.liveCasinoApiSitecoreInfo = undefined;\n }\n if (this.isSitecoreInfoPublished) {\n this.isSitecoreInfoPublished = false;\n }\n }\n }\n}\n","import { IContentImage } from '@casinocore/type-utils';\n\nexport interface IGameSelectorWidgetQuestionOption {\n title: string;\n image?: IContentImage;\n condition?: string;\n selected: boolean;\n}\n\nexport interface IGameSelectorWidgetQuestion {\n basedOn: string;\n question: string;\n condition?: string;\n options: Array;\n optionsDisplayType: string;\n filterCriteria: string;\n tooltipSubtitle: string;\n tooltipTitle: string;\n ctA1Text: string;\n ctA2Text: string;\n}\n\nexport interface IGameSelectorWidget {\n path: string;\n questions: Array;\n resultsTitle: string;\n subTitle: string;\n title: string;\n widgetBackgroundImage: IContentImage;\n overlayBackgroundImage: IContentImage;\n overlayBackgroundColor: string;\n ctaText: string;\n resultCTA1Text: string;\n resultCTA2Text: string;\n condition?: string;\n versionedList: any;\n gamesDisplayType: string;\n}\n\nexport interface IGameMetaData {\n displayName: string;\n rtp: number;\n ownerId: number;\n vendorId: string;\n featureTags: string;\n symbolTags: string;\n themeTags: string;\n sitecoreId: string;\n gameType: string;\n gameGroup: string;\n gameVariant: string;\n sticker: string;\n}\n\nexport interface IGameSelectorConfiguration {\n isEnabled: boolean;\n gameSelectorFeedUrl: string;\n providers: string[];\n}\n\nexport class RecommendedGamesFilterModel {\n basedOn: string;\n filterCriteria: string;\n answers: Array;\n\n constructor() {\n this.answers = [];\n }\n}\n\nexport class RecommendedGameModel {\n gameId: string;\n vendorId: string;\n displayName: string;\n gameType: string;\n gameGroup: string;\n image: string;\n jackpotValue?: number;\n gameVariant: string;\n sticker: string;\n}\n\nexport interface IGameSelectorWidgetGlobalConfig {\n gameTitleColor: string;\n jackpotValueColor: string;\n preferenceBoxTextColor: string;\n progressBarColor: string;\n questionTextColor: string;\n resultTitleColor: string;\n selectedOptionTextColor: string;\n selectedOptionBorderColor: string;\n selectedOptionBackgroundColor: string;\n widgetTitleColor: string;\n widgetSubTitleColor: string;\n gameResultsColor: string;\n preferenceBoxStaticText: string;\n closebtnText: string;\n jackpotValue: string;\n noGamesFoundText: string;\n}\n\nexport interface IRecommendedGamesResponse {\n games: Array;\n selectedOptions: Array;\n questionsState: Array;\n}\n\nexport enum WizardType {\n Questions,\n Games,\n NoGamesFound,\n}\n\nexport interface IMatDialogOverlayData {\n isDesktop: boolean;\n widget: IGameSelectorWidget;\n globalConfig: IGameSelectorWidgetGlobalConfig;\n category: any;\n widgetLocation: string;\n}\n","import { Injectable } from '@angular/core';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewQuickInfoService {\n constructor(\n private api: PlatformApiService,\n private casinoLobbyService: CasinoLobbyService,\n private configProviderService: ConfigProviderService,\n ) {}\n\n getGameDescription(gameId: string | null, providerId: string | null) {\n if (gameId) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.gameData['gameDataDescription'], { gameId: gameId, providerId: providerId });\n }\n return null;\n }\n\n getCategoryInfo(lobbyType: string) {\n const gymlCategory = this.casinoLobbyService.getCategoryInfo(lobbyType, 'LMC_GYML');\n return gymlCategory;\n }\n\n getGameCatalogDetails(gameId: string | null, vendorId: string | null) {\n if (gameId) {\n return this.api.post('QuickInfo/GetGameCatalogDetails', { gameId: gameId, vendorId: vendorId });\n }\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { PlatformApiService } from '../platform-api/platform-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsFeedV2Service {\n newsFeedData: any;\n isEnabled: boolean;\n isEnabledOnHome: boolean;\n isEnabledOnNonHome: boolean;\n private newsFeedV2Subject = new BehaviorSubject(null);\n newsFeedV2Observable: Observable = this.newsFeedV2Subject.asObservable();\n newsFeedMap: Map = new Map();\n newsFeedV2WidgetSubject = new BehaviorSubject(null);\n newsFeedV2WidgetObservable: Observable = this.newsFeedV2WidgetSubject.asObservable();\n constructor(private api: PlatformApiService) {}\n setNewsFeedMap(path: string) {\n this.api.get('newsfeed/getNewsFeedContent', { path: path }, { withCredentials: true }).subscribe(\n (response: any) => {\n if (response) {\n this.newsFeedMap.set(path, response);\n this.newsFeedV2Subject.next(this.newsFeedMap);\n }\n },\n () => {},\n );\n }\n getNewsFeedMap(path: string) {\n const newsFeedMapItem = this.newsFeedMap.get(path);\n if (newsFeedMapItem) {\n if (newsFeedMapItem.isSiteCoreDataFetched) return newsFeedMapItem;\n else return null;\n } else {\n this.setNewsFeedMap(path);\n return null;\n }\n }\n // NewsFeedWidget for other products\n setNewsFeedContent(path: string) {\n this.api.get('newsfeed/getNewsFeedContent', { path: path }, { withCredentials: true }).subscribe(\n (response: any) => {\n if (response) {\n this.newsFeedV2WidgetSubject.next(response);\n }\n },\n () => {},\n );\n }\n\n setNewsFeedResponseArray(newsFeedResponse: any) {\n const tempArr: any = [];\n newsFeedResponse.forEach((element: any) => {\n const ele = element.fields;\n tempArr.push({\n header: ele['header'] != null ? ele['header'] : '',\n subHeader: ele['sub Header'] != null ? ele['sub Header'] : '',\n type: element['templateName'],\n iconClass: ele['icon Class'],\n gameID: ele['game ID'] != null ? ele['game ID'] : '',\n jackpotGroupName: ele['jackpot Group Name'] != null ? ele['jackpot Group Name'] : '',\n link: ele.link != null ? ele.link.url : '#',\n value: ele['value'] != null ? ele['value'] : '',\n condition: ele['condition'] != null ? ele['condition'] : '',\n subTitle: ele['subTitle'] != null ? ele['subTitle'] : '',\n displayLiveStatus: ele['displayLiveStatus'] != null ? ele['displayLiveStatus'] : '',\n displayDealerImage: ele['displayDealerImage'] != null ? ele['displayDealerImage'] : '',\n });\n });\n newsFeedResponse = tempArr;\n return newsFeedResponse;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DslService, TrackingService } from '@frontend/vanilla/core';\nimport { ReplaySubject, filter, first, map, merge, mergeMap, of, shareReplay } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CasinoApiService } from './casino-api.service';\nimport { CasinoManager } from './casino-manager.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsFeedService {\n newsFeedData: any;\n isEnabled: boolean;\n\n private _newsFeed = new ReplaySubject(1);\n readonly newsFeed$ = this._newsFeed.asObservable().pipe(\n shareReplay(),\n map(this.newsFeedMapper),\n mergeMap((data) => this.validateDisplayCondition(data)),\n );\n\n constructor(\n private api: CasinoApiService,\n private tracking: TrackingService,\n private configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private dslService: DslService,\n ) {}\n\n setNewsFeed() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n this.api.get(apiPathsConfig.disjointFeeds['nsFeedSitecoreData']).subscribe(\n (response: any) => {\n if (response) {\n this.setNewsFeedResponse(response);\n }\n },\n () => {},\n );\n }\n setNewsFeedResponse(data: any): void {\n this.newsFeedData = data;\n this._newsFeed.next(data);\n }\n\n trackEvent(labelEvent: string, actionEvent: string, positionEvent: any, eventDetails: string, displayGameNameEvent?: any) {\n const newsFeedConfig = this.configProviderService.provideNewsFeedCasinoConfig();\n if (labelEvent != 'Game_Launch') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': this.casinoManager.IsFeatureEnabledforLobbytype('lobbyType', newsFeedConfig.newsFeedPosition),\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': 'not applicable',\n });\n } else {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': this.casinoManager.IsFeatureEnabledforLobbytype('lobbyType', newsFeedConfig.newsFeedPosition),\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': 'not applicable',\n 'component.DisplayGameName': displayGameNameEvent,\n });\n }\n }\n\n private newsFeedMapper(newsFeed: any) {\n const newsFeedData = newsFeed.newsFeedData?.map((element: any) => ({\n header: element['header'] ? element['header'] : '',\n subHeader: element['sub Header'] ? element['sub Header'] : '',\n type: element['type'],\n iconClass: element['icon Class'],\n gameID: element['game ID'] ? element['game ID'] : '',\n jackpotGroupName: element['jackpot Group Name'] ? element['jackpot Group Name'] : '',\n link: element.link ? element.link.url : '#',\n value: element['value'] ? element['value'] : '',\n condition: element['condition'] ? element['condition'] : '',\n }));\n return { ...newsFeed, newsFeedData };\n }\n\n private validateDisplayCondition(newsFeed: any) {\n return merge(\n ...newsFeed.newsFeedData.map((data: { condition: string }) => {\n return data.condition === '' ? of(true) : this.dslService.evaluateExpression(data.condition);\n }),\n ).pipe(\n filter(Boolean),\n first(),\n map(() => newsFeed),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { TeaserService } from './teaser.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OptimizedTeaserManager {\n optimizedHeaderTeasers: any[] = [];\n optimizedTeaserResult: any;\n lMTCategories: any[] = [];\n globalTeaserSettings: any;\n optimizedTeasersData: any;\n maxRenderedTeasers: number;\n globalTeaserStyles: any;\n\n constructor(\n private configProviderService: ConfigProviderService,\n private teaserService: TeaserService,\n ) {}\n\n setOptimizedTeasers(category: any, displayMode: string) {\n this.maxRenderedTeasers = this.configProviderService.provideOptimizedTeaserConfig().maxRenderedTeasers;\n const maxTeasersToBeRendered: number = this.maxRenderedTeasers > 0 ? this.maxRenderedTeasers : 999;\n this.optimizedHeaderTeasers = [];\n const teaserResponse: any = this.teaserService.headerTeasers();\n if (teaserResponse) {\n const optimizedHeaderTeasers: any = teaserResponse.optimizedTeaserContents;\n this.globalTeaserSettings = teaserResponse.globalTeaserSettings;\n this.globalTeaserStyles = teaserResponse.globalTeaserStyles;\n if (\n category &&\n category.sitecoreData.showTeasers &&\n category.sitecoreData.optimizedTeasers &&\n category.sitecoreData.optimizedTeasers.length > 0 &&\n optimizedHeaderTeasers &&\n optimizedHeaderTeasers.length > 0\n ) {\n for (let i = 0; i < category.sitecoreData.optimizedTeasers.length; i++) {\n const optimizedHeader: any = category.sitecoreData.optimizedTeasers[i];\n const filteredTeaser: any = optimizedHeaderTeasers.filter((ot: any) => ot.data.metadata.id.parent.path === optimizedHeader.path);\n if (filteredTeaser && filteredTeaser.length > 0) {\n filteredTeaser.forEach((teaserItem: any) => {\n if (teaserItem.displayMode == displayMode && this.optimizedHeaderTeasers.length < maxTeasersToBeRendered) {\n this.optimizedHeaderTeasers.push(teaserItem);\n }\n });\n }\n }\n }\n }\n return this.optimizedHeaderTeasers;\n }\n\n setOptimizedTeasersBasedOnCatery(category: any) {\n this.maxRenderedTeasers = this.configProviderService.provideOptimizedTeaserConfig().maxRenderedTeasers;\n const optimizedSubNavigationTeasers: any[] = [];\n const optimizedEmbeddedBelowTeasers: any[] = [];\n const optimizedEmbeddedAboveTeasers: any[] = [];\n const optimizedTopTeasers: any[] = [];\n const teaserHeaders = this.teaserService.headerTeasers();\n if (teaserHeaders) {\n const optimizedHeaderTeasers: any = teaserHeaders.optimizedTeaserContents;\n this.globalTeaserSettings = teaserHeaders.globalTeaserSettings;\n if (\n category &&\n category.sitecoreData.showTeasers &&\n category.sitecoreData.optimizedTeasers &&\n category.sitecoreData.optimizedTeasers.length > 0 &&\n optimizedHeaderTeasers &&\n optimizedHeaderTeasers.length > 0\n ) {\n category.sitecoreData.optimizedTeasers.forEach((optimizedHeader: any) => {\n const filteredTeaser: any = optimizedHeaderTeasers.filter((ot: any) => ot.data.metadata.id.parent.path === optimizedHeader.path);\n if (filteredTeaser && filteredTeaser.length > 0) {\n filteredTeaser.forEach((teaserItem: any) => {\n const displayMode = teaserItem.displayMode;\n switch (displayMode) {\n case 'SubNavigation': {\n optimizedSubNavigationTeasers.push(teaserItem);\n break;\n }\n case 'EmbeddedBelowGames': {\n optimizedEmbeddedBelowTeasers.push(teaserItem);\n break;\n }\n case 'EmbeddedAboveGames': {\n optimizedEmbeddedAboveTeasers.push(teaserItem);\n break;\n }\n case 'Top': {\n optimizedTopTeasers.push(teaserItem);\n break;\n }\n default: {\n break;\n }\n }\n });\n }\n });\n }\n let optimizedTeasersData: any;\n optimizedTeasersData = {\n optimizedSubNavigationTeasers:\n this.maxRenderedTeasers > 0 ? optimizedSubNavigationTeasers.splice(0, this.maxRenderedTeasers) : optimizedSubNavigationTeasers,\n optimizedEmbeddedBelowTeasers:\n this.maxRenderedTeasers > 0 ? optimizedEmbeddedBelowTeasers.splice(0, this.maxRenderedTeasers) : optimizedEmbeddedBelowTeasers,\n optimizedEmbeddedAboveTeasers:\n this.maxRenderedTeasers > 0 ? optimizedEmbeddedAboveTeasers.splice(0, this.maxRenderedTeasers) : optimizedEmbeddedAboveTeasers,\n optimizedTopTeasers: this.maxRenderedTeasers > 0 ? optimizedTopTeasers.splice(0, this.maxRenderedTeasers) : optimizedTopTeasers,\n };\n return optimizedTeasersData;\n }\n }\n\n getGlobalTeaserSettings() {\n return this.globalTeaserSettings;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CozyBingoDataService } from './cozybingodata.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OtherProductService {\n constructor(\n private cozyBingoDataService: CozyBingoDataService,\n private configProviderService: ConfigProviderService,\n ) {}\n updateFavGamesForOtherProducts() {\n const cozybingoConfig = this.configProviderService.provideCozyBingoConfig();\n if (cozybingoConfig && cozybingoConfig.cozyBingoFavouritesInRpwidget) {\n this.cozyBingoDataService.getBingoData(false, false);\n }\n }\n updateRecentlyplayedGamesOnOtherProducts() {\n const cozybingoConfig = this.configProviderService.provideCozyBingoConfig();\n if (cozybingoConfig && cozybingoConfig.cozyBingoRecentGamesInRpwidget) {\n this.cozyBingoDataService.getBingoData(false, true);\n }\n }\n}\n","import { getCurrencySymbol } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'currencySymbol',\n standalone: true,\n})\nexport class CurrencySymbolPipe implements PipeTransform {\n transform(code: string, format: 'wide' | 'narrow' = 'narrow', locale?: string): string {\n return getCurrencySymbol(code, format, locale);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'currencyFormat',\n standalone: true,\n})\nexport class CurrencyFormatPipe implements PipeTransform {\n transform(value: any): number {\n let decimal: any;\n // Convert it into a string\n const string = value.toString();\n\n // Split the dot\n const array = string.split('.');\n // Get both numbers\n // The '+' sign transforms the string into a number again\n const amount = array[0];\n if (array[1]) {\n decimal = array[1]?.length == 2 ? array[1] : array[1].length == 1 ? '0' + array[1] : '00';\n }\n\n const final: any = Number(amount).toLocaleString() + '.' + (decimal ? decimal : '00');\n\n return final;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\n\n@Pipe({\n name: 'sitecore_image_resize',\n standalone: true,\n})\nexport class SitecoreImageResizePipe implements PipeTransform {\n constructor(private configProvider: ConfigProviderService) {}\n\n transform(value: string): string {\n const imageLoadOptimizationConfig = this.configProvider.provideImageLoadOptimizationClientConfig();\n if (\n imageLoadOptimizationConfig &&\n imageLoadOptimizationConfig.isDynamicResizingEnabled &&\n imageLoadOptimizationConfig.dynamicResizingQueryString &&\n imageLoadOptimizationConfig.dynamicResizingQueryString.length > 0 &&\n !this.isImageRezied(value)\n ) {\n const qs = (value.indexOf('?') !== -1 ? '&' : '?') + imageLoadOptimizationConfig.dynamicResizingQueryString;\n value = value + qs;\n }\n return value;\n }\n\n private isImageRezied(src: string): boolean {\n return src.indexOf('resized=true') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, TimerService, TrackingService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, forkJoin } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlayerStatsService {\n private playerstats = new BehaviorSubject(null);\n playerstatsObservable: Observable = this.playerstats.asObservable();\n sortInterval: any;\n feedTypeArray: any;\n isFeedRequestRecieved: boolean;\n constructor(\n private api: PlatformApiService,\n private timerService: TimerService,\n private configProviderService: ConfigProviderService,\n private tracking: TrackingService,\n private appInfoConfig: AppInfoConfig,\n private urlUtilityService: UrlUtilityService,\n ) {}\n fetchPlayerStatsFeed(feedTypeArray: any): void {\n this.feedTypeArray = feedTypeArray;\n if (feedTypeArray) {\n this.isFeedRequestRecieved = true;\n const request: Observable[] = [];\n for (const feedtype of feedTypeArray) {\n request.push(\n this.api.post(\n 'playerstats/getPlayerStats',\n { feedType: feedtype },\n { responseType: 'json', withCredentials: true, showSpinner: false },\n ),\n );\n }\n forkJoin(request).subscribe({\n next: (responses) => {\n if (responses) {\n this.playerstats.next(responses);\n }\n },\n error: () => {\n //console.log(error);\n },\n });\n }\n }\n playerStatsFeedInterval() {\n const playerstatsconfig = this.configProviderService.providePlayerStatsWidgetConfig();\n if (this.sortInterval) {\n clearInterval(this.sortInterval);\n }\n this.sortInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.fetchPlayerStatsFeed(this.feedTypeArray);\n }, playerstatsconfig.playerStatsInterval);\n }\n addTrackingEvent(\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n uRLClicked: string,\n ) {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': this.appInfoConfig.product,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': uRLClicked,\n });\n }\n addMultiplierImpressionTracking(gameImpressions: any) {\n this.tracking.triggerEvent('gameMultiplier', {\n game_multiplier_impressions: gameImpressions,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { CacheManagerService } from './cache-manager.service';\nimport { CasinoApiService } from './casino-api.service';\nimport { CasinoManager } from './casino-manager.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PromotedGamesService {\n promotedGames: any = [];\n promotedGamesFromAllLobby: any = [];\n private promotedGamesSubject = new BehaviorSubject(null);\n promotedFeedObservable: Observable = this.promotedGamesSubject.asObservable();\n private promotedGamesFromAllLobbySubject = new BehaviorSubject(null);\n promotedFeedFromAllLobbyObservable: Observable = this.promotedGamesFromAllLobbySubject.asObservable();\n\n constructor(\n private api: CasinoApiService,\n private configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private cacheManager: CacheManagerService,\n private logger: Logger,\n ) {}\n\n setPromotedGames() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n this.api.get(apiPathsConfig.gamesServices['promotedGames']).subscribe(\n (response: any) => {\n this.promotedGames = [];\n if (response) {\n for (let i = 0; i < response.length; i++) {\n this.promotedGames.push(response[i].metadata.id.itemName);\n }\n this.promotedGamesFromAllLobby = cloneDeep(this.promotedGames);\n // this.promotedGamesFromAllLobby = {...this.promotedGames};\n if (featuresConfig?.rpGamesFilterInLiveCasino && this.casinoManager.getCurrentLobby()?.toLowerCase() == 'livecasino')\n this.filterLiveCasinoGames(this.promotedGames);\n if (featuresConfig?.rpWidgetGamesFilterInLiveCasino) this.promotedGamesFromAllLobby = this.promotedGames;\n this.promotedGamesSubject.next(this.promotedGames);\n this.promotedGamesFromAllLobbySubject.next(this.promotedGamesFromAllLobby);\n }\n },\n (error) => {\n this.logger.error('unable to retrieve data from promotedGames API' + error);\n },\n );\n }\n\n filterLiveCasinoGames(promotedGames: any) {\n const categoryCoreLookUp: any = this.cacheManager.getAllCategoriesFromLocalCache('LiveCasino', this.casinoManager.getInvokerProduct());\n this.promotedGames = categoryCoreLookUp?.lsGameMetaDataMap?.map((x: any) => x && x[0])?.filter((y: any) => promotedGames?.includes(y)) || [];\n }\n\n getPromotedGames() {\n return this.promotedGames;\n }\n\n getPromotedGamesFromAllLobby() {\n return this.promotedGamesFromAllLobby;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Message, MessageLifetime, MessageQueueService, MessageType } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { IPromotionsBanner } from './models/promotions-banner.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PromotionsBannerService {\n promotionsBannerData: IPromotionsBanner;\n private promotionsDataPublisher = new BehaviorSubject(null);\n promotionsDataObservable: Observable = this.promotionsDataPublisher.asObservable();\n\n constructor(\n private api: PlatformApiService,\n private messageQueue: MessageQueueService,\n ) {}\n\n fetchPromotionsBannerData(): void {\n this.api\n .post('PromotionsBanner/FetchPromotionsBannerData', {\n responseType: 'json',\n withCredentials: true,\n showSpinner: false,\n })\n .subscribe({\n next: (response: any) => {\n if (response) {\n this.promotionsBannerData = response;\n this.promotionsDataPublisher.next(true);\n }\n },\n error: (error: string) => {\n const message: Message = {\n html: error,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n }\n },\n });\n }\n getPromotionsBannerData(): any {\n return this.promotionsBannerData;\n }\n addError = (errorMessage: string): void => {\n const message: Message = {\n html: errorMessage,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n setTimeout(() => this.messageQueue.clear(), 1000);\n }\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuickInfoModalService {\n private dataSource = new BehaviorSubject(null);\n gameDataObservable = this.dataSource.asObservable();\n\n constructor() {}\n\n setQuickInfoModalData(message: any) {\n this.dataSource.next(message);\n }\n\n getQuickInfoModalData() {\n return this.dataSource;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppInfoConfig, TimerService, TrackingService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WinnersService {\n private recentWinners = new BehaviorSubject(null);\n recentWinnersObservable: Observable = this.recentWinners.asObservable();\n sortInterval: any;\n feedType: any;\n constructor(\n private api: PlatformApiService,\n private timerService: TimerService,\n private configProviderService: ConfigProviderService,\n private tracking: TrackingService,\n private appInfoConfig: AppInfoConfig,\n private urlUtilityService: UrlUtilityService,\n ) {}\n fetchRecentWinnersFeed(val: any): void {\n this.feedType = val;\n this.api\n .post('recentwinners/GetRecentWinners', { feedType: val }, { responseType: 'json', withCredentials: true, showSpinner: false })\n .subscribe({\n next: (response) => {\n if (response) {\n this.recentWinners.next(response);\n }\n },\n error: () => {\n //console.log(error);\n },\n });\n }\n winnersFeedInterval() {\n const recentWinnersConfig = this.configProviderService.recentWinnersWidgetConfig();\n if (this.sortInterval) {\n clearInterval(this.sortInterval);\n }\n this.sortInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.fetchRecentWinnersFeed(this.feedType);\n }, recentWinnersConfig.recentWinnersInterval);\n }\n addTrackingEvent(\n categoryEvent: string,\n labelEvent: string,\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n uRLClicked: string,\n ) {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': categoryEvent,\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': this.appInfoConfig.product,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': uRLClicked,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { RecentGamesService } from './recent-games.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SignPostingService {\n constructor(private recentGamesService: RecentGamesService) {}\n\n getSignPostingCount(categoryGames: any, recentGames: string[]): number {\n let signPostingCount: number = 0;\n const latestStickerGames: any = [];\n let stickers: any = [];\n if (categoryGames && categoryGames.length > 0) {\n categoryGames.forEach((element: any) => {\n if (element.sticker) {\n stickers = element.sticker.indexOf('#') !== -1 ? element.sticker.split('#') : [element.sticker];\n if (stickers.indexOf('LMS_LATEST') > -1) {\n latestStickerGames.push(element);\n }\n }\n });\n }\n\n if (latestStickerGames && latestStickerGames.length > 0 && recentGames) {\n const signPostedGames: any = latestStickerGames.filter((item: any) => !(recentGames.indexOf(item.game) > -1));\n if (signPostedGames) {\n signPostingCount = signPostedGames.length;\n }\n }\n return signPostingCount;\n }\n // NFR - Services optimization - Remove\n isSignPostedGame(game: any) {\n const recentGames = this.recentGamesService.getrecentGames();\n if (game.sticker && game.sticker.indexOf('LMS_LATEST') > -1) {\n if (recentGames && recentGames.length > 0 && recentGames.indexOf(game.gameId) !== -1) {\n return false;\n }\n return true;\n }\n return false;\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { CookieService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SmartBannerService {\n private smartBannerStatus = new BehaviorSubject(true);\n private smartBannersExists = new BehaviorSubject(false);\n smartBannerStatusObservable: Observable = this.smartBannerStatus.asObservable();\n smartBannersExistsObservable: Observable = this.smartBannersExists.asObservable();\n\n readonly hasSmartBanner = toSignal(this.smartBannersExists);\n readonly smartBannerRect = signal({ width: 0, height: 0 });\n\n constructor(private cookieService: CookieService) {}\n\n smartBannerStatusChange(isOpened: boolean) {\n this.smartBannerStatus.next(isOpened);\n }\n smartBannersExistsChanged(isListExists: boolean) {\n this.smartBannersExists.next(isListExists);\n }\n\n getSbClosedCookieValue(sbId: any) {\n const sbName = 'sb-closed-' + sbId;\n return this.cookieService.get(sbName);\n }\n\n getSbInstalledCookieValue(sbId: any) {\n const sbInstalledName = 'sb-installed-' + sbId;\n return this.cookieService.get(sbInstalledName);\n }\n installSmartBanner(sbId: any, daysReminder: any) {\n const sbInstalledName = 'sb-installed-' + sbId;\n this.cookieService.put(sbInstalledName, 'true', daysReminder);\n }\n\n closeSmartBanner(sbId: any, daysReminder: any) {\n const sbName = 'sb-closed-' + sbId;\n this.cookieService.put(sbName, 'true', daysReminder);\n }\n\n setCookie(name: any, value: any, exdays: any) {\n const exdate = new Date();\n const days = parseInt(exdays, 10);\n if (!isNaN(days)) {\n exdate.setDate(exdate.getDate() + days);\n this.cookieService.put(name, value, { expires: exdate.toUTCString() });\n } else {\n this.cookieService.put(name, value);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Message, MessageLifetime, MessageQueueService, MessageType } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\n\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { ISuperButton } from './models/super-button.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SuperButtonService {\n constructor(\n private api: PlatformApiService,\n private messageQueue: MessageQueueService,\n ) {}\n\n findFromCategory = (paths: Array): Observable => {\n return this.api.post('SuperButton/FindFromCategory', paths, {\n responseType: 'json',\n withCredentials: true,\n showSpinner: false,\n });\n };\n\n findFromComposition = (isDefaultComposition: boolean, containerPath: string): Observable => {\n return this.api.post(\n 'SuperButton/FindFromComposition',\n { isDefaultComposition, containerPath },\n { responseType: 'json', withCredentials: true, showSpinner: false },\n );\n };\n\n addError = (errorMessage: string): void => {\n const message: Message = {\n html: errorMessage,\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n scope: 'casinocorelobby',\n };\n if (message) {\n this.messageQueue.add(message);\n setTimeout(() => this.messageQueue.clear(), 1000);\n }\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThumbnailService {\n private thumbnailPublisher = new BehaviorSubject(null);\n thumbnailDataObservable: Observable = this.thumbnailPublisher.asObservable();\n setThumbnailData(res: any) {\n this.thumbnailPublisher.next(res);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { FreespinSummaryService } from './freespins-summary.service';\nimport { TimeZoneService } from './time-zone.service';\n\n@Pipe({\n name: 'timezoneformat',\n standalone: true,\n})\nexport class TimeZoneFormatPipe implements PipeTransform {\n constructor(\n private freespinSummaryService: FreespinSummaryService,\n private timeZoneService: TimeZoneService,\n ) {}\n transform(timespan: number): any {\n if (timespan) {\n const userTimeZoneInfo = this.freespinSummaryService.getTimeZoneInfo();\n let userUTCOffsetSecs: number = 0;\n if (userTimeZoneInfo) {\n const userOffsetString = userTimeZoneInfo.BaseUtcOffset;\n userUTCOffsetSecs = this.timeZoneService.getSecondsFromTimeString(userOffsetString);\n }\n let userUTCOffsetMilliSecs = userUTCOffsetSecs * 1000;\n if (userTimeZoneInfo?.AdjustmentRules?.length > 0 && userTimeZoneInfo.AdjustmentRules[0].DaylightDelta) {\n const daylightDeltaOffsetSecs = this.timeZoneService.getSecondsFromTimeString(userTimeZoneInfo.AdjustmentRules[0].DaylightDelta);\n if (daylightDeltaOffsetSecs > 0) {\n userUTCOffsetMilliSecs = userUTCOffsetMilliSecs + daylightDeltaOffsetSecs * 1000;\n }\n }\n const dt = new Date();\n const timeStamp = timespan * 1000 + userUTCOffsetMilliSecs + dt.getTimezoneOffset() * 60 * 1000;\n const userExpiryTime = new Date(timeStamp);\n const dateFormat = this.timeZoneService.getDateFormat(new Date(userExpiryTime));\n return dateFormat;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n get nativeWindow(): any {\n return window;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlotRacesTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n track(actionEvent: string, positionEvent: string, locationEvent: string, eventDetails: string, coinEconomyFilter: boolean = false) {\n this.trackingService?.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'Slots',\n 'component.LabelEvent': coinEconomyFilter ? 'filter tab' : 'Race Cards',\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': 'not applicable',\n });\n }\n\n trackPhase2(\n actionEvent: string,\n positionEvent: string,\n locationEvent: string,\n eventDetails: string,\n coinEconomyFilter: boolean = false,\n urlClicked: string = '',\n ) {\n this.trackingService?.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'slots',\n 'component.LabelEvent': coinEconomyFilter ? 'filter tab' : 'race cards',\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': locationEvent,\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': urlClicked ? urlClicked : 'not applicable',\n 'component.recommendationType': 'default',\n });\n }\n}\n","import { ContentImage, ContentItem } from '@frontend/vanilla/core';\n\nexport const FILTER_TYPE_ALL = 'ALL';\nexport const FILTER_TYPE_COINS_ENTRY = 'Coins_Entry';\nexport const FILTER_TYPE_CASH_ENTRY = 'Cash_Entry';\nexport const FILTER_TYPE_COIN_REWARD = 'Coins_Reward';\nexport const FILTER_TYPE_FREE_ENTRY = 'Free_Entry';\n\nexport interface SlotRacesLive {\n liveNow: Race[];\n}\n\nexport interface SlotRacesUpcoming {\n upcomingToday: Race[];\n upcomingTomorrow: Race[];\n}\n\nexport interface Leaderboard {\n content: IContent;\n rankDetails: any[];\n}\n\nexport interface Race {\n rewardValue: any;\n promoId: number;\n slotUniqueId: number;\n subType: string;\n cmsTempId: string;\n gameVariantName: string;\n gameVariantList: string[];\n startTime: string;\n endTime: string;\n startDate: Date;\n optinExpiryDate: Date;\n optinExpiryTime: string;\n endDate: Date;\n targetedPlayerCount: number;\n optinLimit: number;\n notificationStatus: boolean;\n isNotify: boolean;\n currentRank: number;\n ctaList: string[];\n criteriaDtls: any;\n spinProgress: any;\n slotRaceRuleConfig: PrizeRule[];\n slotRaceRuleConfigV2: PrizeRule[];\n rankDetails: any[];\n accountName: string;\n expiryInDays: number;\n productList: string[];\n additionalAttribs: Map;\n duration: string;\n startTimeAMPM: string;\n isLive: boolean;\n gameId: string;\n jackpot: string;\n content: IContent;\n additionalParams: { [item: string]: string };\n beatBanker: { [item: string]: string };\n firstPlayTech: boolean;\n isOptinWithCoins: boolean;\n coinsForOptin: number;\n}\n\nexport interface PrizeRule {\n points: number;\n ruleType: string;\n ruleConfig: number;\n ruleNo: number;\n slabList: PrizeRule[];\n}\n\nexport interface SlotApiParams {\n slotInput: string;\n slotDuration?: number;\n}\n\nexport interface SitecoreContent {\n textTranslations: GenericList;\n\n rules: Rule[];\n\n tips: ContentItem[];\n\n rulesBanner: any;\n\n placeholderCardImage: any;\n\n coinEconomy: any;\n\n raceRuleConfigs: RaceRuleConfig[];\n\n errorMessages: GenericList;\n\n entryDetails: GenericList;\n\n npmHeader?: any;\n}\n\nexport interface RaceRuleConfig {\n multiplierDescription?: string;\n multiplierValue?: number;\n multiplierImage?: ContentImage;\n pointsDescription?: string;\n pointsImage?: ContentImage;\n RuleConfigValue?: number;\n pointsText?: string;\n pointValue?: number;\n spinsDescription?: string;\n spinsImage?: ContentImage;\n spinsText?: string;\n spinValue?: number;\n metadata?: Metadata;\n ruleConfigTitleV2?: string;\n ruleConfigDescriptionV2?: string;\n}\n\nexport interface Metadata {\n id: ItemId;\n}\n\nexport interface ItemId {\n itemName: string;\n}\n\nexport interface GenericList {\n sharedList: { [item: string]: string };\n versionedList: { [item: string]: string };\n}\n\nexport interface ResultsHistory {\n rank: number;\n playerName: string;\n points: number;\n slotStartDate: number;\n slotEndDate: number;\n startDate: Date;\n endDate: Date;\n dateStr: string;\n gameVariantName: string;\n gameVariantList: string[];\n isWin: boolean;\n gameIconSrc: string;\n prizeIcon: string;\n content: IContent;\n configMap: IConfigMap;\n configMaps: IConfigMap[];\n isBeatBanker: boolean;\n}\n\nexport interface IContent {\n promotion: IPromotion;\n rules: Rule[];\n}\n\nexport interface IPromotion {\n prizes: string;\n beatBanker: string;\n termsAndConditionsText: string;\n promoName: string;\n promoTitle: string;\n promoIcon: ContentImage;\n data: IData;\n metadata: Metadata;\n promoBackgroundImage: ContentImage;\n promoBackgroundColor: string;\n gameId?: string;\n}\n\nexport interface IData {\n metadata: Metadata;\n fields: IFields;\n}\n\nexport interface IFields {\n prizes: string;\n termsAndConditionsText: string;\n}\n\nexport interface Rule {\n image: ContentImage;\n title: string;\n text: string;\n metadata: Metadata;\n}\n\nexport interface SlotRacesResponseError {\n errorCode: number;\n exception: any;\n status: string;\n message: string;\n}\n\nexport interface IConfigMap {\n promoId: string;\n awardType: string;\n value: string;\n slotId: string;\n currency: string;\n}\n\nexport const LEADERBOARD_COLUMNS_DISPLAYED = ['rank', 'prize', 'prize-img', 'player', 'points'];\nexport const LEADERBOARD_COLUMNS_DISPLAYED_PH2 = ['rank', 'prize-img', 'player', 'points', 'prize'];\n\nexport interface ITournamentIcon {\n src: string;\n colspan: number;\n}\nexport interface SourceInfo {\n frontend: string;\n Brand: string;\n Product: ProductBalance[];\n Channel: string;\n Source: string;\n}\n\nexport interface ProductBalance {\n Product: string;\n Balance: string;\n}\n","export enum GlobalSearchCustomEvent {\n HIDE_HEADER_ENTRY = 'gs:hideHeaderEntry',\n HIDE_FLOATING_ENTRY = 'gs:hideFloatingEntry',\n SHOW_HEADER_ENTRY = 'gs:showHeaderEntry',\n SHOW_FLOATING_ENTRY = 'gs:showFloatingEntry',\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { NavigationService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { GlobalSearchCustomEvent } from './global-search.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalSearchService {\n private readonly navigation = inject(NavigationService);\n private readonly configProviderService = inject(ConfigProviderService);\n hideGlobalSearchBasedOnPath: boolean = false;\n\n hideGlobalSearchHeaderAndStickyEntryBasedOnPath(): boolean {\n const getCurrentPath: string = this.navigation.location.pathname;\n const globalSearchConfig = this.configProviderService.provideGlobalSearchConfig();\n const globalSearchPathBasedEnabler = globalSearchConfig.pathBasedEnabler;\n const disabledGlobalSearchPaths: string[] = globalSearchPathBasedEnabler.disablePaths;\n const enabledGlobalSearchPaths: string[] = globalSearchPathBasedEnabler.enablePaths;\n if (globalSearchPathBasedEnabler) {\n this.hideGlobalSearchBasedOnPath = disabledGlobalSearchPaths.some((disablePath) => getCurrentPath.includes(disablePath));\n } else if (enabledGlobalSearchPaths) {\n this.hideGlobalSearchBasedOnPath = !enabledGlobalSearchPaths.some((enablePath) => getCurrentPath.includes(enablePath));\n } else {\n this.hideGlobalSearchBasedOnPath = false;\n }\n return this.hideGlobalSearchBasedOnPath;\n }\n\n hideGlobalSearch(): void {\n dispatchEvent(new CustomEvent(GlobalSearchCustomEvent.HIDE_HEADER_ENTRY));\n dispatchEvent(new CustomEvent(GlobalSearchCustomEvent.HIDE_FLOATING_ENTRY));\n }\n\n showGlobalSearch(): void {\n dispatchEvent(new CustomEvent(GlobalSearchCustomEvent.SHOW_HEADER_ENTRY));\n dispatchEvent(new CustomEvent(GlobalSearchCustomEvent.SHOW_FLOATING_ENTRY));\n }\n\n hidingGlobalSearch(): void {\n if (this.hideGlobalSearchHeaderAndStickyEntryBasedOnPath() && this.hideGlobalSearchBasedOnPath) {\n this.hideGlobalSearch();\n } else {\n this.showGlobalSearch();\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CookieService } from '../../shared/cookie.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoStylesService {\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly cookieService = inject(CookieService);\n\n getDropShadow(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const darkMode = this.cookieService.getFromCookie('dark-mode');\n let dropShadow: string;\n if (darkMode) {\n dropShadow = category?.sitecoreData?.attributes?.darkmodegametiledropshadow\n ? category?.sitecoreData?.attributes?.darkmodegametiledropshadow\n : global.lobbyConfigurations['darkModeGameTileDropShadow'];\n } else {\n dropShadow = category?.sitecoreData?.attributes?.gametiledropshadow\n ? category?.sitecoreData?.attributes?.gametiledropshadow\n : global.lobbyConfigurations['gameTileDropShadow'];\n }\n return dropShadow;\n }\n\n getBorderRadius(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const gameTileBorderRadius = category?.sitecoreData?.attributes?.gametileborderradius\n ? category?.sitecoreData?.attributes?.gametileborderradius\n : global.lobbyConfigurations['gameTileBorderRadius'];\n return !category.isIconSixCategory ? gameTileBorderRadius : null; //filtering out iconsix game icon\n }\n\n getLTileFontFamily(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const lobbyTileFontFamily = category?.sitecoreData?.attributes?.lobbytilefontfamily\n ? category?.sitecoreData?.attributes?.lobbytilefontfamily\n : global.lobbyConfigurations['lobbyTileFontFamily'];\n return lobbyTileFontFamily;\n }\n\n getsubCategoryTextColor(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const subCategoryTextColor = category?.sitecoreData?.attributes?.subcategorytextcolor\n ? category?.sitecoreData?.attributes?.subcategorytextcolor\n : global.lobbyConfigurations['subCategoryTextColor'];\n return subCategoryTextColor;\n }\n\n getsubCategoryTitleFontSize(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const subCategoryTitleFontSize = category?.sitecoreData?.attributes?.subcategorytitlefontsize\n ? category?.sitecoreData?.attributes?.subcategorytitlefontsize\n : global.messages['subCategoryTitleFontSize'];\n return subCategoryTitleFontSize;\n }\n\n getsubCategorySubTitleFontSize(category: any): string {\n const global: any = this.configProviderService.provideGlobalConfig();\n const subCategorySubTitleFontSize = category?.sitecoreData?.attributes?.subcategorysubtitlefontsize\n ? category?.sitecoreData?.attributes?.subcategorysubtitlefontsize\n : global.messages['subCategorySubTitleFontSize'];\n return subCategorySubTitleFontSize;\n }\n\n appendTheme(src: any, gameInfo: any) {\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n let appendTheme = '';\n if (featuresConfig?.gameIconTheming) {\n const { [gameInfo]: gameId } = featuresConfig.gameIconTheming;\n if (gameId) {\n for (const theme in gameId) {\n if (gameId[theme]) {\n appendTheme = theme;\n }\n }\n }\n }\n if (appendTheme && src && src.indexOf(appendTheme) < 0) {\n const arr = src?.split('/');\n arr?.splice(arr.length - 1, 0, appendTheme);\n src = arr.join('/');\n }\n return src;\n }\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, Optional, assertInInjectionContext, inject, ErrorHandler, DestroyRef } from '@angular/core';\nimport { Subject, Subscription, pipe, from, EMPTY } from 'rxjs';\nimport { filter, take, shareReplay, map, takeUntil, mergeAll, share, mapTo, tap, catchError } from 'rxjs/operators';\nfunction isSingleShotHookNameGuard(name) {\n return !!name && typeof name === 'string' && name !== '';\n}\n/**\n * @internal\n * Operator to filter values for single shot observables\n */\nconst singleShotOperators = o$ => o$.pipe(filter(v => v === true), take(1), shareReplay());\n/**\n * This is an operator that is used to listen to Angular lifecycle hooks.\n * It plucks a defined lefe cycle name `HookProps` and forwards values for the particular value and in the behavior of the hook e.g. single shot\n *\n * @param name\n */\nfunction toHook(name) {\n const operators = isSingleShotHookNameGuard(name) ? singleShotOperators : o => o;\n return o$ => o$.pipe(map(p => p[name]), operators);\n}\n/**\n * This operator can be used to take instances that implements `OnDestroy$` and unsubscribes from the given Observable when the instances\n * `onDestroy$` Observable emits.\n *\n * @param instanceWithLifecycle\n */\nfunction untilDestroyed(instanceWithLifecycle) {\n return source => source.pipe(takeUntil(instanceWithLifecycle.onDestroy$));\n}\n\n/**\n * @deprecated - use rxEffects instead\n *\n * Reduces subscription boilerplate for performing observable-based side-effects in components.\n *\n * Before:\n * ```ts\n * @Component({\n * // ...\n * })\n * export class FooComponent implements OnDestroy {\n * private readonly destroy$ = new Subject();\n *\n * constructor() {\n * obs$.pipe(takeUntil(this.destroy$)).subscribe(doSideEffect);\n * }\n *\n * ngOnDestroy(): void {\n * this.destroy$.next();\n * this.destroy$.complete();\n * }\n * }\n * ```\n *\n * After:\n * ```ts\n * @Component({\n * // ...\n * providers: [RxEffects],\n * })\n * export class FooComponent {\n * constructor(effects: RxEffects) {\n * effects.register(obs$, doSideEffect);\n * // OR\n * effects.register(obs$.pipe(tap(doSideEffect)));\n * // OR\n * effects.register(obs$.subscribe(doSideEffect));\n * }\n * }\n * ```\n *\n * NOTE: Avoid calling register/unregister/subscribe inside the side-effect function.\n */\nlet RxEffects = /*#__PURE__*/(() => {\n class RxEffects {\n errorHandler;\n constructor(errorHandler) {\n this.errorHandler = errorHandler;\n }\n static nextId = 0;\n _hooks$ = new Subject();\n observables$ = new Subject();\n // we have to use publish here to make it hot (composition happens without subscriber)\n effects$ = this.observables$.pipe(mergeAll(), share());\n subscription = this.effects$.subscribe();\n onDestroy$ = this._hooks$.pipe(toHook('destroy'));\n destroyers = {};\n register(obsOrSub, fnOrObj) {\n if (obsOrSub instanceof Subscription) {\n this.subscription.add(obsOrSub);\n return;\n }\n const effectId = RxEffects.nextId++;\n const destroy$ = this.destroyers[effectId] = new Subject();\n const applyBehavior = pipe(mapTo(effectId), takeUntil(destroy$));\n if (fnOrObj != null) {\n this.observables$.next(from(obsOrSub).pipe(\n // ternary expression is to help Typescript infer overloads\n typeof fnOrObj === 'function' ? tap(fnOrObj) : tap(fnOrObj), catchError(err => {\n this.errorHandler?.handleError(err);\n return EMPTY;\n }), applyBehavior));\n } else {\n this.observables$.next(from(obsOrSub).pipe(applyBehavior));\n }\n return effectId;\n }\n /**\n * Imperatively cancel a side-effect while the component is still running.\n *\n * Note that all effects are automatically cancelled when a component is destroyed,\n * so you most often won't need to call this method.\n * @param effectId Effect ID (returned by register method)\n */\n unregister(effectId) {\n this.destroyers[effectId]?.next();\n }\n /**\n * Fires a sideEffect when the instances `OnDestroy` hook is fired.\n *\n * @example\n * effects.registerOnDestroy(mode => localStorage.setItem('colorMode', mode));\n *\n * @param sideEffect\n */\n registerOnDestroy(sideEffect) {\n return this.register(this.onDestroy$, sideEffect);\n }\n /**\n * Operator that unsubscribes based on emission of an registered effect.\n *\n * @NOTICE\n * This operator has to be placed always at the end of the operator chain (before the subscription).\n * Otherwise we may leak as a subsequent operator could instantiate new ongoing Observables which will not get unsubscribed.\n *\n * @example\n * const effectId1 = effects.register(\n * colorMode$.subscribe(mode => localStorage.setItem('colorMode', mode))\n * );\n *\n * someValue$.pipe(\n * effect.untilEffect(effectId1)\n * )\n *\n */\n untilEffect(effectId) {\n return source => source.pipe(untilDestroyed(this), takeUntil(this.effects$.pipe(filter(eId => eId === effectId))));\n }\n /**\n * @internal\n */\n ngOnDestroy() {\n this._hooks$.next({\n destroy: true\n });\n this.subscription.unsubscribe();\n }\n /** @nocollapse */\n static ɵfac = function RxEffects_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxEffects)(i0.ɵɵinject(i0.ErrorHandler, 8));\n };\n /** @nocollapse */\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RxEffects,\n factory: RxEffects.ɵfac\n });\n }\n return RxEffects;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @description\n * Functional way to setup observable based side effects with RxEffects.\n * It's a creation function for RxEffects that destroys itself when the provided\n * `DestroyRef` is destroyed.\n *\n * @example\n * ```ts\n * import { rxEffects } from '@rx-angular/state/effects';\n *\n * \\@Component({})\n * export class FooComponent {\n * const readonly util = inject(Util);\n * readonly effects = rxEffects(({ register }) => {\n * register(this.util.windowResize$, () => {\n * console.log('window was resized');\n * })\n * });\n *\n * ngOnInit() {\n * this.effects.register(this.util.rotationChanged$, () => {\n * console.log('viewport rotation changed');\n * });\n * }\n * }\n * ```\n *\n * @param {RxEffectsSetupFn} setupFn\n * @returns RxEffects\n *\n * @docsCategory RxEffects\n * @docsPage RxEffects\n *\n */\nfunction rxEffects(setupFn) {\n assertInInjectionContext(rxEffects);\n const errorHandler = inject(ErrorHandler, {\n optional: true\n });\n const destroyRef = inject(DestroyRef);\n const runningEffects = [];\n destroyRef.onDestroy(() => runningEffects.forEach(ef => ef.unsubscribe()));\n /**\n * Subscribe to observables and trigger side effect.\n *\n * @example\n *\n * /@Component({\n * template: ``\n * })\n * class ListComponent {\n * private ef = rxEffects(({register}) => {\n * register(timer(0, this.backupInterval), console.log));\n * }\n * }\n *\n * @param {SideEffectObservable} obs$ Source observable input\n * @param {SideEffectFnOrObserver} sideEffect Observer object\n *\n * @return {Function} - unregisterFn\n */\n function register(obs$, sideEffect) {\n const observer = typeof sideEffect === 'object' ? {\n ...sideEffect,\n // preserve original logic\n error: e => {\n sideEffect.error?.(e);\n errorHandler?.handleError(e);\n }\n } : {\n next: sideEffect,\n error: e => errorHandler?.handleError(e)\n };\n const sub = from(obs$).subscribe(observer);\n runningEffects.push(sub);\n return () => sub.unsubscribe();\n }\n /**\n * Register custom cleanup logic.\n *\n * @example\n *\n * /@Component({\n * template: ``\n * })\n * class ListComponent {\n * private ef = rxEffects(({onDestroy}) => {\n * onDestroy(() => console.log('done'));\n * }\n * }\n *\n * @param {Fn} callback onDestroy callback\n *\n * @return {Fn} unregisterFn\n */\n function onDestroy(callback) {\n return destroyRef.onDestroy(callback);\n }\n const effects = {\n register,\n onDestroy\n };\n setupFn?.(effects);\n return effects;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxEffects, rxEffects };\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { DeviceService, UserService } from '@frontend/vanilla/core';\nimport { rxEffects } from '@rx-angular/state/effects';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { CasinoCoreNpmParamsService } from '../../shared/casino-core-npm-params.service';\nimport { JackpotDataService } from '../../shared/jackpotdata-service';\nimport { PromotionsBannerService } from '../../shared/promotions-banner.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JackpotAndPromotionsService {\n jackpotGroupSubject = new BehaviorSubject('');\n jackpotGroupObservable: Observable = this.jackpotGroupSubject.asObservable();\n postloginfirstJackpotSortCall: boolean = false;\n globalJackpotPathSegment: string;\n\n private readonly rxEffects = rxEffects();\n private readonly route = inject(ActivatedRoute);\n private readonly user = inject(UserService);\n private readonly jackpotDataService = inject(JackpotDataService);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoCoreNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly promotionsBannerService = inject(PromotionsBannerService);\n private readonly deviceService = inject(DeviceService);\n\n onAppInit() {\n this.rxEffects.register(this.route.queryParams, (params: any) => {\n this.jackpotGroupSubject.next(params['jackpotgroupId']);\n });\n }\n\n setGlobalJackpotPathSegment(pathsegment: string) {\n this.globalJackpotPathSegment = pathsegment;\n }\n\n initiateJackpotFeedsAndGames() {\n const jackpotDataClientConfig: any = this.configProviderService.provideJackpotConfig();\n const feedCacheConfig: any = this.configProviderService.provideFeedCacheConfig();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstJackpotSortCall)) {\n if (feedCacheConfig.enableJackpotFeed && !casinoNpmParams?.isDisableJackpotCalls) {\n this.jackpotDataService.startFeed();\n }\n if (jackpotDataClientConfig.enableJackpotSortGames) {\n this.jackpotDataService.fetchJackpotSortGames();\n }\n if (this.user.isAuthenticated) this.postloginfirstJackpotSortCall = true;\n }\n }\n\n getJackpotListFromWidget(jackpotWidget: any): any[] {\n const jackpots: any[] = [];\n jackpotWidget.forEach((jp: any) => {\n if (jp != null) {\n jackpots.push(jp.itemName);\n }\n });\n return jackpots;\n }\n\n getGlobalJackpotByLobbyType(lobbyType: string): string {\n if (!lobbyType) {\n return lobbyType;\n }\n const globaljackpotconfig = this.configProviderService.provideGlobalJackpotConfig();\n const isGJLobby = globaljackpotconfig.globalJackpotPathSegmentsArray.filter(\n (lobby: any) => lobby.lobbyType && lobby.lobbyType?.toLowerCase() == lobbyType?.toLowerCase(),\n );\n if (isGJLobby && isGJLobby.length > 0) {\n return lobbyType + '#' + this.globalJackpotPathSegment + '#';\n }\n return lobbyType;\n }\n\n initiateJackpotandPromotionBanner(casinoNpmParams: any) {\n const jackpotDataClientConfig: any = this.configProviderService.provideJackpotConfig();\n const promotionsBannerConfig: any = this.configProviderService.providePromotionsBannerConfig();\n const feedCacheConfig: any = this.configProviderService.provideFeedCacheConfig();\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstJackpotSortCall)) {\n if (feedCacheConfig.enableJackpotFeed && !casinoNpmParams?.isDisableJackpotCalls) {\n this.jackpotDataService.stopFeed();\n this.jackpotDataService.startFeed();\n }\n if (jackpotDataClientConfig.enableJackpotSortGames) {\n this.jackpotDataService.fetchJackpotSortGames();\n }\n if (this.user.isAuthenticated) this.postloginfirstJackpotSortCall = true;\n }\n if (promotionsBannerConfig?.isEnablePromotionsBanner && this.deviceService.isMobilePhone && casinoNpmParams.isDll) {\n this.promotionsBannerService.fetchPromotionsBannerData();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ClientConfigService, Page } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ABTestingClientConfig } from '../client-config/abtesting-config';\nimport { AdvanceGameDataClientConfig } from '../client-config/advance-game-data.config';\nimport { ApiPathsClientConfig } from '../client-config/api-paths.config';\nimport { ArcadeLobbyClientConfig } from '../client-config/arcadelobby-config';\nimport { BetMGMOriginalsClientConfig } from '../client-config/betmgmoriginals-config';\nimport { CasinoCoreConfigClientConfig } from '../client-config/casino-config.config';\nimport { CasinoAsIFrameOverlayConfig } from '../client-config/casino-overlay.config';\nimport { ClientSideConfigClientConfig } from '../client-config/clientside-config';\nimport { CommonClientConfig } from '../client-config/common.config';\nimport { CozyBingoClientConfig } from '../client-config/cozy-bingo.config';\nimport { DevSettingsConfig } from '../client-config/dev-settings.config';\nimport { DiscoverFeedClientConfig } from '../client-config/discover-feed.config';\nimport { DownloadAppFromDeviceClientConfig } from '../client-config/download-app-from-device.config';\nimport { FeaturesClientConfig } from '../client-config/features.config';\nimport { FeedCacheClientConfig } from '../client-config/feed-cache.config';\nimport { FreeSpinsClientConfig } from '../client-config/freespins.config';\nimport { GameLaunchTrackingClientConfig } from '../client-config/game-launch-tracking.config';\nimport { GamePremiereClientConfig } from '../client-config/game-premiere.config';\nimport { GameSelectorWidgetClientConfig } from '../client-config/game-selector-widget.config';\nimport { GameShowHubClientConfig } from '../client-config/game-show-hub.config';\nimport { GameConfigClientConfig } from '../client-config/game.config';\nimport { GameImpressionsClientConfig } from '../client-config/gameimpressions-config';\nimport { GamificationWidgetConfig } from '../client-config/gamification-widget-config';\nimport { GamingStoriesClientConfig } from '../client-config/gaming-stories-config';\nimport { GamingStoriesPhase2ClientConfig } from '../client-config/gaming-stories-phase2-config';\nimport { GeolocationClientConfig } from '../client-config/geo-location.config';\nimport { GlobalJackpotClientConfig } from '../client-config/global-jackpot.config';\nimport { GlobalSearchClientConfig } from '../client-config/global-search.config';\nimport { GlobalClientConfig } from '../client-config/global.config';\nimport { HeaderTeasersClientConfig } from '../client-config/header-teaser.config';\nimport { ImageLoadOptimizationClientConfig } from '../client-config/image-load-optimization.config';\nimport { ImmersiveLobbyClientConfig } from '../client-config/immersive-lobby.config';\nimport { JackpotDataClientConfig } from '../client-config/jackpot-data.config';\nimport { LiveCasinoLoungeClientConfig } from '../client-config/live-casino-lounge.config';\nimport { LiveDealerConfigClientConfig } from '../client-config/live-dealer.config';\nimport { LiveCasinoClientConfig } from '../client-config/livecasino-config';\nimport { LMTDataClientConfig } from '../client-config/lmt-data.config';\nimport { McPageClientConfig } from '../client-config/mc-page.config';\nimport { MinBetGamesClientConfig } from '../client-config/minbetgames-config';\nimport { ModularBingoClientConfig } from '../client-config/modular-bingo.config';\nimport { ModularSettingsClientConfig } from '../client-config/modular-settings.config';\nimport { ModularizationClientConfig } from '../client-config/modularization-config';\nimport { NativeGameLaunchClientConfig } from '../client-config/native-game-launch.config';\nimport { NewsFeedConfigClientConfig } from '../client-config/news-feed.config';\nimport { NonCriticalClientConfig } from '../client-config/noncritical-config';\nimport { OptimizedTeaserClientConfig } from '../client-config/optimized-teaser.config';\nimport { PlayerStatsWidgetClientConfig } from '../client-config/player-stats-config';\nimport { PreLoginClientConfig } from '../client-config/pre-login.config';\nimport { PromoCoinEconomyClientConfig } from '../client-config/promo-coin-economy-config';\nimport { PromoOfferWidgetConfig } from '../client-config/promo-offer-widget-config';\nimport { PromotedGamesClientConfig } from '../client-config/promoted-games.config';\nimport { PromotionsBannerClientConfig } from '../client-config/promotions-banner.config';\nimport { PromotionsInfoClientConfig } from '../client-config/promotions-info.config';\nimport { QuickInfoClientConfig } from '../client-config/quick-info.config';\nimport { RecentWinnersWidgetClientConfig } from '../client-config/recent-winners-config';\nimport { RecentlyPlayedClientConfig } from '../client-config/recentlyplayed-games.config';\nimport { SearchClientConfig } from '../client-config/search.config';\nimport { SlotRacesClientConfig } from '../client-config/slot-races.config';\nimport { SmartLobbyClientConfig } from '../client-config/smart-lobby.config';\nimport { SubNavigationClientConfig } from '../client-config/sub-nav.config';\nimport { SuperButtonClientConfig } from '../client-config/super-button.config';\nimport { ThumbnailConfigClientConfig } from '../client-config/thumbnailconfig';\nimport { VideoPreviewClientConfig } from '../client-config/video-preview.config';\nimport { WidgetConfigClientConfig } from '../client-config/widget.config';\nimport { UrlUtilityService } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigProviderService {\n casinoConfig: any;\n featuresConfig: any;\n globalSearchConfig: any;\n lmtConfig: any;\n globalConfig: GlobalClientConfig;\n devSettingsClientConfig: any;\n globalJackpotConfig: any;\n gameConfig: any;\n smartLobbyConfig: any;\n mcPageConfig: any;\n liveDealerConfig: any;\n jackpotConfig: any;\n nativegamelaunchConfig: any;\n geolocationConfig: any;\n casinoAsIFrameConfig: any;\n feedCacheConfig: any;\n advanceGameDataConfig: any;\n widgetConfig: any;\n quickInfoConfig: any;\n optimizedTeaserConfig: any;\n promotionsInfoConfig: any;\n discoverFeedConfig: any;\n subNavigationConfig: any;\n modularSettingsConfig: any;\n liveCasinoConfig: any;\n newsFeedCasinoConfig: any;\n slotRacesConfig: SlotRacesClientConfig;\n promotedGamesConfig: any;\n thumbnailConfig: any;\n casinoClientConfigLoadedSubject = new BehaviorSubject(false);\n //Subscribe to this observable to get the status of the casino client config of the lobby\n casinoClientConfigObservable: Observable = this.casinoClientConfigLoadedSubject.asObservable();\n cozybingoConfig: any;\n recentlyPlayedConfig: any;\n headerTeasersConfig: any;\n freeSpinsClientConfig: any;\n imageLoadOptimizationConfig: ImageLoadOptimizationClientConfig;\n clientSideConfig: any;\n apiPathsConfig: any;\n searchConfig: any;\n nonCriticalConfig: any;\n abTestingConfig: any;\n downloadAppFromDeviceConfig: any;\n gamingStoriesClientConfig: any;\n preLoginConfig: any;\n promoOfferWidgetConfig: any;\n gamificationWidgetConfig: any;\n gameSelectorWidgetConfig: any;\n gameShowHubConfig: any;\n liveCasinoLoungeConfig: any;\n immersiveLobbyConfig: any;\n gamingStoriesPhase2Config: any;\n superButtonConfig: any;\n gameLaunchTrackingConfig: any;\n commonConfig: any;\n promotionsBannerConfig: any;\n videoPreviewConfig: VideoPreviewClientConfig;\n recentWinnersWidgetConfig: any;\n modularBingoClientConfig: ModularBingoClientConfig;\n arcadeLobbyConfig: any;\n promoCoinEconomyConfig: any;\n gamePremiereConfig: any;\n minBetGamesConfig: any;\n playerStatsWidgetConfig: any;\n gameImpressionsConfig: any;\n betMGMOriginals: any;\n modularization: ModularizationClientConfig;\n constructor(\n private clientConfigService: ClientConfigService,\n private urlUtilityService: UrlUtilityService,\n private httpClient: HttpClient,\n private page: Page,\n ) {}\n\n fillClientConfig(isDll: boolean) {\n if (isDll) {\n this.casinoConfig = this.clientConfigService.get(CasinoCoreConfigClientConfig);\n this.globalSearchConfig = this.clientConfigService.get(GlobalSearchClientConfig);\n this.featuresConfig = this.clientConfigService.get(FeaturesClientConfig);\n this.globalConfig = this.clientConfigService.get(GlobalClientConfig);\n this.devSettingsClientConfig = this.clientConfigService.get(DevSettingsConfig);\n this.lmtConfig = this.clientConfigService.get(LMTDataClientConfig);\n this.gameConfig = this.clientConfigService.get(GameConfigClientConfig);\n this.videoPreviewConfig = this.clientConfigService.get(VideoPreviewClientConfig);\n this.smartLobbyConfig = this.clientConfigService.get(SmartLobbyClientConfig);\n this.globalJackpotConfig = this.clientConfigService.get(GlobalJackpotClientConfig);\n this.mcPageConfig = this.clientConfigService.get(McPageClientConfig);\n this.liveDealerConfig = this.clientConfigService.get(LiveDealerConfigClientConfig);\n this.jackpotConfig = this.clientConfigService.get(JackpotDataClientConfig);\n this.nativegamelaunchConfig = this.clientConfigService.get(NativeGameLaunchClientConfig);\n this.geolocationConfig = this.clientConfigService.get(GeolocationClientConfig);\n this.casinoAsIFrameConfig = this.clientConfigService.get(CasinoAsIFrameOverlayConfig);\n this.feedCacheConfig = this.clientConfigService.get(FeedCacheClientConfig);\n this.advanceGameDataConfig = this.clientConfigService.get(AdvanceGameDataClientConfig);\n this.widgetConfig = this.clientConfigService.get(WidgetConfigClientConfig);\n this.quickInfoConfig = this.clientConfigService.get(QuickInfoClientConfig);\n this.optimizedTeaserConfig = this.clientConfigService.get(OptimizedTeaserClientConfig);\n this.promotionsInfoConfig = this.clientConfigService.get(PromotionsInfoClientConfig);\n this.discoverFeedConfig = this.clientConfigService.get(DiscoverFeedClientConfig);\n this.subNavigationConfig = this.clientConfigService.get(SubNavigationClientConfig);\n this.liveCasinoConfig = this.clientConfigService.get(LiveCasinoClientConfig);\n this.newsFeedCasinoConfig = this.clientConfigService.get(NewsFeedConfigClientConfig);\n this.modularSettingsConfig = this.clientConfigService.get(ModularSettingsClientConfig);\n this.slotRacesConfig = this.clientConfigService.get(SlotRacesClientConfig);\n this.promotedGamesConfig = this.clientConfigService.get(PromotedGamesClientConfig);\n this.thumbnailConfig = this.clientConfigService.get(ThumbnailConfigClientConfig);\n this.cozybingoConfig = this.clientConfigService.get(CozyBingoClientConfig);\n this.recentlyPlayedConfig = this.clientConfigService.get(RecentlyPlayedClientConfig);\n this.headerTeasersConfig = this.clientConfigService.get(HeaderTeasersClientConfig);\n this.freeSpinsClientConfig = this.clientConfigService.get(FreeSpinsClientConfig);\n this.imageLoadOptimizationConfig = this.clientConfigService.get(ImageLoadOptimizationClientConfig);\n this.clientSideConfig = this.clientConfigService.get(ClientSideConfigClientConfig);\n this.apiPathsConfig = this.clientConfigService.get(ApiPathsClientConfig);\n this.searchConfig = this.clientConfigService.get(SearchClientConfig);\n this.nonCriticalConfig = this.clientConfigService.get(NonCriticalClientConfig);\n this.downloadAppFromDeviceConfig = this.clientConfigService.get(DownloadAppFromDeviceClientConfig);\n this.gamingStoriesClientConfig = this.clientConfigService.get(GamingStoriesClientConfig);\n this.preLoginConfig = this.clientConfigService.get(PreLoginClientConfig);\n this.promoOfferWidgetConfig = this.clientConfigService.get(PromoOfferWidgetConfig);\n this.gamificationWidgetConfig = this.clientConfigService.get(GamificationWidgetConfig);\n this.abTestingConfig = this.clientConfigService.get(ABTestingClientConfig);\n this.gameSelectorWidgetConfig = this.clientConfigService.get(GameSelectorWidgetClientConfig);\n this.gameShowHubConfig = this.clientConfigService.get(GameShowHubClientConfig);\n this.commonConfig = this.clientConfigService.get(CommonClientConfig);\n this.liveCasinoLoungeConfig = this.clientConfigService.get(LiveCasinoLoungeClientConfig);\n this.immersiveLobbyConfig = this.clientConfigService.get(ImmersiveLobbyClientConfig);\n this.gamingStoriesPhase2Config = this.clientConfigService.get(GamingStoriesPhase2ClientConfig);\n this.superButtonConfig = this.clientConfigService.get(SuperButtonClientConfig);\n this.gameLaunchTrackingConfig = this.clientConfigService.get(GameLaunchTrackingClientConfig);\n this.recentWinnersWidgetConfig = this.clientConfigService.get(RecentWinnersWidgetClientConfig);\n this.promotionsBannerConfig = this.clientConfigService.get(PromotionsBannerClientConfig);\n this.modularBingoClientConfig = this.clientConfigService.get(ModularBingoClientConfig);\n (this.arcadeLobbyConfig = this.clientConfigService.get(ArcadeLobbyClientConfig)),\n (this.promoCoinEconomyConfig = this.clientConfigService.get(PromoCoinEconomyClientConfig)),\n (this.minBetGamesConfig = this.clientConfigService.get(MinBetGamesClientConfig));\n this.gamePremiereConfig = this.clientConfigService.get(GamePremiereClientConfig);\n this.gameImpressionsConfig = this.clientConfigService.get(GameImpressionsClientConfig);\n this.playerStatsWidgetConfig = this.clientConfigService.get(PlayerStatsWidgetClientConfig);\n this.betMGMOriginals = this.clientConfigService.get(BetMGMOriginalsClientConfig);\n this.modularization = this.clientConfigService.get(ModularizationClientConfig);\n this.setClientConfigLoadedObservable();\n } else {\n const options: any = { headers: {} };\n options.headers['Cache-Control'] = 'no-cache';\n options.headers['Pragma'] = 'no-cache';\n options.headers['Expires'] = '0';\n options.headers['x-bwin-casino-api'] = this.page.environment;\n options.withCredentials = true;\n this.httpClient.get(this.urlUtilityService.getClientConfigUrl(), options).subscribe((response: any) => {\n if (response) {\n this.casinoConfig = response.csCasinoConfig;\n this.featuresConfig = response.csFeatures;\n this.lmtConfig = response.cslmtData;\n this.globalConfig = response.csGlobal;\n this.globalSearchConfig = response.csCasinoGlobalSearch;\n this.devSettingsClientConfig = response.csDevSettingsConfig;\n this.globalJackpotConfig = response.csGlobalJackpot;\n this.gameConfig = response.csGameConfig;\n this.smartLobbyConfig = response.csSmartLobbyConfig;\n this.mcPageConfig = response.csMcPage;\n this.liveDealerConfig = response.csLiveDealerConfig;\n this.jackpotConfig = response.csJackpotData;\n this.nativegamelaunchConfig = response.csNativeGameLaunch;\n this.geolocationConfig = response.csGeolocationConfig;\n this.casinoAsIFrameConfig = response.csCasinoAsIFrameOverlayConfig;\n this.feedCacheConfig = response.csFeedCacheConfiguration;\n this.advanceGameDataConfig = response.csAdvanceGameDataModel;\n this.quickInfoConfig = response.csQuickInfo;\n this.widgetConfig = response.csWidgetConfig;\n this.optimizedTeaserConfig = response.csOptimizedTeaser;\n this.promotionsInfoConfig = response.csPromotionsInfo;\n this.discoverFeedConfig = response.csDiscoverFeed;\n this.subNavigationConfig = response.csSubNavigationConfig;\n this.modularSettingsConfig = response.csModularSettings;\n this.liveCasinoConfig = response.csLiveCasinoApi;\n this.newsFeedCasinoConfig = response.csNewsFeedConfig;\n this.promotedGamesConfig = response.csPromotedGamesConfig;\n this.slotRacesConfig = response.csSlotRaces;\n this.thumbnailConfig = response.csThumbnail;\n this.cozybingoConfig = response.csCozyBingo;\n this.recentlyPlayedConfig = response.csRecentlyPlayed;\n this.headerTeasersConfig = response.csHeaderTeasers;\n this.freeSpinsClientConfig = response.csFreeSpins;\n this.clientSideConfig = response.csClientSideConfig;\n this.imageLoadOptimizationConfig = response.csImageLoadOptimizationConfig;\n this.apiPathsConfig = response.csApiPathsConfig;\n this.searchConfig = response.csSearchConfig;\n this.nonCriticalConfig = response.csNonCriticalFeedConfig;\n this.abTestingConfig = response.csAbTestingConfig;\n this.downloadAppFromDeviceConfig = response.csDownloadAppFromDevice;\n this.promoOfferWidgetConfig = response.csPromoOfferWidget;\n this.gamificationWidgetConfig = response.csGamificationWidget;\n this.gamingStoriesClientConfig = response.csGamingStoriesConfig;\n this.preLoginConfig = response.csPrelogin;\n this.gameSelectorWidgetConfig = response.csGameSelectorConfig;\n this.gameShowHubConfig = response.csGameShowHubConfig;\n this.commonConfig = response.csCommonConfig;\n this.liveCasinoLoungeConfig = response.csLiveCasinoLoungeConfig;\n this.immersiveLobbyConfig = response.csImmersiveLobbyConfig;\n this.videoPreviewConfig = response.csVideoPreviewConfig;\n this.gameLaunchTrackingConfig = response.csGameLaunchTrackingConfig;\n this.promotionsBannerConfig = response.csPromotionsBannerConfig;\n this.gamePremiereConfig = response.csGamePremiere;\n this.recentWinnersWidgetConfig = response.csRecentWinnersConfig;\n this.gamingStoriesPhase2Config = response.csGamingStoriesPhase2Config;\n this.modularBingoClientConfig = response.csModularBingo;\n this.arcadeLobbyConfig = response.csAracdeLobbyConfig;\n this.promoCoinEconomyConfig = response.csPromoCoinEconomyConfig;\n this.minBetGamesConfig = response.csMinBetGamesConfig;\n this.playerStatsWidgetConfig = response.csPlayerStatsConfig;\n this.gameImpressionsConfig = response.csGameImpressionsConfig;\n this.betMGMOriginals = response.csBetMGMOriginals;\n this.modularization = response.csModularization;\n\n this.setClientConfigLoadedObservable();\n }\n });\n }\n }\n\n setClientConfigLoadedObservable() {\n this.casinoClientConfigLoadedSubject.next(true);\n }\n\n provideCasinoConfig() {\n return this.casinoConfig;\n }\n\n provideFeaturesConfig() {\n return this.featuresConfig;\n }\n\n provideLmtConfig() {\n return this.lmtConfig;\n }\n\n setLmtConfig(customLobbyTypes: any) {\n this.lmtConfig.lobbyTypeMap = customLobbyTypes;\n }\n\n provideGlobalConfig() {\n return this.globalConfig;\n }\n\n provideGlobalSearchConfig() {\n return this.globalSearchConfig;\n }\n\n provideDevSettingsConfig() {\n return this.devSettingsClientConfig;\n }\n\n provideGlobalJackpotConfig() {\n return this.globalJackpotConfig;\n }\n\n provideGameConfig() {\n return this.gameConfig;\n }\n\n provideSmartLobbyConfig() {\n return this.smartLobbyConfig;\n }\n\n provideThumbnailConfig() {\n return this.thumbnailConfig;\n }\n\n provideMcPageConfig() {\n return this.mcPageConfig;\n }\n\n provideLiveDealerConfig() {\n return this.liveDealerConfig;\n }\n\n provideJackpotConfig() {\n return this.jackpotConfig;\n }\n\n provideNativeGameLaunchConfig() {\n return this.nativegamelaunchConfig;\n }\n\n provideGeoLocationConfig() {\n return this.geolocationConfig;\n }\n\n provideCasinoAsIFrameConfig() {\n return this.casinoAsIFrameConfig;\n }\n\n provideFeedCacheConfig() {\n return this.feedCacheConfig;\n }\n\n provideOptimizedTeaserConfig() {\n return this.optimizedTeaserConfig;\n }\n\n provideAdvanceGameDataConfig() {\n return this.advanceGameDataConfig;\n }\n\n provideQuickInfoConfig() {\n return this.quickInfoConfig;\n }\n\n providewidgetConfig(): any {\n return this.widgetConfig;\n }\n\n providePromotionsInfoConfig() {\n return this.promotionsInfoConfig;\n }\n\n provideDiscoverFeedConfig() {\n return this.discoverFeedConfig;\n }\n\n provideSubNavigationConfig() {\n return this.subNavigationConfig;\n }\n\n provideModularSettingsConfig() {\n return this.modularSettingsConfig;\n }\n\n provideLiveCasinoConfig() {\n return this.liveCasinoConfig;\n }\n\n provideNewsFeedCasinoConfig() {\n return this.newsFeedCasinoConfig;\n }\n\n provideSlotRacesConfig(): SlotRacesClientConfig {\n return this.slotRacesConfig;\n }\n\n providePromotedGamesConfig() {\n return this.promotedGamesConfig;\n }\n\n provideCozyBingoConfig() {\n return this.cozybingoConfig;\n }\n\n providePromoOfferWidgetConfig() {\n return this.promoOfferWidgetConfig;\n }\n\n provideGamificationWidgetConfig() {\n return this.gamificationWidgetConfig;\n }\n\n provideRecentlyPlayedGamesConfig() {\n return this.recentlyPlayedConfig;\n }\n\n provideHeaderTeasersConfig() {\n return this.headerTeasersConfig;\n }\n\n providefreeSpinsClientConfig() {\n return this.freeSpinsClientConfig;\n }\n\n provideImageLoadOptimizationClientConfig(): ImageLoadOptimizationClientConfig {\n return this.imageLoadOptimizationConfig;\n }\n\n provideClientSideConfig() {\n return this.clientSideConfig;\n }\n\n provideApiPathsConfig() {\n return this.apiPathsConfig;\n }\n\n provideSearchConfig() {\n return this.searchConfig;\n }\n\n provideNonCriticalConfig() {\n return this.nonCriticalConfig;\n }\n\n provideABTestingConfig() {\n return this.abTestingConfig;\n }\n\n provideDownloadAppFromDeviceConfig() {\n return this.downloadAppFromDeviceConfig;\n }\n\n provideGamingStoriesConfig() {\n return this.gamingStoriesClientConfig;\n }\n\n providePreLoginConfig() {\n return this.preLoginConfig;\n }\n\n provideVideoPreviewConfig() {\n return this.videoPreviewConfig;\n }\n\n provideGameSelectorWidgetConfig() {\n return this.gameSelectorWidgetConfig;\n }\n\n provideGameShowHubConfig() {\n return this.gameShowHubConfig;\n }\n\n provideCommonConfig() {\n return this.commonConfig;\n }\n\n provideLiveCasinoLoungeConfig() {\n return this.liveCasinoLoungeConfig;\n }\n\n provideImmersiveLobbyConfig() {\n return this.immersiveLobbyConfig;\n }\n\n provideGamingStoriesPhase2Config() {\n return this.gamingStoriesPhase2Config;\n }\n\n provideSuperButtonConfig() {\n return this.superButtonConfig;\n }\n\n provideGameLaunchTrackingConfig() {\n return this.gameLaunchTrackingConfig;\n }\n\n providePromotionsBannerConfig() {\n return this.promotionsBannerConfig;\n }\n\n provideRecentWinnersWidgetConfig(): RecentWinnersWidgetClientConfig {\n return this.recentWinnersWidgetConfig;\n }\n provideModularBingoClientConfig(): ModularBingoClientConfig {\n return this.modularBingoClientConfig;\n }\n\n provideAracadeLobbyConfig() {\n return this.arcadeLobbyConfig;\n }\n\n providePromoCoinEconomyConfig() {\n return this.promoCoinEconomyConfig;\n }\n\n provideMinBetGamesConfig() {\n return this.minBetGamesConfig;\n }\n\n provideGameImpressionsConfig() {\n return this.gameImpressionsConfig;\n }\n\n provideGamePremiereConfig() {\n return this.gamePremiereConfig;\n }\n\n providePlayerStatsWidgetConfig(): PlayerStatsWidgetClientConfig {\n return this.playerStatsWidgetConfig;\n }\n\n providerBetMGMOriginalsConfig(): BetMGMOriginalsClientConfig {\n return this.betMGMOriginals;\n }\n provideModularizationConfig(): ModularizationClientConfig {\n return this.modularization;\n }\n}\n","export enum GeoLocationJSPathIdentifier {\n GEOCOMPLYJS = 'pathIdentifier=geocomplyjs',\n OOBEEJS = 'pathIdentifier=oobeejs',\n APPINTEGRATIONJS = 'pathIdentifier=appintegrationjs',\n}\n\nexport enum GeoLocationWindowProp {\n GEOCOMPLY = 'GeoComply',\n GCOOBEE = 'GCOobee',\n GEOLOCATIONCOORDINATOR = 'geolocationCoordinator',\n}\n\nexport type GeoLocationScriptMap = {\n identifier: GeoLocationJSPathIdentifier;\n windowProp: GeoLocationWindowProp;\n};\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { GeoCoordinatorPermissionsManagerService, PermissionInfo } from '@frontend/geo-coordinator/permissions-manager';\nimport { UserService } from '@frontend/vanilla/core';\n\nimport { ConfigProviderService } from '../../config-provider/config-provider.service';\nimport { GeolocationActivatorService } from '../../geolocation/services/activator.service';\nimport { GeolocationCoordinatorService } from '../../geolocation/services/coordinator.service';\nimport { CasinoCoreNpmParamsService } from '../../shared/casino-core-npm-params.service';\nimport { WindowRef } from '../../shared/windowref.service';\nimport { GeoLocationJSPathIdentifier, GeoLocationScriptMap, GeoLocationWindowProp } from './geo-location.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeoLocationService {\n private readonly route = inject(ActivatedRoute);\n private readonly windowRef = inject(WindowRef);\n private readonly casinoCoreNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly user = inject(UserService);\n private readonly geolocationActivator = inject(GeolocationActivatorService);\n private readonly geolocationCoordinatorService = inject(GeolocationCoordinatorService);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly geoCoordinatorPermissionsManagerService = inject(GeoCoordinatorPermissionsManagerService);\n\n initializeGeolocationCoordinator() {\n if (this.route) {\n const bootstrapCoordinationStart = this.route.snapshot.queryParamMap.get('_bootstrapCoordinationStart');\n if (bootstrapCoordinationStart && bootstrapCoordinationStart === 'false') {\n return;\n }\n }\n if (!this.casinoCoreNpmParamsService.getcasinoCoreNpmParams().isDll) this.checkGeolocationScript();\n const geoConfig = this.configProviderService.provideGeoLocationConfig();\n if (this.user.isAuthenticated && this.geolocationActivator.isActive) {\n if (!geoConfig.enableNDBS) {\n this.geolocationCoordinatorService.initialize({\n showPLCPopup: false,\n });\n } else {\n if (this.geolocationCoordinatorService?.permissionsManager) {\n this.geolocationCoordinatorService.permissionsManager.onPermissionInfo = (permissionsInfo: PermissionInfo) => {\n if (permissionsInfo.status === 'available') {\n this.geoCoordinatorPermissionsManagerService.closePermissionsInfo();\n this.geolocationCoordinatorService.initialize({\n showPLCPopup: false,\n });\n return;\n }\n if (permissionsInfo.status === 'notavailable') {\n this.geoCoordinatorPermissionsManagerService.handlePermissionsInfo({\n permissionsInfo,\n textDictionary: this.configProviderService.provideGlobalConfig().messages,\n geoCoordinatorService: this.geolocationCoordinatorService,\n });\n }\n };\n this.geolocationCoordinatorService?.permissionsManager?.seekPermission();\n }\n }\n this.geolocationCoordinatorService.registerUnload();\n this.geolocationCoordinatorService.registerSynchronization();\n }\n }\n\n private checkGeolocationScript() {\n const geolocationConfig: any = this.configProviderService.provideGeoLocationConfig();\n geolocationConfig.assetsPath &&\n geolocationConfig.assetsPath.length > 0 &&\n geolocationConfig.assetsPath.forEach((assetScript: any) => {\n const scriptMappings: GeoLocationScriptMap[] = [\n { identifier: GeoLocationJSPathIdentifier.GEOCOMPLYJS, windowProp: GeoLocationWindowProp.GEOCOMPLY },\n { identifier: GeoLocationJSPathIdentifier.OOBEEJS, windowProp: GeoLocationWindowProp.GCOOBEE },\n { identifier: GeoLocationJSPathIdentifier.APPINTEGRATIONJS, windowProp: GeoLocationWindowProp.GEOLOCATIONCOORDINATOR },\n ];\n scriptMappings.forEach((map: GeoLocationScriptMap) => {\n if (assetScript.indexOf(map.identifier) > -1) {\n if (!this.windowRef.nativeWindow[map.windowProp]) {\n this.appendGeolocationScript(assetScript);\n }\n }\n });\n });\n }\n\n private appendGeolocationScript(assetScript: string) {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = assetScript;\n document.body.appendChild(script);\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport {\n CookieService,\n DeviceService,\n DslService,\n Logger,\n NativeAppService,\n NavigationService,\n Page,\n ProductService,\n UserLoggingOutEvent,\n UserLoginEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { GamificationService } from '@frontend/vanilla/features/gamification';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { LMTDataClientConfig } from '../client-config/lmt-data.config';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { ApiPathsHelperService } from '../shared/api-paths-helper-service';\nimport { CacheManagerService } from '../shared/cache-manager.service';\nimport { CasinoApiService } from '../shared/casino-api.service';\nimport { CasinoCoreNpmParamsService } from '../shared/casino-core-npm-params.service';\nimport { CasinoIFrameOverlayService } from '../shared/casino-iframe-overlay.service';\nimport { CasinoManager } from '../shared/casino-manager.service';\nimport { ConstService } from '../shared/const.service';\nimport { CookieService as CasinoCookieService, ODR_NAME } from '../shared/cookie.service';\nimport { CozyBingoDataService } from '../shared/cozybingodata.service';\nimport { DiscoverFeedService } from '../shared/discover-feed.service';\nimport { FavouriteService } from '../shared/favourite.service';\nimport { FreespinSummaryService } from '../shared/freespins-summary.service';\nimport { GameSelectorWidgetService } from '../shared/game-selector-widget.service';\nimport { InvokerProductService } from '../shared/invoker-product.service';\nimport { LiveCasinoService } from '../shared/livecasino.service';\nimport { CasinoCoreNpmParams } from '../shared/models/casino-core-npm.params';\nimport { GameLobbyModel } from '../shared/models/game-lobby.model';\nimport { NewsFeedService } from '../shared/news-feed.service';\nimport { PromotedGamesService } from '../shared/promoted-games.service';\nimport { RecentGamesService } from '../shared/recent-games.service';\nimport { TeaserService } from '../shared/teaser.service';\nimport { ThumbnailService } from '../shared/thumbnail.service';\nimport { UnfinishedGamesService } from '../shared/unfinished-games-service';\nimport { UtilityService } from '../shared/utility.service';\nimport { WindowRef } from '../shared/windowref.service';\nimport { SlotRacesService } from '../slot-races/shared/slot-races.service';\nimport { UrlUtilityService } from '../utilities/url-utility.service';\nimport { LobbyInfo, LobbyItem } from './casino-lobby.models';\nimport { GameManagerService } from './game-manager/game-manager.service';\nimport { GeoLocationService } from './geo-location/geo-location.service';\nimport { GlobalSearchService } from './global-search/global-search.service';\nimport { JackpotAndPromotionsService } from './jackpot-and-promotions/jackpot-and-promotions.service';\nimport { LobbyMetaData } from './lobby-details-model/categories.model';\nimport { GameMetaDataMap } from './lobby-details-model/game-metadata.model';\nimport { LobbyItemBaseModel } from './lobby-details-model/lobby-item.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoLobbyService {\n lobbySitecoreData: any;\n lobbySitecoreDataForInvokerProduct: any;\n lobbyTypeMaps: Map = new Map();\n gJLobbyTypeMaps: Map = new Map();\n lobbyTypeMapsForInvokerProduct: Map = new Map();\n casinoConfig: any;\n stickersDataSubject = new BehaviorSubject(null);\n stickersDataObservable: Observable = this.stickersDataSubject.asObservable();\n lobbyLoadedSubject = new BehaviorSubject(null);\n lobbyLoadedSubjectForInvokerProduct = new BehaviorSubject(null);\n gameMetaDataMap: Map = new Map();\n lobbyLoadedObservable: Observable = this.lobbyLoadedSubject.asObservable();\n lobbyLoadedObservableForInvokerProduct: Observable = this.lobbyLoadedSubjectForInvokerProduct.asObservable();\n disabledGames: any;\n isTouchDevice: boolean;\n gameDataFromLMT: any = [];\n private forceGameLaunchBehaviourSubject = new BehaviorSubject(null);\n coinBalancePublisher = new BehaviorSubject(null);\n coinBalanceObservable: Observable = this.coinBalancePublisher.asObservable();\n coinStoreDetailsPublisher = new BehaviorSubject(null);\n coinStoreDetailsObservable: Observable = this.coinStoreDetailsPublisher.asObservable();\n forceGameLaunchObservable: Observable = this.forceGameLaunchBehaviourSubject.asObservable();\n disjointFeedsInitiated: boolean;\n categoryNotFoundSubject = new BehaviorSubject(null);\n categoryNotFoundObservable: Observable = this.categoryNotFoundSubject.asObservable();\n hideSlotRacesTitlePublisher = new BehaviorSubject(false);\n hideSlotRacesTitleObs: Observable = this.hideSlotRacesTitlePublisher.asObservable();\n optMiniTeasersSource: Array = [];\n postLoginFeedsInitiated: boolean = false;\n gameSelectorWidgetSource: string[] = [];\n lmtConfig: any;\n rpfavandunfinishedcalled: boolean;\n isNewMoreInfoActive: boolean = false;\n private lobbyLoadEventTracked: boolean = false;\n postloginfirstTeaserCall: boolean = false;\n postLoginFirstSlotRaceCall: boolean = false;\n postloginfirstLiveCasinoCall: boolean = false;\n userCoinBalance: number;\n arcadeCoinExpiry: number;\n path: any = 'path';\n hideGlobalSearchBasedOnPath: boolean = false;\n private readonly api = inject(PlatformApiService);\n private readonly casinoApiService = inject(CasinoApiService);\n private readonly cacheManager = inject(CacheManagerService);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly user = inject(UserService);\n private readonly deviceService = inject(DeviceService);\n private readonly recentGamesService = inject(RecentGamesService);\n private readonly page = inject(Page);\n private readonly urlUtility = inject(UrlUtilityService);\n private readonly teaserService = inject(TeaserService);\n private readonly favouriteService = inject(FavouriteService);\n private readonly unfinishedGamesService = inject(UnfinishedGamesService);\n private readonly invokerProductService = inject(InvokerProductService);\n private readonly discoverFeedService = inject(DiscoverFeedService);\n private readonly liveCasinoService = inject(LiveCasinoService);\n private readonly newsFeedService = inject(NewsFeedService);\n private readonly promotedGamesService = inject(PromotedGamesService);\n private readonly freespinSummaryService = inject(FreespinSummaryService);\n private readonly apiPathsHelperService = inject(ApiPathsHelperService);\n private readonly slotRacesService = inject(SlotRacesService);\n private readonly cozybingoService = inject(CozyBingoDataService);\n private readonly cookies = inject(CookieService);\n private readonly thumbnailService = inject(ThumbnailService);\n private readonly windowRef = inject(WindowRef);\n private readonly casinoCoreNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly gameSelectorWidgetService = inject(GameSelectorWidgetService);\n private readonly casinoIFrameOverlayService = inject(CasinoIFrameOverlayService);\n private readonly logger = inject(Logger);\n private readonly gamificationService = inject(GamificationService);\n private readonly casinoCookieService = inject(CasinoCookieService);\n private readonly jackpotAndPromotionsService = inject(JackpotAndPromotionsService);\n private readonly nativeAppService = inject(NativeAppService);\n private readonly utilityService = inject(UtilityService);\n private readonly globalSearchService = inject(GlobalSearchService);\n private readonly geoLocationService = inject(GeoLocationService);\n private readonly gameManagerService = inject(GameManagerService);\n private readonly dslService = inject(DslService);\n private readonly productService = inject(ProductService);\n private readonly navigation = inject(NavigationService);\n\n onAppInit() {\n this.configProviderService.casinoClientConfigObservable.subscribe((isClientConfigLoaded) => {\n if (isClientConfigLoaded) {\n this.geoLocationService.initializeGeolocationCoordinator();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n if (!casinoNpmParams.disableFullLobbyFetch) {\n this.setCasinoLobby(true);\n }\n if (casinoNpmParams.disableFullLobbyFetch && casinoNpmParams.customLobbyTypeMaps && casinoNpmParams.customLobbyTypeMaps.length > 0) {\n this.setPartialCasinoLobbiesforOtherProducts(casinoNpmParams.customLobbyTypeMaps, true, false);\n this.configProviderService.setLmtConfig(casinoNpmParams.customLobbyTypeMaps);\n } else if (casinoNpmParams.disableFullLobbyFetch && casinoNpmParams.targetOverlayLobby) {\n this.setPartialCasinoLobbiesForOverlay();\n }\n //load Coin Expiry\n this.arcadeCoinExpiry = this.calculateCoinArcadeExpiry();\n }\n });\n this.lobbyLoadedObservable.subscribe((lobbyLoadEvent) => {\n if (lobbyLoadEvent) {\n this.onLobbyLoaded(lobbyLoadEvent.initiateFeeds);\n }\n });\n this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n this.lobbyTypeMaps.clear();\n }\n if (this.gameMetaDataMap && this.gameMetaDataMap.size > 0) {\n this.gameMetaDataMap.clear();\n }\n this.postLoginCalls(false, true);\n this.geoLocationService.initializeGeolocationCoordinator();\n this.rpfavandunfinishedcalled = false;\n });\n this.user.events.pipe(filter((e: any) => e instanceof UserLoggingOutEvent)).subscribe(() => {\n this.cookies.remove('PCGameData');\n });\n const pcdata = this.cookies.getObject('PCGameData');\n if (pcdata) {\n this.cookies.remove('PCGameData');\n }\n }\n\n checkForTouchDevice() {\n try {\n this.isTouchDevice =\n !this.nativeAppService.isDownloadClient &&\n this.deviceService.isTouch &&\n !window.matchMedia('(pointer: fine)').matches &&\n !navigator.userAgent.match(/Win64/ || /WOW64/);\n } catch (error) {\n this.isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n }\n }\n\n private setPartialCasinoLobbiesForOverlay() {\n const overlayConfig = this.configProviderService.provideCasinoAsIFrameConfig();\n this.casinoIFrameOverlayService.setOverlayStatus(true);\n const invokerProduct: string = this.invokerProductService.getInvokerProduct();\n if (overlayConfig?.overlayLobbyTypeMap && overlayConfig.overlayLobbyTypeMap.length > 0) {\n const applicableLobbyTypeMaps: any = overlayConfig.overlayLobbyTypeMap.filter(\n (l: any) => l?.invokerProduct?.toLowerCase() === invokerProduct?.toLowerCase(),\n );\n if (applicableLobbyTypeMaps && applicableLobbyTypeMaps.length > 0) {\n this.setPartialCasinoLobbiesforOtherProducts(applicableLobbyTypeMaps, true, false);\n this.configProviderService.setLmtConfig(applicableLobbyTypeMaps);\n }\n }\n }\n\n private onLobbyLoaded(initiateDisjointFeeds: boolean) {\n if (initiateDisjointFeeds) {\n this.initiateDisjointFeeds(initiateDisjointFeeds);\n }\n if (this.user.isAuthenticated) {\n const initDisjoint =\n this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR) || this.casinoCookieService.isODR(ODR_NAME.SPORTS_WODR)\n ? initiateDisjointFeeds\n : true;\n this.postLoginCalls(true, initDisjoint);\n }\n //Write postlobby calls here\n }\n\n getThumbnailbasedonroute(category: any) {\n if (category?.sitecoreData?.gameThumbnail && category.sitecoreData.gameThumbnail.length > 0) {\n const vipThumail = category.sitecoreData.gameThumbnail.filter((gt: any) => {\n return gt.isVipThumbnail;\n });\n const nonVipThumail = category.sitecoreData.gameThumbnail.filter((gt: any) => {\n return !gt.isVipThumbnail;\n });\n if (!this.user.isAuthenticated && nonVipThumail?.[0]) {\n return nonVipThumail[0];\n } else if (this.user.isAuthenticated) {\n if (!this.user.claims.get('vipLevel') && nonVipThumail[0]) {\n return nonVipThumail[0];\n } else if (this.user.claims.get('vipLevel') && vipThumail[0]) {\n return vipThumail[0];\n } else if (vipThumail.length == 0 && nonVipThumail?.[0]) {\n return nonVipThumail[0];\n }\n }\n }\n }\n\n get isLobbyLoadEventTracked(): boolean {\n return this.lobbyLoadEventTracked;\n }\n\n setLobbyLoadEventTrackingStatus(status: boolean): void {\n this.lobbyLoadEventTracked = status;\n }\n\n private initGameSelectorWidget(): void {\n if (this.gameSelectorWidgetSource?.length) {\n const widgetPaths = [...new Set(this.gameSelectorWidgetSource.map((item) => item[this.path]))];\n this.gameSelectorWidgetService.fetchWidgets(widgetPaths);\n }\n }\n\n refreshFeeds() {\n if (this.disjointFeedsInitiated && this.configProviderService.providePromotedGamesConfig()?.isEnabled) {\n this.promotedGamesService.setPromotedGames();\n }\n if (this.user.isAuthenticated) {\n if (this.postLoginFeedsInitiated) {\n this.recentGamesService.setRecentGames();\n this.unfinishedGamesService.setUnfinishedGames();\n }\n } else if (\n this.disjointFeedsInitiated &&\n this.configProviderService.provideFeaturesConfig()?.enablePreLoginRecentlyPlayed &&\n this.cookies.get('lastVisitor')\n ) {\n this.recentGamesService.setRecentGames();\n }\n }\n\n private initiateDisjointFeeds(initiateDisjointFeeds: boolean) {\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstTeaserCall)) {\n this.teaserService.setTeasers();\n if (this.user.isAuthenticated) {\n this.postloginfirstTeaserCall = true;\n } else {\n this.initGameSelectorWidget();\n }\n }\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n if (lmtConfig.enableDynamicSequentialCalls && !this.rpfavandunfinishedcalled) {\n this.recentGamesService.setRecentGames();\n this.favouriteService.setFavouriteGames();\n this.unfinishedGamesService.setUnfinishedGames();\n this.rpfavandunfinishedcalled = true;\n }\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n this.jackpotAndPromotionsService.initiateJackpotFeedsAndGames();\n const optMiniTeaserPaths = [...new Set(this.optMiniTeasersSource.map((item) => item[this.path]))];\n this.teaserService.fetchOptMiniTeasers(optMiniTeaserPaths);\n const discoverFeedConfig = this.configProviderService.provideDiscoverFeedConfig();\n if (discoverFeedConfig.enableDiscoverFeed) {\n this.discoverFeedService.GetDiscoverFeedSitecoreData();\n }\n const liveCasinoConfig = this.configProviderService.provideLiveCasinoConfig();\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstLiveCasinoCall)) {\n if (liveCasinoConfig.enabled && !casinoNpmParams?.isDisableLiveCasinoCalls) {\n this.liveCasinoService.getLiveCasinoData(true);\n }\n if (this.user.isAuthenticated) this.postloginfirstLiveCasinoCall = true;\n }\n const promotedGamesConfig = this.configProviderService.providePromotedGamesConfig();\n if (promotedGamesConfig.isEnabled) {\n this.promotedGamesService.setPromotedGames();\n }\n const newsFeedConfig = this.configProviderService.provideNewsFeedCasinoConfig();\n if (newsFeedConfig.isEnabled) {\n this.newsFeedService.setNewsFeed();\n }\n\n if (!this.user.isAuthenticated && featuresConfig.enablePreLoginRecentlyPlayed && this.cookies.get('lastVisitor')) {\n this.recentGamesService.setRecentGames();\n }\n this.initializeSlotRaces(initiateDisjointFeeds);\n //Write postlobby calls here\n this.disjointFeedsInitiated = true;\n }\n\n // private initSlotRaces() {\n // let casinoCoreNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n // if (casinoCoreNpmParams && !casinoCoreNpmParams.disableSlotracesCallsOnBootstrap) {\n // this.initializeSlotRaces();\n // }\n // }\n\n initializeSlotRaces(initiateDisjointFeeds: boolean) {\n if (initiateDisjointFeeds && (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postLoginFirstSlotRaceCall))) {\n const slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n const widgetConfig = this.configProviderService.providewidgetConfig();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n if (\n ((slotRacesConfig?.enableSlotRaces || slotRacesConfig?.enableSlotRacesPhase2) && !casinoNpmParams.disableSlotracesCallsOnBootstrap) ||\n ((slotRacesConfig?.enableSlotRaces || slotRacesConfig?.enableSlotRacesPhase2) &&\n widgetConfig?.enableSlotRacesForOtherProducts &&\n casinoNpmParams?.disableSlotracesCallsOnBootstrap)\n ) {\n this.slotRacesService.forceOptin();\n this.slotRacesService.forceCoinBalance();\n const gameDataMap = this.getGameMetaData();\n const disabledGames = this.getDisabledGames();\n this.slotRacesService.initSlotRaces(\n gameDataMap,\n disabledGames,\n this.lobbyTypeMaps?.get(slotRacesConfig.slotraceLobbytypeForGamesOrdering),\n casinoNpmParams.isDll,\n true,\n );\n }\n if (this.user.isAuthenticated) this.postLoginFirstSlotRaceCall = true;\n }\n }\n\n isDisjointFeedsInitiated(): boolean {\n return this.disjointFeedsInitiated;\n }\n\n private postLoginCalls(fromOnLobbyLoaded: boolean, initiateDisjointFeeds: boolean) {\n this.lmtConfig = this.configProviderService.provideLmtConfig();\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n if (!fromOnLobbyLoaded) {\n if (\n casinoNpmParams &&\n casinoNpmParams.disableFullLobbyFetch &&\n casinoNpmParams.customLobbyTypeMaps &&\n casinoNpmParams.customLobbyTypeMaps.length > 0\n ) {\n this.setPartialCasinoLobbiesforOtherProducts(casinoNpmParams.customLobbyTypeMaps, true, false);\n } else if (casinoNpmParams.disableFullLobbyFetch && casinoNpmParams.targetOverlayLobby) {\n this.setPartialCasinoLobbiesForOverlay();\n } else {\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n if (!lmtConfig.enablePostloginPartialCalls) {\n this.setCasinoLobby(false, !fromOnLobbyLoaded);\n }\n }\n } else {\n this.initiatePostLoginDisjointFeeds(initiateDisjointFeeds);\n }\n }\n\n private handleForceGameLaunch() {\n const modularSettingsConfig = this.configProviderService.provideModularSettingsConfig();\n setTimeout(() => {\n const forceLoginGameObjectExpirationTime = modularSettingsConfig.forceLoginGameObjectExpirationTime;\n const currentTimeStamp = new Date().getTime();\n const forceGameLaunchObjData = this.cacheManager.readForceGameLaunchObjDataFromSessionStorage('CasinoCoreForceGameObj');\n if (forceGameLaunchObjData) {\n if (forceGameLaunchObjData.gameLaunchParam && forceGameLaunchObjData.gameLaunchParam.from == 'thumbnail') {\n this.cacheManager.setThumbnailLocalStorageCacheMap(\n forceGameLaunchObjData.gameLaunchParam.lobbyType,\n forceGameLaunchObjData.gameLaunchParam.game.gameId,\n true,\n );\n this.thumbnailService.setThumbnailData(forceGameLaunchObjData.gameLaunchParam);\n }\n forceGameLaunchObjData.gameLaunchParam.noGameTraking = true;\n sessionStorage.removeItem('CasinoCoreForceGameObj');\n if (currentTimeStamp - forceGameLaunchObjData.timeStamp <= forceLoginGameObjectExpirationTime * 1000) {\n this.forceGameLaunchBehaviourSubject.next(forceGameLaunchObjData);\n }\n }\n }, modularSettingsConfig.forceGameLaunchExecutionTimeOut);\n }\n\n checkIfGamePremiereEnabledForCategory(lobbyType: string, categoryRoute: string): boolean {\n if (lobbyType == undefined || lobbyType == null || lobbyType == '') return false;\n\n if (categoryRoute == undefined || categoryRoute == null || categoryRoute == '') return false;\n\n const gamePremiereConfig = this.configProviderService.provideGamePremiereConfig();\n const showGamePremiereByLobbyTypeCategory = gamePremiereConfig.showGamePremiereByLobbyTypeCategory;\n\n if (\n showGamePremiereByLobbyTypeCategory == null ||\n showGamePremiereByLobbyTypeCategory == undefined ||\n showGamePremiereByLobbyTypeCategory?.length <= 0\n ) {\n return false;\n }\n\n const gamePremiereCurrentLobbyType = showGamePremiereByLobbyTypeCategory.find(\n (x: any) => x?.lobbyType.toLowerCase() == lobbyType.toLowerCase(),\n );\n\n if (gamePremiereCurrentLobbyType == null || gamePremiereCurrentLobbyType == undefined) return false;\n\n //Enables for all the Categories if there are no categories\n if (gamePremiereCurrentLobbyType.category == null || gamePremiereCurrentLobbyType.category?.length <= 0) {\n return true;\n }\n\n if (gamePremiereCurrentLobbyType.category.some((x: any) => x?.toLowerCase() === categoryRoute.toLowerCase())) {\n return true;\n }\n\n return false;\n }\n\n private initiatePostLoginDisjointFeeds(initiateDisjointFeeds: boolean) {\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstTeaserCall)) {\n this.teaserService.setTeasers();\n if (this.user.isAuthenticated) this.postloginfirstTeaserCall = true;\n }\n if (this.user.isAuthenticated && !this.postLoginFeedsInitiated) {\n //checkForForcedLogin\n this.handleForceGameLaunch();\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n if (!lmtConfig.enableDynamicSequentialCalls && !this.rpfavandunfinishedcalled) {\n this.recentGamesService.setRecentGames();\n this.favouriteService.setFavouriteGames();\n this.unfinishedGamesService.setUnfinishedGames();\n this.rpfavandunfinishedcalled = true;\n }\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n this.initiatePostLoginFeatures(casinoNpmParams);\n this.initGameSelectorWidget();\n const optMiniTeaserPaths = [...new Set(this.optMiniTeasersSource.map((item) => item[this.path]))];\n this.teaserService.fetchOptMiniTeasers(optMiniTeaserPaths);\n this.initiatePostLoginRemainingFeed(casinoNpmParams, initiateDisjointFeeds);\n this.jackpotAndPromotionsService.initiateJackpotandPromotionBanner(casinoNpmParams);\n this.subscribeCoinBalance();\n this.postLoginFeedsInitiated = true;\n }\n }\n\n getApplicableLobbyTypes(applicableLobbyTypeMaps: any): any {\n applicableLobbyTypeMaps = applicableLobbyTypeMaps.filter(\n (af: any) => af?.invokerProduct?.toLowerCase() === this.invokerProductService.getInvokerProduct() && af.fetchMeta,\n );\n return applicableLobbyTypeMaps;\n }\n\n private getApplicableLobbyTypeMapsDynacon(): any[] {\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n const applicableLobbyTypeMaps = lmtConfig.lobbyTypeMap;\n //TODO: filter as per invokerProduct\n return this.getApplicableLobbyTypes(applicableLobbyTypeMaps);\n }\n\n hideGlobalSearchHeaderAndStickyEntryBasedOnPath(): boolean {\n const getCurrentPath: string = this.navigation.location.pathname;\n const globalSearchConfig = this.configProviderService.provideGlobalSearchConfig();\n const globalSearchPathBasedEnabler = globalSearchConfig.pathBasedEnabler;\n const disabledGlobalSearchPaths: string[] = globalSearchPathBasedEnabler.disablePaths;\n const enabledGlobalSearchPaths: string[] = globalSearchPathBasedEnabler.enablePaths;\n if (globalSearchPathBasedEnabler) {\n this.hideGlobalSearchBasedOnPath = disabledGlobalSearchPaths.some((disablePath) => getCurrentPath.includes(disablePath));\n } else if (enabledGlobalSearchPaths) {\n this.hideGlobalSearchBasedOnPath = !enabledGlobalSearchPaths.some((enablePath) => getCurrentPath.includes(enablePath));\n } else {\n this.hideGlobalSearchBasedOnPath = false;\n }\n return this.hideGlobalSearchBasedOnPath;\n }\n\n hideGlobalSearch(): void {\n dispatchEvent(new CustomEvent('gs:hideHeaderEntry'));\n dispatchEvent(new CustomEvent('gs:hideFloatingEntry'));\n }\n\n showGlobalSearch(): void {\n dispatchEvent(new CustomEvent('gs:showHeaderEntry'));\n dispatchEvent(new CustomEvent('gs:showFloatingEntry'));\n }\n\n hidingGlobalSearch(): void {\n if (this.hideGlobalSearchHeaderAndStickyEntryBasedOnPath() && this.hideGlobalSearchBasedOnPath) {\n this.hideGlobalSearch();\n } else {\n this.showGlobalSearch();\n }\n }\n\n async retrieveRawLobbyTypesMapDataFromLocalStorage(respondBack: boolean = false) {\n const applicableLobbyTypeMaps: LobbyMetaData[] = this.getApplicableLobbyTypeMapsDynacon();\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const collectedLobbies: any = [];\n let allApplicableLobbyDataPresent: boolean = false;\n\n if (applicableLobbyTypeMaps && applicableLobbyTypeMaps.length > 0) {\n for (let i = 0; i < applicableLobbyTypeMaps.length; i++) {\n const lobbyType: string = applicableLobbyTypeMaps[i].lobbyType;\n const lobbyTypeMapsInCache: LobbyItemBaseModel | undefined | any = await this.cacheManager.readCategoryDataLocalCache(\n featuresConfig.browserLocalStorageCategoryDataUpdateInterval,\n lobbyType,\n applicableLobbyTypeMaps[i]?.invokerProduct?.toLowerCase(),\n );\n if (lobbyTypeMapsInCache != null) {\n collectedLobbies.push({\n lobbyType,\n feed: lobbyTypeMapsInCache,\n });\n allApplicableLobbyDataPresent = true;\n } else {\n allApplicableLobbyDataPresent = false;\n break;\n }\n }\n if (allApplicableLobbyDataPresent && collectedLobbies && collectedLobbies.length > 0) {\n dispatchEvent(\n new CustomEvent('LocalStorage_Collected_Lobbies', {\n detail: { collectedLobbies },\n }),\n );\n } else if (respondBack) {\n dispatchEvent(new CustomEvent('LocalStorage_Collected_Lobbies'));\n }\n this.globalSearchService.hidingGlobalSearch();\n }\n }\n\n async checkAndRetrieveAllLobbyTypeMapsOnLocalStorage(applicableLobbyTypeMaps: any): Promise | any> {\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const lobbyTypeMaps: Map = new Map();\n let allApplicableLobbyDataPresent: boolean = false;\n\n if (applicableLobbyTypeMaps && applicableLobbyTypeMaps.length > 0) {\n for (let i = 0; i < applicableLobbyTypeMaps.length; i++) {\n const lobbyTypeMapsInCache: LobbyItemBaseModel | any = await this.cacheManager.readCategoryDataLocalCache(\n featuresConfig.browserLocalStorageCategoryDataUpdateInterval,\n applicableLobbyTypeMaps[i].lobbyType,\n applicableLobbyTypeMaps[i]?.invokerProduct?.toLowerCase(),\n );\n\n if (lobbyTypeMapsInCache != null) {\n const UILobby: LobbyItem = new LobbyItem();\n UILobby.setLobbyItemFromLocalStorage(lobbyTypeMapsInCache);\n // filling gameMetaDataMap\n for (let i = 0; i < lobbyTypeMapsInCache?.lsGameMetaDataMap?.length; i++) {\n const gameItem = lobbyTypeMapsInCache?.lsGameMetaDataMap[i][1];\n this.gameMetaDataMap.set(gameItem.game, gameItem);\n }\n lobbyTypeMaps.set(applicableLobbyTypeMaps[i].lobbyType, UILobby);\n allApplicableLobbyDataPresent = true;\n } else {\n allApplicableLobbyDataPresent = false;\n break;\n }\n }\n this.gameManagerService.updateMetaData(this.gameMetaDataMap);\n } else {\n this.logger.error('Please configure necessary lobbyTypeMaps in dynacon');\n allApplicableLobbyDataPresent = false;\n }\n\n if (this.gJLobbyTypeMaps && this.gJLobbyTypeMaps.size > 0) {\n this.gJLobbyTypeMaps.forEach((v: any, k: string) => {\n lobbyTypeMaps.set(k, v);\n });\n }\n\n if (lobbyTypeMaps && lobbyTypeMaps.size > 0) {\n this.gameSelectorWidgetSource = [];\n const gameSelectorWidgetConfig = this.configProviderService.provideGameSelectorWidgetConfig();\n\n this.optMiniTeasersSource = [];\n const optimizedTeaserConfig = this.configProviderService.provideOptimizedTeaserConfig();\n\n lobbyTypeMaps.forEach((lobbyType: any) => {\n if (lobbyType.categoriesMap && lobbyType.categoriesMap.size > 0) {\n lobbyType.categoriesMap.forEach((category: any) => {\n const catSitecoreData = category.sitecoreData;\n if (\n gameSelectorWidgetConfig?.isEnabled &&\n catSitecoreData?.displayGameSelectorWidget &&\n catSitecoreData?.gameSelectorWidget\n ) {\n this.gameSelectorWidgetSource.push(catSitecoreData?.gameSelectorWidget);\n }\n\n if (\n catSitecoreData?.optimisedMiniTeasers?.length &&\n optimizedTeaserConfig.teaserOptimization &&\n optimizedTeaserConfig.enableOptMiniTeasers &&\n !this.isTouchDevice\n ) {\n this.optMiniTeasersSource.push(...catSitecoreData.optimisedMiniTeasers);\n }\n });\n }\n });\n }\n return allApplicableLobbyDataPresent ? lobbyTypeMaps : new Map();\n }\n\n private async checkAndRetrieveAllCustomLobbyTypeMapsOnLocalStorage(customLobbyTypes: any): Promise | any> {\n const customLobbyTypeMaps: any = this.getApplicableLobbyTypes(customLobbyTypes);\n return this.checkAndRetrieveAllLobbyTypeMapsOnLocalStorage(customLobbyTypeMaps);\n }\n\n async checkAndRetrieveAllApplicableLobbyTypeMapsOnLocalStorage(): Promise | any> {\n const applicableLobbyTypeMaps = this.getApplicableLobbyTypeMapsDynacon();\n return this.checkAndRetrieveAllLobbyTypeMapsOnLocalStorage(applicableLobbyTypeMaps);\n }\n\n async setPartialCasinoLobby(lobbyType: string) {\n this.lmtConfig = this.configProviderService.provideLmtConfig();\n await this.readAndDispatchLobbyDataForGlobalSearch();\n if (this.lobbyTypeMaps?.size > 0 && this.lobbyTypeMaps?.get(lobbyType)?.categoriesMap) {\n return;\n }\n this.lobbyTypeMaps = await this.checkAndRetrieveAllApplicableLobbyTypeMapsOnLocalStorage();\n if (!this.lobbyTypeMaps) {\n this.lobbyTypeMaps = new Map();\n }\n if (this.lobbyTypeMaps?.size > 0 && this.lobbyTypeMaps?.get(lobbyType)?.categoriesMap) {\n this.setCasinoLobbyFromLocalStorage(this.lobbyTypeMaps, true);\n } else {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const invokerProduct: string = this.invokerProductService.getInvokerProduct();\n this.casinoApiService.getCasinoProductApi(apiPathsConfig.lmt.lmtPartialFeed, { lobbyType, invokerProduct }).subscribe(\n async (response: any) => {\n if (response) {\n // for testing language content is not available from the feed please don't delete this commented block\n // if (this.lmtConfig?.enableLMTMockData) {\n // delete response?.collectedLobby[0]?.lobbyFeedJson?.lobbyconfiguration?.languageContent;\n // }\n this.setLobbyContent(response, false);\n if (this.lmtConfig.enablePostloginPartialCalls) {\n const postLogin = this.user.isAuthenticated ? true : false;\n this.setCasinoLobby(true, postLogin);\n } else {\n this.setCasinoLobby(true);\n }\n await this.readAndDispatchLobbyDataForGlobalSearch();\n }\n },\n (error) => {\n this.logger.error('Unable to retrieve casino lobby data' + error);\n },\n );\n }\n }\n\n async setPartialCasinoLobbiesforOtherProducts(customLobbyTypes: any, initiateDisjointFeeds: boolean, postLogin: boolean = false) {\n this.lobbyTypeMaps = await this.checkAndRetrieveAllCustomLobbyTypeMapsOnLocalStorage(customLobbyTypes);\n if (!this.lobbyTypeMaps) {\n this.lobbyTypeMaps = new Map();\n }\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n this.setCasinoLobbyFromLocalStorage(this.lobbyTypeMaps, initiateDisjointFeeds, postLogin);\n } else {\n if (this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR) || this.casinoCookieService.isODR(ODR_NAME.SPORTS_WODR)) {\n customLobbyTypes = this.configProviderService.provideLmtConfig()?.otherProductsLobbyTypeForOdr\n ? this.configProviderService.provideLmtConfig().otherProductsLobbyTypeForOdr\n : null;\n }\n const endPoint = this.apiPathsHelperService.transformApi(\n 'lmtfeed/GetCustomLobbyTypesFeed?invokerProduct=${args[0]}',\n this.invokerProductService.getInvokerProduct(),\n );\n this.api.post(endPoint, customLobbyTypes, { withCredentials: true }).subscribe(\n async (response: any) => {\n if (response) {\n this.setLobbyContent(response, initiateDisjointFeeds, postLogin);\n await this.readAndDispatchLobbyDataForGlobalSearch();\n }\n },\n (error) => {\n this.logger.error('Unable to retrieve casino lobby data' + error);\n },\n );\n }\n }\n\n async readAndDispatchLobbyDataForGlobalSearch(respondBack: boolean = false) {\n const globalSearchConfig = this.configProviderService.provideGlobalSearchConfig();\n globalSearchConfig?.isEnabled && (await this.retrieveRawLobbyTypesMapDataFromLocalStorage(respondBack));\n }\n\n //Call this function to set the content of the lobby\n\n async setCasinoLobby(initiateDisjointFeeds: boolean, postLogin: boolean = false, fromGlobalJackpotFeedInit: boolean = false) {\n const tempLobbyTypeMaps: Map = cloneDeep(this.lobbyTypeMaps);\n // let tempLobbyTypeMaps: Map = new Map([...this.lobbyTypeMaps].map(x => Object.assign({}, x))) ;\n const lmtConfig: any = this.configProviderService.provideLmtConfig();\n this.lobbyTypeMaps = await this.checkAndRetrieveAllApplicableLobbyTypeMapsOnLocalStorage();\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n if (!this.lobbyTypeMaps) {\n this.lobbyTypeMaps = new Map();\n }\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n this.setCasinoLobbyFromLocalStorage(this.lobbyTypeMaps, initiateDisjointFeeds, postLogin);\n } else {\n this.lobbyTypeMaps = tempLobbyTypeMaps || new Map();\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const endPoint = this.apiPathsHelperService.transformApi(\n apiPathsConfig.lmt.lmtFeedOfProduct,\n this.invokerProductService.getInvokerProduct(),\n );\n\n this.casinoApiService.getCasinoProductApi(endPoint, null).subscribe(\n async (response: any) => {\n if (response) {\n if (lmtConfig.enableDynamicSequentialCalls && !this.rpfavandunfinishedcalled) {\n this.recentGamesService.setRecentGames();\n this.favouriteService.setFavouriteGames();\n this.unfinishedGamesService.setUnfinishedGames();\n this.rpfavandunfinishedcalled = true;\n }\n this.setLobbyContent(response, initiateDisjointFeeds, postLogin);\n await this.readAndDispatchLobbyDataForGlobalSearch();\n if (featuresConfig?.storeVendorInfoInCache && !fromGlobalJackpotFeedInit) {\n this.getAllVendorDetails();\n }\n }\n },\n (error) => {\n this.logger.error('Unable to retrieve casino lobby data' + error);\n },\n );\n }\n }\n\n private getAllVendorDetails() {\n this.api.get('QuickInfo/ProcessVendors').subscribe({\n next: () => {},\n error: (error) => {\n this.logger.error('Unable to retrieve vendors data' + error);\n },\n });\n }\n\n private subscribeCoinBalance() {\n this.gamificationService.coinBalance.subscribe(\n (coinBalRes: any) => {\n this.userCoinBalance = parseInt(coinBalRes?.balance);\n const coinsEarnedInCurrentMonth = coinBalRes.additionalAttribs.find((obj: any) => obj.key === '#COINS_EARNED_CURRENT_MONTH#').value;\n if (this.userCoinBalance > 0) {\n const balance =\n new Date().getDate() >= this.configProviderService.providePromoCoinEconomyConfig()?.coinExpiryDay\n ? this.userCoinBalance\n : this.userCoinBalance - coinsEarnedInCurrentMonth;\n if (balance > 0) this.coinBalancePublisher.next(+balance);\n }\n },\n (error) => {\n this.logger.error('Unable to retrieve coin balance' + error);\n },\n );\n }\n\n //no references for this function\n getCoinBalance() {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n return this.api.get(apiPathsConfig.slotRaces.racesCoinBalance, {}, { withCredentials: true });\n }\n\n private setCasinoLobbyFromLocalStorage(\n lobbyTypeMapsFromLocalStorage: Map,\n initiateDisjointFeeds: boolean,\n postLogin: boolean = false,\n ) {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n this.casinoApiService.getCasinoProductApi(apiPathsConfig.gamesServices.disabledGames, null).subscribe(\n (response) => {\n this.disabledGames = response;\n const lobbyLoadEvent: any = {\n lobbyTypeMaps: lobbyTypeMapsFromLocalStorage,\n initiateFeeds: initiateDisjointFeeds,\n userAuthenticated: this.user.isAuthenticated,\n isPostLogin: postLogin,\n };\n this.publishLobbyLoadedEvent(lobbyLoadEvent);\n },\n (error) => {\n this.logger.error(error);\n const lobbyLoadEvent: any = {\n lobbyTypeMaps: lobbyTypeMapsFromLocalStorage,\n initiateFeeds: initiateDisjointFeeds,\n userAuthenticated: this.user.isAuthenticated,\n isPostLogin: postLogin,\n };\n this.publishLobbyLoadedEvent(lobbyLoadEvent);\n },\n );\n }\n\n async setCasinoLobbyForInvokerProduct(lobbyType: string, invokerProduct: string) {\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n this.lobbyTypeMapsForInvokerProduct.clear();\n const lobbyTypeMapsInCache: LobbyItemBaseModel | any = await this.cacheManager.readCategoryDataLocalCache(\n featuresConfig.browserLocalStorageCategoryDataUpdateInterval,\n lobbyType,\n invokerProduct?.toLowerCase(),\n );\n\n if (lobbyTypeMapsInCache) {\n const UILobby: LobbyItem = new LobbyItem();\n UILobby.setLobbyItemFromLocalStorage(lobbyTypeMapsInCache);\n this.lobbyTypeMapsForInvokerProduct.set(lobbyType, UILobby);\n }\n if (this.lobbyTypeMapsForInvokerProduct && this.lobbyTypeMapsForInvokerProduct.size > 0) {\n const lobbyLoadEvent: any = {\n lobbyTypeMaps: this.lobbyTypeMapsForInvokerProduct,\n userAuthenticated: this.user.isAuthenticated,\n };\n this.publishLobbyLoadedEventForInvokerProduct(lobbyLoadEvent);\n } else {\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n\n this.casinoApiService\n .getCasinoProductApi(apiPathsConfig.lmt.lmtPartialFeed, { lobbyType, invokerProduct }, { withCredentials: true })\n .subscribe(\n (response: any) => {\n if (response) {\n this.setLobbyContentForInvokerProduct(response, lobbyType, invokerProduct);\n }\n },\n (error) => {\n this.logger.error('Unable to retrieve casino lobby data' + error);\n },\n );\n }\n }\n\n initiateCasinoLobby(casinoCoreNpmParams: CasinoCoreNpmParams) {\n this.casinoCoreNpmParamsService.setcasinoCoreNpmParams(casinoCoreNpmParams);\n this.configProviderService.fillClientConfig(casinoCoreNpmParams.isDll);\n //We dont need this as we fetch this from vanilla deviceService.isTouch\n //Check for usages and replace it with deviceService.isTouch\n this.checkForTouchDevice();\n }\n\n private publishLobbyLoadedEvent(lobbyLoadEvent: any) {\n this.setSearchCriteriaforCategoryGames();\n lobbyLoadEvent.isLoggedIn = this.user.isAuthenticated;\n this.lobbyLoadedSubject.next(lobbyLoadEvent);\n this.raiseLobbyLoadedEvent(lobbyLoadEvent);\n }\n\n private publishLobbyLoadedEventForInvokerProduct(lobbyLoadEvent: any) {\n this.lobbyLoadedSubjectForInvokerProduct.next(lobbyLoadEvent);\n this.raiseLobbyLoadedEvent(lobbyLoadEvent);\n }\n\n private setLobbyContent(lobbyData: any, initiateDisjointFeeds: boolean, postLogin: boolean = false) {\n this.setLobbySitecoreData(lobbyData.collectedSitecoreCategory);\n this.setLobbyTypeMaps(lobbyData.collectedLobby, initiateDisjointFeeds, postLogin);\n this.setDisabledGames(lobbyData.disabledGames);\n }\n\n private setLobbyContentForInvokerProduct(lobbyData: any, lobbyType: string, invokerProduct: string) {\n this.setLobbySitecoreDataForInvokerProduct(lobbyData.collectedSitecoreCategory);\n this.setLobbyTypeMapsForInvokerProduct(lobbyData.collectedLobby, lobbyType, invokerProduct);\n }\n\n private setLobbySitecoreData(lobbySitecoreData: any) {\n this.lobbySitecoreData = lobbySitecoreData;\n }\n\n private setLobbySitecoreDataForInvokerProduct(lobbySitecoreData: any) {\n this.lobbySitecoreDataForInvokerProduct = lobbySitecoreData;\n }\n\n private getLobbySitecoreData() {\n return this.lobbySitecoreData ? this.lobbySitecoreData : this.lobbySitecoreDataForInvokerProduct;\n }\n\n private setLobbyTypeMaps(lobbiesInfo: any, initiateDisjointFeeds: boolean, postLogin: boolean = false) {\n if (lobbiesInfo && lobbiesInfo.length > 0) {\n for (let i = 0; i < lobbiesInfo.length; i++) {\n const lobbyMapItem: LobbyInfo = this.getLobbyTypeItemMap(lobbiesInfo[i]);\n this.lobbyTypeMaps.set(lobbyMapItem.key, lobbyMapItem.value);\n this.cacheManager.writeCategoryLocalStorageCacheMap(\n lobbyMapItem.key,\n cloneDeep(lobbyMapItem.value),\n //{...lobbyMapItem.value},\n this.invokerProductService.getInvokerProduct(),\n );\n }\n\n if (this.gJLobbyTypeMaps && this.gJLobbyTypeMaps.size > 0) {\n this.gJLobbyTypeMaps.forEach((v: any, k: string) => {\n this.lobbyTypeMaps.set(k, v);\n });\n }\n const lobbyLoadEvent: any = {\n lobbyTypeMaps: this.lobbyTypeMaps,\n initiateFeeds: initiateDisjointFeeds,\n userAuthenticated: this.user.isAuthenticated,\n isPostLogin: postLogin,\n };\n this.publishLobbyLoadedEvent(lobbyLoadEvent);\n }\n }\n\n private setLobbyTypeMapsForInvokerProduct(lobbiesInfo: any, lobbyType: string, invokerProduct: string) {\n let checkForLobbyTypeInLobbiesInfo: boolean = false;\n if (lobbiesInfo && lobbiesInfo.length > 0) {\n for (let i = 0; i < lobbiesInfo.length; i++) {\n if (lobbyType == lobbiesInfo[i].lobbyType) {\n checkForLobbyTypeInLobbiesInfo = true;\n lobbiesInfo = lobbiesInfo[i];\n break;\n }\n }\n if (checkForLobbyTypeInLobbiesInfo) {\n const lobbyMapItem: LobbyInfo = this.getLobbyTypeItemMap(lobbiesInfo);\n this.lobbyTypeMapsForInvokerProduct.set(lobbyMapItem.key, lobbyMapItem.value);\n this.cacheManager.writeCategoryLocalStorageCacheMap(\n lobbyMapItem.key,\n cloneDeep(lobbyMapItem.value),\n //{...lobbyMapItem.value},\n invokerProduct?.toLowerCase(),\n );\n }\n const lobbyLoadEvent: any = {\n lobbyTypeMaps: this.lobbyTypeMapsForInvokerProduct,\n userAuthenticated: this.user.isAuthenticated,\n };\n this.publishLobbyLoadedEventForInvokerProduct(lobbyLoadEvent);\n }\n }\n\n private getLobbyTypeItemMap(lobbyInfo: any) {\n const lobbyContent: LobbyItem = this.getLobbyContent(lobbyInfo?.lobbyFeedJson?.lobbyconfiguration, lobbyInfo?.lobbyType);\n const MapKeyValuePair: LobbyInfo = {\n key: lobbyInfo?.lobbyType,\n value: lobbyContent,\n };\n return MapKeyValuePair;\n }\n\n setDisabledGames(disabledGamesData: any) {\n this.disabledGames = disabledGamesData;\n }\n\n getDisabledGames() {\n if (this.disabledGames) {\n return this.disabledGames;\n }\n return [];\n }\n\n private getLobbyContent(lobbyConfiguration: any, lobbyType: string): LobbyItem {\n let categoryTitleLanguageMap: Map = new Map();\n let stickerTitleLanguageMap: Map = new Map();\n let gameMetaDataMap: Map = new Map();\n if (lobbyConfiguration) {\n if (lobbyConfiguration.languageContent?.[0]) {\n if (lobbyConfiguration.languageContent[0].categories && lobbyConfiguration.languageContent[0].categories.length > 0) {\n categoryTitleLanguageMap = this.utilityService.getLanguageContentMap(lobbyConfiguration.languageContent[0].categories);\n }\n if (lobbyConfiguration.languageContent[0].stickers && lobbyConfiguration.languageContent[0].stickers.length > 0) {\n stickerTitleLanguageMap = this.utilityService.getLanguageContentMap(lobbyConfiguration.languageContent[0].stickers);\n }\n }\n if (lobbyConfiguration?.gamemetadata && lobbyConfiguration.gamemetadata?.length > 0) {\n gameMetaDataMap = this.getGameMetaDataMap(lobbyConfiguration.gamemetadata, lobbyType);\n }\n }\n const lobbyCategoriesMap: Map = new Map();\n const lobbySubCategoriesMap: Map = new Map();\n\n if (lobbyConfiguration?.categories && lobbyConfiguration.categories.length > 0) {\n for (let i = 0; i < lobbyConfiguration.categories.length; i++) {\n const lobbyCategory: any = this.getLobbyCategory(lobbyConfiguration.categories[i], categoryTitleLanguageMap, lobbyType);\n if (lobbyCategory.subcategories && lobbyCategory.subcategories.length > 0) {\n lobbyCategory.lmtSubCategories = [];\n for (let j = 0; j < lobbyCategory.subcategories.length; j++) {\n const lobbySubCategory: any = this.getLobbySubCategory(lobbyCategory.subcategories[j], categoryTitleLanguageMap, lobbyType);\n lobbySubCategory.parentCategoryId = lobbyCategory.categoryid; //this.getParentCategoryId(lobbyCategory.subcategories[j], allLobbyCategories);\n lobbySubCategory.parentLMTCategoryId = lobbyCategory.lmtCategoryId;\n lobbySubCategory.filterRecentlyPlayedGames = this.isFilterRecentlyPlayedGames(\n lobbyConfiguration.catVsFeatureMetadata,\n lobbySubCategory,\n );\n lobbySubCategory.havingCasiaGames = this.filterCasiaCategory(lobbyConfiguration.catVsFeatureMetadata, lobbySubCategory);\n if (this.configProviderService.provideAdvanceGameDataConfig().enableFeatureId) {\n lobbySubCategory.filterFeatureIds = this.isFilterFeatureIds(lobbyConfiguration.catVsFeatureMetadata, lobbySubCategory);\n }\n if (lobbySubCategory.route) lobbySubCategoriesMap.set(lobbySubCategory.route, lobbySubCategory);\n lobbyCategory.lmtSubCategories.push(lobbySubCategory.categoryid);\n }\n }\n if (lobbyCategory.route) lobbyCategoriesMap.set(lobbyCategory.route, lobbyCategory);\n }\n\n const recentPlayedCategory: any = {\n categoryid: ConstService?.Recent_Games?.toLowerCase(),\n route: ConstService?.Recent_Games?.toLowerCase(),\n categoryname: this.getCategoryNameFromSitecore(ConstService?.Recent_Games?.toLowerCase(), lobbyType, true),\n subTitle: this.getSubtitleFromSitecore(ConstService?.Recent_Games?.toLowerCase(), lobbyType),\n isNavigationCategory: true,\n sitecoreData: this.getSitecoreInfoForCategoryIdAndLobbyType(ConstService?.Recent_Games?.toLowerCase(), lobbyType),\n isSubCatVisible: false,\n lmtCategoryId: ConstService.Recent_Games.toUpperCase(),\n engCategoryName: 'RECENTGAMES',\n };\n\n lobbyCategoriesMap.set(recentPlayedCategory.route, recentPlayedCategory);\n\n const favouritesCategory: any = {\n categoryid: ConstService?.Favourite_Games?.toLowerCase(),\n route: ConstService?.Favourite_Games?.toLowerCase(),\n categoryname: this.getCategoryNameFromSitecore(ConstService?.Favourite_Games?.toLowerCase(), lobbyType, true),\n subTitle: this.getSubtitleFromSitecore(ConstService?.Favourite_Games?.toLowerCase(), lobbyType),\n isNavigationCategory: true,\n sitecoreData: this.getSitecoreInfoForCategoryIdAndLobbyType(ConstService?.Favourite_Games?.toLowerCase(), lobbyType),\n isSubCatVisible: true,\n lmtCategoryId: ConstService.Favourite_Games.toUpperCase(),\n engCategoryName: 'FAVOURITEGAMES',\n };\n lobbyCategoriesMap.set(favouritesCategory.route, favouritesCategory);\n if (lobbySubCategoriesMap.size > 0) {\n lobbySubCategoriesMap.forEach((subcategory: any, subcategoryRoute: string) => {\n lobbyCategoriesMap.set(subcategoryRoute, subcategory);\n });\n }\n }\n\n const UILobby: LobbyItem = new LobbyItem();\n UILobby.setCategoriesMap(lobbyCategoriesMap);\n UILobby.setcategoryNameLangMap(categoryTitleLanguageMap);\n UILobby.setStickerNameMap(stickerTitleLanguageMap);\n UILobby.setGameMetaDataMap(gameMetaDataMap);\n UILobby.lbyTempName = lobbyConfiguration?.lbyTempName;\n UILobby.lbyTargetType = lobbyConfiguration?.lbyTargetType;\n UILobby.optSegName = lobbyConfiguration?.optSegName;\n UILobby.catVsFeatureMetadata = lobbyConfiguration?.catVsFeatureMetadata;\n UILobby.lobbyGameIconImageSuffix = lobbyConfiguration?.lobbyGameIconImageSuffix;\n return UILobby;\n }\n\n private isFilterRecentlyPlayedGames(catVsFeatureMetadata: any[], lobbySubCategory: any): boolean {\n let isFilterRPGames: boolean = false;\n if (catVsFeatureMetadata && catVsFeatureMetadata.length != 0) {\n catVsFeatureMetadata.forEach((metadata: any) => {\n if (metadata.subCategoryId == lobbySubCategory.subcategoryid && metadata.featureIds.indexOf('FilterRecentlyPlayedGames') > -1) {\n isFilterRPGames = true;\n return;\n }\n });\n }\n return isFilterRPGames;\n }\n\n private filterCasiaCategory(catVsFeatureMetadata: any[], lobbySubCategory: any): boolean {\n if (catVsFeatureMetadata && catVsFeatureMetadata.length > 0) {\n const category: any = catVsFeatureMetadata.filter((item) => item.subCategoryId == lobbySubCategory.subcategoryid);\n if (category && category.length > 0) {\n return category[0].featureIds.indexOf('CasiaGamesYouMightLike') > -1;\n }\n }\n return false;\n }\n\n private isFilterFeatureIds(catVsFeatureMetadata: any[], lobbySubCategory: any) {\n let featureIds: any = null;\n if (catVsFeatureMetadata && catVsFeatureMetadata.length > 0) {\n catVsFeatureMetadata.forEach((metadata: any) => {\n if (metadata.subCategoryId == lobbySubCategory.subcategoryid) {\n featureIds =\n metadata?.featureIds.length == 1\n ? metadata?.featureIds\n : { ...metadata?.featureIds.filter((item: any) => item !== 'FilterRecentlyPlayedGames') };\n return featureIds[0];\n } else {\n return featureIds;\n }\n });\n }\n return featureIds;\n }\n\n getGameMetaDataMap(gameMetaDataArray: any, lobbyType: string): Map {\n const gameMetaDataMap: Map = new Map();\n if (gameMetaDataArray && gameMetaDataArray.length > 0) {\n for (let i = 0; i < gameMetaDataArray.length; i++) {\n const gameItem: any = gameMetaDataArray[i];\n gameItem.metaLobbyType = lobbyType;\n gameMetaDataMap.set(gameItem.game, gameItem);\n this.gameMetaDataMap.set(gameItem.game, gameItem);\n }\n this.gameManagerService.updateMetaData(this.gameMetaDataMap);\n }\n return gameMetaDataMap;\n }\n private setSearchCriteriaforCategoryGames() {\n const categoryGamesConfig = this.configProviderService.provideSearchConfig();\n if (categoryGamesConfig.enableCategorySearchCriteria && categoryGamesConfig.categoryGamesSearchCriteria.length > 0) {\n for (const key of this.lobbyTypeMaps.keys()) {\n for (let j = 0; j < categoryGamesConfig.categoryGamesSearchCriteria.length; j++) {\n const categoryRoute = categoryGamesConfig?.categoryGamesSearchCriteria[j]?.categoryRoute?.trim()?.toLowerCase();\n const category = this.getCategoryInfo(key, categoryRoute);\n if (category?.categoryInfo?.gamelist && category.categoryInfo.gamelist.length > 0) {\n for (let k = 0; k < category.categoryInfo.gamelist.length; k++) {\n const gameId = category.categoryInfo.gamelist[k].game;\n const gameObject = this.gameMetaDataMap.get(gameId);\n if (gameObject) {\n gameObject.condition = categoryGamesConfig.categoryGamesSearchCriteria[j].clientDsl;\n this.gameMetaDataMap.set(gameId, gameObject);\n }\n }\n }\n }\n }\n this.gameManagerService.updateMetaData(this.gameMetaDataMap);\n }\n }\n\n private getLobbyCategory(lobbyCategory: any, categoryTitleLangMap: any, lobbyType: string) {\n if (lobbyCategory) {\n const lmtCategoryId: string = lobbyCategory.categoryid;\n lobbyCategory.lmtCategoryId = lmtCategoryId;\n if (lobbyCategory.route) {\n if (lobbyCategory.categoryid === ConstService.LMC_GYML) {\n lobbyCategory.isSubCatVisible = false;\n } else {\n lobbyCategory.categoryid = lobbyCategory?.route?.replace(/\\s/g, '')?.toLowerCase();\n lobbyCategory.isSubCatVisible = true;\n }\n lobbyCategory.route = lobbyCategory.categoryid;\n }\n lobbyCategory.engCategoryName = cloneDeep(lobbyCategory.categoryname);\n // lobbyCategory.engCategoryName = {...lobbyCategory.categoryname};\n lobbyCategory.categoryname = this.getCategoryNameFromLangMap(lmtCategoryId, categoryTitleLangMap, lobbyCategory.categoryname);\n lobbyCategory.isNavigationCategory = this.getNavigationVisibility(lobbyCategory.isHidden);\n if (lobbyCategory.route) {\n lobbyCategory.sitecoreData = this.getSitecoreInfoForCategoryIdAndLobbyType(lobbyCategory.route, lobbyType);\n }\n const titleAndSubTitle: any = this.getTitleAndSubTitle(lobbyCategory);\n lobbyCategory.categoryname = titleAndSubTitle.title;\n lobbyCategory.subTitle = titleAndSubTitle.subTitle;\n return lobbyCategory;\n }\n }\n\n private getLobbySubCategory(lobbySubCategory: any, categoryTitleLangMap: any, lobbyType: string) {\n if (lobbySubCategory) {\n const lmtCategoryId: string = lobbySubCategory.subcategoryid;\n lobbySubCategory.lmtCategoryId = lmtCategoryId;\n if (lobbySubCategory.route) {\n if (lobbySubCategory.subcategoryid === ConstService.LMC_GYML) {\n lobbySubCategory.categoryid = lobbySubCategory.subcategoryid;\n lobbySubCategory.isSubCatVisible = false;\n } else {\n lobbySubCategory.categoryid = lobbySubCategory?.route?.replace(/\\s/g, '')?.toLowerCase();\n lobbySubCategory.isSubCatVisible = true;\n }\n lobbySubCategory.categoryid =\n lobbySubCategory.subcategoryid === ConstService.LMC_GYML\n ? lobbySubCategory.subcategoryid\n : lobbySubCategory?.route?.replace(/\\s/g, '')?.toLowerCase();\n lobbySubCategory.route = lobbySubCategory.categoryid;\n }\n lobbySubCategory.engCategoryName = cloneDeep(lobbySubCategory.subcategoryname);\n // lobbySubCategory.engCategoryName = {...lobbySubCategory.subcategoryname};\n lobbySubCategory.categoryname = this.getCategoryNameFromLangMap(lmtCategoryId, categoryTitleLangMap, lobbySubCategory.subcategoryname);\n lobbySubCategory.sitecoreData = this.getSitecoreInfoForCategoryIdAndLobbyType(lobbySubCategory.categoryid, lobbyType);\n lobbySubCategory.hideSubCategory =\n lobbySubCategory?.subcategoryid?.toLowerCase() === ConstService?.Recent_Games?.toLowerCase() ||\n lobbySubCategory?.subcategoryid?.toLowerCase() === ConstService.LMC_GYML;\n const titleAndSubTitle: any = this.getTitleAndSubTitle(lobbySubCategory);\n lobbySubCategory.categoryname = titleAndSubTitle.title;\n lobbySubCategory.subTitle = titleAndSubTitle.subTitle;\n return lobbySubCategory;\n }\n }\n\n private getCategoryNameFromLangMap(categoryId: string, langMap: any, defaultCategoryName: string): string {\n if (langMap && langMap.size > 0 && langMap.get(categoryId)) {\n return langMap.get(categoryId);\n }\n return defaultCategoryName;\n }\n\n private getNavigationVisibility(hiddenStatus: string) {\n if (hiddenStatus) {\n return hiddenStatus?.toLowerCase().trim() == 'false';\n }\n return true;\n }\n\n private getTitleAndSubTitle(lobbyCategory: any): any {\n let subTitle: any;\n let title: any;\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n if (lobbyCategory) {\n title = lobbyCategory?.sitecoreData?.overridenCategoryname || lobbyCategory?.categoryname;\n if (lobbyCategory?.sitecoreData) {\n subTitle = lobbyCategory?.sitecoreData?.headerTitle;\n }\n if (featuresConfig.delimiterForDynamicGameNames && featuresConfig.delimiterForDynamicGameNames != '') {\n const splitArr: string[] = (lobbyCategory?.sitecoreData?.overridenCategoryname || lobbyCategory.categoryname).split(\n featuresConfig.delimiterForDynamicGameNames,\n );\n title = splitArr[0];\n if (splitArr[1]) {\n subTitle = splitArr[1];\n }\n }\n }\n const titleAndSubTitle = {\n title,\n subTitle,\n };\n return titleAndSubTitle;\n }\n\n private getSitecoreInfoForCategoryIdAndLobbyType(categoryid: string, lobbyType: string) {\n const optimizedTeaserConfig = this.configProviderService.provideOptimizedTeaserConfig();\n const gameSelectorWidgetConfig = this.configProviderService.provideGameSelectorWidgetConfig();\n\n const allLobbiesSitecoreData: any = this.getLobbySitecoreData();\n if (allLobbiesSitecoreData) {\n for (let i = 0; i < allLobbiesSitecoreData.length; i++) {\n if (allLobbiesSitecoreData[i].lobbyType == lobbyType) {\n const lobbySitecoreData = allLobbiesSitecoreData[i].sitecoreData;\n for (let j = 0; j < lobbySitecoreData.length; j++) {\n const catSitecoreData = lobbySitecoreData[j];\n if (catSitecoreData?.categoryId?.toLowerCase() == categoryid?.toLowerCase()) {\n if (catSitecoreData?.jackpotWidget && catSitecoreData?.jackpotWidget.length > 0) {\n catSitecoreData.jackpotWidgetIds = this.jackpotAndPromotionsService.getJackpotListFromWidget(\n catSitecoreData?.jackpotWidget,\n );\n }\n\n if (\n gameSelectorWidgetConfig?.isEnabled &&\n catSitecoreData?.displayGameSelectorWidget &&\n catSitecoreData?.gameSelectorWidget\n ) {\n this.gameSelectorWidgetSource.push(catSitecoreData?.gameSelectorWidget);\n }\n\n if (\n optimizedTeaserConfig.teaserOptimization &&\n optimizedTeaserConfig.enableOptMiniTeasers &&\n !this.isTouchDevice &&\n catSitecoreData?.optimisedMiniTeasers?.length\n ) {\n this.optMiniTeasersSource.push(...catSitecoreData.optimisedMiniTeasers);\n }\n\n return catSitecoreData;\n }\n }\n }\n }\n }\n\n return {\n attributes: {\n icon: 'theme-home-i',\n },\n };\n }\n\n private getCategoryNameFromSitecore(categoryid: string, lobbyType: string, fallbackCategoryId: boolean): string {\n const sitecoreData: any = this.getSitecoreInfoForCategoryIdAndLobbyType(categoryid, lobbyType);\n if (sitecoreData) {\n return sitecoreData.title;\n }\n if (fallbackCategoryId) {\n return categoryid;\n }\n return '';\n }\n\n private getSubtitleFromSitecore(categoryid: string, lobbyType: string): string {\n const sitecoreData: any = this.getSitecoreInfoForCategoryIdAndLobbyType(categoryid, lobbyType);\n if (sitecoreData) {\n return sitecoreData.headerTitle;\n }\n return '';\n }\n\n getCategoryInfo(lobbyType: string, categoryRoute: string) {\n lobbyType = this.jackpotAndPromotionsService.getGlobalJackpotByLobbyType(lobbyType);\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n const lobbyInfo: LobbyItem | any = this.lobbyTypeMaps?.get(lobbyType);\n if (lobbyInfo && lobbyInfo.categoriesMap && lobbyInfo.categoriesMap.size > 0) {\n const catInfo: any = lobbyInfo.categoriesMap.get(categoryRoute);\n const categoryObject: any = {\n categoryInfo: catInfo,\n categoryNameLangMap: lobbyInfo.categoryNameLangMap,\n stickerNameMap: lobbyInfo.stickerNameMap,\n };\n return categoryObject;\n }\n }\n }\n\n getLobbyInfo(lobbyType: string): LobbyItem | any {\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n const lobbyInfo: LobbyItem | any = this.lobbyTypeMaps && this.lobbyTypeMaps?.get(lobbyType);\n return lobbyInfo;\n }\n return null;\n }\n\n getCategoryInfoOnLMTId(lobbyType: string, linkedLMTCategoryId: string) {\n const odrLobbyType = this.jackpotAndPromotionsService.getGlobalJackpotByLobbyType(lobbyType);\n lobbyType =\n this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR) || this.casinoCookieService.isODR(ODR_NAME.SPORTS_WODR) ? odrLobbyType : lobbyType;\n const lobbyInfo: LobbyItem | any = this.lobbyTypeMaps?.get(lobbyType);\n if (lobbyInfo && lobbyInfo.categoriesMap && lobbyInfo.categoriesMap.size > 0) {\n const linkedCategoryInfo: any = Array.from(lobbyInfo.categoriesMap.values()).filter(\n (categoryItem: any) => categoryItem.lmtCategoryId === linkedLMTCategoryId,\n );\n if (linkedCategoryInfo && linkedCategoryInfo.length > 0) {\n return linkedCategoryInfo[0];\n }\n }\n }\n\n getGameMetaData() {\n return this.gameMetaDataMap;\n }\n\n isDefaultCategory(lobbyType: string, categoryRoute: string): boolean {\n if (lobbyType && lobbyType != '' && categoryRoute && categoryRoute != '') {\n const defaultCategory: any = this.getDefaultOrFirstCategoryInfo(lobbyType);\n if (defaultCategory?.categoryInfo) {\n if (defaultCategory.categoryInfo.categoryid === categoryRoute) {\n return true;\n }\n }\n }\n return false;\n }\n\n getDefaultOrFirstCategoryInfo(lobbyType: string) {\n let defaultCategory: any;\n let lobbyInfo: any;\n lobbyType = this.jackpotAndPromotionsService.getGlobalJackpotByLobbyType(lobbyType);\n if (this.lobbyTypeMaps && this.lobbyTypeMaps.size > 0) {\n lobbyInfo = this.lobbyTypeMaps?.get(lobbyType);\n if (lobbyInfo?.categoriesMap && lobbyInfo.categoriesMap.size > 0) {\n const casinoConfig: any = this.configProviderService.provideCasinoConfig();\n const defaultCategoryOnDynacon: string = this.casinoManager.IsFeatureEnabledforLobbytype(\n lobbyType,\n casinoConfig.defaultyLobbyTypeCategory,\n );\n\n if (defaultCategoryOnDynacon && defaultCategoryOnDynacon != '') {\n defaultCategory = lobbyInfo.categoriesMap.get(defaultCategoryOnDynacon);\n }\n if (!defaultCategory) {\n defaultCategory = lobbyInfo.categoriesMap.entries().next().value[1];\n }\n }\n }\n if (defaultCategory && lobbyInfo) {\n const defaultCategoryObject: any = {\n categoryInfo: defaultCategory,\n categoryNameLangMap: lobbyInfo.categoryNameLangMap,\n stickerNameMap: lobbyInfo.stickerNameMap,\n };\n return defaultCategoryObject;\n }\n }\n\n private getDefaultOrFirstCategoryInfoForInvokerProduct(lobbyType: string) {\n let defaultCategory: any;\n let lobbyInfo: any;\n if (this.lobbyTypeMapsForInvokerProduct && this.lobbyTypeMapsForInvokerProduct.size > 0) {\n lobbyInfo = this.lobbyTypeMapsForInvokerProduct?.get(lobbyType);\n if (lobbyInfo?.categoriesMap && lobbyInfo.categoriesMap.size > 0) {\n const casinoConfig: any = this.configProviderService.provideCasinoConfig();\n const defaultCategoryOnDynacon: string = this.casinoManager.IsFeatureEnabledforLobbytype(\n lobbyType,\n casinoConfig.defaultyLobbyTypeCategory,\n );\n\n if (defaultCategoryOnDynacon && defaultCategoryOnDynacon != '') {\n defaultCategory = lobbyInfo.categoriesMap.get(defaultCategoryOnDynacon);\n }\n if (!defaultCategory) {\n defaultCategory = lobbyInfo.categoriesMap.entries().next().value[1];\n }\n }\n }\n if (defaultCategory && lobbyInfo) {\n const defaultCategoryObject: any = {\n categoryInfo: defaultCategory,\n categoryNameLangMap: lobbyInfo.categoryNameLangMap,\n stickerNameMap: lobbyInfo.stickerNameMap,\n };\n return defaultCategoryObject;\n }\n }\n\n getNavCategories(lobbyType: string, productOverride?: string) {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n const slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n const subNavigationConfig = this.configProviderService.provideSubNavigationConfig();\n const lobby: any = this.getLobby(lobbyType);\n const product: string = this.utilityService.getProductForGivenLobbyType(lobbyType);\n const navCategories: any = [];\n const defaultCategoryInfo: any = this.getDefaultOrFirstCategoryInfo(lobbyType)?.categoryInfo;\n if (!productOverride && subNavigationConfig.hardProductOverride) {\n productOverride = subNavigationConfig.hardProductOverride;\n }\n if (lobby?.lobby) {\n const slotRacesCategory = this.casinoManager.getSlotRaceCategoryId(lobbyType);\n const isSlotRacesEnabled = this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, featuresConfig.enableSlotRacesForLobbyType);\n const lobbyCategoriesMap: Map = cloneDeep(lobby.lobby.categoriesMap);\n\n // let lobbyCategoriesMap: Map = new Map([...lobby.lobby.categoriesMap].map(x => Object.assign({}, x))) ;\n\n if (lobbyCategoriesMap && lobbyCategoriesMap.size > 0) {\n lobbyCategoriesMap.forEach((category: any) => {\n let addCategory: boolean = true;\n const isSlotRacesCategory = slotRacesCategory == category.categoryid;\n const categoryurl = category?.sitecoreData?.categoryUrl;\n if (category.isNavigationCategory) {\n if (!category.sitecoreData) {\n const defaultSitecoreObj: any = {\n attributes: {\n icon: 'theme-home',\n },\n };\n category.sitecoreData = defaultSitecoreObj;\n }\n if (defaultCategoryInfo && defaultCategoryInfo.categoryid === category.categoryid) {\n category.isdefault = true;\n //SEO C ges code\n const lmtData = this.configProviderService.provideLmtConfig();\n\n if (this.productService.isSingleDomainApp && this.isCategoryUnderSubLobby(product)) {\n category.url = `${this.urlUtility.getProductApiBaseUrl(productOverride)}/${this.getParentLobby()}/${product}`;\n } else {\n category.url = `${this.urlUtility.getProductApiBaseUrl(productOverride)}/${product}`;\n }\n if (\n lmtData.enableDefaultLink &&\n this.casinoManager.getProductForGivenLobbyType(lobbyType)?.toLowerCase() ==\n lmtData?.defaultProductHomeUrl?.toLowerCase()\n ) {\n category.url = this.urlUtility.getProductBaseUrl(productOverride) + '/';\n if (lmtData.appendCultureToDefaultUrl) {\n category.url = `${category.url}/${this.page.lang}`;\n }\n }\n } else {\n if (categoryurl) {\n category.url = categoryurl.url;\n } else {\n if (this.productService.isSingleDomainApp && this.isCategoryUnderSubLobby(product)) {\n category.url = `${this.urlUtility.getProductApiBaseUrl(productOverride)}/${this.getParentLobby()}/${product}/c/${category.categoryid}`;\n } else {\n category.url = `${this.urlUtility.getProductApiBaseUrl(productOverride)}/${product}/c/${category.categoryid}`;\n }\n }\n }\n addCategory = this.addCategoryForLivegamesIframe(lobbyType);\n if (\n slotRacesCategory &&\n isSlotRacesCategory &&\n (!isSlotRacesEnabled || (!slotRacesConfig.enablePreLogin && !this.user.isAuthenticated))\n ) {\n addCategory = false;\n }\n const lmtSubCategories = category?.lmtSubCategories?.filter(Boolean);\n if (\n addCategory &&\n (ConstService.RECENT_GAMES_CATEGORY_ID === category.categoryid?.toLowerCase() ||\n ConstService.FAVOURITE_GAMES_CATEGORY_ID === category.categoryid?.toLowerCase() ||\n category?.gamelist?.length > 0 ||\n lmtSubCategories?.length > 0)\n ) {\n navCategories.push(category);\n }\n }\n });\n }\n }\n return navCategories;\n }\n\n private addCategoryForLivegamesIframe(lobbyType: string): boolean {\n const casinoConfig = this.configProviderService.provideCasinoConfig();\n const liveGamesCategories = casinoConfig.liveGamesCategories;\n const currentProduct: string = this.utilityService.getProductForGivenLobbyType(lobbyType);\n if (liveGamesCategories && liveGamesCategories.length > 0) {\n return !(liveGamesCategories.indexOf(currentProduct) > -1);\n }\n return true;\n }\n\n getNavCategoriesForInvokerProduct(lobbyType: string): any {\n const lobby: any = this.getLobbyForInvokerProduct(lobbyType);\n const product: string = this.utilityService.getProductForGivenLobbyType(lobbyType);\n const navCategories: any = [];\n const defaultCategoryInfo: any = this.getDefaultOrFirstCategoryInfoForInvokerProduct(lobbyType);\n if (lobby?.lobby) {\n const lobbyCategoriesMap: Map = lobby.lobby.categoriesMap;\n if (lobbyCategoriesMap && lobbyCategoriesMap.size > 0) {\n lobbyCategoriesMap.forEach((category: any) => {\n if (category.isNavigationCategory) {\n if (!category.sitecoreData) {\n const defaultSitecoreObj: any = {\n attributes: {\n icon: 'theme-home',\n },\n };\n category.sitecoreData = defaultSitecoreObj;\n }\n if (defaultCategoryInfo && defaultCategoryInfo.categoryid === category.categoryid) {\n category.isdefault = true;\n category.url = '/' + this.page.lang + '/' + product;\n } else {\n category.url = '/' + this.page.lang + '/' + product + '/c/' + category.categoryid;\n }\n navCategories.push(category);\n }\n });\n }\n }\n return navCategories;\n }\n\n getLobby(lobbyType: string) {\n const lobbyInfo: any = this.lobbyTypeMaps?.get(lobbyType);\n const lobbyResult: any = {\n lobby: lobbyInfo,\n disabledGames: this.disabledGames,\n };\n return lobbyResult;\n }\n\n private getLobbyForInvokerProduct(lobbyType: string) {\n const lobbyInfo: any = this.lobbyTypeMapsForInvokerProduct?.get(lobbyType);\n const lobbyResult: any = {\n lobby: lobbyInfo,\n };\n return lobbyResult;\n }\n\n getStickerMap(lobbyType: string) {\n const lobbyInfo: any = this.lobbyTypeMaps?.get(lobbyType);\n if (lobbyInfo) {\n const stickerNameMap = lobbyInfo.stickerNameMap;\n return stickerNameMap;\n }\n return null;\n }\n\n setGlobalJackpotLobbyTypeMap(lobbyType: any, lobbyData: any) {\n const lmtConfig = this.configProviderService.provideLmtConfig();\n const lobbyContent: LobbyItem = this.getLobbyContent(lobbyData, lobbyType);\n this.lobbyTypeMaps.set(lobbyType, lobbyContent);\n this.gJLobbyTypeMaps.set(lobbyType, lobbyContent);\n this.cacheManager.writeCategoryLocalStorageCacheMap(\n lobbyType,\n cloneDeep(lobbyContent),\n //{...lobbyContent},\n this.invokerProductService.getInvokerProduct(),\n );\n if (this.disjointFeedsInitiated) {\n }\n // set globalBonusJackpots lobbyType if cookie is ODR\n const odrConfig =\n lmtConfig?.otherProductsLobbyTypeForOdr?.[0]?.product &&\n lmtConfig.otherProductsLobbyTypeForOdr[0]?.lobbyType &&\n lmtConfig.otherProductsLobbyTypeForOdr[0]?.invokerProduct;\n if (odrConfig && (this.casinoCookieService.isODR(ODR_NAME.CASINO_WODR) || this.casinoCookieService.isODR(ODR_NAME.SPORTS_WODR))) {\n this.setPartialCasinoLobbiesforOtherProducts(lmtConfig.otherProductsLobbyTypeForOdr, true, false);\n } else {\n this.setCasinoLobby(true);\n }\n }\n\n async getGlobalJackpotLobbyDataFromLocalStorage(lobbyType: string): Promise {\n const featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n const lobbyTypeMapsInCache: LobbyItemBaseModel | any = await this.cacheManager.readCategoryDataLocalCache(\n featuresConfig.browserLocalStorageCategoryDataUpdateInterval,\n lobbyType,\n this.invokerProductService.getInvokerProduct(),\n );\n\n if (lobbyTypeMapsInCache != null) {\n const UILobby: LobbyItem = new LobbyItem();\n UILobby.setLobbyItemFromLocalStorage(lobbyTypeMapsInCache);\n // filling gameMetaDataMap\n for (let i = 0; i < lobbyTypeMapsInCache?.lsGameMetaDataMap?.length; i++) {\n const gameItem = lobbyTypeMapsInCache?.lsGameMetaDataMap[i][1];\n this.gameMetaDataMap.set(gameItem.game, gameItem);\n }\n this.lobbyTypeMaps.set(lobbyType, UILobby);\n this.gJLobbyTypeMaps.set(lobbyType, UILobby);\n\n if (this.disjointFeedsInitiated) {\n } else {\n const postLogin = this.user.isAuthenticated ? true : false;\n this.setCasinoLobby(true, postLogin, true);\n }\n this.gameManagerService.updateMetaData(this.gameMetaDataMap);\n return UILobby;\n }\n return null;\n }\n\n getLobbyBasedOnLobbyType(lobbyType: string) {\n return this.lobbyTypeMaps?.get(lobbyType);\n }\n\n getCategoryName(lobbyType: string, categoryId: string) {\n const catInfo = this.getCategoryInfo(lobbyType, categoryId);\n let categoryName: string = '';\n if (catInfo?.categoryInfo) {\n categoryName = catInfo.categoryInfo.engCategoryName ? catInfo.categoryInfo.engCategoryName : '';\n }\n return categoryName;\n }\n\n getLinkedToCategory(lobbyType: string, lmtCategoryId: string) {\n const lobby: any = this.getLobby(lobbyType);\n if (lobby?.lobby) {\n const lobbyCategoriesMap: Map = cloneDeep(lobby.lobby.categoriesMap);\n\n // let lobbyCategoriesMap: Map = new Map([...lobby.lobby.categoriesMap].map(x => Object.assign({}, x))) ;\n\n if (lobbyCategoriesMap && lobbyCategoriesMap.size > 0) {\n const categoryArray: any = [];\n lobbyCategoriesMap.forEach((category) => {\n if (category.linkedCategory === lmtCategoryId) {\n categoryArray.push(category);\n }\n });\n return categoryArray;\n }\n }\n }\n\n raiseLobbyLoadedEvent(lobbyLoadedEvent: any) {\n lobbyLoadedEvent.invokerProduct = this.invokerProductService.getInvokerProduct();\n lobbyLoadedEvent.disabledGames = this.disabledGames;\n const evt = new CustomEvent('cc:casinocore_lobby_data', {\n detail: lobbyLoadedEvent,\n });\n this.windowRef.nativeWindow.casinoLobbyData = lobbyLoadedEvent;\n window.dispatchEvent(evt);\n }\n\n getFromCookie(key: any): boolean {\n if (this.cookies.get(key) > '0') {\n return true;\n }\n return false;\n }\n\n setMoreInfoComponentStatus(value: boolean) {\n this.isNewMoreInfoActive = value;\n }\n getMoreInfoComponentStatus() {\n return this.isNewMoreInfoActive;\n }\n\n calculateCoinArcadeExpiry(): number {\n const coinExpiryDay = this.configProviderService.providePromoCoinEconomyConfig()?.coinExpiryDay - 1;\n const currentDay = new Date().getDate();\n if (coinExpiryDay > currentDay) {\n return coinExpiryDay - currentDay;\n } else if (coinExpiryDay < currentDay) {\n const currentMonthDays = this.utilityService.getDaysInMonth(new Date().getFullYear(), new Date().getMonth() + 1);\n return currentMonthDays - currentDay + coinExpiryDay;\n } else {\n return 0;\n }\n }\n\n getMinBetBasedOnGameId(gameId: string): any {\n const minBetGamesConfig = this.configProviderService.provideMinBetGamesConfig()?.coinArcade_MinBetGames;\n return minBetGamesConfig[gameId] ? minBetGamesConfig[gameId] : minBetGamesConfig.default;\n }\n getIconsuppix() {\n const lobbyType = this.casinoManager.getLobbyType() || '';\n const lobbySuffix = this.getLobbyInfo(lobbyType);\n return lobbySuffix?.lobbyGameIconImageSuffix;\n }\n getImagePath(gameId: string, iconType: string, format?: any) {\n const gameConfig: any = this.configProviderService.provideGameConfig();\n let featuresConfig: any = this.configProviderService.provideFeaturesConfig();\n let gameFloder = this.getIconsuppix();\n if (gameFloder && featuresConfig.enableGameIconImageSuffix) {\n iconType = iconType + gameFloder;\n }\n const imageFormat = format ? '.' + format : '.jpg';\n const gameUrl = gameConfig.host + gameConfig.gameIconTemplate.replace('{0}', iconType).replace('{1}', gameId) + imageFormat;\n return gameUrl;\n }\n initiatePostLoginFeatures(casinoNpmParams: any) {\n const cozybingoConfig: any = this.configProviderService.provideCozyBingoConfig();\n const fresSpinsConfig: any = this.configProviderService.providefreeSpinsClientConfig();\n if (cozybingoConfig.cozyBingoFavouritesInRpwidget || cozybingoConfig.cozyBingoRecentGamesInRpwidget) {\n this.cozybingoService.getBingoData(true, cozybingoConfig.cozyBingoRecentGamesInRpwidget);\n }\n\n if (fresSpinsConfig.isFreeSpinSummaryEnabled) {\n this.freespinSummaryService.setFreespinsummary();\n }\n const liveCasinoConfig = this.configProviderService.provideLiveCasinoConfig();\n if (!this.user.isAuthenticated || (this.user.isAuthenticated && !this.postloginfirstLiveCasinoCall)) {\n if (liveCasinoConfig.enabled && !casinoNpmParams?.isDisableLiveCasinoCalls) {\n this.liveCasinoService.getLiveCasinoData(!this.liveCasinoService.getSitecoreInfoPublishedStatus());\n }\n if (this.user.isAuthenticated) this.postloginfirstLiveCasinoCall = true;\n }\n }\n\n initiatePostLoginRemainingFeed(casinoNpmParams: any, initiateDisjointFeeds: boolean) {\n const newsFeedConfig = this.configProviderService.provideNewsFeedCasinoConfig();\n if (newsFeedConfig.isEnabled) {\n this.newsFeedService.setNewsFeed();\n }\n const slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n const widgetConfig: any = this.configProviderService.providewidgetConfig();\n if (\n (slotRacesConfig?.enableSlotRaces && !casinoNpmParams.disableSlotracesCallsOnBootstrap) ||\n (slotRacesConfig?.enableSlotRaces && widgetConfig?.enableSlotRacesForOtherProducts && casinoNpmParams?.disableSlotracesCallsOnBootstrap)\n ) {\n this.initializeSlotRaces(initiateDisjointFeeds);\n }\n }\n\n searchGames(query: string, disabledGames: string[]): GameLobbyModel[] {\n query = query?.toLowerCase();\n const filteredGames: GameLobbyModel[] = this.fetchFilteredGames(this.gameMetaDataMap, disabledGames, query);\n let elementsStartingWithQuery: GameLobbyModel[] = [];\n let elementsContainingQuery: GameLobbyModel[] = [];\n filteredGames?.forEach((fGame: GameLobbyModel) => {\n if (fGame?.title?.toLowerCase().startsWith(query)) {\n elementsStartingWithQuery.push(fGame);\n } else {\n elementsContainingQuery.push(fGame);\n }\n });\n let sortedArray: GameLobbyModel[] = elementsStartingWithQuery.concat(elementsContainingQuery);\n return sortedArray;\n }\n\n private fetchFilteredGames(gameMetaData: Map, disabledGames: string[], serachQuery: string): GameLobbyModel[] {\n const filteredGames: GameLobbyModel[] = [];\n gameMetaData?.forEach((data: GameMetaDataMap) => {\n if (data?.name?.toLowerCase().indexOf(serachQuery) <= -1) {\n return;\n }\n const disabledGame: string[] = disabledGames.filter((disabledGame: string) => disabledGame === data.game);\n if (data.condition) {\n this.dslService.evaluateExpression(data.condition).subscribe((result: boolean) => {\n if (result && disabledGame?.length == 0) {\n filteredGames.push(this.setSearchGameIcon(data.game, data.name, data.provider, data.condition));\n }\n });\n } else if (disabledGame?.length == 0) {\n filteredGames.push(this.setSearchGameIcon(data.game, data.name, data.provider, data.condition));\n }\n });\n return filteredGames;\n }\n\n private setSearchGameIcon(gameId: string, gameTitle: string, gameProvider: string, condition: string): GameLobbyModel {\n const gameConfig = this.configProviderService.provideGameConfig();\n const gamelobbyModel: GameLobbyModel = new GameLobbyModel();\n gamelobbyModel.gameId = gameId;\n gamelobbyModel.internalGameName = gameId;\n gamelobbyModel.title = gameTitle;\n gamelobbyModel.provider = gameProvider;\n gamelobbyModel.condition = condition;\n let gameIcon = gameConfig.iconTypeMapping[1];\n let gameFloder = this.getIconsuppix();\n if (gameFloder) {\n gameIcon = gameIcon + gameFloder;\n }\n gamelobbyModel.icon = {\n src: gameConfig.host + gameConfig.gameIconTemplate.replace('{0}', gameIcon).replace('{1}', gamelobbyModel.gameId) + '.jpg',\n };\n gamelobbyModel.rowSpan = 1;\n gamelobbyModel.colSpan = 1;\n return gamelobbyModel;\n }\n\n private isCategoryUnderSubLobby(product: string): boolean {\n const lmtConfig: LMTDataClientConfig = this.configProviderService.lmtConfig;\n const mainLobby = Object.keys(lmtConfig.subLobbyType)[0];\n if (lmtConfig.subLobbyType[mainLobby].includes(product)) return true;\n return false;\n }\n\n private getParentLobby(): string {\n const lmtConfig: LMTDataClientConfig = this.configProviderService.lmtConfig;\n return Object.keys(lmtConfig.subLobbyType)[0];\n }\n}\n","@if (showDesktopSearch) {\n
\n @if (innerWidth() > 768 && !isTouch) {\n
\n
\n \n \n \n \n \n
\n
\n \n {{ gymlText }}\n \n
    \n @for (game of GYMLGames; track game; let gamePos = $index) {\n
  • \n \n \n
  • \n }\n
\n
\n @if (model.query) {\n
\n
    \n @for (game of model.results | dsl | async; track game; let gamePos = $index) {\n
  • \n \n \n
  • \n }\n
\n

\n \n

\n
\n }\n
\n }\n
\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { DsSearchBar, DsSearchInput } from '@frontend/ui/searchbar';\nimport { DeviceService, DslService, MessageQueueService, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { DslPipe } from '@frontend/vanilla/shared/browser';\nimport { cloneDeep } from 'lodash-es';\nimport { Subscription } from 'rxjs';\n\nimport { CasinoLobbyService } from '../casino-lobby-manager/casino-lobby.service';\nimport { CasinoStylesService } from '../casino-lobby-manager/casino-styles/casino-styles.service';\nimport { GameManagerService } from '../casino-lobby-manager/game-manager/game-manager.service';\nimport { ConfigProviderService } from '../config-provider/config-provider.service';\nimport { GlobalTranslateComponent } from '../directives/globaltranslate/globaltranslate.component';\nimport { HighlightSearch } from '../directives/search-highlight-filter/search-highlight.filter';\nimport { PlatformApiService } from '../platform-api/platform-api.service';\nimport { ApiPathsHelperService } from '../shared/api-paths-helper-service';\nimport { CasinoManager } from '../shared/casino-manager.service';\nimport { CategoryManager } from '../shared/category-manager.service';\nimport { FavouriteService } from '../shared/favourite.service';\nimport { GameDataManager } from '../shared/game-data-manager.service';\nimport { CasinoCoreGameLaunchFactoryService } from '../shared/gamelaunchfactory.service';\nimport { GlobalSearchHelperService } from '../shared/globalsearch-helper.service';\nimport { GameLobbyModel } from '../shared/models/game-lobby.model';\nimport { GameLaunch } from '../shared/models/gamelaunch.model';\n\n@Component({\n selector: 'cc-search-desktop',\n templateUrl: 'search-desktop.component.html',\n standalone: true,\n imports: [NgClass, ReactiveFormsModule, FormsModule, GlobalTranslateComponent, AsyncPipe, HighlightSearch, DslPipe, DsSearchBar, DsSearchInput],\n})\nexport class SearchDesktopComponent implements OnInit, OnChanges, OnDestroy {\n @Input() isTouch: boolean;\n @Input() placeholder: string;\n @Input() lobbyType: string;\n @Input() categoryRoute: string;\n @Output() embedGameClicked = new EventEmitter();\n\n readonly defaultSrc = this.casinoManager.getGrayImageUrl();\n idSuffix: string;\n model = {\n query: '',\n results: [],\n };\n index: number = 1;\n activeIndex: number = 0;\n keypressed: string = 'default';\n isMsgVisible: boolean = false;\n readonly innerWidth = this.deviceService.windowWidth;\n GYMLGames: any = [];\n gymlCategory: any;\n displayValue: boolean;\n showGymlSearch: boolean;\n showGlobalSearch: boolean = false;\n wasInside: boolean;\n gymlText: string;\n SearchCloseIcon: boolean;\n recommendationGames: any = [];\n recommendationGamesList: any = [];\n combineData: any = [];\n showDesktopSearch: boolean = true;\n showGSInDesktopSearch: boolean = true;\n lobbyLoadedObs: Subscription;\n gameLaunchService: any;\n favGamesSubscribe: Subscription;\n constructor(\n private gameDataManager: GameDataManager,\n private categoryManager: CategoryManager,\n private user: UserService,\n private messageQueue: MessageQueueService,\n private casinoManager: CasinoManager,\n private tracking: TrackingService,\n private api: PlatformApiService,\n private deviceService: DeviceService,\n private configProviderService: ConfigProviderService,\n private casinoLobbyService: CasinoLobbyService,\n private gameLaunchFactoryService: CasinoCoreGameLaunchFactoryService,\n private apiPathsHelperService: ApiPathsHelperService,\n private dslService: DslService,\n private gshService: GlobalSearchHelperService,\n private favouriteService: FavouriteService,\n private destroyRef: DestroyRef,\n private casinoStyles: CasinoStylesService,\n private gameManagerService: GameManagerService,\n ) {\n this.displayValue = true;\n }\n\n ngOnInit() {\n const features = this.configProviderService.provideFeaturesConfig();\n this.showGSInDesktopSearch = features.enableGSInRegularSearch;\n //Initializing globalSearch in RegularSearch\n if (this.showGSInDesktopSearch) {\n this.gshService.contextAvailable.subscribe((context: any) => {\n if (context?.appContext.isEnabled) {\n this.showDesktopSearch = true;\n }\n });\n\n this.gshService.presentationBootstraped.subscribe(() => {\n this.showDesktopSearch = true;\n });\n\n this.gshService.registerEventHandlers();\n this.gshService.fetchContext();\n }\n this.gameLaunchService = this.gameLaunchFactoryService.getGameLaunchService();\n const Global = this.configProviderService.provideGlobalConfig();\n const casinoConfiguration = this.configProviderService.provideCasinoConfig();\n this.showGlobalSearch = features.showGlobalSearch;\n this.showDesktopSearch = features.showDesktopSearch;\n if (this.placeholder === 'embedgame') {\n if (!this.showGSInDesktopSearch) {\n this.showDesktopSearch = true;\n }\n }\n this.SearchCloseIcon = false;\n this.setIdSuffix();\n this.gymlText = Global.messages['SearchGamesYouMightLike']\n ? Global.messages['SearchGamesYouMightLike']\n : Global.messages['GamesYouMightLike'];\n if (this.enableEnhancedSearch()) {\n this.setGYML();\n this.categoryManager.categoryLookUpObservable.subscribe((response) => {\n if (response && response.size > 0) {\n this.gymlCategory = cloneDeep(response.get('LMC_GYML'));\n // this.gymlCategory = {...response.get('LMC_GYML')};\n if (\n this.gymlCategory &&\n this.gymlCategory.categoryInfo &&\n this.gymlCategory.categoryInfo.gamelist &&\n this.gymlCategory.categoryInfo.gamelist.length > 0\n ) {\n this.gymlCategory.gamesModel = this.gymlCategory.categoryInfo.gamelist.slice(0, casinoConfiguration.gymlLimitForSearch);\n const gymlGameIds: string[] = [];\n this.gymlCategory.gamesModel.forEach((gameModel: any) => {\n gymlGameIds.push(gameModel.game);\n });\n const gamesModel: any = this.gameDataManager.setDefaultGameIcons(gymlGameIds);\n this.getGyMLGames(gamesModel);\n }\n }\n });\n this.casinoManager.lobbyObservable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((lobbyModel: any) => {\n if (lobbyModel) {\n this.displayValue = true;\n }\n });\n\n this.gameDataManager.gameLookUpObservable.subscribe(() => {\n this.gymlCategory = this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML');\n if (\n this.gymlCategory &&\n this.gymlCategory.categoryInfo &&\n this.gymlCategory.categoryInfo.gamelist &&\n this.gymlCategory.categoryInfo.gamelist.length > 0\n ) {\n this.gymlCategory.gamesModel = this.gymlCategory.categoryInfo.gamelist.slice(0, casinoConfiguration.gymlLimitForSearch);\n const gymlGameIds: string[] = [];\n this.gymlCategory.gamesModel.forEach((gameModel: any) => {\n gymlGameIds.push(gameModel.game);\n });\n const gamesModel: any = this.gameDataManager.setDefaultGameIcons(gymlGameIds);\n this.getGyMLGames(gamesModel);\n }\n });\n\n this.lobbyLoadedObs = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response) => {\n if (response) {\n this.gymlCategory = cloneDeep(this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML'));\n // this.gymlCategory = {...this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML')};\n if (\n this.gymlCategory &&\n this.gymlCategory.categoryInfo &&\n this.gymlCategory.categoryInfo.gamelist &&\n this.gymlCategory.categoryInfo.gamelist.length > 0\n ) {\n this.gymlCategory.gamesModel = this.gymlCategory.categoryInfo.gamelist.slice(0, casinoConfiguration.gymlLimitForSearch);\n const gymlGameIds: string[] = [];\n this.gymlCategory.gamesModel.forEach((gameModel: any) => {\n gymlGameIds.push(gameModel.game);\n });\n const gamesModel: any = this.gameDataManager.setDefaultGameIcons(gymlGameIds);\n this.getGyMLGames(gamesModel);\n }\n }\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.categoryRoute?.currentValue !== changes?.categoryRoute?.previousValue) {\n this.model.query = '';\n this.model.results = [];\n this.SearchCloseIcon = false;\n this.showGymlSearch = false;\n this.displayValue = true;\n }\n this.setIdSuffix();\n }\n\n displaySearchCloseIcon() {\n if (this.model.query.length == 0) {\n this.SearchCloseIcon = false;\n }\n }\n\n closeSearchIcon() {\n this.model.query = '';\n this.displaySearchCloseIcon();\n }\n\n setGYML() {\n const casinoConfiguration = this.configProviderService.provideCasinoConfig();\n this.gymlCategory = this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML');\n if (\n this.gymlCategory &&\n this.gymlCategory.categoryInfo &&\n this.gymlCategory.categoryInfo.gamelist &&\n this.gymlCategory.categoryInfo.gamelist.length > 0\n ) {\n this.gymlCategory.categoryInfo.gamesModel = this.gymlCategory.categoryInfo.gamelist.slice(0, casinoConfiguration.gymlLimitForSearch);\n const gymlGameIds: string[] = [];\n this.gymlCategory.categoryInfo.gamesModel.forEach((gameModel: any) => {\n gymlGameIds.push(gameModel.game);\n });\n const gamesModel: any = this.gameDataManager.setDefaultGameIcons(gymlGameIds);\n this.getGyMLGames(gamesModel);\n }\n }\n\n setIdSuffix(): void {\n if (this.placeholder === 'navigation') {\n this.idSuffix = 'nav';\n } else {\n this.idSuffix = '';\n }\n }\n\n onGameIconError(game: any): void {\n game.icon.src = this.defaultSrc;\n }\n\n getGyMLGames(gamesModelList: any[]) {\n this.GYMLGames = [];\n for (let i = 0; i < gamesModelList.length; i++) {\n const gameModelItem: any = this.gameManagerService.getGameInfo(gamesModelList[i].game);\n if (gameModelItem) {\n gameModelItem.icon = '1';\n const gamelobbyModel: GameLobbyModel = this.gameDataManager.setGameLobbyModel(gameModelItem, this.isTouch);\n this.GYMLGames.push(gamelobbyModel);\n }\n }\n this.GYMLGames = this.checkGameIconTheming(this.GYMLGames);\n }\n\n /*\n Author : Naresh Tatikonda\n Purpose : preparing recommendation games object from recommendation feed string list\n */\n getRecomendationGames(gamesModelList: string[]) {\n this.recommendationGamesList = [];\n for (let i = 0; i < gamesModelList.length; i++) {\n const lmtGameData: any = this.gameManagerService.getGameInfo(gamesModelList[i]);\n //TODO: check against disabled games\n if (lmtGameData) {\n const gamelobbyModel: GameLobbyModel = this.gameDataManager.setGameLobbyModel(lmtGameData, this.isTouch);\n if (lmtGameData) {\n gamelobbyModel.title = lmtGameData.name;\n }\n this.recommendationGamesList.push(gamelobbyModel);\n }\n }\n }\n\n /*\n Author : Naresh Tatikonda\n Purpose : preparing recommendation games array based on conditions\n */\n getGamesYouMightLikeOnLMT() {\n /*\n condution checks,when recommendationsgames length <6 ,then merging recommendation games and gamesyoumightlike games object\n */\n if (this.recommendationGames.length < 6 || this.recommendationGames.length == 0) {\n //setting gamesyoumight like games to fastloading games\n\n this.recommendationGamesList = this.recommendationGames.length > 0 ? this.getRecomendationGames(this.recommendationGames) : [];\n this.combineData = this.recommendationGamesList.concat(this.GYMLGames);\n //filter for remove duplicate objects from array object\n this.GYMLGames = Array.from(this.combineData.reduce((m: any, t: any) => m.set(t.gameId, t), new Map()).values());\n } else {\n //here recommendation games count >=6\n this.GYMLGames = this.getRecomendationGames(this.recommendationGames);\n }\n this.GYMLGames = this.checkGameIconTheming(this.GYMLGames);\n }\n\n recommendationFeed() {\n //adding recommendation feed integration (Naresh Tatikonda)\n const apiPathsConfig = this.configProviderService.provideApiPathsConfig();\n const recommendationUrl = this.apiPathsHelperService.transformApi(apiPathsConfig.gameData['gameRecommendations']);\n this.api.get(recommendationUrl).subscribe((response: any) => {\n if (response) {\n //getting response from recommendation feed\n this.recommendationGames = response.recommendationgames;\n //adding by Naresh Tatikonda\n this.getGamesYouMightLikeOnLMT();\n }\n });\n }\n\n launchGame(game: any, isgYml: boolean, gamePos: any) {\n this.messageQueue.clear();\n const nonCriticalConfig: any = this.configProviderService.provideNonCriticalConfig();\n if (this.user.isAuthenticated && nonCriticalConfig.enableRecommendationGames && this.placeholder === 'embedgame') {\n this.recommendationFeed();\n }\n\n game.iconType = 1; // for advance game data model\n if (this.placeholder === 'navigation') {\n if (isgYml) {\n const gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isTouch;\n gameModel.categoryType = 'Search';\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = 'Search_GYML';\n gameModel.gameSection = 'Search_GYML';\n gameModel.gameContainer = 'Search';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.gamePosition = gamePos;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n } else {\n const gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isTouch;\n gameModel.categoryType = 'Search';\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = 'Search';\n gameModel.gameSection = 'Search';\n gameModel.gameContainer = 'Search';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.gamePosition = gamePos;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n } else if (this.placeholder === 'embedgame') {\n game.GamePosition = gamePos;\n game.lobbyType = this.lobbyType;\n this.favGamesSubscribe = this.favouriteService.favouriteGamesFeedObservable.subscribe((favouriteGameIds: any) => {\n if (favouriteGameIds) {\n game.isFavourite = favouriteGameIds.indexOf(game.gameId) > -1;\n }\n });\n this.embedGameClicked.emit(game);\n }\n this.model.query = '';\n this.model.results = [];\n this.displayValue = true;\n this.showGymlSearch = false;\n this.SearchCloseIcon = false;\n }\n\n trackInput() {\n this.tracking.triggerEvent('GameSearch', {\n 'eventAction': this.placeholder == 'embedgame' ? 'EGV_Search' : 'Search',\n 'page.search': this.model.query,\n });\n }\n\n queryChanged(event: any) {\n this.displayValue = false;\n this.showGymlSearch = false;\n\n if (this.enableEnhancedSearch() && this.model.query.length === 1 && this.placeholder === 'navigation') {\n }\n if (this.model.query.length !== 0) {\n this.displayValue = true;\n this.SearchCloseIcon = true;\n } else {\n this.SearchCloseIcon = false;\n if (this.enableEnhancedSearch() && this.placeholder === 'navigation') {\n this.displayValue = false;\n if (this.user.isAuthenticated) {\n this.showGymlSearch = true;\n }\n }\n }\n\n if (this.model.query.length < 1) {\n this.model.results = [];\n this.isMsgVisible = false;\n if (this.placeholder === 'embedgame') {\n this.displayValue = true;\n }\n if (!this.user.isAuthenticated) {\n this.displayValue = true;\n }\n if (this.enableEnhancedSearch() && this.model.query === '' && this.placeholder === 'navigation') {\n }\n return;\n } else if (event.key === 'ArrowUp') {\n if (this.index === 1 || this.index === 0) {\n this.activeIndex = 0;\n this.index = 1;\n } else {\n if (this.keypressed === 'ArrowDown') {\n this.activeIndex = this.activeIndex - 1;\n this.index = this.index - 2;\n } else {\n this.activeIndex = this.index - 1;\n }\n }\n this.index--;\n let list, index;\n list = document.querySelectorAll('.search-non-touch li');\n for (index = 0; index < list.length; ++index) {\n list[index].classList.remove('active');\n }\n list[this.activeIndex].classList.add('active');\n if (this.activeIndex > 5) {\n const container = document.getElementsByClassName('search-non-touch');\n container[0].scrollTop = container[0].scrollTop - 65;\n }\n this.keypressed = 'ArrowUp';\n } else if (event.key === 'ArrowDown') {\n if (this.index === 1) {\n this.activeIndex = 0;\n } else {\n if (this.keypressed === 'ArrowUp') {\n this.activeIndex = this.activeIndex + 1;\n this.index = this.index + 2;\n } else {\n this.activeIndex = this.index - 1;\n }\n }\n this.index++;\n let index;\n const list = document.querySelectorAll('.search-non-touch li');\n for (index = 0; index < list.length; ++index) {\n list[index].classList.remove('active');\n }\n list[this.activeIndex].classList.add('active');\n if (this.activeIndex > 5) {\n const container = document.getElementsByClassName('search-non-touch');\n container[0].scrollTop = container[0].scrollTop + 65;\n }\n this.keypressed = 'ArrowDown';\n } else if (event.key === 'Enter') {\n this.index = 1;\n if (this.model.results[this.activeIndex] && this.model.results[this.activeIndex].condition) {\n this.dslService.evaluateExpression(this.model.results[this.activeIndex].condition).subscribe((result) => {\n if (result) {\n this.launchGame(this.model.results[this.activeIndex], false, 0);\n }\n });\n } else {\n this.launchGame(this.model.results[this.activeIndex], false, 0);\n }\n } else if (event.key === 'Backspace') {\n this.index = 1;\n this.displaySearchResults();\n if (this.placeholder === 'embedgame') {\n this.displayValue = true;\n }\n } else {\n setTimeout(() => {\n if (this.model.query.length < 1) {\n this.model.results = [];\n return;\n }\n this.displaySearchResults();\n }, 500);\n this.isMsgVisible = false;\n }\n }\n\n displaySearchResults() {\n this.model.results = this.casinoLobbyService.searchGames(this.model.query, this.casinoLobbyService.getDisabledGames());\n this.model.results = this.checkGameIconTheming(this.model.results);\n this.isMsgVisible = this.model.results.length > 0 ? false : true;\n }\n\n checkGameIconTheming(gamesList: any) {\n const features = this.configProviderService.provideFeaturesConfig();\n if (features.enableGameIconTheming) {\n gamesList.map((ele: any) => {\n ele.icon.src = this.casinoStyles.appendTheme(ele.icon.src, ele.gameId);\n });\n }\n return gamesList;\n }\n\n hideDisplayGYML(): boolean {\n if (this.placeholder === 'embedgame') {\n return true;\n }\n if (!this.GYMLGames) {\n return true;\n }\n if (this.GYMLGames.length <= 0) {\n return true;\n }\n return this.displayValue;\n }\n\n enableEnhancedSearch(): boolean {\n const features = this.configProviderService.provideFeaturesConfig();\n return features.enableEnhancedSearch && this.GYMLGames && this.GYMLGames.length >= 0;\n }\n\n docClick(event: any) {\n if (\n event.target.className != 'casino-search-input ng-untouched ng-pristine ng-valid' &&\n event.target.className != 'casino-search-input ng-pristine ng-valid ng-touched' &&\n event.target.className != 'casino-search-input ng-valid ng-touched ng-dirty' &&\n event.target.className != 'casino-search-input ng-valid ng-dirty ng-touched'\n ) {\n this.model.query = '';\n this.model.results = [];\n }\n }\n\n @HostListener('click', ['$event'])\n clickInside(event: any) {\n const casinoConfiguration = this.configProviderService.provideCasinoConfig();\n const gymlCategory = this.casinoLobbyService.getCategoryInfo(this.lobbyType, 'LMC_GYML');\n if (gymlCategory && gymlCategory.categoryInfo) {\n this.gymlCategory = gymlCategory;\n this.getGyMLGames(this.gymlCategory.categoryInfo.gamelist.slice(0, casinoConfiguration.gymlLimitForSearch));\n } else {\n this.gymlCategory = null;\n this.getGyMLGames([]);\n }\n this.wasInside = true;\n\n if (\n event &&\n event.target &&\n (event.target.id === 'gyml-desktop-id' || event.target.id === 'gym-desktop-heading-id' || event.target.id === 'lobby-games-id')\n ) {\n return;\n }\n if (event && event.target && event.target.id === 'search-text' && (!this.model.query || this.model.query === '')) {\n if (this.enableEnhancedSearch() && this.user.isAuthenticated && this.placeholder === 'navigation') {\n this.displayValue = false;\n\n if (this.user.isAuthenticated) {\n this.showGymlSearch = true;\n }\n }\n } else {\n this.displayValue = true;\n this.showGymlSearch = false;\n }\n }\n\n @HostListener('document:click')\n clickout() {\n const features = this.configProviderService.provideFeaturesConfig();\n if (!this.wasInside) {\n if (features.enableEnhancedSearch && this.GYMLGames && this.GYMLGames.length > 0) {\n }\n this.model.query = '';\n this.model.results = [];\n this.displayValue = true;\n this.showGymlSearch = false;\n this.SearchCloseIcon = false;\n }\n this.wasInside = false;\n }\n\n clickGymlHeading(event: any) {\n event.stopImmediatePropagation();\n }\n\n clickGymlGames(event: any) {\n event.stopImmediatePropagation();\n }\n\n //For launching globalSearch in regularSearch\n showGlobalSearchInRegularSearch() {\n if (this.showDesktopSearch && this.showGSInDesktopSearch && this.placeholder === 'navigation') {\n this.gshService.launchGlobalSearch();\n } else {\n this.showGSInDesktopSearch = false;\n }\n }\n\n ngOnDestroy() {\n if (this.lobbyLoadedObs) {\n this.lobbyLoadedObs.unsubscribe();\n }\n if (this.favGamesSubscribe)\n // {this.favGamesSubscribe.unsubscribe(); }\n this.gshService.deregisterEvents();\n }\n}\n","\n
\n \n
\n \n \n
\n\n
\n
{{ ofText }} {{ rewardData.totalCount }} {{ this.freeSpinsRemainingText }}
\n
\n {{\n rewardData.winAmountSoFar == null\n ? (0 | currency: rewardData.currency)\n : (rewardData.winAmountSoFar / 100 | currency: rewardData.currency)\n }}\n {{ this.totalAmountText }}\n
\n
\n \n {{ expiryDateText }}: {{ rewardData.expiryDate | timezoneformat }} \n
\n
\n\n \n
\n\n","import { CurrencyPipe, NgFor } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { ConfigProviderService, FreespinSummaryService, TimeZoneFormatPipe } from '@casinocore/platform/core';\nimport { NavigationService, TrackingService } from '@frontend/vanilla/core';\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\n@Component({\n selector: 'cc-quick-info-free-spins',\n templateUrl: 'quick-info-free-spins.component.html',\n standalone: true,\n imports: [NgFor, NgCircleProgressModule, CurrencyPipe, TimeZoneFormatPipe],\n})\nexport class QuickInfoFreeSpinsComponent implements OnInit {\n @Input() rewardDetails: any;\n @Input() gameTitle: any;\n enableFreeSpinSummary: boolean;\n isSpinShow: boolean;\n isSpinDefaultShow: boolean;\n freespinscountbg: string;\n freeSpinsRemainingText: string;\n totalAmountText: string;\n ofText: string;\n expiryDateText: string;\n quickFreeSpinsBoxColor: string;\n quickExpiryDetailsBoxColor: string;\n freeSpinsCountCircleColor: string;\n freeSpinsFont: string;\n moreInfoText: string;\n moreInfoUrl: any;\n fontColor: any;\n currencySymbol: any;\n timeZoneData: any;\n rewardPercent: number;\n quickInfoService: any;\n\n constructor(\n private configProviderService: ConfigProviderService,\n private tracking: TrackingService,\n private freespinSummaryService: FreespinSummaryService,\n private navigation: NavigationService,\n private dialogRef: MatDialogRef,\n ) {}\n ngOnInit() {\n if (this.rewardDetails) {\n this.timeZoneData = this.freespinSummaryService.getTimeZoneInfo();\n }\n this.freespinscountbg = this.configProviderService.provideGlobalConfig().freespinsCountBackgroundColor;\n this.enableFreeSpinSummary = this.configProviderService.providefreeSpinsClientConfig().isFreeSpinSummaryEnabled;\n this.freespinscountbg = this.configProviderService.provideGlobalConfig().lobbyConfigurations.freespinsCountBackgroundColor;\n this.freeSpinsRemainingText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsRemainingText;\n this.totalAmountText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.totalAmountText;\n this.ofText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.ofText;\n this.expiryDateText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.expiryDateText;\n this.quickFreeSpinsBoxColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.quickFreeSpinsBoxColor;\n this.quickExpiryDetailsBoxColor =\n this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.quickExpiryDetailsBoxColor;\n this.freeSpinsCountCircleColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsCountCircleColor;\n this.freeSpinsFont = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsFont;\n this.moreInfoText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.moreInfoText;\n this.fontColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.fontColor;\n }\n moreBoxInfoClick(event: any, rewardDataIndex: number) {\n this.onMoreInfoclick(event, rewardDataIndex, 'promotion area');\n }\n onMoreInfoclick(event: any, rewardDataIndex: number, clickArea: string) {\n const rewardData = this.rewardDetails[rewardDataIndex - 1];\n event.stopPropagation();\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions', //this.configProviderService.providefreeSpinsClientConfig().freeSpinsMoreInfo.metadata.id.itemName,//(this.casinoManager.product ? this.casinoManager.product.toUpperCase() : '') + '_' + unescape(this.teaser.metadata.id.itemName)\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'FreeSpins' + '-' + rewardDataIndex,\n 'component.LocationEvent': 'more info overlay',\n 'component.EventDetails': clickArea,\n 'component.URLClicked': rewardData.moreinfoUrl,\n });\n this.navigationAndDialogClose();\n this.navigation.goTo(rewardData?.moreinfoUrl);\n }\n public moreInfoClick(event: any, rewardDataIndex: number) {\n this.onMoreInfoclick(event, rewardDataIndex, 'moreInfoCta');\n }\n navigationAndDialogClose() {\n const onCloseDialogData: any = {\n noNavigation: true,\n };\n this.dialogRef.close(onCloseDialogData);\n this.freespinSummaryService.freespinMoreinfoClick();\n }\n public calculateRewardPercent(rewardData: any) {\n this.rewardPercent = (rewardData.availableCount / rewardData.totalCount) * 100;\n return this.rewardPercent;\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\"\"
\n
\n
{{ volatilityTypeText }}
\n
{{ howItWorksLink }}
\n
\n
\n
\n
\n {{ linesText }}{{ lines }}\n
\n
\n {{ reelsText }}{{ reels }}\n
\n
\n {{ maxPayoutText }}{{ maxPayout }}\n
\n
\n
\n
\n
\"\"
\n
\n
{{ highVolatilityText }}
\n
{{ highVolatilityDescription }}
\n
\n
\n
\n
\"\"
\n
\n
{{ regVolatilityText }}
\n
{{ regVolatilityDescription }}
\n
\n
\n
\n
\"\"
\n
\n
{{ mildVolatilityText }}
\n
{{ mildVolatilityDescription }}
\n
\n
\n \n \n
\n
\n
\n
\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { ConfigProviderService, DesignSystemEnablerService } from '@casinocore/platform/core';\nimport { DecoratorClassDirective, GameTileCtaComponent } from '@frontend/casino-ui';\nimport { DynamicHtmlDirective, TrackingService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-quick-info-game-description',\n templateUrl: 'quick-info-game-description.component.html',\n standalone: true,\n imports: [NgIf, DynamicHtmlDirective, GameTileCtaComponent, DecoratorClassDirective],\n})\nexport class QuickInfoGameDescriptionComponent implements OnInit {\n @Input() gameDescription: string;\n @Input() gameTitle: string;\n @Input() volatilityInfo: string;\n @Input() volatilityTypeText: string;\n @Input() reels: string;\n @Input() lines: string;\n @Input() maxPayout: string;\n @Input() volatilityImgLink: string;\n @Input() isShowValuePart: boolean;\n @Input() hasVolatility: boolean;\n @Input() isOnlyMaxpayout: boolean;\n @Input() isOnlyReels: boolean;\n @Input() showVolatilityTable: boolean;\n gotItCta: any;\n howItWorksLink: any;\n maxPayoutText: any;\n reelsText: any;\n linesText: any;\n isShowVoltalityPart: boolean = false;\n highVolatilityText: string;\n highVolatilityImagelink: string;\n highVolatilityDescription: string;\n mildVolatilityDescription: string;\n mildVolatilityImagelink: string;\n mildVolatilityText: string;\n regVolatilityText: string;\n regVolatilityImagelink: string;\n regVolatilityDescription: string;\n tabName: string;\n tabPosition: number;\n isLegacy: boolean = false;\n\n constructor(\n private configProviderService: ConfigProviderService,\n private tracking: TrackingService,\n private designSystemEnablerService: DesignSystemEnablerService,\n ) {}\n\n ngOnInit(): void {\n const global = this.configProviderService.provideGlobalConfig();\n this.maxPayoutText = global.moreInfoConfiguration.MaxPayoutText;\n this.reelsText = global.moreInfoConfiguration.ReelsText;\n this.linesText = global.moreInfoConfiguration.LinesText;\n this.howItWorksLink = global.moreInfoConfiguration.HowItWorksLink;\n this.gotItCta = global.moreInfoConfiguration.GotItCta;\n this.highVolatilityText = global.moreInfoConfiguration.HighVolatilityText;\n this.highVolatilityImagelink = global.moreInfoConfiguration.HighVolatilityImagelink;\n this.highVolatilityDescription = global.moreInfoConfiguration.HighVolatilityDescription;\n this.mildVolatilityText = global.moreInfoConfiguration.MildVolatilityText;\n this.mildVolatilityDescription = global.moreInfoConfiguration.MildVolatilityDescription;\n this.mildVolatilityImagelink = global.moreInfoConfiguration.MildVolatilityImagelink;\n this.regVolatilityText = global.moreInfoConfiguration.RegVolatilityText;\n this.regVolatilityImagelink = global.moreInfoConfiguration.RegVolatilityImagelink;\n this.regVolatilityDescription = global.moreInfoConfiguration.RegVolatilityDescription;\n this.isLegacy = !this.designSystemEnablerService.isEnabled();\n }\n\n showVoltalityPart() {\n this.isShowValuePart = !this.isShowValuePart;\n this.isShowVoltalityPart = !this.isShowVoltalityPart;\n this.tabName = 'MoreInfo';\n this.tabPosition = 2;\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'GameDescription' + '-' + this.volatilityTypeText,\n 'component.LocationEvent': 'moreinfo overlay',\n 'component.EventDetails': this.howItWorksLink,\n 'component.URLClicked': 'not applicable',\n });\n }\n\n hideVoltalityPart() {\n this.isShowValuePart = !this.isShowValuePart;\n this.isShowVoltalityPart = !this.isShowVoltalityPart;\n (document.getElementById('tabcontent') as HTMLElement).scrollTo(0, 0);\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'GameDescription' + '-' + this.volatilityTypeText,\n 'component.LocationEvent': 'moreinfo overlay',\n 'component.EventDetails': this.gotItCta,\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n","\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n \"{{\n \n
\n
\n
\n
\n
\n
\n\n","import { NgClass, NgFor, NgIf } from '@angular/common';\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { CasinoCoreGamelaunchService, CasinoManager, ConfigProviderService, GameLaunch } from '@casinocore/platform/core';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { Swiper, SwiperOptions } from 'swiper/types';\n\n@Component({\n selector: 'cc-quick-info-more-info',\n templateUrl: 'quick-info-more-info.component.html',\n standalone: true,\n imports: [NgClass, NgIf, NgFor, SwiperComponent],\n})\nexport class QuickInfoMoreInfoComponent implements OnInit {\n @Input() gymlGames: any;\n @Input() gameLaunchedFrom: any;\n @Input() gridPosition: any;\n @Input() gamePosition: number;\n @Input() gameContainer: string;\n @Input() lobbyType: string;\n @ViewChild('moreInfoGYMLCarousel') swiperSlider: SwiperComponent;\n\n defaultSrc: string;\n elms: number = 3.5;\n hidePreButton: boolean = true;\n hideNextButton: boolean = true;\n lastElementIndex: number;\n isTouch: boolean;\n staticGYML: boolean;\n maxScrollPosition: number;\n relatedGamesText: string;\n position: number = 0;\n\n swiperOptions: SwiperOptions = {\n autoHeight: true,\n allowTouchMove: false,\n spaceBetween: 10,\n slidesPerView: 3.5,\n observer: true,\n rewind: true,\n slidesPerGroup: 3,\n keyboard: true,\n preventClicks: false,\n preventClicksPropagation: false,\n on: {\n slideChange: (swiper) => this.onIndexChanged(swiper),\n },\n };\n\n constructor(\n private dialogRef: MatDialogRef,\n private casinoManager: CasinoManager,\n private elementRef: ElementRef,\n private configProviderService: ConfigProviderService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n ) {}\n\n ngOnInit(): void {\n this.isTouch = this.casinoManager.isTouch();\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n if (this.gymlGames.length > this.elms) {\n this.hideNextButton = false;\n }\n const global = this.configProviderService.provideGlobalConfig();\n this.relatedGamesText = global.moreInfoConfiguration.RelatedGamesText;\n }\n\n ngAfterViewInit() {\n if (document.getElementById('gymlId') as HTMLElement) {\n this.maxScrollPosition = (document.getElementById('gymlId') as HTMLElement).offsetLeft;\n }\n }\n\n action(game: any, from: string, i: any) {\n // for(let j=0;j 0) {\n this.lastElementIndex = index + this.elms - 1.5;\n this.hideNextButton = this.lastElementIndex === this.gymlGames.length - 1;\n }\n }\n goToPrevSlide() {\n if (this.swiperSlider?.swiper) {\n this.swiperSlider.swiper.slidePrev();\n }\n }\n goToNextSlide() {\n if (this.swiperSlider?.swiper) {\n this.swiperSlider.swiper.slideNext();\n this.hideNextButton = this.lastElementIndex === this.gymlGames.length - 1;\n }\n }\n\n onGameIconError(game: any): void {\n game.icon.src = this.defaultSrc;\n }\n\n setSubCategoryStyle() {\n if (this.isTouch) {\n return 'scrollable-games';\n }\n return 'unscrollable-games';\n }\n\n scrollGYML() {\n if (this.elementRef.nativeElement.getElementsByClassName('scrollable-games')[0].scrollLeft >= this.maxScrollPosition) {\n this.staticGYML = true;\n setTimeout(() => {\n const ele = document.getElementById('sticky-container');\n if (ele) ele.setAttribute('position', 'relative');\n }, 500);\n } else if (this.elementRef.nativeElement.getElementsByClassName('scrollable-games')[0].scrollLeft < this.maxScrollPosition) {\n this.staticGYML = false;\n }\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \"{{\n
\n \n
\n \"{{\n
\n
{{ jackpotValue }}
\n
\n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n
\n \n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
{{ gameProvider }}
\n
\n \"{{\n
\n
{{ provider | uppercase }}
\n
\n
{{ gameTitle }}
\n
\n \n\n @if (demoEnabled && demoEnabledForProvider && isTouch) {\n \n }\n\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n \"{{\n
\n \n
\n \"{{\n
\n
{{ jackpotValue }}
\n
\n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n
\n \n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
{{ gameProvider }}
\n
\n \"{{\n
\n
{{ provider | uppercase }}
\n
\n
{{ gameTitle }}
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n \n\n @if (demoEnabled && demoEnabledForProvider && isTouch) {\n \n }\n\n \n \n
\n \n \n \n\n","import { NgClass, NgFor, NgIf, NgStyle, UpperCasePipe } from '@angular/common';\nimport { Component, ElementRef, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport {\n CasinoCoreGamelaunchService,\n CasinoCoreNpmParamsService,\n CasinoManager,\n CasinoWidgetService,\n ConfigProviderService,\n DesignSystemEnablerService,\n FavouriteService,\n FreespinSummaryService,\n GameDataManager,\n GameLaunch,\n GameManagerService,\n JackpotDataService,\n NewQuickInfoService,\n OpenLoginDialog,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, GameTileCtaComponent } from '@frontend/casino-ui';\nimport { CookieService, DeviceService, DslService, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { QuickInfoFreeSpinsComponent } from '../nav-quick-info-free-spins/quick-info-free-spins.component';\nimport { QuickInfoGameDescriptionComponent } from '../nav-quick-info-game-description/quick-info-game-description.component';\nimport { QuickInfoMoreInfoComponent } from '../nav-quick-info-more-info/quick-info-more-info.component';\n\n@Component({\n selector: 'cc-new-quick-info-modal',\n templateUrl: 'new-quick-info-modal.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgStyle,\n NgClass,\n NgFor,\n QuickInfoGameDescriptionComponent,\n QuickInfoMoreInfoComponent,\n QuickInfoFreeSpinsComponent,\n UpperCasePipe,\n GameTileCtaComponent,\n DecoratorClassDirective,\n ],\n})\nexport class NewQuickInfoModalComponent implements OnInit, OnDestroy {\n defaultSrc: string;\n hasVolatility: boolean;\n volatilityTypeText: any;\n isLaunchedFromUrl: any = false;\n gameLaunchedFrom: any;\n boxWidth: number;\n boxWidthInt: number;\n mobileQuickInfoSrc: string;\n gameProvider: string;\n vendorLogo: any = null;\n provider: string;\n gamePosition: number;\n game: any;\n lobbyType: string;\n stickers: any = [];\n isStickersForUk: boolean = false;\n favObs: Subscription;\n isTouch: boolean;\n demoEnabled: boolean;\n isMobile: boolean;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n displayFavouritesOnPreLogin: boolean = true;\n useFavouriteGames: boolean = false;\n isFavourite: boolean = false;\n jackpotHandle: any;\n isHotJackpotGroup: boolean = false;\n jackpotData: any = null;\n jackpotValue: any = null;\n jpBgColor: any;\n jpTextCOlor: any;\n hotIcon: any;\n newQuickInfoStyle: any = false;\n landscapeMode: boolean;\n isGameDescription: boolean = true;\n isMoreInfo: boolean;\n isFreeSpins: boolean;\n categoryType: any;\n gridPosition: any;\n gameHomeUrl: string;\n demoLinkText: string;\n cta: string;\n demoEnabledForProvider: boolean = true;\n gameTitle: string;\n gameDescription: string;\n gymlCategory: any;\n gymlGames: any = [];\n gameContainer: string;\n showFreeSpinCount: boolean;\n enableFreeSpinSummary: boolean;\n enableFreeSpinsOnQuickInfo: boolean;\n freespinCountGame: any;\n freespinObservable: any;\n freespinRewardDataObservable: any;\n rewardIds: any[] = [];\n rewardDetails: any;\n volatility: string;\n volatilityInfo: string;\n reels: string;\n lines: string;\n maxPayout: string;\n volatilityImgLink: string;\n isShowValuePart: boolean = true;\n showstickersinoverlay: boolean;\n showjackpotvalueinoverlay: boolean;\n isOnlyMaxpayout: boolean = false;\n isOnlyReels: boolean = false;\n enableHotIcon: boolean;\n showVolatilityTable: boolean;\n tabPosition: number;\n tabName: string;\n globalConfig: any;\n stickerKey: any = [];\n stickerStyles: any;\n enableStickerStyles: boolean;\n jpRibbonStyles: { jpBgColor: string; jpTextColor: string };\n isLegacy: boolean = false;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private casinoNpmParamsService: CasinoCoreNpmParamsService,\n private tracking: TrackingService,\n private elementRef: ElementRef,\n private configProviderService: ConfigProviderService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private user: UserService,\n private favouriteService: FavouriteService,\n private cookie: CookieService,\n private deviceService: DeviceService,\n private casinoManager: CasinoManager,\n private jackpotDataService: JackpotDataService,\n private casinoWidgetService: CasinoWidgetService,\n private loginDialog: OpenLoginDialog,\n private newQuickInfoService: NewQuickInfoService,\n private freespinSummaryService: FreespinSummaryService,\n private gameDataManager: GameDataManager,\n private dslService: DslService,\n private designSystemEnablerService: DesignSystemEnablerService,\n private gameManagerService: GameManagerService,\n ) {}\n ngOnInit() {\n this.setLocalData();\n this.assignConfig();\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n this.isTouch = this.casinoManager.isTouch();\n this.isMobile = this.deviceService.isMobilePhone;\n this.favObs = this.favouriteService.favouriteGamesFeedObservable.subscribe((favouriteGames: any) => {\n if (favouriteGames) {\n this.isFavourite = this.favouriteService.checkForFavouriteGame(this.game);\n }\n });\n this.assignFeatures();\n this.newQuickInfoService.getGameDescription(this.game.gameId, this.game.provider)?.subscribe((res: any) => {\n if (res) {\n this.gameDescription = res?.gameDescription;\n }\n });\n if (this.showVolatilityTable) {\n this.newQuickInfoService.getGameCatalogDetails(this.game.gameId, this.game.provider)?.subscribe((res) => {\n if (res) {\n this.volatility = res.volatility;\n this.reels = res.reels;\n this.lines = res.lines;\n if (\n (!this.reels || this.reels === 'null') &&\n (!this.lines || this.lines === 'null') &&\n (!this.maxPayout || this.maxPayout == '' || this.maxPayout == 'null')\n ) {\n this.isShowValuePart = false;\n } else {\n this.isShowValuePart = true;\n }\n if (!this.volatility || this.volatility === 'N/A') {\n this.hasVolatility = false;\n } else {\n this.hasVolatility = true;\n this.setVoltalityInformation(this.volatility);\n }\n if (\n (!this.reels || this.reels === 'null' || this.reels === '0') &&\n (!this.lines || this.lines === 'null' || this.lines === '0') &&\n this.maxPayout &&\n this.maxPayout != 'null'\n ) {\n this.isOnlyMaxpayout = true;\n } else if (\n this.reels &&\n this.reels !== 'null' &&\n this.reels !== '0' &&\n (!this.lines || this.lines === 'null' || this.lines === '0') &&\n (!this.maxPayout || this.maxPayout == '' || this.maxPayout == 'null')\n ) {\n this.isOnlyReels = true;\n }\n }\n });\n } else {\n this.isOnlyReels = false;\n this.isShowValuePart = false;\n this.hasVolatility = false;\n this.isOnlyMaxpayout = false;\n this.isOnlyReels = false;\n }\n this.setJackpotValue();\n this.subscribtToJackpotFeed();\n this.getMoreInfoGames();\n this.isLegacy = !this.designSystemEnablerService.isEnabled();\n }\n ngAfterViewInit() {\n if (this.isStickersForUk) this.gameStickerStyleForUk();\n else this.gameStickerStyle();\n //this.checkForAdjustment();\n }\n assignFeatures() {\n let features: any = this.configProviderService.provideFeaturesConfig();\n this.globalConfig = this.configProviderService.provideGlobalConfig();\n this.enableStickerStyles = features.enableStickerStyles;\n this.showVolatilityTable = features.showVolatilityTable;\n this.dslService.evaluateExpression(features.hideFavouritesOnPreLogin).subscribe((hideFavouritesOnPreLogin) => {\n if (hideFavouritesOnPreLogin && !this.user.isAuthenticated) {\n this.displayFavouritesOnPreLogin = false;\n }\n });\n let vendorsWithOnlyRealMode: any = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.game.lobbyType,\n this.configProviderService.provideGameConfig().vendorsWithOnlyRealModeLobbyType,\n );\n let demoModeExcludedGamesRegex = this.configProviderService.provideGameConfig().demoModeExcludedGamesRegex;\n demoModeExcludedGamesRegex = demoModeExcludedGamesRegex?.split(',');\n if (vendorsWithOnlyRealMode && vendorsWithOnlyRealMode.indexOf(this.provider) > -1) {\n this.demoEnabledForProvider = false;\n } else if (demoModeExcludedGamesRegex && demoModeExcludedGamesRegex.length > 0) {\n demoModeExcludedGamesRegex?.forEach((regex: any) => {\n if (new RegExp(regex, 'g').test(this.game.gameId)) {\n this.demoEnabledForProvider = false;\n }\n });\n }\n }\n onGameIconError(hotIcon: any): void {\n this.defaultSrc = hotIcon;\n }\n onGameIconError1(): void {\n this.mobileQuickInfoSrc = this.defaultSrc;\n }\n setLocalData() {\n this.boxWidth = this.data.boxWidth;\n this.boxWidthInt = this.data.boxWidthInt;\n this.mobileQuickInfoSrc = this.data.mobileQuickInfoSrc;\n this.vendorLogo = this.data.vendorLogo;\n this.demoEnabled = this.data.demoEnabled;\n this.gameProvider = this.data.gameProvider;\n this.provider = this.data.provider;\n this.game = this.data.game;\n this.gamePosition = this.data.gamePosition;\n this.gameLaunchedFrom = this.data.gameLaunchedFrom;\n this.lobbyType = this.data.lobbyType;\n this.stickers = this.data.stickers;\n this.isStickersForUk = this.data.isStickersForUk;\n this.useFavouriteGames = this.data.useFavouriteGames;\n this.hotIcon = this.data.hotIcon;\n this.newQuickInfoStyle = this.data.newQuickInfoStyle;\n this.landscapeMode = this.data.landscapeMode;\n this.categoryType = this.data.categoryType;\n this.gridPosition = this.data.gridPosition;\n this.gameHomeUrl = this.data.gameHomeUrl;\n this.cta = this.data.cta;\n this.gameTitle = this.game.name;\n this.gameContainer = this.game.gameContainer;\n this.isLaunchedFromUrl = this.data.isLaunchedFromUrl;\n this.showjackpotvalueinoverlay = this.data.showjackpotvalueinoverlay;\n this.showstickersinoverlay = this.data.showstickersinoverlay;\n this.enableHotIcon = this.data.enableHotIcon;\n }\n\n launchGame(game: any, isDemo: boolean): void {\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n this.hideInfo();\n let gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.gamePosition;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = isDemo;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.gameLaunchedFrom;\n gameModel.gridPosition = this.gridPosition;\n gameModel.returnUrl = this.gameHomeUrl;\n gameModel.appendRUrlToLoginDialogWindow = true;\n gameModel.gameContainer = this.gameContainer;\n gameModel.isMoreInfoOverlay = true;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n\n subscribtToJackpotFeed() {\n const jackpotData = this.configProviderService.provideJackpotConfig();\n const enableTickingForJackpotOnGameTiles = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.lobbyType,\n jackpotData.enableJpTickingForLobbyType,\n );\n this.jackpotHandle = this.jackpotDataService.jackpotFeedObservable.subscribe(() => {\n this.setJackpotValue();\n });\n if (enableTickingForJackpotOnGameTiles) {\n this.jackpotDataService.jpTickingObservable.subscribe(() => {\n this.setJackpotValue();\n });\n }\n }\n // setJackpotValue() {\n // let jackpotValue = this.jackpotDataService.getGameJackpotValue(this.game.gameId);\n // let jackpotConfig = this.configProviderService.provideJackpotConfig();\n // if(jackpotValue) {\n // this.jackpotValue = jackpotValue.amount;\n // this.isHotJackpotGroup = jackpotValue.isHotJackpotGroup;\n // if (jackpotConfig.enableRibbonConfig) {\n // this.jpBgColor = this.jackpotValue?.jackpotAttributes?.JackpotRibbonBgColor;\n // this.jpTextCOlor = this.jackpotValue?.jackpotAttributes?.JackpotRibbonTextColor;\n // if (this.jackpotValue.globalJackpotAttributes) {\n // this.jpBgColor = this.jackpotValue?.globalJackpotAttributes?.JackpotRibbonBgColor;\n // this.jpTextCOlor = this.jackpotValue?.globalJackpotAttributes?.JackpotRibbonTextColor;\n // }\n // }\n // }\n // }\n setJackpotValue() {\n let jackpotValue = this.jackpotDataService.getGameJackpotValue(this.game.gameId);\n let enableRibbonConfig = this.configProviderService.provideJackpotConfig().enableRibbonConfig;\n if (jackpotValue) {\n this.jackpotValue = jackpotValue.amount;\n this.game.jackpotValue = jackpotValue.amount;\n this.game.isHotJackpotGroup = jackpotValue.isHotJackpotGroup;\n if (enableRibbonConfig) {\n this.jpRibbonStyles = this.jackpotDataService.getJackpotRibbonStyles(jackpotValue);\n }\n }\n }\n assignConfig() {\n let global = this.configProviderService.provideGlobalConfig();\n let freespinsConfig = this.configProviderService.providefreeSpinsClientConfig();\n if (\n global.lobbyConfigurations.FavouriteHeart === 'true' ||\n global.lobbyConfigurations.FavouriteHeart === 'True' ||\n global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n this.demoLinkText = global.messages.DemoLinkText;\n this.maxPayout = global.moreInfoConfiguration.MaxPayout;\n this.enableFreeSpinSummary = freespinsConfig.isFreeSpinSummaryEnabled;\n this.enableFreeSpinsOnQuickInfo = freespinsConfig.isEnableFreeSpinsOnQuickInfo;\n if (this.enableFreeSpinSummary && this.enableFreeSpinsOnQuickInfo) {\n this.freespinObservable = this.freespinSummaryService.freeSpinsGameDetailsObser.subscribe((freespinsdata: any) => {\n if (freespinsdata) {\n this.bindFreeSpinInfo();\n }\n });\n }\n if (this.enableFreeSpinSummary && this.enableFreeSpinsOnQuickInfo) {\n this.freespinRewardDataObservable = this.freespinSummaryService.freeSpinsRewardDetailsObser.subscribe((freespinsdata: any) => {\n if (freespinsdata) {\n this.bindFreeSpinInfo();\n }\n });\n }\n }\n\n bindFreeSpinInfo() {\n this.setfreeSpinsCount(this.freespinSummaryService.getFreespinCountInfoForGame(this.game.gameId));\n }\n /*This is to set freespins count for the respective game*/\n setfreeSpinsCount(freespinsCountResponse: any) {\n this.freespinCountGame = freespinsCountResponse;\n if (this.freespinCountGame != undefined) {\n this.showFreeSpinCount = true;\n this.rewardIds = this.freespinCountGame.rewardIds;\n this.rewardDetails = this.freespinSummaryService.getFreeSpinRewardDetails(this.rewardIds);\n } else {\n this.showFreeSpinCount = false;\n }\n }\n\n hideInfo($event: any = null): void {\n if ($event) {\n if (this.data && this.data.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.demoEnabled) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'Games Options',\n 'component.LabelEvent': 'Quick info overlay',\n 'component.ActionEvent': 'CTA - Clicked',\n 'component.PositionEvent': this.gameTitle,\n 'component.LocationEvent': 'close(x)',\n 'component.EventDetails': 'User clicked on CTA in the quick info overlay',\n 'component.URLClicked': 'Quick Info overlay - Enabled',\n });\n }\n } else {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'close',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'moreinfo overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n $event && $event.stopImmediatePropagation();\n this.removeQuickInfoQueryParameterFromUrl();\n this.dialogRef.close();\n }\n\n removeQuickInfoQueryParameterFromUrl() {\n let casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n if (this.gameContainer != 'Overlay' && this.gameContainer != 'Widget') {\n let param = 'game-info';\n if (location.href.indexOf(param) > -1) {\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n }\n\n gameStickerStyleForUk() {\n let stickerStyle = this.configProviderService.provideGlobalConfig().messages.UkStickerStyle1;\n let sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n let stickerStyle1 = this.configProviderService.provideGlobalConfig().messages.UkStickerStyle2;\n let sticker1 = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-1');\n for (let i = 0; i < sticker1.length; i++) {\n sticker1[i].style.cssText = stickerStyle1;\n }\n }\n\n gameStickerStyle() {\n let stickerStyle = this.configProviderService.provideGlobalConfig().messages.GameStickerStyle;\n let sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n }\n\n toggleFavourite(game: any, $event: any) {\n $event.stopImmediatePropagation();\n if (this.user.isAuthenticated) {\n if (\n this.data &&\n this.data.gameLaunchedFrom &&\n this.newQuickInfoStyle &&\n (this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed' ||\n this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavfromRpWidget(game);\n } else {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'games interaction',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': game.gameId,\n 'component.LocationEvent': 'more info overlay',\n 'component.EventDetails': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.URLClicked': 'not applicable',\n });\n }\n this.favouriteService.toggleGameFavourite(game);\n this.isFavourite = !this.isFavourite;\n } else {\n this.cookie.putObject('favouriteGame', game);\n this.hideInfo();\n let loginResponseObj: any = {\n loginMessageKey: 'Favourite',\n };\n if (this.isTouch && this.casinoWidgetService.isCasinoWidget()) {\n this.casinoWidgetService.postMessageToParent('UserAction', { promptLogin: true, loginMessageKey: 'Favourite' });\n return;\n }\n this.loginDialog.open(loginResponseObj);\n }\n }\n\n trackFavfromRpWidget(game: any) {\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n }\n\n isFavouriteGame(game: any) {\n return this.favouriteService.checkForFavouriteGame(game);\n }\n\n onNavClick(navItem: string): void {\n switch (navItem) {\n case 'isGameDescription':\n this.tabPosition = 1;\n this.tabName = 'GameDescription';\n this.isGameDescription = true;\n this.isMoreInfo = false;\n this.isFreeSpins = false;\n break;\n case 'isMoreInfo':\n this.tabPosition = 2;\n this.tabName = 'MoreInfo';\n this.isMoreInfo = true;\n this.isGameDescription = false;\n this.isFreeSpins = false;\n break;\n case 'isFreeSpins':\n this.tabPosition = 3;\n this.tabName = 'FreeSpins';\n this.isFreeSpins = true;\n this.isMoreInfo = false;\n this.isGameDescription = false;\n break;\n }\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': this.tabPosition,\n 'component.LocationEvent': 'moreinfo overlay',\n 'component.EventDetails': this.tabName,\n 'component.URLClicked': 'not applicable',\n });\n }\n\n getMoreInfoGames() {\n let gymlCategory = this.newQuickInfoService.getCategoryInfo(this.lobbyType);\n if (gymlCategory && gymlCategory.categoryInfo && gymlCategory.categoryInfo.gamelist && gymlCategory.categoryInfo.gamelist.length > 0) {\n let gameObj: any;\n let gameInfo: any;\n this.gymlCategory = gymlCategory.categoryInfo;\n for (let i = 0; i < gymlCategory.categoryInfo.gamelist.length; i++) {\n gameObj = gymlCategory.categoryInfo.gamelist[i].game;\n gameInfo = this.gameManagerService.getGameInfo(gameObj);\n this.gymlGames.push(gameInfo);\n }\n this.getGyMLGames(this.gymlGames);\n }\n }\n getGyMLGames(gamesModelList: any[]) {\n this.gymlGames = [];\n for (let i = 0; i < gamesModelList.length; i++) {\n let gameModelItem: any = gamesModelList[i];\n let gamelobbyModel = this.gameDataManager.setGameLobbyModel(gameModelItem, this.isTouch);\n this.gymlGames.push(gamelobbyModel);\n }\n }\n\n setVoltalityInformation(volatilityType: string) {\n let global = this.configProviderService.provideGlobalConfig();\n switch (volatilityType.toUpperCase()) {\n case 'HIGH':\n case 'MED-HIGH':\n this.volatilityTypeText = global.moreInfoConfiguration.HighVolatilityText;\n this.volatilityInfo = global.moreInfoConfiguration.High;\n this.volatilityImgLink = global.moreInfoConfiguration.HighVolatilityImagelink;\n break;\n case 'LOW':\n this.volatilityTypeText = global.moreInfoConfiguration.MildVolatilityText;\n this.volatilityInfo = global.moreInfoConfiguration.Low;\n this.volatilityImgLink = global.moreInfoConfiguration.MildVolatilityImagelink;\n break;\n case 'MED':\n case 'LOW-MED':\n this.volatilityTypeText = global.moreInfoConfiguration.RegVolatilityHeaderText;\n this.volatilityInfo = global.moreInfoConfiguration.Medium;\n this.volatilityImgLink = global.moreInfoConfiguration.RegVolatilityImagelink;\n break;\n }\n }\n getStyles(sticker: any, index: number) {\n this.stickerKey = Object.keys(this.globalConfig.stickerStyles);\n if (this.stickerKey.includes(sticker)) {\n this.stickerStyles = this.globalConfig.stickerStyles[sticker];\n } else if (this.isStickersForUk) {\n if (!this.stickerKey.includes(sticker) && index % 2 === 0) {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle1;\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle2;\n }\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.GameStickerStyle;\n }\n return this.stickerStyles;\n }\n ngOnDestroy() {\n if (this.favObs) {\n this.favObs.unsubscribe();\n }\n if (this.jackpotHandle) {\n this.jackpotHandle.unsubscribe();\n }\n if (this.freespinObservable) {\n this.freespinObservable.unsubscribe();\n }\n }\n}\n","import { Component, HostListener, OnInit, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n CasinoCoreNpmParamsService,\n CasinoLobbyService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n QuickInfoModalService,\n WindowRef,\n} from '@casinocore/platform/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NewQuickInfoModalComponent } from './new-quick-info-modal/new-quick-info-modal.component';\n\n@Component({\n selector: 'cc-new-game-quick-info',\n template: '',\n standalone: true,\n})\nexport class NewGameQuickInfoComponent implements OnInit {\n isLaunchedFromUrl: any = false;\n hotIcon: string;\n isTouch: any;\n data: any;\n width: number;\n boxWidth: number;\n boxWidthInt: number;\n icon: any;\n gameLaunchedFrom: string;\n game: any;\n gridPosition: any;\n gamePosition: number;\n categoryType: any;\n gameModel: any;\n product: string;\n src: string;\n mobileQuickInfoSrc: string;\n useQuickInfo: boolean;\n newQuickInfoStyle: any = false;\n gameProvider: string;\n cta: string;\n vendorLogo: any = null;\n provider: string;\n lobbyType: string;\n demoEnabled: boolean;\n stickers: any = [];\n isStickersForUk: boolean = false;\n useFavouriteGames: boolean = false;\n quickInfoObs: Subscription;\n landscapeMode: boolean = false;\n gameHomeUrl: string;\n showstickersinoverlay: boolean = true;\n showjackpotvalueinoverlay: boolean = true;\n enableHotIcon: boolean;\n isNewQuickInfoEnabled: boolean;\n quickInfoScrollY: number;\n quickInfoService: any;\n private destroy$ = new Subject();\n\n private readonly quickInfoModalService = inject(QuickInfoModalService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoLobbyService = inject(CasinoLobbyService);\n private readonly dialog = inject(MatDialog);\n private readonly route = inject(ActivatedRoute);\n private readonly casinoNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly windowRef = inject(WindowRef);\n private readonly casinoCoreNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly casinoStyles = inject(CasinoStylesService);\n\n constructor() {\n this.setWidth();\n }\n\n ngOnInit() {\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n if (this.casinoLobbyService.getMoreInfoComponentStatus()) return;\n else this.casinoLobbyService.setMoreInfoComponentStatus(true);\n\n const gameQuickInfoQueryParameter = this.route.snapshot.params['gameId'];\n const path = this.route?.snapshot?.routeConfig?.path ? this.route?.snapshot?.routeConfig?.path : '';\n this.isTouch = this.casinoManager.isTouch();\n this.quickInfoObs = this.quickInfoModalService.gameDataObservable.subscribe((receivedData) => {\n if (receivedData) {\n this.data = receivedData;\n if (\n (gameQuickInfoQueryParameter && path.indexOf('game-info') > -1) ||\n window.location.href.indexOf('game-info') > -1 ||\n !casinoNpmParams.isDll\n ) {\n if (document.getElementsByClassName('casino-moreinfo-outer-container').length <= 0) {\n this.openDialog();\n }\n }\n }\n });\n }\n\n @HostListener('window:resize') onResize() {\n this.setWidth();\n this.isTouch = this.casinoManager.isTouch();\n }\n\n setWidth(): void {\n if (this.windowRef.nativeWindow.screen.availWidth >= 768) this.width = 388;\n else if (this.windowRef.nativeWindow.screen.availWidth < this.windowRef.nativeWindow.screen.availHeight)\n this.width = this.windowRef.nativeWindow.screen.availWidth;\n else this.width = this.windowRef.nativeWindow.screen.availHeight;\n this.boxWidth = this.width;\n this.boxWidthInt = this.boxWidth - 176;\n }\n\n setLocalData() {\n this.icon = this.data.icon;\n this.game = this.data.game;\n this.gamePosition = this.data.gamePosition;\n this.gameLaunchedFrom = this.data.gameLaunchedFrom;\n this.categoryType = this.data.categoryType;\n this.gridPosition = this.data.gridPosition;\n this.gameModel = this.data.gameModel;\n this.product = this.data.product;\n this.provider = this.game.provider;\n this.src = this.data.src;\n this.lobbyType = this.data.lobbyType;\n this.stickers = this.data.stickers;\n this.useFavouriteGames = this.data.useFavouriteGames;\n this.gameHomeUrl = this.data.gameHomeUrl;\n this.cta = this.data.cta;\n this.isLaunchedFromUrl = this.data.isLaunchedFromUrl;\n this.quickInfoScrollY = this.data.quickInfoScrollY;\n }\n\n openDialog() {\n this.setLocalData();\n this.assignFeatures();\n this.setImageIcon();\n const isCasinoGame = !(this.game.fromCasino != undefined && !this.game.fromCasino) || !this.game.fromCozybingo;\n if (isCasinoGame && this.newQuickInfoStyle && this.isTouch) {\n if (this.windowRef.nativeWindow.screen.availWidth >= 768 || window.innerWidth >= 768 || document.body.offsetWidth >= 768) {\n this.landscapeMode = true;\n }\n }\n const requiredModalData = {\n boxWidth: this.boxWidth,\n boxWidthInt: this.boxWidthInt,\n mobileQuickInfoSrc: this.mobileQuickInfoSrc,\n gameProvider: this.gameProvider,\n vendorLogo: this.vendorLogo,\n provider: this.provider,\n gamePosition: this.gamePosition,\n game: this.game,\n gameLaunchedFrom: this.gameLaunchedFrom,\n lobbyType: this.lobbyType,\n gameTitle: this.game.name,\n demoEnabled: this.demoEnabled,\n stickers: this.stickers,\n isStickersForUk: this.isStickersForUk,\n useFavouriteGames: this.useFavouriteGames,\n newQuickInfoStyle: this.newQuickInfoStyle,\n hotIcon: this.hotIcon,\n landscapeMode: this.landscapeMode,\n categoryType: this.categoryType,\n gridPosition: this.gridPosition,\n gameHomeUrl: this.gameHomeUrl,\n cta: this.cta,\n isLaunchedFromUrl: this.isLaunchedFromUrl,\n showstickersinoverlay: this.showstickersinoverlay,\n showjackpotvalueinoverlay: this.showjackpotvalueinoverlay,\n enableHotIcon: this.enableHotIcon,\n };\n const desktopDialogRef = this.dialog.open(NewQuickInfoModalComponent, {\n data: requiredModalData,\n });\n desktopDialogRef\n .afterOpened()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n document.getElementsByTagName('html')[0].classList.add('casino-quickinfo-open');\n });\n\n desktopDialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.quickInfoScrollY) {\n if (this.isTouch) {\n window.scrollTo(0, this.quickInfoScrollY);\n } else {\n this.windowRef.nativeWindow.scrollTo(0, this.quickInfoScrollY);\n }\n }\n if (this.isTouch) {\n this.removeQuickInfoQueryParameterFromUrl();\n } else {\n this.handleEscClick();\n }\n });\n }\n\n handleEscClick() {\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n // if ((!closeDialogData || !closeDialogData.noNavigation) && currenturl) {\n // this.navigation.goTo(currenturl);\n // }\n this.removeQuickInfoQueryParameterFromUrl();\n // if (this.quickInfoScrollY) window.scrollTo(0, this.quickInfoScrollY);\n }\n\n removeQuickInfoQueryParameterFromUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n // let param = 'game-info';\n // window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n if (this.game.gameContainer != 'Overlay' && this.game.gameContainer != 'Widget') {\n const param = 'game-info';\n if (location.href.indexOf(param) > -1) {\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n }\n\n setImageIcon() {\n if (this.icon && this.icon.src) {\n this.src = JSON.parse(JSON.stringify(this.icon.src));\n if (this.newQuickInfoStyle || this.useQuickInfo) {\n // const gameConfig: any = this.configProviderService.provideGameConfig();\n this.mobileQuickInfoSrc = this.casinoLobbyService.getImagePath(this.game.gameId, 'square');\n // gameConfig.host + gameConfig.gameIconTemplate.replace('{0}', 'square').replace('{1}', this.game.gameId) + '.jpg';\n }\n }\n if (this.game.fromCozybingo) {\n this.src = this.game['sitecoreInfo']['desktopImage']['src'];\n }\n if (this.src && !this.isTouch) {\n this.mobileQuickInfoSrc = this.src;\n }\n const feature: any = this.configProviderService.provideFeaturesConfig();\n if (feature.enableGameIconTheming) {\n this.src = this.casinoStyles.appendTheme(this.src, this.game.gameId);\n this.mobileQuickInfoSrc = this.casinoStyles.appendTheme(this.mobileQuickInfoSrc, this.game.gameId);\n }\n }\n\n assignFeatures() {\n const features: any = this.configProviderService.provideFeaturesConfig();\n this.newQuickInfoStyle = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.newQuickInfoStyle);\n this.useQuickInfo = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.enableQuickInfoLobbyType);\n this.showstickersinoverlay = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.showStickersInOverlay);\n this.showjackpotvalueinoverlay = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.showJackpotvalueInOverlay);\n this.isStickersForUk = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.stickersForUk);\n this.useFavouriteGames = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.favouriteGamesLobbyType);\n const quickInfoconfig = this.configProviderService.provideQuickInfoConfig();\n if (quickInfoconfig) {\n this.cta = quickInfoconfig.quickInfo.cta;\n }\n const global = this.configProviderService.provideGlobalConfig();\n this.gameProvider = global.moreInfoConfiguration.GameProviderHeader;\n const gameConfig = this.configProviderService.provideGameConfig();\n const gameOwnerId = gameConfig.gameOwnerIdMap?.find((g: any) => g.gameId == this.game.gameId);\n this.vendorLogo =\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', 'vendorlogos').replace('{1}', gameOwnerId ? gameOwnerId?.ownerId : this.game.ownerId) +\n '.jpg';\n this.demoEnabled = gameConfig.enableDemoMode;\n this.enableHotIcon = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.enableHotIcon);\n this.hotIcon = gameConfig.host + '/htmllobby/images/newlmticons/square/hotjackpot.png';\n }\n\n ngOnDestroy() {\n if (this.quickInfoObs) {\n this.quickInfoObs.unsubscribe();\n }\n this.casinoLobbyService.setMoreInfoComponentStatus(false);\n this.quickInfoModalService.setQuickInfoModalData(null);\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import * as i2 from '@angular/cdk/dialog';\nimport { CdkDialogContainer, Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, InjectionToken, Injectable, SkipSelf, NgModule } from '@angular/core';\nimport { AnimationDurations, AnimationCurves, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/layout';\nimport { Breakpoints } from '@angular/cdk/layout';\nimport * as i3 from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\n/** Animations used by the Material bottom sheet. */\nfunction MatBottomSheetContainer_ng_template_0_Template(rf, ctx) {}\nconst matBottomSheetAnimations = {\n /** Animation that shows and hides a bottom sheet. */\n bottomSheetState: /*#__PURE__*/trigger('state', [/*#__PURE__*/state('void, hidden', /*#__PURE__*/style({\n transform: 'translateY(100%)'\n })), /*#__PURE__*/state('visible', /*#__PURE__*/style({\n transform: 'translateY(0%)'\n })), /*#__PURE__*/transition('visible => void, visible => hidden', /*#__PURE__*/group([/*#__PURE__*/animate(`${AnimationDurations.COMPLEX} ${AnimationCurves.ACCELERATION_CURVE}`), /*#__PURE__*/query('@*', /*#__PURE__*/animateChild(), {\n optional: true\n })])), /*#__PURE__*/transition('void => visible', /*#__PURE__*/group([/*#__PURE__*/animate(`${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`), /*#__PURE__*/query('@*', /*#__PURE__*/animateChild(), {\n optional: true\n })]))])\n};\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\nlet MatBottomSheetContainer = /*#__PURE__*/(() => {\n class MatBottomSheetContainer extends CdkDialogContainer {\n constructor(elementRef, focusTrapFactory, document, config, checker, ngZone, overlayRef, breakpointObserver, focusMonitor) {\n super(elementRef, focusTrapFactory, document, config, checker, ngZone, overlayRef, focusMonitor);\n /** The state of the bottom sheet animations. */\n this._animationState = 'void';\n /** Emits whenever the state of the animation changes. */\n this._animationStateChanged = new EventEmitter();\n this._breakpointSubscription = breakpointObserver.observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge]).subscribe(() => {\n const classList = this._elementRef.nativeElement.classList;\n classList.toggle('mat-bottom-sheet-container-medium', breakpointObserver.isMatched(Breakpoints.Medium));\n classList.toggle('mat-bottom-sheet-container-large', breakpointObserver.isMatched(Breakpoints.Large));\n classList.toggle('mat-bottom-sheet-container-xlarge', breakpointObserver.isMatched(Breakpoints.XLarge));\n });\n }\n /** Begin animation of bottom sheet entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n /** Begin animation of the bottom sheet exiting from view. */\n exit() {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n }\n _onAnimationDone(event) {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n this._animationStateChanged.emit(event);\n }\n _onAnimationStart(event) {\n this._animationStateChanged.emit(event);\n }\n _captureInitialFocus() {}\n static {\n this.ɵfac = function MatBottomSheetContainer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatBottomSheetContainer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(i2.DialogConfig), i0.ɵɵdirectiveInject(i1.InteractivityChecker), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.OverlayRef), i0.ɵɵdirectiveInject(i4.BreakpointObserver), i0.ɵɵdirectiveInject(i1.FocusMonitor));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatBottomSheetContainer,\n selectors: [[\"mat-bottom-sheet-container\"]],\n hostAttrs: [\"tabindex\", \"-1\", 1, \"mat-bottom-sheet-container\"],\n hostVars: 4,\n hostBindings: function MatBottomSheetContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@state.start\", function MatBottomSheetContainer_animation_state_start_HostBindingHandler($event) {\n return ctx._onAnimationStart($event);\n })(\"@state.done\", function MatBottomSheetContainer_animation_state_done_HostBindingHandler($event) {\n return ctx._onAnimationDone($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@state\", ctx._animationState);\n i0.ɵɵattribute(\"role\", ctx._config.role)(\"aria-modal\", ctx._config.ariaModal)(\"aria-label\", ctx._config.ariaLabel);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkPortalOutlet\", \"\"]],\n template: function MatBottomSheetContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatBottomSheetContainer_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n }\n },\n dependencies: [CdkPortalOutlet],\n styles: [\".mat-bottom-sheet-container{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;background:var(--mat-bottom-sheet-container-background-color, var(--mat-app-surface-container-low));color:var(--mat-bottom-sheet-container-text-color, var(--mat-app-on-surface));font-family:var(--mat-bottom-sheet-container-text-font, var(--mat-app-body-large-font));font-size:var(--mat-bottom-sheet-container-text-size, var(--mat-app-body-large-size));line-height:var(--mat-bottom-sheet-container-text-line-height, var(--mat-app-body-large-line-height));font-weight:var(--mat-bottom-sheet-container-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mat-bottom-sheet-container-text-tracking, var(--mat-app-body-large-tracking))}.cdk-high-contrast-active .mat-bottom-sheet-container{outline:1px solid}.mat-bottom-sheet-container-xlarge,.mat-bottom-sheet-container-large,.mat-bottom-sheet-container-medium{border-top-left-radius:var(--mat-bottom-sheet-container-shape);border-top-right-radius:var(--mat-bottom-sheet-container-shape)}.mat-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.mat-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.mat-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\"],\n encapsulation: 2,\n data: {\n animation: [matBottomSheetAnimations.bottomSheetState]\n }\n });\n }\n }\n return MatBottomSheetContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nconst MAT_BOTTOM_SHEET_DATA = /*#__PURE__*/new InjectionToken('MatBottomSheetData');\n/**\n * Configuration used when opening a bottom sheet.\n */\nclass MatBottomSheetConfig {\n constructor() {\n /** Data being injected into the child component. */\n this.data = null;\n /** Whether the bottom sheet has a backdrop. */\n this.hasBackdrop = true;\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n this.disableClose = false;\n /** Aria label to assign to the bottom sheet element. */\n this.ariaLabel = null;\n /** Whether this is a modal bottom sheet. Used to set the `aria-modal` attribute. */\n this.ariaModal = true;\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.closeOnNavigation = true;\n // Note that this is set to 'dialog' by default, because while the a11y recommendations\n // are to focus the first focusable element, doing so prevents screen readers from reading out the\n // rest of the bottom sheet content.\n /**\n * Where the bottom sheet should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n this.autoFocus = 'dialog';\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n this.restoreFocus = true;\n }\n}\n\n/**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n */\nclass MatBottomSheetRef {\n /** Instance of the component making up the content of the bottom sheet. */\n get instance() {\n return this._ref.componentInstance;\n }\n /**\n * `ComponentRef` of the component opened into the bottom sheet. Will be\n * null when the bottom sheet is opened using a `TemplateRef`.\n */\n get componentRef() {\n return this._ref.componentRef;\n }\n constructor(_ref, config, containerInstance) {\n this._ref = _ref;\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n this._afterOpened = new Subject();\n this.containerInstance = containerInstance;\n this.disableClose = config.disableClose;\n // Emit when opening animation completes\n containerInstance._animationStateChanged.pipe(filter(event => event.phaseName === 'done' && event.toState === 'visible'), take(1)).subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged.pipe(filter(event => event.phaseName === 'done' && event.toState === 'hidden'), take(1)).subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._ref.close(this._result);\n });\n _ref.overlayRef.detachments().subscribe(() => {\n this._ref.close(this._result);\n });\n merge(this.backdropClick(), this.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE))).subscribe(event => {\n if (!this.disableClose && (event.type !== 'keydown' || !hasModifierKey(event))) {\n event.preventDefault();\n this.dismiss();\n }\n });\n }\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result) {\n if (!this.containerInstance) {\n return;\n }\n // Transition the backdrop in parallel to the bottom sheet.\n this.containerInstance._animationStateChanged.pipe(filter(event => event.phaseName === 'start'), take(1)).subscribe(event => {\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has fired.\n this._closeFallbackTimeout = setTimeout(() => {\n this._ref.close(this._result);\n }, event.totalTime + 100);\n this._ref.overlayRef.detachBackdrop();\n });\n this._result = result;\n this.containerInstance.exit();\n this.containerInstance = null;\n }\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed() {\n return this._ref.closed;\n }\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened() {\n return this._afterOpened;\n }\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick() {\n return this._ref.backdropClick;\n }\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n}\n\n/** Injection token that can be used to specify default bottom sheet options. */\nconst MAT_BOTTOM_SHEET_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-bottom-sheet-default-options');\n/**\n * Service to trigger Material Design bottom sheets.\n */\nlet MatBottomSheet = /*#__PURE__*/(() => {\n class MatBottomSheet {\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef() {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n set _openedBottomSheetRef(value) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n constructor(_overlay, injector, _parentBottomSheet, _defaultOptions) {\n this._overlay = _overlay;\n this._parentBottomSheet = _parentBottomSheet;\n this._defaultOptions = _defaultOptions;\n this._bottomSheetRefAtThisLevel = null;\n this._dialog = injector.get(Dialog);\n }\n open(componentOrTemplateRef, config) {\n const _config = {\n ...(this._defaultOptions || new MatBottomSheetConfig()),\n ...config\n };\n let ref;\n this._dialog.open(componentOrTemplateRef, {\n ..._config,\n // Disable closing since we need to sync it up to the animation ourselves.\n disableClose: true,\n // Disable closing on detachments so that we can sync up the animation.\n closeOnOverlayDetachments: false,\n maxWidth: '100%',\n container: MatBottomSheetContainer,\n scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0'),\n templateContext: () => ({\n bottomSheetRef: ref\n }),\n providers: (cdkRef, _cdkConfig, container) => {\n ref = new MatBottomSheetRef(cdkRef, _config, container);\n return [{\n provide: MatBottomSheetRef,\n useValue: ref\n }, {\n provide: MAT_BOTTOM_SHEET_DATA,\n useValue: _config.data\n }];\n }\n });\n // When the bottom sheet is dismissed, clear the reference to it.\n ref.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef === ref) {\n this._openedBottomSheetRef = null;\n }\n });\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance?.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref.containerInstance.enter();\n }\n this._openedBottomSheetRef = ref;\n return ref;\n }\n /**\n * Dismisses the currently-visible bottom sheet.\n * @param result Data to pass to the bottom sheet instance.\n */\n dismiss(result) {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss(result);\n }\n }\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n static {\n this.ɵfac = function MatBottomSheet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatBottomSheet)(i0.ɵɵinject(i3.Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(MatBottomSheet, 12), i0.ɵɵinject(MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatBottomSheet,\n factory: MatBottomSheet.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return MatBottomSheet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatBottomSheetModule = /*#__PURE__*/(() => {\n class MatBottomSheetModule {\n static {\n this.ɵfac = function MatBottomSheetModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatBottomSheetModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatBottomSheetModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MatBottomSheet],\n imports: [DialogModule, MatCommonModule, PortalModule, MatCommonModule]\n });\n }\n }\n return MatBottomSheetModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_BOTTOM_SHEET_DATA, MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, MatBottomSheet, MatBottomSheetConfig, MatBottomSheetContainer, MatBottomSheetModule, MatBottomSheetRef, matBottomSheetAnimations };\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LibMockService {\n quickInfoService: any;\n sportsOverLayService: any;\n bootstrapService: any;\n dialogRef: any;\n constructor() {}\n\n setQuickInfoService(quickInfoService: any) {\n this.quickInfoService = quickInfoService;\n }\n\n getQuickInfoService() {\n return this.quickInfoService;\n }\n\n setsportsOverLayService(sportsOverLayService: any) {\n this.sportsOverLayService = sportsOverLayService;\n }\n\n getsportsOverLayService() {\n return this.sportsOverLayService;\n }\n setCasinoBootstrapService(casinoBootstrapService: any) {\n this.bootstrapService = casinoBootstrapService;\n }\n getCasinoBootstrapService() {\n return this.bootstrapService;\n }\n setDialogRef(dialogRef: any) {\n this.dialogRef = dialogRef;\n }\n getDialogRef() {\n return this.dialogRef;\n }\n closeDialogRef(dialogRef: any) {\n dialogRef.close();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { CasinoLobbyService, CasinoManager, ConfigProviderService, GameDataManager, LobbyItem } from '@casinocore/platform/core';\n\nimport { GameModel, GameTileConfigRender, Top10GameTileModel } from '../models/gametile.models';\nimport { FeatureConfig } from '../models/modular-config.models';\nimport { ContainerDescriptionBindings } from '../models/modular-container.models';\nimport { SubcategoryModel } from '../models/modular-lmt-category.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GamesReaderService {\n private readonly casinoLobbyService = inject(CasinoLobbyService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly gameDataManager = inject(GameDataManager);\n\n /**\n * @whatItDoes filter the data which belong to the category(home) and subcategory(LMC_TopGames) passed as a parameter from the above data\n *\n * @param subcategoryId\n * @param categoryId\n * @param lobbyType\n */\n getSubcategory(subcategoryId: string, categoryId: string, lobbyType: string): SubcategoryModel | undefined {\n const { categoriesMap } = this.getCategoriesByLobbyType(lobbyType) || {};\n if (!categoriesMap || categoriesMap?.size === 0) {\n return undefined;\n }\n const category = categoriesMap.get(categoryId);\n return category ? category.subcategories?.find((s) => s.lmtCategoryId === subcategoryId) : undefined;\n }\n\n getGameModels(subcategoryId: string, categoryId: string, lobbyType: string, numGames: number = 10): Top10GameTileModel[] {\n const topTenGames: Top10GameTileModel[] = [];\n const { gameMetaDataMap } = this.getCategoriesByLobbyType(lobbyType) || {};\n const subcategory: SubcategoryModel | undefined = this.getSubcategory(subcategoryId, categoryId, lobbyType);\n\n if (subcategory?.gamelist.length === 0) {\n return topTenGames;\n }\n subcategory?.gamelist.forEach((data: any, index: number) => {\n const filteredData = gameMetaDataMap?.get(data.game);\n const gameModelData: GameModel = this.getGameData(filteredData, lobbyType, index, subcategory.engCategoryName, data);\n if (filteredData) {\n const returnedData: Top10GameTileModel = {\n gameId: filteredData?.game ?? '',\n id: filteredData?.game ?? '',\n name: filteredData?.name ?? '',\n img: {\n src: this.gameDataManager.formIconImageUrl(gameModelData, false),\n defaultSrc: this.casinoManager.getGrayImageUrl(),\n lazySrc: this.gameDataManager.formIconImageUrl(gameModelData, false),\n },\n footer: {\n firstLineText: filteredData?.name ?? '',\n secondLineText: '',\n thirdLineText: '',\n },\n badges: this.getStickers(lobbyType, gameModelData),\n game: gameModelData,\n };\n topTenGames.push(returnedData);\n }\n });\n return topTenGames.slice(0, numGames);\n }\n\n getGameData(filteredData: any, lobbyType: string, index: number, engCategoryName: string, data: any): GameModel {\n return {\n game: filteredData?.game ?? '',\n name: filteredData?.name ?? '',\n gameIndex: index,\n ownerId: filteredData?.ownerId ?? '',\n provider: filteredData?.provider ?? '',\n sticker: data?.sticker ?? '',\n gameId: filteredData?.game ?? '',\n icon: filteredData ? { src: this.gameDataManager.formIconImageUrl(filteredData, false) } : { src: '' },\n lobbyType,\n colSpan: index + 1,\n gameContainer: 'page container',\n gameSection: engCategoryName,\n fromCasino: true,\n };\n }\n\n /**\n * @whatItDoes display title subtile and icon for the respective top games or any other category configured\n *\n * @param subcategoryId\n * @param categoryId\n * @param lobbyType\n */\n getContainerDescriptionModel(subcategoryId: string, categoryId: string, lobbyType: string): ContainerDescriptionBindings {\n const subcategoryData: SubcategoryModel | undefined = this.getSubcategory(subcategoryId, categoryId, lobbyType);\n const containerDescription: ContainerDescriptionBindings = {\n iconClass: subcategoryData?.sitecoreData?.displayCategoryIcon ? subcategoryData?.sitecoreData?.attributes?.icon : '',\n titleText: subcategoryData?.categoryname,\n subtitleClass: '',\n subtitleInlineStyle: '',\n subtitleText: subcategoryData?.subTitle,\n titleInlineStyle: '',\n showIcon: subcategoryData?.sitecoreData?.attributes?.icon ? true : false,\n showTitle: subcategoryData?.categoryname ? true : false,\n showSubtitle: subcategoryData?.subTitle ? true : false,\n };\n return containerDescription;\n }\n\n getStickers(lobbyType: string, game: GameModel): { key: string; value: string }[] | undefined {\n if (!game.sticker) {\n return;\n }\n const stickerMap = this.casinoLobbyService.getStickerMap(lobbyType);\n if (stickerMap?.size === 0) {\n return;\n }\n if (game.sticker.indexOf('#') === -1) {\n const stickerValue: string = stickerMap.get(game.sticker);\n return [{ key: game.sticker, value: stickerValue }];\n }\n let stickerKeys = game.sticker.split('#');\n stickerKeys = this.isStickersForUk(lobbyType) ? stickerKeys : [stickerKeys[0]];\n const values = stickerKeys.map((key) => ({ key, value: stickerMap.get(key) }));\n return values.filter(({ value }) => value);\n }\n\n getGameTileConfigs(lobbyType: string): GameTileConfigRender {\n const featureConfig: FeatureConfig = this.configProviderService.provideFeaturesConfig();\n return {\n showMoreinfo: this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, featureConfig.enableQuickInfoLobbyType),\n };\n }\n\n private isStickersForUk(lobbyType: string): boolean {\n return this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, this.configProviderService.provideFeaturesConfig().stickersForUk);\n }\n\n /**\n * @whatItDoes To retrive all the data related to the lobby types configured in the dynacon like instantCasino, instantSlots etc,\n Filter the data based on the current lobby type which is passed as parameter below, this data contains both lmt data from platform and sitecore data configured for that lobby type\n retrive the game meta data which contains all games present for all lobbytypes configured in dynacon\n *\n * @param lobbyType\n */\n private getCategoriesByLobbyType(lobbyType: string): LobbyItem | undefined {\n if (!lobbyType) {\n return undefined;\n }\n const cachedData: Map = this.casinoLobbyService.lobbyTypeMaps;\n return cachedData ? cachedData.get(lobbyType?.trim()) : undefined;\n }\n}\n","export enum ScreenSize {\n EXTRA_SMALL_MOBILE_DEVICE = 360,\n SMALL_MOBILE_DEVICE = 480,\n STANDARD_MOBILE_DEVICE = 768,\n LAPTOP = 1024,\n LAPTOP_LANDSCAPE = 1200,\n}\n","import { Injectable } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { ScreenSize } from '../screen-size.enum';\n\nconst DEFAULT_CHUNK_SIZE = 4.5;\nconst DEFAULT_SWIPE_SIZE = 4;\n\nexport enum CHUNK_SIZE {\n EXTRA_SMALL_MOBILE_DEVICE = 2.5,\n STANDARD_MOBILE_DEVICE = 3.2,\n LAPTOP = 3.5,\n LAPTOP_LANDSCAPE = 4,\n LARGE_DEVICE = 4.5,\n}\n\nexport enum SWIPE_SIZE {\n EXTRA_SMALL_MOBILE_DEVICE = 2,\n LAPTOP = 3,\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwiperConfigService {\n constructor(private readonly deviceService: DeviceService) {}\n\n getChunkSwiperSize(isGamesAvailable: boolean, isFutureGridEnabled: boolean = true): SwiperOptionConfig {\n const isTouch = this.deviceService.isTouch;\n let swiperConfig: SwiperOptionConfig = {\n chunkSize: DEFAULT_CHUNK_SIZE,\n swipeSize: DEFAULT_SWIPE_SIZE,\n enableNavigation: !isTouch,\n };\n if (!isGamesAvailable || !isTouch || !isFutureGridEnabled) {\n return swiperConfig;\n }\n swiperConfig.chunkSize = this.getChunkSize();\n swiperConfig.swipeSize = this.getSwipeSize();\n return swiperConfig;\n }\n\n private getSwipeSize(): number {\n if (this.deviceService.windowWidth() <= ScreenSize.SMALL_MOBILE_DEVICE) {\n return SWIPE_SIZE.EXTRA_SMALL_MOBILE_DEVICE;\n }\n if (this.deviceService.windowWidth() >= ScreenSize.STANDARD_MOBILE_DEVICE && this.deviceService.windowWidth() < ScreenSize.LAPTOP) {\n return SWIPE_SIZE.LAPTOP;\n }\n return DEFAULT_SWIPE_SIZE;\n }\n\n private getChunkSize(): number {\n if (this.deviceService.windowWidth() <= ScreenSize.SMALL_MOBILE_DEVICE) {\n return CHUNK_SIZE.EXTRA_SMALL_MOBILE_DEVICE;\n }\n if (this.deviceService.windowWidth() <= ScreenSize.STANDARD_MOBILE_DEVICE) {\n return CHUNK_SIZE.STANDARD_MOBILE_DEVICE;\n }\n //for ipad/tab in portrait\n if (this.deviceService.windowWidth() > ScreenSize.STANDARD_MOBILE_DEVICE && this.deviceService.windowWidth() <= ScreenSize.LAPTOP) {\n return CHUNK_SIZE.LAPTOP;\n }\n //for ipad/tab in landscape\n if (this.deviceService.windowWidth() > ScreenSize.LAPTOP && this.deviceService.windowWidth() <= ScreenSize.LAPTOP_LANDSCAPE) {\n return CHUNK_SIZE.LAPTOP_LANDSCAPE;\n }\n return CHUNK_SIZE.LARGE_DEVICE;\n }\n}\n\nexport interface SwiperOptionConfig {\n chunkSize: number;\n swipeSize: number;\n enableNavigation: boolean;\n}\n","import { formatNumber } from '@angular/common';\nimport { Injectable, LOCALE_ID, inject } from '@angular/core';\n\nimport { JackpotValueModel } from './jackpot-value.model';\n\n@Injectable({ providedIn: 'root' })\nexport class JackpotValueSerializer {\n private _currLocale = inject(LOCALE_ID);\n\n serialize(value: JackpotValueModel | undefined, withCurrency = true, currencyOnRight = false, withAmount = true): string {\n if (value) {\n const formattedAmount = withAmount ? formatNumber(value.amount, this._currLocale, '2.2-2') || '' : '';\n if (withCurrency) {\n return currencyOnRight ? `${formattedAmount} ${value.currency}` : `${value.currency} ${formattedAmount}`;\n } else {\n return formattedAmount;\n }\n }\n return '';\n }\n\n deserialize(valueStr: string): JackpotValueModel | undefined {\n if (!valueStr) {\n return;\n }\n const nbsplessValueStr = valueStr.replace(/ /g, '');\n const currency = this.deserializeCurrency(nbsplessValueStr);\n const currencylessValueStr = nbsplessValueStr.replace(currency, '');\n const numericValue = this.deserializeAmount(currencylessValueStr);\n\n return { currency, amount: numericValue };\n }\n\n private deserializeAmount(valueStr: string): number {\n const spacelessValueStr = valueStr.replace(/ /g, '');\n const commalessValueStr = spacelessValueStr.replace(/,/g, '');\n const dotlessValueStr = commalessValueStr.replace(/\\./g, '');\n const whitespacelessValueStr = dotlessValueStr.replace(/\\s/g, '');\n\n const possiblyNumericValueStr = whitespacelessValueStr.match(/\\b[\\d, ]+\\b/g)?.[0] ?? '';\n let decimalRealParts = possiblyNumericValueStr;\n if (possiblyNumericValueStr.length > 2) {\n const butFromLast = -2;\n const realpart = possiblyNumericValueStr.slice(0, butFromLast);\n const decimalpart = possiblyNumericValueStr.slice(butFromLast);\n decimalRealParts = `${realpart}.${decimalpart}`;\n }\n\n return parseFloat(decimalRealParts.replace(/,/g, ''));\n }\n\n private deserializeCurrency(valueStr: string): string {\n const initialcurrency = valueStr.match(/[^\\d.,\\s]/g);\n let currency = '';\n\n if (initialcurrency && initialcurrency.length > 0) {\n for (let i = 0; i < initialcurrency.length; i++) {\n currency = currency + initialcurrency[i];\n }\n currency = currency.replace(/,/g, '');\n currency = currency.replace(/\\./g, '');\n }\n return currency;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { JackpotValueSerializer } from './jackpot-value-serializer.service';\nimport { JackpotValueModel } from './jackpot-value.model';\n\n@Pipe({\n name: 'csJackpotValueFormatter',\n standalone: true,\n pure: true,\n})\nexport class JackpotValueFormatterPipe implements PipeTransform {\n constructor(private readonly valueSerializer: JackpotValueSerializer) {}\n\n transform(value: JackpotValueModel | undefined, withCurrency: boolean, currencyOnRight: boolean, withAmount: boolean) {\n return this.valueSerializer.serialize(value, withCurrency, currencyOnRight, withAmount);\n }\n}\n","@if (isLegacy()) {\n @if (currentValue()) {\n \n @if (withIcon() && isJackpotGroup()) {\n \n \n \n }\n {{\n currentValue() | csJackpotValueFormatter: withCurrency() : withCurrencyOnRight() : withAmount()\n }}\n \n }\n}\n","import { ChangeDetectionStrategy, Component, Signal, computed, input, signal } from '@angular/core';\n\nimport { CsImageIconComponent } from '@frontend/casino-ui';\n\nimport { JackpotValueFormatterPipe } from './jackpot-value-formatter.pipe';\nimport { JackpotValueModel } from './jackpot-value.model';\n\n@Component({\n selector: 'cs-jackpot-ribbon',\n templateUrl: './jackpot-ribbon.component.html',\n standalone: true,\n styleUrl: './jackpot-ribbon.component.scss',\n imports: [CsImageIconComponent, JackpotValueFormatterPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class JackpotRibbonComponent {\n private _currentValue = signal(undefined);\n isJackpotGroup = signal(false);\n\n isLegacy = input(true);\n iconImage = input('');\n jackpotValue = input();\n alignment = input('centered');\n withIcon = input(true);\n withAmount = input(true);\n withCurrency = input(true);\n withCurrencyOnRight = input(false);\n customClass = input('');\n\n get currentValue(): Signal {\n return computed(() => this._currentValue() || this.jackpotValue());\n }\n\n set currentValue(jpValue: JackpotValueModel | undefined) {\n this._currentValue.set(jpValue);\n }\n}\n\nexport type JackpotRibbonAlignment = 'centered' | 'left';\n","import { Directive, OnDestroy, OnInit, input } from '@angular/core';\n\nimport { JackpotRibbonComponent } from './jackpot-ribbon.component';\nimport { JackpotValueModel } from './jackpot-value.model';\n\nconst __DEFAULT_TICK_INTERVAL__ = 1500;\nconst __DEFAULT_INCREMENT_MULTIPLIER__ = 0.01;\nconst __DEFAULT_TICK_INCREMENT__ = 1;\n\n@Directive({\n selector: '[csWithJPIncrementalTicking]',\n standalone: true,\n})\nexport class JackpotValueIncrementalTickingDirective implements OnInit, OnDestroy {\n withIncrementalTick = input(true);\n tickIncrement = input(__DEFAULT_TICK_INCREMENT__);\n incrementMultiplier = input(__DEFAULT_INCREMENT_MULTIPLIER__);\n tickInterval = input(__DEFAULT_TICK_INTERVAL__);\n currencyOnRight = input(false);\n\n scheduledTickInterval: any;\n\n constructor(private readonly ribbonComponent: JackpotRibbonComponent) {}\n\n ngOnDestroy(): void {\n clearInterval(this.scheduledTickInterval);\n }\n\n ngOnInit(): void {\n if (this.withIncrementalTick()) {\n clearInterval(this.scheduledTickInterval);\n this.scheduledTickInterval = setInterval(() => {\n const currVal = this.incrementJackpotValue(this.ribbonComponent.currentValue());\n this.ribbonComponent.currentValue = currVal;\n }, this.tickInterval());\n }\n }\n\n private incrementJackpotValue(currentValue: JackpotValueModel | undefined) {\n const tickIncrMultiplier = 0.01;\n if (!currentValue) {\n return;\n }\n\n const { currency, amount } = currentValue;\n let newAmount = amount + this.tickIncrement() * tickIncrMultiplier;\n return { currency, amount: newAmount };\n }\n}\n","import { Directive, OnDestroy, OnInit, input } from '@angular/core';\n\nimport { JackpotRibbonComponent } from './jackpot-ribbon.component';\nimport { JackpotValueSerializer } from './jackpot-value-serializer.service';\n\nexport const __JACKPOT_MAP_BROADCAST_EVENT__ = 'cs-jackpot-map-broadcast';\nexport const __JACKPOT_VALUE_QUERY_EVENT__ = 'cs-jackpot-value-query';\n\n@Directive({\n selector: '[csWithJackpotValueEventHydrator]',\n standalone: true,\n})\nexport class JackpotValueEventHydratorDirective implements OnInit, OnDestroy {\n jackpotGameId = input('');\n broadcastEventName = input(__JACKPOT_MAP_BROADCAST_EVENT__);\n queryEventName = input(__JACKPOT_VALUE_QUERY_EVENT__);\n\n constructor(\n private readonly jackpotRibbon: JackpotRibbonComponent,\n private readonly valueSerializer: JackpotValueSerializer,\n ) {}\n\n ngOnDestroy(): void {\n removeEventListener(__JACKPOT_MAP_BROADCAST_EVENT__, this.jackpotMapBroadcastHandler);\n }\n\n ngOnInit(): void {\n addEventListener(this.broadcastEventName(), this.jackpotMapBroadcastHandler);\n this.queryAndUpdateJackpotValue(this.queryEventName());\n }\n\n queryAndUpdateJackpotValue(queryEventName: string): void {\n let jpValueDetail = {\n gameId: this.jackpotGameId(),\n value: {\n isHotJackpotGroup: false,\n amount: '',\n },\n };\n dispatchEvent(new CustomEvent(queryEventName, { detail: jpValueDetail }));\n this.updateValue(jpValueDetail.value.isHotJackpotGroup, jpValueDetail.value.amount);\n }\n\n private jackpotMapBroadcastHandler = (ev: CustomEventInit): void => {\n const jackpotMap = (ev.detail ?? {}) as Map;\n this.updateValue(jackpotMap.get(this.jackpotGameId())?.isHotJackpotGroup ?? false, jackpotMap.get(this.jackpotGameId())?.amount ?? '');\n };\n\n private updateValue(isHotJackpotGroup: boolean, valueStr: string): void {\n const deserializedValue = this.valueSerializer.deserialize(valueStr);\n this.jackpotRibbon.isJackpotGroup.set(isHotJackpotGroup);\n this.jackpotRibbon.currentValue = deserializedValue;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, OnDestroy, inject, input, signal } from '@angular/core';\n\nimport { FavouriteService, OpenLoginDialog } from '@casinocore/platform/core';\nimport { FavIconKindType } from '@frontend/casino-ui';\nimport { CookieService, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nconst FAV_CLASS = {\n [FavIconKindType.Heart]: {\n OUTLINED_FAV_CLASS: 'theme-heart-outline',\n SOLID_FAV_CLASS: 'theme-heart-solid',\n },\n [FavIconKindType.Star]: {\n OUTLINED_FAV_CLASS: 'theme-rating-star-empty',\n SOLID_FAV_CLASS: 'theme-rating-star-full',\n },\n};\n\n@Directive({\n selector: '[csFavoriteConjugate]',\n standalone: true,\n})\nexport class FavouriteConjugateDirective implements AfterViewInit, OnDestroy {\n gameId = input.required();\n gameSection = input.required();\n isFav = input(false);\n shouldTrackSection = input();\n csFavoriteConjugateIconKind = input.required();\n\n currFavState = signal(this.isFav());\n private subscription: Subscription;\n\n private readonly hostComponent = inject(ElementRef);\n private readonly favouriteService = inject(FavouriteService);\n private readonly cookieService = inject(CookieService);\n private readonly loginDialog = inject(OpenLoginDialog);\n private readonly userService = inject(UserService);\n\n constructor() {}\n\n ngAfterViewInit(): void {\n this.subscription = this.favouriteService.favouriteGamesFeedObservable.subscribe((favouriteGames) => {\n if (favouriteGames && favouriteGames.length > 0) {\n const isFavorite = this.favouriteService.checkForFavouriteGame({\n gameId: this.gameId(),\n fromCasino: true,\n });\n this.currFavState.set(isFavorite);\n this.setFavouriteClass();\n }\n });\n }\n\n @HostListener('click', ['$event'])\n clickHandler(event: Event) {\n event.stopImmediatePropagation();\n if (this.userService.isAuthenticated) {\n this.favouriteService.toggleGameFavourite({\n gameId: this.gameId(),\n fromCasino: true,\n shouldTrackSection: this.shouldTrackSection(),\n gameSection: this.gameSection(),\n });\n this.currFavState.set(!this.currFavState());\n this.setFavouriteClass();\n } else {\n this.cookieService.putObject('favouriteGame', {\n gameId: this.gameId(),\n fromCasino: true,\n shouldTrackSection: this.shouldTrackSection(),\n gameSection: this.gameSection(),\n });\n const loginResponseObj: any = {\n loginMessageKey: 'Favourite',\n };\n this.loginDialog.open(loginResponseObj);\n }\n }\n\n private setFavouriteClass() {\n const decoratorClassHost = this.hostComponent?.nativeElement?.querySelector('[data-decoratorclass-host]') as HTMLElement;\n if (this.currFavState()) {\n decoratorClassHost?.classList?.add(FAV_CLASS[this.csFavoriteConjugateIconKind()].SOLID_FAV_CLASS);\n decoratorClassHost?.classList?.remove(FAV_CLASS[this.csFavoriteConjugateIconKind()].OUTLINED_FAV_CLASS);\n return;\n }\n decoratorClassHost?.classList?.add(FAV_CLASS[this.csFavoriteConjugateIconKind()].OUTLINED_FAV_CLASS);\n decoratorClassHost?.classList?.remove(FAV_CLASS[this.csFavoriteConjugateIconKind()].SOLID_FAV_CLASS);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject, inject, input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n CasinoCoreNpmParams,\n CasinoCoreNpmParamsService,\n CasinoLobbyService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n QuickInfoModalService,\n} from '@casinocore/platform/core';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { LibMockService } from '../../services/lib-mock.service';\nimport { GameModel } from '../models/gametile.models';\nimport { FeatureConfig, QuickInfoConfig } from '../models/modular-config.models';\nimport { SubcategoryModel } from '../models/modular-lmt-category.models';\nimport { GlobalMessage } from '../models/modular-lobby-messages.models';\n\n@Directive({\n selector: '[csMoreInfo]',\n standalone: true,\n})\nexport class MoreInfoDirective {\n game = input.required();\n categoryType = input.required();\n lobbyType = input.required();\n stickers = input<{ key: string; value: string }[]>([]);\n\n private readonly casinoLobbyService = inject(CasinoLobbyService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly deviceService = inject(DeviceService);\n private readonly route = inject(ActivatedRoute);\n private readonly quickInfoModalService = inject(QuickInfoModalService);\n private readonly libMockService = inject(LibMockService);\n private readonly casinoNpmParamsService = inject(CasinoCoreNpmParamsService);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoStyles = inject(CasinoStylesService);\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n @HostListener('click', ['$event'])\n clickHandler(event: Event) {\n event.stopImmediatePropagation();\n const features: FeatureConfig = this.configProviderService.provideFeaturesConfig();\n const quickInfoConfig: QuickInfoConfig = this.configProviderService.provideQuickInfoConfig();\n const globalMessages: GlobalMessage = this.configProviderService.provideGlobalConfig()?.messages;\n const isNewQuickInfoEnabled: boolean = this.casinoManager.IsFeatureEnabledforLobbytypeWithInvokerProduct(\n this.lobbyType(),\n features.enableNewQuickInfoLobbyType,\n );\n const quickInfoScrollY: number = window.pageYOffset;\n const isTouch: boolean = this.deviceService.isTouch;\n const casinoQuickInfoElement = this.document.getElementsByTagName('html')[0];\n const requiredModalData = {\n game: this.game(),\n gameTitle: this.game()?.name,\n src: this.getQuickInfoSrc(),\n useFavouriteGames: this.casinoManager.IsFeatureEnabledforLobbytype(this.game()?.lobbyType ?? '', features.favouriteGamesLobbyType),\n gameProvider: quickInfoConfig?.quickInfo?.gameProviderHeader,\n provider: this.game()?.provider,\n cta: quickInfoConfig?.quickInfo?.cta || globalMessages?.ButtonPlayNow,\n isTouch,\n gamePosition: this.game()?.gameIndex,\n gameLaunchedFrom: 'Top10Games',\n categoryType: this.categoryType()?.subcategoryid,\n isLaunchedFromUrl: false,\n stickers: this.stickers(),\n gridPosition: 1,\n routeParams: this.route.snapshot.params,\n style: globalMessages?.quickInfoStyles,\n product: '',\n lobbyType: this.game()?.lobbyType,\n gameHomeUrl: window.location.href,\n moreInfoText: 'moreInfoEvent',\n icon: this.game()?.icon,\n quickInfoScrollY,\n };\n\n if (isNewQuickInfoEnabled) {\n this.appendQuickInfoQueryParameterToUrl();\n this.quickInfoModalService.setQuickInfoModalData(requiredModalData);\n return;\n }\n const dialogRef = isTouch\n ? this.libMockService.getQuickInfoService().openGameQuickInfoDialog(requiredModalData)\n : this.libMockService.getQuickInfoService().openQuickInfoDialog(requiredModalData);\n casinoQuickInfoElement.classList.add('casino-quickinfo-open');\n dialogRef.afterClosed().subscribe(() => {\n if (quickInfoScrollY) {\n window.scrollTo(0, quickInfoScrollY);\n }\n isTouch ? this.hideQuickInfo() : this.handleQuickInfoonESC();\n });\n }\n\n appendQuickInfoQueryParameterToUrl(): void {\n const casinoNpmParams: CasinoCoreNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams?.isDll) {\n const windowUrl: string = window.location.href;\n let pushStateUrl: string;\n let queryStrings: string = '';\n if (this.urlHasQueryStrings(windowUrl)) {\n pushStateUrl = windowUrl.substr(0, windowUrl.indexOf('?'));\n queryStrings = windowUrl.substr(windowUrl.indexOf('?'));\n } else {\n pushStateUrl = windowUrl;\n }\n if (this.isUrlEndsWithSlash(pushStateUrl)) {\n pushStateUrl = pushStateUrl + 'game-info/' + this.game()?.gameId;\n } else {\n pushStateUrl = pushStateUrl + '/game-info/' + this.game()?.gameId;\n }\n pushStateUrl = pushStateUrl + queryStrings;\n window.history.pushState(location.href, '', pushStateUrl);\n }\n }\n\n isUrlEndsWithSlash(url: string): boolean {\n if (url.lastIndexOf('/') + 1 === url.length) {\n return true;\n }\n return false;\n }\n\n urlHasQueryStrings(url: string): boolean {\n if (url && url.indexOf('?') > -1) {\n return true;\n }\n return false;\n }\n\n handleQuickInfoonESC(): void {\n const casinoQuickInfoElement = this.document.getElementsByTagName('html')[0];\n casinoQuickInfoElement.classList.remove('casino-quickinfo-open');\n this.removeQuickInfoQueryParameterFromUrl();\n }\n removeQuickInfoQueryParameterFromUrl(): void {\n const casinoQuickInfoElement = this.document.getElementsByTagName('html')[0];\n const casinoNpmParams: CasinoCoreNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams?.isDll) {\n const param = 'game-info';\n if (location.href.indexOf(param) > -1 && !casinoQuickInfoElement.classList.contains('casino-quickinfo-open')) {\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n\n hideQuickInfo(): void {\n this.libMockService.getQuickInfoService().closeGameQuickInfoDialog();\n }\n\n getQuickInfoSrc() {\n let mobileQuickInfoSrc: string = '';\n const feature: FeatureConfig = this.configProviderService.provideFeaturesConfig();\n const newQuickInfoStyle = this.casinoManager.IsFeatureEnabledforLobbytype(this.game()?.lobbyType ?? '', feature.newQuickInfoStyle);\n const useQuickInfo = this.casinoManager.IsFeatureEnabledforLobbytype(this.game()?.lobbyType ?? '', feature.enableQuickInfoLobbyType);\n if (this.game()?.icon?.src) {\n if (newQuickInfoStyle || useQuickInfo) {\n mobileQuickInfoSrc = this.casinoLobbyService.getImagePath(this.game()?.gameId ?? '', 'square');\n }\n }\n if (feature.enableGameIconTheming) {\n mobileQuickInfoSrc = this.casinoStyles.appendTheme(mobileQuickInfoSrc, this.game()?.gameId ?? '');\n }\n return mobileQuickInfoSrc;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CasinoManager, ConfigProviderService } from '@casinocore/platform/core';\n\nimport { JackpotRibbon } from '../models/jackpot.models';\nimport { FeatureConfig, GameConfig, SubNavConfig } from '../models/modular-config.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JackpotRibbonRenderService {\n featureConfig: FeatureConfig;\n constructor(\n private readonly configProviderService: ConfigProviderService,\n private readonly casinoManager: CasinoManager,\n ) {\n this.featureConfig = this.configProviderService.provideFeaturesConfig();\n }\n\n getJackpoRibbonData(lobbyType: string): JackpotRibbon {\n return {\n withIcon: this.getHotIconStatus(lobbyType),\n iconImage: this.getHotIconImage(),\n };\n }\n\n private getHotIconStatus(lobbyType: string) {\n return this.casinoManager.IsFeatureEnabledforLobbytype(lobbyType, this.featureConfig.enableHotIcon);\n }\n\n private getHotIconImage() {\n const gameConfig: GameConfig = this.configProviderService.provideGameConfig();\n return `${gameConfig.host}${this.getHotIconPath()}`;\n }\n\n private getHotIconPath() {\n const subnavConfig: SubNavConfig = this.configProviderService.provideSubNavigationConfig();\n return subnavConfig.enableEpcotSubNavigation ? this.featureConfig.hotIconPath.epcotHotIcon : this.featureConfig.hotIconPath.hotIcon;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { CasinoCoreGamelaunchService, GameLaunch } from '@casinocore/platform/core';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { GameModel } from '../models/gametile.models';\nimport { SubcategoryModel } from '../models/modular-lmt-category.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModularGameLaunchService {\n private readonly casinoCoreGameLaunchService = inject(CasinoCoreGamelaunchService);\n private readonly deviceService = inject(DeviceService);\n\n readonly isMobile = this.deviceService.isMobile;\n readonly isTablet = this.deviceService.isTablet;\n\n clickHandler(game: GameModel | undefined, category: SubcategoryModel) {\n const gameModel = this.getGameLaunch(game, category);\n this.casinoCoreGameLaunchService.launchGame(gameModel);\n }\n private getGameLaunch(game: GameModel | undefined, category: SubcategoryModel): GameLaunch {\n const gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isMobile || this.isTablet;\n gameModel.gamePosition = game?.gameIndex ?? 1;\n gameModel.categoryType = category?.categoryid ?? '';\n gameModel.from = 'Top10Games';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = 'Top10Games';\n gameModel.gridPosition = 1;\n gameModel.gameContainer = game?.gameContainer ?? '';\n gameModel.clickTimeStamp = this.casinoCoreGameLaunchService.currentTimeStamp();\n return gameModel;\n }\n}\n","import { Component, OnInit, inject, input, signal } from '@angular/core';\n\nimport { CasinoManager, ConfigProviderService, GlobalClientConfig } from '@casinocore/platform/core';\nimport {\n CsBadgeComponent,\n FavCtaComponent,\n FavIconKindType,\n FreeSpinsSummaryIconComponent,\n GradientNumberComponent,\n HyperLinkCtaComponent,\n ImageLoaderComponent,\n QuickInfoIconComponent,\n TileFooterComponent,\n TopTenGameTileAggregationComponent,\n} from '@frontend/casino-ui';\nimport {\n JackpotRibbonComponent,\n JackpotValueEventHydratorDirective,\n JackpotValueIncrementalTickingDirective,\n} from '@frontend/casino-ui/jackpot-ribbon';\nimport { DsButton } from '@frontend/ui/button';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { FavouriteConjugateDirective } from '../../modular-casino/directives/favourite.directive';\nimport { MoreInfoDirective } from '../../modular-casino/directives/moreinfo.directive';\nimport { GameModel, GameTileSettings, Top10GameTileModel } from '../../modular-casino/models/gametile.models';\nimport { JackpotRibbon } from '../../modular-casino/models/jackpot.models';\nimport { FeatureConfig } from '../../modular-casino/models/modular-config.models';\nimport { SubcategoryModel } from '../../modular-casino/models/modular-lmt-category.models';\nimport { JackpotRibbonRenderService } from '../../modular-casino/services/jackpot-ribbon-render.service';\nimport { ModularGameLaunchService } from '../../modular-casino/services/modular-gamelaunch.service';\nimport { LobbyType } from '../top-ten-games.model';\n\n@Component({\n selector: 'cc-top-ten-game-tile',\n standalone: true,\n imports: [\n TopTenGameTileAggregationComponent,\n GradientNumberComponent,\n ImageLoaderComponent,\n CsBadgeComponent,\n FreeSpinsSummaryIconComponent,\n FavCtaComponent,\n QuickInfoIconComponent,\n HyperLinkCtaComponent,\n JackpotRibbonComponent,\n TileFooterComponent,\n JackpotValueEventHydratorDirective,\n JackpotValueIncrementalTickingDirective,\n DsButton,\n MoreInfoDirective,\n FavouriteConjugateDirective,\n ],\n templateUrl: './top-ten-game-tile.component.html',\n})\nexport class TopTenGameTileComponent implements OnInit {\n topTenGame = input.required();\n isLegacy = input.required();\n lobbyType = input.required();\n tileIndex = input.required();\n subCategory = input.required();\n jackpotRibbonNewStyling: string;\n\n gameTileSettings: GameTileSettings;\n jackpotRibbonData: JackpotRibbon;\n stickerStyles: {\n LMS_CAPEXCLUSIVE: string;\n UkStickerStyle1: string;\n UkStickerStyle2: string;\n };\n isNewQuickInfoEnabled = signal(false);\n newQuickInfoStyle = signal(false);\n global: GlobalClientConfig;\n\n private readonly jackpotRibbonRenderService = inject(JackpotRibbonRenderService);\n private readonly modularGameLaunchService = inject(ModularGameLaunchService);\n private readonly deviceService = inject(DeviceService);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoManager = inject(CasinoManager);\n\n ngOnInit(): void {\n this.updateGameTileSettings();\n this.getJackPotRibbonData();\n this.global = this.configProviderService.provideGlobalConfig();\n this.stickerStyles = this.global.stickerStyles;\n const features: FeatureConfig = this.configProviderService.provideFeaturesConfig();\n this.newQuickInfoStyle.set(this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType(), features.newQuickInfoStyle));\n this.isNewQuickInfoEnabled.set(this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType(), features.enableQuickInfoLobbyType));\n this.jackpotRibbonNewStyling = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType(), features.newJackpotRibbonStyling)\n ? 'left'\n : 'centered';\n }\n\n isMoreInfoEnabled(): boolean {\n return this.isNewQuickInfoEnabled() && this.newQuickInfoStyle();\n }\n\n getFavVariantKind(): FavIconKindType {\n return this.global.lobbyConfigurations.FavouriteHeart.toLowerCase() === 'true' ? FavIconKindType.Heart : FavIconKindType.Star;\n }\n\n onGameLaunch(game: GameModel | undefined): void {\n this.modularGameLaunchService.clickHandler(game, this.subCategory());\n }\n\n private updateGameTileSettings(): void {\n this.gameTileSettings = {\n gameLaunch: { ctaText: this.configProviderService.provideGlobalConfig().messages.UKPlayNow },\n moreInfo: { displayText: this.configProviderService.provideGlobalConfig().messages.UKMoreInfo },\n isTouch: this.deviceService.isTouch,\n icon: { gameTileBorderRadius: '' },\n };\n }\n\n private getJackPotRibbonData() {\n this.jackpotRibbonData = this.jackpotRibbonRenderService.getJackpoRibbonData(this.lobbyType());\n }\n}\n","\n \n\n \n\n \n\n \n\n \n\n \n\n \n {{ gameTileSettings.gameLaunch.ctaText }}\n \n\n \n \n\n \n\n \n\n","import { ContainerSettings } from '../modular-casino/models/modular-container.models';\n\nexport const ContainerConfigs: ContainerSettings = {\n showIcon: true,\n showTitle: true,\n showSubtitle: true,\n maxItems: 10,\n categoryIdentifier: 'home',\n chunkSize: 5,\n swipeSize: 5,\n};\n\nexport type LobbyType = 'instantCasino' | '';\n","@if (areGamesAvailable()) {\n \n \n \n @for (game of topTenGames; track game.id; let tilePosition = $index) {\n
\n \n
\n }\n \n}\n","import { Component, Input, OnInit, inject, input, signal } from '@angular/core';\n\nimport { ContainerDescriptionComponent, FeatureContainerComponent } from '@frontend/casino-ui';\n\nimport { GameModel, Top10GameTileModel } from '../modular-casino/models/gametile.models';\nimport { ContainerDescriptionBindings } from '../modular-casino/models/modular-container.models';\nimport { SubcategoryModel } from '../modular-casino/models/modular-lmt-category.models';\nimport { GamesReaderService } from '../modular-casino/services/games-reader.service';\nimport { SwiperConfigService, SwiperOptionConfig } from '../modular-casino/services/swiper-config.service';\nimport { TopTenGameTileComponent } from './top-ten-game-tile/top-ten-game-tile.component';\nimport { ContainerConfigs, LobbyType } from './top-ten-games.model';\n\n@Component({\n selector: 'cc-top-ten-games',\n standalone: true,\n imports: [FeatureContainerComponent, ContainerDescriptionComponent, TopTenGameTileComponent],\n templateUrl: './top-ten-games.component.html',\n})\nexport class TopTenGamesComponent implements OnInit {\n enableFutureGrid = input(true);\n @Input({ required: true }) lobbyType: LobbyType;\n @Input({ required: true }) subCategory: SubcategoryModel;\n\n topTenGames: Top10GameTileModel[];\n\n swiperConfig: SwiperOptionConfig;\n containerDescriptionConfig: ContainerDescriptionBindings | undefined;\n private readonly swiperConfigService = inject(SwiperConfigService);\n private readonly gamesReaderService = inject(GamesReaderService);\n\n areGamesAvailable = signal(false);\n\n ngOnInit(): void {\n this.getTopTenGames();\n this.getContainerDescription();\n this.getSwiperConfig();\n }\n\n private getSwiperConfig(): void {\n const isGamesAvailable = this.topTenGames.length > 0;\n this.swiperConfig = this.swiperConfigService.getChunkSwiperSize(isGamesAvailable, this.enableFutureGrid());\n this.areGamesAvailable.set(isGamesAvailable);\n }\n\n private getContainerDescription(): void {\n this.containerDescriptionConfig = this.gamesReaderService.getContainerDescriptionModel(\n this.subCategory.lmtCategoryId,\n this.subCategory.parentCategoryId,\n this.lobbyType,\n );\n }\n\n private getTrackingSection() {\n return this.subCategory.engCategoryName;\n }\n\n private getGameWithSection = (game: GameModel) => {\n return {\n ...game,\n gameSection: this.getTrackingSection(),\n };\n };\n\n private getTopTenGames(): void {\n let topTenGames = this.gamesReaderService.getGameModels(\n this.subCategory.lmtCategoryId,\n this.subCategory.parentCategoryId,\n this.lobbyType,\n ContainerConfigs.maxItems,\n );\n\n this.topTenGames = topTenGames.map((topTenGame: Top10GameTileModel) => {\n return {\n ...topTenGame,\n game: this.getGameWithSection(topTenGame.game),\n };\n });\n }\n}\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, ANIMATION_MODULE_TYPE, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Injection token to be used to override the default options for `mat-progress-bar`. */\nfunction MatProgressBar_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 2);\n }\n}\nconst MAT_PROGRESS_BAR_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_PROGRESS_BAR_DEFAULT_OPTIONS');\n/**\n * Injection token used to provide the current location to `MatProgressBar`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nconst MAT_PROGRESS_BAR_LOCATION = /*#__PURE__*/new InjectionToken('mat-progress-bar-location', {\n providedIn: 'root',\n factory: MAT_PROGRESS_BAR_LOCATION_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_BAR_LOCATION_FACTORY() {\n const _document = inject(DOCUMENT);\n const _location = _document ? _document.location : null;\n return {\n // Note that this needs to be a function, rather than a property, because Angular\n // will only resolve it once, but we want the current path on each call.\n getPathname: () => _location ? _location.pathname + _location.search : ''\n };\n}\nlet MatProgressBar = /*#__PURE__*/(() => {\n class MatProgressBar {\n constructor(_elementRef, _ngZone, _changeDetectorRef, _animationMode, defaults) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** Flag that indicates whether NoopAnimations mode is set to true. */\n this._isNoopAnimation = false;\n this._defaultColor = 'primary';\n this._value = 0;\n this._bufferValue = 0;\n /**\n * Event emitted when animation of the primary progress bar completes. This event will not\n * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n * animations (indeterminate and query).\n */\n this.animationEnd = new EventEmitter();\n this._mode = 'determinate';\n /** Event handler for `transitionend` events. */\n this._transitionendHandler = event => {\n if (this.animationEnd.observers.length === 0 || !event.target || !event.target.classList.contains('mdc-linear-progress__primary-bar')) {\n return;\n }\n if (this.mode === 'determinate' || this.mode === 'buffer') {\n this._ngZone.run(() => this.animationEnd.next({\n value: this.value\n }));\n }\n };\n this._isNoopAnimation = _animationMode === 'NoopAnimations';\n if (defaults) {\n if (defaults.color) {\n this.color = this._defaultColor = defaults.color;\n }\n this.mode = defaults.mode || this.mode;\n }\n }\n // TODO: should be typed as `ThemePalette` but internal apps pass in arbitrary strings.\n /**\n * Theme color of the progress bar. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n get color() {\n return this._color || this._defaultColor;\n }\n set color(value) {\n this._color = value;\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this._value;\n }\n set value(v) {\n this._value = clamp(v || 0);\n this._changeDetectorRef.markForCheck();\n }\n /** Buffer value of the progress bar. Defaults to zero. */\n get bufferValue() {\n return this._bufferValue || 0;\n }\n set bufferValue(v) {\n this._bufferValue = clamp(v || 0);\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n get mode() {\n return this._mode;\n }\n set mode(value) {\n // Note that we don't technically need a getter and a setter here,\n // but we use it to match the behavior of the existing mat-progress-bar.\n this._mode = value;\n this._changeDetectorRef.markForCheck();\n }\n ngAfterViewInit() {\n // Run outside angular so change detection didn't get triggered on every transition end\n // instead only on the animation that we care about (primary value bar's transitionend)\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('transitionend', this._transitionendHandler);\n });\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._transitionendHandler);\n }\n /** Gets the transform style that should be applied to the primary bar. */\n _getPrimaryBarTransform() {\n return `scaleX(${this._isIndeterminate() ? 1 : this.value / 100})`;\n }\n /** Gets the `flex-basis` value that should be applied to the buffer bar. */\n _getBufferBarFlexBasis() {\n return `${this.mode === 'buffer' ? this.bufferValue : 100}%`;\n }\n /** Returns whether the progress bar is indeterminate. */\n _isIndeterminate() {\n return this.mode === 'indeterminate' || this.mode === 'query';\n }\n static {\n this.ɵfac = function MatProgressBar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressBar,\n selectors: [[\"mat-progress-bar\"]],\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-bar\", \"mdc-linear-progress\"],\n hostVars: 10,\n hostBindings: function MatProgressBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx._isIndeterminate() ? null : ctx.value)(\"mode\", ctx.mode);\n i0.ɵɵclassMap(\"mat-\" + ctx.color);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._isNoopAnimation)(\"mdc-linear-progress--animation-ready\", !ctx._isNoopAnimation)(\"mdc-linear-progress--indeterminate\", ctx._isIndeterminate());\n }\n },\n inputs: {\n color: \"color\",\n value: [2, \"value\", \"value\", numberAttribute],\n bufferValue: [2, \"bufferValue\", \"bufferValue\", numberAttribute],\n mode: \"mode\"\n },\n outputs: {\n animationEnd: \"animationEnd\"\n },\n exportAs: [\"matProgressBar\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 5,\n consts: [[\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__buffer\"], [1, \"mdc-linear-progress__buffer-bar\"], [1, \"mdc-linear-progress__buffer-dots\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__primary-bar\"], [1, \"mdc-linear-progress__bar-inner\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__secondary-bar\"]],\n template: function MatProgressBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1);\n i0.ɵɵtemplate(2, MatProgressBar_Conditional_2_Template, 1, 0, \"div\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵelement(4, \"span\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 5);\n i0.ɵɵelement(6, \"span\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"flex-basis\", ctx._getBufferBarFlexBasis());\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.mode === \"buffer\" ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"transform\", ctx._getPrimaryBarTransform());\n }\n },\n styles: [\".mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height),var(--mdc-linear-progress-active-indicator-height))}.cdk-high-contrast-active .mdc-linear-progress{outline-color:CanvasText}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-app-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-app-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-app-surface-variant))}.cdk-high-contrast-active .mdc-linear-progress__buffer-dots{background-color:ButtonBorder}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-app-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatProgressBar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min = 0, max = 100) {\n return Math.max(min, Math.min(max, v));\n}\nlet MatProgressBarModule = /*#__PURE__*/(() => {\n class MatProgressBarModule {\n static {\n this.ɵfac = function MatProgressBarModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule]\n });\n }\n }\n return MatProgressBarModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_BAR_DEFAULT_OPTIONS, MAT_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_LOCATION_FACTORY, MatProgressBar, MatProgressBarModule };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, inject, InjectionToken, Directive, Injectable, Inject, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, Input, Output, ContentChildren, ViewChild, ContentChild, HostBinding } from '@angular/core';\nimport { shareReplay, defer, Subject, map, takeUntil, fromEvent, Observable, timer, interval, EMPTY, merge } from 'rxjs';\nimport { takeUntil as takeUntil$1, switchMap, map as map$1, startWith, debounceTime, filter } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\nconst _c0 = [\"ngucarousel\"];\nconst _c1 = [\"nguItemsContainer\"];\nconst _c2 = [\"touchContainer\"];\nconst _c3 = [[[\"\", \"NguCarouselPrev\", \"\"]], [[\"\", \"NguCarouselNext\", \"\"]], [[\"\", \"NguCarouselPoint\", \"\"]]];\nconst _c4 = [\"[NguCarouselPrev]\", \"[NguCarouselNext]\", \"[NguCarouselPoint]\"];\nconst _c5 = [\"*\"];\nclass NguCarouselStore {\n constructor(touch = new Touch(), vertical = new Vertical(), interval, transform = new Transfrom(), button, visibleItems, deviceType, type = 'fixed', token = '', items = 0, load = 0, deviceWidth = 0, carouselWidth = 0, itemWidth = 0, slideItems = 0, itemWidthPer = 0, itemLength = 0, currentSlide = 0, easing = 'cubic-bezier(0, 0, 0.2, 1)', speed = 200, loop = false, dexVal = 0, touchTransform = 0, isEnd = false, isFirst = true, isLast = false, RTL = false, point = true, velocity = 1) {\n this.touch = touch;\n this.vertical = vertical;\n this.interval = interval;\n this.transform = transform;\n this.button = button;\n this.visibleItems = visibleItems;\n this.deviceType = deviceType;\n this.type = type;\n this.token = token;\n this.items = items;\n this.load = load;\n this.deviceWidth = deviceWidth;\n this.carouselWidth = carouselWidth;\n this.itemWidth = itemWidth;\n this.slideItems = slideItems;\n this.itemWidthPer = itemWidthPer;\n this.itemLength = itemLength;\n this.currentSlide = currentSlide;\n this.easing = easing;\n this.speed = speed;\n this.loop = loop;\n this.dexVal = dexVal;\n this.touchTransform = touchTransform;\n this.isEnd = isEnd;\n this.isFirst = isFirst;\n this.isLast = isLast;\n this.RTL = RTL;\n this.point = point;\n this.velocity = velocity;\n }\n}\nclass ItemsControl {}\nclass Vertical {}\nclass NguButton {}\nclass Touch {}\n// This is misspelled. Must be changed to `Transform`.\nclass Transfrom {\n constructor(xs = 0, sm = 0, md = 0, lg = 0, all = 0) {\n this.xs = xs;\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.all = all;\n this.xl = 0;\n }\n}\n/**\n * Default values\n * {sm: 768, md: 992, lg: 1200, xl: 1200}\n *\n * Bootstrap values:\n * {sm: 576, md: 768, lg: 992, xl: 1200}\n */\nclass Breakpoints {\n constructor(sm = 768, md = 992, lg = 1200, xl = 1200) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\nclass NguCarouselConfig {}\nclass NguCarouselOutletContext {\n constructor(data) {\n this.$implicit = data;\n }\n}\nconst IS_BROWSER = new InjectionToken('IS_BROWSER', {\n providedIn: 'root',\n factory: () => isPlatformBrowser(inject(PLATFORM_ID))\n});\nlet NguCarouselItemDirective = /*#__PURE__*/(() => {\n class NguCarouselItemDirective {\n static {\n this.ɵfac = function NguCarouselItemDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselItemDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselItemDirective,\n selectors: [[\"\", \"NguCarouselItem\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselItemDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguCarouselNextDirective = /*#__PURE__*/(() => {\n class NguCarouselNextDirective {\n static {\n this.ɵfac = function NguCarouselNextDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselNextDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselNextDirective,\n selectors: [[\"\", \"NguCarouselNext\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselNextDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguCarouselPrevDirective = /*#__PURE__*/(() => {\n class NguCarouselPrevDirective {\n static {\n this.ɵfac = function NguCarouselPrevDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselPrevDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselPrevDirective,\n selectors: [[\"\", \"NguCarouselPrev\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselPrevDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguCarouselPointDirective = /*#__PURE__*/(() => {\n class NguCarouselPointDirective {\n static {\n this.ɵfac = function NguCarouselPointDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselPointDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselPointDirective,\n selectors: [[\"\", \"NguCarouselPoint\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselPointDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguCarouselDefDirective = /*#__PURE__*/(() => {\n class NguCarouselDefDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NguCarouselDefDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselDefDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselDefDirective,\n selectors: [[\"\", \"nguCarouselDef\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselDefDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nlet NguCarouselOutlet = /*#__PURE__*/(() => {\n class NguCarouselOutlet {\n constructor(viewContainer) {\n this.viewContainer = viewContainer;\n }\n static {\n this.ɵfac = function NguCarouselOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NguCarouselOutlet,\n selectors: [[\"\", \"nguCarouselOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return NguCarouselOutlet;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguHammerLoader = /*#__PURE__*/(() => {\n class NguHammerLoader {\n constructor() {\n this._hammer$ = defer(() => import('hammerjs')).pipe(shareReplay({\n bufferSize: 1,\n refCount: true\n }));\n }\n load() {\n return this._hammer$;\n }\n static {\n this.ɵfac = function NguHammerLoader_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguHammerLoader)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NguHammerLoader,\n factory: NguHammerLoader.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return NguHammerLoader;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguCarouselHammerManager = /*#__PURE__*/(() => {\n class NguCarouselHammerManager {\n constructor(_ngZone, _nguHammerLoader) {\n this._ngZone = _ngZone;\n this._nguHammerLoader = _nguHammerLoader;\n this._destroy$ = new Subject();\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n createHammer(element) {\n return this._nguHammerLoader.load().pipe(map(() =>\n // Note: The Hammer manager should be created outside of the Angular zone since it sets up\n // `pointermove` event listener which triggers change detection every time the pointer is moved.\n this._ngZone.runOutsideAngular(() => new Hammer(element))),\n // Note: the dynamic import is always a microtask which may run after the view is destroyed.\n // `takeUntil` is used to prevent setting Hammer up if the view had been destroyed before\n // the HammerJS is loaded.\n takeUntil(this._destroy$));\n }\n on(hammer, event) {\n return fromEvent(hammer, event).pipe(\n // Note: We have to re-enter the Angular zone because Hammer would trigger events outside of the\n // Angular zone (since we set it up with `runOutsideAngular`).\n enterNgZone(this._ngZone), takeUntil(this._destroy$));\n }\n static {\n this.ɵfac = function NguCarouselHammerManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarouselHammerManager)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(NguHammerLoader));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NguCarouselHammerManager,\n factory: NguCarouselHammerManager.ɵfac\n });\n }\n }\n return NguCarouselHammerManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction enterNgZone(ngZone) {\n return source => new Observable(subscriber => source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: error => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete())\n }));\n}\nlet NguWindowScrollListener = /*#__PURE__*/(() => {\n class NguWindowScrollListener extends Subject {\n constructor(isBrowser, ngZone) {\n super();\n this._destroy$ = new Subject();\n // Note: this service is shared between multiple `NguCarousel` components and each instance\n // doesn't add new events listener for the `window`.\n if (isBrowser) {\n ngZone.runOutsideAngular(() => fromEvent(window, 'scroll').pipe(takeUntil$1(this._destroy$)).subscribe(this));\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n static {\n this.ɵfac = function NguWindowScrollListener_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguWindowScrollListener)(i0.ɵɵinject(IS_BROWSER), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NguWindowScrollListener,\n factory: NguWindowScrollListener.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return NguWindowScrollListener;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nlet NguCarousel = /*#__PURE__*/(() => {\n class NguCarousel extends NguCarouselStore {\n get dataSource() {\n return this._dataSource;\n }\n set dataSource(data) {\n if (data) {\n this._switchDataSource(data);\n }\n }\n /**\n * The setter is used to catch the button if the button is wrapped with `ngIf`.\n * https://github.com/uiuniversal/ngu-carousel/issues/91\n */\n set nextButton(nextButton) {\n this._nextButton$.next(nextButton?.nativeElement);\n }\n /**\n * The setter is used to catch the button if the button is wrapped with `ngIf`.\n * https://github.com/uiuniversal/ngu-carousel/issues/91\n */\n set prevButton(prevButton) {\n this._prevButton$.next(prevButton?.nativeElement);\n }\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize Items operations by identifying a Items based on its data\n * relative to the function to know if a Items should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n get trackBy() {\n return this._trackByFn;\n }\n set trackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function' && console?.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n constructor(_host, _renderer, _differs, _isBrowser, _cdr, _ngZone, _nguWindowScrollListener, _nguCarouselHammerManager) {\n super();\n this._host = _host;\n this._renderer = _renderer;\n this._differs = _differs;\n this._isBrowser = _isBrowser;\n this._cdr = _cdr;\n this._ngZone = _ngZone;\n this._nguWindowScrollListener = _nguWindowScrollListener;\n this._nguCarouselHammerManager = _nguCarouselHammerManager;\n /** Public property that may be accessed outside of the component. */\n this.activePoint = 0;\n /** Public property that may be accessed outside of the component. */\n this.pointNumbers = [];\n this.carouselLoad = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n this.onMove = new EventEmitter();\n this._arrayChanges = null;\n this._dataSource = null;\n this._intervalController$ = new Subject();\n this._hammer = null;\n this._withAnimation = true;\n this._destroy$ = new Subject();\n this.ngu_dirty = true;\n this._markedForCheck = false;\n /** Subjects used to notify whenever buttons are removed or rendered so we can re-add listeners. */\n this._prevButton$ = new Subject();\n this._nextButton$ = new Subject();\n this._setupButtonListeners();\n }\n ngDoCheck() {\n this._checkChanges();\n }\n _checkChanges() {\n if (this.ngu_dirty) {\n this.ngu_dirty = false;\n const dataStream = this._dataSource;\n if (!this._arrayChanges && !!dataStream) {\n this._dataDiffer = this._differs.find(dataStream).create((index, item) => this.trackBy ? this.trackBy(index, item) : item);\n }\n }\n if (this._dataDiffer) {\n this._arrayChanges = this._markedForCheck && this._arrayChanges ? this._arrayChanges : this._dataDiffer.diff(this._dataSource);\n if (this._arrayChanges) {\n this.renderNodeChanges(Array.from(this._dataSource));\n }\n }\n }\n _switchDataSource(dataSource) {\n this._dataSource = dataSource;\n this.ngu_dirty = true;\n }\n renderNodeChanges(data) {\n if (!this._arrayChanges) return;\n this.isLast = this._pointIndex === this.currentSlide;\n const viewContainer = this._nodeOutlet.viewContainer;\n this._markedForCheck = false;\n this._arrayChanges.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n const node = this._getNodeDef(data[currentIndex], currentIndex);\n if (node?.template) {\n if (item.previousIndex == null) {\n const context = new NguCarouselOutletContext(data[currentIndex]);\n context.index = currentIndex;\n viewContainer.createEmbeddedView(node.template, context, currentIndex);\n } else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex);\n } else {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n }\n }\n });\n this._updateItemIndexContext();\n if (this._host.nativeElement) {\n this._storeCarouselData();\n }\n }\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n _updateItemIndexContext() {\n const viewContainer = this._nodeOutlet.viewContainer;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex);\n const context = viewRef.context;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n context.index = renderIndex;\n }\n }\n _getNodeDef(data, i) {\n if (this._defDirectives?.length === 1) {\n return this._defDirectives.first;\n }\n const nodeDef = (this._defDirectives || []).find(def => !!def.when?.(i, data));\n return nodeDef;\n }\n ngAfterViewInit() {\n this._inputValidation();\n this._carouselCssNode = this._createStyleElem();\n if (this._isBrowser) {\n this._carouselInterval();\n if (!this.vertical.enabled && this.inputs.touch) {\n this._setupHammer();\n }\n this._setupWindowResizeListener();\n this._onWindowScrolling();\n }\n }\n ngAfterContentInit() {\n this._cdr.markForCheck();\n this._defDirectives.changes.subscribe(() => {\n this._markedForCheck = true;\n this._checkChanges();\n });\n this._defDirectives.notifyOnChanges();\n }\n _inputValidation() {\n this.inputs.gridBreakpoints = this.inputs.gridBreakpoints ? this.inputs.gridBreakpoints : new Breakpoints();\n if (this.inputs.grid.xl === undefined) {\n this.inputs.grid.xl = this.inputs.grid.lg;\n }\n this.type = this.inputs.grid.all !== 0 ? 'fixed' : 'responsive';\n this.loop = this.inputs.loop || false;\n this.inputs.easing = this.inputs.easing || 'cubic-bezier(0, 0, 0.2, 1)';\n this.touch.active = this.inputs.touch || false;\n this.RTL = this.inputs.RTL ? true : false;\n this.interval = this.inputs.interval || undefined;\n this.velocity = typeof this.inputs.velocity === 'number' ? this.inputs.velocity : this.velocity;\n if (this.inputs.vertical && this.inputs.vertical.enabled) {\n this.vertical.enabled = this.inputs.vertical.enabled;\n this.vertical.height = this.inputs.vertical.height;\n }\n this._directionSymbol = this.RTL ? '' : '-';\n this.point = this.inputs.point && typeof this.inputs.point.visible !== 'undefined' ? this.inputs.point.visible : true;\n this._carouselSize();\n }\n ngOnDestroy() {\n this._hammer?.destroy();\n this._destroy$.next();\n }\n /** Get Touch input */\n _setupHammer() {\n // Note: doesn't need to unsubscribe because streams are piped with `takeUntil` already.\n this._nguCarouselHammerManager.createHammer(this._touchContainer.nativeElement).subscribe(hammer => {\n this._hammer = hammer;\n hammer.get('pan').set({\n direction: Hammer.DIRECTION_HORIZONTAL\n });\n this._nguCarouselHammerManager.on(hammer, 'panstart').subscribe(() => {\n this.carouselWidth = this._nguItemsContainer.nativeElement.offsetWidth;\n this.touchTransform = this.transform[this.deviceType];\n this.dexVal = 0;\n this._setStyle(this._nguItemsContainer.nativeElement, 'transition', '');\n });\n if (this.vertical.enabled) {\n this._nguCarouselHammerManager.on(hammer, 'panup').subscribe(ev => {\n this._touchHandling('panleft', ev);\n });\n this._nguCarouselHammerManager.on(hammer, 'pandown').subscribe(ev => {\n this._touchHandling('panright', ev);\n });\n } else {\n this._nguCarouselHammerManager.on(hammer, 'panleft').subscribe(ev => {\n this._touchHandling('panleft', ev);\n });\n this._nguCarouselHammerManager.on(hammer, 'panright').subscribe(ev => {\n this._touchHandling('panright', ev);\n });\n }\n this._nguCarouselHammerManager.on(hammer, 'panend pancancel').subscribe(({\n velocity\n }) => {\n if (Math.abs(velocity) >= this.velocity) {\n this.touch.velocity = velocity;\n let direc = 0;\n if (!this.RTL) {\n direc = this.touch.swipe === 'panright' ? 0 : 1;\n } else {\n direc = this.touch.swipe === 'panright' ? 1 : 0;\n }\n this._carouselScrollOne(direc);\n } else {\n this.dexVal = 0;\n this._setStyle(this._nguItemsContainer.nativeElement, 'transition', 'transform 324ms cubic-bezier(0, 0, 0.2, 1)');\n this._setStyle(this._nguItemsContainer.nativeElement, 'transform', '');\n }\n });\n this._nguCarouselHammerManager.on(hammer, 'hammer.input').subscribe(({\n srcEvent\n }) => {\n // allow nested touch events to no propagate, this may have other side affects but works for now.\n // TODO: It is probably better to check the source element of the event and only apply the handle to the correct carousel\n srcEvent.stopPropagation();\n });\n });\n }\n /** handle touch input */\n _touchHandling(e, ev) {\n // vertical touch events seem to cause to panstart event with an odd delta\n // and a center of {x:0,y:0} so this will ignore them\n if (ev.center.x === 0) {\n return;\n }\n ev = Math.abs(this.vertical.enabled ? ev.deltaY : ev.deltaX);\n let valt = ev - this.dexVal;\n valt = this.type === 'responsive' ? Math.abs(ev - this.dexVal) / (this.vertical.enabled ? this.vertical.height : this.carouselWidth) * 100 : valt;\n this.dexVal = ev;\n this.touch.swipe = e;\n this._setTouchTransfrom(e, valt);\n this._setTransformFromTouch();\n }\n _setTouchTransfrom(e, valt) {\n const condition = this.RTL ? 'panright' : 'panleft';\n this.touchTransform = e === condition ? valt + this.touchTransform : this.touchTransform - valt;\n }\n _setTransformFromTouch() {\n if (this.touchTransform < 0) {\n this.touchTransform = 0;\n }\n const type = this.type === 'responsive' ? '%' : 'px';\n this._setStyle(this._nguItemsContainer.nativeElement, 'transform', this.vertical.enabled ? `translate3d(0, ${this._directionSymbol}${this.touchTransform}${type}, 0)` : `translate3d(${this._directionSymbol}${this.touchTransform}${type}, 0, 0)`);\n }\n /** this fn used to disable the interval when it is not on the viewport */\n _onWindowScrolling() {\n const {\n offsetTop,\n offsetHeight\n } = this._host.nativeElement;\n const {\n scrollY: windowScrollY,\n innerHeight: windowInnerHeight\n } = window;\n const isCarouselOnScreen = offsetTop <= windowScrollY + windowInnerHeight - offsetHeight / 4 && offsetHeight + offsetHeight / 2 >= windowScrollY;\n if (isCarouselOnScreen) {\n this._intervalController$.next(1);\n } else {\n this._intervalController$.next(0);\n }\n }\n /** store data based on width of the screen for the carousel */\n _storeCarouselData() {\n const breakpoints = this.inputs.gridBreakpoints;\n this.deviceWidth = this._isBrowser ? window.innerWidth : breakpoints?.xl;\n this.carouselWidth = this.carouselMain1.nativeElement.offsetWidth;\n if (this.type === 'responsive') {\n this.deviceType = this.deviceWidth >= breakpoints?.xl ? 'xl' : this.deviceWidth >= breakpoints?.lg ? 'lg' : this.deviceWidth >= breakpoints?.md ? 'md' : this.deviceWidth >= breakpoints?.sm ? 'sm' : 'xs';\n this.items = this.inputs.grid[this.deviceType];\n this.itemWidth = this.carouselWidth / this.items;\n } else {\n this.items = Math.trunc(this.carouselWidth / this.inputs.grid.all);\n this.itemWidth = this.inputs.grid.all;\n this.deviceType = 'all';\n }\n this.slideItems = +(this.inputs.slide < this.items ? this.inputs.slide : this.items);\n this.load = this.inputs.load >= this.slideItems ? this.inputs.load : this.slideItems;\n this.speed = this.inputs.speed && this.inputs.speed > -1 ? this.inputs.speed : 400;\n this._carouselPoint();\n }\n /** Used to reset the carousel */\n reset(withoutAnimation) {\n withoutAnimation && (this._withAnimation = false);\n this._carouselCssNode.textContent = '';\n this.moveTo(0);\n this._carouselPoint();\n }\n /** Init carousel point */\n _carouselPoint() {\n const Nos = Array.from(this._dataSource).length - (this.items - this.slideItems);\n this._pointIndex = Math.ceil(Nos / this.slideItems);\n const pointers = [];\n if (this._pointIndex > 1 || !this.inputs.point?.hideOnSingleSlide) {\n for (let i = 0; i < this._pointIndex; i++) {\n pointers.push(i);\n }\n }\n this.pointNumbers = pointers;\n this._carouselPointActiver();\n if (this._pointIndex <= 1) {\n this._btnBoolean(1, 1);\n } else {\n if (this.currentSlide === 0 && !this.loop) {\n this._btnBoolean(1, 0);\n } else {\n this._btnBoolean(0, 0);\n }\n }\n }\n /** change the active point in carousel */\n _carouselPointActiver() {\n const i = Math.ceil(this.currentSlide / this.slideItems);\n this.activePoint = i;\n this._cdr.markForCheck();\n }\n /** this function is used to scoll the carousel when point is clicked */\n moveTo(slide, withoutAnimation) {\n // slide = slide - 1;\n withoutAnimation && (this._withAnimation = false);\n if (this.activePoint !== slide && slide < this._pointIndex) {\n let slideremains;\n const btns = this.currentSlide < slide ? 1 : 0;\n switch (slide) {\n case 0:\n this._btnBoolean(1, 0);\n slideremains = slide * this.slideItems;\n break;\n case this._pointIndex - 1:\n this._btnBoolean(0, 1);\n slideremains = Array.from(this._dataSource).length - this.items;\n break;\n default:\n this._btnBoolean(0, 0);\n slideremains = slide * this.slideItems;\n }\n this._carouselScrollTwo(btns, slideremains, this.speed);\n }\n }\n /** set the style of the carousel based the inputs data */\n _carouselSize() {\n this.token = this._generateID();\n let dism = '';\n this._styleid = `.${this.token} > .ngucarousel > .ngu-touch-container > .ngucarousel-items`;\n if (this.inputs.custom === 'banner') {\n this._renderer.addClass(this._host.nativeElement, 'banner');\n }\n if (this.inputs.animation === 'lazy') {\n dism += `${this._styleid} > .item {transition: transform .6s ease;}`;\n }\n const breakpoints = this.inputs.gridBreakpoints;\n let itemStyle = '';\n if (this.vertical.enabled) {\n const itemWidthXS = `${this._styleid} > .item {height: ${this.vertical.height / +this.inputs.grid.xs}px}`;\n const itemWidthSM = `${this._styleid} > .item {height: ${this.vertical.height / +this.inputs.grid.sm}px}`;\n const itemWidthMD = `${this._styleid} > .item {height: ${this.vertical.height / +this.inputs.grid.md}px}`;\n const itemWidthLG = `${this._styleid} > .item {height: ${this.vertical.height / +this.inputs.grid.lg}px}`;\n const itemWidthXL = `${this._styleid} > .item {height: ${this.vertical.height / +this.inputs.grid.xl}px}`;\n itemStyle = `@media (max-width:${breakpoints?.sm - 1}px){${itemWidthXS}}\n @media (max-width:${breakpoints?.sm}px){${itemWidthSM}}\n @media (min-width:${breakpoints?.md}px){${itemWidthMD}}\n @media (min-width:${breakpoints?.lg}px){${itemWidthLG}}\n @media (min-width:${breakpoints?.xl}px){${itemWidthXL}}`;\n } else if (this.type === 'responsive') {\n const itemWidthXS = this.inputs.type === 'mobile' ? `${this._styleid} .item {flex: 0 0 ${95 / +this.inputs.grid.xs}%; width: ${95 / +this.inputs.grid.xs}%;}` : `${this._styleid} .item {flex: 0 0 ${100 / +this.inputs.grid.xs}%; width: ${100 / +this.inputs.grid.xs}%;}`;\n const itemWidthSM = `${this._styleid} > .item {flex: 0 0 ${100 / +this.inputs.grid.sm}%; width: ${100 / +this.inputs.grid.sm}%}`;\n const itemWidthMD = `${this._styleid} > .item {flex: 0 0 ${100 / +this.inputs.grid.md}%; width: ${100 / +this.inputs.grid.md}%}`;\n const itemWidthLG = `${this._styleid} > .item {flex: 0 0 ${100 / +this.inputs.grid.lg}%; width: ${100 / +this.inputs.grid.lg}%}`;\n const itemWidthXL = `${this._styleid} > .item {flex: 0 0 ${100 / +this.inputs.grid.xl}%; width: ${100 / +this.inputs.grid.xl}%}`;\n itemStyle = `@media (max-width:${breakpoints?.sm - 1}px){${itemWidthXS}}\n @media (min-width:${breakpoints?.sm}px){${itemWidthSM}}\n @media (min-width:${breakpoints?.md}px){${itemWidthMD}}\n @media (min-width:${breakpoints?.lg}px){${itemWidthLG}}\n @media (min-width:${breakpoints?.xl}px){${itemWidthXL}}`;\n } else {\n itemStyle = `${this._styleid} .item {flex: 0 0 ${this.inputs.grid.all}px; width: ${this.inputs.grid.all}px;}`;\n }\n this._renderer.addClass(this._host.nativeElement, this.token);\n if (this.vertical.enabled) {\n this._renderer.addClass(this._nguItemsContainer.nativeElement, 'nguvertical');\n this._renderer.setStyle(this.carouselMain1.nativeElement, 'height', `${this.vertical.height}px`);\n }\n this.RTL && !this.vertical.enabled && this._renderer.addClass(this._host.nativeElement, 'ngurtl');\n this._createStyleElem(`${dism} ${itemStyle}`);\n this._storeCarouselData();\n }\n /** logic to scroll the carousel step 1 */\n _carouselScrollOne(Btn) {\n let itemSpeed = this.speed;\n let currentSlide = 0;\n let touchMove = Math.ceil(this.dexVal / this.itemWidth);\n touchMove = isFinite(touchMove) ? touchMove : 0;\n this._setStyle(this._nguItemsContainer.nativeElement, 'transform', '');\n if (this._pointIndex === 1) {\n return;\n } else if (Btn === 0 && (!this.loop && !this.isFirst || this.loop)) {\n const currentSlideD = this.currentSlide - this.slideItems;\n const MoveSlide = currentSlideD + this.slideItems;\n this._btnBoolean(0, 1);\n if (this.currentSlide === 0) {\n currentSlide = Array.from(this._dataSource).length - this.items;\n itemSpeed = 400;\n this._btnBoolean(0, 1);\n } else if (this.slideItems >= MoveSlide) {\n currentSlide = 0;\n this._btnBoolean(1, 0);\n } else {\n this._btnBoolean(0, 0);\n if (touchMove > this.slideItems) {\n currentSlide = this.currentSlide - touchMove;\n itemSpeed = 200;\n } else {\n currentSlide = this.currentSlide - this.slideItems;\n }\n }\n this._carouselScrollTwo(Btn, currentSlide, itemSpeed);\n } else if (Btn === 1 && (!this.loop && !this.isLast || this.loop)) {\n if (Array.from(this._dataSource).length <= this.currentSlide + this.items + this.slideItems && !this.isLast) {\n currentSlide = Array.from(this._dataSource).length - this.items;\n this._btnBoolean(0, 1);\n } else if (this.isLast) {\n currentSlide = 0;\n itemSpeed = 400;\n this._btnBoolean(1, 0);\n } else {\n this._btnBoolean(0, 0);\n if (touchMove > this.slideItems) {\n currentSlide = this.currentSlide + this.slideItems + (touchMove - this.slideItems);\n itemSpeed = 200;\n } else {\n currentSlide = this.currentSlide + this.slideItems;\n }\n }\n this._carouselScrollTwo(Btn, currentSlide, itemSpeed);\n }\n }\n /** logic to scroll the carousel step 2 */\n _carouselScrollTwo(Btn, currentSlide, itemSpeed) {\n if (this.dexVal !== 0) {\n const val = Math.abs(this.touch.velocity);\n let somt = Math.floor(this.dexVal / val / this.dexVal * (this.deviceWidth - this.dexVal));\n somt = somt > itemSpeed ? itemSpeed : somt;\n itemSpeed = somt < 200 ? 200 : somt;\n this.dexVal = 0;\n }\n if (this._withAnimation) {\n this._setStyle(this._nguItemsContainer.nativeElement, 'transition', `transform ${itemSpeed}ms ${this.inputs.easing}`);\n this.inputs.animation && this._carouselAnimator(Btn, currentSlide + 1, currentSlide + this.items, itemSpeed, Math.abs(this.currentSlide - currentSlide));\n } else {\n this._setStyle(this._nguItemsContainer.nativeElement, 'transition', ``);\n }\n this.itemLength = Array.from(this._dataSource).length;\n this._transformStyle(currentSlide);\n this.currentSlide = currentSlide;\n this.onMove.emit(this);\n this._carouselPointActiver();\n this._carouselLoadTrigger();\n this._withAnimation = true;\n }\n /** boolean function for making isFirst and isLast */\n _btnBoolean(first, last) {\n this.isFirst = !!first;\n this.isLast = !!last;\n }\n _transformString(grid, slide) {\n let collect = '';\n collect += `${this._styleid} { transform: translate3d(`;\n if (this.vertical.enabled) {\n this.transform[grid] = this.vertical.height / this.inputs.grid[grid] * slide;\n collect += `0, -${this.transform[grid]}px, 0`;\n } else {\n this.transform[grid] = 100 / this.inputs.grid[grid] * slide;\n collect += `${this._directionSymbol}${this.transform[grid]}%, 0, 0`;\n }\n collect += `); }`;\n return collect;\n }\n /** set the transform style to scroll the carousel */\n _transformStyle(slide) {\n let slideCss = '';\n if (this.type === 'responsive') {\n const breakpoints = this.inputs.gridBreakpoints;\n slideCss = `@media (max-width: ${breakpoints?.sm - 1}px) {${this._transformString('xs', slide)}}\n @media (min-width: ${breakpoints?.sm}px) {${this._transformString('sm', slide)} }\n @media (min-width: ${breakpoints?.md}px) {${this._transformString('md', slide)} }\n @media (min-width: ${breakpoints?.lg}px) {${this._transformString('lg', slide)} }\n @media (min-width: ${breakpoints?.xl}px) {${this._transformString('xl', slide)} }`;\n } else {\n this.transform.all = this.inputs.grid.all * slide;\n slideCss = `${this._styleid} { transform: translate3d(${this._directionSymbol}${this.transform.all}px, 0, 0);`;\n }\n this._carouselCssNode.textContent = slideCss;\n }\n /** this will trigger the carousel to load the items */\n _carouselLoadTrigger() {\n if (typeof this.inputs.load === 'number') {\n Array.from(this._dataSource).length - this.load <= this.currentSlide + this.items && this.carouselLoad.emit(this.currentSlide);\n }\n }\n /** generate Class for each carousel to set specific style */\n _generateID() {\n let text = '';\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < 6; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return `ngucarousel${text}`;\n }\n /** handle the auto slide */\n _carouselInterval() {\n const container = this.carouselMain1.nativeElement;\n if (this.interval && this.loop) {\n this._nguWindowScrollListener.pipe(\n // Note: do not use `debounceTime` since it may flush queued actions within the Angular zone.\n switchMap(() => timer(600)), takeUntil$1(this._destroy$)).subscribe(() => {\n // Note: we don't run change detection on each `scroll` event, but we re-enter the\n // Angular zone once the DOM timer fires to be backwards compatible.\n // TODO: revisit later since we may not run change detection at all on this task.\n this._ngZone.run(() => this._onWindowScrolling());\n });\n const mapToZero = map$1(() => 0);\n const mapToOne = map$1(() => 1);\n const play$ = fromEvent(container, 'mouseleave').pipe(mapToOne);\n const pause$ = fromEvent(container, 'mouseenter').pipe(mapToZero);\n const touchPlay$ = fromEvent(container, 'touchstart').pipe(mapToOne);\n const touchPause$ = fromEvent(container, 'touchend').pipe(mapToZero);\n const interval$ = interval(this.inputs.interval?.timing).pipe(mapToOne);\n const initialDelay = this.interval.initialDelay || 0;\n const carouselInterval$ = merge(play$, touchPlay$, pause$, touchPause$, this._intervalController$).pipe(startWith(1), switchMap(val => {\n this._cdr.markForCheck();\n return val ? interval$ : EMPTY;\n }));\n timer(initialDelay).pipe(switchMap(() => carouselInterval$), takeUntil$1(this._destroy$)).subscribe(() => {\n this._carouselScrollOne(1);\n });\n }\n }\n /** animate the carousel items */\n _carouselAnimator(direction, start, end, speed, length) {\n const viewContainer = this._nodeOutlet.viewContainer;\n let val = length < 5 ? length : 5;\n val = val === 1 ? 3 : val;\n const collectedIndexes = [];\n if (direction === 1) {\n for (let i = start - 1; i < end; i++) {\n collectedIndexes.push(i);\n val = val * 2;\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.animate = {\n value: true,\n params: {\n distance: val\n }\n };\n }\n } else {\n for (let i = end - 1; i >= start - 1; i--) {\n collectedIndexes.push(i);\n val = val * 2;\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.animate = {\n value: true,\n params: {\n distance: -val\n }\n };\n }\n }\n this._cdr.markForCheck();\n timer(speed * 0.7).pipe(takeUntil$1(this._destroy$)).subscribe(() => this._removeAnimations(collectedIndexes));\n }\n _removeAnimations(collectedIndexes) {\n const viewContainer = this._nodeOutlet.viewContainer;\n collectedIndexes.forEach(i => {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.animate = {\n value: false,\n params: {\n distance: 0\n }\n };\n });\n this._cdr.markForCheck();\n }\n /** Short form for setElementStyle */\n _setStyle(el, prop, val) {\n this._renderer.setStyle(el, prop, val);\n }\n /** For generating style tag */\n _createStyleElem(datas) {\n const styleItem = this._renderer.createElement('style');\n if (datas) {\n const styleText = this._renderer.createText(datas);\n this._renderer.appendChild(styleItem, styleText);\n }\n this._renderer.appendChild(this._host.nativeElement, styleItem);\n return styleItem;\n }\n _setupButtonListeners() {\n this._prevButton$.pipe(\n // Returning `EMPTY` will remove event listener once the button is removed from the DOM.\n switchMap(prevButton => prevButton ? fromEvent(prevButton, 'click') : EMPTY), takeUntil$1(this._destroy$)).subscribe(() => this._carouselScrollOne(0));\n this._nextButton$.pipe(switchMap(nextButton => nextButton ? fromEvent(nextButton, 'click') : EMPTY), takeUntil$1(this._destroy$)).subscribe(() => this._carouselScrollOne(1));\n }\n _setupWindowResizeListener() {\n this._ngZone.runOutsideAngular(() => fromEvent(window, 'resize').pipe(debounceTime(500), filter(() => this.deviceWidth !== window.outerWidth), takeUntil$1(this._destroy$)).subscribe(() => {\n this._setStyle(this._nguItemsContainer.nativeElement, 'transition', ``);\n // Re-enter the Angular zone only after `resize` events have been dispatched\n // and the timer has run (in `debounceTime`).\n this._ngZone.run(() => {\n this._storeCarouselData();\n this._cdr.markForCheck();\n });\n }));\n }\n static {\n this.ɵfac = function NguCarousel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguCarousel)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(IS_BROWSER), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(NguWindowScrollListener), i0.ɵɵdirectiveInject(NguCarouselHammerManager));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NguCarousel,\n selectors: [[\"ngu-carousel\"]],\n contentQueries: function NguCarousel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NguCarouselNextDirective, 5, ElementRef);\n i0.ɵɵcontentQuery(dirIndex, NguCarouselPrevDirective, 5, ElementRef);\n i0.ɵɵcontentQuery(dirIndex, NguCarouselDefDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextButton = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.prevButton = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._defDirectives = _t);\n }\n },\n viewQuery: function NguCarousel_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NguCarouselOutlet, 7);\n i0.ɵɵviewQuery(_c0, 7, ElementRef);\n i0.ɵɵviewQuery(_c1, 7, ElementRef);\n i0.ɵɵviewQuery(_c2, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nodeOutlet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.carouselMain1 = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nguItemsContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._touchContainer = _t.first);\n }\n },\n inputs: {\n inputs: \"inputs\",\n dataSource: \"dataSource\",\n trackBy: \"trackBy\"\n },\n outputs: {\n carouselLoad: \"carouselLoad\",\n onMove: \"onMove\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([NguCarouselHammerManager]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c4,\n decls: 11,\n vars: 0,\n consts: [[\"ngucarousel\", \"\"], [\"touchContainer\", \"\"], [\"nguItemsContainer\", \"\"], [1, \"ngucarousel\"], [1, \"ngu-touch-container\"], [1, \"ngucarousel-items\"], [\"nguCarouselOutlet\", \"\"], [1, \"nguclearFix\"]],\n template: function NguCarousel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c3);\n i0.ɵɵelementStart(0, \"div\", 3, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementStart(3, \"div\", 4, 1)(5, \"div\", 5, 2);\n i0.ɵɵelementContainer(7, 6);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(8, \"div\", 7);\n i0.ɵɵprojection(9, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(10, 2);\n }\n },\n dependencies: [NguCarouselOutlet],\n styles: [\"[_nghost-%COMP%]{display:block;position:relative}.ngurtl[_nghost-%COMP%]{direction:rtl}.ngucarousel[_ngcontent-%COMP%]{position:relative;overflow:hidden;height:100%}.ngucarousel[_ngcontent-%COMP%] .ngucarousel-items[_ngcontent-%COMP%]{position:relative;display:flex;height:100%}.nguvertical[_ngcontent-%COMP%]{flex-direction:column}.banner[_ngcontent-%COMP%] .ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%]{position:absolute;width:100%;bottom:20px}.banner[_ngcontent-%COMP%] .ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{background:rgba(255,255,255,.55)}.banner[_ngcontent-%COMP%] .ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%]{background:white}.banner[_ngcontent-%COMP%] .ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{cursor:pointer}.ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%]{list-style-type:none;text-align:center;padding:12px;margin:0;white-space:nowrap;overflow:auto;box-sizing:border-box}.ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:inline-block;border-radius:50%;background:rgba(0,0,0,.55);padding:4px;margin:0 4px;transition-timing-function:cubic-bezier(.17,.67,.83,.67);transition:.4s}.ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%]{background:#6b6b6b;transform:scale(1.8)}.ngucarouselPointDefault[_ngcontent-%COMP%] .ngucarouselPoint[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{cursor:pointer}.nguclearFix[_ngcontent-%COMP%]{clear:both}\"],\n changeDetection: 0\n });\n }\n }\n return NguCarousel;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguItemComponent = /*#__PURE__*/(() => {\n class NguItemComponent {\n constructor() {\n this.classes = true;\n }\n static {\n this.ɵfac = function NguItemComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguItemComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NguItemComponent,\n selectors: [[\"ngu-item\"]],\n hostVars: 2,\n hostBindings: function NguItemComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"item\", ctx.classes);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c5,\n decls: 1,\n vars: 0,\n template: function NguItemComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n }\n }\n return NguItemComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NguTileComponent = /*#__PURE__*/(() => {\n class NguTileComponent {\n constructor() {\n this.classes = true;\n }\n static {\n this.ɵfac = function NguTileComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NguTileComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NguTileComponent,\n selectors: [[\"ngu-tile\"]],\n hostVars: 2,\n hostBindings: function NguTileComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"item\", ctx.classes);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c5,\n decls: 2,\n vars: 0,\n consts: [[1, \"tile\"]],\n template: function NguTileComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\"[_nghost-%COMP%]{padding:10px;box-sizing:border-box}.tile[_ngcontent-%COMP%]{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f}\"]\n });\n }\n }\n return NguTileComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of carousel\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NguCarousel, NguCarouselConfig, NguCarouselDefDirective, NguCarouselItemDirective, NguCarouselNextDirective, NguCarouselOutlet, NguCarouselPointDirective, NguCarouselPrevDirective, NguCarouselStore, NguItemComponent, NguTileComponent };\n","import { InjectionToken, Type } from '@angular/core';\n\nexport interface LazyComponents {\n [key: string]: { loadComponent: () => Promise> };\n}\n\nexport const lazyMapC: LazyComponents = {\n JackpotTileConatinerComponent: {\n loadComponent: () => import('./../jackpot-tiles/jackpot-tile-container.component').then((x) => x.JackpotTileConatinerComponent),\n },\n DiscoverFeedComponent: {\n loadComponent: () => import('@casinocore/platform/discover-feed').then((m) => m.DiscoverFeedComponent),\n },\n CozyBingoWidgetComponent: {\n loadComponent: () => import('@casinocore/platform/cozy-bingo-widget').then((m) => m.CozyBingoWidgetComponent),\n },\n LiveGamesIframeComponent: {\n loadComponent: () => import('@casinocore/platform/live-games-section').then((m) => m.LiveGamesIframeComponent),\n },\n JackpotwidgetComponent: {\n loadComponent: () => import('@casinocore/platform/jackpot-widgets').then((m) => m.JackpotwidgetComponent),\n },\n JackpotWidgetRedesignComponent: {\n loadComponent: () => import('@casinocore/platform/jackpot-widgets').then((m) => m.JackpotWidgetRedesignComponent),\n },\n\n MustGoJackpotRedesignComponent: {\n loadComponent: () => import('@casinocore/platform/must-go-redesign').then((m) => m.MustGoJackpotRedesignComponent),\n },\n LiveCasinoComponent: {\n loadComponent: () => import('@casinocore/platform/livecasino').then((m) => m.LiveCasinoComponent),\n },\n CasinoGameVideosComponent: {\n loadComponent: () => import('@casinocore/platform/casino-game-videos').then((m) => m.CasinoGameVideosComponent),\n },\n NewsFeedComponent: {\n loadComponent: () => import('@casinocore/platform/news-feed-section').then((m) => m.NewsFeedComponent),\n },\n\n ParallaxAnimationComponent: {\n loadComponent: () => import('@casinocore/platform/parallax-animation').then((m) => m.ParallaxAnimationComponent),\n },\n PromoOfferWidgetComponent: {\n loadComponent: () => import('@casinocore/platform/promo-offer-widget').then((m) => m.PromoOfferWidgetComponent),\n },\n GamificationLoaderComponent: {\n loadComponent: () => import('@casinocore/platform/gamification').then((m) => m.GamificationLoaderComponent),\n },\n PromoEdsWidgetComponent: {\n loadComponent: () => import('@casinocore/platform/promo-eds-widget').then((m) => m.PromoEdsWidgetComponent),\n },\n NewGridGameMetaDataComponent: {\n loadComponent: () => import('@casinocore/platform/new-grid-game-metadata').then((m) => m.NewGridGameMetaDataComponent),\n },\n SlotRacesComponent: {\n loadComponent: () => import('@casinocore/platform/slot-races').then((m) => m.SlotRacesWrapperComponent),\n },\n SlotRacesPhase2Component: {\n loadComponent: () => import('@casinocore/platform/slot-races-phase2').then((m) => m.SlotRacesWrapperPhase2Component),\n },\n CasinoGameSelectorComponent: {\n loadComponent: () => import('@casinocore/platform/casino-game-selector').then((m) => m.CasinoGameSelectorComponent),\n },\n SuperButtonComponent: {\n loadComponent: () => import('@casinocore/platform/super-button').then((m) => m.SuperButtonComponent),\n },\n PromotionsBannerComponent: {\n loadComponent: () => import('@casinocore/platform/promotions-banner').then((m) => m.PromotionsBannerComponent),\n },\n InstagramWrapperComponent: {\n loadComponent: () => import('@casinocore/platform/instagram-section-wrapper').then((m) => m.InstagramWrapperComponent),\n },\n NewGameQuickInfoComponent: {\n loadComponent: () => import('@casinocore/platform/new-game-quick-info').then((m) => m.NewGameQuickInfoComponent),\n },\n BetMGMOriginalsComponent: {\n loadComponent: () => import('./../betmgm-originals/betmgm-originals.component').then((x) => x.BetMGMOriginalsComponent),\n },\n TopTenGamesComponent: {\n loadComponent: () => import('./../top-ten-games/top-ten-games.component').then((x) => x.TopTenGamesComponent),\n },\n BingoTournamentsComponent: {\n loadComponent: () => import('@casinocore/platform/bingo-tournaments').then((m) => m.BingoTournamentsComponent),\n },\n};\n\nexport const LAZY_COMPONENETS_MAPC = new InjectionToken('LAZY_COMPONENETS_MAPC', {\n factory: () => lazyMapC,\n});\n","import { ComponentFactoryResolver, Inject, Injectable, Type } from '@angular/core';\n\nimport { LAZY_COMPONENETS_MAPC, LazyComponents } from './casino-core-lazy-routes';\n\nexport type ModuleWithRoot = Type & { rootComponent: Type };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyRouteService {\n constructor(\n @Inject(LAZY_COMPONENETS_MAPC) private componentsMap: LazyComponents,\n private componentFactoryResolver: ComponentFactoryResolver,\n ) {}\n\n async loadAndRenderLazyComponents(data: any) {\n const { type } = data;\n const componentMap = this.componentsMap[type];\n if (componentMap) {\n const component = await componentMap.loadComponent();\n const factory = this.componentFactoryResolver.resolveComponentFactory(component);\n return factory;\n }\n return '';\n }\n}\n","import { Component, ComponentRef, Input, OnChanges, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\n\nimport { OutputEventModel } from '@casinocore/platform/core';\n\nimport { LazyRouteService } from './casino-core-lazy-route.service';\n\n@Component({\n selector: 'cc-casino-core-lazy-placeholder',\n templateUrl: 'casino-core-lazy-placeholder.component.html',\n standalone: true,\n})\nexport class CasinoCoreLazyPlaceholderComponent implements OnInit, OnChanges {\n @Input() componentName: string;\n @Input() inputData: any;\n @Input() outputEvents: OutputEventModel[];\n componentRef_: ComponentRef;\n @ViewChild('casinoCoreLazyTemplate', { read: ViewContainerRef, static: true }) casinoCoreLazyPlaceholdercontainer: ViewContainerRef;\n constructor(private lazyRouteService: LazyRouteService) {}\n ngOnInit() {\n const componentData = {\n type: this.componentName,\n };\n this.lazyRouteService.loadAndRenderLazyComponents(componentData).then((componentFactory: any) => {\n this.componentRef_ = this.casinoCoreLazyPlaceholdercontainer.createComponent(componentFactory);\n for (const attribute in this.inputData) {\n this.componentRef_.instance[attribute] = this.inputData[attribute];\n }\n if (this.outputEvents) {\n this.outputEvents.forEach((outputEvent: OutputEventModel) => {\n this.componentRef_.instance[outputEvent.eventName].subscribe((data: any) => {\n outputEvent.callback(data);\n });\n });\n }\n this.componentRef_.changeDetectorRef.detectChanges();\n });\n }\n ngOnChanges() {\n if (this.componentRef_) {\n for (const attribute in this.inputData) {\n this.componentRef_.instance[attribute] = this.inputData[attribute];\n }\n try {\n this.componentRef_.instance.ngOnChanges();\n } catch {\n // ignored;\n }\n }\n }\n}\n","\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, ContentChildren, Directive, NgModule } from '@angular/core';\nimport { setLines, MatLine, MatLineModule, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/bidi';\n\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * @docs-private\n */\nconst _c0 = [\"*\"];\nconst _c1 = [[[\"\", \"mat-grid-avatar\", \"\"], [\"\", \"matGridAvatar\", \"\"]], [[\"\", \"mat-line\", \"\"], [\"\", \"matLine\", \"\"]], \"*\"];\nconst _c2 = [\"[mat-grid-avatar], [matGridAvatar]\", \"[mat-line], [matLine]\", \"*\"];\nconst _c3 = \".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size, var(--mat-app-body-large))}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size, var(--mat-app-body-medium))}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size, var(--mat-app-body-large))}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size, var(--mat-app-body-medium))}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\";\nclass TileCoordinator {\n constructor() {\n /** Index at which the search for the next gap will start. */\n this.columnIndex = 0;\n /** The current row index. */\n this.rowIndex = 0;\n }\n /** Gets the total number of rows occupied by tiles */\n get rowCount() {\n return this.rowIndex + 1;\n }\n /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n */\n get rowspan() {\n const lastRowMax = Math.max(...this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n }\n /**\n * Updates the tile positions.\n * @param numColumns Amount of columns in the grid.\n * @param tiles Tiles to be positioned.\n */\n update(numColumns, tiles) {\n this.columnIndex = 0;\n this.rowIndex = 0;\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map(tile => this._trackTile(tile));\n }\n /** Calculates the row and col position of a tile. */\n _trackTile(tile) {\n // Find a gap large enough for this tile.\n const gapStartIndex = this._findMatchingGap(tile.colspan);\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n return new TilePosition(this.rowIndex, gapStartIndex);\n }\n /** Finds the next available space large enough to fit the tile. */\n _findMatchingGap(tileCols) {\n if (tileCols > this.tracker.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than ` + `grid with cols=\"${this.tracker.length}\".`);\n }\n // Start index is inclusive, end index is exclusive.\n let gapStartIndex = -1;\n let gapEndIndex = -1;\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is\n // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue.\n } while (gapEndIndex - gapStartIndex < tileCols || gapEndIndex == 0);\n // If we still didn't manage to find a gap, ensure that the index is\n // at least zero so the tile doesn't get pulled out of the grid.\n return Math.max(gapStartIndex, 0);\n }\n /** Move \"down\" to the next row. */\n _nextRow() {\n this.columnIndex = 0;\n this.rowIndex++;\n // Decrement all spaces by one to reflect moving down one row.\n for (let i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n }\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n _findGapEndIndex(gapStartIndex) {\n for (let i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n // The gap ends with the end of the row.\n return this.tracker.length;\n }\n /** Update the tile tracker to account for the given tile in the given space. */\n _markTilePosition(start, tile) {\n for (let i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n }\n}\n/**\n * Simple data structure for tile position (row, col).\n * @docs-private\n */\nclass TilePosition {\n constructor(row, col) {\n this.row = row;\n this.col = col;\n }\n}\n\n/**\n * Injection token used to provide a grid list to a tile and to avoid circular imports.\n * @docs-private\n */\nconst MAT_GRID_LIST = /*#__PURE__*/new InjectionToken('MAT_GRID_LIST');\nlet MatGridTile = /*#__PURE__*/(() => {\n class MatGridTile {\n constructor(_element, _gridList) {\n this._element = _element;\n this._gridList = _gridList;\n this._rowspan = 1;\n this._colspan = 1;\n }\n /** Amount of rows that the grid tile takes up. */\n get rowspan() {\n return this._rowspan;\n }\n set rowspan(value) {\n this._rowspan = Math.round(coerceNumberProperty(value));\n }\n /** Amount of columns that the grid tile takes up. */\n get colspan() {\n return this._colspan;\n }\n set colspan(value) {\n this._colspan = Math.round(coerceNumberProperty(value));\n }\n /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n */\n _setStyle(property, value) {\n this._element.nativeElement.style[property] = value;\n }\n static {\n this.ɵfac = function MatGridTile_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridTile)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_GRID_LIST, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridTile,\n selectors: [[\"mat-grid-tile\"]],\n hostAttrs: [1, \"mat-grid-tile\"],\n hostVars: 2,\n hostBindings: function MatGridTile_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"rowspan\", ctx.rowspan)(\"colspan\", ctx.colspan);\n }\n },\n inputs: {\n rowspan: \"rowspan\",\n colspan: \"colspan\"\n },\n exportAs: [\"matGridTile\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n consts: [[1, \"mat-grid-tile-content\"]],\n template: function MatGridTile_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size, var(--mat-app-body-large))}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size, var(--mat-app-body-medium))}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size, var(--mat-app-body-large))}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size, var(--mat-app-body-medium))}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatGridTile;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatGridTileText = /*#__PURE__*/(() => {\n class MatGridTileText {\n constructor(_element) {\n this._element = _element;\n }\n ngAfterContentInit() {\n setLines(this._lines, this._element);\n }\n static {\n this.ɵfac = function MatGridTileText_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridTileText)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridTileText,\n selectors: [[\"mat-grid-tile-header\"], [\"mat-grid-tile-footer\"]],\n contentQueries: function MatGridTileText_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLine, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c2,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-grid-list-text\"]],\n template: function MatGridTileText_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(3, 2);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatGridTileText;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nlet MatGridAvatarCssMatStyler = /*#__PURE__*/(() => {\n class MatGridAvatarCssMatStyler {\n static {\n this.ɵfac = function MatGridAvatarCssMatStyler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridAvatarCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridAvatarCssMatStyler,\n selectors: [[\"\", \"mat-grid-avatar\", \"\"], [\"\", \"matGridAvatar\", \"\"]],\n hostAttrs: [1, \"mat-grid-avatar\"],\n standalone: true\n });\n }\n }\n return MatGridAvatarCssMatStyler;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nlet MatGridTileHeaderCssMatStyler = /*#__PURE__*/(() => {\n class MatGridTileHeaderCssMatStyler {\n static {\n this.ɵfac = function MatGridTileHeaderCssMatStyler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridTileHeaderCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridTileHeaderCssMatStyler,\n selectors: [[\"mat-grid-tile-header\"]],\n hostAttrs: [1, \"mat-grid-tile-header\"],\n standalone: true\n });\n }\n }\n return MatGridTileHeaderCssMatStyler;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nlet MatGridTileFooterCssMatStyler = /*#__PURE__*/(() => {\n class MatGridTileFooterCssMatStyler {\n static {\n this.ɵfac = function MatGridTileFooterCssMatStyler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridTileFooterCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridTileFooterCssMatStyler,\n selectors: [[\"mat-grid-tile-footer\"]],\n hostAttrs: [1, \"mat-grid-tile-footer\"],\n standalone: true\n });\n }\n }\n return MatGridTileFooterCssMatStyler;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * RegExp that can be used to check whether a value will\n * be allowed inside a CSS `calc()` expression.\n */\nconst cssCalcAllowedValue = /^-?\\d+((\\.\\d+)?[A-Za-z%$]?)+$/;\n/**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * @docs-private\n */\nclass TileStyler {\n constructor() {\n this._rows = 0;\n this._rowspan = 0;\n }\n /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n *\n * @param gutterSize Size of the grid's gutter.\n * @param tracker Instance of the TileCoordinator.\n * @param cols Amount of columns in the grid.\n * @param direction Layout direction of the grid.\n */\n init(gutterSize, tracker, cols, direction) {\n this._gutterSize = normalizeUnits(gutterSize);\n this._rows = tracker.rowCount;\n this._rowspan = tracker.rowspan;\n this._cols = cols;\n this._direction = direction;\n }\n /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n getBaseTileSize(sizePercent, gutterFraction) {\n // Take the base size percent (as would be if evenly dividing the size between cells),\n // and then subtracting the size of one gutter. However, since there are no gutters on the\n // edges, each tile only uses a fraction (gutterShare = numGutters / numCells) of the gutter\n // size. (Imagine having one gutter per tile, and then breaking up the extra gutter on the\n // edge evenly among the cells).\n return `(${sizePercent}% - (${this._gutterSize} * ${gutterFraction}))`;\n }\n /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param offset Number of tiles that have already been rendered in the row/column.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @return Position of the tile as a CSS calc() expression.\n */\n getTilePosition(baseSize, offset) {\n // The position comes the size of a 1x1 tile plus gutter for each previous tile in the\n // row/column (offset).\n return offset === 0 ? '0' : calc(`(${baseSize} + ${this._gutterSize}) * ${offset}`);\n }\n /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param span The tile's rowspan or colspan.\n * @return Size of the tile as a CSS calc() expression.\n */\n getTileSize(baseSize, span) {\n return `(${baseSize} * ${span}) + (${span - 1} * ${this._gutterSize})`;\n }\n /**\n * Sets the style properties to be applied to a tile for the given row and column index.\n * @param tile Tile to which to apply the styling.\n * @param rowIndex Index of the tile's row.\n * @param colIndex Index of the tile's column.\n */\n setStyle(tile, rowIndex, colIndex) {\n // Percent of the available horizontal space that one column takes up.\n let percentWidthPerTile = 100 / this._cols;\n // Fraction of the vertical gutter size that each column takes up.\n // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width.\n let gutterWidthFractionPerTile = (this._cols - 1) / this._cols;\n this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n this.setRowStyles(tile, rowIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n }\n /** Sets the horizontal placement of the tile in the list. */\n setColStyles(tile, colIndex, percentWidth, gutterWidth) {\n // Base horizontal size of a column.\n let baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth);\n // The width and horizontal position of each tile is always calculated the same way, but the\n // height and vertical position depends on the rowMode.\n let side = this._direction === 'rtl' ? 'right' : 'left';\n tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex));\n tile._setStyle('width', calc(this.getTileSize(baseTileWidth, tile.colspan)));\n }\n /**\n * Calculates the total size taken up by gutters across one axis of a list.\n */\n getGutterSpan() {\n return `${this._gutterSize} * (${this._rowspan} - 1)`;\n }\n /**\n * Calculates the total size taken up by tiles across one axis of a list.\n * @param tileHeight Height of the tile.\n */\n getTileSpan(tileHeight) {\n return `${this._rowspan} * ${this.getTileSize(tileHeight, 1)}`;\n }\n /**\n * Calculates the computed height and returns the correct style property to set.\n * This method can be implemented by each type of TileStyler.\n * @docs-private\n */\n getComputedHeight() {\n return null;\n }\n}\n/**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example ``\n * @docs-private\n */\nclass FixedTileStyler extends TileStyler {\n constructor(fixedRowHeight) {\n super();\n this.fixedRowHeight = fixedRowHeight;\n }\n init(gutterSize, tracker, cols, direction) {\n super.init(gutterSize, tracker, cols, direction);\n this.fixedRowHeight = normalizeUnits(this.fixedRowHeight);\n if (!cssCalcAllowedValue.test(this.fixedRowHeight) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid value \"${this.fixedRowHeight}\" set as rowHeight.`);\n }\n }\n setRowStyles(tile, rowIndex) {\n tile._setStyle('top', this.getTilePosition(this.fixedRowHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(this.fixedRowHeight, tile.rowspan)));\n }\n getComputedHeight() {\n return ['height', calc(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`)];\n }\n reset(list) {\n list._setListStyle(['height', null]);\n if (list._tiles) {\n list._tiles.forEach(tile => {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n });\n }\n }\n}\n/**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height. Example ``\n * @docs-private\n */\nclass RatioTileStyler extends TileStyler {\n constructor(value) {\n super();\n this._parseRatio(value);\n }\n setRowStyles(tile, rowIndex, percentWidth, gutterWidth) {\n let percentHeightPerTile = percentWidth / this.rowHeightRatio;\n this.baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterWidth);\n // Use padding-top and margin-top to maintain the given aspect ratio, as\n // a percentage-based value for these properties is applied versus the *width* of the\n // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties\n tile._setStyle('marginTop', this.getTilePosition(this.baseTileHeight, rowIndex));\n tile._setStyle('paddingTop', calc(this.getTileSize(this.baseTileHeight, tile.rowspan)));\n }\n getComputedHeight() {\n return ['paddingBottom', calc(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`)];\n }\n reset(list) {\n list._setListStyle(['paddingBottom', null]);\n list._tiles.forEach(tile => {\n tile._setStyle('marginTop', null);\n tile._setStyle('paddingTop', null);\n });\n }\n _parseRatio(value) {\n const ratioParts = value.split(':');\n if (ratioParts.length !== 2 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: invalid ratio given for row-height: \"${value}\"`);\n }\n this.rowHeightRatio = parseFloat(ratioParts[0]) / parseFloat(ratioParts[1]);\n }\n}\n/**\n * This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows. Example ``\n *\n * @docs-private\n */\nclass FitTileStyler extends TileStyler {\n setRowStyles(tile, rowIndex) {\n // Percent of the available vertical space that one row takes up.\n let percentHeightPerTile = 100 / this._rowspan;\n // Fraction of the horizontal gutter size that each column takes up.\n let gutterHeightPerTile = (this._rows - 1) / this._rows;\n // Base vertical size of a column.\n let baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile);\n tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(baseTileHeight, tile.rowspan)));\n }\n reset(list) {\n if (list._tiles) {\n list._tiles.forEach(tile => {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n });\n }\n }\n}\n/** Wraps a CSS string in a calc function */\nfunction calc(exp) {\n return `calc(${exp})`;\n}\n/** Appends pixels to a CSS string if no units are given. */\nfunction normalizeUnits(value) {\n return value.match(/([A-Za-z%]+)$/) ? value : `${value}px`;\n}\n\n// TODO(kara): Conditional (responsive) column count / row size.\n// TODO(kara): Re-layout on window resize / media change (debounced).\n// TODO(kara): gridTileHeader and gridTileFooter.\nconst MAT_FIT_MODE = 'fit';\nlet MatGridList = /*#__PURE__*/(() => {\n class MatGridList {\n constructor(_element, _dir) {\n this._element = _element;\n this._dir = _dir;\n /** The amount of space between tiles. This will be something like '5px' or '2em'. */\n this._gutter = '1px';\n }\n /** Amount of columns in the grid list. */\n get cols() {\n return this._cols;\n }\n set cols(value) {\n this._cols = Math.max(1, Math.round(coerceNumberProperty(value)));\n }\n /** Size of the grid list's gutter in pixels. */\n get gutterSize() {\n return this._gutter;\n }\n set gutterSize(value) {\n this._gutter = `${value == null ? '' : value}`;\n }\n /** Set internal representation of row height from the user-provided value. */\n get rowHeight() {\n return this._rowHeight;\n }\n set rowHeight(value) {\n const newValue = `${value == null ? '' : value}`;\n if (newValue !== this._rowHeight) {\n this._rowHeight = newValue;\n this._setTileStyler(this._rowHeight);\n }\n }\n ngOnInit() {\n this._checkCols();\n this._checkRowHeight();\n }\n /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n */\n ngAfterContentChecked() {\n this._layoutTiles();\n }\n /** Throw a friendly error if cols property is missing */\n _checkCols() {\n if (!this.cols && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: must pass in number of columns. ` + `Example: `);\n }\n }\n /** Default to equal width:height if rowHeight property is missing */\n _checkRowHeight() {\n if (!this._rowHeight) {\n this._setTileStyler('1:1');\n }\n }\n /** Creates correct Tile Styler subtype based on rowHeight passed in by user */\n _setTileStyler(rowHeight) {\n if (this._tileStyler) {\n this._tileStyler.reset(this);\n }\n if (rowHeight === MAT_FIT_MODE) {\n this._tileStyler = new FitTileStyler();\n } else if (rowHeight && rowHeight.indexOf(':') > -1) {\n this._tileStyler = new RatioTileStyler(rowHeight);\n } else {\n this._tileStyler = new FixedTileStyler(rowHeight);\n }\n }\n /** Computes and applies the size and position for all children grid tiles. */\n _layoutTiles() {\n if (!this._tileCoordinator) {\n this._tileCoordinator = new TileCoordinator();\n }\n const tracker = this._tileCoordinator;\n const tiles = this._tiles.filter(tile => !tile._gridList || tile._gridList === this);\n const direction = this._dir ? this._dir.value : 'ltr';\n this._tileCoordinator.update(this.cols, tiles);\n this._tileStyler.init(this.gutterSize, tracker, this.cols, direction);\n tiles.forEach((tile, index) => {\n const pos = tracker.positions[index];\n this._tileStyler.setStyle(tile, pos.row, pos.col);\n });\n this._setListStyle(this._tileStyler.getComputedHeight());\n }\n /** Sets style on the main grid-list element, given the style name and value. */\n _setListStyle(style) {\n if (style) {\n this._element.nativeElement.style[style[0]] = style[1];\n }\n }\n static {\n this.ɵfac = function MatGridList_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridList,\n selectors: [[\"mat-grid-list\"]],\n contentQueries: function MatGridList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatGridTile, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tiles = _t);\n }\n },\n hostAttrs: [1, \"mat-grid-list\"],\n hostVars: 1,\n hostBindings: function MatGridList_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"cols\", ctx.cols);\n }\n },\n inputs: {\n cols: \"cols\",\n gutterSize: \"gutterSize\",\n rowHeight: \"rowHeight\"\n },\n exportAs: [\"matGridList\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_GRID_LIST,\n useExisting: MatGridList\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n template: function MatGridList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [_c3],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatGridList;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatGridListModule = /*#__PURE__*/(() => {\n class MatGridListModule {\n static {\n this.ɵfac = function MatGridListModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatGridListModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatGridListModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatLineModule, MatCommonModule, MatLineModule, MatCommonModule]\n });\n }\n }\n return MatGridListModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// Privately exported for the grid-list harness.\nconst ɵTileCoordinator = TileCoordinator;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatGridAvatarCssMatStyler, MatGridList, MatGridListModule, MatGridTile, MatGridTileFooterCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileText, ɵTileCoordinator };\n","import * as i0 from '@angular/core';\nimport { Directive, inject, NgZone, Injectable, EventEmitter, PLATFORM_ID, ChangeDetectorRef, ElementRef, Input, Output, NgModule } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { isPlatformBrowser } from '@angular/common';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { isFunction, isNil, uniqueId, isBoolean, isString, isNumber } from 'lodash-es';\nlet DestroyableDirective = /*#__PURE__*/(() => {\n class DestroyableDirective {\n constructor() {\n this.destroyed$$ = new ReplaySubject(1);\n this.destroyed$ = this.destroyed$$.asObservable();\n }\n ngOnDestroy() {\n if (this.destroyed$$ && !this.destroyed$$.closed) {\n this.destroyed$$.next();\n this.destroyed$$.complete();\n }\n }\n static {\n this.ɵfac = function DestroyableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DestroyableDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DestroyableDirective,\n selectors: [[\"\", \"inViewportDestroyable\", \"\"]],\n standalone: true\n });\n }\n }\n return DestroyableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst isObject = value => Object.prototype.toString.call(value) === '[object Object]';\nconst ids = new WeakMap();\nconst fallbackId = 'in-viewport-empty-check-fn';\nclass CheckFn {\n #value;\n #id;\n get value() {\n return this.#value;\n }\n get id() {\n return this.#id;\n }\n constructor(value) {\n this.#value = isFunction(value) ? value : undefined;\n let id = ids.get(value) ?? fallbackId;\n if (!isNil(value) && !ids.has(value)) {\n ids.set(value, id = uniqueId('in-viewport-check-fn-'));\n }\n this.#id = id;\n }\n}\nvar InViewportDirection = /*#__PURE__*/function (InViewportDirection) {\n InViewportDirection[\"BOTH\"] = \"both\";\n InViewportDirection[\"VERTICAL\"] = \"vertical\";\n InViewportDirection[\"HORIZONTAL\"] = \"horizontal\";\n return InViewportDirection;\n}(InViewportDirection || {});\nclass InvalidDirectionException extends TypeError {\n constructor() {\n const values = Object.values(InViewportDirection).join('|');\n super(`The provided value for the direction is incorrect. The value must be any of \\`${values}\\`.`);\n }\n}\nclass InvalidRootMarginException extends TypeError {\n constructor() {\n super('The provided value for the rootMargin is incorrect. The value must be specified in pixels or percent.');\n }\n}\nclass InvalidRootNodeException extends TypeError {\n constructor() {\n super(`The provided value for the root is incorrect. The value must be of type '(Document or Element)'.`);\n }\n}\nclass InvalidThresholdException extends TypeError {\n constructor() {\n super('The provided values for the threshold are incorrect. The values must be numbers between 0 and 1.');\n }\n}\nclass Direction {\n #value;\n get value() {\n return this.#value;\n }\n constructor(value = InViewportDirection.VERTICAL) {\n if (!Object.values(InViewportDirection).includes(value)) {\n throw new InvalidDirectionException();\n }\n this.#value = value;\n }\n}\nclass Partial {\n #value;\n get value() {\n return this.#value;\n }\n constructor(value) {\n this.#value = isBoolean(value) ? value : true;\n }\n}\nclass RootMargin {\n #value;\n get value() {\n return this.#value;\n }\n constructor(value) {\n this.#value = RootMargin.parse(value);\n }\n static parse(value) {\n const strValue = isString(value) ? value.trim() : '0px';\n const values = strValue.split(/\\s+/);\n if (values.length <= 4 && values.every(val => /^-?\\d*\\.?\\d+(px|%)$/.test(val))) {\n const [top, right = top, bottom = top, left = right] = values;\n return `${top} ${right} ${bottom} ${left}`;\n }\n throw new InvalidRootMarginException();\n }\n}\nclass RootNode {\n #value;\n get value() {\n return this.#value;\n }\n constructor(node) {\n this.#value = RootNode.validate(node);\n }\n static validate(node) {\n if (isNil(node)) {\n return null;\n }\n if (node instanceof Element && node.nodeType === Node.ELEMENT_NODE) {\n return node;\n }\n throw new InvalidRootNodeException();\n }\n}\nclass Threshold {\n #value;\n get value() {\n return this.#value;\n }\n constructor(value) {\n this.#value = Threshold.validate(value ?? [0, 1]);\n }\n static validate(value) {\n if (Threshold.isValid(value)) {\n return [value];\n }\n if (Array.isArray(value) && value.every(val => Threshold.isValid(val))) {\n return value.sort();\n }\n throw new InvalidThresholdException();\n }\n static isValid(value) {\n return isNumber(value) && value >= 0 && value <= 1;\n }\n}\nconst checkFnId = Symbol('InViewportCheckFnId');\nconst configHash = Symbol('InViewportConfigHash');\nclass Config {\n #value;\n #hash;\n get root() {\n return this.#value.root.value;\n }\n get rootMargin() {\n return this.#value.rootMargin.value;\n }\n get threshold() {\n return this.#value.threshold.value;\n }\n get partial() {\n return this.#value.partial.value;\n }\n get direction() {\n return this.#value.direction.value;\n }\n get checkFn() {\n return this.#value.checkFn.value;\n }\n get [checkFnId]() {\n return this.#value.checkFn.id;\n }\n get [configHash]() {\n return this.#hash;\n }\n constructor(options) {\n options ??= {};\n this.#value = Object.freeze({\n root: new RootNode(options.root),\n rootMargin: new RootMargin(options.rootMargin),\n threshold: new Threshold(options.threshold),\n partial: new Partial(options.partial),\n direction: new Direction(options.direction),\n checkFn: new CheckFn(options.checkFn)\n });\n this.#hash = toBase64(stringify({\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n partial: this.partial,\n direction: this.direction,\n checkFn: this[checkFnId]\n }));\n }\n}\nclass ObserverCacheItem {\n #nodes = new Set();\n #observer;\n #destroy;\n constructor(config, callback) {\n this.#observer = new IntersectionObserver((...args) => {\n callback.next(...args);\n }, {\n root: config.root,\n rootMargin: config.rootMargin,\n threshold: [...config.threshold]\n });\n this.#destroy = () => {\n this.#observer.disconnect();\n callback.complete();\n };\n }\n addNode(node) {\n this.#nodes.add(node);\n this.#observer.observe(node);\n }\n deleteNode(node) {\n this.#nodes.delete(node);\n this.#nodes.size ? this.#observer.unobserve(node) : this.#destroy();\n }\n}\nclass ObserverCache {\n static #EMPTY_ROOT = Object.create(null);\n #cache = new WeakMap();\n #callback;\n constructor(callback) {\n this.#callback = callback;\n }\n addNode(node, config) {\n const items = this.#cache.get(config.root ?? ObserverCache.#EMPTY_ROOT) ?? this.create(config);\n const hash = config[configHash];\n // Scenario when configuration with new hash appears,\n // but root is already in cache.\n if (!items.has(hash)) {\n this.insert(items, config);\n }\n items.get(hash).addNode(node);\n }\n deleteNode(node, config) {\n const items = this.#cache.get(config.root ?? ObserverCache.#EMPTY_ROOT);\n const hash = config[configHash];\n if (items && items.has(hash)) {\n items.get(hash).deleteNode(node);\n }\n if (items && items.size === 0) {\n this.#cache.delete(config.root ?? ObserverCache.#EMPTY_ROOT);\n }\n }\n create(config) {\n const items = new Map();\n this.#cache.set(config.root ?? ObserverCache.#EMPTY_ROOT, items);\n this.insert(items, config);\n return items;\n }\n insert(items, config) {\n const hash = config[configHash];\n const cacheItem = new ObserverCacheItem(config, {\n next: (...args) => {\n this.#callback(...args);\n },\n complete: () => {\n items.delete(hash);\n }\n });\n items.set(hash, cacheItem);\n }\n}\nconst stringify = input => {\n if (Array.isArray(input)) {\n return `[${input.map(stringify).join(',')}]`;\n }\n if (isObject(input)) {\n return Object.entries(input).sort(([a], [b]) => String(a).localeCompare(String(b))).map(([key, value]) => `${key}:${stringify(value)}`).join('|');\n }\n return String(input);\n};\nconst toBase64 = value => {\n try {\n const input = globalThis.encodeURI(value);\n return globalThis.btoa(input);\n } catch {\n return value;\n }\n};\nlet InViewportService = /*#__PURE__*/(() => {\n class InViewportService {\n #trigger$;\n #cache;\n constructor() {\n this.#trigger$ = new Subject();\n this.trigger$ = this.#trigger$.asObservable();\n this.zone = inject(NgZone);\n this.zone.runOutsideAngular(() => {\n this.#cache = new ObserverCache(entries => this.onIntersectionEvent(entries));\n });\n }\n register(node, config) {\n this.zone.runOutsideAngular(() => {\n this.#cache.addNode(node, config);\n });\n }\n unregister(node, config) {\n this.zone.runOutsideAngular(() => {\n this.#cache.deleteNode(node, config);\n });\n }\n onIntersectionEvent(entries = []) {\n this.zone.run(() => entries.forEach(entry => this.#trigger$.next(entry)));\n }\n static {\n this.ɵfac = function InViewportService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InViewportService,\n factory: InViewportService.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return InViewportService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst InViewportMetadata = Symbol('InViewportMetadata');\nlet InViewportDirective = /*#__PURE__*/(() => {\n class InViewportDirective {\n constructor() {\n this.inViewportAction = new EventEmitter();\n this.inViewportCustomCheck = new EventEmitter();\n this.config = new Config({});\n this.platformId = inject(PLATFORM_ID);\n this.changeDetectorRef = inject(ChangeDetectorRef);\n this.elementRef = inject(ElementRef);\n this.destroyable = inject(DestroyableDirective, {\n self: true\n });\n this.inViewportService = inject(InViewportService);\n }\n set options(options) {\n this.config = new Config(options);\n }\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n ngAfterViewInit() {\n if (!isPlatformBrowser(this.platformId)) {\n this.emit(undefined, true, true);\n return;\n }\n this.inViewportService.trigger$.pipe(filter(entry => entry.target === this.nativeElement), takeUntil(this.destroyable.destroyed$)).subscribe(entry => {\n this.emit(entry, false);\n this.changeDetectorRef.markForCheck();\n });\n this.inViewportService.register(this.nativeElement, this.config);\n }\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n this.inViewportService.unregister(this.nativeElement, this.config);\n this.emit(undefined, true, false);\n }\n }\n isVisible(entry) {\n return this.config.partial ? entry.isIntersecting || entry.intersectionRatio > 0 : entry.intersectionRatio >= 1;\n }\n emit(entry, force, forcedValue) {\n this.inViewportAction.emit({\n [InViewportMetadata]: {\n entry\n },\n target: this.nativeElement,\n visible: force ? !!forcedValue : !entry || this.isVisible(entry)\n });\n if (this.config.checkFn) {\n this.inViewportCustomCheck.emit(this.config.checkFn(entry, {\n force,\n forcedValue: force ? !!forcedValue : undefined,\n config: this.config\n }));\n }\n }\n static {\n this.ɵfac = function InViewportDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InViewportDirective,\n selectors: [[\"\", \"inViewport\", \"\"]],\n inputs: {\n options: [0, \"inViewportOptions\", \"options\"]\n },\n outputs: {\n inViewportAction: \"inViewportAction\",\n inViewportCustomCheck: \"inViewportCustomCheck\"\n },\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([DestroyableDirective])]\n });\n }\n }\n return InViewportDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet InViewportModule = /*#__PURE__*/(() => {\n class InViewportModule {\n static {\n this.ɵfac = function InViewportModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: InViewportModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return InViewportModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ng-in-viewport\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Config, DestroyableDirective, InViewportDirection, InViewportDirective, InViewportMetadata, InViewportModule, InViewportService, InvalidDirectionException, InvalidRootMarginException, InvalidRootNodeException, InvalidThresholdException };\n","import { NEVER, ReplaySubject, Observable, from, isObservable, Subject } from 'rxjs';\nimport { materialize, tap, map, startWith, distinctUntilChanged, switchMap, mergeAll, share } from 'rxjs/operators';\nimport { coerceAllFactory } from '@rx-angular/cdk/coercing';\nfunction toRxErrorNotification(error, value) {\n return {\n value,\n kind: \"error\" /* RxNotificationKind.Error */,\n hasValue: !!value || false,\n complete: false,\n error: error || true\n };\n}\nfunction toRxSuspenseNotification(value) {\n return {\n value,\n kind: \"suspense\" /* RxNotificationKind.Suspense */,\n hasValue: !!value || false,\n complete: false,\n error: false\n };\n}\nfunction toRxCompleteNotification(value) {\n return {\n value,\n kind: \"complete\" /* RxNotificationKind.Complete */,\n hasValue: !!value || false,\n complete: true,\n error: false\n };\n}\nfunction rxMaterialize() {\n return o$ => o$.pipe(materialize(), tap(({\n kind,\n error\n }) => {\n // As we dont want to just swallow errors we log them here\n if (kind === 'E') {\n console.error(error);\n }\n }), map(({\n value,\n error,\n kind,\n hasValue\n }) => {\n const rxNotificationKind = notificationKindToRxNotificationKind(kind);\n return {\n value,\n hasValue,\n error,\n kind: rxNotificationKind,\n complete: rxNotificationKind === \"complete\" /* RxNotificationKind.Complete */\n };\n }));\n}\n/**\n * @internal\n *\n * @description\n * This function is here to turn RxJS notification kind values into RxNotification kind names.\n * The main reason for the naming is the RxNotification kind values map directly to the default\n * template names (`suspense`, `next`, `error` `complete`) in the directives of the template package\n */\nfunction notificationKindToRxNotificationKind(kind) {\n switch (kind) {\n case 'C':\n return \"complete\" /* RxNotificationKind.Complete */;\n case 'E':\n return \"error\" /* RxNotificationKind.Error */;\n case 'N':\n default:\n return \"next\" /* RxNotificationKind.Next */;\n }\n}\n\n/**\n * @description\n * Sends value and an initial `undefined` as value With a NEVER.\n * This is needed to render the suspense template and avoid completing (and render the complete template).\n * @param value\n */\nconst emitAndDontComplete = value => NEVER.pipe(startWith(value));\n/**\n * This helper is responsible for turning a stream of materialized notifications\n * (next error, complete as object in the next stream) into an enriched version with an additional suspense\n * notification type.\n *\n * If a notification enters and is of type next we store tne value of `notification.next` as last value emitted.\n * This value is important in the template to show an e.g. error and also have access to the last emitted value of\n * next.\n * The value can be very useful in error or complete messages or to display the old value overlays by a loading spinner\n * in case of the suspense state.\n *\n * If a notification of kind `next` enters and its value is undefined we turn it into a suspense notification\n * If a notification of kind `error`, `complete`, `suspense` enters we take the last value from of a next notification\n * and assign it as new value to the notification\n */\nconst handleSuspenseAndLastValueInNotifications = () => {\n // Used to store the last value per handleSuspenseAndLastValueInNotifications call\n let latestNextValue;\n // returns a projection function with a lastValue cache\n return notification => {\n // if it is the notification is of type next we take its value\n // otherwise we keep the existing last value\n if (notification.kind === \"next\" /* RxNotificationKind.Next */) {\n latestNextValue = notification.value;\n }\n // If a next notification enters with a value of undefined we turn it into a suspense notification\n if (notification.kind === \"next\" /* RxNotificationKind.Next */ && notification.value === undefined) {\n return toRxSuspenseNotification(undefined);\n }\n // If a Notification of type error, complete or suspense enters we assign the latest last value to them.\n // This is needed to access the old value in case of error or complete.\n // Next notifications will pass as they are.\n if (notification.kind === \"error\" /* RxNotificationKind.Error */ || notification.kind === \"complete\" /* RxNotificationKind.Complete */ || notification.kind === \"suspense\" /* RxNotificationKind.Suspense */) {\n notification.value = latestNextValue;\n }\n return notification;\n };\n};\n/**\n * @internal\n *\n * @description\n * This factory function returns an object that can be driven imperatively over a `next` method.\n * Internally it prepares the incoming values for rendering by turning them into \"template notifications\",\n * an extended `ObservableNotification` object used to determine the respective template for values, errors, completing\n * or suspense states.\n *\n * Internally it handles different edge cases for initial emits. This helps to have or template creation lazy.\n * Also it maps any Observable to RxNotifications. These notifications are bound to the view later and handle the\n * display of the default template as well as the suspense, error, complete templates.\n */\nfunction createTemplateNotifier() {\n // A Subject driven from the outside, it can contain Observables, static values null and undefined on purpose of from unassigned properties\n const observablesSubject = new ReplaySubject(1);\n let emittedValueOnce = false;\n const values$ = observablesSubject.pipe(distinctUntilChanged(),\n // handle static values inc null assignment and new Observable or Promises\n map(observable$ => {\n if (isObservableInput(observable$)) {\n return skipSuspenseIfHasValue(observable$);\n } else if (isSubscribableInput(observable$)) {\n return skipSuspenseIfHasValue(mapSubscribableToObservable(observable$));\n } else if (!emittedValueOnce && observable$ === undefined) {\n return NEVER;\n }\n return emitAndDontComplete(observable$);\n }), switchMap(o => {\n return o.pipe(tap(() => emittedValueOnce = true), distinctUntilChanged(), rxMaterialize(), map(handleSuspenseAndLastValueInNotifications()));\n }));\n return {\n next(observable) {\n observablesSubject.next(observable);\n },\n withInitialSuspense(withInitialSuspense) {\n emittedValueOnce = emittedValueOnce || withInitialSuspense;\n },\n values$\n };\n /**\n * @description\n * returns an observable that starts with an undefined value in case the input\n * observable$ does not emit a value immediately.\n * This is needed in order to skip the suspense template when we already know\n * there will be a next template rendered afterwards\n * @param observable$\n */\n function skipSuspenseIfHasValue(observable$) {\n return new Observable(subscriber => {\n let startWithUndefined = true;\n const inner = from(observable$).subscribe({\n next: v => {\n startWithUndefined = false;\n subscriber.next(v);\n },\n error: e => {\n startWithUndefined = false;\n subscriber.error(e);\n },\n complete: () => subscriber.complete()\n });\n if (emittedValueOnce && startWithUndefined) {\n subscriber.next(undefined);\n }\n return () => {\n inner.unsubscribe();\n };\n });\n }\n}\nfunction isObservableInput(input) {\n return typeof input?.then === 'function' || isObservable(input);\n}\nfunction isSubscribableInput(input) {\n return typeof input?.subscribe === 'function';\n}\nfunction mapSubscribableToObservable(input) {\n return new Observable(subscriber => {\n const sub = input.subscribe({\n next: value => subscriber.next(value)\n });\n return () => {\n sub.unsubscribe();\n };\n });\n}\n\n/**\n * @internal\n *\n * A factory function returning an object to handle the process of switching templates by Notification channel.\n * You can next a Observable of `RxNotification` multiple times and merge them into the Observable exposed under `trigger$`\n *\n */\nfunction templateTriggerHandling() {\n const hotFlattened = coerceAllFactory(() => new Subject(), mergeAll());\n return {\n next(templateName) {\n hotFlattened.next(templateName);\n },\n trigger$: hotFlattened.values$.pipe(share())\n };\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { createTemplateNotifier, rxMaterialize, templateTriggerHandling, toRxCompleteNotification, toRxErrorNotification, toRxSuspenseNotification };\n","import { onStrategy, strategyHandling } from '@rx-angular/cdk/render-strategies';\nimport { of, BehaviorSubject, concat, combineLatest, ReplaySubject, EMPTY, merge } from 'rxjs';\nimport { switchMap, ignoreElements, catchError, distinctUntilChanged, map, tap, withLatestFrom } from 'rxjs/operators';\n\n/**\n * @internal\n * creates an embeddedViewRef\n *\n * @param viewContainerRef\n * @param templateRef\n * @param context\n * @param index\n * @return EmbeddedViewRef\n */\nfunction createEmbeddedView(viewContainerRef, templateRef, context, index = 0) {\n const view = viewContainerRef.createEmbeddedView(templateRef, context, index);\n view.detectChanges();\n return view;\n}\n/**\n * @internal\n *\n * A factory function returning an object to handle `TemplateRef`'s.\n * You can add and get a `TemplateRef`.\n *\n */\nfunction templateHandling(viewContainerRef) {\n const templateCache = new Map();\n const get$ = name => {\n return templateCache.get(name) || of(undefined);\n };\n const get = name => {\n let ref;\n const templatRef$ = get$(name);\n if (templatRef$) {\n const sub = templatRef$.subscribe(r => ref = r);\n sub.unsubscribe();\n }\n return ref;\n };\n return {\n add(name, templateRef) {\n assertTemplate(name, templateRef);\n if (!templateCache.has(name)) {\n templateCache.set(name, new BehaviorSubject(templateRef));\n } else {\n templateCache.get(name).next(templateRef);\n }\n },\n get$,\n get,\n createEmbeddedView: (name, context) => createEmbeddedView(viewContainerRef, get(name), context)\n };\n //\n function assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received ${typeof templateRef}`);\n }\n return isTemplateRefOrNull;\n }\n}\n/**\n * @internal\n *\n * A side effect operator similar to `tap` but with a static internal logic.\n * It calls detect changes on the 'VirtualParent' and the injectingViewCdRef.\n *\n * @param injectingViewCdRef\n * @param strategy\n * @param notifyNeeded\n * @param ngZone\n */\nfunction notifyAllParentsIfNeeded(injectingViewCdRef, strategy, notifyNeeded, ngZone) {\n return o$ => o$.pipe(switchMap(v => {\n const notifyParent = notifyNeeded();\n if (!notifyParent) {\n return of(v);\n }\n return concat(of(v), onStrategy(injectingViewCdRef, strategy, (_v, work, options) => {\n /*console.log(\n 'notifyAllParentsIfNeeded injectingView',\n (injectingViewCdRef as any).context\n );*/\n work(injectingViewCdRef, options.scope);\n }, {\n scope: injectingViewCdRef.context || injectingViewCdRef,\n ngZone\n }).pipe(ignoreElements()));\n }));\n}\n\n/**\n * @internal\n *\n * Factory that returns a `ListTemplateManager` for the passed params.\n *\n * @param templateSettings\n */\nfunction getTemplateHandler(templateSettings) {\n const {\n viewContainerRef,\n initialTemplateRef,\n createViewContext,\n updateViewContext\n } = templateSettings;\n return {\n updateUnchangedContext,\n insertView,\n moveView,\n removeView,\n getListChanges,\n updateView\n };\n // =====\n function updateUnchangedContext(item, index, count) {\n const view = viewContainerRef.get(index);\n updateViewContext(item, view, {\n count,\n index\n });\n view.detectChanges();\n }\n function moveView(oldIndex, item, index, count) {\n const oldView = viewContainerRef.get(oldIndex);\n const view = viewContainerRef.move(oldView, index);\n updateViewContext(item, view, {\n count,\n index\n });\n view.detectChanges();\n }\n function updateView(item, index, count) {\n const view = viewContainerRef.get(index);\n updateViewContext(item, view, {\n count,\n index\n });\n view.detectChanges();\n }\n function removeView(index) {\n return viewContainerRef.remove(index);\n }\n function insertView(item, index, count) {\n createEmbeddedView(viewContainerRef, initialTemplateRef, createViewContext(item, {\n count,\n index\n }), index);\n }\n}\n/**\n * @internal\n *\n * @param changes\n * @param items\n */\nfunction getListChanges(changes, items) {\n const changedIdxs = new Set();\n const changesArr = [];\n let notifyParent = false;\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n const item = record.item;\n if (record.previousIndex == null) {\n // insert\n changesArr.push(getInsertChange(item, currentIndex === null ? undefined : currentIndex));\n changedIdxs.add(item);\n notifyParent = true;\n } else if (currentIndex == null) {\n // remove\n changesArr.push(getRemoveChange(item, adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex));\n notifyParent = true;\n } else if (adjustedPreviousIndex !== null) {\n // move\n changesArr.push(getMoveChange(item, currentIndex, adjustedPreviousIndex));\n changedIdxs.add(item);\n notifyParent = true;\n }\n });\n changes.forEachIdentityChange(record => {\n const item = record.item;\n if (!changedIdxs.has(item)) {\n changesArr.push(getUpdateChange(item, record.currentIndex));\n changedIdxs.add(item);\n }\n });\n items.forEach((item, index) => {\n if (!changedIdxs.has(item)) {\n changesArr.push(getUnchangedChange(item, index));\n }\n });\n return [changesArr, notifyParent];\n // ==========\n function getMoveChange(item, currentIndex, adjustedPreviousIndex) {\n return [2 /* RxListTemplateChangeType.move */, [item, currentIndex, adjustedPreviousIndex]];\n }\n function getUpdateChange(item, currentIndex) {\n return [3 /* RxListTemplateChangeType.update */, [item, currentIndex]];\n }\n function getUnchangedChange(item, index) {\n return [4 /* RxListTemplateChangeType.context */, [item, index]];\n }\n function getInsertChange(item, currentIndex) {\n return [0 /* RxListTemplateChangeType.insert */, [item, currentIndex === null ? undefined : currentIndex]];\n }\n function getRemoveChange(item, adjustedPreviousIndex) {\n return [1 /* RxListTemplateChangeType.remove */, [item, adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex]];\n }\n}\n\n/** @internal **/\nfunction isRxRenderError(e) {\n return e != null && Array.isArray(e) && e.length === 2 && e[0] instanceof Error;\n}\n/** @internal **/\nfunction createErrorHandler(_handler) {\n const _handleError = _handler ? e => _handler.handleError(e) : console.error;\n return {\n handleError: error => {\n if (isRxRenderError(error)) {\n _handleError(error[0]);\n console.error('additionalErrorContext', error[1]);\n } else {\n _handleError(error);\n }\n }\n };\n}\n/** @internal **/\nfunction toRenderError(e, context) {\n return [e, context];\n}\nfunction createListTemplateManager(config) {\n const {\n templateSettings,\n renderSettings,\n trackBy,\n iterableDiffers\n } = config;\n const {\n defaultStrategyName,\n strategies,\n cdRef: injectingViewCdRef,\n patchZone,\n parent\n } = renderSettings;\n const errorHandler = createErrorHandler(renderSettings.errorHandler);\n const ngZone = patchZone ? patchZone : undefined;\n const strategyHandling$ = strategyHandling(defaultStrategyName, strategies);\n let _differ;\n function getDiffer(values) {\n if (_differ) {\n return _differ;\n }\n return values ? _differ = iterableDiffers.find(values).create(trackBy) : null;\n }\n // type, context\n /* TODO (regarding createView): this is currently not in use. for the list-manager this would mean to provide\n functions for not only create. developers than should have to provide create, move, remove,... the whole thing.\n i don't know if this is the right decision for a first RC */\n const listViewHandler = getTemplateHandler({\n ...templateSettings,\n initialTemplateRef: templateSettings.templateRef\n });\n const viewContainerRef = templateSettings.viewContainerRef;\n let notifyParent = false;\n let changesArr;\n let partiallyFinished = false;\n return {\n nextStrategy(nextConfig) {\n strategyHandling$.next(nextConfig);\n },\n render(values$) {\n return values$.pipe(render());\n }\n };\n function handleError() {\n return o$ => o$.pipe(catchError(err => {\n partiallyFinished = false;\n errorHandler.handleError(err);\n return of(null);\n }));\n }\n function render() {\n return o$ => combineLatest([o$, strategyHandling$.strategy$.pipe(distinctUntilChanged())]).pipe(map(([iterable, strategy]) => {\n const differ = getDiffer(iterable);\n let changes;\n if (differ) {\n if (partiallyFinished) {\n const currentIterable = [];\n for (let i = 0, ilen = viewContainerRef.length; i < ilen; i++) {\n const viewRef = viewContainerRef.get(i);\n currentIterable[i] = viewRef.context.$implicit;\n }\n differ.diff(currentIterable);\n }\n changes = differ.diff(iterable);\n }\n return {\n changes,\n iterable,\n strategy\n };\n }),\n // Cancel old renders\n switchMap(({\n changes,\n iterable,\n strategy\n }) => {\n if (!changes) {\n return of([]);\n }\n const values = iterable || [];\n // TODO: we might want to treat other iterables in a more performant way than Array.from()\n const items = Array.isArray(values) ? values : Array.from(iterable);\n const listChanges = listViewHandler.getListChanges(changes, items);\n changesArr = listChanges[0];\n const insertedOrRemoved = listChanges[1];\n const applyChanges$ = getObservablesFromChangesArray(changesArr, strategy, items.length);\n partiallyFinished = true;\n notifyParent = insertedOrRemoved && parent;\n return combineLatest(applyChanges$.length > 0 ? applyChanges$ : [of(null)]).pipe(tap(() => partiallyFinished = false), notifyAllParentsIfNeeded(injectingViewCdRef, strategy, () => notifyParent, ngZone), handleError(), map(() => iterable));\n }), handleError());\n }\n /**\n * @internal\n *\n * returns an array of streams which process all of the view updates needed to reflect the latest diff to the\n * viewContainer.\n * I\n *\n * @param changes\n * @param strategy\n * @param count\n */\n function getObservablesFromChangesArray(changes, strategy, count) {\n return changes.length > 0 ? changes.map(change => {\n const payload = change[1];\n return onStrategy(change[0], strategy, type => {\n switch (type) {\n case 0 /* RxListTemplateChangeType.insert */:\n listViewHandler.insertView(payload[0], payload[1], count);\n break;\n case 2 /* RxListTemplateChangeType.move */:\n listViewHandler.moveView(payload[2], payload[0], payload[1], count);\n break;\n case 1 /* RxListTemplateChangeType.remove */:\n listViewHandler.removeView(payload[1]);\n break;\n case 3 /* RxListTemplateChangeType.update */:\n listViewHandler.updateView(payload[0], payload[1], count);\n break;\n case 4 /* RxListTemplateChangeType.context */:\n listViewHandler.updateUnchangedContext(payload[0], payload[1], count);\n break;\n }\n }, {\n ngZone\n });\n }) : [of(null)];\n }\n}\nconst computeFirst = ({\n count,\n index\n}) => index === 0;\nconst computeLast = ({\n count,\n index\n}) => index === count - 1;\nconst computeEven = ({\n count,\n index\n}) => index % 2 === 0;\nclass RxDefaultListViewContext {\n _item = new ReplaySubject(1);\n item$ = this._item.asObservable();\n _$implicit;\n _$complete;\n _$error;\n _$suspense;\n _context$ = new BehaviorSubject({\n index: -1,\n count: -1\n });\n set $implicit($implicit) {\n this._$implicit = $implicit;\n this._item.next($implicit);\n }\n get $implicit() {\n return this._$implicit;\n }\n get $complete() {\n return this._$complete;\n }\n get $error() {\n return this._$error;\n }\n get $suspense() {\n return this._$suspense;\n }\n get index() {\n return this._context$.getValue().index;\n }\n get count() {\n return this._context$.getValue().count;\n }\n get first() {\n return computeFirst(this._context$.getValue());\n }\n get last() {\n return computeLast(this._context$.getValue());\n }\n get even() {\n return computeEven(this._context$.getValue());\n }\n get odd() {\n return !this.even;\n }\n get index$() {\n return this._context$.pipe(map(c => c.index), distinctUntilChanged());\n }\n get count$() {\n return this._context$.pipe(map(s => s.count), distinctUntilChanged());\n }\n get first$() {\n return this._context$.pipe(map(computeFirst), distinctUntilChanged());\n }\n get last$() {\n return this._context$.pipe(map(computeLast), distinctUntilChanged());\n }\n get even$() {\n return this._context$.pipe(map(computeEven), distinctUntilChanged());\n }\n get odd$() {\n return this.even$.pipe(map(even => !even));\n }\n constructor(item, customProps) {\n this.$implicit = item;\n if (customProps) {\n this.updateContext(customProps);\n }\n }\n updateContext(newProps) {\n this._context$.next({\n ...this._context$.getValue(),\n ...newProps\n });\n }\n select = props => {\n return this.item$.pipe(map(r => props.reduce((acc, key) => acc?.[key], r)));\n };\n}\nvar RxBaseTemplateNames = /*#__PURE__*/function (RxBaseTemplateNames) {\n RxBaseTemplateNames[\"error\"] = \"errorTpl\";\n RxBaseTemplateNames[\"complete\"] = \"completeTpl\";\n RxBaseTemplateNames[\"suspense\"] = \"suspenseTpl\";\n return RxBaseTemplateNames;\n}(RxBaseTemplateNames || {});\n/**\n * @internal\n *\n * A factory function that returns a map of projections to turn a notification of a Observable (next, error, complete)\n *\n * @param customNextContext - projection function to provide custom properties as well as override existing\n */\nfunction notificationKindToViewContext(customNextContext) {\n // @TODO rethink overrides\n return {\n suspense: notification => {\n const $implicit = notification.value;\n return {\n $implicit,\n suspense: true,\n error: false,\n complete: false,\n ...customNextContext($implicit)\n };\n },\n next: notification => {\n const $implicit = notification.value;\n return {\n $implicit,\n suspense: false,\n error: false,\n complete: false,\n ...customNextContext($implicit)\n };\n },\n error: notification => {\n const $implicit = notification.value;\n return {\n $implicit,\n complete: false,\n error: notification.error || true,\n suspense: false,\n ...customNextContext($implicit)\n };\n },\n complete: notification => {\n const $implicit = notification.value;\n return {\n $implicit,\n error: false,\n complete: true,\n suspense: false,\n ...customNextContext($implicit)\n };\n }\n };\n}\nfunction createTemplateManager(config) {\n const {\n renderSettings,\n notificationToTemplateName,\n templateSettings\n } = config;\n const {\n defaultStrategyName,\n strategies,\n cdRef: injectingViewCdRef,\n patchZone,\n parent\n } = renderSettings;\n const errorHandler = createErrorHandler(renderSettings.errorHandler);\n const ngZone = patchZone ? patchZone : undefined;\n let activeTemplate;\n const strategyHandling$ = strategyHandling(defaultStrategyName, strategies);\n const templates = templateHandling(templateSettings.viewContainerRef);\n const viewContainerRef = templateSettings.viewContainerRef;\n const triggerHandling = config.templateTrigger$ || EMPTY;\n const getContext = notificationKindToViewContext(templateSettings.customContext || (() => ({})));\n return {\n addTemplateRef: (name, templateRef) => {\n templates.add(name, templateRef);\n },\n nextStrategy: strategyHandling$.next,\n render(values$) {\n let trg;\n let notification = {\n value: undefined,\n complete: false,\n error: false,\n kind: \"suspense\" /* RxNotificationKind.Suspense */,\n hasValue: false\n };\n return merge(values$.pipe(tap(n => notification = n)), triggerHandling.pipe(tap(trigger => trg = trigger))).pipe(switchMap(() => {\n const contextKind = trg || notification.kind;\n trg = undefined;\n const value = notification.value;\n const templateName = notificationToTemplateName[contextKind](value, templates);\n return templates.get$(templateName).pipe(map(template => ({\n template,\n templateName,\n notification,\n contextKind\n })));\n }), withLatestFrom(strategyHandling$.strategy$),\n // Cancel old renders\n switchMap(([{\n template,\n templateName,\n notification,\n contextKind\n }, strategy]) => {\n const isNewTemplate = activeTemplate !== template || !template;\n const notifyParent = isNewTemplate && parent;\n return onStrategy(notification.value, strategy, (v, work, options) => {\n const context = getContext[contextKind](notification);\n if (isNewTemplate) {\n // template has changed (undefined => next; suspense => next; ...)\n // handle remove & insert\n // remove current view if there is any\n if (viewContainerRef.length > 0) {\n // patch removal if needed\n viewContainerRef.clear();\n }\n // create new view if any\n if (template) {\n // createEmbeddedView is already patched, no need for workFactory\n templates.createEmbeddedView(templateName, context);\n }\n } else if (template) {\n // template didn't change, update it\n // handle update\n const view = viewContainerRef.get(0);\n Object.keys(context).forEach(k => {\n view.context[k] = context[k];\n });\n // update view context, patch if needed\n work(view, options.scope, notification);\n }\n activeTemplate = template;\n }, {\n ngZone\n }\n // we don't need to specify any scope here. The template manager is the only one\n // who will call `viewRef#detectChanges` on any of the templates it manages.\n // whenever a new value comes in, any pre-scheduled work of this taskManager will\n // be nooped before a new work will be scheduled. This happens because of the implementation\n // of `StrategyCredential#behavior`\n ).pipe(notifyAllParentsIfNeeded(injectingViewCdRef, strategy, () => notifyParent, ngZone), catchError(e => {\n errorHandler.handleError(e);\n return of(e);\n }));\n }));\n }\n };\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxBaseTemplateNames, RxDefaultListViewContext, createListTemplateManager, createTemplateManager, templateHandling };\n","import * as i0 from '@angular/core';\nimport { inject, ChangeDetectorRef, Injector, NgZone, ViewContainerRef, ErrorHandler, isSignal, Directive, Input, Output } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { coerceAllFactory } from '@rx-angular/cdk/coercing';\nimport { createTemplateNotifier } from '@rx-angular/cdk/notifications';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { RxBaseTemplateNames, createTemplateManager } from '@rx-angular/cdk/template';\nimport { ReplaySubject, Subscription, Subject, defer, merge, NEVER } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\n/** @internal */\nconst RxLetTemplateNames = {\n ...RxBaseTemplateNames,\n next: 'nextTpl'\n};\n/**\n * @Directive RxLet\n *\n * @description\n * In Angular there is one way to handle asynchronous values or streams in the template, the `async` pipe.\n * Even though the async pipe evaluates such values in the template, it is insufficient in many ways.\n * To name a few:\n * * it will only update the template when `NgZone` is also aware of the value change\n * * it leads to over rendering because it can only run global change detection\n * * it leads to too many subscriptions in the template\n * * it is cumbersome to work with values in the template\n *\n * read more about the LetDirective in the [official docs](https://www.rx-angular.io/docs/template/api/let-directive)\n *\n * **Conclusion - Structural directives**\n *\n * In contrast to global change detection, structural directives allow fine-grained control of change detection on a per directive basis.\n * The `LetDirective` comes with its own way to handle change detection in templates in a very efficient way.\n * However, the change detection behavior is configurable on a per directive or global basis.\n * This makes it possible to implement your own strategies, and also provides a migration path from large existing apps running with Angulars default change detection.\n *\n * This package helps to reduce code used to create composable action streams.\n * It mostly is used in combination with state management libs to handle user interaction and backend communication.\n *\n * ```html\n * \n * ...\n * \n * ```\n *\n *\n * @docsCategory LetDirective\n * @docsPage LetDirective\n * @publicApi\n */\nlet RxLet = /*#__PURE__*/(() => {\n class RxLet {\n templateRef;\n /** @internal */\n strategyProvider = inject(RxStrategyProvider);\n /** @internal */\n cdRef = inject(ChangeDetectorRef);\n injector = inject(Injector);\n /** @internal */\n ngZone = inject(NgZone);\n /** @internal */\n viewContainerRef = inject(ViewContainerRef);\n /** @internal */\n errorHandler = inject(ErrorHandler);\n static ngTemplateGuard_rxLet;\n /**\n * @description\n * The Observable or value to be bound to the context of a template.\n *\n * @example\n * const hero1 = {name: 'Batman'};\n * const hero$ = of(hero);\n *\n * \n * \n * \n *\n * \n * \n * \n *\n * @param { ObservableInput | U | null | undefined } rxLet\n */\n rxLet;\n /**\n * @description\n *\n * You can change the used `RenderStrategy` by using the `strategy` input of the `*rxLet`. It accepts\n * an `Observable` or [`RxStrategyNames`](https://github.com/rx-angular/rx-angular/blob/b0630f69017cc1871d093e976006066d5f2005b9/libs/cdk/render-strategies/src/lib/model.ts#L52).\n *\n * The default value for strategy is\n * [`normal`](https://www.rx-angular.io/docs/template/cdk/render-strategies/strategies/concurrent-strategies).\n *\n * Read more about this in the\n * [official docs](https://www.rx-angular.io/docs/template/api/let-directive#use-render-strategies-strategy).\n *\n * @example\n *\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n * \n *\n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * strategy = 'low';\n * strategy$ = of('immediate');\n * }\n *\n * @param { string | Observable | undefined } strategyName\n * @see {@link RxStrategyNames}\n */\n set strategy(strategyName) {\n this.strategyHandler.next(strategyName);\n }\n /**\n * @description\n * Defines the template for the complete state. Will be\n * shown when the bound Observable is in \"complete\" state.\n *\n * @example\n * \n * \n * \n * \n * thumb_up\n * \n *\n * @param { TemplateRef | null> } complete\n */\n complete;\n /**\n * @description\n * Defines the template for the error state. Will be\n * shown when the bound Observable is in \"error\" state.\n *\n * @example\n * \n * \n * \n * \n * thumb_down\n * \n *\n * @param { TemplateRef | null> } error\n */\n error;\n /**\n * @description\n * Defines the template for the suspense state. Will be\n * shown when the bound Observable is in \"suspense\" state.\n * Suspense means any undefined value, a never emitted value or `NEVER` itself.\n *\n * @example\n * \n * \n * \n * \n * \n * \n *\n * @param { TemplateRef | null> } suspense\n */\n suspense;\n /**\n * @description\n * A trigger to manually set the active template. It accepts a `RxNotificationKind`\n * which determines what template to display. If no template is given, a context\n * variable resembling the notification state is put into the `Next`\n * template of the directive\n *\n * @example\n * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * contextTrigger$.next(RxNotificationKind.error)\n *\n * @param { Observable } contextTrigger\n * @see {@link RxNotificationKind}\n */\n contextTrigger;\n /**\n * @description\n * A trigger to manually activate the complete template. It accepts any value,\n * on emission it will display the error template. If no template is given,\n * the complete context variable will complete set to true instead.\n *\n * @example\n * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * completeTrigger$.next()\n *\n * @param { Observable } completeTrigger\n */\n completeTrigger;\n /**\n * @description\n * A trigger to manually activate the error template. It accepts any value,\n * on emission it will display the error template. If no template is given,\n * the error context variable will be set to true instead.\n *\n * @example\n * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * errorTrigger$.next()\n *\n * @param { Observable } errorTrigger\n */\n errorTrigger;\n /**\n * @description\n * A trigger to manually activate the suspense template. It accepts any value,\n * on emission it will display the suspense template. If no template is given,\n * the suspense context variable will be set to true instead.\n *\n * @example\n * \n *\n * \n * \n * \n *\n *\n * // trigger template from component.ts\n * suspenseTrigger$.next()\n *\n * @param { Observable } suspenseTrigger\n */\n suspenseTrigger;\n /**\n * @description\n * A trigger to manually activate the default template. It accepts any value,\n * on emission it will switch to the let directives default template.\n *\n * @example\n * \n *\n * \n * \n *\n * \n *\n * // trigger template from component.ts\n * nextTrigger$.next()\n *\n * @param { Observable } nextTrigger\n */\n nextTrigger;\n /**\n * @description\n * A `Subject` which emits whenever *rxFor finished rendering a set changes to the view.\n * This enables developers to perform actions when a list has finished rendering.\n * The `renderCallback` is useful in situations where you rely on specific DOM properties like the `height` a\n * table after all items got rendered.\n * It is also possible to use the renderCallback in order to determine if a view should be visible or not. This\n * way developers can hide a list as long as it has not finished rendering.\n *\n * The result of the `renderCallback` will contain the currently rendered set of items in the iterable.\n *\n * @example\n * \\Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$: Observable = itemService.getItems();\n * trackItem = (idx, item) => item.id;\n * // this emits whenever rxFor finished rendering changes\n * itemsRendered = new Subject();\n *\n * constructor(elementRef: ElementRef) {\n * itemsRendered.subscribe(() => {\n * // items are rendered, we can now scroll\n * elementRef.scrollTo({bottom: 0});\n * })\n * }\n * }\n *\n * @param callback\n */\n set renderCallback(callback) {\n this._renderObserver = callback;\n }\n /**\n * @description\n *\n * When local rendering strategies are used, we need to treat view and content queries in a\n * special way.\n * To make `*rxLet` in such situations, a certain mechanism is implemented to\n * execute change detection on the parent (`parent`).\n *\n * This is required if your components state is dependent on its view or content children:\n *\n * - `@ViewChild`\n * - `@ViewChildren`\n * - `@ContentChild`\n * - `@ContentChildren`\n *\n * Read more about this in the\n * [official\n * docs](https://www.rx-angular.io/docs/template/api/let-directive#local-strategies-and-view-content-queries-parent).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * item$ = itemService.getItem();\n * }\n *\n * @param boolean\n *\n * @deprecated this flag will be dropped soon, as it is no longer required when using signal based view & content queries\n */\n renderParent = this.strategyProvider.config.parent;\n /**\n * @description\n * A flag to control whether *rxLet templates are created within `NgZone` or not.\n * The default value is `true, `*rxLet` will create it's `EmbeddedViews` inside `NgZone`.\n *\n * Event listeners normally trigger zone. Especially high frequently events cause performance issues.\n *\n * Read more about this in the\n * [official docs](https://www.rx-angular.io/docs/template/api/let-directive#working-with-event-listeners-patchzone).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * item$ = itemService.getItem();\n * }\n */\n patchZone = this.strategyProvider.config.patchZone;\n /** @internal */\n observablesHandler = createTemplateNotifier();\n /** @internal */\n strategyHandler = coerceAllFactory(() => new ReplaySubject(1));\n /** @internal */\n triggerHandler = new ReplaySubject(1);\n /** @internal */\n _renderObserver;\n /** @internal */\n subscription = new Subscription();\n /** @internal */\n templateManager;\n /** @internal */\n rendered$ = new Subject();\n /** @internal */\n templateNotification$ = new Subject();\n /** @internal */\n values$ = this.observablesHandler.values$;\n rendered = defer(() => this.rendered$);\n /** @internal */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n /** @internal */\n ngOnInit() {\n this.subscription.add(this.templateManager.render(merge(this.values$, this.templateNotification$)).subscribe(n => {\n this.rendered$.next(n);\n this._renderObserver?.next(n);\n }));\n this.subscription.add(merge(this.contextTrigger || NEVER, this.nextTrigger?.pipe(map(() => \"next\" /* RxNotificationKind.Next */)) || NEVER, this.suspenseTrigger?.pipe(map(() => \"suspense\" /* RxNotificationKind.Suspense */)) || NEVER, this.completeTrigger?.pipe(map(() => \"complete\" /* RxNotificationKind.Complete */)) || NEVER, this.errorTrigger?.pipe(map(() => \"error\" /* RxNotificationKind.Error */)) || NEVER).pipe(filter(v => !!v)).subscribe(t => this.triggerHandler.next(t)));\n }\n /** @internal */\n ngOnChanges(changes) {\n if (!this.templateManager) {\n this._createTemplateManager();\n }\n if (changes.complete) {\n this.templateManager.addTemplateRef(RxLetTemplateNames.complete, this.complete);\n }\n if (changes.suspense) {\n this.templateManager.addTemplateRef(RxLetTemplateNames.suspense, this.suspense);\n this.observablesHandler.withInitialSuspense(!!this.suspense);\n }\n if (changes.error) {\n this.templateManager.addTemplateRef(RxLetTemplateNames.error, this.error);\n }\n if (changes.rxLet) {\n if (isSignal(this.rxLet)) {\n this.observablesHandler.next(toObservable(this.rxLet, {\n injector: this.injector\n }));\n } else {\n this.observablesHandler.next(this.rxLet);\n }\n }\n }\n /** @internal */\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n /** @internal */\n _createTemplateManager() {\n this.templateManager = createTemplateManager({\n templateSettings: {\n viewContainerRef: this.viewContainerRef,\n customContext: rxLet => ({\n rxLet\n })\n },\n renderSettings: {\n cdRef: this.cdRef,\n parent: !!this.renderParent,\n patchZone: this.patchZone ? this.ngZone : false,\n defaultStrategyName: this.strategyProvider.primaryStrategy,\n strategies: this.strategyProvider.strategies,\n errorHandler: this.errorHandler\n },\n notificationToTemplateName: {\n [\"suspense\" /* RxNotificationKind.Suspense */]: () => this.suspense ? RxLetTemplateNames.suspense : RxLetTemplateNames.next,\n [\"next\" /* RxNotificationKind.Next */]: () => RxLetTemplateNames.next,\n [\"error\" /* RxNotificationKind.Error */]: () => this.error ? RxLetTemplateNames.error : RxLetTemplateNames.next,\n [\"complete\" /* RxNotificationKind.Complete */]: () => this.complete ? RxLetTemplateNames.complete : RxLetTemplateNames.next\n },\n templateTrigger$: this.triggerHandler\n });\n this.templateManager.addTemplateRef(RxLetTemplateNames.next, this.templateRef);\n this.templateManager.nextStrategy(this.strategyHandler.values$);\n }\n /** @nocollapse */\n static ɵfac = function RxLet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxLet)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n /** @nocollapse */\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RxLet,\n selectors: [[\"\", \"rxLet\", \"\"]],\n inputs: {\n rxLet: \"rxLet\",\n strategy: [0, \"rxLetStrategy\", \"strategy\"],\n complete: [0, \"rxLetComplete\", \"complete\"],\n error: [0, \"rxLetError\", \"error\"],\n suspense: [0, \"rxLetSuspense\", \"suspense\"],\n contextTrigger: [0, \"rxLetContextTrigger\", \"contextTrigger\"],\n completeTrigger: [0, \"rxLetCompleteTrigger\", \"completeTrigger\"],\n errorTrigger: [0, \"rxLetErrorTrigger\", \"errorTrigger\"],\n suspenseTrigger: [0, \"rxLetSuspenseTrigger\", \"suspenseTrigger\"],\n nextTrigger: [0, \"rxLetNextTrigger\", \"nextTrigger\"],\n renderCallback: [0, \"rxLetRenderCallback\", \"renderCallback\"],\n renderParent: [0, \"rxLetParent\", \"renderParent\"],\n patchZone: [0, \"rxLetPatchZone\", \"patchZone\"]\n },\n outputs: {\n rendered: \"rendered\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n return RxLet;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxLet };\n","
\n \n Free
Spins
\n \n {{ freespinAvailableCount }}/{{ freespinTotalCount }}\n \n \n
\n {{ freespinAvailableCount }}\n
\n
\n
{{ freespinTotalCount }}
\n
\n
\n \n Free
Spins
\n {{ freespinAvailableCount }}/{{ freespinTotalCount }}\n \n
{{ freespinAvailableCount }}
\n
\n
{{ freespinTotalCount }}
\n
\n \n\n","import { NgClass, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { ConfigProviderService } from '@casinocore/platform/core';\n\n@Component({\n selector: 'cc-freespin-summary',\n templateUrl: 'freespins-summary.component.html',\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class FreeSpinsSummaryComponent implements OnInit {\n @Input() freespinAvailableCount: any;\n @Input() freespinTotalCount: any;\n @Input() isOptedIn: any;\n @Output() freespinsInfo = new EventEmitter();\n enableFreeSpinSummary: boolean;\n isSpinShow: boolean;\n isSpinDefaultShow: boolean;\n freespinscountbg: string;\n isThreeDigit: boolean;\n constructor(private configProviderService: ConfigProviderService) {}\n ngOnInit() {\n this.enableFreeSpinSummary = this.configProviderService.providefreeSpinsClientConfig().isFreeSpinSummaryEnabled;\n this.freespinscountbg = this.configProviderService.provideGlobalConfig().freespinsCountBackgroundColor;\n this.isThreeDigit = this.freespinAvailableCount > 99 || this.freespinTotalCount > 99;\n }\n onFreeSpinClick(event: any) {\n this.freespinsInfo.emit(event);\n }\n}\n","\n
\n
\n \n \n
\n\n
\n
{{ ofText }} {{ rewardData.totalCount }} {{ this.freeSpinsRemainingText }}
\n
\n {{\n rewardData.winAmountSoFar == null\n ? (0 | currency: rewardData.currency)\n : (rewardData.winAmountSoFar / 100 | currency: rewardData.currency)\n }}\n {{ this.totalAmountText }}\n
\n
\n \n
\n
\n \n {{ expiryDateText }}:{{ rewardData.expiryDate | timezoneformat }} \n
\n\n","import { CurrencyPipe, NgFor } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { ConfigProviderService, FreespinSummaryService, TimeZoneFormatPipe } from '@casinocore/platform/core';\nimport { NavigationService, TrackingService } from '@frontend/vanilla/core';\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\nimport { LibMockService } from '../../services/lib-mock.service';\n\n@Component({\n selector: 'cc-freespin-quick-info',\n templateUrl: 'freespins-quick-info.component.html',\n standalone: true,\n imports: [NgFor, NgCircleProgressModule, CurrencyPipe, TimeZoneFormatPipe],\n})\nexport class FreeSpinsQuickInfoComponent implements OnInit {\n @Input() rewardDetails: any;\n enableFreeSpinSummary: boolean;\n isSpinShow: boolean;\n isSpinDefaultShow: boolean;\n freespinscountbg: string;\n freeSpinsRemainingText: string;\n totalAmountText: string;\n ofText: string;\n expiryDateText: string;\n freeSpinsBoxColor: string;\n expiryDetailsBoxColor: string;\n freeSpinsCountCircleColor: string;\n freeSpinsFont: string;\n moreInfoText: string;\n moreInfoUrl: any;\n fontColor: any;\n currencySymbol: any;\n timeZoneData: any;\n rewardPercent: number;\n quickInfoService: any;\n\n constructor(\n private configProviderService: ConfigProviderService,\n private tracking: TrackingService,\n private freespinSummaryService: FreespinSummaryService,\n private navigation: NavigationService,\n private libMockService: LibMockService,\n ) {}\n ngOnInit() {\n this.quickInfoService = this.libMockService.getQuickInfoService();\n if (this.rewardDetails) {\n this.timeZoneData = this.freespinSummaryService.getTimeZoneInfo();\n }\n\n this.freespinscountbg = this.configProviderService.provideGlobalConfig().freespinsCountBackgroundColor;\n this.enableFreeSpinSummary = this.configProviderService.providefreeSpinsClientConfig().isFreeSpinSummaryEnabled;\n this.freespinscountbg = this.configProviderService.provideGlobalConfig().lobbyConfigurations.freespinsCountBackgroundColor;\n this.freeSpinsRemainingText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsRemainingText;\n this.totalAmountText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.totalAmountText;\n this.ofText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.ofText;\n this.expiryDateText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.expiryDateText;\n this.freeSpinsBoxColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsBoxColor;\n this.expiryDetailsBoxColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.expiryDetailsBoxColor;\n this.freeSpinsCountCircleColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsCountCircleColor;\n this.freeSpinsFont = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.freeSpinsFont;\n this.moreInfoText = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.moreInfoText;\n this.fontColor = this.configProviderService.providefreeSpinsClientConfig().freeSpinsConfigurations.fontColor;\n }\n moreBoxInfoClick(event: any, rewardDataIndex: number) {\n this.onMoreInfoclick(event, rewardDataIndex, 'promotion area');\n }\n onMoreInfoclick(event: any, rewardDataIndex: number, clickArea: string) {\n const rewardData = this.rewardDetails[rewardDataIndex - 1];\n event.stopPropagation();\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'teasers',\n 'component.LabelEvent': 'casino game promotions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'FreeSpins' + rewardDataIndex,\n 'component.LocationEvent': this.quickInfoService.getQuickInfoGameTitle(),\n 'component.EventDetails': clickArea,\n 'component.URLClicked': rewardData.moreinfoUrl,\n });\n this.navigationAndDialogClose();\n this.navigation.goTo(rewardData?.moreinfoUrl);\n }\n public moreInfoClick(event: any, rewardDataIndex: number) {\n this.onMoreInfoclick(event, rewardDataIndex, 'moreInfoClick');\n }\n navigationAndDialogClose() {\n const onCloseDialogData: any = {\n noNavigation: true,\n };\n this.quickInfoService.closeQuickInfoDialog(onCloseDialogData);\n this.freespinSummaryService.freespinMoreinfoClick();\n }\n public calculateRewardPercent(rewardData: any) {\n this.rewardPercent = (rewardData.availableCount / rewardData.totalCount) * 100;\n return this.rewardPercent;\n }\n}\n","
\n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{\n sticker.value\n }}\n
\n
\n \n 0\"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n \n {{ sticker.value }}\n \n \n \n
\n \n \n
\n
{{ jackpotValue.amount }}
\n \n\n","import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoManager, ConfigProviderService, JackpotDataService } from '@casinocore/platform/core';\n\n@Component({\n selector: 'cc-stickers-jackpot',\n templateUrl: 'stickers-jackpot.component.html',\n standalone: true,\n imports: [NgIf, NgClass, NgFor, NgStyle],\n})\nexport class StickersJackpotComponent implements OnInit {\n showstickersinoverlay: boolean = true;\n showjackpotvalueinoverlay: boolean = true;\n @Input() demoEnabled: boolean = false;\n @Input() stickers: any = [];\n @Input() isStickersForUk: boolean = false;\n @Input() isTouch: boolean;\n @Input() jackpotValue: any = null;\n @Input() isHotJackpotGroup: boolean = false;\n @Input() lobbyType: string = '';\n jpBgColor: any;\n enableHotIcon: boolean = false;\n hotIcon: any;\n epcotHotIcon: any;\n enableEpcotSubNavigation: boolean;\n jpRibbonStyles: { jpBgColor: string; jpTextColor: string };\n stickerKey: any = [];\n stickerStyles: any;\n enableStickerStyles: boolean;\n globalConfig: any;\n\n constructor(\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private jackpotDataService: JackpotDataService,\n ) {}\n ngOnInit() {\n let features = this.configProviderService.provideFeaturesConfig();\n this.globalConfig = this.configProviderService.provideGlobalConfig();\n this.enableStickerStyles = features.enableStickerStyles;\n let gameConfig = this.configProviderService.provideGameConfig();\n let subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n this.showstickersinoverlay = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.showStickersInOverlay);\n this.showjackpotvalueinoverlay = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.showJackpotvalueInOverlay);\n this.enableHotIcon = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, features.enableHotIcon);\n this.hotIcon = gameConfig.host + features.hotIconPath.hotIcon;\n this.epcotHotIcon = gameConfig.host + features.hotIconPath.epcotHotIcon;\n if (this.jackpotValue) {\n this.setJackpotValue();\n }\n }\n\n // setJackpotValue() {\n // let jackpotConfig = this.configProviderService.provideJackpotConfig();\n // if (jackpotConfig.enableRibbonConfig) {\n // this.jpBgColor = this.jackpotValue?.jackpotAttributes?.JackpotRibbonBgColor;\n // this.jpTextCOlor = this.jackpotValue?.jackpotAttributes?.JackpotRibbonTextColor;\n // if (this.jackpotValue.globalJackpotAttributes) {\n // this.jpBgColor = this.jackpotValue?.globalJackpotAttributes?.JackpotRibbonBgColor;\n // this.jpTextCOlor = this.jackpotValue?.globalJackpotAttributes?.JackpotRibbonTextColor;\n // }\n // }\n // }\n setJackpotValue() {\n let enableRibbonConfig = this.configProviderService.provideJackpotConfig().enableRibbonConfig;\n if (enableRibbonConfig) {\n this.jpRibbonStyles = this.jackpotDataService.getJackpotRibbonStyles(this.jackpotValue);\n }\n }\n getStyles(sticker: any, index: number) {\n this.stickerKey = Object.keys(this.globalConfig.stickerStyles);\n if (this.stickerKey.includes(sticker)) {\n this.stickerStyles = this.globalConfig.stickerStyles[sticker];\n } else if (this.isStickersForUk) {\n if (!this.stickerKey.includes(sticker) && index % 2 === 0) {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle1;\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle2;\n }\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.GameStickerStyle;\n }\n return this.stickerStyles;\n }\n}\n","
\n
\n
\n
\n
\n
\n \"{{\n
\n
\n
\n \"hotjackpot\"\n
\n
{{ data.jackpotData | vnCurrency }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ data.roomTitle }}
\n \n
\n
\n \n \n
\n
\n
\n\n","import { NgClass, NgIf, UpperCasePipe } from '@angular/common';\nimport { Component, HostListener, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport {\n BingoFavouriteService,\n BingoGameLaunchService,\n CasinoWidgetService,\n ConfigProviderService,\n CozyBingoDataService,\n DesignSystemEnablerService,\n FavouriteService,\n OpenLoginDialog,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, GameTileCtaComponent } from '@frontend/casino-ui';\nimport { CurrencyPipe, UserService, WindowRef } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-bingo-quick-info-model',\n templateUrl: 'bingo-quick-info-model.component.html',\n standalone: true,\n imports: [NgIf, NgClass, UpperCasePipe, CurrencyPipe, GameTileCtaComponent, DecoratorClassDirective],\n})\nexport class BingoQuickInfoModelComponent implements OnInit {\n public hotIcon = 'https://casinogames.galaspins.com/htmllobby/images/newlmticons/square/hotjackpot.png';\n public favouriteStyle: string = 'theme-favorite-i';\n public unFavouriteStyle: string = 'theme-favorite';\n public isFavourite = false;\n public isLaunchedFromUrl: boolean;\n width: number;\n boxWidth: number;\n boxWidthInt: number;\n gameContainer: string;\n cozyRoomData: any;\n isLegacy: boolean = false;\n constructor(\n public dialogRef: MatDialogRef,\n private user: UserService,\n private windowRef: WindowRef,\n private bingoGameLaunchService: BingoGameLaunchService,\n private bingoFavouriteService: BingoFavouriteService,\n private loginDialog: OpenLoginDialog,\n private favouriteService: FavouriteService,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private configProviderService: ConfigProviderService,\n private cozyBingoDataService: CozyBingoDataService,\n private casinoWidgetService: CasinoWidgetService,\n private designSystemEnablerService: DesignSystemEnablerService,\n ) {\n this.setWidth();\n }\n\n ngOnInit() {\n if (this.data.fromCozybingo) {\n this.cozyRoomData = this.cozyBingoDataService.getRoomdatabyId(this.data.room.roomId.replace(/[^A-Z0-9]/gi, '').toLocaleLowerCase());\n if (this.cozyRoomData) {\n this.setCozyBingoRoomInfo(this.cozyRoomData);\n this.data.room.isFavourite = this.cozyBingoDataService.checkForFavouriteGame({ fromCasino: false, gameId: this.data.room.roomId });\n }\n }\n const global: any = this.configProviderService.provideGlobalConfig();\n if (\n global.lobbyConfigurations.FavouriteHeart === 'true' ||\n global.lobbyConfigurations.FavouriteHeart === 'True' ||\n global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n this.gameContainer = this.data.gameContainer;\n if (document.querySelector('.casino-qi-noverlay') as HTMLElement) {\n (document.querySelector('.casino-qi-noverlay') as HTMLElement).style.cssText = global.messages.quickInfoStyles;\n }\n this.isLegacy = !this.designSystemEnablerService.isEnabled();\n }\n\n setCozyBingoRoomInfo(cozyRoomInfo: any) {\n this.data.roomTitle = cozyRoomInfo.name;\n this.data.roomDescription = cozyRoomInfo.sitecoreInfo.description;\n this.data.src = cozyRoomInfo.sitecoreInfo.desktopImage.src;\n this.data.jackpotData = cozyRoomInfo.jackpot;\n }\n @HostListener('window:resize') onResize() {\n this.setWidth();\n }\n\n setWidth(): void {\n if (this.windowRef.nativeWindow.screen.availWidth > 480) {\n this.width = 333;\n } else if (this.windowRef.nativeWindow.screen.availWidth < this.windowRef.nativeWindow.screen.availHeight)\n this.width = this.windowRef.nativeWindow.screen.availWidth;\n else this.width = this.windowRef.nativeWindow.screen.availHeight;\n this.boxWidth = this.width;\n this.boxWidthInt = this.boxWidth - 176;\n }\n closeModel() {\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n document.getElementsByTagName('html')[0].classList.remove('cdk-global-scrollblock');\n this.dialogRef.close();\n if (document.querySelector('.cdk-overlay-container')) {\n (document.querySelector('.cdk-overlay-container') as HTMLElement).innerHTML = '';\n }\n }\n\n launchGame() {\n this.closeModel();\n if (this.data.fromCozybingo) {\n const gameObj: any = {\n position: this.data.position,\n section: this.data.section,\n widgetFrameClr: this.data.widgetFrameClr,\n gameContainerLocation: this.data.gameContainerLocation,\n };\n this.bingoGameLaunchService.initiateGameLaunch(\n this.cozyRoomData.name,\n 'BINGO',\n this.cozyRoomData.bingo_type,\n 'room',\n this.cozyRoomData.sitecoreInfo.desktopImage.src,\n this.cozyRoomData.id,\n true,\n '',\n gameObj,\n );\n }\n }\n\n toggleFavourite(room: any) {\n const id = this.cozyRoomData.id;\n if (!this.user.isAuthenticated) {\n this.closeModel();\n\n const loginResponseObj: any = {\n loginMessageKey: 'Favourite',\n };\n this.loginDialog.open(loginResponseObj);\n } else {\n if (room.isFavourite) {\n this.data.room.isFavourite = false;\n this.bingoFavouriteService.removeFavourite(id, this.user.id ? this.user.id : '').subscribe(\n (response: any) => {\n if (response.result) {\n const request = {\n categoryid: 'rcp-widget',\n roomid: id,\n isFavourite: false,\n };\n this.casinoWidgetService.postMessageToParent('favupdated', request);\n this.favouriteService.publishingFavObervable(false, id);\n this.cozyBingoDataService.getBingoData(false, false);\n }\n },\n () => {},\n );\n } else {\n this.data.room.isFavourite = true;\n this.bingoFavouriteService.addFavourite(id, this.user.id ? this.user.id : '').subscribe(\n (response: any) => {\n if (response.result) {\n this.favouriteService.publishingFavObervable(true, id);\n const request = {\n categoryid: 'rcp-widget',\n roomid: id,\n isFavourite: true,\n };\n this.casinoWidgetService.postMessageToParent('favupdated', request);\n this.cozyBingoDataService.getBingoData(false, false);\n }\n },\n () => {},\n );\n }\n }\n }\n}\n","
\n
\n
\n
\n
{{ gameTitle }}
\n
\n
\n \"{{\n
\n
\n
\n
\n
\n
\n
{{ gameProvider }}
\n
{{ provider | uppercase }}
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \"{{\n
\n \n
\n
\n
\n
\n
\n
\n
\n
{{ gameProvider | uppercase }}
\n
\n
\n \"{{\n
\n
{{ provider | uppercase }}
\n
\n
\n
{{ reels }}
\n
\n {{ reelsTitle }}\n
\n
\n
\n
{{ payLines }}
\n
\n {{ payLinesTitle }}\n
\n
\n
\n
{{ returnToPlayer }}
\n
\n {{ returnToPlayerTitle }}\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n @if (demoEnabled && demoEnabledForProvider) {\n \n }\n \n\n \n
\n \n
\n \n\n
\n \n \n \n
\n\n \n
\n \n\n \n\n
\n {{ moreInfo }}\n
\n
\n \n \n \n \n \"{{\n \n\n \n \n
\n \n
\n
\n
\n
\n \n \n \n
\n \n \n
\n \"{{\n
\n \n\n \n
\n
\n \n
\n
\n
\n \n \n\n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n \n @if (liveGameInfo.seatsTaken.length != 7) {\n \n \n }\n\n @if (liveGameInfo.seatsTaken.length == 7) {\n \n \n }\n\n
\n {{ moreInfo }}\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n\n \n
\n \n \n\n","import { NgClass, NgIf, NgStyle, UpperCasePipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { BingoQuickInfoModelComponent } from '@casinocore/platform/bingo-quick-info-model';\nimport {\n BingoGameLaunchService,\n CasinoCoreGamelaunchService,\n CasinoCoreNpmParamsService,\n CasinoLobbyService,\n CasinoManager,\n CasinoStylesService,\n CasinoWidgetService,\n ConfigProviderService,\n DesignSystemEnablerService,\n FavouriteService,\n FreespinSummaryService,\n GameDataManager,\n GameLaunch,\n JackpotDataService,\n LiveCasinoService,\n OpenLoginDialog,\n QuickInfoModalService,\n UrlUtilityService,\n WindowRef,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, GameTileCtaComponent } from '@frontend/casino-ui';\nimport { CookieService, DeviceService, DslService, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { Subject } from 'rxjs';\n\nimport { FreeSpinsQuickInfoComponent } from '../freespins-summary/freespins-quick-info/freespins-quick-info.component';\nimport { FreeSpinsSummaryComponent } from '../freespins-summary/freespins-summary.component';\nimport { LibMockService } from '../services/lib-mock.service';\nimport { StickersJackpotComponent } from '../stickers-jackpot/stickers-jackpot.component';\n\n@Component({\n selector: 'cc-game-quick-info',\n templateUrl: 'game-quick-info.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgClass,\n StickersJackpotComponent,\n NgStyle,\n FreeSpinsQuickInfoComponent,\n FreeSpinsSummaryComponent,\n UpperCasePipe,\n TrustAsHtmlPipe,\n GameTileCtaComponent,\n DecoratorClassDirective,\n ],\n})\nexport class GameQuickInfoComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n a: any;\n width: number;\n boxWidth: number;\n boxWidthInt: number;\n isTouch: boolean;\n defaultCategory: any;\n gameProvider: string;\n cta: string;\n quickInfoCta: string;\n moreInfo: string;\n playNow: string;\n gymlCategoryType: string = 'lmc_gyml';\n useFavouriteGames: boolean;\n provider: string;\n displayFavouritesOnPreLogin: boolean = true;\n isMobileView: boolean;\n @Input() game: any;\n @Input() categoryType: any;\n @Input() gamePosition: number;\n @Input() icon: any;\n @Input() gameLaunchedFrom: string;\n @Input() gameModel: any;\n @Input() gridPosition: any;\n @Input() quickInfoScrollY: any = 0;\n @Input() product: string = '';\n @Input() isLiveGame: any;\n @Input() liveGameInfo: any;\n @Input() stickersArray: any;\n @Input() lobbyType: string = '';\n @Input() thumbImageSrc: any;\n @Input() widgetFrameClr: any;\n @Input() gameContainerLocation: any;\n @Input() displayRecenetWinners: boolean;\n //@Input() isVideoEnabled: boolean;\n src: string;\n defaultSrc: string;\n mobileQuickInfoSrc: string;\n vendorLogo: any = null;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n isShowFavouriteHeartEnabled: boolean;\n gameTitle: string;\n playNowBtnWidth: number;\n stickerName: any;\n isStickersForUk: boolean;\n newJackpotRibbonStyling: boolean = false;\n newQuickInfoStyle: any = false;\n stickers: any = [];\n isFavourite: boolean = false;\n jackpotValue: any = null;\n isHotJackpotGroup: boolean = false;\n gameDescription: any = null;\n useQuickInfo: boolean;\n enableQuickInfoforLiveCasinoApi: boolean;\n enableFavouriteGamesforLiveCasinoApi: boolean;\n hideMoreInfoLinkForLiveCasinoApi: boolean;\n enableUkMouseOverStyle: boolean;\n playNowHoverEffect: boolean = false;\n loadQuickInfo: boolean = false;\n enableTitleOnGame: boolean;\n liveCasinoApiSitecoreInfo: any;\n playBehindButtonTitle: string;\n liveCasinoPlayNowCTA: string;\n quickInfoStyle: string;\n isTableOnline: boolean;\n bingoGames: any = [];\n bingoRooms: any = [];\n demoLinkText: string;\n demoEnabledForProvider: boolean = true;\n demoEnabled: boolean;\n demoLinkTextColor: string;\n GameStickerStyle: string;\n UkStickerStyle1: string;\n UkStickerStyle2: string;\n UKPlayNow: string;\n enableQuickInfoReels: boolean;\n reelsTitle: string = '';\n payLinesTitle: string = '';\n returnToPlayerTitle: string = '';\n reels: any = null;\n payLines: any = null;\n returnToPlayer: any = null;\n enableQuicInfoReelskDiv: boolean = false;\n showFreeSpinCount: boolean;\n enableFreeSpinSummary: boolean;\n enableFreeSpinsOnQuickInfo: boolean;\n freespinCountGame: any;\n freespinObservable: any;\n rewardIds: any[] = [];\n rewardDetails: any;\n optedIn: any;\n availableCount: any = 0;\n totalCount: any = 0;\n quickInfoService: any;\n isVideoPreviewEnabled: boolean = false;\n moreInfoClicked: boolean = false;\n enableEpcotSubNavigation: boolean;\n isNewQuickInfoEnabled: boolean;\n private destroy$ = new Subject();\n winnersGameNameFontsize: any;\n enableTitleOnGameTitle: boolean;\n enableTitleOnGameIconPlayerStats: boolean;\n\n isLegacy: boolean = false;\n @Output() onMouseLeaveEvent: EventEmitter = new EventEmitter();\n\n constructor(\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\n private configProviderService: ConfigProviderService,\n private windowRef: WindowRef,\n private bingoQuickInfo: MatDialog,\n private user: UserService,\n private loginDialog: OpenLoginDialog,\n private favouriteService: FavouriteService,\n private cookie: CookieService,\n private gameDataManager: GameDataManager,\n private jackpotservice: JackpotDataService,\n private casinoManager: CasinoManager,\n private elementRef: ElementRef,\n private route: ActivatedRoute,\n private liveCasinoService: LiveCasinoService,\n private tracking: TrackingService,\n private casinoWidgetService: CasinoWidgetService,\n private deviceService: DeviceService,\n private casinoLobbyService: CasinoLobbyService,\n private casinoCoreGameLaunchService: CasinoCoreGamelaunchService,\n private bingoGameLaunchService: BingoGameLaunchService,\n private freespinSummaryService: FreespinSummaryService,\n private urlUtilityService: UrlUtilityService,\n private casinoNpmParamsService: CasinoCoreNpmParamsService,\n private libMockService: LibMockService,\n private quickInfoModalService: QuickInfoModalService,\n private dslService: DslService,\n private designSystemEnablerService: DesignSystemEnablerService,\n private casinoStyles: CasinoStylesService,\n ) {\n this.quickInfoService = this.libMockService.getQuickInfoService();\n this.isTouch = this.casinoManager.isTouch();\n this.setWidth();\n }\n\n ngOnInit() {\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n this.isLegacy = !this.designSystemEnablerService.isEnabled();\n if (this.data?.game) {\n this.game = this.data.game;\n }\n this.setGameTitleAndProvider();\n if (this.data?.lobbyType) {\n this.lobbyType = this.data.lobbyType;\n }\n const featureConfig = this.configProviderService.provideFeaturesConfig();\n if (featureConfig.gameVideo && Boolean(JSON.parse(featureConfig?.gameVideo?.enabled?.toString()?.toLowerCase()))) {\n this.isVideoPreviewEnabled = true;\n }\n if (this.data && this.data.product != '') {\n this.trackWidgetGames();\n }\n this.assignFeatures();\n if (this.isTouch && this.data) {\n this.setLocalData();\n }\n this.setImageIcon();\n this.isFavourite = this.favouriteService.checkForFavouriteGame(this.game);\n this.setPlayNowBtnWidth(this.gameModel);\n if (this.windowRef.nativeWindow.screen.availWidth < 768 && this.isTouch) {\n this.gameDataManager.getGameDescription(this.game.gameId, this.game.provider).subscribe((res) => {\n if (res) {\n this.gameDescription = res.gameDescription;\n this.reels = res.reels;\n this.payLines = res.payLines;\n this.returnToPlayer = res.returnToPlayer;\n }\n });\n }\n if (this.game.fromCozybingo && this.deviceService.isTouch) {\n this.openDialog(null);\n }\n\n this.stickers = this.stickersArray || this.data.stickers;\n if (this.game.sticker && !this.stickers) {\n if (this.isStickersForUk && this.game.sticker.indexOf(',') !== -1) {\n this.stickers = this.game.sticker.split(',');\n } else {\n if (this.game.sticker.indexOf(',') !== -1) {\n this.stickers.push(this.game.sticker.split(',')[0]);\n } else {\n this.stickers.push(this.game.sticker);\n }\n }\n }\n this.enableFreeSpinSummary = this.configProviderService.providefreeSpinsClientConfig().isFreeSpinSummaryEnabled;\n this.enableFreeSpinsOnQuickInfo = this.configProviderService.providefreeSpinsClientConfig().isEnableFreeSpinsOnQuickInfo;\n if (this.enableFreeSpinSummary && this.enableFreeSpinsOnQuickInfo) {\n this.freespinObservable = this.freespinSummaryService.freeSpinsGameDetailsObser.subscribe((freespinsdata: any) => {\n if (freespinsdata) {\n this.bindFreeSpinInfo();\n }\n });\n }\n const isCasinoGame = !(this.game.fromCasino != undefined && !this.game.fromCasino) || !this.game.fromCozybingo;\n if (isCasinoGame && this.newQuickInfoStyle && this.isTouch) {\n if (this.windowRef.nativeWindow.screen.availWidth >= 768 || window.innerWidth >= 768 || document.body.offsetWidth >= 768) {\n setTimeout(() => {\n this.openDialog(null);\n }, 100);\n } else {\n this.loadQuickInfo = true;\n }\n }\n this.jackpotValue = this.GameJackpotValue(this.game);\n if (this.jackpotValue) {\n this.isHotJackpotGroup = this.jackpotValue.isHotJackpotGroup;\n }\n this.liveCasinoApiSitecoreInfo = this.liveCasinoService.getLiveCasinoApiSitecoreInfo();\n if (this.liveCasinoApiSitecoreInfo?.messages) {\n this.liveCasinoPlayNowCTA = this.liveCasinoApiSitecoreInfo.messages.LiveCasinoPlayNowCTA;\n this.playBehindButtonTitle = this.liveCasinoApiSitecoreInfo.messages.PlayBehind;\n this.isTableOnline = this.liveCasinoService.isTableOnline(this.game.gameId);\n }\n if (\n this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites' &&\n this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed' &&\n this.data?.gamePosition\n ) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'load',\n 'component.PositionEvent': this.data.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'more info overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n const globalMessages = this.configProviderService.provideRecentWinnersWidgetConfig()?.recentWinnersWidgetGlobalMessages;\n this.winnersGameNameFontsize = globalMessages?.WinnersGameNameFontsize;\n this.enableTitleOnGameTitle = this.configProviderService.provideRecentWinnersWidgetConfig()?.enableTitleOnGameIcon;\n this.enableTitleOnGameIconPlayerStats = this.configProviderService.providePlayerStatsWidgetConfig()?.enableTitleOnGameIcon;\n }\n\n assignFeatures() {\n const features: any = this.configProviderService.provideFeaturesConfig();\n const global = this.configProviderService.provideGlobalConfig();\n const quickInfoConfig = this.configProviderService.provideQuickInfoConfig();\n const liveCasinoApiConfig = this.configProviderService.provideLiveCasinoConfig();\n const subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n this.useFavouriteGames = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.favouriteGamesLobbyType);\n this.newJackpotRibbonStyling = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.newJackpotRibbonStyling);\n this.newQuickInfoStyle = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.newQuickInfoStyle);\n this.isStickersForUk = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.stickersForUk);\n this.enableUkMouseOverStyle = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.enableUkMouseOverStyle);\n this.useQuickInfo = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.enableQuickInfoLobbyType);\n this.isNewQuickInfoEnabled = this.casinoManager.IsFeatureEnabledforLobbytypeWithInvokerProduct(\n this.game.lobbyType,\n features.enableNewQuickInfoLobbyType,\n );\n this.playNowHoverEffect = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.playNowHoverEffect);\n this.enableTitleOnGame = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.enableTitleOnGameTile);\n this.enableQuickInfoforLiveCasinoApi = liveCasinoApiConfig.enableQuickInfo;\n this.enableFavouriteGamesforLiveCasinoApi = liveCasinoApiConfig.enableFavouriteGames;\n this.hideMoreInfoLinkForLiveCasinoApi = liveCasinoApiConfig.hideMoreInfoLink;\n if (quickInfoConfig?.quickInfo) {\n this.gameProvider = quickInfoConfig.quickInfo.gameProviderHeader;\n }\n this.cta = this.isNewQuickInfoEnabled ? quickInfoConfig?.quickInfo.cta : global?.messages?.ButtonPlayNow;\n this.quickInfoCta = quickInfoConfig?.quickInfo.cta || global?.messages?.ButtonPlayNow;\n this.playNow = global.messages.UKPlayNow;\n if (\n !this.user.isAuthenticated &&\n this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.preLoginPlayNowText) &&\n quickInfoConfig\n ) {\n if (this.isNewQuickInfoEnabled) {\n this.cta = quickInfoConfig?.quickInfo?.preLogincta;\n }\n this.quickInfoCta = quickInfoConfig?.quickInfo.preLogincta || global?.messages?.ButtonPlayNow;\n this.playNow = global.messages.UKPreLoginPlayNow;\n }\n this.moreInfo = global.messages.UKMoreInfo;\n if (\n global.lobbyConfigurations.FavouriteHeart === 'true' ||\n global.lobbyConfigurations.FavouriteHeart === 'True' ||\n global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n this.dslService.evaluateExpression(features.hideFavouritesOnPreLogin).subscribe((hideFavouritesOnPreLogin) => {\n if (hideFavouritesOnPreLogin && !this.user.isAuthenticated) {\n this.displayFavouritesOnPreLogin = false;\n }\n });\n this.quickInfoStyle = global.messages.quickInfoStyles;\n this.demoLinkText = global.messages.DemoLinkText;\n this.demoLinkTextColor = global.messages.DemoLinkTextColor;\n this.GameStickerStyle = global.messages.GameStickerStyle;\n this.UkStickerStyle1 = global.messages.UkStickerStyle1;\n this.UkStickerStyle2 = global.messages.UkStickerStyle2;\n this.UKPlayNow = global.messages.UKPlayNow;\n this.reelsTitle = global.messages.Reels;\n this.payLinesTitle = global.messages.PayLines;\n this.returnToPlayerTitle = global.messages.ReturnToPlayer;\n\n const gameConfig = this.configProviderService.provideGameConfig();\n const gameOwnerId = gameConfig.gameOwnerIdMap?.find((g: any) => g.gameId == this.game.gameId);\n this.vendorLogo =\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', 'vendorlogos').replace('{1}', gameOwnerId ? gameOwnerId?.ownerId : this.game.ownerId) +\n '.jpg';\n this.demoEnabled = gameConfig.enableDemoMode;\n const vendorsWithOnlyRealMode: any = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.game.lobbyType,\n gameConfig.vendorsWithOnlyRealModeLobbyType,\n );\n const demoModeExcludedGames = gameConfig.demoModeExcludedGamesRegex?.split(',');\n if (vendorsWithOnlyRealMode && vendorsWithOnlyRealMode.indexOf(this.provider) > -1) {\n this.demoEnabledForProvider = false;\n } else if (demoModeExcludedGames && demoModeExcludedGames.length > 0) {\n demoModeExcludedGames?.forEach((regex: any) => {\n if (new RegExp(regex, 'g').test(this.game.gameId)) {\n this.demoEnabledForProvider = false;\n }\n });\n }\n this.enableQuickInfoReels = gameConfig.enableQuickInfoReels;\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n }\n bindFreeSpinInfo() {\n this.setfreeSpinsCount(this.freespinSummaryService.getFreespinCountInfoForGame(this.game.gameId));\n }\n\n /*This is to set freespins count for the respective game*/\n setfreeSpinsCount(freespinsCountResponse: any) {\n this.freespinCountGame = freespinsCountResponse;\n if (this.freespinCountGame != undefined) {\n this.showFreeSpinCount = true;\n this.optedIn = this.freespinCountGame.optedIn;\n this.availableCount = this.freespinCountGame.availableCount;\n this.totalCount = this.freespinCountGame.totalCount;\n this.rewardIds = this.freespinCountGame.rewardIds;\n this.rewardDetails = this.freespinSummaryService.getFreeSpinRewardDetails(this.rewardIds);\n } else {\n this.showFreeSpinCount = false;\n }\n }\n ngOnChanges() {\n this.stickers = this.stickersArray || this.data.stickers;\n }\n trackWidgetGames() {\n if (this.data.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'Load',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.data.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'Load',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n }\n\n setGameTitleAndProvider() {\n if (this.game) {\n this.gameTitle = this.game.name;\n this.provider = this.game.provider;\n }\n }\n @HostListener('window:resize') onResize() {\n this.setWidth();\n this.isTouch = this.casinoManager.isTouch();\n }\n\n setWidth(): void {\n if (this.windowRef.nativeWindow.screen.availWidth >= 768) {\n this.width = 388;\n } else if (this.windowRef.nativeWindow.screen.availWidth < this.windowRef.nativeWindow.screen.availHeight) {\n this.width = this.windowRef.nativeWindow.screen.availWidth;\n } else {\n this.width = this.windowRef.nativeWindow.screen.availHeight;\n }\n this.boxWidth = this.width;\n this.boxWidthInt = this.boxWidth - 176;\n }\n ngAfterViewInit() {\n if (!this.newQuickInfoStyle || this.loadQuickInfo) {\n if (this.isStickersForUk) {\n this.gameStickerStyleForUk();\n } else {\n this.gameStickerStyle();\n }\n }\n if (document.querySelector('.casino-qi-noverlay') as HTMLElement) {\n (document.querySelector('.casino-qi-noverlay') as HTMLElement).style.cssText = this.quickInfoStyle;\n }\n this.isMobileView = window.innerWidth <= 767 || document.body.offsetWidth <= 767 ? true : false;\n setTimeout(() => {\n if (this.isMobileView) {\n this.quickInfoOverlayTopAllignment();\n }\n if (!this.isTouch) {\n gameTileReduction('casino-game-cls.casino-new-styling-overlay', 'casino-overlay-bg');\n gameTileReduction('casino-game-cls', 'casino-qi-gradient-d');\n gameTileReduction('casino-game-cls.casino-livecasino-overlay', 'casino-livecasino-overlay-bg');\n }\n }, 100);\n }\n setLocalData() {\n this.icon = this.data.icon;\n this.game = this.data.game;\n this.gamePosition = this.data.gamePosition;\n this.gameLaunchedFrom = this.data.gameLaunchedFrom;\n this.categoryType = this.data.categoryType;\n this.gridPosition = this.data.gridPosition;\n this.gameModel = this.data.gameModel;\n this.product = this.data.product;\n }\n gameStickerStyle() {\n const stickerStyle = this.GameStickerStyle;\n const sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n }\n gameStickerStyleForUk() {\n const stickerStyle = this.UkStickerStyle1;\n const sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n const stickerStyle1 = this.UkStickerStyle2;\n const sticker1 = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-1');\n for (let i = 0; i < sticker1.length; i++) {\n sticker1[i].style.cssText = stickerStyle1;\n }\n }\n async openDialog($event: any): Promise {\n this.moreInfoClicked = true;\n if (this.game.fromCasino != undefined && !this.game.fromCasino) {\n let bingoRoomInfo: any;\n //==============================\n let requiredModalData: any;\n if (event) {\n event.stopImmediatePropagation();\n this.quickInfoScrollY = window.pageYOffset;\n }\n const isLaunchedFromUrl = false;\n document.getElementsByTagName('html')[0].classList.add('casino-quickinfo-open');\n\n //================================\n if (bingoRoomInfo) {\n requiredModalData = {\n room: bingoRoomInfo,\n roomTitle: bingoRoomInfo.roomName,\n fromCozybingo: this.game.fromCozybingo,\n roomDescription:\n bingoRoomInfo.description ||\n 'Win a lot on the Jack in a Pot slot! This cheeky game lets you win up to 2,000x your stake using Jack the leprechaun’s lucky features',\n src: bingoRoomInfo.image,\n gameProviderText: 'GAME PROVIDER',\n providerName: 'Win Studios',\n provider: 'https://casinogames.galaspins.com/htmllobby/images/newlmticons/square/ivylootenkhamun.jpg',\n vendorLogo: 'https://casinogames.galaspins.com/htmllobby/images/newlmticons/vendorlogos/21.jpg',\n cta: this.UKPlayNow,\n jackpotData: bingoRoomInfo.jackpot,\n isLaunchedFromUrl,\n section: this.data.gameLaunchedFrom || this.gameLaunchedFrom,\n position: this.data.gamePosition || this.gamePosition,\n gameContainer: this.game.gameContainer,\n gameContainerLocation: this.data.gameContainerLocation || this.gameContainerLocation + 'QuickInfo',\n widgetFrameClr: this.data.widgetFrameClr || this.widgetFrameClr,\n };\n } else {\n requiredModalData = {\n room: { roomId: this.game.gameId },\n fromCozybingo: this.game.fromCozybingo,\n roomDescription: this.game.sitecoreInfo.description,\n gameProviderText: 'GAME PROVIDER',\n providerName: 'Win Studios',\n provider: 'https://casinogames.galaspins.com/htmllobby/images/newlmticons/square/ivylootenkhamun.jpg',\n vendorLogo: 'https://casinogames.galaspins.com/htmllobby/images/newlmticons/vendorlogos/21.jpg',\n cta: this.UKPlayNow,\n isLaunchedFromUrl,\n section: this.data.gameLaunchedFrom || this.gameLaunchedFrom,\n position: this.data.gamePosition || this.gamePosition,\n gameContainer: this.game.gameContainer,\n gameContainerLocation: this.data.gameContainerLocation || this.gameContainerLocation + 'QuickInfo',\n widgetFrameClr: this.data.widgetFrameClr || this.widgetFrameClr,\n };\n }\n const dialogRef = this.bingoQuickInfo.open(BingoQuickInfoModelComponent, {\n width: '790px',\n data: requiredModalData,\n });\n dialogRef.afterClosed().subscribe(() => {\n this.moreInfoClicked = false;\n if (this.quickInfoScrollY) {\n window.scrollTo(0, this.quickInfoScrollY);\n }\n if (this.isTouch) {\n this.recentlyPlayedTracking();\n dialogRef.close();\n }\n });\n setTimeout(() => {\n this.quickInfoOverlayTopAllignment();\n }, 0);\n } else {\n if ($event) {\n $event.stopImmediatePropagation();\n this.quickInfoScrollY = window.scrollY;\n }\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo',\n 'component.ActionEvent': 'Info_click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo',\n 'component.ActionEvent': 'Info_click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n\n if (this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites' && this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.game.gameId,\n 'component.EventDetails': 'more info overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n if (this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites' && this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'load',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.game.gameId,\n 'component.EventDetails': 'more info overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n\n const requiredModalData = {\n game: this.game,\n gameTitle: this.gameTitle,\n src: this.mobileQuickInfoSrc,\n useFavouriteGames: this.useFavouriteGames,\n gameProvider: this.gameProvider,\n provider: this.provider,\n cta: this.quickInfoCta,\n isTouch: this.isTouch,\n gamePosition: this.gamePosition,\n gameLaunchedFrom: this.gameLaunchedFrom,\n categoryType: this.categoryType,\n isLaunchedFromUrl: $event ? false : true,\n stickers: this.stickers,\n gridPosition: this.gridPosition,\n routeParams: this.route.snapshot.params,\n style: this.quickInfoStyle,\n product: this.product,\n lobbyType: this.game.lobbyType,\n gameHomeUrl: window.location.href,\n moreInfoText: 'moreInfoEvent',\n quickInfoScrollY: this.quickInfoScrollY,\n };\n\n if (this.isNewQuickInfoEnabled) {\n this.onMouseLeaveEvent.emit();\n this.appendQuickInfoQueryParameterToUrl();\n this.quickInfoModalService.setQuickInfoModalData(requiredModalData);\n } else {\n const dialogRef = await this.quickInfoService.openQuickInfoDialog(requiredModalData);\n document.getElementsByTagName('html')[0].classList.add('casino-quickinfo-open');\n dialogRef.afterClosed().subscribe(() => {\n this.moreInfoClicked = false;\n if (this.quickInfoScrollY) {\n window.scrollTo(0, this.quickInfoScrollY);\n }\n this.isTouch ? this.hideInfo() : this.handleQuickInfoonESC();\n });\n }\n this.quickInfoOverlayTopAllignment();\n }\n }\n\n recentlyPlayedTracking() {\n if (this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites' && this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'close',\n 'component.PositionEvent': this.data.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'more info overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n }\n handleQuickInfoonESC() {\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n // if ((!closeDialogData || !closeDialogData.noNavigation) && currenturl) {\n // this.navigation.goTo(currenturl);\n // }\n this.removeQuickInfoQueryParameterFromUrl();\n }\n removeQuickInfoQueryParameterFromUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams?.isDll) {\n if (this.game.gameContainer != 'Overlay' && this.game.gameContainer != 'Widget') {\n const param = 'game-info';\n if (location.href.indexOf(param) > -1 && !document.getElementsByTagName('html')[0].classList.contains('casino-quickinfo-open')) {\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n }\n launchGame(game: any, isDemo: boolean): void {\n const liveCasinoLoungeConfig = this.configProviderService.provideLiveCasinoLoungeConfig();\n const defaultCategoryInfo = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType)?.categoryInfo;\n const isLiveLoungeDefaultCategory: boolean =\n defaultCategoryInfo && defaultCategoryInfo.categoryid === liveCasinoLoungeConfig?.defaultCategoryId;\n if (this.data?.gameLaunchedFrom && this.newQuickInfoStyle) {\n if (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.data?.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n }\n if (!this.newQuickInfoStyle && this.product) {\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n }\n if (this.demoEnabled) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'Games Options',\n 'component.LabelEvent': 'Quick info overlay',\n 'component.ActionEvent': 'CTA - Clicked',\n 'component.PositionEvent': this.gameTitle,\n 'component.LocationEvent': isDemo ? 'Play Demo' : 'Playnow',\n 'component.EventDetails': 'User clicked on CTA in the quick info overlay',\n 'component.URLClicked': 'Quick Info overlay - Enabled',\n });\n }\n if (this.isTouch) {\n this.hideInfo();\n }\n if (this.product == '' && this.data?.product) {\n this.product = this.data.product;\n }\n let gameHomeUrl: string = '';\n if (this.casinoWidgetService.isCasinoWidget()) {\n gameHomeUrl = document.referrer;\n } else {\n if (this.isTouch) {\n if (this.lobbyType?.toLowerCase() == 'dice') {\n gameHomeUrl = this.urlUtilityService.getDiceSmartUrl();\n }\n } else {\n gameHomeUrl = window.location.href;\n }\n }\n this.casinoManager.setGameHomeUrl(gameHomeUrl);\n const gameObj: any = {\n position: this.gamePosition,\n section: this.gameLaunchedFrom,\n gameContainerLocation: this.gameContainerLocation,\n widgetFrameClr: this.widgetFrameClr,\n };\n if (this.game.fromCozybingo) {\n this.bingoGameLaunchService.initiateGameLaunch(\n game.name,\n 'BINGO',\n game.bingo_type,\n 'room',\n this.thumbImageSrc,\n game.id,\n true,\n undefined,\n gameObj,\n );\n } else {\n const gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.gamePosition;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = isDemo;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.gameLaunchedFrom;\n gameModel.gridPosition = this.gridPosition;\n gameModel.specialProduct = this.product;\n gameModel.gameContainer = this.game.gameContainer;\n gameModel.clickTimeStamp = this.casinoCoreGameLaunchService.currentTimeStamp();\n if (liveCasinoLoungeConfig && isLiveLoungeDefaultCategory) {\n gameModel.audioFrom = true;\n }\n this.casinoCoreGameLaunchService.launchGame(gameModel);\n }\n }\n\n toggleFavourite(game: any, $event: any) {\n $event.stopImmediatePropagation();\n if (this.user.isAuthenticated) {\n if (\n !this.isTouch &&\n !this.newQuickInfoStyle &&\n this.gameLaunchedFrom &&\n (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' || this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavforDisbaledQuickInfoforDesktop(game);\n }\n if (\n this.isTouch &&\n this.data.gameLaunchedFrom &&\n this.newQuickInfoStyle &&\n (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' ||\n this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavfromRpWidget(game);\n }\n if (\n this.isTouch &&\n !this.newQuickInfoStyle &&\n this.data.gameLaunchedFrom &&\n (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' ||\n this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavforDisbaledQuickInfoforDesktop(game);\n }\n this.favouriteService.toggleGameFavourite(game);\n this.isFavourite = !this.isFavourite;\n } else {\n if (this.isTouch) {\n this.hideInfo();\n }\n this.cookie.putObject('favouriteGame', game);\n if (this.casinoWidgetService.isCasinoWidget()) {\n this.casinoWidgetService.postMessageToParent('UserAction', { promptLogin: true, loginMessageKey: 'Favourite' });\n return;\n }\n const loginResponseObj: any = {\n loginMessageKey: 'Favourite',\n };\n this.loginDialog.open(loginResponseObj);\n }\n }\n\n trackFavforDisbaledQuickInfoforDesktop(game: any) {\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' || this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n }\n\n trackFavfromRpWidget(game: any) {\n if (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': game.lobbyType,\n });\n }\n }\n hideInfo($event: any = null): void {\n if ($event) {\n if (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.data.game.gameId + '_' + this.data.gamePosition,\n 'component.LocationEvent': this.game.lobbyType,\n });\n }\n if (this.demoEnabled) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'Games Options',\n 'component.LabelEvent': 'Quick info overlay',\n 'component.ActionEvent': 'CTA - Clicked',\n 'component.PositionEvent': this.gameTitle,\n 'component.LocationEvent': 'close(x)',\n 'component.EventDetails': 'User clicked on CTA in the quick info overlay',\n 'component.URLClicked': 'Quick Info overlay - Enabled',\n });\n }\n }\n this.recentlyPlayedTracking();\n $event && $event.stopImmediatePropagation();\n this.quickInfoService.closeGameQuickInfoDialog();\n }\n GameJackpotValue(game: any) {\n return this.jackpotservice.getGameJackpotValue(game.gameId);\n }\n\n isFavouriteGame(game: any) {\n // return false;\n return this.favouriteService.checkForFavouriteGame(game);\n }\n\n setImageIcon() {\n if (this.icon?.src) {\n this.src = JSON.parse(JSON.stringify(this.icon.src));\n if (this.newQuickInfoStyle || this.useQuickInfo) {\n this.mobileQuickInfoSrc = this.casinoLobbyService.getImagePath(this.game.gameId, 'square');\n }\n }\n if (this.game.fromCozybingo) {\n this.src = this.game['sitecoreInfo']['desktopImage']['src'];\n }\n const feature: any = this.configProviderService.provideFeaturesConfig();\n if (feature.enableGameIconTheming) {\n this.src = this.casinoStyles.appendTheme(this.src, this.game.gameId);\n this.mobileQuickInfoSrc = this.casinoStyles.appendTheme(this.mobileQuickInfoSrc, this.game.gameId);\n }\n }\n\n onGameIconError(): void {\n this.mobileQuickInfoSrc = this.defaultSrc;\n }\n\n setPlayNowBtnWidth(gameModel: any) {\n if (!gameModel || !gameModel.icon || this.enableUkMouseOverStyle) {\n this.playNowBtnWidth = 93;\n } else {\n const gameConfig: any = this.configProviderService.provideGameConfig();\n switch (gameConfig.iconTypeMapping[gameModel.icon]) {\n case gameConfig.iconTypeMapping[0]: {\n this.playNowBtnWidth = 93;\n break;\n }\n case gameConfig.iconTypeMapping[1]: {\n this.playNowBtnWidth = 93;\n break;\n }\n case gameConfig.iconTypeMapping[2]: {\n this.playNowBtnWidth = 60;\n break;\n }\n case gameConfig.iconTypeMapping[3]: {\n this.playNowBtnWidth = 93;\n break;\n }\n case gameConfig.iconTypeMapping[4]: {\n this.playNowBtnWidth = 90;\n break;\n }\n case gameConfig.iconTypeMapping[5]: {\n this.playNowBtnWidth = 65;\n break;\n }\n }\n }\n }\n\n quickInfoOverlayTopAllignment() {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition) {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n if (document.querySelector('.casino-lobby-container-main .casino-qi-overlay') as HTMLElement) {\n (document.querySelector('.casino-lobby-container-main .casino-qi-overlay') as HTMLElement).style.top =\n (document.querySelector('.content-messages-header-top .content-message-container') as HTMLElement).clientHeight + 'px';\n }\n if (document.querySelector('.casino-lobby-container-main .casino-qi-noverlay') as HTMLElement) {\n (document.querySelector('.casino-lobby-container-main .casino-qi-noverlay') as HTMLElement).style.top =\n (document.querySelector('.content-messages-header-top .content-message-container') as HTMLElement).clientHeight + 'px';\n }\n }\n }\n }\n\n appendQuickInfoQueryParameterToUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams?.isDll) {\n if (\n !(this.game.fromCasino != undefined && !this.game.fromCasino) &&\n this.game.gameContainer != 'Overlay' &&\n this.game.gameContainer != 'Widget'\n ) {\n const windowUrl: string = window.location.href;\n let pushStateUrl: string;\n let queryStrings: string = '';\n if (this.urlHasQueryStrings(windowUrl)) {\n pushStateUrl = windowUrl.substr(0, windowUrl.indexOf('?'));\n queryStrings = windowUrl.substr(windowUrl.indexOf('?'));\n } else {\n pushStateUrl = windowUrl;\n }\n if (this.isUrlEndsWithSlash(pushStateUrl)) {\n pushStateUrl = pushStateUrl + 'game-info/' + this.game.gameId;\n } else {\n pushStateUrl = pushStateUrl + '/game-info/' + this.game.gameId;\n }\n pushStateUrl = pushStateUrl + queryStrings;\n window.history.pushState(location.href, '', pushStateUrl);\n }\n }\n }\n\n isUrlEndsWithSlash(url: string): boolean {\n if (url.lastIndexOf('/') + 1 === url.length) {\n return true;\n }\n return false;\n }\n\n urlHasQueryStrings(url: string): boolean {\n if (url && url.indexOf('?') > -1) {\n return true;\n }\n return false;\n }\n\n ngOnDestroy() {\n if (this.freespinObservable) {\n this.freespinObservable.unsubscribe();\n this.destroy$.next();\n this.destroy$.complete();\n }\n }\n}\n\nexport function gameTileReduction(gameClass: string, overlayBgClass: string): void {\n if (document.querySelector('.click-interaction')) {\n const qiHoverDiv: any = document.querySelectorAll('.' + gameClass);\n if (qiHoverDiv.length > 0) {\n for (let i = 0; i < qiHoverDiv.length; i++) {\n const qiHoverContent: HTMLElement = qiHoverDiv[i].querySelector('.casino-lobby-container-main .casino-qi-container-d');\n const qiHoverOverlay: HTMLElement = qiHoverDiv[i].querySelector('.' + overlayBgClass);\n const qiImage: HTMLElement = qiHoverDiv[i].querySelector('.image-load-div');\n const gameTileFreespins: HTMLElement = qiHoverDiv[i].querySelector(\n '.casino-lobby-container-main .casino-qi-container-d .casino-freespins-alignment',\n );\n const newgridTileHover: HTMLElement = qiHoverDiv[i].querySelector('.image-section-newgrid');\n if (qiHoverContent && qiHoverOverlay && qiImage) {\n qiHoverDiv[i].onmousedown = function () {\n qiHoverContent.style.transform = 'scale(1)';\n qiHoverOverlay.style.transform = 'scale(1)';\n qiImage.style.transform = 'scale(1)';\n if (gameTileFreespins) {\n gameTileFreespins.style.top = '0';\n gameTileFreespins.style.right = '0';\n }\n if (newgridTileHover) {\n newgridTileHover.style.setProperty('--click-interaction-transform', 'scale(1)');\n }\n };\n qiHoverDiv[i].onmouseup = function () {\n qiHoverContent.style.transform = 'scale(1.07)';\n qiHoverOverlay.style.transform = 'scale(1.07)';\n qiImage.style.transform = 'scale(1.07)';\n if (gameTileFreespins) {\n gameTileFreespins.style.top = '0.25rem';\n gameTileFreespins.style.right = '0.25rem';\n }\n if (newgridTileHover) {\n qiHoverContent.style.transform = 'scale(1.05)';\n qiHoverOverlay.style.transform = 'scale(1)';\n qiImage.style.transform = 'scale(1.05)';\n newgridTileHover.style.setProperty('--click-interaction-transform', 'scale(1.05)');\n }\n };\n qiHoverDiv[i].onmouseover = function () {\n qiHoverOverlay.style.transform = 'scale(1.07)';\n qiImage.style.transform = 'scale(1.07)';\n if (newgridTileHover) {\n qiHoverOverlay.style.transform = 'scale(1)';\n qiImage.style.transform = 'scale(1.05)';\n newgridTileHover.style.setProperty('--click-interaction-transform', 'scale(1.05)');\n }\n };\n qiHoverDiv[i].onmouseout = function () {\n qiHoverOverlay.style.transform = 'scale(1)';\n qiImage.style.transform = 'scale(1)';\n };\n }\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { GameQuickInfoComponent } from '../game-quick-info/game-quick-info.component';\nimport { QuickInfoModalComponent } from '../quick-info-modal/quick-info-modal.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuickInfoService {\n dialogRef?: MatDialogRef;\n gamedialogRef?: MatDialogRef;\n constructor(private dialog: MatDialog) {}\n\n openQuickInfoDialog(requiredModalData: any) {\n const dialogRef = this.dialog.open(QuickInfoModalComponent, {\n width: '790px',\n data: requiredModalData,\n });\n this.dialogRef = dialogRef;\n dialogRef.afterClosed().subscribe(() => {\n this.dialogRef = undefined;\n });\n return dialogRef;\n }\n\n closeQuickInfoDialog(onCloseDialogData: any) {\n if (this.dialogRef) {\n this.dialogRef.close(onCloseDialogData);\n }\n }\n\n openGameQuickInfoDialog(requiredModalData: any) {\n const dialogRef = this.dialog.open(GameQuickInfoComponent, {\n data: requiredModalData,\n });\n this.gamedialogRef = dialogRef;\n dialogRef.afterClosed().subscribe(() => {\n this.gamedialogRef = undefined;\n });\n return dialogRef;\n }\n\n closeGameQuickInfoDialog() {\n if (this.gamedialogRef) {\n this.gamedialogRef.close();\n }\n }\n getQuickInfoGameTitle() {\n let gameTitle: string = '';\n if (this.dialogRef) {\n gameTitle = this.dialogRef.componentInstance.gameTitle;\n }\n return gameTitle;\n }\n}\n","
\n
\n
\n = 1 ? '14%' : '30%'\"\n [ngClass]=\"rewardDetails && rewardDetails.length >= 1 ? 'casino-height600' : 'casino-height450'\">\n
\n
\n
\n \"error\n
\n \n
\n
\n
\n
\n
\n
\n
\n
{{ gameProvider | uppercase }}
\n\n
\n
\n \"vendorLogo\"\n
\n
{{ provider | uppercase }}
\n\n
\n
\n
{{ reels }}
\n
\n {{ reelsTitle }}\n
\n
\n
\n
{{ payLines }}
\n
\n {{ payLinesTitle }}\n
\n
\n
\n
{{ returnToPlayer }}
\n
\n {{ returnToPlayerTitle }}\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n\n
\n \n\n @if (demoEnabled && demoEnabledForProvider && isTouch) {\n \n \n }\n\n \n\n \n \n
\n
\n \n
\n \n\n","import { NgClass, NgIf, NgStyle, UpperCasePipe } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport {\n CasinoCoreGamelaunchService,\n CasinoCoreNpmParamsService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n DesignSystemEnablerService,\n FavouriteService,\n FreespinSummaryService,\n GameDataManager,\n GameLaunch,\n JackpotDataService,\n OpenLoginDialog,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, GameTileCtaComponent } from '@frontend/casino-ui';\nimport { CookieService, DeviceService, DslService, DynamicHtmlDirective, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { FreeSpinsQuickInfoComponent } from '../freespins-summary/freespins-quick-info/freespins-quick-info.component';\nimport { LibMockService } from '../services/lib-mock.service';\nimport { QuickInfoService } from '../services/quick-info.service';\nimport { StickersJackpotComponent } from '../stickers-jackpot/stickers-jackpot.component';\n\n@Component({\n //moduleId: module.id,\n selector: 'cc-quick-info-modal',\n templateUrl: 'quick-info-modal.component.html',\n standalone: true,\n imports: [\n NgClass,\n StickersJackpotComponent,\n NgIf,\n DynamicHtmlDirective,\n NgStyle,\n FreeSpinsQuickInfoComponent,\n UpperCasePipe,\n GameTileCtaComponent,\n DecoratorClassDirective,\n ],\n})\nexport class QuickInfoModalComponent implements OnInit, AfterViewInit, OnDestroy {\n defaultSrc: string;\n isLaunchedFromUrl: any = false;\n game: any;\n gameTitle: string;\n src: any;\n gameProvider: any;\n provider: any;\n useFavouriteGames: boolean = false;\n cta: string;\n isTouch: boolean;\n isMobile: boolean;\n gamePosition: any;\n gameLaunchedFrom: any;\n categoryType: any;\n gameDescription: any = null;\n reelsTitle: string = '';\n payLinesTitle: string = '';\n returnToPlayerTitle: string = '';\n reels: any = null;\n payLines: any = null;\n returnToPlayer: any = null;\n jackpotValue: any = null;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n isFavourite: boolean = false;\n stickers: any = [];\n product: string = '';\n isHotJackpotGroup: boolean = false;\n jackpotData: any = null;\n vendorLogo: any = null;\n gridPosition: any;\n isStickersForUk: boolean = false;\n demoEnabledForProvider: boolean = true;\n demoEnabled: boolean;\n enableQuickInfoReels: boolean;\n demoLinkText: string;\n demoLinkTextColor: string;\n gameContainer: string;\n lobbyType: string;\n //Freespins\n showFreeSpinCount: boolean;\n enableFreeSpinSummary: boolean;\n enableFreeSpinsOnQuickInfo: boolean;\n freespinCountGame: any;\n freespinObservable: any;\n rewardIds: any[] = [];\n rewardDetails: any;\n favObs: Subscription;\n displayFavouritesOnPreLogin: boolean = true;\n gameHomeUrl: string;\n enableEpcotSubNavigation: boolean;\n isLegacy: boolean = false;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private user: UserService,\n private configProviderService: ConfigProviderService,\n private favouriteService: FavouriteService,\n private cookie: CookieService,\n private loginDialog: OpenLoginDialog,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private tracking: TrackingService,\n private casinoManager: CasinoManager,\n private gameDataManager: GameDataManager,\n private jackpotservice: JackpotDataService,\n private elementRef: ElementRef,\n private deviceService: DeviceService,\n private freespinSummaryService: FreespinSummaryService,\n private casinoNpmParamsService: CasinoCoreNpmParamsService,\n private quickInfoService: QuickInfoService,\n private libMockService: LibMockService,\n private dslService: DslService,\n private designSystemEnablerService: DesignSystemEnablerService,\n private casinoStyles: CasinoStylesService,\n ) {\n this.libMockService.setQuickInfoService(this.quickInfoService);\n }\n\n ngOnInit() {\n this.setLocalData();\n this.assignConfig();\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n if (this.data && this.data.product != '') {\n this.trackWidgetGames();\n }\n this.gameDataManager.getGameDescription(this.game.gameId, this.game.provider).subscribe((res) => {\n if (res) {\n this.gameDescription = res.gameDescription;\n this.reels = res.reels;\n this.payLines = res.payLines;\n this.returnToPlayer = res.returnToPlayer;\n }\n this.checkForAdjustment();\n });\n this.isTouch = this.casinoManager.isTouch();\n this.isMobile = this.deviceService.isMobilePhone;\n this.favObs = this.favouriteService.favouriteGamesFeedObservable.subscribe((favouriteGames: any) => {\n if (favouriteGames) {\n this.isFavourite = this.favouriteService.checkForFavouriteGame(this.game);\n }\n });\n if (\n this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed' &&\n this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites' &&\n this.data.moreInfoText\n ) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'load',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'moreinfo overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n this.isLaunchedFromUrl || this.appendQuickInfoQueryParameterToUrl();\n this.assignFeatures();\n this.isLegacy = !this.designSystemEnablerService.isEnabled();\n }\n assignFeatures() {\n const features: any = this.configProviderService.provideFeaturesConfig();\n const vendorsWithOnlyRealMode: any = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.game.lobbyType,\n this.configProviderService.provideGameConfig().vendorsWithOnlyRealModeLobbyType,\n );\n let demoModeExcludedGamesRegex = this.configProviderService.provideGameConfig().demoModeExcludedGamesRegex;\n demoModeExcludedGamesRegex = demoModeExcludedGamesRegex?.split(',');\n if (vendorsWithOnlyRealMode && vendorsWithOnlyRealMode.indexOf(this.provider) > -1) {\n this.demoEnabledForProvider = false;\n } else if (demoModeExcludedGamesRegex && demoModeExcludedGamesRegex.length > 0) {\n demoModeExcludedGamesRegex?.forEach((regex: any) => {\n if (new RegExp(regex, 'g').test(this.game.gameId)) {\n this.demoEnabledForProvider = false;\n }\n });\n }\n this.isStickersForUk = this.casinoManager.IsFeatureEnabledforLobbytype(this.game.lobbyType, features.stickersForUk);\n this.dslService.evaluateExpression(features.hideFavouritesOnPreLogin).subscribe((hideFavouritesOnPreLogin) => {\n if (hideFavouritesOnPreLogin && !this.user.isAuthenticated) {\n this.displayFavouritesOnPreLogin = false;\n }\n });\n }\n assignConfig() {\n const global = this.configProviderService.provideGlobalConfig();\n const gameConfig = this.configProviderService.provideGameConfig();\n const freespinsConfig = this.configProviderService.providefreeSpinsClientConfig();\n this.reelsTitle = global.messages.Reels;\n this.payLinesTitle = global.messages.PayLines;\n this.returnToPlayerTitle = global.messages.ReturnToPlayer;\n const subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n\n if (document.querySelector('.casino-qi-noverlay') as HTMLElement) {\n (document.querySelector('.casino-qi-noverlay') as HTMLElement).style.cssText = global.messages.quickInfoStyles;\n }\n if (\n global.lobbyConfigurations.FavouriteHeart === 'true' ||\n global.lobbyConfigurations.FavouriteHeart === 'True' ||\n global.lobbyConfigurations.FavouriteHeart === 'TRUE'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n const gameOwnerId = gameConfig.gameOwnerIdMap?.find((g: any) => g.gameId == this.game.gameId);\n this.vendorLogo =\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', 'vendorlogos').replace('{1}', gameOwnerId ? gameOwnerId?.ownerId : this.game.ownerId) +\n '.jpg';\n this.demoEnabled = gameConfig.enableDemoMode;\n this.enableQuickInfoReels = gameConfig.enableQuickInfoReels;\n this.demoLinkText = global.messages.DemoLinkText;\n this.demoLinkTextColor = global.messages.DemoLinkTextColor;\n\n this.enableFreeSpinSummary = freespinsConfig.isFreeSpinSummaryEnabled;\n this.enableFreeSpinsOnQuickInfo = freespinsConfig.isEnableFreeSpinsOnQuickInfo;\n if (this.enableFreeSpinSummary && this.enableFreeSpinsOnQuickInfo) {\n this.freespinObservable = this.freespinSummaryService.freeSpinsGameDetailsObser.subscribe((freespinsdata: any) => {\n if (freespinsdata) {\n this.bindFreeSpinInfo();\n }\n });\n }\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n }\n bindFreeSpinInfo() {\n this.setfreeSpinsCount(this.freespinSummaryService.getFreespinCountInfoForGame(this.game.gameId));\n }\n /*This is to set freespins count for the respective game*/\n setfreeSpinsCount(freespinsCountResponse: any) {\n this.freespinCountGame = freespinsCountResponse;\n if (this.freespinCountGame != undefined) {\n this.showFreeSpinCount = true;\n this.rewardIds = this.freespinCountGame.rewardIds;\n this.rewardDetails = this.freespinSummaryService.getFreeSpinRewardDetails(this.rewardIds);\n } else {\n this.showFreeSpinCount = false;\n }\n }\n ngAfterViewInit() {\n if (this.isStickersForUk) this.gameStickerStyleForUk();\n else this.gameStickerStyle();\n this.checkForAdjustment();\n }\n trackWidgetGames() {\n if (this.data && this.data.gameLaunchedFrom && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'Load',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'Load',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n }\n checkForAdjustment() {\n if (this.isTouch && this.deviceService.windowWidth() <= 480 && this.gameDescription) {\n const overlay = this.elementRef.nativeElement.querySelectorAll('.casino-qi-desktop-nrectangle');\n if (overlay.length > 0) overlay[0].style.top = '10%';\n }\n }\n setLocalData() {\n this.gameTitle = this.data.gameTitle;\n this.src = this.data.src;\n this.gameProvider = this.data.gameProvider;\n this.provider = this.data.provider;\n this.game = this.data.game;\n this.useFavouriteGames = this.data.useFavouriteGames;\n this.cta = this.data.cta;\n this.gamePosition = this.data.gamePosition;\n this.gameLaunchedFrom = this.data.gameLaunchedFrom;\n this.categoryType = this.data.categoryType;\n this.isLaunchedFromUrl = this.data.isLaunchedFromUrl;\n this.stickers = this.data.stickers;\n this.gridPosition = this.data.gridPosition;\n this.product = this.data.product;\n this.gameContainer = this.game.gameContainer;\n this.lobbyType = this.data.lobbyType;\n this.gameHomeUrl = this.data.gameHomeUrl;\n this.jackpotservice.jackpotFeedObservable.subscribe((_response: any) => {\n if (_response) {\n const jpFeed = _response.get(this.game.gameId);\n if (jpFeed) {\n this.jackpotData = jpFeed;\n this.jackpotValue = this.jackpotData.amount;\n this.isHotJackpotGroup = this.jackpotData.isHotJackpotGroup;\n }\n }\n });\n const feature: any = this.configProviderService.provideFeaturesConfig();\n if (feature.enableGameIconTheming) this.src = this.casinoStyles.appendTheme(this.src, this.game.gameId);\n }\n GameJackpotValue(game: any) {\n return this.jackpotservice.getGameJackpotValue(game.gameId);\n }\n closeModal($event: any = null): void {\n if ($event) {\n if (this.data && this.data.gameLaunchedFrom && this.data.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'Close Overlay - Gradient Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n } else {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'close',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'moreinfo overlay',\n 'component.URLClicked': 'not applicable',\n });\n }\n document.getElementsByTagName('html')[0].classList.remove('casino-quickinfo-open');\n $event && $event.stopImmediatePropagation();\n this.removeQuickInfoQueryParameterFromUrl();\n this.dialogRef.close();\n }\n isFavouriteGame(game: any) {\n return this.favouriteService.checkForFavouriteGame(game);\n }\n toggleFavourite(game: any, $event: any) {\n $event.stopImmediatePropagation();\n if (this.user.isAuthenticated) {\n if (\n this.data &&\n this.data.gameLaunchedFrom &&\n (this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed' ||\n this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavfromRpWidget(game);\n } else {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'games interaction',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': game.gameId,\n 'component.LocationEvent': 'more info overlay',\n 'component.EventDetails': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.URLClicked': 'not applicable',\n });\n }\n this.favouriteService.toggleGameFavourite(game);\n this.isFavourite = !this.isFavourite;\n } else {\n this.cookie.putObject('favouriteGame', game);\n this.closeModal();\n const loginResponseObj: any = {\n loginMessageKey: 'Favourite',\n };\n this.loginDialog.open(loginResponseObj);\n }\n }\n\n trackFavfromRpWidget(game: any) {\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': this.isFavouriteGame(game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n }\n gameStickerStyle() {\n const stickerStyle = this.configProviderService.provideGlobalConfig().messages.GameStickerStyle;\n const sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n }\n gameStickerStyleForUk() {\n const stickerStyle = this.configProviderService.provideGlobalConfig().messages.UkStickerStyle1;\n const sticker = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n const stickerStyle1 = this.configProviderService.provideGlobalConfig().messages.UkStickerStyle2;\n const sticker1 = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-1');\n for (let i = 0; i < sticker1.length; i++) {\n sticker1[i].style.cssText = stickerStyle1;\n }\n }\n launchGame(game: any, isDemo: boolean): void {\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n if (this.data && this.data.gameLaunchedFrom == 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo_Overlay',\n 'component.ActionEvent': 'CTA_Click',\n 'component.PositionEvent': this.game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.data.lobbyType,\n });\n }\n this.closeModal();\n const gameModel = new GameLaunch();\n gameModel.game = game;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.gamePosition;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = isDemo;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.gameLaunchedFrom;\n gameModel.gridPosition = this.gridPosition;\n gameModel.returnUrl = this.gameHomeUrl;\n gameModel.appendRUrlToLoginDialogWindow = true;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n appendQuickInfoQueryParameterToUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n if (this.gameContainer != 'Overlay' && this.gameContainer != 'Widget') {\n const currentUrl: string = window.location.href.substring(window.location.href.lastIndexOf('/'));\n const param = currentUrl.length > 1 ? '/game-info/' : 'game-info/';\n window.history.pushState(location.href, '', location.href + param + this.game.gameId);\n }\n }\n }\n onGameIconError(): void {\n this.src = this.defaultSrc;\n }\n removeQuickInfoQueryParameterFromUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n if (this.gameContainer != 'Overlay' && this.gameContainer != 'Widget') {\n const param = 'game-info';\n if (location.href.indexOf(param) > -1 && !document.getElementsByTagName('html')[0].classList.contains('casino-quickinfo-open')) {\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n }\n ngOnDestroy() {\n if (this.favObs) {\n this.favObs.unsubscribe();\n }\n if (this.freespinObservable) {\n this.freespinObservable.unsubscribe();\n }\n }\n}\n","\n \n \n\n
\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n
\n \n \n \n \n \"{{\n \"{{\n \n {{ game.jackpotValue }}\n
\n \n \n \n
\n \n \n \"{{\n \"{{\n \n \n {{ game.jackpotValue }}\n
\n
\n\n \n\n \n {{ moreInfo }}\n \n \n \n \"fast-loading-game-image\"\n \n \n {{ widgetRecommended }}\n \n \n {{ promotedGameText }}\n \n\n
\n \n
\n \n 0 &&\n !isLiveGame &&\n !isVideoLoaded &&\n game.iconType != '6' &&\n game.iconType != '-6' &&\n game.iconType != '7' &&\n game.iconType != '-7'\n \"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n \n \n \n 0 &&\n !isLiveGame &&\n !isVideoLoaded &&\n game.iconType != '6' &&\n game.iconType != '-6' &&\n game.iconType != '7' &&\n game.iconType != '-7'\n \"\n [ngClass]=\"{ 'stickers-uk': isStickersForUk }\">\n {{ sticker.value }}\n \n \n \n \n \n \n
\n {{ gameTitle }}\n \n \n \n
\n \n\n","import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n input,\n signal,\n} from '@angular/core';\n\nimport {\n CasinoCoreGamelaunchService,\n CasinoCoreNpmParamsService,\n CasinoLobbyService,\n CasinoManager,\n CasinoWidgetService,\n ConfigProviderService,\n FavouriteService,\n FreespinSummaryService,\n GameDataManager,\n GameLaunch,\n GameLobbyModel,\n GlobalTranslateComponent,\n ImageLoaderComponent,\n JackpotDataService,\n LiveCasinoService,\n OpenLoginDialog,\n QuickInfoModalService,\n Race,\n RecentGamesService,\n SlotRacesService,\n} from '@casinocore/platform/core';\nimport { CookieService, DeviceService, Logger, TimerService, TrackingService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { DestroyableDirective, InViewportAction, InViewportDirective } from 'ng-in-viewport';\nimport { Subscription, filter } from 'rxjs';\n\nimport { CasinoCoreLazyPlaceholderComponent } from '../casino-core-lazy-placeholder/casino-core-lazy-placeholder.component';\nimport { FreeSpinsSummaryComponent } from '../freespins-summary/freespins-summary.component';\nimport { GameQuickInfoComponent } from '../game-quick-info/game-quick-info.component';\nimport { LibMockService } from '../services/lib-mock.service';\nimport { QuickInfoService } from '../services/quick-info.service';\n\n@Component({\n selector: 'cc-game-lobby',\n templateUrl: 'gamelobby.component.html',\n standalone: true,\n imports: [\n DestroyableDirective,\n InViewportDirective,\n NgClass,\n NgStyle,\n NgIf,\n FreeSpinsSummaryComponent,\n GameQuickInfoComponent,\n CasinoCoreLazyPlaceholderComponent,\n ImageLoaderComponent,\n GlobalTranslateComponent,\n NgFor,\n ],\n})\nexport class GameLobbyComponent implements OnInit, AfterViewInit, DoCheck, OnChanges, OnDestroy {\n @Input() category: any;\n\n @Input()\n set game(value: GameLobbyModel) {\n this._game = value;\n // this.isFavouriteGame = this.favouriteService.checkForFavouriteGame(value);\n }\n\n get game(): GameLobbyModel {\n return this._game;\n }\n\n private _game: GameLobbyModel;\n\n // isFavouriteGame: boolean;\n\n @Input() radius: number;\n @Input() gamePosition: number;\n @Input() gameLaunchedFrom: string;\n @Input() gameModel: any;\n @Input() product: string = '';\n @Input() widgetFrameClr: string = '';\n @Input() gameIndex: any;\n @Input() lobbyType: string;\n isJackpotTile = input(false);\n\n unfinishedStyle: any;\n readonly isTouch = this.casinoManager.isTouch();\n useFavouriteGames: boolean;\n unfinishedBG: string;\n mouseHoveredOnGame: boolean = false;\n QuickInfoVisible: string = '';\n showJackpotOnGameTiles: any;\n jackpotHandle: any;\n showGameTitle: boolean;\n stickers: any = [];\n readonly liveGameInfo = signal(undefined);\n icon: any = { src: '' };\n quickInfoIcon: any = { src: '' };\n useQuickInfo: boolean;\n onMouseHover: boolean;\n onMouseLeave: boolean;\n onLivecasinoMouseHover: boolean;\n onLivecasinoMouseLeave: boolean;\n favouriteStyle: string = 'theme-favorite-i';\n unFavouriteStyle: string = 'theme-favorite';\n playNowHoverEffect: boolean = false;\n gameTitle: string;\n quickInfoScrollY: number = 0;\n enableTickingForJackpotOnGameTiles: boolean;\n newJackpotRibbonStyling: boolean;\n isStickersForUk: boolean;\n hotIcon: any;\n epcotHotIcon: any;\n enableHotIcon: boolean;\n isAnchorTagVisible: boolean;\n enableUkMouseOverStyle: boolean;\n currentWidth: any;\n currentLobbyType: string;\n isLiveGame: boolean;\n liveCasinoApiSubscriber: any;\n enableQuickInfoforLiveCasinoApi: boolean;\n enableFavouriteGamesforLiveCasinoApi: boolean;\n isLiveCasinoEnabled: boolean;\n isTableOnline: boolean;\n widgetRecommendedTxtClr: string;\n widgetRecommendedBgClr: string;\n widgetRecommended: string;\n isUnfinishedGame: boolean;\n moreInfo: string;\n Favourite: boolean;\n recentObs: any;\n optedIn: any;\n availableCount: any = 0;\n totalCount: any = 0;\n freespinCountGame: any;\n freespinObservable: any;\n showFreeSpinCount: boolean = false;\n enableFreeSpinSummary: boolean;\n demoEnabled: boolean;\n isSignPosting: boolean;\n stickerMap: any;\n promotedGameBackgroundColor: string;\n promotedGameTextColor: string;\n promotedGameText: string;\n gameContainerLocation: string;\n races: Race[] = [];\n isStickerEnabled: boolean;\n slotRacesStickerTimeOut: any;\n slotRacesStickerDataSubScription: Subscription;\n slotRacesConfig: boolean;\n globalConfig: any;\n videoUrl: string = '';\n gameVideoFormat: string = '';\n isVideoPreviewEnabled: boolean = false;\n positiveVideoIconType = '10';\n negativeVideoIconType = '-10';\n afterLoaded: boolean;\n enableEpcotSubNavigation: boolean;\n readonly isMobile = this.deviceService.isMobile;\n readonly isTablet = this.deviceService.isTablet;\n playVideoFromStart: any;\n setVideoPlayTimeoutint: any;\n isNewQuickInfoEnabled: boolean;\n displayRecenetWinners: boolean;\n recommendedGamesBackgroundColor: string;\n recommendedGamesFontColours: string;\n stickerKey: any = [];\n stickerStyles: any;\n enableStickerStyles: boolean;\n\n isVideoLoaded = false;\n isGameHover = false;\n isInViewport = false;\n gameVideoUrl: string;\n\n jpRibbonStyles: { jpBgColor: string; jpTextColor: string };\n\n constructor(\n private jackpotDataService: JackpotDataService,\n private user: UserService,\n private elementRef: ElementRef,\n private openLoginDialog: OpenLoginDialog,\n private favouriteService: FavouriteService,\n private cookie: CookieService,\n private gameDataManager: GameDataManager,\n private casinoManager: CasinoManager,\n private recentGamesService: RecentGamesService,\n private liveCasinoService: LiveCasinoService,\n private tracking: TrackingService,\n private casinoWidgetService: CasinoWidgetService,\n private freespinSummaryService: FreespinSummaryService,\n private configProviderService: ConfigProviderService,\n private casinoLobbyService: CasinoLobbyService,\n private deviceService: DeviceService,\n private casinoCoreGameLaunchService: CasinoCoreGamelaunchService,\n private slotRacesService: SlotRacesService,\n private timerService: TimerService,\n private casinoNpmParamsService: CasinoCoreNpmParamsService,\n private quickInfoService: QuickInfoService,\n private libMockService: LibMockService,\n private quickInfoModalService: QuickInfoModalService,\n private logger: Logger,\n private changeDetection: ChangeDetectorRef,\n private ngZone: NgZone,\n private strategy: RxStrategyProvider,\n ) {\n this.libMockService.setQuickInfoService(this.quickInfoService);\n this.user.events.pipe(filter((e) => e instanceof UserLoginEvent)).subscribe(() => {\n if (this.user.isAuthenticated && (this.isMobile || this.isTablet)) {\n localStorage.removeItem('isVideoEnded');\n localStorage.setItem('isVideoEnded', 'first');\n localStorage.removeItem('isVideoRunning');\n }\n });\n }\n\n ngDoCheck() {\n if (this.afterLoaded) {\n if (\n this.isVideoPreviewEnabled &&\n (this._game.iconType === this.positiveVideoIconType || this._game.iconType === this.negativeVideoIconType) &&\n (this.isMobile || this.isTablet) &&\n (localStorage.getItem('isVideoEnded') === 'first' ||\n (localStorage.getItem('isVideoEnded') &&\n JSON.parse(localStorage.getItem('isVideoEnded') || '').indexOf(this._game.gameId + this.category.categoryid) === -1)) &&\n !localStorage.getItem('isVideoRunning') &&\n this.isVideoLoaded\n ) {\n if (this.isInViewport) {\n localStorage.setItem('isVideoRunning', this.category.categoryid + this._game.gameId);\n this.logger.info('docheck', this._game.gameId);\n const video = this.elementRef.nativeElement?.querySelector('video');\n\n if (video) {\n video.style.backgroundImage = 'url(' + this._game?.icon?.src + ')';\n }\n setTimeout(() => {\n if (video) {\n if (this.playVideoFromStart) {\n video.currentTime = 0;\n video.play();\n this.isGameHover = true;\n } else {\n video.play();\n this.isGameHover = true;\n }\n }\n }, this.setVideoPlayTimeoutint);\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'Video Preview Game Tile',\n 'component.ActionEvent': 'autoplay',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.category.categoryname + '-' + this._game.name,\n 'component.EventDetails': 'game video preview play',\n 'component.URLClicked': 'not applicable',\n });\n }\n } else if (\n (this._game.iconType === this.positiveVideoIconType || this._game.iconType === this.negativeVideoIconType) &&\n (this.isMobile || this.isTablet) &&\n this.isVideoPreviewEnabled &&\n this.isGameHover &&\n this.isVideoLoaded &&\n localStorage.getItem('isVideoRunning')\n ) {\n if (!this.isInViewport) {\n this.elementRef.nativeElement.querySelector('video')?.pause();\n this.videoEnded();\n }\n }\n }\n }\n\n ngOnInit(): void {\n this.displayRecenetWinners = this.category?.sitecoreData?.displayRecentWinnersWidget;\n if (this.isMobile || this.isTablet) {\n localStorage.setItem('isVideoEnded', 'first');\n }\n this.currentLobbyType = this._game.lobbyType;\n this.assignFeatures();\n const featureConfig = this.configProviderService.provideFeaturesConfig();\n if (featureConfig.gameVideo && Boolean(JSON.parse(featureConfig?.gameVideo?.enabled?.toString()?.toLowerCase()))) {\n // some cases flag returning from dynacon as False\n this.gameVideoFormat = featureConfig.gameVideo.videoFormat;\n this.isVideoPreviewEnabled = true;\n }\n\n //TODO:liveCasinoApiConfig\n const liveCasinoConfig = this.configProviderService.provideLiveCasinoConfig();\n this.isLiveCasinoEnabled = this.casinoManager.IsFeatureEnabledforLobbytype(this._game.lobbyType, liveCasinoConfig.enableLobbyType);\n\n this.setStickers();\n this.checkforLatestStickers(this.recentGamesService.getrecentGames());\n if (this.isSignPosting && this._game.sticker && this._game.sticker.indexOf('LMS_LATEST') > -1) {\n this.recentObs = this.recentGamesService.recentGamesFeedObservable.subscribe((response) => {\n if (response) {\n this.checkforLatestStickers(response);\n }\n });\n }\n this.setGameIconSrc();\n this.setJackPotValue();\n this.subscribtToJackpotFeed();\n\n //TODO: liveCasinoApiConfig\n this.enableQuickInfoforLiveCasinoApi = liveCasinoConfig.enableQuickInfo;\n this.enableFavouriteGamesforLiveCasinoApi = liveCasinoConfig.enableFavouriteGames;\n this.liveCasinoApiSubscriber = this.liveCasinoService.liveGamesFeedObservable.subscribe((response) => {\n if (response && response.size >= 0) {\n this.setLiveGameInfo();\n }\n });\n this.setLiveGameInfo();\n this.enableFreeSpinSummary = this.configProviderService.providefreeSpinsClientConfig().isFreeSpinSummaryEnabled;\n if (this.enableFreeSpinSummary) {\n this.freespinObservable = this.freespinSummaryService.freeSpinsGameDetailsObser.subscribe((freespinsdata: any) => {\n if (freespinsdata) {\n this.bindFreeSpinInfo();\n }\n });\n }\n\n this.setGameTitle();\n this.gameContainerLocation = 'Widget|' + this.product;\n if (this.slotRacesConfig) {\n this.setSlotRaceStickers();\n }\n this.gameVideoUrl = this._game?.icon?.src?.substr(0, this._game?.icon?.src?.lastIndexOf('.')) + this.gameVideoFormat;\n }\n\n setFastLoading(fastLoadingGames: Map) {\n if (fastLoadingGames && fastLoadingGames.size > 0) {\n for (const val of fastLoadingGames) {\n if (val[0] == this._game.gameId) {\n this._game.isFastLoadingGame = true;\n break;\n }\n }\n }\n }\n\n assignFeatures() {\n const features: any = this.configProviderService.provideFeaturesConfig();\n const subnavConfig: any = this.configProviderService.provideSubNavigationConfig();\n this.enableEpcotSubNavigation = subnavConfig.enableEpcotSubNavigation;\n this.useFavouriteGames = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.favouriteGamesLobbyType);\n this.showGameTitle = features.showGameTitle;\n this.isStickersForUk = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.stickersForUk);\n this.playNowHoverEffect = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.playNowHoverEffect);\n this.useQuickInfo = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.enableQuickInfoLobbyType);\n this.isNewQuickInfoEnabled = this.casinoManager.IsFeatureEnabledforLobbytypeWithInvokerProduct(\n this.currentLobbyType,\n features.enableNewQuickInfoLobbyType,\n );\n this.isAnchorTagVisible = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.isAnchorTagVisibleOnQuickInfo);\n this.newJackpotRibbonStyling = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.newJackpotRibbonStyling);\n this.enableUkMouseOverStyle = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.enableUkMouseOverStyle);\n this.enableHotIcon = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.enableHotIcon);\n this.isSignPosting = this.casinoManager.IsFeatureEnabledforLobbytype(this.currentLobbyType, features.enableSignpostingSticker);\n const gameConfig: any = this.configProviderService.provideGameConfig();\n this.hotIcon = gameConfig.host + features.hotIconPath.hotIcon;\n this.epcotHotIcon = gameConfig.host + features.hotIconPath.epcotHotIcon;\n const jackpotData = this.configProviderService.provideJackpotConfig();\n this.showJackpotOnGameTiles = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.currentLobbyType,\n jackpotData.showJackpotOnGameTilesLobbyType,\n );\n this.enableTickingForJackpotOnGameTiles = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.currentLobbyType,\n jackpotData.enableJpTickingForLobbyType,\n );\n this.globalConfig = this.configProviderService.provideGlobalConfig();\n this.widgetRecommended = this.globalConfig.messages['WidgetRecommended'];\n this.widgetRecommendedTxtClr = this.globalConfig.messages['widgetRecommendedTxtclr'];\n this.widgetRecommendedBgClr = this.globalConfig.messages['widgetRecommendedBGclr'];\n this.promotedGameText = this.globalConfig.lobbyConfigurations['PromotedGamesText'];\n this.promotedGameBackgroundColor = this.globalConfig.lobbyConfigurations['promotedGamesFrameColor'];\n this.promotedGameTextColor = this.globalConfig.lobbyConfigurations['promotedGamesTextColor'];\n this.recommendedGamesBackgroundColor = this.globalConfig?.messages['RecommendedGamesBackground'];\n this.recommendedGamesFontColours = this.globalConfig?.messages['RecommendedGamesFontColour'];\n this.unfinishedBG = this.globalConfig.unfinishedStyle.unfinishedBackground\n ? this.globalConfig.unfinishedStyle.unfinishedBackground\n : 'transparent';\n if (\n this.globalConfig.lobbyConfigurations.FavouriteHeart &&\n this.globalConfig?.lobbyConfigurations?.FavouriteHeart?.toLowerCase() === 'true'\n ) {\n this.favouriteStyle = 'theme-heart-solid';\n this.unFavouriteStyle = 'theme-heart-outline';\n }\n const slotRaces: any = this.configProviderService.provideSlotRacesConfig();\n this.slotRacesConfig = slotRaces.enableSlotRacesStickers;\n const videoPreviewConfig = this.configProviderService.provideVideoPreviewConfig();\n this.playVideoFromStart = videoPreviewConfig.playVideoFromStart;\n this.setVideoPlayTimeoutint = videoPreviewConfig.setVideoPlayTimeoutint;\n this.enableStickerStyles = features.enableStickerStyles;\n }\n\n bindFreeSpinInfo() {\n this.setfreeSpinsCount(this.freespinSummaryService.getFreespinCountInfoForGame(this._game.gameId));\n }\n\n /*This is to set freespins count for the respective game*/\n setfreeSpinsCount(freespinsCountResponse: any) {\n this.freespinCountGame = freespinsCountResponse;\n if (this.freespinCountGame != undefined) {\n this.showFreeSpinCount = true;\n this.optedIn = this.freespinCountGame.optedIn;\n this.availableCount = this.freespinCountGame.availableCount;\n this.totalCount = this.freespinCountGame.totalCount;\n } else {\n this.showFreeSpinCount = false;\n }\n }\n\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.afterLoaded = true;\n }, 200);\n });\n if (this.isStickersForUk) {\n this.gameStickerStyleForUk();\n } else {\n this.gameStickerStyle();\n }\n }\n\n ngOnChanges() {\n this.currentLobbyType = this._game.lobbyType;\n this.assignFeatures();\n if (this.enableFreeSpinSummary) {\n this.bindFreeSpinInfo();\n }\n }\n\n assignRecommendedWidgetColors() {\n if (this.casinoWidgetService.isCasinoWidget()) {\n return 'gyml-frame-casinowidget';\n } else {\n return 'gyml-frame-casino';\n }\n }\n\n checkforLatestStickers(recentGames: any) {\n this.setStickers();\n if (this.stickers && this.stickers.length > 0) {\n this.stickers.forEach((item: any, i: number) => {\n if (item?.key?.indexOf('LMS_LATEST') > -1) {\n if (recentGames && recentGames.length > 0 && recentGames.indexOf(this.game.gameId) > -1) {\n this.stickers.splice(i, 1);\n } else {\n this.stickers[i].value = this.stickerMap.get(this.stickers[i].key);\n }\n this.stickers = Array.from(new Set(this.stickers));\n }\n });\n }\n this.casinoLobbyService.stickersDataSubject.next({ gameId: this._game.gameId, stickers: this.stickers || [] });\n }\n\n getStickerValues(keys: string[], map: any, isForUk: boolean): { key: string; value: string }[] {\n const size = map.size || 0;\n if (size <= 0 && !keys.length) {\n return [];\n }\n const stickerKeys = isForUk ? keys : [keys[0]];\n const values = stickerKeys.map((key) => ({ key, value: key === 'LMS_LATEST' ? key : map.get(key) }));\n return values.filter(({ value }) => !!value);\n }\n\n setStickers() {\n this.stickers = [];\n this.stickerMap = this.casinoLobbyService.getStickerMap(this.currentLobbyType);\n if (!this.game.sticker) {\n return;\n }\n if (this.game.sticker.indexOf('#') === -1 && this.stickerMap?.size > 0) {\n const stickerValue: string = this.game.sticker === 'LMS_LATEST' ? this.game.sticker : this.stickerMap.get(this.game.sticker);\n this.stickers = [{ key: this.game.sticker, value: stickerValue }];\n } else {\n const stickerKeys = this.game.sticker.split('#');\n this.stickers = this.getStickerValues(stickerKeys, this.stickerMap, this.isStickersForUk);\n }\n }\n\n ngOnDestroy() {\n if (this.jackpotHandle) {\n this.jackpotHandle.unsubscribe();\n }\n if (this.liveCasinoApiSubscriber) {\n this.liveCasinoApiSubscriber.unsubscribe();\n }\n if (this.recentObs) {\n this.recentObs.unsubscribe();\n }\n if (this.freespinObservable) {\n this.freespinObservable.unsubscribe();\n }\n if (this.slotRacesStickerTimeOut) {\n clearTimeout(this.slotRacesStickerTimeOut);\n }\n if (this.slotRacesStickerDataSubScription) {\n this.slotRacesStickerDataSubScription.unsubscribe();\n }\n }\n\n setGameTitle() {\n if (this._game) {\n this.gameTitle = this._game.name;\n }\n }\n\n mouseOver(hoveredgame: string) {\n if (!this.isJackpotTile()) {\n this.mouseHoveredOnGame = true;\n if (!(this.isMobile || this.isTablet) && this.mouseHoveredOnGame) {\n this.QuickInfoVisible = hoveredgame;\n if (this.isLiveGame) {\n if (this.isTableOnline) {\n this.onLivecasinoMouseHover = true;\n this.onLivecasinoMouseLeave = true;\n }\n } else if (this.enableUkMouseOverStyle || this.displayRecenetWinners) {\n this.onMouseHover = true;\n this.onMouseLeave = true;\n }\n }\n }\n }\n\n gameStickerStyle() {\n const global = this.configProviderService.provideGlobalConfig();\n const stickerStyle = global.messages.GameStickerStyle;\n const sticker: NodeListOf = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = stickerStyle;\n }\n }\n\n gameStickerStyleForUk() {\n const global = this.configProviderService.provideGlobalConfig();\n const sticker: NodeListOf = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-0');\n for (let i = 0; i < sticker.length; i++) {\n sticker[i].style.cssText = global.messages.UkStickerStyle1;\n }\n const stickerStyle1 = global.messages.UkStickerStyle2;\n const sticker1: NodeListOf = this.elementRef.nativeElement.querySelectorAll('.promo-text-badge-1');\n for (let i = 0; i < sticker1.length; i++) {\n sticker1[i].style.cssText = stickerStyle1;\n }\n }\n\n mouseLeave() {\n if (!(this.isMobile || this.isTablet)) {\n this.QuickInfoVisible = '';\n this.mouseHoveredOnGame = false;\n if (this.enableUkMouseOverStyle) {\n this.onMouseHover = false;\n this.onMouseLeave = false;\n }\n if (this.displayRecenetWinners) {\n this.onMouseHover = false;\n this.onMouseLeave = false;\n }\n if (this.isLiveGame) {\n this.onLivecasinoMouseHover = false;\n this.onLivecasinoMouseLeave = false;\n }\n }\n }\n\n hideQuickInfo() {\n window.scrollTo(0, this.quickInfoScrollY);\n this.removeQuickInfoQueryParameterFromUrl();\n }\n\n setJackPotValue() {\n const jackpotValue = this.jackpotDataService.getGameJackpotValue(this._game.gameId);\n const enableRibbonConfig = this.configProviderService.provideJackpotConfig().enableRibbonConfig;\n if (jackpotValue) {\n this._game.jackpotValue = jackpotValue.amount;\n this._game.isHotJackpotGroup = jackpotValue.isHotJackpotGroup;\n if (enableRibbonConfig) {\n this.jpRibbonStyles = this.jackpotDataService.getJackpotRibbonStyles(jackpotValue);\n }\n }\n }\n\n subscribtToJackpotFeed() {\n this.jackpotHandle = this.jackpotDataService.jackpotFeedObservable.subscribe(() => {\n this.setJackPotValue();\n });\n if (this.enableTickingForJackpotOnGameTiles) {\n this.jackpotDataService.jpTickingObservable.subscribe(() => {\n this.setJackPotValue();\n this.changeDetection.markForCheck();\n });\n }\n }\n\n toggleFavourite($event: MouseEvent) {\n $event.stopImmediatePropagation();\n if (this.user.isAuthenticated) {\n if (\n this.gameLaunchedFrom &&\n (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' || this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites')\n ) {\n this.trackFavfromRpWidget();\n }\n this.favouriteService.toggleGameFavourite(this._game);\n } else {\n this.cookie.putObject('favouriteGame', this._game);\n if (this.casinoWidgetService.isCasinoWidget()) {\n this.casinoWidgetService.postMessageToParent('UserAction', {\n promptLogin: true,\n loginMessageKey: 'Favourite',\n });\n return;\n }\n this.openLoginDialog.open({ loginMessageKey: 'Favourite' });\n }\n return;\n }\n\n trackFavfromRpWidget() {\n this.currentLobbyType = this._game.lobbyType;\n if (\n this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed' ||\n this.gameLaunchedFrom === 'rpWidgRecentlyPlayed_widget_FavouritesetFAV'\n ) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites',\n 'component.ActionEvent': this.isFavouriteGame(this.game) ? 'UnFavourited' : 'Favourited',\n 'component.PositionEvent': this._game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this.currentLobbyType,\n });\n }\n }\n\n isFavouriteGame(game: any) {\n return this.favouriteService.checkForFavouriteGame(game);\n }\n\n private getGameLaunch(from: string): GameLaunch {\n const gameConfig = this.configProviderService.provideGameConfig();\n this.demoEnabled = gameConfig.enableDemoMode;\n const gameModel = new GameLaunch();\n gameModel.game = this._game;\n gameModel.isTouch = this.isMobile || this.isTablet;\n gameModel.gamePosition = this.gamePosition;\n gameModel.categoryType = this.category.categoryid;\n gameModel.from = from;\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.gameLaunchedFrom;\n gameModel.gridPosition = this.category.categoryIndex;\n gameModel.gameContainer = this._game.gameContainer;\n gameModel.clickTimeStamp = this.casinoCoreGameLaunchService.currentTimeStamp();\n return gameModel;\n }\n\n action(from: string) {\n if (!this.isJackpotTile()) {\n this.strategy\n .schedule(\n () => {\n const gameModel = this.getGameLaunch(from);\n this.casinoCoreGameLaunchService.launchGame(gameModel);\n },\n {\n scope: this,\n },\n )\n .subscribe();\n }\n }\n\n setGameIconSrc() {\n if (this._game.isDataNotAvailable) {\n return;\n }\n if (this._game.icon && this._game.icon.src) {\n this.icon.src = this.quickInfoIcon.src = this._game.icon.src;\n } else {\n const gameConfig: any = this.configProviderService.provideGameConfig();\n const gameModel = this.category.gamesModel && this.category.gamesModel.filter((gameModel: any) => gameModel._game === this._game.gameId);\n if (gameModel && gameModel[0]) {\n const src =\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', this.gameDataManager.getGameIcon(gameModel[0])).replace('{1}', gameModel[0]._game) +\n '.' +\n this.gameDataManager.getGameFormat(gameModel[0]);\n this.icon.src = this.quickInfoIcon.src = src;\n } else {\n const src =\n gameConfig.host +\n gameConfig.gameIconTemplate.replace('{0}', this.gameDataManager.getGameIcon(this._game)).replace('{1}', this._game.gameId) +\n '.' +\n this.gameDataManager.getGameFormat(this._game.gameId);\n this.icon.src = this.quickInfoIcon.src = src;\n }\n }\n this.icon.gameTileBorderRadius = this._game.gameTileBorderRadius;\n this.icon.gameTileDropShadow = this._game.gameTileDropShadow;\n }\n\n displayQuickInfo($event: any) {\n this.quickInfoScrollY = window.pageYOffset;\n this.appendQuickInfoQueryParameterToUrl();\n document.getElementsByTagName('html')[0].classList.add('casino-quickinfo-open');\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_RecentlyPlayed') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'RecentlyPlayed_QuickInfo',\n 'component.ActionEvent': 'Info_click',\n 'component.PositionEvent': this._game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this._game.lobbyType,\n });\n }\n if (this.gameLaunchedFrom === 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'RecentlyPlayed_Widget',\n 'component.LabelEvent': 'Favourites_QuickInfo',\n 'component.ActionEvent': 'Info_click',\n 'component.PositionEvent': this._game.gameId + '_' + this.gamePosition,\n 'component.LocationEvent': this._game.lobbyType,\n });\n }\n\n if (this.gameLaunchedFrom != 'RecentlyPlayed_widget_RecentlyPlayed' && this.gameLaunchedFrom != 'RecentlyPlayed_widget_Favourites') {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'game interactions',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': 'bacon',\n 'component.EventDetails': 'more info icon',\n 'component.URLClicked': 'not applicable',\n });\n }\n if ($event) {\n $event.stopImmediatePropagation();\n }\n const requiredModalData = {\n game: this._game,\n gamePosition: this.gamePosition,\n gameLaunchedFrom: this.gameLaunchedFrom,\n categoryType: this.category.categoryid,\n icon: this.icon,\n stickers: this.stickers,\n gridPosition: this.category.categoryIndex,\n gameModel: this.gameModel,\n product: this.product,\n widgetFrameClr: this.widgetFrameClr,\n gameContainerLocation: this.gameContainerLocation + 'QuickInfo',\n lobbyType: this.currentLobbyType,\n moreInfoText: 'moreInfoEvent',\n quickInfoScrollY: this.quickInfoScrollY,\n };\n if (this.isNewQuickInfoEnabled) {\n this.quickInfoModalService.setQuickInfoModalData(requiredModalData);\n } else {\n const dialogRef = this.quickInfoService.openGameQuickInfoDialog(requiredModalData);\n dialogRef.afterClosed().subscribe(() => {\n this.hideQuickInfo();\n });\n }\n }\n\n appendQuickInfoQueryParameterToUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n if (\n !(this._game.fromCasino != undefined && !this._game.fromCasino) &&\n this._game.gameContainer != 'Overlay' &&\n this._game.gameContainer != 'Widget'\n ) {\n const windowUrl: string = window.location.href;\n let pushStateUrl: string;\n let queryStrings: string = '';\n if (this.urlHasQueryStrings(windowUrl)) {\n pushStateUrl = windowUrl.substr(0, windowUrl.indexOf('?'));\n queryStrings = windowUrl.substr(windowUrl.indexOf('?'));\n } else {\n pushStateUrl = windowUrl;\n }\n if (this.isUrlEndsWithSlash(pushStateUrl)) {\n pushStateUrl = pushStateUrl + 'game-info/' + this._game.gameId;\n } else {\n pushStateUrl = pushStateUrl + '/game-info/' + this._game.gameId;\n }\n pushStateUrl = pushStateUrl + queryStrings;\n window.history.pushState(location.href, '', pushStateUrl);\n }\n }\n }\n\n removeQuickInfoQueryParameterFromUrl() {\n const casinoNpmParams = this.casinoNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams && casinoNpmParams.isDll) {\n if (\n !(this._game.fromCasino != undefined && !this._game.fromCasino) &&\n this._game.gameContainer != 'Overlay' &&\n this._game.gameContainer != 'Widget'\n ) {\n const param = 'game-info';\n window.history.pushState(location.href, '', location.href.substr(0, location.href.indexOf(param) - 1));\n }\n }\n }\n\n setLiveGameInfo() {\n if (this._game && this._game.gameId) {\n this.liveGameInfo.set(this.liveCasinoService.getLiveGameLookUpInfo(this._game?.gameId?.toLowerCase()));\n }\n this.isLiveGame = !!this.liveGameInfo();\n if (this._game && this._game.gameId) {\n this.isTableOnline = this.liveCasinoService.isTableOnline(this._game?.gameId?.toLowerCase());\n }\n }\n\n onLiveCasinoTableTimerEnd(value: boolean) {\n if (value) {\n this.isTableOnline = value;\n }\n }\n\n isUrlEndsWithSlash(url: string): boolean {\n if (url.lastIndexOf('/') + 1 === url.length) {\n return true;\n }\n return false;\n }\n\n urlHasQueryStrings(url: string): boolean {\n if (url && url.indexOf('?') > -1) {\n return true;\n }\n return false;\n }\n\n setSlotRaceStickers() {\n this.slotRacesStickerDataSubScription = this.slotRacesService.stickerRacesData.subscribe((races) => {\n if (races.size > 0) {\n const racesDataObj = races.get(this._game.gameId);\n let expiryTime: number;\n if (racesDataObj) {\n this.isStickerEnabled = true;\n const stickerValue: string = racesDataObj.data.stickerText;\n if (stickerValue.length > 0) {\n this.stickers = [{ key: stickerValue, value: stickerValue }];\n }\n expiryTime = racesDataObj.data && racesDataObj.data.optinExpiryDate && racesDataObj.data.optinExpiryDate.getTime();\n if (!this.slotRacesStickerTimeOut && expiryTime > Date.now()) {\n this.slotRacesStickerTimeOut = this.timerService.setTimeout(() => {\n this.setStickers();\n this.slotRacesStickerTimeOut = null;\n }, expiryTime - Date.now());\n }\n }\n }\n });\n }\n\n GameEnter() {\n if (\n (this._game.iconType === this.positiveVideoIconType || this._game.iconType === this.negativeVideoIconType) &&\n !(this.isMobile || this.isTablet) &&\n this.isVideoPreviewEnabled\n ) {\n this.isGameHover = true;\n const video = this.elementRef.nativeElement?.querySelector('video');\n if (video) {\n video.currentTime = 0;\n video.play();\n }\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'Video Preview Game Tile',\n 'component.ActionEvent': 'hover',\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.category.categoryname + '-' + this._game.name,\n 'component.EventDetails': 'game video preview play',\n 'component.URLClicked': 'not applicable',\n });\n }\n }\n\n onLoadMetaData() {\n this.isVideoLoaded = true;\n }\n\n GameLeave() {\n if (\n (this._game.iconType === this.positiveVideoIconType || this._game.iconType === this.negativeVideoIconType) &&\n !(this.isMobile || this.isTablet) &&\n this.isVideoPreviewEnabled\n ) {\n if (this.isGameHover == true) {\n const videoLength: any = document.getElementById(this._game.gameId);\n this.isGameHover = false;\n this.isVideoLoaded = false;\n if (videoLength) {\n const videoTime = videoLength.duration - videoLength.currentTime;\n let videoPercentage = (100 * videoLength.currentTime) / videoLength.duration;\n if (videoLength.currentTime === 0) {\n videoPercentage = 0;\n }\n const actionEvent = videoLength.currentTime === 0 ? 'started' : videoTime === 0 ? 'ended' : 'inprogress';\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'Video Preview Game Tile',\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.category.categoryname + '-' + this._game.name,\n 'component.EventDetails': videoPercentage.toFixed() + '%-{' + videoLength.currentTime + '} secs',\n 'component.URLClicked': 'not applicable',\n });\n }\n }\n }\n }\n\n playbackFailed() {\n this.videoEnded();\n }\n\n videoEnded() {\n const id = this._game.gameId + this.category?.categoryid;\n this.isGameHover = false;\n if (this.isMobile || this.isTablet) {\n const videoLength: any = document.getElementById(this._game.gameId);\n this.logger.info(videoLength.duration, videoLength.currentTime);\n if (videoLength) {\n const videoTime = videoLength.duration - videoLength.currentTime;\n let videoPercentage = (100 * videoLength.currentTime) / videoLength.duration;\n if (videoLength.currentTime === 0) {\n videoPercentage = 0;\n }\n const actionEvent = videoLength.currentTime === 0 ? 'started' : videoTime === 0 ? 'ended' : 'inprogress';\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'Video Preview Game Tile',\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.category.categoryname + '-' + this._game.name,\n 'component.EventDetails': videoPercentage.toFixed() + '%-{' + videoLength.currentTime + '} secs',\n 'component.URLClicked': 'not applicable',\n });\n }\n if (localStorage.getItem('isVideoEnded') && localStorage.getItem('isVideoEnded') != 'first') {\n const games = JSON.parse(localStorage.getItem('isVideoEnded') || '');\n games.push(id);\n localStorage.setItem('isVideoEnded', JSON.stringify(games));\n } else {\n localStorage.setItem('isVideoEnded', JSON.stringify([id]));\n }\n localStorage.removeItem('isVideoRunning');\n }\n }\n\n videoDesktopEnded() {\n this.isGameHover = false;\n this.isVideoLoaded = false;\n const videoLength: any = document.getElementById(this._game.gameId);\n if (videoLength) {\n const videoTime = videoLength.duration - videoLength.currentTime;\n let videoPercentage = (100 * videoLength.currentTime) / videoLength.duration;\n if (videoLength.currentTime === 0) {\n videoPercentage = 0;\n }\n const actionEvent = videoLength.currentTime === 0 ? 'started' : videoTime === 0 ? 'ended' : 'inprogress';\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'games',\n 'component.LabelEvent': 'Video Preview Game Tile',\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': this.gamePosition,\n 'component.LocationEvent': this.category.categoryname + '-' + this._game.name,\n 'component.EventDetails': videoPercentage.toFixed() + '%-{' + videoLength.currentTime + '} secs',\n 'component.URLClicked': 'not applicable',\n });\n }\n }\n\n inViewportAction(action: InViewportAction): void {\n this.isInViewport = action.visible;\n localStorage.removeItem('isVideoEnded');\n localStorage.setItem('isVideoEnded', 'first');\n }\n\n gameMouseDown(event: any) {\n if (document.querySelector('.click-interaction')) {\n event.target.style.transform = 'scale(0.98)';\n }\n }\n\n gameMouseUp(event: any) {\n if (document.querySelector('.click-interaction')) {\n event.target.style.transform = 'scale(1)';\n }\n }\n\n @HostListener('window:orientationchange', ['$event'])\n onOrientationChange() {\n if (this.isGameHover) {\n this.isGameHover = false;\n }\n localStorage.removeItem('isVideoRunning');\n localStorage.removeItem('isVideoEnded');\n localStorage.setItem('isVideoEnded', 'first');\n }\n\n getStickerColor = (index: number) =>\n this.isStickersForUk\n ? index % 2 === 0\n ? this.globalConfig.stickerStyles.UkStickerStyle1\n : this.globalConfig.stickerStyles.UkStickerStyle2\n : this.globalConfig.stickerStyles.GameStickerStyle;\n getStyles(sticker: any, index: number) {\n this.stickerKey = Object.keys(this.globalConfig.stickerStyles);\n if (this.stickerKey.includes(sticker)) {\n this.stickerStyles = this.globalConfig.stickerStyles[sticker];\n } else if (this.isStickersForUk) {\n if (!this.stickerKey.includes(sticker) && index % 2 === 0) {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle1;\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.UkStickerStyle2;\n }\n } else {\n this.stickerStyles = this.globalConfig.stickerStyles.GameStickerStyle;\n }\n return this.stickerStyles;\n }\n}\n","\n\n
\n \n @for (game of newFeatureGridArr$ | async; let i = $index; track game.gameId) {\n \n
\n \n
\n
\n }\n \n
\n\n\n 0\"\n [class.jackpot-justify-center-icon-7-xs]=\"jackpot_justify_center_icon_7_xs()\"\n [class.jackpot-justify-center-icon-7-sm]=\"jackpot_justify_center_icon_7_sm()\"\n [class.casino-newgridtypesicon6]=\"subcategory().isIconSixCategory\"\n [class.casino-newgridtypes]=\"subcategory().isIconSevenCategory\"\n [class.ngu-touch-scrollable-games]=\"isTouch()\">\n \n \n @for (game of gameArr.games; track game.gameId; let i = $index) {\n \n
\n \n
\n
\n }\n
\n
\n \n \n\n\n\n\n @for (game of games$ | async; let i = $index; track game.gameId) {\n
\n
\n \n \n \n \n \n
\n
\n }\n\n","import { AsyncPipe, NgClass, NgIf, SlicePipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n OnInit,\n Output,\n ViewChild,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\nimport { CasinoManager, ConfigProviderService, ConstService } from '@casinocore/platform/core';\nimport { DeviceService, ResizeObserverService } from '@frontend/vanilla/core';\nimport {\n NguCarousel,\n NguCarouselConfig,\n NguCarouselDefDirective,\n NguCarouselNextDirective,\n NguCarouselPrevDirective,\n NguCarouselStore,\n NguItemComponent,\n} from '@ngu/carousel';\nimport { RxLet } from '@rx-angular/template/let';\nimport { isEqual } from 'lodash-es';\nimport { filter, of, take, timer } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { GameLobbyComponent } from '../gamelobby/gamelobby.component';\n\n@Component({\n selector: 'cc-feature-grid',\n templateUrl: 'feature-grid.component.html',\n standalone: true,\n imports: [\n NgIf,\n MatGridListModule,\n NgClass,\n GameLobbyComponent,\n SlicePipe,\n NguCarouselDefDirective,\n NguCarouselNextDirective,\n NguCarouselPrevDirective,\n NguItemComponent,\n NguCarousel,\n AsyncPipe,\n RxLet,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n }\n\n .game {\n height: 100%;\n }\n `,\n ],\n})\nexport class FeatureGridComponent implements AfterViewInit, OnInit {\n private resizeObserver = inject(ResizeObserverService);\n private elementRef = inject>(ElementRef);\n isJackpotTile = input(false);\n _games = input.required({ alias: 'games' });\n games = computed(() => {\n const games = this._games();\n this.setInfoClassIconForGames(games);\n return games;\n });\n subcategory = input.required();\n rowCount = computed(() => this.subcategory()?.rowCount || 0);\n isTouch = input(false);\n _Type = input.required({ alias: 'Type' });\n Type = computed(() => {\n if (this._Type() == 'scrollable-games' && this.isTouch() && this.subcategory().categoryWithMultipleGameIconTypes) {\n return 'scrollable-games-multiple-icons';\n }\n return this._Type();\n });\n EnableFutureGrid = input(true);\n gameLaunchedFrom = input('');\n lobbyType = input('');\n changeCarouselView = input(false);\n _newFeatureGridArr = input.required({ alias: 'newFeatureGridArr' }); //Game array\n newFeatureGridArr = computed(() => this._newFeatureGridArr() ?? this.games());\n visibleNewFeatureGridArr = computed(() => this.newFeatureGridArr().slice(0, this.currentIndex()));\n newFeatureGridArr$ = toObservable(this.visibleNewFeatureGridArr);\n breakpoint = computed(() => this.computeBreakpoint());\n\n @ViewChild('desktopGamesCarousel') desktopGamesCarousel: NguCarousel;\n @ViewChild('mobileGamesCarousel') mobileGamesCarousel: NguCarousel;\n\n gridContainerWidth = toSignal(this.resizeObserver.observe(this.elementRef).pipe(map((rect) => rect.contentBoxSize[0].inlineSize)), {\n initialValue: this.deviceService.isMobileWidth() ? this.deviceService.windowWidth() - 20 : Math.min(1210, this.deviceService.windowWidth()),\n });\n\n /* we need to keep this config mutable as NguCarousel mutates it */\n private defaultCarouselConfig = {\n grid: { xs: 3, sm: 6, md: 6, lg: 6, all: 0 },\n slide: 6,\n speed: 400,\n point: {\n visible: false,\n },\n loop: false,\n touch: false,\n };\n carouselConfigNonTouch = computed(\n () => {\n return this.computeCarouselGrid(this.defaultCarouselConfig);\n },\n /* we need to keep this config mutable as NguCarousel mutates it */\n { equal: isEqual },\n );\n width = computed(() => {\n if ((this.rowCount() === '1' || this.rowCount() === '2') && this.isTouch()) {\n const width = this.deviceService.windowWidth();\n if (width <= 320) {\n return 2.4 * width;\n } else if (width <= 480) {\n return 2.4 * width;\n } else if (width < 625) {\n return 1.72 * width;\n } else if (width < 768) {\n return 1.33 * width;\n } else if (width < 1000) {\n return 1.33 * width;\n } else if (width < 1360) {\n return 27 + width;\n } else {\n return 37 + width;\n }\n }\n return null;\n });\n featureGridHeightTimeout = computed(() => {\n const modularConfig = this.configProviderService.provideModularSettingsConfig();\n return this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType(), modularConfig.featuredGridSetHeightTimeOut) || 100;\n });\n height = toSignal(\n toObservable(\n computed(() => {\n // just a trigger code\n if (this.deviceService.windowWidth()) {\n return (this.rowCount() === '1' || this.rowCount() === '2') && this.isTouch();\n } else {\n return 500;\n }\n }),\n ).pipe(\n switchMap((shouldCalculateOrHeight) => {\n if (shouldCalculateOrHeight === true) {\n return timer(this.featureGridHeightTimeout()).pipe(\n map(() => {\n const element = document.getElementById('heightFix-' + this.subcategory().categoryid + '-' + this.games()[0].gameId);\n if (element) {\n if (\n this.games()[0].iconType === '1' ||\n this.games()[0].iconType === '2' ||\n this.games()[0].iconType === '6' ||\n this.games()[0].iconType === '7'\n ) {\n return element.clientHeight * 2 + 20;\n } else {\n return element.clientHeight + 20;\n }\n }\n return null;\n }),\n );\n } else if (shouldCalculateOrHeight === false) {\n return of(null);\n } else {\n return of(shouldCalculateOrHeight);\n }\n }),\n ),\n { initialValue: null },\n );\n currentIndex = computed(() => this.computeCurrentIndex());\n isLastCarousel = signal(false);\n isPreButtonVisible = signal(true);\n isNextButtonVisible = computed(() => {\n if (this.isLastCarousel()) {\n return true;\n }\n if (this.games() && this.games().length) {\n return !(\n (this.rowCount() === '-1' || this.rowCount() === '-2' || this.rowCount() === '-3') &&\n this.games().length > this.carouselConfigNonTouch().grid.lg * Math.abs(this.rowCount())\n );\n } else {\n return true;\n }\n });\n isIconSevenCategory = computed(() => !!this.subcategory()?.isIconSevenCategory);\n gutterSize = computed(() => (this.isIconSevenCategory() ? '3px' : '0px'));\n rowHeight = computed(() => (this.isIconSevenCategory() ? '112' : '1:1'));\n @Output() loadNextGames: EventEmitter = new EventEmitter(true);\n @Output() carouselDataEvent: EventEmitter = new EventEmitter();\n jackpot_justify_center_icon_7_xs = computed(\n () =>\n this.games().length === 1 &&\n this.subcategory().isIconSevenCategory &&\n this.gameLaunchedFrom() === `JackpotWidget_${this.subcategory().engCategoryName}`,\n );\n jackpot_justify_center_icon_7_sm = computed(\n () =>\n this.games().length === 2 &&\n this.subcategory().isIconSevenCategory &&\n this.gameLaunchedFrom() === `JackpotWidget_${this.subcategory().engCategoryName}`,\n );\n\n unscrollableHeight = computed(() => {\n if (this.Type() === 'unscrollable-games' && this.height() == null) {\n const cols = this.breakpoint();\n const rowHeight = this.rowHeight();\n const tiles = this.visibleNewFeatureGridArr().reduce((totalTiles, game) => {\n const gameTiles = game.colSpan * game.rowSpan;\n return totalTiles + gameTiles;\n }, 0);\n const rows = Math.ceil(tiles / cols);\n\n if (rowHeight === '1:1') {\n const windowWidth = this.gridContainerWidth();\n const widthPerCol = windowWidth / cols;\n return rows * widthPerCol;\n } else {\n return rows * parseInt(rowHeight);\n }\n }\n return null;\n });\n\n scrollableMultipleIconsHeight = computed(() => {\n if (this.Type() === 'scrollable-games-multiple-icons' && this.isTouch()) {\n const windowWidth = this.deviceService.windowWidth();\n // values based on homelobby.scss .scrollable-games-multiple-icons rules\n let ratio = 0.18;\n if (windowWidth < 1024) {\n if (windowWidth >= 640) {\n ratio = 0.223;\n } else {\n ratio = 0.4;\n }\n }\n return this.gridContainerWidth() * ratio;\n }\n return null;\n });\n\n games$ = toObservable(this.games);\n\n resetDesktopCarousel$ = toObservable(\n computed(() => this.subcategory()?.categoryid?.toLowerCase() === ConstService.FAVOURITE_GAMES_CATEGORY_ID && this.games()?.length > 0),\n ).pipe(take(1), filter(Boolean));\n\n readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private configProviderService: ConfigProviderService,\n private casinoManager: CasinoManager,\n private deviceService: DeviceService,\n ) {}\n\n ngOnInit() {\n this.loadNextGames.emit();\n if (this.changeCarouselView() && !this.isTouch()) {\n this.emitCarouselData();\n }\n }\n\n ngAfterViewInit() {\n this.resetDesktopCarousel$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.desktopGamesCarousel?.moveTo(0);\n });\n }\n\n onmoveFn(data: NguCarouselStore) {\n this.isPreButtonVisible.set(data.isFirst);\n this.isLastCarousel.set(data.isLast);\n if (this.changeCarouselView() && !this.isTouch()) {\n this.emitCarouselData();\n }\n }\n\n prevItem() {\n this.desktopGamesCarousel.moveTo(this.desktopGamesCarousel.activePoint - 1);\n }\n\n nextItem() {\n this.desktopGamesCarousel.moveTo(this.desktopGamesCarousel.activePoint + 1);\n }\n\n emitCarouselData() {\n const data: any = {\n showArrows: this.Type() === 'scrollable-games' && !(this.isPreButtonVisible() && this.isNextButtonVisible()),\n disablePrev: this.isPreButtonVisible(),\n disableNext: this.isNextButtonVisible(),\n };\n this.carouselDataEvent.emit(data);\n }\n\n getClassByicon(game: any) {\n if (game && game.iconType && this.EnableFutureGrid()) {\n return 'icon-' + game.iconType;\n } else if (\n game &&\n game.iconType &&\n (this.gameLaunchedFrom() === 'JackpotWidget_' + this.subcategory().engCategoryName || 'MustGoJackpot_' + this.subcategory().categoryid)\n ) {\n return 'icon-' + game.iconType;\n } else {\n return 'icon-1';\n }\n }\n\n private setInfoClassIconForGames(gamesArr: any[]) {\n if (gamesArr && gamesArr.length > 0) {\n const isFromJackpot = this.gameLaunchedFrom() && this.gameLaunchedFrom()?.toLowerCase().indexOf('jackpotwidget') > -1;\n for (let i = 0; i < gamesArr.length; i++) {\n const iconType = isFromJackpot ? '1' : gamesArr[i].iconType;\n const currentWidth = this.deviceService.windowWidth();\n gamesArr[i].infoIconClass = this.casinoManager.assignGameClass(currentWidth, iconType);\n }\n }\n }\n\n private computeBreakpoint(): number {\n const width = this.deviceService.windowWidth();\n let breakpoint = 0;\n if ((this.rowCount() === '1' || this.rowCount() === '2') && this.isTouch()) {\n breakpoint = 6;\n } else {\n if (this.subcategory().isIconSevenCategory) {\n if ((this.rowCount() === '1' || this.rowCount() === '2') && !this.isTouch()) {\n breakpoint = 8;\n } else if (width < 568) {\n breakpoint = 2;\n } else if (width < 1024) {\n breakpoint = 4;\n } else {\n breakpoint = 8;\n }\n } else if (this.subcategory().isIconSixCategory) {\n if (width < 568) {\n breakpoint = 3;\n } else if (width < 768) {\n breakpoint = 4;\n } else {\n breakpoint = 6;\n }\n } else if (width < 375) {\n breakpoint = 2;\n } else if (width <= 480 && window.matchMedia('(orientation:portrait)').matches) {\n breakpoint = this.casinoManager.IsFeatureEnabledforLobbytype(\n this.lobbyType(),\n this.configProviderService.provideFeaturesConfig().matGridColCountForLobbyType,\n );\n } else if (width < 568) {\n breakpoint = 3;\n } else if (width < 768) {\n breakpoint = 4;\n } else {\n breakpoint = 6;\n }\n }\n return breakpoint;\n }\n\n private computeCurrentIndex() {\n let currentSlideCount = 12;\n let currentIndex = 1;\n if (this.rowCount() === '1' || this.rowCount() === '2') {\n for (let i = 0; i < this.games().length; i++) {\n if (currentSlideCount > 0) {\n const game = this.games()[i];\n if (game.iconType == '1') {\n currentSlideCount = currentSlideCount - 1;\n } else if (game.iconType == '2') {\n currentSlideCount = currentSlideCount - 2;\n } else if (game.iconType == '3') {\n currentSlideCount = currentSlideCount - 2;\n } else if (game.iconType == '4') {\n currentSlideCount = currentSlideCount - 4;\n } else if (game.iconType == '6') {\n currentSlideCount = currentSlideCount - 1;\n } else if (game.iconType == '7') {\n if (this.isTouch()) {\n currentSlideCount = currentSlideCount - 2;\n } else {\n currentSlideCount = currentSlideCount - 1.5;\n }\n } else if (game.iconType == '10') {\n currentSlideCount = currentSlideCount - 4;\n } else {\n if (this.isTouch()) {\n currentSlideCount = currentSlideCount - 4;\n } else {\n currentSlideCount = currentSlideCount - 6;\n }\n }\n currentIndex = i + 1;\n }\n }\n } else {\n currentIndex = this.isJackpotTile() ? this.games().length : (this.subcategory()?.gamelist?.length ?? 1);\n }\n return currentIndex;\n }\n\n private computeCarouselGrid(config: NguCarouselConfig): NguCarouselConfig {\n if (this.subcategory()?.isIconSevenCategory) {\n config.grid = { xs: 1, sm: 2, md: 4, lg: 4, all: 0 };\n }\n\n if (this.games()?.length > 0 && !this.isTouch() && this.EnableFutureGrid()) {\n switch (this.games()[0].iconType) {\n case '1':\n case '3':\n config.grid.sm = 3;\n config.grid.md = 6;\n config.grid.lg = 6;\n break;\n case '2':\n case '4':\n config.grid.sm = 3;\n config.grid.md = 3;\n config.grid.lg = 3;\n break;\n case '5':\n config.grid.sm = 2;\n config.grid.md = 2;\n config.grid.lg = 2;\n break;\n case '7':\n config.grid.xs = 1;\n config.grid.sm = 2;\n config.grid.md = 4;\n config.grid.lg = 4;\n break;\n case '10':\n config.grid.sm = 3;\n config.grid.md = 3;\n config.grid.lg = 3;\n break;\n default:\n config.grid.sm = 3;\n config.grid.md = 6;\n config.grid.lg = 6;\n }\n } else if (\n this.games()?.length > 0 &&\n this.isTouch() &&\n (this.EnableFutureGrid() ||\n this.gameLaunchedFrom() === 'JackpotWidget_' + this.subcategory().engCategoryName ||\n 'MustGoJackpot_' + this.subcategory().categoryid)\n ) {\n switch (this.games()[0].iconType) {\n case '1':\n case '3':\n case '6':\n config.grid.xs = 2.5;\n config.grid.sm = 4.5;\n config.grid.md = 5.5;\n config.grid.lg = 5.5;\n if (this.deviceService.windowWidth() > 586 && this.deviceService.windowWidth() < 768) {\n config.grid.xs = 4.5;\n }\n break;\n case '2':\n case '4':\n case '10':\n case '5':\n config.grid.xs = 1.3;\n config.grid.sm = 2.3;\n config.grid.md = 2.7;\n config.grid.lg = 2.7;\n if (this.deviceService.windowWidth() > 586 && this.deviceService.windowWidth() < 768) {\n config.grid.xs = 2.3;\n }\n break;\n case '7':\n config.grid.xs = 1.2;\n config.grid.sm = 2.2;\n config.grid.md = 2.3;\n config.grid.lg = 2.3;\n if (this.deviceService.windowWidth() > 586 && this.deviceService.windowWidth() < 768) {\n config.grid.xs = 2.2;\n }\n break;\n default:\n config.grid.xs = 2.5;\n config.grid.sm = 4.5;\n config.grid.md = 5.5;\n config.grid.lg = 5.5;\n }\n }\n return config;\n }\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, PLATFORM_ID, Component, Inject, Input, Output, ViewChild, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nconst _c0 = [\"streamEl\"];\nlet CloudflareStreamService = /*#__PURE__*/(() => {\n class CloudflareStreamService {\n constructor() {}\n }\n CloudflareStreamService.ɵfac = function CloudflareStreamService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamService)();\n };\n CloudflareStreamService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CloudflareStreamService,\n factory: CloudflareStreamService.ɵfac,\n providedIn: 'root'\n });\n return CloudflareStreamService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * We have to export this interface so the module can be compiled\n * with the AOT flag enabled.\n *\n * https://github.com/angular/angular/issues/14050\n */\nlet DocumentWrapper = /*#__PURE__*/(() => {\n class DocumentWrapper {\n get nativeDocument() {\n return document;\n }\n }\n DocumentWrapper.ɵfac = function DocumentWrapper_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DocumentWrapper)();\n };\n DocumentWrapper.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DocumentWrapper,\n factory: DocumentWrapper.ɵfac\n });\n return DocumentWrapper;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getDocumentWrapper() {\n return new DocumentWrapper();\n}\nconst propertyProps = ['autoplay', 'controls', 'currentTime', 'primaryColor', 'muted', 'loop', 'volume', 'preload', 'defaultTextTrack'];\nlet CloudflareStreamComponent = /*#__PURE__*/(() => {\n class CloudflareStreamComponent {\n constructor(renderer2, doc, platformId) {\n this.renderer2 = renderer2;\n this.doc = doc;\n this.platformId = platformId;\n // tslint:disable: no-output-native\n /**\n * Sent when playback is aborted; for example, if the media is playing and is restarted from the beginning, this event is sent.\n */\n this.abort = new EventEmitter();\n /**\n * Sent when enough data is available that the media can be played, at least for a couple of frames.\n */\n this.canplay = new EventEmitter();\n /**\n * Sent when the entire media can be played without interruption, assuming the download rate remains at least at the current level. It will also be fired when playback is toggled between paused and playing. Note: Manually setting the currentTime will eventually fire a canplaythrough event in firefox. Other browsers might not fire this event.\n */\n this.canplaythrough = new EventEmitter();\n /**\n * The metadata has loaded or changed, indicating a change in duration of the media. This is sent, for example, when the media has loaded enough that the duration is known.\n */\n this.durationchange = new EventEmitter();\n /**\n * Sent when playback completes.\n */\n this.ended = new EventEmitter();\n /**\n * Sent when an error occurs. (e.g. the video has not finished encoding yet, or the video fails to load due to an incorrect signed URL)\n */\n this.error = new EventEmitter();\n /**\n * The first frame of the media has finished loading.\n */\n this.loadeddata = new EventEmitter();\n /**\n * The media’s metadata has finished loading; all attributes now contain as much useful information as they’re going to.\n */\n this.loadedmetadata = new EventEmitter();\n /**\n * Sent when loading of the media begins.\n */\n this.loadstart = new EventEmitter();\n /**\n * Sent when the playback state is changed to paused (paused property is true).\n */\n this.pause = new EventEmitter();\n /**\n * Sent when the playback state is no longer paused, as a result of the play method, or the autoplay attribute.\n */\n this.play = new EventEmitter();\n /**\n * Sent when the media has enough data to start playing, after the play event, but also when recovering from being stalled, when looping media restarts, and after seeked, if it was playing before seeking.\n */\n this.playing = new EventEmitter();\n /**\n * Sent periodically to inform interested parties of progress downloading the media. Information about the current amount of the media that has been downloaded is available in the media element’s buffered attribute.\n */\n this.progress = new EventEmitter();\n /**\n * Sent when the playback speed changes.\n */\n this.ratechange = new EventEmitter();\n /**\n * Sent when a seek operation completes.\n */\n this.seeked = new EventEmitter();\n /**\n * Sent when a seek operation begins.\n */\n this.seeking = new EventEmitter();\n /**\n * Sent when the user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\n */\n this.stalled = new EventEmitter();\n /**\n * Sent when loading of the media is suspended; this may happen either because the download has completed or because it has been paused for any other reason.\n */\n this.suspend = new EventEmitter();\n /**\n * The time indicated by the element’s currentTime attribute has changed.\n */\n this.timeupdate = new EventEmitter();\n /**\n * Sent when the audio volume changes (both when the volume is set and when the muted attribute is changed).\n */\n this.volumechange = new EventEmitter();\n /**\n * Sent when the requested operation (such as playback) is delayed pending the completion of another operation (such as a seek).\n */\n this.waiting = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad begins playback\n */\n this.streamAdStart = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad finishes playback\n */\n this.streamAdEnd = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad took too long to load.\n */\n this.streamAdTimeout = new EventEmitter();\n }\n ngOnChanges(changes) {\n // ngOnChanges fires when the component mounts but before the view\n // is initialized, so we need to bail when this fires for the first\n // time.\n if (!this.streamEl) {\n return;\n }\n // convert SimpleChanges into a Record that has currentValues to be\n // synced onto streamEl\n this.syncProperties(Object.keys(changes).reduce((acc, key) => ({\n ...acc,\n [key]: changes[key].currentValue\n }), {}));\n }\n /**\n * Method to take an object and sync keys from propertyProps onto\n * the stream element\n */\n syncProperties(properties) {\n // iterate over the propertyProps and assign them to the streamEl\n propertyProps.forEach(prop => {\n // only assign the property if it is present\n if (properties.hasOwnProperty(prop)) {\n this.streamEl.nativeElement[prop] = properties[prop];\n }\n });\n }\n ngAfterViewInit() {\n // streamEl is first available within ngAfterViewInit, so we need to sync\n // properties onto the element\n this.syncProperties(\n // pluck current propertyProps off of the component instance to sync them to streamEl\n propertyProps.reduce((acc, prop) =>\n // skip values that are undefined\n this[prop] === undefined ? acc : {\n ...acc,\n [prop]: this[prop]\n }, {}));\n this.loadStreamScript();\n }\n get isBrowser() {\n return isPlatformBrowser(this.platformId);\n }\n loadStreamScript() {\n if (!this.isBrowser) return;\n this.streamScript = document.createElement('script');\n this.streamScript.setAttribute('data-cfasync', 'false');\n this.streamScript.setAttribute('defer', 'true');\n this.streamScript.setAttribute('type', 'text/javascript');\n this.streamScript.setAttribute('src', 'https://embed.cloudflarestream.com/embed/r4xu.fla9.latest.js');\n this.renderer2.appendChild(this.doc.nativeDocument.head, this.streamScript);\n }\n cleanUpStreamScript() {\n if (!this.isBrowser) return;\n this.renderer2.removeChild(this.doc.nativeDocument.head, this.streamScript);\n }\n ngOnDestroy() {\n this.cleanUpStreamScript();\n }\n }\n CloudflareStreamComponent.ɵfac = function CloudflareStreamComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DocumentWrapper), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n CloudflareStreamComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CloudflareStreamComponent,\n selectors: [[\"cloudflare-stream\"]],\n viewQuery: function CloudflareStreamComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.streamEl = _t.first);\n }\n },\n inputs: {\n adUrl: \"adUrl\",\n autoplay: \"autoplay\",\n controls: \"controls\",\n currentTime: \"currentTime\",\n defaultTextTrack: \"defaultTextTrack\",\n height: \"height\",\n loop: \"loop\",\n muted: \"muted\",\n poster: \"poster\",\n preload: \"preload\",\n primaryColor: \"primaryColor\",\n src: \"src\",\n volume: \"volume\",\n width: \"width\"\n },\n outputs: {\n abort: \"abort\",\n canplay: \"canplay\",\n canplaythrough: \"canplaythrough\",\n durationchange: \"durationchange\",\n ended: \"ended\",\n error: \"error\",\n loadeddata: \"loadeddata\",\n loadedmetadata: \"loadedmetadata\",\n loadstart: \"loadstart\",\n pause: \"pause\",\n play: \"play\",\n playing: \"playing\",\n progress: \"progress\",\n ratechange: \"ratechange\",\n seeked: \"seeked\",\n seeking: \"seeking\",\n stalled: \"stalled\",\n suspend: \"suspend\",\n timeupdate: \"timeupdate\",\n volumechange: \"volumechange\",\n waiting: \"waiting\",\n streamAdStart: \"streamAdStart\",\n streamAdEnd: \"streamAdEnd\",\n streamAdTimeout: \"streamAdTimeout\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 2,\n vars: 12,\n consts: [[\"streamEl\", \"\"], [3, \"play\", \"abort\", \"canplay\", \"canplaythrough\", \"durationchange\", \"ended\", \"error\", \"loadeddata\", \"loadedmetadata\", \"loadstart\", \"pause\", \"playing\", \"progress\", \"ratechange\", \"seeked\", \"seeking\", \"stalled\", \"suspend\", \"timeupdate\", \"volumechange\", \"waiting\", \"stream-adstart\", \"stream-adend\", \"stream-adtimeout\"]],\n template: function CloudflareStreamComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"stream\", 1, 0);\n i0.ɵɵlistener(\"play\", function CloudflareStreamComponent_Template_stream_play_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.play.emit($event));\n })(\"abort\", function CloudflareStreamComponent_Template_stream_abort_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.abort.emit($event));\n })(\"canplay\", function CloudflareStreamComponent_Template_stream_canplay_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.canplay.emit($event));\n })(\"canplaythrough\", function CloudflareStreamComponent_Template_stream_canplaythrough_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.canplaythrough.emit($event));\n })(\"durationchange\", function CloudflareStreamComponent_Template_stream_durationchange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.durationchange.emit($event));\n })(\"ended\", function CloudflareStreamComponent_Template_stream_ended_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.ended.emit($event));\n })(\"error\", function CloudflareStreamComponent_Template_stream_error_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.error.emit($event));\n })(\"loadeddata\", function CloudflareStreamComponent_Template_stream_loadeddata_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadeddata.emit($event));\n })(\"loadedmetadata\", function CloudflareStreamComponent_Template_stream_loadedmetadata_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadedmetadata.emit($event));\n })(\"loadstart\", function CloudflareStreamComponent_Template_stream_loadstart_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadstart.emit($event));\n })(\"pause\", function CloudflareStreamComponent_Template_stream_pause_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.pause.emit($event));\n })(\"play\", function CloudflareStreamComponent_Template_stream_play_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.play.emit($event));\n })(\"playing\", function CloudflareStreamComponent_Template_stream_playing_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.playing.emit($event));\n })(\"progress\", function CloudflareStreamComponent_Template_stream_progress_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.progress.emit($event));\n })(\"ratechange\", function CloudflareStreamComponent_Template_stream_ratechange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.ratechange.emit($event));\n })(\"seeked\", function CloudflareStreamComponent_Template_stream_seeked_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.seeked.emit($event));\n })(\"seeking\", function CloudflareStreamComponent_Template_stream_seeking_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.seeking.emit($event));\n })(\"stalled\", function CloudflareStreamComponent_Template_stream_stalled_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.stalled.emit($event));\n })(\"suspend\", function CloudflareStreamComponent_Template_stream_suspend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.suspend.emit($event));\n })(\"timeupdate\", function CloudflareStreamComponent_Template_stream_timeupdate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.timeupdate.emit($event));\n })(\"volumechange\", function CloudflareStreamComponent_Template_stream_volumechange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.volumechange.emit($event));\n })(\"waiting\", function CloudflareStreamComponent_Template_stream_waiting_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.waiting.emit($event));\n })(\"stream-adstart\", function CloudflareStreamComponent_Template_stream_stream_adstart_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdStart.emit($event));\n })(\"stream-adend\", function CloudflareStreamComponent_Template_stream_stream_adend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdEnd.emit($event));\n })(\"stream-adtimeout\", function CloudflareStreamComponent_Template_stream_stream_adtimeout_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdTimeout.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"ad-url\", ctx.adUrl)(\"src\", ctx.src)(\"autoplay\", ctx.autoplay)(\"controls\", ctx.controls)(\"default-text-track\", ctx.defaultTextTrack)(\"loop\", ctx.loop)(\"preload\", ctx.preload)(\"height\", ctx.height)(\"width\", ctx.width)(\"poster\", ctx.poster)(\"primary-color\", ctx.primaryColor)(\"muted\", ctx.muted);\n }\n },\n encapsulation: 2\n });\n return CloudflareStreamComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CloudflareStreamModule = /*#__PURE__*/(() => {\n class CloudflareStreamModule {}\n CloudflareStreamModule.ɵfac = function CloudflareStreamModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamModule)();\n };\n CloudflareStreamModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CloudflareStreamModule\n });\n CloudflareStreamModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: DocumentWrapper,\n useFactory: getDocumentWrapper\n }],\n imports: [[]]\n });\n return CloudflareStreamModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of cloudflare-stream\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CloudflareStreamComponent, CloudflareStreamModule, CloudflareStreamService };\n"],"names":["require_dexie","__commonJSMin","exports","module","global","factory","extendStatics","d","b","p","__extends","__","__assign","t","s","i","n","__spreadArray","to","from","pack","l","ar","_global","keys","isArray","extend","obj","extension","key","getProto","_hasOwn","hasOwn","prop","props","proto","setProp","defineProperty","functionOrGetSet","options","derive","Child","Parent","getOwnPropertyDescriptor","getPropertyDescriptor","pd","_slice","slice","args","start","end","override","origFunc","overridedFactory","assert","asap$1","fn","arrayToObject","array","extractor","result","item","nameAndValue","getByKeyPath","keyPath","rv","val","period","innerObj","setByKeyPath","value","currentKeyPath","remainingKeyPath","delByKeyPath","kp","shallowClone","m","concat","flatten","a","intrinsicTypeNames","num","intrinsicTypes","cloneSimpleObjectTree","o","k","v","objectIsEmpty","circularRefs","deepClone","any","innerDeepClone","x","toString","toStringTag","iteratorSymbol","getIteratorOf","delArrayItem","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","isAsyncFunction","dexieErrorNames","idbDomErrorNames","errorList","defaultTexts","DexieError","name","msg","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","pos","errnames","BaseException","exceptions","fullName","msgOrInner","inner","exceptionMap","mapError","domError","message","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","res","onsuccess","onerror","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","thiz","debug","setDebug","filter","INTERNAL","ZONE_ECHO_LIMIT","_a$1","globalP","nativeP","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","schedulePhysicalTick","physicalTick","asap","callback","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","rejectionMapper","globalPSD","PSD","numScheduledCalls","tickFinalizers","DexiePromise","psd","handleRejection","executePromiseTask","thenProp","microTaskId","totalEchoes","then","onFulfilled","onRejected","_this","possibleAwait","cleanup","decrementExpectedAwaits","resolve","reject","propagateToListener","Listener","nativeAwaitCompatibleWrap","type","handler","err","PromiseReject","onFinally","ms","handle","snapShot","zone","values","onPossibleParallellAsync","remaining","newScope","usePSD","zoneProps","run_at_end_of_this_or_next_physical_tick","possiblePromises","results","reason","failure","promise","shouldExecuteTick","beginMicroTickScope","propagateAllListeners","endMicroTickScope","ex","addPossiblyUnhandledError","listeners","len","finalizePhysicalTick","listener","cb","callListener","ret","markErrorAsHandled","e","wasRootExec","callbacks","unhandledErrs","finalizers","finalizer","wrap","errorCatcher","outerScope","switchToZone","task","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","parent","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","GlobalPromise","targetEnv","a3","outerZone","execInGlobalContext","tempTransaction","db","mode","storeNames","trans","DEXIE_VERSION","maxString","minKey","INVALID_KEY_ARGUMENT","STRING_EXPECTED","connections","DBNAMES_DB","READONLY","READWRITE","combine","filter1","filter2","AnyRange","workaroundForUndefinedPrimKey","Entity","cmp","ta","tb","compareUint8Arrays","getUint8Array","compareArrays","al","bl","tsTag","Table","writeLocked","tableName","checkTableInTransaction","keyOrCrit","indexOrCrit","keyPaths","compoundIndex","ix","keyPathsInValidOrder","idxByName","equals","_a","prevIndex","prevFilterFn","index","idx","filterFunction","thenShortcut","offset","numRows","constructor","_super","class_1","inheritedProps","propName","readHook","Class","content","auto","objToAdd","lastResult","keyOrObject","objects","keysOrOptions","wantResults","numObjects","objectsToAdd","numFailures","objectsToPut","keysAndChanges","coreTable","entry","changeSpecs","offsetMap","objs","resultKeys","resultObjs","changes","_i","_b","numEntries","mappedOffset","numKeys","Events","ctx","evs","eventName","subscriber","add","chainFunction","defaultFunction","addConfiguredEvents","context","cfg","makeClassConstructor","prototype","createTableConstructor","tableSchema","isPlainKeyRange","ignoreLimitFilter","addFilter","addReplayFilter","isLimitFilter","curr","addMatchFilter","getIndexOrStore","coreSchema","openCursor","iter","coreTrans","set_1","union","cursor","advance","primaryKey","iterate","cursorPromise","valueMapper","mappedFn","c","wrappedFn","advancer","PropModSymbol","PropModification","spec","term","subtrahend_1","prefixToReplace","Collection","count","parts","lastPart","lastIndex","getval","order","sorter","aVal","bVal","valueMapper_1","a_1","offsetLeft","rowsLeft","bIncludeStopEntry","indexName","set","strKey","found","modifyer","anythingModified","origVal","outbound","extractKey","limit","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","criteria","deleteCallback","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","range","coreRange","createCollectionConstructor","whereClause","keyRangeGenerator","keyRange","error","whereCtx","table","readingHook","simpleCompare","simpleCompareReverse","fail","collectionOrWhereClause","T","collection","WhereClause","emptyCollection","rangeEqual","upperFactory","dir","lowerFactory","nextCasing","lowerKey","upperNeedle","lowerNeedle","length","llp","lwrKeyChar","addIgnoreCaseAlgorithm","match","needles","suffix","upper","lower","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowestPossibleCasing","casing","lowerOpen","upperOpen","includeLower","includeUpper","str","ranges","ascending","descending","min","max","includeLowers","includeUppers","addRange","newRange","sortDirection","rangeSorter","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","keyWithinCurrentRange","checkKey","createWhereClauseConstructor","orCollection","eventRejectHandler","event","preventDefault","DEXIE_STORAGE_MUTATED_EVENT_NAME","STORAGE_MUTATED_DOM_EVENT_NAME","globalEvents","Transaction","fnAndPSD","idbtrans","idbdb","dbOpenError","ev","bWriteLock","promiseLike","root","store","spin","currentWaitPromise","memoizedTables","transactionBoundTable","createTransactionConstructor","dbschema","chromeTransactionDurability","wasActive","createIndexSpec","unique","multi","compound","isPrimKey","nameFromKeyPath","createTableSchema","primKey","indexes","safariMultiStoreFix","getMaxKey","IdbKeyRange","getKeyExtractor","getSinglePathKeyExtractor","split","arrayify","_id_counter","getKeyPathAlias","createDBCore","tmpTrans","extractSchema","tables","autoIncrement","indexByKeyPath","multiEntry","makeIDBKeyRange","idbRange","createDbCoreTable","mutate","isAddOrPut","req","reqs","errorHandler","args1","args2","done","query","reverse","source","_cursorContinue","_cursorContinuePrimaryKey","_cursorAdvance","doThrowCursorIsNotStarted","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","hasGetAll","request","nonInfinitLimit","idbKeyRange","count_1","req_1","result_1","keyCount","callbackCount","successHandler","schema","tableMap","createMiddlewareStack","stackImpl","middlewares","down","create","createMiddlewareStacks","IDBKeyRange","dbcore","generateMiddlewareStacks","stacks","tbl","setApiOnPlace","tableNames","propDesc","removeTablesApi","lowerVersionFirst","runUpgraders","oldVersion","idbUpgradeTrans","globalSchema","parseIndexSyntax","rejectTransaction","transless","createTable","getExistingVersion","updateTablesAndIndexes","patchCurrentVersion","createMissingTables","buildGlobalSchema","adjustToExistingIndexNames","diff","getSchemaDiff","_loop_1","tableChange","addIndex","state_1","metaVersion","queue","versions","versToRun","version","oldSchema","newSchema","tuple","change","store_1","idxName","contentUpgrade","upgradeSchema_1","contentUpgradeIsAsync_1","returnValue_1","promiseFollowed","decrementor","deleteRemovedTables","runQueue","oldDef","newDef","oldIndexes","newIndexes","oldIdx","newIdx","storeName","dbStoreNames","j","idbindex","readGlobalSchema","verifyInstalledSchema","installedSchema","ch","dexieName","indexSpec","primKeyAndIndexes","indexNum","Version","stores","outSchema","storesSpec","upgradeFunction","createVersionConstructor","versionNumber","getDbNamesTable","indexedDB","dbNamesDB","Dexie$1","hasDatabasesNative","getDatabaseNames","infos","info","_onDatabaseCreated","_onDatabaseDeleted","vip","idbReady","isSafari","intervalId","tryIdb","isEmptyRange","node","RangeSet","fromOrTree","rangeSet","mergeRanges","getRangeSetIterator","target","left","right","rebalance","rightWasCutOff","newSet","_addRangeSet","r","rangesOverlap","rangeSet1","rangeSet2","i1","nextResult1","i2","nextResult2","state","keyProvided","rootClone","oldRootRight","computeDepth","extendObservabilitySet","part","obsSetsOverlap","os1","os2","cache","unsignaledParts","isTaskEnqueued","signalSubscribersLazily","optimistic","signalSubscribersNow","updatedParts","deleteAffectedCacheEntries","queriesToSignal","tblCache","collectTableSubscribers","dbName","requery","outQueriesToSignal","updatedEntryLists","entries","filteredEntries","_c","entries_1","_d","updatedEntryLists_1","_e","dexieOpen","openCanceller","nativeVerToOpen","schemaPatchMode","throwIfCancelled","resolveDbReady","upgradeTransaction","wasCreated","tryOpenDB","delreq","oldVer","objectStoreNames","fireRemainders","remainders_1","everything_1","awaitIterator","iterator","callNext","doThrow","onSuccess","step","onError","getNext","next","extractTransactionArgs","_tableArgs_","scopeFunc","enterTransactionScope","parentTransaction","scopeFuncIsAsync","returnValue","pad","createVirtualIndexMiddleware","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","virtualKeyPath","findBestIndex","translateRange","translateRequest","createVirtualCursor","_continue","virtualCursor","virtualIndexMiddleware","getObjectDiff","prfx","ap","bp","apTypeName","bpTypeName","getEffectiveKeys","hooksMiddleware","downCore","downTable","tableMiddleware","dxTrans","deleting","creating","updating","addPutOrDelete","deleteRange","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","deleteNextChunk","effectiveKeys","getFromTransactionCache","clone","cacheExistingValuesMiddleware","core","cachedResult","isCachableContext","isCachableRequest","observabilityMiddleware","FULL_RANGE","indexesWithAutoIncPK","tableClone","mutatedParts","getRangeSet","pkRangeSet","delsRangeSet","id","newObjs","oldCache","oldObjs","trackAffectedIndexes","idxVals","pkPos","getRange","readSubscribers","method","subscr","isLiveQuery","cachable","obsSet","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","cursor_1","wantValues_1","pkey","addAffectedIndex","addKeyOrKeys","_","oldKey","newKey","adjustOptimisticFromFailures","numBulkOps","isAboveLower","isBelowUpper","isWithinRange","applyOptimisticOps","ops","cacheEntry","immutable","queryRange","extractPrimKey","extractIndex","extractLowLevelIndex","finalResult","op","modifedResult","includedValues","includedPKs","pk","existingKeys_1","keySet_1","keysToDelete_1","range_1","areRangesEqual","r1","r2","compareLowers","lower1","lower2","lowerOpen1","lowerOpen2","compareUppers","upper1","upper2","upperOpen1","upperOpen2","isSuperRange","findCompatibleQuery","queries","equalEntry","superEntry","countQuery","subscribeToCacheEntry","container","signal","enqueForDeletion","cacheMiddleware","coreMW","ac_1","endTransaction","wasCommitted","affectedSubscribers_1","stores_1","_f","_g","_h","freezeResults","modRes","tableMW","reqWithResolvedKeys","valueWithKey","adjustedReq","exactMatch","vipify","vipDb","receiver","Dexie","deps","addons","subscribe","bSticky","db_1","unsubscribe","vipDB","tx","addon","versionInstance","stack","level","mw","disableAutoOpen","closeOptions","hasInvalidArguments","doDelete","onlyIfCompatible","idbMode","enterTransaction","symbolObservable","Observable","complete","domDeps","liveQuery","querier","hasValue","currentValue","observable","observer","execute","closed","abortController","accumMuts","currentObs","subscription","startedListening","mutationListener","doQuery","_doQuery","shouldNotify","databaseName","generatorFn","promiseOrFunction","optionalTimeout","propagatingLocally","event_1","detail","propagateLocally","updateParts","wasMe","bc","createBC","changedParts","connections_1","remove","replacePrefix","namedExports","DsSearchInput","elementRef","inject","ElementRef","optional","ngControl","NgControl","getForm","FormControlDirective","form","FormControlName","control","selectors","hostAttrs","standalone","_DsSearchInput","ɵɵelementContainer","ol","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","DsSearchBar","size","input","placeholder","disabled","transform","booleanAttribute","inverse","clearIconTabIndex","searchCleared","EventEmitter","searchBarClicked","hostClass","computed","clearIconMouseDownEventHandler","emit","searchInput","setValue","nativeElement","ngAfterViewInit","clickEventListener","addEventListener","clearIconMouseUpEventHandler","ngOnDestroy","removeEventListener","contentQueries","rf","dirIndex","_s","zr","Vr","ɵɵclassMap","ɵɵclassProp","ɵɵtemplate","DsSearchBar_ng_container_2_Template","DsSearchBar_ng_template_3_Template","ɵɵtemplateRefExtractor","ɵɵprojection","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","DsSearchBar_ng_container_7_Template","DsSearchBar_ng_template_8_Template","zt","ɵɵadvance","ɵɵproperty","searchIcon","defaultSearchIcon_r2","closeIcon","defaultCloseIcon_r3","NgTemplateOutlet","styles","encapsulation","changeDetection","_DsSearchBar","ABTestingClientConfig","Ii","__ngFactoryType__","__ngConditionalFactory__","abTestingClientConfigFactory","ɵɵinject","LazyClientConfigService","__decorate","LazyClientConfig","product","ClientConfigProductName","CASINO","service","get","AdvanceGameDataClientConfig","wi","advanceGameDataClientConfigFactory","ApiPathsClientConfig","Pi","apiPathsClientConfigFactory","ArcadeLobbyClientConfig","arcadeLobbyClientConfigFactory","BetMGMOriginalsClientConfig","Gi","betMGMOriginalsClientConfigFactory","ki","CasinoCoreConfigClientConfig","casinoCoreConfigClientConfigFactory","Ti","CasinoAsIFrameOverlayConfig","casinoAsIFrameOverlayConfigFactory","ClientSideConfigClientConfig","Mi","clientSideConfigClientConfigFactory","CommonClientConfig","Di","commonClientConfigFactory","CozyBingoClientConfig","xi","cozyBingoClientConfigFactory","Ai","DevSettingsConfig","devSettingsConfigFactory","DiscoverFeedClientConfig","discoverFeedClientConfigFactory","DownloadAppFromDeviceClientConfig","downloadAppFromDeviceClientConfigFactory","FeaturesClientConfig","Fi","featuresClientConfigFactory","FeedCacheClientConfig","Oi","feedCacheClientConfigFactory","ji","FreeSpinsClientConfig","freeSpinsClientConfigFactory","GameLaunchTrackingClientConfig","Ri","gameLaunchTrackingClientConfigFactory","Ni","GamePremiereClientConfig","gamePremiereClientConfigFactory","Ui","GameSelectorWidgetClientConfig","gameSelectorWidgetClientConfigFactory","GameShowHubClientConfig","Bi","gameShowHubClientConfigFactory","GameConfigClientConfig","gameConfigClientConfigFactory","GameImpressionsClientConfig","Vi","gameImpressionsClientConfigFactory","Hi","GamificationWidgetConfig","gamificationWidgetConfigFactory","Wi","GamingStoriesClientConfig","gamingStoriesClientConfigFactory","GamingStoriesPhase2ClientConfig","Ji","gamingStoriesPhase2ClientConfigFactory","GeolocationClientConfig","Qi","geolocationClientConfigFactory","GlobalJackpotClientConfig","Ki","globalJackpotClientConfigFactory","Yi","GlobalSearchClientConfig","globalSearchClientConfigFactory","GlobalClientConfig","globalClientConfigFactory","$i","HeaderTeasersClientConfig","headerTeasersClientConfigFactory","Zi","ImageLoadOptimizationClientConfig","imageLoadOptimizationClientConfigFactory","Xi","ImmersiveLobbyClientConfig","immersiveLobbyClientConfigFactory","JackpotDataClientConfig","eo","jackpotDataClientConfigFactory","LiveCasinoLoungeClientConfig","liveCasinoLoungeClientConfigFactory","LiveDealerConfigClientConfig","liveDealerConfigClientConfigFactory","LiveCasinoClientConfig","liveCasinoClientConfigFactory","ro","LMTDataClientConfig","lmtDataClientConfigFactory","McPageClientConfig","no","mcPageClientConfigFactory","MinBetGamesClientConfig","ao","minBetGamesClientConfigFactory","ModularBingoClientConfig","so","modularBingoClientConfigFactory","ModularSettingsClientConfig","co","modularSettingsClientConfigFactory","lo","ModularizationClientConfig","modularizationClientConfigFactory","uo","NativeGameLaunchClientConfig","nativeGameLaunchClientConfigFactory","NewsFeedConfigClientConfig","mo","newsFeedConfigClientConfigFactory","NonCriticalClientConfig","fo","nonCriticalClientConfigFactory","OptimizedTeaserClientConfig","ho","optimizedTeaserClientConfigFactory","po","PlayerStatsWidgetClientConfig","playerStatsWidgetClientConfigFactory","go","PreLoginClientConfig","preLoginClientConfigFactory","vo","PromoCoinEconomyClientConfig","promoCoinEconomyClientConfigFactory","PromoOfferWidgetConfig","bo","promoOfferWidgetConfigFactory","PromotedGamesClientConfig","Co","promotedGamesClientConfigFactory","PromotionsBannerClientConfig","promotionsBannerClientConfigFactory","PromotionsInfoClientConfig","promotionsInfoClientConfigFactory","Io","QuickInfoClientConfig","quickInfoClientConfigFactory","RecentWinnersWidgetClientConfig","wo","recentWinnersWidgetClientConfigFactory","RecentlyPlayedClientConfig","Po","recentlyPlayedClientConfigFactory","Lo","SearchClientConfig","searchClientConfigFactory","SlotRacesClientConfig","Go","slotRacesClientConfigFactory","SmartLobbyClientConfig","ko","smartLobbyClientConfigFactory","SubNavigationClientConfig","subNavigationClientConfigFactory","Mo","SuperButtonClientConfig","superButtonClientConfigFactory","Do","ThumbnailConfigClientConfig","thumbnailConfigClientConfigFactory","xo","VideoPreviewClientConfig","videoPreviewClientConfigFactory","WidgetConfigClientConfig","Ao","widgetConfigClientConfigFactory","Cu","Cd","CashierIframeComponent","dialogRef","data","user","page","windowRef","utils","appInfoConfig","configProviderService","iframeCommunicationEnabled","onNoClick","close","ngOnInit","casinoConfig","provideCasinoConfig","mcPage","provideMcPageConfig","features","provideFeaturesConfig","enableIframeCommunication","qdUrl","format","cashierQDUrlTemplate","brand","productId","channel","lang","ssoToken","depositUrl","cashierDepositUrlTemplate","replace","checkQDAllowedForDepositURL","isQDAllowed","cashierIframeUrl","nativeWindow","cashierIframe","document","getElementById","unescape","reduce","seed","cur","param","trim","paramIndex","action","toUpperCase","showAllOptions","src","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","UserService","Page","WindowRef","UtilsService","AppInfoConfig","ConfigProviderService","inputs","ɵɵStandaloneFeature","decls","vars","consts","template","ɵɵpipeBind1","ɵɵsanitizeResourceUrl","MatDialogContent","MatDialogActions","TrustAsResourceUrlPipe","_CashierIframeComponent","GamePopoutComponent","commonMessages","provideGlobalConfig","continue","cancel","gameLaunchNewWindow","messages","gameSessionRestart","gamePopOutUrl","CommonMessages","ɵɵtext","ɵɵtextInterpolate","MatDialogClose","_GamePopoutComponent","LobbyItemBaseModel","LobbyItem","setCategoriesMap","map","categoriesMap","lsCategoriesMap","Array","setcategoryNameLangMap","categoryNameLangMap","lsCategorytNameLangMap","setStickerNameMap","stickerNameMap","lsStickerNameMap","setGameMetaDataMap","gameMetaDataMap","lsGameMetaDataMap","setLobbyItemFromLocalStorage","lobbyInfoLocalStorage","Map","lbyTempName","lbyTargetType","optSegName","lsCatVsFeatureMetadata","catVsFeatureMetadata","lobbyGameIconImageSuffix","hasClass","el","className","classList","contains","RegExp","addClass","elm","documentElement","elementScroll","element","offsetWidth","isLeft","leftCheckValue","stopImmediatePropagation","scrollLeft","scrollWidth","showLeft","showRight","clientWidth","style","overflow","requestAnimationFrame","setTimeout","isDateValid","date","convertedDate","Date","isNaN","getTime","PlatformApiService","ApiBase","apiServiceFactory","ApiServiceFactory","ProductService","_PlatformApiService","productService","createForProduct","area","forwardProductApiRequestHeader","getMetadata","isEnabledProductApi","PromoOptinStatusType","GameManagerService","gameMetaDataPlayerStatsSubject","BehaviorSubject","gameMetaDataPlayerStatsObservable","asObservable","pipe","arr","distinctUntilChanged","getGameInfo","gameId","getGameDisplayName","setGameIconNotFound","iconType","gameInfo","isImageNotFound","isGameIconNotAvailable","updateMetaData","ɵfac","providedIn","_GameManagerService","ImageLoaderComponent","icon","required","alt","priority","disableTheme","defaultSrc","host","isImageLoaded","isImageLoadError","optimisedSrc","computedStyle","getComputedStyle","casinoManagerService","CasinoManager","gameManagerService","casinoStylesService","CasinoStylesService","initialiseImageConfig","gameConfig","provideGameConfig","defaultUrl","getGrayImageUrl","enableGameIconTheming","appendTheme","gameTileBorderRadius","onLoad","onLoadError","Image","_ImageLoaderComponent","InvokerProductService","nativeAppService","getInvokerProduct","isSingleDomainApp","current","HOST","setActive","appProduct","toLowerCase","isNative","NativeAppService","_InvokerProductService","CasinoWidgetService","navigationService","invokerProductService","isCasinoWidget","window","location","href","indexOf","isfromCasino","setWidgetProduct","invokerProduct","widgetInvokerProduct","search","getApiParams","params","postMessageToParent","postMessage","getWidgetPosition","widgetPosition","getWidgetHeight","categoryId","elementId","widget","currentWidgetHeight","scrollHeight","assigningWidgetParams","interval","setInterval","checkAndUpdateWidgetHeight","newWidgetHeight","maxHeightCount","clearInterval","isFooterWidget","categoryid","height","getWidgetProduct","setInvokerProduct","NavigationService","_CasinoWidgetService","HomeLobbyModel","NativeApiService","nativeApplication","raiseEvent","parameters","actionValue","frame","createElement","display","body","appendChild","raiseEventCommon","eventInfo","isNativeWrapper","raiseTeaserEvent","prevEventId","clearEvent","processPromoEvent","link","eventId","substr","processLobbyEvent","raiseOpenGameEvent","openUrl","isAuthenticated","raiseNativeAppEvent","nativeScheme","nativeAppScheme","targetEvent","scheme","iframe","parentNode","removeChild","_NativeApiService","currentWidth","deviceService","windowRect","width","casinoWidgetService","cookieService","nativeApiService","navigation","logger","isTouchDevice","checkTouchDevice","loadNextGamesSetPublisher","loadNextGamesSetObservable","lobbyModelPublisher","lobbyObservable","reSizePublisher","reSizeObservable","lobbyModel","playerSegmentionSubject","playerSegmentDataObservable","effect","setCategoryLobby","publishCategory","sourceCategory","publishCtgry","category","defCategory","pathname","setProperty","activeCategory","navigationLevel","previousProduct","currentCategory","setWidgetToggleInfo","enableToggle","toggleEnabled","getWidgetToggleInfo","getActiveCategory","getLobbyType","lobbyType","lmtConfig","provideLmtConfig","lobbyTypeMap","getProductForLobbyType","lobbyTypeMapt","isDownloadClient","isTouch","matchMedia","matches","navigator","userAgent","maxTouchPoints","setGameHomeUrl","gameHomeUrl","getGameHomeUrl","loadNextGamesSet","getCurrentWidth","getDefaultCategoryType1","defaultCategory","categoryLookup","sitecoreData","undefined","getDefaultCategoryType","goToLobby","gameEventId","goTo","prefix","getLobbyUrlPrefix","lmtDataClientConfig","getProduct","getProductForGivenLobbyType","lobbyTypet","IsFeatureEnabledforLobbytype","featureType","find","countValue","stringValue","stringArray","jsonValue","forceMobileNav","fetchMeta","IsFeatureEnabledforLobbytypeWithInvokerProduct","feature","invokerproduct","assignGameClass","getSlotRaceCategoryId","slotRacesConfig","provideSlotRacesConfig","slotRacesLMTCategoryIdForLobbyType","getJackpotTileCategoryId","jackpotConfig","provideJackpotConfig","jackpotTilesLMTCategoryIdForLobbyType","getLobbyTypeForProduct","productRoute","productLobbyTypes","lobbytype","extractLobbyType","setCurrentLobby","currentlobbyType","getCurrentLobby","isSingleHostLobbyType","currentProduct","singleHostLobbyItem","singleHostLobbyMap","sh","singleHost","staticImages","gray","DeviceService","CookieService","Logger","_CasinoManager","ConstService","_ConstService","Instant_Casino","Live_Casino","Recent_Games","Favourite_Games","LMC_GYML","ALL_GAMES_CATEGORY_ID","LIVE_DEALER_GAMES_CATEGORY_ID","LIVE_CASINO_ALL_GAMES_CATEGORY_ID","LOBBY_LOADING_COMPLETED_EVENT","FAVOURITE_GAMES_CATEGORY_ID","RECENT_GAMES_CATEGORY_ID","SPORTS_HOME_ICON_EVENT","UNFINISHED_GAMES_CATEGORY_ID","GYML_GAMES_CATEGORY_ID","HOME_CATEGORY_ID","LMC_GYML_CATEGORY_ID","EGV_GYML","DETAIL_PAGE_MODE_PICKER","DETAIL_PAGE_MODE_FORCEPICKER","DETAIL_PAGE_MODE_FORCE","DETAIL_PAGE_MODE_ALL","GAME_OF_THE_DAY","HIGHLIGHT_JACKPOTS","LIVE_CASINO","PROMOTIONS_DISCOVER","QUICK_LINKS","EDITORS_PICK","SEARCH","SEARCH_GYML","ADV_GAME","EventNames","EventDataKeys","VanillaTrackingAdapter","vanillaTrackingService","VanillaTrackingService","trigger","triggerEvent","reportError","update","updateDataLayer","_VanillaTrackingAdapter","PlatformBingoApiService","Ur","_PlatformBingoApiService","BINGO","isEnabled","UrlUtilityService","products","getCasinoBaseUrl","getUrl","getProductBaseUrl","productOverride","getProductApiBaseUrl","getApiBaseUrl","getCasinoApiBaseUrl","apiBaseUrl","getClientConfigUrl","getCategoryNavigationBaseUrl","getBingoApiBaseUrl","getPromoSmartUrl","getDiceSmartUrl","getCasinoSmartUrl","isProduct","URL","origin","getAppCurrentProduct","ProductHomepagesConfig","_UrlUtilityService","ApiPathsHelperService","transformApi","apiPathConfig","Function","_ApiPathsHelperService","BingoFavouriteService","apiBingoService","api","router","urlUtilityService","apiPathsHelperService","addFavourite","roomId","accountName","apiPathsConfig","provideApiPathsConfig","bingo","isFavourite","endPoint","removeFavourite","getFavouriteUrl","favAddClass","favRemClass","url","getFavouriteWidgetGames","sso","Router","_BingoFavouriteService","CasinoCoreNpmParamsService","setcasinoCoreNpmParams","casinoCoreNpmParams","casinoNpmParams","getcasinoCoreNpmParams","_CasinoCoreNpmParamsService","CasinoIFrameOverlayService","casinoManager","casinoCoreNpmParamsService","setOverlayStatus","isOverlay","getOverlayStatus","isOverLayOnAProduct","casinoAsIFrameOverlayConfig","provideCasinoAsIFrameConfig","overlayLobbyTypeMap","lobbyTypeForNavCategories","overlayBottomNavLobbyTypeMap","overlayBottomNavLobbyTypeMapItem","fetchOverlayLobby","overlayConfig","overlayLobbyType","applicableLobbyTypeMaps","customLobbyTypeMaps","lobbyTypeObj","_CasinoIFrameOverlayService","CasinoApiService","apiService","requestParams","post","getCasinoProductApi","headers","environment","withCredentials","getBingoApi","postBingoApi","put","delete","jsonp","callbackParam","_CasinoApiService","CozyBingoDataService","casinoApiService","cozyBingoRoomsData","cozyBingoRoomsDataObservable","cozyBingoRecentGamesData","cozyBingoRecentGamesObservable","cozyBingoRoomsMap","cozyBingofavourites","cozyBingoRecentGames","getBingoData","fetchBingoRoomsSitecoreData","fetchRecentlyPlayed","response","sitecoreResponseRooms","sitecoreResponseRoomnames","featuresConfiguration","globalMessages","categoryList","bingoConfiguration","scheduleData","games_list","roomDataMap","cozybingoConfig","provideCozyBingoConfig","cozyBingoFavouritesInRpwidget","cozyBingoRecentGamesInRpwidget","raiseEventForRecentlyPlayed","recentGamesObject","recentgames","provideGlobalSearchConfig","rooms","sitecorerooms","sitecoreroomnames","schedulePolling","defaultRoomSitecoreInfo","forEach","room","roomSitecoreInfo","sitecoreroom","desktopImage","enableWidgetImageForBingoGame","widgetImage","titleFromRoomNames","sitecoreInfo","getRoomdatabyId","roomid","getcozybingofavourites","cozyFavs","has","checkForFavouriteGame","game","fromCasino","getcozybingorecentgames","cozyrpgames","getFeatureConfigs","getGlobalMessages","getcategoryList","getbingoConfiguration","ReloadFeed","gameData","timeOut","curentTime","games","g","status","state_end_time","f_game","Math","apply","_CozyBingoDataService","FavouriteService","messageQueueService","cookie","bingoFavouriteService","cozyBingoService","casinoIFrameOverlayService","favouriteGames","otherProductFavouriteGames","favouriteGamesSubject","favouriteGamesFeedObservable","otherProductFavouriteGamesSubject","bingoProductFavouriteGamesSubject","otherProductFavouriteGamesFeedObservable","bingoProductFavouriteGamesFeedObservable","quickInfoPublisher","quickIconObservable","vanillaTrackingAdapter","setFavouriteGames","nonCriticalFeeds","getObject","gameToBeFavorited","toggleGameFavourite","__spreadValues","getFavouriteGames","updateOtherProductFavouriteGames","push","splice","publishingFavObervable","bingoFavData","gameName","trackFavourite","gameInteraction","GameInteraction","ComponentGameInteraction","ComponentGameSection","shouldTrackSection","gameSection","fetchGames","preLoginFavourite","isFromEgv","RemoveGameFavourite","gameVariantName","fromCozybingo","contactUsParam","requestBody","showSpinner","errorcode","favourites","raiseFavEvent","AddGameFavorites","redirect","addError","MessageType","Information","MessageLifetime","TempData","forceReload","removeQuickInfoClass","favEvent","evt","CustomEvent","dispatchEvent","MessageQueueService","_FavouriteService","CasinoCoreGameLaunchFactoryService","setGameLaunchService","gameLaunchService","getGameLaunchService","setGameService","gameService","getGameService","_CasinoCoreGameLaunchFactoryService","JACKPOT_MAP_BROADCAST_EVENT","JACKPOT_VALUE_QUERY_EVENT","JackpotDataService","timerService","ngZone","webWorkerService","jackpotSubject","jpTickingSubject","jackpotSortGames","jackpotTilesSubject","jpSortGamesObservable","multiJackpotWidgetCarouselSubject","jackpotFeedObservable","jackpotTilesFeedObservable","multiJackpotWidgetCarouselChangedObservable","jpTickingObservable","gameJackpotMap","jackpotGroupNameMap","listenersCnt","incrementTickingForJackpotOnGameTiles","queryJackpotValueHandler","fetchJackpot","jackpots","jackpotsCache","setJackpots","fetchJackpotTiles","enableJackpotTile","jackpotTiles","startFeed","JackpotData","provideFeedCacheConfig","enableJackpotFeed","fetchJackpotPromise","enableTickingForJackpotOnGameTiles","setJackpotTickers","createWorker","WorkerType","SelfExclusionPollInterval","jpInterval","jackpotFeed","Object","jackpotKey","jackpotGroupName","gamesList","jackpotObject","amount","isHotJackpotGroup","jackpotName","jackpotAttributes","attributes","globalJackpotAttributes","incrementJackpotValues","changeActiveMultiJackpotWidget","isChanged","getJackpotData","jpRibbonBgColor","JackpotRibbonBgColor","jpRibbonTextColor","JackpotRibbonTextColor","getJackpotRibbonStyles","jackpotValue","jpRibbonBgClr","jpRibbonTextClr","jpBgColor","jpTextColor","getJackpotGroupNameMap","getJackpotByGroupName","groupName","getGameJackpotValue","stopFeed","removeWorker","tickingInterval","setIntervalOutsideAngularZone","formatcurrency","inputarr","realpart","decimalpart","amt","substring","globalClientConfig","currency","valueStr","initialcurrency","jackpotTickValue","parseFloat","lobbyConfigurations","IncrementTickingForJackpotOnGameTiles","toFixed","showJackpotCurrencyOnRight","run","currencyFormat","fetchJackpotSortGames","sortgamesInterval","nextUpdateTime","sortDataNextTime","resultTime","jackpotDataConfig","floor","now","jackpotGamesSortingTime","sortInterval","filterJpGroup","jackpotGroups","gpGroupName","sortData","gamesAvailable","filterGames","sortGamesList","sortGames","sgame","unSortGames","id1","some","id2","newFeaturegridArray","featureGrid","maxRowSpan","rowSpan","maxColSpan","colSpan","__spreadProps","TimerService","NgZone","WebWorkerService","_JackpotDataService","import_dexie","DexieSymbol","_Dexie","import_wrapper_default","IDB_NAME","DBTableSchemas","IndexedDBService","setupIndexedDB","__async","setIndexedDbTable","isOpen","open","setTablesSchema","_IndexedDBService","IndexedDBManager","indexedDBService","getIndexedDbStore","read","cacheKey","lmtExpirationTime","cachedItem","cachedAt","createdAt","resolveData","clear","write","cacheValue","catch","_IndexedDBManager","LocalStorageExpirablePersistenceService","expirationInterval","localStorage","getItem","parsedCacheItem","JSON","parse","setItem","stringify","_LocalStorageExpirablePersistenceService","GameDataFromCacheResponseModel","gameMetaData","gamesNotInCache","CacheManagerService","localStorageExpirablePersistenceService","indexedDBManager","getCategoryCacheKey","cachekey","username","casinoContextValues","readCategoryDataLocalCache","expirationIntervalInSeconds","cachedCategoryData","featuresConfig","devSettingsConfig","provideDevSettingsConfig","isPreviewUser","isIndexedDBEnabled","enableClientStorage","Promise","writeCategoryLocalStorageCacheMap","fullLobbyInfo","lobbyItemToStore","disableCasinoLocalStorage","enableIndexedDBStorage","writeForceGameLaunchObjInSessionStorage","sessionStorageObjName","gameObj","sessionStorage","getAuthenticatedThumbnailCacheKey","getAnonymousThumbnailCacheKey","getThumbnailCacheKey","setThumbnailLocalStorageCacheMap","thumbnailGames","forceLaunch","getThumbnailsfromLocalStorage","removeThumbnailfromLocalStorage","removeItem","readForceGameLaunchObjDataFromSessionStorage","objName","ForceGameLaunchObjData","getAllCategoriesFromLocalCache","browserLocalStorageCategoryDataUpdateInterval","setGameToStickersMap","getGamesDataFromCache","devSettings","gameDataSet","singleGameData","localStorageTimeStamp","browserLocalStorageCacheDuration","setGameDataCache","getGameToStickersMap","_CacheManagerService","UnfinishedGamesService","cacheManager","unfinishedGames","unfinishedGamesFromAllLobby","unfinishedGamesSubject","unfinishedFeedObservable","unfinishedGamesFromAllLobbySubject","unfinishedFeedFromAllLobbyObservable","setUnfinishedGames","apiurl","gamesServices","cloneDeep","rpGamesFilterInLiveCasino","filterLiveCasinoGames","rpWidgetGamesFilterInLiveCasino","categoryCoreLookUp","y","includes","getUnfinishedGamesFromAllLobby","getUnfinishedGames","checkForUnfinishedGame","_UnfinishedGamesService","ctx_r0","hotIcon","ɵɵsanitizeUrl","epcotHotIcon","GameEmbedComponent_div_3_span_1_img_1_Template","GameEmbedComponent_div_3_span_1_img_2_Template","enableEpcotSubNavigation","GameEmbedComponent_div_3_span_1_Template","isFastLoadingGame","ɵɵpureFunction2","_c1","jpRibbonStyles","ɵɵpureFunction1","_c2","newJackpotRibbonStyling","enableHotIcon","de","$event","_r2","ɵɵnextContext","displayQuickInfo","_r3","toggleFavourite","GameEmbedComponent_div_7_ng_template_2_div_0_Template","useFavouriteGames","GameEmbedComponent_div_7_div_1_Template","GameEmbedComponent_div_7_ng_template_2_Template","useQuickInfo","Favourite_r4","_r6","_r5","GameEmbedComponent_div_9_span_3_Template","title","enableDetailPage","forceDetailPage","GameEmbedComponent","favouriteService","messageQueue","unfinishedGamesService","jackpotDataService","gameLaunchFactoryService","embedGameClicked","gameClass","forceVisible","QuickInfoDisplay","jackpotData","subnavConfig","provideSubNavigationConfig","enableJpTickingForLobbyType","showJackpotOnGameTiles","showJackpotOnGameTilesLobbyType","unfinishedStyle","bageStyle","unfinishedBG","unfinishedBackground","unfinishedBGOpacity","unfinishedText","UNFINISHED","favouriteGamesLobbyType","enableQuickInfoLobbyType","showGameTitle","setGameClass","subscribrToUnfinishedFeed","setJackPotValue","subscribtToJackpotFeed","hotIconPath","unfinishedFeedSubscription","jackpotHandle","onResize","ngOnChanges","FavouriteGames","Navigator","navigateToLogin","categorytype","hideQuickInfo","mouseOver","overlayVisibilityStatus","overlayStatus","mouseLeave","clearPersistent","setUnfinishedImageStyle","isUnfinishedBadge","radius","setBageStyle","fullStyle","isiOS","test","textLength","enableRibbonConfig","demoAvailable","isNewBadge","isCashbackBadge","isCasinoLiveBadge","isFlagBadge","Le","outputs","ɵɵNgOnChangesFeature","ɵɵresolveWindow","GameEmbedComponent_div_3_Template","GameEmbedComponent_div_4_Template","GameEmbedComponent_div_7_Template","GameEmbedComponent_div_9_Template","_c0","ɵɵstyleMap","NgStyle","NgIf","NgClass","_GameEmbedComponent","ctx_r1","categoryRoute","LazySearchDesktopComponent","LazySearchDesktopComponent_Defer_0_Template","ɵɵdefer","LazySearchDesktopComponent_Defer_1_DepsFn","ɵɵdeferOnImmediate","_LazySearchDesktopComponent","AdvanceGameDataModel","AdvanceGameDataService","casinoLobbyService","advanceGameDataModel","getAdvanceCategoryInfo","gameLaunchParam","parentcategoryId","subcategoryId","categoryType","catInfoObject","getCategoryInfo","rowNumber","catInfo","categoryInfo","featureid","filterFeatureIds","parentLMTCategoryId","lmtCategoryId","parentCategoryId","subCategoryId","createAdvanceGameModel","parentCategory","subCategory","columnNumber","iconTypeForTracking","gridPosition","advanceGameDataConfig","provideAdvanceGameDataConfig","featureId","enableAdvanceGameData","iconSize","setRemainingAdvanceGameDataParameters","gameClickedFromSearchAdvanceGameDataModel","section","gridPos","browserName","getCapability","browserVersion","osName","osVersion","devicemake","vendor","setAdvanceGameModel","getAdvanceGameModel","advanceGameDataModelObj","appendAdvanceGameDataUrl","channelId","device","isMobilePhone","isTablet","clientVersion","model","appType","isNativeApp","advanceGameDataParamArray","advanceGameDataUrl","advanceUrlPattern","finalUrl","appendAdvanceGameDataQueryString","theString","regEx","encodeURIComponent","setGameLaunchProductsIndex","windowObj","clientConfig","vnHeader","headerPrduct","ProductIndex","isMobile","vnBottomNav","items","bottmNavItems","CasinoLobbyService","_AdvanceGameDataService","CashierService","getQuickDepositAllowedStatus","cashier","_CashierService","FreespinSummaryService","tracking","freeSpinsGameDetails","freeSpinsCategoryDetails","freeSpinsRewardDetails","freespinsMoreInfoClick","freeSpinsSummaryData","freeSpinsSummaryDataPublisher","freeSpinsGameDetailsObser","freeSpinsCategoryDetailsObser","freeSpinsRewardDetailsObser","freespinsMoreInfoClickObser","freeSpinsGameDetailsMap","freeSpinsCategoryDetailsMap","freeSpinsRewardDetailsMap","freeSpinsSummaryDataObser","moreinfoUrl","freeSpinsSummaryDataMapObservable","setFreespinsummary","freeSpins","setFreespinsummaryData","freeSpinResponse","freeSpinSummaryData","rewardDetailsData","freeSpinRewardDetails","timeZoneData","timeZone","gameDetails","gameTypeDetails","rewardDetails","userRewardId","getTimeZoneInfo","getFreespinCountInfoForGame","getFreespinCountInfoForCategory","getFreeSpinRewardDetail","rewardId","getFreeSpinRewardDetails","rewardIds","providefreeSpinsClientConfig","freeSpinsMoreInfo","rewardetails","rewardDetailItem","freespinRewardId","String","redirectUrl","errorCode","code","pageName","v68","freespinMoreinfoClick","addTrackingEvent","categoryEvent","labelEvent","actionEvent","positionEvent","locationEvent","eventDetails","disPlaycontent","TrackingService","_FreespinSummaryService","GameLobbyModel","isDataNotAvailable","infoIconClass","GameDataManager","gameDataLookup","gamesLookUp","gameDataFromLMT","liveCasinoLookup","gameLookUpFilledPublisher","gameLookUpObservable","formIconImageUrl","gameModelItem","isArcade","gameIconTemplate","getGameIcon","getGameFormat","setGameLobbyModel","arcadeLobbyType","currentLobbyType","gamelobbyModel","provider","ownerId","sticker","internalGameName","gameIndex","getRowSpan","getColSpan","arcadeConfig","provideAracadeLobbyConfig","lobbyInfo","getLobbyInfo","gameConfigMap","arcadeIconConfigMap","iconConfigMap","gameIcon","enableGameIconImageSuffix","getAllGamesFromLMT","getGameData","gameDataFromCache","tryAndGetGameDataFromCache","gameNames","updateLookUp","createEmptyGameModel","gamesData","getGamesDataFromLookUp","gameDataFromLocalStorage","emptyGameModel","gameDataMap","setDefaultGameIcons","gameIds","gamesModel","GameModelItem","getLMTGameData","getGameDescription","providerId","_GameDataManager","Type","Group","NA","GameLaunchTrackingService","track","trackingData","config","provideGameLaunchTrackingConfig","trackDataLayer","onetrustKey","onetrustTracking","enabled","payload","endpoint","getPayload","trackAPI","position","description","favourite","playingStatus","displayName","categorySubType","recommendationType","lobbyName","lobbySource","optimoveSegment","eventData","ComponentGameName","ComponentGameType","ComponentGamePosition","ComponentGameGridPosition","ComponentGameContainerLocation","ComponentGameStatus","ComponentGameContainerDescription","ComponentGameFavorite","ComponentGamePlayingStatus","ComponentGameDisplayName","ComponentCategoryType","ComponentCategorySubType","ComponentRecommendationType","CasinoLobbyName","CasinoLobbySource","CasinoOptimoveSegment","GameOpen","getTimeStamp","gameTrackingObj","clickTimeStamp","getPageName","getCookieValue","getSessionValue","sessionId","sessionValue","getDistinctId","accountId","mp","token","getFrontEndValue","applicationName","getClientId","cid","getAll","GA3","getGA3Payload","GA4","getGA4Payload","MP","getMPPayload","specificParams","commonParams","tid","gA3","measurementId","ds","z","random","ua","je","dt","dl","dr","referrer","dh","ul","culture","geoid","geoCountry","ec","ea","ni","sid","gA4","group","LCG","cd1","cd5","cd6","cd8","cd11","cd12","cd13","cd84","cd126","cd127","cd128","cd129","cd130","cd131","cd132","cd133","cd134","cd135","cd164","cd154","cd155","cd170","cd171","cd172","cd3","country","frontend","cd15","cd33","cd35","cd36","cd38","cd39","cd40","cd41","cd42","cd43","cd44","cd96","cd97","cd100","cd157","cd174","cd194","cd195","cd196","cd119","assign","measurement_id","api_secret","apiSecretKey","client_id","user_id","timestamp_micros","user_properties","appinfo","device_native","prof_country","prof_customerid","prof_loggedin","page_fe","events","page_title","page_location","page_referrer","page_hostname","session_id","seg","category_event","label_event","action_event","location_event","event_details","prof_currency","clean_page_URL","game_name","game_position","game_category","game_grid","game_type","game_fav","game_id","game_status","game_containerloc","game_containerdesc","position_event","test_abtest","category_type","category_subtype","game_recommendation_type","lobby_name","lobby_source","optimove_segment","custom_timestamp","user_agent","page_name","ip","verbose","properties","distinct_id","time","app","GridPosition","Position","Section","CategoryType","CategorySubType","ContainerDescription","ContainerLocation","DisplayName","Favourite","Name","PlayingStatus","Status","RecommendationType","LobbyName","LobbySource","OptimoveSegment","Brand","Host","Label","domain","Referrer","Path","URLSearchParams","xhr","XMLHttpRequest","send","_GameLaunchTrackingService","JackpotService","_JackpotService","GameLaunch","replaceRouteInHistory","isDemoLaunch","skipUnfinGame","specialProduct","trackingproduct","isNewSportsNative","returnUrl","highlightedColor","Globalsearchsection","skipMetaDataCheck","fetchLiveGameIFrame","customLobbyTypeMap","moreInfoOverlay","isMoreInfoOverlay","audioFrom","isFavorite","OpenLoginDialog","loginDialogService","preLoginConfig","providePreLoginConfig","redirectForLogin","nemIDHost","nemIdPathSegment","whenReady","afterclosesubcription","afterClosed","casinoCoreGamelaunchService","stopAudio","loginCloseUrl","LoginDialogService","_OpenLoginDialog","RecentGamesService","cozyBingoDataService","recentGames","recentGamesFromAllLobby","mostRecentPlayedGames","recentGamesSubject","recentGamesFeedObservable","recentGamesFromAllLobbySubject","recentGamesFeedFromAllLobbyObservable","isRpfavWidgetDisplayed","isRpfavWidgetDisplayedObservable","collectiveRecentGames","setRecentGames","casino","gamevariant","arcadeLobby","filterArcadeLobbyGames","casinoGames","getrecentGames","getrecentGamesFromAllLobby","recentPlayedGames","getMostRecentlyPlayedGames","getMostRecentlyPlayedRouteInfo","recentlyPlayedClientConfig","provideRecentlyPlayedGamesConfig","isMostRecentlyPlayedEnabled","mostRecentlyPlayedRoutes","recentlyPlayedRoutes","mostPlayedRoute","isRpfavDisplayed","getRecentGames","_RecentGamesService","SlotRacesService","claims","categoryRoutePrefix","stickerMap","raceGamesMap","contentPublisher","contentData","raceRuleConfigs","rules","rulesBanner","placeholderCardImage","coinEconomy","textTranslations","sharedList","versionedList","tips","errorMessages","entryDetails","notifyPublisher","Subject","notifyObservable","liveRacesPublisher","liveNow","liveRacesData","forcRacepublisher","forceRace","forceCoinBalancepublisher","forceCoinBalanceObs","upcomingRacesPublisher","upcomingToday","upcomingTomorrow","upcomingRacesData","globalTimerPublisher","globalTimerObservable","updateNavigationCategories","updateNavigation","stickerRacesPublisher","stickerRacesData","rtmsDatPublisher","rtmsData","coinDetailsPublisher","coinDetails","raceCompletedPublisher","raceCompletedObs","selectedEntryOption","pollForUser","globalTimerInterval","disabledGameNames","promoPrizesMap","categoryMap","slotInputArr","setNotifyStatus","promoId","slotUniqueId","initSlotRaces","disabledGames","lmtData","isDLL","isInItSlotRaces","emptySlotRacesData","isSlotRacesInitiated","updateLobbyNavigation","getSitecoreData","configs","getlmtData","enablePreLogin","getLiveRaces","getUpcomingRaces","updateGameMetaData","enableSlotRacesStickers","slotRaceStickersData","slotRaces","setSlotRaces","setSlotRacesParams","isPrizesMapEmpty","disablePrizesApiCall","getPrizes","timer","globalTimerCountDown","getRaces","isSlotRacesEnabled","startLiveSlotPolling","liveSlotPollingStarted","pollingInterval","racesListPollingInterval","stopLiveSlotPolling","fetchNPMData","progressBarColor","innerHTML","getElementsByTagName","getPrizesFromAPI","prizesMap","offers","createPrizesMap","catchError","prizes","promoPrizes","prize","rankDetails","prizesArray","configMaps","beatBanker","isBeatBanker","getPrizesForPromo","currencyPrize","promo","hasOwnProperty","slotInput","getRacesList","slotDuration","upcomingSlotsDuration","disablePreloginApiCalls","getRacesFromAPI","races","statusDtls","statusCode","getRaceCompletedStatus","offerResponses","makeDateConversions","enableSlotRacesPhase2","self","finalRaces","race","startDate","startTime","endDate","endTime","optinExpiryDate","optinExpiryTime","startTimeAMPM","getAMPMTime","populateRacesObject","hours","getHours","minutes","getMinutes","enable24HrTimeFormat","ampm","mnts","isGameMetadataAvailable","tomorrow","setHours","dayAfter","liveSlots","upcomingSlots","every","ordandunordGames","mappedObject","filterPromoGames","raceMetaData","gameMetadata","gameVariantList","unorderedGames","orderedGames","getOrderedGames","isLive","publishRaces","tempGameList","getLeaderboard","slotId","maxRank","fromResultsHistory","getLeaderboardFromAPI","updateRacesArrays","upcomingRaces","liveRaces","newLiveRaces","timeoutInterval","combineLatest","raceData","corrLive","stickersDataMap","raceItem","milliseconds","seconds","upcomingSlotStickersDuration","getUpdatedSlotStickerDuration","stickerText","awardType","additionalParams","awardTypeSticker","subType","enableStickersFreeToPlay","sticker_free_to_play","enableStickersFreePlayTech","sticker_free_play_tech","stickerItem","getResultsHistory","getResultsHistoryFromAPI","formatResults","throwError","slotStartDate","slotEndDate","dateStr","getDate","getMonth","getFullYear","promotion","isWin","getParsedData","rank","Number","FromRank","ToRank","prizeIcon","Icon","banker","buildGameIdBasedMetadataIndex","metadata","indexedMetadata","metadataItem","prmId","fromDate","updateOptinStatus","coinsForOptin","GetCoinBalnce","updateNotificationStatus","notificationStatus","notificationPopupTimeout","addErrorMessage","errCode","getErrorMessage","Single","scrollTo","timerInterval","forceOptin","forceOptinRace","parsedForceOptinRace","forceCoinBalance","parsedForceCoinBalance","coinBal","getCurrentRaces","disableWhenNoPromotions","newNavCategoryVisibility","isNavCategoryVisible","slotRacesCategoryId","enableSlotRacesForLobbyType","gameClose","slotRacesCategory","lmtGames","categoryname","gamelist","tempArray","patGames","Set","updateCoinIcon","isCoin","getcoinValue","selectedEntryFilter","entryFilter","selectedFilteredtOption","getselectedEntryFilter","subcategories","bindCoinImg","coinImg","raceObj","isDisplayCoin","coinSrc","isCoinAward","getCoinDetails","responseType","getAwardTypeDetails","ClaimsService","_SlotRacesService","Lt","ɵɵtextInterpolate1","ɵɵpipeBind2","Game","favouriteStyle","unFavouriteStyle","_r4","addFavourate","EmbeddedGameViewComponent_div_3_div_2_li_6_span_2_Template","openRequestedPopup","summaryPopUpIsOpened","ɵɵpureFunction0","titlePopout","_r7","toggleExtrasColumn","EmbeddedGameViewComponent_div_3_div_2_div_1_Template","openDialog","EmbeddedGameViewComponent_div_3_div_2_li_6_Template","EmbeddedGameViewComponent_div_3_div_2_li_7_Template","toggleFullScreen","EmbeddedGameViewComponent_div_3_div_2_li_11_Template","EmbeddedGameViewComponent_div_3_div_2_li_12_Template","isFullScreen","depositButtonString","titleExitFullScreen","titleFullScreen","extrasColumnFlag","ɵɵelementContainerStart","$o","isIframeVisible","iconsNewPosition","iframeUrl","EmbeddedGameViewComponent_div_3_div_2_Template","EmbeddedGameViewComponent_div_3_ng_container_4_Template","_r9","_r11","EmbeddedGameViewComponent_div_4_div_3_li_3_span_2_Template","_r12","_r13","_r14","EmbeddedGameViewComponent_div_4_div_3_div_1_Template","EmbeddedGameViewComponent_div_4_div_3_li_3_Template","EmbeddedGameViewComponent_div_4_div_3_li_4_Template","_r10","EmbeddedGameViewComponent_div_4_div_3_li_8_Template","EmbeddedGameViewComponent_div_4_div_3_li_9_Template","ɵɵsanitizeHtml","Global","AddToFavorites","AddedToFavorites","_r15","EmbeddedGameViewComponent_div_4_div_8_span_2_Template","EmbeddedGameViewComponent_div_4_div_8_span_3_Template","EmbeddedGameViewComponent_div_4_div_8_span_4_Template","_c3","i_r17","_r16","gameClickedOnSearch","_c4","isLiveDealerOpen","ɵɵpropertyInterpolate1","game_r18","borderRadius","EmbeddedGameViewComponent_div_4_div_9_div_4_Template","RecentlyPlayedGames","RecentlyPlayedGamesList","i_r20","_r19","game_r21","EmbeddedGameViewComponent_div_4_div_10_div_4_Template","GamesyouMightLikeMessage","ɵɵpipeBind3","recommendationGamesList","EmbeddedGameViewComponent_div_4_div_2_Template","EmbeddedGameViewComponent_div_4_div_3_Template","_r8","EmbeddedGameViewComponent_div_4_div_7_Template","EmbeddedGameViewComponent_div_4_div_8_Template","EmbeddedGameViewComponent_div_4_div_9_Template","EmbeddedGameViewComponent_div_4_div_10_Template","egvOverlayFlag","EmbeddedGameViewComponent","recentGameService","gameDataManager","jackpotService","dialog","balanceService","commonMessagesObject","m2Page","route","productHomepagesConfig","freespinSummaryService","cashierService","advanceGameDataService","slotRacesService","gameLaunchTrackingService","sendDataToEmbeddedGamePopUp","sendDialogCloseEventToEmbeddedGamePopUp","isGreaterthan","gamesUMightLikeList","gamesUMightLikeStringList","recentlyPlayedGamesStringList","iconShrinkClickedFirst","GYML","recommendationGames","combineData","multipleGameLaunched","isGameCloseTracked","rpGameClickedEGV","allowAttributes","iframeAllowattributes","gameEmbedPop","cozyBingoIframe","getElementsByClassName","setGameTitle","globalsearchconfig","enableNewEmbeddedViewIconsPosition","homeUrl","snapshot","queryParamMap","isQuickDepositAllowed","teaserLaunchRealtiveUri","recommendationFeed","nonCriticalConfig","provideNonCriticalConfig","enableRecommendationGames","getGamesYouMightLikeOnLMT","recentGamesString","assignRecentlyPlayedGames","recentObs","lobbyLoadedObservable","RecentlyPlayedNGamesUMightLike","favouriteGameIds","FavouriteHeart","isLoaderHide","maximizeFullScreen","gameLaunchSuccess","useSingleCookieForGameIndexCountInEGV","getFromCookie","errorMessageQueue","Favorites","stopSchedulePollingInBingo","setAttribute","enableOverlayMobileSearchTopPosition","embeddedGameOverlayTopAllignment","gameid","recommendationUrl","recommendationgames","lmtGameMetaData","setToCookie","GetParam","exec","getDisabledGames","gamesYouMightLikeDataSet","gamesModellist","filteredGame","disabledGame","jackpotvalue","getJackpotValueForGame","assignRecommendationGamesList","gameslist","recommendationGamesData","assignGames","recentandUnfinishedGames","RecentlyPlayedGameData","assignGamesYouMightLike","GYMLGameData","defaultGamesModel","isUnfinished","getUnfinishedStatus","jackpotsFeed","refreshJackpots","handleScreenChange","closeOnRCPUClose","gamechange","gameCloseAckEventReceived","updateGameInfo","gamevariantname","get_formatted_timestamp","enableArcPlayBreakEvent","gameclickedfromsearch","isGameCloseAckEventEnabled","gameClickedProcessing","popUpClicked","popUpClickedProcessing","enableGamestartCookie","getGameMetaData","gameModel","getDesktopGameLaunchUrl","callbackResponse","unloadHandler","fullscreenchangeHandler","webkitfullscreenchangeHandler","mozfullscreenchangeHandler","doc","mozFullScreen","MSFullscreenChangeHandler","ngDoCheck","fromEmbedded","skipRefresh","triggerRecentGameCall","closeGamePopUp","gameExited","emitVideoStatus","freespinsConfig","launchCategory","refresh","ping","contentWindow","isWidget","isGameCloseApiEnabled","closeGame","takeUntil","gameCloseAction","gameCloseDelay","invokerProductHomePage","getGameLunchType","isFreeSpinSummaryEnabled","enableRefreshonGameClose","playerPlayBreakStatus","globalJackpotClientConfig","provideGlobalJackpotConfig","path","globalJackpotPathSegments","isCasinoDomain","urlParser","loginMessageKey","openNav","closeNav","fullScreen","checkFullScreen","adjustGamesPanel","requestFullScreen","minimizeFullScreen","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","fullScreenElement","msFullscreenElement","webkitIsFullScreen","mozRequestFullScreen","webkitRequestFullScreen","querySelector","msRequestFullscreen","toggleFullWindowScreen","allowFullScreen","screen","GamePosition","isSearch","lobbyData","getLobbyBasedOnLobbyType","gameContainer","gridPosToBePass","gamemodel","gamePosition","currentTimeStamp","checkGameInGameMetaData","gameNotFoundAction","storeUserInfo","panelClass","instance","componentInstance","windowOptions","embededPopUpWidth","embededPopUpHeight","gamePopOutWindow","checkPopOutWindowOpenInterval","contentMessageElement","HTMLElement","egv_overlay","top","clientHeight","dateNow","datetime","getMilliseconds","flag","stopSchedulePolling","Disable_SchedulePolling","DOCUMENT","MatDialog","BalancePropertiesService","Location","ActivatedRoute","hostBindings","ɵɵresolveDocument","EmbeddedGameViewComponent_span_2_Template","EmbeddedGameViewComponent_div_3_Template","EmbeddedGameViewComponent_div_4_Template","MessagePanelComponent","NgFor","SlicePipe","DatePipe","_EmbeddedGameViewComponent","TeaserService","_headerTeasers","headerTeasers","asReadonly","teaserDataPublisher","teaserDataObservable","optMiniTeasersMap","optMiniTeasersMapPublisher","optMiniTeasersMapObservable","teaserMutedSubject","teaserMutedObservable","indexChangedSubject","indexChangedObservable","indexChangedDataSubject","indexChangedDataObservable","setIndex","muteVideo","identifier","identifierClass","realIndex","isMuted","muteAllVideos","setTeasers","teasers","getTeaserData","indexChangeTeaserData","teaserData","fetchOptMiniTeasers","optMiniTeaserPaths","contents","mercuryBgImage","getOptMiniTeasers","_TeaserService","eventFromEmbeddedGameView","dialogCloseEventFromEmbeddedGameView","EmbeddedGamePopupComponent","teaserService","disableClose","singleGameErrorTimeout","scrollTopTimeout","messageQueuePublisher","showMessageInBingo","CasinoCoreGamelaunchService","EmbeddedGamePopupComponent_div_4_Template","_EmbeddedGamePopupComponent","GlobalTranslateComponent","casinoClientConfigObservable","isClientConfigLoaded","_GlobalTranslateComponent","goBack","HeaderBoxComponent","navigateTo","isVisible","showInNative","isNavigation","observers","goBackURL","HeaderBoxComponent_div_0_Template","_HeaderBoxComponent","GameLaunchPlaces","gameIconOnLobby","gameTitleOnLobby","gameInfoIconOnLobby","demoPlayPage","playNowOnDetailPage","playNowOnDetailPageAfterScreenshots","playRedirectCtrl","unfinGamePage","searchOnLobby","teaser","activeFreeSpin","isLobby","place","_GameLaunchPlaces","goToPlayGame","ɵɵclassMapInterpolate1","cssClass","GameDetailButtonsComponent","gameLaunchPlaces","clientSideConfig","provideClientSideConfig","twoButtons","playForFunAndRealButtons","isInhouseGame","launchType","toLocaleString","gameLaunchedFrom","launchGame","GameDetailButtonsComponent_button_0_Template","GameDetailButtonsComponent_button_1_Template","GameDetailButtonsComponent_button_2_Template","GameDetailButtonsComponent_button_3_Template","_GameDetailButtonsComponent","isFavouriteGame","responsibleGamingLink","linkText","disclaimer","GameDetailComponent","favouritesService","assignGameModel","gamedetailObj","playButtonMode","closeGameDetailDialog","GameDetailComponent_div_8_Template","GameDetailComponent_div_9_Template","GameDetailComponent_cc_game_detail_buttons_10_Template","GameDetailComponent_a_11_Template","GameDetailComponent_div_12_Template","GameDetailComponent_div_13_Template","GameDetailComponent_div_14_Template","GameDetailComponent_button_15_Template","screenshots","TrustAsHtmlPipe","_GameDetailComponent","GeolocationActivatorService","activatedRoute","isActive","geolocationConfiguration","provideGeoLocationConfig","isDisabledViaRoute","disableFeaureQueryParameter","queryParameterValue","_GeolocationActivatorService","PermissionsManagerComponent","templateLoaderHost","matContext","permissionsInfo","permissionsConfig","geoCoordinatorService","parsedConfig","prepareConfig","templateContent","managerClasses","permissionInfoClasses","devicePropertyClasses","currentOrientation","deviceType","browserClasses","permissionsManager","loadAssets","configStore","hostElement","activateTemplate","handleCloseDialog","permissionDictionaryConfig","dictionaryEntries","dictEntry","viewQuery","isAndroid","isChrome","isNexus","isRobot","Ge","_u","_PermissionsManagerComponent","GeoCoordinatorPermissionsManagerService","documentRef","_permissionsInfoOptions","handlePermissionsInfo","console","log","canReopenDialog","closePermissionsInfo","textDictionary","handleDialogClassesDecoration","whichClasses","afterOpened","cls","existing","incoming","_GeoCoordinatorPermissionsManagerService","GeolocationCoordinatorService","deviceservice","userService","_initializePending","_uninitializePending","isSynchronizedUninit","coordinationSynchronizer","messageEvent","geolocationConfig","synchronizeCoordination","synchronizationEvent","geolocationCoordinator","uninitialize","hookupCoordinator","once","triggerFetchLocation","appDownloadUrl","probe","initialize","session","plcIdentifier","showPLCPopup","_initializationInput","onInitialized","callback_funvction","_onInitialized","onUninitialized","_onUninitialized","_onError","onProbed","_onProbed","registerUnload","onunload","registerSynchronization","getPLCIdentifier","onGeolocationError","errorData","onGeolocationInitialized","initializationData","onGeolocationUninitialized","onGeolocationProbed","probeResult","bind","onAvailable","_GeolocationCoordinatorService","RetryType","errorMessage_r1","ctx_r2","reCheckLocation","recheckLocation","ok","TriggerGeoLocationOption","GeoLocationErrorComponent","geoLocationValidationService","geoLocationErrorMessages","shouldRetryLocation","checkGeoLocationError","getGlobalConfig","geoComplyErrorHeader","turnOnWiFiDescription","addressAboveItemsDescription","invalidLocation","shouldCheckNativeGeoLocation","fetchLocationDetailsfromNativeEvent","reCheckLocationClicked","formattingMessage","rule","retry","NonRetry","isRetryButtonEnabled","errMsg","Retry","GeoLocationValidationService","GeoLocationErrorComponent_li_11_Template","GeoLocationErrorComponent_button_15_Template","GeoLocationErrorComponent_button_16_Template","_GeoLocationErrorComponent","geolocationCoordinatorService","retryCount","reCheckLocationClickedObservable","validateLocation","isLocationFetchTimeOut","isLocationFetched","resetTimerAndRefetchLocation","errorResponse","gdsApiInterval","initialRetryInterval","getLocationDetailsfromGDS","startTimer","clearTimer","resetTimer","showGeoLocationError","gdsUrl","isLocationAvailable","locationStatus","isRetryableErrCode","troubleShooterMessages","tsMsgs","refetchLocationOnRetryableErrorCodes","refetchGdsApi","retryInterval","clearTimeout","enableRetryCountToCallNative","gdsFailureCount","assignToCoordinatorService","sendToNative","EventName","Action","HttpClient","RemoteLogger","_GeoLocationValidationService","GeolocationTrackingService","trackingService","trackPosition","_GeolocationTrackingService","download","geocomplyTitle","geoComplyMessage","downloadButtonText","continueButtonText","appDownloaderClicked","geolocationMobileInstallerTitle","oobeeInstallerHeadingText","oobeeInstallerHeadingInstruction","continuePlayOnAppInstructionText","appDownloadLink","continuePlayOnAppUserActionText","playOnAppOrWebPlayerOptionsSeparatorText","continuePlayOnWebInstructionText","oobeeInstallerDownloadStepText","oobeeInstallerDownloadUserActionText","oobeeInstallerContinueStepText","oobeeInstallerContinueUserActionText","popper_r4","geoguardEnquiryUserActionText","geoGuardDescriptionText","GeolocationInstallerComponent","geoLocationCheckService","_domSanitizer","additionalInfo","_geolocationTrackingService","loadingIndicatorService","showLoader","provideDownloadAppFromDeviceConfig","bypassSecurityTrustUrl","AndroidAppDownloadLink","geocomplyText","isMobileInstaller","loadingIndicatorHandler","checkGeolocation","downloadUrl","goToLastKnownProduct","appId","AndroidAppID","iOSAppDownloadLink","iOSAppID","hideLoader","GeolocationCheckService","DomSanitizer","LoadingIndicatorService","GeolocationInstallerComponent_div_1_Template","GeolocationInstallerComponent_div_2_Template","MatDialogTitle","DynamicHtmlDirective","NgxFloatUiDirective","PopperContentComponent","NgxFloatUiModule","_GeolocationInstallerComponent","GeolocationInstallerDialogService","_isDialogOpen","onDialogClosed","closeDialog","isDialogOpen","_GeolocationInstallerDialogService","geolocationInstallerService","geoLocationValidation","isOnErrorInvoked","geoCoordinatorPermissionsManagerService","onInstallerServiceDialogClosed","errorCallback","geoConfig","initializationStatus","closeDialogAndLaunchGame","enableNDBS","showGeolocationInstallerPopup","extractAppDownloadUrlFromErrorData","desktopLocationValidation","onPermissionInfo","seekPermission","onCheckClosed","_GeolocationCheckService","UtilityService","getPositionXY","touch","touches","changedTouches","pageX","pageY","deepMergeObjects","mergeAccumulator","mergees","accumulatedMerge","argumentIndex","nextMergee","nextKeyToBeMerged","call","getDaysInMonth","year","month","getLastMonthArcadeExpiry","monthNames","coinExpiryDay","providePromoCoinEconomyConfig","getLanguageContentMap","languageArray","languageMap","langItem","langResolve","_UtilityService","isConsented","getCookie","ca","decodeURIComponent","caLen","cookieName","setCookie","expireDays","setTime","expires","toUTCString","cpath","consent","isConsent","COOKIE","EXPIRE_DAYS","isODR","odrName","nativeAppCookie","isPokerApp","_CookieService","ODR_NAME","GameLaunchUrlFormationService","claimsConfig","casinoCookieService","launchMGSGame","defaultUrlPattern","gameLaunchParams","casinoCoreGameLaunchResponseParams","gameLaunchQueryParams","casinoCoreGameLaunchQueryResponseParams","featureConfig","currencyCode","enableMultigameView","enableMultiGameVIew","egvFavourites","brandId","frontendId","pingUrl","getPingUrlWithToken","accountUrl","getAccountUrl","historyUrl","getHistoryUrl","indexFilePath","getIndexFilePath","isFavGame","isGeoGuardEnabled","geoPollingUrl","casinoAsIFrameConfig","vnChannel","depositRedirectUrl","updateDepositRedirectUrl","appendOpenCasinoCoreOverlayQueryParam","appendQueryString","pageNumber","sglProduct","isLiveConfig","desktopChannelIds","enableSGLForPokerOrOdr","isPokerOROdr","isOdr","CASINO_WODR","singleGameLaunchUrlFormation","mobileUrlParamArray","languageCode","responsibleGamingUrl","win","casinoEnvironment","userHostAddress","keepAliveInterval","generalTermsAndConditionsUrl","casinoHomeUrl","portalLanguage","routeValue","desktopUrlParamArray","casinoNoLanguageBaseUrl","desktopMGSLiveGameLaunchURL","isLiveGame","desktopMGSGameLaunchUrl","lottoMGSGameLaunchUrl","mgsGameLaunchUrl","enableSlotRaceParams","launchSource","join","encodeQueryParam","addHost","passNativeAppCookieToGameLaunch","nativeApp","isDesktopContainer","coinGame","backToPortalLobby","singleGameUrlParamArray","singleGameLaunchUrl","userToken","sessionToken","gameLogUrl","winGameLaunchFile","lastIndexOf","setCurrentProduct","routeCurrentProduct","getCurrentProduct","queryParamValue","getQueryParameter","updatedUrl","removeParam","splittedURL","params_arr","queryString","provideModularSettingsConfig","productMap","af","parentUrl","_GameLaunchUrlFormationService","GlobalSearchHelperService","presentationBootstraped","contextAvailable","contextResultEventHandler","activeFrom","presentationBootstrappedEventHandler","launchGlobalSearch","launchChannel","launchedFrom","closeGlobaSearch","closedFrom","registerEventHandlers","deregisterEvents","fetchContext","_GlobalSearchHelperService","MonitorService","active","portalInfoAvailable","portalInfo","MONITOR_INACTIVE","monitorActiveStatus","monitorActiveObservable","setMonitorActiveStatus","activate","deactivate","isPortalInfoAvailable","getPortalInfo","managePortalInfo","success","statusMessage","isProtected","_MonitorService","NativeAppFeatures","topBar","footer","navigationBar","fixednav","nativeStyle","NativeAppHelperService","casinoapi","loginDialog","gameLaunchUrlFormationService","nativeAppFeatures","isNativeFeatureEnabled","featureName","handleNativeGameLaunch","gameLaunchModel","launchGameForNativeApp","globalConfig","getLaunchData","isError","errorMessage","gameLaunchUrl","raiseNativeGameLaunchEvent","common","_NativeAppHelperService","NavigatorService","firstLoadFlag","goingBack","showSpinnerForExternalNavigation","defaultNavigateOptions","appendReferrer","detailPage","mcPageConfig","protocol","publicPage","publicPageName","portalPage","appendUrlPrefix","portalUrl","navigate","charAt","promptLogin","_NavigatorService","SearchSectionService","isMobileSearchVisible","isDesktopSearchGYMLVisible","searchVisibilityStatus","searchGYMLVisibilityStatus","setSearchVisibility","setDesktopSearchGYMLVisibility","_SearchSectionService","VCConstService","_VCConstService","CASINO_OPEN_GAME_URL","CASINO_OPEN_GAME","VCClientService","lhProductHomepagesConfig","handleVCGameLaunch","isNotLobby","launchGameForVC","raiseNativeVCEvent","html","showErrorMessageQueue","errorText","lifetime","scope","homePageUrl","launchUrl","gameTitle","nativeGameLaunchConfig","provideNativeGameLaunchConfig","nativeDis","external","isOnlyGameidLaunchEvent","checkPokerVCOutsideCasinoLobby","vendorsList","vendorsforShouldOverrideUserAgent","shouldOverrideUserAgent","isNewMacEvent","casinoEvents","isPokerVC","casinoURL","_VCClientService","generateGuid","m2NativeApp","cookies","vCClientService","nativeAppHelperService","monitorService","geolocationCheckService","cacheManagerService","urlUtility","geolocationActivator","casinoNpmParamsService","searchSection","gshService","utilityService","OPEN_URL","updateFreespinsSubject","updateFreespinsObs","gameDetailPageSubject","gameDetailPageObservable","stopAudioSubject","stopAudioObservable","messageQueueObservable","showDesktopSearch","showGSInDesktopSearch","navItemIndex","isSingleMessage","gameNotAvailableTimeOutData","gameNotAvailableTimeOut","delayAfterRefreshInterval","delayAfterRefresh","millisecondsToDisplayInterval","millisecondsToDisplay","enableSpinnerOnGameLaunch","_gameLaunchInProgress","customRecommendationType","enableGSInRegularSearch","gameMode","isDemo","forceGameLaunchParam","calculateGridPosition","customLobbyType","cl","setActiveCategory","advanceCatInfoObj","gameLaunchTracking","guid","screennameGameLaunchTracking","gamelaunchlocal","enableAccountUpgrade","accountUpgrade","onGameLaunchDone","nativeGameLaunchEnabled","getParams","playUrl","getPlayUrl","downloadAppFromDeviceConfig","downloadAppFromDevice","checkGeolocationAndLaunchMobileGame","checkGeolocationAndLaunchDesktopGame","loginOpenUrl","loginResponseObj","forceGameLaunchObj","timeStamp","appendRUrlToLoginDialogWindow","setGameLaunchNavItems","navItems","findIndex","demo","launchProductId","launchOrigin","isLiveGames","gamelaunchparams","queryStringMap","appendQueryStringMap","gamesConfig","errormessage","downloadAppErrorMsgs","isAnonymousLobbyEnabled","placeCheckForGameDetail","checkforGameDetailVisible","ForceDetailPage","EnableDetailPage","gamedetailPopUpData","handleGamelaunch","handleGameLaunchError","aams","enableNativeOdrEvent","sendCCBEventToPokerAndOdr","launchGameFromResponse","storeSsotokenInCookies","urlParameters","sessionKey","queryMap","validateUser","birthDate","dateOfBirth","minAge","minAgeValidationCasinoPlay","minDate","setFullYear","detailPageMode","detailPageModeLobbyType","vendorsWithOnlyRealMode","vendorsWithOnlyRealModeLobbyType","enableDemoPlay","enableDemoMode","rglinkOnDetailPage","showRGLinkOnDetailPageLobbyType","enablePlaytechLiveGameDetailsPage","startsWith","force","DemoEnabled","DemoAvailable","matchedProviderFound","ResponsibleGamingLink","proceed","monitorStatus","embedGamePopUpData","openEmbeddedGameDailog","launchDesktopGame","errormessages","addClickTimeStamp","gameLaunchRedirectErrorAction","getGameSection","trackingContainer","widgetName","gameContainerDescription","childChildcategoryId","categoryEngName","getCategoryName","backgroundImageLayer1","backgroundImageLayer2","backgroundImageLayer3","trackingGridPosition","Globalsearchgameposition","currentTab","gameLaunchedLocation","isSignPostedGame","havingCasiaGames","returnUrlInQueryParameter","routerState","segment","trackedClassList","trackCategory","returnurl","isDll","getGameNotAvailable","addMultiple","handleDirectDesktopGameLaunch","gameObject","rurl","searchParams","appendString","validateGames","toPromise","statusObj","playBreak","gracePeriod","reload","storeUserDetails","cookieObj","putObject","_CasinoCoreGamelaunchService","cancelBtn","ConfirmMessageComponent_div_0_div_6_Template","depositBtn","messagesInfo","header","closeBtn","purchaseButtonText","ConfirmMessageComponent","ConfirmMessageComponent_div_0_Template","_ConfirmMessageComponent","i_r2","paginationClick","currentIndex","CustomCarouselPaginationComponent","loop","backgroundColor","disableClick","stopPropagation","slideIndex","carousel","swiper","slides","slideToLoop","slideTo","noOfItems","CustomCarouselPaginationComponent_ng_container_2_Template","ɵɵstyleProp","NgForOf","_CustomCarouselPaginationComponent","IntersectionStatus","fromIntersectionObserver","debounce","subject$","intersectionObserver","IntersectionObserver","isIntersecting","videoElementStatus","NotVisible","debounceTime","Boolean","Visible","getSrc","observe","disconnect","currentSrc","childNodes","nodeValue","intersectionRatio","IntersectionObserverDirective","intersectionDebounce","intersectionRootMargin","intersectionThreshold","visibilityChange","destroy$","intersectionRoot","rootMargin","threshold","Rr","_IntersectionObserverDirective","LongPressDirective","onMouseLongPress","touchstart","fromEvent","touchEnd","mousedown","button","mouseup","eventSubscribe","merge","_LongPressDirective","HighlightSearch","pattern","regex","pure","_HighlightSearch","imageThumbnailSrc","GifTagComponent","videoLaunchRealtiveUri","labelPrefix","imageThumbnail","getGameIdFromLaunchUrl","subcategory","isGameUrl","videoBoxContent","GifTagComponent_div_0_Template","GifTagComponent_div_1_Template","LazyLoadImageModule","LazyLoadImageDirective","_GifTagComponent","TimeZoneService","convertToClientTimeZone","timeString","clientTimeZoneSeconds","getClientTimeZoneSeconds","formatTimeFromSeconds","totalSeconds","getSecondsFromTimeString","getUTCSeconds","getTimezoneOffset","timezone","offSetSeconds","getOffsetFromTimeZoneSeconds","formatTimeNumber","timeArray","getTimerStartInstance","startTimeSeconds","currentDate","currentDateSeconds","getSeconds","durationSeconds","getDateFormat","dateFormat","mm","dd","yyyy","hour","newformat","_TimeZoneService","LCTimerComponent","timeZoneService","showDays","daysDisplayText","showTimer","onTimerEnd","displayTime","timerInstance","days","ceil","LCTimerComponent_ng_container_0_Template","_LCTimerComponent","ArcadeLobbyTrackingService","trackEvent","trackingType","uRLClicked","_ArcadeLobbyTrackingService","BetmgmOriginalsService","optInPublisher","getOptInPublisher","publisher","betMgmOriginalsTimerPublisher","betmgmOriginalConfig","providerBetMGMOriginalsConfig","enabledBetMGMOriginals","betmgmOriginalsSitecoreData","betmgmOriginalsConfigurations","optInObservable","getOptInObservable","betMgmOriginalsTimerObservable","betmgmoriginalOptIn","BetmgmOriginalOptInData","getBetmgmOriginalsUserStatus","Error","postBetmgmOptIn","postRequestModel","setOriginalsTimerStatus","isTimerRunning","isTimerValidForOriginals","timerExpiryDate","validateBetMgmOriginalsConfigs","displayBetMGMOriginals","betMGMOriginalsConfig","isUserAuthenticated","SourceType","SourceId","TimerExpiryDate","_BetmgmOriginalsService","BingoGameLaunchService","recentGamesService","currentSessionConfig","isInGameClient","checkUserStatus","isRealPlayer","bingoGameLaunchTracking","isNew","gameType","isInteger","gameContainerLocation","widgetFrameClr","initiateGameLaunch","ballType","favstatus","originUrl","openBingoPlayUserDialog","getCasinoGameLaunchUrl","getGameLaunchUrl","launchBingoGames","responseCode","isForcedGameLaunch","requiredMessages","bingoGlobalMessages","preBuyUserDepositMessage","preBuyUserDepositHeader","confirmCloseButton","preBuyUserDepositBtn","playUrlObj","vfBingo","_gameName","openedRooms","activeroom","focus","cozyBingoConfig","enableBingoGameLaunchPostMethod","lastLoginTime","loginDuration","clientLoginDuration","toNumber","enableLastLoginTimeCheck","postObj","themeId","originGameId","isReplaceGameSrc","variantName","SessionStoreService","CurrentSessionConfig","_BingoGameLaunchService","CategoryManager","lobbyCategoryLookup","parentCategoryLookUpMap","categoryLookUpFilledPublisher","categoryLookUpObservable","defaultCategoryFilledPublisher","defaultCategoryLookUpObservable","gameStickersMap","stickersLookupCompletePublisher","getAllLMTCategories","lmt","defaultCategoryLoadEvent","gymlandRecentfromDefaultCategory","getAllCategories","categoryLookUp","setParentCategoryLookUpMap","tempParentCategories","isNavigationCategory","linkedCategory","category2","lmtSubCategories","parentCategoryid","getDefaultCategoryFromDynacon","defaultyLobbyTypeCategory","getDefaultLMTCategory","getLMTMap","categoryOnAddressBar","getDefaultCategoryInfo","fetchCategoryInfoOnsiteCoreDataCategoryId","sitecoreDataCategoryId","allCategoryLookUpMap","defaultLobbyCategory","defaultCategoryInfo","mapGameStickers","lookUpResponse","_CategoryManager","ToastMessageService","on","iconClass","isIconShown","isShown","off","_ToastMessageService","DiscoverFeedService","discoverFeedObject","displayDiscoverSticker","discoverFeedObservable","discoverFeedStickerObservable","GetDiscoverFeedSitecoreData","disjointFeeds","discoverFeedData","expiryDatecal","discoverContainer","getDiscoverFeed","getStickerExpiryTime","discoverData","highlightExpiryDate","remainingTimeInMints","isStickerDisplay","_DiscoverFeedService","DesignSystemEnablerService","_queryParamReader","configProvider","queryParams","activateDesignSystem","isEnabledInQueryParameter","enablerKeyInQueryParam","enablerEntryInQueryParam","_DesignSystemEnablerService","ForceGameLaunchHandlerService","bingoGameLaunchService","onAppInit","gameLaunchObservable","forceGameLaunchObservable","_ForceGameLaunchHandlerService","GameSelectorWidgetService","widgetsMap","widgetsMapPublisher","widgetsMapObservable","emptyMap","fetchWidgets","widgetPaths","widgets","getWidgetsMap","getWidget","getGlobaConfig","_GameSelectorWidgetService","GameService","gameDataVar","setOverlayVisibility","fromEmbedPopUp","windowWidth","gameDataInfo","getCategoryGamesFromLocalStorage","dataFromSessionStorage","getDataFromSessionStorage","getCacheKey","findGamesInLocalStorage","getGameDataByGameId","dataFromLocalStorage","getDataFromLocalStorage","gamesInLocalStorage","gamesNotAvailableInLocalStorage","localStorageGames","localStorageGamesNotAvailable","_GameService","GamingStoriesStorageCloseModel","PostUserRequestAPIModel","StoryInfoModel","FetchUserRequestAPIModel","ReqStoryIdsModel","ResponseDataModel","uAvg","StoryInfoData","StoryInfoDataInSessionStorage","OptInStoriesTrack","StoriesLocalStorageModel","GamingStoriesService","pausePlayStory","storyPaused","storyHasVideo","spliceDuplicateStore","storyInfoPostRequestList","storyInfoDataInPreLoginSessionStorageList","storeFetchAPIDataResList","duplicateRecords","uInputUndefinedCheck","videoPresentBehaviourSubject","videoPresentObservable","videoProgressBehaviourSubject","videoProgressObservable","changePromoStatusBehaviourSubject","changePromoStatusObservable","pauseStoryBehaviourSubject","pauseStoryObservable","videoMuteBehaviourSubject","videoMuteObservable","fetchAPIBehaviourSubject","fetchAPIObservable","swipeUpPublisher","postGamingStoriesAPIPublisher","fetchGamingStoriesAPIPublisher","storiesFeedPublisher","gamingStoriesPhase2Config","provideGamingStoriesPhase2Config","swipeUpObservable","postGamingStoriesAPIObservable","fetchGamingStoriesAPIObservable","storiesFeedObservable","getStoryContainerData","storyData","gamingStoryItemOptIn","gamingStoryItemOptInData","swipeUpContentList","swipeUpContentData","fetchGamingStoriesAPIRes","fetchUserAPIResponse","postStoryInfoRequestItemsList","fetchstoryInfoDataInPreLoginSessionStorageList","fetchStoryInfoDataList","getStoryContainerCloseList","storyContainerCloseList","getGamingStories","storyContainerPath","productPath","gamingStories","AfterApiCall","getSwipeUpContent","swipeUpContentPath","swipeUpStoryItemContent","getGamingOptIn","optIn","postGamingStoriesAPI","postUserRequestAPIModel","fetchGamingStoriesAPI","fetchUserRequestAPIModel","expirationTime","fetchDataRes","currentEpocTime","storyInfoDataInSessionStorage","sId","subSId","uInput","expiryTime","round","userId","uId","storeFetchAPIDataRes","trackingGamingStoriesPhase2Event","contentPosition","pauseStory","pauseStoryTrigger","pauseVideo","video","stream","paused","pause","playVideo","play","storeGamingStoriesCloseContainer","storyInfoRequestItemsList","storyInfo","storingDataInPreLoginSessionStorage","storyApi","videoPresentStatus","isVideoPresent","videoProgressStatus","videoProgress","changePromoStatus","storyStatusObject","writeGamingStoriesPhase2Array","gamingStoriesLocalStorageArray","readGamingStoriesPhase2Array","gamingStoriesArrayFromLocalStorage","_GamingStoriesService","GlobalJackpotModService","globalJackpotPoolInfoMap","siteCoreData","jackpotConfigData","jackpotTeaserData","jackpotSharedContentData","historyFeedData","defaultTandCData","defaultTandCDataSubject","defaultTandCDataSubjectObservable","setGlobalJackpotPoolInfoMap","pathSegment","jackpotPoolInfo","getGlobalJackpotPoolInfoMap","setSitecoreTemplateMap","getSitecoreTemplateMap","setGlobalJackpotConfigData","getGlobalJackpotConfigData","setJackpotTeaserContentMap","getJackpotTeaserContentMap","setGlobalJackpotSharedContentData","getGlobalJackpotSharedContentData","setGlobalJackpotLobbyTypeMap","getGlobalJackpotLobbyDataFromLocalStorage","setHistoryFeedData","HistoryFeedData","getHistoryFeedData","setDisabledGames","DisabledGames","setDefaultTandCData","getDefaultTandCData","_GlobalJackpotModService","LiveCasinoService","liveGamesLookUp","liveGamesSubject","liveGamesFeedObservable","liveGameswithSitecoreSubject","liveGameswithSitecoreObservable","liveCasinoApiFeedStarted","liveCasinoData","startLiveCasinoApiTntervalFeed","liveCasinoConfig","provideLiveCasinoConfig","liveCasinoApiFeedIntervalRefresh","getLiveCasinoData","liveCasinoApiFeedInterval","isSitecoreInfoRequired","liveCasino","getLiveCasinoDataSuccess","liveCasinoApiDataItems","seatsTaken","liveCasinoApiItemSitecoreData","liveCasinoApiSitecoreInfo","isSitecoreInfoPublished","getSitecoreInfoPublishedStatus","getLiveGamesLookUp","getLiveGameLookUpInfo","liveGameInfo","vendorName","vendorname","getLiveCasinoApiSitecoreInfo","getFlagIconURL","language","flagUrlPattern","isTableOnline","tableStatus","countdown","timerStartInstance","setLiveCasinoStartVariable","getLiveCasinoStartVariable","clearLiveCasinoDataPoints","secondsToStartTable","_LiveCasinoService","RecommendedGamesFilterModel","answers","RecommendedGameModel","WizardType","NewQuickInfoService","getGameCatalogDetails","vendorId","_NewQuickInfoService","NewsFeedV2Service","newsFeedV2Subject","newsFeedV2Observable","newsFeedMap","newsFeedV2WidgetSubject","newsFeedV2WidgetObservable","setNewsFeedMap","getNewsFeedMap","newsFeedMapItem","isSiteCoreDataFetched","setNewsFeedContent","setNewsFeedResponseArray","newsFeedResponse","tempArr","ele","fields","subHeader","gameID","condition","subTitle","displayLiveStatus","displayDealerImage","_NewsFeedV2Service","NewsFeedService","dslService","_newsFeed","ReplaySubject","newsFeed$","shareReplay","newsFeedMapper","mergeMap","validateDisplayCondition","setNewsFeed","setNewsFeedResponse","newsFeedData","displayGameNameEvent","newsFeedConfig","provideNewsFeedCasinoConfig","newsFeedPosition","newsFeed","of","evaluateExpression","first","DslService","_NewsFeedService","OptimizedTeaserManager","optimizedHeaderTeasers","lMTCategories","setOptimizedTeasers","displayMode","maxRenderedTeasers","provideOptimizedTeaserConfig","maxTeasersToBeRendered","teaserResponse","optimizedTeaserContents","globalTeaserSettings","globalTeaserStyles","showTeasers","optimizedTeasers","optimizedHeader","filteredTeaser","ot","teaserItem","setOptimizedTeasersBasedOnCatery","optimizedSubNavigationTeasers","optimizedEmbeddedBelowTeasers","optimizedEmbeddedAboveTeasers","optimizedTopTeasers","teaserHeaders","optimizedTeasersData","getGlobalTeaserSettings","_OptimizedTeaserManager","OtherProductService","updateFavGamesForOtherProducts","updateRecentlyplayedGamesOnOtherProducts","_OtherProductService","CurrencySymbolPipe","locale","getCurrencySymbol","_CurrencySymbolPipe","CurrencyFormatPipe","decimal","_CurrencyFormatPipe","SitecoreImageResizePipe","imageLoadOptimizationConfig","provideImageLoadOptimizationClientConfig","isDynamicResizingEnabled","dynamicResizingQueryString","isImageRezied","qs","_SitecoreImageResizePipe","PlayerStatsService","playerstats","playerstatsObservable","fetchPlayerStatsFeed","feedTypeArray","isFeedRequestRecieved","feedtype","feedType","forkJoin","responses","playerStatsFeedInterval","playerstatsconfig","providePlayerStatsWidgetConfig","playerStatsInterval","addMultiplierImpressionTracking","gameImpressions","game_multiplier_impressions","_PlayerStatsService","PromotedGamesService","promotedGames","promotedGamesFromAllLobby","promotedGamesSubject","promotedFeedObservable","promotedGamesFromAllLobbySubject","promotedFeedFromAllLobbyObservable","setPromotedGames","itemName","getPromotedGames","getPromotedGamesFromAllLobby","_PromotedGamesService","PromotionsBannerService","promotionsDataPublisher","promotionsDataObservable","fetchPromotionsBannerData","promotionsBannerData","getPromotionsBannerData","_PromotionsBannerService","QuickInfoModalService","dataSource","gameDataObservable","setQuickInfoModalData","getQuickInfoModalData","_QuickInfoModalService","WinnersService","recentWinners","recentWinnersObservable","fetchRecentWinnersFeed","winnersFeedInterval","recentWinnersConfig","recentWinnersWidgetConfig","recentWinnersInterval","_WinnersService","SignPostingService","getSignPostingCount","categoryGames","signPostingCount","latestStickerGames","stickers","signPostedGames","_SignPostingService","SmartBannerService","smartBannerStatus","smartBannersExists","smartBannerStatusObservable","smartBannersExistsObservable","hasSmartBanner","toSignal","smartBannerRect","smartBannerStatusChange","isOpened","smartBannersExistsChanged","isListExists","getSbClosedCookieValue","sbId","sbName","getSbInstalledCookieValue","sbInstalledName","installSmartBanner","daysReminder","closeSmartBanner","exdays","exdate","parseInt","setDate","_SmartBannerService","SuperButtonService","findFromCategory","paths","findFromComposition","isDefaultComposition","containerPath","_SuperButtonService","ThumbnailService","thumbnailPublisher","thumbnailDataObservable","setThumbnailData","_ThumbnailService","TimeZoneFormatPipe","timespan","userTimeZoneInfo","userUTCOffsetSecs","userOffsetString","BaseUtcOffset","userUTCOffsetMilliSecs","AdjustmentRules","DaylightDelta","daylightDeltaOffsetSecs","userExpiryTime","_TimeZoneFormatPipe","_WindowRef","SlotRacesTrackingService","coinEconomyFilter","trackPhase2","urlClicked","_SlotRacesTrackingService","FILTER_TYPE_ALL","FILTER_TYPE_COINS_ENTRY","FILTER_TYPE_CASH_ENTRY","FILTER_TYPE_COIN_REWARD","FILTER_TYPE_FREE_ENTRY","LEADERBOARD_COLUMNS_DISPLAYED","LEADERBOARD_COLUMNS_DISPLAYED_PH2","GlobalSearchCustomEvent","GlobalSearchService","hideGlobalSearchBasedOnPath","hideGlobalSearchHeaderAndStickyEntryBasedOnPath","getCurrentPath","globalSearchPathBasedEnabler","pathBasedEnabler","disabledGlobalSearchPaths","disablePaths","enabledGlobalSearchPaths","enablePaths","disablePath","enablePath","hideGlobalSearch","HIDE_HEADER_ENTRY","HIDE_FLOATING_ENTRY","showGlobalSearch","SHOW_HEADER_ENTRY","SHOW_FLOATING_ENTRY","hidingGlobalSearch","_GlobalSearchService","getDropShadow","darkMode","dropShadow","darkmodegametiledropshadow","gametiledropshadow","getBorderRadius","gametileborderradius","isIconSixCategory","getLTileFontFamily","lobbytilefontfamily","getsubCategoryTextColor","subcategorytextcolor","getsubCategoryTitleFontSize","subcategorytitlefontsize","getsubCategorySubTitleFontSize","subcategorysubtitlefontsize","gameIconTheming","theme","_CasinoStylesService","rxEffects","setupFn","assertInInjectionContext","ErrorHandler","destroyRef","DestroyRef","runningEffects","ef","register","obs$","sideEffect","sub","onDestroy","effects","JackpotAndPromotionsService","jackpotGroupSubject","jackpotGroupObservable","postloginfirstJackpotSortCall","promotionsBannerService","setGlobalJackpotPathSegment","pathsegment","globalJackpotPathSegment","initiateJackpotFeedsAndGames","jackpotDataClientConfig","feedCacheConfig","isDisableJackpotCalls","enableJackpotSortGames","getJackpotListFromWidget","jackpotWidget","jp","getGlobalJackpotByLobbyType","isGJLobby","globalJackpotPathSegmentsArray","lobby","initiateJackpotandPromotionBanner","promotionsBannerConfig","providePromotionsBannerConfig","isEnablePromotionsBanner","_JackpotAndPromotionsService","clientConfigService","httpClient","casinoClientConfigLoadedSubject","fillClientConfig","globalSearchConfig","devSettingsClientConfig","videoPreviewConfig","smartLobbyConfig","globalJackpotConfig","liveDealerConfig","nativegamelaunchConfig","widgetConfig","quickInfoConfig","optimizedTeaserConfig","promotionsInfoConfig","discoverFeedConfig","subNavigationConfig","newsFeedCasinoConfig","modularSettingsConfig","promotedGamesConfig","thumbnailConfig","recentlyPlayedConfig","headerTeasersConfig","freeSpinsClientConfig","searchConfig","gamingStoriesClientConfig","promoOfferWidgetConfig","gamificationWidgetConfig","abTestingConfig","gameSelectorWidgetConfig","gameShowHubConfig","commonConfig","liveCasinoLoungeConfig","immersiveLobbyConfig","superButtonConfig","gameLaunchTrackingConfig","modularBingoClientConfig","arcadeLobbyConfig","promoCoinEconomyConfig","minBetGamesConfig","gamePremiereConfig","gameImpressionsConfig","playerStatsWidgetConfig","betMGMOriginals","modularization","setClientConfigLoadedObservable","csCasinoConfig","csFeatures","cslmtData","csGlobal","csCasinoGlobalSearch","csDevSettingsConfig","csGlobalJackpot","csGameConfig","csSmartLobbyConfig","csMcPage","csLiveDealerConfig","csJackpotData","csNativeGameLaunch","csGeolocationConfig","csCasinoAsIFrameOverlayConfig","csFeedCacheConfiguration","csAdvanceGameDataModel","csQuickInfo","csWidgetConfig","csOptimizedTeaser","csPromotionsInfo","csDiscoverFeed","csSubNavigationConfig","csModularSettings","csLiveCasinoApi","csNewsFeedConfig","csPromotedGamesConfig","csSlotRaces","csThumbnail","csCozyBingo","csRecentlyPlayed","csHeaderTeasers","csFreeSpins","csClientSideConfig","csImageLoadOptimizationConfig","csApiPathsConfig","csSearchConfig","csNonCriticalFeedConfig","csAbTestingConfig","csDownloadAppFromDevice","csPromoOfferWidget","csGamificationWidget","csGamingStoriesConfig","csPrelogin","csGameSelectorConfig","csGameShowHubConfig","csCommonConfig","csLiveCasinoLoungeConfig","csImmersiveLobbyConfig","csVideoPreviewConfig","csGameLaunchTrackingConfig","csPromotionsBannerConfig","csGamePremiere","csRecentWinnersConfig","csGamingStoriesPhase2Config","csModularBingo","csAracdeLobbyConfig","csPromoCoinEconomyConfig","csMinBetGamesConfig","csPlayerStatsConfig","csGameImpressionsConfig","csBetMGMOriginals","csModularization","setLmtConfig","customLobbyTypes","provideSmartLobbyConfig","provideThumbnailConfig","provideLiveDealerConfig","provideQuickInfoConfig","providewidgetConfig","providePromotionsInfoConfig","provideDiscoverFeedConfig","providePromotedGamesConfig","providePromoOfferWidgetConfig","provideGamificationWidgetConfig","provideHeaderTeasersConfig","provideSearchConfig","provideABTestingConfig","provideGamingStoriesConfig","provideVideoPreviewConfig","provideGameSelectorWidgetConfig","provideGameShowHubConfig","provideCommonConfig","provideLiveCasinoLoungeConfig","provideImmersiveLobbyConfig","provideSuperButtonConfig","provideRecentWinnersWidgetConfig","provideModularBingoClientConfig","provideMinBetGamesConfig","provideGameImpressionsConfig","provideGamePremiereConfig","provideModularizationConfig","ClientConfigService","_ConfigProviderService","GeoLocationJSPathIdentifier","GeoLocationWindowProp","GeoLocationService","initializeGeolocationCoordinator","bootstrapCoordinationStart","checkGeolocationScript","assetsPath","assetScript","GEOCOMPLYJS","windowProp","GEOCOMPLY","OOBEEJS","GCOOBEE","APPINTEGRATIONJS","GEOLOCATIONCOORDINATOR","appendGeolocationScript","script","_GeoLocationService","lobbyTypeMaps","gJLobbyTypeMaps","lobbyTypeMapsForInvokerProduct","stickersDataSubject","stickersDataObservable","lobbyLoadedSubject","lobbyLoadedSubjectForInvokerProduct","lobbyLoadedObservableForInvokerProduct","forceGameLaunchBehaviourSubject","coinBalancePublisher","coinBalanceObservable","coinStoreDetailsPublisher","coinStoreDetailsObservable","categoryNotFoundSubject","categoryNotFoundObservable","hideSlotRacesTitlePublisher","hideSlotRacesTitleObs","optMiniTeasersSource","postLoginFeedsInitiated","gameSelectorWidgetSource","isNewMoreInfoActive","lobbyLoadEventTracked","postloginfirstTeaserCall","postLoginFirstSlotRaceCall","postloginfirstLiveCasinoCall","discoverFeedService","liveCasinoService","newsFeedService","promotedGamesService","cozybingoService","thumbnailService","gameSelectorWidgetService","gamificationService","GamificationService","CasinoCookieService","jackpotAndPromotionsService","globalSearchService","geoLocationService","disableFullLobbyFetch","setCasinoLobby","setPartialCasinoLobbiesforOtherProducts","targetOverlayLobby","setPartialCasinoLobbiesForOverlay","arcadeCoinExpiry","calculateCoinArcadeExpiry","lobbyLoadEvent","onLobbyLoaded","initiateFeeds","UserLoginEvent","postLoginCalls","rpfavandunfinishedcalled","UserLoggingOutEvent","checkForTouchDevice","initiateDisjointFeeds","initDisjoint","SPORTS_WODR","getThumbnailbasedonroute","gameThumbnail","vipThumail","gt","isVipThumbnail","nonVipThumail","isLobbyLoadEventTracked","setLobbyLoadEventTrackingStatus","initGameSelectorWidget","refreshFeeds","disjointFeedsInitiated","enablePreLoginRecentlyPlayed","enableDynamicSequentialCalls","enableDiscoverFeed","isDisableLiveCasinoCalls","initializeSlotRaces","enableSlotRaces","disableSlotracesCallsOnBootstrap","enableSlotRacesForOtherProducts","slotraceLobbytypeForGamesOrdering","isDisjointFeedsInitiated","fromOnLobbyLoaded","initiatePostLoginDisjointFeeds","enablePostloginPartialCalls","handleForceGameLaunch","forceLoginGameObjectExpirationTime","forceGameLaunchObjData","noGameTraking","forceGameLaunchExecutionTimeOut","checkIfGamePremiereEnabledForCategory","showGamePremiereByLobbyTypeCategory","gamePremiereCurrentLobbyType","initiatePostLoginFeatures","initiatePostLoginRemainingFeed","subscribeCoinBalance","getApplicableLobbyTypes","getApplicableLobbyTypeMapsDynacon","retrieveRawLobbyTypesMapDataFromLocalStorage","respondBack","collectedLobbies","allApplicableLobbyDataPresent","lobbyTypeMapsInCache","feed","checkAndRetrieveAllLobbyTypeMapsOnLocalStorage","UILobby","gameItem","catSitecoreData","displayGameSelectorWidget","gameSelectorWidget","optimisedMiniTeasers","teaserOptimization","enableOptMiniTeasers","checkAndRetrieveAllCustomLobbyTypeMapsOnLocalStorage","checkAndRetrieveAllApplicableLobbyTypeMapsOnLocalStorage","setPartialCasinoLobby","readAndDispatchLobbyDataForGlobalSearch","setCasinoLobbyFromLocalStorage","lmtPartialFeed","setLobbyContent","postLogin","otherProductsLobbyTypeForOdr","fromGlobalJackpotFeedInit","tempLobbyTypeMaps","lmtFeedOfProduct","storeVendorInfoInCache","getAllVendorDetails","coinBalance","coinBalRes","userCoinBalance","balance","coinsEarnedInCurrentMonth","additionalAttribs","getCoinBalance","racesCoinBalance","lobbyTypeMapsFromLocalStorage","userAuthenticated","isPostLogin","publishLobbyLoadedEvent","setCasinoLobbyForInvokerProduct","publishLobbyLoadedEventForInvokerProduct","setLobbyContentForInvokerProduct","initiateCasinoLobby","setSearchCriteriaforCategoryGames","isLoggedIn","raiseLobbyLoadedEvent","setLobbySitecoreData","collectedSitecoreCategory","setLobbyTypeMaps","collectedLobby","setLobbySitecoreDataForInvokerProduct","setLobbyTypeMapsForInvokerProduct","lobbySitecoreData","lobbySitecoreDataForInvokerProduct","getLobbySitecoreData","lobbiesInfo","lobbyMapItem","getLobbyTypeItemMap","checkForLobbyTypeInLobbiesInfo","lobbyContent","getLobbyContent","lobbyFeedJson","lobbyconfiguration","disabledGamesData","lobbyConfiguration","categoryTitleLanguageMap","stickerTitleLanguageMap","languageContent","categories","gamemetadata","getGameMetaDataMap","lobbyCategoriesMap","lobbySubCategoriesMap","lobbyCategory","getLobbyCategory","lobbySubCategory","getLobbySubCategory","filterRecentlyPlayedGames","isFilterRecentlyPlayedGames","filterCasiaCategory","enableFeatureId","isFilterFeatureIds","recentPlayedCategory","getCategoryNameFromSitecore","getSubtitleFromSitecore","getSitecoreInfoForCategoryIdAndLobbyType","isSubCatVisible","engCategoryName","favouritesCategory","subcategoryRoute","isFilterRPGames","subcategoryid","featureIds","gameMetaDataArray","metaLobbyType","categoryGamesConfig","enableCategorySearchCriteria","categoryGamesSearchCriteria","clientDsl","categoryTitleLangMap","getCategoryNameFromLangMap","getNavigationVisibility","isHidden","titleAndSubTitle","getTitleAndSubTitle","subcategoryname","hideSubCategory","langMap","defaultCategoryName","hiddenStatus","overridenCategoryname","headerTitle","delimiterForDynamicGameNames","splitArr","allLobbiesSitecoreData","jackpotWidgetIds","fallbackCategoryId","getCategoryInfoOnLMTId","linkedLMTCategoryId","odrLobbyType","linkedCategoryInfo","categoryItem","isDefaultCategory","getDefaultOrFirstCategoryInfo","defaultCategoryOnDynacon","getDefaultOrFirstCategoryInfoForInvokerProduct","getNavCategories","getLobby","navCategories","hardProductOverride","addCategory","isSlotRacesCategory","categoryurl","categoryUrl","defaultSitecoreObj","isdefault","isCategoryUnderSubLobby","getParentLobby","enableDefaultLink","defaultProductHomeUrl","appendCultureToDefaultUrl","addCategoryForLivegamesIframe","liveGamesCategories","getNavCategoriesForInvokerProduct","getLobbyForInvokerProduct","getStickerMap","categoryName","getLinkedToCategory","categoryArray","lobbyLoadedEvent","casinoLobbyData","setMoreInfoComponentStatus","getMoreInfoComponentStatus","currentDay","getMinBetBasedOnGameId","coinArcade_MinBetGames","default","getIconsuppix","getImagePath","gameFloder","imageFormat","fresSpinsConfig","searchGames","filteredGames","fetchFilteredGames","elementsStartingWithQuery","elementsContainingQuery","fGame","serachQuery","setSearchGameIcon","gameProvider","iconTypeMapping","mainLobby","subLobbyType","_CasinoLobbyService","ctx_r5","game_r7","$implicit","ɵ$index_24_r8","$index","onGameIconError","ɵɵpropertyInterpolate","ctx_r9","game_r11","ɵ$index_36_r12","ɵɵrepeaterCreate","SearchDesktopComponent_Conditional_0_Conditional_1_Conditional_15_For_3_Template","ɵɵrepeaterTrackByIdentity","isMsgVisible","ɵɵrepeater","closeSearchIcon","showGlobalSearchInRegularSearch","SearchDesktopComponent_Conditional_0_Conditional_1_ng_template_3_Template","queryChanged","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","trackInput","searchInput_r3","ɵɵreference","SearchProduct_r4","clickGymlHeading","SearchDesktopComponent_Conditional_0_Conditional_1_For_14_Template","SearchDesktopComponent_Conditional_0_Conditional_1_Conditional_15_Template","idSuffix","showGymlSearch","ɵɵtwoWayProperty","hideDisplayGYML","gymlText","GYMLGames","ɵɵconditional","SearchDesktopComponent_Conditional_0_Conditional_1_Template","innerWidth","SearchDesktopComponent","categoryManager","casinoStyles","activeIndex","keypressed","displayValue","appContext","casinoConfiguration","SearchCloseIcon","setIdSuffix","enableEnhancedSearch","setGYML","gymlCategory","gymlLimitForSearch","gymlGameIds","getGyMLGames","takeUntilDestroyed","lobbyLoadedObs","previousValue","displaySearchCloseIcon","gamesModelList","checkGameIconTheming","getRecomendationGames","lmtGameData","isgYml","gamePos","favGamesSubscribe","list","querySelectorAll","scrollTop","displaySearchResults","docClick","clickInside","wasInside","clickout","clickGymlGames","SearchDesktopComponent_Conditional_0_Template","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormsModule","NgModel","AsyncPipe","DslPipe","_SearchDesktopComponent","moreBoxInfoClick","M","moreInfoClick","freeSpinsFont","fontColor","quickFreeSpinsBoxColor","calculateRewardPercent","rewardData_r4","freeSpinsCountCircleColor","availableCount","ɵɵtextInterpolate3","ofText","totalCount","freeSpinsRemainingText","winAmountSoFar","totalAmountText","quickExpiryDetailsBoxColor","ɵɵtextInterpolate2","expiryDateText","expiryDate","moreInfoText","QuickInfoFreeSpinsComponent","freespinscountbg","freespinsCountBackgroundColor","enableFreeSpinSummary","freeSpinsConfigurations","rewardDataIndex","onMoreInfoclick","clickArea","rewardData","navigationAndDialogClose","onCloseDialogData","noNavigation","rewardPercent","w","QuickInfoFreeSpinsComponent_div_0_Template","NgCircleProgressModule","CircleProgressComponent","CurrencyPipe","_QuickInfoFreeSpinsComponent","gameDescription","showVoltalityPart","volatilityImgLink","volatilityTypeText","howItWorksLink","linesText","lines","isOnlyReels","reelsText","reels","isOnlyMaxpayout","maxPayoutText","maxPayout","QuickInfoGameDescriptionComponent_div_3_div_3_div_1_Template","QuickInfoGameDescriptionComponent_div_3_div_3_div_2_Template","QuickInfoGameDescriptionComponent_div_3_div_3_div_3_Template","hasVolatility","hideVoltalityPart","highVolatilityImagelink","highVolatilityText","highVolatilityDescription","regVolatilityImagelink","regVolatilityText","regVolatilityDescription","mildVolatilityImagelink","mildVolatilityText","mildVolatilityDescription","isLegacy","gotItCta","QuickInfoGameDescriptionComponent_div_3_div_2_Template","QuickInfoGameDescriptionComponent_div_3_div_3_Template","QuickInfoGameDescriptionComponent_div_3_div_4_Template","isShowValuePart","isShowVoltalityPart","QuickInfoGameDescriptionComponent","designSystemEnablerService","moreInfoConfiguration","MaxPayoutText","ReelsText","LinesText","HowItWorksLink","GotItCta","HighVolatilityText","HighVolatilityImagelink","HighVolatilityDescription","MildVolatilityText","MildVolatilityDescription","MildVolatilityImagelink","RegVolatilityText","RegVolatilityImagelink","RegVolatilityDescription","tabName","tabPosition","volatilityInfo","showVolatilityTable","QuickInfoGameDescriptionComponent_div_2_Template","QuickInfoGameDescriptionComponent_div_3_Template","GameTileCtaComponent","DecoratorClassDirective","_QuickInfoGameDescriptionComponent","game_r4","i_r5","QuickInfoMoreInfoComponent_div_4_div_5_a_3_Template","QuickInfoMoreInfoComponent_div_4_div_5_Template","goToPrevSlide","goToNextSlide","swiperOptions","gymlGames","hidePreButton","hideNextButton","ctx_r7","game_r9","i_r10","QuickInfoMoreInfoComponent_div_5_div_3_a_2_Template","QuickInfoMoreInfoComponent_div_5_div_3_Template","QuickInfoMoreInfoComponent","elms","autoHeight","allowTouchMove","spaceBetween","slidesPerView","rewind","slidesPerGroup","keyboard","preventClicks","preventClicksPropagation","slideChange","onIndexChanged","relatedGamesText","RelatedGamesText","maxScrollPosition","lastElementIndex","swiperSlider","slidePrev","slideNext","setSubCategoryStyle","scrollGYML","staticGYML","se","le","ce","QuickInfoMoreInfoComponent_div_4_Template","QuickInfoMoreInfoComponent_div_5_Template","SwiperComponent","_QuickInfoMoreInfoComponent","Be","Ae","ze","$","Je","NewQuickInfoModalComponent_div_1_div_10_div_1_Template","demoEnabled","getStyles","sticker_r4","NewQuickInfoModalComponent_div_1_span_11_div_1_b_1_Template","showstickersinoverlay","isStickersForUk","NewQuickInfoModalComponent_div_1_span_11_div_1_Template","ɵɵpureFunction3","i_r7","sticker_r6","NewQuickInfoModalComponent_div_1_ng_template_12_div_0_b_1_Template","NewQuickInfoModalComponent_div_1_ng_template_12_div_0_Template","vendorLogo","demoLinkText","onNavClick","isMoreInfo","isFreeSpins","hideInfo","onGameIconError1","NewQuickInfoModalComponent_div_1_div_10_Template","NewQuickInfoModalComponent_div_1_span_11_Template","NewQuickInfoModalComponent_div_1_ng_template_12_Template","NewQuickInfoModalComponent_div_1_div_14_Template","NewQuickInfoModalComponent_div_1_div_18_Template","NewQuickInfoModalComponent_div_1_div_19_Template","NewQuickInfoModalComponent_div_1_Conditional_24_Template","NewQuickInfoModalComponent_div_1_li_33_Template","NewQuickInfoModalComponent_div_1_li_34_Template","NewQuickInfoModalComponent_div_1_div_36_Template","NewQuickInfoModalComponent_div_1_div_37_Template","NewQuickInfoModalComponent_div_1_div_38_Template","mobileQuickInfoSrc","showjackpotvalueinoverlay","enableStickerStyles","standardStyles_r12","displayFavouritesOnPreLogin","demoEnabledForProvider","cta","isGameDescription","showFreeSpinCount","enableFreeSpinsOnQuickInfo","NewQuickInfoModalComponent_div_2_div_10_div_1_Template","sticker_r15","i_r16","NewQuickInfoModalComponent_div_2_span_11_div_1_b_1_Template","NewQuickInfoModalComponent_div_2_span_11_div_1_Template","i_r18","sticker_r17","NewQuickInfoModalComponent_div_2_ng_template_12_div_0_b_1_Template","NewQuickInfoModalComponent_div_2_ng_template_12_div_0_Template","_r20","nt","_r21","at","rt","st","_r22","lt","NewQuickInfoModalComponent_div_2_div_10_Template","NewQuickInfoModalComponent_div_2_span_11_Template","NewQuickInfoModalComponent_div_2_ng_template_12_Template","NewQuickInfoModalComponent_div_2_div_14_Template","NewQuickInfoModalComponent_div_2_div_18_Template","NewQuickInfoModalComponent_div_2_div_19_Template","NewQuickInfoModalComponent_div_2_li_30_Template","NewQuickInfoModalComponent_div_2_li_31_Template","NewQuickInfoModalComponent_div_2_div_33_Template","NewQuickInfoModalComponent_div_2_div_34_Template","NewQuickInfoModalComponent_div_2_div_35_Template","NewQuickInfoModalComponent_div_2_Conditional_37_Template","X","standardStyles_r23","NewQuickInfoModalComponent","newQuickInfoService","isLaunchedFromUrl","newQuickInfoStyle","stickerKey","setLocalData","assignConfig","favObs","assignFeatures","volatility","setVoltalityInformation","setJackpotValue","getMoreInfoGames","gameStickerStyleForUk","gameStickerStyle","hideFavouritesOnPreLogin","demoModeExcludedGamesRegex","boxWidth","boxWidthInt","landscapeMode","DemoLinkText","MaxPayout","isEnableFreeSpinsOnQuickInfo","freespinObservable","freespinsdata","bindFreeSpinInfo","freespinRewardDataObservable","setfreeSpinsCount","freespinsCountResponse","freespinCountGame","removeQuickInfoQueryParameterFromUrl","history","pushState","stickerStyle","UkStickerStyle1","cssText","stickerStyle1","UkStickerStyle2","sticker1","GameStickerStyle","trackFavfromRpWidget","navItem","volatilityType","High","Low","RegVolatilityHeaderText","Medium","stickerStyles","NewQuickInfoModalComponent_div_1_Template","NewQuickInfoModalComponent_div_2_Template","UpperCasePipe","_NewQuickInfoModalComponent","NewGameQuickInfoComponent","quickInfoModalService","setWidth","gameQuickInfoQueryParameter","routeConfig","quickInfoObs","receivedData","availWidth","availHeight","quickInfoScrollY","setImageIcon","requiredModalData","desktopDialogRef","handleEscClick","showStickersInOverlay","showJackpotvalueInOverlay","stickersForUk","quickInfoconfig","quickInfo","GameProviderHeader","gameOwnerId","gameOwnerIdMap","_NewGameQuickInfoComponent","MatBottomSheetContainer_ng_template_0_Template","matBottomSheetAnimations","transition","animate","AnimationDurations","AnimationCurves","animateChild","MatBottomSheetContainer","_MatBottomSheetContainer","CdkDialogContainer","focusTrapFactory","checker","overlayRef","breakpointObserver","focusMonitor","Breakpoints","FocusTrapFactory","DialogConfig","InteractivityChecker","OverlayRef","BreakpointObserver","FocusMonitor","ɵɵdefineComponent","ɵɵsyntheticHostListener","ɵɵsyntheticHostProperty","ɵɵattribute","ɵɵInheritDefinitionFeature","CdkPortalOutlet","MAT_BOTTOM_SHEET_DATA","InjectionToken","MatBottomSheetConfig","MatBottomSheetRef","_ref","containerInstance","take","hasModifierKey","MAT_BOTTOM_SHEET_DEFAULT_OPTIONS","MatBottomSheet","_MatBottomSheet","_overlay","injector","_parentBottomSheet","_defaultOptions","Dialog","componentOrTemplateRef","_config","ref","cdkRef","_cdkConfig","Overlay","Injector","ɵɵdefineInjectable","MatBottomSheetModule","_MatBottomSheetModule","ɵɵdefineNgModule","ɵɵdefineInjector","DialogModule","MatCommonModule","PortalModule","LibMockService","setQuickInfoService","quickInfoService","getQuickInfoService","setsportsOverLayService","sportsOverLayService","getsportsOverLayService","setCasinoBootstrapService","casinoBootstrapService","bootstrapService","getCasinoBootstrapService","setDialogRef","getDialogRef","closeDialogRef","_LibMockService","GamesReaderService","getSubcategory","getCategoriesByLobbyType","getGameModels","numGames","topTenGames","filteredData","gameModelData","returnedData","img","lazySrc","firstLineText","secondLineText","thirdLineText","badges","getStickers","getContainerDescriptionModel","subcategoryData","displayCategoryIcon","titleText","subtitleClass","subtitleInlineStyle","subtitleText","titleInlineStyle","showIcon","showTitle","showSubtitle","stickerValue","stickerKeys","getGameTileConfigs","showMoreinfo","cachedData","_GamesReaderService","ScreenSize","DEFAULT_CHUNK_SIZE","DEFAULT_SWIPE_SIZE","CHUNK_SIZE","SWIPE_SIZE","SwiperConfigService","getChunkSwiperSize","isGamesAvailable","isFutureGridEnabled","swiperConfig","chunkSize","swipeSize","enableNavigation","getChunkSize","getSwipeSize","SMALL_MOBILE_DEVICE","EXTRA_SMALL_MOBILE_DEVICE","STANDARD_MOBILE_DEVICE","LAPTOP","LAPTOP_LANDSCAPE","LARGE_DEVICE","_SwiperConfigService","JackpotValueSerializer","_currLocale","LOCALE_ID","serialize","withCurrency","currencyOnRight","withAmount","formattedAmount","formatNumber","deserialize","nbsplessValueStr","deserializeCurrency","currencylessValueStr","numericValue","deserializeAmount","possiblyNumericValueStr","decimalRealParts","butFromLast","_JackpotValueSerializer","JackpotValueFormatterPipe","valueSerializer","K","_JackpotValueFormatterPipe","iconImage","JackpotRibbonComponent_Conditional_0_Conditional_0_Conditional_1_Template","ne","customClass","alignment","withIcon","isJackpotGroup","ɵɵpipeBind4","withCurrencyOnRight","Ze","JackpotRibbonComponent_Conditional_0_Conditional_0_Template","JackpotRibbonComponent","_currentValue","jpValue","JackpotRibbonComponent_Conditional_0_Template","CsImageIconComponent","_JackpotRibbonComponent","__DEFAULT_TICK_INTERVAL__","__DEFAULT_INCREMENT_MULTIPLIER__","__DEFAULT_TICK_INCREMENT__","JackpotValueIncrementalTickingDirective","ribbonComponent","withIncrementalTick","tickIncrement","incrementMultiplier","tickInterval","scheduledTickInterval","currVal","incrementJackpotValue","newAmount","tickIncrMultiplier","L","_JackpotValueIncrementalTickingDirective","__JACKPOT_MAP_BROADCAST_EVENT__","__JACKPOT_VALUE_QUERY_EVENT__","JackpotValueEventHydratorDirective","jackpotRibbon","jackpotGameId","broadcastEventName","queryEventName","jackpotMapBroadcastHandler","jackpotMap","updateValue","queryAndUpdateJackpotValue","jpValueDetail","deserializedValue","_JackpotValueEventHydratorDirective","FAV_CLASS","FavIconKindType","Heart","OUTLINED_FAV_CLASS","SOLID_FAV_CLASS","Star","FavouriteConjugateDirective","isFav","csFavoriteConjugateIconKind","currFavState","hostComponent","setFavouriteClass","clickHandler","decoratorClassHost","_FavouriteConjugateDirective","MoreInfoDirective","libMockService","isNewQuickInfoEnabled","enableNewQuickInfoLobbyType","pageYOffset","casinoQuickInfoElement","getQuickInfoSrc","gameProviderHeader","ButtonPlayNow","routeParams","quickInfoStyles","appendQuickInfoQueryParameterToUrl","openGameQuickInfoDialog","openQuickInfoDialog","handleQuickInfoonESC","windowUrl","pushStateUrl","queryStrings","urlHasQueryStrings","isUrlEndsWithSlash","closeGameQuickInfoDialog","_MoreInfoDirective","JackpotRibbonRenderService","getJackpoRibbonData","getHotIconStatus","getHotIconImage","getHotIconPath","_JackpotRibbonRenderService","ModularGameLaunchService","casinoCoreGameLaunchService","getGameLaunch","_ModularGameLaunchService","TopTenGameTileComponent","topTenGame","tileIndex","jackpotRibbonRenderService","modularGameLaunchService","updateGameTileSettings","getJackPotRibbonData","jackpotRibbonNewStyling","isMoreInfoEnabled","getFavVariantKind","onGameLaunch","gameTileSettings","gameLaunch","ctaText","UKPlayNow","moreInfo","displayText","UKMoreInfo","jackpotRibbonData","tmp_19_0","freespins","isOptedIn","tmp_21_0","background","tmp_22_0","available","tmp_23_0","total","tmp_56_0","tmp_57_0","tmp_58_0","TopTenGameTileAggregationComponent","GradientNumberComponent","CsBadgeComponent","FreeSpinsSummaryIconComponent","FavCtaComponent","QuickInfoIconComponent","HyperLinkCtaComponent","TileFooterComponent","DsButton","_TopTenGameTileComponent","ContainerConfigs","maxItems","categoryIdentifier","ɵɵpropertyInterpolate2","game_r1","ɵ$index_6_r2","TopTenGamesComponent_Conditional_0_For_3_Template","_forTrack0","containerDescriptionConfig","TopTenGamesComponent","enableFutureGrid","swiperConfigService","gamesReaderService","areGamesAvailable","getGameWithSection","getTrackingSection","getTopTenGames","getContainerDescription","getSwiperConfig","TopTenGamesComponent_Conditional_0_Template","FeatureContainerComponent","ContainerDescriptionComponent","_TopTenGamesComponent","MatProgressBar_Conditional_2_Template","MAT_PROGRESS_BAR_DEFAULT_OPTIONS","MatProgressBar","_MatProgressBar","_elementRef","_ngZone","_changeDetectorRef","_animationMode","defaults","clamp","ChangeDetectorRef","ANIMATION_MODULE_TYPE","numberAttribute","ɵɵInputTransformsFeature","MatProgressBarModule","_MatProgressBarModule","_c5","NguCarouselStore","Touch","vertical","Vertical","Transfrom","visibleItems","load","deviceWidth","carouselWidth","itemWidth","slideItems","itemWidthPer","itemLength","currentSlide","easing","speed","dexVal","touchTransform","isEnd","isFirst","isLast","RTL","point","velocity","xs","sm","md","lg","all","xl","NguCarouselOutletContext","IS_BROWSER","isPlatformBrowser","PLATFORM_ID","NguCarouselNextDirective","_NguCarouselNextDirective","ɵɵdefineDirective","NguCarouselPrevDirective","_NguCarouselPrevDirective","NguCarouselPointDirective","_NguCarouselPointDirective","NguCarouselDefDirective","_NguCarouselDefDirective","TemplateRef","NguCarouselOutlet","_NguCarouselOutlet","viewContainer","ViewContainerRef","NguHammerLoader","_NguHammerLoader","defer","NguCarouselHammerManager","_NguCarouselHammerManager","_nguHammerLoader","hammer","enterNgZone","NguWindowScrollListener","_NguWindowScrollListener","isBrowser","NguCarousel","_NguCarousel","nextButton","prevButton","_host","_renderer","_differs","_isBrowser","_cdr","_nguWindowScrollListener","_nguCarouselHammerManager","dataStream","adjustedPreviousIndex","view","renderIndex","def","direc","srcEvent","valt","offsetTop","offsetHeight","windowScrollY","windowInnerHeight","breakpoints","withoutAnimation","Nos","pointers","slide","slideremains","btns","dism","itemStyle","itemWidthXS","itemWidthSM","itemWidthMD","itemWidthLG","itemWidthXL","Btn","itemSpeed","touchMove","MoveSlide","somt","last","grid","collect","slideCss","text","possible","switchMap","mapToZero","mapToOne","play$","pause$","touchPlay$","touchPause$","interval$","initialDelay","carouselInterval$","startWith","EMPTY","collectedIndexes","datas","styleItem","styleText","Renderer2","IterableDiffers","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ɵɵProvidersFeature","ɵɵprojectionDef","NguItemComponent","_NguItemComponent","NguTileComponent","_NguTileComponent","lazyMapC","JackpotTileConatinerComponent","loadComponent","DiscoverFeedComponent","CozyBingoWidgetComponent","LiveGamesIframeComponent","JackpotwidgetComponent","JackpotWidgetRedesignComponent","MustGoJackpotRedesignComponent","LiveCasinoComponent","CasinoGameVideosComponent","NewsFeedComponent","ParallaxAnimationComponent","PromoOfferWidgetComponent","GamificationLoaderComponent","PromoEdsWidgetComponent","NewGridGameMetaDataComponent","SlotRacesComponent","SlotRacesWrapperComponent","SlotRacesPhase2Component","SlotRacesWrapperPhase2Component","CasinoGameSelectorComponent","SuperButtonComponent","PromotionsBannerComponent","InstagramWrapperComponent","BetMGMOriginalsComponent","BingoTournamentsComponent","LAZY_COMPONENETS_MAPC","LazyRouteService","componentsMap","componentFactoryResolver","loadAndRenderLazyComponents","componentMap","component","resolveComponentFactory","ComponentFactoryResolver","_LazyRouteService","CasinoCoreLazyPlaceholderComponent","lazyRouteService","componentData","componentName","componentFactory","componentRef_","casinoCoreLazyPlaceholdercontainer","createComponent","attribute","inputData","outputEvents","outputEvent","changeDetectorRef","detectChanges","CasinoCoreLazyPlaceholderComponent_ng_template_0_Template","_CasinoCoreLazyPlaceholderComponent","TileCoordinator","lastRowMax","numColumns","tiles","tile","gapStartIndex","TilePosition","tileCols","gapEndIndex","row","col","MAT_GRID_LIST","MatGridTile","_MatGridTile","_element","_gridList","coerceNumberProperty","property","cssCalcAllowedValue","TileStyler","gutterSize","tracker","cols","normalizeUnits","sizePercent","gutterFraction","baseSize","calc","span","rowIndex","colIndex","percentWidthPerTile","gutterWidthFractionPerTile","percentWidth","gutterWidth","baseTileWidth","side","tileHeight","FixedTileStyler","fixedRowHeight","RatioTileStyler","percentHeightPerTile","ratioParts","FitTileStyler","gutterHeightPerTile","baseTileHeight","exp","MAT_FIT_MODE","MatGridList","_MatGridList","_dir","newValue","rowHeight","Directionality","MatGridListModule","_MatGridListModule","MatLineModule","DestroyableDirective","_DestroyableDirective","isObject","ids","fallbackId","_value","_id","CheckFn","__privateAdd","__privateSet","isFunction_default","isNil_default","uniqueId_default","__privateGet","InViewportDirection","InvalidDirectionException","InvalidRootMarginException","InvalidRootNodeException","InvalidThresholdException","Direction","Partial","isBoolean_default","_RootMargin","isString_default","bottom","RootMargin","_RootNode","RootNode","_Threshold","isNumber_default","Threshold","checkFnId","configHash","_hash","Config","toBase64","_nodes","_observer","_destroy","ObserverCacheItem","_EMPTY_ROOT","_cache","_callback","_ObserverCache","hash","cacheItem","ObserverCache","InViewportService","_trigger$","_InViewportService","InViewportMetadata","InViewportDirective","_InViewportDirective","forcedValue","ɵɵHostDirectivesFeature","toRxSuspenseNotification","rxMaterialize","o$","materialize","tap","kind","rxNotificationKind","notificationKindToRxNotificationKind","emitAndDontComplete","NEVER","handleSuspenseAndLastValueInNotifications","latestNextValue","notification","createTemplateNotifier","observablesSubject","emittedValueOnce","values$","observable$","isObservableInput","skipSuspenseIfHasValue","isSubscribableInput","mapSubscribableToObservable","withInitialSuspense","startWithUndefined","isObservable","createEmbeddedView","viewContainerRef","templateRef","templateHandling","templateCache","get$","templatRef$","assertTemplate","isTemplateRefOrNull","notifyAllParentsIfNeeded","injectingViewCdRef","strategy","notifyNeeded","onStrategy","_v","work","ignoreElements","getTemplateHandler","templateSettings","initialTemplateRef","createViewContext","updateViewContext","updateUnchangedContext","insertView","moveView","removeView","getListChanges","updateView","oldIndex","oldView","changedIdxs","changesArr","notifyParent","record","getInsertChange","getRemoveChange","getMoveChange","getUpdateChange","getUnchangedChange","isRxRenderError","createErrorHandler","_handler","_handleError","createListTemplateManager","renderSettings","trackBy","iterableDiffers","defaultStrategyName","strategies","patchZone","strategyHandling$","strategyHandling","_differ","getDiffer","listViewHandler","partiallyFinished","nextConfig","render","handleError","iterable","differ","currentIterable","ilen","viewRef","listChanges","insertedOrRemoved","applyChanges$","getObservablesFromChangesArray","computeFirst","computeLast","computeEven","RxDefaultListViewContext","customProps","__publicField","acc","even","newProps","RxBaseTemplateNames","notificationKindToViewContext","customNextContext","createTemplateManager","notificationToTemplateName","activeTemplate","templates","triggerHandling","getContext","trg","contextKind","templateName","withLatestFrom","isNewTemplate","RxLetTemplateNames","RxLet","_RxLet","RxStrategyProvider","coerceAllFactory","Subscription","strategyName","isSignal","toObservable","rxLet","freespinAvailableCount","freespinTotalCount","FreeSpinsSummaryComponent_div_1_span_5_Template","FreeSpinsSummaryComponent_div_1_span_6_Template","isThreeDigit","FreeSpinsSummaryComponent_div_2_span_5_Template","FreeSpinsSummaryComponent_div_2_span_6_Template","FreeSpinsSummaryComponent","freespinsInfo","onFreeSpinClick","R","FreeSpinsSummaryComponent_div_1_Template","FreeSpinsSummaryComponent_div_2_Template","_FreeSpinsSummaryComponent","C","P","freeSpinsBoxColor","expiryDetailsBoxColor","FreeSpinsQuickInfoComponent","getQuickInfoGameTitle","closeQuickInfoDialog","FreeSpinsQuickInfoComponent_div_0_Template","_FreeSpinsQuickInfoComponent","sticker_r1","StickersJackpotComponent_div_0_span_1_div_1_b_1_Template","StickersJackpotComponent_div_0_span_1_div_1_Template","StickersJackpotComponent_div_0_ng_template_2_div_0_b_1_Template","StickersJackpotComponent_div_0_ng_template_2_div_0_Template","StickersJackpotComponent_div_0_div_4_div_1_img_1_Template","StickersJackpotComponent_div_0_div_4_div_1_img_2_Template","StickersJackpotComponent_div_0_div_4_div_1_Template","StickersJackpotComponent_div_0_span_1_Template","StickersJackpotComponent_div_0_ng_template_2_Template","StickersJackpotComponent_div_0_div_4_Template","standardStyles_r6","StickersJackpotComponent","StickersJackpotComponent_div_0_Template","_StickersJackpotComponent","BingoQuickInfoModelComponent","cozyRoomData","toLocaleLowerCase","setCozyBingoRoomInfo","cozyRoomInfo","roomTitle","roomDescription","jackpot","closeModel","bingo_type","BingoQuickInfoModelComponent_div_7_Template","_BingoQuickInfoModelComponent","GameQuickInfoComponent_div_1_div_8_Template","reelsTitle","GameQuickInfoComponent_div_2_div_17_div_1_div_3_Template","payLinesTitle","GameQuickInfoComponent_div_2_div_17_div_2_div_3_Template","payLines","returnToPlayerTitle","GameQuickInfoComponent_div_2_div_17_div_3_div_3_Template","returnToPlayer","GameQuickInfoComponent_div_2_div_17_div_1_Template","GameQuickInfoComponent_div_2_div_17_div_2_Template","GameQuickInfoComponent_div_2_div_17_div_3_Template","demoLinkTextColor","GameQuickInfoComponent_div_2_div_9_Template","GameQuickInfoComponent_div_2_div_15_Template","GameQuickInfoComponent_div_2_div_16_Template","GameQuickInfoComponent_div_2_div_17_Template","GameQuickInfoComponent_div_2_span_21_Template","GameQuickInfoComponent_div_2_Conditional_23_Template","GameQuickInfoComponent_div_2_cc_freespin_quick_info_25_Template","enableQuickInfoReels","quickInfoCta","optedIn","GameQuickInfoComponent_div_3_div_1_cc_freespin_summary_1_Template","GameQuickInfoComponent_div_3_div_1_div_2_Template","GameQuickInfoComponent_div_3_div_1_div_3_Template","GameQuickInfoComponent_div_3_div_1_div_6_Template","gymlCategoryType","playNowHoverEffect","playNow","moreInfoClicked","GameQuickInfoComponent_div_3_div_2_div_3_div_1_Template","enableTitleOnGame","GameQuickInfoComponent_div_3_div_2_div_4_div_1_Template","enableTitleOnGameIconPlayerStats","GameQuickInfoComponent_div_3_div_2_div_1_Template","GameQuickInfoComponent_div_3_div_2_div_2_Template","GameQuickInfoComponent_div_3_div_2_div_3_Template","GameQuickInfoComponent_div_3_div_2_div_4_Template","isVideoPreviewEnabled","playNowBtnWidth","GameQuickInfoComponent_div_3_div_3_div_5_Template","GameQuickInfoComponent_div_3_div_3_div_7_Template","GameQuickInfoComponent_div_3_div_1_Template","GameQuickInfoComponent_div_3_div_2_Template","GameQuickInfoComponent_div_3_div_3_Template","enableUkMouseOverStyle","_r17","liveCasinoPlayNowCTA","playBehindButtonTitle","_r18","GameQuickInfoComponent_div_4_div_2_Template","GameQuickInfoComponent_div_4_div_4_Template","GameQuickInfoComponent_div_4_div_6_Template","GameQuickInfoComponent_div_4_Conditional_8_Template","GameQuickInfoComponent_div_4_Conditional_9_Template","GameQuickInfoComponent_div_4_div_10_Template","enableFavouriteGamesforLiveCasinoApi","hideMoreInfoLinkForLiveCasinoApi","winnersGameNameFontsize","GameQuickInfoComponent_div_5_div_3_Template","enableTitleOnGameTitle","GameQuickInfoComponent","bingoQuickInfo","jackpotservice","loadQuickInfo","bingoGames","bingoRooms","enableQuicInfoReelskDiv","onMouseLeaveEvent","setGameTitleAndProvider","gameVideo","trackWidgetGames","setPlayNowBtnWidth","stickersArray","GameJackpotValue","LiveCasinoPlayNowCTA","PlayBehind","recentWinnersWidgetGlobalMessages","WinnersGameNameFontsize","enableTitleOnGameIcon","liveCasinoApiConfig","enableTitleOnGameTile","enableQuickInfoforLiveCasinoApi","enableQuickInfo","enableFavouriteGames","hideMoreInfoLink","preLoginPlayNowText","preLogincta","UKPreLoginPlayNow","quickInfoStyle","DemoLinkTextColor","Reels","PayLines","ReturnToPlayer","demoModeExcludedGames","isMobileView","quickInfoOverlayTopAllignment","gameTileReduction","bingoRoomInfo","gameProviderText","providerName","recentlyPlayedTracking","scrollY","isLiveLoungeDefaultCategory","defaultCategoryId","thumbImageSrc","trackFavforDisbaledQuickInfoforDesktop","GameQuickInfoComponent_div_1_Template","GameQuickInfoComponent_div_2_Template","GameQuickInfoComponent_div_3_Template","GameQuickInfoComponent_div_4_Template","GameQuickInfoComponent_div_5_Template","_GameQuickInfoComponent","overlayBgClass","qiHoverDiv","qiHoverContent","qiHoverOverlay","qiImage","gameTileFreespins","newgridTileHover","onmousedown","onmouseup","onmouseover","onmouseout","QuickInfoService","QuickInfoModalComponent","gamedialogRef","_QuickInfoService","QuickInfoModalComponent_div_18_div_1_div_3_Template","QuickInfoModalComponent_div_18_div_2_div_3_Template","QuickInfoModalComponent_div_18_div_3_div_3_Template","QuickInfoModalComponent_div_18_div_1_Template","QuickInfoModalComponent_div_18_div_2_Template","QuickInfoModalComponent_div_18_div_3_Template","checkForAdjustment","overlay","_response","jpFeed","closeModal","QuickInfoModalComponent_div_10_Template","QuickInfoModalComponent_div_16_Template","QuickInfoModalComponent_div_17_Template","QuickInfoModalComponent_div_18_Template","QuickInfoModalComponent_Conditional_24_Template","QuickInfoModalComponent_cc_freespin_quick_info_26_Template","_QuickInfoModalComponent","positiveVideoIconType","negativeVideoIconType","quickInfoIcon","categoryIndex","displayRecenetWinners","ɵɵpureFunction7","_c6","QuickInfoVisible","isGameHover","videoEnded","onLoadMetaData","playbackFailed","gameVideoUrl","videoDesktopEnded","GameLobbyComponent_a_6_ng_container_4_video_1_Template","GameLobbyComponent_a_6_ng_container_4_video_2_Template","De","isInViewport","_c8","_c7","onLiveCasinoTableTimerEnd","_c9","GameLobbyComponent_a_6_div_6_ng_container_2_div_1_span_1_img_1_Template","GameLobbyComponent_a_6_div_6_ng_container_2_div_1_span_1_img_2_Template","GameLobbyComponent_a_6_div_6_ng_container_2_div_1_span_1_Template","_c10","_c11","isGYML","isPromoted","GameLobbyComponent_a_6_div_6_ng_container_2_div_1_Template","ɵɵpureFunction4","_c12","GameLobbyComponent_a_6_div_6_ng_container_3_ng_container_4_img_1_Template","GameLobbyComponent_a_6_div_6_ng_container_3_ng_container_4_img_2_Template","GameLobbyComponent_a_6_div_6_ng_container_3_div_1_Template","GameLobbyComponent_a_6_div_6_ng_container_3_ng_container_4_Template","_c13","isUnfinishedGame","GameLobbyComponent_a_6_div_6_a_1_Template","GameLobbyComponent_a_6_div_6_ng_container_2_Template","GameLobbyComponent_a_6_div_6_ng_container_3_Template","GameLobbyComponent_a_6_div_6_div_4_Template","Ve","isAnchorTagVisible","Favourite_r9","_c14","recommendedGamesBackgroundColor","recommendedGamesFontColours","assignRecommendedWidgetColors","widgetRecommended","promotedGameBackgroundColor","promotedGameTextColor","promotedGameText","sticker_r10","i_r11","GameLobbyComponent_a_6_span_11_div_1_b_1_Template","_c15","GameLobbyComponent_a_6_span_11_div_1_Template","isVideoLoaded","getStickerColor","i_r13","_c16","sticker_r12","GameLobbyComponent_a_6_ng_template_12_div_0_b_1_Template","GameLobbyComponent_a_6_ng_template_12_div_0_Template","gameMouseDown","gameMouseUp","GameLobbyComponent_a_6_cc_casino_core_lazy_placeholder_1_Template","GameLobbyComponent_a_6_cc_image_loader_2_Template","GameLobbyComponent_a_6_cc_image_loader_3_Template","GameLobbyComponent_a_6_ng_container_4_Template","GameLobbyComponent_a_6_cc_casino_core_lazy_placeholder_5_Template","GameLobbyComponent_a_6_div_6_Template","GameLobbyComponent_a_6_div_7_Template","GameLobbyComponent_a_6_div_8_Template","GameLobbyComponent_a_6_div_9_Template","GameLobbyComponent_a_6_div_10_Template","GameLobbyComponent_a_6_span_11_Template","GameLobbyComponent_a_6_ng_template_12_Template","standardStyles_r14","GameLobbyComponent_ng_template_7_div_0_Template","GameLobbyComponent_div_9_span_3_Template","GameLobbyComponent","_game","openLoginDialog","isJackpotTile","mouseHoveredOnGame","videoUrl","gameVideoFormat","afterLoaded","backgroundImage","playVideoFromStart","currentTime","setVideoPlayTimeoutint","displayRecentWinnersWidget","videoFormat","isLiveCasinoEnabled","enableLobbyType","setStickers","checkforLatestStickers","isSignPosting","setGameIconSrc","liveCasinoApiSubscriber","setLiveGameInfo","setSlotRaceStickers","setFastLoading","fastLoadingGames","isAnchorTagVisibleOnQuickInfo","enableSignpostingSticker","widgetRecommendedTxtClr","widgetRecommendedBgClr","runOutsideAngular","getStickerValues","isForUk","slotRacesStickerTimeOut","slotRacesStickerDataSubScription","hoveredgame","onLivecasinoMouseHover","onLivecasinoMouseLeave","onMouseHover","onMouseLeave","markForCheck","schedule","gameTileDropShadow","racesDataObj","isStickerEnabled","GameEnter","GameLeave","videoLength","videoTime","duration","videoPercentage","inViewportAction","visible","onOrientationChange","GameLobbyComponent_div_2_Template","GameLobbyComponent_div_3_Template","GameLobbyComponent_cc_freespin_summary_4_Template","GameLobbyComponent_cc_game_quick_info_5_Template","GameLobbyComponent_a_6_Template","GameLobbyComponent_ng_template_7_Template","GameLobbyComponent_div_9_Template","ɵɵpureFunctionV","_GameLobbyComponent","ctx_r3","game_r2","ɵ$index_7_r3","FeatureGridComponent_mat_grid_list_1_For_2_cc_game_lobby_2_Template","getClassByicon","FeatureGridComponent_mat_grid_list_1_For_2_Template","rowCount","unscrollableHeight","isIconSevenCategory","breakpoint","newFeatureGridArr$","game_r6","nguindex_r7","FeatureGridComponent_ngu_carousel_2_ngu_item_2_For_3_cc_game_lobby_2_Template","gameArr_r8","FeatureGridComponent_ngu_carousel_2_ngu_item_2_For_3_Template","isPreButtonVisible","loadNextGames","isNextButtonVisible","onmoveFn","FeatureGridComponent_ngu_carousel_2_ngu_item_2_Template","FeatureGridComponent_ngu_carousel_2_button_3_Template","FeatureGridComponent_ngu_carousel_2_button_4_Template","jackpot_justify_center_icon_7_xs","jackpot_justify_center_icon_7_sm","carouselConfigNonTouch","newFeatureGridArr","changeCarouselView","ɵ$index_48_r12","FeatureGridComponent_div_3_For_2_cc_game_lobby_4_Template","FeatureGridComponent_div_3_For_2_Template","scrollableMultipleIconsHeight","games$","FeatureGridComponent","resizeObserver","ResizeObserverService","_games","alias","setInfoClassIconForGames","_Type","categoryWithMultipleGameIconTypes","EnableFutureGrid","_newFeatureGridArr","visibleNewFeatureGridArr","computeBreakpoint","gridContainerWidth","rect","contentBoxSize","inlineSize","initialValue","isMobileWidth","defaultCarouselConfig","computeCarouselGrid","equal","isEqual","featureGridHeightTimeout","modularConfig","featuredGridSetHeightTimeOut","shouldCalculateOrHeight","computeCurrentIndex","isLastCarousel","abs","carouselDataEvent","totalTiles","gameTiles","rows","widthPerCol","ratio","resetDesktopCarousel$","emitCarouselData","desktopGamesCarousel","moveTo","prevItem","activePoint","nextItem","showArrows","disablePrev","disableNext","gamesArr","isFromJackpot","matGridColCountForLobbyType","currentSlideCount","FeatureGridComponent_mat_grid_list_1_Template","FeatureGridComponent_ngu_carousel_2_Template","FeatureGridComponent_div_3_Template","_FeatureGridComponent","DocumentWrapper","getDocumentWrapper","propertyProps","CloudflareStreamComponent","renderer2","platformId","ɵɵgetCurrentView","CloudflareStreamModule"],"mappings":"82FAAA,IAAAA,GAAAC,GAAA,CAAA,CAAAC,GAAAC,EAAA,GAAA,CAAA,CAaC,SAAUC,CAAQC,CAAAA,CAAAA,CAAS,CAC1B,OAAOH,IAAY,QAAY,EAAA,OAAOC,GAAW,GAAcA,CAAAA,EAAAA,CAAO,QAAUE,CAAQ,EAAA,CAAI,OAAO,MAAA,EAAW,YAAc,MAAO,CAAA,GAAA,CAAM,OAAOA,CAAO,CAAA,EAAKD,EAAS,OAAO,UAAA,CAAe,IAAc,UAAaA,CAAAA,CAAAA,EAAU,KAAMA,CAAO,CAAA,KAAA,CAAQC,GACvP,EAAA,CAAA,EAAGH,GAAM,UAAY,CAenB,IAAII,EAAgB,SAAUC,CAAAA,CAAGC,EAAG,CAClC,OAAAF,EAAgB,MAAO,CAAA,cAAA,EAAkB,CACvC,SAAW,CAAA,EACb,CAAa,WAAA,KAAA,EAAS,SAAUC,CAAGC,CAAAA,CAAAA,CAAG,CACpCD,CAAE,CAAA,SAAA,CAAYC,EAChB,CAAA,EAAK,SAAUD,CAAGC,CAAAA,CAAAA,CAAG,CACnB,IAASC,IAAAA,CAAAA,IAAKD,EAAO,MAAO,CAAA,SAAA,CAAU,eAAe,IAAKA,CAAAA,CAAAA,CAAGC,CAAC,CAAGF,GAAAA,CAAAA,CAAEE,CAAC,CAAID,CAAAA,CAAAA,CAAEC,CAAC,CAC7E,EAAA,CAAA,CACOH,CAAcC,CAAAA,CAAAA,CAAGC,CAAC,CAC3B,CAAA,CACA,SAASE,CAAUH,CAAAA,CAAAA,CAAGC,EAAG,CACvB,GAAI,OAAOA,CAAAA,EAAM,YAAcA,CAAM,GAAA,IAAA,CAAM,MAAM,IAAI,SAAA,CAAU,uBAAyB,MAAOA,CAAAA,CAAC,CAAI,CAAA,+BAA+B,EACnIF,CAAcC,CAAAA,CAAAA,CAAGC,CAAC,CAClB,CAAA,SAASG,GAAK,CACZ,IAAA,CAAK,YAAcJ,EACrB,CACAA,EAAE,SAAYC,CAAAA,CAAAA,GAAM,KAAO,MAAO,CAAA,MAAA,CAAOA,CAAC,CAAKG,EAAAA,CAAAA,CAAG,SAAYH,CAAAA,CAAAA,CAAE,UAAW,IAAIG,CAAAA,EACjF,CACA,IAAIC,CAAAA,CAAW,UAAY,CACzB,OAAAA,EAAW,MAAO,CAAA,MAAA,EAAU,SAAkBC,CAAG,CAAA,CAC/C,QAASC,CAAGC,CAAAA,CAAAA,CAAI,EAAGC,CAAI,CAAA,SAAA,CAAU,MAAQD,CAAAA,CAAAA,CAAIC,EAAGD,CAAK,EAAA,CAAA,CACnDD,EAAI,SAAUC,CAAAA,CAAC,EACf,IAAS,IAAA,CAAA,IAAKD,EAAO,MAAO,CAAA,SAAA,CAAU,eAAe,IAAKA,CAAAA,CAAAA,CAAG,CAAC,CAAGD,GAAAA,CAAAA,CAAE,CAAC,CAAIC,CAAAA,CAAAA,CAAE,CAAC,CAAA,EAC7E,CACA,OAAOD,CACT,EACOD,CAAS,CAAA,KAAA,CAAM,KAAM,SAAS,CACvC,CACA,CAAA,SAASK,EAAcC,CAAIC,CAAAA,CAAAA,CAAMC,EAAM,CACD,IAAA,IAASL,EAAI,CAAGM,CAAAA,CAAAA,CAAIF,EAAK,MAAQG,CAAAA,CAAAA,CAAIP,EAAIM,CAAGN,CAAAA,CAAAA,EAAAA,CAAAA,CAC1EO,GAAM,EAAEP,CAAAA,IAAKI,MACVG,CAAIA,GAAAA,CAAAA,CAAK,MAAM,SAAU,CAAA,KAAA,CAAM,KAAKH,CAAM,CAAA,CAAA,CAAGJ,CAAC,CAAA,CAAA,CACnDO,EAAGP,CAAC,CAAA,CAAII,EAAKJ,CAAC,CAAA,CAAA,CAGlB,OAAOG,CAAG,CAAA,MAAA,CAAOI,GAAM,KAAM,CAAA,SAAA,CAAU,MAAM,IAAKH,CAAAA,CAAI,CAAC,CACzD,CACA,IAAII,CAAU,CAAA,OAAO,UAAe,CAAA,GAAA,CAAc,WAAa,OAAO,IAAA,CAAS,IAAc,IAAO,CAAA,OAAO,OAAW,GAAc,CAAA,MAAA,CAAS,OACzIC,CAAO,CAAA,MAAA,CAAO,KACdC,CAAU,CAAA,KAAA,CAAM,QAChB,OAAO,OAAA,CAAY,KAAe,CAACF,CAAAA,CAAQ,OAC7CA,GAAAA,CAAAA,CAAQ,QAAU,OAEpB,CAAA,CAAA,SAASG,EAAOC,CAAKC,CAAAA,CAAAA,CAAW,CAC9B,OAAI,OAAOA,CAAc,EAAA,QAAA,EACzBJ,EAAKI,CAAS,CAAA,CAAE,QAAQ,SAAUC,CAAAA,CAAK,CACrCF,CAAIE,CAAAA,CAAG,CAAID,CAAAA,CAAAA,CAAUC,CAAG,EAC1B,CAAC,EACMF,CACT,CACA,IAAIG,CAAW,CAAA,MAAA,CAAO,eAClBC,CAAU,CAAA,GAAG,cACjB,CAAA,SAASC,EAAOL,CAAKM,CAAAA,CAAAA,CAAM,CACzB,OAAOF,CAAAA,CAAQ,IAAKJ,CAAAA,CAAAA,CAAKM,CAAI,CAC/B,CACA,SAASC,CAAMC,CAAAA,CAAAA,CAAOP,EAAW,CAC3B,OAAOA,GAAc,UAAYA,GAAAA,CAAAA,CAAYA,EAAUE,CAASK,CAAAA,CAAK,CAAC,CACzE,CAAA,CAAA,CAAA,OAAO,QAAY,GAAcX,CAAAA,CAAAA,CAAO,OAAQ,CAAA,OAAA,EAASI,CAAS,CAAE,CAAA,OAAA,CAAQ,SAAUC,CAAK,CAAA,CAC1FO,EAAQD,CAAON,CAAAA,CAAAA,CAAKD,EAAUC,CAAG,CAAC,EACpC,CAAC,EACH,CACA,IAAIQ,CAAAA,CAAiB,OAAO,cAC5B,CAAA,SAASD,CAAQT,CAAAA,CAAAA,CAAKM,EAAMK,CAAkBC,CAAAA,CAAAA,CAAS,CACrDF,CAAeV,CAAAA,CAAAA,CAAKM,EAAMP,CAAOY,CAAAA,CAAAA,EAAoBN,CAAOM,CAAAA,CAAAA,CAAkB,KAAK,CAAK,EAAA,OAAOA,EAAiB,GAAQ,EAAA,UAAA,CAAa,CACnI,GAAKA,CAAAA,CAAAA,CAAiB,GACtB,CAAA,GAAA,CAAKA,EAAiB,GACtB,CAAA,YAAA,CAAc,EAChB,CAAI,CAAA,CACF,MAAOA,CACP,CAAA,YAAA,CAAc,GACd,QAAU,CAAA,CAAA,CACZ,EAAGC,CAAO,CAAC,EACb,CACA,SAASC,EAAOC,CAAO,CAAA,CACrB,OAAO,CACL,KAAM,SAAUC,CAAAA,CAAQ,CACtB,OAAAD,CAAAA,CAAM,UAAY,MAAO,CAAA,MAAA,CAAOC,EAAO,SAAS,CAAA,CAChDN,EAAQK,CAAM,CAAA,SAAA,CAAW,cAAeA,CAAK,CAAA,CACtC,CACL,MAAQP,CAAAA,CAAAA,CAAM,IAAK,CAAA,IAAA,CAAMO,EAAM,SAAS,CAC1C,CACF,CACF,CACF,CACA,IAAIE,EAAAA,CAA2B,OAAO,wBACtC,CAAA,SAASC,GAAsBjB,CAAKM,CAAAA,CAAAA,CAAM,CACxC,IAAIY,CAAAA,CAAKF,GAAyBhB,CAAKM,CAAAA,CAAI,CACvCE,CAAAA,CAAAA,CACJ,OAAOU,CAAOV,EAAAA,CAAAA,CAAAA,CAAQL,EAASH,CAAG,CAAA,GAAMiB,GAAsBT,CAAOF,CAAAA,CAAI,CAC3E,CACA,IAAIa,EAAS,CAAA,GAAG,KAChB,CAAA,SAASC,GAAMC,CAAMC,CAAAA,CAAAA,CAAOC,CAAK,CAAA,CAC/B,OAAOJ,EAAO,CAAA,IAAA,CAAKE,EAAMC,CAAOC,CAAAA,CAAG,CACrC,CACA,SAASC,GAASC,CAAUC,CAAAA,CAAAA,CAAkB,CAC5C,OAAOA,CAAAA,CAAiBD,CAAQ,CAClC,CACA,SAASE,EAAO9C,CAAAA,CAAAA,CAAG,CACjB,GAAI,CAACA,CAAG,CAAA,MAAM,IAAI,KAAM,CAAA,kBAAkB,CAC5C,CACA,SAAS+C,GAAOC,CAAI,CAAA,CACdjC,EAAQ,YAAc,CAAA,YAAA,CAAaiC,CAAE,CAAO,CAAA,UAAA,CAAWA,EAAI,CAAC,EAClE,CACA,SAASC,GAAcC,CAAOC,CAAAA,CAAAA,CAAW,CACvC,OAAOD,CAAAA,CAAM,OAAO,SAAUE,CAAAA,CAAQC,EAAM9C,CAAG,CAAA,CAC7C,IAAI+C,CAAeH,CAAAA,CAAAA,CAAUE,EAAM9C,CAAC,CAAA,CACpC,OAAI+C,CAAcF,GAAAA,CAAAA,CAAOE,CAAa,CAAA,CAAC,CAAC,CAAIA,CAAAA,CAAAA,CAAa,CAAC,CACnDF,CAAAA,CAAAA,CACT,EAAG,EAAE,CACP,CACA,SAASG,EAAapC,CAAAA,CAAAA,CAAKqC,EAAS,CAClC,GAAI,OAAOA,CAAY,EAAA,QAAA,EAAYhC,CAAOL,CAAAA,CAAAA,CAAKqC,CAAO,CAAG,CAAA,OAAOrC,EAAIqC,CAAO,CAAA,CAC3E,GAAI,CAACA,CAAAA,CAAS,OAAOrC,CACrB,CAAA,GAAI,OAAOqC,CAAY,EAAA,QAAA,CAAU,CAE/B,IADIC,IAAAA,CAAAA,CAAK,EACAlD,CAAAA,CAAAA,CAAI,CAAGM,CAAAA,CAAAA,CAAI2C,EAAQ,MAAQjD,CAAAA,CAAAA,CAAIM,EAAG,EAAEN,CAAAA,CAAG,CAC9C,IAAImD,CAAAA,CAAMH,GAAapC,CAAKqC,CAAAA,CAAAA,CAAQjD,CAAC,CAAC,CAAA,CACtCkD,EAAG,IAAKC,CAAAA,CAAG,EACb,CACA,OAAOD,CACT,CACA,IAAIE,CAASH,CAAAA,CAAAA,CAAQ,QAAQ,GAAG,CAAA,CAChC,GAAIG,CAAW,GAAA,CAAA,CAAA,CAAI,CACjB,IAAIC,CAAAA,CAAWzC,EAAIqC,CAAQ,CAAA,MAAA,CAAO,EAAGG,CAAM,CAAC,EAC5C,OAAOC,CAAAA,EAAY,IAAO,CAAA,KAAA,CAAA,CAAYL,GAAaK,CAAUJ,CAAAA,CAAAA,CAAQ,OAAOG,CAAS,CAAA,CAAC,CAAC,CACzF,CAEF,CACA,SAASE,GAAa1C,CAAKqC,CAAAA,CAAAA,CAASM,EAAO,CACzC,GAAI,GAAC3C,CAAOqC,EAAAA,CAAAA,GAAY,KACpB,CAAA,CAAA,EAAA,EAAA,UAAA,GAAc,QAAU,MAAO,CAAA,QAAA,CAASrC,CAAG,CAC/C,CAAA,CAAA,GAAI,OAAOqC,CAAY,EAAA,QAAA,EAAY,WAAYA,CAAS,CAAA,CACtDV,GAAO,OAAOgB,CAAAA,EAAU,UAAY,QAAYA,GAAAA,CAAK,EACrD,IAASvD,IAAAA,CAAAA,CAAI,CAAGM,CAAAA,CAAAA,CAAI2C,EAAQ,MAAQjD,CAAAA,CAAAA,CAAIM,EAAG,EAAEN,CAAAA,CAC3CsD,GAAa1C,CAAKqC,CAAAA,CAAAA,CAAQjD,CAAC,CAAGuD,CAAAA,CAAAA,CAAMvD,CAAC,CAAC,EAE1C,MAAO,CACL,IAAIoD,EAASH,CAAQ,CAAA,OAAA,CAAQ,GAAG,CAAA,CAChC,GAAIG,CAAW,GAAA,CAAA,CAAA,CAAI,CACjB,IAAII,CAAAA,CAAiBP,EAAQ,MAAO,CAAA,CAAA,CAAGG,CAAM,CACzCK,CAAAA,CAAAA,CAAmBR,EAAQ,MAAOG,CAAAA,CAAAA,CAAS,CAAC,CAChD,CAAA,GAAIK,IAAqB,EACnBF,CAAAA,CAAAA,GAAU,KACR7C,CAAAA,CAAAA,CAAAA,CAAQE,CAAG,CAAK,EAAA,CAAC,MAAM,QAAS4C,CAAAA,CAAc,CAAC,CAAG5C,CAAAA,CAAAA,CAAI,MAAO4C,CAAAA,CAAAA,CAAgB,CAAC,CAAO,CAAA,OAAO5C,EAAI4C,CAAc,CAAA,CAC7G5C,EAAI4C,CAAc,CAAA,CAAID,CACxB,CAAA,KAAA,CACL,IAAIF,CAAWzC,CAAAA,CAAAA,CAAI4C,CAAc,CAC7B,CAAA,CAAA,CAACH,GAAY,CAACpC,CAAAA,CAAOL,EAAK4C,CAAc,CAAA,IAAGH,EAAWzC,CAAI4C,CAAAA,CAAc,EAAI,EAAC,CAAA,CACjFF,GAAaD,CAAUI,CAAAA,CAAAA,CAAkBF,CAAK,EAChD,CACF,CACMA,KAAAA,CAAAA,GAAU,OACR7C,CAAQE,CAAAA,CAAG,GAAK,CAAC,KAAA,CAAM,SAASqC,CAAO,CAAC,EAAGrC,CAAI,CAAA,MAAA,CAAOqC,EAAS,CAAC,CAAA,CAAO,OAAOrC,CAAIqC,CAAAA,CAAO,CACxFrC,CAAAA,CAAAA,CAAIqC,CAAO,CAAIM,CAAAA,EAE1B,CACF,CACA,SAASG,GAAa9C,CAAKqC,CAAAA,CAAAA,CAAS,CAC9B,OAAOA,CAAAA,EAAY,SAAUK,EAAa1C,CAAAA,CAAAA,CAAKqC,EAAS,KAAS,CAAA,CAAA,CAAW,WAAYA,CAAS,EAAA,EAAG,CAAA,GAAA,CAAI,KAAKA,CAAS,CAAA,SAAUU,EAAI,CACtIL,EAAAA,CAAa1C,EAAK+C,CAAI,CAAA,KAAA,CAAS,EACjC,CAAC,EACH,CACA,SAASC,GAAahD,CAAK,CAAA,CACzB,IAAIsC,CAAK,CAAA,EACT,CAAA,IAAA,IAASW,KAAKjD,CACRK,CAAAA,CAAAA,CAAOL,EAAKiD,CAAC,CAAA,GAAGX,EAAGW,CAAC,CAAA,CAAIjD,EAAIiD,CAAC,CAAA,CAAA,CAEnC,OAAOX,CACT,CACA,IAAIY,EAAS,CAAA,GAAG,MAChB,CAAA,SAASC,EAAQC,CAAAA,CAAAA,CAAG,CAClB,OAAOF,EAAAA,CAAO,MAAM,EAAC,CAAGE,CAAC,CAC3B,CACA,IAAIC,EAAqB,CAAA,gNAAA,CAAiN,MAAM,GAAG,CAAA,CAAE,OAAOF,EAAQ,CAAA,CAAC,EAAG,EAAI,CAAA,EAAA,CAAI,EAAE,CAAA,CAAE,IAAI,SAAUG,CAAAA,CAAK,CACrS,OAAO,CAAC,MAAO,MAAQ,CAAA,OAAO,EAAE,GAAI,CAAA,SAAUpE,EAAG,CAC/C,OAAOA,EAAIoE,CAAM,CAAA,OACnB,CAAC,CACH,CAAC,CAAC,CAAC,EAAE,MAAO,CAAA,SAAUpE,EAAG,CACvB,OAAOU,EAAQV,CAAC,CAClB,CAAC,CAAA,CACGqE,GAAiB,IAAI,GAAA,CAAIF,GAAmB,GAAI,CAAA,SAAUnE,EAAG,CAC/D,OAAOU,CAAQV,CAAAA,CAAC,CAClB,CAAC,CAAC,EACF,SAASsE,EAAAA,CAAsBC,EAAG,CAChC,IAAInB,EAAK,EAAC,CACV,QAASoB,CAAKD,IAAAA,CAAAA,CAAG,GAAIpD,CAAOoD,CAAAA,CAAAA,CAAGC,CAAC,CAAG,CAAA,CACjC,IAAIC,CAAAA,CAAIF,EAAEC,CAAC,CAAA,CACXpB,EAAGoB,CAAC,CAAA,CAAI,CAACC,CAAK,EAAA,OAAOA,GAAM,QAAYJ,EAAAA,EAAAA,CAAe,IAAII,CAAE,CAAA,WAAW,EAAIA,CAAIH,CAAAA,EAAAA,CAAsBG,CAAC,EACxG,CACA,OAAOrB,CACT,CACA,SAASsB,EAAAA,CAAcH,EAAG,CACxB,IAAA,IAASC,KAAKD,CAAG,CAAA,GAAIpD,EAAOoD,CAAGC,CAAAA,CAAC,EAAG,OAAO,CAAA,CAAA,CAC1C,OAAO,CACT,CAAA,CACA,IAAIG,EAAe,CAAA,IAAA,CACnB,SAASC,EAAAA,CAAUC,EAAK,CACtBF,EAAAA,CAAe,IAAI,OACnB,CAAA,IAAIvB,EAAK0B,EAAeD,CAAAA,CAAG,CAC3B,CAAA,OAAAF,GAAe,IACRvB,CAAAA,CACT,CACA,SAAS0B,EAAAA,CAAeC,EAAG,CACzB,GAAI,CAACA,CAAAA,EAAK,OAAOA,CAAM,EAAA,QAAA,CAAU,OAAOA,CACxC,CAAA,IAAI3B,EAAKuB,EAAa,CAAA,GAAA,CAAII,CAAC,CAC3B,CAAA,GAAI3B,EAAI,OAAOA,CAAAA,CACf,GAAIxC,CAAQmE,CAAAA,CAAC,EAAG,CACd3B,CAAAA,CAAK,EAAC,CACNuB,GAAa,GAAII,CAAAA,CAAAA,CAAG3B,CAAE,CACtB,CAAA,IAAA,IAASlD,EAAI,CAAGM,CAAAA,CAAAA,CAAIuE,EAAE,MAAQ7E,CAAAA,CAAAA,CAAIM,EAAG,EAAEN,CAAAA,CACrCkD,EAAG,IAAK0B,CAAAA,EAAAA,CAAeC,EAAE7E,CAAC,CAAC,CAAC,EAEhC,SAAWmE,EAAe,CAAA,GAAA,CAAIU,EAAE,WAAW,CAAA,CACzC3B,EAAK2B,CACA,CAAA,KAAA,CACL,IAAIzD,CAAQL,CAAAA,CAAAA,CAAS8D,CAAC,CACtB3B,CAAAA,CAAAA,CAAK9B,IAAU,MAAO,CAAA,SAAA,CAAY,EAAK,CAAA,MAAA,CAAO,MAAOA,CAAAA,CAAK,EAC1DqD,EAAa,CAAA,GAAA,CAAII,EAAG3B,CAAE,CAAA,CACtB,QAAShC,CAAQ2D,IAAAA,CAAAA,CACX5D,CAAO4D,CAAAA,CAAAA,CAAG3D,CAAI,CAChBgC,GAAAA,CAAAA,CAAGhC,CAAI,CAAI0D,CAAAA,EAAAA,CAAeC,EAAE3D,CAAI,CAAC,CAGvC,EAAA,CACA,OAAOgC,CACT,CACA,IAAI4B,EAAW,CAAA,GAAG,QAClB,CAAA,SAASC,GAAYV,CAAG,CAAA,CACtB,OAAOS,EAAS,CAAA,IAAA,CAAKT,CAAC,CAAE,CAAA,KAAA,CAAM,EAAG,CAAE,CAAA,CACrC,CACA,IAAIW,GAAiB,OAAO,MAAA,CAAW,IAAc,MAAO,CAAA,QAAA,CAAW,aACnEC,EAAgB,CAAA,OAAOD,IAAmB,QAAW,CAAA,SAAUH,EAAG,CACpE,IAAI7E,EACJ,OAAO6E,CAAAA,EAAK,OAAS7E,CAAI6E,CAAAA,CAAAA,CAAEG,EAAc,CAAA,CAAA,EAAMhF,EAAE,KAAM6E,CAAAA,CAAC,CAC1D,CAAI,CAAA,UAAY,CACd,OAAO,IACT,EACA,SAASK,EAAAA,CAAalB,EAAGa,CAAG,CAAA,CAC1B,IAAI7E,CAAIgE,CAAAA,CAAAA,CAAE,QAAQa,CAAC,CAAA,CACnB,OAAI7E,CAAAA,EAAK,GAAGgE,CAAE,CAAA,MAAA,CAAOhE,EAAG,CAAC,CAAA,CAClBA,GAAK,CACd,CACA,IAAImF,EAAAA,CAAgB,EACpB,CAAA,SAASC,GAAWC,CAAW,CAAA,CAC7B,IAAIrF,CAAGgE,CAAAA,CAAAA,CAAGa,CAAGS,CAAAA,CAAAA,CACb,GAAI,SAAU,CAAA,MAAA,GAAW,EAAG,CAC1B,GAAI5E,EAAQ2E,CAAS,CAAA,CAAG,OAAOA,CAAU,CAAA,KAAA,GACzC,GAAI,IAAA,GAASF,IAAiB,OAAOE,CAAAA,EAAc,SAAU,OAAO,CAACA,CAAS,CAAA,CAC9E,GAAIC,CAAKL,CAAAA,EAAAA,CAAcI,CAAS,CAAG,CAAA,CAEjC,IADArB,CAAI,CAAA,GACGa,CAAIS,CAAAA,CAAAA,CAAG,MAAQ,CAAA,CAACT,EAAE,IAAMb,EAAAA,CAAAA,CAAE,KAAKa,CAAE,CAAA,KAAK,CAC7C,CAAA,OAAOb,CACT,CACA,GAAIqB,GAAa,IAAM,CAAA,OAAO,CAACA,CAAS,CAAA,CAExC,GADArF,CAAIqF,CAAAA,CAAAA,CAAU,OACV,OAAOrF,CAAAA,EAAM,SAAU,CAEzB,IADAgE,EAAI,IAAI,KAAA,CAAMhE,CAAC,CAAA,CACRA,KAAKgE,CAAEhE,CAAAA,CAAC,EAAIqF,CAAUrF,CAAAA,CAAC,EAC9B,OAAOgE,CACT,CACA,OAAO,CAACqB,CAAS,CACnB,CAGA,IAFArF,CAAAA,CAAI,UAAU,MACdgE,CAAAA,CAAAA,CAAI,IAAI,KAAA,CAAMhE,CAAC,CACRA,CAAAA,CAAAA,EAAAA,EAAKgE,EAAEhE,CAAC,CAAA,CAAI,UAAUA,CAAC,CAAA,CAC9B,OAAOgE,CACT,CACA,IAAIuB,EAAkB,CAAA,OAAO,OAAW,GAAc,CAAA,SAAU9C,EAAI,CAClE,OAAOA,CAAG,CAAA,MAAA,CAAO,WAAW,CAAM,GAAA,eACpC,EAAI,UAAY,CACd,OAAO,CACT,CAAA,CAAA,CACI+C,GAAkB,CAAC,QAAA,CAAU,OAAQ,YAAc,CAAA,eAAA,CAAiB,SAAU,SAAW,CAAA,cAAA,CAAgB,aAAc,gBAAkB,CAAA,iBAAA,CAAmB,gBAAkB,CAAA,aAAA,CAAe,WAAY,gBAAkB,CAAA,iBAAA,CAAmB,cAAc,CAC5PC,CAAAA,EAAAA,CAAmB,CAAC,SAAW,CAAA,YAAA,CAAc,OAAQ,qBAAuB,CAAA,UAAA,CAAY,UAAW,UAAY,CAAA,cAAA,CAAgB,gBAAiB,OAAS,CAAA,SAAA,CAAW,gBAAiB,QAAU,CAAA,WAAW,CAC1MC,CAAAA,EAAAA,CAAYF,GAAgB,MAAOC,CAAAA,EAAgB,EACnDE,EAAe,CAAA,CACjB,eAAgB,uDAChB,CAAA,cAAA,CAAgB,0BAChB,CAAA,KAAA,CAAO,sBACP,mBAAqB,CAAA,6CAAA,CACrB,WAAY,kEACd,CAAA,CACA,SAASC,EAAWC,CAAAA,CAAAA,CAAMC,CAAK,CAAA,CAC7B,KAAK,IAAOD,CAAAA,CAAAA,CACZ,KAAK,OAAUC,CAAAA,EACjB,CACArE,CAAOmE,CAAAA,EAAU,EAAE,IAAK,CAAA,KAAK,EAAE,MAAO,CAAA,CACpC,SAAU,UAAY,CACpB,OAAO,IAAK,CAAA,IAAA,CAAO,IAAO,CAAA,IAAA,CAAK,OACjC,CACF,CAAC,EACD,SAASG,EAAAA,CAAqBD,EAAKE,CAAU,CAAA,CAC3C,OAAOF,CAAM,CAAA,YAAA,CAAe,OAAO,IAAKE,CAAAA,CAAQ,EAAE,GAAI,CAAA,SAAUlF,EAAK,CACnE,OAAOkF,CAASlF,CAAAA,CAAG,EAAE,QAAS,EAChC,CAAC,CAAE,CAAA,MAAA,CAAO,SAAUyD,CAAGvE,CAAAA,CAAAA,CAAGD,EAAG,CAC3B,OAAOA,EAAE,OAAQwE,CAAAA,CAAC,IAAMvE,CAC1B,CAAC,EAAE,IAAK,CAAA;AAAA,CAAI,CACd,CACA,SAASiG,EAAYH,CAAAA,CAAAA,CAAKE,CAAUE,CAAAA,CAAAA,CAAcC,CAAY,CAAA,CAC5D,IAAK,CAAA,QAAA,CAAWH,CAChB,CAAA,IAAA,CAAK,UAAaG,CAAAA,CAAAA,CAClB,IAAK,CAAA,YAAA,CAAeD,CACpB,CAAA,IAAA,CAAK,OAAUH,CAAAA,EAAAA,CAAqBD,CAAKE,CAAAA,CAAQ,EACnD,CACAvE,CAAOwE,CAAAA,EAAW,CAAE,CAAA,IAAA,CAAKL,EAAU,CAAA,CACnC,SAASQ,EAAAA,CAAUN,CAAKE,CAAAA,CAAAA,CAAU,CAChC,IAAA,CAAK,IAAO,CAAA,WAAA,CACZ,IAAK,CAAA,QAAA,CAAW,MAAO,CAAA,IAAA,CAAKA,CAAQ,CAAA,CAAE,GAAI,CAAA,SAAUK,CAAK,CAAA,CACvD,OAAOL,CAAAA,CAASK,CAAG,CACrB,CAAC,CAAA,CACD,IAAK,CAAA,aAAA,CAAgBL,CACrB,CAAA,IAAA,CAAK,OAAUD,CAAAA,EAAAA,CAAqBD,CAAK,CAAA,IAAA,CAAK,QAAQ,EACxD,CACArE,CAAAA,CAAO2E,EAAS,CAAA,CAAE,IAAKR,CAAAA,EAAU,CACjC,CAAA,IAAIU,EAAWZ,CAAAA,EAAAA,CAAU,MAAO,CAAA,SAAU9E,CAAKiF,CAAAA,CAAAA,CAAM,CACnD,OAAOjF,CAAIiF,CAAAA,CAAI,CAAIA,CAAAA,CAAAA,CAAO,OAASjF,CAAAA,CACrC,CAAG,CAAA,EAAE,CAAA,CACD2F,EAAgBX,CAAAA,EAAAA,CAChBY,EAAad,CAAAA,EAAAA,CAAU,MAAO,CAAA,SAAU9E,CAAKiF,CAAAA,CAAAA,CAAM,CACrD,IAAIY,CAAWZ,CAAAA,CAAAA,CAAO,OACtB,CAAA,SAASD,CAAWc,CAAAA,CAAAA,CAAYC,CAAO,CAAA,CACrC,IAAK,CAAA,IAAA,CAAOF,CACPC,CAAAA,CAAAA,CAGM,OAAOA,CAAAA,EAAe,QAC/B,EAAA,IAAA,CAAK,OAAU,CAAA,EAAA,CAAG,MAAOA,CAAAA,CAAU,CAAE,CAAA,MAAA,CAAQC,CAAa,CAAA;AAAA,CAAA,CAAA,CAAQA,EAAb,EAAkB,CAAA,CACvE,KAAK,KAAQA,CAAAA,CAAAA,EAAS,MACb,OAAOD,CAAAA,EAAe,WAC/B,IAAK,CAAA,OAAA,CAAU,GAAG,MAAOA,CAAAA,CAAAA,CAAW,KAAM,GAAG,CAAA,CAAE,OAAOA,CAAW,CAAA,OAAO,CACxE,CAAA,IAAA,CAAK,MAAQA,CAPb,CAAA,EAAA,IAAA,CAAK,QAAUf,EAAaE,CAAAA,CAAI,GAAKY,CACrC,CAAA,IAAA,CAAK,MAAQ,IAQjB,EAAA,CACA,OAAAhF,CAAOmE,CAAAA,CAAU,EAAE,IAAKW,CAAAA,EAAa,EACrC3F,CAAIiF,CAAAA,CAAI,CAAID,CAAAA,CAAAA,CACLhF,CACT,CAAG,CAAA,EAAE,CACL4F,CAAAA,EAAAA,CAAW,OAAS,WACpBA,CAAAA,EAAAA,CAAW,KAAO,SAClBA,CAAAA,EAAAA,CAAW,MAAQ,UACnB,CAAA,IAAII,GAAenB,EAAiB,CAAA,MAAA,CAAO,SAAU7E,CAAKiF,CAAAA,CAAAA,CAAM,CAC9D,OAAAjF,EAAIiF,CAAO,CAAA,OAAO,EAAIW,EAAWX,CAAAA,CAAI,EAC9BjF,CACT,CAAA,CAAG,EAAE,CAAA,CACL,SAASiG,EAASC,CAAAA,CAAAA,CAAUC,EAAS,CACnC,GAAI,CAACD,CAAYA,EAAAA,CAAAA,YAAoBlB,EAAckB,EAAAA,CAAAA,YAAoB,WAAaA,CAAoB,YAAA,WAAA,EAAe,CAACA,CAAS,CAAA,IAAA,EAAQ,CAACF,EAAaE,CAAAA,CAAAA,CAAS,IAAI,CAAG,CAAA,OAAOA,EAC9K,IAAI5D,CAAAA,CAAK,IAAI0D,EAAaE,CAAAA,CAAAA,CAAS,IAAI,CAAEC,CAAAA,CAAAA,EAAWD,CAAS,CAAA,OAAA,CAASA,CAAQ,CAC9E,CAAA,OAAI,UAAWA,CACbzF,EAAAA,CAAAA,CAAQ6B,EAAI,OAAS,CAAA,CACnB,IAAK,UAAY,CACf,OAAO,IAAK,CAAA,KAAA,CAAM,KACpB,CACF,CAAC,EAEIA,CACT,CACA,IAAI8D,EAAAA,CAAqBtB,GAAU,MAAO,CAAA,SAAU9E,EAAKiF,CAAM,CAAA,CAC7D,OAAI,CAAC,QAAA,CAAU,OAAQ,OAAO,CAAA,CAAE,QAAQA,CAAI,CAAA,GAAM,KAAIjF,CAAIiF,CAAAA,CAAAA,CAAO,OAAO,CAAIW,CAAAA,EAAAA,CAAWX,CAAI,CAAA,CAAA,CACpFjF,CACT,CAAG,CAAA,EAAE,CACLoG,CAAAA,EAAAA,CAAmB,YAAcf,EACjCe,CAAAA,EAAAA,CAAmB,WAAapB,EAChCoB,CAAAA,EAAAA,CAAmB,UAAYZ,EAC/B,CAAA,SAASa,IAAM,EACf,SAASC,EAAO/D,CAAAA,CAAAA,CAAK,CACnB,OAAOA,CACT,CACA,SAASgE,GAAkBC,CAAIC,CAAAA,CAAAA,CAAI,CACjC,OAAID,CAAAA,EAAM,MAAQA,CAAOF,GAAAA,EAAAA,CAAeG,EACjC,SAAUlE,CAAAA,CAAK,CACpB,OAAOkE,CAAAA,CAAGD,EAAGjE,CAAG,CAAC,CACnB,CACF,CACA,SAASmE,EAAAA,CAASC,EAAKC,CAAK,CAAA,CAC1B,OAAO,UAAY,CACjBD,EAAI,KAAM,CAAA,IAAA,CAAM,SAAS,CACzBC,CAAAA,CAAAA,CAAI,MAAM,IAAM,CAAA,SAAS,EAC3B,CACF,CACA,SAASC,EAAAA,CAAkBL,EAAIC,CAAI,CAAA,CACjC,OAAID,CAAOH,GAAAA,EAAAA,CAAYI,EAChB,UAAY,CACjB,IAAIK,CAAMN,CAAAA,CAAAA,CAAG,MAAM,IAAM,CAAA,SAAS,EAC9BM,CAAQ,GAAA,KAAA,CAAA,GAAW,UAAU,CAAC,CAAA,CAAIA,CACtC,CAAA,CAAA,IAAIC,EAAY,IAAK,CAAA,SAAA,CACnBC,EAAU,IAAK,CAAA,OAAA,CACjB,KAAK,SAAY,CAAA,IAAA,CACjB,KAAK,OAAU,CAAA,IAAA,CACf,IAAIC,CAAOR,CAAAA,CAAAA,CAAG,MAAM,IAAM,CAAA,SAAS,EACnC,OAAIM,CAAAA,GAAW,IAAK,CAAA,SAAA,CAAY,KAAK,SAAYL,CAAAA,EAAAA,CAASK,EAAW,IAAK,CAAA,SAAS,EAAIA,CACnFC,CAAAA,CAAAA,CAAAA,GAAS,KAAK,OAAU,CAAA,IAAA,CAAK,QAAUN,EAASM,CAAAA,CAAAA,CAAS,KAAK,OAAO,CAAA,CAAIA,GACtEC,CAAS,GAAA,KAAA,CAAA,CAAYA,CAAOH,CAAAA,CACrC,CACF,CACA,SAASI,GAAkBV,CAAIC,CAAAA,CAAAA,CAAI,CACjC,OAAID,CAAAA,GAAOH,GAAYI,CAChB,CAAA,UAAY,CACjBD,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,CACxB,IAAIO,CAAY,CAAA,IAAA,CAAK,SACnBC,CAAAA,CAAAA,CAAU,KAAK,OACjB,CAAA,IAAA,CAAK,UAAY,IAAK,CAAA,OAAA,CAAU,KAChCP,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,CACpBM,IAAW,IAAK,CAAA,SAAA,CAAY,KAAK,SAAYL,CAAAA,EAAAA,CAASK,EAAW,IAAK,CAAA,SAAS,EAAIA,CACnFC,CAAAA,CAAAA,CAAAA,GAAS,KAAK,OAAU,CAAA,IAAA,CAAK,QAAUN,EAASM,CAAAA,CAAAA,CAAS,KAAK,OAAO,CAAA,CAAIA,GAC/E,CACF,CACA,SAASG,EAAkBX,CAAAA,CAAAA,CAAIC,EAAI,CACjC,OAAID,IAAOH,EAAYI,CAAAA,CAAAA,CAChB,SAAUW,CAAAA,CAAe,CAC9B,IAAIN,CAAAA,CAAMN,EAAG,KAAM,CAAA,IAAA,CAAM,SAAS,CAClCzG,CAAAA,CAAAA,CAAOqH,EAAeN,CAAG,CAAA,CACzB,IAAIC,CAAY,CAAA,IAAA,CAAK,UACnBC,CAAU,CAAA,IAAA,CAAK,QACjB,IAAK,CAAA,SAAA,CAAY,IACjB,CAAA,IAAA,CAAK,QAAU,IACf,CAAA,IAAIC,EAAOR,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,CACnC,OAAIM,CAAW,GAAA,IAAA,CAAK,UAAY,IAAK,CAAA,SAAA,CAAYL,GAASK,CAAW,CAAA,IAAA,CAAK,SAAS,CAAIA,CAAAA,CAAAA,CAAAA,CACnFC,CAAS,GAAA,IAAA,CAAK,QAAU,IAAK,CAAA,OAAA,CAAUN,GAASM,CAAS,CAAA,IAAA,CAAK,OAAO,CAAIA,CAAAA,CAAAA,CAAAA,CACtEF,IAAQ,KAAYG,CAAAA,CAAAA,CAAAA,GAAS,OAAY,KAAYA,CAAAA,CAAAA,CAAAA,CAAOlH,EAAO+G,CAAKG,CAAAA,CAAI,CACrF,CACF,CACA,SAASI,EAAAA,CAA2Bb,EAAIC,CAAI,CAAA,CAC1C,OAAID,CAAOH,GAAAA,EAAAA,CAAYI,EAChB,UAAY,CACjB,OAAIA,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,GAAM,GAAc,CACzCD,CAAAA,CAAAA,CAAAA,CAAG,MAAM,IAAM,CAAA,SAAS,CACjC,CACF,CACA,SAASc,EAAAA,CAAgBd,EAAIC,CAAI,CAAA,CAC/B,OAAID,CAAOH,GAAAA,EAAAA,CAAYI,EAChB,UAAY,CACjB,IAAIK,CAAMN,CAAAA,CAAAA,CAAG,MAAM,IAAM,CAAA,SAAS,EAClC,GAAIM,CAAAA,EAAO,OAAOA,CAAAA,CAAI,MAAS,UAAY,CAAA,CAIzC,QAHIS,CAAO,CAAA,IAAA,CACTnI,EAAI,SAAU,CAAA,MAAA,CACdiC,EAAO,IAAI,KAAA,CAAMjC,CAAC,CACbA,CAAAA,CAAAA,EAAAA,EAAKiC,EAAKjC,CAAC,CAAA,CAAI,UAAUA,CAAC,CAAA,CACjC,OAAO0H,CAAAA,CAAI,KAAK,UAAY,CAC1B,OAAOL,CAAG,CAAA,KAAA,CAAMc,EAAMlG,CAAI,CAC5B,CAAC,CACH,CACA,OAAOoF,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CACjC,CACF,CACA,IAAIe,EAAQ,CAAA,OAAO,SAAa,GAAe,EAAA,4CAAA,CAA6C,KAAK,QAAS,CAAA,IAAI,EAC9G,SAASC,EAAAA,CAAS9E,EAAO+E,CAAQ,CAAA,CAC/BF,GAAQ7E,EACV,CACA,IAAIgF,EAAW,CAAA,GACXC,EAAkB,CAAA,GAAA,CACpBC,EAAO,CAAA,OAAO,QAAY,GAAc,CAAA,GAAK,UAAY,CACvD,IAAIC,CAAU,CAAA,OAAA,CAAQ,SACtB,CAAA,GAAI,OAAO,MAAW,CAAA,GAAA,EAAe,CAAC,MAAO,CAAA,MAAA,CAAQ,OAAO,CAACA,CAAAA,CAAS3H,CAAS2H,CAAAA,CAAO,EAAGA,CAAO,CAAA,CAChG,IAAIC,CAAU,CAAA,MAAA,CAAO,OAAO,MAAO,CAAA,SAAA,CAAW,IAAI,UAAW,CAAA,CAAC,CAAC,CAAC,CAAC,EACjE,OAAO,CAACA,EAAS5H,CAAS4H,CAAAA,CAAO,CAAGD,CAAAA,CAAO,CAC7C,CAAE,EAAA,CACFE,GAAwBH,EAAK,CAAA,CAAC,EAC9BI,EAAqBJ,CAAAA,EAAAA,CAAK,CAAC,CAC3BK,CAAAA,EAAAA,CAAwBL,GAAK,CAAC,CAAA,CAC9BM,GAAoBF,EAAsBA,EAAAA,EAAAA,CAAmB,KAC3DG,EAAgBJ,CAAAA,EAAAA,EAAyBA,EAAsB,CAAA,WAAA,CAC/DK,GAAqB,CAAC,CAACH,GAC3B,SAASI,EAAAA,EAAuB,CAC9B,cAAeC,CAAAA,EAAY,EAC7B,CACA,IAAIC,GAAO,SAAUC,CAAAA,CAAUpH,EAAM,CACnCqH,EAAAA,CAAe,KAAK,CAACD,CAAAA,CAAUpH,CAAI,CAAC,EAChCsH,EACFL,GAAAA,EAAAA,GACAK,EAAuB,CAAA,CAAA,CAAA,EAE3B,EACIC,EAAqB,CAAA,CAAA,CAAA,CACvBD,GAAuB,CACvBE,CAAAA,CAAAA,EAAAA,CAAkB,EAClBC,CAAAA,EAAAA,CAAkB,EAClBC,CAAAA,EAAAA,CAAkBzC,GAChB0C,EAAY,CAAA,CACd,EAAI,CAAA,QAAA,CACJ,OAAQ,CACR,CAAA,CAAA,GAAA,CAAK,EACL,UAAY,CAAA,GACZ,WAAa3C,CAAAA,EAAAA,CACb,IAAK,CACL,CAAA,CAAA,GAAA,CAAK,EACL,CAAA,QAAA,CAAUA,EACZ,CACI4C,CAAAA,EAAAA,CAAMD,GACNN,EAAiB,CAAA,EACjBQ,CAAAA,EAAAA,CAAoB,EACpBC,EAAiB,CAAA,GACrB,SAASC,EAAAA,CAAavH,EAAI,CACxB,GAAI,OAAO,IAAS,EAAA,QAAA,CAAU,MAAM,IAAI,SAAA,CAAU,sCAAsC,CACxF,CAAA,IAAA,CAAK,WAAa,EAAC,CACnB,KAAK,IAAO,CAAA,CAAA,CAAA,CACZ,IAAIwH,CAAM,CAAA,IAAA,CAAK,KAAOJ,EACtB,CAAA,GAAI,OAAOpH,CAAO,EAAA,UAAA,CAAY,CAC5B,GAAIA,CAAAA,GAAO8F,GAAU,MAAM,IAAI,UAAU,gBAAgB,CAAA,CACzD,KAAK,MAAS,CAAA,SAAA,CAAU,CAAC,CAAA,CACzB,KAAK,MAAS,CAAA,SAAA,CAAU,CAAC,CACrB,CAAA,IAAA,CAAK,SAAW,CAAO2B,CAAAA,EAAAA,EAAAA,CAAgB,KAAM,IAAK,CAAA,MAAM,EAC5D,MACF,CACA,KAAK,MAAS,CAAA,IAAA,CACd,KAAK,MAAS,CAAA,IAAA,CACd,EAAED,CAAAA,CAAI,IACNE,EAAmB,CAAA,IAAA,CAAM1H,CAAE,EAC7B,CACA,IAAI2H,EAAW,CAAA,CACb,IAAK,UAAY,CACf,IAAIH,CAAMJ,CAAAA,EAAAA,CACRQ,EAAcC,EAChB,CAAA,SAASC,EAAKC,CAAaC,CAAAA,CAAAA,CAAY,CACrC,IAAIC,EAAQ,IACRC,CAAAA,CAAAA,CAAgB,CAACV,CAAI,CAAA,MAAA,GAAWA,IAAQJ,EAAOQ,EAAAA,CAAAA,GAAgBC,IAC/DM,CAAUD,CAAAA,CAAAA,EAAiB,CAACE,EAAwB,EAAA,CACpD3H,EAAK,IAAI8G,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CACnDC,EAAAA,CAAoBN,EAAO,IAAIO,EAAAA,CAASC,GAA0BV,CAAaP,CAAAA,CAAAA,CAAKU,EAAeC,CAAO,CAAA,CAAGM,GAA0BT,CAAYR,CAAAA,CAAAA,CAAKU,EAAeC,CAAO,CAAA,CAAGE,EAASC,CAAQd,CAAAA,CAAG,CAAC,EACxM,CAAC,CACD,CAAA,OAAI,KAAK,YAAc/G,GAAAA,CAAAA,CAAG,aAAe,IAAK,CAAA,YAAA,CAAA,CACvCA,CACT,CACA,OAAAqH,EAAK,SAAYhC,CAAAA,EAAAA,CACVgC,CACT,CACA,CAAA,GAAA,CAAK,SAAUhH,CAAO,CAAA,CACpBlC,EAAQ,IAAM,CAAA,MAAA,CAAQkC,CAASA,EAAAA,CAAAA,CAAM,YAAcgF,EAAW6B,CAAAA,EAAAA,CAAW,CACvE,GAAK,CAAA,UAAY,CACf,OAAO7G,CACT,EACA,GAAK6G,CAAAA,EAAAA,CAAS,GAChB,CAAC,EACH,CACF,CACAjJ,CAAAA,CAAAA,CAAM6I,GAAa,SAAW,CAAA,CAC5B,IAAMI,CAAAA,EAAAA,CACN,MAAO,SAAUI,CAAAA,CAAaC,EAAY,CACxCO,EAAAA,CAAoB,KAAM,IAAIC,EAAAA,CAAS,KAAM,IAAMT,CAAAA,CAAAA,CAAaC,EAAYZ,EAAG,CAAC,EAClF,CACA,CAAA,KAAA,CAAO,SAAUY,CAAY,CAAA,CAC3B,GAAI,SAAA,CAAU,SAAW,CAAG,CAAA,OAAO,KAAK,IAAK,CAAA,IAAA,CAAMA,CAAU,CAC7D,CAAA,IAAIU,EAAO,SAAU,CAAA,CAAC,EACpBC,CAAU,CAAA,SAAA,CAAU,CAAC,CACvB,CAAA,OAAO,OAAOD,CAAS,EAAA,UAAA,CAAa,IAAK,CAAA,IAAA,CAAK,KAAM,SAAUE,CAAAA,CAAK,CACjE,OAAOA,CAAAA,YAAeF,EAAOC,CAAQC,CAAAA,CAAG,EAAIC,EAAcD,CAAAA,CAAG,CAC/D,CAAC,CAAA,CAAI,KAAK,IAAK,CAAA,IAAA,CAAM,SAAUA,CAAK,CAAA,CAClC,OAAOA,CAAAA,EAAOA,EAAI,IAASF,GAAAA,CAAAA,CAAOC,EAAQC,CAAG,CAAA,CAAIC,GAAcD,CAAG,CACpE,CAAC,CACH,CAAA,CACA,QAAS,SAAUE,CAAAA,CAAW,CAC5B,OAAO,IAAA,CAAK,KAAK,SAAUhI,CAAAA,CAAO,CAChC,OAAOyG,GAAa,OAAQuB,CAAAA,CAAAA,EAAW,CAAE,CAAA,IAAA,CAAK,UAAY,CACxD,OAAOhI,CACT,CAAC,CACH,EAAG,SAAU8H,CAAAA,CAAK,CAChB,OAAOrB,EAAAA,CAAa,QAAQuB,CAAU,EAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CACxD,OAAOD,GAAcD,CAAG,CAC1B,CAAC,CACH,CAAC,CACH,CACA,CAAA,OAAA,CAAS,SAAUG,CAAI1F,CAAAA,CAAAA,CAAK,CAC1B,IAAI4E,CAAAA,CAAQ,KACZ,OAAOc,CAAAA,CAAK,CAAW,CAAA,CAAA,CAAA,IAAIxB,GAAa,SAAUc,CAAAA,CAASC,EAAQ,CACjE,IAAIU,EAAS,UAAW,CAAA,UAAY,CAClC,OAAOV,CAAAA,CAAO,IAAIvE,EAAW,CAAA,OAAA,CAAQV,CAAG,CAAC,CAC3C,EAAG0F,CAAE,CAAA,CACLd,CAAM,CAAA,IAAA,CAAKI,EAASC,CAAM,CAAA,CAAE,QAAQ,YAAa,CAAA,IAAA,CAAK,KAAMU,CAAM,CAAC,EACrE,CAAC,CAAA,CAAI,IACP,CACF,CAAC,EACG,OAAO,MAAA,CAAW,KAAe,MAAO,CAAA,WAAA,EAAapK,CAAQ2I,CAAAA,EAAAA,CAAa,UAAW,MAAO,CAAA,WAAA,CAAa,eAAe,CAC5HJ,CAAAA,EAAAA,CAAU,IAAM8B,EAAS,EAAA,CACzB,SAAST,EAAST,CAAAA,CAAAA,CAAaC,EAAYK,CAASC,CAAAA,CAAAA,CAAQY,EAAM,CAChE,IAAA,CAAK,YAAc,OAAOnB,CAAAA,EAAgB,WAAaA,CAAc,CAAA,IAAA,CACrE,KAAK,UAAa,CAAA,OAAOC,GAAe,UAAaA,CAAAA,CAAAA,CAAa,KAClE,IAAK,CAAA,OAAA,CAAUK,EACf,IAAK,CAAA,MAAA,CAASC,EACd,IAAK,CAAA,GAAA,CAAMY,EACb,CACAxK,CAAAA,CAAM6I,GAAc,CAClB,GAAA,CAAK,UAAY,CACf,IAAI4B,CAASxG,CAAAA,EAAAA,CAAW,MAAM,IAAM,CAAA,SAAS,EAAE,GAAIyG,CAAAA,EAAwB,EAC3E,OAAO,IAAI7B,GAAa,SAAUc,CAAAA,CAASC,EAAQ,CAC7Ca,CAAAA,CAAO,SAAW,CAAGd,EAAAA,CAAAA,CAAQ,EAAE,EACnC,IAAIgB,CAAAA,CAAYF,EAAO,MACvBA,CAAAA,CAAAA,CAAO,QAAQ,SAAU5H,CAAAA,CAAGhE,EAAG,CAC7B,OAAOgK,GAAa,OAAQhG,CAAAA,CAAC,EAAE,IAAK,CAAA,SAAUa,EAAG,CAC/C+G,CAAAA,CAAO5L,CAAC,CAAA,CAAI6E,EACN,EAAEiH,CAAAA,EAAWhB,EAAQc,CAAM,EACnC,EAAGb,CAAM,CACX,CAAC,EACH,CAAC,CACH,CACA,CAAA,OAAA,CAAS,SAAUxH,CAAO,CAAA,CACxB,GAAIA,CAAiByG,YAAAA,EAAAA,CAAc,OAAOzG,CAAAA,CAC1C,GAAIA,CAAS,EAAA,OAAOA,EAAM,IAAS,EAAA,UAAA,CAAY,OAAO,IAAIyG,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CAChGxH,CAAM,CAAA,IAAA,CAAKuH,EAASC,CAAM,EAC5B,CAAC,CACD,CAAA,IAAI7H,CAAK,CAAA,IAAI8G,GAAazB,EAAU,CAAA,CAAA,CAAA,CAAMhF,CAAK,CAC/C,CAAA,OAAOL,CACT,CACA,CAAA,MAAA,CAAQoI,GACR,IAAM,CAAA,UAAY,CAChB,IAAIM,CAAAA,CAASxG,GAAW,KAAM,CAAA,IAAA,CAAM,SAAS,CAAE,CAAA,GAAA,CAAIyG,EAAwB,CAAA,CAC3E,OAAO,IAAI7B,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CACjDa,CAAO,CAAA,GAAA,CAAI,SAAUrI,CAAO,CAAA,CAC1B,OAAOyG,EAAa,CAAA,OAAA,CAAQzG,CAAK,CAAE,CAAA,IAAA,CAAKuH,EAASC,CAAM,CACzD,CAAC,EACH,CAAC,CACH,CAAA,CACA,IAAK,CACH,GAAA,CAAK,UAAY,CACf,OAAOlB,EACT,CACA,CAAA,GAAA,CAAK,SAAUtG,CAAO,CAAA,CACpB,OAAOsG,EAAMtG,CAAAA,CACf,CACF,CACA,CAAA,WAAA,CAAa,CACX,GAAK,CAAA,UAAY,CACf,OAAO+G,EACT,CACF,CACA,CAAA,MAAA,CAAQyB,GACR,MAAQC,CAAAA,EAAAA,CACR,UAAW,CACT,GAAA,CAAK,UAAY,CACf,OAAO5C,EACT,CACA,CAAA,GAAA,CAAK,SAAU7F,CAAO,CAAA,CACpB6F,EAAO7F,CAAAA,EACT,CACF,CACA,CAAA,eAAA,CAAiB,CACf,GAAK,CAAA,UAAY,CACf,OAAOoG,EACT,EACA,GAAK,CAAA,SAAUpG,EAAO,CACpBoG,EAAAA,CAAkBpG,EACpB,CACF,CAAA,CACA,OAAQ,SAAUd,CAAAA,CAAIwJ,CAAW,CAAA,CAC/B,OAAO,IAAIjC,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CACjD,OAAOgB,EAAAA,CAAS,SAAUjB,CAASC,CAAAA,CAAAA,CAAQ,CACzC,IAAId,CAAAA,CAAMJ,GACVI,CAAI,CAAA,UAAA,CAAa,EACjBA,CAAAA,CAAAA,CAAI,WAAcc,CAAAA,CAAAA,CAClBd,EAAI,QAAW3C,CAAAA,EAAAA,CAAS,UAAY,CAClC,IAAIoD,EAAQ,IACZwB,CAAAA,EAAAA,CAAyC,UAAY,CACnDxB,CAAAA,CAAM,WAAW,MAAW,GAAA,CAAA,CAAII,GAAYC,CAAAA,CAAAA,CAAOL,EAAM,UAAW,CAAA,CAAC,CAAC,EACxE,CAAC,EACH,CAAA,CAAGT,EAAI,QAAQ,CAAA,CACfxH,IACF,CAAA,CAAGwJ,EAAWnB,CAASC,CAAAA,CAAM,CAC/B,CAAC,CACH,CACF,CAAC,CAAA,CACG/B,KACEA,EAAc,CAAA,UAAA,EAAY3H,CAAQ2I,CAAAA,EAAAA,CAAc,aAAc,UAAY,CAC5E,IAAImC,CAAmB/G,CAAAA,EAAAA,CAAW,MAAM,IAAM,CAAA,SAAS,EAAE,GAAIyG,CAAAA,EAAwB,EACrF,OAAO,IAAI7B,GAAa,SAAUc,CAAAA,CAAS,CACrCqB,CAAiB,CAAA,MAAA,GAAW,CAAGrB,EAAAA,CAAAA,CAAQ,EAAE,CAAA,CAC7C,IAAIgB,CAAYK,CAAAA,CAAAA,CAAiB,OAC7BC,CAAU,CAAA,IAAI,MAAMN,CAAS,CAAA,CACjCK,EAAiB,OAAQ,CAAA,SAAUzM,EAAGM,CAAG,CAAA,CACvC,OAAOgK,EAAa,CAAA,OAAA,CAAQtK,CAAC,CAAA,CAAE,KAAK,SAAU6D,CAAAA,CAAO,CACnD,OAAO6I,CAAAA,CAAQpM,CAAC,CAAI,CAAA,CAClB,OAAQ,WACR,CAAA,KAAA,CAAOuD,CACT,CACF,CAAA,CAAG,SAAU8I,CAAQ,CAAA,CACnB,OAAOD,CAAQpM,CAAAA,CAAC,EAAI,CAClB,MAAA,CAAQ,WACR,MAAQqM,CAAAA,CACV,CACF,CAAC,CAAA,CAAE,KAAK,UAAY,CAClB,OAAO,EAAEP,CAAAA,EAAahB,EAAQsB,CAAO,CACvC,CAAC,CACH,CAAC,EACH,CAAC,CACH,CAAC,CAAA,CACGpD,GAAc,GAAO,EAAA,OAAO,eAAmB,GAAa3H,EAAAA,CAAAA,CAAQ2I,GAAc,KAAO,CAAA,UAAY,CACvG,IAAImC,CAAAA,CAAmB/G,GAAW,KAAM,CAAA,IAAA,CAAM,SAAS,CAAE,CAAA,GAAA,CAAIyG,EAAwB,CACrF,CAAA,OAAO,IAAI7B,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CAC7CoB,CAAiB,CAAA,MAAA,GAAW,GAAGpB,CAAO,CAAA,IAAI,eAAe,EAAE,CAAC,CAChE,CAAA,IAAIe,EAAYK,CAAiB,CAAA,MAAA,CAC7BnG,EAAW,IAAI,KAAA,CAAM8F,CAAS,CAAA,CAClCK,EAAiB,OAAQ,CAAA,SAAU,EAAGnM,CAAG,CAAA,CACvC,OAAOgK,EAAa,CAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUzG,CAAO,CAAA,CACnD,OAAOuH,CAAQvH,CAAAA,CAAK,CACtB,CAAG,CAAA,SAAU+I,CAAS,CAAA,CACpBtG,EAAShG,CAAC,CAAA,CAAIsM,EACR,EAAER,CAAAA,EAAWf,EAAO,IAAI,cAAA,CAAe/E,CAAQ,CAAC,EACxD,CAAC,CACH,CAAC,EACH,CAAC,CACH,CAAC,CACGgD,CAAAA,EAAAA,CAAc,aAAegB,GAAAA,EAAAA,CAAa,cAAgBhB,EAAc,CAAA,aAAA,CAAA,CAAA,CAE9E,SAASmB,EAAmBoC,CAAAA,CAAAA,CAAS9J,EAAI,CACvC,GAAI,CACFA,CAAG,CAAA,SAAUc,EAAO,CAClB,GAAIgJ,EAAQ,MAAW,GAAA,IAAA,CACvB,IAAIhJ,CAAUgJ,GAAAA,CAAAA,CAAS,MAAM,IAAI,UAAU,2CAA2C,CAAA,CACtF,IAAIC,CAAoBD,CAAAA,CAAAA,CAAQ,MAAQE,EAAoB,EAAA,CACxDlJ,GAAS,OAAOA,CAAAA,CAAM,MAAS,UACjC4G,CAAAA,EAAAA,CAAmBoC,EAAS,SAAUzB,CAAAA,CAASC,EAAQ,CACrDxH,CAAAA,YAAiByG,EAAezG,CAAAA,CAAAA,CAAM,MAAMuH,CAASC,CAAAA,CAAM,EAAIxH,CAAM,CAAA,IAAA,CAAKuH,EAASC,CAAM,EAC3F,CAAC,CAEDwB,EAAAA,CAAAA,CAAQ,OAAS,CACjBA,CAAAA,CAAAA,CAAAA,CAAQ,OAAShJ,CACjBmJ,CAAAA,EAAAA,CAAsBH,CAAO,CAE3BC,CAAAA,CAAAA,CAAAA,EAAmBG,EAAkB,GAAA,CAC3C,EAAGzC,EAAgB,CAAA,IAAA,CAAK,KAAMqC,CAAO,CAAC,EACxC,CAASK,MAAAA,CAAAA,CAAI,CACX1C,EAAgBqC,CAAAA,CAAAA,CAASK,CAAE,EAC7B,CACF,CACA,SAAS1C,EAAAA,CAAgBqC,EAASF,CAAQ,CAAA,CAExC,GADA3C,EAAAA,CAAgB,KAAK2C,CAAM,CAAA,CACvBE,EAAQ,MAAW,GAAA,IAAA,CACvB,KAAIC,CAAoBD,CAAAA,CAAAA,CAAQ,MAAQE,EAAoB,EAAA,CAC5DJ,EAAS1C,EAAgB0C,CAAAA,CAAM,EAC/BE,CAAQ,CAAA,MAAA,CAAS,GACjBA,CAAQ,CAAA,MAAA,CAASF,CACjBQ,CAAAA,EAAAA,CAA0BN,CAAO,CACjCG,CAAAA,EAAAA,CAAsBH,CAAO,CACzBC,CAAAA,CAAAA,EAAmBG,KACzB,CAAA,CACA,SAASD,EAAsBH,CAAAA,CAAAA,CAAS,CACtC,IAAIO,CAAAA,CAAYP,EAAQ,UACxBA,CAAAA,CAAAA,CAAQ,WAAa,EAAC,CACtB,IAASvM,IAAAA,CAAAA,CAAI,EAAG+M,CAAMD,CAAAA,CAAAA,CAAU,OAAQ9M,CAAI+M,CAAAA,CAAAA,CAAK,EAAE/M,CACjDgL,CAAAA,EAAAA,CAAoBuB,EAASO,CAAU9M,CAAAA,CAAC,CAAC,CAE3C,CAAA,IAAIiK,EAAMsC,CAAQ,CAAA,IAAA,CAClB,EAAEtC,CAAI,CAAA,GAAA,EAAOA,CAAI,CAAA,QAAA,GACbH,EAAsB,GAAA,CAAA,GACxB,EAAEA,EACFV,CAAAA,EAAAA,CAAK,UAAY,CACX,EAAEU,KAAsB,CAAGkD,EAAAA,EAAAA,GACjC,CAAG,CAAA,EAAE,CAET,EAAA,CACA,SAAShC,EAAoBuB,CAAAA,CAAAA,CAASU,CAAU,CAAA,CAC9C,GAAIV,CAAQ,CAAA,MAAA,GAAW,KAAM,CAC3BA,CAAAA,CAAQ,WAAW,IAAKU,CAAAA,CAAQ,EAChC,MACF,CACA,IAAIC,CAAKX,CAAAA,CAAAA,CAAQ,OAASU,CAAS,CAAA,WAAA,CAAcA,EAAS,UAC1D,CAAA,GAAIC,CAAO,GAAA,IAAA,CACT,QAAQX,CAAQ,CAAA,MAAA,CAASU,EAAS,OAAUA,CAAAA,CAAAA,CAAS,QAAQV,CAAQ,CAAA,MAAM,EAE7E,EAAEU,CAAAA,CAAS,IAAI,GACf,CAAA,EAAEnD,GACFV,EAAK+D,CAAAA,EAAAA,CAAc,CAACD,CAAIX,CAAAA,CAAAA,CAASU,CAAQ,CAAC,EAC5C,CACA,SAASE,GAAaD,CAAIX,CAAAA,CAAAA,CAASU,EAAU,CAC3C,GAAI,CACF,IAAIG,CAAAA,CACF7J,EAAQgJ,CAAQ,CAAA,MAAA,CACd,CAACA,CAAQ,CAAA,MAAA,EAAU7C,GAAgB,MAAQA,GAAAA,EAAAA,CAAkB,EACjE0D,CAAAA,CAAAA,CAAAA,CAAMhF,IAASmE,CAAQ,CAAA,YAAA,CAAeA,EAAQ,YAAa,CAAA,GAAA,CAAI,UAAY,CACzE,OAAOW,EAAG3J,CAAK,CACjB,CAAC,CAAI2J,CAAAA,CAAAA,CAAG3J,CAAK,CACT,CAAA,CAACgJ,EAAQ,MAAU7C,EAAAA,EAAAA,CAAgB,OAAQnG,CAAAA,CAAK,IAAM,CACxD8J,CAAAA,EAAAA,EAAAA,CAAmBd,CAAO,CAE5BU,CAAAA,CAAAA,CAAS,QAAQG,CAAG,EACtB,OAASE,CAAG,CAAA,CACVL,EAAS,MAAOK,CAAAA,CAAC,EACnB,CAAE,OAAA,CACI,EAAExD,EAAsB,GAAA,CAAA,EAAGkD,EAAqB,EAAA,CACpD,EAAEC,CAAS,CAAA,GAAA,CAAI,KAAOA,CAAS,CAAA,GAAA,CAAI,WACrC,CACF,CACA,SAAS9D,EAAAA,EAAe,CACtB6C,EAAOpC,CAAAA,EAAAA,CAAW,UAAY,CAC5B6C,EAAAA,IAAyBE,EAAkB,GAC7C,CAAC,EACH,CACA,SAASF,EAAAA,EAAsB,CAC7B,IAAIc,CAAAA,CAAc/D,GAClB,OAAAA,EAAAA,CAAqB,GACrBD,EAAuB,CAAA,CAAA,CAAA,CAChBgE,CACT,CACA,SAASZ,IAAoB,CAC3B,IAAIa,EAAWxN,CAAG,CAAA,CAAA,CAClB,GACE,KAAOsJ,GAAe,MAAS,CAAA,CAAA,EAI7B,IAHAkE,CAAYlE,CAAAA,EAAAA,CACZA,GAAiB,EAAC,CAClB,EAAIkE,CAAU,CAAA,MAAA,CACTxN,EAAI,CAAGA,CAAAA,CAAAA,CAAI,EAAG,EAAEA,CAAAA,CAAG,CACtB,IAAI8C,CAAAA,CAAO0K,CAAUxN,CAAAA,CAAC,EACtB8C,CAAK,CAAA,CAAC,EAAE,KAAM,CAAA,IAAA,CAAMA,EAAK,CAAC,CAAC,EAC7B,CAEKwG,MAAAA,EAAAA,CAAe,OAAS,CACjCE,EAAAA,EAAAA,CAAqB,GACrBD,EAAuB,CAAA,CAAA,EACzB,CACA,SAASyD,EAAAA,EAAuB,CAC9B,IAAIS,EAAgBhE,EACpBA,CAAAA,EAAAA,CAAkB,EAClBgE,CAAAA,CAAAA,CAAc,QAAQ,SAAU/N,CAAAA,CAAG,CACjCA,CAAE,CAAA,IAAA,CAAK,YAAY,IAAK,CAAA,IAAA,CAAMA,EAAE,MAAQA,CAAAA,CAAC,EAC3C,CAAC,CAAA,CAGD,IAFIgO,IAAAA,CAAAA,CAAa3D,GAAe,KAAM,CAAA,CAAC,EACnC/J,CAAI0N,CAAAA,CAAAA,CAAW,OACZ1N,CAAG0N,EAAAA,CAAAA,CAAW,EAAE1N,CAAC,CAAA,GAC1B,CACA,SAASkM,GAAyCzJ,CAAI,CAAA,CACpD,SAASkL,CAAY,EAAA,CACnBlL,GACAsH,CAAAA,EAAAA,CAAe,OAAOA,EAAe,CAAA,OAAA,CAAQ4D,CAAS,CAAG,CAAA,CAAC,EAC5D,CACA5D,EAAAA,CAAe,KAAK4D,CAAS,CAAA,CAC7B,EAAE7D,EACFV,CAAAA,EAAAA,CAAK,UAAY,CACX,EAAEU,KAAsB,CAAGkD,EAAAA,EAAAA,GACjC,CAAA,CAAG,EAAE,EACP,CACA,SAASH,EAAAA,CAA0BN,EAAS,CACrC9C,EAAAA,CAAgB,KAAK,SAAU/J,CAAAA,CAAG,CACrC,OAAOA,CAAAA,CAAE,SAAW6M,CAAQ,CAAA,MAC9B,CAAC,CAAG9C,EAAAA,EAAAA,CAAgB,IAAK8C,CAAAA,CAAO,EAClC,CACA,SAASc,GAAmBd,CAAS,CAAA,CAEnC,QADIvM,CAAIyJ,CAAAA,EAAAA,CAAgB,OACjBzJ,CAAG,EAAA,GAAIyJ,GAAgB,EAAEzJ,CAAC,EAAE,MAAWuM,GAAAA,CAAAA,CAAQ,OAAQ,CAC5D9C,EAAAA,CAAgB,MAAOzJ,CAAAA,CAAAA,CAAG,CAAC,CAC3B,CAAA,MACF,CACF,CACA,SAASsL,GAAce,CAAQ,CAAA,CAC7B,OAAO,IAAIrC,EAAAA,CAAazB,GAAU,CAAO8D,CAAAA,CAAAA,CAAM,CACjD,CACA,SAASuB,GAAKnL,CAAIoL,CAAAA,CAAAA,CAAc,CAC9B,IAAI5D,EAAMJ,EACV,CAAA,OAAO,UAAY,CACjB,IAAI0D,EAAcd,EAAoB,EAAA,CACpCqB,EAAajE,EACf,CAAA,GAAI,CACF,OAAAkE,EAAAA,CAAa9D,EAAK,CAAI,CAAA,CAAA,CACfxH,EAAG,KAAM,CAAA,IAAA,CAAM,SAAS,CACjC,OAAS6K,CAAG,CAAA,CACVO,GAAgBA,CAAaP,CAAAA,CAAC,EAChC,CAAE,OAAA,CACAS,GAAaD,CAAY,CAAA,CAAA,CAAK,EAC1BP,CAAaZ,EAAAA,EAAAA,GACnB,CACF,CACF,CACA,IAAIqB,EAAAA,CAAO,CACT,MAAA,CAAQ,EACR,MAAQ,CAAA,CAAA,CACR,GAAI,CACN,CAAA,CACIC,GAAc,CACdC,CAAAA,EAAAA,CAAY,EACZC,CAAAA,EAAAA,CAAa,EACb7D,EAAc,CAAA,CAAA,CACd8D,GAAkB,CACtB,CAAA,SAASrC,GAAStJ,CAAItB,CAAAA,CAAAA,CAAOkN,CAAIC,CAAAA,CAAAA,CAAI,CACnC,IAAIC,CAAAA,CAAS1E,GACXI,CAAM,CAAA,MAAA,CAAO,OAAOsE,CAAM,CAAA,CAC5BtE,EAAI,MAASsE,CAAAA,CAAAA,CACbtE,EAAI,GAAM,CAAA,CAAA,CACVA,EAAI,MAAS,CAAA,CAAA,CAAA,CACbA,EAAI,EAAK,CAAA,EAAEmE,GACXxE,EAAU,CAAA,GAAA,CACVK,EAAI,GAAMhB,CAAAA,EAAAA,CAAqB,CAC7B,OAASe,CAAAA,EAAAA,CACT,YAAa,CACX,KAAA,CAAOA,GACP,YAAc,CAAA,CAAA,CAAA,CACd,SAAU,CACZ,CAAA,CAAA,CACA,IAAKA,EAAa,CAAA,GAAA,CAClB,KAAMA,EAAa,CAAA,IAAA,CACnB,UAAYA,CAAAA,EAAAA,CAAa,WACzB,GAAKA,CAAAA,EAAAA,CAAa,IAClB,OAASA,CAAAA,EAAAA,CAAa,QACtB,MAAQA,CAAAA,EAAAA,CAAa,MACvB,CAAI,CAAA,GACA7I,CAAOR,EAAAA,CAAAA,CAAOsJ,EAAK9I,CAAK,CAAA,CAC5B,EAAEoN,CAAO,CAAA,GAAA,CACTtE,CAAI,CAAA,QAAA,CAAW,UAAY,CACzB,EAAE,KAAK,MAAO,CAAA,GAAA,EAAO,KAAK,MAAO,CAAA,QAAA,GACnC,CACA,CAAA,IAAI/G,EAAK8I,EAAO/B,CAAAA,CAAAA,CAAKxH,EAAI4L,CAAIC,CAAAA,CAAE,EAC/B,OAAIrE,CAAAA,CAAI,GAAQ,GAAA,CAAA,EAAGA,EAAI,QAAS,EAAA,CACzB/G,CACT,CACA,SAASsL,IAA0B,CACjC,OAAKR,GAAK,EAAIA,GAAAA,EAAAA,CAAK,GAAK,EAAEC,EAAAA,CAAAA,CAC1B,EAAED,EAAK,CAAA,MAAA,CACPA,GAAK,MAAUxF,EAAAA,EAAAA,CACRwF,EAAK,CAAA,EACd,CACA,SAASnD,EAAAA,EAA0B,CACjC,OAAKmD,EAAAA,CAAK,QACN,EAAEA,EAAAA,CAAK,SAAW,CAAGA,GAAAA,EAAAA,CAAK,GAAK,CACnCA,CAAAA,CAAAA,EAAAA,CAAK,OAASA,EAAK,CAAA,MAAA,CAASxF,GACrB,CAHkB,CAAA,EAAA,CAAA,CAI3B,CACK,CAAA,EAAA,CAAKO,IAAmB,OAAQ,CAAA,eAAe,IAAM,CACxDyF,CAAAA,GAAAA,EAAAA,CAA0B3D,GAA0B5D,EAEtD,CAAA,CAAA,SAAS4E,GAAyB4C,CAAiB,CAAA,CACjD,OAAIT,EAAK,CAAA,MAAA,EAAUS,GAAmBA,CAAgB,CAAA,WAAA,GAAgBzF,IACpEwF,EAAwB,EAAA,CACjBC,CAAgB,CAAA,IAAA,CAAK,SAAU5J,CAAG,CAAA,CACvC,OAAAgG,EAAwB,EAAA,CACjBhG,CACT,CAAG,CAAA,SAAUyI,EAAG,CACd,OAAAzC,IACO6D,CAAAA,EAAAA,CAAUpB,CAAC,CACpB,CAAC,GAEImB,CACT,CACA,SAASE,EAAAA,CAAcC,EAAY,CACjC,EAAEtE,IACE,CAAC0D,EAAAA,CAAK,QAAU,EAAEA,EAAAA,CAAK,SAAW,CACpCA,IAAAA,EAAAA,CAAK,OAASA,EAAK,CAAA,MAAA,CAASA,GAAK,EAAK,CAAA,CAAA,CAAA,CAExCE,GAAU,IAAKrE,CAAAA,EAAG,CAClBkE,CAAAA,EAAAA,CAAaa,EAAY,CAAI,CAAA,EAC/B,CACA,SAASC,EAAAA,EAAgB,CACvB,IAAIlD,CAAAA,CAAOuC,GAAUA,EAAU,CAAA,MAAA,CAAS,CAAC,CACzCA,CAAAA,EAAAA,CAAU,KACVH,CAAAA,EAAAA,CAAapC,EAAM,CAAK,CAAA,EAC1B,CACA,SAASoC,GAAaa,CAAYE,CAAAA,CAAAA,CAAe,CAC/C,IAAIC,CAAAA,CAAclF,GAIlB,GAHIiF,CAAAA,CAAAA,CAAgBd,GAAK,MAAW,GAAA,CAACG,MAAgBS,CAAe/E,GAAAA,EAAAA,CAAAA,CAAOsE,KAAe,CAAE,EAAEA,IAAcS,CAAe/E,GAAAA,EAAAA,CAAAA,GACzH,cAAeiF,CAAAA,CAAAA,CAAgBH,GAAc,IAAK,CAAA,IAAA,CAAMC,CAAU,CAAIC,CAAAA,EAAa,EAEjFD,CAAe/E,GAAAA,EAAAA,GACnBA,GAAM+E,CACFG,CAAAA,CAAAA,GAAgBnF,KAAWA,EAAU,CAAA,GAAA,CAAM8B,IAC3CzC,CAAAA,CAAAA,EAAAA,CAAAA,CAAoB,CACtB,IAAI+F,CAAAA,CAAgBpF,EAAU,CAAA,GAAA,CAAI,QAC9BqF,CAAYL,CAAAA,CAAAA,CAAW,KACvBG,CAAY,CAAA,MAAA,EAAUH,EAAW,MACnC,IAAA,MAAA,CAAO,eAAepO,CAAS,CAAA,SAAA,CAAWyO,EAAU,WAAW,CAAA,CAC/DD,EAAc,GAAMC,CAAAA,CAAAA,CAAU,IAC9BD,CAAc,CAAA,IAAA,CAAOC,CAAU,CAAA,IAAA,CAC/BD,EAAc,OAAUC,CAAAA,CAAAA,CAAU,QAClCD,CAAc,CAAA,MAAA,CAASC,EAAU,MAC7BA,CAAAA,CAAAA,CAAU,aAAYD,CAAc,CAAA,UAAA,CAAaC,EAAU,UAC3DA,CAAAA,CAAAA,CAAAA,CAAU,MAAKD,CAAc,CAAA,GAAA,CAAMC,EAAU,GAErD,CAAA,EAAA,CACF,CACA,SAASvD,IAAW,CAClB,IAAIsD,EAAgBxO,CAAQ,CAAA,OAAA,CAC5B,OAAOyI,EAAqB,CAAA,CAC1B,QAAS+F,CACT,CAAA,WAAA,CAAa,OAAO,wBAAyBxO,CAAAA,CAAAA,CAAS,SAAS,CAC/D,CAAA,GAAA,CAAKwO,EAAc,GACnB,CAAA,IAAA,CAAMA,CAAc,CAAA,IAAA,CACpB,WAAYA,CAAc,CAAA,UAAA,CAC1B,IAAKA,CAAc,CAAA,GAAA,CACnB,QAASA,CAAc,CAAA,OAAA,CACvB,OAAQA,CAAc,CAAA,MACxB,EAAI,EACN,CACA,SAAShD,EAAAA,CAAO/B,EAAKxH,CAAI4L,CAAAA,CAAAA,CAAIC,CAAIY,CAAAA,CAAAA,CAAI,CACnC,IAAIpB,CAAAA,CAAajE,GACjB,GAAI,CACF,OAAAkE,EAAa9D,CAAAA,CAAAA,CAAK,EAAI,CACfxH,CAAAA,CAAAA,CAAG4L,EAAIC,CAAIY,CAAAA,CAAE,CACtB,CAAE,OAAA,CACAnB,GAAaD,CAAY,CAAA,CAAA,CAAK,EAChC,CACF,CACA,SAAS5C,EAA0BzI,CAAAA,CAAAA,CAAIkJ,EAAMhB,CAAeC,CAAAA,CAAAA,CAAS,CACnE,OAAO,OAAOnI,GAAO,UAAaA,CAAAA,CAAAA,CAAK,UAAY,CACjD,IAAI0M,EAAYtF,EACZc,CAAAA,CAAAA,EAAe6D,IACnBT,CAAAA,EAAAA,CAAapC,CAAM,CAAA,CAAA,CAAI,EACvB,GAAI,CACF,OAAOlJ,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CACjC,QAAE,CACAsL,EAAAA,CAAaoB,EAAW,CAAK,CAAA,CAAA,CACzBvE,GAAS,cAAeC,CAAAA,EAAuB,EACrD,CACF,CACF,CACA,SAASuE,GAAoBlC,CAAI,CAAA,CAC3B,UAAYlE,EAAiBgF,EAAAA,EAAAA,CAAK,SAAW,CAC3CG,CAAAA,EAAAA,GAAe,EACjBjB,CAAG,EAAA,CAEH,uBAAuBA,CAAE,CAAA,CAG3B,WAAWA,CAAI,CAAA,CAAC,EAEpB,CACA,IAAIwB,EAAY1E,CAAAA,EAAAA,CAAa,OAC7B,SAASqF,EAAAA,CAAgBC,EAAIC,CAAMC,CAAAA,CAAAA,CAAY/M,EAAI,CACjD,GAAI,CAAC6M,CAAG,CAAA,KAAA,EAAS,CAACA,CAAG,CAAA,MAAA,CAAO,cAAgB,CAACzF,EAAAA,CAAI,YAAc,CAACyF,CAAAA,CAAG,IAAM,CAAA,CACvE,GAAIA,CAAG,CAAA,MAAA,CAAO,aACZ,OAAOZ,EAAAA,CAAU,IAAIlI,EAAW,CAAA,cAAA,CAAe8I,EAAG,MAAO,CAAA,WAAW,CAAC,CAEvE,CAAA,GAAI,CAACA,CAAG,CAAA,MAAA,CAAO,cAAe,CAC5B,GAAI,CAACA,CAAAA,CAAG,OAAO,QAAU,CAAA,OAAOZ,GAAU,IAAIlI,EAAAA,CAAW,cAAgB,CACzE8I,CAAAA,CAAAA,CAAG,MAAO,CAAA,KAAA,CAAMrI,EAAG,EACrB,CACA,OAAOqI,CAAG,CAAA,MAAA,CAAO,eAAe,IAAK,CAAA,UAAY,CAC/C,OAAOD,GAAgBC,CAAIC,CAAAA,CAAAA,CAAMC,EAAY/M,CAAE,CACjD,CAAC,CACH,CAAA,KAAO,CACL,IAAIgN,CAAAA,CAAQH,EAAG,kBAAmBC,CAAAA,CAAAA,CAAMC,EAAYF,CAAG,CAAA,SAAS,EAChE,GAAI,CACFG,CAAM,CAAA,MAAA,GACNH,CAAG,CAAA,MAAA,CAAO,eAAiB,EAC7B,CAAA,MAAS1C,EAAI,CACX,OAAIA,EAAG,IAAStG,GAAAA,EAAAA,CAAS,cAAgBgJ,CAAG,CAAA,MAAA,IAAY,EAAEA,CAAAA,CAAG,OAAO,cAAiB,CAAA,CAAA,EACnF,QAAQ,IAAK,CAAA,0BAA0B,EACvCA,CAAG,CAAA,KAAA,CAAM,CACP,eAAiB,CAAA,CAAA,CACnB,CAAC,CACMA,CAAAA,CAAAA,CAAG,MAAO,CAAA,IAAA,CAAK,UAAY,CAChC,OAAOD,GAAgBC,CAAIC,CAAAA,CAAAA,CAAMC,EAAY/M,CAAE,CACjD,CAAC,CAAA,EAEIiM,GAAU9B,CAAE,CACrB,CACA,OAAO6C,CAAAA,CAAM,SAASF,CAAM,CAAA,SAAUzE,EAASC,CAAQ,CAAA,CACrD,OAAOgB,EAAS,CAAA,UAAY,CAC1B,OAAAlC,EAAAA,CAAI,MAAQ4F,CACLhN,CAAAA,CAAAA,CAAGqI,CAASC,CAAAA,CAAAA,CAAQ0E,CAAK,CAClC,CAAC,CACH,CAAC,CAAA,CAAE,KAAK,SAAU5M,CAAAA,CAAQ,CACxB,GAAI0M,CAAAA,GAAS,YAAa,GAAI,CAC5BE,EAAM,QAAS,CAAA,MAAA,GACjB,CAAa,KAAA,EACb,OAAOF,IAAS,UAAa1M,CAAAA,CAAAA,CAAS4M,EAAM,WAAY,CAAA,IAAA,CAAK,UAAY,CACvE,OAAO5M,CACT,CAAC,CACH,CAAC,CACH,CACF,CACA,IAAI6M,EAAAA,CAAgB,SAChBC,EAAY,CAAA,QAAA,CACZC,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CACTC,GAAuB,mGACvBC,CAAAA,EAAAA,CAAkB,mBAClBC,EAAc,CAAA,GACdC,EAAa,CAAA,WAAA,CACbC,GAAW,UACXC,CAAAA,EAAAA,CAAY,YAChB,SAASC,EAAAA,CAAQC,EAASC,CAAS,CAAA,CACjC,OAAOD,CAAUC,CAAAA,CAAAA,CAAU,UAAY,CACrC,OAAOD,CAAQ,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,EAAKC,EAAQ,KAAM,CAAA,IAAA,CAAM,SAAS,CACxE,CAAA,CAAID,EAAUC,CAChB,CACA,IAAIC,EAAW,CAAA,CACb,KAAM,CACN,CAAA,KAAA,CAAO,CACP,CAAA,CAAA,CAAA,CAAA,SAAA,CAAW,GACX,KAAO,CAAA,CAAC,EAAE,CAAA,CACV,UAAW,CACb,CAAA,CAAA,CACA,SAASC,EAA8BtN,CAAAA,CAAAA,CAAS,CAC9C,OAAO,OAAOA,GAAY,QAAY,EAAA,CAAC,KAAK,IAAKA,CAAAA,CAAO,CAAI,CAAA,SAAUrC,EAAK,CACzE,OAAIA,EAAIqC,CAAO,CAAA,GAAM,QAAaA,CAAWrC,IAAAA,CAAAA,GAC3CA,EAAM8D,EAAU9D,CAAAA,CAAG,EACnB,OAAOA,CAAAA,CAAIqC,CAAO,CAEbrC,CAAAA,CAAAA,CACT,EAAI,SAAUA,CAAAA,CAAK,CACjB,OAAOA,CACT,CACF,CACA,SAAS4P,IAAS,CAChB,MAAMhK,GAAW,IAAK,EACxB,CACA,SAASiK,EAAAA,CAAIzM,EAAGvE,CAAG,CAAA,CACjB,GAAI,CACF,IAAIiR,EAAKvF,EAAKnH,CAAAA,CAAC,CACX2M,CAAAA,CAAAA,CAAKxF,GAAK1L,CAAC,CAAA,CACf,GAAIiR,CAAOC,GAAAA,CAAAA,CACT,OAAID,CAAO,GAAA,OAAA,CAAgB,EACvBC,CAAO,GAAA,OAAA,CAAgB,GACvBD,CAAO,GAAA,QAAA,CAAiB,EACxBC,CAAO,GAAA,QAAA,CAAiB,GACxBD,CAAO,GAAA,QAAA,CAAiB,CACxBC,CAAAA,CAAAA,GAAO,SAAiB,CACxBD,CAAAA,CAAAA,CAAAA,GAAO,OAAe,CACtBC,CAAAA,CAAAA,GAAO,OAAe,GACnB,CAAA,CAAA,CAAA,CAET,OAAQD,CAAI,EACV,IAAK,QACL,CAAA,IAAK,OACL,IAAK,QAAA,CACH,OAAO1M,CAAIvE,CAAAA,CAAAA,CAAI,CAAIuE,CAAAA,CAAAA,CAAIvE,EAAI,CAAK,CAAA,CAAA,CAAA,CAClC,IAAK,QAED,CAAA,OAAOmR,GAAmBC,EAAc7M,CAAAA,CAAC,EAAG6M,EAAcpR,CAAAA,CAAC,CAAC,CAEhE,CAAA,IAAK,QACH,OAAOqR,EAAAA,CAAc9M,EAAGvE,CAAC,CAC7B,CACF,CAAA,KAAa,EACb,UACF,CACA,SAASqR,GAAc9M,CAAGvE,CAAAA,CAAAA,CAAG,CAI3B,IAHIsR,IAAAA,CAAAA,CAAK/M,EAAE,MACPgN,CAAAA,CAAAA,CAAKvR,EAAE,MACPa,CAAAA,CAAAA,CAAIyQ,EAAKC,CAAKD,CAAAA,CAAAA,CAAKC,CACdhR,CAAAA,CAAAA,CAAI,EAAGA,CAAIM,CAAAA,CAAAA,CAAG,EAAEN,CAAG,CAAA,CAC1B,IAAI0H,CAAM+I,CAAAA,EAAAA,CAAIzM,EAAEhE,CAAC,CAAA,CAAGP,EAAEO,CAAC,CAAC,EACxB,GAAI0H,CAAAA,GAAQ,EAAG,OAAOA,CACxB,CACA,OAAOqJ,IAAOC,CAAK,CAAA,CAAA,CAAID,EAAKC,CAAK,CAAA,CAAA,CAAA,CAAK,CACxC,CACA,SAASJ,GAAmB5M,CAAGvE,CAAAA,CAAAA,CAAG,CAIhC,IAHIsR,IAAAA,CAAAA,CAAK/M,EAAE,MACPgN,CAAAA,CAAAA,CAAKvR,EAAE,MACPa,CAAAA,CAAAA,CAAIyQ,CAAKC,CAAAA,CAAAA,CAAKD,EAAKC,CACdhR,CAAAA,CAAAA,CAAI,EAAGA,CAAIM,CAAAA,CAAAA,CAAG,EAAEN,CACvB,CAAA,GAAIgE,EAAEhE,CAAC,CAAA,GAAMP,EAAEO,CAAC,CAAA,CAAG,OAAOgE,CAAEhE,CAAAA,CAAC,EAAIP,CAAEO,CAAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAK,EAE/C,OAAO+Q,CAAAA,GAAOC,EAAK,CAAID,CAAAA,CAAAA,CAAKC,EAAK,CAAK,CAAA,CAAA,CACxC,CACA,SAAS7F,EAAAA,CAAKtG,EAAG,CACf,IAAI/E,EAAI,OAAO+E,CAAAA,CACf,GAAI/E,CAAM,GAAA,QAAA,CAAU,OAAOA,CAAAA,CAC3B,GAAI,WAAY,CAAA,MAAA,CAAO+E,CAAC,CAAG,CAAA,OAAO,SAClC,IAAIoM,CAAAA,CAAQlM,GAAYF,CAAC,CAAA,CACzB,OAAOoM,CAAU,GAAA,aAAA,CAAgB,SAAWA,CAC9C,CACA,SAASJ,EAAc7M,CAAAA,CAAAA,CAAG,CACxB,OAAIA,aAAa,UAAmBA,CAAAA,CAAAA,CAChC,YAAY,MAAOA,CAAAA,CAAC,EAAU,IAAI,UAAA,CAAWA,EAAE,MAAQA,CAAAA,CAAAA,CAAE,WAAYA,CAAE,CAAA,UAAU,EAC9E,IAAI,UAAA,CAAWA,CAAC,CACzB,CACA,IAAIkN,EAAAA,CAAQ,UAAY,CACtB,SAASA,GAAQ,EACjB,OAAAA,CAAM,CAAA,SAAA,CAAU,OAAS,SAAU3B,CAAAA,CAAM9M,EAAI0O,CAAa,CAAA,CACxD,IAAI1B,CAAQ,CAAA,IAAA,CAAK,KAAO5F,EAAI,CAAA,KAAA,CACxBuH,CAAY,CAAA,IAAA,CAAK,KACjBpD,CAAO5F,CAAAA,EAAAA,EAAS,OAAO,OAAY,CAAA,GAAA,EAAe,QAAQ,UAAc,EAAA,OAAA,CAAQ,WAAW,SAAU,CAAA,MAAA,CAAOmH,IAAS,UAAa,CAAA,MAAA,CAAS,QAAS,GAAG,CAAA,CAAE,OAAO,IAAK,CAAA,IAAI,CAAC,CAAA,CAC9K,SAAS8B,CAAwBvG,CAAAA,CAAAA,CAASC,EAAQ0E,CAAO,CAAA,CACvD,GAAI,CAACA,CAAAA,CAAM,OAAO2B,CAAS,CAAA,CAAG,MAAM,IAAI5K,EAAAA,CAAW,SAAS,QAAW4K,CAAAA,CAAAA,CAAY,0BAA0B,CAC7G,CAAA,OAAO3O,CAAGgN,CAAAA,CAAAA,CAAM,SAAUA,CAAK,CACjC,CACA,IAAIlC,CAAAA,CAAcd,IAClB,CAAA,GAAI,CACF,IAAI/M,CAAAA,CAAI+P,GAASA,CAAM,CAAA,EAAA,CAAG,SAAW,IAAK,CAAA,EAAA,CAAG,OAASA,CAAU5F,GAAAA,EAAAA,CAAI,KAAQ4F,CAAAA,CAAAA,CAAM,SAASF,CAAM8B,CAAAA,CAAAA,CAAyBF,CAAW,CAAIpF,CAAAA,EAAAA,CAAS,UAAY,CAC5J,OAAO0D,EAAM,QAASF,CAAAA,CAAAA,CAAM8B,EAAyBF,CAAW,CAClE,EAAG,CACD,KAAA,CAAO1B,EACP,SAAW5F,CAAAA,EAAAA,CAAI,WAAaA,EAC9B,CAAC,EAAIwF,EAAgB,CAAA,IAAA,CAAK,GAAIE,CAAM,CAAA,CAAC,KAAK,IAAI,CAAA,CAAG8B,CAAuB,CACxE,CAAA,OAAIrD,IACFtO,CAAE,CAAA,YAAA,CAAesO,EACjBtO,CAAIA,CAAAA,CAAAA,CAAE,MAAM,SAAU2L,CAAAA,CAAK,CACzB,OAAA,OAAA,CAAQ,MAAMA,CAAG,CAAA,CACVqD,GAAUrD,CAAG,CACtB,CAAC,CAEI3L,CAAAA,CAAAA,CACT,QAAE,CACI6N,CAAAA,EAAaZ,KACnB,CACF,EACAuE,CAAM,CAAA,SAAA,CAAU,IAAM,SAAUI,CAAAA,CAAWpE,CAAI,CAAA,CAC7C,IAAIxC,CAAQ,CAAA,IAAA,CACZ,OAAI4G,CAAaA,EAAAA,CAAAA,CAAU,cAAgB,MAAe,CAAA,IAAA,CAAK,MAAMA,CAAS,CAAA,CAAE,MAAMpE,CAAE,CAAA,CACpFoE,GAAa,IAAa5C,CAAAA,EAAAA,CAAU,IAAIlI,EAAW,CAAA,IAAA,CAAK,iCAAiC,CAAC,EACvF,IAAK,CAAA,MAAA,CAAO,WAAY,SAAUiJ,CAAAA,CAAO,CAC9C,OAAO/E,CAAAA,CAAM,KAAK,GAAI,CAAA,CACpB,MAAO+E,CACP,CAAA,GAAA,CAAK6B,CACP,CAAC,CAAA,CAAE,KAAK,SAAU5J,CAAAA,CAAK,CACrB,OAAOgD,EAAM,IAAK,CAAA,OAAA,CAAQ,KAAKhD,CAAG,CACpC,CAAC,CACH,CAAC,EAAE,IAAKwF,CAAAA,CAAE,CACZ,CACAgE,CAAAA,CAAAA,CAAM,UAAU,KAAQ,CAAA,SAAUK,EAAa,CAC7C,GAAI,OAAOA,CAAAA,EAAgB,SAAU,OAAO,IAAI,KAAK,EAAG,CAAA,WAAA,CAAY,KAAMA,CAAW,CAAA,CACrF,GAAI7Q,CAAQ6Q,CAAAA,CAAW,EAAG,OAAO,IAAI,KAAK,EAAG,CAAA,WAAA,CAAY,KAAM,GAAI,CAAA,MAAA,CAAOA,CAAY,CAAA,IAAA,CAAK,GAAG,CAAG,CAAA,GAAG,CAAC,CACrG,CAAA,IAAIC,EAAW/Q,CAAK8Q,CAAAA,CAAW,EAC/B,GAAIC,CAAAA,CAAS,SAAW,CAAG,CAAA,OAAO,KAAK,KAAMA,CAAAA,CAAAA,CAAS,CAAC,CAAC,CAAA,CAAE,MAAOD,CAAAA,CAAAA,CAAYC,EAAS,CAAC,CAAC,CAAC,CACzF,CAAA,IAAIC,EAAgB,IAAK,CAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,IAAA,CAAK,OAAO,OAAO,CAAA,CAAE,OAAO,SAAUC,CAAAA,CAAI,CACvF,GAAIA,CAAAA,CAAG,QAAYF,EAAAA,CAAAA,CAAS,MAAM,SAAUvO,CAAAA,CAAS,CACnD,OAAOyO,CAAAA,CAAG,QAAQ,OAAQzO,CAAAA,CAAO,GAAK,CACxC,CAAC,EAAG,CACF,IAAA,IAASjD,EAAI,CAAGA,CAAAA,CAAAA,CAAIwR,EAAS,MAAQ,CAAA,EAAExR,CACrC,CAAA,GAAIwR,EAAS,OAAQE,CAAAA,CAAAA,CAAG,QAAQ1R,CAAC,CAAC,IAAM,CAAI,CAAA,CAAA,OAAO,GAErD,OAAO,CAAA,CACT,CACA,OAAO,CAAA,CACT,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUgE,CAAGvE,CAAAA,CAAAA,CAAG,CACtB,OAAOuE,EAAE,OAAQ,CAAA,MAAA,CAASvE,EAAE,OAAQ,CAAA,MACtC,CAAC,CAAE,CAAA,CAAC,EACJ,GAAIgS,CAAAA,EAAiB,KAAK,EAAG,CAAA,OAAA,GAAY9B,GAAW,CAClD,IAAIgC,EAAuBF,CAAc,CAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,CAAGD,EAAS,MAAM,CAAA,CACzE,OAAO,IAAK,CAAA,KAAA,CAAMG,CAAoB,CAAE,CAAA,MAAA,CAAOA,EAAqB,GAAI,CAAA,SAAUhO,EAAI,CACpF,OAAO4N,EAAY5N,CAAE,CACvB,CAAC,CAAC,CACJ,CACI,CAAC8N,GAAiBrJ,EAAO,EAAA,OAAA,CAAQ,KAAK,YAAa,CAAA,MAAA,CAAO,KAAK,SAAUmJ,CAAAA,CAAW,EAAG,MAAM,CAAA,CAAE,OAAO,IAAK,CAAA,IAAA,CAAM,wBAAwB,CAAI,CAAA,kBAAA,CAAmB,OAAOC,CAAS,CAAA,IAAA,CAAK,GAAG,CAAA,CAAG,GAAG,CAAC,CAAA,CACnM,IAAII,CAAY,CAAA,IAAA,CAAK,OAAO,SAC5B,CAAA,SAASC,EAAO7N,CAAGvE,CAAAA,CAAAA,CAAG,CACpB,OAAOgR,EAAAA,CAAIzM,EAAGvE,CAAC,CAAA,GAAM,CACvB,CACA,IAAIqS,CAAKN,CAAAA,CAAAA,CAAS,OAAO,SAAUM,CAAAA,CAAI7O,EAAS,CAC5C,IAAI8O,EAAYD,CAAG,CAAA,CAAC,EAClBE,CAAeF,CAAAA,CAAAA,CAAG,CAAC,CACjBG,CAAAA,CAAAA,CAAQL,EAAU3O,CAAO,CAAA,CACzBM,EAAQgO,CAAYtO,CAAAA,CAAO,CAC/B,CAAA,OAAO,CAAC8O,CAAaE,EAAAA,CAAAA,CAAOF,GAAa,CAACE,CAAAA,CAAQ9B,GAAQ6B,CAAcC,CAAAA,CAAAA,EAASA,EAAM,KAAQ,CAAA,SAAUpN,EAAG,CAC1G,IAAI3D,EAAO8B,EAAa6B,CAAAA,CAAAA,CAAG5B,CAAO,CAClC,CAAA,OAAOvC,EAAQQ,CAAI,CAAA,EAAKA,EAAK,IAAK,CAAA,SAAU4B,EAAM,CAChD,OAAO+O,EAAOtO,CAAOT,CAAAA,CAAI,CAC3B,CAAC,CACH,EAAI,SAAU+B,CAAAA,CAAG,CACf,OAAOgN,CAAAA,CAAOtO,EAAOP,EAAa6B,CAAAA,CAAAA,CAAG5B,CAAO,CAAC,CAC/C,CAAC,CAAA,CAAI+O,CAAY,CACnB,CAAA,CAAG,CAAC,IAAM,CAAA,IAAI,CAAC,CACfE,CAAAA,CAAAA,CAAMJ,EAAG,CAAC,CAAA,CACVK,EAAiBL,CAAG,CAAA,CAAC,EACvB,OAAOI,CAAAA,CAAM,IAAK,CAAA,KAAA,CAAMA,EAAI,IAAI,CAAA,CAAE,OAAOX,CAAYW,CAAAA,CAAAA,CAAI,OAAO,CAAC,CAAA,CAAE,OAAOC,CAAc,CAAA,CAAIV,EAAgB,IAAK,CAAA,MAAA,CAAOU,CAAc,CAAI,CAAA,IAAA,CAAK,MAAMX,CAAQ,CAAA,CAAE,MAAO,CAAA,EAAE,CAC1K,CACAN,CAAAA,CAAAA,CAAM,UAAU,MAAS,CAAA,SAAUiB,EAAgB,CACjD,OAAO,KAAK,YAAa,EAAA,CAAE,IAAIA,CAAc,CAC/C,EACAjB,CAAM,CAAA,SAAA,CAAU,MAAQ,SAAUkB,CAAAA,CAAc,CAC9C,OAAO,KAAK,YAAa,EAAA,CAAE,MAAMA,CAAY,CAC/C,EACAlB,CAAM,CAAA,SAAA,CAAU,OAAS,SAAUmB,CAAAA,CAAQ,CACzC,OAAO,IAAA,CAAK,cAAe,CAAA,MAAA,CAAOA,CAAM,CAC1C,CAAA,CACAnB,CAAM,CAAA,SAAA,CAAU,MAAQ,SAAUoB,CAAAA,CAAS,CACzC,OAAO,IAAA,CAAK,cAAe,CAAA,KAAA,CAAMA,CAAO,CAC1C,CAAA,CACApB,EAAM,SAAU,CAAA,IAAA,CAAO,SAAU7H,CAAU,CAAA,CACzC,OAAO,IAAK,CAAA,YAAA,EAAe,CAAA,IAAA,CAAKA,CAAQ,CAC1C,CAAA,CACA6H,EAAM,SAAU,CAAA,OAAA,CAAU,SAAUkB,CAAc,CAAA,CAChD,OAAO,IAAK,CAAA,YAAA,GAAe,OAAQA,CAAAA,CAAY,CACjD,CACAlB,CAAAA,CAAAA,CAAM,UAAU,YAAe,CAAA,UAAY,CACzC,OAAO,IAAI,IAAK,CAAA,EAAA,CAAG,WAAW,IAAI,IAAA,CAAK,GAAG,WAAY,CAAA,IAAI,CAAC,CAC7D,CAAA,CACAA,EAAM,SAAU,CAAA,OAAA,CAAU,SAAUe,CAAO,CAAA,CACzC,OAAO,IAAI,IAAA,CAAK,EAAG,CAAA,UAAA,CAAW,IAAI,IAAK,CAAA,EAAA,CAAG,YAAY,IAAMvR,CAAAA,CAAAA,CAAQuR,CAAK,CAAI,CAAA,GAAA,CAAI,OAAOA,CAAM,CAAA,IAAA,CAAK,GAAG,CAAG,CAAA,GAAG,EAAIA,CAAK,CAAC,CACxH,CACAf,CAAAA,CAAAA,CAAM,SAAU,CAAA,OAAA,CAAU,UAAY,CACpC,OAAO,KAAK,YAAa,EAAA,CAAE,SAC7B,CAAA,CACAA,EAAM,SAAU,CAAA,UAAA,CAAa,SAAUqB,CAAa,CAAA,CAClD,IAAIT,CAAK,CAAA,IAAA,CACPxC,EAAKwC,CAAG,CAAA,EAAA,CACRV,CAAYU,CAAAA,CAAAA,CAAG,KACjB,IAAK,CAAA,MAAA,CAAO,YAAcS,CACtBA,CAAAA,CAAAA,CAAY,qBAAqB/B,EACnC+B,GAAAA,CAAAA,CAAc,SAAUC,CAAQ,CAAA,CAC9B7S,EAAU8S,CAASD,CAAAA,CAAM,EACzB,SAASC,CAAAA,EAAU,CACjB,OAAOD,CAAAA,GAAW,IAAQA,EAAAA,CAAAA,CAAO,MAAM,IAAM,CAAA,SAAS,GAAK,IAC7D,CACA,cAAO,cAAeC,CAAAA,CAAAA,CAAQ,UAAW,IAAM,CAAA,CAC7C,IAAK,UAAY,CACf,OAAOnD,CACT,CAAA,CACA,WAAY,CACZ,CAAA,CAAA,YAAA,CAAc,CAChB,CAAA,CAAC,EACDmD,CAAQ,CAAA,SAAA,CAAU,MAAQ,UAAY,CACpC,OAAOrB,CACT,CAAA,CACOqB,CACT,CAAEF,CAAAA,CAAW,GAGf,IADIG,IAAAA,CAAAA,CAAiB,IAAI,GAChBtR,CAAAA,CAAAA,CAAQmR,EAAY,SAAWnR,CAAAA,CAAAA,CAAOA,CAAQL,CAAAA,CAAAA,CAASK,CAAK,CACnE,CAAA,MAAA,CAAO,oBAAoBA,CAAK,CAAA,CAAE,QAAQ,SAAUuR,CAAAA,CAAU,CAC5D,OAAOD,CAAAA,CAAe,IAAIC,CAAQ,CACpC,CAAC,CAEH,CAAA,IAAIC,EAAW,SAAUhS,CAAAA,CAAK,CAC5B,GAAI,CAACA,CAAK,CAAA,OAAOA,EACjB,IAAI8G,CAAAA,CAAM,OAAO,MAAO6K,CAAAA,CAAAA,CAAY,SAAS,CAC7C,CAAA,IAAA,IAAS1O,KAAKjD,CAAK,CAAA,GAAI,CAAC8R,CAAe,CAAA,GAAA,CAAI7O,CAAC,CAAG,CAAA,GAAI,CACjD6D,CAAAA,CAAI7D,CAAC,CAAIjD,CAAAA,CAAAA,CAAIiD,CAAC,EAChB,CAAA,KAAY,EACZ,OAAO6D,CACT,CACA,CAAA,OAAI,KAAK,MAAO,CAAA,QAAA,EACd,KAAK,IAAK,CAAA,OAAA,CAAQ,YAAY,IAAK,CAAA,MAAA,CAAO,QAAQ,CAEpD,CAAA,IAAA,CAAK,OAAO,QAAWkL,CAAAA,CAAAA,CACvB,KAAK,IAAK,CAAA,SAAA,CAAWA,CAAQ,CACtBL,CAAAA,CACT,EACArB,CAAM,CAAA,SAAA,CAAU,YAAc,UAAY,CACxC,SAAS2B,CAAMC,CAAAA,CAAAA,CAAS,CACtBnS,CAAO,CAAA,IAAA,CAAMmS,CAAO,EACtB,CACA,OAAO,IAAA,CAAK,WAAWD,CAAK,CAC9B,EACA3B,CAAM,CAAA,SAAA,CAAU,IAAM,SAAUtQ,CAAAA,CAAKE,EAAK,CACxC,IAAI4J,EAAQ,IACRoH,CAAAA,CAAAA,CAAK,KAAK,MAAO,CAAA,OAAA,CACnBiB,CAAOjB,CAAAA,CAAAA,CAAG,KACV7O,CAAU6O,CAAAA,CAAAA,CAAG,QACXkB,CAAWpS,CAAAA,CAAAA,CACf,OAAIqC,CAAW8P,EAAAA,CAAAA,GACbC,EAAWzC,EAA8BtN,CAAAA,CAAO,EAAErC,CAAG,CAAA,CAAA,CAEhD,KAAK,MAAO,CAAA,WAAA,CAAa,SAAU6O,CAAO,CAAA,CAC/C,OAAO/E,CAAAA,CAAM,KAAK,MAAO,CAAA,CACvB,MAAO+E,CACP,CAAA,IAAA,CAAM,MACN,IAAM3O,CAAAA,CAAAA,EAAO,KAAO,CAACA,CAAG,EAAI,IAC5B,CAAA,MAAA,CAAQ,CAACkS,CAAQ,CACnB,CAAC,CACH,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUtL,CAAK,CAAA,CACrB,OAAOA,CAAI,CAAA,WAAA,CAAcsC,GAAa,MAAOtC,CAAAA,CAAAA,CAAI,SAAS,CAAC,CAAC,EAAIA,CAAI,CAAA,UACtE,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUuL,CAAY,CAAA,CAC5B,GAAIhQ,CAAAA,CACF,GAAI,CACFK,EAAAA,CAAa1C,EAAKqC,CAASgQ,CAAAA,CAAU,EACvC,CAAY,KAAA,EAEd,OAAOA,CACT,CAAC,CACH,CAAA,CACA/B,EAAM,SAAU,CAAA,MAAA,CAAS,SAAUgC,CAAalL,CAAAA,CAAAA,CAAe,CAC7D,GAAI,OAAOkL,CAAgB,EAAA,QAAA,EAAY,CAACxS,CAAQwS,CAAAA,CAAW,EAAG,CAC5D,IAAIpS,EAAMkC,EAAakQ,CAAAA,CAAAA,CAAa,KAAK,MAAO,CAAA,OAAA,CAAQ,OAAO,CAC/D,CAAA,OAAIpS,IAAQ,KAAkB4N,CAAAA,CAAAA,EAAAA,CAAU,IAAIlI,EAAAA,CAAW,gBAAgB,+CAA+C,CAAC,EAChH,IAAK,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,MAAA,CAAO1F,CAAG,CAAE,CAAA,MAAA,CAAOkH,CAAa,CAC3D,CAAA,YACS,IAAK,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,MAAA,CAAOkL,CAAW,CAAE,CAAA,MAAA,CAAOlL,CAAa,CAErE,CAAA,CACAkJ,EAAM,SAAU,CAAA,GAAA,CAAM,SAAUtQ,CAAKE,CAAAA,CAAAA,CAAK,CACxC,IAAI4J,CAAAA,CAAQ,KACRoH,CAAK,CAAA,IAAA,CAAK,OAAO,OACnBiB,CAAAA,CAAAA,CAAOjB,EAAG,IACV7O,CAAAA,CAAAA,CAAU6O,CAAG,CAAA,OAAA,CACXkB,EAAWpS,CACf,CAAA,OAAIqC,GAAW8P,CACbC,GAAAA,CAAAA,CAAWzC,GAA8BtN,CAAO,CAAA,CAAErC,CAAG,CAEhD,CAAA,CAAA,IAAA,CAAK,OAAO,WAAa,CAAA,SAAU6O,EAAO,CAC/C,OAAO/E,EAAM,IAAK,CAAA,MAAA,CAAO,CACvB,KAAA,CAAO+E,EACP,IAAM,CAAA,KAAA,CACN,OAAQ,CAACuD,CAAQ,EACjB,IAAMlS,CAAAA,CAAAA,EAAO,KAAO,CAACA,CAAG,EAAI,IAC9B,CAAC,CACH,CAAC,CAAA,CAAE,KAAK,SAAU4G,CAAAA,CAAK,CACrB,OAAOA,EAAI,WAAcsC,CAAAA,EAAAA,CAAa,OAAOtC,CAAI,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAIA,EAAI,UACtE,CAAC,EAAE,IAAK,CAAA,SAAUuL,EAAY,CAC5B,GAAIhQ,EACF,GAAI,CACFK,EAAa1C,CAAAA,CAAAA,CAAKqC,EAASgQ,CAAU,EACvC,MAAY,EAEd,OAAOA,CACT,CAAC,CACH,CACA/B,CAAAA,CAAAA,CAAM,UAAU,MAAS,CAAA,SAAUpQ,EAAK,CACtC,IAAI4J,EAAQ,IACZ,CAAA,OAAO,IAAK,CAAA,MAAA,CAAO,YAAa,SAAU+E,CAAAA,CAAO,CAC/C,OAAO/E,CAAAA,CAAM,KAAK,MAAO,CAAA,CACvB,MAAO+E,CACP,CAAA,IAAA,CAAM,SACN,IAAM,CAAA,CAAC3O,CAAG,CACZ,CAAC,CACH,CAAC,CAAA,CAAE,IAAK,CAAA,SAAU4G,EAAK,CACrB,OAAOA,EAAI,WAAcsC,CAAAA,EAAAA,CAAa,OAAOtC,CAAI,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAI,MAClE,CAAC,CACH,EACAwJ,CAAM,CAAA,SAAA,CAAU,MAAQ,UAAY,CAClC,IAAIxG,CAAAA,CAAQ,KACZ,OAAO,IAAA,CAAK,OAAO,WAAa,CAAA,SAAU+E,EAAO,CAC/C,OAAO/E,EAAM,IAAK,CAAA,MAAA,CAAO,CACvB,KAAO+E,CAAAA,CAAAA,CACP,KAAM,aACN,CAAA,KAAA,CAAOa,EACT,CAAC,CACH,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU5I,CAAK,CAAA,CACrB,OAAOA,CAAI,CAAA,WAAA,CAAcsC,GAAa,MAAOtC,CAAAA,CAAAA,CAAI,SAAS,CAAC,CAAC,EAAI,KAClE,CAAA,CAAC,CACH,CACAwJ,CAAAA,CAAAA,CAAM,UAAU,OAAU,CAAA,SAAUzQ,CAAM,CAAA,CACxC,IAAIiK,CAAQ,CAAA,IAAA,CACZ,OAAO,IAAK,CAAA,MAAA,CAAO,WAAY,SAAU+E,CAAAA,CAAO,CAC9C,OAAO/E,CAAAA,CAAM,KAAK,OAAQ,CAAA,CACxB,KAAMjK,CACN,CAAA,KAAA,CAAOgP,CACT,CAAC,CAAA,CAAE,IAAK,CAAA,SAAU5M,EAAQ,CACxB,OAAOA,EAAO,GAAI,CAAA,SAAU6E,EAAK,CAC/B,OAAOgD,EAAM,IAAK,CAAA,OAAA,CAAQ,KAAKhD,CAAG,CACpC,CAAC,CACH,CAAC,CACH,CAAC,CACH,CACAwJ,CAAAA,CAAAA,CAAM,UAAU,OAAU,CAAA,SAAUiC,EAASC,CAAe5R,CAAAA,CAAAA,CAAS,CACnE,IAAIkJ,CAAAA,CAAQ,KACRjK,CAAO,CAAA,KAAA,CAAM,QAAQ2S,CAAa,CAAA,CAAIA,EAAgB,KAC1D5R,CAAAA,CAAAA,CAAAA,CAAUA,IAAYf,CAAO,CAAA,KAAA,CAAA,CAAY2S,CACzC,CAAA,CAAA,IAAIC,EAAc7R,CAAUA,CAAAA,CAAAA,CAAQ,QAAU,KAC9C,CAAA,CAAA,OAAO,KAAK,MAAO,CAAA,WAAA,CAAa,SAAUiO,CAAO,CAAA,CAC/C,IAAIqC,CAAKpH,CAAAA,CAAAA,CAAM,OAAO,OACpBqI,CAAAA,CAAAA,CAAOjB,EAAG,IACV7O,CAAAA,CAAAA,CAAU6O,CAAG,CAAA,OAAA,CACf,GAAI7O,CAAWxC,EAAAA,CAAAA,CAAM,MAAM,IAAI+F,EAAAA,CAAW,gBAAgB,8DAA8D,CAAA,CACxH,GAAI/F,CAAQA,EAAAA,CAAAA,CAAK,SAAW0S,CAAQ,CAAA,MAAA,CAAQ,MAAM,IAAI3M,EAAAA,CAAW,gBAAgB,sDAAsD,CAAA,CACvI,IAAI8M,CAAAA,CAAaH,EAAQ,MACrBI,CAAAA,CAAAA,CAAetQ,GAAW8P,CAAOI,CAAAA,CAAAA,CAAQ,IAAI5C,EAA8BtN,CAAAA,CAAO,CAAC,CAAIkQ,CAAAA,CAAAA,CAC3F,OAAOzI,CAAM,CAAA,IAAA,CAAK,OAAO,CACvB,KAAA,CAAO+E,EACP,IAAM,CAAA,KAAA,CACN,IAAMhP,CAAAA,CAAAA,CACN,OAAQ8S,CACR,CAAA,WAAA,CAAaF,CACf,CAAC,CAAA,CAAE,KAAK,SAAUvB,CAAAA,CAAI,CACpB,IAAI0B,CAAAA,CAAc1B,EAAG,WACnB1F,CAAAA,CAAAA,CAAU0F,EAAG,OACbmB,CAAAA,CAAAA,CAAanB,EAAG,UAChB9L,CAAAA,CAAAA,CAAW8L,CAAG,CAAA,QAAA,CACZjP,EAASwQ,CAAcjH,CAAAA,CAAAA,CAAU6G,EACrC,GAAIO,CAAAA,GAAgB,EAAG,OAAO3Q,CAAAA,CAC9B,MAAM,IAAIuD,EAAAA,CAAU,GAAG,MAAOsE,CAAAA,CAAAA,CAAM,KAAM,cAAc,CAAA,CAAE,OAAO8I,CAAa,CAAA,MAAM,CAAE,CAAA,MAAA,CAAOF,EAAY,oBAAoB,CAAA,CAAGtN,CAAQ,CAC1I,CAAC,CACH,CAAC,CACH,EACAkL,CAAM,CAAA,SAAA,CAAU,QAAU,SAAUiC,CAAAA,CAASC,EAAe5R,CAAS,CAAA,CACnE,IAAIkJ,CAAQ,CAAA,IAAA,CACRjK,CAAO,CAAA,KAAA,CAAM,QAAQ2S,CAAa,CAAA,CAAIA,EAAgB,KAC1D5R,CAAAA,CAAAA,CAAAA,CAAUA,IAAYf,CAAO,CAAA,KAAA,CAAA,CAAY2S,GACzC,IAAIC,CAAAA,CAAc7R,EAAUA,CAAQ,CAAA,OAAA,CAAU,OAC9C,OAAO,IAAA,CAAK,OAAO,WAAa,CAAA,SAAUiO,CAAO,CAAA,CAC/C,IAAIqC,CAAKpH,CAAAA,CAAAA,CAAM,OAAO,OACpBqI,CAAAA,CAAAA,CAAOjB,EAAG,IACV7O,CAAAA,CAAAA,CAAU6O,EAAG,OACf,CAAA,GAAI7O,GAAWxC,CAAM,CAAA,MAAM,IAAI+F,EAAW,CAAA,eAAA,CAAgB,8DAA8D,CACxH,CAAA,GAAI/F,CAAQA,EAAAA,CAAAA,CAAK,SAAW0S,CAAQ,CAAA,MAAA,CAAQ,MAAM,IAAI3M,EAAAA,CAAW,gBAAgB,sDAAsD,CAAA,CACvI,IAAI8M,CAAaH,CAAAA,CAAAA,CAAQ,OACrBM,CAAexQ,CAAAA,CAAAA,EAAW8P,EAAOI,CAAQ,CAAA,GAAA,CAAI5C,GAA8BtN,CAAO,CAAC,CAAIkQ,CAAAA,CAAAA,CAC3F,OAAOzI,CAAM,CAAA,IAAA,CAAK,OAAO,CACvB,KAAA,CAAO+E,EACP,IAAM,CAAA,KAAA,CACN,KAAMhP,CACN,CAAA,MAAA,CAAQgT,EACR,WAAaJ,CAAAA,CACf,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUvB,CAAI,CAAA,CACpB,IAAI0B,CAAAA,CAAc1B,EAAG,WACnB1F,CAAAA,CAAAA,CAAU0F,EAAG,OACbmB,CAAAA,CAAAA,CAAanB,EAAG,UAChB9L,CAAAA,CAAAA,CAAW8L,EAAG,QACZjP,CAAAA,CAAAA,CAASwQ,EAAcjH,CAAU6G,CAAAA,CAAAA,CACrC,GAAIO,CAAgB,GAAA,CAAA,CAAG,OAAO3Q,CAC9B,CAAA,MAAM,IAAIuD,EAAAA,CAAU,GAAG,MAAOsE,CAAAA,CAAAA,CAAM,KAAM,cAAc,CAAA,CAAE,OAAO8I,CAAa,CAAA,MAAM,EAAE,MAAOF,CAAAA,CAAAA,CAAY,oBAAoB,CAAGtN,CAAAA,CAAQ,CAC1I,CAAC,CACH,CAAC,CACH,CAAA,CACAkL,EAAM,SAAU,CAAA,UAAA,CAAa,SAAUwC,CAAgB,CAAA,CACrD,IAAIhJ,CAAQ,CAAA,IAAA,CACRiJ,EAAY,IAAK,CAAA,IAAA,CACjBlT,EAAOiT,CAAe,CAAA,GAAA,CAAI,SAAUE,CAAO,CAAA,CAC7C,OAAOA,CAAM,CAAA,GACf,CAAC,CACGC,CAAAA,CAAAA,CAAcH,CAAe,CAAA,GAAA,CAAI,SAAUE,CAAO,CAAA,CACpD,OAAOA,CAAM,CAAA,OACf,CAAC,CACGE,CAAAA,CAAAA,CAAY,EAChB,CAAA,OAAO,KAAK,MAAO,CAAA,WAAA,CAAa,SAAUrE,CAAO,CAAA,CAC/C,OAAOkE,CAAU,CAAA,OAAA,CAAQ,CACvB,KAAA,CAAOlE,EACP,IAAMhP,CAAAA,CAAAA,CACN,MAAO,OACT,CAAC,EAAE,IAAK,CAAA,SAAUsT,EAAM,CACtB,IAAIC,EAAa,EAAC,CACdC,EAAa,EAAC,CAClBP,EAAe,OAAQ,CAAA,SAAU5B,CAAII,CAAAA,CAAAA,CAAK,CACxC,IAAIpR,CAAAA,CAAMgR,EAAG,GACXoC,CAAAA,CAAAA,CAAUpC,EAAG,OACXlR,CAAAA,CAAAA,CAAMmT,EAAK7B,CAAG,CAAA,CAClB,GAAItR,CAAK,CAAA,CACP,QAASuT,CAAK,CAAA,CAAA,CAAGC,EAAK,MAAO,CAAA,IAAA,CAAKF,CAAO,CAAA,CAAGC,EAAKC,CAAG,CAAA,MAAA,CAAQD,IAAM,CAChE,IAAIlR,EAAUmR,CAAGD,CAAAA,CAAE,EACf5Q,CAAQ2Q,CAAAA,CAAAA,CAAQjR,CAAO,CAC3B,CAAA,GAAIA,IAAYyH,CAAM,CAAA,MAAA,CAAO,QAAQ,OACnC,CAAA,CAAA,GAAI+F,EAAIlN,CAAAA,CAAAA,CAAOzC,CAAG,CAAM,GAAA,CAAA,CACtB,MAAM,IAAI0F,EAAAA,CAAW,WAAW,2CAA2C,CAAA,CAAA,KAG7ElD,GAAa1C,CAAKqC,CAAAA,CAAAA,CAASM,CAAK,EAEpC,CACAuQ,EAAU,IAAK5B,CAAAA,CAAG,EAClB8B,CAAW,CAAA,IAAA,CAAKlT,CAAG,CAAA,CACnBmT,EAAW,IAAKrT,CAAAA,CAAG,EACrB,CACF,CAAC,EACD,IAAIyT,CAAAA,CAAaL,EAAW,MAC5B,CAAA,OAAOL,EAAU,MAAO,CAAA,CACtB,MAAOlE,CACP,CAAA,IAAA,CAAM,MACN,IAAMuE,CAAAA,CAAAA,CACN,MAAQC,CAAAA,CAAAA,CACR,QAAS,CACP,IAAA,CAAMxT,EACN,WAAaoT,CAAAA,CACf,CACF,CAAC,CAAA,CAAE,KAAK,SAAU/B,CAAAA,CAAI,CACpB,IAAI0B,CAAAA,CAAc1B,EAAG,WACnB9L,CAAAA,CAAAA,CAAW8L,EAAG,QAChB,CAAA,GAAI0B,IAAgB,CAAG,CAAA,OAAOa,EAC9B,IAASF,IAAAA,CAAAA,CAAK,EAAGC,CAAK,CAAA,MAAA,CAAO,KAAKpO,CAAQ,CAAA,CAAGmO,EAAKC,CAAG,CAAA,MAAA,CAAQD,IAAM,CACjE,IAAI9B,EAAS+B,CAAGD,CAAAA,CAAE,EACdG,CAAeR,CAAAA,CAAAA,CAAU,MAAOzB,CAAAA,CAAM,CAAC,CAC3C,CAAA,GAAIiC,GAAgB,IAAM,CAAA,CACxB,IAAIhI,CAAUtG,CAAAA,CAAAA,CAASqM,CAAM,CAC7B,CAAA,OAAOrM,EAASqM,CAAM,CAAA,CACtBrM,EAASsO,CAAY,CAAA,CAAIhI,EAC3B,CACF,CACA,MAAM,IAAIlG,GAAU,EAAG,CAAA,MAAA,CAAOsE,EAAM,IAAM,CAAA,iBAAiB,EAAE,MAAO8I,CAAAA,CAAAA,CAAa,MAAM,CAAE,CAAA,MAAA,CAAOa,EAAY,oBAAoB,CAAA,CAAGrO,CAAQ,CAC7I,CAAC,CACH,CAAC,CACH,CAAC,CACH,EACAkL,CAAM,CAAA,SAAA,CAAU,WAAa,SAAUzQ,CAAAA,CAAM,CAC3C,IAAIiK,CAAAA,CAAQ,KACR6J,CAAU9T,CAAAA,CAAAA,CAAK,OACnB,OAAO,IAAA,CAAK,OAAO,WAAa,CAAA,SAAUgP,EAAO,CAC/C,OAAO/E,CAAM,CAAA,IAAA,CAAK,OAAO,CACvB,KAAA,CAAO+E,EACP,IAAM,CAAA,QAAA,CACN,KAAMhP,CACR,CAAC,CACH,CAAC,CAAA,CAAE,KAAK,SAAUqR,CAAAA,CAAI,CACpB,IAAI0B,CAAAA,CAAc1B,EAAG,WACnBmB,CAAAA,CAAAA,CAAanB,CAAG,CAAA,UAAA,CAChB9L,EAAW8L,CAAG,CAAA,QAAA,CAChB,GAAI0B,CAAgB,GAAA,CAAA,CAAG,OAAOP,CAC9B,CAAA,MAAM,IAAI7M,EAAU,CAAA,EAAA,CAAG,OAAOsE,CAAM,CAAA,IAAA,CAAM,iBAAiB,CAAE,CAAA,MAAA,CAAO8I,EAAa,MAAM,CAAA,CAAE,MAAOe,CAAAA,CAAAA,CAAS,oBAAoB,CAAGvO,CAAAA,CAAQ,CAC1I,CAAC,CACH,EACOkL,CACT,CAAA,GACA,SAASsD,EAAAA,CAAOC,EAAK,CACnB,IAAIC,EAAM,EAAC,CACPxR,EAAK,SAAUyR,CAAAA,CAAWC,CAAY,CAAA,CACxC,GAAIA,CAAY,CAAA,CAGd,QAFI5U,CAAI,CAAA,SAAA,CAAU,OAChBiC,CAAO,CAAA,IAAI,MAAMjC,CAAI,CAAA,CAAC,EACjB,EAAEA,CAAAA,EAAGiC,EAAKjC,CAAI,CAAA,CAAC,EAAI,SAAUA,CAAAA,CAAC,EACrC,OAAA0U,CAAAA,CAAIC,CAAS,CAAE,CAAA,SAAA,CAAU,MAAM,IAAM1S,CAAAA,CAAI,EAClCwS,CACT,CAAA,KAAA,GAAW,OAAOE,CAAc,EAAA,QAAA,CAC9B,OAAOD,CAAIC,CAAAA,CAAS,CAExB,CACAzR,CAAAA,CAAAA,CAAG,aAAe2R,CAClB,CAAA,IAAA,IAAS7U,CAAI,CAAA,CAAA,CAAGM,EAAI,SAAU,CAAA,MAAA,CAAQN,EAAIM,CAAG,CAAA,EAAEN,EAC7C6U,CAAI,CAAA,SAAA,CAAU7U,CAAC,CAAC,CAAA,CAElB,OAAOkD,CACP,CAAA,SAAS2R,EAAIF,CAAWG,CAAAA,CAAAA,CAAeC,EAAiB,CACtD,GAAI,OAAOJ,CAAAA,EAAc,SAAU,OAAOK,CAAAA,CAAoBL,CAAS,CAClEG,CAAAA,CAAAA,GAAeA,EAAgB7M,EAC/B8M,CAAAA,CAAAA,CAAAA,GAAiBA,EAAkB9N,EACxC,CAAA,CAAA,IAAIgO,EAAU,CACZ,WAAA,CAAa,EACb,CAAA,IAAA,CAAMF,EACN,SAAW,CAAA,SAAU7H,CAAI,CAAA,CACnB+H,EAAQ,WAAY,CAAA,OAAA,CAAQ/H,CAAE,CAAM,GAAA,CAAA,CAAA,GACtC+H,EAAQ,WAAY,CAAA,IAAA,CAAK/H,CAAE,CAC3B+H,CAAAA,CAAAA,CAAQ,KAAOH,CAAcG,CAAAA,CAAAA,CAAQ,KAAM/H,CAAE,CAAA,EAEjD,EACA,WAAa,CAAA,SAAUA,CAAI,CAAA,CACzB+H,EAAQ,WAAcA,CAAAA,CAAAA,CAAQ,YAAY,MAAO,CAAA,SAAUxS,EAAI,CAC7D,OAAOA,IAAOyK,CAChB,CAAC,EACD+H,CAAQ,CAAA,IAAA,CAAOA,EAAQ,WAAY,CAAA,MAAA,CAAOH,EAAeC,CAAe,EAC1E,CACF,CAAA,CACA,OAAAL,CAAIC,CAAAA,CAAS,EAAIzR,CAAGyR,CAAAA,CAAS,EAAIM,CAC1BA,CAAAA,CACT,CACA,SAASD,CAAAA,CAAoBE,EAAK,CAChCzU,CAAAA,CAAKyU,CAAG,CAAE,CAAA,OAAA,CAAQ,SAAUP,CAAW,CAAA,CACrC,IAAI1S,CAAAA,CAAOiT,EAAIP,CAAS,CAAA,CACxB,GAAIjU,CAAQuB,CAAAA,CAAI,EACd4S,CAAIF,CAAAA,CAAAA,CAAWO,EAAIP,CAAS,CAAA,CAAE,CAAC,CAAGO,CAAAA,CAAAA,CAAIP,CAAS,CAAE,CAAA,CAAC,CAAC,CAC1C1S,CAAAA,KAAAA,GAAAA,CAAAA,GAAS,MAClB,CAAA,IAAIgT,EAAUJ,CAAIF,CAAAA,CAAAA,CAAWzN,GAAQ,UAAgB,CAGnD,QAFIlH,CAAI,CAAA,SAAA,CAAU,OAChBiC,CAAO,CAAA,IAAI,MAAMjC,CAAC,CAAA,CACbA,KAAKiC,CAAKjC,CAAAA,CAAC,EAAI,SAAUA,CAAAA,CAAC,CACjCiV,CAAAA,CAAAA,CAAQ,YAAY,OAAQ,CAAA,SAAUxS,EAAI,CACxCD,EAAAA,CAAO,UAAqB,CAC1BC,CAAAA,CAAG,MAAM,IAAMR,CAAAA,CAAI,EACrB,CAAC,EACH,CAAC,EACH,CAAC,OACU,MAAA,IAAIuE,EAAW,CAAA,eAAA,CAAgB,sBAAsB,CACpE,CAAC,EACH,CACF,CACA,SAAS2O,EAAqBC,CAAAA,CAAAA,CAAW7C,EAAa,CACpD,OAAA9Q,EAAO8Q,CAAW,CAAA,CAAE,KAAK,CACvB,SAAA,CAAW6C,CACb,CAAC,CAAA,CACM7C,CACT,CACA,SAAS8C,EAAuB/F,CAAAA,CAAAA,CAAI,CAClC,OAAO6F,EAAAA,CAAqBjE,GAAM,SAAW,CAAA,SAAerL,EAAMyP,CAAa7F,CAAAA,CAAAA,CAAO,CACpF,IAAK,CAAA,EAAA,CAAKH,EACV,IAAK,CAAA,GAAA,CAAMG,EACX,IAAK,CAAA,IAAA,CAAO5J,CACZ,CAAA,IAAA,CAAK,OAASyP,CACd,CAAA,IAAA,CAAK,KAAOhG,CAAG,CAAA,UAAA,CAAWzJ,CAAI,CAAIyJ,CAAAA,CAAAA,CAAG,WAAWzJ,CAAI,CAAA,CAAE,KAAO2O,EAAO,CAAA,IAAA,CAAM,CACxE,QAAY,CAAA,CAAC/M,GAAmBR,EAAG,CAAA,CACnC,OAAW,CAAA,CAACE,GAAmBD,EAAM,CAAA,CACrC,SAAY,CAACa,EAAAA,CAAmBd,EAAG,CACnC,CAAA,QAAA,CAAY,CAACa,EAAmBb,CAAAA,EAAG,CACrC,CAAC,EACH,CAAC,CACH,CACA,SAASsO,EAAgBd,CAAAA,CAAAA,CAAKe,CAAmB,CAAA,CAC/C,OAAO,EAAEf,CAAAA,CAAI,QAAUA,CAAI,CAAA,SAAA,EAAaA,EAAI,EAAQe,CAAAA,GAAAA,CAAAA,CAAoBf,EAAI,SAAY,CAAA,CAACA,EAAI,YAC/F,CAAA,CACA,SAASgB,EAAUhB,CAAAA,CAAAA,CAAKhS,EAAI,CAC1BgS,CAAAA,CAAI,MAAStE,CAAAA,EAAAA,CAAQsE,EAAI,MAAQhS,CAAAA,CAAE,EACrC,CACA,SAASiT,GAAgBjB,CAAKnV,CAAAA,CAAAA,CAASqW,EAAe,CACpD,IAAIC,EAAOnB,CAAI,CAAA,YAAA,CACfA,EAAI,YAAemB,CAAAA,CAAAA,CAAO,UAAY,CACpC,OAAOzF,EAAQyF,CAAAA,CAAAA,GAAQtW,CAAQ,EAAC,CAClC,CAAIA,CAAAA,CAAAA,CACJmV,EAAI,SAAYkB,CAAAA,CAAAA,EAAiB,CAACC,EACpC,CACA,SAASC,EAAepB,CAAAA,CAAAA,CAAKhS,EAAI,CAC/BgS,CAAAA,CAAI,QAAUtE,EAAQsE,CAAAA,CAAAA,CAAI,QAAShS,CAAE,EACvC,CACA,SAASqT,EAAAA,CAAgBrB,EAAKsB,CAAY,CAAA,CACxC,GAAItB,CAAI,CAAA,SAAA,CAAW,OAAOsB,CAAW,CAAA,UAAA,CACrC,IAAI9D,CAAQ8D,CAAAA,CAAAA,CAAW,kBAAkBtB,CAAI,CAAA,KAAK,EAClD,GAAI,CAACxC,CAAO,CAAA,MAAM,IAAIzL,EAAW,CAAA,MAAA,CAAO,WAAaiO,CAAI,CAAA,KAAA,CAAQ,oBAAsBsB,CAAW,CAAA,IAAA,CAAO,iBAAiB,CAC1H,CAAA,OAAO9D,CACT,CACA,SAAS+D,GAAWvB,CAAKd,CAAAA,CAAAA,CAAWlE,EAAO,CACzC,IAAIwC,CAAQ6D,CAAAA,EAAAA,CAAgBrB,EAAKd,CAAU,CAAA,MAAM,EACjD,OAAOA,CAAAA,CAAU,WAAW,CAC1B,KAAA,CAAOlE,EACP,MAAQ,CAAA,CAACgF,EAAI,QACb,CAAA,OAAA,CAASA,EAAI,GAAQ,GAAA,MAAA,CACrB,OAAQ,CAAC,CAACA,CAAI,CAAA,MAAA,CACd,MAAO,CACL,KAAA,CAAOxC,EACP,KAAOwC,CAAAA,CAAAA,CAAI,KACb,CACF,CAAC,CACH,CACA,SAASwB,GAAKxB,CAAKhS,CAAAA,CAAAA,CAAIyT,EAAWvC,CAAW,CAAA,CAC3C,IAAIrL,CAASmM,CAAAA,CAAAA,CAAI,YAAetE,CAAAA,EAAAA,CAAQsE,EAAI,MAAQA,CAAAA,CAAAA,CAAI,cAAc,CAAA,CAAIA,EAAI,MAC9E,CAAA,GAAKA,EAAI,EAEF,CAAA,CACL,IAAI0B,CAAQ,CAAA,GACRC,CAAQ,CAAA,SAAUtT,EAAMuT,CAAQC,CAAAA,CAAAA,CAAS,CAC3C,GAAI,CAAChO,CAAUA,EAAAA,CAAAA,CAAO+N,EAAQC,CAAS,CAAA,SAAUzT,EAAQ,CACvD,OAAOwT,EAAO,IAAKxT,CAAAA,CAAM,CAC3B,CAAG,CAAA,SAAUwI,EAAK,CAChB,OAAOgL,EAAO,IAAKhL,CAAAA,CAAG,CACxB,CAAC,EAAG,CACF,IAAIkL,EAAaF,CAAO,CAAA,UAAA,CACpBvV,EAAM,EAAKyV,CAAAA,CAAAA,CACXzV,IAAQ,sBAAwBA,GAAAA,CAAAA,CAAM,GAAK,IAAI,UAAA,CAAWyV,CAAU,CACnEtV,CAAAA,CAAAA,CAAAA,CAAOkV,EAAOrV,CAAG,CAAA,GACpBqV,CAAMrV,CAAAA,CAAG,EAAI,CACb2B,CAAAA,CAAAA,CAAAA,CAAGK,EAAMuT,CAAQC,CAAAA,CAAO,GAE5B,CACF,CAAA,CACA,OAAO,OAAQ,CAAA,GAAA,CAAI,CAAC7B,CAAI,CAAA,EAAA,CAAG,SAAS2B,CAAOF,CAAAA,CAAS,EAAGM,EAAQR,CAAAA,EAAAA,CAAWvB,EAAKd,CAAWuC,CAAAA,CAAS,EAAGzB,CAAI,CAAA,SAAA,CAAW2B,EAAO,CAAC3B,CAAAA,CAAI,UAAYA,CAAI,CAAA,WAAW,CAAC,CAAC,CAChK,MAnBS+B,OAAAA,EAAAA,CAAQR,GAAWvB,CAAKd,CAAAA,CAAAA,CAAWuC,CAAS,CAAG/F,CAAAA,EAAAA,CAAQsE,CAAI,CAAA,SAAA,CAAWnM,CAAM,CAAG7F,CAAAA,CAAAA,CAAI,CAACgS,CAAI,CAAA,QAAA,EAAYA,EAAI,WAAW,CAoB9H,CACA,SAAS+B,EAAAA,CAAQC,EAAenO,CAAQ7F,CAAAA,CAAAA,CAAIiU,EAAa,CACvD,IAAIC,EAAWD,CAAc,CAAA,SAAU7R,CAAG+R,CAAAA,CAAAA,CAAG5S,EAAG,CAC9C,OAAOvB,EAAGiU,CAAY7R,CAAAA,CAAC,EAAG+R,CAAG5S,CAAAA,CAAC,CAChC,CAAIvB,CAAAA,CAAAA,CACAoU,EAAYjJ,EAAK+I,CAAAA,CAAQ,EAC7B,OAAOF,CAAAA,CAAc,KAAK,SAAUJ,CAAAA,CAAQ,CAC1C,GAAIA,EACF,OAAOA,CAAAA,CAAO,MAAM,UAAY,CAC9B,IAAIO,CAAI,CAAA,UAAY,CAClB,OAAOP,CAAAA,CAAO,UAChB,CAAA,CAAA,CACI,CAAC/N,CAAUA,EAAAA,CAAAA,CAAO+N,EAAQ,SAAUS,CAAAA,CAAU,CAChD,OAAOF,EAAIE,CACb,CAAA,CAAG,SAAU3T,CAAK,CAAA,CAChBkT,EAAO,IAAKlT,CAAAA,CAAG,EACfyT,CAAI3P,CAAAA,GACN,EAAG,SAAUqG,CAAAA,CAAG,CACd+I,CAAO,CAAA,IAAA,CAAK/I,CAAC,CACbsJ,CAAAA,CAAAA,CAAI3P,GACN,CAAC,IAAG4P,CAAUR,CAAAA,CAAAA,CAAO,MAAOA,CAAQ,CAAA,SAAUS,EAAU,CACtD,OAAOF,EAAIE,CACb,CAAC,EACDF,CAAE,GACJ,CAAC,CAEL,CAAC,CACH,CACA,IAAIG,EAAgB,CAAA,MAAA,GAChBC,EAAmB,CAAA,UAAY,CACjC,SAASA,CAAAA,CAAiBC,EAAM,CAC9B,MAAA,CAAO,OAAO,IAAMA,CAAAA,CAAI,EAC1B,CACA,OAAAD,EAAiB,SAAU,CAAA,OAAA,CAAU,SAAUzT,CAAO,CAAA,CACpD,IAAIuO,CAAAA,CACJ,GAAI,IAAK,CAAA,GAAA,GAAQ,OAAW,CAC1B,IAAIoF,EAAO,IAAK,CAAA,GAAA,CAChB,GAAIxW,CAAQwW,CAAAA,CAAI,EACd,OAAOhX,CAAAA,CAAcA,EAAc,EAAC,CAAGQ,EAAQ6C,CAAK,CAAA,CAAIA,EAAQ,EAAC,CAAG,EAAI,CAAG2T,CAAAA,CAAU,CAAE,CAAA,IAAA,GAEzF,GAAI,OAAOA,GAAS,QAAU,CAAA,OAAA,CAAQ,OAAO3T,CAAK,CAAA,EAAK,GAAK2T,CAC5D,CAAA,GAAI,OAAOA,CAAS,EAAA,QAAA,CAClB,GAAI,CACF,OAAO,MAAO3T,CAAAA,CAAK,EAAI2T,CACzB,CAAA,KAAa,CACX,OAAO,MAAA,CAAO,CAAC,CAAIA,CAAAA,CACrB,CAEF,MAAM,IAAI,UAAU,eAAgB,CAAA,MAAA,CAAOA,CAAI,CAAC,CAClD,CACA,GAAI,KAAK,MAAW,GAAA,KAAA,CAAA,CAAW,CAC7B,IAAIC,CAAAA,CAAe,KAAK,MACxB,CAAA,GAAIzW,EAAQyW,CAAY,CAAA,CACtB,OAAOzW,CAAQ6C,CAAAA,CAAK,EAAIA,CAAM,CAAA,MAAA,CAAO,SAAUT,CAAM,CAAA,CACnD,OAAO,CAACqU,EAAa,QAASrU,CAAAA,CAAI,CACpC,CAAC,CAAA,CAAE,MAAS,CAAA,GAEd,GAAI,OAAOqU,GAAiB,QAAU,CAAA,OAAO,OAAO5T,CAAK,CAAA,CAAI4T,EAC7D,GAAI,OAAOA,CAAiB,EAAA,QAAA,CAC1B,GAAI,CACF,OAAO,OAAO5T,CAAK,CAAA,CAAI4T,CACzB,CAAa,KAAA,CACX,OAAO,MAAO,CAAA,CAAC,EAAIA,CACrB,CAEF,MAAM,IAAI,SAAA,CAAU,sBAAsB,MAAOA,CAAAA,CAAY,CAAC,CAChE,CACA,IAAIC,CAAAA,CAAAA,CAAmBtF,EAAK,IAAK,CAAA,aAAA,IAAmB,MAAQA,CAAO,GAAA,KAAA,CAAA,CAAS,OAASA,CAAG,CAAA,CAAC,EACzF,OAAIsF,CAAAA,EAAmB,OAAO7T,CAAU,EAAA,QAAA,EAAYA,EAAM,UAAW6T,CAAAA,CAAe,CAC3E,CAAA,IAAA,CAAK,cAAc,CAAC,CAAA,CAAI7T,EAAM,SAAU6T,CAAAA,CAAAA,CAAgB,MAAM,CAEhE7T,CAAAA,CACT,EACOyT,CACT,CAAA,GACIK,EAAa,CAAA,UAAY,CAC3B,SAASA,CAAAA,EAAa,EACtB,OAAAA,CAAW,CAAA,SAAA,CAAU,MAAQ,SAAU5U,CAAAA,CAAIyK,EAAI,CAC7C,IAAIuH,EAAM,IAAK,CAAA,IAAA,CACf,OAAOA,CAAI,CAAA,KAAA,CAAQA,EAAI,KAAM,CAAA,MAAA,CAAO,KAAM/F,EAAU,CAAA,IAAA,CAAK,KAAM+F,CAAI,CAAA,KAAK,CAAC,CAAA,CAAIA,EAAI,KAAM,CAAA,MAAA,CAAO,WAAYhS,CAAE,CAAA,CAAE,KAAKyK,CAAE,CACvH,EACAmK,CAAW,CAAA,SAAA,CAAU,OAAS,SAAU5U,CAAAA,CAAI,CAC1C,IAAIgS,CAAAA,CAAM,KAAK,IACf,CAAA,OAAOA,CAAI,CAAA,KAAA,CAAQA,EAAI,KAAM,CAAA,MAAA,CAAO,KAAM/F,EAAU,CAAA,IAAA,CAAK,KAAM+F,CAAI,CAAA,KAAK,CAAC,CAAIA,CAAAA,CAAAA,CAAI,MAAM,MAAO,CAAA,WAAA,CAAahS,EAAI,QAAQ,CACzH,EACA4U,CAAW,CAAA,SAAA,CAAU,aAAgB,CAAA,SAAU5U,EAAI,CACjD,IAAIgS,EAAM,IAAK,CAAA,IAAA,CACfA,EAAI,SAAYtE,CAAAA,EAAAA,CAAQsE,EAAI,SAAWhS,CAAAA,CAAE,EAC3C,CACA4U,CAAAA,CAAAA,CAAW,UAAU,QAAW,CAAA,SAAU5U,EAAIyT,CAAW,CAAA,CACvD,OAAOD,EAAAA,CAAK,KAAK,IAAMxT,CAAAA,CAAAA,CAAIyT,EAAW,IAAK,CAAA,IAAA,CAAK,MAAM,IAAI,CAC5D,EACAmB,CAAW,CAAA,SAAA,CAAU,MAAQ,SAAUlW,CAAAA,CAAO,CAC5C,IAAI+B,CAAAA,CAAK,OAAO,MAAO,CAAA,IAAA,CAAK,WAAY,CAAA,SAAS,EAC/CuR,CAAM,CAAA,MAAA,CAAO,OAAO,IAAK,CAAA,IAAI,EAC/B,OAAItT,CAAAA,EAAOR,EAAO8T,CAAKtT,CAAAA,CAAK,EAC5B+B,CAAG,CAAA,IAAA,CAAOuR,EACHvR,CACT,CAAA,CACAmU,EAAW,SAAU,CAAA,GAAA,CAAM,UAAY,CACrC,YAAK,IAAK,CAAA,WAAA,CAAc,KACjB,IACT,CAAA,CACAA,EAAW,SAAU,CAAA,IAAA,CAAO,SAAU5U,CAAI,CAAA,CACxC,IAAIgS,CAAM,CAAA,IAAA,CAAK,KACf,OAAO,IAAA,CAAK,MAAM,SAAUhF,CAAAA,CAAO,CACjC,OAAOwG,GAAKxB,CAAKhS,CAAAA,CAAAA,CAAIgN,EAAOgF,CAAI,CAAA,KAAA,CAAM,IAAI,CAC5C,CAAC,CACH,CACA4C,CAAAA,CAAAA,CAAW,UAAU,KAAQ,CAAA,SAAUnK,EAAI,CACzC,IAAIxC,EAAQ,IACZ,CAAA,OAAO,IAAK,CAAA,KAAA,CAAM,SAAU+E,CAAO,CAAA,CACjC,IAAIgF,CAAM/J,CAAAA,CAAAA,CAAM,KACZiJ,CAAYc,CAAAA,CAAAA,CAAI,MAAM,IAC1B,CAAA,GAAIc,GAAgBd,CAAK,CAAA,CAAA,CAAI,EAC3B,OAAOd,CAAAA,CAAU,MAAM,CACrB,KAAA,CAAOlE,EACP,KAAO,CAAA,CACL,MAAOqG,EAAgBrB,CAAAA,CAAAA,CAAKd,EAAU,MAAM,CAAA,CAC5C,MAAOc,CAAI,CAAA,KACb,CACF,CAAC,CAAA,CAAE,KAAK,SAAU6C,CAAAA,CAAO,CACvB,OAAO,IAAA,CAAK,IAAIA,CAAO7C,CAAAA,CAAAA,CAAI,KAAK,CAClC,CAAC,CAED,CAAA,IAAI6C,EAAQ,CACZ,CAAA,OAAOrB,GAAKxB,CAAK,CAAA,UAAY,CAC3B,OAAE6C,EAAAA,CAAAA,CACK,EACT,CAAG7H,CAAAA,CAAAA,CAAOkE,CAAS,CAAE,CAAA,IAAA,CAAK,UAAY,CACpC,OAAO2D,CACT,CAAC,CAEL,CAAC,CAAA,CAAE,KAAKpK,CAAE,CACZ,EACAmK,CAAW,CAAA,SAAA,CAAU,OAAS,SAAUpU,CAAAA,CAASiK,EAAI,CACnD,IAAIqK,EAAQtU,CAAQ,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,OAAA,EAC7BuU,CAAAA,CAAAA,CAAWD,EAAM,CAAC,CAAA,CAClBE,EAAYF,CAAM,CAAA,MAAA,CAAS,EAC7B,SAASG,CAAAA,CAAO9W,EAAKZ,CAAG,CAAA,CACtB,OAAIA,CAAU0X,CAAAA,CAAAA,CAAO9W,EAAI2W,CAAMvX,CAAAA,CAAC,CAAC,CAAGA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAClCY,EAAI4W,CAAQ,CACrB,CACA,IAAIG,CAAAA,CAAQ,KAAK,IAAK,CAAA,GAAA,GAAQ,OAAS,CAAI,CAAA,CAAA,CAAA,CAC3C,SAASC,CAAO5T,CAAAA,CAAAA,CAAGvE,EAAG,CACpB,IAAIoY,EAAOH,CAAO1T,CAAAA,CAAAA,CAAGyT,CAAS,CAAA,CAC5BK,EAAOJ,CAAOjY,CAAAA,CAAAA,CAAGgY,CAAS,CAC5B,CAAA,OAAOhH,GAAIoH,CAAMC,CAAAA,CAAI,EAAIH,CAC3B,CACA,OAAO,IAAK,CAAA,OAAA,CAAQ,SAAU3T,CAAG,CAAA,CAC/B,OAAOA,CAAE,CAAA,IAAA,CAAK4T,CAAM,CACtB,CAAC,CAAE,CAAA,IAAA,CAAK1K,CAAE,CACZ,CAAA,CACAmK,EAAW,SAAU,CAAA,OAAA,CAAU,SAAUnK,CAAI,CAAA,CAC3C,IAAIxC,CAAQ,CAAA,IAAA,CACZ,OAAO,IAAK,CAAA,KAAA,CAAM,SAAU+E,CAAO,CAAA,CACjC,IAAIgF,CAAAA,CAAM/J,EAAM,IAChB,CAAA,GAAI+J,EAAI,GAAQ,GAAA,MAAA,EAAUc,GAAgBd,CAAK,CAAA,CAAA,CAAI,GAAKA,CAAI,CAAA,KAAA,CAAQ,EAAG,CACrE,IAAIsD,EAAgBtD,CAAI,CAAA,WAAA,CACpBxC,EAAQ6D,EAAgBrB,CAAAA,CAAAA,CAAKA,CAAI,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,CACtD,OAAOA,CAAI,CAAA,KAAA,CAAM,KAAK,KAAM,CAAA,CAC1B,MAAOhF,CACP,CAAA,KAAA,CAAOgF,EAAI,KACX,CAAA,MAAA,CAAQ,GACR,KAAO,CAAA,CACL,MAAOxC,CACP,CAAA,KAAA,CAAOwC,CAAI,CAAA,KACb,CACF,CAAC,CAAA,CAAE,KAAK,SAAU3C,CAAAA,CAAI,CACpB,IAAIjP,CAAAA,CAASiP,EAAG,MAChB,CAAA,OAAOiG,EAAgBlV,CAAO,CAAA,GAAA,CAAIkV,CAAa,CAAIlV,CAAAA,CACrD,CAAC,CACH,CAAA,KAAO,CACL,IAAImV,EAAM,EAAC,CACX,OAAO/B,EAAKxB,CAAAA,CAAAA,CAAK,SAAU3R,CAAM,CAAA,CAC/B,OAAOkV,CAAI,CAAA,IAAA,CAAKlV,CAAI,CACtB,CAAA,CAAG2M,EAAOgF,CAAI,CAAA,KAAA,CAAM,IAAI,CAAE,CAAA,IAAA,CAAK,UAAY,CACzC,OAAOuD,CACT,CAAC,CACH,CACF,CAAA,CAAG9K,CAAE,CACP,CAAA,CACAmK,EAAW,SAAU,CAAA,MAAA,CAAS,SAAUhF,CAAQ,CAAA,CAC9C,IAAIoC,CAAM,CAAA,IAAA,CAAK,KACf,OAAIpC,CAAAA,EAAU,CAAU,CAAA,IAAA,EACxBoC,EAAI,MAAUpC,EAAAA,CAAAA,CACVkD,GAAgBd,CAAG,CAAA,CACrBiB,GAAgBjB,CAAK,CAAA,UAAY,CAC/B,IAAIwD,CAAAA,CAAa5F,EACjB,OAAO,SAAUgE,EAAQC,CAAS,CAAA,CAChC,OAAI2B,CAAe,GAAA,CAAA,CAAU,CACzBA,CAAAA,CAAAA,CAAAA,GAAe,GACjB,EAAEA,CAAAA,CACK,KAET3B,CAAQ,CAAA,UAAY,CAClBD,CAAO,CAAA,OAAA,CAAQ4B,CAAU,CACzBA,CAAAA,CAAAA,CAAa,EACf,CAAC,CAAA,CACM,GACT,CACF,CAAC,EAEDvC,EAAgBjB,CAAAA,CAAAA,CAAK,UAAY,CAC/B,IAAIwD,CAAa5F,CAAAA,CAAAA,CACjB,OAAO,UAAY,CACjB,OAAO,EAAE4F,CAAAA,CAAa,CACxB,CACF,CAAC,EAEI,IACT,CAAA,CAAA,CACAZ,EAAW,SAAU,CAAA,KAAA,CAAQ,SAAU/E,CAAS,CAAA,CAC9C,OAAK,IAAA,CAAA,IAAA,CAAK,MAAQ,IAAK,CAAA,GAAA,CAAI,KAAK,IAAK,CAAA,KAAA,CAAOA,CAAO,CACnDoD,CAAAA,EAAAA,CAAgB,KAAK,IAAM,CAAA,UAAY,CACrC,IAAIwC,CAAAA,CAAW5F,EACf,OAAO,SAAU+D,EAAQC,CAASxL,CAAAA,CAAAA,CAAS,CACzC,OAAI,EAAEoN,GAAY,CAAG5B,EAAAA,CAAAA,CAAQxL,CAAO,CAC7BoN,CAAAA,CAAAA,EAAY,CACrB,CACF,CAAA,CAAG,EAAI,CACA,CAAA,IACT,EACAb,CAAW,CAAA,SAAA,CAAU,MAAQ,SAAUlF,CAAAA,CAAgBgG,EAAmB,CACxE,OAAA1C,EAAU,CAAA,IAAA,CAAK,KAAM,SAAUY,CAAAA,CAAQC,EAASxL,CAAS,CAAA,CACvD,OAAIqH,CAAekE,CAAAA,CAAAA,CAAO,KAAK,CAC7BC,EAAAA,CAAAA,CAAQxL,CAAO,CACRqN,CAAAA,CAAAA,EAEA,EAEX,CAAC,CAAA,CACM,IACT,CACAd,CAAAA,CAAAA,CAAW,SAAU,CAAA,KAAA,CAAQ,SAAUnK,CAAI,CAAA,CACzC,OAAO,IAAK,CAAA,KAAA,CAAM,CAAC,CAAE,CAAA,OAAA,CAAQ,SAAUlJ,CAAG,CAAA,CACxC,OAAOA,CAAE,CAAA,CAAC,CACZ,CAAC,CAAA,CAAE,KAAKkJ,CAAE,CACZ,CACAmK,CAAAA,CAAAA,CAAW,UAAU,IAAO,CAAA,SAAUnK,EAAI,CACxC,OAAO,KAAK,OAAQ,EAAA,CAAE,MAAMA,CAAE,CAChC,EACAmK,CAAW,CAAA,SAAA,CAAU,OAAS,SAAUlF,CAAAA,CAAgB,CACtD,OAAAsD,EAAAA,CAAU,IAAK,CAAA,IAAA,CAAM,SAAUY,CAAQ,CAAA,CACrC,OAAOlE,CAAekE,CAAAA,CAAAA,CAAO,KAAK,CACpC,CAAC,EACDR,EAAe,CAAA,IAAA,CAAK,KAAM1D,CAAc,CAAA,CACjC,IACT,CACAkF,CAAAA,CAAAA,CAAW,UAAU,GAAM,CAAA,SAAU/O,CAAQ,CAAA,CAC3C,OAAO,IAAK,CAAA,MAAA,CAAOA,CAAM,CAC3B,CAAA,CACA+O,EAAW,SAAU,CAAA,EAAA,CAAK,SAAUe,CAAW,CAAA,CAC7C,OAAO,IAAI,IAAA,CAAK,GAAG,WAAY,CAAA,IAAA,CAAK,KAAK,KAAOA,CAAAA,CAAAA,CAAW,IAAI,CACjE,EACAf,CAAW,CAAA,SAAA,CAAU,QAAU,UAAY,CACzC,YAAK,IAAK,CAAA,GAAA,CAAM,KAAK,IAAK,CAAA,GAAA,GAAQ,OAAS,MAAS,CAAA,MAAA,CAChD,KAAK,kBAAoB,EAAA,IAAA,CAAK,mBAAmB,IAAK,CAAA,IAAA,CAAK,GAAG,CAAA,CAC3D,IACT,CACAA,CAAAA,CAAAA,CAAW,UAAU,IAAO,CAAA,UAAY,CACtC,OAAO,IAAA,CAAK,SACd,CAAA,CACAA,EAAW,SAAU,CAAA,OAAA,CAAU,SAAUnK,CAAI,CAAA,CAC3C,IAAIuH,CAAM,CAAA,IAAA,CAAK,IACf,CAAA,OAAAA,EAAI,QAAW,CAAA,CAACA,EAAI,OACb,CAAA,IAAA,CAAK,KAAK,SAAUtR,CAAAA,CAAKkT,EAAQ,CACtCnJ,CAAAA,CAAGmJ,EAAO,GAAKA,CAAAA,CAAM,EACvB,CAAC,CACH,EACAgB,CAAW,CAAA,SAAA,CAAU,aAAgB,CAAA,SAAUnK,EAAI,CACjD,OAAA,IAAA,CAAK,KAAK,MAAS,CAAA,QAAA,CACZ,KAAK,OAAQA,CAAAA,CAAE,CACxB,CACAmK,CAAAA,CAAAA,CAAW,UAAU,cAAiB,CAAA,SAAUnK,EAAI,CAClD,IAAIuH,EAAM,IAAK,CAAA,IAAA,CACf,OAAAA,CAAAA,CAAI,SAAW,CAACA,CAAAA,CAAI,QACb,IAAK,CAAA,IAAA,CAAK,SAAUtR,CAAKkT,CAAAA,CAAAA,CAAQ,CACtCnJ,CAAGmJ,CAAAA,CAAAA,CAAO,WAAYA,CAAM,EAC9B,CAAC,CACH,CAAA,CACAgB,EAAW,SAAU,CAAA,IAAA,CAAO,SAAUnK,CAAAA,CAAI,CACxC,IAAIuH,CAAAA,CAAM,KAAK,IACfA,CAAAA,CAAAA,CAAI,SAAW,CAACA,CAAAA,CAAI,QACpB,IAAIzQ,CAAAA,CAAI,EACR,CAAA,OAAO,KAAK,IAAK,CAAA,SAAUlB,EAAMuT,CAAQ,CAAA,CACvCrS,CAAE,CAAA,IAAA,CAAKqS,EAAO,GAAG,EACnB,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CAClB,OAAOrS,CACT,CAAC,CAAA,CAAE,KAAKkJ,CAAE,CACZ,EACAmK,CAAW,CAAA,SAAA,CAAU,YAAc,SAAUnK,CAAAA,CAAI,CAC/C,IAAIuH,EAAM,IAAK,CAAA,IAAA,CACf,GAAIA,CAAI,CAAA,GAAA,GAAQ,QAAUc,EAAgBd,CAAAA,CAAAA,CAAK,EAAI,CAAKA,EAAAA,CAAAA,CAAI,MAAQ,CAClE,CAAA,OAAO,KAAK,KAAM,CAAA,SAAUhF,EAAO,CACjC,IAAIwC,CAAQ6D,CAAAA,EAAAA,CAAgBrB,EAAKA,CAAI,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,CACtD,OAAOA,CAAI,CAAA,KAAA,CAAM,KAAK,KAAM,CAAA,CAC1B,MAAOhF,CACP,CAAA,MAAA,CAAQ,GACR,KAAOgF,CAAAA,CAAAA,CAAI,MACX,KAAO,CAAA,CACL,KAAOxC,CAAAA,CAAAA,CACP,MAAOwC,CAAI,CAAA,KACb,CACF,CAAC,CACH,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU3C,CAAI,CAAA,CACpB,IAAIjP,CAASiP,CAAAA,CAAAA,CAAG,OAChB,OAAOjP,CACT,CAAC,CAAE,CAAA,IAAA,CAAKqK,CAAE,CAEZuH,CAAAA,CAAAA,CAAI,SAAW,CAACA,CAAAA,CAAI,QACpB,IAAIzQ,CAAAA,CAAI,EACR,CAAA,OAAO,KAAK,IAAK,CAAA,SAAUlB,EAAMuT,CAAQ,CAAA,CACvCrS,EAAE,IAAKqS,CAAAA,CAAAA,CAAO,UAAU,EAC1B,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CAClB,OAAOrS,CACT,CAAC,CAAA,CAAE,KAAKkJ,CAAE,CACZ,EACAmK,CAAW,CAAA,SAAA,CAAU,WAAa,SAAUnK,CAAAA,CAAI,CAC9C,OAAK,IAAA,CAAA,IAAA,CAAK,OAAS,QACZ,CAAA,IAAA,CAAK,IAAKA,CAAAA,CAAE,CACrB,CACAmK,CAAAA,CAAAA,CAAW,UAAU,QAAW,CAAA,SAAUnK,EAAI,CAC5C,OAAO,KAAK,KAAM,CAAA,CAAC,EAAE,IAAK,CAAA,SAAUlJ,EAAG,CACrC,OAAOA,EAAE,CAAC,CACZ,CAAC,CAAA,CAAE,KAAKkJ,CAAE,CACZ,EACAmK,CAAW,CAAA,SAAA,CAAU,QAAU,SAAUnK,CAAAA,CAAI,CAC3C,OAAO,IAAA,CAAK,SAAU,CAAA,QAAA,CAASA,CAAE,CACnC,CAAA,CACAmK,EAAW,SAAU,CAAA,QAAA,CAAW,UAAY,CAC1C,IAAI5C,CAAM,CAAA,IAAA,CAAK,KACbvC,CAAMuC,CAAAA,CAAAA,CAAI,OAASA,CAAI,CAAA,KAAA,CAAM,OAAO,SAAUA,CAAAA,CAAAA,CAAI,KAAK,CACzD,CAAA,GAAI,CAACvC,CAAO,EAAA,CAACA,EAAI,KAAO,CAAA,OAAO,IAC/B,CAAA,IAAImG,EAAM,EAAC,CACX,OAAA5C,EAAU,CAAA,IAAA,CAAK,KAAM,SAAUY,CAAAA,CAAQ,CACrC,IAAIiC,CAAAA,CAASjC,EAAO,UAAW,CAAA,QAAA,GAC3BkC,CAAQtX,CAAAA,CAAAA,CAAOoX,EAAKC,CAAM,CAAA,CAC9B,OAAAD,CAAAA,CAAIC,CAAM,CAAI,CAAA,CAAA,CAAA,CACP,CAACC,CACV,CAAC,EACM,IACT,CAAA,CACAlB,EAAW,SAAU,CAAA,MAAA,CAAS,SAAUnD,CAAS,CAAA,CAC/C,IAAIxJ,CAAQ,CAAA,IAAA,CACR+J,EAAM,IAAK,CAAA,IAAA,CACf,OAAO,IAAA,CAAK,OAAO,SAAUhF,CAAAA,CAAO,CAClC,IAAI+I,CAAAA,CACJ,GAAI,OAAOtE,CAAAA,EAAY,WACrBsE,CAAWtE,CAAAA,CAAAA,CAAAA,KACN,CACL,IAAI1C,CAAAA,CAAW/Q,EAAKyT,CAAO,CAAA,CACvBK,EAAU/C,CAAS,CAAA,MAAA,CACvBgH,EAAW,SAAU1V,CAAAA,CAAM,CAEzB,IADI2V,IAAAA,CAAAA,CAAmB,GACdzY,CAAI,CAAA,CAAA,CAAGA,EAAIuU,CAAS,CAAA,EAAEvU,EAAG,CAChC,IAAIiD,EAAUuO,CAASxR,CAAAA,CAAC,EACpBmD,CAAM+Q,CAAAA,CAAAA,CAAQjR,CAAO,CACrByV,CAAAA,EAAAA,CAAU1V,EAAaF,CAAAA,CAAAA,CAAMG,CAAO,CACpCE,CAAAA,CAAAA,YAAe6T,IACjB1T,EAAaR,CAAAA,CAAAA,CAAMG,EAASE,CAAI,CAAA,OAAA,CAAQuV,EAAO,CAAC,CAAA,CAChDD,EAAmB,CACVC,CAAAA,EAAAA,EAAAA,GAAYvV,IACrBG,EAAaR,CAAAA,CAAAA,CAAMG,EAASE,CAAG,CAAA,CAC/BsV,CAAmB,CAAA,CAAA,CAAA,EAEvB,CACA,OAAOA,CACT,EACF,CACA,IAAI9E,EAAYc,CAAI,CAAA,KAAA,CAAM,KACtB3C,CAAK6B,CAAAA,CAAAA,CAAU,OAAO,UACxBgF,CAAAA,CAAAA,CAAW7G,EAAG,QACd8G,CAAAA,CAAAA,CAAa9G,EAAG,UACd+G,CAAAA,CAAAA,CAAQ,GACRC,CAAAA,CAAAA,CAAkBpO,EAAM,EAAG,CAAA,QAAA,CAAS,gBACpCoO,CACE,GAAA,OAAOA,GAAmB,QAC5BD,CAAAA,CAAAA,CAAQC,EAAgBnF,CAAU,CAAA,IAAI,GAAKmF,CAAgB,CAAA,GAAG,GAAK,GAEnED,CAAAA,CAAAA,CAAQC,GAGZ,IAAIC,CAAAA,CAAgB,EAAC,CACjB7S,EAAe,CACfC,CAAAA,CAAAA,CAAa,EACb6S,CAAAA,CAAAA,CAAoB,SAAUC,CAAevR,CAAAA,CAAAA,CAAK,CACpD,IAAI1B,CAAAA,CAAW0B,EAAI,QACjB8L,CAAAA,CAAAA,CAAc9L,EAAI,WACpBxB,CAAAA,CAAAA,EAAgB+S,EAAgBzF,CAChC,CAAA,IAAA,IAASW,CAAK,CAAA,CAAA,CAAGrC,GAAKrR,CAAKuF,CAAAA,CAAQ,EAAGmO,CAAKrC,CAAAA,EAAAA,CAAG,OAAQqC,CAAM,EAAA,CAAA,CAC1D,IAAI9N,EAAMyL,CAAAA,EAAAA,CAAGqC,CAAE,CACf4E,CAAAA,CAAAA,CAAc,KAAK/S,CAASK,CAAAA,EAAG,CAAC,EAClC,CACF,CACA,CAAA,OAAOqE,EAAM,KAAM,EAAA,CAAE,aAAc,CAAA,IAAA,CAAK,SAAUjK,CAAM,CAAA,CACtD,IAAIyY,CAAW3D,CAAAA,EAAAA,CAAgBd,CAAG,CAAKA,EAAAA,CAAAA,CAAI,QAAU,CAAa,CAAA,CAAA,GAAA,OAAOP,GAAY,UAAcA,EAAAA,CAAAA,GAAYiF,EAAmB,CAAA,EAAA,CAChI,MAAO1E,CAAI,CAAA,KAAA,CACX,MAAOA,CAAI,CAAA,KACb,EACI2E,CAAY,CAAA,SAAU/G,EAAQ,CAChC,IAAIiF,EAAQ,IAAK,CAAA,GAAA,CAAIuB,EAAOpY,CAAK,CAAA,MAAA,CAAS4R,CAAM,CAChD,CAAA,OAAOsB,EAAU,OAAQ,CAAA,CACvB,MAAOlE,CACP,CAAA,IAAA,CAAMhP,EAAK,KAAM4R,CAAAA,CAAAA,CAAQA,EAASiF,CAAK,CAAA,CACvC,MAAO,WACT,CAAC,EAAE,IAAK,CAAA,SAAU1L,GAAQ,CAKxB,IAAA,IAJIyN,GAAY,EAAC,CACbC,EAAY,CAAA,GACZC,EAAUZ,CAAAA,CAAAA,CAAW,EAAK,CAAA,IAAA,CAC1Ba,GAAa,EAAC,CACTxZ,GAAI,CAAGA,CAAAA,EAAAA,CAAIsX,EAAO,EAAEtX,EAAAA,CAAG,CAC9B,IAAIyZ,EAAAA,CAAY7N,GAAO5L,EAAC,CAAA,CACpB0Z,EAAQ,CAAA,CACV,MAAOhV,EAAU+U,CAAAA,EAAS,EAC1B,OAAShZ,CAAAA,CAAAA,CAAK4R,EAASrS,EAAC,CAC1B,EACIwY,CAAS,CAAA,IAAA,CAAKkB,GAAOA,EAAM,CAAA,KAAA,CAAOA,EAAK,CAAM,GAAA,CAAA,CAAA,GAC3CA,GAAM,KAAS,EAAA,IAAA,CACjBF,EAAW,CAAA,IAAA,CAAK/Y,EAAK4R,CAASrS,CAAAA,EAAC,CAAC,CACvB,CAAA,CAAC2Y,GAAYlI,EAAImI,CAAAA,CAAAA,CAAWa,EAAS,CAAGb,CAAAA,CAAAA,CAAWc,GAAM,KAAK,CAAC,IAAM,CAC9EF,EAAAA,EAAAA,CAAW,KAAK/Y,CAAK4R,CAAAA,CAAAA,CAASrS,EAAC,CAAC,EAChCqZ,EAAU,CAAA,IAAA,CAAKK,GAAM,KAAK,CAAA,GAE1BJ,GAAU,IAAKI,CAAAA,EAAAA,CAAM,KAAK,CACtBf,CAAAA,CAAAA,EAAUY,GAAQ,IAAK9Y,CAAAA,CAAAA,CAAK4R,EAASrS,EAAC,CAAC,IAGjD,CACA,OAAO,OAAQ,CAAA,OAAA,CAAQqZ,GAAU,MAAS,CAAA,CAAA,EAAK1F,EAAU,MAAO,CAAA,CAC9D,MAAOlE,CACP,CAAA,IAAA,CAAM,MACN,MAAQ4J,CAAAA,EACV,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU3R,EAAK,CAAA,CACrB,QAASrB,EAAOqB,IAAAA,EAAAA,CAAI,QAClB8R,CAAAA,EAAAA,CAAW,OAAO,QAASnT,CAAAA,EAAG,EAAG,CAAC,CAAA,CAEpC2S,EAAkBK,EAAU,CAAA,MAAA,CAAQ3R,EAAG,EACzC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CACnB,OAAA,CAAQ4R,GAAU,MAAS,CAAA,CAAA,EAAKJ,CAAY,EAAA,OAAOhF,GAAY,QAAaP,GAAAA,CAAAA,CAAU,OAAO,CAC3F,KAAA,CAAOlE,EACP,IAAM,CAAA,KAAA,CACN,KAAM8J,EACN,CAAA,MAAA,CAAQD,GACR,QAAUJ,CAAAA,CAAAA,CACV,WAAY,OAAOhF,CAAAA,EAAY,YAAcA,CAC7C,CAAA,iBAAA,CAAmB7B,CAAS,CAAA,CAC9B,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU3K,EAAK,CAAA,CACrB,OAAOsR,CAAkBM,CAAAA,EAAAA,CAAU,OAAQ5R,EAAG,CAChD,CAAC,CACH,CAAC,EAAE,IAAK,CAAA,UAAY,CAClB,OAAQ8R,CAAAA,EAAAA,CAAW,MAAS,CAAA,CAAA,EAAKN,GAAYhF,CAAYiF,GAAAA,EAAAA,GAAmBxF,EAAU,MAAO,CAAA,CAC3F,MAAOlE,CACP,CAAA,IAAA,CAAM,SACN,IAAM+J,CAAAA,EAAAA,CACN,SAAUN,CACV,CAAA,iBAAA,CAAmB7G,EAAS,CAC9B,CAAC,EAAE,IAAK,CAAA,SAAU3K,EAAK,CAAA,CACrB,OAAOsR,CAAkBQ,CAAAA,EAAAA,CAAW,OAAQ9R,EAAG,CACjD,CAAC,CACH,CAAC,EAAE,IAAK,CAAA,UAAY,CAClB,OAAOjH,CAAAA,CAAK,OAAS4R,CAASiF,CAAAA,CAAAA,EAAS8B,EAAU/G,CAASwG,CAAAA,CAAK,CACjE,CAAC,CACH,CAAC,CACH,EACA,OAAOO,CAAAA,CAAU,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CACnC,GAAIL,EAAc,MAAS,CAAA,CAAA,CAAG,MAAM,IAAI9S,EAAAA,CAAY,sCAAuC8S,CAAe7S,CAAAA,CAAAA,CAAcC,CAAU,CAAA,CAClI,OAAO1F,CAAK,CAAA,MACd,CAAC,CACH,CAAC,CACH,CAAC,CACH,EACA4W,CAAW,CAAA,SAAA,CAAU,OAAS,UAAY,CACxC,IAAI5C,CAAM,CAAA,IAAA,CAAK,KACbkF,CAAQlF,CAAAA,CAAAA,CAAI,KACd,CAAA,OAAIc,GAAgBd,CAAG,CAAA,GAAMA,EAAI,SAAakF,EAAAA,CAAAA,CAAM,OAAS,CACpD,CAAA,CAAA,IAAA,CAAK,OAAO,SAAUlK,CAAAA,CAAO,CAClC,IAAI8G,CAAAA,CAAa9B,EAAI,KAAM,CAAA,IAAA,CAAK,OAAO,UACnCmF,CAAAA,CAAAA,CAAYD,CAChB,CAAA,OAAOlF,EAAI,KAAM,CAAA,IAAA,CAAK,MAAM,CAC1B,KAAA,CAAOhF,EACP,KAAO,CAAA,CACL,MAAO8G,CACP,CAAA,KAAA,CAAOqD,CACT,CACF,CAAC,EAAE,IAAK,CAAA,SAAUtC,EAAO,CACvB,OAAO7C,CAAI,CAAA,KAAA,CAAM,KAAK,MAAO,CAAA,CAC3B,MAAOhF,CACP,CAAA,IAAA,CAAM,cACN,KAAOmK,CAAAA,CACT,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU9H,CAAI,CAAA,CACpB,IAAI9L,CAAW8L,CAAAA,CAAAA,CAAG,SAClBA,CAAG,CAAA,UAAA,CACHA,EAAG,OACH,CAAA,IAAI0B,EAAc1B,CAAG,CAAA,WAAA,CACrB,GAAI0B,CAAa,CAAA,MAAM,IAAIvN,EAAY,CAAA,8BAAA,CAAgC,OAAO,IAAKD,CAAAA,CAAQ,EAAE,GAAI,CAAA,SAAUK,EAAK,CAC9G,OAAOL,EAASK,CAAG,CACrB,CAAC,CAAA,CAAGiR,EAAQ9D,CAAW,CAAA,CACvB,OAAO8D,CAAQ9D,CAAAA,CACjB,CAAC,CACH,CAAC,CACH,CAAC,CAAA,CAEI,KAAK,MAAO2F,CAAAA,EAAc,CACnC,CACO9B,CAAAA,CACT,GACI8B,CAAAA,EAAAA,CAAiB,SAAU5V,CAAAA,CAAOkR,EAAK,CACzC,OAAOA,EAAI,KAAQ,CAAA,IACrB,EACA,SAASoF,EAAAA,CAA4BvK,EAAI,CACvC,OAAO6F,GAAqBkC,EAAW,CAAA,SAAA,CAAW,SAAoByC,CAAaC,CAAAA,CAAAA,CAAmB,CACpG,IAAK,CAAA,EAAA,CAAKzK,CACV,CAAA,IAAI0K,EAAW1J,EACb2J,CAAAA,CAAAA,CAAQ,KACV,GAAIF,CAAAA,CAAmB,GAAI,CACzBC,CAAAA,CAAWD,IACb,CAAA,MAASnN,EAAI,CACXqN,CAAAA,CAAQrN,EACV,CACA,IAAIsN,EAAWJ,CAAY,CAAA,IAAA,CACvBK,CAAQD,CAAAA,CAAAA,CAAS,MACjBE,CAAcD,CAAAA,CAAAA,CAAM,KAAK,OAAQ,CAAA,IAAA,CACrC,KAAK,IAAO,CAAA,CACV,MAAOA,CACP,CAAA,KAAA,CAAOD,EAAS,KAChB,CAAA,SAAA,CAAW,CAACA,CAAS,CAAA,KAAA,EAASC,EAAM,MAAO,CAAA,OAAA,CAAQ,OAAWD,EAAAA,CAAAA,CAAS,QAAUC,CAAM,CAAA,MAAA,CAAO,QAAQ,IACtG,CAAA,KAAA,CAAOH,EACP,QAAU,CAAA,CAAA,CAAA,CACV,IAAK,MACL,CAAA,MAAA,CAAQ,GACR,SAAW,CAAA,IAAA,CACX,OAAQ,IACR,CAAA,YAAA,CAAc,KACd,SAAW,CAAA,CAAA,CAAA,CACX,OAAS,CAAA,IAAA,CACT,OAAQ,CACR,CAAA,KAAA,CAAO,IACP,KAAOC,CAAAA,CAAAA,CACP,GAAIC,CAAS,CAAA,EAAA,CACb,YAAaE,CAAgBlT,GAAAA,EAAAA,CAASkT,EAAc,IACtD,EACF,CAAC,CACH,CACA,SAASC,EAAcrW,CAAAA,CAAAA,CAAGvE,CAAG,CAAA,CAC3B,OAAOuE,CAAIvE,CAAAA,CAAAA,CAAI,GAAKuE,CAAMvE,GAAAA,CAAAA,CAAI,EAAI,CACpC,CACA,SAAS6a,EAAqBtW,CAAAA,CAAAA,CAAGvE,EAAG,CAClC,OAAOuE,EAAIvE,CAAI,CAAA,CAAA,CAAA,CAAKuE,IAAMvE,CAAI,CAAA,CAAA,CAAI,CACpC,CACA,SAAS8a,GAAKC,CAAyBnP,CAAAA,CAAAA,CAAKoP,EAAG,CAC7C,IAAIC,EAAaF,CAAmCG,YAAAA,EAAAA,CAAc,IAAIH,CAAwB,CAAA,UAAA,CAAWA,CAAuB,CAAIA,CAAAA,CAAAA,CACpI,OAAAE,CAAW,CAAA,IAAA,CAAK,MAAQD,CAAI,CAAA,IAAIA,CAAEpP,CAAAA,CAAG,EAAI,IAAI,SAAA,CAAUA,CAAG,CACnDqP,CAAAA,CACT,CACA,SAASE,EAAAA,CAAgBd,EAAa,CACpC,OAAO,IAAIA,CAAY,CAAA,UAAA,CAAWA,EAAa,UAAY,CACzD,OAAOe,EAAW,CAAA,EAAE,CACtB,CAAC,EAAE,KAAM,CAAA,CAAC,CACZ,CACA,SAASC,GAAaC,CAAK,CAAA,CACzB,OAAOA,CAAQ,GAAA,MAAA,CAAS,SAAUhb,CAAG,CAAA,CACnC,OAAOA,CAAE,CAAA,WAAA,EACX,CAAI,CAAA,SAAUA,CAAG,CAAA,CACf,OAAOA,CAAE,CAAA,WAAA,EACX,CACF,CACA,SAASib,EAAaD,CAAAA,CAAAA,CAAK,CACzB,OAAOA,CAAAA,GAAQ,OAAS,SAAUhb,CAAAA,CAAG,CACnC,OAAOA,CAAAA,CAAE,aACX,CAAA,CAAI,SAAUA,CAAAA,CAAG,CACf,OAAOA,CAAAA,CAAE,aACX,CACF,CACA,SAASkb,EAAAA,CAAWna,EAAKoa,CAAUC,CAAAA,CAAAA,CAAaC,EAAa3K,CAAKsK,CAAAA,CAAAA,CAAK,CAGrE,IAFIM,IAAAA,CAAAA,CAAS,KAAK,GAAIva,CAAAA,CAAAA,CAAI,MAAQsa,CAAAA,CAAAA,CAAY,MAAM,CAChDE,CAAAA,CAAAA,CAAM,GACDtb,CAAI,CAAA,CAAA,CAAGA,EAAIqb,CAAQ,CAAA,EAAErb,EAAG,CAC/B,IAAIub,EAAaL,CAASlb,CAAAA,CAAC,EAC3B,GAAIub,CAAAA,GAAeH,EAAYpb,CAAC,CAAA,CAC9B,OAAIyQ,CAAAA,CAAI3P,EAAId,CAAC,CAAA,CAAGmb,EAAYnb,CAAC,CAAC,EAAI,CAAUc,CAAAA,CAAAA,CAAI,OAAO,CAAGd,CAAAA,CAAC,EAAImb,CAAYnb,CAAAA,CAAC,EAAImb,CAAY,CAAA,MAAA,CAAOnb,EAAI,CAAC,CAAA,CACpGyQ,CAAI3P,CAAAA,CAAAA,CAAId,CAAC,CAAGob,CAAAA,CAAAA,CAAYpb,CAAC,CAAC,CAAA,CAAI,EAAUc,CAAI,CAAA,MAAA,CAAO,EAAGd,CAAC,CAAA,CAAIob,EAAYpb,CAAC,CAAA,CAAImb,EAAY,MAAOnb,CAAAA,CAAAA,CAAI,CAAC,CACpGsb,CAAAA,CAAAA,EAAO,EAAUxa,CAAI,CAAA,MAAA,CAAO,EAAGwa,CAAG,CAAA,CAAIJ,EAASI,CAAG,CAAA,CAAIH,EAAY,MAAOG,CAAAA,CAAAA,CAAM,CAAC,CAC7E,CAAA,IAAA,CAEL7K,EAAI3P,CAAId,CAAAA,CAAC,EAAGub,CAAU,CAAA,CAAI,IAAGD,CAAMtb,CAAAA,CAAAA,EACzC,CACA,OAAIqb,EAASD,CAAY,CAAA,MAAA,EAAUL,IAAQ,MAAeja,CAAAA,CAAAA,CAAMqa,EAAY,MAAOra,CAAAA,CAAAA,CAAI,MAAM,CACzFua,CAAAA,CAAAA,CAASva,EAAI,MAAUia,EAAAA,CAAAA,GAAQ,OAAeja,CAAI,CAAA,MAAA,CAAO,EAAGqa,CAAY,CAAA,MAAM,CAC3EG,CAAAA,CAAAA,CAAM,EAAI,IAAOxa,CAAAA,CAAAA,CAAI,OAAO,CAAGwa,CAAAA,CAAG,EAAIF,CAAYE,CAAAA,CAAG,EAAIH,CAAY,CAAA,MAAA,CAAOG,EAAM,CAAC,CAC5F,CACA,SAASE,EAAAA,CAAuB1B,EAAa2B,CAAOC,CAAAA,CAAAA,CAASC,CAAQ,CAAA,CACnE,IAAIC,CACFC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CAAaT,EAAQ,MACvB,CAAA,GAAI,CAACA,CAAQ,CAAA,KAAA,CAAM,SAAU3b,CAAG,CAAA,CAC9B,OAAO,OAAOA,CAAAA,EAAM,QACtB,CAAC,EACC,OAAOwa,EAAAA,CAAKT,EAAahK,EAAe,CAAA,CAE1C,SAASsM,CAAcrB,CAAAA,CAAAA,CAAK,CAC1Ba,CAAQd,CAAAA,EAAAA,CAAaC,CAAG,CACxBc,CAAAA,CAAAA,CAAQb,GAAaD,CAAG,CAAA,CACxBe,EAAUf,CAAQ,GAAA,MAAA,CAASV,EAAgBC,CAAAA,EAAAA,CAC3C,IAAI+B,CAAeX,CAAAA,CAAAA,CAAQ,IAAI,SAAUY,CAAAA,CAAQ,CAC/C,OAAO,CACL,MAAOT,CAAMS,CAAAA,CAAM,EACnB,KAAOV,CAAAA,CAAAA,CAAMU,CAAM,CACrB,CACF,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUtY,CAAAA,CAAGvE,EAAG,CACtB,OAAOqc,EAAQ9X,CAAE,CAAA,KAAA,CAAOvE,EAAE,KAAK,CACjC,CAAC,CACDsc,CAAAA,CAAAA,CAAeM,EAAa,GAAI,CAAA,SAAUE,EAAI,CAC5C,OAAOA,EAAG,KACZ,CAAC,CACDP,CAAAA,CAAAA,CAAeK,EAAa,GAAI,CAAA,SAAUE,EAAI,CAC5C,OAAOA,EAAG,KACZ,CAAC,EACDN,CAAYlB,CAAAA,CAAAA,CACZmB,EAAgBnB,CAAQ,GAAA,MAAA,CAAS,GAAKY,EACxC,CACAS,EAAc,MAAM,CAAA,CACpB,IAAIxF,CAAAA,CAAI,IAAIkD,CAAY,CAAA,UAAA,CAAWA,EAAa,UAAY,CAC1D,OAAO0C,EAAYT,CAAAA,CAAAA,CAAa,CAAC,CAAGC,CAAAA,CAAAA,CAAaG,EAAa,CAAC,CAAA,CAAIR,CAAM,CAC3E,CAAC,EACD/E,CAAE,CAAA,kBAAA,CAAqB,SAAUqF,CAAAA,CAAW,CAC1CG,CAAcH,CAAAA,CAAS,EACzB,CACA,CAAA,IAAIQ,EAAsB,CAC1B,CAAA,OAAA7F,EAAE,aAAc,CAAA,SAAUP,EAAQC,CAASxL,CAAAA,CAAAA,CAAS,CAClD,IAAIhK,CAAAA,CAAMuV,EAAO,GACjB,CAAA,GAAI,OAAOvV,CAAAA,EAAQ,SAAU,OAAO,CAAA,CAAA,CACpC,IAAIoa,CAAWW,CAAAA,CAAAA,CAAM/a,CAAG,CACxB,CAAA,GAAI2a,EAAMP,CAAUc,CAAAA,CAAAA,CAAcS,CAAmB,CACnD,CAAA,OAAO,GAGP,IADIC,IAAAA,CAAAA,CAAuB,KAClB1c,CAAIyc,CAAAA,CAAAA,CAAqBzc,CAAImc,CAAAA,CAAAA,CAAY,EAAEnc,CAAG,CAAA,CACrD,IAAI2c,CAAS1B,CAAAA,EAAAA,CAAWna,EAAKoa,CAAUa,CAAAA,CAAAA,CAAa/b,CAAC,CAAGgc,CAAAA,CAAAA,CAAahc,CAAC,CAAG8b,CAAAA,CAAAA,CAASG,CAAS,CACvFU,CAAAA,CAAAA,GAAW,MAAQD,CAAyB,GAAA,IAAA,CAAMD,CAAsBzc,CAAAA,CAAAA,CAAI,GAAW0c,CAAyB,GAAA,IAAA,EAAQZ,EAAQY,CAAsBC,CAAAA,CAAM,EAAI,CAClKD,IAAAA,CAAAA,CAAuBC,GAE3B,CACA,OACErG,EADEoG,CAAyB,GAAA,IAAA,CACnB,UAAY,CAClBrG,CAAAA,CAAO,SAASqG,CAAuBR,CAAAA,CAAa,EACtD,CAAA,CAEQpR,CAFP,CAII,CAAA,CAAA,CAEX,CAAC,CACM8L,CAAAA,CACT,CACA,SAAS4F,EAAAA,CAAYX,EAAOD,CAAOgB,CAAAA,CAAAA,CAAWC,EAAW,CACvD,OAAO,CACL,IAAM,CAAA,CAAA,CACN,MAAOhB,CACP,CAAA,KAAA,CAAOD,CACP,CAAA,SAAA,CAAWgB,EACX,SAAWC,CAAAA,CACb,CACF,CACA,SAAShC,GAAWtX,CAAO,CAAA,CACzB,OAAO,CACL,IAAA,CAAM,EACN,KAAOA,CAAAA,CAAAA,CACP,MAAOA,CACT,CACF,CACA,IAAIoX,EAAAA,CAAc,UAAY,CAC5B,SAASA,CAAc,EAAA,EACvB,OAAO,MAAA,CAAA,cAAA,CAAeA,EAAY,SAAW,CAAA,YAAA,CAAc,CACzD,GAAK,CAAA,UAAY,CACf,OAAO,IAAA,CAAK,KAAK,KAAM,CAAA,EAAA,CAAG,UAC5B,CACA,CAAA,UAAA,CAAY,GACZ,YAAc,CAAA,CAAA,CAChB,CAAC,CACDA,CAAAA,CAAAA,CAAY,UAAU,OAAU,CAAA,SAAUkB,EAAOD,CAAOkB,CAAAA,CAAAA,CAAcC,EAAc,CAClFD,CAAAA,CAAeA,IAAiB,CAChCC,CAAAA,CAAAA,CAAAA,CAAeA,IAAiB,CAChC,CAAA,CAAA,GAAI,CACF,OAAI,IAAA,CAAK,IAAKlB,CAAAA,CAAAA,CAAOD,CAAK,CAAI,CAAA,CAAA,EAAK,KAAK,IAAKC,CAAAA,CAAAA,CAAOD,CAAK,CAAM,GAAA,CAAA,GAAMkB,GAAgBC,CAAiB,CAAA,EAAA,EAAED,GAAgBC,CAAsBnC,CAAAA,CAAAA,EAAAA,CAAgB,IAAI,CAC3J,CAAA,IAAI,KAAK,UAAW,CAAA,IAAA,CAAM,UAAY,CAC3C,OAAO4B,EAAYX,CAAAA,CAAAA,CAAOD,EAAO,CAACkB,CAAAA,CAAc,CAACC,CAAY,CAC/D,CAAC,CACH,CAAA,KAAY,CACV,OAAOxC,EAAAA,CAAK,KAAM1K,EAAoB,CACxC,CACF,CACA8K,CAAAA,CAAAA,CAAY,SAAU,CAAA,MAAA,CAAS,SAAUpX,CAAO,CAAA,CAC9C,OAAIA,CAAS,EAAA,IAAA,CAAagX,GAAK,IAAM1K,CAAAA,EAAoB,EAClD,IAAI,IAAA,CAAK,WAAW,IAAM,CAAA,UAAY,CAC3C,OAAOgL,EAAAA,CAAWtX,CAAK,CACzB,CAAC,CACH,CAAA,CACAoX,EAAY,SAAU,CAAA,KAAA,CAAQ,SAAUpX,CAAO,CAAA,CAC7C,OAAIA,CAAS,EAAA,IAAA,CAAagX,GAAK,IAAM1K,CAAAA,EAAoB,EAClD,IAAI,IAAA,CAAK,WAAW,IAAM,CAAA,UAAY,CAC3C,OAAO2M,EAAAA,CAAYjZ,CAAO,CAAA,KAAA,CAAA,CAAW,EAAI,CAC3C,CAAC,CACH,CACAoX,CAAAA,CAAAA,CAAY,UAAU,YAAe,CAAA,SAAUpX,EAAO,CACpD,OAAIA,GAAS,IAAagX,CAAAA,EAAAA,CAAK,KAAM1K,EAAoB,CAAA,CAClD,IAAI,IAAK,CAAA,UAAA,CAAW,IAAM,CAAA,UAAY,CAC3C,OAAO2M,EAAAA,CAAYjZ,EAAO,KAAW,CAAA,CAAA,CAAA,CAAK,CAC5C,CAAC,CACH,EACAoX,CAAY,CAAA,SAAA,CAAU,MAAQ,SAAUpX,CAAAA,CAAO,CAC7C,OAAIA,CAAAA,EAAS,KAAagX,EAAK,CAAA,IAAA,CAAM1K,EAAoB,CAAA,CAClD,IAAI,IAAK,CAAA,UAAA,CAAW,KAAM,UAAY,CAC3C,OAAO2M,EAAY,CAAA,KAAA,CAAA,CAAWjZ,EAAO,CAAO,CAAA,CAAA,CAAA,CAAI,CAClD,CAAC,CACH,EACAoX,CAAY,CAAA,SAAA,CAAU,aAAe,SAAUpX,CAAAA,CAAO,CACpD,OAAIA,CAAAA,EAAS,KAAagX,EAAK,CAAA,IAAA,CAAM1K,EAAoB,CAClD,CAAA,IAAI,KAAK,UAAW,CAAA,IAAA,CAAM,UAAY,CAC3C,OAAO2M,GAAY,KAAWjZ,CAAAA,CAAAA,CAAK,CACrC,CAAC,CACH,EACAoX,CAAY,CAAA,SAAA,CAAU,UAAa,CAAA,SAAUqC,EAAK,CAChD,OAAI,OAAOA,CAAQ,EAAA,QAAA,CAAiBzC,GAAK,IAAMzK,CAAAA,EAAe,EACvD,IAAK,CAAA,OAAA,CAAQkN,EAAKA,CAAMrN,CAAAA,EAAAA,CAAW,GAAM,CAAI,CAAA,CACtD,EACAgL,CAAY,CAAA,SAAA,CAAU,oBAAuB,CAAA,SAAUqC,EAAK,CAC1D,OAAIA,IAAQ,EAAW,CAAA,IAAA,CAAK,WAAWA,CAAG,CAAA,CACnCxB,GAAuB,IAAM,CAAA,SAAU3W,EAAGb,CAAG,CAAA,CAClD,OAAOa,CAAE,CAAA,OAAA,CAAQb,EAAE,CAAC,CAAC,CAAM,GAAA,CAC7B,EAAG,CAACgZ,CAAG,EAAGrN,EAAS,CACrB,EACAgL,CAAY,CAAA,SAAA,CAAU,iBAAmB,SAAUqC,CAAAA,CAAK,CACtD,OAAOxB,EAAAA,CAAuB,KAAM,SAAU3W,CAAAA,CAAGb,EAAG,CAClD,OAAOa,CAAMb,GAAAA,CAAAA,CAAE,CAAC,CAClB,CAAA,CAAG,CAACgZ,CAAG,CAAA,CAAG,EAAE,CACd,CAAA,CACArC,EAAY,SAAU,CAAA,eAAA,CAAkB,UAAY,CAClD,IAAItC,EAAMjT,EAAW,CAAA,KAAA,CAAMD,GAAe,SAAS,CAAA,CACnD,OAAIkT,CAAAA,CAAI,SAAW,CAAUuC,CAAAA,EAAAA,CAAgB,IAAI,CAC1CY,CAAAA,EAAAA,CAAuB,KAAM,SAAU3W,CAAAA,CAAGb,EAAG,CAClD,OAAOA,EAAE,OAAQa,CAAAA,CAAC,IAAM,CAC1B,CAAA,CAAA,CAAGwT,EAAK,EAAE,CACZ,CACAsC,CAAAA,CAAAA,CAAY,UAAU,yBAA4B,CAAA,UAAY,CAC5D,IAAItC,CAAAA,CAAMjT,GAAW,KAAMD,CAAAA,EAAAA,CAAe,SAAS,CACnD,CAAA,OAAIkT,EAAI,MAAW,GAAA,CAAA,CAAUuC,GAAgB,IAAI,CAAA,CAC1CY,GAAuB,IAAM,CAAA,SAAU3W,CAAGb,CAAAA,CAAAA,CAAG,CAClD,OAAOA,CAAAA,CAAE,KAAK,SAAU/D,CAAAA,CAAG,CACzB,OAAO4E,CAAAA,CAAE,QAAQ5E,CAAC,CAAA,GAAM,CAC1B,CAAC,CACH,EAAGoY,CAAK1I,CAAAA,EAAS,CACnB,CACAgL,CAAAA,CAAAA,CAAY,UAAU,KAAQ,CAAA,UAAY,CACxC,IAAIjQ,CAAAA,CAAQ,KACR2N,CAAMjT,CAAAA,EAAAA,CAAW,MAAMD,EAAe,CAAA,SAAS,EAC/C2W,CAAU,CAAA,IAAA,CAAK,KACnB,GAAI,CACFzD,EAAI,IAAKyD,CAAAA,CAAO,EAClB,CAAY,KAAA,CACV,OAAOvB,EAAAA,CAAK,KAAM1K,EAAoB,CACxC,CACA,GAAIwI,CAAAA,CAAI,SAAW,CAAG,CAAA,OAAOuC,GAAgB,IAAI,CAAA,CACjD,IAAIhE,CAAI,CAAA,IAAI,KAAK,UAAW,CAAA,IAAA,CAAM,UAAY,CAC5C,OAAO4F,EAAYnE,CAAAA,CAAAA,CAAI,CAAC,CAAGA,CAAAA,CAAAA,CAAIA,EAAI,MAAS,CAAA,CAAC,CAAC,CAChD,CAAC,EACDzB,CAAE,CAAA,kBAAA,CAAqB,SAAUqF,CAAW,CAAA,CAC1CH,EAAUG,CAAc,GAAA,MAAA,CAASvR,EAAM,UAAaA,CAAAA,CAAAA,CAAM,WAC1D2N,CAAAA,CAAAA,CAAI,KAAKyD,CAAO,EAClB,EACA,IAAI9b,CAAAA,CAAI,EACR,OAAA4W,CAAAA,CAAE,cAAc,SAAUP,CAAAA,CAAQC,EAASxL,CAAS,CAAA,CAElD,QADIhK,CAAMuV,CAAAA,CAAAA,CAAO,IACVyF,CAAQhb,CAAAA,CAAAA,CAAKuX,CAAIrY,CAAAA,CAAC,CAAC,CAAI,CAAA,CAAA,EAE5B,GADA,EAAEA,CAAAA,CACEA,IAAMqY,CAAI,CAAA,MAAA,CACZ,OAAA/B,CAAQxL,CAAAA,CAAO,EACR,CAGX,CAAA,CAAA,OAAIgR,EAAQhb,CAAKuX,CAAAA,CAAAA,CAAIrY,CAAC,CAAC,CAAA,GAAM,CACpB,CAAA,CAAA,CAAA,EAEPsW,EAAQ,UAAY,CAClBD,EAAO,QAASgC,CAAAA,CAAAA,CAAIrY,CAAC,CAAC,EACxB,CAAC,CACM,CAAA,CAAA,CAAA,CAEX,CAAC,CACM4W,CAAAA,CACT,EACA+D,CAAY,CAAA,SAAA,CAAU,SAAW,SAAUpX,CAAAA,CAAO,CAChD,OAAO,KAAK,UAAW,CAAA,CAAC,CAACqM,EAAQrM,CAAAA,CAAK,EAAG,CAACA,CAAAA,CAAO,KAAK,EAAG,CAAA,OAAO,CAAC,CAAG,CAAA,CAClE,cAAe,CACf,CAAA,CAAA,aAAA,CAAe,EACjB,CAAC,CACH,CACAoX,CAAAA,CAAAA,CAAY,UAAU,MAAS,CAAA,UAAY,CACzC,IAAItC,CAAAA,CAAMjT,GAAW,KAAMD,CAAAA,EAAAA,CAAe,SAAS,CACnD,CAAA,GAAIkT,EAAI,MAAW,GAAA,CAAA,CAAG,OAAO,IAAI,IAAA,CAAK,WAAW,IAAI,CAAA,CACrD,GAAI,CACFA,EAAI,IAAK,CAAA,IAAA,CAAK,UAAU,EAC1B,CAAA,KAAY,CACV,OAAOkC,EAAAA,CAAK,KAAM1K,EAAoB,CACxC,CACA,IAAIoN,CAAAA,CAAS5E,EAAI,MAAO,CAAA,SAAU3Q,EAAKvE,CAAK,CAAA,CAC1C,OAAOuE,CAAAA,CAAMA,EAAI,MAAO,CAAA,CAAC,CAACA,CAAIA,CAAAA,CAAAA,CAAI,OAAS,CAAC,CAAA,CAAE,CAAC,CAAGvE,CAAAA,CAAG,CAAC,CAAC,CAAA,CAAI,CAAC,CAACyM,EAAAA,CAAQzM,CAAG,CAAC,CAC3E,CAAG,CAAA,IAAI,EACP,OAAA8Z,CAAAA,CAAO,KAAK,CAAC5E,CAAAA,CAAIA,EAAI,MAAS,CAAA,CAAC,EAAG,IAAK,CAAA,EAAA,CAAG,OAAO,CAAC,CAAA,CAC3C,KAAK,UAAW4E,CAAAA,CAAAA,CAAQ,CAC7B,aAAe,CAAA,CAAA,CAAA,CACf,aAAe,CAAA,CAAA,CACjB,CAAC,CACH,CAAA,CACAtC,EAAY,SAAU,CAAA,UAAA,CAAa,SAAUsC,CAAQzb,CAAAA,CAAAA,CAAS,CAC5D,IAAIkJ,CAAAA,CAAQ,KACR+F,CAAM,CAAA,IAAA,CAAK,KACbyM,CAAY,CAAA,IAAA,CAAK,WACjBC,CAAa,CAAA,IAAA,CAAK,WAClBC,CAAAA,CAAAA,CAAM,KAAK,IACXC,CAAAA,CAAAA,CAAM,KAAK,IACb,CAAA,GAAIJ,EAAO,MAAW,GAAA,CAAA,CAAG,OAAOrC,EAAgB,CAAA,IAAI,EACpD,GAAI,CAACqC,EAAO,KAAM,CAAA,SAAUtD,EAAO,CACjC,OAAOA,CAAM,CAAA,CAAC,IAAM,KAAaA,CAAAA,EAAAA,CAAAA,CAAM,CAAC,CAAM,GAAA,KAAA,CAAA,EAAauD,EAAUvD,CAAM,CAAA,CAAC,EAAGA,CAAM,CAAA,CAAC,CAAC,CAAK,EAAA,CAC9F,CAAC,CACC,CAAA,OAAOY,GAAK,IAAM,CAAA,4HAAA,CAA8H/T,EAAW,CAAA,eAAe,EAE5K,IAAI8W,CAAAA,CAAgB,CAAC9b,CAAWA,EAAAA,CAAAA,CAAQ,gBAAkB,CACtD+b,CAAAA,CAAAA,CAAAA,CAAgB/b,GAAWA,CAAQ,CAAA,aAAA,GAAkB,GACzD,SAASgc,CAAAA,CAASP,EAAQQ,CAAU,CAAA,CAGlC,QAFIzd,EAAI,CAAA,CAAA,CACNM,EAAI2c,CAAAA,CAAAA,CAAO,OACNjd,EAAIM,CAAAA,EAAAA,CAAG,EAAEN,EAAG,CAAA,CACjB,IAAI2Z,EAAQsD,CAAAA,CAAAA,CAAOjd,EAAC,CACpB,CAAA,GAAIyQ,EAAIgN,CAAS,CAAA,CAAC,EAAG9D,EAAM,CAAA,CAAC,CAAC,CAAI,CAAA,CAAA,EAAKlJ,EAAIgN,CAAS,CAAA,CAAC,EAAG9D,EAAM,CAAA,CAAC,CAAC,CAAI,CAAA,CAAA,CAAG,CACpEA,EAAM,CAAA,CAAC,EAAIyD,CAAIzD,CAAAA,EAAAA,CAAM,CAAC,CAAG8D,CAAAA,CAAAA,CAAS,CAAC,CAAC,CAAA,CACpC9D,GAAM,CAAC,CAAA,CAAI0D,CAAI1D,CAAAA,EAAAA,CAAM,CAAC,CAAG8D,CAAAA,CAAAA,CAAS,CAAC,CAAC,CAAA,CACpC,KACF,CACF,CACA,OAAIzd,EAAMM,GAAAA,EAAAA,EAAG2c,EAAO,IAAKQ,CAAAA,CAAQ,EAC1BR,CACT,CACA,IAAIS,CAAgBR,CAAAA,CAAAA,CACpB,SAASS,CAAAA,CAAY3Z,EAAGvE,CAAG,CAAA,CACzB,OAAOie,CAAc1Z,CAAAA,CAAAA,CAAE,CAAC,CAAGvE,CAAAA,CAAAA,CAAE,CAAC,CAAC,CACjC,CACA,IAAI4Y,CAAAA,CACJ,GAAI,CACFA,CAAAA,CAAM4E,EAAO,MAAOO,CAAAA,CAAAA,CAAU,EAAE,EAChCnF,CAAI,CAAA,IAAA,CAAKsF,CAAW,EACtB,CAAA,KAAa,CACX,OAAOpD,EAAAA,CAAK,KAAM1K,EAAoB,CACxC,CACA,IAAI+N,CAAAA,CAAW,EACXC,CAA0BN,CAAAA,CAAAA,CAAgB,SAAUzc,CAAK,CAAA,CAC3D,OAAOoc,CAAAA,CAAUpc,EAAKuX,CAAIuF,CAAAA,CAAQ,EAAE,CAAC,CAAC,EAAI,CAC5C,CAAA,CAAI,SAAU9c,CAAK,CAAA,CACjB,OAAOoc,CAAUpc,CAAAA,CAAAA,CAAKuX,EAAIuF,CAAQ,CAAA,CAAE,CAAC,CAAC,CAAA,EAAK,CAC7C,CAAA,CACIE,EAA0BR,CAAgB,CAAA,SAAUxc,EAAK,CAC3D,OAAOqc,EAAWrc,CAAKuX,CAAAA,CAAAA,CAAIuF,CAAQ,CAAE,CAAA,CAAC,CAAC,CAAI,CAAA,CAC7C,EAAI,SAAU9c,CAAAA,CAAK,CACjB,OAAOqc,CAAAA,CAAWrc,CAAKuX,CAAAA,CAAAA,CAAIuF,CAAQ,CAAE,CAAA,CAAC,CAAC,CAAK,EAAA,CAC9C,EACA,SAASG,CAAAA,CAAsBjd,EAAK,CAClC,OAAO,CAAC+c,CAAwB/c,CAAAA,CAAG,GAAK,CAACgd,CAAAA,CAAwBhd,CAAG,CACtE,CACA,IAAIkd,CAAAA,CAAWH,EACXjH,CAAI,CAAA,IAAI,KAAK,UAAW,CAAA,IAAA,CAAM,UAAY,CAC5C,OAAO4F,GAAYnE,CAAI,CAAA,CAAC,EAAE,CAAC,CAAA,CAAGA,EAAIA,CAAI,CAAA,MAAA,CAAS,CAAC,CAAE,CAAA,CAAC,EAAG,CAACiF,CAAAA,CAAe,CAACC,CAAa,CACtF,CAAC,CACD,CAAA,OAAA3G,EAAE,kBAAqB,CAAA,SAAUqF,EAAW,CACtCA,CAAAA,GAAc,QAChB+B,CAAWH,CAAAA,CAAAA,CACXH,EAAgBR,CAEhBc,GAAAA,CAAAA,CAAWF,EACXJ,CAAgBP,CAAAA,CAAAA,CAAAA,CAElB9E,CAAI,CAAA,IAAA,CAAKsF,CAAW,EACtB,CAAA,CACA/G,EAAE,aAAc,CAAA,SAAUP,EAAQC,CAASxL,CAAAA,EAAAA,CAAS,CAElD,IADIhK,IAAAA,EAAAA,CAAMuV,EAAO,GACV2H,CAAAA,CAAAA,CAASld,EAAG,CAEjB,EAAA,GADA,EAAE8c,CACEA,CAAAA,CAAAA,GAAavF,CAAI,CAAA,MAAA,CACnB,OAAA/B,CAAQxL,CAAAA,EAAO,EACR,CAGX,CAAA,CAAA,OAAIiT,EAAsBjd,EAAG,CAAA,CACpB,IACE4J,CAAM,CAAA,IAAA,CAAK5J,GAAKuX,CAAIuF,CAAAA,CAAQ,EAAE,CAAC,CAAC,IAAM,CAAKlT,EAAAA,CAAAA,CAAM,IAAK5J,CAAAA,EAAAA,CAAKuX,EAAIuF,CAAQ,CAAA,CAAE,CAAC,CAAC,CAAA,GAAM,GAG1FtH,CAAQ,CAAA,UAAY,CACdoH,CAAkBR,GAAAA,CAAAA,CAAW7G,EAAO,QAASgC,CAAAA,CAAAA,CAAIuF,CAAQ,CAAE,CAAA,CAAC,CAAC,CAAOvH,CAAAA,CAAAA,CAAO,QAASgC,CAAAA,CAAAA,CAAIuF,CAAQ,CAAE,CAAA,CAAC,CAAC,EAC1G,CAAC,EACM,CAEX,CAAA,CAAA,CAAC,EACMhH,CACT,CAAA,CACA+D,EAAY,SAAU,CAAA,eAAA,CAAkB,UAAY,CAClD,IAAItC,EAAMjT,EAAW,CAAA,KAAA,CAAMD,EAAe,CAAA,SAAS,EACnD,OAAKkT,CAAAA,CAAI,MAAM,SAAUtY,CAAAA,CAAG,CAC1B,OAAO,OAAOA,GAAM,QACtB,CAAC,EAGGsY,CAAI,CAAA,MAAA,GAAW,EAAUuC,EAAgB,CAAA,IAAI,EAC1C,IAAK,CAAA,UAAA,CAAWvC,CAAI,CAAA,GAAA,CAAI,SAAU2E,CAAK,CAAA,CAC5C,OAAO,CAACA,CAAAA,CAAKA,EAAMrN,EAAS,CAC9B,CAAC,CAAC,CAAA,CALO4K,GAAK,IAAM,CAAA,2CAA2C,CAMjE,CACOI,CAAAA,CACT,GACA,CAAA,SAASsD,EAA6B3O,CAAAA,CAAAA,CAAI,CACxC,OAAO6F,EAAAA,CAAqBwF,GAAY,SAAW,CAAA,SAAqBR,EAAOlI,CAAOiM,CAAAA,CAAAA,CAAc,CAkBlG,GAjBA,IAAA,CAAK,GAAK5O,CACV,CAAA,IAAA,CAAK,KAAO,CACV,KAAA,CAAO6K,EACP,KAAOlI,CAAAA,CAAAA,GAAU,MAAQ,IAAOA,CAAAA,CAAAA,CAChC,GAAIiM,CACN,CAAA,CACA,KAAK,IAAO,CAAA,IAAA,CAAK,WAAazN,EAC9B,CAAA,IAAA,CAAK,YAAc,SAAUzM,CAAAA,CAAGvE,EAAG,CACjC,OAAOgR,GAAIhR,CAAGuE,CAAAA,CAAC,CACjB,CACA,CAAA,IAAA,CAAK,IAAO,CAAA,SAAUA,EAAGvE,CAAG,CAAA,CAC1B,OAAOgR,EAAIzM,CAAAA,CAAAA,CAAGvE,CAAC,CAAI,CAAA,CAAA,CAAIuE,EAAIvE,CAC7B,CAAA,CACA,KAAK,IAAO,CAAA,SAAUuE,EAAGvE,CAAG,CAAA,CAC1B,OAAOgR,EAAIzM,CAAAA,CAAAA,CAAGvE,CAAC,CAAA,CAAI,EAAIuE,CAAIvE,CAAAA,CAC7B,EACA,IAAK,CAAA,YAAA,CAAe6P,EAAG,KAAM,CAAA,WAAA,CACzB,CAAC,IAAK,CAAA,YAAA,CAAc,MAAM,IAAI9I,EAAAA,CAAW,UAC/C,CAAC,CACH,CACA,SAAS2X,EAAAA,CAAmBpT,CAAQ,CAAA,CAClC,OAAO6C,EAAK,CAAA,SAAUwQ,EAAO,CAC3B,OAAAC,GAAeD,CAAK,CAAA,CACpBrT,EAAOqT,CAAM,CAAA,MAAA,CAAO,KAAK,CAClB,CAAA,CAAA,CACT,CAAC,CACH,CACA,SAASC,EAAeD,CAAAA,CAAAA,CAAO,CACzBA,CAAAA,CAAM,iBAAiBA,CAAM,CAAA,eAAA,GAC7BA,CAAM,CAAA,cAAA,EAAgBA,EAAM,cAAe,GACjD,CACA,IAAIE,EAAAA,CAAmC,iBACnCC,EAAiC,CAAA,oBAAA,CACjCC,GAAehK,EAAO,CAAA,IAAA,CAAM8J,EAAgC,CAC5DG,CAAAA,EAAAA,CAAc,UAAY,CAC5B,SAASA,CAAc,EAAA,EACvB,OAAAA,CAAAA,CAAY,UAAU,KAAQ,CAAA,UAAY,CACxC,OAAAlc,EAAAA,CAAO,CAACsH,EAAI,CAAA,MAAM,EAClB,EAAE,IAAA,CAAK,UACH,IAAK,CAAA,SAAA,GAAc,CAAK,EAAA,CAACA,GAAI,MAAQA,GAAAA,EAAAA,CAAI,aAAe,IACrD,CAAA,CAAA,IACT,EACA4U,CAAY,CAAA,SAAA,CAAU,QAAU,UAAY,CAE1C,GADAlc,EAAO,CAAA,CAACsH,GAAI,MAAM,CAAA,CACd,EAAE,IAAK,CAAA,SAAA,GAAc,CAEvB,CAAA,IADKA,GAAI,MAAQA,GAAAA,EAAAA,CAAI,aAAe,IAC7B,CAAA,CAAA,IAAA,CAAK,cAAc,MAAS,CAAA,CAAA,EAAK,CAAC,IAAK,CAAA,OAAA,IAAW,CACvD,IAAI6U,EAAW,IAAK,CAAA,aAAA,CAAc,OAClC,CAAA,GAAI,CACF1S,EAAAA,CAAO0S,EAAS,CAAC,CAAA,CAAGA,EAAS,CAAC,CAAC,EACjC,CAAY,KAAA,EACd,CAEF,OAAO,IACT,CACAD,CAAAA,CAAAA,CAAY,UAAU,OAAU,CAAA,UAAY,CAC1C,OAAO,IAAA,CAAK,SAAa5U,EAAAA,EAAAA,CAAI,eAAiB,IAChD,CAAA,CACA4U,EAAY,SAAU,CAAA,MAAA,CAAS,SAAUE,CAAU,CAAA,CACjD,IAAIjU,CAAQ,CAAA,IAAA,CACZ,GAAI,CAAC,IAAA,CAAK,KAAM,OAAO,IAAA,CACvB,IAAIkU,CAAQ,CAAA,IAAA,CAAK,EAAG,CAAA,KAAA,CAChBC,EAAc,IAAK,CAAA,EAAA,CAAG,OAAO,WAEjC,CAAA,GADAtc,GAAO,CAAC,IAAA,CAAK,QAAQ,CACjB,CAAA,CAACoc,GAAY,CAACC,CAAAA,CAChB,OAAQC,CAAeA,EAAAA,CAAAA,CAAY,MACjC,IAAK,qBACH,CAAA,MAAM,IAAIrY,EAAW,CAAA,cAAA,CAAeqY,CAAW,CACjD,CAAA,IAAK,kBACH,MAAM,IAAIrY,GAAW,UAAWqY,CAAAA,CAAAA,CAAY,QAASA,CAAW,CAAA,CAClE,QACE,MAAM,IAAIrY,GAAW,UAAWqY,CAAAA,CAAW,CAC/C,CAEF,GAAI,CAAC,IAAA,CAAK,OAAQ,MAAM,IAAIrY,GAAW,mBACvC,CAAA,OAAAjE,GAAO,IAAK,CAAA,WAAA,CAAY,SAAW,IAAI,CAAA,CACvCoc,EAAW,IAAK,CAAA,QAAA,CAAWA,IAAa,IAAK,CAAA,EAAA,CAAG,IAAO,CAAA,IAAA,CAAK,GAAG,IAAK,CAAA,WAAA,CAAY,KAAK,UAAY,CAAA,IAAA,CAAK,KAAM,CAC1G,UAAA,CAAY,KAAK,2BACnB,CAAC,EAAIC,CAAM,CAAA,WAAA,CAAY,KAAK,UAAY,CAAA,IAAA,CAAK,KAAM,CACjD,UAAA,CAAY,IAAK,CAAA,2BACnB,CAAC,CACDD,CAAAA,CAAAA,CAAAA,CAAS,QAAU/Q,EAAK,CAAA,SAAUkR,EAAI,CACpCT,EAAAA,CAAeS,CAAE,CACjBpU,CAAAA,CAAAA,CAAM,QAAQiU,CAAS,CAAA,KAAK,EAC9B,CAAC,CAAA,CACDA,EAAS,OAAU/Q,CAAAA,EAAAA,CAAK,SAAUkR,CAAAA,CAAI,CACpCT,EAAeS,CAAAA,CAAE,EACjBpU,CAAM,CAAA,MAAA,EAAUA,EAAM,OAAQ,CAAA,IAAIlE,GAAW,KAAMmY,CAAAA,CAAAA,CAAS,KAAK,CAAC,CAAA,CAClEjU,EAAM,MAAS,CAAA,CAAA,CAAA,CACfA,EAAM,EAAG,CAAA,OAAO,EAAE,IAAKoU,CAAAA,CAAE,EAC3B,CAAC,CAAA,CACDH,EAAS,UAAa/Q,CAAAA,EAAAA,CAAK,UAAY,CACrClD,CAAAA,CAAM,OAAS,CACfA,CAAAA,CAAAA,CAAAA,CAAM,UACF,CAAA,cAAA,GAAkBiU,GACpBH,EAAa,CAAA,cAAA,CAAe,KAAKG,CAAS,CAAA,YAAe,EAE7D,CAAC,EACM,IACT,CAAA,CACAF,EAAY,SAAU,CAAA,QAAA,CAAW,SAAUlP,CAAM9M,CAAAA,CAAAA,CAAIsc,EAAY,CAC/D,IAAIrU,EAAQ,IACZ,CAAA,GAAI6E,IAAS,WAAe,EAAA,IAAA,CAAK,OAAS,WAAa,CAAA,OAAOb,EAAU,CAAA,IAAIlI,GAAW,QAAS,CAAA,yBAAyB,CAAC,CAC1H,CAAA,GAAI,CAAC,IAAK,CAAA,MAAA,CAAQ,OAAOkI,EAAU,CAAA,IAAIlI,GAAW,mBAAqB,CAAA,CACvE,GAAI,IAAK,CAAA,OAAA,GACP,OAAO,IAAIwD,EAAa,CAAA,SAAUc,EAASC,CAAQ,CAAA,CACjDL,EAAM,aAAc,CAAA,IAAA,CAAK,CAAC,UAAY,CACpCA,EAAM,QAAS6E,CAAAA,CAAAA,CAAM9M,EAAIsc,CAAU,CAAA,CAAE,KAAKjU,CAASC,CAAAA,CAAM,EAC3D,CAAGlB,CAAAA,EAAG,CAAC,EACT,CAAC,CACI,CAAA,GAAIkV,EACT,OAAOhT,EAAAA,CAAS,UAAY,CAC1B,IAAIrM,EAAI,IAAIsK,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CAClDL,CAAM,CAAA,KAAA,GACN,IAAIxH,CAAAA,CAAKT,CAAGqI,CAAAA,CAAAA,CAASC,EAAQL,CAAK,CAAA,CAC9BxH,GAAMA,CAAG,CAAA,IAAA,EAAMA,EAAG,IAAK4H,CAAAA,CAAAA,CAASC,CAAM,EAC5C,CAAC,EACD,OAAArL,CAAAA,CAAE,QAAQ,UAAY,CACpB,OAAOgL,CAAM,CAAA,OAAA,EACf,CAAC,EACDhL,CAAE,CAAA,IAAA,CAAO,GACFA,CACT,CAAC,EAED,IAAI,CAAA,CAAI,IAAIsK,EAAa,CAAA,SAAUc,EAASC,CAAQ,CAAA,CAClD,IAAI7H,CAAKT,CAAAA,CAAAA,CAAGqI,EAASC,CAAQL,CAAAA,CAAK,CAC9BxH,CAAAA,CAAAA,EAAMA,EAAG,IAAMA,EAAAA,CAAAA,CAAG,KAAK4H,CAASC,CAAAA,CAAM,EAC5C,CAAC,CAAA,CACD,SAAE,IAAO,CAAA,CAAA,CAAA,CACF,CAEX,CACA0T,CAAAA,CAAAA,CAAY,UAAU,KAAQ,CAAA,UAAY,CACxC,OAAO,IAAA,CAAK,OAAS,IAAK,CAAA,MAAA,CAAO,OAAU,CAAA,IAC7C,EACAA,CAAY,CAAA,SAAA,CAAU,QAAU,SAAUO,CAAAA,CAAa,CACrD,IAAIC,CAAAA,CAAO,KAAK,KAAM,EAAA,CAClB1S,EAAUvC,EAAa,CAAA,OAAA,CAAQgV,CAAW,CAC9C,CAAA,GAAIC,CAAK,CAAA,WAAA,CACPA,EAAK,WAAcA,CAAAA,CAAAA,CAAK,YAAY,IAAK,CAAA,UAAY,CACnD,OAAO1S,CACT,CAAC,CACI,CAAA,KAAA,CACL0S,EAAK,WAAc1S,CAAAA,CAAAA,CACnB0S,EAAK,aAAgB,CAAA,GACrB,IAAIC,CAAAA,CAAQD,CAAK,CAAA,QAAA,CAAS,YAAYA,CAAK,CAAA,UAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CACvD,SAASE,CAAO,EAAA,CAEf,IADA,EAAEF,CAAAA,CAAK,WACAA,CAAK,CAAA,aAAA,CAAc,QAAQA,CAAK,CAAA,aAAA,CAAc,OAAQ,EAAA,CACzDA,CAAK,CAAA,WAAA,GAAaC,EAAM,GAAI,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,SAAYC,CAAAA,CAAAA,EACzD,KACF,CACA,IAAIC,CAAqBH,CAAAA,CAAAA,CAAK,YAC9B,OAAO,IAAIjV,GAAa,SAAUc,CAAAA,CAASC,EAAQ,CACjDwB,CAAAA,CAAQ,IAAK,CAAA,SAAU7E,EAAK,CAC1B,OAAOuX,EAAK,aAAc,CAAA,IAAA,CAAKrR,GAAK9C,CAAQ,CAAA,IAAA,CAAK,KAAMpD,CAAG,CAAC,CAAC,CAC9D,CAAA,CAAG,SAAU2D,CAAK,CAAA,CAChB,OAAO4T,CAAK,CAAA,aAAA,CAAc,IAAKrR,CAAAA,EAAAA,CAAK7C,EAAO,IAAK,CAAA,IAAA,CAAMM,CAAG,CAAC,CAAC,CAC7D,CAAC,CAAA,CAAE,QAAQ,UAAY,CACjB4T,EAAK,WAAgBG,GAAAA,CAAAA,GACvBH,EAAK,WAAc,CAAA,IAAA,EAEvB,CAAC,EACH,CAAC,CACH,CAAA,CACAR,EAAY,SAAU,CAAA,KAAA,CAAQ,UAAY,CACpC,IAAA,CAAK,SACP,IAAK,CAAA,MAAA,CAAS,GACV,IAAK,CAAA,QAAA,EAAU,KAAK,QAAS,CAAA,KAAA,GACjC,IAAK,CAAA,OAAA,CAAQ,IAAIjY,EAAW,CAAA,KAAO,CAEvC,EAAA,CAAA,CACAiY,EAAY,SAAU,CAAA,KAAA,CAAQ,SAAUrN,CAAW,CAAA,CACjD,IAAIiO,CAAiB,CAAA,IAAA,CAAK,kBAAoB,IAAK,CAAA,eAAA,CAAkB,EACrE,CAAA,CAAA,GAAIpe,EAAOoe,CAAgBjO,CAAAA,CAAS,EAAG,OAAOiO,CAAAA,CAAejO,CAAS,CACtE,CAAA,IAAIkE,EAAc,IAAK,CAAA,MAAA,CAAOlE,CAAS,CACvC,CAAA,GAAI,CAACkE,CACH,CAAA,MAAM,IAAI9O,EAAW,CAAA,QAAA,CAAS,SAAW4K,CAAY,CAAA,0BAA0B,EAEjF,IAAIkO,CAAAA,CAAwB,IAAI,IAAK,CAAA,EAAA,CAAG,KAAMlO,CAAAA,CAAAA,CAAWkE,EAAa,IAAI,CAAA,CAC1E,OAAAgK,CAAsB,CAAA,IAAA,CAAO,KAAK,EAAG,CAAA,IAAA,CAAK,MAAMlO,CAAS,CAAA,CACzDiO,EAAejO,CAAS,CAAA,CAAIkO,EACrBA,CACT,CAAA,CACOb,CACT,CAAE,EAAA,CACF,SAASc,EAAAA,CAA6BjQ,EAAI,CACxC,OAAO6F,GAAqBsJ,EAAY,CAAA,SAAA,CAAW,SAAqBlP,CAAMC,CAAAA,CAAAA,CAAYgQ,EAAUC,CAA6BlR,CAAAA,CAAAA,CAAQ,CACvI,IAAI7D,CAAAA,CAAQ,KACZ,IAAK,CAAA,EAAA,CAAK4E,EACV,IAAK,CAAA,IAAA,CAAOC,CACZ,CAAA,IAAA,CAAK,WAAaC,CAClB,CAAA,IAAA,CAAK,OAASgQ,CACd,CAAA,IAAA,CAAK,4BAA8BC,CACnC,CAAA,IAAA,CAAK,SAAW,IAChB,CAAA,IAAA,CAAK,GAAKjL,EAAO,CAAA,IAAA,CAAM,WAAY,OAAS,CAAA,OAAO,EACnD,IAAK,CAAA,MAAA,CAASjG,CAAU,EAAA,IAAA,CACxB,KAAK,MAAS,CAAA,CAAA,CAAA,CACd,KAAK,SAAY,CAAA,CAAA,CACjB,KAAK,aAAgB,CAAA,GACrB,IAAK,CAAA,QAAA,CAAW,KAChB,IAAK,CAAA,OAAA,CAAU,KACf,IAAK,CAAA,WAAA,CAAc,KACnB,IAAK,CAAA,aAAA,CAAgB,IACrB,CAAA,IAAA,CAAK,WAAa,CAClB,CAAA,IAAA,CAAK,YAAc,IAAIvE,EAAAA,CAAa,SAAUc,CAASC,CAAAA,CAAAA,CAAQ,CAC7DL,CAAM,CAAA,QAAA,CAAWI,EACjBJ,CAAM,CAAA,OAAA,CAAUK,EAClB,CAAC,CAAA,CACD,KAAK,WAAY,CAAA,IAAA,CAAK,UAAY,CAChCL,EAAM,MAAS,CAAA,CAAA,CAAA,CACfA,EAAM,EAAG,CAAA,QAAA,CAAS,OACpB,CAAA,CAAG,SAAU4C,CAAG,CAAA,CACd,IAAIoS,CAAYhV,CAAAA,CAAAA,CAAM,OACtB,OAAAA,CAAAA,CAAM,OAAS,CACfA,CAAAA,CAAAA,CAAAA,CAAM,EAAG,CAAA,KAAA,CAAM,KAAK4C,CAAC,CAAA,CACrB5C,EAAM,MAASA,CAAAA,CAAAA,CAAM,OAAO,OAAQ4C,CAAAA,CAAC,EAAIoS,CAAahV,EAAAA,CAAAA,CAAM,UAAYA,CAAM,CAAA,QAAA,CAAS,OAChFgE,CAAAA,EAAAA,CAAUpB,CAAC,CACpB,CAAC,EACH,CAAC,CACH,CACA,SAASqS,GAAgB9Z,CAAM5C,CAAAA,CAAAA,CAAS2c,EAAQC,CAAO9M,CAAAA,CAAAA,CAAM+M,EAAUC,CAAW,CAAA,CAChF,OAAO,CACL,IAAA,CAAMla,EACN,OAAS5C,CAAAA,CAAAA,CACT,OAAQ2c,CACR,CAAA,KAAA,CAAOC,CACP,CAAA,IAAA,CAAM9M,EACN,QAAU+M,CAAAA,CAAAA,CACV,KAAMF,CAAU,EAAA,CAACG,EAAY,GAAM,CAAA,EAAA,GAAOF,EAAQ,GAAM,CAAA,EAAA,CAAA,EAAO9M,EAAO,IAAO,CAAA,EAAA,CAAA,CAAMiN,GAAgB/c,CAAO,CAC5G,CACF,CACA,SAAS+c,EAAgB/c,CAAAA,CAAAA,CAAS,CAChC,OAAO,OAAOA,GAAY,QAAWA,CAAAA,CAAAA,CAAUA,EAAU,GAAM,CAAA,GAAG,IAAK,CAAA,IAAA,CAAKA,EAAS,GAAG,CAAA,CAAI,IAAM,EACpG,CACA,SAASgd,EAAkBpa,CAAAA,CAAAA,CAAMqa,CAASC,CAAAA,CAAAA,CAAS,CACjD,OAAO,CACL,KAAMta,CACN,CAAA,OAAA,CAASqa,EACT,OAASC,CAAAA,CAAAA,CACT,YAAa,IACb,CAAA,SAAA,CAAWzd,GAAcyd,CAAS,CAAA,SAAUlO,EAAO,CACjD,OAAO,CAACA,CAAM,CAAA,IAAA,CAAMA,CAAK,CAC3B,CAAC,CACH,CACF,CACA,SAASmO,EAAAA,CAAoB5Q,EAAY,CACvC,OAAOA,EAAW,MAAW,GAAA,CAAA,CAAIA,EAAW,CAAC,CAAA,CAAIA,CACnD,CACA,IAAI6Q,GAAY,SAAUC,CAAAA,CAAa,CACrC,GAAI,CACF,OAAAA,CAAAA,CAAY,KAAK,CAAC,EAAE,CAAC,CAAA,CACrBD,GAAY,UAAY,CACtB,OAAO,CAAC,EAAE,CACZ,CAAA,CACO,CAAC,EAAE,CACZ,CAAA,KAAY,CACV,OAAAA,EAAAA,CAAY,UAAY,CACtB,OAAO1Q,EACT,CACOA,CAAAA,EACT,CACF,CACA,CAAA,SAAS4Q,GAAgBtd,CAAS,CAAA,CAChC,OAAIA,CAAW,EAAA,IAAA,CACN,UAAY,EAEnB,CACS,OAAOA,CAAAA,EAAY,SACrBud,EAA0Bvd,CAAAA,CAAO,EAEjC,SAAUrC,CAAAA,CAAK,CACpB,OAAOoC,EAAAA,CAAapC,EAAKqC,CAAO,CAClC,CAEJ,CACA,SAASud,GAA0Bvd,CAAS,CAAA,CAC1C,IAAIwd,CAAQxd,CAAAA,CAAAA,CAAQ,MAAM,GAAG,CAAA,CAC7B,OAAIwd,CAAM,CAAA,MAAA,GAAW,EACZ,SAAU7f,CAAAA,CAAK,CACpB,OAAOA,CAAAA,CAAIqC,CAAO,CACpB,CAAA,CAEO,SAAUrC,CAAK,CAAA,CACpB,OAAOoC,EAAapC,CAAAA,CAAAA,CAAKqC,CAAO,CAClC,CAEJ,CACA,SAASyd,GAASrb,CAAW,CAAA,CAC3B,OAAO,EAAC,CAAE,MAAM,IAAKA,CAAAA,CAAS,CAChC,CACA,IAAIsb,GAAc,CAClB,CAAA,SAASC,GAAgB3d,CAAS,CAAA,CAChC,OAAOA,CAAW,EAAA,IAAA,CAAO,KAAQ,CAAA,OAAOA,GAAY,QAAWA,CAAAA,CAAAA,CAAU,IAAI,MAAOA,CAAAA,CAAAA,CAAQ,KAAK,GAAG,CAAA,CAAG,GAAG,CAC5G,CACA,SAAS4d,EAAavR,CAAAA,CAAAA,CAAIgR,EAAaQ,CAAU,CAAA,CAC/C,SAASC,CAAczR,CAAAA,CAAAA,CAAIG,CAAO,CAAA,CAChC,IAAIuR,CAASN,CAAAA,EAAAA,CAASpR,EAAG,gBAAgB,CAAA,CACzC,OAAO,CACL,MAAA,CAAQ,CACN,IAAMA,CAAAA,CAAAA,CAAG,KACT,MAAQ0R,CAAAA,CAAAA,CAAO,IAAI,SAAU7G,CAAAA,CAAO,CAClC,OAAO1K,CAAAA,CAAM,WAAY0K,CAAAA,CAAK,CAChC,CAAC,CAAA,CAAE,IAAI,SAAU+E,CAAAA,CAAO,CACtB,IAAIjc,CAAAA,CAAUic,EAAM,OAClB+B,CAAAA,CAAAA,CAAgB/B,EAAM,aACpBY,CAAAA,CAAAA,CAAWpf,EAAQuC,CAAO,CAAA,CAC1B0V,EAAW1V,CAAW,EAAA,IAAA,CACtBie,CAAiB,CAAA,GACjBre,CAAS,CAAA,CACX,KAAMqc,CAAM,CAAA,IAAA,CACZ,WAAY,CACV,IAAA,CAAM,KACN,YAAc,CAAA,CAAA,CAAA,CACd,SAAUvG,CACV,CAAA,QAAA,CAAUmH,EACV,OAAS7c,CAAAA,CAAAA,CACT,cAAege,CACf,CAAA,MAAA,CAAQ,CACR,CAAA,CAAA,UAAA,CAAYV,GAAgBtd,CAAO,CACrC,EACA,OAASyd,CAAAA,EAAAA,CAASxB,EAAM,UAAU,CAAA,CAAE,IAAI,SAAU9G,CAAAA,CAAW,CAC3D,OAAO8G,CAAAA,CAAM,MAAM9G,CAAS,CAC9B,CAAC,CAAE,CAAA,GAAA,CAAI,SAAUnG,CAAAA,CAAO,CACtB,IAAIpM,CAAAA,CAAOoM,EAAM,IACf2N,CAAAA,EAAAA,CAAS3N,EAAM,MACfkP,CAAAA,EAAAA,CAAalP,EAAM,UACnBhP,CAAAA,EAAAA,CAAUgP,EAAM,OACd6N,CAAAA,EAAAA,CAAWpf,EAAQuC,EAAO,CAAA,CAC1BJ,GAAS,CACX,IAAA,CAAMgD,EACN,QAAUia,CAAAA,EAAAA,CACV,QAAS7c,EACT,CAAA,MAAA,CAAQ2c,GACR,UAAYuB,CAAAA,EAAAA,CACZ,WAAYZ,EAAgBtd,CAAAA,EAAO,CACrC,CACA,CAAA,OAAAie,EAAeN,EAAgB3d,CAAAA,EAAO,CAAC,CAAIJ,CAAAA,EAAAA,CACpCA,EACT,CAAC,CAAA,CACD,iBAAmB,CAAA,SAAUI,EAAS,CACpC,OAAOie,EAAeN,EAAgB3d,CAAAA,CAAO,CAAC,CAChD,CACF,EACA,OAAAie,CAAAA,CAAe,KAAK,CAAIre,CAAAA,CAAAA,CAAO,WAC3BI,CAAW,EAAA,IAAA,GACbie,EAAeN,EAAgB3d,CAAAA,CAAO,CAAC,CAAA,CAAIJ,EAAO,UAE7CA,CAAAA,CAAAA,CACT,CAAC,CACH,CAAA,CACA,UAAWme,CAAO,CAAA,MAAA,CAAS,GAAK,QAAYvR,GAAAA,CAAAA,CAAM,YAAYuR,CAAO,CAAA,CAAC,CAAC,CAAK,EAAA,EAAE,OAAO,SAAc,CAAA,GAAA,EAAe,QAAS,CAAA,IAAA,CAAK,UAAU,SAAS,CAAA,EAAK,CAAC,mBAAoB,CAAA,IAAA,CAAK,UAAU,SAAS,CAAA,EAAK,EAAG,CAAA,MAAA,CAAO,UAAU,SAAU,CAAA,KAAA,CAAM,eAAe,CAAC,CAAA,CAAE,CAAC,CAAI,CAAA,GAAA,CACvQ,CACF,CACA,SAASI,CAAgBzH,CAAAA,CAAAA,CAAO,CAC9B,GAAIA,CAAAA,CAAM,OAAS,CAAG,CAAA,OAAO,KAC7B,GAAIA,CAAAA,CAAM,OAAS,CAAG,CAAA,MAAM,IAAI,KAAM,CAAA,0CAA0C,EAChF,IAAIkC,CAAAA,CAAQlC,CAAM,CAAA,KAAA,CAChBiC,EAAQjC,CAAM,CAAA,KAAA,CACdiD,EAAYjD,CAAM,CAAA,SAAA,CAClBkD,EAAYlD,CAAM,CAAA,SAAA,CAChB0H,EAAWxF,CAAU,GAAA,KAAA,CAAA,CAAYD,IAAU,KAAY,CAAA,CAAA,IAAA,CAAO0E,EAAY,UAAW1E,CAAAA,CAAAA,CAAO,CAAC,CAACiB,CAAS,CAAIjB,CAAAA,CAAAA,GAAU,OAAY0E,CAAY,CAAA,UAAA,CAAWzE,EAAO,CAAC,CAACe,CAAS,CAAI0D,CAAAA,CAAAA,CAAY,MAAMzE,CAAOD,CAAAA,CAAAA,CAAO,CAAC,CAACgB,CAAAA,CAAW,CAAC,CAACC,CAAS,EAC1O,OAAOwE,CACT,CACA,SAASC,EAAkBhM,CAAa,CAAA,CACtC,IAAIlE,CAAYkE,CAAAA,CAAAA,CAAY,KAC5B,SAASiM,CAAAA,CAAOzP,EAAI,CAClB,IAAIrC,EAAQqC,CAAG,CAAA,KAAA,CACb3G,EAAO2G,CAAG,CAAA,IAAA,CACVrR,EAAOqR,CAAG,CAAA,IAAA,CACVlG,EAASkG,CAAG,CAAA,MAAA,CACZ6H,EAAQ7H,CAAG,CAAA,KAAA,CACb,OAAO,IAAI,OAAA,CAAQ,SAAUhH,CAASC,CAAAA,EAAAA,CAAQ,CAC5CD,CAAU8C,CAAAA,EAAAA,CAAK9C,CAAO,CACtB,CAAA,IAAIoU,GAAQzP,CAAM,CAAA,WAAA,CAAY2B,CAAS,CACnCuH,CAAAA,EAAAA,CAAWuG,EAAM,CAAA,OAAA,EAAW,KAC5BsC,EAAarW,CAAAA,CAAAA,GAAS,OAASA,CAAS,GAAA,KAAA,CAC5C,GAAI,CAACqW,EAAAA,EAAcrW,IAAS,QAAYA,EAAAA,CAAAA,GAAS,cAAe,MAAM,IAAI,MAAM,0BAA6BA,CAAAA,CAAI,EACjH,IAAIkQ,EAAAA,CAAAA,CAAU5a,CAAQmL,EAAAA,CAAAA,EAAU,CAC9B,MAAQ,CAAA,CACV,GAAG,MACH,CAAA,GAAInL,GAAQmL,CAAUnL,EAAAA,CAAAA,CAAK,SAAWmL,CAAO,CAAA,MAAA,CAC3C,MAAM,IAAI,KAAA,CAAM,+DAA+D,CAEjF,CAAA,GAAIyP,KAAW,CAAG,CAAA,OAAOvQ,CAAQ,CAAA,CAC/B,YAAa,CACb,CAAA,QAAA,CAAU,EACV,CAAA,OAAA,CAAS,EACT,CAAA,UAAA,CAAY,MACd,CAAC,CAAA,CACD,IAAI2W,EACAC,CAAAA,EAAAA,CAAO,EACP1b,CAAAA,EAAAA,CAAW,EACXwN,CAAAA,EAAAA,CAAc,CACdmO,CAAAA,EAAAA,CAAe,SAAUvD,EAAO,CAAA,CAClC,EAAE5K,EACF6K,CAAAA,EAAAA,CAAeD,EAAK,EACtB,CAAA,CACA,GAAIjT,CAAS,GAAA,aAAA,CAAe,CAC1B,GAAIwO,CAAAA,CAAM,OAAS,CAAG,CAAA,OAAO7O,EAAQ,CACnC,WAAA,CAAa0I,EACb,CAAA,QAAA,CAAUxN,GACV,OAAS,CAAA,GACT,UAAY,CAAA,KAAA,CACd,CAAC,CACG2T,CAAAA,CAAAA,CAAM,OAAS,CAAG+H,CAAAA,EAAAA,CAAK,KAAKD,EAAMvC,CAAAA,EAAAA,CAAM,OAAO,CAAA,CAAOwC,GAAK,IAAKD,CAAAA,EAAAA,CAAMvC,EAAM,CAAA,MAAA,CAAOkC,EAAgBzH,CAAK,CAAC,CAAC,EAChH,CAAA,KAAO,CACL,IAAI7H,EAAAA,CAAK0P,GAAa7I,EAAW,CAAA,CAAC/M,EAAQnL,CAAI,CAAA,CAAI,CAACmL,CAAQ,CAAA,IAAI,EAAI,CAACnL,CAAAA,CAAM,IAAI,CAAA,CAC5EmhB,GAAQ9P,EAAG,CAAA,CAAC,EACZ+P,EAAQ/P,CAAAA,EAAAA,CAAG,CAAC,CACd,CAAA,GAAI0P,GACF,IAASxhB,IAAAA,EAAAA,CAAI,EAAGA,EAAIqb,CAAAA,EAAAA,CAAQ,EAAErb,EAC5B0hB,CAAAA,EAAAA,CAAK,KAAKD,EAAMI,CAAAA,EAAAA,EAASA,EAAM7hB,CAAAA,EAAC,IAAM,KAAYkf,CAAAA,CAAAA,EAAAA,CAAM/T,CAAI,CAAEyW,CAAAA,EAAAA,CAAM5hB,EAAC,CAAG6hB,CAAAA,EAAAA,CAAM7hB,EAAC,CAAC,CAAA,CAAIkf,GAAM/T,CAAI,CAAA,CAAEyW,GAAM5hB,EAAC,CAAC,CAAC,CACzGyhB,CAAAA,EAAAA,CAAI,OAAUE,CAAAA,EAAAA,CAAAA,aAGP3hB,EAAI,CAAA,CAAA,CAAGA,GAAIqb,EAAQ,CAAA,EAAErb,GAC5B0hB,EAAK,CAAA,IAAA,CAAKD,GAAMvC,EAAM/T,CAAAA,CAAI,EAAEyW,EAAM5hB,CAAAA,EAAC,CAAC,CAAC,CAAA,CACrCyhB,GAAI,OAAUE,CAAAA,GAGpB,CACA,IAAIG,GAAO,SAAU1D,EAAAA,CAAO,CAC1B,IAAInL,EAAAA,CAAamL,GAAM,MAAO,CAAA,MAAA,CAC9BsD,GAAK,OAAQ,CAAA,SAAUD,GAAKzhB,EAAG,CAAA,CAC7B,OAAOyhB,EAAI,CAAA,KAAA,EAAS,OAASzb,EAAShG,CAAAA,EAAC,CAAIyhB,CAAAA,EAAAA,CAAI,MACjD,CAAC,CAAA,CACD3W,EAAQ,CACN,WAAA,CAAa0I,GACb,QAAUxN,CAAAA,EAAAA,CACV,QAASmF,CAAS,GAAA,QAAA,CAAW1K,EAAOihB,EAAK,CAAA,GAAA,CAAI,SAAUD,EAAK,CAAA,CAC1D,OAAOA,EAAI,CAAA,MACb,CAAC,CAAA,CACD,WAAYxO,EACd,CAAC,EACH,CACAwO,CAAAA,EAAAA,CAAI,QAAU,SAAUrD,EAAAA,CAAO,CAC7BuD,EAAavD,CAAAA,EAAK,EAClB0D,EAAK1D,CAAAA,EAAK,EACZ,CACAqD,CAAAA,EAAAA,CAAI,UAAYK,GAClB,CAAC,CACH,CACA,SAAS9L,CAAWlE,CAAAA,CAAAA,CAAI,CACtB,IAAIrC,CAAAA,CAAQqC,EAAG,KACblG,CAAAA,CAAAA,CAASkG,EAAG,MACZiQ,CAAAA,CAAAA,CAAQjQ,EAAG,KACXkQ,CAAAA,CAAAA,CAAUlQ,EAAG,OACb8N,CAAAA,CAAAA,CAAS9N,EAAG,MACd,CAAA,OAAO,IAAI,OAAA,CAAQ,SAAUhH,CAASC,CAAAA,EAAAA,CAAQ,CAC5CD,CAAU8C,CAAAA,EAAAA,CAAK9C,CAAO,CACtB,CAAA,IAAImH,GAAQ8P,CAAM,CAAA,KAAA,CAChBpI,GAAQoI,CAAM,CAAA,KAAA,CACZ7C,GAAQzP,CAAM,CAAA,WAAA,CAAY2B,CAAS,CACnC6Q,CAAAA,EAAAA,CAAShQ,EAAM,CAAA,YAAA,CAAeiN,GAAQA,EAAM,CAAA,KAAA,CAAMjN,GAAM,IAAI,CAAA,CAC5DgK,GAAY+F,CAAUpC,CAAAA,CAAAA,CAAS,aAAe,MAASA,CAAAA,CAAAA,CAAS,aAAe,MAC/E6B,CAAAA,EAAAA,CAAM7V,GAAU,EAAE,eAAA,GAAmBqW,IAAUA,EAAO,CAAA,UAAA,CAAWb,EAAgBzH,EAAK,CAAA,CAAGsC,EAAS,CAAIgG,CAAAA,EAAAA,CAAO,cAAcb,CAAgBzH,CAAAA,EAAK,EAAGsC,EAAS,CAAA,CAChKwF,GAAI,OAAUtD,CAAAA,EAAAA,CAAmBpT,EAAM,CACvC0W,CAAAA,EAAAA,CAAI,UAAY7T,EAAK,CAAA,SAAUkR,GAAI,CACjC,IAAIzI,EAASoL,CAAAA,EAAAA,CAAI,OACjB,GAAI,CAACpL,GAAQ,CACXvL,CAAAA,CAAQ,IAAI,CACZ,CAAA,MACF,CACAuL,EAAO,CAAA,KAAA,CAAQ,EAAEsK,EACjBtK,CAAAA,EAAAA,CAAO,KAAO,CACd,CAAA,CAAA,IAAI6L,GAAkB7L,EAAO,CAAA,QAAA,CAAS,IAAKA,CAAAA,EAAM,EAC7C8L,EAA4B9L,CAAAA,EAAAA,CAAO,mBACnC8L,EAA2BA,GAAAA,EAAAA,CAA4BA,GAA0B,IAAK9L,CAAAA,EAAM,GAChG,IAAI+L,EAAAA,CAAiB/L,GAAO,OAAQ,CAAA,IAAA,CAAKA,EAAM,CAC3CgM,CAAAA,EAAAA,CAA4B,UAAY,CAC1C,MAAM,IAAI,KAAA,CAAM,oBAAoB,CACtC,CAAA,CACIC,GAAyB,UAAY,CACvC,MAAM,IAAI,KAAA,CAAM,oBAAoB,CACtC,CAAA,CACAjM,GAAO,KAAQ5G,CAAAA,CAAAA,CACf4G,GAAO,IAAOA,CAAAA,EAAAA,CAAO,SAAWA,EAAO,CAAA,kBAAA,CAAqBA,EAAO,CAAA,OAAA,CAAUgM,GAC7EhM,EAAO,CAAA,IAAA,CAAOzI,GAAK7C,EAAM,CAAA,CACzBsL,GAAO,IAAO,CAAA,UAAY,CACxB,IAAI3L,EAAAA,CAAQ,KACR6X,EAAS,CAAA,CAAA,CACb,OAAO,IAAK,CAAA,KAAA,CAAM,UAAY,CAC5B,OAAOA,EAAW7X,EAAAA,CAAAA,EAAAA,CAAM,UAAaA,CAAAA,EAAAA,CAAM,MAC7C,CAAC,EAAE,IAAK,CAAA,UAAY,CAClB,OAAOA,EACT,CAAC,CACH,CAAA,CACA2L,GAAO,KAAQ,CAAA,SAAUhN,GAAU,CACjC,IAAImZ,EAAmB,CAAA,IAAI,QAAQ,SAAUC,EAAAA,CAAkBC,GAAiB,CAC9ED,EAAAA,CAAmB7U,GAAK6U,EAAgB,CAAA,CACxChB,GAAI,OAAUtD,CAAAA,EAAAA,CAAmBuE,EAAe,CAChDrM,CAAAA,EAAAA,CAAO,KAAOqM,EACdrM,CAAAA,EAAAA,CAAO,KAAO,SAAU9S,EAAAA,CAAO,CAC7B8S,EAAAA,CAAO,KAAOA,EAAO,CAAA,QAAA,CAAWA,GAAO,kBAAqBA,CAAAA,EAAAA,CAAO,QAAUiM,EAC7EG,CAAAA,EAAAA,CAAiBlf,EAAK,EACxB,EACF,CAAC,CACGof,CAAAA,EAAAA,CAAkB,UAAY,CAChC,GAAIlB,GAAI,MACN,CAAA,GAAI,CACFpY,EAAS,GACX,OAASgC,EAAK,CAAA,CACZgL,GAAO,IAAKhL,CAAAA,EAAG,EACjB,CAEAgL,KAAAA,EAAAA,CAAO,KAAO,CACdA,CAAAA,CAAAA,EAAAA,CAAO,MAAQ,UAAY,CACzB,MAAM,IAAI,KAAA,CAAM,0BAA0B,CAC5C,CAAA,CACAA,EAAO,CAAA,IAAA,GAEX,CACA,CAAA,OAAAoL,GAAI,SAAY7T,CAAAA,EAAAA,CAAK,SAAUkR,EAAI,CAAA,CACjC2C,GAAI,SAAYkB,CAAAA,EAAAA,CAChBA,KACF,CAAC,EACDtM,EAAO,CAAA,QAAA,CAAW6L,GAClB7L,EAAO,CAAA,kBAAA,CAAqB8L,EAC5B9L,CAAAA,EAAAA,CAAO,QAAU+L,EACjBO,CAAAA,EAAAA,GACOH,EACT,CAAA,CACA1X,EAAQuL,EAAM,EAChB,EAAGtL,EAAM,EACX,CAAC,CACH,CACA,SAASgX,CAAMa,CAAAA,CAAAA,CAAW,CACxB,OAAO,SAAUC,CAAS,CAAA,CACxB,OAAO,IAAI,OAAA,CAAQ,SAAU/X,CAASC,CAAAA,CAAAA,CAAQ,CAC5CD,CAAU8C,CAAAA,EAAAA,CAAK9C,CAAO,CACtB,CAAA,IAAI2E,EAAQoT,CAAQ,CAAA,KAAA,CAClBjX,EAASiX,CAAQ,CAAA,MAAA,CACjBhK,EAAQgK,CAAQ,CAAA,KAAA,CAChBd,EAAQc,CAAAA,CAAAA,CAAQ,MACdC,EAAkBjK,CAAAA,CAAAA,GAAU,IAAW,KAAYA,CAAAA,CAAAA,CAAAA,CACnD5G,GAAQ8P,EAAM,CAAA,KAAA,CAChBpI,GAAQoI,EAAM,CAAA,KAAA,CACZ7C,GAAQzP,CAAM,CAAA,WAAA,CAAY2B,CAAS,CACnC6Q,CAAAA,EAAAA,CAAShQ,GAAM,YAAeiN,CAAAA,EAAAA,CAAQA,EAAM,CAAA,KAAA,CAAMjN,GAAM,IAAI,CAAA,CAC5D8Q,GAAc3B,CAAgBzH,CAAAA,EAAK,EACvC,GAAId,CAAAA,GAAU,EAAG,OAAO/N,CAAAA,CAAQ,CAC9B,MAAQ,CAAA,EACV,CAAC,CAAA,CACD,GAAI8X,CAAW,CAAA,CACb,IAAInB,EAAAA,CAAM7V,EAASqW,EAAO,CAAA,MAAA,CAAOc,GAAaD,EAAe,CAAA,CAAIb,GAAO,UAAWc,CAAAA,EAAAA,CAAaD,EAAe,CAC/GrB,CAAAA,EAAAA,CAAI,UAAY,SAAUrD,EAAAA,CAAO,CAC/B,OAAOtT,CAAAA,CAAQ,CACb,MAAQsT,CAAAA,EAAAA,CAAM,MAAO,CAAA,MACvB,CAAC,CACH,CAAA,CACAqD,GAAI,OAAUtD,CAAAA,EAAAA,CAAmBpT,CAAM,EACzC,CAAA,KAAO,CACL,IAAIiY,EAAAA,CAAU,EACVC,EAAQrX,CAAAA,CAAAA,EAAU,EAAE,eAAmBqW,GAAAA,EAAAA,CAAAA,CAAUA,GAAO,UAAWc,CAAAA,EAAW,EAAId,EAAO,CAAA,aAAA,CAAcc,EAAW,CAClHG,CAAAA,EAAAA,CAAW,EACfD,CAAAA,EAAAA,CAAM,UAAY,SAAU7E,EAAAA,CAAO,CACjC,IAAI/H,EAAAA,CAAS4M,GAAM,MACnB,CAAA,GAAI,CAAC5M,EAAQ,CAAA,OAAOvL,EAAQ,CAC1B,MAAA,CAAQoY,EACV,CAAC,EAED,GADAA,EAAAA,CAAS,KAAKtX,CAASyK,CAAAA,EAAAA,CAAO,MAAQA,EAAO,CAAA,UAAU,EACnD,EAAE2M,EAAAA,GAAYnK,EAAO,OAAO/N,CAAAA,CAAQ,CACtC,MAAQoY,CAAAA,EACV,CAAC,CACD7M,CAAAA,EAAAA,CAAO,QAAS,GAClB,EACA4M,EAAM,CAAA,OAAA,CAAU9E,GAAmBpT,CAAM,EAC3C,CACF,CAAC,CACH,CACF,CACA,OAAO,CACL,IAAMqG,CAAAA,CAAAA,CACN,OAAQkE,CACR,CAAA,MAAA,CAAQiM,EACR,OAAS,CAAA,SAAUzP,CAAI,CAAA,CACrB,IAAIrC,CAAQqC,CAAAA,CAAAA,CAAG,MACbrR,CAAOqR,CAAAA,CAAAA,CAAG,KACZ,OAAO,IAAI,QAAQ,SAAUhH,CAAAA,CAASC,EAAQ,CAC5CD,CAAAA,CAAU8C,GAAK9C,CAAO,CAAA,CAatB,QAZIoU,CAAQzP,CAAAA,CAAAA,CAAM,WAAY2B,CAAAA,CAAS,EACnCiK,CAAS5a,CAAAA,CAAAA,CAAK,OACdoC,EAAS,CAAA,IAAI,MAAMwY,CAAM,CAAA,CACzB8H,GAAW,CACXC,CAAAA,EAAAA,CAAgB,EAChB3B,EACA4B,CAAAA,EAAAA,CAAiB,SAAUjF,EAAO,CAAA,CACpC,IAAIqD,EAAMrD,CAAAA,EAAAA,CAAM,MACXvb,CAAAA,CAAAA,EAAAA,CAAO4e,GAAI,IAAI,CAAA,CAAIA,GAAI,MAAW,GAAA,IAAA,CACnC,EAAE2B,EAAkBD,GAAAA,EAAAA,EAAUrY,EAAQjI,EAAM,EAClD,EACI8e,EAAexD,CAAAA,EAAAA,CAAmBpT,CAAM,CACnC/K,CAAAA,EAAAA,CAAI,EAAGA,EAAIqb,CAAAA,CAAAA,CAAQ,EAAErb,EAAAA,CAAG,CAC/B,IAAIc,EAAAA,CAAML,EAAKT,EAAC,CAAA,CACZc,IAAO,IACT2gB,GAAAA,EAAAA,CAAMvC,EAAM,GAAIze,CAAAA,CAAAA,CAAKT,EAAC,CAAC,CAAA,CACvByhB,GAAI,IAAOzhB,CAAAA,EAAAA,CACXyhB,GAAI,SAAY4B,CAAAA,EAAAA,CAChB5B,EAAI,CAAA,OAAA,CAAUE,GACd,EAAEwB,EAAAA,EAEN,CACIA,EAAa,GAAA,CAAA,EAAGrY,EAAQjI,EAAM,EACpC,CAAC,CACH,CAAA,CACA,IAAK,SAAUiP,CAAAA,CAAI,CACjB,IAAIrC,CAAAA,CAAQqC,EAAG,KACbhR,CAAAA,CAAAA,CAAMgR,CAAG,CAAA,GAAA,CACX,OAAO,IAAI,OAAA,CAAQ,SAAUhH,CAASC,CAAAA,CAAAA,CAAQ,CAC5CD,CAAU8C,CAAAA,EAAAA,CAAK9C,CAAO,CACtB,CAAA,IAAIoU,EAAQzP,CAAM,CAAA,WAAA,CAAY2B,CAAS,CACnCqQ,CAAAA,CAAAA,CAAMvC,EAAM,GAAIpe,CAAAA,CAAG,CACvB2gB,CAAAA,CAAAA,CAAI,UAAY,SAAUrD,EAAAA,CAAO,CAC/B,OAAOtT,CAAAA,CAAQsT,GAAM,MAAO,CAAA,MAAM,CACpC,CACAqD,CAAAA,CAAAA,CAAI,QAAUtD,EAAmBpT,CAAAA,CAAM,EACzC,CAAC,CACH,EACA,KAAOgX,CAAAA,CAAAA,CAAMa,CAAS,CAAA,CACtB,WAAY5M,CACZ,CAAA,KAAA,CAAO,SAAUlE,CAAI,CAAA,CACnB,IAAIiQ,CAAQjQ,CAAAA,CAAAA,CAAG,MACbrC,CAAQqC,CAAAA,CAAAA,CAAG,MACTG,CAAQ8P,CAAAA,CAAAA,CAAM,MAChBpI,CAAQoI,CAAAA,CAAAA,CAAM,MAChB,OAAO,IAAI,OAAQ,CAAA,SAAUjX,EAASC,CAAQ,CAAA,CAC5C,IAAImU,EAAQzP,CAAAA,CAAAA,CAAM,YAAY2B,CAAS,CAAA,CACnC6Q,GAAShQ,CAAM,CAAA,YAAA,CAAeiN,GAAQA,EAAM,CAAA,KAAA,CAAMjN,EAAM,IAAI,CAAA,CAC5D8Q,GAAc3B,CAAgBzH,CAAAA,CAAK,CACnC8H,CAAAA,EAAAA,CAAMsB,GAAcd,EAAO,CAAA,KAAA,CAAMc,EAAW,CAAId,CAAAA,EAAAA,CAAO,OAC3DR,CAAAA,EAAAA,CAAI,UAAY7T,EAAK,CAAA,SAAUkR,GAAI,CACjC,OAAOhU,EAAQgU,EAAG,CAAA,MAAA,CAAO,MAAM,CACjC,CAAC,CACD2C,CAAAA,EAAAA,CAAI,QAAUtD,EAAmBpT,CAAAA,CAAM,EACzC,CAAC,CACH,CACF,CACF,CACA,IAAI+G,CAAKiP,CAAAA,CAAAA,CAAczR,EAAIwR,CAAQ,CAAA,CACjCwC,EAASxR,CAAG,CAAA,MAAA,CACZ8Q,EAAY9Q,CAAG,CAAA,SAAA,CACbkP,CAASsC,CAAAA,CAAAA,CAAO,OAAO,GAAI,CAAA,SAAUhO,EAAa,CACpD,OAAOgM,EAAkBhM,CAAW,CACtC,CAAC,CACGiO,CAAAA,CAAAA,CAAW,EACf,CAAA,OAAAvC,EAAO,OAAQ,CAAA,SAAU7G,EAAO,CAC9B,OAAOoJ,CAASpJ,CAAAA,CAAAA,CAAM,IAAI,CAAIA,CAAAA,CAChC,CAAC,CACM,CAAA,CACL,MAAO,QACP,CAAA,WAAA,CAAa7K,EAAG,WAAY,CAAA,IAAA,CAAKA,CAAE,CACnC,CAAA,KAAA,CAAO,SAAUzJ,CAAM,CAAA,CACrB,IAAIhD,CAAS0gB,CAAAA,CAAAA,CAAS1d,CAAI,CAC1B,CAAA,GAAI,CAAChD,CAAQ,CAAA,MAAM,IAAI,KAAM,CAAA,SAAA,CAAU,OAAOgD,CAAM,CAAA,aAAa,CAAC,CAClE,CAAA,OAAO0d,EAAS1d,CAAI,CACtB,EACA,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,QAASwa,EAAUC,CAAAA,CAAW,CAC9B,CAAA,MAAA,CAAQgD,CACV,CACF,CACA,SAASE,EAAsBC,CAAAA,CAAAA,CAAWC,EAAa,CACrD,OAAOA,EAAY,MAAO,CAAA,SAAUC,EAAM7R,CAAI,CAAA,CAC5C,IAAI8R,CAAS9R,CAAAA,CAAAA,CAAG,OAChB,OAAOjS,CAAAA,CAASA,CAAS,CAAA,GAAI8jB,CAAI,CAAA,CAAGC,EAAOD,CAAI,CAAC,CAClD,CAAGF,CAAAA,CAAS,CACd,CACA,SAASI,GAAuBH,CAAa9E,CAAAA,CAAAA,CAAO9M,EAAIgP,CAAU,CAAA,CAChE,IAAIgD,CAAchS,CAAAA,CAAAA,CAAG,WACrBA,CAAAA,CAAAA,CAAG,UACH,IAAIiS,CAAAA,CAASP,GAAsB3C,EAAajC,CAAAA,CAAAA,CAAOkF,EAAahD,CAAQ,CAAA,CAAG4C,EAAY,MAAM,CAAA,CACjG,OAAO,CACL,MAAA,CAAQK,CACV,CACF,CACA,SAASC,EAAyB1U,CAAAA,CAAAA,CAAIwR,CAAU,CAAA,CAC9C,IAAIlC,CAAQkC,CAAAA,CAAAA,CAAS,GACjBmD,CAASJ,CAAAA,EAAAA,CAAuBvU,EAAG,YAAcsP,CAAAA,CAAAA,CAAOtP,EAAG,KAAOwR,CAAAA,CAAQ,EAC9ExR,CAAG,CAAA,IAAA,CAAO2U,EAAO,MACjB3U,CAAAA,CAAAA,CAAG,OAAO,OAAQ,CAAA,SAAU6K,CAAO,CAAA,CACjC,IAAI/I,CAAY+I,CAAAA,CAAAA,CAAM,KAClB7K,CAAG,CAAA,IAAA,CAAK,OAAO,MAAO,CAAA,IAAA,CAAK,SAAU4U,CAAK,CAAA,CAC5C,OAAOA,CAAI,CAAA,IAAA,GAAS9S,CACtB,CAAC,CAAA,GACC+I,EAAM,IAAO7K,CAAAA,CAAAA,CAAG,IAAK,CAAA,KAAA,CAAM8B,CAAS,CAChC9B,CAAAA,CAAAA,CAAG8B,CAAS,CAAa9B,WAAAA,CAAAA,CAAG,QAC9BA,CAAG8B,CAAAA,CAAS,EAAE,IAAO+I,CAAAA,CAAAA,CAAM,OAGjC,CAAC,EACH,CACA,SAASgK,EAAAA,CAAc7U,EAAIyE,CAAMqQ,CAAAA,CAAAA,CAAY5E,CAAU,CAAA,CACrD4E,EAAW,OAAQ,CAAA,SAAUhT,EAAW,CACtC,IAAIkS,EAAS9D,CAASpO,CAAAA,CAAS,EAC/B2C,CAAK,CAAA,OAAA,CAAQ,SAAUnT,CAAK,CAAA,CAC1B,IAAIyjB,CAAWxiB,CAAAA,EAAAA,CAAsBjB,EAAKwQ,CAAS,CAAA,CAAA,CAC/C,CAACiT,CAAAA,EAAY,UAAWA,CAAYA,EAAAA,CAAAA,CAAS,QAAU,KACrDzjB,CAAAA,IAAAA,CAAAA,GAAQ0O,EAAG,WAAY,CAAA,SAAA,EAAa1O,aAAe0O,CAAG,CAAA,WAAA,CACxDjO,EAAQT,CAAKwQ,CAAAA,CAAAA,CAAW,CACtB,GAAK,CAAA,UAAY,CACf,OAAO,IAAA,CAAK,KAAMA,CAAAA,CAAS,CAC7B,CACA,CAAA,GAAA,CAAK,SAAU7N,CAAO,CAAA,CACpBjC,EAAe,IAAM8P,CAAAA,CAAAA,CAAW,CAC9B,KAAO7N,CAAAA,CAAAA,CACP,SAAU,CACV,CAAA,CAAA,YAAA,CAAc,GACd,UAAY,CAAA,CAAA,CACd,CAAC,EACH,CACF,CAAC,CAAA,CAED3C,EAAIwQ,CAAS,CAAA,CAAI,IAAI9B,CAAG,CAAA,KAAA,CAAM8B,EAAWkS,CAAM,CAAA,EAGrD,CAAC,EACH,CAAC,EACH,CACA,SAASgB,GAAgBhV,CAAIyE,CAAAA,CAAAA,CAAM,CACjCA,CAAK,CAAA,OAAA,CAAQ,SAAUnT,CAAAA,CAAK,CAC1B,IAASE,IAAAA,CAAAA,IAAOF,EACVA,CAAIE,CAAAA,CAAG,YAAawO,CAAG,CAAA,KAAA,EAAO,OAAO1O,CAAIE,CAAAA,CAAG,EAEpD,CAAC,EACH,CACA,SAASyjB,EAAAA,CAAkBvgB,EAAGvE,CAAG,CAAA,CAC/B,OAAOuE,CAAAA,CAAE,KAAK,OAAUvE,CAAAA,CAAAA,CAAE,KAAK,OACjC,CACA,SAAS+kB,EAAalV,CAAAA,CAAAA,CAAImV,EAAYC,CAAiB3Z,CAAAA,CAAAA,CAAQ,CAC7D,IAAI4Z,CAAAA,CAAerV,EAAG,SAClBoV,CAAAA,CAAAA,CAAgB,iBAAiB,QAAS,CAAA,OAAO,CAAK,EAAA,CAACC,EAAa,KACtEA,GAAAA,CAAAA,CAAa,MAAQ1E,EAAkB,CAAA,OAAA,CAAS2E,GAAiB,EAAE,CAAA,CAAE,CAAC,CAAG,CAAA,EAAE,CAC3EtV,CAAAA,CAAAA,CAAG,YAAY,IAAK,CAAA,OAAO,GAE7B,IAAIG,CAAAA,CAAQH,CAAG,CAAA,kBAAA,CAAmB,YAAaA,CAAG,CAAA,WAAA,CAAaqV,CAAY,CAC3ElV,CAAAA,CAAAA,CAAM,OAAOiV,CAAe,CAAA,CAC5BjV,EAAM,WAAY,CAAA,KAAA,CAAM1E,CAAM,CAC9B,CAAA,IAAI8Z,EAAoBpV,CAAM,CAAA,OAAA,CAAQ,KAAKA,CAAK,CAAA,CAC5CqV,CAAYjb,CAAAA,EAAAA,CAAI,WAAaA,EACjCkC,CAAAA,EAAAA,CAAS,UAAY,CAGnB,GAFAlC,GAAI,KAAQ4F,CAAAA,CAAAA,CACZ5F,GAAI,SAAYib,CAAAA,CAAAA,CACZL,IAAe,CACjBhkB,CAAAA,CAAAA,CAAKkkB,CAAY,CAAE,CAAA,OAAA,CAAQ,SAAUvT,CAAW,CAAA,CAC9C2T,GAAYL,CAAiBtT,CAAAA,CAAAA,CAAWuT,EAAavT,CAAS,CAAA,CAAE,QAASuT,CAAavT,CAAAA,CAAS,EAAE,OAAO,EAC1G,CAAC,CACD4S,CAAAA,EAAAA,CAAyB1U,EAAIoV,CAAe,CAAA,CAC5C1a,GAAa,MAAO,CAAA,UAAY,CAC9B,OAAOsF,CAAAA,CAAG,EAAG,CAAA,QAAA,CAAS,KAAKG,CAAK,CAClC,CAAC,CAAE,CAAA,KAAA,CAAMoV,CAAiB,CAE1B,CAAA,KAAA,OAAAb,GAAyB1U,CAAIoV,CAAAA,CAAe,EACrCM,EAAmB1V,CAAAA,CAAAA,CAAIG,EAAOgV,CAAU,CAAA,CAAE,KAAK,SAAUA,CAAAA,CAAY,CAC1E,OAAOQ,GAAuB3V,CAAImV,CAAAA,CAAAA,CAAYhV,EAAOiV,CAAe,CACtE,CAAC,CAAE,CAAA,KAAA,CAAMG,CAAiB,CAE9B,CAAC,EACH,CACA,SAASK,GAAoB5V,CAAIoV,CAAAA,CAAAA,CAAiB,CAChDS,EAAoB7V,CAAAA,CAAAA,CAAG,SAAWoV,CAAAA,CAAe,EAC7CA,CAAgB,CAAA,EAAA,CAAG,QAAU,EAAO,GAAA,CAAA,EAAK,CAACA,CAAgB,CAAA,gBAAA,CAAiB,SAAS,OAAO,CAAA,EAC7FA,EAAgB,EAAG,CAAA,iBAAA,CAAkB,OAAO,CAAE,CAAA,GAAA,CAAI,KAAK,IAAKA,CAAAA,CAAAA,CAAgB,EAAG,CAAA,OAAA,CAAU,GAAK,CAAC,CAAA,CAAG,SAAS,CAE7G,CAAA,IAAIC,EAAeS,EAAkB9V,CAAAA,CAAAA,CAAIA,EAAG,KAAOoV,CAAAA,CAAe,EAClEW,EAA2B/V,CAAAA,CAAAA,CAAIA,EAAG,SAAWoV,CAAAA,CAAe,EAe5D,IAdIY,IAAAA,CAAAA,CAAOC,EAAcZ,CAAAA,CAAAA,CAAcrV,EAAG,SAAS,CAAA,CAC/CkW,EAAU,SAAUC,CAAAA,CAAa,CACnC,GAAIA,CAAAA,CAAY,OAAO,MAAUA,EAAAA,CAAAA,CAAY,SAC3C,OAAQ,OAAA,CAAA,IAAA,CAAK,oCAAoC,MAAOA,CAAAA,CAAAA,CAAY,KAAM,8DAA8D,CAAC,CAClI,CAAA,CACL,MAAO,KACT,CAAA,CAAA,CAEF,IAAIvG,CAAQwF,CAAAA,CAAAA,CAAgB,YAAYe,CAAY,CAAA,IAAI,EACxDA,CAAY,CAAA,GAAA,CAAI,QAAQ,SAAUvT,CAAAA,CAAK,CACjC9J,EAAO,EAAA,OAAA,CAAQ,MAAM,8CAA+C,CAAA,MAAA,CAAOqd,CAAY,CAAA,IAAA,CAAM,GAAG,CAAE,CAAA,MAAA,CAAOvT,EAAI,GAAG,CAAC,EACrHwT,EAASxG,CAAAA,CAAAA,CAAOhN,CAAG,EACrB,CAAC,EACH,CACSiC,CAAAA,CAAAA,CAAK,EAAGrC,CAAKwT,CAAAA,CAAAA,CAAK,OAAQnR,CAAKrC,CAAAA,CAAAA,CAAG,MAAQqC,CAAAA,CAAAA,EAAAA,CAAM,CACvD,IAAIsR,CAAAA,CAAc3T,EAAGqC,CAAE,CAAA,CACnBwR,EAAUH,CAAQC,CAAAA,CAAW,EACjC,GAAI,OAAOE,GAAY,QAAU,CAAA,OAAOA,EAAQ,KAClD,CACF,CACA,SAASX,EAAAA,CAAmB1V,CAAIG,CAAAA,CAAAA,CAAOgV,EAAY,CACjD,OAAIhV,EAAM,UAAW,CAAA,QAAA,CAAS,OAAO,CAC5BA,CAAAA,CAAAA,CAAM,MAAM,OAAO,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,SAAUmW,CAAAA,CAAa,CACrE,OAAOA,CAAAA,EAAoCnB,CAC7C,CAAC,EAEMza,EAAa,CAAA,OAAA,CAAQya,CAAU,CAE1C,CACA,SAASQ,EAAuB3V,CAAAA,CAAAA,CAAImV,EAAYhV,CAAOiV,CAAAA,CAAAA,CAAiB,CACtE,IAAImB,CAAAA,CAAQ,EACRC,CAAAA,CAAAA,CAAWxW,EAAG,SACdqV,CAAAA,CAAAA,CAAerV,CAAG,CAAA,SAAA,CAAY8V,GAAkB9V,CAAIA,CAAAA,CAAAA,CAAG,MAAOoV,CAAe,CAAA,CAC7EqB,EAAYD,CAAS,CAAA,MAAA,CAAO,SAAUvhB,CAAG,CAAA,CAC3C,OAAOA,CAAE,CAAA,IAAA,CAAK,SAAWkgB,CAC3B,CAAC,EACD,GAAIsB,CAAAA,CAAU,MAAW,GAAA,CAAA,CACvB,OAAO/b,EAAa,CAAA,OAAA,GAEtB+b,CAAU,CAAA,OAAA,CAAQ,SAAUC,CAAS,CAAA,CACnCH,EAAM,IAAK,CAAA,UAAY,CACrB,IAAII,CAAAA,CAAYtB,EACZuB,CAAYF,CAAAA,CAAAA,CAAQ,KAAK,QAC7BX,CAAAA,EAAAA,CAA2B/V,CAAI2W,CAAAA,CAAAA,CAAWvB,CAAe,CACzDW,CAAAA,EAAAA,CAA2B/V,EAAI4W,CAAWxB,CAAAA,CAAe,EACzDC,CAAerV,CAAAA,CAAAA,CAAG,UAAY4W,CAC9B,CAAA,IAAIZ,EAAOC,EAAcU,CAAAA,CAAAA,CAAWC,CAAS,CAC7CZ,CAAAA,CAAAA,CAAK,IAAI,OAAQ,CAAA,SAAUa,CAAO,CAAA,CAChCpB,GAAYL,CAAiByB,CAAAA,CAAAA,CAAM,CAAC,CAAGA,CAAAA,CAAAA,CAAM,CAAC,CAAE,CAAA,OAAA,CAASA,EAAM,CAAC,CAAA,CAAE,OAAO,EAC3E,CAAC,EACDb,CAAK,CAAA,MAAA,CAAO,QAAQ,SAAUc,CAAAA,CAAQ,CACpC,GAAIA,EAAO,QACT,CAAA,MAAM,IAAI5f,EAAW,CAAA,OAAA,CAAQ,0CAA0C,CAEvE,CAAA,IAAI6f,EAAU3B,CAAgB,CAAA,WAAA,CAAY0B,EAAO,IAAI,CAAA,CACrDA,EAAO,GAAI,CAAA,OAAA,CAAQ,SAAUlU,CAAK,CAAA,CAChC,OAAOwT,EAASW,CAAAA,CAAAA,CAASnU,CAAG,CAC9B,CAAC,EACDkU,CAAO,CAAA,MAAA,CAAO,QAAQ,SAAUlU,CAAAA,CAAK,CACnCmU,CAAQ,CAAA,WAAA,CAAYnU,EAAI,IAAI,CAAA,CAC5BwT,GAASW,CAASnU,CAAAA,CAAG,EACvB,CAAC,CAAA,CACDkU,CAAO,CAAA,GAAA,CAAI,QAAQ,SAAUE,CAAAA,CAAS,CACpC,OAAOD,CAAAA,CAAQ,YAAYC,CAAO,CACpC,CAAC,EAEL,CAAC,EACD,IAAIC,CAAAA,CAAiBP,EAAQ,IAAK,CAAA,cAAA,CAClC,GAAIO,CAAkBP,EAAAA,CAAAA,CAAQ,IAAK,CAAA,OAAA,CAAUvB,EAAY,CACvDT,EAAAA,CAAyB1U,EAAIoV,CAAe,CAAA,CAC5CjV,EAAM,eAAkB,CAAA,GACxB,IAAI+W,CAAAA,CAAkB5iB,GAAasiB,CAAS,CAAA,CAC5CZ,EAAK,GAAI,CAAA,OAAA,CAAQ,SAAUnL,CAAO,CAAA,CAChCqM,CAAgBrM,CAAAA,CAAK,EAAI8L,CAAU9L,CAAAA,CAAK,EAC1C,CAAC,CAAA,CACDmK,GAAgBhV,CAAI,CAAA,CAACA,EAAG,WAAY,CAAA,SAAS,CAAC,CAC9C6U,CAAAA,EAAAA,CAAc7U,EAAI,CAACA,CAAAA,CAAG,YAAY,SAAS,CAAA,CAAG7O,CAAK+lB,CAAAA,CAAe,EAAGA,CAAe,CAAA,CACpF/W,EAAM,MAAS+W,CAAAA,CAAAA,CACf,IAAIC,CAA0BlhB,CAAAA,EAAAA,CAAgBghB,CAAc,CACxDE,CAAAA,CAAAA,EACFjY,IAEF,CAAA,IAAIkY,EACAC,CAAkB3c,CAAAA,EAAAA,CAAa,OAAO,UAAY,CAEpD,GADA0c,CAAAA,CAAgBH,EAAe9W,CAAK,CAAA,CAChCiX,GACED,CAAyB,CAAA,CAC3B,IAAIG,CAAc/b,CAAAA,EAAAA,CAAwB,KAAK,IAAM,CAAA,IAAI,EACzD6b,CAAc,CAAA,IAAA,CAAKE,EAAaA,CAAW,EAC7C,CAEJ,CAAC,CAAA,CACD,OAAOF,CAAAA,EAAiB,OAAOA,CAAc,CAAA,IAAA,EAAS,WAAa1c,EAAa,CAAA,OAAA,CAAQ0c,CAAa,CAAIC,CAAAA,CAAAA,CAAgB,KAAK,UAAY,CACxI,OAAOD,CACT,CAAC,CACH,CACF,CAAC,EACDb,CAAM,CAAA,IAAA,CAAK,SAAUlH,CAAAA,CAAU,CAC7B,IAAIuH,CAAAA,CAAYF,EAAQ,IAAK,CAAA,QAAA,CAC7Ba,GAAoBX,CAAWvH,CAAAA,CAAQ,EACvC2F,EAAgBhV,CAAAA,CAAAA,CAAI,CAACA,CAAG,CAAA,WAAA,CAAY,SAAS,CAAC,CAAA,CAC9C6U,GAAc7U,CAAI,CAAA,CAACA,EAAG,WAAY,CAAA,SAAS,EAAGA,CAAG,CAAA,WAAA,CAAaA,EAAG,SAAS,CAAA,CAC1EG,EAAM,MAASH,CAAAA,CAAAA,CAAG,UACpB,CAAC,CAAA,CACDuW,EAAM,IAAK,CAAA,SAAUlH,EAAU,CACzBrP,CAAAA,CAAG,MAAM,gBAAiB,CAAA,QAAA,CAAS,OAAO,CAAA,GACxC,KAAK,IAAKA,CAAAA,CAAAA,CAAG,MAAM,OAAU,CAAA,EAAE,IAAM0W,CAAQ,CAAA,IAAA,CAAK,SACpD1W,CAAG,CAAA,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAClC,OAAOA,CAAG,CAAA,SAAA,CAAU,MACpBA,CAAG,CAAA,WAAA,CAAcA,CAAG,CAAA,WAAA,CAAY,OAAO,SAAUzJ,CAAAA,CAAM,CACrD,OAAOA,CAAAA,GAAS,OAClB,CAAC,CAAA,EAED8Y,EAAS,WAAY,CAAA,OAAO,EAAE,GAAIqH,CAAAA,CAAAA,CAAQ,KAAK,OAAS,CAAA,SAAS,GAGvE,CAAC,EACH,CAAC,CAAA,CACD,SAASc,CAAW,EAAA,CAClB,OAAOjB,CAAM,CAAA,MAAA,CAAS7b,GAAa,OAAQ6b,CAAAA,CAAAA,CAAM,OAAQpW,CAAAA,CAAAA,CAAM,QAAQ,CAAC,CAAA,CAAE,KAAKqX,CAAQ,CAAA,CAAI9c,GAAa,OAAQ,EAClH,CACA,OAAO8c,GAAW,CAAA,IAAA,CAAK,UAAY,CACjC3B,EAAAA,CAAoBR,EAAcD,CAAe,EACnD,CAAC,CACH,CACA,SAASa,EAAcU,CAAAA,CAAAA,CAAWC,EAAW,CAC3C,IAAIZ,EAAO,CACT,GAAA,CAAK,EAAC,CACN,IAAK,EAAC,CACN,OAAQ,EACV,EACInL,CACJ,CAAA,IAAKA,KAAS8L,CACPC,CAAAA,CAAAA,CAAU/L,CAAK,CAAGmL,EAAAA,CAAAA,CAAK,IAAI,IAAKnL,CAAAA,CAAK,EAE5C,IAAKA,CAAAA,IAAS+L,CAAW,CAAA,CACvB,IAAIa,CAASd,CAAAA,CAAAA,CAAU9L,CAAK,CAC1B6M,CAAAA,CAAAA,CAASd,EAAU/L,CAAK,CAAA,CAC1B,GAAI,CAAC4M,CAAAA,CACHzB,EAAK,GAAI,CAAA,IAAA,CAAK,CAACnL,CAAO6M,CAAAA,CAAM,CAAC,CACxB,CAAA,KAAA,CACL,IAAIZ,CAAAA,CAAS,CACX,IAAMjM,CAAAA,CAAAA,CACN,IAAK6M,CACL,CAAA,QAAA,CAAU,GACV,GAAK,CAAA,GACL,GAAK,CAAA,GACL,MAAQ,CAAA,EACV,CACA,CAAA,GAAI,IAAMD,CAAO,CAAA,OAAA,CAAQ,SAAW,EAAQ,CAAA,EAAA,EAAA,EAAMC,EAAO,OAAQ,CAAA,OAAA,EAAW,KAAOD,CAAO,CAAA,OAAA,CAAQ,OAASC,CAAO,CAAA,OAAA,CAAQ,KACxHZ,CAAO,CAAA,QAAA,CAAW,GAClBd,CAAK,CAAA,MAAA,CAAO,KAAKc,CAAM,CAAA,CAAA,KAClB,CACL,IAAIa,CAAAA,CAAaF,CAAO,CAAA,SAAA,CACpBG,EAAaF,CAAO,CAAA,SAAA,CACpBV,EAAU,KACd,CAAA,CAAA,IAAKA,KAAWW,CACTC,CAAAA,CAAAA,CAAWZ,CAAO,CAAGF,EAAAA,CAAAA,CAAO,IAAI,IAAKE,CAAAA,CAAO,EAEnD,IAAKA,CAAAA,IAAWY,EAAY,CAC1B,IAAIC,CAASF,CAAAA,CAAAA,CAAWX,CAAO,CAC7Bc,CAAAA,CAAAA,CAASF,EAAWZ,CAAO,CAAA,CACxBa,EAAyCA,CAAO,CAAA,GAAA,GAAQC,EAAO,GAAKhB,EAAAA,CAAAA,CAAO,OAAO,IAAKgB,CAAAA,CAAM,EAArFhB,CAAO,CAAA,GAAA,CAAI,KAAKgB,CAAM,EACrC,CACIhB,CAAAA,CAAAA,CAAO,IAAI,MAAS,CAAA,CAAA,EAAKA,EAAO,GAAI,CAAA,MAAA,CAAS,GAAKA,CAAO,CAAA,MAAA,CAAO,OAAS,CAC3Ed,GAAAA,CAAAA,CAAK,OAAO,IAAKc,CAAAA,CAAM,EAE3B,CACF,CACF,CACA,OAAOd,CACT,CACA,SAASP,GAAYpG,CAAUvN,CAAAA,CAAAA,CAAW8O,EAASC,CAAS,CAAA,CAC1D,IAAIjB,CAAQP,CAAAA,CAAAA,CAAS,GAAG,iBAAkBvN,CAAAA,CAAAA,CAAW8O,EAAQ,OAAU,CAAA,CACrE,QAASA,CAAQ,CAAA,OAAA,CACjB,cAAeA,CAAQ,CAAA,IACzB,CAAI,CAAA,CACF,cAAeA,CAAQ,CAAA,IACzB,CAAC,CACD,CAAA,OAAAC,EAAQ,OAAQ,CAAA,SAAUjO,EAAK,CAC7B,OAAOwT,GAASxG,CAAOhN,CAAAA,CAAG,CAC5B,CAAC,CAAA,CACMgN,CACT,CACA,SAASiG,EAAoBe,CAAAA,CAAAA,CAAWvH,EAAU,CAChDle,CAAAA,CAAKylB,CAAS,CAAE,CAAA,OAAA,CAAQ,SAAU9U,CAAW,CAAA,CACtCuN,EAAS,EAAG,CAAA,gBAAA,CAAiB,SAASvN,CAAS,CAAA,GAC9ChJ,IAAO,OAAQ,CAAA,KAAA,CAAM,gCAAiCgJ,CAAS,CAAA,CACnE2T,EAAYpG,CAAAA,CAAAA,CAAUvN,EAAW8U,CAAU9U,CAAAA,CAAS,EAAE,OAAS8U,CAAAA,CAAAA,CAAU9U,CAAS,CAAE,CAAA,OAAO,GAE/F,CAAC,EACH,CACA,SAASyV,EAAAA,CAAoBX,EAAWvH,CAAU,CAAA,CAChD,EAAG,CAAA,KAAA,CAAM,IAAKA,CAAAA,CAAAA,CAAS,GAAG,gBAAgB,CAAA,CAAE,QAAQ,SAAU0I,CAAAA,CAAW,CACvE,OAAOnB,CAAAA,CAAUmB,CAAS,CAAK,EAAA,IAAA,EAAQ1I,EAAS,EAAG,CAAA,iBAAA,CAAkB0I,CAAS,CAChF,CAAC,EACH,CACA,SAAS3B,EAASxG,CAAAA,CAAAA,CAAOhN,EAAK,CAC5BgN,CAAAA,CAAM,YAAYhN,CAAI,CAAA,IAAA,CAAMA,EAAI,OAAS,CAAA,CACvC,OAAQA,CAAI,CAAA,MAAA,CACZ,WAAYA,CAAI,CAAA,KAClB,CAAC,EACH,CACA,SAASkT,EAAkB9V,CAAAA,CAAAA,CAAIsP,CAAOkC,CAAAA,CAAAA,CAAU,CAC9C,IAAI6D,CAAAA,CAAe,EACf2C,CAAAA,CAAAA,CAAetlB,GAAM4c,CAAM,CAAA,gBAAA,CAAkB,CAAC,CAClD,CAAA,OAAA0I,EAAa,OAAQ,CAAA,SAAUD,EAAW,CAKxC,IAAA,IAJInI,EAAQ4B,CAAS,CAAA,WAAA,CAAYuG,CAAS,CAAA,CACtCpkB,EAAUic,CAAM,CAAA,OAAA,CAChBgB,EAAUP,EAAgBK,CAAAA,EAAAA,CAAgB/c,CAAO,CAAGA,CAAAA,CAAAA,EAAW,GAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAACic,CAAAA,CAAM,cAAejc,CAAW,EAAA,OAAOA,GAAY,QAAU,CAAA,CAAA,CAAI,CACnJkd,CAAAA,CAAAA,CAAU,EACLoH,CAAAA,CAAAA,CAAI,EAAGA,CAAIrI,CAAAA,CAAAA,CAAM,WAAW,MAAQ,CAAA,EAAEqI,EAAG,CAChD,IAAIC,EAAWtI,CAAM,CAAA,KAAA,CAAMA,EAAM,UAAWqI,CAAAA,CAAC,CAAC,CAC9CtkB,CAAAA,CAAAA,CAAUukB,CAAS,CAAA,OAAA,CACnB,IAAIvV,CAAQ0N,CAAAA,EAAAA,CAAgB6H,EAAS,IAAMvkB,CAAAA,CAAAA,CAAS,CAAC,CAACukB,CAAAA,CAAS,OAAQ,CAAC,CAACA,EAAS,UAAY,CAAA,CAAA,CAAA,CAAOvkB,GAAW,OAAOA,CAAAA,EAAY,SAAU,CAAK,CAAA,CAAA,CAClJkd,CAAQ,CAAA,IAAA,CAAKlO,CAAK,EACpB,CACA0S,EAAa0C,CAAS,CAAA,CAAIpH,GAAkBoH,CAAWnH,CAAAA,CAAAA,CAASC,CAAO,EACzE,CAAC,EACMwE,CACT,CACA,SAAS8C,EAAiBnY,CAAAA,CAAAA,CAAIsP,EAAOkC,CAAU,CAAA,CAC7CxR,CAAG,CAAA,KAAA,CAAQsP,EAAM,OAAU,CAAA,EAAA,CAC3B,IAAI+F,CAAerV,CAAAA,CAAAA,CAAG,UAAY8V,EAAkB9V,CAAAA,CAAAA,CAAIsP,EAAOkC,CAAQ,CAAA,CACvExR,EAAG,WAActN,CAAAA,EAAAA,CAAM4c,EAAM,gBAAkB,CAAA,CAAC,EAChDuF,EAAc7U,CAAAA,CAAAA,CAAI,CAACA,CAAG,CAAA,UAAU,EAAG7O,CAAKkkB,CAAAA,CAAY,EAAGA,CAAY,EACrE,CACA,SAAS+C,EAAAA,CAAsBpY,EAAIwR,CAAU,CAAA,CAC3C,IAAI6G,CAAkBvC,CAAAA,EAAAA,CAAkB9V,EAAIA,CAAG,CAAA,KAAA,CAAOwR,CAAQ,CAC1DwE,CAAAA,CAAAA,CAAOC,EAAcoC,CAAAA,CAAAA,CAAiBrY,EAAG,SAAS,CAAA,CACtD,OAAO,EAAEgW,CAAAA,CAAK,IAAI,MAAUA,EAAAA,CAAAA,CAAK,OAAO,IAAK,CAAA,SAAUsC,EAAI,CACzD,OAAOA,EAAG,GAAI,CAAA,MAAA,EAAUA,EAAG,MAAO,CAAA,MACpC,CAAC,CAAA,CACH,CACA,SAASvC,EAAAA,CAA2B/V,EAAIgU,CAAQ3E,CAAAA,CAAAA,CAAU,CAExD,IADInP,IAAAA,CAAAA,CAAamP,EAAS,EAAG,CAAA,gBAAA,CACpB3e,EAAI,CAAGA,CAAAA,CAAAA,CAAIwP,EAAW,MAAQ,CAAA,EAAExP,EAAG,CAC1C,IAAIqnB,CAAY7X,CAAAA,CAAAA,CAAWxP,CAAC,CACxBkf,CAAAA,CAAAA,CAAQP,EAAS,WAAY0I,CAAAA,CAAS,EAC1C/X,CAAG,CAAA,UAAA,CAAa,WAAY4P,CAC5B,CAAA,IAAA,IAASqI,EAAI,CAAGA,CAAAA,CAAAA,CAAIrI,EAAM,UAAW,CAAA,MAAA,CAAQ,EAAEqI,CAAG,CAAA,CAChD,IAAInP,CAAAA,CAAY8G,EAAM,UAAWqI,CAAAA,CAAC,EAC9BtkB,CAAUic,CAAAA,CAAAA,CAAM,MAAM9G,CAAS,CAAA,CAAE,QACjCyP,CAAY,CAAA,OAAO5kB,GAAY,QAAWA,CAAAA,CAAAA,CAAU,IAAMjB,EAAMiB,CAAAA,CAAO,EAAE,IAAK,CAAA,GAAG,CAAI,CAAA,GAAA,CACzF,GAAIqgB,CAAO+D,CAAAA,CAAS,EAAG,CACrB,IAAIS,EAAYxE,CAAO+D,CAAAA,CAAS,EAAE,SAAUQ,CAAAA,CAAS,EACjDC,CACFA,GAAAA,CAAAA,CAAU,KAAO1P,CACjB,CAAA,OAAOkL,EAAO+D,CAAS,CAAA,CAAE,SAAUQ,CAAAA,CAAS,EAC5CvE,CAAO+D,CAAAA,CAAS,EAAE,SAAUjP,CAAAA,CAAS,EAAI0P,CAE7C,EAAA,CACF,CACF,CACI,OAAO,UAAc,GAAe,EAAA,QAAA,CAAS,KAAK,SAAU,CAAA,SAAS,GAAK,CAAC,mBAAA,CAAoB,IAAK,CAAA,SAAA,CAAU,SAAS,CAAKtnB,EAAAA,CAAAA,CAAQ,mBAAqBA,CAAmBA,YAAAA,CAAAA,CAAQ,mBAAqB,EAAC,CAAE,OAAO,SAAU,CAAA,SAAA,CAAU,MAAM,eAAe,CAAC,EAAE,CAAC,CAAA,CAAI,MACtQ8O,CAAG,CAAA,UAAA,CAAa,IAEpB,CACA,SAASsV,GAAiBmD,CAAmB,CAAA,CAC3C,OAAOA,CAAkB,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,GAAA,CAAI,SAAU9V,CAAO+V,CAAAA,CAAAA,CAAU,CACjE/V,CAAQA,CAAAA,CAAAA,CAAM,MACd,CAAA,IAAIpM,EAAOoM,CAAM,CAAA,OAAA,CAAQ,cAAgB,CAAA,EAAE,EACvChP,CAAU,CAAA,KAAA,CAAM,KAAK4C,CAAI,CAAA,CAAIA,EAAK,KAAM,CAAA,YAAY,EAAE,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA,CAAIA,EAC1E,OAAO8Z,EAAAA,CAAgB9Z,EAAM5C,CAAW,EAAA,IAAA,CAAM,IAAK,CAAA,IAAA,CAAKgP,CAAK,CAAG,CAAA,IAAA,CAAK,KAAKA,CAAK,CAAA,CAAG,OAAO,IAAKA,CAAAA,CAAK,EAAGvR,CAAQuC,CAAAA,CAAO,EAAG+kB,CAAa,GAAA,CAAC,CACxI,CAAC,CACH,CACA,IAAIC,EAAAA,CAAU,UAAY,CACxB,SAASA,CAAU,EAAA,EACnB,OAAAA,CAAAA,CAAQ,UAAU,gBAAmB,CAAA,SAAUC,EAAQC,CAAW,CAAA,CAChE1nB,EAAKynB,CAAM,CAAA,CAAE,QAAQ,SAAU9W,CAAAA,CAAW,CACxC,GAAI8W,CAAAA,CAAO9W,CAAS,CAAA,GAAM,KAAM,CAC9B,IAAI+O,EAAUyE,EAAiBsD,CAAAA,CAAAA,CAAO9W,CAAS,CAAC,CAAA,CAC5C8O,EAAUC,CAAQ,CAAA,KAAA,GAEtB,GADAD,CAAAA,CAAQ,OAAS,CACbA,CAAAA,CAAAA,CAAAA,CAAQ,MAAO,MAAM,IAAI1Z,EAAW,CAAA,MAAA,CAAO,oCAAoC,CACnF2Z,CAAAA,CAAAA,CAAQ,QAAQ,SAAUjO,CAAAA,CAAK,CAC7B,GAAIA,CAAAA,CAAI,KAAM,MAAM,IAAI1L,GAAW,MAAO,CAAA,sDAAsD,EAChG,GAAI,CAAC0L,EAAI,OAAS,CAAA,MAAM,IAAI1L,EAAAA,CAAW,OAAO,sDAAsD,CACtG,CAAC,CACD2hB,CAAAA,CAAAA,CAAU/W,CAAS,CAAI6O,CAAAA,EAAAA,CAAkB7O,EAAW8O,CAASC,CAAAA,CAAO,EACtE,CACF,CAAC,EACH,CACA8H,CAAAA,CAAAA,CAAQ,UAAU,MAAS,CAAA,SAAUC,CAAQ,CAAA,CAC3C,IAAI5Y,CAAK,CAAA,IAAA,CAAK,GACd,IAAK,CAAA,IAAA,CAAK,aAAe,IAAK,CAAA,IAAA,CAAK,aAAe3O,CAAO,CAAA,IAAA,CAAK,KAAK,YAAcunB,CAAAA,CAAM,EAAIA,CAC3F,CAAA,IAAIpC,EAAWxW,CAAG,CAAA,SAAA,CACd8Y,EAAa,EAAC,CACd5I,EAAW,EAAC,CAChB,OAAAsG,CAAS,CAAA,OAAA,CAAQ,SAAUE,CAAS,CAAA,CAClCrlB,EAAOynB,CAAYpC,CAAAA,CAAAA,CAAQ,KAAK,YAAY,CAAA,CAC5CxG,EAAWwG,CAAQ,CAAA,IAAA,CAAK,SAAW,EAAC,CACpCA,CAAQ,CAAA,gBAAA,CAAiBoC,EAAY5I,CAAQ,EAC/C,CAAC,CACDlQ,CAAAA,CAAAA,CAAG,UAAYkQ,CACf8E,CAAAA,EAAAA,CAAgBhV,EAAI,CAACA,CAAAA,CAAG,WAAYA,CAAIA,CAAAA,CAAAA,CAAG,YAAY,SAAS,CAAC,EACjE6U,EAAc7U,CAAAA,CAAAA,CAAI,CAACA,CAAAA,CAAG,WAAYA,CAAIA,CAAAA,CAAAA,CAAG,YAAY,SAAW,CAAA,IAAA,CAAK,KAAK,MAAM,CAAA,CAAG7O,EAAK+e,CAAQ,CAAA,CAAGA,CAAQ,CAC3GlQ,CAAAA,CAAAA,CAAG,YAAc7O,CAAK+e,CAAAA,CAAQ,EACvB,IACT,CAAA,CACAyI,CAAQ,CAAA,SAAA,CAAU,QAAU,SAAUI,CAAAA,CAAiB,CACrD,OAAK,IAAA,CAAA,IAAA,CAAK,eAAiBngB,EAAgB,CAAA,IAAA,CAAK,KAAK,cAAkBjB,EAAAA,EAAAA,CAAKohB,CAAe,CACpF,CAAA,IACT,EACOJ,CACT,CAAA,GACA,SAASK,EAAAA,CAAyBhZ,CAAI,CAAA,CACpC,OAAO6F,EAAqB8S,CAAAA,EAAAA,CAAQ,UAAW,SAAiBM,CAAAA,CAAe,CAC7E,IAAK,CAAA,EAAA,CAAKjZ,EACV,IAAK,CAAA,IAAA,CAAO,CACV,OAASiZ,CAAAA,CAAAA,CACT,aAAc,IACd,CAAA,QAAA,CAAU,EACV,CAAA,MAAA,CAAQ,EAAC,CACT,eAAgB,IAClB,EACF,CAAC,CACH,CACA,SAASC,EAAgBC,CAAAA,CAAAA,CAAW3E,EAAa,CAC/C,IAAI4E,EAAYD,CAAU,CAAA,UAAA,CAC1B,OAAKC,CACHA,GAAAA,CAAAA,CAAYD,EAAU,UAAgB,CAAA,IAAIE,EAAQ3Y,CAAAA,EAAAA,CAAY,CAC5D,MAAQ,CAAA,GACR,SAAWyY,CAAAA,CAAAA,CACX,YAAa3E,CACf,CAAC,EACD4E,CAAU,CAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,MAAA,CAAO,CAC1B,OAAS,CAAA,MACX,CAAC,CAEIA,CAAAA,CAAAA,CAAAA,CAAU,KAAM,CAAA,SAAS,CAClC,CACA,SAASE,GAAmBH,CAAW,CAAA,CACrC,OAAOA,CAAa,EAAA,OAAOA,EAAU,SAAc,EAAA,UACrD,CACA,SAASI,EAAAA,CAAiB/W,EAAI,CAC5B,IAAI2W,EAAY3W,CAAG,CAAA,SAAA,CACjBgS,CAAchS,CAAAA,CAAAA,CAAG,YACnB,OAAO8W,EAAAA,CAAmBH,CAAS,CAAI,CAAA,OAAA,CAAQ,QAAQA,CAAU,CAAA,SAAA,EAAW,CAAE,CAAA,IAAA,CAAK,SAAUK,CAAO,CAAA,CAClG,OAAOA,CAAM,CAAA,GAAA,CAAI,SAAUC,CAAM,CAAA,CAC/B,OAAOA,CAAAA,CAAK,IACd,CAAC,CAAA,CAAE,OAAO,SAAUljB,CAAAA,CAAM,CACxB,OAAOA,CAAAA,GAASmK,EAClB,CAAC,CACH,CAAC,CAAIwY,CAAAA,EAAAA,CAAgBC,EAAW3E,CAAW,CAAA,CAAE,cAAe,CAAA,WAAA,EAC9D,CACA,SAASkF,EAAmBlX,CAAAA,CAAAA,CAAIjM,EAAM,CACpC,IAAI4iB,EAAY3W,CAAG,CAAA,SAAA,CACjBgS,EAAchS,CAAG,CAAA,WAAA,CACnB,CAAC8W,EAAmBH,CAAAA,CAAS,GAAK5iB,CAASmK,GAAAA,EAAAA,EAAcwY,GAAgBC,CAAW3E,CAAAA,CAAW,CAAE,CAAA,GAAA,CAAI,CACnG,IAAMje,CAAAA,CACR,CAAC,CAAE,CAAA,KAAA,CAAMoB,EAAG,EACd,CACA,SAASgiB,EAAmBnX,CAAAA,CAAAA,CAAIjM,EAAM,CACpC,IAAI4iB,EAAY3W,CAAG,CAAA,SAAA,CACjBgS,EAAchS,CAAG,CAAA,WAAA,CACnB,CAAC8W,EAAAA,CAAmBH,CAAS,CAAK5iB,EAAAA,CAAAA,GAASmK,IAAcwY,EAAgBC,CAAAA,CAAAA,CAAW3E,CAAW,CAAE,CAAA,MAAA,CAAOje,CAAI,CAAE,CAAA,KAAA,CAAMoB,EAAG,EACzH,CACA,SAASiiB,EAAIzmB,CAAAA,CAAAA,CAAI,CACf,OAAOsJ,EAAAA,CAAS,UAAY,CAC1B,OAAAlC,EAAI,CAAA,UAAA,CAAa,GACVpH,CAAG,EACZ,CAAC,CACH,CACA,SAAS0mB,EAAW,EAAA,CAClB,IAAIC,CAAW,CAAA,CAAC,UAAU,aAAiB,EAAA,UAAA,CAAW,KAAK,SAAU,CAAA,SAAS,CAAK,EAAA,CAAC,iBAAiB,IAAK,CAAA,SAAA,CAAU,SAAS,CAC7H,CAAA,GAAI,CAACA,CAAY,EAAA,CAAC,UAAU,SAAW,CAAA,OAAO,QAAQ,OAAQ,EAAA,CAC9D,IAAIC,CACJ,CAAA,OAAO,IAAI,OAAQ,CAAA,SAAUve,CAAS,CAAA,CACpC,IAAIwe,CAAS,CAAA,UAAY,CACvB,OAAO,SAAA,CAAU,WAAY,CAAA,OAAA,CAAQxe,CAAO,CAC9C,CAAA,CACAue,EAAa,WAAYC,CAAAA,CAAAA,CAAQ,GAAG,CACpCA,CAAAA,CAAAA,GACF,CAAC,CAAA,CAAE,QAAQ,UAAY,CACrB,OAAO,aAAcD,CAAAA,CAAU,CACjC,CAAC,CACH,CACA,IAAIvX,EAAAA,CACJ,SAASyX,EAAaC,CAAAA,CAAAA,CAAM,CAC1B,OAAO,EAAE,SAAUA,CACrB,CAAA,CACA,IAAIC,EAAW,CAAA,SAAUC,CAAYvpB,CAAAA,CAAAA,CAAI,CACvC,GAAI,IAAA,CACFQ,EAAO,IAAM,CAAA,SAAA,CAAU,OAAS,CAC9B,CAAA,CAAG,EACH,IAAM+oB,CAAAA,CAAAA,CACN,GAAI,SAAU,CAAA,MAAA,CAAS,EAAIvpB,CAAKupB,CAAAA,CAClC,EAAI,CACF,CAAA,CAAG,CACL,CAAC,OACI,CACL,IAAIxmB,EAAK,IAAIumB,EAAAA,CACb,OAAIC,CAAc,EAAA,GAAA,GAAOA,GACvB/oB,CAAOuC,CAAAA,CAAAA,CAAIwmB,CAAU,CAEhBxmB,CAAAA,CACT,CACF,CACA/B,CAAAA,CAAAA,CAAMsoB,GAAS,SAAY3X,EAAAA,EAAAA,CAAK,CAC9B,GAAA,CAAK,SAAU6X,CAAU,CAAA,CACvB,OAAAC,EAAY,CAAA,IAAA,CAAMD,CAAQ,CACnB,CAAA,IACT,EACA,MAAQ,CAAA,SAAU7oB,EAAK,CACrB,OAAA0c,GAAS,IAAM1c,CAAAA,CAAAA,CAAKA,CAAG,CAChB,CAAA,IACT,CACA,CAAA,OAAA,CAAS,SAAUL,CAAM,CAAA,CACvB,IAAIiK,CAAQ,CAAA,IAAA,CACZ,OAAAjK,CAAK,CAAA,OAAA,CAAQ,SAAUK,CAAK,CAAA,CAC1B,OAAO0c,EAAS9S,CAAAA,CAAAA,CAAO5J,EAAKA,CAAG,CACjC,CAAC,CACM,CAAA,IACT,CACA,CAAA,MAAA,CAAQ,SAAUA,CAAK,CAAA,CACrB,IAAI0oB,CAAOK,CAAAA,EAAAA,CAAoB,IAAI,CAAE,CAAA,IAAA,CAAK/oB,CAAG,CAAE,CAAA,KAAA,CAC/C,OAAO0oB,CAAQ/Y,EAAAA,EAAAA,CAAI+Y,EAAK,IAAM1oB,CAAAA,CAAG,GAAK,CAAK2P,EAAAA,EAAAA,CAAI+Y,CAAK,CAAA,EAAA,CAAI1oB,CAAG,CAAK,EAAA,CAClE,CACF,CAAGgR,CAAAA,EAAAA,CAAG9M,EAAc,CAAI,CAAA,UAAY,CAClC,OAAO6kB,EAAAA,CAAoB,IAAI,CACjC,CAAA,CAAG/X,IACH,CAAA,SAAS0L,GAASsM,CAAQ1pB,CAAAA,CAAAA,CAAMD,CAAI,CAAA,CAClC,IAAImlB,CAAO7U,CAAAA,EAAAA,CAAIrQ,EAAMD,CAAE,CAAA,CACvB,GAAI,CAAMmlB,KAAAA,CAAAA,CAAI,EACd,CAAIA,GAAAA,CAAAA,CAAO,EAAG,MAAM,UAAA,GACpB,GAAIiE,EAAAA,CAAaO,CAAM,CAAG,CAAA,OAAOnpB,EAAOmpB,CAAQ,CAAA,CAC9C,KAAM1pB,CACN,CAAA,EAAA,CAAID,EACJ,CAAG,CAAA,CACL,CAAC,CACD,CAAA,IAAI4pB,EAAOD,CAAO,CAAA,CAAA,CACdE,EAAQF,CAAO,CAAA,CAAA,CACnB,GAAIrZ,EAAItQ,CAAAA,CAAAA,CAAI2pB,EAAO,IAAI,CAAA,CAAI,CACzB,CAAA,OAAAC,EAAOvM,EAASuM,CAAAA,CAAAA,CAAM3pB,EAAMD,CAAE,CAAA,CAAI2pB,EAAO,CAAI,CAAA,CAC3C,KAAM1pB,CACN,CAAA,EAAA,CAAID,EACJ,CAAG,CAAA,CAAA,CACH,EAAG,IACH,CAAA,CAAA,CAAG,IACL,CACO8pB,CAAAA,EAAAA,CAAUH,CAAM,CAAA,CAEzB,GAAIrZ,EAAIrQ,CAAAA,CAAAA,CAAM0pB,EAAO,EAAE,CAAA,CAAI,EACzB,OAAAE,CAAAA,CAAQxM,GAASwM,CAAO5pB,CAAAA,CAAAA,CAAMD,CAAE,CAAI2pB,CAAAA,CAAAA,CAAO,EAAI,CAC7C,IAAA,CAAM1pB,EACN,EAAID,CAAAA,CAAAA,CACJ,CAAG,CAAA,CAAA,CACH,EAAG,IACH,CAAA,CAAA,CAAG,IACL,CACO8pB,CAAAA,EAAAA,CAAUH,CAAM,CAErBrZ,CAAAA,EAAAA,CAAIrQ,EAAM0pB,CAAO,CAAA,IAAI,EAAI,CAC3BA,GAAAA,CAAAA,CAAO,KAAO1pB,CACd0pB,CAAAA,CAAAA,CAAO,EAAI,IACXA,CAAAA,CAAAA,CAAO,CAAIE,CAAAA,CAAAA,CAAQA,EAAM,CAAI,CAAA,CAAA,CAAI,GAE/BvZ,EAAItQ,CAAAA,CAAAA,CAAI2pB,EAAO,EAAE,CAAA,CAAI,IACvBA,CAAO,CAAA,EAAA,CAAK3pB,EACZ2pB,CAAO,CAAA,CAAA,CAAI,KACXA,CAAO,CAAA,CAAA,CAAIA,EAAO,CAAIA,CAAAA,CAAAA,CAAO,CAAE,CAAA,CAAA,CAAI,EAAI,CAEzC,CAAA,CAAA,IAAII,EAAiB,CAACJ,CAAAA,CAAO,EACzBC,CAAQ,EAAA,CAACD,EAAO,CAClBF,EAAAA,EAAAA,CAAYE,EAAQC,CAAI,CAAA,CAEtBC,GAASE,CACXN,EAAAA,EAAAA,CAAYE,EAAQE,CAAK,EAAA,CAE7B,CACA,SAASJ,GAAYE,CAAQK,CAAAA,CAAAA,CAAQ,CACnC,SAASC,CAAAA,CAAaN,EAAQhY,CAAI,CAAA,CAChC,IAAI1R,CAAO0R,CAAAA,CAAAA,CAAG,KACZ3R,CAAK2R,CAAAA,CAAAA,CAAG,GACRxR,CAAIwR,CAAAA,CAAAA,CAAG,EACPuY,CAAIvY,CAAAA,CAAAA,CAAG,CACT0L,CAAAA,EAAAA,CAASsM,EAAQ1pB,CAAMD,CAAAA,CAAE,EACrBG,CAAG8pB,EAAAA,CAAAA,CAAaN,EAAQxpB,CAAC,CAAA,CACzB+pB,GAAGD,CAAaN,CAAAA,CAAAA,CAAQO,CAAC,EAC/B,CACKd,GAAaY,CAAM,CAAA,EAAGC,EAAaN,CAAQK,CAAAA,CAAM,EACxD,CACA,SAASG,GAAcC,CAAWC,CAAAA,CAAAA,CAAW,CAC3C,IAAIC,CAAAA,CAAKZ,GAAoBW,CAAS,CAAA,CAClCE,EAAcD,CAAG,CAAA,IAAA,GACrB,GAAIC,CAAAA,CAAY,KAAM,OAAO,CAAA,CAAA,CAK7B,QAJI1mB,CAAI0mB,CAAAA,CAAAA,CAAY,KAChBC,CAAAA,CAAAA,CAAKd,GAAoBU,CAAS,CAAA,CAClCK,EAAcD,CAAG,CAAA,IAAA,CAAK3mB,EAAE,IAAI,CAAA,CAC5BvE,EAAImrB,CAAY,CAAA,KAAA,CACb,CAACF,CAAY,CAAA,IAAA,EAAQ,CAACE,CAAY,CAAA,IAAA,EAAM,CAC7C,GAAIna,EAAAA,CAAIhR,CAAE,CAAA,IAAA,CAAMuE,EAAE,EAAE,CAAA,EAAK,GAAKyM,EAAIhR,CAAAA,CAAAA,CAAE,GAAIuE,CAAE,CAAA,IAAI,GAAK,CAAG,CAAA,OAAO,GAC7DyM,EAAIzM,CAAAA,CAAAA,CAAE,KAAMvE,CAAE,CAAA,IAAI,EAAI,CAAIuE,CAAAA,CAAAA,CAAAA,CAAK0mB,CAAcD,CAAAA,CAAAA,CAAG,KAAKhrB,CAAE,CAAA,IAAI,GAAG,KAAQA,CAAAA,CAAAA,CAAAA,CAAKmrB,EAAcD,CAAG,CAAA,IAAA,CAAK3mB,EAAE,IAAI,CAAA,EAAG,MAC5G,CACA,OAAO,EACT,CACA,SAAS6lB,GAAoBL,CAAM,CAAA,CACjC,IAAIqB,CAAAA,CAAQtB,GAAaC,CAAI,CAAA,CAAI,KAAO,CACtC,CAAA,CAAG,EACHA,CACF,CAAA,CACA,OAAO,CACL,IAAA,CAAM,SAAU1oB,CAAK,CAAA,CAEnB,QADIgqB,CAAc,CAAA,SAAA,CAAU,OAAS,CAC9BD,CAAAA,CAAAA,EACL,OAAQA,CAAAA,CAAM,GACZ,OAEE,GADAA,CAAAA,CAAM,EAAI,CACNC,CAAAA,CAAAA,CACF,KAAOD,CAAM,CAAA,CAAA,CAAE,GAAKpa,EAAI3P,CAAAA,CAAAA,CAAK+pB,EAAM,CAAE,CAAA,IAAI,EAAI,CAAGA,EAAAA,CAAAA,CAAQ,CACtD,EAAA,CAAIA,EACJ,CAAGA,CAAAA,CAAAA,CAAM,EAAE,CACX,CAAA,CAAA,CAAG,CACL,CAEA,CAAA,KAAA,KAAOA,EAAM,CAAE,CAAA,CAAA,EAAGA,EAAQ,CACxB,EAAA,CAAIA,EACJ,CAAGA,CAAAA,CAAAA,CAAM,EAAE,CACX,CAAA,CAAA,CAAG,CACL,CAAA,CAEJ,KAEE,CAAA,CAAA,GADAA,EAAM,CAAI,CAAA,CAAA,CACN,CAACC,CAAera,EAAAA,EAAAA,CAAI3P,EAAK+pB,CAAM,CAAA,CAAA,CAAE,EAAE,CAAK,EAAA,CAAA,CAAG,OAAO,CACpD,KAAA,CAAOA,EAAM,CACb,CAAA,IAAA,CAAM,CACR,CAAA,CAAA,CACF,KACE,CAAA,CAAA,GAAIA,EAAM,CAAE,CAAA,CAAA,CAAG,CACbA,CAAM,CAAA,CAAA,CAAI,EACVA,CAAQ,CAAA,CACN,GAAIA,CACJ,CAAA,CAAA,CAAGA,EAAM,CAAE,CAAA,CAAA,CACX,EAAG,CACL,CAAA,CACA,QACF,CACF,KACEA,CAAAA,CAAAA,CAAAA,CAAQA,EAAM,GAClB,CAEF,OAAO,CACL,IAAA,CAAM,EACR,CACF,CACF,CACF,CACA,SAASZ,GAAUH,CAAQ,CAAA,CACzB,IAAIhY,CAAIsC,CAAAA,CAAAA,CACJkR,CAAUxT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKgY,EAAO,CAAO,IAAA,IAAA,EAAQhY,IAAO,KAAS,CAAA,CAAA,KAAA,CAAA,CAASA,EAAG,CAAM,GAAA,CAAA,GAAA,CAAA,CAAQsC,EAAK0V,CAAO,CAAA,CAAA,IAAO,MAAQ1V,CAAO,GAAA,KAAA,CAAA,CAAS,OAASA,CAAG,CAAA,CAAA,GAAM,GAC5IiW,CAAI/E,CAAAA,CAAAA,CAAO,CAAI,CAAA,GAAA,CAAMA,EAAO,CAAK,CAAA,CAAA,GAAA,CAAM,GAC3C,GAAI+E,CAAAA,CAAG,CACL,IAAI/pB,CAAAA,CAAI+pB,IAAM,GAAM,CAAA,GAAA,CAAM,IACtBU,CAAYlrB,CAAAA,CAAAA,CAAS,EAAIiqB,CAAAA,CAAM,EAC/BkB,CAAelB,CAAAA,CAAAA,CAAOO,CAAC,CAAA,CAC3BP,EAAO,IAAOkB,CAAAA,CAAAA,CAAa,KAC3BlB,CAAO,CAAA,EAAA,CAAKkB,EAAa,EACzBlB,CAAAA,CAAAA,CAAOO,CAAC,CAAIW,CAAAA,CAAAA,CAAaX,CAAC,CAC1BU,CAAAA,CAAAA,CAAUV,CAAC,CAAIW,CAAAA,CAAAA,CAAa1qB,CAAC,CAC7BwpB,CAAAA,CAAAA,CAAOxpB,CAAC,CAAA,CAAIyqB,EACZA,CAAU,CAAA,CAAA,CAAIE,GAAaF,CAAS,EACtC,CACAjB,CAAO,CAAA,CAAA,CAAImB,GAAanB,CAAM,EAChC,CACA,SAASmB,EAAAA,CAAanZ,EAAI,CACxB,IAAIuY,EAAIvY,CAAG,CAAA,CAAA,CACT,CAAIA,CAAAA,CAAAA,CAAG,EACT,OAAQuY,CAAAA,CAAAA,CAAI,EAAI,IAAK,CAAA,GAAA,CAAIA,EAAE,CAAG,CAAA,CAAA,CAAE,CAAC,CAAIA,CAAAA,CAAAA,CAAE,EAAI,CAAI,CAAA,CAAA,CAAE,EAAI,CAAK,EAAA,CAC5D,CACA,SAASa,EAAAA,CAAuBpB,CAAQK,CAAAA,CAAAA,CAAQ,CAC9C,OAAA1pB,CAAAA,CAAK0pB,CAAM,CAAE,CAAA,OAAA,CAAQ,SAAUgB,CAAM,CAAA,CAC/BrB,EAAOqB,CAAI,CAAA,CAAGvB,GAAYE,CAAOqB,CAAAA,CAAI,EAAGhB,CAAOgB,CAAAA,CAAI,CAAC,CAAOrB,CAAAA,CAAAA,CAAOqB,CAAI,CAAI/mB,CAAAA,EAAAA,CAAsB+lB,EAAOgB,CAAI,CAAC,EAClH,CAAC,CAAA,CACMrB,CACT,CACA,SAASsB,GAAeC,CAAKC,CAAAA,CAAAA,CAAK,CAChC,OAAOD,CAAAA,CAAI,KAAOC,CAAI,CAAA,GAAA,EAAO,OAAO,IAAKD,CAAAA,CAAG,CAAE,CAAA,IAAA,CAAK,SAAUvqB,CAAK,CAAA,CAChE,OAAOwqB,CAAIxqB,CAAAA,CAAG,GAAKwpB,EAAcgB,CAAAA,CAAAA,CAAIxqB,CAAG,CAAGuqB,CAAAA,CAAAA,CAAIvqB,CAAG,CAAC,CACrD,CAAC,CACH,CACA,IAAIyqB,EAAQ,CAAA,EACRC,CAAAA,EAAAA,CAAkB,EAClBC,CAAAA,EAAAA,CAAiB,GACrB,SAASC,EAAAA,CAAwBP,EAAMQ,CAAY,CAAA,CACjDT,GAAuBM,EAAiBL,CAAAA,CAAI,EACvCM,EACHA,GAAAA,EAAAA,CAAiB,GACjB,UAAW,CAAA,UAAY,CACrBA,EAAiB,CAAA,CAAA,CAAA,CACjB,IAAIlU,CAAAA,CAAQiU,GACZA,EAAkB,CAAA,GAClBI,EAAqBrU,CAAAA,CAAAA,CAAO,EAAK,EACnC,CAAA,CAAG,CAAC,CAER,EAAA,CACA,SAASqU,EAAqBC,CAAAA,CAAAA,CAAcC,EAA4B,CAClEA,CAAAA,GAA+B,SACjCA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAE/B,IAAIC,CAAAA,CAAkB,IAAI,GAC1B,CAAA,GAAIF,EAAa,GACf,CAAA,IAAA,IAAS1X,EAAK,CAAGrC,CAAAA,CAAAA,CAAK,OAAO,MAAOyZ,CAAAA,EAAK,EAAGpX,CAAKrC,CAAAA,CAAAA,CAAG,OAAQqC,CAAM,EAAA,CAAA,CAChE,IAAI6X,CAAWla,CAAAA,CAAAA,CAAGqC,CAAE,CAAA,CACpB8X,GAAwBD,CAAUH,CAAAA,CAAAA,CAAcE,EAAiBD,CAA0B,EAC7F,MAEShrB,IAAAA,IAAAA,CAAAA,IAAO+qB,EAAc,CAC5B,IAAItU,EAAQ,wBAAyB,CAAA,IAAA,CAAKzW,CAAG,CAC7C,CAAA,GAAIyW,EAAO,CACT,IAAI2U,CAAS3U,CAAAA,CAAAA,CAAM,CAAC,CAClBnG,CAAAA,CAAAA,CAAYmG,EAAM,CAAC,CAAA,CACjByU,EAAWT,EAAM,CAAA,QAAA,CAAS,OAAOW,CAAQ,CAAA,GAAG,EAAE,MAAO9a,CAAAA,CAAS,CAAC,CAC/D4a,CAAAA,CAAAA,EAAUC,GAAwBD,CAAUH,CAAAA,CAAAA,CAAcE,CAAiBD,CAAAA,CAA0B,EAC3G,CACF,CAEFC,EAAgB,OAAQ,CAAA,SAAUI,EAAS,CACzC,OAAOA,GACT,CAAC,EACH,CACA,SAASF,GAAwBD,CAAUH,CAAAA,CAAAA,CAAcO,EAAoBN,CAA4B,CAAA,CAEvG,IADIO,IAAAA,CAAAA,CAAoB,EACflY,CAAAA,CAAAA,CAAK,EAAGrC,CAAK,CAAA,MAAA,CAAO,QAAQka,CAAS,CAAA,OAAA,CAAQ,KAAK,CAAG7X,CAAAA,CAAAA,CAAKrC,EAAG,MAAQqC,CAAAA,CAAAA,EAAAA,CAAM,CAKlF,IAJIC,IAAAA,CAAAA,CAAKtC,EAAGqC,CAAE,CAAA,CACZiE,CAAYhE,CAAAA,CAAAA,CAAG,CAAC,CAChBkY,CAAAA,CAAAA,CAAUlY,EAAG,CAAC,CAAA,CACZmY,EAAkB,EAAC,CACdC,EAAK,CAAGC,CAAAA,CAAAA,CAAYH,EAASE,CAAKC,CAAAA,CAAAA,CAAU,OAAQD,CAAM,EAAA,CAAA,CACjE,IAAI5Y,CAAQ6Y,CAAAA,CAAAA,CAAUD,CAAE,CAAA,CACpBpB,GAAeS,CAAcjY,CAAAA,CAAAA,CAAM,MAAM,CAC3CA,CAAAA,CAAAA,CAAM,YAAY,OAAQ,CAAA,SAAUuY,EAAS,CAC3C,OAAOC,EAAmB,GAAID,CAAAA,CAAO,CACvC,CAAC,CAAA,CACQL,GACTS,CAAgB,CAAA,IAAA,CAAK3Y,CAAK,EAE9B,CACIkY,CAA4BO,EAAAA,CAAAA,CAAkB,KAAK,CAACjU,CAAAA,CAAWmU,CAAe,CAAC,EACrF,CACA,GAAIT,CAAAA,CACF,QAASY,CAAK,CAAA,CAAA,CAAGC,EAAsBN,CAAmBK,CAAAA,CAAAA,CAAKC,EAAoB,MAAQD,CAAAA,CAAAA,EAAAA,CAAM,CAC/F,IAAIE,EAAKD,CAAoBD,CAAAA,CAAE,EAC7BtU,CAAYwU,CAAAA,CAAAA,CAAG,CAAC,CAChBL,CAAAA,CAAAA,CAAkBK,EAAG,CAAC,CAAA,CACxBZ,EAAS,OAAQ,CAAA,KAAA,CAAM5T,CAAS,CAAImU,CAAAA,EACtC,CAEJ,CACA,SAASM,EAAUvd,CAAAA,CAAAA,CAAI,CACrB,IAAIub,CAAAA,CAAQvb,EAAG,MACXmZ,CAAAA,CAAAA,CAAYnZ,EAAG,KAAM,CAAA,SAAA,CACzB,GAAIub,CAAM,CAAA,aAAA,EAAiBvb,EAAG,KAAO,CAAA,OAAOub,EAAM,cAAe,CAAA,IAAA,CAAK,UAAY,CAChF,OAAOA,CAAM,CAAA,WAAA,CAAcnc,GAAUmc,CAAM,CAAA,WAAW,EAAIvb,CAC5D,CAAC,EACDub,CAAM,CAAA,aAAA,CAAgB,GACtBA,CAAM,CAAA,WAAA,CAAc,KACpBA,CAAM,CAAA,YAAA,CAAe,GACrB,IAAIiC,CAAAA,CAAgBjC,EAAM,aACtBkC,CAAAA,CAAAA,CAAkB,IAAK,CAAA,KAAA,CAAMzd,EAAG,KAAQ,CAAA,EAAE,EAC1C0d,CAAkB,CAAA,CAAA,CAAA,CACtB,SAASC,CAAmB,EAAA,CAC1B,GAAIpC,CAAM,CAAA,aAAA,GAAkBiC,EAAe,MAAM,IAAItmB,GAAW,cAAe,CAAA,yBAAyB,CAC1G,CACA,IAAI0mB,EAAiBrC,CAAM,CAAA,cAAA,CACzBsC,EAAqB,IACrBC,CAAAA,CAAAA,CAAa,GACXC,CAAY,CAAA,UAAY,CAC1B,OAAO,IAAIrjB,GAAa,SAAUc,CAAAA,CAASC,EAAQ,CAEjD,GADAkiB,GACI,CAAA,CAACxE,EAAW,MAAM,IAAIjiB,EAAW,CAAA,UAAA,CACrC,IAAI0lB,CAAS5c,CAAAA,CAAAA,CAAG,KACZmS,CAAMoJ,CAAAA,CAAAA,CAAM,YAAc,CAACkC,CAAAA,CAAkBtE,EAAU,IAAKyD,CAAAA,CAAM,EAAIzD,CAAU,CAAA,IAAA,CAAKyD,EAAQa,CAAe,CAAA,CAChH,GAAI,CAACtL,CAAAA,CAAK,MAAM,IAAIjb,GAAW,UAC/Bib,CAAAA,CAAAA,CAAI,QAAUtD,EAAmBpT,CAAAA,CAAM,EACvC0W,CAAI,CAAA,SAAA,CAAY7T,GAAK0B,CAAG,CAAA,cAAc,EACtCmS,CAAI,CAAA,eAAA,CAAkB7T,GAAK,SAAUN,CAAAA,CAAG,CAEtC,GADA6f,CAAAA,CAAqB1L,CAAI,CAAA,WAAA,CACrBoJ,EAAM,UAAc,EAAA,CAACvb,EAAG,QAAS,CAAA,YAAA,CAAc,CACjDmS,CAAI,CAAA,OAAA,CAAUpD,GACd8O,CAAmB,CAAA,KAAA,GACnB1L,CAAI,CAAA,MAAA,CAAO,OACX,CAAA,IAAI6L,EAAS7E,CAAU,CAAA,cAAA,CAAeyD,CAAM,CAAA,CAC5CoB,EAAO,SAAYA,CAAAA,CAAAA,CAAO,QAAU1f,EAAK,CAAA,UAAY,CACnD7C,CAAO,CAAA,IAAIvE,GAAW,cAAe,CAAA,WAAA,CAAY,OAAO0lB,CAAQ,CAAA,eAAe,CAAC,CAAC,EACnF,CAAC,EACH,CAAA,KAAO,CACLiB,CAAAA,CAAmB,QAAUhP,EAAmBpT,CAAAA,CAAM,EACtD,IAAIwiB,CAAAA,CAASjgB,EAAE,UAAa,CAAA,IAAA,CAAK,IAAI,CAAG,CAAA,EAAE,EAAI,CAAIA,CAAAA,CAAAA,CAAE,WACpD8f,CAAaG,CAAAA,CAAAA,CAAS,EACtBje,CAAG,CAAA,KAAA,CAAQmS,CAAI,CAAA,MAAA,CACXuL,GACF9H,EAAoB5V,CAAAA,CAAAA,CAAI6d,CAAkB,CAE5C3I,CAAAA,EAAAA,CAAalV,EAAIie,CAAS,CAAA,EAAA,CAAIJ,EAAoBpiB,CAAM,EAC1D,CACF,CAAGA,CAAAA,CAAM,EACT0W,CAAI,CAAA,SAAA,CAAY7T,GAAK,UAAY,CAC/Buf,CAAqB,CAAA,IAAA,CACrB,IAAIvO,CAAQtP,CAAAA,CAAAA,CAAG,MAAQmS,CAAI,CAAA,MAAA,CACvB+L,EAAmBxrB,EAAM4c,CAAAA,CAAAA,CAAM,gBAAgB,CACnD,CAAA,GAAI4O,EAAiB,MAAS,CAAA,CAAA,CAAG,GAAI,CACnC,IAAI1M,EAAWlC,CAAM,CAAA,WAAA,CAAYwB,EAAoBoN,CAAAA,CAAgB,EAAG,UAAU,CAAA,CAClF,GAAI3C,CAAM,CAAA,UAAA,CAAYpD,GAAiBnY,CAAIsP,CAAAA,CAAAA,CAAOkC,CAAQ,CACxDuE,CAAAA,KAAAA,GAAAA,EAAAA,CAA2B/V,EAAIA,CAAG,CAAA,SAAA,CAAWwR,CAAQ,CACjD,CAAA,CAAC4G,GAAsBpY,CAAIwR,CAAAA,CAAQ,CAAK,EAAA,CAACkM,EAC3C,OAAQ,OAAA,CAAA,IAAA,CAAK,kLAAkL,CAC/LpO,CAAAA,CAAAA,CAAM,OACNmO,CAAAA,CAAAA,CAAkBnO,EAAM,OAAU,CAAA,CAAA,CAClCoO,EAAkB,CACXliB,CAAAA,CAAAA,CAAAA,CAAQuiB,GAAW,CAAA,CAG9BrJ,GAAyB1U,CAAIwR,CAAAA,CAAQ,EACvC,CAAA,KAAY,EACZ/Q,EAAAA,CAAY,KAAKT,CAAE,CAAA,CACnBsP,EAAM,eAAkBhR,CAAAA,EAAAA,CAAK,SAAUkR,CAAI,CAAA,CACzC+L,EAAM,OAAU,CAAA,CAAA,CAAA,CAChBvb,EAAG,EAAG,CAAA,eAAe,EAAE,IAAKwP,CAAAA,CAAE,EAChC,CAAC,EACDF,CAAM,CAAA,OAAA,CAAUhR,GAAK,SAAUkR,CAAAA,CAAI,CACjCxP,CAAG,CAAA,EAAA,CAAG,OAAO,CAAE,CAAA,IAAA,CAAKwP,CAAE,EACxB,CAAC,EACGsO,CAAYpE,EAAAA,EAAAA,CAAmB1Z,EAAG,KAAO4c,CAAAA,CAAM,CACnDphB,CAAAA,CAAAA,GACF,CAAGC,CAAAA,CAAM,EACX,CAAC,CAAA,CAAE,MAAM,SAAUM,CAAAA,CAAK,CACtB,OAAkDA,CAAAA,EAAI,MACpD,IAAK,eACH,GAAIwf,CAAAA,CAAM,eAAiB,CACzB,CAAA,OAAAA,CAAM,CAAA,cAAA,EAAA,CACN,QAAQ,IAAK,CAAA,qDAAqD,EAC3DwC,CAAU,EAAA,CAEnB,MACF,IAAK,cAAA,CACH,GAAIN,CAAkB,CAAA,CAAA,CACpB,OAAAA,CAAkB,CAAA,CAAA,CACXM,GAET,CAAA,KACJ,CACA,OAAOrjB,EAAAA,CAAa,MAAOqB,CAAAA,CAAG,CAChC,CAAC,CACH,EACA,OAAOrB,EAAAA,CAAa,KAAK,CAAC8iB,CAAAA,CAAAA,CAAgB,OAAO,SAAc,CAAA,GAAA,CAAc9iB,GAAa,OAAQ,EAAA,CAAImf,IAAY,EAAA,IAAA,CAAKkE,CAAS,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CACnJ,OAAAJ,GACApC,CAAAA,CAAAA,CAAM,kBAAoB,EAAC,CACpB7gB,GAAa,OAAQkf,CAAAA,EAAAA,CAAI,UAAY,CAC1C,OAAO5Z,EAAG,EAAG,CAAA,KAAA,CAAM,KAAKA,CAAG,CAAA,GAAG,CAChC,CAAC,CAAC,EAAE,IAAK,CAAA,SAASme,GAAiB,CACjC,GAAI5C,EAAM,iBAAkB,CAAA,MAAA,CAAS,EAAG,CACtC,IAAI6C,EAAe7C,CAAM,CAAA,iBAAA,CAAkB,OAAO3iB,EAAiBjB,CAAAA,EAAG,EACtE,OAAA4jB,CAAAA,CAAM,iBAAoB,CAAA,GACnB7gB,EAAa,CAAA,OAAA,CAAQkf,GAAI,UAAY,CAC1C,OAAOwE,CAAape,CAAAA,CAAAA,CAAG,GAAG,CAC5B,CAAC,CAAC,CAAE,CAAA,IAAA,CAAKme,CAAc,CACzB,CACF,CAAC,CACH,CAAC,CAAE,CAAA,OAAA,CAAQ,UAAY,CACjB5C,CAAAA,CAAM,gBAAkBiC,CAC1BjC,GAAAA,CAAAA,CAAM,kBAAoB,IAC1BA,CAAAA,CAAAA,CAAM,cAAgB,CAE1B,CAAA,EAAA,CAAC,EAAE,KAAM,CAAA,SAAUxf,EAAK,CACtBwf,CAAAA,CAAM,YAAcxf,CACpB,CAAA,GAAI,CACF8hB,CAAAA,EAAsBA,EAAmB,KAAM,GACjD,MAAa,EACb,OAAIL,CAAkBjC,GAAAA,CAAAA,CAAM,eAC1Bvb,CAAG,CAAA,MAAA,GAEEZ,EAAUrD,CAAAA,CAAG,CACtB,CAAC,CAAA,CAAE,QAAQ,UAAY,CACrBwf,CAAM,CAAA,YAAA,CAAe,GACrBqC,CAAe,GACjB,CAAC,CAAE,CAAA,IAAA,CAAK,UAAY,CAClB,GAAIE,EAAY,CACd,IAAIO,EAAe,EAAC,CACpBre,EAAG,MAAO,CAAA,OAAA,CAAQ,SAAU6K,CAAO,CAAA,CACjCA,CAAM,CAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,SAAUjI,EAAK,CACtCA,CAAAA,CAAI,OAAMyb,CAAa,CAAA,QAAA,CAAS,OAAOre,CAAG,CAAA,IAAA,CAAM,GAAG,CAAE,CAAA,MAAA,CAAO6K,EAAM,IAAM,CAAA,GAAG,EAAE,MAAOjI,CAAAA,CAAAA,CAAI,IAAI,CAAC,EAAI,IAAIuX,EAAAA,CAAS,KAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CACrI,EAAA,CAAC,EACDkE,CAAa,CAAA,QAAA,CAAS,OAAOre,CAAG,CAAA,IAAA,CAAM,GAAG,CAAE,CAAA,MAAA,CAAO6K,CAAM,CAAA,IAAA,CAAM,GAAG,CAAC,CAAA,CAAIwT,EAAa,QAAS,CAAA,MAAA,CAAOre,EAAG,IAAM,CAAA,GAAG,EAAE,MAAO6K,CAAAA,CAAAA,CAAM,KAAM,QAAQ,CAAC,EAAI,IAAIsP,EAAAA,CAAS,KAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACjL,CAAC,EACDjL,EAAaF,CAAAA,EAAgC,EAAE,IAAKqP,CAAAA,CAAY,EAChE/B,EAAqB+B,CAAAA,CAAAA,CAAc,EAAI,EACzC,CACA,OAAOre,CACT,CAAC,CACH,CACA,SAASse,EAAcC,CAAAA,CAAAA,CAAU,CAC/B,IAAIC,CAAAA,CAAW,SAAUjrB,CAAQ,CAAA,CAC7B,OAAOgrB,CAAS,CAAA,IAAA,CAAKhrB,CAAM,CAC7B,CAAA,CACAkrB,EAAU,SAAU9T,CAAAA,CAAO,CACzB,OAAO4T,CAAAA,CAAS,MAAM5T,CAAK,CAC7B,CACA+T,CAAAA,CAAAA,CAAYC,EAAKH,CAAQ,CAAA,CACzBI,EAAUD,CAAKF,CAAAA,CAAO,EACxB,SAASE,CAAAA,CAAKE,EAAS,CACrB,OAAO,SAAUhrB,CAAK,CAAA,CACpB,IAAIirB,CAAOD,CAAAA,CAAAA,CAAQhrB,CAAG,CACpBI,CAAAA,CAAAA,CAAQ6qB,CAAK,CAAA,KAAA,CACf,OAAOA,CAAK,CAAA,IAAA,CAAO7qB,EAAQ,CAACA,CAAAA,EAAS,OAAOA,CAAM,CAAA,IAAA,EAAS,WAAa7C,CAAQ6C,CAAAA,CAAK,EAAI,OAAQ,CAAA,GAAA,CAAIA,CAAK,CAAE,CAAA,IAAA,CAAKyqB,EAAWE,CAAO,CAAA,CAAIF,CAAUzqB,CAAAA,CAAK,EAAIA,CAAM,CAAA,IAAA,CAAKyqB,EAAWE,CAAO,CACzL,CACF,CACA,OAAOD,EAAKH,CAAQ,CAAA,EACtB,CACA,SAASO,GAAuB9e,CAAM+e,CAAAA,CAAAA,CAAaC,EAAW,CAC5D,IAAIvuB,CAAI,CAAA,SAAA,CAAU,OAClB,GAAIA,CAAAA,CAAI,EAAG,MAAM,IAAIwG,GAAW,eAAgB,CAAA,mBAAmB,EAEnE,IADIvE,IAAAA,CAAAA,CAAO,IAAI,KAAMjC,CAAAA,CAAAA,CAAI,CAAC,CACnB,CAAA,EAAEA,GAAGiC,CAAKjC,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAI,UAAUA,CAAC,CAAA,CACrCuuB,EAAYtsB,CAAK,CAAA,GAAA,GACjB,IAAI+e,CAAAA,CAASjd,GAAQ9B,CAAI,CAAA,CACzB,OAAO,CAACsN,CAAAA,CAAMyR,EAAQuN,CAAS,CACjC,CACA,SAASC,EAAAA,CAAsBlf,CAAIC,CAAAA,CAAAA,CAAMC,EAAYif,CAAmBF,CAAAA,CAAAA,CAAW,CACjF,OAAOvkB,EAAAA,CAAa,SAAU,CAAA,IAAA,CAAK,UAAY,CAC7C,IAAI8a,EAAYjb,EAAI,CAAA,SAAA,EAAaA,GAC7B4F,CAAQH,CAAAA,CAAAA,CAAG,mBAAmBC,CAAMC,CAAAA,CAAAA,CAAYF,EAAG,SAAWmf,CAAAA,CAAiB,EACnFhf,CAAM,CAAA,QAAA,CAAW,GACjB,IAAIxD,CAAAA,CAAY,CACd,KAAOwD,CAAAA,CAAAA,CACP,UAAWqV,CACb,CAAA,CACA,GAAI2J,CACFhf,CAAAA,CAAAA,CAAM,SAAWgf,CAAkB,CAAA,QAAA,CAAA,QAE/B,CACFhf,CAAAA,CAAM,MAAO,EAAA,CACbA,EAAM,QAAS,CAAA,SAAA,CAAY,GAC3BH,CAAG,CAAA,MAAA,CAAO,eAAiB,EAC7B,CAAA,MAAS1C,EAAI,CACX,OAAIA,EAAG,IAAStG,GAAAA,EAAAA,CAAS,cAAgBgJ,CAAG,CAAA,MAAA,IAAY,EAAEA,CAAAA,CAAG,MAAO,CAAA,cAAA,CAAiB,GACnF,OAAQ,CAAA,IAAA,CAAK,0BAA0B,CACvCA,CAAAA,CAAAA,CAAG,MAAM,CACP,eAAA,CAAiB,EACnB,CAAC,CAAA,CACMA,EAAG,IAAK,EAAA,CAAE,KAAK,UAAY,CAChC,OAAOkf,EAAsBlf,CAAAA,CAAAA,CAAIC,CAAMC,CAAAA,CAAAA,CAAY,KAAM+e,CAAS,CACpE,CAAC,CAEI7f,EAAAA,EAAAA,CAAU9B,CAAE,CACrB,CAEF,IAAI8hB,CAAmBnpB,CAAAA,EAAAA,CAAgBgpB,CAAS,CAC5CG,CAAAA,CAAAA,EACFlgB,IAEF,CAAA,IAAImgB,EACAhI,CAAkB3c,CAAAA,EAAAA,CAAa,MAAO,CAAA,UAAY,CAEpD,GADA2kB,CAAAA,CAAcJ,EAAU,IAAK9e,CAAAA,CAAAA,CAAOA,CAAK,CACrCkf,CAAAA,CAAAA,CACF,GAAID,CAAkB,CAAA,CACpB,IAAI9H,CAAc/b,CAAAA,EAAAA,CAAwB,KAAK,IAAM,CAAA,IAAI,EACzD8jB,CAAY,CAAA,IAAA,CAAK/H,CAAaA,CAAAA,CAAW,EAC3C,CAAW,KAAA,OAAO+H,EAAY,IAAS,EAAA,UAAA,EAAc,OAAOA,CAAY,CAAA,KAAA,EAAU,aAChFA,CAAcf,CAAAA,EAAAA,CAAce,CAAW,CAG7C,EAAA,CAAA,CAAG1iB,CAAS,CACZ,CAAA,OAAA,CAAQ0iB,GAAe,OAAOA,CAAAA,CAAY,IAAS,EAAA,UAAA,CAAa3kB,GAAa,OAAQ2kB,CAAAA,CAAW,EAAE,IAAK,CAAA,SAAU9pB,EAAG,CAClH,OAAO4K,EAAM,MAAS5K,CAAAA,CAAAA,CAAI6J,GAAU,IAAIlI,EAAAA,CAAW,gBAAgB,4DAA4D,CAAC,CAClI,CAAC,CAAA,CAAImgB,CAAgB,CAAA,IAAA,CAAK,UAAY,CACpC,OAAOgI,CACT,CAAC,CAAA,EAAG,KAAK,SAAU9pB,CAAAA,CAAG,CACpB,OAAI4pB,CAAAA,EAAmBhf,EAAM,QAAS,EAAA,CAC/BA,EAAM,WAAY,CAAA,IAAA,CAAK,UAAY,CACxC,OAAO5K,CACT,CAAC,CACH,CAAC,CAAA,CAAE,MAAM,SAAUyI,CAAAA,CAAG,CACpB,OAAAmC,CAAAA,CAAM,QAAQnC,CAAC,CAAA,CACRoB,GAAUpB,CAAC,CACpB,CAAC,CACH,CAAC,CACH,CACA,SAASshB,EAAI5qB,CAAAA,CAAAA,CAAGT,EAAO+T,CAAO,CAAA,CAE5B,QADIzU,CAASnC,CAAAA,CAAAA,CAAQsD,CAAC,CAAIA,CAAAA,CAAAA,CAAE,OAAU,CAAA,CAACA,CAAC,CAC/BhE,CAAAA,CAAAA,CAAI,EAAGA,CAAIsX,CAAAA,CAAAA,CAAO,EAAEtX,CAAG6C,CAAAA,CAAAA,CAAO,IAAKU,CAAAA,CAAK,EACjD,OAAOV,CACT,CACA,SAASgsB,EAAAA,CAA6BlL,EAAM,CAC1C,OAAO9jB,EAASA,CAAS,CAAA,GAAI8jB,CAAI,CAAA,CAAG,CAClC,KAAO,CAAA,SAAUvS,EAAW,CAC1B,IAAI+I,CAAQwJ,CAAAA,CAAAA,CAAK,MAAMvS,CAAS,CAAA,CAC5BkS,EAASnJ,CAAM,CAAA,MAAA,CACf2U,EAAc,EAAC,CACfC,EAAoB,EAAC,CACzB,SAASC,CAAkB/rB,CAAAA,CAAAA,CAASgsB,EAASC,CAAe,CAAA,CAC1D,IAAIC,CAAevO,CAAAA,EAAAA,CAAgB3d,CAAO,CAAA,CACtCmsB,EAAYN,CAAYK,CAAAA,CAAY,EAAIL,CAAYK,CAAAA,CAAY,GAAK,EAAC,CACtEE,EAAYpsB,CAAW,EAAA,IAAA,CAAO,EAAI,OAAOA,CAAAA,EAAY,SAAW,CAAIA,CAAAA,CAAAA,CAAQ,OAC5EqsB,CAAYL,CAAAA,CAAAA,CAAU,CACtBM,CAAAA,CAAAA,CAAe1vB,EAASA,CAAS,CAAA,GAAIqvB,CAAa,CAAA,CAAG,CACvD,IAAMI,CAAAA,CAAAA,CAAY,GAAG,MAAOH,CAAAA,CAAAA,CAAc,gBAAgB,CAAE,CAAA,MAAA,CAAOD,EAAc,IAAM,CAAA,GAAG,EAAIA,CAAc,CAAA,IAAA,CAC5G,aAAeA,CAAAA,CAAAA,CACf,UAAWI,CACX,CAAA,OAAA,CAASL,EACT,SAAWI,CAAAA,CAAAA,CACX,WAAY9O,EAAgBtd,CAAAA,CAAO,EACnC,MAAQ,CAAA,CAACqsB,GAAaJ,CAAc,CAAA,MACtC,CAAC,CAKD,CAAA,GAJAE,EAAU,IAAKG,CAAAA,CAAY,CACtBA,CAAAA,CAAAA,CAAa,cAChBR,CAAkB,CAAA,IAAA,CAAKQ,CAAY,CAEjCF,CAAAA,CAAAA,CAAY,EAAG,CACjB,IAAIG,GAAiBH,CAAc,GAAA,CAAA,CAAIpsB,EAAQ,CAAC,CAAA,CAAIA,EAAQ,KAAM,CAAA,CAAA,CAAGosB,EAAY,CAAC,CAAA,CAClFL,EAAkBQ,EAAgBP,CAAAA,CAAAA,CAAU,EAAGC,CAAa,EAC9D,CACA,OAAAE,CAAAA,CAAU,KAAK,SAAUprB,EAAAA,CAAGvE,GAAG,CAC7B,OAAOuE,GAAE,OAAUvE,CAAAA,EAAAA,CAAE,OACvB,CAAC,CAAA,CACM8vB,CACT,CACA,IAAIhZ,CAAayY,CAAAA,CAAAA,CAAkB1L,EAAO,UAAW,CAAA,OAAA,CAAS,EAAGA,CAAO,CAAA,UAAU,EAClFwL,CAAY,CAAA,KAAK,EAAI,CAACvY,CAAU,EAChC,IAASpC,IAAAA,CAAAA,CAAK,EAAGrC,CAAKwR,CAAAA,CAAAA,CAAO,QAASnP,CAAKrC,CAAAA,CAAAA,CAAG,MAAQqC,CAAAA,CAAAA,EAAAA,CAAM,CAC1D,IAAIlC,CAAAA,CAAQH,EAAGqC,CAAE,CAAA,CACjB6a,EAAkB/c,CAAM,CAAA,OAAA,CAAS,EAAGA,CAAK,EAC3C,CACA,SAASwd,CAAAA,CAAcxsB,EAAS,CAC9B,IAAIJ,EAASisB,CAAYlO,CAAAA,EAAAA,CAAgB3d,CAAO,CAAC,EACjD,OAAOJ,CAAAA,EAAUA,EAAO,CAAC,CAC3B,CACA,SAAS6sB,CAAAA,CAAe/V,EAAOsV,CAAS,CAAA,CACtC,OAAO,CACL,IAAA,CAAMtV,EAAM,IAAS,GAAA,CAAA,CAAI,EAAIA,CAAM,CAAA,IAAA,CACnC,KAAOiV,CAAAA,EAAAA,CAAIjV,EAAM,KAAOA,CAAAA,CAAAA,CAAM,UAAYgK,CAAK,CAAA,OAAA,CAAUA,EAAK,OAASsL,CAAAA,CAAO,EAC9E,SAAW,CAAA,CAAA,CAAA,CACX,MAAOL,EAAIjV,CAAAA,CAAAA,CAAM,MAAOA,CAAM,CAAA,SAAA,CAAYgK,EAAK,OAAUA,CAAAA,CAAAA,CAAK,OAASsL,CAAAA,CAAO,EAC9E,SAAW,CAAA,CAAA,CACb,CACF,CACA,SAASU,EAAiBlO,CAAK,CAAA,CAC7B,IAAIxP,CAAQwP,CAAAA,CAAAA,CAAI,MAAM,KACtB,CAAA,OAAOxP,EAAM,SAAYpS,CAAAA,CAAAA,CAASA,EAAS,EAAC,CAAG4hB,CAAG,CAAA,CAAG,CACnD,KAAO,CAAA,CACL,MAAOxP,CAAM,CAAA,aAAA,CACb,MAAOyd,CAAejO,CAAAA,CAAAA,CAAI,MAAM,KAAOxP,CAAAA,CAAAA,CAAM,OAAO,CACtD,CACF,CAAC,CAAIwP,CAAAA,CACP,CACA,IAAI5e,CAAAA,CAAShD,CAASA,CAAAA,CAAAA,CAAS,EAAIsa,CAAAA,CAAK,EAAG,CACzC,MAAA,CAAQta,EAASA,CAAS,CAAA,GAAIyjB,CAAM,CAAA,CAAG,CACrC,UAAY/M,CAAAA,CAAAA,CACZ,QAASwY,CACT,CAAA,iBAAA,CAAmBU,CACrB,CAAC,CAAA,CACD,MAAO,SAAUhO,CAAAA,CAAK,CACpB,OAAOtH,CAAAA,CAAM,MAAMwV,CAAiBlO,CAAAA,CAAG,CAAC,CAC1C,CAAA,CACA,MAAO,SAAUA,CAAAA,CAAK,CACpB,OAAOtH,CAAAA,CAAM,MAAMwV,CAAiBlO,CAAAA,CAAG,CAAC,CAC1C,CAAA,CACA,UAAY,CAAA,SAAUA,EAAK,CACzB,IAAI3P,EAAK2P,CAAI,CAAA,KAAA,CAAM,MACjBwN,CAAUnd,CAAAA,CAAAA,CAAG,QACbwd,CAAYxd,CAAAA,CAAAA,CAAG,UACfud,CAAYvd,CAAAA,CAAAA,CAAG,UACjB,GAAI,CAACwd,EAAW,OAAOnV,CAAAA,CAAM,UAAWsH,CAAAA,CAAG,EAC3C,SAASmO,CAAAA,CAAoBvZ,EAAQ,CACnC,SAASwZ,EAAU/uB,EAAK,CAAA,CACtBA,IAAO,IAAOuV,CAAAA,CAAAA,CAAO,SAASuY,EAAI9tB,CAAAA,EAAAA,CAAK2gB,EAAI,OAAUkC,CAAAA,CAAAA,CAAK,QAAUA,CAAK,CAAA,OAAA,CAASsL,CAAO,CAAC,EAAIxN,CAAI,CAAA,MAAA,CAASpL,EAAO,QAASA,CAAAA,CAAAA,CAAO,IAAI,KAAM,CAAA,CAAA,CAAGgZ,CAAS,CAAE,CAAA,MAAA,CAAO5N,EAAI,OAAUkC,CAAAA,CAAAA,CAAK,QAAUA,CAAK,CAAA,OAAA,CAASsL,CAAO,CAAC,CAAA,CAAI5Y,CAAO,CAAA,QAAA,GACjO,CACA,IAAIyZ,GAAgB,MAAO,CAAA,MAAA,CAAOzZ,EAAQ,CACxC,QAAA,CAAU,CACR,KAAOwZ,CAAAA,CACT,EACA,kBAAoB,CAAA,CAClB,MAAO,SAAU/uB,EAAAA,CAAKyV,GAAY,CAChCF,CAAAA,CAAO,kBAAmBuY,CAAAA,EAAAA,CAAI9tB,GAAK6iB,CAAK,CAAA,OAAA,CAASsL,CAAO,CAAG1Y,CAAAA,EAAU,EACvE,CACF,CAAA,CACA,WAAY,CACV,GAAA,CAAK,UAAY,CACf,OAAOF,EAAO,UAChB,CACF,EACA,GAAK,CAAA,CACH,GAAK,CAAA,UAAY,CACf,IAAIvV,EAAAA,CAAMuV,EAAO,GACjB,CAAA,OAAOgZ,IAAc,CAAIvuB,CAAAA,EAAAA,CAAI,CAAC,CAAIA,CAAAA,EAAAA,CAAI,MAAM,CAAGuuB,CAAAA,CAAS,CAC1D,CACF,CAAA,CACA,MAAO,CACL,GAAA,CAAK,UAAY,CACf,OAAOhZ,CAAO,CAAA,KAChB,CACF,CACF,CAAC,EACD,OAAOyZ,EACT,CACA,OAAO3V,CAAAA,CAAM,WAAWwV,CAAiBlO,CAAAA,CAAG,CAAC,CAAE,CAAA,IAAA,CAAK,SAAUpL,CAAQ,CAAA,CACpE,OAAOA,CAAUuZ,EAAAA,CAAAA,CAAoBvZ,CAAM,CAC7C,CAAC,CACH,CACF,CAAC,EACD,OAAOxT,CACT,CACF,CAAC,CACH,CACA,IAAIktB,EAAAA,CAAyB,CAC3B,KAAO,CAAA,QAAA,CACP,KAAM,wBACN,CAAA,KAAA,CAAO,CACP,CAAA,MAAA,CAAQlB,EACV,CACA,CAAA,SAASmB,GAAchsB,CAAGvE,CAAAA,CAAAA,CAAGyD,EAAI+sB,CAAM,CAAA,CACrC,OAAA/sB,CAAKA,CAAAA,CAAAA,EAAM,EACX+sB,CAAAA,CAAAA,CAAOA,GAAQ,EACfxvB,CAAAA,CAAAA,CAAKuD,CAAC,CAAE,CAAA,OAAA,CAAQ,SAAU9C,CAAAA,CAAM,CAC9B,GAAI,CAACD,EAAOxB,CAAGyB,CAAAA,CAAI,EACjBgC,CAAG+sB,CAAAA,CAAAA,CAAO/uB,CAAI,CAAI,CAAA,KAAA,CAAA,CAAA,KACb,CACL,IAAIgvB,CAAAA,CAAKlsB,EAAE9C,CAAI,CAAA,CACbivB,EAAK1wB,CAAEyB,CAAAA,CAAI,CACb,CAAA,GAAI,OAAOgvB,CAAO,EAAA,QAAA,EAAY,OAAOC,CAAO,EAAA,QAAA,EAAYD,GAAMC,CAAI,CAAA,CAChE,IAAIC,CAAarrB,CAAAA,EAAAA,CAAYmrB,CAAE,CAC3BG,CAAAA,CAAAA,CAAatrB,GAAYorB,CAAE,CAAA,CAC3BC,IAAeC,CACjBntB,CAAAA,CAAAA,CAAG+sB,CAAO/uB,CAAAA,CAAI,EAAIzB,CAAEyB,CAAAA,CAAI,EACfkvB,CAAe,GAAA,QAAA,CACxBJ,GAAcE,CAAIC,CAAAA,CAAAA,CAAIjtB,EAAI+sB,CAAO/uB,CAAAA,CAAAA,CAAO,GAAG,CAClCgvB,CAAAA,CAAAA,GAAOC,IAChBjtB,CAAG+sB,CAAAA,CAAAA,CAAO/uB,CAAI,CAAIzB,CAAAA,CAAAA,CAAEyB,CAAI,CAAA,EAE5B,MAAWgvB,CAAOC,GAAAA,CAAAA,GAAIjtB,EAAG+sB,CAAO/uB,CAAAA,CAAI,EAAIzB,CAAEyB,CAAAA,CAAI,GAChD,CACF,CAAC,EACDT,CAAKhB,CAAAA,CAAC,EAAE,OAAQ,CAAA,SAAUyB,EAAM,CACzBD,CAAAA,CAAO+C,CAAG9C,CAAAA,CAAI,IACjBgC,CAAG+sB,CAAAA,CAAAA,CAAO/uB,CAAI,CAAIzB,CAAAA,CAAAA,CAAEyB,CAAI,CAE5B,EAAA,CAAC,EACMgC,CACT,CACA,SAASotB,EAAiB/Z,CAAAA,CAAAA,CAAYkL,EAAK,CACzC,OAAIA,EAAI,IAAS,GAAA,QAAA,CAAiBA,CAAI,CAAA,IAAA,CAC/BA,EAAI,IAAQA,EAAAA,CAAAA,CAAI,OAAO,GAAIlL,CAAAA,CAAAA,CAAW,UAAU,CACzD,CACA,IAAIga,EAAkB,CAAA,CACpB,MAAO,QACP,CAAA,IAAA,CAAM,kBACN,KAAO,CAAA,CAAA,CACP,OAAQ,SAAUC,CAAAA,CAAU,CAC1B,OAAO3wB,EAASA,CAAS,CAAA,GAAI2wB,CAAQ,CAAA,CAAG,CACtC,KAAO,CAAA,SAAUpf,EAAW,CAC1B,IAAIqf,EAAYD,CAAS,CAAA,KAAA,CAAMpf,CAAS,CACpCmF,CAAAA,CAAAA,CAAaka,EAAU,MAAO,CAAA,UAAA,CAC9BC,CAAkB7wB,CAAAA,CAAAA,CAASA,EAAS,EAAC,CAAG4wB,CAAS,CAAG,CAAA,CACtD,OAAQ,SAAUhP,CAAAA,CAAK,CACrB,IAAIkP,CAAAA,CAAU9mB,GAAI,KACdiI,CAAAA,CAAAA,CAAK6e,EAAQ,KAAMvf,CAAAA,CAAS,EAAE,IAChCwf,CAAAA,CAAAA,CAAW9e,CAAG,CAAA,QAAA,CACd+e,EAAW/e,CAAG,CAAA,QAAA,CACdgf,EAAWhf,CAAG,CAAA,QAAA,CAChB,OAAQ2P,CAAI,CAAA,IAAA,EACV,IAAK,KAAA,CACH,GAAIoP,CAAS,CAAA,IAAA,GAAS5pB,GAAK,MAC3B,OAAO0pB,EAAQ,QAAS,CAAA,WAAA,CAAa,UAAY,CAC/C,OAAOI,CAAetP,CAAAA,CAAG,CAC3B,CAAG,CAAA,CAAA,CAAI,EACT,IAAK,KAAA,CACH,GAAIoP,CAAS,CAAA,IAAA,GAAS5pB,IAAO6pB,CAAS,CAAA,IAAA,GAAS7pB,GAAK,MACpD,OAAO0pB,EAAQ,QAAS,CAAA,WAAA,CAAa,UAAY,CAC/C,OAAOI,CAAetP,CAAAA,CAAG,CAC3B,CAAG,CAAA,CAAA,CAAI,EACT,IAAK,QAAA,CACH,GAAImP,CAAS,CAAA,IAAA,GAAS3pB,GAAK,MAC3B,OAAO0pB,EAAQ,QAAS,CAAA,WAAA,CAAa,UAAY,CAC/C,OAAOI,CAAetP,CAAAA,CAAG,CAC3B,CAAG,CAAA,CAAA,CAAI,EACT,IAAK,aAAA,CACH,GAAImP,CAAS,CAAA,IAAA,GAAS3pB,GAAK,MAC3B,OAAO0pB,EAAQ,QAAS,CAAA,WAAA,CAAa,UAAY,CAC/C,OAAOK,EAAYvP,CAAG,CACxB,CAAG,CAAA,CAAA,CAAI,CACX,CACA,OAAOgP,EAAU,MAAOhP,CAAAA,CAAG,EAC3B,SAASsP,CAAAA,CAAetP,EAAK,CAC3B,IAAIkP,EAAU9mB,EAAI,CAAA,KAAA,CACdpJ,EAAOghB,CAAI,CAAA,IAAA,EAAQ6O,GAAiB/Z,CAAYkL,CAAAA,CAAG,CACvD,CAAA,GAAI,CAAChhB,CAAM,CAAA,MAAM,IAAI,KAAM,CAAA,cAAc,EACzC,OAAAghB,CAAAA,CAAMA,EAAI,IAAS,GAAA,KAAA,EAASA,EAAI,IAAS,GAAA,KAAA,CAAQ5hB,EAASA,CAAS,CAAA,GAAI4hB,CAAG,CAAA,CAAG,CAC3E,IAAMhhB,CAAAA,CACR,CAAC,CAAIZ,CAAAA,CAAAA,CAAS,EAAI4hB,CAAAA,CAAG,EACjBA,CAAI,CAAA,IAAA,GAAS,WAAUA,CAAI,CAAA,MAAA,CAASvhB,EAAc,EAAC,CAAGuhB,EAAI,MAAY,GACtEA,CAAI,CAAA,IAAA,GAAMA,CAAI,CAAA,IAAA,CAAOvhB,EAAc,EAAC,CAAGuhB,EAAI,IAAU,GAClDwP,EAAkBR,CAAAA,CAAAA,CAAWhP,EAAKhhB,CAAI,CAAA,CAAE,KAAK,SAAUywB,CAAAA,CAAgB,CAC5E,IAAIC,CAAAA,CAAW1wB,EAAK,GAAI,CAAA,SAAUK,CAAKd,CAAAA,CAAAA,CAAG,CACxC,IAAIoxB,CAAAA,CAAgBF,EAAelxB,CAAC,CAAA,CAChCyU,EAAM,CACR,OAAA,CAAS,KACT,SAAW,CAAA,IACb,EACA,GAAIgN,CAAAA,CAAI,OAAS,QACfmP,CAAAA,CAAAA,CAAS,KAAK,IAAKnc,CAAAA,CAAAA,CAAK3T,CAAKswB,CAAAA,CAAAA,CAAeT,CAAO,CAC1ClP,CAAAA,KAAAA,GAAAA,CAAAA,CAAI,OAAS,KAAS2P,EAAAA,CAAAA,GAAkB,OAAW,CAC5D,IAAIC,GAAsBR,CAAS,CAAA,IAAA,CAAK,KAAKpc,CAAK3T,CAAAA,CAAAA,CAAK2gB,EAAI,MAAOzhB,CAAAA,CAAC,EAAG2wB,CAAO,CAAA,CACzE7vB,CAAO,EAAA,IAAA,EAAQuwB,IAAuB,IACxCvwB,GAAAA,CAAAA,CAAMuwB,GACN5P,CAAI,CAAA,IAAA,CAAKzhB,CAAC,CAAIc,CAAAA,CAAAA,CACTyV,EAAW,QACdjT,EAAAA,EAAAA,CAAame,EAAI,MAAOzhB,CAAAA,CAAC,EAAGuW,CAAW,CAAA,OAAA,CAASzV,CAAG,CAGzD,EAAA,CAAA,KAAO,CACL,IAAIwwB,GAAatB,EAAcoB,CAAAA,CAAAA,CAAe3P,EAAI,MAAOzhB,CAAAA,CAAC,CAAC,CACvDuxB,CAAAA,EAAAA,CAAsBT,EAAS,IAAK,CAAA,IAAA,CAAKrc,EAAK6c,EAAYxwB,CAAAA,CAAAA,CAAKswB,EAAeT,CAAO,CAAA,CACzF,GAAIY,EAAqB,CAAA,CACvB,IAAIC,EAAAA,CAAmB/P,EAAI,MAAOzhB,CAAAA,CAAC,EACnC,MAAO,CAAA,IAAA,CAAKuxB,EAAmB,CAAE,CAAA,OAAA,CAAQ,SAAUtuB,EAAS,CAAA,CACtDhC,EAAOuwB,EAAkBvuB,CAAAA,EAAO,EAClCuuB,EAAiBvuB,CAAAA,EAAO,EAAIsuB,EAAoBtuB,CAAAA,EAAO,CAEvDK,CAAAA,EAAAA,CAAakuB,GAAkBvuB,EAASsuB,CAAAA,EAAAA,CAAoBtuB,EAAO,CAAC,EAExE,CAAC,EACH,CACF,CACA,OAAOwR,CACT,CAAC,CACD,CAAA,OAAOgc,EAAU,MAAOhP,CAAAA,CAAG,EAAE,IAAK,CAAA,SAAU3P,EAAI,CAK9C,IAAA,IAJI9L,EAAW8L,CAAG,CAAA,QAAA,CAChB1F,EAAU0F,CAAG,CAAA,OAAA,CACb0B,EAAc1B,CAAG,CAAA,WAAA,CACjBmB,GAAanB,CAAG,CAAA,UAAA,CACT9R,GAAI,CAAGA,CAAAA,EAAAA,CAAIS,EAAK,MAAQ,CAAA,EAAET,GAAG,CACpC,IAAIkgB,EAAU9T,CAAAA,CAAAA,CAAUA,EAAQpM,EAAC,CAAA,CAAIS,EAAKT,EAAC,CAAA,CACvCyU,GAAM0c,CAASnxB,CAAAA,EAAC,EAChBkgB,EAAW,EAAA,IAAA,CACbzL,GAAI,OAAWA,EAAAA,EAAAA,CAAI,QAAQzO,CAAShG,CAAAA,EAAC,CAAC,CAEtCyU,CAAAA,EAAAA,CAAI,SAAaA,EAAAA,EAAAA,CAAI,UAAUgN,CAAI,CAAA,IAAA,GAAS,OAASyP,CAAelxB,CAAAA,EAAC,EAAIyhB,CAAI,CAAA,MAAA,CAAOzhB,EAAC,CAAIkgB,CAAAA,EAAO,EAEpG,CACA,OAAO,CACL,QAAUla,CAAAA,CAAAA,CACV,QAASoG,CACT,CAAA,WAAA,CAAaoH,CACb,CAAA,UAAA,CAAYP,EACd,CACF,CAAC,EAAE,KAAM,CAAA,SAAUgH,EAAO,CACxB,OAAAkX,EAAS,OAAQ,CAAA,SAAU1c,EAAK,CAC9B,OAAOA,EAAI,OAAWA,EAAAA,CAAAA,CAAI,QAAQwF,CAAK,CACzC,CAAC,CAAA,CACM,QAAQ,MAAOA,CAAAA,CAAK,CAC7B,CAAC,CACH,CAAC,CACH,CACA,SAAS+W,CAAYvP,CAAAA,CAAAA,CAAK,CACxB,OAAOgQ,CAAAA,CAAgBhQ,EAAI,KAAOA,CAAAA,CAAAA,CAAI,MAAO,GAAK,CACpD,CACA,SAASgQ,EAAgBhiB,CAAOkK,CAAAA,CAAAA,CAAOd,EAAO,CAC5C,OAAO4X,EAAU,KAAM,CAAA,CACrB,MAAOhhB,CACP,CAAA,MAAA,CAAQ,GACR,KAAO,CAAA,CACL,MAAO8G,CACP,CAAA,KAAA,CAAOoD,CACT,CACA,CAAA,KAAA,CAAOd,CACT,CAAC,EAAE,IAAK,CAAA,SAAU/G,EAAI,CACpB,IAAIjP,EAASiP,CAAG,CAAA,MAAA,CAChB,OAAOif,CAAe,CAAA,CACpB,KAAM,QACN,CAAA,IAAA,CAAMluB,EACN,KAAO4M,CAAAA,CACT,CAAC,CAAE,CAAA,IAAA,CAAK,SAAU/H,CAAAA,CAAK,CACrB,OAAIA,CAAAA,CAAI,YAAc,CAAU,CAAA,OAAA,CAAQ,OAAOA,CAAI,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAC1D7E,EAAO,MAASgW,CAAAA,CAAAA,CACX,CACL,QAAU,CAAA,GACV,WAAa,CAAA,CAAA,CACb,WAAY,KACd,CAAA,CAAA,CAEO4Y,EAAgBhiB,CAAO5P,CAAAA,CAAAA,CAASA,EAAS,EAAC,CAAG8Z,CAAK,CAAG,CAAA,CAC1D,MAAO9W,CAAOA,CAAAA,CAAAA,CAAO,OAAS,CAAC,CAAA,CAC/B,UAAW,CACb,CAAA,CAAC,EAAGgW,CAAK,CAEb,CAAC,CACH,CAAC,CACH,CACF,CACF,CAAC,CAAA,CACD,OAAO6X,CACT,CACF,CAAC,CACH,CACF,EACA,SAASO,EAAAA,CAAkB9W,EAAOsH,CAAKiQ,CAAAA,CAAAA,CAAe,CACpD,OAAOjQ,CAAAA,CAAI,IAAS,GAAA,KAAA,CAAQ,QAAQ,OAAQ,CAAA,EAAE,CAAItH,CAAAA,CAAAA,CAAM,QAAQ,CAC9D,KAAA,CAAOsH,EAAI,KACX,CAAA,IAAA,CAAMiQ,EACN,KAAO,CAAA,WACT,CAAC,CACH,CACA,SAASC,EAAwBlxB,CAAAA,CAAAA,CAAM8qB,CAAOqG,CAAAA,CAAAA,CAAO,CACnD,GAAI,CAEF,GADI,CAACrG,CAAAA,EACDA,EAAM,IAAK,CAAA,MAAA,CAAS9qB,EAAK,MAAQ,CAAA,OAAO,KAE5C,IADIoC,IAAAA,CAAAA,CAAS,EACJ7C,CAAAA,CAAAA,CAAI,EAAGunB,CAAI,CAAA,CAAA,CAAGvnB,CAAIurB,CAAAA,CAAAA,CAAM,KAAK,MAAUhE,EAAAA,CAAAA,CAAI9mB,EAAK,MAAQ,CAAA,EAAET,EAC7DyQ,EAAI8a,CAAAA,CAAAA,CAAM,KAAKvrB,CAAC,CAAA,CAAGS,EAAK8mB,CAAC,CAAC,IAAM,CACpC1kB,GAAAA,CAAAA,CAAO,KAAK+uB,CAAQltB,CAAAA,EAAAA,CAAU6mB,CAAM,CAAA,MAAA,CAAOvrB,CAAC,CAAC,CAAA,CAAIurB,EAAM,MAAOvrB,CAAAA,CAAC,CAAC,CAChE,CAAA,EAAEunB,GAEJ,OAAO1kB,CAAAA,CAAO,SAAWpC,CAAK,CAAA,MAAA,CAASoC,EAAS,IAClD,CAAA,KAAa,CACX,OAAO,IACT,CACF,CACA,IAAIgvB,EAAgC,CAAA,CAClC,MAAO,QACP,CAAA,KAAA,CAAO,GACP,MAAQ,CAAA,SAAUC,EAAM,CACtB,OAAO,CACL,KAAO,CAAA,SAAU1gB,EAAW,CAC1B,IAAI+I,EAAQ2X,CAAK,CAAA,KAAA,CAAM1gB,CAAS,CAAA,CAChC,OAAOvR,CAASA,CAAAA,CAAAA,CAAS,EAAIsa,CAAAA,CAAK,EAAG,CACnC,OAAA,CAAS,SAAUsH,CAAK,CAAA,CACtB,GAAI,CAACA,CAAAA,CAAI,MACP,OAAOtH,CAAAA,CAAM,QAAQsH,CAAG,CAAA,CAE1B,IAAIsQ,CAAAA,CAAeJ,GAAwBlQ,CAAI,CAAA,IAAA,CAAMA,EAAI,KAAM,CAAA,MAAA,CAAWA,EAAI,KAAU,GAAA,OAAO,EAC/F,OAAIsQ,CAAAA,CACK/nB,GAAa,OAAQ+nB,CAAAA,CAAY,EAEnC5X,CAAM,CAAA,OAAA,CAAQsH,CAAG,CAAE,CAAA,IAAA,CAAK,SAAU/Z,CAAAA,CAAK,CAC5C,OAAA+Z,CAAAA,CAAI,MAAM,MAAY,CAAA,CACpB,KAAMA,CAAI,CAAA,IAAA,CACV,OAAQA,CAAI,CAAA,KAAA,GAAU,QAAU/c,EAAUgD,CAAAA,CAAG,EAAIA,CACnD,CAAA,CACOA,CACT,CAAC,CACH,CACA,CAAA,MAAA,CAAQ,SAAU+Z,CAAK,CAAA,CACrB,OAAIA,CAAI,CAAA,IAAA,GAAS,QAAOA,CAAI,CAAA,KAAA,CAAM,OAAY,IACvCtH,CAAAA,CAAAA,CAAAA,CAAM,OAAOsH,CAAG,CACzB,CACF,CAAC,CACH,CACF,CACF,CACF,CACA,CAAA,SAASuQ,GAAkBvd,CAAK0F,CAAAA,CAAAA,CAAO,CACrC,OAAO1F,CAAAA,CAAI,MAAM,IAAS,GAAA,UAAA,EAAc,CAAC,CAACA,CAAAA,CAAI,QAAU,CAACA,CAAAA,CAAI,MAAM,QAAYA,EAAAA,CAAAA,CAAI,MAAM,EAAG,CAAA,QAAA,CAAS,KAAU,GAAA,UAAA,EAAc,CAAC0F,CAAM,CAAA,MAAA,CAAO,WAAW,QACxJ,CACA,SAAS8X,EAAkB9mB,CAAAA,CAAAA,CAAMsW,EAAK,CACpC,OAAQtW,GACN,IAAK,QACH,OAAOsW,CAAAA,CAAI,QAAU,CAACA,CAAAA,CAAI,MAC5B,CAAA,IAAK,MACH,OAAO,CAAA,CAAA,CACT,IAAK,SACH,CAAA,OAAO,GACT,IAAK,OAAA,CACH,OAAO,CACT,CAAA,CAAA,IAAK,aACH,OAAO,CAAA,CACX,CACF,CACA,IAAIyQ,GAA0B,CAC5B,KAAA,CAAO,QACP,CAAA,KAAA,CAAO,EACP,IAAM,CAAA,eAAA,CACN,OAAQ,SAAUJ,CAAAA,CAAM,CACtB,IAAI5F,CAAAA,CAAS4F,EAAK,MAAO,CAAA,IAAA,CACrBK,EAAa,IAAI1I,EAAAA,CAASqI,EAAK,OAASA,CAAAA,CAAAA,CAAK,OAAO,CACxD,CAAA,OAAOjyB,CAASA,CAAAA,CAAAA,CAAS,EAAIiyB,CAAAA,CAAI,EAAG,CAClC,WAAA,CAAa,SAAU5J,CAAQ3Y,CAAAA,CAAAA,CAAM/N,EAAS,CAC5C,GAAIqI,GAAI,MAAU0F,EAAAA,CAAAA,GAAS,WACzB,MAAM,IAAI/I,GAAW,QAAS,CAAA,8DAAA,CAA+D,OAAOqD,EAAI,CAAA,OAAO,CAAC,CAElH,CAAA,OAAOioB,EAAK,WAAY5J,CAAAA,CAAAA,CAAQ3Y,EAAM/N,CAAO,CAC/C,EACA,KAAO,CAAA,SAAU4P,EAAW,CAC1B,IAAI+I,EAAQ2X,CAAK,CAAA,KAAA,CAAM1gB,CAAS,CAC5BkS,CAAAA,CAAAA,CAASnJ,CAAM,CAAA,MAAA,CACf5D,EAAa+M,CAAO,CAAA,UAAA,CACtBnD,EAAUmD,CAAO,CAAA,OAAA,CACf1K,EAAarC,CAAW,CAAA,UAAA,CAC1BoC,EAAWpC,CAAW,CAAA,QAAA,CACpB6b,EAAuB7b,CAAW,CAAA,aAAA,EAAiB4J,EAAQ,MAAO,CAAA,SAAUlO,EAAO,CACrF,OAAOA,CAAM,CAAA,QAAA,EAAYA,EAAM,OAAQ,CAAA,QAAA,CAASsE,EAAW,OAAO,CACpE,CAAC,CACG8b,CAAAA,CAAAA,CAAaxyB,EAASA,CAAS,CAAA,GAAIsa,CAAK,CAAA,CAAG,CAC7C,MAAQ,CAAA,SAAUsH,EAAK,CACrB,IAAI3P,CAAIsC,CAAAA,CAAAA,CACJ3E,EAAQgS,CAAI,CAAA,KAAA,CACZ6Q,EAAe7Q,CAAI,CAAA,YAAA,GAAiBA,EAAI,YAAe,CAAA,IACvD8Q,CAAc,CAAA,SAAUna,GAAW,CACrC,IAAI+S,GAAO,QAAS,CAAA,MAAA,CAAOe,EAAQ,GAAG,CAAA,CAAE,MAAO9a,CAAAA,CAAAA,CAAW,GAAG,CAAE,CAAA,MAAA,CAAOgH,EAAS,CAC/E,CAAA,OAAOka,EAAanH,EAAI,CAAA,GAAMmH,EAAanH,EAAI,CAAA,CAAI,IAAI1B,EACzD,CAAA,CAAA,CACI+I,EAAaD,CAAY,CAAA,EAAE,EAC3BE,CAAeF,CAAAA,CAAAA,CAAY,OAAO,CAAA,CAClCpnB,EAAOsW,CAAI,CAAA,IAAA,CACX+K,GAAK/K,CAAI,CAAA,IAAA,GAAS,cAAgB,CAACA,CAAAA,CAAI,KAAK,CAAIA,CAAAA,CAAAA,CAAI,OAAS,QAAW,CAAA,CAACA,EAAI,IAAI,CAAA,CAAIA,EAAI,MAAO,CAAA,MAAA,CAAS,EAAK,CAAA,CAAC6O,GAAiB/Z,CAAYkL,CAAAA,CAAG,EAAE,MAAO,CAAA,SAAUiR,GAAI,CACtK,OAAOA,EACT,CAAC,CAAA,CAAGjR,EAAI,MAAM,CAAA,CAAI,EAClBhhB,CAAAA,EAAAA,CAAO+rB,GAAG,CAAC,CAAA,CACXmG,EAAUnG,CAAAA,EAAAA,CAAG,CAAC,CACZoG,CAAAA,EAAAA,CAAWnR,EAAI,KAAM,CAAA,MAAA,CACzB,GAAI/gB,CAAQD,CAAAA,EAAI,EAAG,CACjB+xB,CAAAA,CAAW,QAAQ/xB,EAAI,CAAA,CACvB,IAAIoyB,EAAU1nB,CAAAA,CAAAA,GAAS,UAAY1K,EAAK,CAAA,MAAA,GAAWkyB,EAAQ,CAAA,MAAA,CAAShB,GAAwBlxB,EAAMmyB,CAAAA,EAAQ,EAAI,IACzGC,CAAAA,EAAAA,EACHJ,EAAa,OAAQhyB,CAAAA,EAAI,GAEvBoyB,EAAWF,EAAAA,EAAAA,GACbG,GAAqBP,CAAajP,CAAAA,CAAAA,CAAQuP,GAASF,EAAO,EAE9D,SAAWlyB,EAAM,CAAA,CACf,IAAIkZ,EAAAA,CAAQ,CACV,IAAO7H,CAAAA,CAAAA,CAAAA,CAAKrR,GAAK,KAAW,IAAA,IAAA,EAAQqR,IAAO,KAASA,CAAAA,CAAAA,CAAAA,CAAKggB,EAAK,OAC9D,CAAA,EAAA,CAAA,CAAK1d,EAAK3T,EAAK,CAAA,KAAA,IAAW,MAAQ2T,CAAO,GAAA,KAAA,CAAA,CAASA,EAAK0d,CAAK,CAAA,OAC9D,CACAW,CAAAA,CAAAA,CAAa,IAAI9Y,EAAK,CAAA,CACtB6Y,EAAW,GAAI7Y,CAAAA,EAAK,EACtB,CACE6Y,KAAAA,CAAAA,CAAW,IAAIL,CAAU,CAAA,CACzBM,EAAa,GAAIN,CAAAA,CAAU,EAC3B7O,CAAO,CAAA,OAAA,CAAQ,QAAQ,SAAUpR,EAAAA,CAAK,CACpC,OAAOqgB,EAAYrgB,EAAI,CAAA,IAAI,EAAE,GAAIigB,CAAAA,CAAU,CAC7C,CAAC,CAAA,CAEH,OAAOhY,CAAM,CAAA,MAAA,CAAOsH,CAAG,CAAE,CAAA,IAAA,CAAK,SAAU/Z,EAAK,CAAA,CAC3C,OAAIjH,EAASghB,GAAAA,CAAAA,CAAI,IAAS,GAAA,KAAA,EAASA,EAAI,IAAS,GAAA,KAAA,CAAA,GAC9C+Q,EAAW,OAAQ9qB,CAAAA,EAAAA,CAAI,OAAO,CAC1B0qB,CAAAA,CAAAA,EACFA,EAAqB,OAAQ,CAAA,SAAUlgB,GAAK,CAO1C,IAAA,IANI6gB,GAAUtR,CAAI,CAAA,MAAA,CAAO,IAAI,SAAUld,EAAAA,CAAG,CACxC,OAAO2N,GAAI,UAAW3N,CAAAA,EAAC,CACzB,CAAC,CAAA,CACGyuB,GAAQ9gB,EAAI,CAAA,OAAA,CAAQ,UAAU,SAAUhR,EAAAA,CAAM,CAChD,OAAOA,EAAAA,GAASqV,EAAW,OAC7B,CAAC,EACQvW,EAAI,CAAA,CAAA,CAAG+M,EAAMrF,CAAAA,EAAAA,CAAI,QAAQ,MAAQ1H,CAAAA,EAAAA,CAAI+M,GAAK,EAAE/M,EAAAA,CACnD+yB,GAAQ/yB,EAAC,CAAA,CAAEgzB,EAAK,CAAItrB,CAAAA,EAAAA,CAAI,QAAQ1H,EAAC,CAAA,CAEnCuyB,EAAYrgB,EAAI,CAAA,IAAI,EAAE,OAAQ6gB,CAAAA,EAAO,EACvC,CAAC,GAGLtjB,CAAM,CAAA,YAAA,CAAeyb,GAAuBzb,CAAM,CAAA,YAAA,EAAgB,EAAI6iB,CAAAA,CAAY,EAC3E5qB,EACT,CAAC,CACH,CACF,CAAC,EACGurB,CAAW,CAAA,SAAUnhB,EAAI,CAC3B,IAAIsC,EAAIoY,CACJE,CAAAA,CAAAA,CAAK5a,EAAG,KACVG,CAAAA,CAAAA,CAAQya,EAAG,KACX/S,CAAAA,CAAAA,CAAQ+S,EAAG,KACb,CAAA,OAAO,CAACza,CAAO,CAAA,IAAIwX,IAAUrV,CAAKuF,CAAAA,CAAAA,CAAM,SAAW,IAAQvF,EAAAA,CAAAA,GAAO,OAASA,CAAK0d,CAAAA,CAAAA,CAAK,OAAUtF,CAAAA,CAAAA,CAAAA,CAAK7S,EAAM,KAAW,IAAA,IAAA,EAAQ6S,IAAO,KAASA,CAAAA,CAAAA,CAAAA,CAAKsF,EAAK,OAAO,CAAC,CACjK,CACIoB,CAAAA,CAAAA,CAAkB,CACpB,GAAK,CAAA,SAAUzR,EAAK,CAClB,OAAO,CAAClL,CAAY,CAAA,IAAIkT,EAAShI,CAAAA,CAAAA,CAAI,GAAG,CAAC,CAC3C,EACA,OAAS,CAAA,SAAUA,EAAK,CACtB,OAAO,CAAClL,CAAY,CAAA,IAAIkT,IAAW,CAAA,OAAA,CAAQhI,EAAI,IAAI,CAAC,CACtD,CACA,CAAA,KAAA,CAAOwR,CACP,CAAA,KAAA,CAAOA,EACP,UAAYA,CAAAA,CACd,EACA,OAAAxyB,CAAAA,CAAKyyB,CAAe,CAAE,CAAA,OAAA,CAAQ,SAAUC,CAAQ,CAAA,CAC9Cd,EAAWc,CAAM,CAAA,CAAI,SAAU1R,CAAK,CAAA,CAClC,IAAI2R,CAASvpB,CAAAA,EAAAA,CAAI,MACbwpB,CAAAA,CAAAA,CAAc,CAAC,CAACD,CAAAA,CAChBE,EAAWtB,EAAkBnoB,CAAAA,EAAAA,CAAKsQ,CAAK,CAAK8X,EAAAA,EAAAA,CAAkBkB,EAAQ1R,CAAG,CAAA,CACzE8R,EAASD,CAAW7R,CAAAA,CAAAA,CAAI,OAAS,EAAC,CAAI2R,EAC1C,GAAIC,CAAAA,CAAa,CACf,IAAId,EAAc,SAAUna,EAAAA,CAAW,CACrC,IAAI+S,EAAAA,CAAO,SAAS,MAAOe,CAAAA,CAAAA,CAAQ,GAAG,CAAE,CAAA,MAAA,CAAO9a,EAAW,GAAG,CAAA,CAAE,OAAOgH,EAAS,CAAA,CAC/E,OAAOmb,CAAOpI,CAAAA,EAAI,CAAMoI,GAAAA,CAAAA,CAAOpI,EAAI,CAAI,CAAA,IAAI1B,GAC7C,CACI+J,CAAAA,CAAAA,CAAejB,EAAY,EAAE,CAAA,CAC7BkB,EAAiBlB,CAAY,CAAA,OAAO,EACpCzgB,EAAKohB,CAAAA,CAAAA,CAAgBC,CAAM,CAAE1R,CAAAA,CAAG,EAClCiS,EAAe5hB,CAAAA,EAAAA,CAAG,CAAC,CAAA,CACnB6hB,GAAgB7hB,EAAG,CAAA,CAAC,EAMtB,GALIqhB,CAAAA,GAAW,SAAWO,EAAa,CAAA,YAAA,EAAgB,CAACjS,CAAI,CAAA,MAAA,CAC1DgS,EAAe,GAAIE,CAAAA,EAAa,EAEhCpB,CAAYmB,CAAAA,EAAAA,CAAa,MAAQ,EAAE,CAAA,CAAE,GAAIC,CAAAA,EAAa,EAEpD,CAACD,EAAAA,CAAa,aAChB,GAAIP,CAAAA,GAAW,QACbM,CAAe,CAAA,GAAA,CAAItB,CAAU,CACxB,CAAA,KAAA,CACL,IAAIyB,EAAgBT,CAAAA,CAAAA,GAAW,SAAWxa,CAAY8I,EAAAA,CAAAA,CAAI,QAAUtH,CAAM,CAAA,KAAA,CAAMta,CAASA,CAAAA,CAAAA,CAAS,EAAI4hB,CAAAA,CAAG,EAAG,CAC1G,MAAA,CAAQ,EACV,CAAC,CAAC,EACF,OAAOtH,CAAAA,CAAMgZ,CAAM,CAAE,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,CAAE,KAAK,SAAUzrB,EAAAA,CAAK,CAC9D,GAAIyrB,IAAW,OAAS,CAAA,CACtB,GAAIxa,CAAY8I,EAAAA,CAAAA,CAAI,OAClB,OAAOmS,EAAAA,CAAc,KAAK,SAAU9hB,EAAAA,CAAI,CACtC,IAAI+hB,EAAAA,CAAgB/hB,GAAG,MACvB,CAAA,OAAA0hB,EAAa,OAAQK,CAAAA,EAAa,CAC3BnsB,CAAAA,EACT,CAAC,CAEH,CAAA,IAAIosB,GAAQrS,CAAI,CAAA,MAAA,CAAS/Z,GAAI,MAAO,CAAA,GAAA,CAAIkR,CAAU,CAAIlR,CAAAA,EAAAA,CAAI,OACtD+Z,CAAI,CAAA,MAAA,CACN+R,EAAa,OAAQM,CAAAA,EAAK,EAE1BL,CAAe,CAAA,OAAA,CAAQK,EAAK,EAEhC,SAAWX,CAAW,GAAA,YAAA,CAAc,CAClC,IAAIY,EAAAA,CAAWrsB,GACXssB,EAAevS,CAAAA,CAAAA,CAAI,OACvB,OAAOsS,EAAAA,EAAY,OAAO,MAAOA,CAAAA,EAAAA,CAAU,CACzC,GAAK,CAAA,CACH,IAAK,UAAY,CACf,OAAAN,CAAAA,CAAe,OAAOM,EAAS,CAAA,UAAU,EAClCA,EAAS,CAAA,GAClB,CACF,CACA,CAAA,UAAA,CAAY,CACV,GAAK,CAAA,UAAY,CACf,IAAIE,EAAAA,CAAOF,GAAS,UACpB,CAAA,OAAAN,EAAe,MAAOQ,CAAAA,EAAI,CACnBA,CAAAA,EACT,CACF,CACA,CAAA,KAAA,CAAO,CACL,GAAK,CAAA,UAAY,CACf,OAAAD,EAAAA,EAAgBR,EAAa,MAAOO,CAAAA,EAAAA,CAAS,UAAU,CAChDA,CAAAA,EAAAA,CAAS,KAClB,CACF,CACF,CAAC,CACH,CACA,OAAOrsB,EACT,CAAC,CACH,CAEJ,CACA,OAAOyS,CAAAA,CAAMgZ,CAAM,CAAE,CAAA,KAAA,CAAM,KAAM,SAAS,CAC5C,EACF,CAAC,CAAA,CACMd,CACT,CACF,CAAC,CACH,CACF,CAAA,CACA,SAASS,EAAqBP,CAAAA,CAAAA,CAAajP,EAAQuP,CAASF,CAAAA,CAAAA,CAAS,CACnE,SAASuB,CAAAA,CAAiBxiB,EAAI,CAC5B,IAAIiY,EAAW4I,CAAY7gB,CAAAA,CAAAA,CAAG,MAAQ,EAAE,CAAA,CACxC,SAASkH,CAAWhY,CAAAA,CAAAA,CAAK,CACvB,OAAOA,CAAAA,EAAO,IAAO8Q,CAAAA,CAAAA,CAAG,WAAW9Q,CAAG,CAAA,CAAI,IAC5C,CACA,IAAIuzB,EAAe,SAAUrzB,CAAAA,CAAK,CAChC,OAAO4Q,CAAAA,CAAG,YAAchR,CAAQI,CAAAA,CAAG,EAAIA,CAAI,CAAA,OAAA,CAAQ,SAAUA,CAAK,CAAA,CAChE,OAAO6oB,CAAAA,CAAS,OAAO7oB,CAAG,CAC5B,CAAC,CAAI6oB,CAAAA,CAAAA,CAAS,OAAO7oB,CAAG,CAC1B,GACC+xB,CAAWF,EAAAA,CAAAA,EAAS,QAAQ,SAAUyB,CAAAA,CAAGp0B,EAAG,CAC3C,IAAIq0B,EAASxB,CAAWja,EAAAA,CAAAA,CAAWia,CAAQ7yB,CAAAA,CAAC,CAAC,CACzCs0B,CAAAA,CAAAA,CAAS3B,GAAW/Z,CAAW+Z,CAAAA,CAAAA,CAAQ3yB,CAAC,CAAC,CAAA,CACzCyQ,GAAI4jB,CAAQC,CAAAA,CAAM,IAAM,CACtBD,GAAAA,CAAAA,EAAU,MAAMF,CAAaE,CAAAA,CAAM,EACnCC,CAAU,EAAA,IAAA,EAAMH,CAAaG,CAAAA,CAAM,GAE3C,CAAC,EACH,CACAhR,CAAO,CAAA,OAAA,CAAQ,QAAQ4Q,CAAgB,EACzC,CACA,SAASK,EAAAA,CAA6BvI,EAAUvK,CAAK/Z,CAAAA,CAAAA,CAAK,CACxD,GAAIA,CAAAA,CAAI,cAAgB,CAAG,CAAA,OAAO+Z,CAClC,CAAA,GAAIA,EAAI,IAAS,GAAA,aAAA,CACf,OAAO,IAET,CAAA,IAAI+S,EAAa/S,CAAI,CAAA,IAAA,CAAOA,EAAI,IAAK,CAAA,MAAA,CAAS,WAAYA,CAAOA,EAAAA,CAAAA,CAAI,OAASA,CAAI,CAAA,MAAA,CAAO,OAAS,CAClG,CAAA,GAAI/Z,CAAI,CAAA,WAAA,GAAgB8sB,EACtB,OAAO,IAAA,CAET,IAAI5C,CAAQ/xB,CAAAA,CAAAA,CAAS,EAAI4hB,CAAAA,CAAG,EAC5B,OAAI/gB,CAAAA,CAAQkxB,EAAM,IAAI,CAAA,GACpBA,EAAM,IAAOA,CAAAA,CAAAA,CAAM,KAAK,MAAO,CAAA,SAAUwC,CAAGp0B,CAAAA,CAAAA,CAAG,CAC7C,OAAO,EAAEA,KAAK0H,CAAI,CAAA,QAAA,CACpB,CAAC,CAEC,CAAA,CAAA,QAAA,GAAYkqB,GAASlxB,CAAQkxB,CAAAA,CAAAA,CAAM,MAAM,CAC3CA,GAAAA,CAAAA,CAAM,OAASA,CAAM,CAAA,MAAA,CAAO,OAAO,SAAUwC,CAAAA,CAAGp0B,EAAG,CACjD,OAAO,EAAEA,CAAK0H,IAAAA,CAAAA,CAAI,SACpB,CAAC,CAAA,CAAA,CAEIkqB,CACT,CACA,SAAS6C,GAAa3zB,CAAK6Y,CAAAA,CAAAA,CAAO,CAChC,OAAOA,CAAAA,CAAM,QAAU,KAAY,CAAA,CAAA,CAAA,CAAA,CAAOA,EAAM,SAAYlJ,CAAAA,EAAAA,CAAI3P,CAAK6Y,CAAAA,CAAAA,CAAM,KAAK,CAAI,CAAA,CAAA,CAAIlJ,GAAI3P,CAAK6Y,CAAAA,CAAAA,CAAM,KAAK,CAAK,EAAA,CACnH,CACA,SAAS+a,EAAAA,CAAa5zB,EAAK6Y,CAAO,CAAA,CAChC,OAAOA,CAAM,CAAA,KAAA,GAAU,OAAY,CAAOA,CAAAA,CAAAA,CAAAA,CAAM,SAAYlJ,CAAAA,EAAAA,CAAI3P,EAAK6Y,CAAM,CAAA,KAAK,EAAI,CAAIlJ,CAAAA,EAAAA,CAAI3P,EAAK6Y,CAAM,CAAA,KAAK,GAAK,CACnH,CACA,SAASgb,EAAc7zB,CAAAA,CAAAA,CAAK6Y,EAAO,CACjC,OAAO8a,GAAa3zB,CAAK6Y,CAAAA,CAAK,CAAK+a,EAAAA,EAAAA,CAAa5zB,EAAK6Y,CAAK,CAC5D,CACA,SAASib,EAAAA,CAAmB/xB,EAAQ4e,CAAKoT,CAAAA,CAAAA,CAAK1a,EAAO2a,CAAYC,CAAAA,CAAAA,CAAW,CAC1E,GAAI,CAACF,GAAOA,CAAI,CAAA,MAAA,GAAW,EAAG,OAAOhyB,CAAAA,CACrC,IAAIoP,CAAAA,CAAQwP,EAAI,KAAM,CAAA,KAAA,CAClBN,EAAalP,CAAM,CAAA,UAAA,CACnB+iB,EAAavT,CAAI,CAAA,KAAA,CAAM,MACvBlL,CAAa4D,CAAAA,CAAAA,CAAM,OAAO,UAC1B8a,CAAAA,CAAAA,CAAiB1e,EAAW,UAC5B2e,CAAAA,CAAAA,CAAejjB,EAAM,UACrBkjB,CAAAA,CAAAA,CAAAA,CAAwBljB,CAAM,CAAA,aAAA,EAAiBA,GAAO,UACtDmjB,CAAAA,CAAAA,CAAcP,EAAI,MAAO,CAAA,SAAUhyB,EAAQwyB,CAAI,CAAA,CACjD,IAAIC,CAAgBzyB,CAAAA,CAAAA,CAChB0yB,EAAiB,EAAC,CACtB,GAAIF,CAAG,CAAA,IAAA,GAAS,OAASA,CAAG,CAAA,IAAA,GAAS,KAEnC,CAAA,IAAA,IADIG,EAAc,IAAI/L,EAAAA,CACbzpB,EAAIq1B,CAAG,CAAA,MAAA,CAAO,OAAS,CAAGr1B,CAAAA,CAAAA,EAAK,EAAG,EAAEA,CAAAA,CAAG,CAC9C,IAAIuD,CAAAA,CAAQ8xB,EAAG,MAAOr1B,CAAAA,CAAC,EACnBy1B,CAAKR,CAAAA,CAAAA,CAAe1xB,CAAK,CAAA,CAC7B,GAAI,CAAAiyB,CAAAA,CAAY,OAAOC,CAAE,CAAA,CACzB,KAAI30B,CAAMo0B,CAAAA,CAAAA,CAAa3xB,CAAK,CACxB4d,CAAAA,CAAAA,CAAAA,EAAczgB,EAAQI,CAAG,CAAA,CAAIA,EAAI,IAAK,CAAA,SAAUwD,GAAG,CACrD,OAAOqwB,GAAcrwB,EAAG0wB,CAAAA,CAAU,CACpC,CAAC,CAAA,CAAIL,GAAc7zB,CAAKk0B,CAAAA,CAAU,KAChCQ,CAAY,CAAA,MAAA,CAAOC,CAAE,CACrBF,CAAAA,CAAAA,CAAe,KAAKhyB,CAAK,CAAA,EAAA,CAE7B,CAEF,OAAQ8xB,CAAAA,CAAG,MACT,IAAK,KACH,CAAA,CACE,IAAIK,EAAiB,CAAA,IAAIjM,IAAW,CAAA,OAAA,CAAQhI,EAAI,MAAS5e,CAAAA,CAAAA,CAAO,IAAI,SAAU0B,EAAAA,CAAG,CAC/E,OAAO0wB,CAAAA,CAAe1wB,EAAC,CACzB,CAAC,EAAI1B,CAAM,CAAA,CACXyyB,CAAgBzyB,CAAAA,CAAAA,CAAO,OAAO4e,CAAI,CAAA,MAAA,CAAS8T,EAAe,MAAO,CAAA,SAAUhxB,GAAG,CAC5E,IAAIzD,GAAMm0B,CAAe1wB,CAAAA,EAAC,EAC1B,OAAImxB,EAAAA,CAAe,OAAO50B,EAAG,CAAA,CAAU,IACvC40B,EAAe,CAAA,MAAA,CAAO50B,EAAG,CAAA,CAClB,GACT,CAAC,CAAA,CAAIy0B,EAAe,GAAI,CAAA,SAAUhxB,GAAG,CACnC,OAAO0wB,EAAe1wB,EAAC,CACzB,CAAC,CAAE,CAAA,MAAA,CAAO,SAAUD,EAAG,CAAA,CACrB,OAAIoxB,EAAe,CAAA,MAAA,CAAOpxB,EAAC,CAAA,CAAU,IACrCoxB,EAAe,CAAA,MAAA,CAAOpxB,EAAC,CAChB,CAAA,CAAA,CAAA,CACT,CAAC,CAAC,CAAA,CACF,KACF,CACF,IAAK,MACH,CACE,IAAIqxB,GAAW,IAAIlM,EAAAA,GAAW,OAAQ4L,CAAAA,CAAAA,CAAG,MAAO,CAAA,GAAA,CAAI,SAAU9wB,EAAG,CAAA,CAC/D,OAAO0wB,CAAe1wB,CAAAA,EAAC,CACzB,CAAC,CAAC,EACF+wB,CAAgBzyB,CAAAA,CAAAA,CAAO,OAAO,SAAUC,EAAAA,CAAM,CAC5C,OAAO,CAAC6yB,GAAS,MAAOlU,CAAAA,CAAAA,CAAI,MAASwT,CAAAA,CAAAA,CAAenyB,EAAI,CAAIA,CAAAA,EAAI,CAClE,CAAC,CAAA,CAAE,OAAO2e,CAAI,CAAA,MAAA,CAAS8T,EAAiBA,CAAe,CAAA,GAAA,CAAI,SAAUhxB,EAAG,CAAA,CACtE,OAAO0wB,CAAe1wB,CAAAA,EAAC,CACzB,CAAC,CAAC,CACF,CAAA,KACF,CACF,IAAK,QAAA,CACH,IAAIqxB,EAAiB,CAAA,IAAInM,IAAW,CAAA,OAAA,CAAQ4L,EAAG,IAAI,CAAA,CACnDC,EAAgBzyB,CAAO,CAAA,MAAA,CAAO,SAAUC,EAAM,CAAA,CAC5C,OAAO,CAAC8yB,EAAAA,CAAe,MAAOnU,CAAAA,CAAAA,CAAI,OAASwT,CAAenyB,CAAAA,EAAI,EAAIA,EAAI,CACxE,CAAC,CACD,CAAA,MACF,IAAK,aACH,CAAA,IAAI+yB,GAAUR,CAAG,CAAA,KAAA,CACjBC,EAAgBzyB,CAAO,CAAA,MAAA,CAAO,SAAUC,EAAM,CAAA,CAC5C,OAAO,CAAC6xB,GAAcM,CAAenyB,CAAAA,EAAI,EAAG+yB,EAAO,CACrD,CAAC,CACD,CAAA,KACJ,CACA,OAAOP,CACT,EAAGzyB,CAAM,CAAA,CACT,OAAIuyB,CAAgBvyB,GAAAA,CAAAA,CAAeA,GACnCuyB,CAAY,CAAA,IAAA,CAAK,SAAUpxB,CAAAA,CAAGvE,EAAG,CAC/B,OAAOgR,GAAI0kB,CAAqBnxB,CAAAA,CAAC,EAAGmxB,CAAqB11B,CAAAA,CAAC,CAAC,CAAKgR,EAAAA,EAAAA,CAAIwkB,EAAejxB,CAAC,CAAA,CAAGixB,EAAex1B,CAAC,CAAC,CAC1G,CAAC,CAAA,CACGgiB,CAAI,CAAA,KAAA,EAASA,EAAI,KAAQ,CAAA,CAAA,CAAA,CAAA,GACvB2T,EAAY,MAAS3T,CAAAA,CAAAA,CAAI,MAC3B2T,CAAY,CAAA,MAAA,CAAS3T,EAAI,KAChB5e,CAAAA,CAAAA,CAAO,SAAW4e,CAAI,CAAA,KAAA,EAAS2T,EAAY,MAAS3T,CAAAA,CAAAA,CAAI,QACjEqT,CAAW,CAAA,KAAA,CAAQ,CAGhBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,OAAO,MAAOK,CAAAA,CAAW,EAAIA,CAClD,CAAA,CACA,SAASU,EAAeC,CAAAA,CAAAA,CAAIC,EAAI,CAC9B,OAAOvlB,GAAIslB,CAAG,CAAA,KAAA,CAAOC,EAAG,KAAK,CAAA,GAAM,GAAKvlB,EAAIslB,CAAAA,CAAAA,CAAG,KAAOC,CAAAA,CAAAA,CAAG,KAAK,CAAM,GAAA,CAAA,EAAK,CAAC,CAACD,CAAAA,CAAG,WAAc,CAAC,CAACC,EAAG,SAAa,EAAA,CAAC,CAACD,CAAG,CAAA,SAAA,EAAc,CAAC,CAACC,CAAAA,CAAG,SACxI,CACA,SAASC,EAAcC,CAAAA,CAAAA,CAAQC,EAAQC,CAAYC,CAAAA,CAAAA,CAAY,CAC7D,GAAIH,CAAAA,GAAW,OAAW,OAAOC,CAAAA,GAAW,OAAY,CAAK,CAAA,CAAA,CAAA,CAC7D,GAAIA,CAAW,GAAA,KAAA,CAAA,CAAW,OAC1B,CAAA,CAAA,IAAIvf,EAAInG,EAAIylB,CAAAA,CAAAA,CAAQC,CAAM,CAAA,CAC1B,GAAIvf,CAAM,GAAA,CAAA,CAAG,CACX,GAAIwf,CAAAA,EAAcC,EAAY,OAAO,CAAA,CACrC,GAAID,CAAY,CAAA,SAChB,GAAIC,CAAAA,CAAY,OAAO,CACzB,CAAA,CACA,OAAOzf,CACT,CACA,SAAS0f,EAAcC,CAAAA,CAAAA,CAAQC,EAAQC,CAAYC,CAAAA,CAAAA,CAAY,CAC7D,GAAIH,CAAAA,GAAW,OAAW,OAAOC,CAAAA,GAAW,OAAY,CAAI,CAAA,CAAA,CAC5D,GAAIA,CAAW,GAAA,KAAA,CAAA,CAAW,OAAO,CACjC,CAAA,CAAA,IAAI5f,EAAInG,EAAI8lB,CAAAA,CAAAA,CAAQC,CAAM,CAAA,CAC1B,GAAI5f,CAAM,GAAA,CAAA,CAAG,CACX,GAAI6f,CAAAA,EAAcC,EAAY,OAAO,CAAA,CACrC,GAAID,CAAY,CAAA,OAAO,GACvB,GAAIC,CAAAA,CAAY,OAClB,CAAA,CACA,OAAO9f,CACT,CACA,SAAS+f,EAAAA,CAAaZ,EAAIC,CAAI,CAAA,CAC5B,OAAOC,EAAcF,CAAAA,CAAAA,CAAG,MAAOC,CAAG,CAAA,KAAA,CAAOD,EAAG,SAAWC,CAAAA,CAAAA,CAAG,SAAS,CAAK,EAAA,CAAA,EAAKM,GAAcP,CAAG,CAAA,KAAA,CAAOC,EAAG,KAAOD,CAAAA,CAAAA,CAAG,SAAWC,CAAAA,CAAAA,CAAG,SAAS,CAAK,EAAA,CAChJ,CACA,SAASY,EAAAA,CAAoB1K,EAAQ9a,CAAWjG,CAAAA,CAAAA,CAAMsW,EAAK,CACzD,IAAIuK,EAAWT,EAAM,CAAA,QAAA,CAAS,OAAOW,CAAQ,CAAA,GAAG,EAAE,MAAO9a,CAAAA,CAAS,CAAC,CAAA,CACnE,GAAI,CAAC4a,CAAAA,CAAU,OAAO,EAAC,CACvB,IAAI6K,CAAU7K,CAAAA,CAAAA,CAAS,QAAQ7gB,CAAI,CAAA,CACnC,GAAI,CAAC0rB,CAAAA,CAAS,OAAO,CAAC,IAAA,CAAM,GAAO7K,CAAU,CAAA,IAAI,CACjD,CAAA,IAAI5T,EAAYqJ,CAAI,CAAA,KAAA,CAAQA,EAAI,KAAM,CAAA,KAAA,CAAM,KAAO,IAC/C6K,CAAAA,CAAAA,CAAUuK,EAAQze,CAAa,EAAA,EAAE,EACrC,GAAI,CAACkU,EAAS,OAAO,CAAC,KAAM,CAAON,CAAAA,CAAAA,CAAAA,CAAU,IAAI,CAAA,CACjD,OAAQ7gB,CAAM,EACZ,IAAK,OACH,CAAA,IAAI2rB,EAAaxK,CAAQ,CAAA,IAAA,CAAK,SAAU1Y,CAAO,CAAA,CAC7C,OAAOA,CAAM,CAAA,GAAA,CAAI,QAAU6N,CAAI,CAAA,KAAA,EAAS7N,EAAM,GAAI,CAAA,MAAA,GAAW6N,CAAI,CAAA,MAAA,EAAUqU,GAAeliB,CAAM,CAAA,GAAA,CAAI,MAAM,KAAO6N,CAAAA,CAAAA,CAAI,MAAM,KAAK,CAClI,CAAC,CACD,CAAA,GAAIqV,EAAY,OAAO,CAACA,EAAY,CAAM9K,CAAAA,CAAAA,CAAAA,CAAUM,CAAO,CAC3D,CAAA,IAAIyK,EAAazK,CAAQ,CAAA,IAAA,CAAK,SAAU1Y,CAAO,CAAA,CAC7C,IAAIiF,CAAQ,CAAA,OAAA,GAAWjF,EAAM,GAAMA,CAAAA,CAAAA,CAAM,IAAI,KAAQ,CAAA,CAAA,CAAA,CAAA,CACrD,OAAOiF,CAAS4I,EAAAA,CAAAA,CAAI,QAAUA,CAAI,CAAA,MAAA,CAAS7N,EAAM,GAAI,CAAA,MAAA,CAAS,CAAS+iB,CAAAA,CAAAA,EAAAA,EAAAA,CAAa/iB,EAAM,GAAI,CAAA,KAAA,CAAM,MAAO6N,CAAI,CAAA,KAAA,CAAM,KAAK,CAC5H,CAAC,EACD,OAAO,CAACsV,EAAY,CAAO/K,CAAAA,CAAAA,CAAAA,CAAUM,CAAO,CAC9C,CAAA,IAAK,QACH,IAAI0K,CAAAA,CAAa1K,CAAQ,CAAA,IAAA,CAAK,SAAU1Y,CAAO,CAAA,CAC7C,OAAOkiB,EAAeliB,CAAAA,CAAAA,CAAM,IAAI,KAAM,CAAA,KAAA,CAAO6N,EAAI,KAAM,CAAA,KAAK,CAC9D,CAAC,CAAA,CACD,OAAO,CAACuV,CAAAA,CAAY,CAAC,CAACA,CAAAA,CAAYhL,CAAUM,CAAAA,CAAO,CACvD,CACF,CACA,SAAS2K,EAAsBnC,CAAAA,CAAAA,CAAYoC,EAAW/K,CAASgL,CAAAA,CAAAA,CAAQ,CACrErC,CAAW,CAAA,WAAA,CAAY,IAAI3I,CAAO,CAAA,CAClCgL,EAAO,gBAAiB,CAAA,OAAA,CAAS,UAAY,CAC3CrC,CAAAA,CAAW,WAAY,CAAA,MAAA,CAAO3I,CAAO,CACjC2I,CAAAA,CAAAA,CAAW,YAAY,IAAS,GAAA,CAAA,EAClCsC,GAAiBtC,CAAYoC,CAAAA,CAAS,EAE1C,CAAC,EACH,CACA,SAASE,EAAAA,CAAiBtC,EAAYoC,CAAW,CAAA,CAC/C,WAAW,UAAY,CACjBpC,CAAW,CAAA,WAAA,CAAY,OAAS,CAClC5vB,EAAAA,EAAAA,CAAagyB,EAAWpC,CAAU,EAEtC,EAAG,GAAI,EACT,CACA,IAAIuC,EAAAA,CAAkB,CACpB,KAAO,CAAA,QAAA,CACP,MAAO,CACP,CAAA,IAAA,CAAM,QACN,MAAQ,CAAA,SAAUvF,CAAM,CAAA,CACtB,IAAI5F,CAAS4F,CAAAA,CAAAA,CAAK,OAAO,IACrBwF,CAAAA,CAAAA,CAASz3B,EAASA,CAAS,CAAA,GAAIiyB,CAAI,CAAA,CAAG,CACxC,WAAa,CAAA,SAAU5J,EAAQ3Y,CAAM/N,CAAAA,CAAAA,CAAS,CAC5C,IAAImd,CAAAA,CAAWmT,CAAK,CAAA,WAAA,CAAY5J,EAAQ3Y,CAAM/N,CAAAA,CAAO,EACrD,GAAI+N,CAAAA,GAAS,YAAa,CACxB,IAAIgoB,EAAO,IAAI,eAAA,CACXJ,EAASI,CAAK,CAAA,MAAA,CACdC,EAAiB,SAAUC,CAAAA,CAAc,CAC3C,OAAO,UAAY,CAEjB,GADAF,CAAAA,CAAK,OACDhoB,CAAAA,CAAAA,GAAS,YAAa,CAExB,IAAA,IADImoB,EAAwB,IAAI,GAAA,CACvBvjB,EAAK,CAAGwjB,CAAAA,CAAAA,CAAWzP,EAAQ/T,CAAKwjB,CAAAA,CAAAA,CAAS,OAAQxjB,CAAM,EAAA,CAAA,CAC9D,IAAIkT,CAAYsQ,CAAAA,CAAAA,CAASxjB,CAAE,CAAA,CACvB6X,EAAWT,EAAM,CAAA,QAAA,CAAS,OAAOW,CAAQ,CAAA,GAAG,EAAE,MAAO7E,CAAAA,CAAS,CAAC,CACnE,CAAA,GAAI2E,EAAU,CACZ,IAAI7R,EAAQ2X,CAAK,CAAA,KAAA,CAAMzK,CAAS,CAC5BwN,CAAAA,CAAAA,CAAM7I,CAAS,CAAA,aAAA,CAAc,OAAO,SAAUqJ,EAAAA,CAAI,CACpD,OAAOA,EAAAA,CAAG,QAAU1W,CACtB,CAAC,EACD,GAAIA,CAAAA,CAAS,WAAa8Y,CAAgB9Y,EAAAA,CAAAA,CAAS,aACjD,IAAS7M,IAAAA,CAAAA,CAAK,EAAGsC,CAAK,CAAA,MAAA,CAAO,MAAO4X,CAAAA,CAAAA,CAAS,QAAQ,KAAK,CAAA,CAAGla,EAAKsC,CAAG,CAAA,MAAA,CAAQtC,IAE3E,IADIwa,IAAAA,CAAAA,CAAUlY,EAAGtC,CAAE,CAAA,CACV0a,EAAK,CAAGE,CAAAA,CAAAA,CAAKJ,EAAQ,KAAM,EAAA,CAAGE,EAAKE,CAAG,CAAA,MAAA,CAAQF,CAAM,EAAA,CAAA,CAC3D,IAAI5Y,EAAQ8Y,CAAAA,CAAAA,CAAGF,CAAE,CACbpB,CAAAA,EAAAA,CAAexX,GAAM,MAAQ+K,CAAAA,CAAAA,CAAS,YAAY,CACpDzZ,GAAAA,EAAAA,CAAaonB,EAAS1Y,EAAK,CAAA,CAC3BA,GAAM,WAAY,CAAA,OAAA,CAAQ,SAAUuY,EAAS,CAAA,CAC3C,OAAOuL,CAAAA,CAAsB,IAAIvL,EAAO,CAC1C,CAAC,CAEL,EAAA,CAAA,KAAA,GAEO0I,EAAI,MAAS,CAAA,CAAA,CAAG,CACzB7I,CAAS,CAAA,aAAA,CAAgBA,EAAS,aAAc,CAAA,MAAA,CAAO,SAAUqJ,EAAI,CAAA,CACnE,OAAOA,EAAG,CAAA,KAAA,GAAU1W,CACtB,CAAC,EACD,IAASiO,IAAAA,EAAAA,CAAK,EAAGgL,EAAK,CAAA,MAAA,CAAO,OAAO5L,CAAS,CAAA,OAAA,CAAQ,KAAK,CAAGY,CAAAA,EAAAA,CAAKgL,GAAG,MAAQhL,CAAAA,EAAAA,EAAAA,CAE3E,QADIN,CAAUsL,CAAAA,EAAAA,CAAGhL,EAAE,CACViL,CAAAA,EAAAA,CAAK,CAAGC,CAAAA,EAAAA,CAAKxL,EAAQ,KAAM,EAAA,CAAGuL,GAAKC,EAAG,CAAA,MAAA,CAAQD,KAAM,CAC3D,IAAIjkB,GAAQkkB,EAAGD,CAAAA,EAAE,EACjB,GAAIjkB,EAAAA,CAAM,KAAO,IAAQ+K,EAAAA,CAAAA,CAAS,aAChC,GAAI8Y,CAAAA,EAAgB,CAAC7jB,EAAAA,CAAM,MAAO,CAChC,IAAImkB,GAAgB,MAAO,CAAA,QAAA,CAASnkB,GAAM,GAAG,CAAA,CACzCokB,GAASpD,EAAmBhhB,CAAAA,EAAAA,CAAM,IAAKA,EAAM,CAAA,GAAA,CAAKihB,EAAK1a,CAAOvG,CAAAA,EAAAA,CAAOmkB,EAAa,CAClFnkB,CAAAA,EAAAA,CAAM,KACR1O,EAAAA,EAAAA,CAAaonB,EAAS1Y,EAAK,CAAA,CAC3BA,GAAM,WAAY,CAAA,OAAA,CAAQ,SAAUuY,EAAS,CAAA,CAC3C,OAAOuL,CAAsB,CAAA,GAAA,CAAIvL,EAAO,CAC1C,CAAC,GACQ6L,EAAWpkB,GAAAA,EAAAA,CAAM,MAC1BA,EAAM,CAAA,GAAA,CAAMokB,EACZpkB,CAAAA,EAAAA,CAAM,QAAU5J,EAAa,CAAA,OAAA,CAAQ,CACnC,MAAQguB,CAAAA,EACV,CAAC,CAEL,EAAA,CAAA,KACMpkB,GAAM,KACR1O,EAAAA,EAAAA,CAAaonB,EAAS1Y,EAAK,CAAA,CAE7BA,GAAM,WAAY,CAAA,OAAA,CAAQ,SAAUuY,EAAS,CAAA,CAC3C,OAAOuL,CAAAA,CAAsB,IAAIvL,EAAO,CAC1C,CAAC,EAGP,CAEJ,CACF,CACF,CACAuL,EAAsB,OAAQ,CAAA,SAAUvL,GAAS,CAC/C,OAAOA,IACT,CAAC,EACH,CACF,CACF,CACAxN,CAAAA,CAAAA,CAAS,iBAAiB,OAAS6Y,CAAAA,CAAAA,CAAe,EAAK,CAAG,CAAA,CACxD,OAAQL,CACV,CAAC,EACDxY,CAAS,CAAA,gBAAA,CAAiB,QAAS6Y,CAAe,CAAA,CAAA,CAAK,EAAG,CACxD,MAAA,CAAQL,CACV,CAAC,CAAA,CACDxY,CAAS,CAAA,gBAAA,CAAiB,WAAY6Y,CAAe,CAAA,CAAA,CAAI,EAAG,CAC1D,MAAA,CAAQL,CACV,CAAC,EACH,CACA,OAAOxY,CACT,EACA,KAAO,CAAA,SAAUvN,EAAW,CAC1B,IAAIqf,EAAYqB,CAAK,CAAA,KAAA,CAAM1gB,CAAS,CAAA,CAChC8O,EAAUuQ,CAAU,CAAA,MAAA,CAAO,WAC3BwH,CAAUp4B,CAAAA,CAAAA,CAASA,EAAS,EAAC,CAAG4wB,CAAS,CAAG,CAAA,CAC9C,OAAQ,SAAUhP,CAAAA,CAAK,CACrB,IAAIhS,CAAAA,CAAQ5F,GAAI,KAChB,CAAA,GAAIqW,CAAQ,CAAA,QAAA,EAAYzQ,EAAM,EAAG,CAAA,QAAA,CAAS,QAAU,UAAcA,EAAAA,CAAAA,CAAM,UAAYA,CAAM,CAAA,QAAA,CAAS,OAAS,WAC1G,CAAA,OAAOghB,EAAU,MAAOhP,CAAAA,CAAG,EAE7B,IAAIuK,CAAAA,CAAWT,GAAM,QAAS,CAAA,MAAA,CAAOW,EAAQ,GAAG,CAAA,CAAE,OAAO9a,CAAS,CAAC,EACnE,GAAI,CAAC4a,EAAU,OAAOyE,CAAAA,CAAU,OAAOhP,CAAG,CAAA,CAC1C,IAAIlV,CAAUkkB,CAAAA,CAAAA,CAAU,OAAOhP,CAAG,CAAA,CAClC,QAAKA,CAAI,CAAA,IAAA,GAAS,KAASA,EAAAA,CAAAA,CAAI,OAAS,KAAWA,IAAAA,CAAAA,CAAI,OAAO,MAAU,EAAA,EAAA,EAAM6O,GAAiBpQ,CAASuB,CAAAA,CAAG,EAAE,IAAK,CAAA,SAAU3gB,EAAK,CAC/H,OAAOA,GAAO,IAChB,CAAC,GACCyL,CAAQ,CAAA,IAAA,CAAK,SAAU7E,CAAAA,CAAK,CAC1B,IAAIwwB,CAAAA,CAAsBr4B,EAASA,CAAS,CAAA,GAAI4hB,CAAG,CAAA,CAAG,CACpD,MAAQA,CAAAA,CAAAA,CAAI,OAAO,GAAI,CAAA,SAAUle,EAAOvD,CAAG,CAAA,CACzC,IAAI8R,CACJ,CAAA,GAAIpK,CAAI,CAAA,QAAA,CAAS1H,CAAC,CAAG,CAAA,OAAOuD,EAC5B,IAAI40B,CAAAA,CAAiB,GAAArmB,CAAKoO,CAAAA,CAAAA,CAAQ,WAAa,IAAQpO,EAAAA,CAAAA,GAAO,SAAkBA,CAAG,CAAA,QAAA,CAAS,GAAG,CAAKpN,CAAAA,EAAAA,CAAUnB,CAAK,CAAI1D,CAAAA,CAAAA,CAAS,EAAC,CAAG0D,CAAK,CACzI,CAAA,OAAAD,GAAa60B,CAAcjY,CAAAA,CAAAA,CAAQ,QAASxY,CAAI,CAAA,OAAA,CAAQ1H,CAAC,CAAC,CAAA,CACnDm4B,CACT,CAAC,CACH,CAAC,CACGC,CAAAA,CAAAA,CAAc7D,GAA6BvI,CAAUkM,CAAAA,CAAAA,CAAqBxwB,CAAG,CAAA,CACjFskB,EAAS,aAAc,CAAA,IAAA,CAAKoM,CAAW,CACvC,CAAA,cAAA,CAAe,UAAY,CACzB,OAAO3W,EAAI,YAAgBiK,EAAAA,EAAAA,CAAwBjK,EAAI,YAAY,CACrE,CAAC,EACH,CAAC,GAEDuK,CAAS,CAAA,aAAA,CAAc,IAAKvK,CAAAA,CAAG,EAC/BA,CAAI,CAAA,YAAA,EAAgBiK,GAAwBjK,CAAI,CAAA,YAAY,EAC5DlV,CAAQ,CAAA,IAAA,CAAK,SAAU7E,CAAK,CAAA,CAC1B,GAAIA,CAAI,CAAA,WAAA,CAAc,EAAG,CACvBxC,EAAAA,CAAa8mB,EAAS,aAAevK,CAAAA,CAAG,CACxC,CAAA,IAAI2W,EAAc7D,EAA6BvI,CAAAA,CAAAA,CAAUvK,EAAK/Z,CAAG,CAAA,CAC7D0wB,GACFpM,CAAS,CAAA,aAAA,CAAc,KAAKoM,CAAW,CAAA,CAEzC3W,EAAI,YAAgBiK,EAAAA,EAAAA,CAAwBjK,EAAI,YAAY,EAC9D,CACF,CAAC,CAAA,CACDlV,EAAQ,KAAM,CAAA,UAAY,CACxBrH,EAAa8mB,CAAAA,CAAAA,CAAS,cAAevK,CAAG,CAAA,CACxCA,EAAI,YAAgBiK,EAAAA,EAAAA,CAAwBjK,EAAI,YAAY,EAC9D,CAAC,CAEIlV,CAAAA,CAAAA,CACT,EACA,KAAO,CAAA,SAAUkV,EAAK,CACpB,IAAI3P,CACJ,CAAA,GAAI,CAACkgB,EAAkBnoB,CAAAA,EAAAA,CAAK4mB,CAAS,CAAK,EAAA,CAACwB,GAAkB,OAASxQ,CAAAA,CAAG,EAAG,OAAOgP,CAAAA,CAAU,MAAMhP,CAAG,CAAA,CACtG,IAAIsW,CAAkBjmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKjI,GAAI,KAAW,IAAA,IAAA,EAAQiI,CAAO,GAAA,KAAA,CAAA,CAAS,OAASA,CAAG,CAAA,EAAA,CAAG,SAAS,KAAW,IAAA,WAAA,CACjGsC,EAAKvK,EACPsiB,CAAAA,CAAAA,CAAU/X,EAAG,OACb+iB,CAAAA,CAAAA,CAAS/iB,EAAG,MACVoY,CAAAA,CAAAA,CAAKoK,GAAoB1K,CAAQ9a,CAAAA,CAAAA,CAAW,QAASqQ,CAAG,CAAA,CAC1DqT,CAAatI,CAAAA,CAAAA,CAAG,CAAC,CACjB6L,CAAAA,CAAAA,CAAa7L,EAAG,CAAC,CAAA,CACjBR,EAAWQ,CAAG,CAAA,CAAC,EACf0K,CAAY1K,CAAAA,CAAAA,CAAG,CAAC,CAClB,CAAA,GAAIsI,GAAcuD,CAChBvD,CAAAA,CAAAA,CAAW,OAASrT,CAAI,CAAA,MAAA,CAAA,KACnB,CACL,IAAIlV,EAAUkkB,CAAU,CAAA,KAAA,CAAMhP,CAAG,CAAE,CAAA,IAAA,CAAK,SAAU/Z,CAAK,CAAA,CACrD,IAAI7E,CAAS6E,CAAAA,CAAAA,CAAI,OAEjB,GADIotB,CAAAA,GAAYA,EAAW,GAAMjyB,CAAAA,CAAAA,CAAAA,CAC7Bk1B,EAAe,CACjB,IAAA,IAAS/3B,CAAI,CAAA,CAAA,CAAGM,EAAIuC,CAAO,CAAA,MAAA,CAAQ7C,EAAIM,CAAG,CAAA,EAAEN,EAC1C,MAAO,CAAA,MAAA,CAAO6C,EAAO7C,CAAC,CAAC,EAEzB,MAAO,CAAA,MAAA,CAAO6C,CAAM,EACtB,CAAA,KACE6E,EAAI,MAAShD,CAAAA,EAAAA,CAAU7B,CAAM,CAAA,CAE/B,OAAO6E,CACT,CAAC,EAAE,KAAM,CAAA,SAAUuS,EAAO,CACxB,OAAIid,GAAapC,CAAY5vB,EAAAA,EAAAA,CAAagyB,EAAWpC,CAAU,CAAA,CACxD,QAAQ,MAAO7a,CAAAA,CAAK,CAC7B,CAAC,CAAA,CACD6a,CAAa,CAAA,CACX,OAAQrT,CAAI,CAAA,MAAA,CACZ,QAASlV,CACT,CAAA,WAAA,CAAa,IAAI,GACjB,CAAA,IAAA,CAAM,QACN,GAAKkV,CAAAA,CAAAA,CACL,MAAO,CACT,CAAA,CAAA,CACIyV,EACFA,CAAU,CAAA,IAAA,CAAKpC,CAAU,CAEzBoC,EAAAA,CAAAA,CAAY,CAACpC,CAAU,CAAA,CAClB9I,IACHA,CAAWT,CAAAA,EAAAA,CAAM,SAAS,MAAOW,CAAAA,CAAAA,CAAQ,GAAG,CAAE,CAAA,MAAA,CAAO9a,CAAS,CAAC,CAAA,CAAI,CACjE,OAAS,CAAA,CACP,MAAO,EAAC,CACR,MAAO,EACT,CACA,CAAA,IAAA,CAAM,IAAI,GACV,CAAA,aAAA,CAAe,EACf,CAAA,eAAA,CAAiB,EACnB,CAAA,CAAA,CAEF4a,EAAS,OAAQ,CAAA,KAAA,CAAMvK,EAAI,KAAM,CAAA,KAAA,CAAM,MAAQ,EAAE,CAAA,CAAIyV,GAEzD,CACA,OAAAD,EAAsBnC,CAAAA,CAAAA,CAAYoC,EAAW/K,CAASgL,CAAAA,CAAM,EACrDrC,CAAW,CAAA,OAAA,CAAQ,KAAK,SAAUptB,CAAAA,CAAK,CAC5C,OAAO,CACL,OAAQktB,EAAmBltB,CAAAA,CAAAA,CAAI,OAAQ+Z,CAAyDuK,CAAAA,CAAAA,EAAS,cAAeyE,CAAWqE,CAAAA,CAAAA,CAAYiD,CAAa,CAC9J,CACF,CAAC,CACH,CACF,CAAC,CAAA,CACD,OAAOE,CACT,CACF,CAAC,CACD,CAAA,OAAOX,CACT,CACF,CAAA,CACA,SAASgB,EAAOxO,CAAAA,CAAAA,CAAQyO,EAAO,CAC7B,OAAO,IAAI,KAAA,CAAMzO,EAAQ,CACvB,GAAA,CAAK,SAAUA,CAAQ5oB,CAAAA,CAAAA,CAAMs3B,EAAU,CACrC,OAAIt3B,IAAS,IAAaq3B,CAAAA,CAAAA,CACnB,QAAQ,GAAIzO,CAAAA,CAAAA,CAAQ5oB,EAAMs3B,CAAQ,CAC3C,CACF,CAAC,CACH,CACA,IAAI7P,GAAU,UAAY,CACxB,SAAS8P,CAAM5yB,CAAAA,CAAAA,CAAMrE,EAAS,CAC5B,IAAIkJ,EAAQ,IACZ,CAAA,IAAA,CAAK,aAAe,EAAC,CACrB,KAAK,KAAQ,CAAA,CAAA,CACb,IAAIguB,CAAOD,CAAAA,CAAAA,CAAM,YACjB,CAAA,IAAA,CAAK,SAAWj3B,CAAU3B,CAAAA,CAAAA,CAAS,CACjC,MAAQ44B,CAAAA,CAAAA,CAAM,OACd,QAAU,CAAA,CAAA,CAAA,CACV,UAAWC,CAAK,CAAA,SAAA,CAChB,YAAaA,CAAK,CAAA,WAAA,CAClB,MAAO,QACT,CAAA,CAAGl3B,CAAO,CACV,CAAA,IAAA,CAAK,KAAQ,CAAA,CACX,UAAWA,CAAQ,CAAA,SAAA,CACnB,YAAaA,CAAQ,CAAA,WACvB,EACA,IAAIm3B,CAAAA,CAASn3B,EAAQ,MACrB,CAAA,IAAA,CAAK,UAAY,EAAC,CAClB,KAAK,SAAY,CAAA,GACjB,IAAK,CAAA,WAAA,CAAc,EAAC,CACpB,KAAK,UAAa,CAAA,GAClB,IAAK,CAAA,KAAA,CAAQ,KACb,IAAK,CAAA,MAAA,CAAS,KACd,IAAIqpB,CAAAA,CAAQ,CACV,WAAa,CAAA,IAAA,CACb,cAAe,CACf,CAAA,CAAA,iBAAA,CAAmB,KACnB,YAAc,CAAA,CAAA,CAAA,CACd,cAAgB5jB,CAAAA,EAAAA,CAChB,eAAgB,IAChB,CAAA,UAAA,CAAYA,GACZ,aAAe,CAAA,IAAA,CACf,WAAY,CACZ,CAAA,CAAA,cAAA,CAAgB,EAChB,QAAUzF,CAAAA,CAAAA,CAAQ,QACpB,CACAqpB,CAAAA,CAAAA,CAAM,eAAiB,IAAI7gB,EAAAA,CAAa,SAAUc,CAAS,CAAA,CACzD+f,CAAM,CAAA,cAAA,CAAiB/f,EACzB,CAAC,CAAA,CACD+f,EAAM,aAAgB,CAAA,IAAI7gB,GAAa,SAAUoqB,CAAAA,CAAGrpB,EAAQ,CAC1D8f,CAAAA,CAAM,WAAa9f,EACrB,CAAC,EACD,IAAK,CAAA,MAAA,CAAS8f,EACd,IAAK,CAAA,IAAA,CAAOhlB,CACZ,CAAA,IAAA,CAAK,GAAK2O,EAAO,CAAA,IAAA,CAAM,WAAY,SAAW,CAAA,eAAA,CAAiB,QAAS,CACtE,KAAA,CAAO,CAACtM,EAAiBjB,CAAAA,EAAG,CAC9B,CAAC,CAAA,CACD,KAAK,EAAG,CAAA,KAAA,CAAM,UAAY7E,EAAS,CAAA,IAAA,CAAK,EAAG,CAAA,KAAA,CAAM,UAAW,SAAUw2B,CAAAA,CAAW,CAC/E,OAAO,SAAUhkB,EAAYikB,CAAS,CAAA,CACpCJ,EAAM,GAAI,CAAA,UAAY,CACpB,IAAI5N,CAAAA,CAAQngB,EAAM,MAClB,CAAA,GAAImgB,EAAM,YACHA,CAAAA,CAAAA,CAAM,WAAa7gB,EAAAA,EAAAA,CAAa,SAAU,CAAA,IAAA,CAAK4K,CAAU,CAC1DikB,CAAAA,CAAAA,EAASD,EAAUhkB,CAAU,CAAA,CAAA,KAAA,GACxBiW,EAAM,iBACfA,CAAAA,CAAAA,CAAM,kBAAkB,IAAKjW,CAAAA,CAAU,EACnCikB,CAASD,EAAAA,CAAAA,CAAUhkB,CAAU,CAC5B,CAAA,KAAA,CACLgkB,CAAUhkB,CAAAA,CAAU,EACpB,IAAIkkB,CAAAA,CAAOpuB,EACNmuB,CAASD,EAAAA,CAAAA,CAAU,SAASG,CAAc,EAAA,CAC7CD,EAAK,EAAG,CAAA,KAAA,CAAM,YAAYlkB,CAAU,CAAA,CACpCkkB,EAAK,EAAG,CAAA,KAAA,CAAM,YAAYC,CAAW,EACvC,CAAC,EACH,CACF,CAAC,EACH,CACF,CAAC,CAAA,CACD,KAAK,UAAalf,CAAAA,EAAAA,CAA4B,IAAI,CAClD,CAAA,IAAA,CAAK,MAAQxE,EAAuB,CAAA,IAAI,EACxC,IAAK,CAAA,WAAA,CAAckK,GAA6B,IAAI,CAAA,CACpD,KAAK,OAAU+I,CAAAA,EAAAA,CAAyB,IAAI,CAC5C,CAAA,IAAA,CAAK,YAAcrK,EAA6B,CAAA,IAAI,EACpD,IAAK,CAAA,EAAA,CAAG,gBAAiB,SAAUa,CAAAA,CAAI,CACjCA,CAAG,CAAA,UAAA,CAAa,EAAG,OAAQ,CAAA,IAAA,CAAK,iDAAiD,MAAOpU,CAAAA,CAAAA,CAAM,IAAM,CAAA,0CAA0C,CAAC,CAAO,CAAA,OAAA,CAAQ,KAAK,+CAAgD,CAAA,MAAA,CAAOA,EAAM,IAAM,CAAA,iDAAiD,CAAC,CAC5RA,CAAAA,CAAAA,CAAM,MAAM,CACV,eAAA,CAAiB,EACnB,CAAC,EACH,CAAC,CACD,CAAA,IAAA,CAAK,EAAG,CAAA,SAAA,CAAW,SAAUoU,CAAI,CAAA,CAC3B,CAACA,CAAG,CAAA,UAAA,EAAcA,EAAG,UAAaA,CAAAA,CAAAA,CAAG,WAAY,OAAQ,CAAA,IAAA,CAAK,iBAAiB,MAAOpU,CAAAA,CAAAA,CAAM,KAAM,gBAAgB,CAAC,EAAO,OAAQ,CAAA,IAAA,CAAK,WAAY,CAAA,MAAA,CAAOA,EAAM,IAAM,CAAA,gDAAgD,EAAE,MAAOoU,CAAAA,CAAAA,CAAG,WAAa,EAAE,CAAC,EACxP,CAAC,CAAA,CACD,KAAK,OAAUuB,CAAAA,EAAAA,CAAU7e,EAAQ,WAAW,CAAA,CAC5C,KAAK,kBAAqB,CAAA,SAAU+N,CAAMC,CAAAA,CAAAA,CAAYgQ,EAAUiP,CAAmB,CAAA,CACjF,OAAO,IAAI/jB,CAAAA,CAAM,YAAY6E,CAAMC,CAAAA,CAAAA,CAAYgQ,EAAU9U,CAAM,CAAA,QAAA,CAAS,4BAA6B+jB,CAAiB,CACxH,EACA,IAAK,CAAA,cAAA,CAAiB,SAAU3P,CAAI,CAAA,CAClCpU,CAAM,CAAA,EAAA,CAAG,SAAS,CAAE,CAAA,IAAA,CAAKoU,CAAE,CAC3B/O,CAAAA,EAAAA,CAAY,OAAO,SAAU6G,CAAAA,CAAG,CAC9B,OAAOA,CAAAA,CAAE,OAASlM,CAAM,CAAA,IAAA,EAAQkM,IAAMlM,CAAS,EAAA,CAACkM,EAAE,MAAO,CAAA,OAC3D,CAAC,CAAA,CAAE,IAAI,SAAUA,CAAAA,CAAG,CAClB,OAAOA,CAAAA,CAAE,GAAG,eAAe,CAAA,CAAE,KAAKkI,CAAE,CACtC,CAAC,EACH,CAAA,CACA,KAAK,GAAI+S,CAAAA,EAA6B,EACtC,IAAK,CAAA,GAAA,CAAIwF,EAAe,CAAA,CACxB,KAAK,GAAInF,CAAAA,EAAuB,EAChC,IAAK,CAAA,GAAA,CAAInC,EAAsB,CAC/B,CAAA,IAAA,CAAK,IAAIQ,EAAe,CAAA,CACxB,IAAIyI,CAAQ,CAAA,IAAI,MAAM,IAAM,CAAA,CAC1B,IAAK,SAAU5E,CAAAA,CAAGlzB,EAAMs3B,CAAU,CAAA,CAChC,GAAIt3B,CAAS,GAAA,MAAA,CAAQ,OAAO,CAC5B,CAAA,CAAA,GAAIA,IAAS,OAAS,CAAA,OAAO,SAAUkQ,CAAW,CAAA,CAChD,OAAOknB,EAAO5tB,CAAAA,CAAAA,CAAM,MAAM0G,CAAS,CAAA,CAAG4nB,CAAK,CAC7C,CAAA,CACA,IAAI91B,CAAAA,CAAK,QAAQ,GAAIkxB,CAAAA,CAAAA,CAAGlzB,EAAMs3B,CAAQ,CAAA,CACtC,OAAIt1B,CAAcgO,YAAAA,EAAAA,CAAconB,GAAOp1B,CAAI81B,CAAAA,CAAK,EAC5C93B,CAAS,GAAA,QAAA,CAAiBgC,EAAG,GAAI,CAAA,SAAUpD,EAAG,CAChD,OAAOw4B,EAAOx4B,CAAAA,CAAAA,CAAGk5B,CAAK,CACxB,CAAC,EACG93B,CAAS,GAAA,oBAAA,CAA6B,UAAY,CACpD,IAAI+3B,EAAK/1B,CAAG,CAAA,KAAA,CAAM,KAAM,SAAS,CAAA,CACjC,OAAOo1B,EAAOW,CAAAA,CAAAA,CAAID,CAAK,CACzB,CAAA,CACO91B,CACT,CACF,CAAC,CACD,CAAA,IAAA,CAAK,IAAM81B,CACXL,CAAAA,CAAAA,CAAO,QAAQ,SAAUO,CAAAA,CAAO,CAC9B,OAAOA,CAAAA,CAAMxuB,CAAK,CACpB,CAAC,EACH,CACA,OAAA+tB,EAAM,SAAU,CAAA,OAAA,CAAU,SAAUlQ,CAAAA,CAAe,CACjD,GAAI,KAAA,CAAMA,CAAa,CAAKA,EAAAA,CAAAA,CAAgB,GAAK,MAAM,IAAI/hB,GAAW,IAAK,CAAA,wCAAwC,EAEnH,GADA+hB,CAAAA,CAAgB,KAAK,KAAMA,CAAAA,CAAAA,CAAgB,EAAE,CAAI,CAAA,EAAA,CAC7C,IAAK,CAAA,KAAA,EAAS,KAAK,MAAO,CAAA,aAAA,CAAe,MAAM,IAAI/hB,EAAAA,CAAW,OAAO,0CAA0C,CAAA,CACnH,KAAK,KAAQ,CAAA,IAAA,CAAK,IAAI,IAAK,CAAA,KAAA,CAAO+hB,CAAa,CAC/C,CAAA,IAAIzC,EAAW,IAAK,CAAA,SAAA,CAChBqT,CAAkBrT,CAAAA,CAAAA,CAAS,OAAO,SAAUvhB,CAAAA,CAAG,CACjD,OAAOA,CAAAA,CAAE,KAAK,OAAYgkB,GAAAA,CAC5B,CAAC,CAAE,CAAA,CAAC,EACJ,OAAI4Q,CAAAA,GACJA,EAAkB,IAAI,IAAA,CAAK,QAAQ5Q,CAAa,CAAA,CAChDzC,CAAS,CAAA,IAAA,CAAKqT,CAAe,CAC7BrT,CAAAA,CAAAA,CAAS,KAAKvB,EAAiB,CAAA,CAC/B4U,EAAgB,MAAO,CAAA,EAAE,CACzB,CAAA,IAAA,CAAK,OAAO,UAAa,CAAA,CAAA,CAAA,CAClBA,EACT,CACAV,CAAAA,CAAAA,CAAM,UAAU,UAAa,CAAA,SAAUh2B,EAAI,CACzC,IAAIiI,EAAQ,IACZ,CAAA,OAAO,KAAK,KAAU,GAAA,IAAA,CAAK,OAAO,YAAgBb,EAAAA,EAAAA,CAAI,YAAc,IAAK,CAAA,IAAA,CAAA,CAAQpH,GAAO,CAAA,IAAIuH,GAAa,SAAUc,CAAAA,CAASC,EAAQ,CAClI,GAAIL,CAAM,CAAA,MAAA,CAAO,aACf,OAAOK,CAAAA,CAAO,IAAIvE,EAAW,CAAA,cAAA,CAAekE,EAAM,MAAO,CAAA,WAAW,CAAC,CAEvE,CAAA,GAAI,CAACA,CAAM,CAAA,MAAA,CAAO,cAAe,CAC/B,GAAI,CAACA,CAAM,CAAA,MAAA,CAAO,QAAU,CAAA,CAC1BK,EAAO,IAAIvE,EAAAA,CAAW,cAAgB,CACtC,CAAA,MACF,CACAkE,CAAM,CAAA,IAAA,GAAO,KAAMzD,CAAAA,EAAG,EACxB,CACAyD,CAAAA,CAAM,OAAO,cAAe,CAAA,IAAA,CAAKI,EAASC,CAAM,EAClD,CAAC,CAAA,CAAE,KAAKtI,CAAE,CACZ,EACAg2B,CAAM,CAAA,SAAA,CAAU,IAAM,SAAU3mB,CAAAA,CAAI,CAClC,IAAIsnB,CAAAA,CAAQtnB,EAAG,KACb8R,CAAAA,CAAAA,CAAS9R,EAAG,MACZunB,CAAAA,CAAAA,CAAQvnB,EAAG,KACXjM,CAAAA,CAAAA,CAAOiM,CAAG,CAAA,IAAA,CACRjM,GAAM,IAAK,CAAA,KAAA,CAAM,CACnB,KAAOuzB,CAAAA,CAAAA,CACP,KAAMvzB,CACR,CAAC,EACD,IAAI6d,CAAAA,CAAc,KAAK,YAAa0V,CAAAA,CAAK,IAAM,IAAK,CAAA,YAAA,CAAaA,CAAK,CAAI,CAAA,EAC1E,CAAA,CAAA,OAAA1V,EAAY,IAAK,CAAA,CACf,MAAO0V,CACP,CAAA,MAAA,CAAQxV,EACR,KAAOyV,CAAAA,CAAAA,EAAgB,GACvB,IAAMxzB,CAAAA,CACR,CAAC,CACD6d,CAAAA,CAAAA,CAAY,KAAK,SAAU1f,CAAAA,CAAGvE,EAAG,CAC/B,OAAOuE,CAAE,CAAA,KAAA,CAAQvE,EAAE,KACrB,CAAC,EACM,IACT,CAAA,CACAg5B,EAAM,SAAU,CAAA,KAAA,CAAQ,SAAU3mB,CAAI,CAAA,CACpC,IAAIsnB,CAAQtnB,CAAAA,CAAAA,CAAG,MACbjM,CAAOiM,CAAAA,CAAAA,CAAG,KACV8R,CAAS9R,CAAAA,CAAAA,CAAG,MACd,CAAA,OAAIsnB,GAAS,IAAK,CAAA,YAAA,CAAaA,CAAK,CAClC,GAAA,IAAA,CAAK,aAAaA,CAAK,CAAA,CAAI,KAAK,YAAaA,CAAAA,CAAK,EAAE,MAAO,CAAA,SAAUE,EAAI,CACvE,OAAO1V,EAAS0V,CAAG,CAAA,MAAA,GAAW1V,CAAS/d,CAAAA,CAAAA,CAAOyzB,EAAG,IAASzzB,GAAAA,CAAAA,CAAO,EACnE,CAAC,CAAA,CAAA,CAEI,IACT,CACA4yB,CAAAA,CAAAA,CAAM,UAAU,IAAO,CAAA,UAAY,CACjC,IAAI/tB,CAAAA,CAAQ,KACZ,OAAOsB,EAAAA,CAAOpC,GAAW,UAAY,CACnC,OAAOijB,EAAAA,CAAUniB,CAAK,CACxB,CAAC,CACH,CACA+tB,CAAAA,CAAAA,CAAM,UAAU,MAAS,CAAA,UAAY,CACnC,IAAI5N,CAAAA,CAAQ,KAAK,MACb3Y,CAAAA,CAAAA,CAAMnC,GAAY,OAAQ,CAAA,IAAI,EAElC,GADImC,CAAAA,EAAO,CAAGnC,EAAAA,EAAAA,CAAY,OAAOmC,CAAK,CAAA,CAAC,EACnC,IAAK,CAAA,KAAA,CAAO,CACd,GAAI,CACF,KAAK,KAAM,CAAA,KAAA,GACb,CAAY,KAAA,EACZ,IAAK,CAAA,KAAA,CAAQ,KACf,CACK2Y,CAAAA,CAAM,aACTA,GAAAA,CAAAA,CAAM,eAAiB,IAAI7gB,EAAAA,CAAa,SAAUc,CAAS,CAAA,CACzD+f,EAAM,cAAiB/f,CAAAA,EACzB,CAAC,CACD+f,CAAAA,CAAAA,CAAM,cAAgB,IAAI7gB,EAAAA,CAAa,SAAUoqB,CAAGrpB,CAAAA,CAAAA,CAAQ,CAC1D8f,CAAM,CAAA,UAAA,CAAa9f,EACrB,CAAC,GAEL,CACA0tB,CAAAA,CAAAA,CAAM,UAAU,KAAQ,CAAA,SAAU3mB,EAAI,CACpC,IAAIsC,EAAKtC,CAAO,GAAA,KAAA,CAAA,CAAS,CACrB,eAAiB,CAAA,CAAA,CACnB,EAAIA,CACJynB,CAAAA,CAAAA,CAAkBnlB,EAAG,eACnByW,CAAAA,CAAAA,CAAQ,IAAK,CAAA,MAAA,CACb0O,GACE1O,CAAM,CAAA,aAAA,EACRA,EAAM,UAAW,CAAA,IAAIrkB,GAAW,cAAgB,CAAA,CAElD,KAAK,MAAO,EAAA,CACZqkB,EAAM,QAAW,CAAA,CAAA,CAAA,CACjBA,EAAM,WAAc,CAAA,IAAIrkB,GAAW,cAEnC,GAAA,IAAA,CAAK,MAAO,EAAA,CACZqkB,EAAM,QAAW,CAAA,IAAA,CAAK,SAAS,QAAYA,EAAAA,CAAAA,CAAM,cACjDA,CAAM,CAAA,YAAA,CAAe,GACrBA,CAAM,CAAA,WAAA,CAAc,MAExB,CACA4N,CAAAA,CAAAA,CAAM,UAAU,MAAS,CAAA,SAAUe,EAAc,CAC/C,IAAI9uB,CAAQ,CAAA,IAAA,CACR8uB,IAAiB,KACnBA,CAAAA,GAAAA,CAAAA,CAAe,CACb,eAAiB,CAAA,CAAA,CACnB,GAEF,IAAIC,CAAAA,CAAsB,UAAU,MAAS,CAAA,CAAA,EAAK,OAAO,SAAU,CAAA,CAAC,GAAM,QACtE5O,CAAAA,CAAAA,CAAQ,KAAK,MACjB,CAAA,OAAO,IAAI7gB,EAAa,CAAA,SAAUc,EAASC,CAAQ,CAAA,CACjD,IAAI2uB,CAAW,CAAA,UAAY,CACzBhvB,CAAM,CAAA,KAAA,CAAM8uB,CAAY,CACxB,CAAA,IAAI/X,EAAM/W,CAAM,CAAA,KAAA,CAAM,UAAU,cAAeA,CAAAA,CAAAA,CAAM,IAAI,CACzD+W,CAAAA,CAAAA,CAAI,SAAY7T,CAAAA,EAAAA,CAAK,UAAY,CAC/Bqb,EAAAA,CAAmBve,EAAM,KAAOA,CAAAA,CAAAA,CAAM,IAAI,CAC1CI,CAAAA,CAAAA,GACF,CAAC,CAAA,CACD2W,EAAI,OAAUtD,CAAAA,EAAAA,CAAmBpT,CAAM,CACvC0W,CAAAA,CAAAA,CAAI,UAAY/W,CAAM,CAAA,eACxB,CACA,CAAA,GAAI+uB,EAAqB,MAAM,IAAIjzB,GAAW,eAAgB,CAAA,8CAA8C,EACxGqkB,CAAM,CAAA,aAAA,CACRA,EAAM,cAAe,CAAA,IAAA,CAAK6O,CAAQ,CAElCA,CAAAA,CAAAA,GAEJ,CAAC,CACH,EACAjB,CAAM,CAAA,SAAA,CAAU,SAAY,CAAA,UAAY,CACtC,OAAO,IAAA,CAAK,KACd,CACAA,CAAAA,CAAAA,CAAM,UAAU,MAAS,CAAA,UAAY,CACnC,OAAO,IAAA,CAAK,QAAU,IACxB,CAAA,CACAA,EAAM,SAAU,CAAA,aAAA,CAAgB,UAAY,CAC1C,IAAI5Z,CAAc,CAAA,IAAA,CAAK,OAAO,WAC9B,CAAA,OAAOA,GAAeA,CAAY,CAAA,IAAA,GAAS,gBAC7C,CACA4Z,CAAAA,CAAAA,CAAM,UAAU,SAAY,CAAA,UAAY,CACtC,OAAO,IAAA,CAAK,OAAO,WAAgB,GAAA,IACrC,EACAA,CAAM,CAAA,SAAA,CAAU,iBAAoB,CAAA,UAAY,CAC9C,OAAO,IAAA,CAAK,OAAO,UACrB,CAAA,CACA,OAAO,cAAeA,CAAAA,CAAAA,CAAM,UAAW,QAAU,CAAA,CAC/C,IAAK,UAAY,CACf,IAAI/tB,CAAQ,CAAA,IAAA,CACZ,OAAOjK,CAAK,CAAA,IAAA,CAAK,UAAU,CAAA,CAAE,IAAI,SAAUoF,CAAAA,CAAM,CAC/C,OAAO6E,CAAAA,CAAM,WAAW7E,CAAI,CAC9B,CAAC,CACH,CAAA,CACA,WAAY,CACZ,CAAA,CAAA,YAAA,CAAc,EAChB,CAAC,CAAA,CACD4yB,EAAM,SAAU,CAAA,WAAA,CAAc,UAAY,CACxC,IAAIx2B,CAAOosB,CAAAA,EAAAA,CAAuB,MAAM,IAAM,CAAA,SAAS,EACvD,OAAO,IAAA,CAAK,aAAa,KAAM,CAAA,IAAA,CAAMpsB,CAAI,CAC3C,CAAA,CACAw2B,EAAM,SAAU,CAAA,YAAA,CAAe,SAAUlpB,CAAMyR,CAAAA,CAAAA,CAAQuN,EAAW,CAChE,IAAI7jB,EAAQ,IACR+jB,CAAAA,CAAAA,CAAoB5kB,GAAI,KACxB,CAAA,CAAA,CAAC4kB,GAAqBA,CAAkB,CAAA,EAAA,GAAO,MAAQlf,CAAK,CAAA,OAAA,CAAQ,GAAG,CAAM,GAAA,CAAA,CAAA,IAAIkf,EAAoB,IACzG,CAAA,CAAA,IAAIkL,EAAmBpqB,CAAK,CAAA,OAAA,CAAQ,GAAG,CAAA,GAAM,GAC7CA,CAAOA,CAAAA,CAAAA,CAAK,QAAQ,GAAK,CAAA,EAAE,EAAE,OAAQ,CAAA,GAAA,CAAK,EAAE,CAC5C,CAAA,IAAIqqB,EAASpqB,CACb,CAAA,GAAI,CAMF,GALAA,CAAAA,CAAawR,EAAO,GAAI,CAAA,SAAU7G,CAAO,CAAA,CACvC,IAAIkN,CAAYlN,CAAAA,CAAAA,YAAiBzP,EAAM,KAAQyP,CAAAA,CAAAA,CAAM,KAAOA,CAC5D,CAAA,GAAI,OAAOkN,CAAc,EAAA,QAAA,CAAU,MAAM,IAAI,SAAA,CAAU,iFAAiF,CACxI,CAAA,OAAOA,CACT,CAAC,CAAA,CACG9X,CAAQ,EAAA,GAAA,EAAOA,IAASU,EAAU2pB,CAAAA,CAAAA,CAAU3pB,WAAkBV,CAAQ,EAAA,IAAA,EAAQA,GAAQW,EAAW0pB,CAAAA,CAAAA,CAAU1pB,QAAqB,MAAA,IAAI1J,GAAW,eAAgB,CAAA,4BAAA,CAA+B+I,CAAI,CACtM,CAAA,GAAIkf,EAAmB,CACrB,GAAIA,CAAkB,CAAA,IAAA,GAASxe,IAAY2pB,CAAY1pB,GAAAA,EAAAA,CACrD,GAAIypB,CACFlL,CAAAA,CAAAA,CAAoB,UACT,MAAA,IAAIjoB,GAAW,cAAe,CAAA,wFAAwF,EAEjIioB,CACFjf,EAAAA,CAAAA,CAAW,QAAQ,SAAU6X,CAAAA,CAAW,CACtC,GAAIoH,CAAAA,EAAqBA,CAAkB,CAAA,UAAA,CAAW,QAAQpH,CAAS,CAAA,GAAM,GAC3E,GAAIsS,CAAAA,CACFlL,EAAoB,IACf,CAAA,KAAA,MAAM,IAAIjoB,EAAW,CAAA,cAAA,CAAe,SAAW6gB,CAAY,CAAA,sCAAsC,CAE5G,CAAC,CAAA,CAECsS,GAAoBlL,CAAqB,EAAA,CAACA,CAAkB,CAAA,MAAA,GAC9DA,EAAoB,IAExB,EAAA,CACF,OAASnhB,CAAG,CAAA,CACV,OAAOmhB,CAAoBA,CAAAA,CAAAA,CAAkB,SAAS,IAAM,CAAA,SAAU2F,EAAGrpB,CAAQ,CAAA,CAC/EA,EAAOuC,CAAC,EACV,CAAC,CAAIoB,CAAAA,EAAAA,CAAUpB,CAAC,CAClB,CACA,IAAIusB,CAAAA,CAAmBrL,GAAsB,IAAK,CAAA,IAAA,CAAM,KAAMoL,CAASpqB,CAAAA,CAAAA,CAAYif,EAAmBF,CAAS,CAAA,CAC/G,OAAOE,CAAoBA,CAAAA,CAAAA,CAAkB,SAASmL,CAASC,CAAAA,CAAAA,CAAkB,MAAM,CAAIhwB,CAAAA,EAAAA,CAAI,MAAQmC,EAAOnC,CAAAA,EAAAA,CAAI,UAAW,UAAY,CACvI,OAAOa,CAAM,CAAA,UAAA,CAAWmvB,CAAgB,CAC1C,CAAC,EAAI,IAAK,CAAA,UAAA,CAAWA,CAAgB,CACvC,CAAA,CACApB,EAAM,SAAU,CAAA,KAAA,CAAQ,SAAUrnB,CAAW,CAAA,CAC3C,GAAI,CAACnQ,EAAO,IAAK,CAAA,UAAA,CAAYmQ,CAAS,CACpC,CAAA,MAAM,IAAI5K,EAAW,CAAA,YAAA,CAAa,SAAS,MAAO4K,CAAAA,CAAAA,CAAW,iBAAiB,CAAC,CAAA,CAEjF,OAAO,IAAK,CAAA,UAAA,CAAWA,CAAS,CAClC,CAAA,CACOqnB,CACT,CAAA,GACIqB,EAAmB,CAAA,OAAO,OAAW,GAAe,EAAA,YAAA,GAAgB,OAAS,MAAO,CAAA,UAAA,CAAa,eACjGC,EAAa,CAAA,UAAY,CAC3B,SAASA,CAAAA,CAAWnB,EAAW,CAC7B,IAAA,CAAK,WAAaA,EACpB,CACA,OAAAmB,CAAAA,CAAW,UAAU,SAAY,CAAA,SAAUl1B,EAAGoV,CAAO+f,CAAAA,CAAAA,CAAU,CAC7D,OAAO,IAAA,CAAK,WAAW,CAACn1B,CAAAA,EAAK,OAAOA,CAAM,EAAA,UAAA,CAAa,CACrD,IAAMA,CAAAA,CAAAA,CACN,MAAOoV,CACP,CAAA,QAAA,CAAU+f,CACZ,CAAA,CAAIn1B,CAAC,CACP,CAAA,CACAk1B,EAAW,SAAUD,CAAAA,EAAgB,EAAI,UAAY,CACnD,OAAO,IACT,CAAA,CACOC,CACT,CAAE,EAAA,CACEE,GACJ,GAAI,CACFA,GAAU,CACR,SAAA,CAAWz5B,CAAQ,CAAA,SAAA,EAAaA,EAAQ,YAAgBA,EAAAA,CAAAA,CAAQ,iBAAmBA,CAAQ,CAAA,WAAA,CAC3F,YAAaA,CAAQ,CAAA,WAAA,EAAeA,EAAQ,iBAC9C,EACF,MAAY,CACVy5B,EAAAA,CAAU,CACR,SAAW,CAAA,IAAA,CACX,YAAa,IACf,EACF,CACA,SAASC,GAAUC,CAAS,CAAA,CAC1B,IAAIC,CAAW,CAAA,CAAA,CAAA,CACXC,EACAC,CAAa,CAAA,IAAIP,GAAW,SAAUQ,CAAAA,CAAU,CAClD,IAAI7L,CAAAA,CAAmBnpB,GAAgB40B,CAAO,CAAA,CAC9C,SAASK,CAAQ/lB,CAAAA,CAAAA,CAAK,CACpB,IAAIlH,EAAcd,EAAoB,EAAA,CACtC,GAAI,CACEiiB,CAAAA,EACFlgB,IAEF,CAAA,IAAItL,EAAK6I,EAASouB,CAAAA,CAAAA,CAAS1lB,CAAG,CAC9B,CAAA,OAAIia,IACFxrB,CAAKA,CAAAA,CAAAA,CAAG,QAAQ2H,EAAuB,CAAA,CAAA,CAElC3H,CACT,CAAA,OAAE,CACAqK,CAAeZ,EAAAA,EAAAA,GACjB,CACF,CACA,IAAI8tB,CAAS,CAAA,CAAA,CAAA,CACTC,EACAC,CAAY,CAAA,GACZC,CAAa,CAAA,GACbC,CAAe,CAAA,CACjB,IAAI,MAAS,EAAA,CACX,OAAOJ,CACT,EACA,WAAa,CAAA,UAAY,CACnBA,CACJA,GAAAA,CAAAA,CAAS,GACLC,CAAiBA,EAAAA,CAAAA,CAAgB,OACjCI,CAAAA,CAAAA,EAAkBtc,GAAa,cAAe,CAAA,WAAA,CAAYuc,CAAgB,CAChF,EAAA,CACF,EACAR,CAAS,CAAA,KAAA,EAASA,CAAS,CAAA,KAAA,CAAMM,CAAY,CAC7C,CAAA,IAAIC,EAAmB,CACnBE,CAAAA,CAAAA,CAAAA,CAAU,UAAY,CACxB,OAAO5rB,GAAoB6rB,CAAQ,CACrC,EACA,SAASC,CAAAA,EAAe,CACtB,OAAO9P,EAAAA,CAAewP,EAAYD,CAAS,CAC7C,CACA,IAAII,EAAmB,SAAUxjB,CAAAA,CAAO,CACtC2T,EAAuByP,CAAAA,CAAAA,CAAWpjB,CAAK,CACnC2jB,CAAAA,CAAAA,IACFF,CAAQ,GAEZ,EACIC,CAAW,CAAA,UAAY,CACzB,GAAI,EAAAR,GAAU,CAACR,EAAAA,CAAQ,SAGvB,CAAA,CAAA,CAAAU,EAAY,EAAC,CACb,IAAIvH,CAAS,CAAA,GACTsH,CAAiBA,EAAAA,CAAAA,CAAgB,OACrCA,CAAAA,CAAAA,CAAkB,IAAI,eACtB,CAAA,IAAIjmB,EAAM,CACR,MAAA,CAAQ2e,EACR,MAAQsH,CAAAA,CAAAA,CAAgB,MACxB,CAAA,OAAA,CAASM,EACT,OAASb,CAAAA,CAAAA,CACT,MAAO,IACT,CAAA,CACI/sB,EAAMotB,CAAQ/lB,CAAAA,CAAG,EACrB,OAAQ,CAAA,OAAA,CAAQrH,CAAG,CAAE,CAAA,IAAA,CAAK,SAAUvK,CAAQ,CAAA,CAC1Cu3B,EAAW,CACXC,CAAAA,CAAAA,CAAAA,CAAex3B,CACX,CAAA,EAAA43B,GAAUhmB,CAAI,CAAA,MAAA,CAAO,WAGzBkmB,CAAY,CAAA,GACZC,CAAaxH,CAAAA,CAAAA,CACT,CAAC5uB,EAAco2B,CAAAA,CAAU,GAAK,CAACE,CAAAA,GACjCtc,GAAaF,EAAkCyc,CAAAA,CAAgB,EAC/DD,CAAmB,CAAA,CAAA,CAAA,CAAA,CAErB1rB,EAAoB,CAAA,UAAY,CAC9B,OAAO,CAACqrB,GAAUF,CAAS,CAAA,IAAA,EAAQA,EAAS,IAAK13B,CAAAA,CAAM,CACzD,CAAC,CAAA,EACH,EAAG,SAAUwI,CAAAA,CAAK,CAChB+uB,CAAW,CAAA,CAAA,CAAA,CACN,CAAC,qBAAuB,CAAA,YAAY,EAAE,QAAmD/uB,CAAAA,CAAAA,EAAI,IAAI,CAC/FovB,EAAAA,CAAAA,EAAQrrB,GAAoB,UAAY,CACvCqrB,GACJF,CAAS,CAAA,KAAA,EAASA,EAAS,KAAMlvB,CAAAA,CAAG,EACtC,CAAC,EAEL,CAAC,EACH,CAAA,CAAA,CACA,kBAAW2vB,CAAS,CAAA,CAAC,CACdH,CAAAA,CACT,CAAC,CACD,CAAA,OAAAP,EAAW,QAAW,CAAA,UAAY,CAChC,OAAOF,CACT,EACAE,CAAW,CAAA,QAAA,CAAW,UAAY,CAChC,OAAOD,CACT,CACOC,CAAAA,CACT,CACA,IAAI7B,EAAAA,CAAQ9P,EACZxnB,CAAAA,CAAAA,CAAMs3B,GAAO54B,CAASA,CAAAA,CAAAA,CAAS,EAAImH,CAAAA,EAAkB,EAAG,CACtD,MAAA,CAAQ,SAAUm0B,CAAc,CAAA,CAC9B,IAAI7rB,CAAK,CAAA,IAAImpB,GAAM0C,CAAc,CAAA,CAC/B,OAAQ,EACV,CAAC,CAAA,CACD,OAAO7rB,CAAG,CAAA,MAAA,EACZ,CACA,CAAA,MAAA,CAAQ,SAAUzJ,CAAM,CAAA,CACtB,OAAO,IAAI4yB,EAAAA,CAAM5yB,EAAM,CACrB,MAAA,CAAQ,EACV,CAAC,EAAE,IAAK,EAAA,CAAE,IAAK,CAAA,SAAUyJ,EAAI,CAC3B,OAAAA,EAAG,KAAM,EAAA,CACF,EACT,CAAC,CAAA,CAAE,MAAM,qBAAuB,CAAA,UAAY,CAC1C,OAAO,CAAA,CACT,CAAC,CACH,CAAA,CACA,iBAAkB,SAAUpC,CAAAA,CAAI,CAC9B,GAAI,CACF,OAAO2b,EAAAA,CAAiB4P,GAAM,YAAY,CAAA,CAAE,KAAKvrB,CAAE,CACrD,MAAa,CACX,OAAOwB,GAAU,IAAIlI,EAAAA,CAAW,UAAY,CAC9C,CACF,EACA,WAAa,CAAA,UAAY,CACvB,SAASqM,EAAMC,CAAS,CAAA,CACtBnS,EAAO,IAAMmS,CAAAA,CAAO,EACtB,CACA,OAAOD,CACT,CACA,CAAA,iBAAA,CAAmB,SAAU0b,CAAW,CAAA,CACtC,OAAO1kB,EAAI,CAAA,KAAA,CAAQmC,GAAOnC,EAAI,CAAA,SAAA,CAAW0kB,CAAS,CAAA,CAAIA,GACxD,CAAA,CACA,IAAKrF,EACL,CAAA,KAAA,CAAO,SAAUkS,CAAa,CAAA,CAC5B,OAAO,UAAY,CACjB,GAAI,CACF,IAAIl4B,EAAK0qB,EAAcwN,CAAAA,CAAAA,CAAY,MAAM,IAAM,CAAA,SAAS,CAAC,CACzD,CAAA,OAAI,CAACl4B,CAAM,EAAA,OAAOA,EAAG,IAAS,EAAA,UAAA,CAAmB8G,GAAa,OAAQ9G,CAAAA,CAAE,EACjEA,CACT,CAAA,MAASoK,EAAG,CACV,OAAOoB,GAAUpB,CAAC,CACpB,CACF,CACF,CAAA,CACA,KAAO,CAAA,SAAU8tB,EAAan5B,CAAMkG,CAAAA,CAAAA,CAAM,CACxC,GAAI,CACF,IAAIjF,CAAK0qB,CAAAA,EAAAA,CAAcwN,EAAY,KAAMjzB,CAAAA,CAAAA,CAAMlG,GAAQ,EAAE,CAAC,CAC1D,CAAA,OAAI,CAACiB,CAAM,EAAA,OAAOA,CAAG,CAAA,IAAA,EAAS,WAAmB8G,EAAa,CAAA,OAAA,CAAQ9G,CAAE,CACjEA,CAAAA,CACT,OAASoK,CAAG,CAAA,CACV,OAAOoB,EAAUpB,CAAAA,CAAC,CACpB,CACF,CAAA,CACA,mBAAoB,CAClB,GAAA,CAAK,UAAY,CACf,OAAOzD,EAAI,CAAA,KAAA,EAAS,IACtB,CACF,CAAA,CACA,QAAS,SAAUwxB,CAAAA,CAAmBC,EAAiB,CACrD,IAAI/uB,EAAUvC,EAAa,CAAA,OAAA,CAAQ,OAAOqxB,CAAsB,EAAA,UAAA,CAAa5C,GAAM,iBAAkB4C,CAAAA,CAAiB,EAAIA,CAAiB,CAAA,CAAE,OAAQC,CAAAA,CAAAA,EAAmB,GAAK,CAC7K,CAAA,OAAOzxB,GAAI,KAAQA,CAAAA,EAAAA,CAAI,MAAM,OAAQ0C,CAAAA,CAAO,EAAIA,CAClD,CAAA,CACA,QAASvC,EACT,CAAA,KAAA,CAAO,CACL,GAAK,CAAA,UAAY,CACf,OAAO5B,EACT,CACA,CAAA,GAAA,CAAK,SAAU7E,CAAO,CAAA,CACpB8E,GAAS9E,CAAK,EAChB,CACF,CACA,CAAA,MAAA,CAAQ9B,EACR,MAAQd,CAAAA,CAAAA,CACR,MAAOQ,CACP,CAAA,QAAA,CAAUiB,GACV,MAAQoS,CAAAA,EAAAA,CACR,GAAIgK,EACJ,CAAA,SAAA,CAAW0b,EACX,CAAA,sBAAA,CAAwBhP,GACxB,YAAcloB,CAAAA,EAAAA,CACd,aAAcM,EACd,CAAA,YAAA,CAAcI,GACd,YAAcE,CAAAA,EAAAA,CACd,UAAWc,EACX,CAAA,aAAA,CAAesrB,GACf,GAAKvf,CAAAA,EAAAA,CACL,KAAMjO,EACN,CAAA,MAAA,CAAQoN,GACR,MAAQ,CAAA,EACR,CAAA,WAAA,CAAaG,GACb,QAAUzJ,CAAAA,EAAAA,CACV,aAAc2zB,EACd,CAAA,KAAA,CAAO1O,GACP,MAAQ7b,CAAAA,EAAAA,CACR,QAASA,EAAc,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,GAAA,CAAI,SAAU,CAAG,CAAA,CACjD,OAAO,QAAS,CAAA,CAAC,CACnB,CAAC,CAAA,CAAE,OAAO,SAAUhQ,CAAAA,CAAGkX,EAAG5W,CAAG,CAAA,CAC3B,OAAON,CAAIkX,CAAAA,CAAAA,CAAI,KAAK,GAAI,CAAA,EAAA,CAAI5W,EAAI,CAAC,CACnC,CAAC,CACH,CAAC,CAAC,CACFy4B,CAAAA,EAAAA,CAAM,MAASpY,CAAAA,EAAAA,CAAUoY,GAAM,YAAa,CAAA,WAAW,EACnD,OAAO,aAAA,CAAkB,KAAe,OAAO,gBAAA,CAAqB,MACtEja,EAAaF,CAAAA,EAAAA,CAAkC,SAAUuN,CAAc,CAAA,CACrE,GAAI,CAAC0P,EAAAA,CAAoB,CACvB,IAAIC,CAAAA,CACJA,CAAU,CAAA,IAAI,YAAYjd,EAAgC,CAAA,CACxD,OAAQsN,CACV,CAAC,EACD0P,EAAqB,CAAA,CAAA,CAAA,CACrB,cAAcC,CAAO,CAAA,CACrBD,GAAqB,CACvB,EAAA,CACF,CAAC,CACD,CAAA,gBAAA,CAAiBhd,GAAgC,SAAUzM,CAAAA,CAAI,CAC7D,IAAI2pB,EAAS3pB,CAAG,CAAA,MAAA,CACXypB,IACHG,EAAiBD,CAAAA,CAAM,EAE3B,CAAC,CAAA,CAAA,CAEH,SAASC,EAAiBC,CAAAA,CAAAA,CAAa,CACrC,IAAIC,CAAAA,CAAQL,GACZ,GAAI,CACFA,GAAqB,CACrB/c,CAAAA,CAAAA,EAAAA,CAAa,cAAe,CAAA,IAAA,CAAKmd,CAAW,CAC5C/P,CAAAA,EAAAA,CAAqB+P,EAAa,CAAI,CAAA,EACxC,QAAE,CACAJ,EAAAA,CAAqBK,EACvB,CACF,CACA,IAAIL,EAAqB,CAAA,CAAA,CAAA,CACrBM,GACAC,EAAW,CAAA,UAAY,EACvB,CAAA,OAAO,gBAAqB,CAAA,GAAA,GAC9BA,GAAW,UAAY,CACrBD,GAAK,IAAI,gBAAA,CAAiBtd,EAA8B,CACxDsd,CAAAA,EAAAA,CAAG,UAAY,SAAU/c,CAAAA,CAAI,CAC3B,OAAOA,CAAAA,CAAG,MAAQ4c,EAAiB5c,CAAAA,CAAAA,CAAG,IAAI,CAC5C,EACF,CACAgd,CAAAA,EAAAA,GACI,OAAOD,EAAAA,CAAG,OAAU,UACtBA,EAAAA,EAAAA,CAAG,OAELrd,CAAAA,EAAAA,CAAaF,GAAkC,SAAUyd,CAAAA,CAAc,CAChER,EACHM,EAAAA,EAAAA,CAAG,YAAYE,CAAY,EAE/B,CAAC,CAEC,CAAA,CAAA,OAAO,gBAAqB,CAAA,GAAA,GAC9B,iBAAiB,UAAY,CAAA,SAAU3d,EAAO,CAC5C,GAAI,CAACuK,EAAQ,CAAA,cAAA,EAAkBvK,EAAM,SAAW,CAAA,CAC1ChW,IAAO,OAAQ,CAAA,KAAA,CAAM,oCAAoC,CACrByzB,CAAAA,EAAAA,EAAG,OAC3C,CAAA,IAAA,IAAS1nB,CAAK,CAAA,CAAA,CAAG6nB,EAAgBjsB,EAAaoE,CAAAA,CAAAA,CAAK6nB,EAAc,MAAQ7nB,CAAAA,CAAAA,EAAAA,CAAM,CAC7E,IAAI7E,CAAAA,CAAK0sB,EAAc7nB,CAAE,CAAA,CACzB7E,EAAG,KAAM,CAAA,CACP,gBAAiB,CACnB,CAAA,CAAC,EACH,CACF,CACF,CAAC,CAAA,CACD,iBAAiB,UAAY,CAAA,SAAU8O,EAAO,CACxC,CAACuK,GAAQ,cAAkBvK,EAAAA,CAAAA,CAAM,YAC/BhW,EAAO,EAAA,OAAA,CAAQ,MAAM,oCAAoC,CAAA,CAC7D0zB,IACAJ,CAAAA,EAAAA,CAAiB,CACf,GAAK,CAAA,IAAIjS,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,EAAE,CAAC,CACnC,CAAC,GAEL,CAAC,CAAA,CAAA,CAEH,SAAS5U,EAAItR,CAAAA,CAAAA,CAAO,CAClB,OAAO,IAAIyT,GAAiB,CAC1B,GAAA,CAAKzT,CACP,CAAC,CACH,CACA,SAAS04B,GAAO14B,CAAO,CAAA,CACrB,OAAO,IAAIyT,EAAAA,CAAiB,CAC1B,MAAQzT,CAAAA,CACV,CAAC,CACH,CACA,SAAS24B,EAAcl4B,CAAAA,CAAAA,CAAGvE,EAAG,CAC3B,OAAO,IAAIuX,EAAiB,CAAA,CAC1B,aAAe,CAAA,CAAChT,EAAGvE,CAAC,CACtB,CAAC,CACH,CACAuK,GAAa,eAAkBnD,CAAAA,EAAAA,CAC/BwB,GAASD,EAAK,CAAA,CACd,IAAI+zB,EAA4B,CAAA,MAAA,CAAO,OAAO,CAC5C,SAAA,CAAW,KACX,KAAOxT,CAAAA,EAAAA,CACP,SAAWuR,CAAAA,EAAAA,CACX,OAAQ1pB,EACR,CAAA,GAAA,CAAKC,GACL,aAAesG,CAAAA,EAAAA,CACf,iBAAkBC,EAClB,CAAA,aAAA,CAAeklB,GACf,GAAKrnB,CAAAA,EAAAA,CACL,OAAQonB,EACR,CAAA,OAAA,CAAWtT,GACX,QAAUc,CAAAA,EAAAA,CACV,YAAaG,EACb,CAAA,aAAA,CAAeU,EACjB,CAAC,EACD,OAAAzqB,CAAAA,CAAS8oB,GAASwT,EAAc,CAAA,CAC9B,QAASxT,EACX,CAAC,EACMA,EACT,CAAC,KCh2LD,IAAayT,EAAAA,CAAAA,CAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CAP1B7pB,WAAAA,EAAA,CAQI,IAAA8pB,CAAAA,UAAAA,CAAaC,IAAqCC,IAAY,CAAA,CAAEC,SAAU,CAAI,CAAA,CAAE,EAChF,IAAAC,CAAAA,SAAAA,CAAYH,IAAOI,GAAW,CAAA,CAAEF,SAAU,CAAI,CAAA,CAAE,GAEhDG,OAAO,EAAA,CACH,OAAI,IAAKF,CAAAA,SAAAA,YAAqBG,KACnB,IAAKH,CAAAA,SAAAA,CAAUI,KAEtB,IAAKJ,CAAAA,SAAAA,YAAqBK,KACnB,IAAKL,CAAAA,SAAAA,CAAUM,QAEnB,IACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAZSX,EAAa,CAAbA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAaY,UAAA,CAAA,CAAA,GAAA,eAAA,CAAA,EAAA,CAAA,CAAA,CAAAC,UAAA,CAAA,CAAA,CAAA,iBAAA,CAAAC,CAAAA,UAAAA,CAAA,EAAA,CAAA,CAAA,CAApB,IAAOd,CAAPe,CAAAA,CAAAA,CAAAA,OAAOf,CAAa,CAAA,GAAA,CAAA,IAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ECRlBgB,GAAA,CAAA,EAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAAC,EAAA,EAAA,CAEIC,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACIC,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAI0B,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAM9BC,IAWJJ,EAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,EAEIE,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAA0I,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAElIC,GAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAKJC,CAAAA,EAAAA,GACAF,EAAA,CAAA,CAAA,CAAA,MAAA,CAAM,CAAA,CAAA,CAAA,WAAA,EAAA,CAAA,CAEEC,GAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EAAW,EAAA,KCN/B,IAAaC,EAAAA,CAAAA,CAAW,IAAA,CAAlB,IAAOA,EAAP,MAAOA,CAAW,CAdxBlrB,WAAA,EAAA,CAmBI,KAAAmrB,IAAOC,CAAAA,EAAAA,CAAwB,OAAO,CACtC,CAAA,IAAA,CAAAC,YAAcD,EAAM,CAAA,QAAQ,CAC5B,CAAA,IAAA,CAAAE,SAAWF,EAAM,CAAA,CAAA,CAAA,CAAO,CAAEG,SAAWC,CAAAA,EAAgB,CAAE,CACvD,CAAA,IAAA,CAAAC,QAAUL,EAAM,CAAA,CAAA,CAAA,CAAO,CAAEG,SAAWC,CAAAA,EAAgB,CAAE,CACtD,CAAA,IAAA,CAAAE,kBAAoB,CAGV,CAAA,IAAA,CAAAC,aAAgB,CAAA,IAAIC,KAAsB,CAAK,CAAA,CAAA,CAC/C,KAAAC,gBAAmB,CAAA,IAAID,KAAsB,CAAK,CAAA,CAAA,CAE5D,KAAAE,SAAYC,CAAAA,EAAAA,CAAS,IAAM,CAAiB,cAAA,EAAA,IAAA,CAAKZ,MAAM,CAAA,CAAE,GAEzDa,8BAA8B,EAAA,CAE1B,GADA,IAAA,CAAKL,cAAcM,IAAK,CAAA,CAAA,CAAI,EACxB,IAAKC,CAAAA,WAAAA,CAAa,CAClB,IAAM5B,CAAAA,CAAO,KAAK4B,WAAY9B,CAAAA,OAAAA,GAC9B,IAAKsB,CAAAA,iBAAAA,CAAoB,GACrBpB,CACAA,CAAAA,CAAAA,CAAK6B,SAAS,EAAE,CAAA,CACT,KAAKD,WAAYpC,CAAAA,UAAAA,EAAYsC,gBACpC,IAAKF,CAAAA,WAAAA,CAAYpC,WAAWsC,aAAcp7B,CAAAA,KAAAA,CAAQ,IAE1D,CACJ,CAEAq7B,iBAAe,CACP,IAAA,CAAKH,cACL,IAAKI,CAAAA,kBAAAA,CAAqB,IAAK,CAC3B,IAAA,CAAKT,iBAAiBI,IAAK,CAAA,CAAA,CAAI,EACnC,CAAA,CACA,KAAKC,WAAYpC,CAAAA,UAAAA,EAAYsC,cAAcG,gBAAiB,CAAA,OAAA,CAAS,KAAKD,kBAAkB,CAAA,EAEpG,CAEAE,4BAA4B,EAAA,CACxB,KAAKd,iBAAoB,CAAA,EAC7B,CAEAe,WAAW,EAAA,CACH,KAAKP,WAAe,EAAA,IAAA,CAAKI,kBACzB,EAAA,IAAA,CAAKJ,YAAYpC,UAAYsC,EAAAA,aAAAA,CAAcM,oBAAoB,OAAS,CAAA,IAAA,CAAKJ,kBAAkB,EAEvG,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/CSpB,EAAW,CAAXA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAWT,UAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAAkC,eAAA,SAAAC,CAAAA,CAAA1qB,CAAA2qB,CAAAA,CAAAA,CAAA,IAAAD,CAAA,CAAA,CAAA,GAAAE,EAAA,CAAA,CAAA,CACNjD,GAAa,CAAA,CAAA,CAAAiD,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAAC,EAAA,EAAA,CAAA,GAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAAD,EAAA,CAAA,CAAA,CAAAC,EAAA,EAAA,CAAA,GAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAAD,EAAA,CAAA,CAAA,CAAAC,EAAA,EAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,YAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GADlBC,GAAA/qB,CAAA4pB,CAAAA,SAAAA,EAAW,CAAXoB,CAAAA,EAAAA,CAAA,yBAAAhrB,CAAAopB,CAAAA,QAAAA,EAAU,CAAC,CAAA,uBAAA,CAAXppB,EAAAupB,OAAA,EAAS,CDjCtBV,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,gBAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,EAAAA,CAAAA,KAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,QAAAA,CAAAA,YAAAA,CAAAA,YAAAA,CAAAA,aAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,QAAAA,CAAAA,YAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,4BAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,GAAAA,CAAAA,0XAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,GAAAA,CAAAA,oEAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,4BAAAA,CAAAA,MAAAA,CAAAA,KAAAA,CAAAA,YAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,SAAAA,CAAAA,GAAAA,CAAAA,+nBAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAgF,CAAA,CAAA,KAAA,CAAA,CAAA,CAExEoC,CAAAA,EAAAA,CAAA,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,EAAoE,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAAC,EAAA,CAexErC,CAAAA,EAAAA,GACAsC,EAAA,CAAA,CAAA,EACAxC,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAEIyC,GAAA,WAAA,CAAA,UAAA,CAAAC,OAAAC,EAAAA,CAAAC,CAAA,CAAAC,CAAAA,EAAAA,CAAa1rB,CAAA8pB,CAAAA,8BAAAA,EAAgC,CAAA,CAAA,EAAC,SAAA,CAAA,UAAA,CAAAyB,OAAAC,EAAAA,CAAAC,CAAA,CAAAC,CAAAA,EAAAA,CACnC1rB,EAAAsqB,4BAAA,EAA8B,CAAA,CAAA,CAAA,CAIzCW,GAAA,CAAAU,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAkE,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,IAAA,CAAA,EAAAR,EAAA,CAAA,CAiBtErC,IAAO,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA8C,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CAzCYC,GAAA,CAAA,CAAA,CAAAC,GAAA,kBAAA/rB,CAAAA,CAAAA,CAAAgsB,YAAAC,CAAA,CAAA,CAuBfH,GAAA,CAAA,CAAA,CAAAC,GAAA,UAAA/rB,CAAAA,CAAAA,CAAAwpB,iBAAA,CACesC,CAAAA,EAAAA,GAAAC,EAAA,CAAA,kBAAA,CAAA/rB,EAAAksB,SAAAC,EAAAA,CAAA,mBCKTC,EAAgB,CAAA,CAAAC,OAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAAC,cAAA,CAAAC,CAAAA,eAAAA,CAAA,CAAA,CAAA,EAExB,IAAOvD,CAAAA,CAAPwD,CAAOxD,CAAAA,OAAAA,CAAW,ICvBXyD,CAAAA,IAAAA,IAAAA,CAAAA,IAAAA,EAANpvB,KAAA,KAA2B,EAAA,CAAAqvB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAArBD,KAAqB,CAArBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAqB5hC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFlBE,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA4BC,GADjCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMovB,KAAqBO,EAAA,CAAA,CANjCC,EAAiB,CAAA,CAAE5gC,IAAK,mBAAqB6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM3EX,IAAqB,CAAA,CAM5B,SAAUI,EAA6BQ,CAAAA,CAAAA,CAAgC,CACzE,OAAOA,CAAAA,CAAQC,IAAIb,IAAqB,CAC5C,CCRac,IAAAA,IAAAA,CAAAA,IAAAA,EAANlwB,KAAA,KAAiC,EAAA,CAAAmwB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA3BD,IAA2B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAxiC,GAAA,CAAA,CAAA,KAAA,CAA3BuiC,KAA2B1iC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFxBc,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAkCX,IADvCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMkwB,IAA2BP,CAAAA,EAAAA,CAAA,CANvCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,wBAAA,CAA0B6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMhFG,IAA2B,CAMlC,CAAA,SAAUE,EAAmCJ,CAAAA,CAAAA,CAAgC,CAC/E,OAAOA,CAAAA,CAAQC,GAAIC,CAAAA,IAA2B,CAClD,CCRaG,IAAAA,IAAAA,CAAAA,IAAAA,EAANrwB,IAAA,CAAA,KAA0B,4CAApBqwB,IAAoB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA3iC,GAAA,CAAA,CAAA,KAAA,CAApB0iC,KAAoB7iC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFjBiB,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA2Bd,GADhCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMqwB,IAAoBV,CAAAA,EAAAA,CAAA,CANhCC,EAAiB,CAAA,CAAE5gC,IAAK,kBAAoB6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM1EM,IAAoB,CAmB3B,CAAA,SAAUE,GAA4BP,CAAgC,CAAA,CACxE,OAAOA,CAAAA,CAAQC,IAAII,IAAoB,CAC3C,UCrBaG,IAANxwB,EAAAA,IAAAA,CAAA,KAA6B,EAAvBwwB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAuB,CAAvBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAuBhjC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFpBmB,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8BhB,IADnCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAMwwB,CAAAA,CAAAA,IAAAA,CAAuBb,EAAA,CAAA,CANnCC,GAAiB,CAAE5gC,GAAAA,CAAK,qBAAuB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAM7ES,IAAuB,CAQ9B,CAAA,SAAUC,GAA+BT,CAAgC,CAAA,CAC3E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIO,IAAuB,CAC9C,UCVaE,IAAN1wB,EAAAA,IAAAA,CAAA,KAAiC,EAAA,CAAA2wB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA3BD,KAA2B,CAA3BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA2BljC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFxBsB,EAAkCnB,CAAAA,GAAAA,CADvCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAM0wB,CAAAA,CAAAA,IAAAA,CAA2Bf,GAAA,CANvCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,oBAAqB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAM3EW,IAA2B,CAAA,CAsDlC,SAAUE,EAAAA,CAAmCZ,EAAgC,CAC/E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIS,IAA2B,CAClD,CAAA,IAAAG,IAAA,CCxDaC,IAAN9wB,EAAAA,IAAAA,CAAA,KAAkC,EAA5B8wB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA4B,6BAA5BA,IAA4BtjC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFzByB,EAAmCtB,CAAAA,GAAAA,CADxCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAM8wB,CAAAA,CAAAA,IAAAA,CAA4BnB,GAAA,CANxCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,gBAAA,CAAkB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMxEe,CAAAA,IAA4B,EAsBnC,SAAUC,EAAAA,CAAoCf,CAAgC,CAAA,CAChF,OAAOA,CAAQC,CAAAA,GAAAA,CAAIa,IAA4B,CACnD,CAAA,IAAAE,IAAA,CCxBaC,MAANjxB,IAAA,CAAA,KAAiC,EAA3BixB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA2B,6BAA3BA,IAA2BzjC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFxB4B,GAAkCzB,GADvCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMixB,IAA2BtB,CAAAA,EAAAA,CAAA,CANvCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,+BAAA,CAAiC6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMvFkB,IAA2B,CAAA,CAUlC,SAAUC,EAAmClB,CAAAA,CAAAA,CAAgC,CAC/E,OAAOA,CAAAA,CAAQC,GAAIgB,CAAAA,IAA2B,CAClD,CCZaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANnxB,IAAA,CAAA,KAAkC,4CAA5BmxB,IAA4B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAzjC,GAAA,CAAA,CAAA,KAAA,CAA5BwjC,IAA4B3jC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFzB+B,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAmC5B,GADxCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMmxB,IAA4BxB,CAAAA,EAAAA,CAAA,CANxCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,oBAAA,CAAsB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM5EoB,IAA4B,CAAA,CAOnC,SAAUE,EAAoCrB,CAAAA,CAAAA,CAAgC,CAChF,OAAOA,CAAAA,CAAQC,IAAIkB,IAA4B,CACnD,CCTaG,IAAAA,IAAAA,CAAAA,IAAAA,EAANtxB,KAAA,KAAwB,EAAA,CAAAuxB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAlBD,KAAkB,CAAlBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAkB9jC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFfkC,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAyB/B,IAD9BC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMsxB,KAAkB3B,EAAA,CAAA,CAN9BC,GAAiB,CAAE5gC,GAAAA,CAAK,gBAAkB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMxEuB,IAAkB,CAIzB,CAAA,SAAUE,EAA0BxB,CAAAA,CAAAA,CAAgC,CACtE,OAAOA,CAAAA,CAAQC,IAAIqB,IAAkB,CACzC,UCNaG,IAANzxB,EAAAA,IAAAA,CAAA,KAA2B,EAAA,CAAA0xB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAArBD,KAAqB,CAArBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAqBjkC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFlBqC,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA4BlC,IADjCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMyxB,KAAqB9B,EAAA,CAAA,CANjCC,GAAiB,CAAE5gC,GAAAA,CAAK,cAAe6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMrE0B,CAAAA,IAAqB,EAW5B,SAAUE,EAAAA,CAA6B3B,EAAgC,CACzE,OAAOA,CAAQC,CAAAA,GAAAA,CAAIwB,IAAqB,CAC5C,CAAA,IAAAG,IAAA,CCbaC,IAAN7xB,EAAAA,IAAAA,CAAA,KAAuB,EAAjB6xB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAiB,CAAjBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAiBrkC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFdwC,EAAwBrC,CAAAA,GAAAA,CAD7BC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAM6xB,CAAAA,CAAAA,IAAAA,CAAiBlC,EAAA,CAAA,CAN7BC,GAAiB,CAAE5gC,GAAAA,CAAK,sBAAuB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM7E8B,CAAAA,IAAiB,EAexB,SAAUC,EAAAA,CAAyB9B,CAAgC,CAAA,CACrE,OAAOA,CAAQC,CAAAA,GAAAA,CAAI4B,IAAiB,CACxC,UCjBaE,IAAN/xB,EAAAA,IAAAA,CAAA,KAA8B,EAAxB+xB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAwB,6BAAxBA,IAAwBvkC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFrB0C,GAA+BvC,GADpCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAM+xB,IAAwBpC,CAAAA,EAAAA,CAAA,CANpCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,gBAAA,CAAkB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMxEgC,IAAwB,CAAA,CAM/B,SAAUC,EAAAA,CAAgChC,EAAgC,CAC5E,OAAOA,EAAQC,GAAI8B,CAAAA,IAAwB,CAC/C,CCRaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANjyB,IAAA,CAAA,KAAuC,4CAAjCiyB,IAAiC,CAAA,CAAA,CAAA5vB,IAAA,CAAA,UAAA,CAAA1U,GAAA,CAAA,CAAA,KAAA,CAAjCskC,IAAiCzkC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAF9B4C,GAAwCzC,GAD7CC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMiyB,IAAiCtC,CAAAA,EAAAA,CAAA,CAN7CC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,yBAAA,CAA2B6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAMjFkC,IAAiC,CAAA,CAMxC,SAAUC,EAAyClC,CAAAA,CAAAA,CAAgC,CACrF,OAAOA,EAAQC,GAAIgC,CAAAA,IAAiC,CACxD,CCRaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANnyB,KAAA,KAA0B,EAAA,CAAAoyB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAApBD,IAAoB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAzkC,GAAA,CAAA,CAAA,KAAA,CAApBwkC,KAAoB3kC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFjB+C,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA2B5C,IADhCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMmyB,IAAoBxC,CAAAA,EAAAA,CAAA,CANhCC,EAAiB,CAAA,CAAE5gC,IAAK,YAAc6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMpEoC,IAAoB,CA2I3B,CAAA,SAAUE,EAA4BrC,CAAAA,CAAAA,CAAgC,CACxE,OAAOA,CAAAA,CAAQC,GAAIkC,CAAAA,IAAoB,CAC3C,CC7IaG,IAAAA,IAAAA,CAAAA,IAAAA,EAANtyB,KAAA,KAA2B,EAAA,CAAAuyB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAArBD,KAAqB,CAArBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAqB9kC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFlBkD,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA4B/C,GADjCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMsyB,KAAqB3C,EAAA,CAAA,CANjCC,EAAiB,CAAA,CAAE5gC,IAAK,0BAA4B6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAMlFuC,CAAAA,IAAqB,CAuB5B,CAAA,SAAUE,GAA6BxC,CAAgC,CAAA,CACzE,OAAOA,CAAQC,CAAAA,GAAAA,CAAIqC,IAAqB,CAC5C,CAAA,IAAAG,IAAA,CCxBaC,IAAN1yB,EAAAA,IAAAA,CAAA,KAA2B,EAArB0yB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAqB,CAArBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAqBllC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFlBqD,EAA4BlD,CAAAA,GAAAA,CADjCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAM0yB,CAAAA,CAAAA,IAAAA,CAAqB/C,EAAA,CAAA,CANjCC,GAAiB,CAAE5gC,GAAAA,CAAK,aAAe6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAMrE2C,CAAAA,IAAqB,EAgB5B,SAAUC,EAAAA,CAA6B3C,CAAgC,CAAA,CACzE,OAAOA,CAAQC,CAAAA,GAAAA,CAAIyC,IAAqB,CAC5C,UCnBaE,IAAN5yB,EAAAA,IAAAA,CAAA,KAAoC,EAAA,CAAA6yB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA9BD,KAA8B,CAA9BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA8BplC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,IAAA,CAAA,OAAAD,YAF3BwD,EAAqCrD,CAAAA,GAAAA,CAD1CC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAM4yB,CAAAA,CAAAA,IAAAA,CAA8BjD,GAAA,CAN1CC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,4BAAA,CAA8B6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMpF6C,IAA8B,CAAA,CASrC,SAAUE,EAAAA,CAAsC9C,EAAgC,CAClF,OAAOA,CAAQC,CAAAA,GAAAA,CAAI2C,IAA8B,CACrD,CAAA,IAAAG,IAAA,CCRaC,MAANhzB,IAAA,CAAA,KAA8B,4CAAxBgzB,IAAwB,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAAplC,GAAA,CAAA,CAAA,KAAA,CAAxBqlC,IAAwBxlC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFrB2D,EAA+BxD,CAAAA,GAAAA,CADpCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAMgzB,IAAwBrD,CAAAA,EAAAA,CAAA,CANpCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,gBAAA,CAAkB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMxEiD,CAAAA,IAAwB,EAgC/B,SAAUC,EAAAA,CAAgCjD,EAAgC,CAC5E,OAAOA,EAAQC,GAAI+C,CAAAA,IAAwB,CAC/C,CAAA,IAAAE,IAAA,CCrCaC,MAANnzB,IAAA,CAAA,KAAoC,4CAA9BmzB,IAA8B,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAAvlC,GAAA,CAAA,CAAA,KAAA,CAA9BwlC,KAA8B3lC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAF3B8D,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAqC3D,IAD1CC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMmzB,IAA8BxD,CAAAA,EAAAA,CAAA,CAN1CC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,sBAAA,CAAwB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM9EoD,IAA8B,CAMrC,CAAA,SAAUC,EAAsCpD,CAAAA,CAAAA,CAAgC,CAClF,OAAOA,CAAAA,CAAQC,GAAIkD,CAAAA,IAA8B,CACrD,CCRaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANrzB,IAAA,CAAA,KAA6B,4CAAvBqzB,IAAuB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA3lC,GAAA,CAAA,CAAA,KAAA,CAAvB0lC,KAAuB7lC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFpBiE,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8B9D,GADnCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMqzB,IAAuB1D,CAAAA,EAAAA,CAAA,CANnCC,EAAiB,CAAA,CAAE5gC,IAAK,qBAAuB6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM7EsD,IAAuB,CAyB9B,CAAA,SAAUE,GAA+BvD,CAAgC,CAAA,CAC3E,OAAOA,CAAAA,CAAQC,IAAIoD,IAAuB,CAC9C,UC3BaG,IAANxzB,EAAAA,IAAAA,CAAA,KAA4B,EAAtBwzB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAsB,CAAtBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAsBhmC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFnBmE,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA6BhE,IADlCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAMwzB,CAAAA,CAAAA,IAAAA,CAAsB7D,EAAA,CAAA,CANlCC,GAAiB,CAAE5gC,GAAAA,CAAK,cAAgB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMtEyD,IAAsB,CAoD7B,CAAA,SAAUC,GAA8BzD,CAAgC,CAAA,CAC1E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIuD,IAAsB,CAC7C,UCtDaE,IAAN1zB,EAAAA,IAAAA,CAAA,KAAiC,EAAA,CAAA2zB,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA3BD,KAA2B,CAA3BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA2BlmC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFxBsE,EAAkCnE,CAAAA,GAAAA,CADvCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAM0zB,CAAAA,CAAAA,IAAAA,CAA2B/D,GAAA,CANvCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,0BAA2B6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAMjF2D,IAA2B,CAAA,CAKlC,SAAUE,EAAAA,CAAmC5D,EAAgC,CAC/E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIyD,IAA2B,CAClD,CAAA,IAAAG,IAAA,CCPaC,IAAN9zB,EAAAA,IAAAA,CAAA,KAA8B,EAAxB8zB,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAwB,6BAAxBA,IAAwBtmC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFrByE,EAA+BtE,CAAAA,GAAAA,CADpCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAM8zB,CAAAA,CAAAA,IAAAA,CAAwBnE,GAAA,CANpCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,sBAAA,CAAwB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM9E+D,CAAAA,IAAwB,EAKrC,SAASC,EAAAA,CAAgC/D,CAAgC,CAAA,CACrE,OAAOA,CAAQC,CAAAA,GAAAA,CAAI6D,IAAwB,CAC/C,CAAA,IAAAE,IAAA,CCPaC,MAANj0B,IAAA,CAAA,KAA+B,EAAzBi0B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAyB,6BAAzBA,IAAyBzmC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFtB4E,GAAgCzE,GADrCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMi0B,IAAyBtE,CAAAA,EAAAA,CAAA,CANrCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,uBAAA,CAAyB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAM/EkE,IAAyB,CAAA,CAShC,SAAUC,EAAiClE,CAAAA,CAAAA,CAAgC,CAC7E,OAAOA,CAAAA,CAAQC,GAAIgE,CAAAA,IAAyB,CAChD,CCTaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANn0B,IAAA,CAAA,KAAqC,4CAA/Bm0B,IAA+B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAzmC,GAAA,CAAA,CAAA,KAAA,CAA/BwmC,IAA+B3mC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAF5B+E,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAsC5E,GAD3CC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMm0B,IAA+BxE,CAAAA,EAAAA,CAAA,CAN3CC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,6BAAA,CAA+B6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMrFoE,IAA+B,CAAA,CAMtC,SAAUE,EAAuCrE,CAAAA,CAAAA,CAAgC,CACnF,OAAOA,CAAAA,CAAQC,IAAIkE,IAA+B,CACtD,CCRaG,IAAAA,IAAAA,CAAAA,IAAAA,EAANt0B,KAAA,KAA6B,EAAA,CAAAu0B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAvBD,KAAuB,CAAvBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAuB9mC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFpBkF,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8B/E,IADnCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMs0B,KAAuB3E,EAAA,CAAA,CANnCC,GAAiB,CAAE5gC,GAAAA,CAAK,qBAAuB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAM7EuE,IAAuB,CAmB9B,CAAA,SAAUE,EAA+BxE,CAAAA,CAAAA,CAAgC,CAC3E,OAAOA,CAAAA,CAAQC,IAAIqE,IAAuB,CAC9C,UCvBaG,IAANz0B,EAAAA,IAAAA,CAAA,KAA+B,EAAA,CAAA00B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAzBD,KAAyB,CAAzBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAyBjnC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFtBqF,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAgClF,IADrCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMy0B,KAAyB9E,EAAA,CAAA,CANrCC,GAAiB,CAAE5gC,GAAAA,CAAK,kBAAmB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMzE0E,CAAAA,IAAyB,EAKhC,SAAUE,EAAAA,CAAiC3E,EAAgC,CAC7E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIwE,IAAyB,CAChD,CAAA,IAAAG,IAAA,CCLaC,IAAN70B,EAAAA,IAAAA,CAAA,KAA8B,EAAxB60B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAwB,CAAxBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAwBrnC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFrBwF,EAA+BrF,CAAAA,GAAAA,CADpCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAM60B,CAAAA,CAAAA,IAAAA,CAAwBlF,EAAA,CAAA,CANpCC,GAAiB,CAAE5gC,GAAAA,CAAK,uBAAwB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM9E8E,CAAAA,IAAwB,EAO/B,SAAUC,EAAAA,CAAgC9E,CAAgC,CAAA,CAC5E,OAAOA,CAAQC,CAAAA,GAAAA,CAAI4E,IAAwB,CAC/C,UCXaE,IAAN/0B,EAAAA,IAAAA,CAAA,KAAwB,EAAlB+0B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAkB,6BAAlBA,IAAkBvnC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,IAAA,CAAA,OAAAD,YAFf0F,EAAyBvF,CAAAA,GAAAA,CAD9BC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAM+0B,CAAAA,CAAAA,IAAAA,CAAkBpF,GAAA,CAN9BC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,WAAY6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMlEgF,CAAAA,IAAkB,CAuCzB,CAAA,SAAUC,GAA0BhF,CAAgC,CAAA,CACtE,OAAOA,CAAQC,CAAAA,GAAAA,CAAI8E,IAAkB,CACzC,CAAA,IAAAE,IAAA,CCzCaC,IAANl1B,EAAAA,IAAAA,CAAA,KAA+B,EAAzBk1B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAyB,CAAzBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAyB1nC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFtB6F,EAAgC1F,CAAAA,GAAAA,CADrCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMk1B,CAAAA,CAAAA,IAAAA,CAAyBvF,EAAA,CAAA,CANrCC,GAAiB,CAAE5gC,GAAAA,CAAK,iBAAmB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAMzEmF,CAAAA,IAAyB,EAIhC,SAAUC,EAAAA,CAAiCnF,CAAgC,CAAA,CAC7E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIiF,IAAyB,CAChD,CAAA,IAAAE,IAAA,CCNaC,MAANr1B,IAAA,CAAA,KAAuC,EAAjCq1B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAiC,6BAAjCA,IAAiC7nC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAF9BgG,GAAwC7F,GAD7CC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAMq1B,CAAAA,CAAAA,IAAAA,CAAiC1F,GAAA,CAN7CC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,+BAAA,CAAiC6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMvFsF,IAAiC,CAAA,CAKxC,SAAUC,EAAAA,CAAyCtF,EAAgC,CACrF,OAAOA,CAAQC,CAAAA,GAAAA,CAAIoF,IAAiC,CACxD,CAAA,IAAAE,IAAA,CCJaC,MAANx1B,IAAA,CAAA,KAAgC,4CAA1Bw1B,IAA0B,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAA5nC,GAAA,CAAA,CAAA,KAAA,CAA1B6nC,IAA0BhoC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFvBmG,EAAiChG,CAAAA,GAAAA,CADtCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAMw1B,IAA0B7F,CAAAA,EAAAA,CAAA,CANtCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,wBAAA,CAA0B6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMhFyF,IAA0B,CAAA,CA+BjC,SAAUC,EAAkCzF,CAAAA,CAAAA,CAAgC,CAC9E,OAAOA,CAAAA,CAAQC,IAAIuF,IAA0B,CACjD,CClCaE,IAAAA,IAAAA,CAAAA,IAAAA,EAAN11B,KAAA,KAA6B,EAAA,CAAA21B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAvBD,IAAuB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAhoC,GAAA,CAAA,CAAA,KAAA,CAAvB+nC,KAAuBloC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFpBsG,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8BnG,IADnCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM01B,IAAuB/F,CAAAA,EAAAA,CAAA,CANnCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,eAAA,CAAiB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMvE2F,IAAuB,CA0B9B,CAAA,SAAUE,EAA+B5F,CAAAA,CAAAA,CAAgC,CAC3E,OAAOA,CAAAA,CAAQC,GAAIyF,CAAAA,IAAuB,CAC9C,CC3BaG,IAAAA,IAAAA,CAAAA,IAAAA,EAAN71B,IAAA,CAAA,KAAkC,4CAA5B61B,IAA4B,CAAA,CAAA,CAAAxnC,IAAA,CAAA,UAAA,CAAAV,GAAA,CAAA,CAAA,KAAA,CAA5BkoC,KAA4BroC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFzBwG,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAmCrG,IADxCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM61B,KAA4BlG,EAAA,CAAA,CANxCC,GAAiB,CAAE5gC,GAAAA,CAAK,2BAA4B6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAMlF8F,CAAAA,IAA4B,CAuBnC,CAAA,SAAUC,GAAoC9F,CAAgC,CAAA,CAChF,OAAOA,CAAAA,CAAQC,IAAI4F,IAA4B,CACnD,UC5BaE,IAAN/1B,EAAAA,IAAAA,CAAA,KAAkC,EAA5B+1B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA4B,CAA5BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA4BvoC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFzB0G,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAmCvG,IADxCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAM+1B,CAAAA,CAAAA,IAAAA,CAA4BpG,EAAA,CAAA,CANxCC,GAAiB,CAAE5gC,GAAAA,CAAK,oBAAsB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAM5EgG,IAA4B,CAUnC,CAAA,SAAUC,GAAoChG,CAAgC,CAAA,CAChF,OAAOA,CAAQC,CAAAA,GAAAA,CAAI8F,IAA4B,CACnD,UCZaE,IAANj2B,EAAAA,IAAAA,CAAA,KAA4B,EAAtBi2B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAsB,6BAAtBA,IAAsBzoC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFnB4G,GAA6BzG,GADlCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAMi2B,CAAAA,CAAAA,IAAAA,CAAsBtG,GAAA,CANlCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,kBAAmB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAMzEkG,IAAsB,CAAA,CAgB7B,SAAUC,EAAAA,CAA8BlG,EAAgC,CAC1E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIgG,IAAsB,CAC7C,CAAA,IAAAE,IAAA,CClBaC,IAANp2B,EAAAA,IAAAA,CAAA,KAAyB,EAAnBo2B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAmB,6BAAnBA,IAAmB5oC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFhB+G,EAA0B5G,CAAAA,GAAAA,CAD/BC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMo2B,CAAAA,CAAAA,IAAAA,CAAmBzG,GAAA,CAN/BC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,WAAA,CAAa6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAMnEqG,IAAmB,CAAA,CAsB1B,SAAUC,EAA2BrG,CAAAA,CAAAA,CAAgC,CACvE,OAAOA,EAAQC,GAAImG,CAAAA,IAAmB,CAC1C,CCxBaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANt2B,KAAA,KAAwB,EAAA,CAAAu2B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAlBD,IAAkB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA5oC,GAAA,CAAA,CAAA,KAAA,CAAlB2oC,KAAkB9oC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFfkH,GAAyB/G,GAD9BC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMs2B,IAAkB3G,CAAAA,EAAAA,CAAA,CAN9BC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,UAAA,CAAY6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMlEuG,IAAkB,CAAA,CAiCzB,SAAUE,EAA0BxG,CAAAA,CAAAA,CAAgC,CACtE,OAAOA,CAAAA,CAAQC,GAAIqG,CAAAA,IAAkB,CACzC,CCnCaG,IAAAA,IAAAA,CAAAA,IAAAA,EAANz2B,IAAA,CAAA,KAA6B,4CAAvBy2B,IAAuB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA/oC,GAAA,CAAA,CAAA,KAAA,CAAvB8oC,IAAuBjpC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFpBqH,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8BlH,GADnCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMy2B,KAAuB9G,EAAA,CAAA,CANnCC,EAAiB,CAAA,CAAE5gC,IAAK,qBAAuB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAM7E0G,CAAAA,IAAuB,CAI9B,CAAA,SAAUE,GAA+B3G,CAAgC,CAAA,CAC3E,OAAOA,CAAAA,CAAQC,IAAIwG,IAAuB,CAC9C,CCNaG,IAAAA,IAAAA,CAAAA,IAAAA,EAAN52B,KAAA,KAA8B,EAAA,CAAA62B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAxBD,KAAwB,CAAxBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAwBppC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFrBwH,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA+BrH,IADpCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM42B,KAAwBjH,EAAA,CAAA,CANpCC,GAAiB,CAAE5gC,GAAAA,CAAK,gBAAkB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMxE6G,IAAwB,CAO/B,CAAA,SAAUE,EAAgC9G,CAAAA,CAAAA,CAAgC,CAC5E,OAAOA,CAAAA,CAAQC,IAAI2G,IAAwB,CAC/C,UCTaG,IAAN/2B,EAAAA,IAAAA,CAAA,KAAiC,EAAA,CAAAg3B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA3BD,KAA2B,CAA3BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA2BvpC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,IAAA,CAAA,OAAAD,YAFxB2H,EAAkCxH,CAAAA,GAAAA,CADvCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAM+2B,CAAAA,CAAAA,IAAAA,CAA2BpH,GAAA,CANvCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,oBAAqB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM3EgH,CAAAA,IAA2B,EAOlC,SAAUE,EAAAA,CAAmCjH,EAAgC,CAC/E,OAAOA,CAAQC,CAAAA,GAAAA,CAAI8G,IAA2B,CAClD,CAAA,IAAAG,IAAA,CCTaC,EAANn3B,EAAAA,IAAAA,CAAA,KAAgC,EAA1Bm3B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA0B,CAA1BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA0B3pC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFvB8H,EAAiC3H,CAAAA,GAAAA,CADtCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMm3B,CAAAA,CAAAA,EAAAA,CAA0BxH,EAAA,CAAA,CANtCC,GAAiB,CAAE5gC,GAAAA,CAAK,mBAAoB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM1EoH,CAAAA,EAA0B,EAKjC,SAAUC,EAAAA,CAAkCpH,EAAgC,CAC9E,OAAOA,EAAQC,GAAIkH,CAAAA,EAA0B,CACjD,CAAA,IAAAE,IAAA,CCPaC,IAANt3B,IAAA,CAAA,KAAkC,4CAA5Bs3B,IAA4B,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAA1pC,GAAA,CAAA,CAAA,KAAA,CAA5B2pC,KAA4B9pC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFzBiI,GAAmC9H,GADxCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAMs3B,EAA4B3H,CAAAA,EAAAA,CAAA,CANxCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,oBAAA,CAAsB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAM5EuH,EAA4B,CAAA,CAMnC,SAAUC,EAAAA,CAAoCvH,EAAgC,CAChF,OAAOA,EAAQC,GAAIqH,CAAAA,EAA4B,CACnD,CCRaE,IAAAA,IAAAA,CAAAA,EAAAA,EAANx3B,IAAA,CAAA,KAAgC,4CAA1Bw3B,IAA0B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA9pC,GAAA,CAAA,CAAA,KAAA,CAA1B6pC,IAA0BhqC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFvBoI,GAAiCjI,GADtCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAMw3B,EAA0B7H,CAAAA,EAAAA,CAAA,CANtCC,EAAiB,CAAA,CAAE5gC,IAAK,kBAAoB6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM1EyH,EAA0B,CASjC,CAAA,SAAUE,GAAkC1H,CAAgC,CAAA,CAC9E,OAAOA,CAAAA,CAAQC,IAAIuH,EAA0B,CACjD,CCXaG,IAAAA,IAAAA,CAAAA,EAAAA,EAAN33B,KAAA,KAA6B,EAAA,CAAA43B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAvBD,IAAuB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAjqC,GAAA,CAAA,CAAA,KAAA,CAAvBgqC,KAAuBnqC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFpBuI,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA8BpI,IADnCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM23B,EAAuBhI,CAAAA,EAAAA,CAAA,CANnCC,EAAiB,CAAA,CAAE5gC,IAAK,yBAA2B6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMjF4H,EAAuB,CAI9B,CAAA,SAAUE,EAA+B7H,CAAAA,CAAAA,CAAgC,CAC3E,OAAOA,CAAAA,CAAQC,GAAI0H,CAAAA,EAAuB,CAC9C,CCNaG,IAAAA,IAAAA,CAAAA,EAAAA,EAAN93B,KAAA,KAAiC,EAAA,CAAA+3B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA3BD,KAA2B,CAA3BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA2BtqC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFxB0I,EAAkCvI,CAAAA,GAAAA,CADvCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAM83B,CAAAA,CAAAA,EAAAA,CAA2BnI,GAAA,CANvCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,oBAAqB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM3E+H,CAAAA,EAA2B,CA6BlC,CAAA,SAAUE,GAAmChI,CAAgC,CAAA,CAC/E,OAAOA,CAAQC,CAAAA,GAAAA,CAAI6H,EAA2B,CAClD,CAAA,IAAAG,IAAA,CC/BaC,EAANl4B,EAAAA,IAAAA,CAAA,KAAmC,EAA7Bk4B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA6B,CAA7BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA6B1qC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAF1B6I,EAAoC1I,CAAAA,GAAAA,CADzCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMk4B,CAAAA,CAAAA,EAAAA,CAA6BvI,EAAA,CAAA,CANzCC,GAAiB,CAAE5gC,GAAAA,CAAK,qBAAuB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAM7EmI,CAAAA,EAA6B,EAiDpC,SAAUC,EAAAA,CAAqCnI,CAAgC,CAAA,CACjF,OAAOA,CAAQC,CAAAA,GAAAA,CAAIiI,EAA6B,CACpD,CAAA,IAAAE,IAAA,CCnDaC,MAANr4B,IAAA,CAAA,KAA0B,EAApBq4B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAoB,6BAApBA,IAAoB7qC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFjBgJ,GAA2B7I,GADhCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAMq4B,CAAAA,CAAAA,IAAAA,CAAoB1I,GAAA,CANhCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,YAAA,CAAc6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMpEsI,IAAoB,CAAA,CAM3B,SAAUC,EAAAA,CAA4BtI,EAAgC,CACxE,OAAOA,CAAQC,CAAAA,GAAAA,CAAIoI,IAAoB,CAC3C,CAAA,IAAAE,IAAA,CCRaC,IAANx4B,IAAA,CAAA,KAAkC,4CAA5Bw4B,IAA4B,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAA5qC,GAAA,CAAA,CAAA,KAAA,CAA5B6qC,IAA4BhrC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFzBmJ,EAAmChJ,CAAAA,GAAAA,CADxCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAMw4B,EAA4B7I,CAAAA,EAAAA,CAAA,CANxCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,0BAAA,CAA4B6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMlFyI,EAA4B,CAAA,CAInC,SAAUC,EAAoCzI,CAAAA,CAAAA,CAAgC,CAChF,OAAOA,CAAAA,CAAQC,IAAIuI,EAA4B,CACnD,CCNaE,IAAAA,IAAAA,CAAAA,EAAAA,EAAN14B,KAAA,KAA4B,EAAA,CAAA24B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAtBD,IAAsB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAhrC,GAAA,CAAA,CAAA,KAAA,CAAtB+qC,KAAsBlrC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFnBsJ,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA6BnJ,IADlCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM04B,EAAsB/I,CAAAA,EAAAA,CAAA,CANlCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,oBAAA,CAAsB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM5E2I,EAAsB,CAoB7B,CAAA,SAAUE,EAA8B5I,CAAAA,CAAAA,CAAgC,CAC1E,OAAOA,CAAAA,CAAQC,GAAIyI,CAAAA,EAAsB,CAC7C,CCtBaG,IAAAA,IAAAA,CAAAA,EAAAA,EAAN74B,IAAA,CAAA,KAA+B,4CAAzB64B,IAAyB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAnrC,GAAA,CAAA,CAAA,KAAA,CAAzBkrC,KAAyBrrC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFtByJ,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAgCtJ,IADrCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM64B,GAAyBlJ,EAAA,CAAA,CANrCC,GAAiB,CAAE5gC,GAAAA,CAAK,wBAAyB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM/E8I,CAAAA,EAAyB,CAIhC,CAAA,SAAUE,GAAiC/I,CAAgC,CAAA,CAC7E,OAAOA,CAAAA,CAAQC,IAAI4I,EAAyB,CAChD,UCHaG,EAANh5B,EAAAA,IAAAA,CAAA,KAAkC,EAA5Bg5B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA4B,CAA5BA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAA4BxrC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFzB2J,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAmCxJ,IADxCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAMg5B,CAAAA,CAAAA,EAAAA,CAA4BrJ,EAAA,CAAA,CANxCC,GAAiB,CAAE5gC,GAAAA,CAAK,0BAA4B6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAMlFiJ,EAA4B,CAKnC,CAAA,SAAUC,GAAoCjJ,CAAgC,CAAA,CAChF,OAAOA,CAAQC,CAAAA,GAAAA,CAAI+I,EAA4B,CACnD,UCVaE,EAANl5B,EAAAA,IAAAA,CAAA,KAAgC,EAA1Bk5B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA0B,6BAA1BA,IAA0B1rC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFvB6J,GAAiC1J,GADtCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAMk5B,CAAAA,CAAAA,EAAAA,CAA0BvJ,GAAA,CANtCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,mBAAoB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAM1EmJ,EAA0B,CAAA,CAKjC,SAAUC,EAAAA,CAAkCnJ,EAAgC,CAC9E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIiJ,EAA0B,CACjD,CAAA,IAAAE,IAAA,CCPaC,EAANr5B,EAAAA,IAAAA,CAAA,KAA2B,EAArBq5B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAqB,6BAArBA,IAAqB7rC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,KAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFlBgK,EAA4B7J,CAAAA,GAAAA,CADjCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMq5B,CAAAA,CAAAA,EAAAA,CAAqB1J,GAAA,CANjCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,aAAA,CAAe6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAMrEsJ,EAAqB,CAAA,CAQ5B,SAAUC,EAA6BtJ,CAAAA,CAAAA,CAAgC,CACzE,OAAOA,EAAQC,GAAIoJ,CAAAA,EAAqB,CAC5C,CCVaE,IAAAA,IAAAA,CAAAA,IAAAA,EAANv5B,KAAA,KAAqC,EAAA,CAAAw5B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAA/BD,IAA+B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAA7rC,GAAA,CAAA,CAAA,KAAA,CAA/B4rC,KAA+B/rC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAF5BmK,GAAsChK,GAD3CC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMu5B,IAA+B5J,CAAAA,EAAAA,CAAA,CAN3CC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,uBAAA,CAAyB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAM/EwJ,IAA+B,CAAA,CAyC5C,SAASE,EAAuCzJ,CAAAA,CAAAA,CAAgC,CAC5E,OAAOA,CAAAA,CAAQC,GAAIsJ,CAAAA,IAA+B,CACtD,CC3CaG,IAAAA,IAAAA,CAAAA,EAAAA,EAAN15B,IAAA,CAAA,KAAgC,4CAA1B05B,IAA0B,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAhsC,GAAA,CAAA,CAAA,KAAA,CAA1B+rC,IAA0BlsC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFvBsK,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAiCnK,GADtCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAAA,CAIf1vB,MAAM05B,EAA0B/J,CAAAA,EAAAA,CAAA,CANtCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,kBAAA,CAAoB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM1E2J,EAA0B,CAAA,CAMjC,SAAUE,EAAkC5J,CAAAA,CAAAA,CAAgC,CAC9E,OAAOA,EAAQC,GAAIyJ,CAAAA,EAA0B,CACjD,CAAA,IAAAG,IAAA,CCRaC,IAAN95B,IAAA,CAAA,KAAwB,4CAAlB85B,IAAkB,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAAlsC,GAAA,CAAA,CAAA,KAAA,CAAlBmsC,KAAkBtsC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFfyK,GAAyBtK,GAD9BC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,MAAM85B,EAAkBnK,CAAAA,EAAAA,CAAA,CAN9BC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,gBAAA,CAAkB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMxE+J,EAAkB,CAAA,CAKzB,SAAUC,EAAAA,CAA0B/J,EAAgC,CACtE,OAAOA,EAAQC,GAAI6J,CAAAA,EAAkB,CACzC,CCPaE,IAAAA,IAAAA,CAAAA,EAAAA,EAANh6B,IAAA,CAAA,KAA2B,4CAArBg6B,IAAqB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAtsC,GAAA,CAAA,CAAA,KAAA,CAArBqsC,KAAqBxsC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFlB4K,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA4BzK,IADjCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMg6B,GAAqBrK,EAAA,CAAA,CANjCC,EAAiB,CAAA,CAAE5gC,IAAK,aAAe6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMrEiK,EAAqB,CA6C5B,CAAA,SAAUE,GAA6BlK,CAAgC,CAAA,CACzE,OAAOA,CAAAA,CAAQC,IAAI+J,EAAqB,CAC5C,CC/CaG,IAAAA,IAAAA,CAAAA,EAAAA,EAANn6B,KAAA,KAA4B,EAAA,CAAAo6B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAtBD,IAAsB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAzsC,GAAA,CAAA,CAAA,KAAA,CAAtBwsC,KAAsB3sC,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,CAFnB+K,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA6B5K,IADlCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMm6B,EAAsBxK,CAAAA,EAAAA,CAAA,CANlCC,EAAiB,CAAA,CAAE5gC,IAAK,oBAAsB6gC,CAAAA,OAAAA,CAASC,EAAwBC,MAAM,CAAE,CAAC,CAAA,CAM5EoK,EAAsB,CAI7B,CAAA,SAAUE,GAA8BrK,CAAgC,CAAA,CAC1E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIkK,EAAsB,CAC7C,UCNaG,EAANt6B,EAAAA,IAAAA,CAAA,KAA+B,EAAzBs6B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAyB,6BAAzBA,IAAyB9sC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,CAAAA,CAAA,IAAA,CAAA,OAAAD,YAFtBiL,EAAgC9K,CAAAA,GAAAA,CADrCC,EAAuB,CAAA,gBADlB,MAAM,CAAA,EAIf1vB,IAAMs6B,CAAAA,CAAAA,EAAAA,CAAyB3K,GAAA,CANrCC,EAAAA,CAAiB,CAAE5gC,GAAAA,CAAK,wBAAyB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,CAM/EuK,CAAAA,EAAyB,CAahC,CAAA,SAAUC,GAAiCvK,CAAgC,CAAA,CAC7E,OAAOA,CAAQC,CAAAA,GAAAA,CAAIqK,EAAyB,CAChD,CAAA,IAAAE,IAAA,CCZaC,EAANz6B,EAAAA,IAAAA,CAAA,KAA6B,EAAvBy6B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAuB,CAAvBA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAuBjtC,QAAA,SAAA8hC,CAAAA,CAAA,CAAA,IAAAC,EAAA,IAAA,CAAA,OAAAD,YAFpBoL,EAA8BjL,CAAAA,GAAAA,CADnCC,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,EAIf1vB,IAAMy6B,CAAAA,CAAAA,EAAAA,CAAuB9K,GAAA,CANnCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,qBAAA,CAAuB6gC,OAASC,CAAAA,CAAAA,CAAwBC,MAAM,CAAE,CAAC,EAM7E0K,EAAuB,CAAA,CAI9B,SAAUC,EAA+B1K,CAAAA,CAAAA,CAAgC,CAC3E,OAAOA,EAAQC,GAAIwK,CAAAA,EAAuB,CAC9C,CAAA,IAAAE,IAAA,CCTaC,IAAN56B,IAAA,CAAA,KAAiC,EAA3B46B,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAA2B,6BAA3BA,IAA2BptC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAFxBuL,GAAkCpL,GADvCC,CAAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CADlB,MAAM,CAAA,CAAA,CAIf1vB,IAAM46B,CAAAA,CAAAA,EAAAA,CAA2BjL,GAAA,CANvCC,EAAAA,CAAiB,CAAE5gC,GAAK,CAAA,aAAA,CAAe6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,EAMrE6K,EAA2B,CAAA,CAOlC,SAAUC,EAAAA,CAAmC7K,EAAgC,CAC/E,OAAOA,CAAQC,CAAAA,GAAAA,CAAI2K,EAA2B,CAClD,CAAA,IAAAE,IAAA,CCLaC,IAAN/6B,IAAA,CAAA,KAA8B,4CAAxB+6B,IAAwB,CAAA,CAAA,CAAAD,IAAA,CAAA,UAAA,CAAAntC,GAAA,CAAA,CAAA,KAAA,CAAxBotC,IAAwBvtC,CAAAA,OAAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFrB0L,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA+BvL,GADpCC,CAAAA,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAM+6B,GAAwBpL,EAAA,CAAA,CANpCC,EAAiB,CAAA,CAAE5gC,IAAK,sBAAwB6gC,CAAAA,OAAAA,CAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAM9EgL,EAAwB,CAAA,CAK/B,SAAUC,EAAgChL,CAAAA,CAAAA,CAAgC,CAC5E,OAAOA,CAAAA,CAAQC,IAAI8K,EAAwB,CAC/C,CCXaE,IAAAA,IAAAA,CAAAA,EAAAA,EAANj7B,KAAA,KAA8B,EAAA,CAAAk7B,IAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAAxBD,IAAwB,CAAA,CAAA,CAAAC,IAAA,CAAA,UAAA,CAAAvtC,GAAA,CAAA,CAAA,KAAA,CAAxBstC,KAAwBztC,OAAA,CAAA,SAAA8hC,CAAA,CAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAFrB6L,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA+B1L,IADpCC,EAAuB,CAAA,CADlB,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIf1vB,CAAAA,IAAAA,CAAAA,CAAMi7B,EAAwBtL,CAAAA,EAAAA,CAAA,CANpCC,EAAiB,CAAA,CAAE5gC,GAAK,CAAA,gBAAA,CAAkB6gC,QAASC,CAAwBC,CAAAA,MAAM,CAAE,CAAC,CAAA,CAMxEkL,EAAwB,CA2B/B,CAAA,SAAUE,EAAgCnL,CAAAA,CAAAA,CAAgC,CAC5E,OAAOA,CAAAA,CAAQC,IAAIgL,EAAwB,CAC/C,CCvCOG,GCcP,CAAAC,IAAA,EAAA,EAAA,IAAaC,IAAsB,IAAA,CAA7B,IAAOA,CAAP,CAAA,MAAOA,CAAsB,CAO/B76B,WAAAA,CACW86B,CACyBC,CAAAA,CAAAA,CACxBC,EACAC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EAA4C,CAP7C,IAAA,CAAAP,SAAAA,CAAAA,CAAAA,CACyB,KAAAC,IAAAA,CAAAA,CAAAA,CACxB,KAAAC,IAAAA,CAAAA,CAAAA,CACA,KAAAC,IAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,SAAAA,CAAAA,EACA,IAAAC,CAAAA,KAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,cAAAA,CACA,CAAA,IAAA,CAAAC,qBAAAA,CAAAA,CAAAA,CAZJ,KAAAC,0BAAsC,CAAA,CAAA,EAa3C,CAEHC,SAAS,EAAA,CACL,KAAKT,SAAUU,CAAAA,KAAAA,GACnB,CAEAC,UAAQ,CACJ,IAAMC,CAAe,CAAA,IAAA,CAAKL,sBAAsBM,mBAAmB,EAAA,CAC7DC,CAAS,CAAA,IAAA,CAAKP,sBAAsBQ,mBAAmB,EAAA,CACvDC,EAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBACvC,CAAA,IAAA,CAAKT,0BACN,GAAA,IAAA,CAAKU,2BACL,CAAA,IAAA,CAAKV,2BAA6B,CAGtC,CAAA,CAAA,CAAA,IAAA,CAAKW,MAAQ,IAAKd,CAAAA,KAAAA,CAAMe,MACpBN,CAAAA,CAAAA,CAAOO,qBACP,IAAKnB,CAAAA,IAAAA,CAAK7a,GACV,IAAKib,CAAAA,aAAAA,CAAcgB,MACnBV,CAAaW,CAAAA,SAAAA,CACb,IAAKjB,CAAAA,aAAAA,CAAckB,QACnB,IAAKrB,CAAAA,IAAAA,CAAKsB,IACV,CAAA,IAAA,CAAKvB,KAAKwB,QAAQ,CAAA,CAEtB,IAAKP,CAAAA,KAAAA,EAAS,wBAEd,IAAKQ,CAAAA,UAAAA,CAAab,EAAOc,yBACzB,CAAA,IAAA,CAAKD,WAAa,IAAKA,CAAAA,UAAAA,CAAWE,OAAQ,CAAA,KAAA,CAAO,oBAAoB,CACrE,CAAA,IAAA,CAAKF,UAAa,CAAA,IAAA,CAAKA,WAAWE,OAAQ,CAAA,KAAA,CAAO,IAAK1B,CAAAA,IAAAA,CAAKsB,IAAI,CAC/D,CAAA,IAAA,CAAKE,WAAa,IAAKA,CAAAA,UAAAA,CAAWE,QAAQ,KAAO,CAAA,EAAE,CACnD,CAAA,IAAA,CAAKF,WAAa,IAAKA,CAAAA,UAAAA,CAAWE,OAAQ,CAAA,KAAA,CAAO,EAAE,CACnD,CAAA,IAAA,CAAKF,UAAa,CAAA,IAAA,CAAKA,WAAa,uBAEhCX,CAAAA,CAAAA,CAASc,6BAA+B,IAAKC,CAAAA,WAAAA,CAC7C,KAAKC,gBAAmB,CAAA,IAAA,CAAKb,KAE7B,CAAA,IAAA,CAAKa,iBAAmB,IAAKL,CAAAA,WAErC,CAEAhQ,WAAW,EAAA,CACP,KAAKyO,SAAU6B,CAAAA,YAAAA,CAAarQ,mBAAoB,CAAA,SAAA,CAAW,IAAK,EAAG,EACvE,CAEQsP,yBAAAA,EAAyB,CAC7B,IAAMgB,CAAAA,CAAgBC,QAASC,CAAAA,cAAAA,CAAe,qBAAqB,CACnE,CAAA,IAAA,CAAKhC,SAAU6B,CAAAA,YAAAA,CAAaxQ,iBAAiB,SAAY1gB,CAAAA,CAAAA,EAAS,CAC9D,GAAI,CAACA,CAAS,EAAA,CAACA,EAAMkvB,IAAQ,EAAA,OAAOlvB,EAAMkvB,IAAS,EAAA,QAAA,CAC/C,OAEJ,IAAMvmC,EAAU2oC,QAAStxB,CAAAA,CAAAA,CAAMkvB,IAAI,CAAA,CAC9B7sB,MAAM,GAAG,CAAA,CACTkvB,MAAO,CAAA,CAACC,EAAMC,CAAY,GAAA,CACvB,IAAMC,CAAaD,CAAAA,CAAAA,CAAIE,MAAOtvB,CAAAA,KAAAA,CAAM,GAAG,CAAA,CACjCuvB,EAAkBF,CAAM,CAAA,CAAC,CAC/BF,CAAAA,OAAAA,EAAKI,CAA0B,CAAA,CAAIF,CAAM,CAAA,CAAC,EACnCF,CACX,CAAA,CAAG,EAAE,CAAA,CAAA,CAIO7oC,EAAQkpC,MAAU,EAAA,EAAA,EAAIC,WAAW,EAAA,GAClC,UACPnpC,CAAQopC,CAAAA,cAAAA,GAAmB,OAC3BZ,CAAca,CAAAA,GAAAA,CAAM,KAAKpB,UAEzB,CAAA,IAAA,CAAK3B,SAAUU,CAAAA,KAAAA,IAG3B,CAAC,EACL,yCAtFSX,CAAsBiD,EAAAA,GAAAA,CAAAC,EAAA,CAAAD,CAAAA,GAAAA,CASnBE,EAAe,CAAA,CAAAF,IAAAG,GAAA,CAAA,CAAAH,GAAAI,CAAAA,GAAA,EAAAJ,GAAAK,CAAAA,GAAA,CAAAL,CAAAA,GAAAA,CAAAM,EAAA,CAAAN,CAAAA,GAAAA,CAAAO,IAAA,CAAAP,CAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAA,CATlBzD,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAsBpQ,UAAA,CAAA,CAAA,mBAAA,CAAA,EAAA8T,MAAA,CAAA,CAAA1B,WAAA,CAAA,aAAA,EAAAlS,UAAA,CAAA,CAAA,CAAA,CAAAmR,SAAA,CAAA0C,EAAA,EAAAC,KAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,CAAAC,OAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,wBAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,cAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA,CAAA,IAAA,CAAA,sBAAA,WAAA,CAAA,KAAA,CAAA,sBAAA,KAAA,CAAA,mBAAA,CAAA,MAAA,aAAA,CAAA,GAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,EAAA,KAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,ICbnC7B,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAA2E,EAAA,KAAA,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAC2C,CAAA,CAAA,QAAA,CAAA,CAAA,CAC5CyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAA,CAAAq5B,WAAW,CAAA,EACnCvQ,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EACJC,EAAA,EAAA,EAEJD,CAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CASJC,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,EAAAA,IAFQ+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAA4Q,EAAA,CAAA,CAAA,CAAA,CAAA38B,CAAAA,CAAAA,CAAA46B,gBAAA,CAAAgC,CAAAA,EAAA,mBDHEC,GAAkBC,CAAAA,GAAAA,CAAkBC,GAAsB,CAAAzQ,CAAAA,aAAAA,CAAA,CAAA,CAAA,EAElE,IAAOqM,CAAAA,CAAPqE,SAAOrE,CAAsB,CAAA,IEDnC,IAAasE,EAAAA,CAAAA,CAAmB,IAAA,CAA1B,IAAOA,CAAP,CAAA,MAAOA,CAAmB,CAO5Bn/B,YACW86B,CACyBC,CAAAA,CAAAA,CACxBqE,CACA/D,CAAAA,CAAAA,CAA4C,CAH7C,IAAAP,CAAAA,SAAAA,CAAAA,EACyB,IAAAC,CAAAA,IAAAA,CAAAA,EACxB,IAAAqE,CAAAA,cAAAA,CAAAA,CACA,CAAA,IAAA,CAAA/D,sBAAAA,EACT,CACHE,SAAS,EAAA,CACL,KAAKT,SAAUU,CAAAA,KAAAA,GACnB,CACAC,UAAQ,CACJ,IAAM3uC,EAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,qBACpCzD,CAAAA,CAAAA,CAAS,IAAKP,CAAAA,qBAAAA,CAAsBQ,qBAC1C,CAAA,IAAA,CAAKyD,QAAW,CAAA,IAAA,CAAKF,eAAe,QACpC,CAAA,IAAA,CAAKG,MAAS,CAAA,IAAA,CAAKH,eAAe,MAClC,CAAA,IAAA,CAAKI,oBAAsB1yC,CAAO2yC,CAAAA,QAAAA,CAAS,oBAC3C,IAAKC,CAAAA,kBAAAA,CAAqB5yC,CAAO2yC,CAAAA,QAAAA,CAAS,mBAC1C,IAAKE,CAAAA,aAAAA,CAAgB/D,EAAOc,0BAChC,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAxBSyC,GAAmBrB,GAAAC,CAAAA,EAAA,CAAAD,CAAAA,GAAAA,CAShBE,EAAe,CAAAF,CAAAA,GAAAA,CAAA8B,EAAA,CAAA9B,CAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAA,CATlBa,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAmB1U,UAAA,CAAA,CAAA,iBAAA,CAAA,EAAAE,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,GAAAC,IAAA,CAAA,CAAA,CAAAC,OAAA,CAAA,CAAA,CAAA,CAAA,6BAAA,EAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,ICbhC7B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAyC,CAAA,CAAA,KAAA,CAAA,CAAA,CACJ,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACL,CAAA,CAAA,KAAA,CAAA,CAAA,CACM,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,EACY8U,EAAA,CAAA,CAAA,CAAyB5U,CAAAA,EAAAA,GAC3DF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAkC8U,GAAA,CAAA,CAAA,CAAwB5U,EAAA,EAAA,IAGlEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAsD,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,EAC0C8U,EAAA,CAAA,EAAA,EAAc5U,EAAA,EAAA,CAC1GF,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAA6CyC,GAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,EAAAq5B,SAAA,EAAW,CAAA,CAAA,CAAEsE,GAAA,EAAA,CAAA,CAAY5U,IAAS,EAAA,IANlD+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAA59B,CAAAs9B,CAAAA,mBAAA,EACAxR,EAAA,CAAA,CAAA,EAAA8R,EAAA59B,CAAAA,CAAAA,CAAAw9B,kBAAA,CAAA,CAIM1R,GAAA,CAAA,CAAA,CAAAC,GAAA,kBAAA,CAAA,UAAA,EAAgDD,EAAA,EAAA,CAAA8R,EAAA59B,CAAAA,CAAAA,CAAAo9B,QAAA,CACzBtR,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAA59B,CAAAq9B,CAAAA,MAAA,CDCjER,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,GAAAA,CAAkBC,IAAkBe,GAAc,CAAA,CAAAvR,cAAA,CAAA,CAAA,EAE1D,IAAO2Q,CAAAA,CAAPa,CAAOb,CAAAA,OAAAA,CAAmB,IET1B,CAAA,IAAOc,EAAP,CAAA,KAAyB,ECAzB,CAAA,IAAOC,EAAP,CAAA,cAAyBD,EAAkB,CAK7CE,gBAAAA,CAAiBC,EAA4B,CACzC,IAAA,CAAKC,cAAgBD,CACrB,CAAA,IAAA,CAAKE,eAAkBC,CAAAA,KAAAA,CAAM1yC,KAAKuyC,CAAIrmB,CAAAA,OAAAA,EAAS,EACnD,CAEAymB,sBAAuBJ,CAAAA,CAAAA,CAAwB,CAC3C,IAAA,CAAKK,oBAAsBL,CAC3B,CAAA,IAAA,CAAKM,uBAAyBH,KAAM1yC,CAAAA,IAAAA,CAAKuyC,EAAIrmB,OAAO,EAAE,EAC1D,CAEA4mB,kBAAkBP,CAAwB,CAAA,CACtC,KAAKQ,cAAiBR,CAAAA,CAAAA,CACtB,KAAKS,gBAAmBN,CAAAA,KAAAA,CAAM1yC,IAAKuyC,CAAAA,CAAAA,CAAIrmB,SAAS,EACpD,CAEA+mB,kBAAmBV,CAAAA,CAAAA,CAAiC,CAChD,IAAKW,CAAAA,eAAAA,CAAkBX,CACvB,CAAA,IAAA,CAAKY,kBAAoBT,KAAM1yC,CAAAA,IAAAA,CAAKuyC,CAAIrmB,CAAAA,OAAAA,EAAS,EACrD,CAEAknB,4BAA6BC,CAAAA,CAAAA,CAAyC,CAC9DA,CACIA,GAAAA,CAAAA,CAAsBZ,iBAAmBY,CAAsBZ,CAAAA,eAAAA,CAAgBx3B,OAAS,CACxF,GAAA,IAAA,CAAKu3B,aAAgB,CAAA,IAAIc,IAAID,CAAsBZ,CAAAA,eAAe,CAElEY,CAAAA,CAAAA,CAAAA,CAAsBR,wBAA0BQ,CAAsBR,CAAAA,sBAAAA,CAAuB53B,MAAS,CAAA,CAAA,GACtG,KAAK23B,mBAAsB,CAAA,IAAIU,IAAID,CAAsBR,CAAAA,sBAAsB,GAE/EQ,CAAsBL,CAAAA,gBAAAA,EAAoBK,CAAsBL,CAAAA,gBAAAA,CAAiB/3B,OAAS,CAC1F,GAAA,IAAA,CAAK83B,cAAiB,CAAA,IAAIO,IAAID,CAAsBL,CAAAA,gBAAgB,CAEpEK,CAAAA,CAAAA,CAAAA,CAAsBF,mBAAqBE,CAAsBF,CAAAA,iBAAAA,CAAkBl4B,OAAS,CAC5F,GAAA,IAAA,CAAKi4B,gBAAkB,IAAII,GAAAA,CAAID,CAAsBF,CAAAA,iBAAiB,GAEtEE,CAAsBE,CAAAA,WAAAA,GACtB,KAAKA,WAAcF,CAAAA,CAAAA,CAAsBE,aAEzCF,CAAsBG,CAAAA,aAAAA,GACtB,IAAKA,CAAAA,aAAAA,CAAgBH,EAAsBG,aAE3CH,CAAAA,CAAAA,CAAAA,CAAsBI,aACtB,IAAKA,CAAAA,UAAAA,CAAaJ,EAAsBI,UAExCJ,CAAAA,CAAAA,CAAAA,CAAsBK,sBACtB,GAAA,IAAA,CAAKC,qBAAuB,IAAIL,GAAAA,CAAID,CAAsBK,CAAAA,sBAAsB,GAGpF,IAAKE,CAAAA,wBAAAA,CAA2BP,CAAsBO,CAAAA,wBAAAA,EAE9D,GCsBE,SAAUC,EAAAA,CAASC,EAAiBC,CAAiB,CAAA,CACvD,OAAID,CAAGE,CAAAA,SAAAA,CAAkBF,CAAGE,CAAAA,SAAAA,CAAUC,SAASF,CAAS,CAAA,CACjD,CAAC,CAACD,EAAGC,SAAU14B,CAAAA,KAAAA,CAAM,IAAI64B,MAAAA,CAAO,UAAYH,CAAY,CAAA,SAAS,CAAC,CAC7E,CAEM,SAAUI,EAASJ,CAAAA,CAAAA,CAAmBD,CAAgB,CAAA,CACxD,IAAMM,CAAMN,CAAM1E,QAASiF,CAAAA,eAAAA,CACvBD,EAAIJ,SAAWI,CAAAA,CAAAA,CAAIJ,SAAUv/B,CAAAA,GAAAA,CAAIs/B,CAAS,CACpCF,CAAAA,EAAAA,CAASO,EAAKL,CAAS,CAAA,GAAGK,EAAIL,SAAa,EAAA,GAAA,CAAMA,CAC/D,EAAA,CAgIM,SAAUO,EACZC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EAAyB,CACzB12B,CAAAA,CAAAA,CAAa,CAEbA,CAAAA,EAASA,EAAMC,cAAc,EAAA,CAC7BD,GAASA,CAAM22B,CAAAA,wBAAAA,GAEf,IAAI1iC,CAAAA,CAASsiC,CAAQK,CAAAA,UAAAA,CACrB3iC,EAASwiC,CAASxiC,CAAAA,CAAAA,CAASuiC,CAAcviC,CAAAA,CAAAA,CAASuiC,EAClDviC,CAASA,CAAAA,CAAAA,CAAS,CAAI,CAAA,CAAA,CAAIA,EAEtB,CAACwiC,CAAAA,EAAUF,EAAQM,WAAc5iC,CAAAA,CAAAA,CAASuiC,EAAcA,CAAaviC,GAAAA,CAAAA,CAASsiC,CAAQM,CAAAA,WAAAA,CAAAA,CAEtFJ,GAAUxiC,CAASuiC,CAAAA,CAAAA,GAAaviC,CAAS,CAAA,CAAA,CAAA,CAE7C,IAAM6iC,CAAW7iC,CAAAA,CAAAA,CAASyiC,CACpBK,CAAAA,CAAAA,CAAYR,EAAQM,WAAcH,CAAAA,CAAAA,CAAiB,EAAIH,CAAQS,CAAAA,WAAAA,CAAc/iC,EAGnF,OADiB4hC,EAAAA,CAASzE,QAASiF,CAAAA,eAAAA,CAAiB,WAAW,CAE3DE,EAAAA,CAAAA,CAAQU,KAAMC,CAAAA,QAAAA,CAAW,OACzBC,qBAAsB,CAAA,IAAOZ,CAAQK,CAAAA,UAAAA,CAAa3iC,CAAO,CACzDmjC,CAAAA,UAAAA,CAAW,IAAOb,CAAQU,CAAAA,KAAAA,CAAMC,SAAW,QAAW,CAAA,GAAG,CACtDX,EAAAA,CAAAA,CAAQK,WAAa3iC,CAErB,CAAA,CAAE6iC,SAAAA,CAAUC,CAAAA,SAAAA,CAAAA,CAAS,CAChC,CAqBM,SAAUM,EAAAA,CAAYC,EAA4B,CACpD,IAAMC,EAAgB,IAAIC,IAAAA,CAAKF,CAAI,CACnC,CAAA,OAAO,CAACG,KAAAA,CAAMF,EAAcG,OAAO,EAAE,CACzC,KCrQaC,EAAmB,CAAA,CAAA,IAAA,CAA1B,IAAOA,EAAP,MAAOA,CAAAA,SAA2BC,IAAO,EAAlCD,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,CAAAA,OAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAkB,IAAA3U,CAAlB2U,EAAAA,CAAkB,CAAA,CAAA,IAAlBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAkBz2C,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAHf6U,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAiB1U,IACtB2U,IAAiB,CAAA,CAAA3U,IAAE4U,IAAc,CAAA,CAF5B,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIhB,CAAA,IAAOJ,CAAPK,CAAAA,CAAAA,CAAAA,OAAOL,CAAmB,CAAA,IAE1B,SAAUE,EAAAA,CAAkBA,EAAsCI,CAA8B,CAAA,CAClG,OAAOJ,CAAkBK,CAAAA,gBAAAA,CAAiBP,GAAoB,CAC1DpU,OAAAA,CAASC,CAAwBC,CAAAA,MAAAA,CACjC0U,KAAM,OACNC,CAAAA,8BAAAA,CAAgCH,EAAeI,WAAY7U,CAAAA,CAAAA,CAAwBC,MAAM,CAAE6U,CAAAA,mBAAAA,CAC9F,CACL,KCLYC,EAAZ,CAAA,SAAYA,EAAoB,CAC5BA,OAAAA,EAAA,OAAA,CAAA,SAAA,CACAA,CAAA,CAAA,UAAA,CAAA,cACAA,CAAA,CAAA,OAAA,CAAA,SACAA,CAAAA,CAAAA,CAAA,QAAA,UACAA,CAAAA,CAAAA,CAAA,QAAA,CAAA,WAAA,CACAA,EAAA,OAAA,CAAA,SAAA,CACAA,EAAA,UAAA,CAAA,aAAA,CACAA,EAAA,WAAA,CAAA,cAAA,CACAA,CAAA,CAAA,UAAA,CAAA,cACAA,CAAA,CAAA,eAAA,CAAA,kBACAA,CAAAA,CAAAA,CAAA,aAAA,eACAA,CAAAA,CAAAA,CAAA,KAAA,CAAA,OAAA,CACAA,EAAA,OAAA,CAAA,SAAA,CACAA,EAAA,KAAA,CAAA,OAAA,CAdQA,CAeZ,CAfYA,CAAAA,EAAAA,EAAoB,EAAA,ECFnBC,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAH/BrkC,aAAA,CAII,IAAA,CAAA+gC,gBAAgD,IAAII,GAAAA,CACpD,KAAAmD,8BAAiC,CAAA,IAAIC,IAAqD,CAAA,IAAI,EAC9F,IAAAC,CAAAA,iCAAAA,CAAwD,KAAKF,8BAA+BG,CAAAA,YAAAA,GAAeC,IACvGtE,CAAAA,EAAAA,CAAKuE,CAASA,EAAAA,CAAAA,CAAMA,EAAIxZ,IAAO,CAAA,CAAE,EACjCyZ,EAAoB,EAAE,GAG1BC,WAAYC,CAAAA,CAAAA,CAAc,CACtB,OAAK,KAAK/D,eAGH,CAAA,IAAA,CAAKA,eAAgBvR,CAAAA,GAAAA,CAAIsV,CAAM,CAAK,EAAA,IAAA,CAFhC,IAGf,CAEAC,mBAAmBD,CAAc,CAAA,CAC7B,OAAK,IAAK/D,CAAAA,eAAAA,CAGH,KAAKA,eAAgBvR,CAAAA,GAAAA,CAAIsV,CAAM,CAAA,EAAGxxC,MAAQ,EAFtC,CAAA,EAGf,CAEA0xC,mBAAAA,CAAoBF,EAAgBG,CAAmB,CAAA,CAAA,CAAC,CACpD,IAAMC,EAAmC,IAAKnE,CAAAA,eAAAA,EAAiBvR,IAAIsV,CAAM,CAAA,EAAK,KAC1EI,CAAY,EAAA,CAACA,CAASC,CAAAA,eAAAA,GACtBD,EAASC,eAAkB,CAAA,IAAIhE,GAC/B+D,CAAAA,CAAAA,CAASC,gBAAgBr/B,GAAIm/B,CAAAA,CAAAA,CAAS1yC,QAAQ,EAAA,CAAI,EAAI,CAE9D,EAAA,CAEA6yC,uBAAuBN,CAAgBG,CAAAA,CAAAA,CAAmB,EAAC,CACvD,GAAI,CAAC,IAAA,CAAKlE,gBACN,OAAO,CAAA,CAAA,CAEX,IAAMmE,CAAmC,CAAA,IAAA,CAAKnE,gBAAgBvR,GAAIsV,CAAAA,CAAM,CAAK,EAAA,IAAA,CAC7E,OAAII,CAAUC,EAAAA,eAAAA,EAAmBD,GAAUC,eAAiBha,EAAAA,IAAAA,CAAO,GACxD+Z,CAASC,CAAAA,eAAAA,CAAgB3V,GAAIyV,CAAAA,CAAAA,CAAS1yC,UAAU,CAAA,EAAK,CAGpE,CAAA,CAEA8yC,eAAetE,CAA6C,CAAA,CACpDA,CACA,GAAA,IAAA,CAAKA,gBAAkBA,CACvB,CAAA,IAAA,CAAKuD,+BAA+BzoB,IAAKklB,CAAAA,CAAe,GAEhE,CA9CSsD,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAkB,CAAlBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAkBt3C,QAAlBs3C,CAAkBiB,CAAAA,SAAAA,CAAAC,UAFf,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOlB,CAAPmB,CAAAA,CAAAA,CAAAA,OAAOnB,CAAkB,CAAA,QCQlBoB,EAAoB,CAAA,CAAA,IAAA,CAA3B,IAAOA,CAAAA,CAAP,MAAOA,CAAoB,CANjCzlC,WAAA,EAAA,CAOI,IAAA0lC,CAAAA,IAAAA,CAAOta,GAAMua,QAAQ,EAAA,CACrB,IAAAb,CAAAA,MAAAA,CAAS1Z,GAAMua,QAAQ,EAAA,CACvB,KAAAV,QAAW7Z,CAAAA,EAAAA,CAAMua,UACjB,CAAA,IAAA,CAAAC,GAAMxa,CAAAA,EAAAA,CAAc,EAAE,CACtB,CAAA,IAAA,CAAAya,SAAWza,EAAe,CAAA,CAAA,CAAK,EAC/B,IAAA0a,CAAAA,YAAAA,CAAe1a,EAAe,CAAA,CAAA,CAAK,EAEnC,IAAAyS,CAAAA,GAAAA,CAAMjZ,GAAe,EAAE,CAAA,CACvB,KAAAmhB,UAAanhB,CAAAA,EAAAA,CAAe,EAAE,CAAA,CAC9B,KAAAohB,IAAOphB,CAAAA,EAAAA,CAAe,EAAE,CAAA,CACxB,KAAAqhB,aAAgBrhB,CAAAA,EAAAA,CAAgB,CAAK,CAAA,CAAA,CAErC,KAAAshB,gBAAmBthB,CAAAA,EAAAA,CAAgB,EAAK,CAExC,CAAA,IAAA,CAAAuhB,aAAepa,EAAiB,CAAA,IACrB,IAAK8R,CAAAA,GAAAA,EACf,CAED,CAAA,IAAA,CAAAuI,aAAgBra,CAAAA,EAAAA,CAAiB,IAAM,IAAKsa,CAAAA,gBAAAA,CAAiB,IAAKX,CAAAA,IAAAA,EAAM,CAAC,CAAA,CAEjE,KAAAY,oBAAuBvc,CAAAA,GAAAA,CAAOwc,EAAa,CAC3C,CAAA,IAAA,CAAAlL,qBAAwBtR,CAAAA,GAAAA,CAAOuU,GAAqB,CACpD,CAAA,IAAA,CAAAkI,kBAAqBzc,CAAAA,GAAAA,CAAOsa,EAAkB,CAC9C,CAAA,IAAA,CAAAoC,mBAAsB1c,CAAAA,GAAAA,CAAO2c,EAAmB,EAExDjL,CAAAA,QAAAA,EAAQ,CACJ,IAAKkL,CAAAA,qBAAAA,GACT,CAEQA,qBAAAA,EAAqB,CACzB,IAAIC,EAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,mBACxCC,CAAAA,CAAAA,CAAa,KAAKR,oBAAqBS,CAAAA,eAAAA,EACvClJ,CAAAA,CAAAA,CAAM,KAAK6H,IAAI,EAAA,CAAG7H,IAUtB,GARA,IAAA,CAAKmI,KAAKlgC,GAAI8gC,CAAAA,CAAAA,CAAWZ,IAAI,CAAA,CAC7B,KAAKD,UAAWjgC,CAAAA,GAAAA,CAAIghC,CAAU,CAAA,CAEd,KAAKzL,qBAAsBU,CAAAA,qBAAAA,EAC/BiL,CAAAA,qBAAAA,GACRnJ,EAAM,IAAK4I,CAAAA,mBAAAA,CAAoBQ,YAAYpJ,CAAK,CAAA,IAAA,CAAKiH,QAAQ,CAAA,CAAA,CAG7D,IAAKgB,CAAAA,YAAAA,GAAgB,CACrB,IAAMX,CAAkB,CAAA,IAAA,CAAKqB,mBAAmBpB,sBAAuB,CAAA,IAAA,CAAKN,MAAM,EAAA,CAAI,KAAKG,QAAQ,EAAE,EACrGpH,CAAMsH,CAAAA,CAAAA,CAAkB,KAAKY,UAAU,EAAA,CAAK,IAAKL,CAAAA,IAAAA,GAAO7H,GACxDsH,CAAAA,CAAAA,EAAmB,IAAKe,CAAAA,gBAAAA,CAAiBpgC,IAAI,CAAI,CAAA,EACrD,CAEA,IAAA,CAAK+3B,IAAI/3B,GAAI+3B,CAAAA,CAAAA,EAAO,EAAE,EAC1B,CAEAwI,iBAAiBX,CAAiB,CAAA,CAC9B,OAAO,CAAA,eAAA,EAAkBA,EAAKwB,oBAAoB,CAAA,0BAAA,CACtD,CAEAC,MAAM,EAAA,CACF,KAAKlB,aAAcngC,CAAAA,GAAAA,CAAI,CAAI,CAAA,EAC/B,CAEAshC,WAAW,EAAA,CACP,KAAKZ,kBAAmBxB,CAAAA,mBAAAA,CAAoB,KAAKF,MAAM,EAAA,CAAI,IAAKG,CAAAA,QAAAA,EAAU,CAC1E,CAAA,IAAA,CAAKpH,GAAI/3B,CAAAA,GAAAA,CAAI,KAAKigC,UAAU,EAAE,CAC9B,CAAA,IAAA,CAAKG,iBAAiBpgC,GAAI,CAAA,CAAA,CAAI,EAClC,CAhES2/B,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAoB,uBAApBA,CAAoBhb,CAAAA,SAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA8T,MAAA,CAAA,CAAAmH,KAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAAZ,OAAA,CAAA,CAAA,CAAA,QAAA,CAAAG,CAAAA,QAAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAW,CAAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAAC,CAAAA,QAAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAC,CAAAA,YAAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAAnb,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,MAAA,CAAAC,CAAAA,IAAAA,CAAA,EAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,cAAA,CAAA,KAAA,CAAA,aAAA,KAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CClBjC7B,GAAAA,EAAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAIIyC,CAAAA,EAAAA,CAAA,QAAA,CAAA,UAAA,CAAA,OAAUtrB,CAAAA,CAAAilC,QAAQ,CAAA,EAAC,cAAA,CAAA,UAAA,CAAA,OACHjlC,EAAAklC,WAAA,EAAa,CAAA,CAAA,CALjCnc,IACIgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,KAAA/rB,CAAAA,CAAAA,CAAAikC,cAAA,CAAA,CAAsB,aAAAjkC,CAAAkkC,CAAAA,aAAAA,EAAA,CACQ,CAAA,KAAA,CAAAlkC,CAAA0jC,CAAAA,GAAAA,EAAA,CACjB,CAAA,UAAA,CAAA1jC,CAAA2jC,CAAAA,QAAAA,EAAA,CAGU,CAAA,SAAA,CAAA3jC,CAAAgkC,CAAAA,gBAAAA,EAAA,EDUbmB,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,IAAK,EAAA7Y,aAAA,CAAA,CAAA,CAAA,CAEb,CAAA,IAAOiX,CAAP6B,CAAAA,CAAAA,CAAAA,OAAO7B,CAAoB,CAAA,QEXpB8B,IAAqB,CAAA,CAAA,IAAA,CAA5B,IAAOA,CAAAA,CAAP,MAAOA,CAAqB,CAE9BvnC,WACYo7B,CAAAA,CAAAA,CACAoM,EACA1D,CAA8B,CAAA,CAF9B,KAAA1I,aAAAA,CAAAA,CAAAA,CACA,IAAAoM,CAAAA,gBAAAA,CAAAA,EACA,IAAA1D,CAAAA,cAAAA,CAAAA,EACT,CAEH2D,mBAAiB,CAET,IAAA,CAAK3D,cAAe4D,CAAAA,iBAAAA,EAAqB,KAAK5D,cAAe6D,CAAAA,OAAAA,CAAQr0C,OAAS+7B,CAAwBuY,CAAAA,IAAAA,EACtG,KAAK9D,cAAe+D,CAAAA,SAAAA,CAAUxY,CAAwBC,CAAAA,MAAM,EAGhE,IAAIwY,CAAAA,CAAqB,IAAKhE,CAAAA,cAAAA,CAAe4D,kBACvC,IAAK5D,CAAAA,cAAAA,CAAe6D,OAAQr0C,CAAAA,IAAAA,CAC5B,KAAK8nC,aAAehM,EAAAA,OAAAA,EAAS2Y,aACnC,CAAA,OAAI,KAAKP,gBAAiBQ,CAAAA,QAAAA,GACtBF,CAAa,CAAA,IAAA,CAAKN,kBAAkBpY,OAAS2Y,EAAAA,WAAAA,EAE1CD,CAAAA,CAAAA,CACX,yCArBSP,CAAqBvY,EAAAA,GAAAA,CAAAqP,IAAA,CAAA,CAAArP,IAAAiZ,IAAA,CAAA,CAAAjZ,IAAA4U,IAAA,CAAA,CAAA,CAArB2D,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAqBx6C,OAArBw6C,CAAAA,CAAAA,CAAqBjC,UAAAC,UAFlB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOgC,EAAPW,CAAOX,CAAAA,OAAAA,CAAqB,CAAA,QCErBY,EAAmB,CAAA,CAAA,IAAA,CAA1B,IAAOA,CAAAA,CAAP,MAAOA,CAAmB,CAM5BnoC,WACYwnC,CAAAA,CAAAA,CACAY,EACAC,CAA4C,CAAA,CAF5C,IAAAb,CAAAA,gBAAAA,CAAAA,EACA,IAAAY,CAAAA,iBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,sBAAAA,EACT,CAEHC,gBAAc,CACV,OAAIC,OAAOC,QAASC,CAAAA,IAAAA,CAAKC,OAAQ,CAAA,cAAc,EAAI,CAIvD,CAAA,CAEAC,YAAY,EAAA,CACR,OAAIJ,MAAOC,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CAAQ,gBAAgB,CAAK,EAAA,CAAA,CAI1D,CAEAE,gBAAgB,EAAA,CACZ,IAAMC,CAAyB,CAAA,IAAA,CAAKR,qBAAsBZ,CAAAA,iBAAAA,GACpDqB,CAAsC,CAAA,IAAA,CAAKV,iBAAkBI,CAAAA,QAAAA,CAASO,OAAOvZ,GAAI,CAAA,gBAAgB,CACnGsZ,CAAAA,CAAAA,EAAwBA,GAAwB,EAChD,CAAA,IAAA,CAAK1Z,QAAU0Z,CAAqBnL,CAAAA,WAAAA,GAC7BkL,CACP,CAAA,IAAA,CAAKzZ,OAAUyZ,CAAAA,CAAAA,CAEf,KAAKzZ,OAAU,CAAA,KAEvB,CAEA4Z,YAAaC,CAAAA,CAAAA,CAAY,CACrB,GAAI,IAAA,CAAK7Z,OAAS,CAAA,CACd,IAAMyZ,CAAyBI,CAAAA,CAAAA,EAAUA,EAAOJ,cAAkBI,EAAAA,CAAAA,CAAOJ,eAAe//B,MAAS,CAAA,CAAA,CAAImgC,CAAOJ,CAAAA,cAAAA,CAAiB,KAAKzZ,OAC9H6Z,CAAAA,CAAAA,CACAA,CAAOJ,CAAAA,cAAAA,CAAiBA,EAExBI,CAAS,CAAA,CACLJ,cAAgBA,CAAAA,CAAAA,EAG5B,CACA,OAAOI,CACX,CAEAC,mBAAoB9mC,CAAAA,CAAAA,CAAmB6mC,EAAW,CAC9CV,MAAAA,CAAOvsC,MAAOmtC,CAAAA,WAAAA,CAAY,CAAE/mC,SAAWA,CAAAA,CAAAA,CAAW6mC,MAAQA,CAAAA,CAAM,EAAI,GAAG,EAC3E,CAEAG,iBAAAA,EAAiB,CACb,IAAMC,CAAAA,CAAiB,KAAKjB,iBAAkBI,CAAAA,QAAAA,CAASO,OAAOvZ,GAAI,CAAA,gBAAgB,CAClF,CAAA,OAAI6Z,EACOA,CAAgBtB,EAAAA,WAAAA,EAEhB,CAAA,EAEf,CAEAuB,eAAgBC,CAAAA,CAAAA,CAAoBC,CAAiB,CAAA,CACjD,GAAI,IAAKlB,CAAAA,cAAAA,GAAkB,CACvB,IAAMmB,EAASxM,QAASC,CAAAA,cAAAA,CAAesM,CAAS,CAAA,CAC5CC,IACA,IAAKC,CAAAA,mBAAAA,CAAsBD,EAAOE,YAClC,CAAA,IAAA,CAAKC,sBAAsBL,CAAY,CAAA,IAAA,CAAKG,mBAAmB,CAAA,CAAA,CAE9D,KAAKG,QACN,GAAA,IAAA,CAAKA,SAAWC,WAAY,CAAA,IAAK,CAC7B,IAAKC,CAAAA,0BAAAA,CAA2BR,CAAYC,CAAAA,CAAS,EACzD,CAAG,CAAA,GAAG,CAEd,EAAA,CACJ,CAEAO,0BAA2BR,CAAAA,CAAAA,CAAoBC,CAAiB,CAAA,CAC5D,KAAKQ,eAAkB/M,CAAAA,QAAAA,CAASC,eAAesM,CAAS,CAAA,EAAGG,cAAgB,CACvE,CAAA,IAAA,CAAKD,mBAAwB,GAAA,IAAA,CAAKM,iBAClC,IAAKC,CAAAA,cAAAA,EAAAA,CAEJ,IAAKA,CAAAA,cAAAA,EACNC,cAAc,IAAKL,CAAAA,QAAQ,CAE3B,CAAA,IAAA,CAAKG,kBAAoB,IAAKN,CAAAA,mBAAAA,GAC9B,KAAKA,mBAAsB,CAAA,IAAA,CAAKM,gBAChC,IAAKJ,CAAAA,qBAAAA,CAAsBL,CAAY,CAAA,IAAA,CAAKG,mBAAmB,CAEvE,EAAA,CAEAE,qBAAsBL,CAAAA,CAAAA,CAAoBG,EAA2B,CAEjE,GADgC,IAAKN,CAAAA,iBAAAA,KAAwB,QACzC,CAAA,CAChB,IAAMH,CAAS,CAAA,CACXkB,eAAgB,CAAKf,CAAAA,IAAAA,CAAAA,iBAAAA,EACrBgB,CAAAA,UAAAA,CAAYb,EACZc,MAAQX,CAAAA,CAAAA,CAAsB,IAElC,IAAKR,CAAAA,mBAAAA,CAAoB,oBAAqBD,CAAM,EACxD,CAAO,KAAA,CACH,IAAMA,CAAS,CAAA,CACXkB,eAAgB,CAAKf,CAAAA,IAAAA,CAAAA,iBAAAA,GACrBgB,UAAYb,CAAAA,CAAAA,CACZc,MAAQX,CAAAA,CAAAA,CAAsB,IAElC,IAAKR,CAAAA,mBAAAA,CAAoB,aAAeD,CAAAA,CAAM,EAClD,CACJ,CAEAqB,gBAAgB,EAAA,CACZ,IAAIxB,CAA+B,CAAA,IAAA,CAAKT,sBAAsBZ,iBAAiB,EAAA,CAC/E,QAAI,CAACqB,CAAAA,EAAwBA,CAAyB,GAAA,EAAA,IAClDA,EAAuB,IAAKV,CAAAA,iBAAAA,CAAkBI,QAASO,CAAAA,MAAAA,CAAOvZ,IAAI,gBAAgB,CAAA,EAAK,EAEvF,CAAA,CAAA,IAAA,CAAKgY,iBAAiBQ,QACtBc,GAAAA,CAAAA,CAAuB,KAAKtB,gBAAiBpY,CAAAA,OAAAA,CAAAA,CAE1C0Z,CACX,CAEAyB,iBAAAA,CAAkB1B,CAAsB,CAAA,CACpC,KAAKzZ,OAAUyZ,CAAAA,CAAAA,CAAelL,WAAW,GAC7C,yCA9HSwK,CAAmBnZ,EAAAA,GAAAA,CAAAiZ,IAAA,CAAA,CAAAjZ,IAAAwb,EAAA,CAAA,CAAAxb,IAAAuY,IAAA,CAAA,CAAA,CAAnBY,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAmBp7C,OAAnBo7C,CAAAA,CAAAA,CAAmB7C,UAAAC,UAFhB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAO4C,EAAPsC,CAAOtC,CAAAA,OAAAA,CAAmB,CAAA,ICT1B,IAAOuC,EAAP,CAAA,KAAqB,CAMvB1qC,WAAA,EAAA,ICGS2qC,IAAAA,EAAAA,CAAAA,CAAgB,IAAA,CAAvB,IAAOA,CAAP,CAAA,MAAOA,CAAgB,CAEzB3qC,YACY4qC,CACA1P,CAAAA,CAAAA,CACAG,CAA4C,CAAA,CAF5C,KAAAuP,iBAAAA,CAAAA,CAAAA,CACA,KAAA1P,SAAAA,CAAAA,CAAAA,CACA,KAAAG,qBAAAA,CAAAA,CAAAA,CAIZ,IAAAt2B,CAAAA,KAAAA,CAAgB,EAFZ,IAAK62B,CAAAA,MAAAA,CAAS,IAAKP,CAAAA,qBAAAA,CAAsBQ,sBAC7C,CAEAgP,UAAWh/B,CAAAA,CAAAA,CAAe6xB,EAAiBoN,CAAmB,CAAA,CAC1D,IAAMC,CAAcrN,CAAAA,CAAAA,EAAkB,SACtC,GAAI,IAAA,CAAKkN,iBAAkB5C,CAAAA,QAAAA,CAAU,CACjC,IAAKjjC,CAAAA,KAAAA,EAAAA,CACL,IAAMob,CAAAA,CAAK,oBAAsB,IAAKpb,CAAAA,KAAAA,CAChCimC,CAAQ/N,CAAAA,QAAAA,CAASgO,cAAc,QAAQ,CAAA,CAC7CD,OAAAA,CAAM7qB,CAAAA,EAAAA,CAAKA,EACX6qB,CAAMnN,CAAAA,GAAAA,CAAM,CAAmBhyB,gBAAAA,EAAAA,CAAK,IAAIk/B,CAAW,CAAA,CAAA,EAAID,CAAU,CACjEE,CAAAA,CAAAA,CAAAA,CAAMlI,MAAMoI,OAAU,CAAA,MAAA,CACtB,IAAKhQ,CAAAA,SAAAA,CAAU6B,aAAaE,QAASkO,CAAAA,IAAAA,CAAKC,YAAYJ,CAAK,CAAA,CACpD7qB,CACX,CACA,OAAO,IACX,CAEAkrB,iBAAiBC,CAAiB,CAAA,CAC9B,GAAI,IAAA,CAAKV,kBAAkB5C,QAAY,EAAA,IAAA,CAAK4C,iBAAkBW,CAAAA,eAAAA,CAAiB,CAC3E,IAAKxmC,CAAAA,KAAAA,EAAAA,CACL,IAAMob,CAAK,CAAA,mBAAA,CAAsB,KAAKpb,KAChCimC,CAAAA,CAAAA,CAAQ/N,QAASgO,CAAAA,aAAAA,CAAc,QAAQ,CAC7CD,CAAAA,OAAAA,CAAM7qB,CAAAA,EAAAA,CAAKA,EACX6qB,CAAMnN,CAAAA,GAAAA,CAAM,CAAYyN,SAAAA,EAAAA,CAAS,GACjCN,CAAMlI,CAAAA,KAAAA,CAAMoI,QAAU,MACtB,CAAA,IAAA,CAAKhQ,UAAU6B,YAAaE,CAAAA,QAAAA,CAASkO,IAAKC,CAAAA,WAAAA,CAAYJ,CAAK,CACpD7qB,CAAAA,CACX,CACA,OAAO,IACX,CAEAqrB,gBAAAA,CAAiBC,CAAqBH,CAAAA,CAAAA,CAAiB,CACnD,OAAIG,CAAAA,EACA,KAAKC,UAAWD,CAAAA,CAAW,EAGxB,IAAKJ,CAAAA,gBAAAA,CAAiBC,CAAS,CAC1C,CAEAK,iBAAkBC,CAAAA,CAAAA,CAAcC,CAAe,CAAA,CAC3C,IAAMnsC,CAAQksC,CAAAA,CAAAA,CAAKlD,OAAQ,CAAA,cAAc,EACzC,OAAIhpC,CAAAA,GAAU,GACH,IAEPmsC,EAAAA,CAAAA,GAAY,MACZ,IAAKH,CAAAA,UAAAA,CAAWG,CAAO,CAAA,CAEpB,KAAKR,gBAAiBO,CAAAA,CAAAA,CAAKE,MAAOpsC,CAAAA,CAAK,CAAC,CACnD,CAAA,CAEAqsC,iBAAkBH,CAAAA,CAAAA,CAAcC,EAAe,CAC3C,IAAMnsC,EAAQksC,CAAKlD,CAAAA,OAAAA,CAAQ,cAAc,CACzC,CAAA,OAAIhpC,CAAU,GAAA,CAAA,CAAA,CACH,MAEPmsC,CAAY,GAAA,IAAA,EACZ,IAAKH,CAAAA,UAAAA,CAAWG,CAAO,CAEpB,CAAA,IAAA,CAAKR,gBAAiBO,CAAAA,CAAAA,CAAKE,OAAOpsC,CAAK,CAAC,EACnD,CAEAssC,kBAAAA,CAAmBP,EAAqBQ,CAAiBnH,CAAAA,CAAAA,CAAgBoH,CAAwB,CAAA,CAK7F,OAJIT,CACA,EAAA,IAAA,CAAKC,UAAWD,CAAAA,CAAW,EAG1BS,CAIE,CAAA,IAAA,CAAKrB,UAAW,CAAA,OAAA,CAAS,WAAY,MAASoB,CAAAA,CAAO,EAHjD,IAAKpB,CAAAA,UAAAA,CAAW,QAAS,UAAY,CAAA,SAAA,CAAY/F,CAAM,CAItE,CAEAqH,mBAAoBb,CAAAA,CAAAA,CAAiB,CACjC,GAAI,IAAA,CAAKV,kBAAkB5C,QAAU,CAAA,CACjC,IAAKjjC,CAAAA,KAAAA,EAAAA,CACL,IAAMqnC,CAAe,CAAA,IAAA,CAAKxQ,OAAOyQ,eAC3BlsB,CAAAA,CAAAA,CAAK,oBAAsB,IAAKpb,CAAAA,KAAAA,CAChCimC,CAAQ/N,CAAAA,QAAAA,CAASgO,cAAc,QAAQ,CAAA,CAC7CD,OAAAA,CAAAA,CAAM7qB,GAAKA,CACX6qB,CAAAA,CAAAA,CAAMnN,GAAM,CAAA,CAAA,EAAGuO,CAAY,CAAMd,GAAAA,EAAAA,CAAS,GAC1CN,CAAMlI,CAAAA,KAAAA,CAAMoI,QAAU,MACtB,CAAA,IAAA,CAAKhQ,SAAU6B,CAAAA,YAAAA,CAAaE,SAASkO,IAAKC,CAAAA,WAAAA,CAAYJ,CAAK,CAAA,CACpD7qB,CACX,CACA,OAAO,IACX,CAGAmsB,YAAYzgC,CAAe0gC,CAAAA,CAAAA,CAAiB,YAAW,CACnD,GAAI,KAAK3B,iBAAkB5C,CAAAA,QAAAA,CAAU,CACjC,IAAMwE,EAAcvP,QAASgO,CAAAA,aAAAA,CAAc,QAAQ,CAAA,CACnDuB,EAAO3O,GAAM0O,CAAAA,CAAAA,CAAS1gC,CAEtBoxB,CAAAA,QAAAA,CAASiF,gBAAgBkJ,WAAYoB,CAAAA,CAAM,EAC3CA,CAAOC,CAAAA,UAAAA,CAAWC,YAAYF,CAAM,EACxC,CACJ,CAEAd,WAAWvrB,CAAU,CAAA,CACb,KAAKyqB,iBAAkB5C,CAAAA,QAAAA,EAAY7nB,IAAO,IAC1C,EAAA,IAAA,CAAK+a,SAAW6B,EAAAA,YAAAA,EAAcE,UAAUC,cAAe/c,CAAAA,CAAE,GAAGuJ,MAAM,GAE1E,yCA/GSihB,CAAgB3b,EAAAA,GAAAA,CAAAiZ,IAAA,CAAA,CAAAjZ,IAAAmP,GAAA,CAAA,CAAAnP,GAAAsP,CAAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAApxC,GAAA,CAAA,CAAA,KAAA,CAAhBy9C,CAAgB59C,CAAAA,OAAAA,CAAhB49C,EAAgBrF,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAAA,CAEhB,IAAOoF,CAAPgC,CAAAA,CAAAA,CAAAA,OAAOhC,CAAgB,CAAA,ICMhBpE,IAAAA,EAAAA,CAAAA,CAAa,IAAA,CAApB,IAAOA,CAAP,CAAA,MAAOA,CAAa,CAMtB,IAAIqG,YAAY,EAAA,CACZ,OAAO,IAAKC,CAAAA,aAAAA,CAAcC,YAAaC,CAAAA,KAC3C,CAsBA/sC,WAAAA,CACY6sC,EACAG,CACAC,CAAAA,CAAAA,CACAzF,CACA0F,CAAAA,CAAAA,CACAC,EACA9R,CACAgN,CAAAA,CAAAA,CACA+E,CAAc,CAAA,CARd,KAAAP,aAAAA,CAAAA,CAAAA,CACA,KAAAG,mBAAAA,CAAAA,CAAAA,CACA,KAAAC,aAAAA,CAAAA,CAAAA,CACA,IAAAzF,CAAAA,gBAAAA,CAAAA,EACA,IAAA0F,CAAAA,gBAAAA,CAAAA,EACA,IAAAC,CAAAA,UAAAA,CAAAA,EACA,IAAA9R,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAgN,sBAAAA,CACA,CAAA,IAAA,CAAA+E,OAAAA,CApCJ,CAAA,IAAA,CAAAC,cAAgB,IAAKC,CAAAA,gBAAAA,EAUrB,CAAA,IAAA,CAAAC,0BAA4B,IAAIhJ,IAAAA,CAAqB,IAAI,CAAA,CACjE,KAAAiJ,0BAA8C,CAAA,IAAA,CAAKD,yBAA0B9I,CAAAA,YAAAA,GAErE,IAAAgJ,CAAAA,mBAAAA,CAAsB,IAAIlJ,IAAgC,CAAA,IAAImG,EAAgB,CACtF,CAAA,IAAA,CAAAgD,eAA8C,CAAA,IAAA,CAAKD,oBAAoBhJ,YAAY,EAAA,CAE3E,IAAAkJ,CAAAA,eAAAA,CAAkB,IAAIpJ,IAAwB,CAAA,IAAA,CAAKsI,aAAcC,CAAAA,UAAAA,GAAaC,KAAK,CAAA,CAC3F,KAAAa,gBAAmB,CAAA,IAAA,CAAKD,gBAAgBjJ,IAAKE,CAAAA,EAAAA,EAAsB,CAAA,CAGnE,KAAAiJ,UAA6B,CAAA,IAAInD,EAEzB,CAAA,IAAA,CAAAoD,wBAA0B,IAAIvJ,IAAAA,CAAqB,IAAI,CAAA,CAC/D,KAAAwJ,2BAA+C,CAAA,IAAA,CAAKD,wBAAwBrJ,YAAY,EAAA,CAepFuJ,GAAO,IAAK,CACR,IAAKL,CAAAA,eAAAA,CAAgB9xB,KAAK,IAAKgxB,CAAAA,aAAAA,CAAcC,YAAaC,CAAAA,KAAK,EACnE,CAAC,EACL,CACAkB,gBAAAA,CAAiBC,EAAkC,CAC/C,IAAMC,EAAiB,IAAKhB,CAAAA,UAAAA,CAAW3E,SACjC4F,CAAeF,CAAAA,CAAAA,CAAgBG,QAAUtG,EAAAA,WAAAA,GAC3CuG,CACA,CAAA,IAAA,CAAKzB,aAAcC,CAAAA,UAAAA,GAAaC,KAAQ,CAAA,GAAA,EAEpCqB,CAAgBE,EAAAA,CAAAA,GACfH,EAAeI,QAAS7F,CAAAA,OAAAA,CAAQ4F,CAAW,CAAI,CAAA,CAAA,CAAA,EAAMH,EAAeI,QAAa,GAAA,GAAA,EAAOJ,CAAeI,CAAAA,QAAAA,EAAY,cAEpHtR,QAASiF,CAAAA,eAAAA,CAAgBY,KAAM0L,CAAAA,WAAAA,CAAY,wBAAyB,MAAM,CAAA,CAE1EJ,CAAgBE,EAAAA,CAAAA,EAAe,EAAEH,CAAeI,CAAAA,QAAAA,CAAS7F,QAAQ4F,CAAW,CAAA,CAAI,KAChFrR,QAASiF,CAAAA,eAAAA,CAAgBY,KAAM0L,CAAAA,WAAAA,CAAY,wBAAyB,MAAM,CAAA,EAG9EvR,QAASiF,CAAAA,eAAAA,CAAgBY,MAAM0L,WAAY,CAAA,uBAAA,CAAyB,MAAM,CAAA,CAE9E,KAAKX,UAAWY,CAAAA,cAAAA,CAAiBP,EAAgBG,QACjD,CAAA,IAAA,CAAKR,WAAWa,eAAkBR,CAAAA,CAAAA,CAAgBQ,eAC9C,CAAA,IAAA,CAAKC,kBAAoBT,CAAgB9e,CAAAA,OAAAA,GACzC,KAAKuf,eAAkBT,CAAAA,CAAAA,CAAgB9e,QACvC,IAAKye,CAAAA,UAAAA,CAAWe,eAAkB,CAAA,IAAA,CAAA,CAEtC,KAAKnB,mBAAoB5xB,CAAAA,IAAAA,CAAK,KAAKgyB,UAAU,EACjD,CAEAgB,mBAAoBC,CAAAA,CAAAA,CAAoB,CACpC,IAAA,CAAKC,cAAgBD,EACzB,CACAE,mBAAmB,EAAA,CACf,OAAO,IAAKD,CAAAA,aAChB,CAEAE,iBAAAA,EAAiB,CACb,OAAO,IAAA,CAAKpB,WAAWY,cAC3B,CAEAS,cAAY,CACR,IAAIC,CAAoB,CAAA,IAAA,CAAKlC,cAAczd,GAAI,CAAA,WAAW,CACpD4f,CAAAA,CAAAA,CAAiB,KAAK/T,qBAAsBgU,CAAAA,gBAAAA,EAClD,CAAA,OAAIF,IAEOC,CAAUE,CAAAA,YAAAA,EACjBH,EAAYC,CAAUE,CAAAA,YAAAA,CAAa,CAAC,CAAEH,CAAAA,SAAAA,CAC/BA,CAEA,EAAA,IAAA,CAEf,CAEAI,sBAAuBJ,CAAAA,CAAAA,CAAiB,CAEpC,IAAMG,EADiB,IAAKjU,CAAAA,qBAAAA,CAAsBgU,gBAAgB,EAAA,CAC9BC,aACpC,GAAIA,CAAAA,CAAAA,CACA,QAASE,CAAiBF,IAAAA,CAAAA,CACtB,GAAIE,CAAcL,CAAAA,SAAAA,EAAaA,CAC3B,CAAA,OAAOK,EAAcpgB,OAI7B,CAAA,KAAA,OAAO,GAEX,OAAO,EACX,CAEQke,gBAAgB,EAAA,CACpB,GAAI,CACA,OACI,CAAC,IAAA,CAAK9F,iBAAiBiI,gBACvB,EAAA,IAAA,CAAK5C,cAAc6C,OACnB,EAAA,CAACnH,MAAOoH,CAAAA,UAAAA,CAAW,iBAAiB,CAAEC,CAAAA,OAAAA,EACtC,CAACC,SAAAA,CAAUC,UAAU5mC,KAAM,CAAA,OAAkB,CAErD,CAAA,KAAgB,CACZ,OAAO,cAAA,GAAkBq/B,QAAUsH,SAAUE,CAAAA,cAAAA,CAAiB,CAClE,CACJ,CAEAL,OAAO,EAAA,CACH,OAAO,IAAKrC,CAAAA,aAChB,CAEA2C,cAAAA,CAAeC,EAAmB,CAC9B,IAAA,CAAKA,WAAcA,CAAAA,EACvB,CACAC,cAAc,EAAA,CACV,OAAO,IAAKD,CAAAA,WAChB,CAEAE,gBAAgB,EAAA,CACZ,IAAK5C,CAAAA,yBAAAA,CAA0B1xB,KAAK,CAAI,CAAA,EAC5C,CAEAu0B,eAAAA,EAAe,CACX,OAAO,IAAA,CAAKxD,YAChB,CAEAyD,yBAAuB,CAEnB,IAAMC,EADe,IAAKjV,CAAAA,qBAAAA,CAAsBM,qBACX2U,CAAAA,eAAAA,CAErC,OAAI,IAAA,CAAKC,gBAAgBx6C,MAAQsO,CAAAA,CAAAA,EAAWA,EAAEmsC,YAAcjH,EAAAA,UAAAA,GAAe+G,CAAe,CAAE,CAAA,CAAC,CAClFA,CAAAA,CAAAA,CAGJ,KAAKC,cAAe,CAAA,CAAC,EAAI,IAAKA,CAAAA,cAAAA,CAAe,CAAC,CAAEC,CAAAA,YAAAA,CAAajH,UAAakH,CAAAA,KAAAA,CACrF,CAEAC,sBAAsB,EAAA,CAElB,OADqB,IAAA,CAAKrV,sBAAsBM,mBAAmB,EAAA,CAC/C2U,eACxB,CAEAK,WAAS,CACL,IAAM/U,EAAS,IAAKP,CAAAA,qBAAAA,CAAsBQ,qBAC1C,CAAA,GAAI,IAAK2L,CAAAA,gBAAAA,CAAiBQ,UAAY,IAAKR,CAAAA,gBAAAA,CAAiBpY,OAAY,GAAA,QAAA,CAAU,CAC1E,IAAKwhB,CAAAA,WAAAA,EACL,IAAK1D,CAAAA,gBAAAA,CAAiBxB,WAAW,IAAKkF,CAAAA,WAAW,EAGrD,IAAKA,CAAAA,WAAAA,CAAc,KAAK1D,gBAAiB7B,CAAAA,gBAAAA,CAAiB,kCAAkC,CAAA,CAE5F,MACJ,CACA,IAAA,CAAK8B,UAAW0D,CAAAA,IAAAA,CAAKjV,GAAQkV,MAAM,EACvC,CAEAC,iBAAAA,CAAkB5B,EAAoB,EAAE,CAAA,CAC/B,KAAKA,SACN,GAAA,IAAA,CAAKA,UAAYA,CAErB,CAAA,CAAA,IAAM6B,CAAsB,CAAA,IAAA,CAAK3V,sBAAsBgU,gBAAgB,EAAA,CACvE,QAASC,CAAgB0B,IAAAA,CAAAA,CAAoB1B,aACzC,GAAIA,CAAAA,CAAaH,SAAUpH,CAAAA,WAAAA,KAAkBoH,CAAUpH,CAAAA,WAAAA,GACnD,OAAOuH,CAAAA,CAAalgB,SAAS2Y,WAAW,EAAA,CAGhD,OAAO,EACX,CACAkJ,UAAU,EAAA,CACN,IAAMD,CAAAA,CAAsB,KAAK3V,qBAAsBgU,CAAAA,gBAAAA,EACvD,CAAA,OAAI,CAAC,IAAKjgB,CAAAA,OAAAA,EAAW4hB,EAAoB1B,YACrC,GAAA,IAAA,CAAKlgB,QAAU4hB,CAAoB1B,CAAAA,YAAAA,CAAa,CAAC,CAAA,CAAElgB,SAEhD,IAAKA,CAAAA,OAChB,CAEA8hB,2BAAAA,CAA4B/B,EAAiB,CAEzC,IAAMG,CADsB,CAAA,IAAA,CAAKjU,sBAAsBgU,gBAAgB,EAAA,CACzBC,aAC9C,IAAS6B,IAAAA,CAAAA,IAAc7B,EACnB,GAAI6B,CAAAA,CAAWhC,SAAaA,EAAAA,CAAAA,EACpBgC,EAAW/hB,OAAS,CAAA,OAAO+hB,CAAY/hB,EAAAA,OAAAA,EAAS2Y,aAG5D,CAAA,OAAO,EACX,CAEAqJ,6BAA6BjC,CAAmBrT,CAAAA,CAAAA,CAAa,CACzD,GAAIA,CAAAA,EAAYqT,EAAW,CACvB,IAAMkC,CAAcvV,CAAAA,CAAAA,CAASwV,KAAMh/C,CAA8BA,EAAAA,CAAAA,EAAG68C,WAAWpH,WAAW,EAAA,EAAMoH,GAAWpH,WAAW,EAAE,CACxH,CAAA,OAAIsJ,GAAaE,UACNF,CAAAA,CAAAA,CAAYE,WAEnBF,CAAargD,EAAAA,KAAAA,CACN,GAEPqgD,CAAaG,EAAAA,WAAAA,CACNH,CAAYG,CAAAA,WAAAA,CAEnBH,GAAaI,WAAeJ,EAAAA,CAAAA,CAAYI,WAAY3oC,CAAAA,MAAAA,CAAS,EACtDuoC,CAAYI,CAAAA,WAAAA,CAEnBJ,CAAaK,EAAAA,SAAAA,CACNL,EAAYK,SAEnBL,CAAAA,CAAAA,EAAaf,gBACNe,CAAYf,CAAAA,eAAAA,CAEnBe,GAAaM,cACNN,CAAAA,CAAAA,CAAYM,cAEnBN,CAAAA,CAAAA,EAAaO,UACNP,CAAYO,CAAAA,SAAAA,CAEhB,CACX,CAAA,CACA,OAAO,CACX,CAAA,CAEAC,8CAA+C1C,CAAAA,CAAAA,CAAmB2C,EAAY,CAC1E,GAAIA,IAAU,CAAC,CAAA,CAAEjJ,eAAgB,CAC7B,IAAIkJ,CAAyB,CAAA,IAAA,CAAKtK,mBAC9B,CAAA,CAAA,CAACsK,CAAkBA,EAAAA,CAAAA,GAAmB,MACtCA,CAAiB,CAAA,QAAA,CAAA,CAErBD,CAAUA,CAAAA,CAAAA,CAAQ/7C,OAAQzD,CAAWA,EAAAA,CAAAA,EAAGu2C,gBAAgBd,WAAW,EAAA,EAAMgK,GAAgBhK,WAAW,EAAE,EAC1G,CAIA,IAHI,CAACoH,CAAAA,EAAaA,IAAc,EAC5BA,IAAAA,CAAAA,CAAY,KAAKlC,aAAczd,CAAAA,GAAAA,CAAI,WAAW,CAAA,CAAA,CAE9CsiB,GAAW3C,CAAW,CAAA,CACtB,IAAMkC,CAAcS,CAAAA,CAAAA,CAAQR,KAAMh/C,CAAWA,EAAAA,CAAAA,EAAG68C,SAAWpH,EAAAA,WAAAA,IAAiBoH,CAAWpH,EAAAA,WAAAA,EAAa,CAAA,CACpG,OAAIsJ,CAAaE,EAAAA,UAAAA,CACNF,CAAYE,CAAAA,UAAAA,CAEnBF,GAAargD,KACN,CAAA,CAAA,CAAA,CAEPqgD,GAAaG,WACNH,CAAAA,CAAAA,CAAYG,YAEnBH,CAAaI,EAAAA,WAAAA,EAAeJ,CAAYI,CAAAA,WAAAA,CAAY3oC,OAAS,CACtDuoC,CAAAA,CAAAA,CAAYI,WAEhB,CAAA,CAAA,CACX,CACA,OAAO,CAAA,CACX,CAEAO,eAAAA,CAAgBpF,EAAmB3H,CAAa,CAAA,CAC5C,GAAI2H,CAAe,CAAA,GAAA,CACf,OAAQ3H,CAAQ,EACZ,IAAK,GAAA,CACD,OAAO,SAEX,CAAA,IAAK,GACD,CAAA,OAAO,cAEX,IAAK,GAAA,CACD,OAAO,SAAA,CAEX,IAAK,GACD,CAAA,OAAO,cAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,UAEX,IAAK,GAAA,CACD,OAAO,SACX,CAAA,IAAK,KACD,OAAO,aAAA,CACX,QACI,OAAO,SACf,CACO2H,KAAAA,GAAAA,CAAAA,CAAe,IACtB,OAAQ3H,CAAAA,EACJ,IAAK,GAAA,CACL,IAAK,GAAA,CACL,IAAK,GACD,CAAA,OAAO,YAEX,CAAA,IAAK,IACL,IAAK,GAAA,CACD,OAAO,aAAA,CAEX,IAAK,GACL,CAAA,IAAK,IACD,OAAO,YAAA,CAEX,IAAK,IACD,CAAA,OAAO,aAEX,CAAA,QACI,OAAO,YACf,CAAA,KAAA,GACO2H,CAAe,CAAA,GAAA,CACtB,OAAQ3H,CAAQ,EACZ,IAAK,GAAA,CACD,OAAO,SAEX,CAAA,IAAK,IACD,OAAO,aAAA,CAEX,IAAK,GACD,CAAA,OAAO,SAEX,CAAA,IAAK,IACD,OAAO,aAAA,CAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,UAEX,IAAK,GAAA,CACD,OAAO,SAEX,CAAA,IAAK,KACD,OAAO,aAAA,CAEX,QACI,OAAO,SACf,CACO2H,KAAAA,GAAAA,CAAAA,CAAe,IACtB,OAAQ3H,CAAAA,EACJ,IAAK,GAAA,CACD,OAAO,YAAA,CAEX,IAAK,GACD,CAAA,OAAO,cAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,YAAA,CAEX,IAAK,GACD,CAAA,OAAO,YAEX,CAAA,IAAK,IACD,OAAO,YAAA,CAEX,IAAK,IACD,CAAA,OAAO,aAEX,QACI,OAAO,YACf,CAAA,KAAA,GACO2H,EAAe,GACtB,CAAA,OAAQ3H,CAAQ,EACZ,IAAK,GACD,CAAA,OAAO,SAEX,CAAA,IAAK,IACD,OAAO,aAAA,CAEX,IAAK,GACD,CAAA,OAAO,UAEX,IAAK,GAAA,CACD,OAAO,aAAA,CAEX,IAAK,GACD,CAAA,OAAO,YAEX,CAAA,IAAK,IACD,OAAO,SAAA,CAEX,IAAK,GAAA,CACD,OAAO,SAEX,CAAA,IAAK,KACD,OAAO,aAAA,CAEX,QACI,OAAO,SACf,CACO2H,KAAAA,GAAAA,CAAAA,CAAe,IACtB,OAAQ3H,CAAAA,EACJ,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,cAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,IACD,OAAO,YAAA,CAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,YAAA,CAEX,IAAK,IACD,CAAA,OAAO,aAEX,QACI,OAAO,YACf,CACO2H,KAAAA,GAAAA,CAAAA,CAAe,IACtB,CAAA,OAAQ3H,GACJ,IAAK,GACD,CAAA,OAAO,UAEX,IAAK,GAAA,CACD,OAAO,aAAA,CAEX,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,aAEX,CAAA,IAAK,GACD,CAAA,OAAO,cAEX,IAAK,GAAA,CACD,OAAO,SAAA,CAEX,IAAK,GACD,CAAA,OAAO,SAEX,CAAA,IAAK,KACD,OAAO,aAAA,CAEX,QACI,OAAO,YACf,MAEQA,OAAAA,CAAAA,EACJ,IAAK,IACD,OAAO,YAAA,CAEX,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,YAAA,CAEX,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,YAEX,CAAA,IAAK,GACD,CAAA,OAAO,aAEX,IAAK,GAAA,CACD,OAAO,YAAA,CAEX,IAAK,IACD,CAAA,OAAO,YAEX,CAAA,QACI,OAAO,YACf,CAER,CAEAwC,iBAAiB,EAAA,CACb,OAAO,IAAKuF,CAAAA,mBAAAA,CAAoB1C,gBAAgB,EACpD,CAEA2H,qBAAsB9C,CAAAA,CAAAA,CAAiB,CACnC,IAAM+C,EAAkB,IAAK7W,CAAAA,qBAAAA,CAAsB8W,sBAAsB,EAAA,CACzE,QAASC,CAAsCF,IAAAA,CAAAA,CAAgBE,mCAC3D,GAAIA,CAAAA,CAAmCjD,YAAcA,CACjD,CAAA,OAAOiD,CAAmCZ,CAAAA,WAAAA,CAGlD,OAAO,EACX,CAEAa,wBAAyBlD,CAAAA,CAAAA,CAAiB,CACtC,IAAMmD,CAAAA,CAAgB,IAAKjX,CAAAA,qBAAAA,CAAsBkX,sBACjD,CAAA,IAAA,IAASC,KAAyCF,CAAcE,CAAAA,qCAAAA,CAC5D,GAAIA,CAAsCrD,CAAAA,SAAAA,CAAUpH,WAAW,EAAA,GAAOoH,EAAUpH,WAAW,EAAA,CACvF,OAAOyK,CAAsChB,CAAAA,WAAAA,CAGrD,OAAO,EACX,CAEAiB,sBAAuBC,CAAAA,CAAAA,CAAoB,CACvC,IAAM1B,CAAAA,CAAsB,KAAK3V,qBAAsBgU,CAAAA,gBAAAA,GACvD,GAAI2B,CAAAA,EAAqB1B,YAAcxmC,EAAAA,MAAAA,CAAS,EAAG,CAC/C,IAAI+/B,CAAyB,CAAA,IAAA,CAAKR,sBAAsBZ,iBAAiB,EAAA,CAAA,CACrE,CAACoB,CAAAA,EAAkBA,IAAmB,EACtCA,IAAAA,CAAAA,CAAiB,UAErB,IAAM8J,CAAAA,CAAyB3B,EAAoB1B,YAAav5C,CAAAA,MAAAA,CAAQ68C,CAC7DA,EAAAA,CAAAA,EAAW/J,gBAAgBd,WAAW,EAAA,GAAOc,CAAgBd,EAAAA,WAAAA,EACvE,CACD,CAAA,OAAI4K,CAAqBA,EAAAA,CAAAA,CAAkB7pC,OAAS,CACzC,CAAA,IAAA,CAAK+pC,iBAAiBF,CAAmBD,CAAAA,CAAY,GAE5D,IAAKtF,CAAAA,MAAAA,CAAO1lC,KACR,CAAA,iDAAA,CACAmhC,EACA,yDAAyD,CAAA,CAEtD,IAAKgK,CAAAA,gBAAAA,CAAiB7B,EAAoB1B,YAAcoD,CAAAA,CAAY,CAEnF,CAAA,CACA,YAAKtF,MAAO1lC,CAAAA,KAAAA,CAAM,uCAAuC,CAClD,CAAA,EACX,CAEAorC,eAAgB3D,CAAAA,CAAAA,CAAiB,CAC7B,IAAA,CAAK4D,iBAAmB5D,EAC5B,CAEA6D,eAAe,EAAA,CACX,OAAO,IAAKD,CAAAA,gBAChB,CACQF,gBAAAA,CAAiBvD,EAAmBlgB,CAAe,CAAA,CACvD,GAAIkgB,CAAcxmC,EAAAA,MAAAA,CAAS,EAAG,CAC1B,IAAA,IAASqmC,CAAaG,IAAAA,CAAAA,CAClB,GAAIH,CAAW/f,EAAAA,OAAAA,EAAS2Y,WAAW,EAAA,EAAM3Y,GAAS2Y,WAAW,EAAA,CACzD,OAAOoH,CAAAA,CAAUA,UAGzB,IAAK/B,CAAAA,MAAAA,CAAO1lC,MAAM,yCAA2C0nB,CAAAA,CAAO,EACxE,CACA,OAAO,EACX,CAEA6jB,sBAAsB9D,CAAmB+D,CAAAA,CAAAA,CAAsB,CAC3D,IAAIC,EAA2B,IAC3BC,CAAAA,CAAAA,CAA0B,IAAK/X,CAAAA,qBAAAA,CAAsBwL,mBAAqBuM,EAAAA,kBAAAA,CAC9E,OAAIA,CACAD,GAAAA,CAAAA,CAAsBC,EAAmBr9C,MAAQs9C,CAAAA,CAAAA,EACtCH,CAAkBG,EAAAA,CAAAA,EAAIlE,WAAWpH,WAAW,EAAA,EAAMoH,CAAWpH,EAAAA,WAAAA,EACvE,CAEEoL,CAAAA,CAAAA,CAAAA,EAAAA,CAAqBrqC,EAAAA,MAAAA,EAAUqqC,EAAoB,CAAC,CAAA,CAAEG,WACjE,CAEAvM,eAAAA,EAAe,CACX,OAAO,IAAA,CAAK1L,qBAAsBgE,CAAAA,mBAAAA,IAAuBkU,YAAcC,EAAAA,IAC3E,yCA5jBSjN,CAAavX,EAAAA,GAAAA,CAAAykB,IAAA,CAAAzkB,CAAAA,GAAAA,CAAAmZ,EAAA,CAAA,CAAAnZ,IAAA0kB,EAAA,CAAA,CAAA1kB,IAAAiZ,IAAA,CAAA,CAAAjZ,IAAA2b,EAAA,CAAA,CAAA3b,GAAAwb,CAAAA,EAAA,EAAAxb,GAAAsP,CAAAA,GAAA,CAAAtP,CAAAA,GAAAA,CAAAuY,IAAA,CAAAvY,CAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA,CAAbpN,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAax5C,QAAbw5C,CAAajB,CAAAA,SAAAA,CAAAC,WAFV,MAAM,CAAA,CAEhB,CAAA,IAAOgB,EAAPqN,CAAOrN,CAAAA,OAAAA,CAAa,CAAA,QCVbsN,IAAY,CAAA,CAAA,IAAA,CAAnB,IAAOA,EAAP,MAAOA,CAAY,GACEC,CAAAC,CAAAA,cAAAA,CAAyB,gBACzBD,CAAAE,CAAAA,WAAAA,CAAsB,YACtBF,CAAAA,CAAAA,CAAAG,aAAuB,aACvBH,CAAAA,CAAAA,CAAAI,eAA0B,CAAA,gBAAA,CAC1BJ,EAAAK,QAAW,CAAA,UAAA,CACXL,CAAAM,CAAAA,qBAAAA,CAAgC,WAChCN,CAAAO,CAAAA,6BAAAA,CAAwC,aACxCP,CAAAQ,CAAAA,iCAAAA,CAA4C,qBAC5CR,CAAAS,CAAAA,6BAAAA,CAAwC,sCACxCT,CAAAA,CAAAA,CAAAU,4BAAsC,gBACtCV,CAAAA,CAAAA,CAAAW,yBAAmC,aACnCX,CAAAA,CAAAA,CAAAY,uBAAiC,YACjCZ,CAAAA,CAAAA,CAAAa,4BAAuC,CAAA,iBAAA,CACvCb,EAAAc,sBAAiC,CAAA,mBAAA,CACjCd,EAAAe,gBAAmB,CAAA,MAAA,CACnBf,EAAAgB,oBAAuB,CAAA,UAAA,CACvBhB,CAAAiB,CAAAA,QAAAA,CAAW,OACXjB,CAAAkB,CAAAA,uBAAAA,CAA0B,QAC1BlB,CAAAA,CAAAA,CAAAmB,6BAA+B,aAC/BnB,CAAAA,CAAAA,CAAAoB,sBAAyB,CAAA,OAAA,CACzBpB,EAAAqB,oBAAuB,CAAA,KAAA,CACvBrB,EAAAsB,eAAkB,CAAA,cAAA,CAClBtB,EAAAuB,kBAAqB,CAAA,mBAAA,CACrBvB,CAAAwB,CAAAA,WAAAA,CAAc,aACdxB,CAAAyB,CAAAA,mBAAAA,CAAsB,YACtBzB,CAAAA,CAAAA,CAAA0B,YAAc,YACd1B,CAAAA,CAAAA,CAAA2B,YAAe,CAAA,aAAA,CACf3B,EAAA4B,MAAS,CAAA,QAAA,CACT5B,EAAA6B,WAAc,CAAA,aAAA,CACd7B,EAAA8B,QAAW,CAAA,sBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA9BzB/B,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA3mD,GAAA,CAAA,CAAA,KAAA,CAAZ2mD,EAAY9mD,OAAZ8mD,CAAAA,CAAAA,CAAYvO,SAAAC,CAAAA,UAAAA,CAFT,MAAM,CAAA,CAAA,CAEhB,IAAOsO,CAAAA,CAAPC,SAAOD,CAAY,CAAA,ICHzB,IAAYgC,EAAAA,CAAZ,SAAYA,CAAU,CAAA,CAClBA,OAAAA,CAAAA,CAAA,WAAA,cACAA,CAAAA,CAAAA,CAAA,cAAA,gBACAA,CAAAA,CAAAA,CAAA,SAAA,UACAA,CAAAA,CAAAA,CAAA,eAAA,CAAA,iBAAA,CAJQA,CAKZ,CALYA,CAAAA,EAAAA,EAAU,EAAA,CAAA,CAOVC,KAAZ,SAAYA,CAAAA,CAAa,CACrBA,OAAAA,EAAA,mBAAA,CAAA,sBAAA,CACAA,CAAA,CAAA,iBAAA,CAAA,qBACAA,CAAA,CAAA,iBAAA,CAAA,oBACAA,CAAAA,CAAAA,CAAA,sBAAA,yBACAA,CAAAA,CAAAA,CAAA,qBAAA,wBACAA,CAAAA,CAAAA,CAAA,0BAAA,6BACAA,CAAAA,CAAAA,CAAA,8BAAA,CAAA,iCAAA,CACAA,EAAA,mBAAA,CAAA,sBAAA,CACAA,CAAA,CAAA,iCAAA,CAAA,qCACAA,CAAA,CAAA,qBAAA,CAAA,yBACAA,CAAAA,CAAAA,CAAA,2BAAA,6BACAA,CAAAA,CAAAA,CAAA,yBAAA,2BACAA,CAAAA,CAAAA,CAAA,sBAAA,wBACAA,CAAAA,CAAAA,CAAA,wBAAA,CAAA,2BAAA,CACAA,EAAA,2BAAA,CAAA,8BAAA,CACAA,CAAA,CAAA,wBAAA,CAAA,6BACAA,CAAA,CAAA,eAAA,CAAA,kBACAA,CAAAA,CAAAA,CAAA,kBAAA,oBACAA,CAAAA,CAAAA,CAAA,sBAAA,wBACAA,CAAAA,CAAAA,CAAA,iBAAA,oBACAA,CAAAA,CAAAA,CAAA,mBAAA,CAAA,uBAAA,CArBQA,CAsBZ,CAtBYA,CAAAA,IAAAA,EAAa,EAAA,CAAA,CCFzB,IAAaC,EAAsB,CAAA,CAAA,IAAA,CAA7B,IAAOA,EAAP,MAAOA,CAAsB,CADnC/1C,WAAA,EAAA,CAEI,KAAAg2C,sBAAyBjsB,CAAAA,GAAAA,CAAOksB,IAAsB,EAAA,CAEtDC,QAAQrqC,CAAY,CAAA,CAChB,IAAKmqC,CAAAA,sBAAAA,CAAuBG,aAAatqC,CAAMvY,CAAAA,IAAAA,CAAMuY,CAAMkvB,CAAAA,IAAI,EACnE,CAEAqb,WAAAA,CAAYvqC,EAAiB,CACzB,IAAA,CAAKmqC,uBAAuBI,WAAYvqC,CAAAA,CAAAA,CAAMkvB,IAAI,EACtD,CAEAsb,MAAOxqC,CAAAA,CAAAA,CAAsB,CACzB,IAAA,CAAKmqC,uBAAuBM,eAAgBzqC,CAAAA,CAAAA,CAAMkvB,IAAI,EAC1D,yCAbSgb,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA7oD,GAAA,CAAA,CAAA,KAAA,CAAtB6oD,EAAsBhpD,OAAtBgpD,CAAAA,CAAAA,CAAsBzQ,UAAAC,UADT,CAAA,MAAM,CAAA,CAAA,CAC1B,IAAOwQ,CAAPQ,CAAAA,CAAAA,CAAAA,OAAOR,CAAsB,CAAA,ICEnC,IAAaS,EAAAA,CAAAA,CAAwB,IAAA,CAA/B,IAAOA,CAAP,CAAA,MAAOA,UAAgC/S,IAAO,EAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,OAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,GAAA,CAAA,CAAAgT,EAAA,CAAvCD,CAAuB,CAAA3nB,CAAAA,EAAAA,CAAAA,EAAvB2nB,CAAuB,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,UAAA,CAAAtpD,GAAA,CAAA,CAAA,KAAA,CAAvBspD,EAAuBzpD,OAAA,CAAA,SAAA8hC,EAAA,CAAA,IAAAC,CAAA,CAAA,IAAA,CAAA,OAAAD,CAHpB6U,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAiB1U,IACtB2U,IAAiB,CAAA,CAAA3U,IAAE4U,IAAc,CAAA,CAF5B,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAM,CAAA,CAIhB,CAAA,IAAO4S,CAAPE,CAAAA,CAAAA,CAAAA,OAAOF,CAAwB,CAAA,GAAA,CAE/B,SAAU9S,EAAAA,CAAkBA,EAAsCI,CAA8B,CAAA,CAClG,OAAOJ,CAAkBK,CAAAA,gBAAAA,CAAiByS,GAAyB,CAC/DpnB,OAAAA,CAASC,CAAwBsnB,CAAAA,KAAAA,CACjC3S,KAAM,OACNC,CAAAA,8BAAAA,CAAgCH,CAAeI,CAAAA,WAAAA,CAAY7U,EAAwBsnB,KAAK,CAAA,CAAEC,SAC7F,CAAA,CACL,CCVaC,IAAAA,IAAAA,CAAAA,CAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAI1B72C,WAAAA,CACY82C,EACA7b,CACA6I,CAAAA,CAAAA,CACA1I,CAA4B,CAAA,CAH5B,KAAA0b,QAAAA,CAAAA,CAAAA,CACA,IAAA7b,CAAAA,IAAAA,CAAAA,EACA,IAAA6I,CAAAA,cAAAA,CAAAA,EACA,IAAA1I,CAAAA,aAAAA,CAAAA,EAGZ,IAAA2b,CAAAA,gBAAAA,CAAmB,IAAc,IAAA,CAAKC,OAAO,QAAQ,CAAA,EAAK,GAE1D,IAAAC,CAAAA,iBAAAA,CAAqBC,GAA6B,IAAKF,CAAAA,MAAAA,CAAO,EAAI,CAAA,CAAA,CAAA,CAAME,CAAe,CAEvF,CAAA,IAAA,CAAAC,qBAAwBD,CAAqC,EAAA,IAAA,CAAKD,kBAAkBC,CAAe,CAAA,CAAI,GAAM,CAAA,IAAA,CAAKjc,KAAKsB,IAEvH,CAAA,IAAA,CAAA6a,aAAgB,CAAA,IAAc,KAAKL,gBAAgB,EAAA,CAAK,GAAM,CAAA,IAAA,CAAK9b,KAAKsB,IAExE,CAAA,IAAA,CAAA8a,oBAAsB,IAAc,IAAA,CAAKvT,eAAeI,WAAY,CAAA,QAAQ,CAAEoT,CAAAA,UAAAA,CAE9E,KAAAC,kBAAqB,CAAA,IAAM,CAAG,EAAA,IAAA,CAAKF,qBAAqB,CAAA,CAAA,EAAI,IAAKpc,CAAAA,IAAAA,CAAKsB,IAAI,CAE1E,iBAAA,CAAA,CAAA,IAAA,CAAAib,6BAA+B,IAAc,IAAA,CAAKR,OAAO,QAAQ,CAAA,EAAK,EAEtE,CAAA,IAAA,CAAAS,mBAAqB,IAAc,IAAA,CAAKT,MAAO,CAAA,OAAO,EAAI,GAAM,CAAA,IAAA,CAAK/b,IAAKsB,CAAAA,IAAAA,CAE1E,KAAAmb,gBAAmB,CAAA,IAAc,GAAG,IAAKV,CAAAA,MAAAA,CAAO,OAAO,CAAC,CAAA,CAAA,EAAI,IAAK/b,CAAAA,IAAAA,CAAKsB,IAAI,CAE1E,CAAA,CAAA,IAAA,CAAAob,gBAAkB,IAAc,CAAA,EAAG,KAAKX,MAAO,CAAA,WAAW,CAAC,CAAA,CAAA,EAAI,KAAK/b,IAAKsB,CAAAA,IAAI,GAE7E,IAAAqb,CAAAA,iBAAAA,CAAoB,IAAc,CAAG,EAAA,IAAA,CAAKZ,MAAO,CAAA,QAAQ,CAAC,CAAI,CAAA,EAAA,IAAA,CAAK/b,IAAKsB,CAAAA,IAAI,GAEpE,IAAAya,CAAAA,MAAAA,CAAS,CAACp+C,CAAAA,CAAci/C,EAAqB,CAAOX,CAAAA,CAAAA,CAAAA,GAA4B,CAEpF,IAAIhE,CAAAA,CAAyB,KAAKpP,cAAe4D,CAAAA,iBAAAA,CAC3C,IAAK5D,CAAAA,cAAAA,CAAe6D,QAAQr0C,IAC5B,CAAA,IAAA,CAAK8nC,aAAehM,EAAAA,OAAAA,EAAS2Y,aAC7B3Y,CAAAA,CAAAA,CAAeyoB,CAAaX,EAAAA,CAAAA,CAAkBA,EAAkBW,CAAY3E,CAAAA,CAAAA,CAAenL,aAAgBnvC,CAAAA,CAAAA,CAEjH,OADmB,IAAIk/C,GAAAA,CAAI,IAAKhB,CAAAA,QAAAA,CAAS1nB,CAAuC,CAAC,CAAA,CAC/D2oB,MACtB,EAhCG,CAkCHC,oBAAoB,EAAA,CAIhB,OAH2B,CAAA,IAAA,CAAKlU,eAAe4D,iBACzC,CAAA,IAAA,CAAK5D,eAAe6D,OAAQr0C,CAAAA,IAAAA,CAC5B,KAAK8nC,aAAehM,EAAAA,OAAAA,EAAS2Y,WAAW,EAAA,IACxB,QAC1B,CAhDS8O,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAiB7nB,IAAAipB,EAAA,CAAA,CAAAjpB,IAAAkP,GAAA,CAAA,CAAAlP,GAAA4U,CAAAA,IAAA,EAAA5U,GAAAqP,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAnxC,GAAA,CAAA,CAAA,KAAA,CAAjB2pD,EAAiB9pD,OAAjB8pD,CAAAA,CAAAA,CAAiBvR,SAAAC,CAAAA,UAAAA,CAFd,MAAM,CAAA,CAAA,CAEhB,IAAOsR,CAAAA,CAAPqB,SAAOrB,CAAiB,CAAA,ICA9B,IAAasB,MAAqB,IAAA,CAA5B,IAAOA,CAAP,CAAA,MAAOA,CAAqB,CAC9Bn4C,WAAAA,CAAoBotC,CAAc,CAAA,CAAd,KAAAA,MAAAA,CAAAA,EAAiB,CAErCgL,YAAAA,CAAaC,KAA0B3oD,CAAW,CAAA,CAC9C,OAAK09C,IAAAA,CAAAA,MAAAA,CAAO52B,KAAK,sBAAwB9mB,CAAAA,CAAI,EAEzB,IAAI4oD,QAAAA,CAAS,OAAQ,UAAaD,CAAAA,CAAAA,CAAgB,IAAI,CAAA,CACvD3oD,CAAI,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EARSyoD,CAAqBnpB,EAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA,CAArBwE,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAqBprD,QAArBorD,CAAqB7S,CAAAA,SAAAA,CAAAC,WAFlB,MAAM,CAAA,EAEhB,IAAO4S,CAAAA,CAAPI,CAAOJ,CAAAA,OAAAA,CAAqB,ICKlC,CAAA,IAAaK,IAAqB,IAAA,CAA5B,IAAOA,CAAP,CAAA,MAAOA,CAAqB,CAM9Bx4C,YACYy4C,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACSxd,EAA4C,CALrD,IAAA,CAAAod,eAAAA,CAAAA,CAAAA,CACA,KAAAC,GAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,MAAAA,CAAAA,EACA,IAAAC,CAAAA,iBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,sBAAAA,CACS,CAAA,IAAA,CAAAxd,sBAAAA,EAClB,CAEHyd,aAAaC,CAAgBC,CAAAA,CAAAA,CAAmB,CAC5C,IAAMC,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACvE,GAAID,CAAeE,CAAAA,KAAAA,CAAM,eAAsBF,EAAAA,CAAAA,CAAeE,MAAM,eAAsB,EAAA,SAAA,CACtF,OAAO,IAAKV,CAAAA,eAAAA,CAAgBjpB,IAAIypB,CAAeE,CAAAA,KAAAA,CAAM,cAAmB,CAAA,CAAEJ,OAAQA,CAAQK,CAAAA,WAAAA,CAAa,CAAMJ,CAAAA,CAAAA,WAAAA,CAAaA,CAAW,CAAE,CAAA,CACpI,CACH,IAAMK,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aACxCa,CAAeE,CAAAA,KAAAA,CAAM,eACrB,IAAKP,CAAAA,iBAAAA,CAAkBnB,kBAAkB,EAAE,EAE/C,OAAO,IAAA,CAAKiB,IAAIlpB,GAAI6pB,CAAAA,CAAAA,CAAU,CAAEN,MAAQA,CAAAA,CAAAA,CAAQK,WAAa,CAAA,CAAA,CAAA,CAAMJ,YAAaA,CAAW,CAAE,CACjG,CACJ,CAEAM,gBAAgBP,CAAgBC,CAAAA,CAAAA,CAAmB,CAC/C,IAAMC,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACvE,GAAID,CAAeE,CAAAA,KAAAA,CAAM,eAAsBF,EAAAA,CAAAA,CAAeE,MAAM,eAAsB,EAAA,SAAA,CACtF,OAAO,IAAKV,CAAAA,eAAAA,CAAgBjpB,IAAIypB,CAAeE,CAAAA,KAAAA,CAAM,cAAmB,CAAA,CAAEJ,OAAQA,CAAQK,CAAAA,WAAAA,CAAa,CAAOJ,CAAAA,CAAAA,WAAAA,CAAaA,CAAW,CAAE,CAAA,CACrI,CACH,IAAMK,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aACxCa,CAAeE,CAAAA,KAAAA,CAAM,eACrB,IAAKP,CAAAA,iBAAAA,CAAkBnB,kBAAkB,EAAE,EAE/C,OAAO,IAAA,CAAKiB,GAAIlpB,CAAAA,GAAAA,CAAI6pB,EAAU,CAAEN,MAAAA,CAAQA,CAAQK,CAAAA,WAAAA,CAAa,GAAOJ,WAAaA,CAAAA,CAAW,CAAE,CAClG,CACJ,CAEAO,eAAgBR,CAAAA,CAAAA,CAAgBK,CAAsBI,CAAAA,CAAAA,CAAqBC,EAAmB,CAC1F,IAAMR,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAUlD,CAAA,OATe,IAAKL,CAAAA,qBAAAA,CAAsBT,aACtCa,CAAeE,CAAAA,KAAAA,CAAM,kBACrB,IAAKP,CAAAA,iBAAAA,CAAkBnB,oBACvBsB,CAAAA,CAAAA,CACAK,CACAI,CAAAA,CAAAA,CACAC,EACA,IAAKd,CAAAA,MAAAA,CAAOe,GAAG,CAGvB,CAEAC,uBAAwBC,CAAAA,CAAAA,CAAaZ,CAAmB,CAAA,CACpD,IAAMC,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,GAAID,CAAeE,CAAAA,KAAAA,CAAM,eAAsBF,EAAAA,CAAAA,CAAeE,MAAM,eAAsB,EAAA,SAAA,CACtF,OAAO,IAAA,CAAKV,gBAAgBjpB,GAAIypB,CAAAA,CAAAA,CAAeE,KAAM,CAAA,UAAA,CAAe,CAAES,GAAKA,CAAAA,CAAAA,CAAKZ,YAAaA,CAAW,CAAE,EACvG,CACH,IAAMK,CAAW,CAAA,IAAA,CAAKR,sBAAsBT,YAAaa,CAAAA,CAAAA,CAAeE,KAAM,CAAA,UAAA,CAAe,KAAKP,iBAAkBnB,CAAAA,kBAAAA,EAAoB,CAAA,CACxI,OAAO,IAAKiB,CAAAA,GAAAA,CAAIlpB,IAAI6pB,CAAU,CAAA,CAAEO,IAAKA,CAAKZ,CAAAA,WAAAA,CAAaA,CAAW,CAAE,CACxE,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/DSR,GAAqBxpB,GAAAwnB,CAAAA,EAAA,EAAAxnB,GAAAwU,CAAAA,EAAA,CAAAxU,CAAAA,GAAAA,CAAA6qB,IAAA,CAAA7qB,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA7nB,CAAAA,GAAAA,CAAAmpB,IAAA,CAAAnpB,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAA,CAArBka,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAqBzrD,OAArByrD,CAAAA,CAAAA,CAAqBlT,UAAAC,UAFlB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOiT,CAAPsB,CAAAA,CAAAA,CAAAA,OAAOtB,CAAqB,CAAA,QCLrBuB,IAA0B,CAAA,CAAA,IAAA,CAAjC,IAAOA,EAAP,MAAOA,CAA0B,CAGnC/5C,WAAAA,EAAA,EAEAg6C,sBAAAA,CAAuBC,CAAwC,CAAA,CAC3D,KAAKC,eAAkBD,CAAAA,EAC3B,CAEAE,sBAAsB,EAAA,CAClB,OAAO,IAAKD,CAAAA,eAChB,CAXSH,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAA0B,0BAA1BA,CAA0BhtD,CAAAA,OAAAA,CAA1BgtD,CAA0BzU,CAAAA,SAAAA,CAAAC,WAFvB,MAAM,CAAA,CAEhB,CAAA,IAAOwU,EAAPK,CAAOL,CAAAA,OAAAA,CAA0B,KCGvC,IAAaM,MAA0B,IAAA,CAAjC,IAAOA,CAAAA,CAAP,MAAOA,CAA0B,CAEnCr6C,YACYs6C,CACAjf,CAAAA,CAAAA,CACAkf,EACAlS,CAA4C,CAAA,CAH5C,IAAAiS,CAAAA,aAAAA,CAAAA,EACA,IAAAjf,CAAAA,qBAAAA,CAAAA,EACA,IAAAkf,CAAAA,0BAAAA,CAAAA,EACA,IAAAlS,CAAAA,qBAAAA,CAAAA,EACT,CAEHmS,iBAAiBC,CAAkB,CAAA,CAC/B,IAAKA,CAAAA,SAAAA,CAAYA,EACrB,CAEAC,gBAAAA,EAAgB,CACZ,OAAO,KAAKD,SAChB,CAEAE,oBAAoBxL,CAAoB,CAAA,EAAA,CAAE,CACtC,IAAMyL,CAAAA,CAA8B,IAAKvf,CAAAA,qBAAAA,CAAsBwf,6BAC/D,CAAA,GAAID,CAA6BE,EAAAA,mBAAAA,EAAuBF,EAA4BE,mBAAoBhyC,CAAAA,MAAAA,CAAS,CAAG,CAAA,CAChH,IAAMgyC,CAAsBF,CAAAA,CAAAA,EAA6BE,oBAAoB/kD,MACxEhI,CAAAA,CAAAA,EAAWA,GAAG86C,cAAgBd,EAAAA,WAAAA,EAAkB,GAAA,IAAA,CAAKM,uBAAuBZ,iBAAiB,EAAA,EAAIM,WAAW,EAAE,EAEnH,OAAOoH,CAAAA,CAAY,IAAKmL,CAAAA,aAAAA,CAAclJ,6BAA6BjC,CAAW2L,CAAAA,CAAmB,EAAI,CACzG,CAAA,CACA,OAAO,CACX,CAAA,CAEAC,yBAAyB,EAAA,CACrB,IAAMH,CAA8B,CAAA,IAAA,CAAKvf,sBAAsBwf,2BAA2B,EAAA,CAC1F,GACID,CACAA,EAAAA,CAAAA,CAA4BI,4BAC5BJ,EAAAA,CAAAA,CAA4BI,6BAA6BlyC,MAAS,CAAA,CAAA,CACpE,CACE,IAAMkyC,CAAAA,CAA+BJ,EAA4BI,4BAA6BjlD,CAAAA,MAAAA,CACzFhI,CAAWA,EAAAA,CAAAA,EAAG86C,gBAAgBd,WAAW,EAAA,GAAO,IAAKM,CAAAA,qBAAAA,EAAuBZ,mBAAqBM,EAAAA,WAAAA,EAAa,CAAA,CAEnH,GAAIiT,CAAgCA,EAAAA,CAAAA,CAA6BlyC,OAAS,CACtE,CAAA,IAAA,IAASmyC,KAAoCD,CAA6BlyC,CAAAA,MAAAA,CACtE,OAAOmyC,CAAAA,CAAiC9L,SAGpD,CACA,OAAO,EACX,CAEA+L,mBAAiB,CACb,IAAM9L,CAAiB,CAAA,IAAA,CAAK/T,sBAAsBgU,gBAAgB,EAAA,CAC5DxG,EAAyB,IAAKR,CAAAA,qBAAAA,CAAsBZ,mBACpD0T,CAAAA,CAAAA,CAAqB,IAAK9f,CAAAA,qBAAAA,CAAsBwf,6BAChDX,CAAAA,CAAAA,CAAkB,IAAKK,CAAAA,0BAAAA,CAA2BJ,wBACpDiB,CAAAA,CAAAA,CAA2B,EAE/B,CAAA,GAAIhM,EAAUE,YAAgBF,EAAAA,CAAAA,CAAUE,aAAaxmC,MAAS,CAAA,CAAA,CAAG,CAC7D,IAAMuyC,CAAAA,CAA+BjM,CAAUE,CAAAA,YAAAA,CAAav5C,OACvDhI,CAAWA,EAAAA,CAAAA,EAAG86C,gBAAgBd,WAAW,EAAA,GAAOc,GAAgBd,WAAW,EAAE,CAElF,CAAA,GAAIsT,GAA2BA,CAAwBvyC,CAAAA,MAAAA,CAAS,GAC5D,GAAIoxC,CAAAA,CAAgBoB,qBAAuBpB,CAAgBoB,CAAAA,mBAAAA,CAAoBxyC,MAAS,CAAA,CAAA,CACpFsyC,EAAmBC,CAAwB,CAAA,CAAC,CAAElM,CAAAA,SAAAA,CAAYkM,EAAwB,CAAC,CAAA,CAAElM,SAAY,CAAA,EAAA,CAAA,KAAA,GAC1FgM,GAAiBA,CAAcL,CAAAA,mBAAAA,EAAuBK,EAAcL,mBAAoBhyC,CAAAA,MAAAA,CAAS,EAAG,CAC3G,IAAMyyC,CAAeJ,CAAAA,CAAAA,CAAcL,oBAAoB/kD,MAClDhI,CAAAA,CAAAA,EAAWA,CAAG86C,EAAAA,cAAAA,EAAgBd,aAAkBc,GAAAA,CAAAA,EAAgBd,WAAW,EAAE,EAE9EwT,CAAczyC,EAAAA,MAAAA,CAAS,IAAGsyC,CAAmBG,CAAAA,CAAAA,CAAa,CAAC,CAAE3J,CAAAA,SAAAA,CAAY2J,CAAa,CAAA,CAAC,EAAEpM,SAAY,CAAA,EAAA,EAC7G,CAER,CAAA,CACA,OAAOiM,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAtESf,CAA0BrrB,EAAAA,GAAAA,CAAAuX,EAAA,CAAAvX,CAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAA+qB,IAAA,CAAA/qB,CAAAA,GAAAA,CAAAuY,IAAA,CAAA,CAAA,CAA1B8S,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA0BttD,OAA1BstD,CAAAA,CAAAA,CAA0B/U,UAAAC,UAFvB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAO8U,CAAPmB,CAAAA,CAAAA,CAAAA,OAAOnB,CAA0B,CAAA,ICGvC,IAAaoB,IAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,EAAP,MAAOA,CAAgB,CACzBz7C,WAAAA,CACYgtC,EACA0O,CACAjD,CAAAA,CAAAA,CACApd,CACAJ,CAAAA,CAAAA,CAAU,CAJV,IAAA+R,CAAAA,mBAAAA,CAAAA,EACA,IAAA0O,CAAAA,UAAAA,CAAAA,EACA,IAAAjD,CAAAA,eAAAA,CAAAA,CACA,CAAA,IAAA,CAAApd,sBAAAA,CACA,CAAA,IAAA,CAAAJ,IAAAA,CAAAA,EACT,CAEH3qB,OAAQopC,CAAAA,CAAAA,CAAazqD,CAAa,CAAA,CAC9B,OAAO,IAAKysD,CAAAA,UAAAA,CAAWprC,QAAQopC,CAAKzqD,CAAAA,CAAO,CAC/C,CAEAugC,GAAAA,CAAIkqB,CAAazQ,CAAAA,CAAAA,CAAch6C,EAAa,CACxC,IAAM0sD,CAAgB,CAAA,IAAA,CAAK3O,oBAAoBhE,YAAaC,CAAAA,CAAM,CAClE,CAAA,OAAO,KAAKyS,UAAWlsB,CAAAA,GAAAA,CAAIkqB,EAAKiC,CAAe1sD,CAAAA,CAAO,CAC1D,CAEA2sD,IAAAA,CAAKlC,CAAa3e,CAAAA,CAAAA,CAAY9rC,EAAa,CACvC,OAAO,KAAKysD,UAAWE,CAAAA,IAAAA,CAAKlC,EAAK3e,CAAM9rC,CAAAA,CAAO,CAClD,CAOA4sD,oBAAoBnC,CAAazQ,CAAAA,CAAAA,CAAch6C,EAAoB,CAC/D,IAAM0sD,EAAgB1S,CAAS,CAAA,IAAA,CAAK+D,mBAAoBhE,CAAAA,YAAAA,CAAaC,CAAM,CAAI,CAAA,IAAA,CAC/E,OAAKh6C,CAAAA,GAASA,EAAU,CAAE6sD,OAAAA,CAAS,EAAE,GACrC7sD,CAAQ6sD,CAAAA,OAAAA,CAAS,mBAAmB,CAAI,CAAA,IAAA,CAAK7gB,KAAK8gB,WAClD9sD,CAAAA,CAAAA,CAAQ+sD,eAAkB,CAAA,CAAA,CAAA,CACnB,KAAKN,UAAWlsB,CAAAA,GAAAA,CAAIkqB,CAAKiC,CAAAA,CAAAA,CAAe1sD,CAAO,CAC1D,CAEAgtD,WAAYvC,CAAAA,CAAAA,CAAazQ,EAAch6C,CAAa,CAAA,CAChD,IAAMgqD,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACjEyC,CAAgB,CAAA,IAAA,CAAK3O,oBAAoBhE,YAAaC,CAAAA,CAAM,CAElE,CAAA,OAAIgQ,EAAeE,KAAM,CAAA,eAAA,EAAsBF,CAAeE,CAAAA,KAAAA,CAAM,iBAAsB,SAC/E,CAAA,IAAA,CAAKV,gBAAgBjpB,GAAIkqB,CAAAA,CAAAA,CAAKiC,EAAe1sD,CAAO,CAAA,CACnD,IAAKysD,CAAAA,UAAAA,CAAWlsB,IAAIkqB,CAAKiC,CAAAA,CAAAA,CAAe1sD,CAAO,CAC/D,CAEAitD,aAAaxC,CAAa3e,CAAAA,CAAAA,CAAY9rC,CAAa,CAAA,CAC/C,IAAMgqD,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CAEvE,OAAID,CAAeE,CAAAA,KAAAA,CAAM,eAAsBF,EAAAA,CAAAA,CAAeE,MAAM,eAAsB,EAAA,SAAA,CAC/E,IAAKV,CAAAA,eAAAA,CAAgBmD,KAAKlC,CAAK3e,CAAAA,CAAAA,CAAM9rC,CAAO,CAAA,CAC3C,KAAKysD,UAAWE,CAAAA,IAAAA,CAAKlC,EAAK3e,CAAM9rC,CAAAA,CAAO,CACvD,CAGAktD,GAAAA,CAAIzC,CAAa3e,CAAAA,CAAAA,CAAY9rC,EAAa,CACtC,OAAO,IAAKysD,CAAAA,UAAAA,CAAWS,IAAIzC,CAAK3e,CAAAA,CAAAA,CAAM9rC,CAAO,CACjD,CAEAmtD,MAAO1C,CAAAA,CAAAA,CAAazQ,EAAch6C,CAAa,CAAA,CAC3C,OAAO,IAAKysD,CAAAA,UAAAA,CAAWU,MAAO1C,CAAAA,CAAAA,CAAKzQ,EAAQh6C,CAAO,CACtD,CAEAotD,KAAAA,CAAM3C,EAAa4C,CAAqB,CAAA,CACpC,OAAO,IAAA,CAAKZ,WAAWW,KAAM3C,CAAAA,CAAAA,CAAK4C,CAAa,CACnD,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/DSb,GAAgBzsB,GAAAmZ,CAAAA,EAAA,CAAAnZ,CAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAAwnB,EAAA,CAAAxnB,CAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAAkP,GAAA,CAAA,CAAA,CAAhBud,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgB1uD,QAAhB0uD,CAAgBnW,CAAAA,SAAAA,CAAAC,WAFb,MAAM,CAAA,CAEhB,CAAA,IAAOkW,EAAPc,CAAOd,CAAAA,OAAAA,CAAgB,CAAA,GAAA,KCAhBe,EAAoB,CAAA,CAAA,IAAA,CAA3B,IAAOA,EAAP,MAAOA,CAAoB,CAe7Bx8C,WACYy8C,CAAAA,CAAAA,CACA7D,EACAvd,CACAwd,CAAAA,CAAAA,CACAzL,CACApS,CAAAA,CAAAA,CAAiB,CALjB,IAAAyhB,CAAAA,gBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA7D,kBAAAA,CACA,CAAA,IAAA,CAAAvd,qBAAAA,CAAAA,CAAAA,CACA,KAAAwd,qBAAAA,CAAAA,CAAAA,CACA,KAAAzL,MAAAA,CAAAA,CAAAA,CACA,KAAApS,IAAAA,CAAAA,CAAAA,CApBJ,IAAA0hB,CAAAA,kBAAAA,CAAqB,IAAInY,IAAqB,CAAA,IAAI,CAC1D,CAAA,IAAA,CAAAoY,6BAAgD,IAAKD,CAAAA,kBAAAA,CAAmBjY,YAAY,EAAA,CAC5E,KAAAmY,wBAA2B,CAAA,IAAIrY,KAAqB,IAAI,CAAA,CAChE,KAAAsY,8BAAkD,CAAA,IAAA,CAAKD,wBAAyBnY,CAAAA,YAAAA,GAChF,IAAAqY,CAAAA,iBAAAA,CAAsC,IAAI3b,GAC1C,CAAA,IAAA,CAAA4b,oBAA2B,EAAA,CAQ3B,IAAAC,CAAAA,oBAAAA,CAA4B,GAQzB,CAEHC,aAAaC,CAAsCC,CAAAA,CAAAA,CAA4B,CAC3E,IAAMlE,CAAAA,CAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAC9CG,CAAAA,CAAAA,CAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aAAaa,CAAeE,CAAAA,KAAAA,CAAM,eAAoB,CAAA,IAAA,CAAKP,kBAAkBnB,kBAAkB,EAAE,EACvIwB,CAAeE,CAAAA,KAAAA,CAAM,iBAAsBF,CAAeE,CAAAA,KAAAA,CAAM,eAAsB,EAAA,SAAA,GAEtFE,EAAWJ,CAAeE,CAAAA,KAAAA,CAAM,eAEpC,CAAA,CAAA,IAAA,CAAKsD,iBACAR,WACG5C,CAAAA,CAAAA,CACA,CAAE6D,2BAAAA,CAA6BA,EAA6BC,mBAAqBA,CAAAA,CAAmB,EACpG,CAAEnB,eAAAA,CAAiB,EAAI,CAAE,CAAA,CAE5B31B,SACI+2B,CAAAA,CAAAA,EAAY,CACT,GAAIA,CAAAA,CAAU,CACNF,CAAAA,GACA,KAAKG,qBAAwBD,CAAAA,CAAAA,CAAS,0BAA8B,CAAA,KAAA,CACpE,KAAKE,yBAA4BF,CAAAA,CAAAA,CAAS,2BAA8B,SACxE,CAAA,IAAA,CAAKG,sBAAwBH,CAAS,CAAA,qBAAA,CAAyB,qBAC/D,CAAA,IAAA,CAAKI,eAAiBJ,CAAS,CAAA,qBAAA,CAAyB,eACxD,IAAKK,CAAAA,YAAAA,CAAeL,EAAS,qBAAyB,CAAA,YAAA,CACtD,IAAKM,CAAAA,kBAAAA,CAAqBN,EAAS,qBAAyB,CAAA,kBAAA,CAAA,CAE5DA,EAASO,YAAcrtD,EAAAA,MAAAA,EAAQstD,YAC/B,IAAKC,CAAAA,WAAAA,CACDT,CAAS,CAAA,YAAA,CAAgB,OAAU,UACnC,CAAA,IAAA,CAAKC,qBACL,CAAA,IAAA,CAAKC,yBAAyB,CAGtC,CAAA,IAAMQ,CAAuB,CAAA,IAAA,CAAKziB,sBAAsB0iB,sBAAsB,EAAA,CAC1ED,EAAgBE,6BAChB,GAAA,IAAA,CAAKjB,oBAAsBK,CAAS,CAAA,YAAA,CAAgB,MAAU,CAAA,cAAA,CAAA,CAE9DU,EAAgBG,8BAAkCb,EAAAA,CAAAA,CAAS,eAC3D,GAAA,IAAA,CAAKJ,qBAAuBI,CAAS,CAAA,eAAA,CAAmB,MAAU,CAAA,KAAA,CAElE,KAAKc,2BAA4B,CAAA,IAAA,CAAKlB,oBAAoB,CAE1D,CAAA,CAAA,IAAA,CAAKF,mBACL,IAAKJ,CAAAA,kBAAAA,CAAmB7gC,IAAK,CAAA,IAAA,CAAKihC,iBAAiB,EAE3D,CACJ,CACCp1C,CAAAA,CAAAA,EAAS,CACN,IAAK0lC,CAAAA,MAAAA,CAAO1lC,KAAM,CAAA,qDAAA,CAAwDA,CAAK,EACnF,CAAC,EAEb,CAGQw2C,2BAAAA,CAA4BC,EAAsB,CACtD,IAAMC,CAAmB,CAAA,GACzBA,CAAY,CAAA,SAAA,CAAeD,EACK,IAAK9iB,CAAAA,qBAAAA,CAAsBgjB,2BACpCzH,CAAAA,SAAAA,EAAauH,CAAkBr1C,CAAAA,MAAAA,CAAS,GAC3D,IAAK8zC,CAAAA,wBAAAA,CAAyB/gC,KAAKuiC,CAAW,EAEtD,CAEAP,WAAYS,CAAAA,CAAAA,CAAYC,CAAoBC,CAAAA,CAAAA,CAAsB,CAE9D,GADI,IAAA,CAAKC,eAAiBvU,EAAAA,aAAAA,CAAc,KAAKuU,eAAe,CAAA,CACxDH,CAASC,EAAAA,CAAAA,CAAe,CACxB,IAAIG,CAAAA,CAA+BH,EAAcxoD,MAAQxF,CAAAA,CAAAA,EAAcA,EAAKwoD,MAAU,EAAA,SAAS,CAC3F2F,CAAAA,CAAAA,GACAA,EAA0BA,CAAwB,CAAA,CAAC,CAEvDJ,CAAAA,CAAAA,CAAAA,EACIA,EAAMK,OAASC,CAAAA,CAAAA,EAAa,CACxB,IAAIC,EAAmBN,CAAcxoD,CAAAA,MAAAA,CAAQ+oD,GAAsBA,CAAa/F,CAAAA,MAAAA,EAAU6F,EAAKz+B,EAAE,CAAA,CAE7F0+B,CAAoBA,EAAAA,CAAAA,CAAiB/1C,OAAS,CAC9C+1C,EAAAA,CAAAA,CAAmBA,CAAiB,CAAA,CAAC,EAChCA,CAAiBE,CAAAA,YAAAA,GAClBF,CAAiBE,CAAAA,YAAAA,CAAeL,EAAwBK,YAG5DF,CAAAA,EAAAA,CAAAA,CAAmBH,EAEM,IAAKrjB,CAAAA,qBAAAA,CAAsB0iB,wBACpCiB,CAAAA,6BAAAA,GAChBH,CAAiBE,CAAAA,YAAAA,CAAeF,GAAkBI,WAC5CJ,CAAAA,CAAAA,CAAiBI,YACjBP,CAAwBO,CAAAA,WAAAA,CAAAA,CAE9BT,GAAqBK,CAAoBL,EAAAA,CAAAA,CAAkBK,CAAiB9F,CAAAA,MAAM,IAClF8F,CAAiBK,CAAAA,kBAAAA,CAAqBV,EAAkBK,CAAiB9F,CAAAA,MAAM,GAEnF6F,CAAKO,CAAAA,YAAAA,CAAeN,CAChBD,CAAAA,CAAAA,CAAKO,aAAapG,MAAW,GAAA,SAAA,EAAa6F,CAAKO,CAAAA,YAAAA,CAAaD,qBAC5DN,CAAKtrD,CAAAA,IAAAA,CAAOsrD,CAAKO,CAAAA,YAAAA,CAAaD,oBAElC,IAAKpC,CAAAA,iBAAAA,CAAkBh3C,IAAI84C,CAAKz+B,CAAAA,EAAAA,CAAIy+B,CAAI,EAC5C,CAAC,EACT,CACJ,CACAQ,eAAgBC,CAAAA,CAAAA,CAAW,CACvB,OAAO,KAAKvC,iBAAkBttB,CAAAA,GAAAA,CAAI6vB,CAAM,CAC5C,CACAC,sBAAsB,EAAA,CAClB,IAAIC,CAAgB,CAAA,GACpB,OAAI,IAAA,CAAKzC,iBAAqB,EAAA,IAAA,CAAKA,kBAAkB3xB,IAAO,CAAA,CAAA,EAAK,IAAK4xB,CAAAA,mBAAAA,EAAuB,KAAKA,mBAAoBj0C,CAAAA,MAAAA,CAAS,CAC3Hy2C,GAAAA,CAAAA,CAAW,KAAKxC,mBAAoBhnD,CAAAA,MAAAA,CAAQxF,GAAc,IAAKusD,CAAAA,iBAAAA,CAAkB0C,IAAIjvD,CAAI,CAAC,CACtFgvD,CAAAA,CAAAA,EAAYA,EAASz2C,MAAS,CAAA,CAAA,CAAA,CACvBy2C,CAInB,CACAE,qBAAAA,CAAsBC,EAAS,CAC3B,OAAI,IAAK1kB,CAAAA,IAAAA,CAAKkR,iBAAmBwT,CAAMC,EAAAA,UAAAA,EAAclP,MAAaiP,CAAMC,EAAAA,UAAAA,EAAc,KAAK5C,mBAAoBj0C,CAAAA,MAAAA,CAAS,CAC7G,CAAA,IAAA,CAAKi0C,oBAAoBrU,OAAQgX,CAAAA,CAAAA,CAAK5a,MAAM,CAAA,CAAI,GAEpD,CACX,CAAA,CACA8a,uBAAuB,EAAA,CACnB,IAAIC,CAAmB,CAAA,GACvB,OAAI,IAAA,CAAK/C,mBAAqB,IAAKA,CAAAA,iBAAAA,CAAkB3xB,IAAO,CAAA,CAAA,EAAK,KAAK6xB,oBAAwB,EAAA,IAAA,CAAKA,oBAAqBl0C,CAAAA,MAAAA,CAAS,IAC7H+2C,CAAc,CAAA,IAAA,CAAK7C,oBAAqBjnD,CAAAA,MAAAA,CAAQxF,GAAc,IAAKusD,CAAAA,iBAAAA,CAAkB0C,IAAIjvD,CAAI,CAAC,EAC1FsvD,CAAeA,EAAAA,CAAAA,CAAY/2C,MAAS,CAAA,CAAA,CAAA,CAC7B+2C,CAInB,CAEAC,iBAAAA,EAAiB,CACb,OAAO,KAAKvC,qBAChB,CACAwC,iBAAiB,EAAA,CACb,OAAO,IAAKvC,CAAAA,cAChB,CACAwC,eAAe,EAAA,CACX,OAAO,IAAKvC,CAAAA,YAChB,CACAwC,qBAAAA,EAAqB,CACjB,OAAO,IAAA,CAAKvC,kBAChB,CAEAwC,UAAAA,CAAWC,EAAa,CACpB,IAAIC,CAAU,CAAA,CAAA,CACRC,EAAa,IAAIhd,IAAAA,GAAOE,OAAO,EAAA,CACrC,GAAI4c,CAAYA,EAAAA,CAAAA,CAASr3C,MAAU,EAAA,CAAA,CAAG,CAClC,IAAMw3C,CAAAA,CAAQH,CAASpqD,CAAAA,MAAAA,CAAQwqD,GAEvB,IAAKxD,CAAAA,mBAAAA,EACL,IAAKA,CAAAA,mBAAAA,CAAoBrU,QAAQ6X,CAAEpgC,CAAAA,EAAE,EAAI,CACzCogC,CAAAA,EAAAA,CAAAA,CAAEC,OAAOC,cAAkB,EAAA,IAAA,EAC3B,IAAIpd,IAAAA,CAAKkd,EAAEC,MAAOC,CAAAA,cAAAA,CAAiB,GAAI,CAAA,CAAEld,SAAY8c,CAAAA,CAE5D,CACKK,CAAAA,CAAAA,CAASC,KAAK91C,GAAI+1C,CAAAA,KAAAA,CACpBD,KACAL,CAAMlgB,CAAAA,GAAAA,CAAKmgB,GACAA,CAAEC,CAAAA,MAAAA,CAAOC,cACnB,CAAC,EAEFC,CAAQN,GAAAA,CAAAA,CAAUO,IAAK71C,CAAAA,GAAAA,CAAI,EAAG,IAAIu4B,IAAAA,CAAKqd,CAAS,CAAA,GAAI,EAAEnd,OAAO,EAAA,CAAK8c,CAAU,CACpF,EAAA,CACI,KAAK3C,kBAAsB,EAAA,IAAA,CAAKA,kBAAmB,CAAA,mBAAA,GAC/C0C,EAAU,IAAK1C,CAAAA,kBAAAA,CAAmB,+BAAoC0C,CAAW,EAAA,CAAA,CAAA,GACjFA,EAAU,IAAK1C,CAAAA,kBAAAA,CAAmB,6BAEtC0C,CAAAA,CAAAA,CAAAA,CAAU,IACV,IAAK3B,CAAAA,eAAAA,CAAkBxb,WAAW,IAAK,CACnC,KAAKga,YAAa,CAAA,CAAA,CAAA,CAAO,CAAK,CAAA,EAClC,EAAGmD,CAAO,CAAA,EAClB,CAhMS5D,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAoBxtB,IAAAysB,IAAA,CAAA,CAAAzsB,GAAA6nB,CAAAA,IAAA,EAAA7nB,GAAAsP,CAAAA,GAAA,EAAAtP,GAAAmpB,CAAAA,IAAA,EAAAnpB,GAAA2kB,CAAAA,EAAA,CAAA3kB,CAAAA,GAAAA,CAAAiP,GAAA,CAAA,CAAA,CAApBue,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAoBzvD,QAApByvD,CAAoBlX,CAAAA,SAAAA,CAAAC,UAFjB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOiX,EAAPqE,CAAOrE,CAAAA,OAAAA,CAAoB,KCIjC,IAAasE,IAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAAA,CAAP,MAAOA,CAAgB,CAczB9gD,WACY04C,CAAAA,CAAAA,CACA1d,CACA+lB,CAAAA,CAAAA,CACAlR,EACA7C,CACA3R,CAAAA,CAAAA,CACA2lB,EACAC,CACAC,CAAAA,CAAAA,CACAC,EAAsD,CATtD,IAAA,CAAAzI,GAAAA,CAAAA,CAAAA,CACA,KAAA1d,IAAAA,CAAAA,CAAAA,CACA,KAAA+lB,mBAAAA,CAAAA,CAAAA,CACA,KAAAlR,SAAAA,CAAAA,CAAAA,CACA,IAAA7C,CAAAA,mBAAAA,CAAAA,EACA,IAAA3R,CAAAA,qBAAAA,CAAAA,EACA,IAAA2lB,CAAAA,MAAAA,CAAAA,EACA,IAAAC,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,iBAAAA,CACA,CAAA,IAAA,CAAAC,0BAAAA,CAAAA,CAAAA,CAvBZ,KAAAC,cAA2B,CAAA,EAC3B,CAAA,IAAA,CAAAC,2BAAuC,EAAA,CAC/B,KAAAC,qBAAwB,CAAA,IAAI/c,KAAqB,IAAI,CAAA,CAC7D,IAAAgd,CAAAA,4BAAAA,CAAgD,KAAKD,qBAAsB7c,CAAAA,YAAAA,EACnE,CAAA,IAAA,CAAA+c,kCAAoC,IAAIjd,IAAAA,CAAqB,IAAI,CAAA,CACjE,KAAAkd,iCAAoC,CAAA,IAAIld,KAAqB,IAAI,CAAA,CACzE,KAAAmd,wCAA4D,CAAA,IAAA,CAAKF,iCAAkC/c,CAAAA,YAAAA,GACnG,IAAAkd,CAAAA,wCAAAA,CAA4D,IAAKF,CAAAA,iCAAAA,CAAkChd,cAC3F,CAAA,IAAA,CAAAmd,kBAAqB,CAAA,IAAIrd,KAAyB,CAAK,CAAA,CAAA,CAC/D,KAAAsd,mBAA2C,CAAA,IAAA,CAAKD,mBAAmBnd,YAAY,EAAA,CAE/E,IAAAqd,CAAAA,sBAAAA,CAAyB/3B,IAAOgsB,EAAsB,CAAA,CAclDxN,OAAOhc,gBAAiB,CAAA,2BAAA,CAA8B1gB,GAAS,CACvDA,CAAAA,EACA,IAAKk2C,CAAAA,iBAAAA,GAEb,CAAC,EACL,CAEAA,iBAAiB,EAAA,CACb,IAAM9I,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAC5CuB,CAAqB,CAAA,IAAA,CAAK0G,0BAA2BzG,CAAAA,gBAAAA,GAC3D,IAAKhC,CAAAA,GAAAA,CAAIlpB,GAAIypB,CAAAA,CAAAA,CAAe+I,iBAAiB,QAAa,CAAA,CAAEvH,UAAWA,CAAS,CAAA,CAAI,CAAEuB,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAA,CAAE31B,UAC1G+2B,CAAiB,EAAA,CAGd,GAFA,IAAA,CAAKgE,eAAiBhE,CACtB,CAAA,IAAA,CAAKkE,qBAAsBzlC,CAAAA,IAAAA,CAAK,KAAKulC,cAAc,CAAA,CAC/C,KAAKJ,MAAOiB,CAAAA,SAAAA,CAAU,eAAe,CAAG,CAAA,CACxC,IAAMC,CAAAA,CAAoB,KAAKlB,MAAOiB,CAAAA,SAAAA,CAAU,eAAe,CAAA,CAC/D,KAAKE,mBAAoBC,CAAAA,GAAAA,CAAA,EAAKF,CAAAA,CAAAA,CAAAA,CAAqB,EAAI,CACvD,CAAA,IAAA,CAAKlB,OAAOt3B,MAAO,CAAA,eAAe,EACtC,CACJ,CAAA,CACA,IAAK,CACD,KAAK43B,qBAAsBzlC,CAAAA,IAAAA,CAAK,KAAKulC,cAAc,EACvD,CAAC,EAET,CAEAiB,iBAAiB,EAAA,CACb,OAAI,IAAKjB,CAAAA,cAAAA,EAAkB,KAAKA,cAAet4C,CAAAA,MAAAA,CAAS,EAC7C,IAAKs4C,CAAAA,cAAAA,CAET,EACX,CAEAkB,gCAAiClJ,CAAAA,CAAAA,CAAsBtU,CAAc,CAAA,CAC7DsU,EACA,IAAKiI,CAAAA,0BAAAA,CAA2BkB,IAAKzd,CAAAA,CAAM,EACpC,IAAKuc,CAAAA,0BAAAA,EACZ,KAAKA,0BAA2BmB,CAAAA,MAAAA,CAAO,KAAKnB,0BAA2B3Y,CAAAA,OAAAA,CAAQ5D,CAAM,CAAA,CAAG,CAAC,CAE7F,CAAA,IAAA,CAAK0c,iCAAkC3lC,CAAAA,IAAAA,CAAK,KAAKwlC,0BAA0B,CAAA,CAC3E,IAAKoB,CAAAA,sBAAAA,CAAuBrJ,EAAatU,CAAM,EACnD,CAEA2d,sBAAuBrJ,CAAAA,CAAAA,CAAsBtU,EAAc,CACvD,IAAI4d,CACJA,CAAAA,CAAAA,CAAe,CACXtJ,WAAaA,CAAAA,CAAAA,CACbuJ,QAAU7d,CAAAA,CAAAA,CAAAA,CAEd,KAAK2c,iCAAkC5lC,CAAAA,IAAAA,CAAK6mC,CAAY,EAC5D,CAEAE,cAAeC,CAAAA,CAAAA,CAAyBnD,EAAS,CAC7C,IAAA,CAAKoC,uBAAuB5L,OAAQ,CAAA,CAChC5iD,IAAMuiD,CAAAA,EAAAA,CAAWiN,gBACjB/nB,IAAM,CAAA,CACF,CAAC+a,IAAciN,CAAAA,wBAAwB,EAAGF,CAC1C,CAAA,CAAC/M,IAAckN,CAAAA,oBAAoB,EAAGtD,CAAKuD,CAAAA,kBAAAA,CAAqBvD,EAAKwD,WAAczS,CAAAA,KAAAA,CAAAA,CAAAA,CAE1F,EACL,CAEA0S,UAAAA,CAAWjB,CAAyBkB,CAAAA,CAAAA,CAA6B,GAAOC,CAAqB,CAAA,CAAA,CAAA,CAAK,CAC9F,IAAMv2D,EAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAC7D,GAAI+jB,CAAqBlB,EAAAA,CAAAA,EAAqB,KAAKzC,qBAAsByC,CAAAA,CAAiB,EAAG,CACzF,IAAA,CAAKU,cAAe9M,CAAAA,IAAAA,CAAcwN,oBAAqBpB,CAAiB,CAAA,CACxE,MACJ,CACA,GAAI,IAAKlnB,CAAAA,IAAAA,CAAKkR,eAAiB,CAAA,CAC3B,IAAMqX,CAAkBrB,CAAAA,CAAAA,CAAkBpd,OACpCsU,CAAc,CAAA,CAAC,KAAKqG,qBAAsByC,CAAAA,CAAiB,CACjE,CAAA,GAAIA,EAAkBvC,UAAclP,EAAAA,IAAAA,EAAa,CAACyR,CAAAA,CAAkBvC,WAC5DuC,CAAkB9I,CAAAA,WAAAA,CAClB,IAAK6H,CAAAA,qBAAAA,CAAsB3H,gBAAgB4I,CAAkBpd,CAAAA,MAAAA,CAAQ,KAAK9J,IAAK7a,CAAAA,EAAAA,EAAM,EAAE,CAAEkG,CAAAA,SAAAA,CACpF+2B,CAAiB,EAAA,CACd,GAAIA,CAAS9sD,CAAAA,MAAAA,GACT,KAAK4wD,gBAAiBjE,CAAAA,YAAAA,CAAa,GAAO,CAAK,CAAA,CAAA,CAC/C,IAAKwF,CAAAA,sBAAAA,CAAuB,GAAOP,CAAkBpd,CAAAA,MAAM,EACvD,IAAKkI,CAAAA,mBAAAA,CAAoB1E,gBAAoB4Z,EAAAA,CAAAA,CAAkBsB,aAAe,CAAA,CAAA,CAC9E,IAAMC,CAAiB,CAAA,CACnBrZ,UAAY,CAAA,YAAA,CACZiV,OAAQ6C,CAAkBpd,CAAAA,MAAAA,CAC1BsU,WAAa,CAAA,CAAA,CAAA,CAAA,CAEjB,KAAKpM,mBAAoB9D,CAAAA,mBAAAA,CAAoB,aAAcua,CAAc,EAC7E,CAER,CACA,CAAA,IAAK,EAAG,EAGZ,IAAKxC,CAAAA,qBAAAA,CAAsBnI,YAAaoJ,CAAAA,CAAAA,CAAkBpd,OAAQ,IAAK9J,CAAAA,IAAAA,CAAK7a,EAAM,EAAA,EAAE,EAAEkG,SACjF+2B,CAAAA,CAAAA,EAAiB,CACd,GAAIA,CAAAA,CAAS9sD,SACT,IAAK4wD,CAAAA,gBAAAA,CAAiBjE,YAAa,CAAA,CAAA,CAAA,CAAO,EAAK,CAC/C,CAAA,IAAA,CAAKwF,sBAAuB,CAAA,CAAA,CAAA,CAAMP,EAAkBpd,MAAM,CAAA,CACtD,IAAKkI,CAAAA,mBAAAA,CAAoB1E,gBAAoB4Z,EAAAA,CAAAA,CAAkBsB,eAAe,CAC9E,IAAMC,EAAiB,CACnBrZ,UAAAA,CAAY,YACZiV,CAAAA,MAAAA,CAAQ6C,EAAkBpd,MAC1BsU,CAAAA,WAAAA,CAAa,CAEjB,CAAA,CAAA,CAAA,IAAA,CAAKpM,oBAAoB9D,mBAAoB,CAAA,YAAA,CAAcua,CAAc,EAC7E,CAER,CACA,CAAA,IAAK,EAAG,CAAA,CAAA,KAGb,CACH,IAAMC,CAAAA,CAAc,CAAEH,eAAAA,CAAAA,EAAiBnK,WAAAA,CAAAA,CAAW,CAClD,CAAA,IAAA,CAAKV,IAAIyD,GAAI,CAAA,wBAAA,CAA0BuH,CAAa,CAAA,CAAE1H,gBAAiB,CAAM2H,CAAAA,CAAAA,WAAAA,CAAa,EAAK,CAAE,CAAA,CAAEt9B,UAC9F+2B,CAAiB,EAAA,CACd,GAAIA,CAAAA,EACIA,GAAYA,CAASwG,CAAAA,SAAAA,GAAc,CAAG,CAAA,CACtC,KAAKxC,cAAiBhE,CAAAA,CAAAA,CAASyG,UAC/B,CAAA,IAAMlf,EAAMyY,CAASyG,CAAAA,UAAAA,CACrB,KAAKC,aAAc5B,CAAAA,CAAiB,EACpC,IAAKZ,CAAAA,qBAAAA,CAAsBzlC,IAAK,CAAA,IAAA,CAAKulC,cAAc,CAC/Czc,CAAAA,CAAAA,EAAOA,CAAI+D,CAAAA,OAAAA,CAAQwZ,EAAkBpd,MAAM,CAAA,CAAI,CAAM,CAAA,EAAA,CAACue,EACtD,IAAKT,CAAAA,cAAAA,CAAe9M,KAAciO,gBAAkB7B,CAAAA,CAAiB,EAC7DmB,CACR,EAAA,IAAA,CAAKT,cAAe9M,CAAAA,IAAAA,CAAcwN,oBAAqBpB,CAAiB,EAEhF,CAER,CACC9E,CAAAA,CAAAA,EAAY,CACT,GAAIA,CAAAA,EAAYA,CAAS4G,CAAAA,QAAAA,CAAU,CAC/B,IAAMxvD,CAAAA,CAAU,KAAKusD,mBAAoBkD,CAAAA,QAAAA,CAAS,gBAAgB,CAC9DzvD,CAAAA,CAAAA,EACA,IAAKusD,CAAAA,mBAAAA,CAAoBr3B,OAAOl1B,CAAO,CAAA,CAEvC1H,CAAQ2yC,EAAAA,QAAAA,CAAS,gBACjB,IAAKshB,CAAAA,mBAAAA,CAAoBz+C,GAAIxV,CAAAA,CAAAA,CAAO2yC,SAAS,cAAmBykB,CAAAA,EAAAA,CAAYC,YAAaC,IAAgBC,CAAAA,QAAQ,EAErH,IAAKxU,CAAAA,SAAAA,CAAUgB,IAAKuM,CAAAA,CAAAA,CAAS4G,SAAU,CAAEM,WAAAA,CAAa,CAAI,CAAA,CAAE,EAChE,CACJ,CAAC,EAET,CACJ,CACJ,CAEAC,oBAAAA,EAAoB,CAChB,IAAK3C,CAAAA,kBAAAA,CAAmB/lC,KAAK,CAAI,CAAA,EACrC,CACAsmC,mBAAAA,CAAoBD,EAAwBkB,CAA6B,CAAA,CAAA,CAAA,CAAOC,CAAqB,CAAA,CAAA,CAAA,CAAK,CACtG,IAAKF,CAAAA,UAAAA,CAAWjB,CAAmBkB,CAAAA,CAAAA,CAAmBC,CAAS,EACnE,CAEA5D,sBAAsBC,CAAS,CAAA,CAC3B,GAAI,IAAK1kB,CAAAA,IAAAA,CAAKkR,eAAmBwT,EAAAA,CAAAA,EAAQjP,KAAW,CAChD,GAAIiP,EAAKC,UAAclP,EAAAA,IAAAA,EAAa,CAACiP,CAAKC,CAAAA,UAAAA,EAAc,IAAK0B,CAAAA,0BAAAA,EAA8B,CAAC3B,CAAK8D,CAAAA,aAAAA,CAC7F,OAAO,IAAKnC,CAAAA,0BAAAA,CAA2B3Y,QAAQgX,CAAK5a,CAAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAC3D,GAAI4a,CAAK8D,CAAAA,aAAAA,CACZ,OAAO9D,CAAAA,CAAKtG,YACT,GAAI,IAAA,CAAKgI,cACZ,CAAA,OAAO,KAAKA,cAAkB,EAAA,IAAA,CAAKA,eAAe1Y,OAAQgX,CAAAA,CAAAA,CAAK5a,MAAM,CAAI,CAAA,CAAA,CAEjF,CACA,OAAO,EACX,CAEAgf,aAAAA,CAAcpE,CAAS,CAAA,CACnB,IAAMtG,CAAc,CAAA,IAAA,CAAKqG,qBAAsBC,CAAAA,CAAI,EAC7C8E,CAAW,CAAA,CACb1f,OAAQ4a,CAAK5a,CAAAA,MAAAA,CACbsU,YAAaA,CAEXqL,CAAAA,CAAAA,CAAAA,CAAM,IAAIC,WAAAA,CAAY,yBAA0B,CAAEx7B,MAAAA,CAAQs7B,CAAQ,CAAE,EAC1Ejc,MAAOoc,CAAAA,aAAAA,CAAcF,CAAG,EAC5B,yCAtMS3D,CAAgB9xB,EAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAAiP,GAAA,CAAAjP,CAAAA,GAAAA,CAAA41B,IAAA,CAAA,CAAA51B,IAAAwb,EAAA,CAAA,CAAAxb,IAAAmZ,EAAA,CAAA,CAAAnZ,IAAAsP,GAAA,CAAA,CAAAtP,GAAA0kB,CAAAA,EAAA,EAAA1kB,GAAAwpB,CAAAA,EAAA,EAAAxpB,GAAAwtB,CAAAA,EAAA,EAAAxtB,GAAAqrB,CAAAA,IAAA,CAAA,CAAA,0BAAhByG,CAAgB/zD,CAAAA,OAAAA,CAAhB+zD,CAAgBxb,CAAAA,SAAAA,CAAAC,WAFb,MAAM,CAAA,CAEhB,CAAA,IAAOub,EAAP+D,CAAO/D,CAAAA,OAAAA,CAAgB,KCZ7B,IAAagE,MAAkC,IAAA,CAAzC,IAAOA,CAAAA,CAAP,MAAOA,CAAkC,CAG3C9kD,WAAA,EAAA,EACA+kD,oBAAqBC,CAAAA,CAAAA,CAAsB,CACvC,IAAA,CAAKA,kBAAoBA,EAC7B,CAEAC,sBAAoB,CAChB,OAAO,KAAKD,iBAChB,CAEAE,cAAeC,CAAAA,CAAAA,CAAgB,CAC3B,IAAKA,CAAAA,WAAAA,CAAcA,EACvB,CAEAC,gBAAc,CACV,OAAO,IAAKD,CAAAA,WAChB,yCAlBSL,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA53D,GAAA,CAAA,CAAA,KAAA,CAAlC43D,EAAkC/3D,OAAlC+3D,CAAAA,CAAAA,CAAkCxf,UAAAC,UAF/B,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOuf,CAAPO,CAAAA,CAAAA,CAAAA,OAAOP,CAAkC,CAAA,QCOzCQ,EAA8B,CAAA,0BAAA,CAC9BC,EAA4B,CAAA,wBAAA,CAKrBC,IAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAwB3BxlD,WAAAA,CACY04C,CACA+D,CAAAA,CAAAA,CACAphB,EACAoqB,CACA5M,CAAAA,CAAAA,CACAxQ,CACA+E,CAAAA,CAAAA,CACAsY,EACAC,CACA/M,CAAAA,CAAAA,CAAoC,CATpC,IAAA,CAAAF,IAAAA,CACA,CAAA,IAAA,CAAA+D,iBAAAA,CACA,CAAA,IAAA,CAAAphB,sBAAAA,CACA,CAAA,IAAA,CAAAoqB,YAAAA,CAAAA,CAAAA,CACA,KAAA5M,qBAAAA,CAAAA,CAAAA,CACA,IAAAxQ,CAAAA,qBAAAA,CAAAA,EACA,IAAA+E,CAAAA,MAAAA,CAAAA,CACA,CAAA,IAAA,CAAAsY,OAAAA,CACA,CAAA,IAAA,CAAAC,iBAAAA,CACA,CAAA,IAAA,CAAA/M,kBAAAA,CAjCJ,CAAA,IAAA,CAAAgN,cAAiB,CAAA,IAAIrhB,KAAqB,IAAI,CAAA,CAC9C,IAAAshB,CAAAA,gBAAAA,CAAmB,IAAIthB,IAAqB,CAAA,IAAI,CAChD,CAAA,IAAA,CAAAuhB,iBAAmB,IAAIvhB,IAAAA,CAAqB,IAAI,CAChD,CAAA,IAAA,CAAAwhB,oBAAsB,IAAIxhB,IAAAA,CAAqB,IAAI,CAAA,CAC3D,KAAAyhB,qBAAyC,CAAA,IAAA,CAAKF,iBAAiBrhB,YAAY,EAAA,CACnE,KAAAwhB,iCAAoC,CAAA,IAAI1hB,IAAyB,CAAA,CAAA,CAAK,EAC9E,IAAA2hB,CAAAA,qBAAAA,CAAyC,KAAKN,cAAenhB,CAAAA,YAAAA,GAC7D,IAAA0hB,CAAAA,0BAAAA,CAA8C,IAAKJ,CAAAA,mBAAAA,CAAoBthB,cACvE,CAAA,IAAA,CAAA2hB,2CAAmE,CAAA,IAAA,CAAKH,kCAAkCxhB,YAAY,EAAA,CACtH,IAAA4hB,CAAAA,mBAAAA,CAAuC,KAAKR,gBAAiBphB,CAAAA,YAAAA,GAE7D,IAAA6hB,CAAAA,cAAAA,CAAmC,IAAInlB,GACvC,CAAA,IAAA,CAAAolB,mBAAwC,CAAA,IAAIplB,IAE5C,IAAAqlB,CAAAA,YAAAA,CAAe,CAGf,CAAA,IAAA,CAAAC,sCAA6C,CAkBzCl6B,CAAAA,gBAAAA,CAAiBg5B,EAA2B,CAAA,IAAA,CAAKmB,wBAAwB,EAC7E,CAEAC,cAAY,CACR,IAAM1N,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACjEG,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,YACxCa,CAAAA,CAAAA,CAAe2N,SAAS,eACxB,CAAA,IAAA,CAAKve,qBAAsBZ,CAAAA,iBAAAA,EAAmB,CAGlD,CAAA,IAAA,CAAKgV,iBAAiBZ,mBAAoBxC,CAAAA,CAAQ,EAAEhzB,SAC/C+2B,CAAAA,CAAAA,EAAiB,CACd,IAAA,CAAKyJ,cAAgBzJ,CACrB,CAAA,IAAA,CAAK0J,YAAY1J,CAAQ,EAC7B,EACA,IAAK,CACD,IAAKhQ,CAAAA,MAAAA,CAAO1lC,MAAM,kDAAkD,EACxE,CAAC,EAET,CAEAq/C,mBAAiB,CAEb,GADsB,IAAK1rB,CAAAA,qBAAAA,CAAsBkX,sBAC/ByU,CAAAA,iBAAAA,CAAmB,CACjC,IAAM/N,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACjEG,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aACxCa,CAAegO,CAAAA,YAAAA,CAAa,gBAC5B,IAAK5e,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAE,EAElD,IAAKgV,CAAAA,gBAAAA,CAAiBjtB,GAAI6pB,CAAAA,CAAQ,EAAEhzB,SAC/B+2B,CAAAA,CAAAA,EAAiB,CACd,IAAA,CAAK2I,oBAAoBlqC,IAAKuhC,CAAAA,CAAQ,EAC1C,CACA,CAAA,IAAK,CACD,IAAKhQ,CAAAA,MAAAA,CAAO1lC,KAAM,CAAA,kDAAkD,EACxE,CAAC,EAET,CACJ,CAEAw/C,WAAS,CACL,IAAMC,CAAc,CAAA,IAAA,CAAK9rB,sBAAsBkX,oBAAoB,EAAA,CAC3C,KAAKlX,qBAAsB+rB,CAAAA,sBAAAA,GAC/BC,iBAChB,GAAA,IAAA,CAAKb,YACA,EAAA,CAAA,IAAA,CAAKc,sBACN,IAAKX,CAAAA,YAAAA,GACL,IAAKI,CAAAA,iBAAAA,GAEDI,CAAYI,CAAAA,kCAAAA,EACZ,IAAKC,CAAAA,iBAAAA,GAET,IAAK7B,CAAAA,gBAAAA,CAAiB8B,aAAaC,IAAWC,CAAAA,yBAAAA,CAA2B,CAAE9d,QAAUsd,CAAAA,CAAAA,CAAYS,UAAU,CAAA,CAAI,IAAK,CAC3G,IAAA,CAAKhP,iBAAkBZ,CAAAA,oBAAAA,KAC5B,IAAK2O,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAKI,mBACDI,CAAAA,CAAAA,CAAYI,oCACZ,IAAKC,CAAAA,iBAAAA,IAEb,CAAC,CAAA,CAAA,EAGb,CAEAV,WAAAA,CAAYe,EAAgB,CACpBA,CAAAA,EACAC,MAAO55D,CAAAA,IAAAA,CAAK25D,CAAW,CAAElJ,CAAAA,OAAAA,CAASoJ,CAAsB,EAAA,CAChDF,EAAYE,CAAU,CAAA,EAAGC,kBACzB,IAAKzB,CAAAA,mBAAAA,EAAqBzgD,IAAI+hD,CAAYE,CAAAA,CAAU,CAAEC,CAAAA,gBAAAA,EAAkBjgB,aAAe8f,CAAAA,CAAAA,CAAYE,CAAU,CAAC,EAE9GF,CAAYE,CAAAA,CAAU,CAAKF,EAAAA,CAAAA,CAAYE,CAAU,CAAEE,CAAAA,SAAAA,EAAaJ,EAAYE,CAAU,CAAA,CAAEE,UAAUn/C,MAAS,CAAA,CAAA,EAC3G++C,CAAYE,CAAAA,CAAU,EAAEE,SAAUtJ,CAAAA,OAAAA,CAAS7Z,GAAkB,CACzD,IAAMojB,EAAqB,CACvBC,MAAAA,CAAQN,CAAYE,CAAAA,CAAU,EAAEI,MAChCC,CAAAA,iBAAAA,CAAmBP,EAAYE,CAAU,CAAA,CAAEK,kBAC3CC,WAAaN,CAAAA,CAAAA,CACbO,iBAAmBT,CAAAA,CAAAA,CAAYE,CAAU,CAAEQ,CAAAA,UAAAA,CAC3CC,uBAAyBX,CAAAA,CAAAA,CAAYE,CAAU,CAAES,CAAAA,uBAAAA,CAAAA,CAErD,IAAKlC,CAAAA,cAAAA,CAAexgD,IAAIg/B,CAAQojB,CAAAA,CAAa,EACjD,CAAC,EAET,CAAC,CAELvD,CAAAA,aAAAA,CACI,IAAID,WAAAA,CAAYY,GAA6B,CACzCp8B,MAAAA,CAAQ,IAAKo9B,CAAAA,cAAAA,CAChB,CAAC,CAEN,CAAA,IAAA,CAAKV,cAAe/pC,CAAAA,IAAAA,CAAK,KAAKyqC,cAAc,CAAA,CAC5C,KAAKmC,sBAAsB,GAC/B,CAEAC,8BAA+BC,CAAAA,CAAAA,CAAkB,CAC7C,IAAA,CAAK1C,kCAAkCpqC,IAAK8sC,CAAAA,CAAS,EACzD,CAEAC,gBAAc,CACV,OAAO,IAAK/B,CAAAA,aAChB,CACA,IAAYrJ,cAAAA,EAAc,CACtB,OAAO,IAAA,CAAKniB,sBAAsBgE,mBAAmB,EAAA,EAAII,QAC7D,CAEA,IAAIopB,eAAe,EAAA,CACf,OAAO,IAAKrL,CAAAA,cAAAA,EAAgBsL,oBAChC,CAEA,IAAIC,iBAAiB,EAAA,CACjB,OAAO,IAAKvL,CAAAA,cAAAA,EAAgBwL,sBAChC,CAEAC,sBAAAA,CAAuBC,EAAiB,CACpC,IAAIC,CAAwB,CAAA,EAAA,CACxBC,EAA0B,EAC9B,CAAA,OAAIF,CAAgB,EAAA,IAAA,CAAKL,iBAAmB,IAAKE,CAAAA,iBAAAA,GAC7CI,CAAgB,CAAA,IAAA,CAAKN,gBACrBO,CAAkB,CAAA,IAAA,CAAKL,mBAEvBG,CAAcZ,EAAAA,iBAAAA,EAAmBQ,sBAAwBI,CAAcZ,EAAAA,iBAAAA,EAAmBU,sBAC1FG,GAAAA,CAAAA,CAAgBD,GAAcZ,iBAAmBQ,EAAAA,oBAAAA,CACjDM,CAAkBF,CAAAA,CAAAA,EAAcZ,mBAAmBU,sBAEnDE,CAAAA,CAAAA,CAAAA,EAAcV,uBACdW,GAAAA,CAAAA,CAAgBD,GAAcV,uBAAyBM,EAAAA,oBAAAA,CACvDM,EAAkBF,CAAcV,EAAAA,uBAAAA,EAAyBQ,wBAEtD,CAAEK,SAAAA,CAAWF,CAAeG,CAAAA,WAAAA,CAAaF,CAAe,CACnE,CAEAG,sBAAsB,EAAA,CAClB,OAAO,IAAKhD,CAAAA,mBAChB,CAEAiD,qBAAAA,CAAsBC,EAAiB,CACnC,OAAI,KAAKlD,mBAAuB,EAAA,IAAA,CAAKA,oBAAoBp7B,IAAO,CAAA,CAAA,CACrD,IAAKo7B,CAAAA,mBAAAA,CAAoB/2B,IAAIi6B,CAAS,CAAA,CAE1C,IACX,CAEAC,mBAAAA,CAAoB5kB,EAAc,CAC9B,OAAO,IAAKwhB,CAAAA,cAAAA,CAAe92B,IAAIsV,CAAM,CACzC,CAEA6kB,QAAQ,EAAA,CACJ,KAAKnD,YACD,EAAA,CAAA,IAAA,CAAKA,YAAiB,GAAA,CAAA,EAAK,KAAKc,mBAEhC,GAAA,IAAA,CAAK3B,gBAAiBiE,CAAAA,YAAAA,CAAalC,KAAWC,yBAAyB,CAAA,CACvE,IAAKL,CAAAA,mBAAAA,CAAsB7W,OAC3B,IAAKoW,CAAAA,aAAAA,CAAgBpW,OACrB,IAAK6V,CAAAA,cAAAA,CAAiB,IAAInlB,GAElC,EAAA,CAEAqmB,iBAAiB,EAAA,CACbtd,cAAc,IAAK2f,CAAAA,eAAe,CAClC,CAAA,IAAA,CAAKA,gBAAkB,IAAKpE,CAAAA,YAAAA,CAAaqE,6BAA8B,CAAA,IAAK,CACnE,IAAKlR,CAAAA,iBAAAA,CAAkBZ,sBAC5B,EAAA,IAAA,CAAKyQ,yBACT,CAAA,CAAG,IAAI,EACX,CAEAsB,cAAe/4D,CAAAA,CAAAA,CAAU,CACrB,IAAMg5D,EAAWh5D,CAAMuB,CAAAA,QAAAA,EAAW2b,CAAAA,KAAAA,CAAM,GAAG,CACrC+7C,CAAAA,CAAAA,CAAWD,EAAS,CAAC,CAAA,CACrBE,EAAcF,CAAS,CAAA,CAAC,CAC1BG,CAAAA,CAAAA,CAAM,GACV,IAAS18D,IAAAA,CAAAA,CAAIw8D,EAASnhD,MAAQrb,CAAAA,CAAAA,CAAI,EAAGA,CAAIA,CAAAA,CAAAA,CAAI,CACrCA,CAAAA,CAAAA,CAAI,EAAI,CACR08D,CAAAA,CAAAA,CAAM,IAAMF,CAASG,CAAAA,SAAAA,CAAU38D,EAAI,CAAGA,CAAAA,CAAC,CAAI08D,CAAAA,CAAAA,CAE3CA,EAAMF,CAASG,CAAAA,SAAAA,CAAU,CAAG38D,CAAAA,CAAC,EAAI08D,CAGzC,CAAA,OAAOA,CAAM,CAAA,GAAA,CAAMD,CACvB,CAEAzB,sBAAAA,EAAsB,CAClB,IAAM4B,CAAAA,CAAqB,KAAKhvB,qBAAsBgE,CAAAA,mBAAAA,EAChD8nB,CAAAA,CAAAA,CAAc,KAAK9rB,qBAAsBkX,CAAAA,oBAAAA,EAE/C,CAAA,IAAA,CAAK+T,eAAe3H,OAAQ,CAAA,CAAC3tD,CAAOzC,CAAAA,CAAAA,GAAO,CACvC,IAAI+7D,CAAAA,CAAgB,GAChBC,CAAWv5D,CAAAA,CAAAA,CAAMm3D,OACrBoC,CAAWA,CAAAA,CAAAA,CAAS5tB,OAAQ,CAAA,UAAA,CAAY,EAAE,CAC1C,CAAA,IAAM6tB,CAAkBD,CAAAA,CAAAA,CAASrhD,MAAM,cAAc,CAAA,CACrD,GAAIshD,CAAAA,EAAmBA,EAAgB1hD,MAAS,CAAA,CAAA,CAAG,CAC/C,IAASrb,IAAAA,CAAAA,CAAI,EAAGA,CAAI+8D,CAAAA,CAAAA,CAAgB1hD,MAAQrb,CAAAA,CAAAA,EAAAA,CACxC68D,EAAWA,CAAWE,CAAAA,CAAAA,CAAgB/8D,CAAC,CAE3C68D,CAAAA,CAAAA,CAAWA,EAAS3tB,OAAQ,CAAA,KAAA,CAAO,EAAE,CAAA,CACrC2tB,EAAWA,CAAS3tB,CAAAA,OAAAA,CAAQ,MAAO,EAAE,EACzC,CAOA,GANA4tB,CAAAA,CAAWA,CAAS5tB,CAAAA,OAAAA,CAAQ,MAAO,EAAE,CAAA,CACrC4tB,CAAWA,CAAAA,CAAAA,CAAS5tB,QAAQ,KAAO,CAAA,EAAE,CACrC4tB,CAAAA,CAAAA,CAAWA,EAAS5tB,OAAQ,CAAA,KAAA,CAAO,EAAE,CACrC4tB,CAAAA,CAAAA,CAAWA,EAAS5tB,OAAQ2tB,CAAAA,CAAAA,CAAU,EAAE,CAAA,CACxCC,EAAWA,CAAS5tB,CAAAA,OAAAA,CAAQ,KAAO,CAAA,EAAE,EACrC4tB,CAAWA,CAAAA,CAAAA,CAASrhD,KAAM,CAAA,cAAc,EAAE,CAAC,CAAA,CACvCqhD,EAASzhD,MAAS,CAAA,CAAA,CAAG,CACrB,IAAMmhD,CAAAA,CAAWM,CAAS96D,CAAAA,KAAAA,CAAM,EAAG86D,CAASzhD,CAAAA,MAAAA,CAAS,CAAC,CAAA,CAChDohD,EAAcK,CAAS96D,CAAAA,KAAAA,CAAM,CAAE,CAAA,CAAA,CACrC86D,EAAWN,CAAW,CAAA,GAAA,CAAMC,EAChC,CAEA,IAAIO,EAAwBC,UAAWH,CAAAA,CAAAA,CAAS5tB,OAAQ,CAAA,IAAA,CAAM,EAAE,CAAC,CAAA,CAC7D0tB,EAAmBM,mBAAoBC,CAAAA,qCAAAA,GACvC,KAAKnE,qCAAwC,CAAA,CAAC4D,CAAmBM,CAAAA,mBAAAA,CAAoBC,uCAEzFH,CAAmBA,CAAAA,CAAAA,CAAmB,KAAKhE,qCAAwC,CAAA,GAAA,CAEnFgE,EAAmB,IAAKV,CAAAA,cAAAA,CAAeU,CAAiBI,CAAAA,OAAAA,CAAQ,CAAC,CAAC,CAAA,CAC9D1D,CAAeA,EAAAA,CAAAA,CAAY2D,4BAC3BL,CAAmBA,CAAAA,CAAAA,CAAiB9tB,OAAQ,CAAA,OAAA,CAAUrrC,GAAYA,CAAM,GAAA,GAAA,CAAM,IAAM,GAAI,CAAA,CACxFN,EAAMm3D,MAASsC,CAAAA,CAAAA,CAAmB,GAAMH,CAAAA,CAAAA,CAAW,KAEnDt5D,CAAMm3D,CAAAA,MAAAA,CAASmC,CAAW,CAAA,GAAA,CAAMG,EAGpC,IAAKnE,CAAAA,cAAAA,CAAexgD,GAAIvX,CAAAA,CAAAA,CAAKyC,CAAK,EACtC,CAAC,EAED,IAAK00D,CAAAA,MAAAA,CAAOqF,IAAI,IAAK,CAEjB,IAAKlF,CAAAA,gBAAAA,CAAiBhqC,KAAK,IAAKyqC,CAAAA,cAAc,EAClD,CAAC,EACL,CACA0E,cAAAA,CAAeh6D,CAAU,CAAA,CACrB,IAAMm2D,CAAc,CAAA,IAAA,CAAK9rB,sBAAsBkX,oBAAoB,EAAA,CAC/D+X,EAAgB,EAChBC,CAAAA,CAAAA,CAAWv5D,CACfu5D,CAAAA,CAAAA,CAAWA,EAAS5tB,OAAQ,CAAA,UAAA,CAAY,EAAE,CAC1C,CAAA,IAAM6tB,EAAkBD,CAASrhD,CAAAA,KAAAA,CAAM,cAAc,CAAA,CACrD,GAAIshD,CAAmBA,EAAAA,CAAAA,CAAgB1hD,OAAS,CAAG,CAAA,CAC/C,QAASrb,CAAI,CAAA,CAAA,CAAGA,CAAI+8D,CAAAA,CAAAA,CAAgB1hD,OAAQrb,CACxC68D,EAAAA,CAAAA,CAAAA,CAAWA,CAAWE,CAAAA,CAAAA,CAAgB/8D,CAAC,CAE3C68D,CAAAA,CAAAA,CAAWA,CAAS3tB,CAAAA,OAAAA,CAAQ,MAAO,EAAE,CAAA,CACrC2tB,EAAWA,CAAS3tB,CAAAA,OAAAA,CAAQ,MAAO,EAAE,EACzC,CAOA,GANA4tB,EAAWA,CAAS5tB,CAAAA,OAAAA,CAAQ,KAAO,CAAA,EAAE,EACrC4tB,CAAWA,CAAAA,CAAAA,CAAS5tB,OAAQ,CAAA,KAAA,CAAO,EAAE,CACrC4tB,CAAAA,CAAAA,CAAWA,EAAS5tB,OAAQ,CAAA,KAAA,CAAO,EAAE,CACrC4tB,CAAAA,CAAAA,CAAWA,CAAS5tB,CAAAA,OAAAA,CAAQ2tB,EAAU,EAAE,CAAA,CACxCC,CAAWA,CAAAA,CAAAA,CAAS5tB,QAAQ,KAAO,CAAA,EAAE,CACrC4tB,CAAAA,CAAAA,CAAWA,EAASrhD,KAAM,CAAA,cAAc,EAAE,CAAC,CAAA,CACvCqhD,EAASzhD,MAAS,CAAA,CAAA,CAAG,CACrB,IAAMmhD,EAAWM,CAAS96D,CAAAA,KAAAA,CAAM,EAAG86D,CAASzhD,CAAAA,MAAAA,CAAS,CAAC,CAChDohD,CAAAA,CAAAA,CAAcK,CAAS96D,CAAAA,KAAAA,CAAM,EAAE,CACrC86D,CAAAA,CAAAA,CAAWN,EAAW,GAAMC,CAAAA,EAChC,CACA,IAAIO,CAAAA,CAAwBC,UAAWH,CAAAA,CAAAA,CAAS5tB,QAAQ,IAAM,CAAA,EAAE,CAAC,CAAA,CACjE8tB,OAAAA,CAAmB,CAAA,IAAA,CAAKV,cAAeU,CAAAA,CAAAA,CAAiBI,QAAQ,CAAC,CAAC,EAC9D1D,CAAeA,EAAAA,CAAAA,CAAY2D,4BAC3BL,CAAmBA,CAAAA,CAAAA,CAAiB9tB,OAAQ,CAAA,OAAA,CAAUrrC,GAAYA,CAAM,GAAA,GAAA,CAAM,GAAM,CAAA,GAAI,EACxF,IAAK43D,CAAAA,YAAAA,CAAeuB,CAAmB,CAAA,GAAA,CAAMH,EAAW,GAExD,EAAA,IAAA,CAAKpB,aAAeoB,CAAW,CAAA,GAAA,CAAMG,EAElC,IAAKvB,CAAAA,YAChB,CAEA+B,qBAAAA,EAAqB,CACjB,IAAKvS,CAAAA,GAAAA,CAAIlpB,GAAI,CAAA,6BAA6B,EAAEnJ,SAAW+2B,CAAAA,CAAAA,EAAiB,CACpE,IAAA,CAAK0I,iBAAiBjqC,IAAKuhC,CAAAA,CAAQ,EACnC,IAAK8N,CAAAA,iBAAAA,CAAkB9N,EAAS+N,cAAc,EAClD,CAAC,EACL,CACAD,iBAAkBE,CAAAA,CAAAA,CAAqB,CACnC,IAAIC,EAAqB,CACnBC,CAAAA,CAAAA,CAAoB,IAAKjwB,CAAAA,qBAAAA,CAAsBkX,sBAC/C4Y,CAAAA,CAAAA,CAAiBC,EAAmBzK,IAAK4K,CAAAA,KAAAA,CAAMloB,KAAKmoB,GAAG,EAAE,CAC3DL,CAAAA,CAAAA,CAAiB,GAAKA,CAAiBG,CAAAA,CAAAA,EAAmBG,uBAC1DJ,CAAAA,CAAAA,CAAaF,EAEbE,CAAaC,CAAAA,CAAAA,EAAmBG,uBAGhC,CAAA,IAAA,CAAKC,cACLxhB,aAAc,CAAA,IAAA,CAAKwhB,YAAY,CAEnC,CAAA,IAAA,CAAKA,aAAe,IAAKjG,CAAAA,YAAAA,CAAaqE,6BAA8B,CAAA,IAAK,CAChE,IAAKlR,CAAAA,iBAAAA,CAAkBZ,oBAAoB,EAAA,EAChD,KAAKiT,qBAAqB,GAC9B,CAAGI,CAAAA,CAAU,EACjB,CAEAM,aAAAA,CAAcC,EAAoBC,CAAgB,CAAA,CAC9C,IAAM5D,CAAY2D,CAAAA,CAAAA,CAAc71D,MAAQ+1D,CAAAA,CAAAA,EAAkBA,EAAS9D,gBAAoB6D,EAAAA,CAAW,CAClG,CAAA,GAAI5D,GAAaA,CAAU,CAAA,CAAC,CAAG8D,EAAAA,cAAAA,CAAgB,OAAO9D,CAAU,CAAA,CAAC,GAAG8D,cACxE,CAEAC,YAAYC,CAAoBhE,CAAAA,CAAAA,CAAc,CAC1C,IAAMiE,EAAiB,EAAA,CACvBD,EAActN,OAASwN,CAAAA,CAAAA,EAAc,CACjClE,CAAUtJ,CAAAA,OAAAA,CAASe,CAAa,EAAA,CACxByM,EAAMzM,IAAQA,EAAAA,CAAAA,CAAK5a,QACnBonB,CAAU3J,CAAAA,IAAAA,CAAK7C,CAAI,EAE3B,CAAC,EACL,CAAC,EACD,IAAM0M,CAAAA,CAAmBnE,CAAUlyD,CAAAA,MAAAA,CAAO,CAAC,CAAE+uC,MAAAA,CAAQunB,CAAG,CAAA,GAAY,CAACH,CAAUI,CAAAA,IAAAA,CAAK,CAAC,CAAExnB,MAAAA,CAAQynB,CAAG,CAAYA,GAAAA,CAAAA,GAAQF,CAAG,CAAC,EAE1H,OADiBH,CAAAA,CAAU36D,MAAO66D,CAAAA,CAAW,CAEjD,CAEAI,mBAAAA,CAAoBvE,CAAc,CAAA,CAC9B,IAAMwE,CAAmB,CAAA,GACzBxE,OAAAA,CAAAA,CAAUtJ,QAASe,CAAa,EAAA,CAC5B+M,CAAYlK,CAAAA,IAAAA,CAAK,CACbjC,KAAO,CAAA,CAACZ,CAAI,CAAA,CACZgN,WAAYhN,CAAKiN,CAAAA,OAAAA,CACjBC,UAAYlN,CAAAA,CAAAA,CAAKmN,QACpB,EACL,CAAC,EACMJ,CACX,CAEQ/F,yBAAyBn6C,CAAmB,CAAA,CAChD,IAAMu4B,CAAAA,CAASv4B,EAAG2c,MAAQ4b,EAAAA,MAAAA,EAAU,GACpC,OAAIv4B,CAAAA,CAAG2c,OACI4jC,GAAA1K,CAAAA,GAAAA,CAAA,EACA71C,CAAAA,CAAAA,CAAG2c,OAAOl4B,KADV,CAAA,CAAA,CAEHm3D,OAAQ,IAAK7B,CAAAA,cAAAA,EAAgB92B,IAAIsV,CAAM,CAAA,EAAGqjB,MAAU,EAAA,EAAA,CACpDC,kBAAmB,IAAK9B,CAAAA,cAAAA,EAAgB92B,GAAIsV,CAAAA,CAAM,GAAGsjB,iBAAqB,EAAA,CAAA,CAAA,CAAA,CAAA,CAG3E,CAAEtjB,MAAAA,CAAQ,iBAAkB9zC,KAAO,CAAA,CAAEm3D,OAAQ,EAAIC,CAAAA,iBAAAA,CAAmB,EAAK,CAAE,CACtF,CA9WS5C,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkBx2B,IAAAwU,EAAA,CAAA,CAAAxU,GAAAysB,CAAAA,IAAA,EAAAzsB,GAAAsP,CAAAA,GAAA,CAAAtP,CAAAA,GAAAA,CAAA+9B,IAAA,CAAA/9B,CAAAA,GAAAA,CAAAmpB,IAAA,CAAAnpB,CAAAA,GAAAA,CAAAuY,IAAA,CAAAvY,CAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA3kB,IAAAg+B,EAAA,CAAA,CAAAh+B,GAAAi+B,CAAAA,IAAA,EAAAj+B,GAAA6nB,CAAAA,IAAA,CAAA,CAAA,0BAAlB2O,CAAkBz4D,CAAAA,OAAAA,CAAlBy4D,EAAkBlgB,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,CAAA,CAEhB,IAAOigB,CAAAA,CAAP0H,SAAO1H,CAAkB,CAAA,ICf/B,IAAA2H,EAAAA,CAAmBxyB,UACbyyB,EAAc,CAAA,MAAA,CAAO,GAAI,CAAA,OAAO,EAChClnC,EAAQ,CAAA,UAAA,CAAWknC,EAAW,CAAM,GAAA,UAAA,CAAWA,EAAW,CAAI,CAAA,EAAA,CAAAC,OACpE,CAAA,CAAA,GAAI,GAAAA,OAAO,CAAA,MAAA,GAAWnnC,EAAM,CAAA,MAAA,CAC1B,MAAM,IAAI,KAAA,CAAM,CAA2D,wDAAA,EAAA,EAAA,CAAAmnC,QAAO,MAAM,CAAA,KAAA,EAAQnnC,GAAM,MAAM,CAAA,CAAE,EAgBhH,IAAOonC,EAAAA,CAAQpnC,ECrBR,CAAA,IAAMqnC,GAAW,QAWXC,CAAAA,EAAAA,CAAiC,CAC1C,CACIl6D,KAAM,WACNyd,CAAAA,MAAAA,CAAQ,WACX,CCPL,CAAA,IAAa08C,IAAiB,IAAA,CAAxB,IAAOA,CAAAA,CAAP,MAAOA,CAAyBvnC,SAAAA,EAAK,CAGvClmB,WAAoBotC,CAAAA,CAAAA,CAAc,CAC9B,KAAMmgB,CAAAA,EAAQ,CADE,CAAA,IAAA,CAAAngB,OAAAA,CAFpB,CAAA,IAAA,CAAAp3B,cAAwB,CAIpB,CAAA,IAAA,CAAK03C,iBACT,CAEcA,cAAc,EAAA,CAAA,OAAAC,IAAA,IAExB,CAAA,IAAA,CAAA,WAAA,CAAA,GADA,IAAKC,CAAAA,iBAAAA,GACD,CAAKC,IAAAA,CAAAA,MAAAA,EACT,CAAA,GAAI,CACA,MAAM,IAAA,CAAKC,MACX,CAAA,IAAA,CAAK1gB,OAAO52B,IAAK,CAAA,qBAAqB,EAC1C,CAAA,MAAS1d,EAAK,CACV,IAAA,CAAKs0C,MAAO1lC,CAAAA,KAAAA,CAAM,qBAAqB6lD,EAAQ,CAAA,mBAAA,EAAsBz0D,CAAItE,CAAAA,OAAO,EAAE,EACtF,CACJ,GAEQo5D,iBAAiB,EAAA,CACrB,KAAKn6C,OAAQ,CAAA,IAAA,CAAKuC,aAAa,CAAA,CAAEL,OAAO,IAAKo4C,CAAAA,eAAAA,EAAiB,EAClE,CAEQA,eAAe,EAAA,CACnB,OAAOP,EAAAA,CAAepwB,OAAO,CAAC3uB,CAAAA,CAAgC,CAAEnb,IAAAA,CAAAA,CAAAA,CAAMyd,OAAAA,CAAM,CAAA,IACxEtC,CAAOnb,CAAAA,CAAI,EAAIyd,CACRtC,CAAAA,CAAAA,CAAAA,CACR,EAAE,CACT,yCA5BSg/C,CAAgBz+B,EAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA,CAAhB8Z,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgB1gE,QAAhB0gE,CAAgBnoB,CAAAA,SAAAA,CAAAC,WAFb,MAAM,CAAA,CAEhB,CAAA,IAAOkoB,EAAPO,CAAOP,CAAAA,OAAAA,CAAiB,CAAA,GAAA,CCG9B,IAAaQ,EAAiB,CAAA,CAAA,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAAA,SAAyB/nC,EAAK,CAH3ClmB,WAAAA,EAAA,qBAMI,IAAAkuD,CAAAA,gBAAAA,CAAmBnkC,GAAO0jC,CAAAA,EAAgB,EAC1C,IAAArgB,CAAAA,MAAAA,CAASrjB,GAAO4pB,CAAAA,EAAM,GAEtBwa,iBAAiB,EAAA,CAGb,OAAO,IAAA,CAAKD,iBAAiBtmD,KAAM4lD,CAAAA,EAAAA,CAAe,CAAC,CAAEl6D,CAAAA,IAAI,CAC7D,CAEM86D,IAAAA,CAAQC,CAAkBC,CAAAA,CAAAA,CAAyB,QAAAX,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACrD,IAAMY,CAAAA,CAAqC,MAAM,IAAKJ,CAAAA,iBAAAA,EAAoB3+B,CAAAA,GAAAA,CAAI6+B,CAAQ,CAEtF,CAAA,GAAIE,EAAY,CACZ,IAAMC,EAAWD,CAAWE,CAAAA,SAAAA,CACtBC,CAAcF,CAAAA,CAAAA,EAAY,IAAInrB,IAAI,EAAA,CAAGE,SAAYirB,CAAAA,CAAAA,CAAWF,EAAoBC,CAAWv9D,CAAAA,KAAAA,CAAQ,IAEzG,CAAA,OAAK09D,IACD,MAAM,IAAA,CAAKP,mBAAoBQ,CAAAA,KAAAA,IAG5BD,CACX,CAGJ,CAEAE,CAAAA,CAAAA,KAAAA,CAAMrgE,EAAasgE,CAAe,CAAA,CAC9B,GAAItgE,CAAAA,EAAKivC,MAAUqxB,EAAAA,CAAAA,CAAY,CAC3B,IAAMN,EAAkC,CAAEF,QAAAA,CAAU9/D,EAAIivC,IAAI,EAAA,CAAIixB,UAAW,IAAIprB,IAAAA,EAAOE,CAAAA,OAAAA,GAAWvyC,KAAO69D,CAAAA,CAAU,CAClH,CAAA,IAAA,CAAKV,mBACAhS,CAAAA,GAAAA,CAAIoS,CAAU,CAAA,CACdO,MAAOh2D,CAAQ,EAAA,IAAA,CAAKs0C,OAAO1lC,KAAM,CAAA,6CAAA,CAA+C5O,CAAG,CAAC,EAC7F,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,OAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,GAAA,CAAA,CAAA29C,EAAA,CApCSwX,CAAgB,CAAAp/B,CAAAA,EAAAA,CAAAA,EAAhBo/B,CAAgB,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,UAAA,CAAA/gE,GAAA,CAAA,CAAA,KAAA,CAAhB+gE,CAAgBlhE,CAAAA,OAAAA,CAAhBkhE,EAAgB3oB,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAAA,CAEhB,IAAO0oB,CAAPc,CAAAA,CAAAA,CAAAA,OAAOd,CAAiB,CAAA,ICF9B,IAAae,EAAAA,CAAAA,CAAuC,IAAA,CAA9C,IAAOA,EAAP,MAAOA,CAAuC,CAEhDZ,IAAAA,CAAK7/D,EAAa0gE,CAA0B,CAAA,CACxC,GAAI1gE,CAAOA,EAAAA,CAAAA,CAAIivC,MAAQ,CAAA,CACnB,IAAM+wB,CAAAA,CAAaW,aAAaC,OAAQ5gE,CAAAA,CAAAA,CAAIivC,IAAI,EAAE,EAC5C4xB,CAA8Bb,CAAAA,CAAAA,EAAcc,IAAKC,CAAAA,KAAAA,CAAMf,CAAU,CACvE,CAAA,GAAIa,EAAiB,CACjB,IAAMZ,EAAWY,CAAgBX,CAAAA,SAAAA,CACjC,GAAID,CAAAA,EAAY,IAAInrB,IAAI,EAAA,CAAGE,OAAO,EAAA,CAAKirB,EAAWS,CAC9C,CAAA,OAAOG,CAAgBp+D,CAAAA,KAE/B,CACJ,CACA,OAAO,IACX,CAEA49D,KAAAA,CAAMrgE,EAAasgE,CAA8B,CAAA,CAC7C,GAAItgE,CAAAA,EAAOA,EAAIivC,IAAI,EAAA,EAAMqxB,CAAY,CAAA,CACjC,IAAMN,CAAyB,CAAA,CAAEE,SAAW,CAAA,IAAIprB,MAAOE,CAAAA,OAAAA,GAAWvyC,KAAO69D,CAAAA,CAAU,EACnFK,YAAaK,CAAAA,OAAAA,CAAQhhE,CAAIivC,CAAAA,IAAAA,GAAQ6xB,IAAKG,CAAAA,SAAAA,CAAUjB,CAAU,CAAC,EAC/D,CACJ,CArBSS,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAuC,CAAvCA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAuCjiE,QAAvCiiE,CAAuC1pB,CAAAA,SAAAA,CAAAC,WAFpC,MAAM,CAAA,EAEhB,IAAOypB,CAAAA,CAAPS,CAAOT,CAAAA,OAAAA,CAAuC,ICX9C,CAAA,IAAOU,IAAP,CAAA,QAAqC,CAGvC1vD,WAAA,EAAA,CAFA,IAAA2vD,CAAAA,YAAAA,CAAiC,IAAIxuB,GACrC,CAAA,IAAA,CAAAyuB,gBAA4B,GACb,GCaNC,IAAAA,EAAAA,CAAAA,CAAmB,IAAA,CAA1B,IAAOA,CAAP,CAAA,MAAOA,CAAmB,CAC5B7vD,YACY8vD,CACA70B,CAAAA,CAAAA,CACA+R,CACA3R,CAAAA,CAAAA,CACAL,EACAuf,CACAwV,CAAAA,CAAAA,CAAkC,CANlC,IAAAD,CAAAA,uCAAAA,CAAAA,EACA,IAAA70B,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAA+R,oBAAAA,CACA,CAAA,IAAA,CAAA3R,qBAAAA,CAAAA,CAAAA,CACA,KAAAL,IAAAA,CAAAA,CAAAA,CACA,IAAAuf,CAAAA,0BAAAA,CAAAA,EACA,IAAAwV,CAAAA,gBAAAA,CAAAA,EACT,CAEHC,mBAAAA,CAAoB7gB,EAAoB,EAAItG,CAAAA,CAAAA,CAAyB,EAAE,CAAA,CACnE,IAAIonB,CACAv0B,CAAAA,CAAAA,CAAoB,KAAKL,qBAAsBM,CAAAA,mBAAAA,GACnD,OAAI,IAAA,CAAKX,IAAKkR,CAAAA,eAAAA,CACV+jB,EAAW,qBAAwB,CAAA,IAAA,CAAKh1B,KAAKsB,IAAO,CAAA,GAAA,CAAM4S,EAAY,GAAM,CAAA,IAAA,CAAKnU,IAAKk1B,CAAAA,QAAAA,CAEtFD,EAAW,qBAAwB,CAAA,IAAA,CAAKh1B,IAAKsB,CAAAA,IAAAA,CAAO,IAAM4S,CAE1DtG,CAAAA,CAAAA,EAAkBA,CAAkB,EAAA,EAAA,CACpConB,GAAY,GAAMpnB,CAAAA,CAAAA,CACX,KAAKmE,mBAAoB5d,CAAAA,OAAAA,CAChC6gC,GAAY,GAAM,CAAA,IAAA,CAAKjjB,mBAAoB5d,CAAAA,OAAAA,CAE3C6gC,GAAY,GAAMv0B,CAAAA,CAAAA,CAAay0B,mBAAoBtnB,CAAAA,cAAAA,CAEhDonB,CACX,CAEMG,0BAAAA,CACFC,CACAlhB,CAAAA,CAAAA,CAAoB,GACpBtG,CAAyB,CAAA,EAAA,CAAE,QAAA8kB,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAE3B,IAAI2C,CACAC,CAAAA,CAAAA,CAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,uBACjDy0B,CAAAA,CAAAA,CAAyB,IAAKn1B,CAAAA,qBAAAA,CAAsBo1B,0BACpDC,CAAAA,CAAAA,CAAgBvhB,CAAc,GAAA,qBAAA,CAAwB,GAAOqhB,CAAkBE,CAAAA,aAAAA,CACnF,OAAI,IAAKC,CAAAA,kBAAAA,IACLL,CACIC,CAAAA,CAAAA,CAAeK,mBAAuB,EAAA,CAACF,EACjC,MAAM,IAAA,CAAKX,iBAAiB3B,IAAK,CAAA,IAAA,CAAK4B,oBAAoB7gB,CAAWtG,CAAAA,CAAc,CAAGwnB,CAAAA,CAAAA,CAA8B,GAAI,CACxH,CAAA,IAAA,CACHC,IAEPA,CACIC,CAAAA,CAAAA,CAAeK,qBAAuB,CAACF,CAAAA,CACjC,IAAKZ,CAAAA,uCAAAA,CAAwC1B,KACzC,IAAK4B,CAAAA,mBAAAA,CAAoB7gB,CAAWtG,CAAAA,CAAc,EAClDwnB,CAA8B,CAAA,GAAI,CAEtC,CAAA,IAAA,CACHQ,QAAQt4D,OAAQ+3D,CAAAA,CAAkB,EAEjD,CAEAQ,CAAAA,CAAAA,iCAAAA,CAAkC3hB,EAAmB4hB,CAA0BloB,CAAAA,CAAAA,CAAyB,EAAE,CAAA,CACtG,GAAI,CACA,IAAImoB,CAAuC,CAAA,IAAI/wB,GAC1C,IAAKsa,CAAAA,0BAAAA,CAA2BJ,sBAAsB,EAAA,CAAG8W,4BAC1DD,CAAiB1wB,CAAAA,eAAAA,CAAkBywB,EAAczwB,eACjD0wB,CAAAA,CAAAA,CAAiBtwB,uBAAyBqwB,CAAcrwB,CAAAA,sBAAAA,CACxDswB,CAAiBnwB,CAAAA,gBAAAA,CAAmBkwB,EAAclwB,gBAClDmwB,CAAAA,CAAAA,CAAiBhwB,iBAAoB+vB,CAAAA,CAAAA,CAAc/vB,kBACnDgwB,CAAiBxvB,CAAAA,oBAAAA,CAAuBuvB,CAAcvvB,CAAAA,oBAAAA,CACtDwvB,EAAiB5vB,WAAc2vB,CAAAA,CAAAA,CAAc3vB,YAC7C4vB,CAAiBvvB,CAAAA,wBAAAA,CAA2BsvB,EAActvB,wBACtD,CAAA,IAAA,CAAKkvB,kBAAkB,EAAA,CACvB,KAAKZ,gBAAiBnB,CAAAA,KAAAA,CAAM,KAAKoB,mBAAoB7gB,CAAAA,CAAAA,CAAWtG,CAAc,CAAGmoB,CAAAA,CAAgB,CAEjG,CAAA,IAAA,CAAKlB,wCAAwClB,KAAM,CAAA,IAAA,CAAKoB,oBAAoB7gB,CAAWtG,CAAAA,CAAc,EAAGmoB,CAAgB,CAAA,EAGpI,CAAgB,KAAA,EACpB,CAEAL,kBAAAA,EAAkB,CAEd,OAD6B,KAAKt1B,qBAAsBgU,CAAAA,gBAAAA,EAAoB6hB,EAAAA,sBAEhF,CAEAC,uCAAwCC,CAAAA,CAAAA,CAA+BC,EAAY,CAC/E,GAAI,CACAC,cAAe/B,CAAAA,OAAAA,CAAQ6B,CAAuB/B,CAAAA,IAAAA,CAAKG,UAAU6B,CAAO,CAAC,EACzE,CAAA,KAAgB,EACpB,CACAE,iCAAkCpiB,CAAAA,CAAAA,CAAoB,GAAE,CACpD,OAAI,KAAKnU,IAAKk1B,CAAAA,QAAAA,CACH,mBAAqB,IAAKl1B,CAAAA,IAAAA,CAAKk1B,QAAW,CAAA,GAAA,CAAM/gB,EAEpD,EACX,CACAqiB,6BAA8BriB,CAAAA,CAAAA,CAAoB,GAAE,CAChD,OAAO,kBAAqBA,CAAAA,CAChC,CACAsiB,oBAAqBtiB,CAAAA,CAAAA,CAAoB,GAAE,CACvC,IAAI8gB,EACJ,OAAI,IAAA,CAAKj1B,IAAKkR,CAAAA,eAAAA,CACV+jB,EAAW,IAAKsB,CAAAA,iCAAAA,CAAkCpiB,CAAS,CAE3D8gB,CAAAA,CAAAA,CAAW,KAAKuB,6BAA8BriB,CAAAA,CAAS,CAEpD8gB,CAAAA,CACX,CAEAyB,gCAAiCviB,CAAAA,CAAAA,CAAoB,GAAIwiB,CAAqBC,CAAAA,CAAAA,CAAuB,GAAK,CACtG,GAAI,CACKA,CAAAA,EAGDD,GAAkBzC,YAAaK,CAAAA,OAAAA,CAAQ,IAAKgC,CAAAA,iCAAAA,CAAkCpiB,CAAS,CAAGwiB,CAAAA,CAAc,CACxGA,CAAAA,CAAAA,EAAkBzC,aAAaK,OAAQ,CAAA,IAAA,CAAKiC,8BAA8BriB,CAAS,CAAA,CAAGwiB,CAAc,CAHpGA,EAAAA,CAAAA,EAAkBzC,YAAaK,CAAAA,OAAAA,CAAQ,KAAKkC,oBAAqBtiB,CAAAA,CAAS,CAAGwiB,CAAAA,CAAc,EAKnG,CAAgB,KAAA,EACpB,CACAE,8BAA8B1iB,CAAoB,CAAA,EAAA,CAAE,CAChD,GAAI,CACA,OAAO+f,YAAaC,CAAAA,OAAAA,CAAQ,IAAKsC,CAAAA,oBAAAA,CAAqBtiB,CAAS,CAAC,CACpE,CAAgB,KAAA,CACZ,OAAO,IACX,CACJ,CAEA2iB,+BAAAA,CAAgC3iB,EAAoB,EAAE,CAAA,CAClD,GAAI,CACA+f,YAAAA,CAAa6C,WAAW,IAAKN,CAAAA,oBAAAA,CAAqBtiB,CAAS,CAAC,EAChE,CAAgB,KAAA,EACpB,CAEA6iB,4CAAAA,CAA6CC,EAAe,CACxD,GAAIX,cAAenC,CAAAA,OAAAA,CAAQ8C,CAAO,CAAG,CAAA,CACjC,IAAIC,CAAyBZ,CAAAA,cAAAA,CAAenC,QAAQ8C,CAAO,CAAA,EAAK,EAChE,CAAA,OAAO5C,KAAKC,KAAM4C,CAAAA,CAAsB,CAC5C,CACJ,CAEAC,8BAA+BhjB,CAAAA,CAAAA,CAAoB,EAAItG,CAAAA,CAAAA,CAAyB,GAAE,CAC9E,IAAI/M,EAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBAC1C,CAAA,OAAO,IAAKq0B,CAAAA,0BAAAA,CAA2Bt0B,EAASs2B,6CAA+CjjB,CAAAA,CAAAA,CAAWtG,CAAc,CAC5H,CAEAwpB,oBAAqBt3B,CAAAA,CAAAA,CAAS,CAC1BA,CAAAA,EAAQm0B,aAAaK,OAAQ,CAAA,aAAA,CAAeF,KAAKG,SAAUz0B,CAAAA,CAAI,CAAC,EACpE,CAEAu3B,qBAAsBrK,CAAAA,CAAAA,CAAmB,CACrC,IAAInsB,CAAAA,CAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBACtCw2B,CAAAA,CAAAA,CAAc,IAAKl3B,CAAAA,qBAAAA,CAAsBo1B,0BAC7C,CAAA,GAAI,CACA,GAAI30B,CAAAA,CAAS80B,qBAAuB,CAAC2B,CAAAA,CAAY7B,aAAe,CAAA,CAC5D,IAAI8B,CAAgC,CAAA,IAAIrxB,IACpCyuB,CAA4B,CAAA,GAChC3H,OAAAA,CAAAA,CAAUtJ,OAASe,CAAAA,CAAAA,EAAQ,CACvB,IAAI+S,CAAAA,CAAsBvD,aAAaC,OAAQzP,CAAAA,CAAI,GAAK2P,IAAKG,CAAAA,SAAAA,CAAUN,YAAaC,CAAAA,OAAAA,CAAQzP,CAAI,CAAC,CAAA,CAE7F+S,CACAA,EAAAA,CAAAA,CAAeC,sBAAwB52B,CAAS62B,CAAAA,gCAAAA,CAAmC,GAAO,CAAA,IAAItvB,MAAOE,CAAAA,OAAAA,GAErGivB,CAAY1sD,CAAAA,GAAAA,CAAI45C,EAAM+S,CAAc,CAAA,EAEhCA,CACAvD,EAAAA,YAAAA,CAAa6C,WAAWrS,CAAI,CAAA,CAEhCkQ,CAAgBrN,CAAAA,IAAAA,CAAK7C,CAAI,CAEjC,EAAA,CAAC,CAC0C,CAAA,CACvCiQ,aAAc6C,CACd5C,CAAAA,eAAAA,CAAiBA,EAAgB9mD,MAAS,CAAA,CAAA,CAAI8mD,EAAkB,EAAA,CAGxE,CAAO,KAAA,OAAO,IAAIF,IACtB,CAAA,KAAgB,CACZ,OAAO,IAAIA,IACf,CACJ,CACAkD,gBAAAA,CAAiB73B,EAAsB,CACnC,GAAI,CACAwF,KAAM1yC,CAAAA,IAAAA,CAAKktC,EAAKhhB,OAAO,EAAE,CAAE4kC,CAAAA,OAAAA,CAASt9C,GAAc,CACzC6tD,YAAAA,CAAaC,QAAQ9tD,CAAM,CAAA,CAAC,CAAC,CAC9BA,GAAAA,CAAAA,CAAM,CAAC,CAAA,CAAEqxD,sBAAwB,IAAIrvB,IAAAA,GAAOE,OAAO,EAAA,CACnD2rB,aAAaK,OAAQluD,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAGguD,KAAKG,SAAUnuD,CAAAA,CAAAA,CAAM,CAAC,CAAC,CAAC,CAE/D,EAAA,CAAC,EACL,CAAA,KAAgB,EACpB,CACAwxD,sBAAoB,CAChB,IAAI93B,EAAOm0B,YAAaC,CAAAA,OAAAA,CAAQ,aAAa,CAAA,CAC7C,OAAOp0B,CAAOs0B,CAAAA,IAAAA,CAAKC,KAAMv0B,CAAAA,CAAI,EAAI,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA7LS80B,CAAmB7gC,EAAAA,GAAAA,CAAAggC,EAAA,CAAAhgC,CAAAA,GAAAA,CAAAkP,GAAA,CAAAlP,CAAAA,GAAAA,CAAAmZ,EAAA,CAAAnZ,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,IAAAiP,GAAA,CAAA,CAAAjP,GAAA+qB,CAAAA,IAAA,EAAA/qB,GAAAi/B,CAAAA,EAAA,CAAA,CAAA,0BAAnB4B,CAAmB9iE,CAAAA,OAAAA,CAAnB8iE,EAAmBvqB,SAAAC,CAAAA,UAAAA,CAFhB,MAAM,CAAA,CAAA,CAEhB,IAAOsqB,CAAAA,CAAPiD,SAAOjD,CAAmB,CAAA,ICDhC,IAAakD,IAAsB,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CAQ/B/yD,YACY04C,CACSrd,CAAAA,CAAAA,CACTif,EACA0Y,CACA3qB,CAAAA,CAAAA,CACA+E,CAAc,CAAA,CALd,KAAAsL,GAAAA,CAAAA,CAAAA,CACS,IAAArd,CAAAA,qBAAAA,CAAAA,EACT,IAAAif,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAA0Y,aAAAA,CACA,CAAA,IAAA,CAAA3qB,sBAAAA,CACA,CAAA,IAAA,CAAA+E,OAAAA,CAbZ,CAAA,IAAA,CAAA6lB,eAAuB,CAAA,GACvB,IAAAC,CAAAA,2BAAAA,CAAmC,EAAA,CAC3B,KAAAC,sBAAyB,CAAA,IAAI5uB,IAAqB,CAAA,IAAI,EAC9D,IAAA6uB,CAAAA,wBAAAA,CAA4C,KAAKD,sBAAuB1uB,CAAAA,YAAAA,GAChE,IAAA4uB,CAAAA,kCAAAA,CAAqC,IAAI9uB,IAAAA,CAAqB,IAAI,CAC1E,CAAA,IAAA,CAAA+uB,oCAAwD,CAAA,IAAA,CAAKD,mCAAmC5uB,YAAY,GASzG,CAEH8uB,kBAAAA,EAAkB,CACd,IAAMta,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAC5CqX,CAAsB,CAAA,IAAA,CAAKl1B,qBAAsBU,CAAAA,qBAAAA,GACjDy3B,CAAiB,CAAA,CAAA,EAAGva,EAAewa,aAAc,CAAA,eAAkB,mBAAmB,IAAKprB,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAE,GAC1I,IAAKiR,CAAAA,GAAAA,CAAIlpB,IAAIgkC,CAAQ,CAAA,IAAA,CAAM,CAAExX,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAA,CAAE31B,UACjD+2B,CAAiB,EAAA,CACd,IAAK6V,CAAAA,eAAAA,CAAkB,EACnB7V,CAAAA,CAAAA,GACA,IAAK6V,CAAAA,eAAAA,CAAkB7V,GAAUkD,KACjC,CAAA,IAAA,CAAK4S,4BAA8BQ,IAAU,CAAA,IAAA,CAAKT,eAAe,CAE7D1C,CAAAA,CAAAA,EAAgBoD,yBAA6B,EAAA,IAAA,CAAKrZ,cAActH,eAAe,EAAA,EAAIjL,WAAW,EAAA,EAAM,cACpG,IAAK6rB,CAAAA,qBAAAA,CAAsB,IAAKX,CAAAA,eAAe,EAC/C1C,CAAgBsD,EAAAA,+BAAAA,GAAiC,KAAKX,2BAA8B,CAAA,IAAA,CAAKD,iBAC7F,IAAKE,CAAAA,sBAAAA,CAAuBt3C,IAAK,CAAA,IAAA,CAAKo3C,eAAe,CACrD,CAAA,IAAA,CAAKI,kCAAmCx3C,CAAAA,IAAAA,CAAK,KAAKq3C,2BAA2B,CAAA,EAErF,CACCxrD,CAAAA,CAAAA,EAAS,CACN,IAAK0lC,CAAAA,MAAAA,CAAO1lC,MAAM,wDAA2DA,CAAAA,CAAK,EACtF,CAAC,EAET,CAEAksD,qBAAAA,CAAsBX,EAAoB,CACtC,IAAMa,EAA0B,IAAKd,CAAAA,YAAAA,CAAab,+BAA+B,YAAc,CAAA,IAAA,CAAK7X,aAAc7S,CAAAA,iBAAAA,EAAmB,CACrI,CAAA,IAAA,CAAKwrB,gBACDa,CAAoB9yB,EAAAA,iBAAAA,EAAmBZ,IAAK9tC,CAAWA,EAAAA,CAAAA,EAAKA,CAAE,CAAA,CAAC,CAAC,CAAGyD,EAAAA,MAAAA,CAAQg+D,CAAWd,EAAAA,CAAAA,EAAiBe,SAASD,CAAC,CAAC,CAAK,EAAA,GAC/H,CAEAE,8BAAAA,EAA8B,CAC1B,OAAO,IAAA,CAAKf,2BAChB,CAEAgB,kBAAAA,EAAkB,CACd,OAAO,KAAKjB,eAChB,CAEAkB,sBAAuBzU,CAAAA,CAAAA,CAAS,CAC5B,OAAO,IAAA,CAAKwT,2BAA+B,EAAA,IAAA,CAAKA,4BAA4BxqB,OAAQgX,CAAAA,CAAAA,CAAK5a,MAAM,CAAI,CAAA,CAAA,CACvG,yCAzDSiuB,CAAsB/jC,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAAsP,GAAA,CAAA,CAAAtP,GAAAuX,CAAAA,EAAA,EAAAvX,GAAA6gC,CAAAA,EAAA,CAAA7gC,CAAAA,GAAAA,CAAAuY,IAAA,CAAAvY,CAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA,0BAAtBof,CAAsBhmE,CAAAA,OAAAA,CAAtBgmE,CAAsBztB,CAAAA,SAAAA,CAAAC,WAFnB,MAAM,CAAA,EAEhB,IAAOwtB,CAAAA,CAAPqB,SAAOrB,CAAsB,CAAA,ICMnB/nC,IAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,mBAAKiD,EAAA,CAAA,KAAA,CAAAomC,EAAAC,OAAAC,CAAAA,EAAA,EACLvpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAKiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAomC,CAAAG,CAAAA,YAAAA,CAAAD,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAFTxpC,GAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAAsnC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAyD,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAE7DzpC,CAAAA,EAAAA,qBAF0B+C,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,CAAAomC,EAAAM,wBAAA,CAAA,CACK3mC,EAAA,EAAA,CAAAC,GAAA,MAAAomC,CAAAA,CAAAA,CAAAM,wBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GARnC5pC,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMIoC,GAAA,CAAAynC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAIA7pC,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,EAAM8U,EAAA,CAAA,CAAA,EAAuB5U,EAAA,EAAA,oBAN7BiC,EAAA,CAAA,4BAAA,CAAAmnC,CAAA3U,CAAAA,IAAAA,CAAAmV,iBAAA,CAFA5mC,CAAAA,EAAAA,CAAA,UAAA6mC,EAAA,CAAA,CAAA,CAAAC,GAAAV,CAAAW,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAX,EAAAW,cAAA3L,CAAAA,SAAAA,CAAAgL,CAAAW,CAAAA,cAAAA,EAAA,KAAA,IAAAX,CAAAA,CAAAA,CAAAW,cAAA1L,CAAAA,WAAA,CAAA,CAAyF,CAAA,SAAA,CAAA2L,GAAA,CAAAC,CAAAA,EAAAA,CAAAb,EAAAc,uBAAA,CAAA,CAIjEnnC,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAA3U,CAAAA,IAAAA,CAAA0I,mBAAAiM,CAAAe,CAAAA,aAAA,CAIlBpnC,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,EAAA3U,IAAAwJ,CAAAA,YAAA,2BAEVn+B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACJC,EAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAoqC,EAAA,EAAA,CAGItqC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAmF,EAAA,MAAA,CAAA,EAAA,EACzEyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAA6nC,CAAAA,CAAA,EAAA,IAAAlB,CAAAA,CAAAmB,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASymC,EAAAoB,gBAAApB,CAAAA,CAAAA,CAAA3U,KAAA4V,CAAA,CAA8B,CAAA,CAAA,CAAA,CAAErqC,EAAA,EAAA,yCAG/CF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAuH,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAC7GyC,GAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAArB,CAAAmB,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASymC,CAAAA,CAAAA,CAAAsB,gBAAAtB,CAAA3U,CAAAA,IAAAA,CAAA4V,CAAA,CAA6B,CAAA,CAAA,CAAA,CAAErqC,IAAO,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CADPiZ,GAAA,SAAAomC,CAAAA,CAAAA,CAAA3U,IAAAtG,CAAAA,WAAAA,CAAA,mBAAA,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAlDjsB,EAAA,CAAA,CAAA,CAAAyoC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,mBAAM3nC,EAAA,CAAA,MAAA,CAAAomC,EAAAwB,iBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GALd9qC,GAAA,CAAA,CAAA,KAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAA2oC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EAAmF,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,IAAA,CAAA,CAAA,CAAAzoC,EAAA,CAQvFrC,CAAAA,EAAAA,4BARU+C,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAomC,EAAA2B,YAAA,CAAA,CAAoB,UAAAC,CAAAA,CAAA,wCAa9BlrC,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAA6D,EAAA,GAAA,CAAA,EAAA,EAC9ByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAwoC,CAAA,CAAA,CAAA,IAAA7B,CAAAmB,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASymC,CAAAA,CAAAA,CAAA32B,MAAA22B,CAAAA,CAAAA,CAAA3U,IAAA,CAAY,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,KAH1DF,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA8C,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,EACvCyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAyoC,CAAA,CAAA,CAAA,IAAA9B,CAAAmB,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASymC,CAAA32B,CAAAA,MAAAA,CAAA22B,EAAA3U,IAAA,CAAY,CAAA,CAAA,CAAA,CAAE7f,GAAA,CAAA,CAAA,CAAgB5U,EAAA,EAAA,CAC1CkC,GAAA,CAAAipC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAGJnrC,CAAAA,EAAAA,GAJ8B+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAA3U,CAAAA,IAAAA,CAAA2W,KAAA,CACnBroC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAomC,CAAA3U,CAAAA,IAAAA,CAAA4W,kBAAA,CAAAjC,CAAAA,CAAA3U,KAAA6W,eAAA,EAAA,CAAA,CCxBf,IAAaC,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CA+B3Bx2D,WAAAA,CACYg7B,CACAy7B,CAAAA,CAAAA,CACAC,EACAC,CACArc,CAAAA,CAAAA,CACAsc,EACAv7B,CACAw7B,CAAAA,CAAAA,CAA4D,CAP5D,IAAA77B,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAAy7B,iBAAAA,CACA,CAAA,IAAA,CAAAC,YAAAA,CAAAA,CAAAA,CACA,KAAAC,sBAAAA,CAAAA,CAAAA,CACA,IAAArc,CAAAA,aAAAA,CAAAA,EACA,IAAAsc,CAAAA,kBAAAA,CAAAA,EACA,IAAAv7B,CAAAA,qBAAAA,CAAAA,EACA,IAAAw7B,CAAAA,wBAAAA,CAAAA,CAlCF,CAAA,IAAA,CAAAC,iBAAsC,IAAIlrC,IAAAA,CAQpD,KAAAmrC,SAAsB,CAAA,GACtB,IAAAC,CAAAA,YAAAA,CAAwB,CAMxB,CAAA,CAAA,IAAA,CAAAC,iBAAmB,IAAI91B,IAoBpB,CAEH1F,QAAQ,EAAA,CACJ,KAAK0pB,WAAc,CAAA,IAAA,CAAK0R,wBAAyBzR,CAAAA,cAAAA,GAC7C,IAAK1F,CAAAA,IAAAA,EAAQ,CAAC,IAAA,CAAKA,KAAKha,IACxB,GAAA,IAAA,CAAKga,IAAKha,CAAAA,IAAAA,CAAO,CACbE,GAAK,CAAA,EAAA,CACLyE,OAAQ,CACR0C,CAAAA,KAAAA,CAAO,IAGf,IAAMjgD,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,qBACpC63B,CAAAA,CAAAA,CAAc,IAAK77B,CAAAA,qBAAAA,CAAsBkX,sBACzC4kB,CAAAA,CAAAA,CAAoB,IAAK97B,CAAAA,qBAAAA,CAAsB+7B,4BACrD,CAAA,IAAA,CAAKzC,yBAA2BwC,CAAaxC,CAAAA,wBAAAA,CAC7C,KAAKpN,kCAAqC,CAAA,IAAA,CAAKjN,aAAclJ,CAAAA,4BAAAA,CACzD,KAAKjC,SACL+nB,CAAAA,CAAAA,CAAYG,2BAA2B,CAAA,CAE3C,KAAKC,sBAAyB,CAAA,IAAA,CAAKhd,aAAclJ,CAAAA,4BAAAA,CAA6B,KAAKjC,SAAW+nB,CAAAA,CAAAA,CAAYK,+BAA+B,CACzI,CAAA,IAAA,CAAKC,gBAAkB1qE,CAAO0qE,CAAAA,eAAAA,CAAgBC,SAC9C,CAAA,IAAA,CAAKC,aAAe5qE,CAAO0qE,CAAAA,eAAAA,CAAgBG,qBAAuB7qE,CAAO0qE,CAAAA,eAAAA,CAAgBG,qBAAuB,aAChH,CAAA,IAAA,CAAKC,mBAAsB9qE,CAAAA,CAAAA,CAAO0qE,gBAAgBI,mBAAsB9qE,CAAAA,CAAAA,CAAO0qE,gBAAgBI,mBAAsB,CAAA,KAAA,CACrH,KAAKC,cAAiB/qE,CAAAA,CAAAA,CAAO2yC,QAASq4B,CAAAA,UAAAA,CACtC,IAAMh8B,CAAW,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,GACtC6K,CAAa,CAAA,IAAA,CAAKvL,qBAAsBwL,CAAAA,iBAAAA,GAC9C,IAAK6I,CAAAA,OAAAA,CAAU,KAAK4K,aAAc5K,CAAAA,OAAAA,GAClC,IAAKmmB,CAAAA,iBAAAA,CAAoB,IAAKvb,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKjC,CAAAA,SAAAA,CAAWrT,CAASi8B,CAAAA,uBAAuB,EACzH,IAAK/B,CAAAA,YAAAA,CAAe,IAAK1b,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKjC,CAAAA,SAAAA,CAAWrT,EAASk8B,wBAAwB,CAAA,CACrH,KAAKC,aAAgBn8B,CAAAA,CAAAA,CAASm8B,aAC9B,CAAA,IAAA,CAAKC,cACL,CAAA,IAAA,CAAKxY,IAAKtG,CAAAA,WAAAA,CAAc,KAAKqd,gBAAiBhX,CAAAA,qBAAAA,CAAsB,IAAKC,CAAAA,IAAI,EAC7E,IAAKuX,CAAAA,gBAAAA,CAAmB,IAAI91B,GAC5B,CAAA,IAAA,CAAKg3B,2BACL,CAAA,IAAA,CAAKC,eAAe,EAAA,CACpB,KAAKC,sBAAsB,EAAA,CAC3B,KAAKlD,uBAA0B,CAAA,IAAA,CAAK7a,cAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,SAAWrT,CAAAA,CAAAA,CAASq5B,uBAAuB,CAC/H,CAAA,IAAA,CAAKC,cAAgB,IAAK9a,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKjC,CAAAA,SAAAA,CAAWrT,CAASs5B,CAAAA,aAAa,EAC3G,IAAKd,CAAAA,OAAAA,CAAU1tB,CAAWZ,CAAAA,IAAAA,CAAOlK,EAASw8B,WAAYhE,CAAAA,OAAAA,CACtD,IAAKE,CAAAA,YAAAA,CAAe5tB,EAAWZ,IAAOlK,CAAAA,CAAAA,CAASw8B,YAAY9D,aAC/D,CAEA/nC,aAAW,CACP,IAAA,CAAK8rC,0BAA2B/xC,CAAAA,WAAAA,GAChC,IAAKgyC,CAAAA,aAAAA,CAAchyC,WAAW,GAClC,CAEAiyC,QAAQ,EAAA,CACJ,IAAK/oB,CAAAA,OAAAA,CAAU,KAAK4K,aAAc5K,CAAAA,OAAAA,GACtC,CACAgpB,WAAAA,EAAW,CACP,IAAM58B,CAAAA,CAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBAC5C,CAAA,IAAA,CAAKo5B,uBAA0B,CAAA,IAAA,CAAK7a,cAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,SAAWrT,CAAAA,CAAAA,CAASq5B,uBAAuB,EACnI,CACAQ,gBAAgBjW,CAAW4V,CAAAA,CAAAA,CAAW,CAC9B,IAAKt6B,CAAAA,IAAAA,CAAKkR,eACVopB,EAAAA,CAAAA,CAAO9yB,0BACP,CAAA,IAAA,CAAKm2B,eAAexW,mBAAoBzC,CAAAA,CAAI,GAE5C,IAAKkZ,CAAAA,SAAAA,CAAUC,eAAe,GAEtC,CAEApD,gBAAiB/V,CAAAA,CAAAA,CAAW4V,EAAW,CACnCA,CAAAA,CAAO9yB,0BACP,CAAA,IAAA,CAAKy0B,gBAAiBnxD,CAAAA,GAAAA,CAAI45C,EAAK5a,MAAS,CAAA,IAAA,CAAKg0B,YAAc,CAAA,CAAA,CAAI,EACnE,CAEAC,aAAAA,CAAcrZ,CAAS,CAAA,CACnB,KAAKuX,gBAAiBnxD,CAAAA,GAAAA,CAAI45C,EAAK5a,MAAS,CAAA,IAAA,CAAKg0B,aAAc,CAAK,CAAA,EACpE,CAEAE,SAAAA,CAAUtZ,EAAS,CACf,IAAA,CAAKyF,WAAY8T,CAAAA,uBAAAA,CAAwB5yC,UAAW6yC,CAAsB,EAAA,CAClE,CAAC,IAAA,CAAKxpB,SAAW,CAACwpB,CAAAA,EAClB,KAAKjC,gBAAiBnxD,CAAAA,GAAAA,CAAI45C,EAAK5a,MAAS,CAAA,IAAA,CAAKg0B,YAAc,CAAA,CAAA,CAAI,EAEvE,CAAC,EACL,CAEAK,UAAAA,CAAWzZ,EAAS,CACX,IAAA,CAAKhQ,OACN,EAAA,IAAA,CAAKunB,iBAAiBnxD,GAAI45C,CAAAA,CAAAA,CAAK5a,OAAS,IAAKg0B,CAAAA,YAAAA,CAAc,EAAK,EAExE,CAoBAp7B,MAAOgiB,CAAAA,CAAAA,CAAS,CACZ,IAAKgX,CAAAA,YAAAA,CAAa/H,MAAM,CAAEyK,eAAAA,CAAiB,EAAI,CAAE,CAAA,CACjD,IAAKtC,CAAAA,gBAAAA,CAAiB7qC,KAAKyzB,CAAI,EACnC,CACA2Z,uBAAuB,EAAA,CACnB,OACI,IAAK3Z,CAAAA,IAAAA,CAAK4Z,iBACT,GAAA,IAAA,CAAKR,eAAiBjlB,IAAaY,CAAAA,wBAAAA,EAA4B,IAAKqkB,CAAAA,YAAAA,GAAiBjlB,KAAac,4BAE5F,CAAA,CAAA,WAAA,CAAc,IAAKijB,CAAAA,mBAAAA,CAAsB,sBAAwB,IAAK2B,CAAAA,MAAAA,CAG1E,IACX,CACAC,YAAAA,EAAY,CACR,IAAIC,CAAAA,CAAY,IAAKjC,CAAAA,eAAAA,CAEjB,KAAKK,cAAe/uD,CAAAA,MAAAA,CAAS,EAC7B2wD,GAAAA,CAAAA,EAAa,wBAGjB,IAAMC,CAAAA,CAAQ,qBAAsBC,CAAAA,IAAAA,CAAK9pB,UAAUC,SAAS,CAAA,CAC5D,GACI,IAAK4P,CAAAA,IAAAA,CAAK4Z,mBACVI,CACC,GAAA,IAAA,CAAKZ,YAAiBjlB,GAAAA,IAAAA,CAAaY,0BAA4B,IAAKqkB,CAAAA,YAAAA,GAAiBjlB,IAAac,CAAAA,4BAAAA,CAAAA,CACrG,CACE,IAAMilB,CAAAA,CAAa,IAAK/B,CAAAA,cAAAA,CAAe/uD,OAAS,GAChD2wD,CAAAA,CAAAA,EAAa,oBAAsBG,CAAa,CAAA,mDACpD,CAEA,OAAOH,CACX,CACAtB,yBAAAA,EAAyB,CACrB,IAAKI,CAAAA,0BAAAA,CAA6B,KAAK5B,sBAAuBvD,CAAAA,wBAAAA,CAAyB/sC,UAAU,IAAK,CAClG,IAAKq5B,CAAAA,IAAAA,CAAK4Z,kBAAoB,IAAK3C,CAAAA,sBAAAA,CAAuBxC,uBAAuB,IAAKzU,CAAAA,IAAI,EAEtF,IAAKA,CAAAA,IAAAA,CAAK4Z,iBACT,GAAA,IAAA,CAAKR,eAAiBjlB,IAAaY,CAAAA,wBAAAA,EAA4B,IAAKqkB,CAAAA,YAAAA,GAAiBjlB,KAAac,4BAEnG,CAAA,EAAA,IAAA,CAAKoiB,SAAUxU,CAAAA,IAAAA,CAAK,oBAAoB,EAEhD,CAAC,EACL,CAEA6V,eAAAA,EAAe,CACX,IAAMlP,CAAAA,CAAe,IAAK0N,CAAAA,kBAAAA,CAAmBlN,oBAAoB,IAAKhK,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,CAC3E+0B,EAAqB,IAAKx+B,CAAAA,qBAAAA,CAAsBkX,oBAAoB,EAAA,CAAGsnB,mBACzE3Q,CACA,GAAA,IAAA,CAAKxJ,KAAKwJ,YAAeA,CAAAA,CAAAA,CAAaf,OACtC,IAAKzI,CAAAA,IAAAA,CAAK0I,iBAAoBc,CAAAA,CAAAA,CAAad,kBACvCyR,CACA,GAAA,IAAA,CAAK7E,cAAiB,CAAA,IAAA,CAAK4B,mBAAmB3N,sBAAuBC,CAAAA,CAAY,CAG7F,CAAA,EAAA,CAEAmP,wBAAsB,CAClB,IAAA,CAAKG,cAAgB,IAAK5B,CAAAA,kBAAAA,CAAmB1Q,sBAAsB7/B,SAAU,CAAA,IAAK,CAC9E,IAAA,CAAK+xC,kBACT,CAAC,EACG,IAAK7Q,CAAAA,kCAAAA,EACL,KAAKqP,kBAAmBvQ,CAAAA,mBAAAA,CAAoBhgC,SAAU,CAAA,IAAK,CACvD,IAAK+xC,CAAAA,eAAAA,GACT,CAAC,EAET,CACQF,YAAY,EAAA,CACZ,IAAKxY,CAAAA,IAAAA,GACD,CAAC,IAAK1kB,CAAAA,IAAAA,CAAKkR,eAAmB,EAAA,IAAA,CAAKwT,KAAKoa,aACxC,EAAA,IAAA,CAAK/C,SAAUxU,CAAAA,IAAAA,CAAK,MAAM,CAE1B,CAAA,IAAA,CAAK7C,KAAKqa,UACV,EAAA,IAAA,CAAKhD,UAAUxU,IAAK,CAAA,KAAK,CAEzB,CAAA,IAAA,CAAK7C,KAAKsa,eACV,EAAA,IAAA,CAAKjD,SAAUxU,CAAAA,IAAAA,CAAK,UAAU,CAE9B,CAAA,IAAA,CAAK7C,IAAKua,CAAAA,iBAAAA,EACV,KAAKlD,SAAUxU,CAAAA,IAAAA,CAAK,aAAa,CAEjC,CAAA,IAAA,CAAK7C,KAAKwa,WACV,EAAA,IAAA,CAAKnD,SAAUxU,CAAAA,IAAAA,CAAK,MAAM,CAE1B,CAAA,IAAA,CAAK7C,IAAK,CAAA,gBAAA,EACV,KAAKqX,SAAUxU,CAAAA,IAAAA,CAAK,WAAW,CAAA,CAG/B,KAAK7C,IAAK4Z,CAAAA,iBAAAA,GACT,KAAKR,YAAiBjlB,GAAAA,IAAAA,CAAaY,0BAA4B,IAAKqkB,CAAAA,YAAAA,GAAiBjlB,IAAac,CAAAA,4BAAAA,CAAAA,EAEnG,KAAKoiB,SAAUxU,CAAAA,IAAAA,CAAK,oBAAoB,CAG5C,CAAA,CAAA,IAAA,CAAKwU,UAAUjuD,MAAS,CAAA,CAAA,GACxB,IAAKiuD,CAAAA,SAAAA,CAAY,CAAC,YAAY,CAAA,CAAExlE,OAAO,IAAKwlE,CAAAA,SAAS,GAE7D,CAjPSP,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkB14B,GAAAG,CAAAA,GAAA,EAAAH,GAAAgjB,CAAAA,IAAA,CAAAhjB,CAAAA,GAAAA,CAAA8mB,IAAA,CAAA9mB,CAAAA,GAAAA,CAAAi1B,EAAA,CAAA,CAAAj1B,IAAAyI,EAAA,CAAA,CAAAzI,IAAA0nB,EAAA,CAAA,CAAA1nB,IAAAQ,GAAA,CAAA,CAAAR,GAAAgnB,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAqV,EAAA,CAAA,CAAA,IAAA,CAAlB3D,CAAkB/rC,CAAAA,SAAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA8T,OAAA,CAAAmhB,IAAAA,CAAA,OAAA6Z,MAAA,CAAA,QAAA,CAAAT,aAAA,cAAA3pB,CAAAA,SAAAA,CAAA,WAAA,CAAA,CAAAirB,QAAA,CAAAtD,gBAAAA,CAAA,kBAAA,CAAA,CAAAnsC,WAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAAu+B,EAAAA,CAAA77B,EAAA,CAAAC,CAAAA,KAAAA,CAAA,GAAAC,IAAA,CAAA,EAAA,CAAAC,OAAA,CAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,YAAA,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,QAAA,QAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,OAAA,UAAA,CAAA,QAAA,CAAA,KAAA,CAAA,UAAA,CAAA,cAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,mBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,YAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,MAAA,2CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,kCAAA,CAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,YAAA,CAAA,CAAA,CAAA,OAAA,CAAA,EAAAC,QAAA,CAAA,SAAAhS,EAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CDpB/B7B,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,EAEhCyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAw7B,CAAAA,MAAAA,CAAAx7B,EAAAw9C,IAAA,CAAY,CAAA,CAAC,CAAA,QAAA,CAAA,UAAA,CAAA,OAGLx9C,CAAAu2D,CAAAA,QAAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA6B,EAAA,CAC3BtvC,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAQAmC,CAAAA,EAAAA,CAAA,EAAAotC,EAAA,CAAA,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA,CAKwD,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAUxDzvC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAA2BC,EAAA,CAAA,CAAA,CAAA,MAAA,CAAaC,CAAAA,EAAAA,GACxCkC,EAAA,CAAA,CAAA,CAAAstC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAUAzvC,CAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,GACAkC,EAAA,CAAA,CAAA,CAAAutC,GAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAMJzvC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GA5CQ+C,IAAAC,CAAAA,EAAAA,CAAA,SAAA6mC,CAAAA,EAAAA,CAAA,GAAA6F,EAAAz4D,CAAAA,CAAAA,CAAAq3D,MAAAr3D,CAAAA,CAAAA,CAAAw1D,YAAA,CAAA,CAAA,CAOI1pC,IAAA4sC,CAAAA,EAAAA,CAAA14D,EAAAm3D,uBAAA,EAAA,CAJAprC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAAw9C,CAAAA,IAAAA,CAAAha,IAAA,CAAkB,CAAA,UAAA,CAAAxjC,EAAAw9C,IAAAza,CAAAA,QAAA,CACQ,CAAA,QAAA,CAAA/iC,EAAAw9C,IAAA5a,CAAAA,MAAA,EACJ,KAAA5iC,CAAAA,CAAAA,CAAAw9C,KAAAha,IAAAE,CAAAA,GAAA,CACD,CAAA,UAAA,CAAA,EAAA,CAEJ,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAOhB5X,IAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAo1D,wBAAAp1D,CAAAw9C,CAAAA,IAAAA,CAAAwJ,YAAA,CAOCl7B,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAw9C,CAAAA,IAAAA,CAAAmV,iBAAA,CAGD7mC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAA/rB,CAAA60D,CAAAA,SAAA,CACC/oC,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAAwtC,CAAAA,OAAA,EAYJ1hB,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAA+1D,CAAAA,aAAA,CCxBI4C,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAASp1B,GAAsBq1B,EAAMC,CAAAA,EAAO,CAAAvsC,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAEpD,IAAOgoC,CAAPwE,CAAAA,CAAAA,CAAAA,OAAOxE,CAAkB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAA,IAAA,CAAA,OAAA,qBAAA,CAAA,CAAA,IAAA,CAAA,CAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAnB,EAAA,EAAA,CCZnBtqC,EAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAKIyC,GAAA,kBAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAAoBqtC,EAAAnE,gBAAA7qC,CAAAA,IAAAA,CAAAqpC,CAAA,CAA6B,CAAA,CAAA,CAAA,CALrDrqC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CACIiZ,GAAA,SAAAgtC,CAAAA,CAAAA,CAAAvrB,OAAA,CAAA,CAAmB,YAAAurB,CAAA9rB,CAAAA,SAAA,EACI,aAAA8rB,CAAAA,CAAAA,CAAA5vC,WAAA,CACI,CAAA,eAAA,CAAA4vC,CAAAC,CAAAA,aAAA,IAQ9BC,IAAAA,EAAAA,CAAAA,CAA0B,IAAA,CAAjC,IAAOA,CAAP,CAAA,MAAOA,CAA0B,CAfvCn7D,aAAA,CAoBc,IAAA,CAAA82D,iBAAmB,IAAIlrC,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EALxBuvC,EAA0B,CAA1BA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA0B1wC,SAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAmR,OAAA,CAAA,SAAA,CAAAP,SAAA,CAAA,WAAA,CAAA9jB,YAAA,aAAA6vC,CAAAA,aAAAA,CAAA,eAAA,CAAAd,CAAAA,OAAAA,CAAA,CAAAtD,gBAAA,CAAA,kBAAA,CAAAnsC,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,UAAA,WAAA,CAAA,aAAA,CAAA,eAAA,CAAA,CAAA,CAAAC,QAAA,CAAA,SAAAhS,EAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,GAZ/BO,GAAA,CAAAiuC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,CAAQC,IAYV,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAOJ,CAAPK,CAAAA,CAAAA,CAAAA,OAAOL,CAA0B,CAAA,ICnBjC,IAAOM,EAAAA,CAAP,KAA2B,CAc7Bz7D,WAAAA,EAAA,EAAe,CAAA,CCDnB,IAAa07D,EAAsB,CAAA,CAAA,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CAG/B17D,WACY27D,CAAAA,CAAAA,CACAtgC,EACAwR,CACArF,CAAAA,CAAAA,CAAkC,CAHlC,IAAA,CAAAm0B,mBAAAA,CACA,CAAA,IAAA,CAAAtgC,qBAAAA,CAAAA,CAAAA,CACA,KAAAwR,aAAAA,CAAAA,CAAAA,CACA,KAAArF,gBAAAA,CAAAA,CAAAA,CANZ,KAAAo0B,oBAAuB,CAAA,IAAIH,GAOxB,CAEHI,uBAAuBC,CAAoB,CAAA,CACvC,IAAIC,CACAC,CAAAA,CAAAA,CACEC,EAAuBH,CAAgBG,CAAAA,YAAAA,CACvCC,CAAgB,CAAA,IAAA,CAAKP,mBAAmBQ,eAAgBL,CAAAA,CAAAA,CAAgBpc,KAAKvQ,SAAW8sB,CAAAA,CAAY,EAEtGG,CACAC,CAAAA,CAAAA,CACJ,OAAIH,CAAAA,GACAG,EAAUH,CAAcI,CAAAA,YAAAA,CACxB,IAAKC,CAAAA,SAAAA,CAAYF,GAASG,gBAAmBH,CAAAA,CAAAA,EAASG,gBAAiB,CAAA,CAAC,EAAI,IAE3EH,CAAAA,CAAAA,CAAAA,CAGOA,EAAQI,mBAShBV,EAAAA,CAAAA,CAAmBM,EAAQI,mBAC3BT,CAAAA,CAAAA,CAAgBK,CAAQK,CAAAA,aAAAA,EATnBL,EAAQK,aAITX,EAAAA,CAAAA,CAAmBM,CAAQK,CAAAA,aAAAA,CAC3BV,EAAgB,EAJhBD,GAAAA,CAAAA,CAAmBE,CACnBD,CAAAA,CAAAA,CAAgB,KALpBD,CAAmBE,CAAAA,CAAAA,CACnBD,EAAgB,EAahBC,CAAAA,CAAAA,CAAAA,CAAAA,EAAgBpoB,KAAa6B,MAAUumB,EAAAA,CAAAA,EAAgBpoB,IAAa8B,CAAAA,WAAAA,IACpEymB,EAAY,EAEU,CAAA,CAAA,CACtBO,gBAAkBZ,CAAAA,CAAAA,CAClBa,cAAeZ,CACfI,CAAAA,SAAAA,CAAWA,CAGnB,CAAA,CACAS,uBACIC,CACAC,CAAAA,CAAAA,CACAC,EACA/3B,CACAg4B,CAAAA,CAAAA,CACAC,EAAkB,CAElB,IAAMC,CAAwB,CAAA,IAAA,CAAK9hC,sBAAsB+hC,4BAA4B,EAAA,CAC/EC,EAAY,IAAKd,CAAAA,SAAAA,CACvB,GAAIY,CAAsBG,CAAAA,qBAAAA,CAAuB,CAC7C,IAAM1B,EAA6C,IAAIH,EAAAA,CACvDG,EAAqBG,gBAAmBe,CAAAA,CAAAA,CACxClB,EAAqBI,aAAgBe,CAAAA,CAAAA,CACrCnB,CAAqBQ,CAAAA,SAAAA,CAAYc,EACjCtB,CAAqBoB,CAAAA,YAAAA,CAAeA,CACpCpB,CAAAA,CAAAA,CAAqB2B,SAAWt4B,CAChC22B,CAAAA,CAAAA,CAAqBqB,mBAAsBA,CAAAA,CAAAA,CAC3CrB,EAAqByB,SAAYA,CAAAA,CAAAA,CACjC,KAAKG,qCAAsC5B,CAAAA,CAAoB,EACnE,CACJ,CAEA6B,yCAA0C/d,CAAAA,CAAAA,CAAWge,EAAiBC,CAAcj+D,CAAAA,CAAAA,CAAU,CAC1F,IAAMk8D,EAA6C,IAAIH,EAAAA,CACvDG,CAAqBG,CAAAA,gBAAAA,CAAmB,OAAS2B,CACjD9B,CAAAA,CAAAA,CAAqBI,cAAgB,EACrCJ,CAAAA,CAAAA,CAAqBQ,UAAY,EAC7BsB,CAAAA,CAAAA,EAAW7pB,IAAa6B,CAAAA,MAAAA,GACxBkmB,EAAqBQ,SAAYuB,CAAAA,CAAAA,EAAoB,EAEzD/B,CAAAA,CAAAA,CAAAA,CAAqBoB,aAAet9D,CAAQ,CAAA,CAAA,CAC5Ck8D,CAAqB2B,CAAAA,QAAAA,CAAW7d,EAAKza,QACrC22B,CAAAA,CAAAA,CAAqBqB,oBAAsBvd,CAAKud,CAAAA,mBAAAA,CAChD,KAAKO,qCAAsC5B,CAAAA,CAAoB,EACnE,CAEA4B,sCAAsC5B,CAA0C,CAAA,CAC5EA,EAAqB9rB,SAAYvH,CAAAA,MAAAA,CAAOsH,UAAUC,SAClD8rB,CAAAA,CAAAA,CAAqBgC,WAAc,CAAA,IAAA,CAAK/wB,cAAcgxB,aAAc,CAAA,aAAa,GAAK,EACtFjC,CAAAA,CAAAA,CAAqBkC,eAAiB,IAAKjxB,CAAAA,aAAAA,CAAcgxB,aAAc,CAAA,gBAAgB,EACvFjC,CAAqBmC,CAAAA,MAAAA,CAAS,IAAKlxB,CAAAA,aAAAA,CAAckxB,OACjDnC,CAAqBoC,CAAAA,SAAAA,CAAY,IAAKnxB,CAAAA,aAAAA,CAAcmxB,UACpDpC,CAAqBqC,CAAAA,UAAAA,CAAa,KAAKpxB,aAAcqxB,CAAAA,MAAAA,CACrD,KAAKC,mBAAoBvC,CAAAA,CAAoB,EACjD,CACAuC,oBAAoBvC,CAA0C,CAAA,CAC1D,IAAKA,CAAAA,oBAAAA,CAAuBA,EAChC,CAEAwC,mBAAAA,EAAmB,CACf,IAAMC,EAAuD,CACzDtC,gBAAAA,CAAkB,KAAKH,oBAAqBG,CAAAA,gBAAAA,CAC5CC,cAAe,IAAKJ,CAAAA,oBAAAA,CAAqBI,aACzCI,CAAAA,SAAAA,CAAW,KAAKR,oBAAqBQ,CAAAA,SAAAA,CACrCY,YAAc,CAAA,IAAA,CAAKpB,qBAAqBoB,YACxCO,CAAAA,QAAAA,CAAU,IAAK3B,CAAAA,oBAAAA,CAAqB2B,SACpCN,mBAAqB,CAAA,IAAA,CAAKrB,qBAAqBqB,mBAC/CW,CAAAA,WAAAA,CAAa,KAAKhC,oBAAqBgC,CAAAA,WAAAA,CACvCE,cAAgB,CAAA,IAAA,CAAKlC,qBAAqBkC,cAC1CC,CAAAA,MAAAA,CAAQ,KAAKnC,oBAAqBmC,CAAAA,MAAAA,CAClCC,UAAW,IAAKpC,CAAAA,oBAAAA,CAAqBoC,SACrCluB,CAAAA,SAAAA,CAAW,KAAK8rB,oBAAqB9rB,CAAAA,SAAAA,CACrCmuB,WAAY,IAAKrC,CAAAA,oBAAAA,CAAqBqC,WACtCZ,SAAW,CAAA,IAAA,CAAKzB,oBAAqByB,CAAAA,SAAAA,CAAAA,CAEzC,OAAIvV,MAAO55D,CAAAA,IAAAA,CAAKmwE,CAAuB,CAAA,CAAEv1D,OAAS,CACvCu1D,CAAAA,CAAAA,CAEJ,IACX,CAEAC,yBAAyB5kB,CAAa6kB,CAAAA,CAAAA,CAAiB,CACnD,IAAMpB,CAAAA,CAAwB,KAAK9hC,qBAAsB+hC,CAAAA,4BAAAA,EACnDiB,CAAAA,CAAAA,CAA0B,KAAKD,mBAAmB,EAAA,CAClDI,CAAS,CAAA,IAAA,CAAK3xB,cAAc4xB,aAAgB,CAAA,QAAA,CAAW,IAAK5xB,CAAAA,aAAAA,CAAc6xB,SAAW,QAAW,CAAA,SAAA,CAChGC,EAAwB,EACxBC,CAAAA,CAAAA,CAAQ,KAAK/xB,aAAc+xB,CAAAA,KAAAA,EAAS,IAAO,CAAA,IAAA,CAAK/xB,cAAc+xB,KAAQ,CAAA,EAAA,CACxEC,CACJ,CAAA,OAAQN,GACJ,IAAK,IACDM,CAAAA,CAAAA,CAAU,YACV,MACJ,IAAK,KACDA,CAAU,CAAA,YAAA,CACV,MACJ,IAAK,IAAA,CACDA,CAAU,CAAA,aAAA,CACV,MACJ,IAAK,IAAA,CACDA,EAAU,SACV,CAAA,MACJ,IAAK,IACL,CAAA,IAAK,IACDA,CAAAA,CAAAA,CAAU,KAAKr3B,gBAAiBs3B,CAAAA,WAAAA,CAAc,YAAc,IAAKt3B,CAAAA,gBAAAA,CAAiB+D,gBAAkB,kBAAqB,CAAA,EAAA,CACzH,MACJ,IAAK,KACDszB,CAAU,CAAA,SAAA,CACV,MACJ,QACIA,EAAU,MAClB,CACA,IAAME,CAAAA,CAA2C,CAC7CV,CAAyBtC,EAAAA,gBAAAA,CACzBsC,GAAyBrC,aACzBqC,CAAAA,CAAAA,EAAyBjC,UACzBiC,CAAyBrB,EAAAA,YAAAA,CACzBqB,CAAyBpB,EAAAA,mBAAAA,CACzBoB,GAAyBT,WACzBS,CAAAA,CAAAA,EAAyBP,cACzBO,CAAAA,CAAAA,EAAyBN,OACzBS,CACAG,CAAAA,CAAAA,CACAN,CAAyBvuB,EAAAA,SAAAA,CACzBuuB,GAAyBL,SACzBK,CAAAA,CAAAA,EAAyBJ,WACzBW,CACAC,CAAAA,CAAAA,CACAR,GAAyBhB,SAAS,CAAA,CAGhC2B,CAAqB,CAAA,IAAA,CAAK9iC,OAAOihC,CAAsB8B,CAAAA,iBAAAA,CAAmBF,CAAyB,CAAA,CACnGG,EAAW,IAAKC,CAAAA,gCAAAA,CAAiCzlB,CAAKslB,CAAAA,CAAkB,EAC9E,OACKX,CAAAA,CAAAA,EAAyBhB,WAAa,IAAQgB,EAAAA,CAAAA,EAAyBhB,WAAa,EACrF6B,GAAAA,CAAAA,EACAA,CAASx2B,CAAAA,OAAAA,CAAQ,aAAa,CAAI,CAAA,CAAA,CAAA,CAEdw2B,EAASviC,OAAQ,CAAA,aAAA,CAAe,EAAE,CAG/CuiC,CAAAA,CAEf,CACAhjC,MAAAA,CAAO37B,EAAiBnQ,CAAoB,CAAA,CACxC,IAAIgvE,CAAY7+D,CAAAA,CAAAA,CAChB,QAAS9S,CAAI,CAAA,CAAA,CAAGA,CAAI8S,CAAAA,CAAAA,CAAQuI,OAAQrb,CAAK,EAAA,CAAA,CACrC,IAAM4xE,CAAAA,CAAQ,IAAIt9B,MAAO,CAAA,KAAA,CAAQt0C,CAAI,CAAA,KAAA,CAAO,IAAI,CAC5C2C,CAAAA,CAAAA,CAAM3C,CAAC,CAAKgjD,EAAAA,IAAAA,CACZ2uB,EAAYA,CAAUziC,CAAAA,OAAAA,CAAQ0iC,CAAOC,CAAAA,kBAAAA,CAAmBlvE,EAAM3C,CAAC,CAAC,CAAC,CAAA,CAEjE2xE,EAAYA,CAAUziC,CAAAA,OAAAA,CAAQ0iC,CAAO,CAAA,EAAE,EAE/C,CACA,OAAOD,CACX,CAEAG,0BAAAA,EAA0B,CACtB,IAAI7/D,CAAAA,CAAQ,CACN8/D,CAAAA,CAAAA,CAAYj3B,OACdi3B,CAAUC,CAAAA,YAAAA,CAAaC,QAAajvB,GAAAA,KAAAA,CAAAA,EACpC+uB,EAAUC,YAAaC,CAAAA,QAAAA,CAAS5oB,QAAS6H,CAAAA,OAAAA,CAASghB,GAAqB,CACnEA,CAAAA,CAAaC,aAAelgE,CAChC,GAAA,CAAC,GAEA,IAAKmtC,CAAAA,aAAAA,CAAcgzB,QAAY,EAAA,IAAA,CAAKhzB,cAAc6C,OAAY8vB,GAAAA,CAAAA,CAAUC,aAAaK,WAAgBrvB,GAAAA,KAAAA,CAAAA,EACtG+uB,EAAUC,YAAaK,CAAAA,WAAAA,CAAYC,KAAMphB,CAAAA,OAAAA,CAASqhB,GAAsB,CACpEA,CAAAA,CAAcJ,aAAelgE,CACjC,GAAA,CAAC,EAET,CAEAy/D,gCAAAA,CAAiCzlB,CAAa1oD,CAAAA,CAAAA,CAAa,CACvD,OAAI0oD,CAAAA,CAAIhR,OAAQ,CAAA,GAAG,EAAI,CACnBgR,CAAAA,CAAAA,CAAAA,EAAO,GAAM1oD,CAAAA,CAAAA,CAEb0oD,GAAO,GAAM1oD,CAAAA,CAAAA,CAEV0oD,CACX,CAxNSgiB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAsB1sC,IAAAixC,IAAA,CAAA,CAAAjxC,GAAAsP,CAAAA,GAAA,EAAAtP,GAAAykB,CAAAA,IAAA,CAAAzkB,CAAAA,GAAAA,CAAAiZ,IAAA,CAAA,CAAA,CAAtByzB,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAsB3uE,QAAtB2uE,CAAsBp2B,CAAAA,SAAAA,CAAAC,WAFnB,MAAM,CAAA,EAEhB,IAAOm2B,CAAAA,CAAPwE,CAAOxE,CAAAA,OAAAA,CAAsB,ICHnC,CAAA,IAAayE,EAAc,CAAA,CAAA,IAAA,CAArB,IAAOA,CAAAA,CAAP,MAAOA,CAAc,CACvBngE,WACY04C,CAAAA,CAAAA,CACArd,EAA4C,CAD5C,IAAA,CAAAqd,IAAAA,CACA,CAAA,IAAA,CAAArd,qBAAAA,CAAAA,EACT,CAEH+kC,4BAA4B,EAAA,CACxB,IAAMnnB,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeonB,QAAQ,cAAiB,CAChE,yCATSF,CAAcnxC,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAAsP,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAApxC,GAAA,CAAA,CAAA,KAAA,CAAdizE,EAAcpzE,OAAdozE,CAAAA,CAAAA,CAAc76B,SAAAC,CAAAA,UAAAA,CAFX,MAAM,CAAA,CAAA,CAEhB,IAAO46B,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAc,CAAA,GAAA,CCCdI,IAAAA,IAAAA,CAAAA,CAAsB,IAAA,CAA7B,IAAOA,CAAP,CAAA,MAAOA,CAAsB,CAmB/BvgE,WAAAA,CACY04C,CACA8nB,CAAAA,CAAAA,CACAnlC,EACA+R,CAAc,CAAA,CAHd,KAAAsL,GAAAA,CAAAA,CAAAA,CACA,KAAA8nB,QAAAA,CAAAA,CAAAA,CACA,IAAAnlC,CAAAA,qBAAAA,CAAAA,EACA,IAAA+R,CAAAA,MAAAA,CAAAA,CAtBZ,CAAA,IAAA,CAAAqzB,qBAAuB,IAAIl8B,IAAAA,CAAqB,IAAI,CAAA,CACpD,KAAAm8B,wBAA2B,CAAA,IAAIn8B,KAAqB,IAAI,CAAA,CACxD,KAAAo8B,sBAAyB,CAAA,IAAIp8B,IAAqB,CAAA,IAAI,EACtD,IAAAq8B,CAAAA,sBAAAA,CAAyB,IAAIr8B,IAAqB,CAAA,IAAI,EACtD,IAAAs8B,CAAAA,oBAAAA,CAAuB,IAAIt8B,IAAAA,CAAqB,IAAI,CAC5C,CAAA,IAAA,CAAAu8B,8BAAgC,IAAIv8B,IAAAA,CAAyB,EAAK,CAG1E,CAAA,IAAA,CAAAw8B,yBAA6C,CAAA,IAAA,CAAKN,qBAAqBh8B,YAAY,EAAA,CACnF,IAAAu8B,CAAAA,6BAAAA,CAAiD,KAAKN,wBAAyBj8B,CAAAA,YAAAA,EAC/E,CAAA,IAAA,CAAAw8B,4BAA+C,IAAKN,CAAAA,sBAAAA,CAAuBl8B,cAC3E,CAAA,IAAA,CAAAy8B,4BAA+C,IAAKN,CAAAA,sBAAAA,CAAuBn8B,YAAY,EAAA,CACvF,KAAA08B,uBAA4C,CAAA,IAAIhgC,GAChD,CAAA,IAAA,CAAAigC,4BAAgD,IAAIjgC,GAAAA,CACpD,IAAAkgC,CAAAA,yBAAAA,CAA8C,IAAIlgC,GAClD,CAAA,IAAA,CAAAmgC,0BAA6C,IAAKT,CAAAA,oBAAAA,CAAqBp8B,cAEvE,CAAA,IAAA,CAAA88B,WAAsB,CAAA,EAAA,CAOlB,KAAKC,iCAAoC,CAAA,IAAA,CAAKV,6BAA8Br8B,CAAAA,YAAAA,GAChF,CAEAg9B,kBAAAA,EAAkB,CACd,IAAMxoB,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAClD,CAAA,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeyoB,SAAU,CAAA,YAAA,CAAiB,EAAI,CAAA,CAAE1lB,gBAAiB,CAAI,CAAA,CAAE,EAAE31B,SACjF+2B,CAAAA,CAAAA,EAAiB,CACd,IAAA,CAAK0jB,8BAA8BjlD,IAAKuhC,CAAAA,CAAQ,EAChD,IAAKukB,CAAAA,sBAAAA,CAAuBvkB,CAAQ,EACxC,CAAA,CACA,IAAK,EAAG,EAEhB,CAEAukB,sBAAuBC,CAAAA,CAAAA,CAAqB,CACxC,GAAIA,CAAAA,CAAkB,CAClB,IAAMxkB,EAAWwkB,CAAiBC,CAAAA,mBAAAA,CAC5BC,EAAoBF,CAAiBG,CAAAA,qBAAAA,CAE3C,GADA,IAAKC,CAAAA,YAAAA,CAAeJ,CAAiBK,CAAAA,QAAAA,CACjC7kB,EAAU,CACV,GAAIA,CAAS8kB,CAAAA,WAAAA,EAAepa,OAAO55D,IAAKkvD,CAAAA,CAAAA,CAAS8kB,WAAW,CAAA,EAAKpa,OAAO55D,IAAKkvD,CAAAA,CAAAA,CAAS8kB,WAAW,CAAEp5D,CAAAA,MAAAA,CAAS,EAAG,CAC3G,IAAA,IAAW42C,CAAQtC,IAAAA,CAAAA,CAAS8kB,YACxB,IAAKf,CAAAA,uBAAAA,CAAwBr7D,GAAI45C,CAAAA,CAAAA,CAAMtC,EAAS8kB,WAAYxiB,CAAAA,CAAI,CAAC,CAAA,CAErE,KAAK+gB,oBAAqB5kD,CAAAA,IAAAA,CAAK,KAAKslD,uBAAuB,EAC/D,MACI,IAAKA,CAAAA,uBAAAA,CAAwBxS,KAAK,EAAA,CAClC,KAAK8R,oBAAqB5kD,CAAAA,IAAAA,CAAK,IAAKslD,CAAAA,uBAAuB,EAE/D,GAAI/jB,CAAAA,CAAS+kB,eAAiB,CAAA,CAC1B,QAAWziB,CAAQtC,IAAAA,CAAAA,CAAS+kB,gBACxB,IAAKf,CAAAA,2BAAAA,CAA4Bt7D,IAAI45C,CAAMtC,CAAAA,CAAAA,CAAS+kB,eAAgBziB,CAAAA,CAAI,CAAC,CAE7E,CAAA,IAAA,CAAKghB,wBAAyB7kD,CAAAA,IAAAA,CAAK,KAAKulD,2BAA2B,EACvE,CACIU,CAAAA,EAAqBA,EAAkBM,aAAiBN,EAAAA,CAAAA,CAAkBM,cAAct5D,MAAS,CAAA,CAAA,EACjGg5D,EAAkBM,aAAczjB,CAAAA,OAAAA,CAASpuD,CAAa,EAAA,CAClD,KAAK8wE,yBAA0Bv7D,CAAAA,GAAAA,CAAIvV,CAAK8xE,CAAAA,YAAAA,CAAc9xE,CAAI,EAC9D,CAAC,CACD,CAAA,IAAA,CAAKowE,uBAAuB9kD,IAAK,CAAA,IAAA,CAAKwlD,yBAAyB,CAE/D,GAAA,IAAA,CAAKA,0BAA0B1S,KAAK,EAAA,CACpC,IAAKgS,CAAAA,sBAAAA,CAAuB9kD,KAAK,IAAKwlD,CAAAA,yBAAyB,CAEvE,EAAA,CACJ,CACJ,CACAiB,eAAAA,EAAe,CACX,OAAO,KAAKN,YAChB,CACAO,4BAA4Bz9B,CAAc,CAAA,CACtC,OAAO,IAAKq8B,CAAAA,uBAAAA,CAAwB3xC,GAAIsV,CAAAA,CAAM,CAClD,CAEA09B,+BAAAA,CAAgCj5B,EAAe,CAC3C,OAAO,KAAK63B,2BAA4B5xC,CAAAA,GAAAA,CAAI+Z,CAAU,CAC1D,CAEAk5B,uBAAwBC,CAAAA,CAAAA,CAAgB,CACpC,OAAO,IAAA,CAAKrB,0BAA0B7xC,GAAIkzC,CAAAA,CAAQ,CACtD,CACAC,yBAAyBC,CAAmB,CAAA,CACpC,IAAKvnC,CAAAA,qBAAAA,CAAsBwnC,8BAA+BC,CAAAA,iBAAAA,GAC1D,IAAKvB,CAAAA,WAAAA,CAAc,KAAKlmC,qBAAsBwnC,CAAAA,4BAAAA,GAA+BC,iBAAkBppB,CAAAA,GAAAA,CAAAA,CAEnG,IAAMqpB,CAAsB,CAAA,EAC5B,CAAA,OAAIH,GAAaA,CAAU95D,CAAAA,MAAAA,CAAS,CAChC85D,EAAAA,CAAAA,CAAUjkB,QAASx+B,CAAc,EAAA,CAC7B,IAAM6iD,CAAAA,CAAmB,KAAKP,uBAAwBtiD,CAAAA,CAAE,EACxD,GAAI6iD,CAAAA,CAAkB,CAClB,IAAMC,CAAAA,CAAmBC,MAAOF,CAAAA,CAAAA,CAAiBX,YAAY,CACvDc,CAAAA,CAAAA,CAAc,IAAK5B,CAAAA,WAAAA,CAAY5kC,QAAQ,cAAgBsmC,CAAAA,CAAgB,CAC7ED,CAAAA,CAAAA,CAAiBzB,YAAc4B,CAC/BJ,CAAAA,CAAAA,CAAaxgB,KAAKygB,CAAgB,EACtC,CACJ,CAAC,CAAA,CAEED,CACX,CAEAprE,gBAAgBwE,CAAc,CAAA,CAE1B,GAAIA,CAAW,CAAA,CACX,KAAKixC,MAAOv3C,CAAAA,KAAAA,CAAM,aAAgBsG,CAAAA,CAAAA,CAAUqkD,OAAS,aAAgBrkD,CAAAA,CAAAA,CAAU3H,OAAO,CACtF,CAAA,IAAI4uE,EAAY,EACZjnE,CAAAA,CAAAA,EAAaA,CAAUinE,CAAAA,SAAAA,GACvBA,EAAYjnE,CAAUinE,CAAAA,SAAAA,CAAAA,CAE1B,IAAK5C,CAAAA,QAAAA,CAASlqB,gBAAgB,CAAE,WAAA,CAAa,aAAa,CAAE,EAC5D,IAAKkqB,CAAAA,QAAAA,CAASpqB,YAAY,CAAE5hD,OAAAA,CAAS,kBAAmB6uE,IAAMD,CAAAA,CAAS,CAAE,CAAA,CAEzE,KAAK5C,QAASlqB,CAAAA,eAAAA,CAAgB,CAC1BgtB,QAAAA,CAAU,WACVC,GAAK,CAAA,kBAAA,CAAqBH,CAC7B,CAAA,CAAA,CAED,KAAKh2B,MAAOv3C,CAAAA,KAAAA,CAAM,QAASsG,CAAS,EACxC,CACJ,CACAqnE,qBAAAA,EAAqB,CACjB,IAAA,CAAK5C,uBAAuB/kD,IAAK,CAAA,CAAA,CAAI,EACzC,CACA4nD,iBACIC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACArkE,CAAAA,CAAAA,CAAW,CAEX,IAAMskE,CAAAA,CAAiBJ,GAAe,MAAS,CAAA,aAAA,CAAgB,gBAC/D,CAAA,IAAA,CAAKpD,SAASrqB,YAAa6tB,CAAAA,CAAAA,CAAgB,CACvC,yBAA2BN,CAAAA,CAAAA,CAC3B,uBAAwBC,CACxB,CAAA,uBAAA,CAAyBC,CACzB,CAAA,yBAAA,CAA2BC,EAC3B,yBAA2BC,CAAAA,CAAAA,CAC3B,yBAA0BC,CAC1B,CAAA,2BAAA,CAA6BrkE,EAEhC,EACL,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAnJS6gE,CAAsBvxC,EAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAAi1C,IAAA,CAAA,CAAAj1C,IAAAsP,GAAA,CAAA,CAAAtP,GAAA2kB,CAAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzmD,GAAA,CAAA,CAAA,KAAA,CAAtBqzE,EAAsBxzE,OAAtBwzE,CAAAA,CAAAA,CAAsBj7B,UAAAC,UAFnB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOg7B,CAAP2D,CAAAA,CAAAA,CAAAA,OAAO3D,CAAsB,CAAA,ICXtB4D,IAAAA,EAAAA,CAAP,KAAqB,CAwCvBnkE,aAAA,CAjCA,IAAA,CAAAokE,mBAA8B,CAO9B,CAAA,CAAA,IAAA,CAAAvP,kBAA6B,CAC7B,CAAA,CAAA,IAAA,CAAAwP,aAAwB,CAAA,EAAA,CACxB,KAAAl1B,SAAoB,CAAA,EAAA,CAGpB,IAAAjT,CAAAA,MAAAA,CAAiB,MAqBF,CCzBnB,EAAA,IAAaooC,IAAe,CAAA,CAAA,IAAA,CAAtB,IAAOA,CAAAA,CAAP,MAAOA,CAAe,CAUxBtkE,YACYq7B,CACAqd,CAAAA,CAAAA,CACAsa,CACA2I,CAAAA,CAAAA,CACArhB,EAA4B,CAJ5B,IAAA,CAAAjf,sBAAAA,CACA,CAAA,IAAA,CAAAqd,IAAAA,CACA,CAAA,IAAA,CAAAsa,YAAAA,CAAAA,CAAAA,CACA,KAAA2I,kBAAAA,CAAAA,CAAAA,CACA,KAAArhB,aAAAA,CAAAA,CAAAA,CAdZ,KAAAiqB,cAAmC,CAAA,IAAIpjC,GACvC,CAAA,IAAA,CAAAqjC,YAAwB,EAAA,CACxB,IAAAC,CAAAA,eAAAA,CAAuB,EACvB,CAAA,IAAA,CAAAC,gBAAwB,CAAA,GAGhB,IAAAC,CAAAA,yBAAAA,CAA4B,IAAIpgC,IAAqB,CAAA,IAAI,EACjE,IAAAqgC,CAAAA,oBAAAA,CAAwC,IAAKD,CAAAA,yBAAAA,CAA0BlgC,eAQpE,CAEHogC,gBAAiBC,CAAAA,CAAAA,CAAoBC,EAAW,CAAK,CAAA,CAAA,CACjD,IAAMn+B,CAAAA,CAAa,KAAKvL,qBAAsBwL,CAAAA,iBAAAA,GAE9C,OAAO,CAAA,EAAGD,EAAWZ,IAAI,CAAA,EAAGY,CAAWo+B,CAAAA,gBAAAA,CAAiBroC,QAAQ,KAAO,CAAA,IAAA,CAAKsoC,WAAYH,CAAAA,CAAAA,CAAeC,CAAQ,CAAC,CAAA,CAAEpoC,OAAQ,CAAA,KAAA,CAAOmoC,EAAcplB,IAAI,CAAC,IAAI,IAAKwlB,CAAAA,aAAAA,CAAcJ,EAAeC,CAAQ,CAAC,CACvM,CAAA,CAEAI,kBAAkBL,CAAoBp1B,CAAAA,CAAAA,CAAkB01B,EAA0B,EAAIC,CAAAA,CAAAA,CAAmB,GAAE,CACvG,IAAMz+B,CAAa,CAAA,IAAA,CAAKvL,sBAAsBwL,iBAAiB,EAAA,CACzDk+B,EACFK,CAAAA,EAAAA,CAAAA,EAAmBC,GAAoBA,CAAkBt9B,EAAAA,WAAAA,EAAiBq9B,EAAAA,CAAAA,EAAiBr9B,aACzFu9B,CAAAA,CAAAA,CAAAA,CAAiC,IAAInB,EAAAA,CAC3CmB,OAAAA,CAAexgC,CAAAA,MAAAA,CAASggC,CAAcplB,CAAAA,IAAAA,CACtC4lB,EAAepc,YAAe4b,CAAAA,CAAAA,CAAc5b,aAAe4b,CAAc5b,CAAAA,YAAAA,CAAe,GACxFoc,CAAehyE,CAAAA,IAAAA,CAAOwxE,CAAcxxE,CAAAA,IAAAA,CACpCgyE,EAAeC,QAAWT,CAAAA,CAAAA,CAAcS,QACxCD,CAAAA,CAAAA,CAAeE,QAAUV,CAAcU,CAAAA,OAAAA,CACnCV,CAAcW,CAAAA,OAAAA,GACdH,EAAeG,OAAUX,CAAAA,CAAAA,CAAcW,SAE3CH,CAAeI,CAAAA,gBAAAA,CAAmBZ,EAAchgC,MAChDwgC,CAAAA,CAAAA,CAAen2B,SAAY21B,CAAAA,CAAAA,CAAc31B,UACzCm2B,CAAeK,CAAAA,SAAAA,CAAYb,CAAca,CAAAA,SAAAA,CACzCL,EAAe5/B,IAAO,CAAA,CAClB7H,GACI+I,CAAAA,CAAAA,CAAWZ,KACXY,CAAWo+B,CAAAA,gBAAAA,CAAiBroC,QAAQ,KAAO,CAAA,IAAA,CAAKsoC,YAAYH,CAAeC,CAAAA,CAAQ,CAAC,CAAA,CAAEpoC,QAAQ,KAAO2oC,CAAAA,CAAAA,CAAexgC,MAAM,CAC1H,CAAA,GAAA,CACA,KAAKogC,aAAcJ,CAAAA,CAAAA,CAAeC,CAAQ,CAAA,CAAA,CAGlDO,EAAeppC,MAAS,CAAA,IAAA,CAAKgpC,cAAcJ,CAAeC,CAAAA,CAAQ,EAClEO,CAAe3Y,CAAAA,OAAAA,CAAU,IAAKiZ,CAAAA,UAAAA,CAAW1C,OAAO4B,CAAcp/B,CAAAA,IAAI,CAAGq/B,CAAAA,CAAQ,EAC7EO,CAAezY,CAAAA,OAAAA,CAAU,IAAKgZ,CAAAA,UAAAA,CAAW3C,OAAO4B,CAAcp/B,CAAAA,IAAI,EAAGgK,CAAO,CAAA,CAC5E41B,EAAergC,QAAW6/B,CAAAA,CAAAA,CAAcp/B,IAAOo/B,CAAAA,CAAAA,CAAcp/B,KAAO,GACpE4/B,CAAAA,CAAAA,CAAerI,mBAAsBqI,CAAAA,CAAAA,CAAergC,SAChDqgC,CAAergC,CAAAA,QAAAA,EAAY,OAAOqgC,CAAAA,CAAergC,UAAa,QAC9DqgC,GAAAA,CAAAA,CAAergC,SAAWi+B,MAAOoC,CAAAA,CAAAA,CAAergC,QAAQ,CAExDqgC,CAAAA,CAAAA,CAAAA,CAAergC,QAAYqgC,EAAAA,CAAAA,CAAergC,SAASyD,OAAQ,CAAA,GAAG,CAAI,CAAA,CAAA,CAAA,GAClE48B,EAAergC,QAAWqgC,CAAAA,CAAAA,CAAergC,QAAStI,CAAAA,OAAAA,CAAQ,IAAK,EAAE,CAAA,CAAA,CAG9D2oC,CACX,CAEAL,WAAAA,CAAYH,EAAoBC,CAAoB,CAAA,CAAA,CAAA,CAAK,CACrD,IAAMn+B,EAAkB,IAAKvL,CAAAA,qBAAAA,CAAsBwL,mBAC7Ci/B,CAAAA,CAAAA,CAAoB,KAAKzqC,qBAAsB0qC,CAAAA,yBAAAA,EACjDxV,CAAAA,CAAAA,CAAsB,KAAKl1B,qBAAsBU,CAAAA,qBAAAA,GAC/CoT,CAAY,CAAA,IAAA,CAAKmL,cAAcpL,YAAY,EAAA,EAAM,EACjD82B,CAAAA,CAAAA,CAAY,KAAKrK,kBAAmBsK,CAAAA,YAAAA,CAAa92B,CAAS,CAAA,CAC1D+2B,EAAgBnB,CAAWe,CAAAA,CAAAA,CAAaK,mBAAsBv/B,CAAAA,CAAAA,CAAWw/B,cAC/E,GAAItB,CAAAA,CAAe,CACf,IAAMuB,CAAAA,CAAWH,EAAcnwE,MAAQvI,CAAAA,CAAAA,EAAWA,CAAE2yB,CAAAA,EAAAA,EAAM2kD,EAAcp/B,IAAI,CAAA,CAC5E,GAAI2gC,CAAAA,EAAYA,EAAS,CAAC,CAAA,CAEtB,OAAIL,CAAAA,EAAWvkC,0BAA4B8uB,CAAe+V,CAAAA,yBAAAA,CAC/CD,EAAS,CAAC,CAAA,CAAE3gC,KAAOsgC,CAAWvkC,EAAAA,wBAAAA,CAElC4kC,CAAS,CAAA,CAAC,EAAE3gC,IAE3B,CACA,OAAIsgC,CAAAA,EAAWvkC,0BAA4B8uB,CAAe+V,CAAAA,yBAAAA,CAC/CJ,CAAc,CAAA,CAAC,EAAExgC,IAAOsgC,CAAAA,CAAAA,EAAWvkC,yBAEvCykC,CAAc,CAAA,CAAC,EAAExgC,IAC5B,CAEAw/B,aAAcJ,CAAAA,CAAAA,CAAoBC,EAAoB,CAAK,CAAA,CAAA,CACvD,IAAIn+B,CAAkB,CAAA,IAAA,CAAKvL,sBAAsBwL,iBAAiB,EAAA,CAC9Di/B,CAAoB,CAAA,IAAA,CAAKzqC,sBAAsB0qC,yBAAyB,EAAA,CACxEG,EAAgBnB,CAAWe,CAAAA,CAAAA,CAAaK,oBAAsBv/B,CAAWw/B,CAAAA,aAAAA,CAC7E,GAAItB,CAAAA,CAAe,CACf,IAAIuB,CAAAA,CAAWH,CAAcnwE,CAAAA,MAAAA,CAAQvI,GAAWA,CAAE2yB,CAAAA,EAAAA,EAAM2kD,CAAcp/B,CAAAA,IAAI,EAC1E,GAAI2gC,CAAAA,EAAYA,EAAS,CAAC,CAAA,CACtB,OAAOA,CAAS,CAAA,CAAC,CAAEnqC,CAAAA,MAE3B,CACA,OAAO,KACX,CAEA0pC,UAAAA,CAAWlgC,EAAcq/B,CAAiB,CAAA,CACtC,OAAQr/B,CAAAA,EACJ,IAAK,GAAA,CACL,IAAK,IACD,CAAA,SACJ,IAAK,GAAA,CACL,IAAK,IAAA,CACD,OACJ,CAAA,CAAA,IAAK,GACL,CAAA,IAAK,KACD,OAAO,CAAA,CACX,IAAK,GAAA,CACL,IAAK,IACD,CAAA,SACJ,IAAK,GAAA,CACL,IAAK,IACD,CAAA,OAAOq/B,CAAW,CAAA,CAAA,CAAI,EAC1B,IAAK,GAAA,CACL,IAAK,IACD,CAAA,SACJ,IAAK,IAAA,CACL,IAAK,KAAA,CACD,OACJ,CAAA,CAAA,QACI,OAAOA,CAAW,CAAA,CAAA,CAAI,CAC9B,CACJ,CAEAc,UAAWngC,CAAAA,CAAAA,CAAcgK,EAAgB,CACrC,OAAQhK,CAAI,EACR,IAAK,GACL,CAAA,IAAK,IACD,CAAA,SACJ,IAAK,GAAA,CACL,IAAK,IACD,CAAA,SACJ,IAAK,GAAA,CACL,IAAK,IAAA,CACD,OACJ,CAAA,CAAA,IAAK,GACL,CAAA,IAAK,KACD,OAAIgK,CAAAA,CACO,CAEA,CAAA,CAAA,CAEf,IAAK,GACL,CAAA,IAAK,KACD,OAAO,CAAA,CACX,IAAK,GACL,CAAA,IAAK,IACD,CAAA,SACJ,IAAK,IAAA,CACL,IAAK,KAAA,CACD,OACJ,CAAA,CAAA,QACI,OAAO,CACf,CACJ,CACA62B,kBAAAA,EAAkB,CACd,OAAO,IAAA,CAAK9B,eAChB,CAEA+B,WAAAA,CAAY1hC,CAAc,CAAA,CAyBtB,OAxBgB,IAAI+rB,OAAAA,CAAQ,CAACt4D,CAASC,CAAAA,CAAAA,GAAU,CAC5C,IAAMiuE,CAAAA,CAAoB,IAAKC,CAAAA,0BAAAA,CAA2B,CAAC5hC,CAAM,CAAC,EAClE,GAAI2hC,CAAAA,EAAqBA,EAAkB9W,YAAaxkC,CAAAA,IAAAA,CAAO,CAAKs7C,EAAAA,CAAAA,CAAkB9W,aAAangC,GAAIsV,CAAAA,CAAM,CACzGvsC,CAAAA,CAAAA,CAAQkuE,EAAkB9W,YAAangC,CAAAA,GAAAA,CAAIsV,CAAM,CAAC,OAC/C,CACH,IAAMmU,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAElD,CAAA,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,EAAekH,QAAS,CAAA,QAAA,CAAa,CAAEzyD,CAAAA,CAAG,CAACo3C,CAAM,CAAA,CAAG6hC,SAAW,CAAA,CAAA,CAAI,CAAE,CAAEtgD,CAAAA,SAAAA,CAC/E+2B,GAAY,CACT,GAAIA,GAAYA,CAAS,CAAA,CAAC,CACtB7kD,CAAAA,CAAAA,CAAQ6kD,EAAS,CAAC,CAAC,CACnB,CAAA,IAAA,CAAKwpB,aAAaxpB,CAAQ,CAAA,CAAA,KACvB,CACH,IAAM9sD,EAAS,IAAKu2E,CAAAA,oBAAAA,CAAqB/hC,CAAM,CAC/CvsC,CAAAA,CAAAA,CAAQjI,CAAM,CACd,CAAA,IAAA,CAAKs2E,YAAa,CAAA,CAACt2E,CAAM,CAAC,EAC9B,CACJ,CACCoX,CAAAA,CAAAA,EAAS,CACNlP,CAAOkP,CAAAA,CAAK,EAChB,CAAC,EAET,CACJ,CAAC,CAEL,CACAg/D,0BAAAA,CAA2Bze,EAAmB,CAC1C,IAAI7K,CAA2C,CAAA,IAAIsS,KAC7CoX,CAAY,CAAA,IAAA,CAAKC,sBAAuB9e,CAAAA,CAAS,EAKvD,GAJI6e,CAAAA,GAAc,IACd1pB,GAAAA,CAAAA,CAAW0pB,EACX7e,CAAY6e,CAAAA,CAAAA,CAAUlX,iBAEtBkX,CAAa,EAAA,IAAA,EAAQA,EAAUlX,eAAoB,GAAA,IAAA,CAAM,CACzD,IAAMoX,EAA2B,IAAKhU,CAAAA,YAAAA,CAAaV,qBAAsBrK,CAAAA,CAAS,EAC9E+e,CAA6B,GAAA,IAAA,EAAQA,CAAyBrX,CAAAA,YAAAA,CAAaxkC,KAAO,CAC9EiyB,GAAAA,CAAAA,EAAY,OAAMA,CAAW,CAAA,IAAIsS,MACrCnvB,KAAM1yC,CAAAA,IAAAA,CAAKm5E,CAAyBrX,CAAAA,YAAAA,CAAa51C,SAAS,CAAA,CAAE4kC,OAASt9C,CAAAA,CAAAA,EAAc,CAC/E+7C,CAASuS,CAAAA,YAAAA,CAAa7pD,GAAIzE,CAAAA,CAAAA,CAAM,CAAC,CAAGA,CAAAA,CAAAA,CAAM,CAAC,CAAC,EAChD,CAAC,CACD+7C,CAAAA,CAAAA,CAASwS,eAAkBoX,CAAAA,CAAAA,CAAyBpX,iBAE5D,CACA,OAAOxS,CACX,CACAwpB,YAAAA,CAAazmB,EAAa,CACtBA,CAAAA,CAASxB,OAASe,CAAAA,CAAAA,EAAa,CAC3B,IAAK6kB,CAAAA,cAAAA,CAAez+D,IAAI45C,CAAK5a,CAAAA,MAAAA,CAAQ4a,CAAI,EAC7C,CAAC,CACD,CAAA,IAAA,CAAKsT,aAAaJ,gBAAiB,CAAA,IAAA,CAAK2R,cAAc,EAC1D,CACAsC,oBAAqB/hC,CAAAA,CAAAA,CAAc,CAC/B,IAAMmiC,EAAiC,IAAI9C,EAAAA,CAC3C8C,OAAAA,CAAe7C,CAAAA,kBAAAA,CAAqB,GACpC6C,CAAeniC,CAAAA,MAAAA,CAASA,CACjBmiC,CAAAA,CACX,CACAF,sBAAuB9e,CAAAA,CAAAA,CAAmB,CACtC,IAAMuK,EAAgC,IAAIrxB,GAAAA,CACtCyuB,CAA4B,CAAA,GAChC,GAAI,IAAA,CAAK2U,eAAep5C,IAAO,CAAA,CAAA,CAAG,CAC9B,IAAM+7C,CAAAA,CAAc,IAAK3C,CAAAA,cAAAA,CACzB,OAAItc,CAAaA,EAAAA,CAAAA,CAAUn/C,MAAS,CAAA,CAAA,EAChCm/C,EAAUtJ,OAASe,CAAAA,CAAAA,EAAQ,CACnBwnB,CAAAA,CAAY13C,IAAIkwB,CAAI,CAAA,CACpB8S,EAAY1sD,GAAI45C,CAAAA,CAAAA,CAAMwnB,EAAY13C,GAAIkwB,CAAAA,CAAI,CAAC,CAAA,CAE3CkQ,EAAgBrN,IAAK7C,CAAAA,CAAI,EAEjC,CAAC,CAAA,CAEwC,CACzCiQ,YAAc6C,CAAAA,CAAAA,CACd5C,eAAiBA,CAAAA,CAAAA,CAAgB9mD,OAAS,CAAI8mD,CAAAA,CAAAA,CAAkB,EAGxE,CAAA,CACA,OAAO,IAAIF,IACf,CACAyX,mBAAAA,CAAoBC,EAAiB,CACjC,IAAMC,CAAoB,CAAA,GAC1B,OAAID,CAAAA,EAAWA,CAAQt+D,CAAAA,MAAAA,CAAS,GAC5Bs+D,CAAQzoB,CAAAA,OAAAA,CAAS7Z,GAAkB,CAC/B,IAAMwiC,EAAqB,CACvB5nB,IAAAA,CAAM5a,CACNY,CAAAA,IAAAA,CAAM,KAEV2hC,CAAW9kB,CAAAA,IAAAA,CAAK+kB,CAAa,EACjC,CAAC,CAEED,CAAAA,CACX,CACAtiC,kBAAAA,CAAmBD,EAAc,CAC7B,IAAM6qB,EAAe,IAAK4X,CAAAA,cAAAA,CAAeziC,CAAM,CAC/C,CAAA,OAAO6qB,CAAgBA,EAAAA,CAAAA,CAAar8D,IACxC,CACAi0E,cAAAA,CAAeziC,CAAc,CAAA,CACzB,GAAI,IAAK2/B,CAAAA,eAAAA,EAAmB,IAAKA,CAAAA,eAAAA,CAAgB37D,OAAS,CACtD,CAAA,CAAA,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAI,KAAKg3E,eAAgB37D,CAAAA,MAAAA,CAAQrb,CAC7C,EAAA,CAAA,GAAI,KAAKg3E,eAAgBh3E,CAAAA,CAAC,EAAEiyD,IAAS5a,GAAAA,CAAAA,CACjC,OAAO,IAAK2/B,CAAAA,eAAAA,CAAgBh3E,CAAC,CAAA,CAIzC,OAAO,IACX,CACA+5E,mBAAmB1iC,CAAgB2iC,CAAAA,CAAAA,CAAkB,CACjD,GAAI3iC,CAAAA,CAAQ,CACR,IAAMmU,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CAEvE,OAAO,IAAKR,CAAAA,GAAAA,CAAIlpB,GAAIypB,CAAAA,CAAAA,CAAekH,SAAS,mBAAwB,CAAA,CAAErb,OAAQA,CAAQ2iC,CAAAA,UAAAA,CAAYA,CAAU,CAAE,CAClH,CACA,OAAO,IAAIjgD,GACf,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApRS88C,CAAet1C,EAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAA6gC,EAAA,CAAA,CAAA7gC,IAAAixC,IAAA,CAAA,CAAAjxC,IAAAuX,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAr5C,GAAA,CAAA,CAAA,KAAA,CAAfo3E,EAAev3E,OAAfu3E,CAAAA,CAAAA,CAAeh/B,SAAAC,CAAAA,UAAAA,CAFZ,MAAM,CAAA,CAAA,CAEhB,IAAO++B,CAAAA,CAAPoD,SAAOpD,CAAe,CAAA,ICPvBqD,IAAAA,EAAAA,CAAL,SAAKA,CAAI,CAAA,CACLA,OAAAA,CAAAA,CAAA,IAAA,KACAA,CAAAA,CAAAA,CAAA,IAAA,KACAA,CAAAA,CAAAA,CAAA,GAAA,IACAA,CAAAA,CAAAA,CAAA,GAAA,CAAA,KAAA,CAJCA,CAKL,CALKA,CAAAA,EAAAA,EAAI,EAAA,CAAA,CAOJC,GAAL,SAAKA,CAAAA,CAAK,CACNA,OAAAA,EAAA,EAAA,CAAA,IAAA,CACAA,CAAA,CAAA,GAAA,CAAA,MACAA,CAAA,CAAA,EAAA,CAAA,IAHCA,CAAAA,CAIL,EAJKA,EAAK,EAAA,EAAA,CAMJC,CAAAA,EAAAA,CAAK,iBAKEC,IAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAKlC9nE,WAAAA,CACYq7B,EACAL,CACAC,CAAAA,CAAAA,CACAG,CACAoM,CAAAA,CAAAA,CACAtM,EACA2R,CAA4B,CAAA,CAN5B,KAAAxR,qBAAAA,CAAAA,CAAAA,CACA,KAAAL,IAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,IAAAA,CAAAA,EACA,IAAAG,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAoM,iBAAAA,CACA,CAAA,IAAA,CAAAtM,SAAAA,CAAAA,CAAAA,CACA,KAAA2R,aAAAA,CAAAA,CAAAA,CATZ,KAAAiV,sBAAyB/3B,CAAAA,GAAAA,CAAOgsB,EAAsB,EAUnD,CAEHgyB,KAAMC,CAAAA,CAAAA,CAAuB,CACzB,IAAKC,CAAAA,MAAAA,CAAS,IAAK5sC,CAAAA,qBAAAA,CAAsB6sC,iCACzC,CAAA,IAAA,CAAKC,cAAeH,CAAAA,CAAY,EAEhC,IAAII,CAAAA,CAAmB7/B,OAAO,IAAK0/B,CAAAA,MAAAA,EAAQI,iBAAiB95E,GAAG,CAAA,CAC/D,GAAI,IAAA,CAAK05E,QAAQI,gBAAkBC,EAAAA,OAAAA,GAAY,MAAUF,EAAAA,CAAAA,EAAal6D,MAAM,GAAG,CAAA,EAAGw6B,OAAQ,CAAA,IAAA,CAAKu/B,QAAQI,gBAAkBr3E,EAAAA,KAAK,IAAM,CAChI,CAAA,CAAA,OAEJ,IAAI0oD,CAAa6uB,CAAAA,CAAAA,CACjB,IAAS3vE,IAAAA,CAAAA,IAAQ,KAAKqvE,MAAQO,EAAAA,QAAAA,CAC1B9uB,CAAM,CAAA,IAAA,CAAKuuB,QAAQO,QAAS5vE,CAAAA,CAAI,CAChC2vE,CAAAA,CAAAA,CAAU,KAAKE,UAAWT,CAAAA,CAAAA,CAAcpvE,GAAM+kC,WAAW,EAAE,EACvD+b,CAAO6uB,EAAAA,CAAAA,EAAS,IAAKG,CAAAA,QAAAA,CAAShvB,EAAK6uB,CAAQt/B,CAAAA,MAAAA,CAAQs/B,CAAQp9B,CAAAA,IAAI,EAE3E,CAmBQg9B,cAAAA,CAAeH,CAAuB,CAAA,CAC1C,GAAM,CACF10E,IAAAA,CAAAA,EACAsF,IAAAA,CAAAA,CAAAA,CACA+vE,SAAAA,CACAjL,CAAAA,OAAAA,CAAAA,CACAR,CAAAA,YAAAA,CAAAA,EACA10B,QAAAA,CAAAA,CAAAA,CACAgY,OAAAA,CACAooB,CAAAA,WAAAA,CAAAA,EACAC,SAAAA,CAAAA,CAAAA,CACAC,aAAAA,CAAAA,CAAAA,CACAC,YAAAA,CACA9M,CAAAA,YAAAA,CAAAA,GACA+M,eAAAA,CAAAA,EAAAA,CACAC,mBAAAA,EACAC,CAAAA,SAAAA,CAAAA,EACAC,CAAAA,WAAAA,CAAAA,GACAC,eAAAA,CAAAA,EAAe,CACfpB,CAAAA,CAAAA,CACEqB,GAAY,CACd,CAACvzB,IAAcwzB,CAAAA,iBAAiB,EAAGh2E,CACnC,CAAA,CAACwiD,KAAcyzB,iBAAiB,EAAG3wE,EACnC,CAACk9C,IAAAA,CAAc0zB,qBAAqB,EAAGb,EACvC,CAAC7yB,IAAAA,CAAckN,oBAAoB,EAAG0a,EACtC,CAAC5nB,IAAAA,CAAc2zB,yBAAyB,EAAGvM,EAC3C,CAACpnB,IAAAA,CAAc4zB,8BAA8B,EAAGlhC,CAAAA,CAChD,CAACsN,IAAc6zB,CAAAA,mBAAmB,EAAGnpB,CAAAA,CACrC,CAAC1K,IAAc8zB,CAAAA,iCAAiC,EAAGhB,CAAAA,CACnD,CAAC9yB,IAAc+zB,CAAAA,qBAAqB,EAAGhB,CAAAA,CACvC,CAAC/yB,IAAcg0B,CAAAA,0BAA0B,EAAGhB,CAC5C,CAAA,CAAChzB,KAAci0B,wBAAwB,EAAGhB,CAC1C,CAAA,CAACjzB,KAAck0B,qBAAqB,EAAG/N,GACvC,CAACnmB,IAAAA,CAAcm0B,wBAAwB,EAAGjB,EAAAA,CAC1C,CAAClzB,IAAAA,CAAco0B,2BAA2B,EAAGjB,EAAAA,CAC7C,CAACnzB,IAAcq0B,CAAAA,eAAe,EAAGjB,EACjC,CAAA,CAACpzB,IAAcs0B,CAAAA,iBAAiB,EAAGjB,EACnC,CAAA,CAACrzB,IAAcu0B,CAAAA,qBAAqB,EAAGjB,EAE3C,CAAA,CAAA,IAAA,CAAKtnB,sBAAuB5L,CAAAA,OAAAA,CAAQ,CAAE5iD,IAAMuiD,CAAAA,EAAAA,CAAWy0B,SAAUvvC,IAAMsuC,CAAAA,EAAS,CAAE,EACtF,CAEQkB,YAAaC,CAAAA,CAAAA,CAAoB,CACrC,OAAOA,CAAAA,EAAiBvhC,MAAQwhC,EAAAA,cAAAA,EAAkB,IAAIpnC,IAAI,EAAA,CAAGE,OAAO,EACxE,CAEQmnC,WAAW,EAAA,CACf,OAAOniC,MAAOC,CAAAA,QAAAA,EAAU+F,UAAU5R,OAAQ,CAAA,GAAA,CAAM,IAAK1B,CAAAA,IAAAA,CAAKsB,KAAO,GAAK,CAAA,EAAE,CAAGwL,EAAAA,WAAAA,EAC/E,CAEQ4iC,cAAAA,CAAer3E,CAAY,CAAA,CAC/B,OAAO2pC,QAAS+jB,CAAAA,MAAAA,EACV9yC,MAAM,GAAG,CAAA,CACVojC,KAAMh/C,CAAMA,EAAAA,CAAAA,CAAE0hE,QAAS1gE,CAAAA,CAAI,CAAC,CAC3B4a,EAAAA,KAAAA,CAAM,GAAG,CAAE,CAAA,CAAC,CACtB,CAEQ08D,eAAAA,CAAgBC,CAAiB,CAAA,CAErC,IAAIC,CADY7tC,CAAAA,QAAAA,CAAS+jB,QAAQ9yC,KAAM,CAAA,GAAG,EAAEojC,IAAMh/C,CAAAA,CAAAA,EAAMA,CAAE0hE,CAAAA,QAAAA,CAAS6W,CAAS,CAAC,CAAA,EAC/C38D,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAC1C,OAAO48D,CAAAA,EAAc5hE,MAAM,UAAU,CAAA,CAAI4hE,EAAe,EAC5D,CAEQC,cAAc5qD,CAAU,CAAA,CAC5B,GAAI,IAAA,CAAK6a,KAAKkR,eAAiB,CAAA,OAAO,IAAKlR,CAAAA,IAAAA,CAAKgwC,UAChD,IAAMz8E,CAAAA,CAAc,KAAQ,CAAA,IAAA,CAAK05E,QAAQgD,EAAGC,CAAAA,KAAAA,CAAQ,YAChD36E,CAAY8+D,CAAAA,IAAAA,CAAKC,MAAMJ,YAAaC,CAAAA,OAAAA,CAAQ5gE,CAAG,CAAA,EAAK,MAAM,CAC9D,CAAA,OAAOgC,CAAOA,CAAAA,CAAAA,CAAK4vB,CAAE,CAAI,CAAA,IAC7B,CAGQgrD,gBAAAA,EAAgB,CACpB,OAAI,IAAA,CAAK3jC,iBAAiBQ,QACf,CAAA,IAAA,CAAKR,iBAAiB4jC,eAE7B,CAAA,IAAA,CAAKv+B,aAAcgzB,CAAAA,QAAAA,CACZ,SAEJ,SACX,CAEQwL,YAAYlrD,CAAU,CAAA,CAC1B,IAAMmrD,CAAW,CAAA,IAAA,CAAKpwC,SAAU6B,CAAAA,YAAAA,CAAa,IAAOwuC,MAAU,EAAA,IAAA,CAAKrwC,UAAU6B,YAAa,CAAA,EAAA,EAAOwuC,QAAS,CAAA,CAAC,CAAE/7C,CAAAA,GAAAA,CAAIrP,CAAE,CACnH,CAAA,GAAImrD,CAAK,CAAA,OAAOA,EAChB,IAAItqB,CAAAA,CAA+B/jB,QAAS+jB,CAAAA,MAAAA,CACvC9yC,MAAM,GAAG,CAAA,CACTojC,KAAMh/C,CAAMA,EAAAA,CAAAA,CAAE0hE,SAAS,MAAM,CAAC,CAC7B9lD,EAAAA,KAAAA,CAAM,GAAG,CACf,CAAA,OAAO8yC,CAAUA,EAAAA,CAAAA,CAAOl4C,QAAU,CAAIk4C,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAI,IAAMA,CAAO,CAAA,CAAC,EAAI,IACxE,CAEQynB,WAAW+B,CAAsB5xE,CAAAA,CAAAA,CAAY,CACjD,IAAI2vE,EACJ,OAAQ3vE,CAAAA,EACJ,KAAK+uE,GAAK6D,GACNjD,CAAAA,CAAAA,CAAU,IAAKkD,CAAAA,aAAAA,CAAcjB,CAAe,CAC5C,CAAA,MACJ,KAAK7C,EAAK+D,CAAAA,GAAAA,CACNnD,EAAU,IAAKoD,CAAAA,aAAAA,CAAcnB,CAAe,CAAA,CAC5C,MACJ,KAAK7C,EAAAA,CAAKiE,GACNrD,CAAU,CAAA,IAAA,CAAKsD,aAAarB,CAAe,CAAA,CAC3C,MACJ,QACIjC,EAAU,IACV,CAAA,KACR,CACA,OAAOA,CACX,CACQkD,aAAcjB,CAAAA,CAAAA,CAAoB,CACtC,IAAIsB,EACAC,CAAoB,CAAA,CAChB/5E,CAAG,CAAA,CAAA,CACHzE,EAAG,OACHy+E,CAAAA,GAAAA,CAAK,IAAK/D,CAAAA,MAAAA,EAAQgE,IAAIC,aACtBZ,CAAAA,GAAAA,CAAK,KAAKD,WAAY,CAAA,UAAU,EAChCc,EAAI,CAAA,IAAA,CAAK3kC,gBAAiBQ,CAAAA,QAAAA,CAAW,SAAW,KAChDokC,CAAAA,CAAAA,CAAGzrB,IAAK4K,CAAAA,KAAAA,CAAM5K,KAAK0rB,MAAM,EAAA,CAAK,GAAU,CAAA,CAAC,EACzCC,EAAIz8B,CAAAA,SAAAA,CAAUC,WAAW/H,WAAW,EAAA,CACpCstB,GAAI,OACJkX,CAAAA,EAAAA,CAAI,CACJC,CAAAA,EAAAA,CAAIvvC,SAASo5B,KACboW,CAAAA,EAAAA,CAAIxvC,QAAS6a,CAAAA,GAAAA,CACb40B,GAAIzvC,QAAS0vC,CAAAA,QAAAA,CACbC,EAAI3vC,CAAAA,QAAAA,CAASuL,SAASxC,IACtB6mC,CAAAA,EAAAA,CAAI,KAAK5xC,IAAK6xC,CAAAA,OAAAA,EAAS/kC,aACvBglC,CAAAA,KAAAA,CAAO,IAAK/xC,CAAAA,IAAAA,CAAKgyC,YAAYjlC,WAAW,EAAA,CACxCklC,GAAI,iBACJtrC,CAAAA,EAAAA,CAAI,KAAK+oC,WAAW,EAAA,CACpBwC,EAAI1C,CAAAA,CAAAA,CAAgBzB,aAAahhC,WAAW,EAAA,CAC5ColC,GAAI,CACJC,CAAAA,GAAAA,CAAK,KAAKxC,eAAgB,CAAA,IAAA,CAAK3C,MAAQoF,EAAAA,GAAAA,CAAIxC,SAAS,CAE5D,CAAA,CAAA,OAAI,IAAK5C,CAAAA,MAAAA,EAAQgE,IAAIqB,KAAU1F,GAAAA,EAAAA,CAAM2F,GACjCzB,CAAAA,CAAAA,CAAiB,CACb0B,GAAK,CAAA,IAAA,CAAKxyC,KAAKgwC,SACfyC,CAAAA,GAAAA,CAAK,KAAKzyC,IAAKsvB,CAAAA,QAAAA,EAAUviB,WAAW,EAAA,CACpC2lC,IAAK,IAAKtyC,CAAAA,aAAAA,CAAcgB,KAAO2L,EAAAA,WAAAA,GAC/B4lC,GAAK5B,CAAAA,CAAAA,CAAaI,EAClByB,CAAAA,IAAAA,CAAMpD,EAAgB7B,QACtBkF,CAAAA,IAAAA,CAAMrD,EAAgB9M,OAAS31B,EAAAA,WAAAA,GAC/B+lC,IAAMtD,CAAAA,CAAAA,CAAgB5xE,IAAMmvC,EAAAA,WAAAA,GAC5BgmC,IAAMhC,CAAAA,CAAAA,CAAaW,EACnBsB,CAAAA,KAAAA,CAAOxD,EAAgBtN,YACvB+Q,CAAAA,KAAAA,CAAOzD,CAAgBhqB,CAAAA,MAAAA,EAAQzY,aAC/BmmC,CAAAA,KAAAA,CAAO1D,EAAgBhiC,QAAUT,EAAAA,WAAAA,GACjComC,KAAO3D,CAAAA,CAAAA,CAAgB5B,WAAa7gC,EAAAA,WAAAA,GACpCqmC,KAAO5D,CAAAA,CAAAA,CAAgB3B,WAAW9gC,WAAW,EAAA,CAC7CsmC,MAAO7D,CAAgB1B,CAAAA,aAAAA,EAAe/gC,WAAW,EAAA,CACjDumC,MAAOvC,CAAamB,CAAAA,EAAAA,CACpBqB,MAAO/D,CAAgBvO,CAAAA,YAAAA,EAAcl0B,aACrCymC,CAAAA,KAAAA,CAAOhE,CAAgBxB,CAAAA,eAAAA,EAAiBjhC,aACxC0mC,CAAAA,KAAAA,CAAO1C,CAAaU,CAAAA,EAAAA,CACpBiC,MAAOlE,CAAgBl3E,CAAAA,IAAAA,EAAMy0C,WAAW,EAAA,CACxC4mC,MAAO,IAAKvzC,CAAAA,aAAAA,CAAchM,SAAS2Y,WAAW,EAAA,CAC9C6mC,MAAOpE,CAAgBvB,CAAAA,kBAAAA,EAAoBlhC,WAAW,EAAA,CACtD8mC,MAAOrE,CAAgBtB,CAAAA,SAAAA,EAAWnhC,WAAW,EAAA,CAC7C+mC,MAAOtE,CAAgBrB,CAAAA,WAAAA,EAAaphC,WAAW,EAAA,CAC/CgnC,MAAOvE,CAAgBpB,CAAAA,eAAAA,EAAiBrhC,aAG5C+jC,CAAAA,CAAAA,CAAAA,CAAiB,CACb0B,GAAK,CAAA,IAAA,CAAKxyC,IAAKgwC,CAAAA,SAAAA,CACfgE,IAAK,IAAKh0C,CAAAA,IAAAA,CAAKi0C,OAASlnC,EAAAA,WAAAA,GACxB2lC,GAAK,CAAA,IAAA,CAAK1yC,IAAKkR,CAAAA,eAAAA,CAAkB,EAAI,CACrC0hC,CAAAA,IAAAA,CAAM,KAAKpmC,gBAAiBQ,CAAAA,QAAAA,CAC5B6lC,KAAM,IAAKzyC,CAAAA,aAAAA,CAAc8zC,QACzBC,CAAAA,IAAAA,CAAMpD,EAAapqC,EACnBytC,CAAAA,IAAAA,CAAMrD,EAAamB,EACnBmC,CAAAA,IAAAA,CAAM7E,EAAgB7B,QACtB2G,CAAAA,IAAAA,CAAM9E,CAAgB9M,CAAAA,OAAAA,EAAS31B,aAC/BwnC,CAAAA,IAAAA,CAAM/E,EAAgBtN,YACtBsS,CAAAA,IAAAA,CAAMhF,EAAgB5xE,IAAMmvC,EAAAA,WAAAA,EAC5B0nC,CAAAA,IAAAA,CAAMjF,EAAgB3B,SAAW9gC,EAAAA,WAAAA,EACjC2nC,CAAAA,IAAAA,CAAMlF,EAAgBl3E,IAAMy0C,EAAAA,WAAAA,EAC5B4nC,CAAAA,IAAAA,CAAMnF,EAAgBhqB,MAAQzY,EAAAA,WAAAA,GAC9B6nC,IAAMpF,CAAAA,CAAAA,CAAgBhiC,UAAUT,WAAW,EAAA,CAC3C8nC,IAAMrF,CAAAA,CAAAA,CAAgB5B,aAAa7gC,WAAW,EAAA,CAC9C+nC,IAAMtF,CAAAA,CAAAA,CAAgBvO,cAAcl0B,WAAW,EAAA,CAC/CgoC,IAAMvF,CAAAA,CAAAA,CAAgBxB,iBAAiBjhC,WAAW,EAAA,CAClDioC,MAAOjE,CAAaU,CAAAA,EAAAA,CACpB+B,MAAO,IAAKxzC,CAAAA,IAAAA,CAAKgwC,SACjBiF,CAAAA,KAAAA,CAAOzF,EAAgBvB,kBAAoBlhC,EAAAA,WAAAA,EAC3CmoC,CAAAA,KAAAA,CAAOnE,EAAaO,EACpB6D,CAAAA,KAAAA,CAAO3F,CAAgBtB,CAAAA,SAAAA,EAAWnhC,aAClCqoC,CAAAA,KAAAA,CAAO5F,EAAgBrB,WAAaphC,EAAAA,WAAAA,GACpCsoC,KAAO7F,CAAAA,CAAAA,CAAgBpB,eAAiBrhC,EAAAA,WAAAA,GACxCuoC,KAAOrzC,CAAAA,QAAAA,CAAS0vC,UAKjB,CAAE1jC,MAAAA,CAFS6e,OAAOyoB,MAAO,CAAA,EAAIxE,CAAAA,CAAAA,CAAcD,CAAc,CAE/C3gC,CAAAA,IAAAA,CADbA,MACiB,CACzB,CAEQwgC,cAAcnB,CAAoB,CAAA,CACtC,IAAIvhC,CAAAA,CAAc,CACdunC,cAAgB,CAAA,IAAA,CAAKvI,MAAQoF,EAAAA,GAAAA,CAAInB,cACjCuE,UAAY,CAAA,IAAA,CAAKxI,MAAQoF,EAAAA,GAAAA,CAAIqD,cAE7B31C,CAAY,CAAA,CACZ41C,UAAW,IAAKtF,CAAAA,WAAAA,CAAY,UAAU,CACtCuF,CAAAA,OAAAA,CAAS,IAAK51C,CAAAA,IAAAA,CAAKgwC,UACnB6F,gBAAkB,CAAA,IAAA,CAAKtG,YAAaC,CAAAA,CAAe,EAAI,GACvDsG,CAAAA,eAAAA,CAAiB,CACbC,OAAAA,CAAS,CACL//E,KAAO,CAAA,IAAA,CAAKoqC,cAAckB,OAASyL,EAAAA,WAAAA,IAEvCipC,aAAe,CAAA,CACXhgF,KAAO,CAAA,IAAA,CAAKw2C,iBAAiBQ,QAEjCipC,CAAAA,CAAAA,YAAAA,CAAc,CACVjgF,KAAAA,CAAO,KAAKgqC,IAAKi0C,CAAAA,OAAAA,EAASlnC,WAAW,EAAA,CAAA,CAEzCmpC,gBAAiB,CACblgF,KAAAA,CAAO,KAAKgqC,IAAKgwC,CAAAA,SAAAA,CAAAA,CAErBmG,cAAe,CACXngF,KAAAA,CAAO,IAAKgqC,CAAAA,IAAAA,CAAKkR,gBAAkB,WAAc,CAAA,eAAA,CAAA,CAErDklC,QAAS,CACLpgF,KAAAA,CAAO,KAAKm6E,gBAAgB,EAAA,CAAA,CAAA,CAGpCkG,MAAQ,CAAA,CACJ,CACI/9E,IAAM,CAAA,iBAAA,CACN21C,OAAQ,CACJmjC,CAAAA,CAAGzrB,KAAK4K,KAAM5K,CAAAA,IAAAA,CAAK0rB,MAAM,EAAA,CAAK,IAAU,CAAC,CAAA,CACzCiF,UAAYr0C,CAAAA,QAAAA,CAASo5B,MACrBkb,aAAet0C,CAAAA,QAAAA,CAAS6a,GACxB05B,CAAAA,aAAAA,CAAev0C,SAAS0vC,QACxB8E,CAAAA,aAAAA,CAAex0C,SAASuL,QAASxC,CAAAA,IAAAA,CACjC6mC,GAAI,IAAK5xC,CAAAA,IAAAA,CAAK6xC,OAAS/kC,EAAAA,WAAAA,GACvB2pC,UAAY,CAAA,IAAA,CAAK9G,eAAgB,CAAA,IAAA,CAAK3C,QAAQoF,GAAIxC,CAAAA,SAAS,CAC3D8G,CAAAA,GAAAA,CAAK,EACLC,cAAgB,CAAA,iBAAA,CAChBC,YAAa,IAAKnH,CAAAA,WAAAA,IAAe3iC,WAAW,EAAA,CAC5C+pC,YAActH,CAAAA,CAAAA,CAAgBzB,aAAahhC,WAAW,EAAA,CACtDgqC,cAAgBlK,CAAAA,EAAAA,CAChBmK,cAAenK,EACfoK,CAAAA,aAAAA,CAAe,IAAKj3C,CAAAA,IAAAA,CAAKsvB,UAAUviB,WAAW,EAAA,CAC9CmqC,eAAgBj1C,QAAS6a,CAAAA,GAAAA,CACzBq6B,UAAW3H,CAAgBzB,CAAAA,WAAAA,EAAahhC,WAAW,EAAA,CACnDqqC,cAAe5H,CAAgB7B,CAAAA,QAAAA,CAC/B0J,cAAe7H,CAAgB9M,CAAAA,OAAAA,EAAS31B,aACxCuqC,CAAAA,SAAAA,CAAW9H,CAAgBtN,CAAAA,YAAAA,CAC3BqV,UAAW/H,CAAgB5xE,CAAAA,IAAAA,EAAMmvC,aACjCyqC,CAAAA,QAAAA,CAAUhI,EAAgB3B,SAAW9gC,EAAAA,WAAAA,EACrC0qC,CAAAA,OAAAA,CAASjI,EAAgBl3E,IAAMy0C,EAAAA,WAAAA,EAC/B2qC,CAAAA,WAAAA,CAAalI,EAAgBhqB,MAAQzY,EAAAA,WAAAA,EACrC4qC,CAAAA,iBAAAA,CAAmBnI,EAAgBhiC,QAAUT,EAAAA,WAAAA,GAC7C6qC,kBAAoBpI,CAAAA,CAAAA,CAAgB5B,aAAa7gC,WAAW,EAAA,CAC5D8qC,cAAgBhL,CAAAA,EAAAA,CAChBiL,YAAa,IAAKnI,CAAAA,cAAAA,CAAe,UAAU,CAAA,CAC3CoI,cAAevI,CAAgBvO,CAAAA,YAAAA,EAAcl0B,WAAW,EAAA,CACxDirC,iBAAkBxI,CAAgBxB,CAAAA,eAAAA,EAAiBjhC,aACnDkrC,CAAAA,wBAAAA,CAA0BzI,EAAgBvB,kBAAoBlhC,EAAAA,WAAAA,EAC9DmrC,CAAAA,UAAAA,CAAY1I,EAAgBtB,SAAWnhC,EAAAA,WAAAA,EACvCorC,CAAAA,YAAAA,CAAc3I,EAAgBrB,WAAaphC,EAAAA,WAAAA,EAC3CqrC,CAAAA,gBAAAA,CAAkB5I,EAAgBpB,eAAiBrhC,EAAAA,WAAAA,IAAiB8/B,EACpEwL,CAAAA,gBAAAA,CAAkB,KAAK9I,YAAaC,CAAAA,CAAe,CAAI,CAAA,GAAA,CACvD8I,WAAYzjC,SAAUC,CAAAA,SAAAA,EAAW/H,aACjCwrC,CAAAA,SAAAA,CAAW,KAAK7I,WAAW,EAAA,CAAA,CAElC,CAGLv/B,CAAAA,CAAAA,CAAAA,CAAOkkB,KAAKG,SAAUz0B,CAAAA,CAAI,EAC9B,OAAO,CAAEkO,OAAAA,CAAQkC,CAAAA,IAAAA,CAAAA,CAAI,CACzB,CAEQ0gC,YAAarB,CAAAA,CAAAA,CAAoB,CACrC,IAAIvhC,EAAc,CACduqC,EAAAA,CAAI,CACJC,CAAAA,OAAAA,CAAS,EACT5xD,CAAG,CAAA,IAAA,CAAK0oD,aAAaC,CAAe,CAAA,CAAA,CAEpCzvC,EAAY,CACZ,CACIlvB,KAAO,CAAA,eAAA,CACP6nE,WAAY,CACRxI,KAAAA,CAAO,IAAKjD,CAAAA,MAAAA,EAAQgD,GAAGC,KACvByI,CAAAA,WAAAA,CAAa,IAAK5I,CAAAA,aAAAA,CAAc,aAAa,CAC7C6I,CAAAA,IAAAA,CAAM,KAAKrJ,YAAaC,CAAAA,CAAe,EACvCqJ,GAAK,CAAA,IAAA,CAAKz4C,aACVskB,CAAAA,IAAAA,CAAM,CACFo0B,YAActJ,CAAAA,CAAAA,CAAgBtN,YAC9B6W,CAAAA,QAAAA,CAAUvJ,EAAgB7B,QAC1BqL,CAAAA,OAAAA,CAASxJ,CAAgB9M,CAAAA,OAAAA,EAAS31B,aAClCksC,CAAAA,YAAAA,CAAczJ,EAAgBvO,YAAcl0B,EAAAA,WAAAA,GAC5CmsC,eAAiB1J,CAAAA,CAAAA,CAAgBxB,eAAiBjhC,EAAAA,WAAAA,GAClDosC,oBAAsB3J,CAAAA,CAAAA,CAAgB5B,aAAa7gC,WAAW,EAAA,CAC9DqsC,kBAAmB5J,CAAgBhiC,CAAAA,QAAAA,CACnC6rC,WAAa7J,CAAAA,CAAAA,CAAgBzB,aAAahhC,WAAW,EAAA,CACrDusC,UAAW9J,CAAgB3B,CAAAA,SAAAA,EAAW9gC,aACtCwsC,CAAAA,IAAAA,CAAM/J,CAAgBl3E,CAAAA,IAAAA,EAAMy0C,aAC5BysC,CAAAA,aAAAA,CAAehK,CAAgB1B,CAAAA,aAAAA,EAAe/gC,aAC9C0sC,CAAAA,MAAAA,CAAQjK,CAAgBhqB,CAAAA,MAAAA,EAAQzY,aAChC4/B,CAAAA,IAAAA,CAAM6C,EAAgB5xE,IAAMmvC,EAAAA,WAAAA,GAC5B2sC,kBAAoBlK,CAAAA,CAAAA,CAAgBvB,kBAAoBlhC,EAAAA,WAAAA,GACxD4sC,SAAWnK,CAAAA,CAAAA,CAAgBtB,SAAWnhC,EAAAA,WAAAA,GACtC6sC,WAAapK,CAAAA,CAAAA,CAAgBrB,WAAaphC,EAAAA,WAAAA,GAC1C8sC,eAAiBrK,CAAAA,CAAAA,CAAgBpB,iBAAiBrhC,WAAW,EAAA,EAAM8/B,IAEvE5sC,IAAM,CAAA,CACF65C,KAAO,CAAA,IAAA,CAAK15C,cAAcgB,KAC1B24C,CAAAA,IAAAA,CAAM93C,QAASuL,CAAAA,QAAAA,CAASxC,KACxBgvC,KAAO,CAAA,IAAA,CAAK/5C,IAAKg6C,CAAAA,MAAAA,CAAOt4C,QAAQ,GAAK,CAAA,EAAE,EACvC43C,IAAM,CAAA,IAAA,CAAK7J,aACXwK,CAAAA,QAAAA,CAAUj4C,QAAS0vC,CAAAA,QAAAA,CACnBwI,KAAMl4C,QAASuL,CAAAA,QAAAA,CAASC,KAAK9L,OAAQM,CAAAA,QAAAA,CAASuL,SAASuP,MAAQ,CAAA,EAAE,CAG5E,CAAA,CAAA,CAAA,CAAA,CAED5M,EAAO,IAAIiqC,eAAAA,CAAgB,CAAEr6C,IAAMs0B,CAAAA,IAAAA,CAAKG,UAAUz0B,CAAI,CAAC,CAAE,CAAA,CAC7D,OAAO,CAAEkO,MAAAA,CAAAA,CAAQkC,CAAAA,IAAAA,CAAAA,CAAI,CACzB,CAEcu9B,QAAShvB,CAAAA,CAAAA,CAAazQ,EAAakC,CAAS,CAAA,CAAA,OAAAwiB,IAAA,IACtD,CAAA,IAAA,CAAA,WAAA,CAAA,IAAI0nB,EAAM,IAAIC,cAAAA,CACdD,CAAIvnB,CAAAA,IAAAA,CAAK,OAAQpU,CAAM,CAAA,GAAA,CAAM,IAAI07B,eAAAA,CAAgBnsC,CAAM,CAAC,CAAA,CACxDosC,CAAIE,CAAAA,IAAAA,CAAKpqC,CAAI,EACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApXS28B,GAAyB94C,GAAAsP,CAAAA,GAAA,EAAAtP,GAAAiP,CAAAA,GAAA,CAAAjP,CAAAA,GAAAA,CAAAkP,GAAA,CAAAlP,CAAAA,GAAAA,CAAAqP,IAAA,CAAA,CAAArP,IAAAiZ,IAAA,CAAA,CAAAjZ,GAAAmP,CAAAA,GAAA,EAAAnP,GAAAykB,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAvmD,GAAA,CAAA,CAAA,KAAA,CAAzB46E,EAAyB/6E,OAAzB+6E,CAAAA,CAAAA,CAAyBxiC,SAAAC,CAAAA,UAAAA,CAFtB,MAAM,CAAA,CAAA,CAEhB,IAAOuiC,CAAP0N,CAAAA,CAAAA,CAAAA,OAAO1N,CAAyB,CAAA,ICftC,IAAa2N,EAAAA,CAAAA,CAAc,IAAA,CAArB,IAAOA,EAAP,MAAOA,CAAc,CAMvBz1E,WACY04C,CAAAA,CAAAA,CACA+M,CACApqB,CAAAA,CAAAA,CACA+R,EACAwL,CAAoC,CAAA,CAJpC,IAAAF,CAAAA,GAAAA,CAAAA,EACA,IAAA+M,CAAAA,YAAAA,CAAAA,CACA,CAAA,IAAA,CAAApqB,sBAAAA,CACA,CAAA,IAAA,CAAA+R,OAAAA,CACA,CAAA,IAAA,CAAAwL,kBAAAA,CAVZ,CAAA,IAAA,CAAAiO,aAAqB,CAAA,GAErB,IAAAL,CAAAA,YAAAA,CAAe,EASZ,CACHG,cAAY,CACR,IAAM1N,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,KAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,EAAe2N,QAAS,CAAA,MAAA,CAAW,IAAM,CAAA,CAAEjD,YAAa,CAAK,CAAA,CAAE,CAAEt9B,CAAAA,SAAAA,CACzE+2B,GAAiB,CACd,IAAA,CAAKyJ,aAAgBzJ,CAAAA,EACzB,EACC11C,CAAS,EAAA,CACN,KAAK0lC,MAAO1lC,CAAAA,KAAAA,CAAM,6CAA+CA,CAAK,EAC1E,CAAC,EAET,CACAw/C,SAAS,EAAA,CACL,IAAMC,CAAAA,CAAc,KAAK9rB,qBAAsBkX,CAAAA,oBAAAA,EAC/C,CAAA,IAAA,CAAKiU,eACA,IAAKc,CAAAA,mBAAAA,GACN,KAAKX,YAAY,EAAA,CACjB,KAAKW,mBAAsB,CAAA,IAAA,CAAK7B,YAAaqE,CAAAA,6BAAAA,CAA8B,IAAK,CACvE,IAAA,CAAKlR,iBAAkBZ,CAAAA,oBAAAA,IAC5B,IAAK2O,CAAAA,YAAAA,GACT,CAAA,CAAGQ,EAAYS,UAAU,CAAA,EAEjC,CACAgB,cAAc,EAAA,CACV,OAAO,IAAK/B,CAAAA,aAChB,CACA8C,QAAAA,EAAQ,CACJ,IAAKnD,CAAAA,YAAAA,EAAAA,CACD,IAAKA,CAAAA,YAAAA,GAAiB,GAAK,IAAKc,CAAAA,mBAAAA,GAChC,IAAK7B,CAAAA,YAAAA,CAAavb,cAAc,IAAKod,CAAAA,mBAAmB,EACxD,IAAKA,CAAAA,mBAAAA,CAAsB7W,OAC3B,IAAKoW,CAAAA,aAAAA,CAAgB,EAAA,EAE7B,yCA7CS4uB,CAAczmD,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAA+9B,IAAA,CAAA,CAAA/9B,GAAAsP,CAAAA,GAAA,EAAAtP,GAAA2kB,CAAAA,EAAA,EAAA3kB,GAAA6nB,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA3pD,GAAA,CAAA,CAAA,KAAA,CAAduoF,CAAc1oF,CAAAA,OAAAA,CAAd0oF,EAAcnwC,SAAAC,CAAAA,UAAAA,CAFX,MAAM,CAAA,CAAA,CAEhB,IAAOkwC,CAAPC,CAAAA,CAAAA,CAAAA,OAAOD,CAAc,CAAA,ICTdE,IAAAA,IAAAA,CAAP,QAAiB,CAAvB31E,WAAAA,EAAA,CAMI,IAAA41E,CAAAA,qBAAAA,CAAiC,CACjC,CAAA,CAAA,IAAA,CAAAC,aAAwB,CACxB,CAAA,CAAA,IAAA,CAAAC,aAAyB,CAAA,CAAA,CAAA,CAGzB,KAAAC,cAAyB,CAAA,EAAA,CACzB,IAAA/4E,CAAAA,IAAAA,CAAgB,GAChB,IAAAkmD,CAAAA,WAAAA,CAAsB,GACtB,IAAA8yB,CAAAA,eAAAA,CAA2BvlC,OAC3B,IAAAwlC,CAAAA,iBAAAA,CAA6B,CAC7B,CAAA,CAAA,IAAA,CAAA9mC,UAAoB,EAGpB,CAAA,IAAA,CAAA+mC,SAAoB,CAAA,EAAA,CACpB,KAAAC,gBAA2B,CAAA,EAAA,CAC3B,IAAAC,CAAAA,mBAAAA,CAA+B,GAG/B,IAAAC,CAAAA,iBAAAA,CAA8B,GAC9B,IAAAC,CAAAA,mBAAAA,CAAgC,GAOhC,IAAAC,CAAAA,kBAAAA,CAA2B,IAC3B,CAAA,IAAA,CAAAC,gBAA2B,CAC3B,CAAA,CAAA,IAAA,CAAAC,iBAA6B,CAAA,CAAA,CAAA,CAC7B,KAAAC,SAAsB,CAAA,CAAA,CAAA,CAEtB,IAAAC,CAAAA,UAAAA,CAAsB,GAI1B,CChCA,EAAA,IAAaC,MAAe,IAAA,CAAtB,IAAOA,CAAP,CAAA,MAAOA,CAAe,CAExB52E,YACY62E,CACA1pC,CAAAA,CAAAA,CACAnS,EACAK,CACAw7B,CAAAA,CAAAA,CAA4D,CAJ5D,IAAAggB,CAAAA,kBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA1pC,WAAAA,CACA,CAAA,IAAA,CAAAnS,KAAAA,CACA,CAAA,IAAA,CAAAK,sBAAAA,CACA,CAAA,IAAA,CAAAw7B,wBAAAA,CAAAA,EACT,CACH/I,IAAK7+D,CAAAA,CAAAA,CAAa,CACd,IAAM6nF,EAAiB,IAAKz7C,CAAAA,qBAAAA,CAAsB07C,qBAAqB,EAAA,CACvE,GAAID,CAAeE,CAAAA,gBAAAA,CAAkB,CACjC,IAAM7T,CAAAA,CACF2T,GAAgBG,SAChBH,CAAAA,CAAAA,EAAgBI,gBAAiBv6C,CAAAA,OAAAA,CAAQ,8BAA+B2iC,kBAAmB/2B,CAAAA,MAAAA,EAAQC,QAAUC,EAAAA,IAAI,CAAC,CAClH06B,CAAAA,CAAAA,EACA,IAAKh2B,CAAAA,UAAAA,CAAW0D,KAAKsyB,CAAW,CAAA,CAEpC,MACJ,CACIl0E,CAAAA,CACA,KAAK4nF,kBAAmBM,CAAAA,SAAAA,CAAU9wD,SAAU,CAAA,IAAK,CAE7C,IAAM+wD,CAAAA,CADiB,IAAKP,CAAAA,kBAAAA,CAAmB/oB,KAAK7+D,CAAO,CAAA,CACAooF,WAAW,EAAA,CAAGhxD,UAAU,IAAK,CAChF+wD,IACA,IAAKE,CAAAA,2BAAAA,CAA8B,KAAKzgB,wBAAyB5R,CAAAA,oBAAAA,EACjE,CAAA,IAAA,CAAKqyB,6BAA6BC,SAAS,EAAA,CAC3CH,EAAsB5wD,WAAW,EAAA,CAAA,CAEhC,KAAKwU,IAAKkR,CAAAA,eAAAA,GACXolB,cAAeS,CAAAA,UAAAA,CAAW,wBAAwB,CAClDT,CAAAA,cAAAA,CAAeS,WAAW,6BAA6B,CAAA,CAEvDT,eAAeS,UAAW,CAAA,kBAAkB,CAC5CT,CAAAA,cAAAA,CAAeS,WAAW,YAAY,CAAA,CAClC9iE,CAASuoF,EAAAA,aAAAA,EACT,KAAKrqC,UAAW0D,CAAAA,IAAAA,CAAK5hD,CAAQuoF,CAAAA,aAAa,GAGtD,CAAC,EACL,CAAC,CAED,CAAA,IAAA,CAAKX,mBAAmBM,SAAU9wD,CAAAA,SAAAA,CAAU,IAAK,CAC7C,KAAKwwD,kBAAmB/oB,CAAAA,IAAAA,GAC5B,CAAC,EAET,CA9CS8oB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAe5nD,GAAAyoD,CAAAA,EAAA,EAAAzoD,GAAAwb,CAAAA,EAAA,EAAAxb,GAAAiP,CAAAA,GAAA,EAAAjP,GAAAsP,CAAAA,GAAA,CAAAtP,CAAAA,GAAAA,CAAA81B,IAAA,CAAA,CAAA,CAAf8xB,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAe7pF,QAAf6pF,CAAetxC,CAAAA,SAAAA,CAAAC,UAFZ,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOqxC,EAAPc,CAAOd,CAAAA,OAAAA,CAAe,KCO5B,IAAae,EAAkB,CAAA,CAAA,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAY3B33E,YACY04C,CACA8nB,CAAAA,CAAAA,CACAn4B,CACAhN,CAAAA,CAAAA,CACAif,EACA0Y,CACAna,CAAAA,CAAAA,CACAsI,EACAy2B,CAA0C,CAAA,CAR1C,KAAAl/B,GAAAA,CAAAA,CAAAA,CACA,IAAA8nB,CAAAA,QAAAA,CAAAA,EACA,IAAAn4B,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAhN,sBAAAA,CACA,CAAA,IAAA,CAAAif,aAAAA,CAAAA,CAAAA,CACA,KAAA0Y,YAAAA,CAAAA,CAAAA,CACA,KAAAna,qBAAAA,CAAAA,CAAAA,CACA,KAAAsI,0BAAAA,CAAAA,CAAAA,CACA,IAAAy2B,CAAAA,oBAAAA,CAAAA,EApBJ,IAAAC,CAAAA,WAAAA,CAAwB,EAAA,CACxB,KAAAC,uBAAoC,CAAA,EACpC,CAAA,IAAA,CAAAC,sBAA+B,EAAA,CAC/B,KAAAC,kBAAqB,CAAA,IAAIzzC,KAAqB,IAAI,CAAA,CAC1D,IAAA0zC,CAAAA,yBAAAA,CAA6C,KAAKD,kBAAmBvzC,CAAAA,YAAAA,EAC7D,CAAA,IAAA,CAAAyzC,+BAAiC,IAAI3zC,IAAAA,CAAqB,IAAI,CAAA,CACtE,KAAA4zC,qCAAyD,CAAA,IAAA,CAAKD,+BAA+BzzC,YAAY,EAAA,CACjG,KAAA2zC,sBAAyB,CAAA,IAAI7zC,IAAqB,CAAA,IAAI,EAC9D,IAAA8zC,CAAAA,gCAAAA,CAAoD,KAAKD,sBAAuB3zC,CAAAA,YAAAA,GACxE,IAAA6zC,CAAAA,qBAAAA,CAA6B,GAYlC,CAEHC,cAAc,EAAA,CACV,IAAMt/B,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACjEqX,CAAsB,CAAA,IAAA,CAAKl1B,sBAAsBU,qBAAqB,EAAA,CACtE0e,CAAqB,CAAA,IAAA,CAAK0G,2BAA2BzG,gBAAgB,EAAA,CACrErB,CAAW,CAAA,IAAA,CAAKR,sBAAsBT,YACxCa,CAAAA,CAAAA,CAAe+I,iBAAiB,gBAChC,CAAA,IAAA,CAAK3Z,sBAAsBZ,iBAAiB,EAAE,CAGlD,CAAA,IAAA,CAAKiR,IAAIlpB,GAAI6pB,CAAAA,CAAAA,CAAU,CAAEoB,SAAAA,CAAWA,CAAS,CAAI,CAAA,CAAEuB,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAE31B,CAAAA,SAAAA,CACvE+2B,GAAiB,CAGd,GAFA,KAAKk7B,qBAAwBl7B,CAAAA,CAAAA,CAC7B,IAAK06B,CAAAA,uBAAAA,CAA0B16B,GAAUo7B,MAAQp4C,EAAAA,GAAAA,CAAKsf,CAAcA,EAAAA,CAAAA,CAAK+4B,WAAW,CAAK,EAAA,EACrFr7B,CAAAA,CAAAA,CAASo7B,OAAQ,CAEbjoB,CAAAA,EAAgBoD,2BAChBvW,CAASo7B,CAAAA,MAAAA,CAAO1vE,OAAS,CACzB,EAAA,IAAA,CAAKwxC,aAAetH,EAAAA,eAAAA,IAAmBjL,WAAW,EAAA,EAAM,eAExD,IAAKuwC,CAAAA,qBAAAA,CAAwB5kB,KAAUtW,CAAQ,CAAA,CAE/CA,CAASo7B,CAAAA,MAAAA,CAAS,KAAK5kB,qBAAsBxW,CAAAA,CAAAA,CAASo7B,MAAM,CAEhE,CAAA,CAAA,IAAIE,EAAc,IAAKr9C,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,EAAIu+B,gBAAgBr9B,WAAW,EAAA,CACzFqV,CAASo7B,CAAAA,MAAAA,CAAO1vE,OAAS,CAAK,EAAA,IAAA,CAAKwxC,aAAetH,EAAAA,eAAAA,IAAmBjL,WAAW,EAAA,EAAM2wC,IACtF,IAAKJ,CAAAA,qBAAAA,CAAwB5kB,KAAUtW,CAAQ,CAAA,CAE/CA,CAASo7B,CAAAA,MAAAA,CAAS,KAAKG,sBAAuBv7B,CAAAA,CAAAA,CAASo7B,MAAM,CAAA,CAAA,CAGjE,KAAKT,qBAAwB36B,CAAAA,CAAAA,CAASo7B,MACtC,CAAA,IAAA,CAAKX,YAAcz6B,CAASo7B,CAAAA,MAAAA,CAAOp4C,IAAKsf,CAAcA,EAAAA,CAAAA,CAAK+4B,WAAW,EAC1E,CACIloB,CAAgBsD,EAAAA,+BAAAA,GAAiC,KAAKikB,uBAA0B,CAAA,IAAA,CAAKD,WACzF,CAAA,CAAA,IAAA,CAAKG,mBAAmBn8D,IAAK,CAAA,IAAA,CAAKg8D,WAAW,CAAA,CAC7C,KAAKK,8BAA+Br8D,CAAAA,IAAAA,CAAK,KAAKi8D,uBAAuB,CAAA,CAErE,KAAKQ,qBAAyB,EAAA,IAAA,CAAKp6B,2BAA4B,CAAA,IAAA,CAAKo6B,qBAAqB,EAC7F,CAAA,CACA,IAAK,CACD,IAAA,CAAKN,mBAAmBn8D,IAAK,CAAA,IAAA,CAAKg8D,WAAW,CAAA,CAC7C,KAAKK,8BAA+Br8D,CAAAA,IAAAA,CAAK,KAAKi8D,uBAAuB,EACzE,CAAC,EAET,CAEAlkB,qBAAsBglB,CAAAA,CAAAA,CAAgB,CAElC,IAAMpU,CAAAA,CAD0B,IAAKxR,CAAAA,YAAAA,CAAab,+BAA+B,YAAc,CAAA,IAAA,CAAK7X,aAAc7S,CAAAA,iBAAAA,EAAmB,CACxFzG,EAAAA,iBAAAA,EAAmBZ,IAAK9tC,CAAWA,EAAAA,CAAAA,EAAKA,EAAE,CAAC,CAAC,CACzF,CAAA,OAAOsmF,GAAa7iF,MAAQzD,CAAAA,CAAAA,EAAWkyE,CAAaxQ,EAAAA,QAAAA,CAAS1hE,EAAEmmF,WAAW,CAAC,CAAK,EAAA,EACpF,CAEAE,sBAAAA,CAAuBC,EAAgB,CAEnC,IAAMpU,EAD0B,IAAKxR,CAAAA,YAAAA,CAAab,8BAA+B,CAAA,YAAA,CAAc,KAAK7X,aAAc7S,CAAAA,iBAAAA,EAAmB,CAAA,EACxFzG,mBAAmBZ,GAAK9tC,CAAAA,CAAAA,EAAWA,CAAKA,EAAAA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACzF,OAAOsmF,CAAa7iF,EAAAA,MAAAA,CAAQzD,GAAWkyE,CAAaxQ,EAAAA,QAAAA,CAAS1hE,CAAEmmF,CAAAA,WAAW,CAAC,CAAK,EAAA,EACpF,CAEAI,cAAAA,EAAc,CACV,OAAI,IAAA,CAAKhB,WAAe,EAAA,IAAA,CAAKA,YAAY/uE,MAAS,CAAA,CAAA,CACvC,KAAK+uE,WAET,CAAA,EACX,CAEAiB,0BAAAA,EAA0B,CACtB,OAAO,KAAKhB,uBAAyBhvE,EAAAA,MAAAA,CAAS,CAAI,CAAA,IAAA,CAAKgvE,wBAA0B,EACrF,CAEQ55B,2BAAAA,CAA4BC,EAAsB,CACtD,IAAI46B,EAAoB,EAAA,CACQ,KAAK19C,qBAAsBgjB,CAAAA,yBAAAA,EACpCzH,CAAAA,SAAAA,GACnB,KAAKghC,oBAAqB/6B,CAAAA,8BAAAA,CAA+Bx2B,SAAW+2B,CAAAA,CAAAA,EAAiB,CAC7EA,CAEA27B,CAAAA,CAAAA,CAAoBjxB,MAAOyoB,CAAAA,MAAAA,CAAOpyB,EADZf,CAC4C,CAAA,CAElE27B,EAAoB56B,EAE5B,CAAC,EACDwG,aAAc,CAAA,IAAID,WAAY,CAAA,6BAAA,CAA+B,CAAEx7B,MAAQ6vD,CAAAA,CAAiB,CAAE,CAAC,GAE/F,IAAKvY,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,sBAAA,CAAwB,CAAE,kBAAoB4iC,CAAAA,CAAiB,CAAE,EAChG,CAEAC,4BAA0B,CACtB,OAAI,IAAKjB,CAAAA,qBAAAA,EAAyB,KAAKA,qBAAsBjvE,CAAAA,MAAAA,CAAS,EAC3D,IAAKivE,CAAAA,qBAAAA,CAET,EACX,CAEAkB,8BAA+Brc,CAAAA,CAAAA,CAAqB,CAChD,IAAMsc,CAAAA,CAA6B,KAAK79C,qBAAsB89C,CAAAA,gCAAAA,GAC9D,GAAID,CAAAA,CAA2BE,2BAA6B,CAAA,CACxD,IAAMC,CAAgCH,CAAAA,CAAAA,CAA2BI,oBACjE,CAAA,IAAA,IAAS7rF,EAAI,CAAGA,CAAAA,CAAAA,CAAI4rF,CAAyBvwE,CAAAA,MAAAA,CAAQrb,IACjD,GAAI4rF,CAAAA,CAAyB5rF,CAAC,CAAG8rF,EAAAA,eAAAA,EAAiBxxC,aAAiB60B,EAAAA,CAAAA,EAAe70B,WAAW,EAAA,CACzF,OAAOsxC,CAAyB5rF,CAAAA,CAAC,CAG7C,CACJ,CAEA+rF,gBAAiBxoF,CAAAA,CAAAA,CAAc,CAC3B,IAAA,CAAKonF,uBAAuBv8D,IAAK7qB,CAAAA,CAAK,EAC1C,CAEAyoF,cAAAA,EAAc,CACV,OAAO,IAAA,CAAKnB,qBAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAvISX,GAAkB3oD,GAAAwU,CAAAA,EAAA,CAAAxU,CAAAA,GAAAA,CAAAi1C,IAAA,CAAAj1C,CAAAA,GAAAA,CAAAuY,IAAA,CAAA,CAAAvY,IAAAsP,GAAA,CAAA,CAAAtP,IAAAuX,EAAA,CAAA,CAAAvX,IAAA6gC,EAAA,CAAA,CAAA7gC,GAAAmpB,CAAAA,IAAA,EAAAnpB,GAAAqrB,CAAAA,IAAA,EAAArrB,GAAAwtB,CAAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAtvD,GAAA,CAAA,CAAA,KAAA,CAAlByqF,CAAkB5qF,CAAAA,OAAAA,CAAlB4qF,EAAkBryC,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,CAAA,CAEhB,IAAOoyC,CAAP+B,CAAAA,CAAAA,CAAAA,OAAO/B,CAAkB,CAAA,ICFlBgC,IAAAA,IAAAA,CAAAA,CAAgB,IAAA,CAAvB,IAAOA,CAAP,CAAA,MAAOA,CAAgB,CAyEzB35E,YACY04C,CACA+M,CAAAA,CAAAA,CACAiR,EACAkjB,CACAt/B,CAAAA,CAAAA,CACAtf,EACAK,CACAud,CAAAA,CAAAA,CAAoC,CAPpC,IAAA,CAAAF,IAAAA,CACA,CAAA,IAAA,CAAA+M,YAAAA,CAAAA,CAAAA,CACA,KAAAiR,YAAAA,CAAAA,CAAAA,CACA,IAAAkjB,CAAAA,MAAAA,CAAAA,EACA,IAAAt/B,CAAAA,aAAAA,CAAAA,EACA,IAAAtf,CAAAA,IAAAA,CAAAA,EACA,IAAAK,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAud,kBAAAA,CAhFZ,CAAA,IAAA,CAAAihC,mBAAsB,CAAA,KAAA,CAMtB,KAAAC,UAA+B,CAAA,IAAI34C,GACnC,CAAA,IAAA,CAAA44C,aAAiC,IAAI54C,GAAAA,CAE7B,KAAA64C,gBAAmB,CAAA,IAAIz1C,KAAqB,EAAE,CACtD,CAAA,IAAA,CAAAhkC,QAA2B,IAAKy5E,CAAAA,gBAAAA,CAAiBv1C,cACjD,CAAA,IAAA,CAAAw1C,YAA+B,CAC3BC,eAAAA,CAAiB,EAAA,CACjBC,MAAO,EAAA,CACPC,YAAa,EAAA,CACbC,qBAAsB,EAAA,CACtBC,WAAa,CAAA,GACbC,gBAAkB,CAAA,CAAEC,UAAY,CAAA,GAAIC,aAAe,CAAA,EAAE,CAAA,CACrDC,KAAM,EAAA,CACNC,cAAe,CAAEH,UAAAA,CAAY,EAAIC,CAAAA,aAAAA,CAAe,EAAE,EAClDG,YAAc,CAAA,CAAEJ,UAAY,CAAA,GAAIC,aAAe,CAAA,EAAE,CAAA,CAAA,CAG7C,KAAAI,eAAkB,CAAA,IAAIC,GAC9B,IAAAC,CAAAA,gBAAAA,CAA2F,KAAKF,eAAgBp2C,CAAAA,YAAAA,EACxG,CAAA,IAAA,CAAAu2C,mBAAqB,IAAIz2C,IAAAA,CAA+B,CAAE02C,OAAAA,CAAS,EAAE,CAAE,CAC/E,CAAA,IAAA,CAAAC,cAA2C,IAAKF,CAAAA,kBAAAA,CAAmBv2C,cAEnE,CAAA,IAAA,CAAA02C,kBAAoB,IAAI52C,IAAAA,CAAqB,EAAE,EAC/C,IAAA62C,CAAAA,SAAAA,CAA6B,KAAKD,iBAAkB12C,CAAAA,YAAAA,GAEpD,IAAA42C,CAAAA,yBAAAA,CAA4B,IAAI92C,IAAAA,CAAqB,EAAE,CAAA,CACvD,KAAA+2C,mBAAuC,CAAA,IAAA,CAAKD,0BAA0B52C,YAAY,EAAA,CAE1E,IAAA82C,CAAAA,sBAAAA,CAAyB,IAAIh3C,IAAmC,CAAA,CAAEi3C,aAAe,CAAA,GAAIC,gBAAkB,CAAA,EAAE,CAAE,EACnH,IAAAC,CAAAA,iBAAAA,CAAmD,KAAKH,sBAAuB92C,CAAAA,YAAAA,GAEvE,IAAAk3C,CAAAA,oBAAAA,CAAuB,IAAIp3C,IAAAA,CAAqB,EAAE,CAAA,CAC1D,IAAAq3C,CAAAA,qBAAAA,CAAyC,KAAKD,oBAAqBl3C,CAAAA,YAAAA,EAE3D,CAAA,IAAA,CAAAo3C,2BAA6B,IAAIt3C,IAAAA,CAAyB,EAAI,CACtE,CAAA,IAAA,CAAAu3C,iBAAwC,IAAKD,CAAAA,0BAAAA,CAA2Bp3C,YAAY,EAAA,CAE5E,KAAAs3C,qBAAwB,CAAA,IAAIx3C,IAAqB,CAAA,EAAE,CAC3D,CAAA,IAAA,CAAAy3C,gBAAoC,CAAA,IAAA,CAAKD,sBAAsBt3C,YAAY,EAAA,CAEnE,KAAAw3C,gBAAmB,CAAA,IAAI13C,KAAqB,EAAE,CACtD,CAAA,IAAA,CAAA23C,SAA4B,IAAKD,CAAAA,gBAAAA,CAAiBx3C,cAElD,CAAA,IAAA,CAAA03C,qBAAuB,IAAI53C,IAAAA,CAAqB,CAAK,CAAA,CAAA,CACrD,KAAA63C,WAA+B,CAAA,IAAA,CAAKD,qBAAqB13C,YAAY,EAAA,CAErE,KAAA43C,sBAAyB,CAAA,IAAI93C,IAAqB,CAAA,CAAA,CAAK,EACvD,IAAA+3C,CAAAA,gBAAAA,CAAoC,IAAKD,CAAAA,sBAAAA,CAAuB53C,cAEhE,CAAA,IAAA,CAAA83C,mBAAsB,CAAA,IAAIzB,GAE1B,IAAA0B,CAAAA,WAAAA,CAAuB,GAEf,IAAAC,CAAAA,mBAAAA,CAA8B,IAI9B,IAAAC,CAAAA,iBAAAA,CAA8B,EAAA,CAG9B,KAAAC,cAAsB,CAAA,EAG9B,CAAA,IAAA,CAAAC,YAAmB,EAAA,CACnB,IAAAC,CAAAA,YAAAA,CAAsB,GAWnB,CAEHC,gBAAgBC,CAAiBC,CAAAA,CAAAA,CAAsBx8B,EAAe,CAClE,IAAA,CAAKq6B,eAAgBh/D,CAAAA,IAAAA,CAAK,CAAEkhE,OAASA,CAAAA,CAAAA,CAASC,YAAcA,CAAAA,CAAAA,CAAcx8B,OAAQA,CAAM,CAAE,EAC9F,CAEAy8B,cAAc/V,CAAkBgW,CAAAA,CAAAA,CAAoBC,EAAgCC,CAAgBC,CAAAA,CAAAA,CAAwB,CACpHA,CACA,EAAA,IAAA,CAAKC,kBAAkB,EAAA,CAEtB,KAAKC,oBACN,GAAA,IAAA,CAAKA,qBAAuB,CAC5B,CAAA,CAAA,IAAA,CAAKC,uBACL,CAAA,IAAA,CAAKC,eAAgB,CAAA,CAACL,CAAK,CAE/B,CAAA,CAAA,IAAMM,EAAU,IAAKriD,CAAAA,qBAAAA,CAAsB8W,wBACvCgrC,CAAAA,CAAAA,EAAS,IAAKQ,CAAAA,UAAAA,CAAWR,CAAO,CAChC,CAAA,CAAA,IAAA,CAAKniD,IAAKkR,CAAAA,eAAAA,EAAmBwxC,EAAQE,cACrC,IAAA,IAAA,CAAKC,YAAY,EAAA,CACjB,KAAKC,gBAAgB,EAAA,CAAA,CAGrB5W,GAAeA,CAAY/7C,CAAAA,IAAAA,CAAO,GAClC,IAAK4yD,CAAAA,kBAAAA,CAAmBx9C,KAAM1yC,CAAAA,IAAAA,CAAKq5E,EAAY7tE,MAAM,EAAE,CAAC,CAAA,CAE5D,KAAKqjF,iBAAoBQ,CAAAA,CAAAA,EAAiBA,CAAcp0E,CAAAA,MAAAA,CAAS,EAAIo0E,CAAgB,CAAA,GACjFQ,CAAQM,CAAAA,uBAAAA,EACR,KAAKC,oBAAoB,GAEjC,CAEQX,kBAAAA,EAAkB,CACtB,IAAKY,CAAAA,SAAAA,CAAY,EAAA,CACjB,KAAKnE,YAAaprB,CAAAA,KAAAA,EAClB,CAAA,IAAA,CAAKqsB,mBAAmBn/D,IAAK,CAAA,CAAEo/D,QAAS,EAAE,CAAE,CAC5C,CAAA,IAAA,CAAKM,sBAAuB1/D,CAAAA,IAAAA,CAAK,CAAE2/D,aAAe,CAAA,GAAIC,gBAAkB,CAAA,EAAE,CAAE,EAChF,CAEA0C,YAAAA,CAAahvC,EAAiB,CAC1B,IAAA,CAAKivC,mBAAmBjvC,CAAS,CAAA,CACjC,IAAMuuC,CAAU,CAAA,IAAA,CAAKriD,qBAAsB8W,CAAAA,sBAAAA,GACvC,IAAKksC,CAAAA,gBAAAA,EACD,GAAA,CAACX,EAAQY,oBAAyBZ,EAAAA,CAAAA,CAAQY,oBAAwB,EAAA,IAAA,CAAKtjD,KAAKkR,eAC5E,CAAA,EAAA,IAAA,CAAKqyC,WAAYl4D,CAAAA,SAAAA,GAGpB,IAAKm4D,CAAAA,KAAAA,EACN,IAAKC,CAAAA,oBAAAA,GAEb,CAEAC,QAAAA,EAAQ,CACA,IAAA,CAAKC,qBACL,IAAKd,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAKC,kBAEb,EAAA,CAEAc,sBAAoB,CAChB,GAAI,CAAC,IAAKC,CAAAA,sBAAAA,EAA0B,IAAKrC,CAAAA,WAAAA,CAAa,CAClD,IAAMkB,CAAAA,CAAU,IAAKriD,CAAAA,qBAAAA,CAAsB8W,wBAE3C,CAAA,IAAA,CAAK0sC,sBAAyB,CAAA,CAAA,CAAA,CAC9B,KAAKC,eAAkB,CAAA,IAAA,CAAKr5B,aAAaqE,6BAA8B,CAAA,IAAK,CACnE,IAAKlR,CAAAA,iBAAAA,CAAkBZ,oBAAoB,EAAA,EAChD,KAAK6lC,YAAY,GACrB,CAAGH,CAAAA,CAAAA,CAAQqB,wBAAwB,EACvC,CACJ,CAEAC,mBAAAA,EAAmB,CACf,IAAKH,CAAAA,sBAAAA,CAAyB,GAC9B,IAAKp5B,CAAAA,YAAAA,CAAavb,cAAc,IAAK40C,CAAAA,eAAe,EACxD,CAEQrB,gBAAgBwB,CAAqB,CAAA,CACzC,IAAMhmC,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAClD,CAAA,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,UAAU,YAAiB,CAAA,CAAEe,aAAcA,CAAY,CAAE,CAAE54D,CAAAA,SAAAA,CAAW9lB,GAA4B,CAG1H,GAFA,IAAK05E,CAAAA,WAAAA,CAAc15E,EACnB,IAAKy5E,CAAAA,gBAAAA,CAAiBn+D,IAAKtb,CAAAA,CAAO,EAE9BA,CACAA,EAAAA,CAAAA,CAAQg6E,kBACRh6E,CAAQg6E,CAAAA,gBAAAA,CAAiBC,YACzBj6E,CAAQg6E,CAAAA,gBAAAA,CAAiBC,UAAW0E,CAAAA,gBAAAA,EACpC3+E,EAAQg6E,gBAAiBC,CAAAA,UAAAA,CAAW0E,gBAAoB,EAAA,EAAA,CAC1D,CACE,IAAMp8C,CAAAA,CAAQ7F,QAASgO,CAAAA,aAAAA,CAAc,OAAO,CAC5CnI,CAAAA,CAAAA,CAAMq8C,UACF,wHACA5+E,CAAAA,CAAAA,CAAQg6E,iBAAiBC,UAAW0E,CAAAA,gBAAAA,CACpC,gBACJjiD,CAAAA,QAAAA,CAASmiD,qBAAqB,MAAM,CAAA,CAAE,CAAC,CAAGh0C,CAAAA,WAAAA,CAAYtI,CAAK,EAC/D,CACJ,CAAC,EACL,CAEAy7C,SAAS,EAAA,CACL,OAAO,IAAKc,CAAAA,gBAAAA,GAAmB36C,IAC3BtE,CAAAA,EAAAA,CAAKrF,CAAa,EAAA,CACd,IAAIukD,CACJ,CAAA,OAAIvkD,CAAMwkD,EAAAA,MAAAA,EAAUxkD,EAAKwkD,MAAQz2E,EAAAA,MAAAA,GAC7Bw2E,CAAY,CAAA,IAAA,CAAKE,gBAAgBzkD,CAAKwkD,CAAAA,MAAM,GAE5CD,CACA,GAAA,IAAA,CAAK3C,eAAiB2C,CAEnBA,CAAAA,CAAAA,CACX,CAAC,CAAA,CACDG,GAAY/3E,CACDA,EAAAA,CACV,CAAC,CAEV,CAEQ83E,eAAgBE,CAAAA,CAAAA,CAAW,CAC/B,IAAMC,EAA0C,EAAA,CAChDD,EAASA,CAAO3pF,CAAAA,MAAAA,CAAQ6pF,GAAeA,CAASA,EAAAA,CAAAA,CAAM7C,OAAW6C,EAAAA,CAAAA,CAAMC,aAAeD,CAAMC,CAAAA,WAAAA,CAAY/2E,MAAM,CAAA,CAC9G,QAASpb,CAAI,CAAA,CAAA,CAAGA,CAAIgyF,CAAAA,CAAAA,CAAO52E,OAAQpb,CAC/B,EAAA,CAAA,GAAI,CAACiyF,CAAYD,CAAAA,CAAAA,CAAOhyF,CAAC,CAAEqvF,CAAAA,OAAO,CAAG,CAAA,CACjC,IAAM+C,CAAqB,CAAA,GAC3B,IAASryF,IAAAA,CAAAA,CAAI,EAAGA,CAAIiyF,CAAAA,CAAAA,CAAOhyF,CAAC,CAAA,CAAEmyF,YAAY/2E,MAAQrb,CAAAA,CAAAA,EAAAA,CAC9CqyF,EAAYv9B,IAAKm9B,CAAAA,CAAAA,CAAOhyF,CAAC,CAAEmyF,CAAAA,WAAAA,CAAYpyF,CAAC,CAAA,CAAEsyF,UAAU,CAGpDL,CAAAA,CAAAA,CAAOhyF,CAAC,CAAA,CAAEsyF,aACVN,CAAOhyF,CAAAA,CAAC,CAAEsyF,CAAAA,UAAAA,CAAWC,aAAe,CACpCH,CAAAA,CAAAA,CAAAA,CAAYv9B,KAAK,CAACm9B,CAAAA,CAAOhyF,CAAC,CAAEsyF,CAAAA,UAAU,CAAC,CAAA,CAAA,CAE3CL,EAAYD,CAAOhyF,CAAAA,CAAC,CAAEqvF,CAAAA,OAAO,EAAI+C,EACrC,CAEJ,OAAOH,CACX,CAEAO,iBAAkBnD,CAAAA,CAAAA,CAAe,CAC7B,GAAI,IAAA,CAAKJ,eAAgB,CACrB,IAAMiD,CAAQ,CAAA,IAAA,CAAKjD,eAAeI,CAAO,CAAA,CACzC,GAAI6C,CAAAA,EAASA,EAAM92E,MAAQ,CAAA,CACvB,IAAMq3E,CAAAA,CAAgBP,EAAMtuC,IAAMnkD,CAAAA,CAAAA,EAAWA,GAAGm9D,QAAYn9D,EAAAA,CAAAA,EAAGm9D,UAAUxhD,MAAM,CAAA,CAC/E,OAAIq3E,CAAAA,CACIA,EAAc71B,QAAa,GAAA,IAAA,CAAKsvB,OAAOpqD,GAAI,CAAA,UAAU,EAC9CowD,CAEA,CAAA,EAGJA,CAAAA,CAEf,CACJ,CACA,OAAO,EACX,CAEQvB,kBAAgB,CACpB,IAAA,IAAW+B,CAAS,IAAA,IAAA,CAAKzD,eACrB,GAAI,IAAA,CAAKA,cAAe0D,CAAAA,cAAAA,CAAeD,CAAK,CACxC,CAAA,OAAO,CAIf,CAAA,CAAA,OAAO/wB,KAAKG,SAAU,CAAA,IAAA,CAAKmtB,cAAc,CAAMttB,GAAAA,IAAAA,CAAKG,UAAU,EAAE,CACpE,CAEAquB,cAAY,CACR,IAAM50C,CAAwB,CAAA,CAC1Bq3C,UAAW,MAEf,CAAA,CAAA,IAAA,CAAKC,YAAat3C,CAAAA,CAAM,EAC5B,CAEA60C,gBAAAA,EAAgB,CAGZ,IAAM70C,CAAAA,CAAwB,CAC1Bq3C,SAAW,CAAA,UAAA,CACXE,YAJY,CAAA,IAAA,CAAKnlD,sBAAsB8W,sBAAsB,EAAA,CAIvCsuC,qBAE1B,CAAA,CAAA,IAAA,CAAKF,aAAat3C,CAAM,EAC5B,CAEQs3C,YAAAA,CAAat3C,EAAW,CAC5B,IAAMy0C,EAAU,IAAKriD,CAAAA,qBAAAA,CAAsB8W,wBACvC,CAAA,CAAA,CAACurC,CAAQgD,CAAAA,uBAAAA,EAA4BhD,EAAQgD,uBAA2B,EAAA,IAAA,CAAK1lD,KAAKkR,eAClF,GAAA,IAAA,CAAKy0C,gBAAgB13C,CAAM,CAAA,CAAE5iB,SACxBu6D,CAAAA,CAAAA,EAAc,CACPA,CACIA,GAAAA,CAAAA,CAAMC,YAAcD,CAAMC,CAAAA,UAAAA,CAAWC,YAAc,IAAQ,EAAA,IAAA,CAAKjC,sBAChE,EAAA,IAAA,CAAKrC,YAAc,CACnB,CAAA,CAAA,IAAA,CAAKwC,mBAAmB,EAAA,EAEnB,KAAKxC,WACN,GAAA,IAAA,CAAKA,WAAc,CAAA,CAAA,CAAA,CAAA,CAG3B,KAAKuE,sBAAuB93C,CAAAA,CAAAA,CAAQy0C,CAAO,CACvCkD,CAAAA,CAAAA,CAAMI,gBAAkBJ,CAAMI,CAAAA,cAAAA,CAAel4E,MAAS,CAAA,CAAA,EACtD,KAAKm4E,mBAAoBL,CAAAA,CAAAA,CAAMI,cAAgB/3C,CAAAA,CAAAA,CAAOq3C,SAAS,CAG3E,EAAA,CAAA,CACC54E,CAAc,EAAA,CACPA,GACA,IAAKq5E,CAAAA,sBAAAA,CAAuB93C,EAAQy0C,CAAO,EAEnD,CAAC,EAGb,CAEQqD,sBAAuB93C,CAAAA,CAAAA,CAAay0C,EAAY,CAChDA,CAAAA,EAASwD,qBAAyB,EAAA,CAAC,KAAKrC,sBACxC,GAAA,IAAA,CAAKhC,YAAat6B,CAAAA,IAAAA,CAAKtZ,EAAOq3C,SAAS,CAAA,CACZ,KAAKzD,YAAa9mF,CAAAA,MAAAA,CAAO,SAAUxF,CAAMuD,CAAAA,CAAAA,CAAKqtF,CAAI,CAAA,CACzE,OAAOA,CAAKz4C,CAAAA,OAAAA,CAAQn4C,CAAI,CAAKuD,EAAAA,CACjC,CAAC,CACuBgV,EAAAA,MAAAA,EAAU,CAC9Bm6B,EAAAA,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAKo5C,uBAAuBxgE,IAAK,CAAA,CAAA,CAAI,EACzC,CAAG,CAAA,GAAG,CAGlB,EAAA,CAEQolE,oBAAoBL,CAAeN,CAAAA,CAAAA,CAAiB,CACxD,IAAMc,EAAqB,EAAA,CACrB51B,CAAMnoB,CAAAA,IAAAA,CAAKmoB,KACjBo1B,CAAAA,CAAAA,CAAMjiC,QAAS0iC,CAAc,EAAA,CACzB,IAAMC,CAAY,CAAA,IAAIj+C,IAAKg+C,CAAAA,CAAAA,CAAKE,SAAS,CACnCC,CAAAA,CAAAA,CAAU,IAAIn+C,IAAAA,CAAKg+C,EAAKI,OAAO,CAAA,CAC/BC,CAAkB,CAAA,IAAIr+C,KAAKg+C,CAAKM,CAAAA,eAAe,EACrDN,CAAKC,CAAAA,SAAAA,CAAYA,EACjBD,CAAKG,CAAAA,OAAAA,CAAUA,CACfH,CAAAA,CAAAA,CAAKK,gBAAkBA,CAEnBpB,CAAAA,CAAAA,GAAc,MAAUe,EAAAA,CAAAA,CAAKC,UAAU/9C,OAAO,EAAA,CAAKioB,CAAO61B,EAAAA,CAAAA,CAAKG,QAAQj+C,OAAO,EAAA,CAAKioB,GACnF61B,CAAKO,CAAAA,aAAAA,CAAgB,KAAKC,WAAYR,CAAAA,CAAAA,CAAKC,SAAS,CAAA,CACpDF,EAAW7+B,IAAK8+B,CAAAA,CAAI,GACbf,CAAc,GAAA,UAAA,EAAce,EAAKC,SAAU/9C,CAAAA,OAAAA,EAAYioB,CAAAA,CAAAA,GAC9D61B,EAAKO,aAAgB,CAAA,IAAA,CAAKC,YAAYR,CAAKC,CAAAA,SAAS,EACpDF,CAAW7+B,CAAAA,IAAAA,CAAK8+B,CAAI,CAAA,EAE5B,CAAC,CACD,CAAA,IAAA,CAAKnD,SAAYkD,CAAAA,CAAAA,CACjB,KAAKU,mBAAmB,GAC5B,CAEAD,WAAAA,CAAY1+C,EAAU,CAClB,IAAMrH,EAAW,IAAKT,CAAAA,qBAAAA,CAAsB8W,wBACxC4vC,CAAAA,CAAAA,CAAQ5+C,CAAK6+C,CAAAA,QAAAA,GACXC,CAAU9+C,CAAAA,CAAAA,CAAK++C,UAAU,EAAA,CAC/B,GAAIpmD,CAASqmD,CAAAA,oBAAAA,CACT,OAAQ,CAAA,GAAA,CAAMJ,GAAOtyF,KAAM,CAAA,CAAA,CAAE,EAAI,GAAO,CAAA,CAAA,GAAA,CAAMwyF,GAASxyF,KAAM,CAAA,CAAA,CAAE,CAEnE,CAAA,IAAM2yF,EAAOL,CAAS,EAAA,EAAA,CAAK,IAAO,CAAA,IAAA,CAClCA,EAAQA,CAAQ,CAAA,EAAA,CAChBA,CAAQA,CAAAA,CAAAA,EAAgB,GACxB,IAAMM,CAAAA,CAAOJ,EAAU,EAAK,CAAA,GAAA,CAAMA,EAAUA,CAE5C,CAAA,OADkBF,CAAQ,CAAA,GAAA,CAAMM,EAAOD,CAE3C,CAEQN,qBAAmB,CACvB,GAAI,KAAK5D,SAAa,EAAA,IAAA,CAAKA,SAAUp1E,CAAAA,MAAAA,EAAU,KAAKw5E,uBAAyB,CAAA,CACzE,IAAMC,CAAW,CAAA,IAAIl/C,KACrBk/C,CAASC,CAAAA,QAAAA,CAAS,EAAI,CAAA,CAAA,CAAG,EAAG,CAAC,CAAA,CAC7B,IAAMC,CAAAA,CAAW,IAAIp/C,IACrBo/C,CAAAA,CAAAA,CAASD,QAAS,CAAA,EAAA,CAAI,EAAG,CAAG,CAAA,CAAC,EAC7B,IAAMh3B,CAAAA,CAAMnoB,KAAKmoB,GAAG,EAAA,CACdk3B,CAA2B,CAAA,CAAEzH,QAAS,EAAE,CACxC0H,CAAAA,CAAAA,CAAmC,CAAEnH,aAAe,CAAA,EAAIC,CAAAA,gBAAAA,CAAkB,EAAE,CAAA,CAClF,KAAKyC,SAAU0E,CAAAA,KAAAA,CAAOvB,GAAc,CAChC,IAAMwB,CAAwB,CAAA,GAC1BC,CACJ,CAAA,IAAA,CAAKC,gBAAiB1B,CAAAA,CAAI,EAC1B,IAAM2B,CAAAA,CAAe,IAAKC,CAAAA,YAAAA,CAAa5B,EAAK6B,eAAgB,CAAA,CAAC,CAAE,CAC/D,CAAA,OAAIF,GAAgB3B,CAAK6B,CAAAA,eAAAA,EAAmB7B,CAAK6B,CAAAA,eAAAA,CAAgBp6E,QAAUu4E,CAAKG,CAAAA,OAAAA,CAAQj+C,SAAYioB,CAAAA,CAAAA,EAC5F61B,EAAK6B,eAAgBp6E,CAAAA,MAAAA,CAAS,CAC9Bg6E,GAAAA,CAAAA,CAAe,KAAK/I,YAAgB,EAAA,IAAA,CAAKA,aAAavqD,GAAI6xD,CAAAA,CAAAA,CAAKtE,SAASxqF,QAAQ,EAAE,CAC9E,CAAA,CAACuwF,GAAiBA,CAAgBA,EAAAA,CAAAA,EAAcK,cAAmB9B,GAAAA,CAAAA,CAAK6B,iBACxEL,CAAiBM,CAAAA,cAAAA,CAAiB9B,CAAK6B,CAAAA,eAAAA,CACvCL,EAAiBO,YAAe/B,CAAAA,CAAAA,CAAK6B,gBAAkB,IAAKG,CAAAA,eAAAA,CAAgBhC,CAAI,CAChF,CAAA,IAAA,CAAKtH,YAAaj0E,CAAAA,GAAAA,CAAIu7E,EAAKtE,OAAQxqF,CAAAA,QAAAA,EAAYswF,CAAAA,CAAgB,GAE/DxB,CAAK6B,CAAAA,eAAAA,CAAkBJ,CAAaM,CAAAA,YAAAA,CAAAA,CAG5C/B,EAAKv8C,MAASk+C,CAAAA,CAAAA,CAAa1vF,KACvB+tF,CAAKC,CAAAA,SAAAA,CAAU/9C,SAAaioB,EAAAA,CAAAA,EAC5B61B,CAAKiC,CAAAA,MAAAA,CAAS,GACdZ,CAAUzH,CAAAA,OAAAA,CAAQ14B,IAAK8+B,CAAAA,CAAI,EACpB,CACAA,CAAAA,EAAAA,CAAAA,CAAKC,SAAYiB,CAAAA,CAAAA,EACxBI,EAAcnH,aAAcj5B,CAAAA,IAAAA,CAAK8+B,CAAI,CAC9B,CAAA,CAAA,CAAA,EACAA,EAAKC,SAAYmB,CAAAA,CAAAA,EACxBE,CAAclH,CAAAA,gBAAAA,CAAiBl5B,KAAK8+B,CAAI,CAAA,CACjC,IAEA,CAGJ,CAAA,EAAA,CAAA,CAEf,CAAC,CACGqB,CAAAA,CAAAA,EAAaA,CAAUzH,CAAAA,OAAAA,EAAWyH,EAAUzH,OAAQnyE,CAAAA,MAAAA,CAEhD65E,IACEA,CAAcnH,CAAAA,aAAAA,EAAiBmH,EAAcnH,aAAc1yE,CAAAA,MAAAA,EACxD65E,CAAclH,CAAAA,gBAAAA,EAAoBkH,EAAclH,gBAAiB3yE,CAAAA,MAAAA,CAAAA,CAEtE,IAAKy6E,CAAAA,YAAAA,CAAab,EAAWC,CAAa,CAAA,CAE1C,IAAKY,CAAAA,YAAAA,CAAab,EAAW,EAAE,CAAA,CAGnC,KAAKa,YAAa,CAAA,EAAA,CAAIZ,CAAa,EAE3C,CACJ,CACQI,gBAAAA,CAAiB3C,EAAU,CAC/B,GAAIA,CAAO,CAAA,CAAA,CACH,CAACA,CAAM8C,CAAAA,eAAAA,EAAmB,CAAC9C,CAAAA,CAAM8C,gBAAgBp6E,MACjDs3E,IAAAA,CAAAA,CAAM8C,gBAAkB,CAAC9C,CAAAA,CAAM78B,eAAe,CAGlD,CAAA,CAAA,IAAMigC,CAAoB,CAAA,GAC1B,IAAS/1F,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAI2yF,EAAM8C,eAAgBp6E,CAAAA,MAAAA,CAAQrb,CAC1C,EAAA,CAAA,IAAA,CAAKw1F,aAAa7C,CAAM8C,CAAAA,eAAAA,CAAgBz1F,CAAC,CAAC,CAAA,EAAK,KAAKivF,iBAAkBh0C,CAAAA,OAAAA,CAAQ03C,CAAM8C,CAAAA,eAAAA,CAAgBz1F,CAAC,CAAC,CAAA,CAAI,GAC1G+1F,CAAajhC,CAAAA,IAAAA,CAAK69B,EAAM8C,eAAgBz1F,CAAAA,CAAC,CAAC,CAAA,CAGlD2yF,EAAM8C,eAAkBM,CAAAA,EAC5B,CACJ,CAEAC,cAAAA,CAAe1G,EAAc2G,CAAaC,CAAAA,CAAAA,CAAkB,CAAGC,CAAAA,CAAAA,CAA2B,CACtF,OAAO,IAAA,CAAKC,qBAAsB9G,CAAAA,CAAAA,CAAS2G,EAAQC,CAASC,CAAAA,CAAkB,CAClF,CAEAE,mBAAiB,CACb,IAAMC,EAAgB,IAAKxI,CAAAA,sBAAAA,CAAuBvqF,MAC5CgzF,CAAY,CAAA,IAAA,CAAKhJ,kBAAmBhqF,CAAAA,KAAAA,CACpCw6D,EAAMnoB,IAAKmoB,CAAAA,GAAAA,EACXy4B,CAAAA,CAAAA,CAAuBF,EAAcvI,aAAczlF,CAAAA,MAAAA,CAAQ+hB,CAAMA,EAAAA,CAAAA,CAAEwpE,UAAU/9C,OAAO,EAAA,EAAMioB,CAAG,CACnGy4B,CAAAA,CAAAA,CAAatlC,QAAS0iC,CAAc,EAAA,CAChCA,CAAKiC,CAAAA,MAAAA,CAAS,GACdS,CAAcvI,CAAAA,aAAAA,CAAch5B,MAAOuhC,CAAAA,CAAAA,CAAcvI,cAAc9yC,OAAQ24C,CAAAA,CAAI,CAAG,CAAA,CAAC,EACnF,CAAC,CAAA,CAC0B2C,EAAU/I,OAAQllF,CAAAA,MAAAA,CAAQ+hB,GAAMA,CAAE0pE,CAAAA,OAAAA,CAAQj+C,OAAO,EAAA,EAAMioB,CAAG,CAC1E7M,CAAAA,OAAAA,CAAS0iC,GAAc,CAC9B2C,CAAAA,CAAU/I,QAAQz4B,MAAOwhC,CAAAA,CAAAA,CAAU/I,OAAQvyC,CAAAA,OAAAA,CAAQ24C,CAAI,CAAG,CAAA,CAAC,EAC/D,CAAC,CAAA,CACD2C,EAAU/I,OAAU+I,CAAAA,CAAAA,CAAU/I,OAAQ1pF,CAAAA,MAAAA,CAAO0yF,CAAY,CAEzD,CAAA,IAAA,CAAKV,YAAaS,CAAAA,CAAAA,CAAWD,CAAa,EAC9C,CAEQR,YAAaS,CAAAA,CAAAA,CAA+BD,EAAqC,CACrF,GAAIA,GACA,GAAIA,CAAAA,CAAcvI,eAAiBuI,CAAcvI,CAAAA,aAAAA,CAAc1yE,MAAQ,CAAA,CACnE,IAAMo7E,CAAkBH,CAAAA,CAAAA,CAAcvI,aAAc,CAAA,CAAC,EAAG8F,SAAU/9C,CAAAA,OAAAA,EAAYF,CAAAA,IAAAA,CAAKmoB,KACnFvoB,CAAAA,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAK6gD,oBACT,CAAA,CAAGI,CAAe,EACtB,SAAWH,CAActI,CAAAA,gBAAAA,EAAoBsI,CAActI,CAAAA,gBAAAA,CAAiB3yE,OAAQ,CAChF,IAAMo7E,CAAkBH,CAAAA,CAAAA,CAActI,iBAAiB,CAAC,CAAA,CAAG6F,UAAU/9C,OAAO,EAAA,CAAKF,KAAKmoB,GAAG,EAAA,CACzFvoB,UAAW,CAAA,IAAK,CACZ,IAAK6gD,CAAAA,iBAAAA,GACT,CAAGI,CAAAA,CAAe,EACtB,CAGAF,CAAAA,CAAAA,EAAaA,CAAU/I,CAAAA,OAAAA,EACvB,KAAKD,kBAAmBn/D,CAAAA,IAAAA,CAAKmoE,CAAS,CAEtCD,CAAAA,CAAAA,GAAkBA,EAAcvI,aAAiBuI,EAAAA,CAAAA,CAActI,gBAC/D,CAAA,EAAA,IAAA,CAAKF,uBAAuB1/D,IAAKkoE,CAAAA,CAAa,EAEtD,CAEA9F,sBAAoB,CAChB,IAAA,CAAK19E,OAAQ8lB,CAAAA,SAAAA,CAAW9lB,GAA4B,CAChD,IAAA,CAAK05E,YAAc15E,CACnB,CAAA,IAAA,CAAKk/B,SAAWl/B,CAAWA,EAAAA,CAAAA,CAAQg6E,gBAAmBh6E,CAAAA,CAAAA,CAAQg6E,iBAAiBE,aAAgB,CAAA,EAC/F0J,CAAAA,IAAAA,CAAc,KAAKjJ,aAAe,CAAA,IAAA,CAAKQ,iBAAiB,CAAA,CAAEr1D,UAAWu6D,CAAc,EAAA,CAC/E,IAAMoD,CAAYpD,CAAAA,CAAAA,CAAM,CAAC,CAAKA,EAAAA,CAAAA,CAAM,CAAC,CAAA,CAAE3F,SAAW2F,CAAM,CAAA,CAAC,CAAE3F,CAAAA,OAAAA,CAAQxrF,MAAM,CAAGmxF,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAE3F,QAAQnyE,MAAM,CAAA,CAC7F0yE,EAAgBoF,CAAM,CAAA,CAAC,GAAKA,CAAM,CAAA,CAAC,CAAEpF,CAAAA,aAAAA,EAAiBoF,EAAM,CAAC,CAAA,CAAEpF,cAAc/rF,KAAM,CAAA,CAAA,CAAGmxF,EAAM,CAAC,CAAA,CAAEpF,aAAc1yE,CAAAA,MAAM,EACzH,IAAKs7E,CAAAA,QAAAA,CAASJ,EAAWxI,CAAe,CAAA,IAAA,CAAKvB,WAAW,EAC5D,CAAC,EACL,CAAC,EACL,CAEAmK,QAAAA,CAASJ,CAAmBxI,CAAAA,CAAAA,CAAuBvB,EAAgB,CAC/D,GAAI+J,CAAUl7E,CAAAA,MAAAA,CAAS,GAAK0yE,CAAc1yE,CAAAA,MAAAA,CAAS,EAAG,CAClD,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAI+tF,CAAc1yE,CAAAA,MAAAA,CAAQrb,IAAK,CAC3C,IAAM42F,CAAWL,CAAAA,CAAAA,CAAU1yC,KAAMx5B,CAAMA,EAAAA,CAAAA,CAAEilE,OAAYvB,GAAAA,CAAAA,CAAc/tF,CAAC,CAAGsvF,CAAAA,OAAO,EAC9E,GAAIsH,CAAAA,CAAU,CACV,GAAIA,CAAAA,CAAS3C,eAAgBn+C,CAAAA,OAAAA,GAAYF,IAAKmoB,CAAAA,GAAAA,EAC1C,CAAA,SAEA,KAAK84B,eAAgB9I,CAAAA,CAAAA,CAAc/tF,CAAC,CAAA,CAAIwsF,EAAa,eAAe,EAE5E,MACI,IAAKqK,CAAAA,eAAAA,CAAgB9I,EAAc/tF,CAAC,CAAA,CAAIwsF,CAAa,CAAA,eAAe,EAE5E,CACA,IAAA,IAASxsF,EAAI,CAAGA,CAAAA,CAAAA,CAAIu2F,EAAUl7E,MAAQrb,CAAAA,CAAAA,EAAAA,CAC9Bu2F,CAAUv2F,CAAAA,CAAC,EAAGi0F,eAAgBn+C,CAAAA,OAAAA,GAAYF,IAAKmoB,CAAAA,GAAAA,IAG/C,IAAK84B,CAAAA,eAAAA,CAAgBN,CAAUv2F,CAAAA,CAAC,EAAIwsF,CAAa,CAAA,WAAW,CAGhE,CAAA,IAAA,CAAKH,WAAW3uD,IAAO,CAAA,CAAA,EACvB,IAAK4wD,CAAAA,qBAAAA,CAAsBlgE,KAAK,IAAKi+D,CAAAA,UAAU,EAEvD,CACJ,CACAwK,gBAAgBC,CAAgBtK,CAAAA,CAAAA,CAAkB2G,CAAa,CAAA,CAC3D,IAAMlD,CAAU,CAAA,IAAA,CAAKriD,qBAAsB8W,CAAAA,sBAAAA,GACrCqyC,CAAeD,CAAAA,CAAAA,CAASjD,SAAU/9C,CAAAA,OAAAA,GAAYF,IAAKmoB,CAAAA,GAAAA,GACnDi5B,CAAkB9jC,CAAAA,IAAAA,CAAK4K,MAAMi5B,CAAe,CAAA,GAAI,CAChDvC,CAAAA,CAAAA,CAAkBthC,KAAK4K,KAAMk5B,CAAAA,CAAAA,CAAU,EAAE,CAAA,CAC/C,GAAI7D,CAAU,GAAA,eAAA,CAAiB,CAC3B,GAAIqB,EAAUvE,CAAQgH,CAAAA,4BAAAA,CAClB,OAEAzC,CAAWA,EAAAA,CAAAA,EAAWvE,EAAQgH,4BAC9B,EAAA,IAAA,CAAKC,6BAA8BJ,CAAAA,CAAAA,CAAUtK,CAAW,EAEhE,CAAA,KAAA,GAAW2G,IAAU,WAAa,CAAA,CAC9B,GAAIqB,CAAU,CAAA,EAAA,CACV,OAEAA,CAAAA,EAAWA,GAAW,EACtB,EAAA,IAAA,CAAK0C,8BAA8BJ,CAAUtK,CAAAA,CAAW,EAEhE,CACJ,CACA0K,6BAA8BJ,CAAAA,CAAAA,CAAgBtK,EAAgB,CAC1D,IAAA,CAAKx6C,QAAWw6C,CAAAA,CAAAA,EAAeA,EAAYM,gBAAmBN,CAAAA,CAAAA,CAAYM,gBAAiBE,CAAAA,aAAAA,CAAgB,EAC3G,CAAA,IAAMiD,EAAU,IAAKriD,CAAAA,qBAAAA,CAAsB8W,wBACvCwQ,CAAAA,CAAAA,CACAiiC,CAAsB,CAAA,EAAA,CACpBC,EAAoBN,CAASO,CAAAA,gBAAAA,CAAiBD,SAC9CE,CAAAA,CAAAA,CAA2B,YAAcF,CAAa,EAAA,IAAA,CAAO,EAAKA,CAAAA,CAAAA,EAAW98C,aAC7Ei9C,CAAAA,CAAAA,CAAAA,CAAkBT,EAASS,OAC3BR,CAAAA,CAAAA,CAAeD,EAASjD,SAAU/9C,CAAAA,OAAAA,EAAYF,CAAAA,IAAAA,CAAKmoB,KACnDi5B,CAAAA,CAAAA,CAAkB9jC,IAAK4K,CAAAA,KAAAA,CAAMi5B,EAAe,GAAI,CAAA,CAChDvC,CAAkBthC,CAAAA,IAAAA,CAAK4K,MAAMk5B,CAAU,CAAA,EAAE,EAC/C,IAASh3F,IAAAA,CAAAA,CAAI,EAAGA,CAAI82F,CAAAA,CAAAA,CAASrB,eAAgBp6E,CAAAA,MAAAA,CAAQrb,IAAK,CACtDk1D,CAAAA,CAAW4hC,CAASrB,CAAAA,eAAAA,CAAgBz1F,CAAC,CAEjCu3F,CAAAA,CAAAA,EAAW,oBAAwBH,EAAAA,CAAAA,CACnCD,EAAc,IAAKnlD,CAAAA,QAAAA,CAASslD,CAAgB,CACrCrH,CAAAA,CAAAA,CAAQuH,0BAA4BD,CAAW,EAAA,cAAA,CACtDJ,CAAc,CAAA,IAAA,CAAKnlD,SAASylD,oBACrBxH,CAAAA,CAAAA,CAAQyH,0BAA8BH,EAAAA,CAAAA,EAASj9C,aAAiB,EAAA,gBAAA,GACvE68C,CAAc,CAAA,IAAA,CAAKnlD,SAAS2lD,sBAEhC,CAAA,CAAA,IAAMC,GAAc,CAChBpD,OAAAA,CAASA,EACTP,eAAiB6C,CAAAA,CAAAA,CAAS7C,eAC1BC,CAAAA,eAAAA,CAAiB4C,EAAS5C,eAC1BH,CAAAA,OAAAA,CAAS+C,CAAS/C,CAAAA,OAAAA,CAClBoD,YAAa,CAACA,CAAW,CAEzBA,CAAAA,CAAAA,CAAAA,GAAgBn0C,QAChB,IAAKqpC,CAAAA,UAAAA,CAAWh0E,IAAI68C,CAAU,CAAA,CAAE5nB,KAAMsqD,EAAW,CAAE,EAE3D,CACJ,CAEAC,iBAAkB13F,CAAAA,CAAAA,CAAYC,CAAa,CAAA,CACvC,OAAO,IAAK03F,CAAAA,wBAAAA,CAAyB33F,CAAIC,CAAAA,CAAI,EAAE62C,IAC3CtE,CAAAA,EAAAA,CAAKrF,GACGA,CAAQA,EAAAA,CAAAA,CAAK8kD,aAAe9kD,CAAK8kD,CAAAA,WAAAA,CAAY/2E,MAAS,CAAA,CAAA,CAChC,KAAK08E,aAAczqD,CAAAA,CAAAA,CAAK8kD,WAAW,CAGtD,CAAA,IACV,EACDJ,EAAY/3E,CAAAA,CAAAA,EACD+9E,EAAW/9E,CAAAA,CAAK,CAC1B,CAAC,CAEV,CAEQ89E,aAAc3rF,CAAAA,CAAAA,CAAyB,CAC3C,IAAI6lF,CAAAA,CACAM,CACJnmF,CAAAA,OAAAA,EAAQ8kD,OAASruD,CAAAA,CAAAA,EAA0B,CACvC,IAAA,CAAKyyF,iBAAiBzyF,CAAM,CAAA,CAC5BA,CAAOgxF,CAAAA,SAAAA,CAAY,IAAIj+C,IAAK/yC,CAAAA,CAAAA,CAAOo1F,aAAa,CAChDp1F,CAAAA,CAAAA,CAAOkxF,QAAU,IAAIn+C,IAAAA,CAAK/yC,CAAOq1F,CAAAA,WAAW,EAC5Cr1F,CAAOs1F,CAAAA,OAAAA,CAAUt1F,CAAOgxF,CAAAA,SAAAA,CAAUuE,SAAY,CAAA,GAAA,EAAOv1F,CAAOgxF,CAAAA,SAAAA,CAAUwE,UAAa,CAAA,CAAA,CAAA,CAAK,IAAMx1F,CAAOgxF,CAAAA,SAAAA,CAAUyE,aAC1Gz1F,CAAAA,CAAAA,CAAAA,CAAOiQ,OAAWjQ,EAAAA,CAAAA,CAAOiQ,QAAQylF,SAAa11F,EAAAA,CAAAA,CAAOiQ,OAAQylF,CAAAA,SAAAA,CAAUtG,QAAWpvF,CAAQiQ,EAAAA,OAAAA,EAASylF,SAAWhG,EAAAA,UAAAA,IAC3G1vF,EAAOyvF,UAAczvF,EAAAA,CAAAA,CAAOyvF,WAAW,CAAC,CAAA,EAAG8E,UAC3Cv0F,CAAO21F,CAAAA,KAAAA,CAAQ,CAEf31F,CAAAA,CAAAA,CAAAA,CAAO21F,MAAQ,CAEnBvG,CAAAA,CAAAA,CAAAA,CAAS,KAAKwG,aAAc51F,CAAAA,CAAAA,CAAOiQ,QAAQylF,SAAUtG,CAAAA,MAAM,CACvDpvF,CAAAA,CAAAA,EAAQiQ,SAASylF,SAAWhG,EAAAA,UAAAA,GAC5B1vF,EAAO2vF,YAAe,CAAA,CAAA,CAAA,CACtBD,EAAa,IAAKkG,CAAAA,aAAAA,CAAc51F,CAAOiQ,CAAAA,OAAAA,CAAQylF,UAAUhG,UAAU,CAAA,CAAA,CAEvEN,CAAQ/gC,EAAAA,OAAAA,CAASihC,GAAc,CACvBtvF,CAAAA,CAAO61F,IAAQC,EAAAA,MAAAA,CAAOxG,EAAMyG,QAAQ,CAAA,EAAK/1F,EAAO61F,IAAOC,CAAAA,MAAAA,CAAOxG,EAAM0G,MAAM,CAAA,GAC1Eh2F,CAAOi2F,CAAAA,SAAAA,CAAY3G,EAAM4G,IAEjC,EAAA,CAAC,CACDxG,CAAAA,CAAAA,EAAYrhC,QAAS8nC,CAAe,EAAA,CAC5Bn2F,CAAOyvF,CAAAA,UAAAA,EAAczvF,GAAQyvF,UAAW,CAAA,CAAC,GAAG8E,SAAav0F,EAAAA,CAAAA,EAAQyvF,WAAW,CAAC,CAAA,EAAG/uF,KAChFV,GAAAA,CAAAA,CAAOi2F,UAAYE,CAAOD,CAAAA,IAAAA,EAElC,CAAC,CAAA,EAET,CAAC,CACM3sF,CAAAA,CACX,CAEAqsF,aAAAA,CAAcnrD,EAAS,CACnB,GAAI,CACA,OAAOs0B,IAAAA,CAAKC,MAAMv0B,CAAI,CAC1B,CAAQ,KAAA,CACJ,OAAO,IACX,CACJ,CAEAgjD,kBAAmBhjD,CAAAA,CAAAA,CAAW,CAC1B,IAAKkoD,CAAAA,YAAAA,CAAe,IAAKyD,CAAAA,6BAAAA,CAA8B3rD,CAAI,CAC3D,CAAA,IAAA,CAAK+mD,sBACT,CAEQ4E,8BAA8BC,CAAoB,CAAA,CACtD,IAAMC,CAAAA,CAA8C,EACpD,CAAA,OAAID,CAAYA,EAAAA,CAAAA,CAAS79E,QACrB,IAAKw5E,CAAAA,uBAAAA,CAA0B,CAC/BqE,CAAAA,CAAAA,CAAAA,CACK5wF,OAAQxF,CAASA,EAAAA,CAAI,EACrBouD,OAASkoC,CAAAA,CAAAA,EAAgB,CACjBD,CAAgBC,CAAAA,CAAAA,CAAannC,IAAKliB,CAAAA,IAAAA,EAAM,CACzCopD,GAAAA,CAAAA,CAAgBC,CAAannC,CAAAA,IAAAA,CAAKliB,MAAM,CAAA,CAAIqpD,CAEpD,EAAA,CAAC,EACED,CAEJ,EAAA,EACX,CAEQjG,eAAAA,CAAgB13C,EAAW,CAC/B,IAAMgQ,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,SAAU,CAAA,SAAA,CAAcj1C,EAAQ,CAAE+S,eAAAA,CAAiB,EAAI,CAAE,CAChG,CAEQ6nC,qBAAsB9G,CAAAA,CAAAA,CAAiB2G,CAAgBC,CAAAA,CAAAA,CAAiBC,EAA2B,CACvG,IAAM3qC,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAClD,CAAA,OAAO,IAAKR,CAAAA,GAAAA,CAAIlpB,IACZypB,CAAeilC,CAAAA,SAAAA,CAAU,iBACzB,CAAE4I,KAAAA,CAAO/J,EAAS2G,MAAQA,CAAAA,CAAAA,CAAQC,OAASA,CAAAA,CAAAA,CAASC,mBAAoBA,CAAkB,CAAA,CAC1F,CAAE5nC,eAAAA,CAAiB,EAAI,CAAE,CAEjC,CAEQupC,wBAAAA,CAAyB33F,EAAYC,CAAa,CAAA,CACtD,IAAMorD,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,SAAU,CAAA,YAAA,CAAiB,CAAE6I,QAAUl5F,CAAAA,CAAAA,CAAM2zF,OAAS5zF,CAAAA,CAAE,EAAI,CAAEouD,eAAAA,CAAiB,EAAI,CAAE,CAC5H,CAEQqjC,gBAAgB,EAAA,CACpB,IAAMpmC,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAClD,CAAA,OAAO,KAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,CAAeilC,CAAAA,SAAAA,CAAU,YAAgB,EAAA,CAAI,CAAEliC,eAAiB,CAAA,CAAA,CAAI,CAAE,CAC9F,CAEAgrC,iBAAkBjK,CAAAA,CAAAA,CAAiB2G,EAAgBuD,CAAqB,CAAA,CACpE,IAAMhuC,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,IAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,UAAU,UAAe,CAAA,CAAE4I,MAAO/J,CAAS2G,CAAAA,MAAAA,CAAAA,CAAQuD,CAAAA,aAAAA,CAAAA,CAAa,CAAI,CAAA,CAAEjrC,eAAiB,CAAA,CAAA,CAAI,CAAE,CACpI,CAEAkrC,aAAa,EAAA,CACT,IAAMjuC,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAKR,CAAAA,GAAAA,CAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,UAAU,gBAAqB,CAAA,EAAI,CAAA,CAAEliC,gBAAiB,CAAI,CAAA,CAAE,CACnG,CAEAmrC,yBAAyBpK,CAAiB2G,CAAAA,CAAAA,CAAgB0D,EAA2B,CACjF,IAAMnuC,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAKR,CAAAA,GAAAA,CAAIlpB,GAAIypB,CAAAA,CAAAA,CAAeilC,UAAU,sBAA2B,CAAA,CAAEnB,OAAAA,CAAAA,CAAAA,CAAS2G,OAAAA,CAAQ0D,CAAAA,kBAAAA,CAAAA,CAAkB,CAAI,CAAA,CAAEprC,gBAAiB,CAAI,CAAA,CAAE,CAC9I,CAEAqrC,0BAAwB,CAEpB,OADe,KAAKhsD,qBAAsB8W,CAAAA,sBAAAA,GAC5Bk1C,wBAClB,CAEAC,eAAgBC,CAAAA,CAAAA,CAAe,CAC3B,IAAK7wB,CAAAA,YAAAA,CAAa/H,OAClB,CAAA,IAAMp7D,EAAM,IAAKi0F,CAAAA,eAAAA,CAAgBD,CAAO,CAAA,CACpCh0F,IACA,IAAKmjE,CAAAA,YAAAA,CAAazS,QAAS1wD,CAAAA,CAAAA,CAAK6wD,KAAgBqjC,MAAQ,CAAA,iBAAiB,CACzEl/C,CAAAA,MAAAA,CAAOm/C,SAAS,CAAG,CAAA,CAAC,GAE5B,CAEAF,eAAAA,CAAgBD,EAAe,CAC3B,OAAI,IAAKtN,CAAAA,WAAAA,EAAe,KAAKA,WAAYU,CAAAA,aAAAA,EAAiB,IAAKV,CAAAA,WAAAA,CAAYU,cAAcF,aACjF,CAAA,IAAA,CAAKR,WAAYU,CAAAA,aAAAA,CAAcF,cAAc8M,CAAO,CAAA,CAAU,KAAKtN,WAAYU,CAAAA,aAAAA,CAAcF,cAAc8M,CAAO,CAAA,CAC1G,IAAKtN,CAAAA,WAAAA,CAAYU,cAAcF,aAAc,CAAA,gBAAA,CAGtD,EACX,CAEAgE,sBAAoB,CAChB,IAAA,CAAKD,KAAQ10C,CAAAA,WAAAA,CAAY,IAAK,CAC1B,IAAA,CAAK6xC,qBAAqB9/D,IAAK,CAAA,CAAE8rE,cAAe,IAAKlL,CAAAA,mBAAmB,CAAE,EAC9E,EAAG,IAAKA,CAAAA,mBAAmB,EAC/B,CAEAmL,UAAAA,EAAU,CACN,IAAMC,CAAAA,CAAiBv2B,cAAenC,CAAAA,OAAAA,CAAQ,YAAY,CAC1D,CAAA,GAAI04B,EAAgB,CAChB,IAAMC,EAAwBD,CAAkBx4B,EAAAA,IAAAA,CAAKC,KAAMu4B,CAAAA,CAAc,GAAM,EAAA,CAC/Ev2B,cAAeS,CAAAA,UAAAA,CAAW,YAAY,CACtC,CAAA,IAAMgrB,CAAU+K,CAAAA,CAAAA,CAAqB/K,QAC/B2G,CAASoE,CAAAA,CAAAA,CAAqB9K,aAC9BiK,CAAgBa,CAAAA,CAAAA,CAAqBb,cAC3C,IAAKD,CAAAA,iBAAAA,CAAkBjK,CAAS2G,CAAAA,CAAAA,CAAQuD,CAAa,CAAE5gE,CAAAA,SAAAA,CACnD,IAAK,CACD,KAAK80D,iBAAkBt/D,CAAAA,IAAAA,CAAK,CAAEwlE,IAAAA,CAAMyG,CAAoB,CAAE,EAC9D,EACCpgF,CAAiC,EAAA,CAC9B,KAAK4/E,eAAgB5/E,CAAAA,CAAAA,CAAM07D,SAAS,EACxC,CAAC,EAET,CACJ,CACA2kB,gBAAAA,EAAgB,CACZ,IAAMA,CAAAA,CAAmBz2B,cAAenC,CAAAA,OAAAA,CAAQ,kBAAkB,CAClE,CAAA,GAAI44B,EAAkB,CAClB,IAAMC,EAA0BD,CAAoB14B,EAAAA,IAAAA,CAAKC,KAAMy4B,CAAAA,CAAgB,GAAM,EAAA,CACrFz2B,eAAeS,UAAW,CAAA,kBAAkB,EAC5C,IAAKm1B,CAAAA,aAAAA,EAAgB7gE,CAAAA,SAAAA,CAChB4hE,GAAgB,CACb,IAAA,CAAK5M,0BAA0Bx/D,IAAK,CAAA,CAAEosE,QAASA,CAAS5G,CAAAA,IAAAA,CAAM2G,CAAsB,CAAE,EAC1F,CACCtgF,CAAAA,CAAAA,EAAiC,CAC9B,IAAA,CAAK4/E,gBAAgB5/E,CAAM07D,CAAAA,SAAS,EACxC,CAAC,EAET,CACJ,CAEA8kB,iBAAe,CACX,IAAMlE,EAAY,IAAKhJ,CAAAA,kBAAAA,CAAmBhqF,KACpC+yF,CAAAA,CAAAA,CAAgB,KAAKxI,sBAAuBvqF,CAAAA,KAAAA,CAMlD,OALa,CACTiqF,QAAS+I,CAAU/I,CAAAA,OAAAA,EAAW,EAAA,CAC9BO,cAAeuI,CAAcvI,CAAAA,aAAAA,EAAiB,EAC9CC,CAAAA,gBAAAA,CAAkBsI,EAActI,gBAAoB,EAAA,EAG5D,CAAA,CAEQ+B,uBAAqB,CACT,IAAA,CAAKniD,qBAAsB8W,CAAAA,sBAAAA,GAC/Bg2C,uBACRhE,EAAAA,IAAAA,CAAc,IAAKjJ,CAAAA,aAAAA,CAAe,KAAKQ,iBAAiB,CAAA,CAAEr1D,UAAWu6D,CAAc,EAAA,CAC/E,IAAIwH,CAEAxH,CAAAA,CAAAA,GACEA,CAAM,CAAA,CAAC,GAAKA,CAAM,CAAA,CAAC,EAAE3F,OAAW2F,EAAAA,CAAAA,CAAM,CAAC,CAAE3F,CAAAA,OAAAA,CAAQnyE,MAC9C83E,EAAAA,CAAAA,CAAM,CAAC,CACFA,GAAAA,CAAAA,CAAM,CAAC,CAAEpF,CAAAA,aAAAA,EAAiBoF,EAAM,CAAC,CAAA,CAAEpF,aAAc1yE,CAAAA,MAAAA,EAC9C83E,EAAM,CAAC,CAAA,CAAEnF,gBAAoBmF,EAAAA,CAAAA,CAAM,CAAC,CAAEnF,CAAAA,gBAAAA,CAAiB3yE,MAEpEs/E,CAAAA,CAAAA,CAAAA,CAAAA,CAA2B,GAE3BA,CAA2B,CAAA,CAAA,CAAA,CAE3BA,IAA6B,IAAKC,CAAAA,oBAAAA,GAClC,KAAKA,oBAAuBD,CAAAA,CAAAA,CAC5B,IAAKvM,CAAAA,0BAAAA,CAA2BhgE,KAAK,CAAI,CAAA,CAAA,EAEjD,CAAC,EAET,CAEAuiE,kBAAmBjvC,CAAAA,CAAAA,CAAiB,CAChC,IAAA,CAAKm5C,oBAAsB,IAAKhuC,CAAAA,aAAAA,CAAcrI,sBAAsB9C,CAAS,CAAA,CAC7E,IAAMuuC,CAAU,CAAA,IAAA,CAAKriD,qBAAsB8W,CAAAA,sBAAAA,GACrCrW,CAAW,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,GACxC,IAAKue,CAAAA,aAAAA,CAAclJ,4BAA6BjC,CAAAA,CAAAA,CAAWrT,EAASysD,2BAA2B,CAAA,GAC3F,KAAKvtD,IAAKkR,CAAAA,eAAAA,EAAoB,CAAC,IAAKlR,CAAAA,IAAAA,CAAKkR,eAAmBwxC,EAAAA,CAAAA,CAAQE,kBACpE,IAAKe,CAAAA,kBAAAA,CAAqB,IAGtC,CAEA6J,SAAAA,CAAUn6C,EAAgB,CACtB,GAAI,IAAKswC,CAAAA,kBAAAA,CAAoB,CACzB,IAAM8J,CAAAA,CAAoB,KAAKH,mBACTrrD,CAAAA,QAAAA,CAASC,eAAe,wBAAwB,CAAA,EAElE,IAAK0hD,CAAAA,oBAAAA,GACL,IAAKF,CAAAA,QAAAA,EACErwC,EAAAA,CAAAA,GAAao6C,GACpB,IAAK/J,CAAAA,QAAAA,GAEb,CACJ,CAEA2E,eAAgBhC,CAAAA,CAAAA,CAAY,EAAE,CAAA,CAC1B,IAAMqH,CAAW,CAAA,IAAA,CAAK9L,WAAa9zE,EAAAA,MAAAA,EAAU,KAAK8zE,WAAY7mF,CAAAA,MAAAA,CAAQxF,CAAcA,EAAAA,CAAAA,CAAKo4F,cAAgBtH,CAAKtE,CAAAA,OAAO,CAAE,CAAA,CAAC,GAAG6L,QAC3H,CAAA,GAAIF,GAAU5/E,MAAS,CAAA,CAAA,CAAG,CACtB,IAAM+/E,CAAAA,CAAmB,EAAA,CACnBC,EAAWzH,CAAK6B,CAAAA,eAAAA,CACtB,IAASz1F,IAAAA,CAAAA,CAAI,EAAGA,CAAIi7F,CAAAA,CAAAA,CAAS5/E,MAAQrb,CAAAA,CAAAA,EAAAA,CAC7Bq7F,EAAS90B,QAAS00B,CAAAA,CAAAA,CAASj7F,CAAC,CAAEiyD,CAAAA,IAAI,GAClCmpC,CAAUtmC,CAAAA,IAAAA,CAAKmmC,CAASj7F,CAAAA,CAAC,EAAEiyD,IAAI,CAAA,CAGvC,OAAOnf,KAAM1yC,CAAAA,IAAAA,CAAK,IAAIk7F,GAAIF,CAAAA,CAAAA,CAAUt3F,MAAOu3F,CAAAA,CAAQ,CAAC,CAAC,CACzD,MACWzH,OAAAA,CAAAA,CAAK6B,eAEpB,CACA8F,cAAAA,CAAeh4F,CAAc,CAAA,CACrBA,IACA,IAAKi4F,CAAAA,MAAAA,CAASj4F,CAEtB,EAAA,CACAk4F,cAAY,CACR,OAAO,IAAKD,CAAAA,MAChB,CAEAE,mBAAoBC,CAAAA,CAAAA,CAAgB,CAC5BA,CACA,GAAA,IAAA,CAAKC,wBAA0BD,CAEvC,EAAA,CACAE,sBAAsB,EAAA,CAClB,OAAO,IAAKD,CAAAA,uBAChB,CACA1L,UAAAA,CAAWR,EAAkB,CACzB,IAAA,CAAKP,WAAcO,CAAAA,CAAAA,CAAQ98C,eAAehnC,MAAM,EAAA,EAAIwiB,MAAQ7qB,EAAAA,KAAAA,EAAOu4F,cACvE,CAEAC,WAAAA,CAAYnI,CAAWoI,CAAAA,CAAAA,CAAe,CAClC,IAAMC,CAAAA,CAAU,CACZC,aAAAA,CAAe,GACfC,OAAS,CAAA,EAAA,CAAA,CAEb,OAAIvI,CAAAA,GACIA,GAAMyD,gBAAkBD,EAAAA,SAAAA,GAAc,SAAWxD,CAAMyD,EAAAA,gBAAAA,EAAkB+E,cAAgB,KACzFH,EAAAA,CAAAA,CAAQC,aAAgB,CAAA,CAAA,CAAA,CACxBD,EAAQE,OAAUH,CAAAA,CAAAA,GAElBC,EAAQC,aAAgB,CAAA,CAAA,CAAA,CACxBD,EAAQE,OAAU,CAAA,EAAA,CAAA,CAAA,CAGnBF,CACX,CACAI,gBAAc,CACV,OAAO,KAAKpxC,GAAIlpB,CAAAA,GAAAA,CAAI,+BAAgC,EAAA,CAAI,CAAEu6D,YAAAA,CAAc,OAAQ/tC,eAAiB,CAAA,CAAA,CAAA,CAAM2H,WAAa,CAAA,CAAA,CAAK,CAAE,CAC/H,CAEAqmC,mBAAoB3I,CAAAA,CAAAA,CAAW5hD,EAAa,CACxC,GAAI4hD,EAAM,CACN,IAAMwD,EAAY,YAAexD,CAAAA,CAAAA,EAAMyD,gBAAkBD,EAAAA,SAAAA,EAAW98C,aAEpE,CAAA,OAD6BtI,CAASolD,CAAAA,CAAS,GAChB,IACnC,CACJ,CAz1BSlL,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAgB3qD,IAAAysB,IAAA,CAAA,CAAAzsB,IAAA+9B,IAAA,CAAA,CAAA/9B,IAAA41B,IAAA,CAAA,CAAA51B,GAAAi7D,CAAAA,IAAA,EAAAj7D,GAAAuX,CAAAA,EAAA,CAAAvX,CAAAA,GAAAA,CAAAiP,GAAA,CAAAjP,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,IAAA6nB,IAAA,CAAA,CAAA,CAAhB8iC,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgB5sF,QAAhB4sF,CAAgBr0C,CAAAA,SAAAA,CAAAC,UAFb,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOo0C,EAAPuQ,CAAOvQ,CAAAA,OAAAA,CAAgB,KCdzB5uD,IAAAA,IAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,MAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAqF,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAC9EyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,CAAAz/B,CAAAA,KAAAA,CAAM,EAAI,CAAC,CAAA,CAAA,CACnBxQ,CAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,KAKQF,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACI8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAsqD,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CACJl/D,IADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAAo8D,EAAA,CAAA,GAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAApvB,CAAA93B,CAAAA,IAAAA,CAAA,WAAA,CAAA,CAAA,GAAA,EAQQnY,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAmBiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAqvB,CAAAA,IAAAA,CAAAlxC,YAAA6hB,CAAAsvB,CAAAA,cAAAA,CAAAtvB,EAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAn1B,EAAA,EAAA,CAF3BtqC,EAAA,CAAA,CAAA,CAAA,IAAA,CAA8C,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CACvCyC,GAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,GAAA+8D,CAAA,CAAA,CAAA,IAAAxvB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAyvB,aAAAzvB,CAAAqvB,CAAAA,IAAAA,CAAAh1B,CAAA,CAA0B,CAAA,CAAA,CAAA,CAClCnoC,EAAA,CAAA,CAAA,CAAAw9D,GAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CACJ1/D,IAAI,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CADOgZ,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAqvB,CAAAA,IAAA,wCAGfv/D,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,EAA4G,CAAA,CAAA,GAAA,CAAA,EAAA,CACrGyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAyoC,CAAAA,CAAA,EAAA,IAAA8E,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,CAAA2vB,CAAAA,kBAAAA,EAAoB,CAAA,CAAA,EAC5B5/D,EAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CACJC,EAAA,EAAA,wBAHsBgD,EAAA,CAAA,SAAA,CAAAgtC,EAAA4vB,oBAAAC,EAAAA,EAAAA,CAAA,EAAAnwB,IAAA,CAAA,CAEU3sC,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,QAAAgtC,CAAA8vB,CAAAA,WAAA,wCAUpChgE,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,EAA4G,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CACrGyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAwoC,CAAA,CAAA,CAAA,IAAA+E,EAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,CAAAz/B,CAAAA,KAAAA,CAAM,EAAI,CAAC,CAAA,CAAA,CAAA,CACnBxQ,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CACJC,IAAI,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAHkBiZ,GAAA,SAAAgtC,CAAAA,CAAAA,CAAA4vB,sBAAAC,EAAA,CAAA,CAAA,CAAAnwB,IAAA,CAAA,wCAK1B5vC,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,EAAuF,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAC7DyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAs9D,CAAAA,CAAA,EAAA,IAAA/vB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,CAAAgwB,CAAAA,kBAAAA,EAAoB,CAAA,CAAA,CAAEhgE,CAAAA,EAAAA,KA/BjEF,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EACIoC,EAAA,CAAA,CAAA,CAAA+9D,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAGAngE,CAAAA,EAAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAuB,CAAA,CAAA,CAAA,IAAA,CACf,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CACkEyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAkwB,YAAY,CAAA,CAAA,CAAEtrD,CAAAA,EAAAA,CAAA,CAAA,CAAyB5U,CAAAA,EAAAA,EAAS,EAAA,CAE/HkC,GAAA,CAAAi+D,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAA8C,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAU9CtgE,CAAAA,EAAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAsF,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAC/EyC,GAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAAqwB,CAAAA,gBAAAA,CAAAh2B,CAAA,CAAwB,CAAA,CAAA,CAAA,CAChCtqC,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,CAAA,CAGJC,EAAA,EAAA,GAEJkC,EAAA,CAAA,EAAA,CAAAo+D,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAA4G,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAQhHvgE,IAAK,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAhCiCgZ,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAwwB,YAAA,CAK2Dz9D,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAywB,CAAAA,mBAAA,EAExF19D,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAAwwB,YAAAxwB,EAAAA,CAAAA,CAAApF,iBAAA,CAAA,CAKA7nC,IAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAwwB,YAAA,CAKDz9D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAA4vB,CAAAA,oBAAAA,EAAAC,GAAA,CAAAnwB,CAAAA,IAAA,CAAA,CAGQ3sC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,SAAAgtC,CAAAA,CAAAA,CAAAwwB,aAAA,uBAAA,CAAA,kBAAA,EAAuE,OAAAxwB,CAAAA,CAAAA,CAAAwwB,YAAAxwB,CAAAA,CAAAA,CAAA0wB,oBAAA1wB,CAAA2wB,CAAAA,eAAA,CAI9E59D,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAA,CAAAwwB,YAAA,CAKAz9D,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAA4wB,gBAAA,EAAA,CAAA5wB,CAAAwwB,CAAAA,YAAA,8BAMTK,EAAA,CAAA,CAAA,CACI/gE,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,EAAA,6BAQJC,EAAA,EAAA,CAAA8gE,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA/2E,EAAA,CAAA,CAAA,CAAA,CALQgZ,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAA6mC,GAAA,CAAAC,CAAAA,EAAAA,CAAAkG,CAAA+wB,CAAAA,eAAAA,EAAA,GAAA/wB,CAAAgxB,CAAAA,gBAAA,CAAA,CAAA,CAA2F,MAAAptD,EAAA,CAAA,CAAA,CAAA,EAAAo8B,CAAAixB,CAAAA,SAAA,EAAAptD,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GA3CnH/T,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAA0D,EAAA,KAAA,CAAA,CAAA,EAElDoC,EAAA,CAAA,CAAA,CAAAg/D,EAAA,CAAA,EAAA,CAAA,GAAA,KAAA,CAAA,EAAA,EAmCAphE,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAi/D,GAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,EAAA,EAYJnhE,EAAA,EAAA,EACE,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CAjD2BgZ,GAAA,CAAA,CAAA,CAAAC,GAAA,MAAA,CAAA,CAAAgtC,EAAAgxB,gBAAA,CAAA,CAoCVj+D,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAixB,CAAAA,SAAA,wCAkBnBnhE,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAsI,CAAA,CAAA,GAAA,CAAA,EAAA,CACnEyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAA2+D,CAAAA,CAAA,EAAA,IAAApxB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,CAAAgwB,CAAAA,kBAAAA,EAAoB,CAAA,CAAA,EAAEhgE,EAAA,EAAA,wBADxBgD,EAAA,CAAA,SAAA,CAAAgtC,CAAAgxB,CAAAA,gBAAAA,CAAA,wBAAA,EAAA,CAAA,CACnEj+D,IAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAA4wB,CAAAA,gBAAAA,CAAA,YAAA,CAAA,aAAA,8BAGH9gE,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACI8U,GAAA,CAAA,CAAA,CAAAsqD,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CACJl/D,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CADIgZ,IAAAo8D,CAAAA,EAAAA,CAAA,GAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAApvB,CAAAA,CAAAA,CAAA93B,IAAA,CAAA,WAAA,EAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAKQnY,GAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAmBiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,SAAAgtC,CAAAA,CAAAA,CAAAqvB,KAAAlxC,WAAA6hB,CAAAA,CAAAA,CAAAsvB,cAAAtvB,CAAAA,CAAAA,CAAAuvB,gBAAA,EAF3Bz/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,IAAA,EAA8C,CAAA,CAAA,GAAA,CAAA,CAAA,CACvCyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA4+D,CAAA,CAAA,CAAA,IAAArxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAyvB,aAAAzvB,CAAAqvB,CAAAA,IAAAA,CAAAh1B,CAAA,CAA0B,CAAA,CAAA,CAClCnoC,CAAAA,EAAAA,CAAA,CAAAo/D,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACJthE,CAAAA,EAAAA,KADW+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAqvB,IAAA,EAGfv/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAA4G,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CACrGyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA8+D,CAAA,CAAA,CAAA,IAAAvxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAA2vB,CAAAA,kBAAAA,EAAoB,CAAA,CAAA,CAC5B5/D,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EAAI,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAHkBiZ,GAAA,SAAAgtC,CAAAA,CAAAA,CAAA4vB,sBAAAC,EAAA,CAAA,CAAA,CAAAnwB,IAAA,CAAA,CAAA,CAEU3sC,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,OAAA,CAAAgtC,CAAA8vB,CAAAA,WAAA,wCAUpChgE,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,EAA4G,CAAA,CAAA,GAAA,CAAA,CAAA,CACrGyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAA++D,CAAAA,CAAA,EAAA,IAAAxxB,CAAAA,CAAAzF,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAz/B,KAAM,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,EACnBxQ,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CACJC,EAAA,EAAA,wBAHsBgD,EAAA,CAAA,SAAA,CAAAgtC,CAAA4vB,CAAAA,oBAAAA,EAAAC,GAAA,CAAAnwB,CAAAA,IAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAtF,EAAA,EAAA,CAK1BtqC,GAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAuF,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CAC7DyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAg/D,CAAA,CAAA,CAAA,IAAAzxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAgwB,oBAAoB,CAAA,CAAA,CAAEhgE,CAAAA,EAAAA,EAAI,GAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAoqC,EAAA,EAAA,CA5BrEtqC,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIoC,GAAA,CAAAw/D,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAGA5hE,GAAA,CAAA,CAAA,IAAA,EACIoC,EAAA,CAAA,CAAA,CAAAy/D,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,EAA8C,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAU9C9hE,GAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAsF,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAC/EyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,EAAAo/D,CAAAA,CAAA,EAAA,IAAA7xB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,EAAAqwB,gBAAAh2B,CAAAA,CAAA,CAAwB,CAAA,CAAA,CAChCtqC,CAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAGJC,CAAAA,EAAAA,IAEJkC,CAAAA,EAAAA,CAAA,CAAA4/D,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAA4G,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,EAQhH/hE,EAAA,EAAA,GA7BsC+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAwwB,CAAAA,YAAA,EAI7Bz9D,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAAwwB,YAAAxwB,EAAAA,CAAAA,CAAApF,iBAAA,CAAA,CAKA7nC,IAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAwwB,YAAA,CAKDz9D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAA4vB,CAAAA,oBAAAA,EAAAC,GAAA,CAAAnwB,CAAAA,IAAA,CAAA,CAGQ3sC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,SAAAgtC,CAAAA,CAAAA,CAAAwwB,YAAA,CAAA,uBAAA,CAAA,kBAAA,CAAuE,CAAA,OAAA,CAAAxwB,CAAAwwB,CAAAA,YAAAA,CAAAxwB,EAAA0wB,mBAAA1wB,CAAAA,CAAAA,CAAA2wB,eAAA,CAI9E59D,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAA,CAAAwwB,YAAA,CAKAz9D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAA4wB,CAAAA,gBAAAA,EAAA,CAAA5wB,CAAAA,CAAAwwB,YAAA,EAaLzgE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,mBAAqCiD,EAAA,CAAA,WAAA,CAAAgtC,CAAAqvB,CAAAA,IAAAA,CAAAj0B,MAAA42B,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAIjCjiE,EAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAhW,EAAA,CAAA,CAAA,CAAA,CAAmBiZ,EAAA,CAAA,SAAA,CAAAgtC,EAAAqvB,IAAAlxC,CAAAA,WAAAA,CAAA6hB,EAAAsvB,cAAAtvB,CAAAA,CAAAA,CAAAuvB,gBAAA,EACnBz/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAqD8U,CAAAA,EAAAA,CAAA,CAAA,CAAyC5U,CAAAA,EAAAA,qBAAzC+C,EAAA,EAAA,CAAA8R,EAAAm7B,CAAAA,CAAAA,CAAAiyB,OAAAztD,QAAA0tD,CAAAA,cAAA,8BACrDpiE,EAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAoD8U,EAAA,CAAA,CAAA,EAA2C5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAA3CgZ,EAAA,EAAA,CAAA8R,GAAAm7B,CAAAiyB,CAAAA,MAAAA,CAAAztD,QAAA2tD,CAAAA,gBAAA,wCAJ5DriE,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAmD,EAAA,GAAA,CAAA,EAAA,CACmCyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA2/D,CAAA,CAAA,CAAA,IAAApyB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAAyvB,CAAAA,YAAAA,CAAAzvB,EAAAqvB,IAAAh1B,CAAAA,CAAA,CAA0B,CAAA,CAAA,CACjHnoC,CAAAA,EAAAA,CAAA,CAAAmgE,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAoF,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,EAC/B,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAEzDviE,IAAI,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAJwBgZ,IAAAC,CAAAA,EAAAA,CAAA,SAAAgnC,CAAAA,EAAAA,CAAA,EAAAw4B,EAAAxyB,CAAAA,CAAAA,CAAAtG,wBAAA,CAAA,CAAA,CACjB3mC,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAqvB,IAAA,CACAt8D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAqvB,IAAAlxC,CAAAA,WAAA,EACAprB,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAqvB,KAAAlxC,WAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAic,EAAA,EAAA,CASPtqC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAG4D,CAAA,CAAA,eAAA,CAAA,EAAA,CAMpDyC,CAAAA,EAAAA,CAAA,kBAAA,CAAA,SAAA8nC,EAAA,CAAA,IAAAo4B,EAAAhgE,EAAAigE,CAAAA,CAAA,EAAAjuF,KAAAu7D,CAAAA,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAAoBqtC,CAAA2yB,CAAAA,mBAAAA,CAAAt4B,EAAAo4B,CAAAzyB,CAAAA,CAAAA,CAAA4c,WAAA,CAA2C,CAAA,CAAA,CAAA,CACvC5sD,IAAgB,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAP5CiZ,GAAA,SAAAgnC,CAAAA,EAAAA,CAAA,CAAA44B,CAAAA,EAAAA,CAAA,CAAA5yB,CAAA6yB,CAAAA,gBAAA,CAAA,CAEI9/D,CAAAA,EAAAA,GAAA+/D,EAAA,CAAA,IAAA,CAAA,qCAAAC,CAAAA,CAAAA,CAAAlpD,OAAA,EAAA,CAAA,CACA7W,GAAA,MAAA+/D,CAAAA,CAAA,EAAa,QAAA/yB,CAAAA,CAAAA,CAAAgzB,YAAA,CAAA,CACU,YAAAhzB,CAAA9rB,CAAAA,SAAA,EAbvCpkB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAG0E,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAC9C8U,GAAA,CAAA,CAAA,CAAyC5U,IACjEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAA+gE,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAYJjjE,IAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAdkBgZ,GAAA,CAAA,CAAA,CAAA8R,GAAAm7B,CAAAiyB,CAAAA,MAAAA,CAAAztD,QAAA0uD,CAAAA,mBAAA,EAGCngE,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAmzB,CAAAA,uBAAA,EAmBrBrjE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EAG4D,CAAA,CAAA,eAAA,CAAA,EAAA,CAMpDyC,CAAAA,EAAAA,CAAA,kBAAA,CAAA,SAAA8nC,EAAA,CAAA,IAAA+4B,EAAA3gE,EAAA4gE,CAAAA,CAAA,EAAA5uF,KAAAu7D,CAAAA,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAAoBqtC,EAAA2yB,mBAAAt4B,CAAAA,CAAAA,CAAA+4B,EAAApzB,CAAAlmB,CAAAA,QAAA,CAAwC,CAAA,CAAA,CACpC9pB,CAAAA,EAAAA,EAAgB,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAP5CiZ,GAAA,SAAAgnC,CAAAA,EAAAA,CAAA,CAAA44B,CAAAA,EAAAA,CAAA,CAAA5yB,CAAA6yB,CAAAA,gBAAA,CAAA,CAEI9/D,CAAAA,EAAAA,GAAA+/D,EAAA,CAAA,IAAA,CAAA,wCAAAQ,CAAAA,CAAAA,CAAAzpD,OAAA,EAAA,CAAA,CACA7W,EAAA,CAAA,MAAA,CAAAsgE,CAAA,CAAa,CAAA,QAAA,CAAAtzB,CAAAgzB,CAAAA,YAAA,EACU,WAAAhzB,CAAAA,CAAAA,CAAA9rB,SAAA,EAbvCpkB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAG0E,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAC9C8U,EAAA,CAAA,CAAA,EAA8B5U,EAAA,EAAA,CACtDF,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIoC,GAAA,CAAAqhE,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAArE,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAYJl/D,IAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAdkBgZ,GAAA,CAAA,CAAA,CAAA8R,GAAAm7B,CAAAwzB,CAAAA,wBAAA,CAGCzgE,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,UAAAygE,EAAA,CAAA,CAAA,CAAA,EAAAzzB,CAAA0zB,CAAAA,uBAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAjFzC5jE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAkI,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAE1HoC,EAAA,CAAA,CAAA,CAAAyhE,GAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAsI,CAAAC,CAAAA,EAAAA,CAAA,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAmCtI9jE,GAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAGIyC,GAAA,kBAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAohE,CAAA,CAAA,CAAA,IAAA7zB,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAAoBqtC,CAAA2yB,CAAAA,mBAAAA,CAAAt4B,EAA4B,CAAG,CAAA,QAAQ,CAAC,CAAA,CAAA,CAHhErqC,CAAAA,EAAAA,GAMAF,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAA2E,CAAA,CAAA,KAAA,CAAA,EAAA,CAEnEoC,CAAAA,EAAAA,CAAA,EAAA4hE,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CACJ9jE,CAAAA,EAAAA,GACAkC,EAAA,CAAA,CAAA,CAAA6hE,GAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAmD,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAUuB,GAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAqC9EjkE,CAAAA,EAAAA,IACE,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CA/FkEiZ,GAAA,SAAAgnC,CAAAA,EAAAA,CAAA,EAAAC,CAAAA,EAAAA,CAAA+F,EAAAk0B,cAAA,CAAA,CAE9DnhE,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAAgtC,EAAAwwB,YAAA,EAAA,CAAAxwB,EAAAgxB,gBAAA,CAAA,CAGuBj+D,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAgxB,gBAAA,CAiCzBj+D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAgxB,CAAAA,gBAAAA,CAAA,cAAA,CAAA,EAAA,EAAkD,aAAA,CAAA,WAAA,EACvB,WAAAhxB,CAAAA,CAAAA,CAAA9rB,SAAA,CAIRnhB,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAgxB,CAAAA,gBAAAA,CAAA,gBAAA,EAAA,CAAA,CAEUj+D,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAAqvB,IAAA,CAAA,CAEHt8D,IAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAApF,CAAAA,iBAAA,CAUrB7nC,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAmzB,CAAAA,uBAAAA,EAAAnzB,EAAAmzB,uBAAAtlF,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAoBAklB,IAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAA0zB,CAAAA,uBAAAA,EAAA1zB,EAAA0zB,uBAAA7lF,CAAAA,MAAAA,CAAA,CAAA,EAAA,CAAA,CCnErB,IAAasmF,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAiFlCpvF,WAAAA,CACYg7B,EACAq0D,CACA54B,CAAAA,CAAAA,CACA64B,EACkBryD,CAClByb,CAAAA,CAAAA,CACA62C,EACA74B,CACA84B,CAAAA,CAAAA,CACAC,CACAzuC,CAAAA,CAAAA,CACA5Y,EACAo4B,EACAh4B,CAAAA,EAAAA,CACAmuB,EACAE,CAAAA,EAAAA,CACAggB,GACA6Y,EACAp1C,CAAAA,EAAAA,CACAsc,EACA+4B,CAAAA,EAAAA,CACAC,GACA5iD,EACA6iD,CAAAA,EAAAA,CACAC,GACAC,EACS10D,CAAAA,EAAAA,CACTsgC,GACAq0B,EACAC,CAAAA,EAAAA,CACAp3C,EACAhM,CAAAA,EAAAA,CACS3R,GACTg1D,EACA7nD,CAAAA,EAAAA,CACA+E,EACA5G,CAAAA,EAAAA,CAAsC,CApCtC,IAAAxL,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAAq0D,kBAAAA,CACA,CAAA,IAAA,CAAA54B,iBAAAA,CACA,CAAA,IAAA,CAAA64B,gBAAAA,CACkB,CAAA,IAAA,CAAAryD,QAAAA,CAAAA,CAAAA,CAClB,KAAAyb,GAAAA,CAAAA,CAAAA,CACA,IAAA62C,CAAAA,cAAAA,CAAAA,EACA,IAAA74B,CAAAA,YAAAA,CAAAA,CACA,CAAA,IAAA,CAAA84B,OAAAA,CACA,CAAA,IAAA,CAAAC,eAAAA,CACA,CAAA,IAAA,CAAAzuC,OAAAA,CACA,CAAA,IAAA,CAAA5Y,iBAAAA,CAAAA,CAAAA,CACA,KAAAo4B,QAAAA,CAAAA,EAAAA,CACA,IAAAh4B,CAAAA,QAAAA,CAAAA,GACA,IAAAmuB,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAE,yBAAAA,EACA,CAAA,IAAA,CAAAggB,mBAAAA,EACA,CAAA,IAAA,CAAA6Y,qBAAAA,EACA,CAAA,IAAA,CAAAp1C,aAAAA,CAAAA,EAAAA,CACA,KAAAsc,kBAAAA,CAAAA,EAAAA,CACA,IAAA+4B,CAAAA,MAAAA,CAAAA,GACA,IAAAC,CAAAA,KAAAA,CAAAA,EACA,CAAA,IAAA,CAAA5iD,oBAAAA,EACA,CAAA,IAAA,CAAA6iD,uBAAAA,EACA,CAAA,IAAA,CAAAC,uBAAAA,EACA,CAAA,IAAA,CAAAC,cAAAA,CAAAA,EAAAA,CACS,KAAA10D,qBAAAA,CAAAA,EAAAA,CACT,KAAAsgC,kBAAAA,CAAAA,EAAAA,CACA,KAAAq0B,sBAAAA,CAAAA,EAAAA,CACA,IAAAC,CAAAA,gBAAAA,CAAAA,GACA,IAAAp3C,CAAAA,qBAAAA,CAAAA,GACA,IAAAhM,CAAAA,aAAAA,CAAAA,GACS,IAAA3R,CAAAA,SAAAA,CAAAA,EACT,CAAA,IAAA,CAAAg1D,0BAAAA,EACA,CAAA,IAAA,CAAA7nD,qBAAAA,CAAAA,EAAAA,CACA,KAAA+E,MAAAA,CAAAA,EAAAA,CACA,IAAA5G,CAAAA,kBAAAA,CAAAA,GAlHF,IAAA2pD,CAAAA,2BAAAA,CAA8B,IAAIvkE,IAClC,CAAA,IAAA,CAAAwkE,wCAA0C,IAAIxkE,IAAAA,CAOxD,IAAAogE,CAAAA,eAAAA,CAA2B,GAC3B,IAAA5kB,CAAAA,OAAAA,CAAe,EAAA,CACf,KAAAipB,aAAyB,CAAA,CAAA,CAAA,CAMzB,IAAA5E,CAAAA,YAAAA,CAAwB,GACxB,IAAAI,CAAAA,gBAAAA,CAA4B,GAC5B,IAAAuC,CAAAA,uBAAAA,CAA+B,EAC/B,CAAA,IAAA,CAAAkC,mBAA2B,CAAA,GAC3B,IAAAC,CAAAA,yBAAAA,CAAiC,EAAA,CACjC,KAAAC,6BAAqC,CAAA,EAOrC,CAAA,IAAA,CAAAC,uBAAkC,CAUlC,CAAA,CAAA,IAAA,CAAA5Y,YAAmBhkC,IAAaY,CAAAA,wBAAAA,CAChC,KAAAi8C,IAAY78C,CAAAA,IAAAA,CAAae,sBACzB,CAAA,IAAA,CAAAG,SAAgBlB,IAAakB,CAAAA,QAAAA,CAG7B,KAAAw1C,cAAyB,CAAA,kBAAA,CACzB,KAAAC,gBAA2B,CAAA,gBAAA,CAE3B,IAAAmG,CAAAA,mBAAAA,CAA2B,EAC3B,CAAA,IAAA,CAAAhC,wBAA+B,EAAA,CAC/B,KAAAiC,WAAmB,CAAA,EACnB,CAAA,IAAA,CAAAC,qBAAgC,CAmBhC,CAAA,CAAA,IAAA,CAAAC,kBAA8B,CAAA,CAAA,CAAA,CAE9B,KAAAC,gBAA4B,CAAA,CAAA,CAAA,CAC5B,IAAAhG,CAAAA,WAAAA,CAAsB,GACtB,IAAAa,CAAAA,eAAAA,CAA0B,GAC1B,IAAAD,CAAAA,mBAAAA,CAA8B,GAC9B,IAAAwD,CAAAA,cAAAA,CAA0B,CA0CtB,CAAA,CAAA,IAAA,CAAK3oE,YAAc,IAAIs0D,GAC3B,CAEAr/C,QAAAA,EAAQ,CACJ,IAAK67C,CAAAA,2BAAAA,CAA8B,IAAKzgB,CAAAA,wBAAAA,CAAyB5R,sBACjE,CAAA,IAAA,CAAKre,WAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,mBAC7C,CAAA,IAAA,CAAKmqD,eAAkB,CAAA,IAAA,CAAKpqD,WAAWqqD,qBACvC,CAAA,IAAA,CAAK3G,IAAO,CAAA,IAAA,CAAK4G,aAAaxxC,IAC9B,CAAA,IAAA,CAAKwsC,SAAY,CAAA,IAAA,CAAKgF,aAAahF,SACnC,CAAA,IAAA,CAAKiF,gBAAkBl0D,QAASm0D,CAAAA,sBAAAA,CAAuB,mBAAmB,CAAEtoF,CAAAA,MAAAA,CACrEm0B,QAASm0D,CAAAA,sBAAAA,CAAuB,mBAAmB,CAAE,CAAA,CAAC,EACvD,IACN,CAAA,IAAA,CAAK/iD,SAAW,IAAK6iD,CAAAA,YAAAA,CAAaj1B,YAClC,CAAA,IAAA,CAAKo1B,cACL,CAAA,IAAMv1D,EAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBAC5C,CAAA,IAAA,CAAKmxD,MAAS,CAAA,IAAA,CAAK7xD,sBAAsBgE,mBAAmB,EAAA,CAC5D,IAAKiyD,CAAAA,kBAAAA,CAAqB,KAAKj2D,qBAAsBgjB,CAAAA,yBAAAA,EACrD,CAAA,IAAA,CAAKowC,yBAA2B,IAAKvB,CAAAA,MAAAA,CAAOztD,SAAS,oBAC/C,CAAA,IAAA,CAAKytD,OAAOztD,QAAS,CAAA,oBAAA,CACrB,IAAKytD,CAAAA,MAAAA,CAAOztD,SAAS,iBAC3B,CAAA,IAAA,CAAKiQ,OAAU,CAAA,IAAA,CAAK4K,cAAc5K,OAAO,EAAA,CACzC,IAAKu8C,CAAAA,gBAAAA,CAAmBnwD,EAASy1D,kCACjC,CAAA,IAAMniE,EAAU,IAAKkrB,CAAAA,aAAAA,CAAc/K,uBAAuB,IAAKJ,CAAAA,SAAS,CAClEqiD,CAAAA,CAAAA,CAAU,KAAK5B,KAAM6B,CAAAA,QAAAA,CAASC,aAAcliE,CAAAA,GAAAA,CAAI,eAAe,CACjE,CAAA,IAAA,CAAK09D,MAAOztD,CAAAA,QAAAA,CAAS,gBAAkB,IAAKsrD,CAAAA,WAAAA,CAAc,KAAKmC,MAAOztD,CAAAA,QAAAA,CAAS,eAC/E,IAAKytD,CAAAA,MAAAA,CAAOztD,QAAS,CAAA,iBAAA,GAAsB,KAAKmsD,eAAkB,CAAA,IAAA,CAAKsB,OAAOztD,QAAS,CAAA,iBAAA,CAAA,CACvF,KAAKytD,MAAOztD,CAAAA,QAAAA,CAAS,qBAA0B,GAAA,IAAA,CAAKksD,oBAAsB,IAAKuB,CAAAA,MAAAA,CAAOztD,SAAS,qBAC/F+xD,CAAAA,CAAAA,CAAAA,EAAWA,EAAQ1oF,MAAS,CAAA,CAAA,EAC5B,IAAKwxC,CAAAA,aAAAA,CAActK,eAAewhD,CAAO,CAAA,CAGzC11D,CAASc,CAAAA,2BAAAA,EACT,KAAKmzD,cAAe3vB,CAAAA,4BAAAA,EAA+B/5C,CAAAA,SAAAA,CAAW+2B,GAAY,CACtE,IAAA,CAAKvgB,YAAcugB,CAASu0C,CAAAA,qBAAAA,CAC5B,KAAKjG,mBAAsB,CAAA,IAAA,CAAK7uD,WAAc,CAAA,IAAA,CAAKqwD,OAAOztD,QAAS,CAAA,YAAA,CAAkB,IAAKytD,CAAAA,MAAAA,CAAOztD,SAAS,QAC9G,CAAC,CAGL,CAAA,IAAA,CAAKmyD,wBAA0B,GAAMxiE,CAAAA,CAAAA,CAAU,aAC/C,IAAKsnC,CAAAA,YAAAA,CAAa/H,MAAM,CAAEyK,eAAAA,CAAiB,CAAI,CAAA,CAAE,EACjD,IAAKh6B,CAAAA,cAAAA,CAAiB,IAAKswD,CAAAA,oBAAAA,CACtB,KAAKvgD,SACN,GAAA,IAAA,CAAKA,SAAY,CAAA,IAAA,CAAKmL,cAAcpL,YAAY,EAAA,CAAA,CAEpD,KAAK2mB,iBAAoB,CAAA,IAAA,CAAKvb,cAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,SAAWrT,CAAAA,CAAAA,CAASi8B,uBAAuB,CACzH,CAAA,IAAA,CAAK85B,mBAAmB,IAAKvH,CAAAA,IAAAA,CAAKxlD,MAAM,CACxC,CAAA,IAAMgtD,CAAyB,CAAA,IAAA,CAAKz2D,sBAAsB02D,wBAAwB,EAAA,CAC9E,KAAK/2D,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC4lD,CAAkBE,CAAAA,yBAAAA,EAChD,IAAKC,CAAAA,yBAAAA,GAGT,IAAMC,CAAAA,CAAoB,IAAK7C,CAAAA,iBAAAA,CAAkBxW,gBAqCjD,CAAA,GApCA,IAAKsZ,CAAAA,yBAAAA,CAA0BD,CAAiB,CAChD,CAAA,IAAA,CAAKE,UAAY,IAAK/C,CAAAA,iBAAAA,CAAkBpX,0BAA0B5xD,SAAW+2B,CAAAA,CAAAA,EAAiB,CACtFA,CAAAA,EACA,KAAK+0C,yBAA0B/0C,CAAAA,CAAQ,EAE/C,CAAC,EACD,IAAKue,CAAAA,kBAAAA,CAAmB02B,qBAAsBhsE,CAAAA,SAAAA,CAAW+2B,GAAiB,CAClEA,CAAAA,EACA,KAAKi0C,YAAY,GAEzB,CAAC,CAED,CAAA,IAAA,CAAKiB,8BAAiC,CAAA,IAAA,CAAK32B,mBAAmBQ,eAAgB,CAAA,IAAA,CAAKhtB,SAAW0E,CAAAA,IAAAA,CAAaY,wBAAwB,CACnI,CAAA,IAAA,CAAKgiB,gBAAiBlV,CAAAA,4BAAAA,CAA6Bl7B,UAAWksE,CAAoB,EAAA,CAC1EA,IACA,IAAKjI,CAAAA,IAAAA,CAAKlxC,YAAcm5C,CAAiB7pD,CAAAA,OAAAA,CAAQ,IAAK4hD,CAAAA,IAAAA,CAAKxlD,MAAM,CAAI,CAAA,CAAA,CAAA,EAE7E,CAAC,CAGG,CAAA,CAAA,IAAA,CAAKooD,OAAOviC,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MACnD,EAAA,IAAA,CAAKtF,OAAOviC,mBAAoB6nC,CAAAA,cAAAA,GAAmB,QACnD,IAAKtF,CAAAA,MAAAA,CAAOviC,oBAAoB6nC,cAAmB,GAAA,MAAA,IAEnD,IAAKjI,CAAAA,cAAAA,CAAiB,oBACtB,IAAKC,CAAAA,gBAAAA,CAAmB,qBAE5B,CAAA,CAAA,IAAA,CAAKiI,aAAe,CACpB,CAAA,CAAA,IAAA,CAAK/G,mBAAsB,CAAA,IAAA,CAAK7uD,YAAc,IAAKqwD,CAAAA,MAAAA,CAAOztD,SAAS,YAAkB,CAAA,IAAA,CAAKytD,OAAOztD,QAAS,CAAA,OAAA,CAC1G,IAAKizD,CAAAA,kBAAAA,GACL,IAAKC,CAAAA,iBAAAA,CAAoB,CACrB72D,CAAAA,CAAAA,CAAAA,CAAS82D,sCACT,IAAK/B,CAAAA,oBAAAA,CAAuB,IAAKgC,CAAAA,aAAAA,CAAc,gBAAgB,CAE/D,CAAA,IAAA,CAAKhC,qBAAuB,IAAKgC,CAAAA,aAAAA,CAAc,mBAAmB,CAElE,CAAA,IAAA,CAAKhC,oBAEL,CAAA,GADA,KAAK8B,iBAAoB,CAAA,CAAA,CAAA,CACpB,IAAK1G,CAAAA,gBAAAA,CAKH,CACH,IAAKmE,CAAAA,uCAAAA,CAAwCnkE,IAAK,CAAA,IAAA,CAAKq+D,IAAI,CAC3D,CAAA,MACJ,MAR4B,CACxB,IAAM91F,EAAU,IAAK04F,CAAAA,MAAAA,CAAOztD,QAAS,CAAA,iBAAA,CACjCjrC,GACA,IAAKkiE,CAAAA,YAAAA,CAAazS,SAASzvD,CAAS4vD,CAAAA,IAAAA,CAAgBqjC,OAAQ,mBAAmB,EAEvF,CAIG,KAAA,CACC,CAAC,IAAKyE,CAAAA,SAAAA,EAAa,KAAK4G,iBACxB,GAAA,IAAA,CAAKH,kBAAoB,CACzB,CAAA,CAAA,IAAA,CAAKj8B,YAAap0D,CAAAA,GAAAA,CAAI,KAAKwwF,iBAAiB,CAAA,CAAA,CAEhD,IAAM37B,CAAAA,CAAoB,KAAK97B,qBAAsB+7B,CAAAA,0BAAAA,EACrD,CAAA,IAAA,CAAKzC,yBAA2BwC,CAAaxC,CAAAA,yBACjD,CAEA,IAAKxxB,CAAAA,IAAAA,CAAO,IAAIE,IAChB,CAAA,IAAA,CAAK0vD,SAAY,CAAA,CAAA,CAAA,CAGjB,KAAKC,0BAA2B,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,EAC9C,CAEA3mE,eAAe,EAAA,CACX4Q,QAASC,CAAAA,cAAAA,CAAe,iBAAiB,CAAG+1D,EAAAA,YAAAA,CAAa,QAAS,IAAKjC,CAAAA,eAAe,EAC/D,IAAK31D,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACpDm3D,sCAAwC,IAAKrmD,CAAAA,aAAAA,CAAc6C,OAC1E,EAAA,IAAA,CAAKyjD,mCAEb,CACAtB,kBAAmBuB,CAAAA,CAAAA,CAAc,CAE7B,IAAMtB,CAAAA,CAAyB,KAAKz2D,qBAAsB02D,CAAAA,wBAAAA,GAC1D,GAAI,IAAA,CAAK/2D,IAAKkR,CAAAA,eAAAA,EAAmB4lD,EAAkBE,yBAA2B,CAAA,CAE1E,IAAM/4C,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CAEjEm6C,CAAoB,CAAA,IAAA,CAAKx6C,sBAAsBT,YAAaa,CAAAA,CAAAA,CAAekH,SAAS,mBAAwBizC,CAAAA,CAAM,EAExH,IAAK16C,CAAAA,GAAAA,CAAIlpB,GAAI,CAAA,CAAA,WAAA,EAAc6jE,CAAiB,CAAE,CAAA,CAAA,CAAEhtE,SAAW+2B,CAAAA,CAAAA,EAAiB,CACpEA,CAEA,GAAA,IAAA,CAAKuzC,mBAAsBvzC,CAAAA,CAAAA,CAASk2C,oBAEpC,IAAKrB,CAAAA,yBAAAA,IAEb,CAAC,EACL,CACJ,CACAZ,YAAAA,EAAY,CACR,IAAMkC,EAAuB,IAAK/sD,CAAAA,kBAAAA,CAAmB3B,WAAY,CAAA,IAAA,CAAKylD,KAAKxlD,MAAM,CAAA,CAC7E,IAAKwlD,CAAAA,IAAAA,EAAQ,KAAKA,IAAKh3F,CAAAA,IAAAA,CACvB,KAAKg3F,IAAKj0B,CAAAA,KAAAA,CAAQ,KAAKi0B,IAAKh3F,CAAAA,IAAAA,CACrBigG,CACP,GAAA,IAAA,CAAKjJ,KAAKj0B,KAAQk9B,CAAAA,CAAAA,CAAgBjgG,IAE1C,EAAA,CAEAkgG,YAAYjlG,CAAUyC,CAAAA,CAAAA,CAAU,CAC5B,IAAA,CAAKgwD,OAAO7E,GAAI5tD,CAAAA,CAAAA,CAAKyC,CAAK,EAC9B,CACA6hG,cAActkG,CAAQ,CAAA,CAClB,OAAI,IAAA,CAAKyyD,OAAOxxB,GAAIjhC,CAAAA,CAAG,IAAM,GAIjC,CACAklG,SAASngG,CAAWomD,CAAAA,CAAAA,CAAQ,CACxB,IAAM7/C,EAAU,IAAIkoC,MAAAA,CAAO,SAAWzuC,CAAO,CAAA,WAAW,EAAEogG,IAAKh6C,CAAAA,CAAG,CAClE,CAAA,OAAK7/C,GAGEA,CAAQ,CAAA,CAAC,CAAK,EAAA,CACzB,CAOAo4F,yBAAyB,EAAA,CAIrB,GAAI,IAAA,CAAKtB,oBAAoB7nF,MAAS,CAAA,CAAA,EAAK,KAAK6nF,mBAAoB7nF,CAAAA,MAAAA,EAAU,EAAG,CAC7E,IAAMo0E,CAAqB,CAAA,IAAA,CAAKvhB,mBAAmBg4B,gBAAgB,EAAA,CAC7DC,CAA2B,CAAA,IAAA,CAAKj4B,mBAAmBQ,eAAgB,CAAA,IAAA,CAAKhtB,SAAW,CAAA,UAAU,EACnG,GAAIykD,CAAAA,EAA4BA,EAAyBt3B,YAAgBs3B,EAAAA,CAAAA,CAAyBt3B,aAAassB,QAAS9/E,CAAAA,MAAAA,CAAS,CAAG,CAAA,CAChI,IAAM+qF,CAAiBD,CAAAA,CAAAA,CAAyBt3B,YAAassB,CAAAA,QAAAA,CAC7D,QAASn7F,CAAI,CAAA,CAAA,CAAGA,CAAIomG,CAAAA,CAAAA,CAAe/qF,OAAQrb,CAAK,EAAA,CAAA,CAC5C,IAAMq3E,CAAqB+uB,CAAAA,CAAAA,CAAepmG,CAAC,CACrCqmG,CAAAA,CAAAA,CAAoB5W,CAAcnnF,CAAAA,MAAAA,CAAQg+F,GAAsBA,CAAiBjvB,GAAAA,CAAAA,CAAcplB,IAAI,CACzG,CAAA,GAAI,EAAEo0C,CAAgBA,EAAAA,CAAAA,CAAahrF,MAAS,CAAA,CAAA,CAAA,CAAI,CAC5Cg8D,CAAcp/B,CAAAA,IAAAA,CAAO,IACrB,IAAM4/B,CAAAA,CAAiC,KAAKgqB,eAAgBnqB,CAAAA,iBAAAA,CAAkBL,CAAe,CAAA,IAAA,CAAKp1B,OAAO,CACzG41B,CAAAA,CAAAA,CAAe0uB,YAAe,CAAA,IAAA,CAAKC,uBAAuB3uB,CAAc,CAAA,CACpE,IAAKgrB,CAAAA,mBAAAA,CAAoBxnF,OAAS,CAC7B,CAAA,IAAA,CAAKwnF,oBAAoBh/C,IAAMoO,CAAAA,CAAAA,EAAcA,EAAK5a,MAAWwgC,GAAAA,CAAAA,CAAexgC,MAAM,CAAA,EACnF,KAAKwrD,mBAAoB/tC,CAAAA,IAAAA,CAAK+iB,CAAc,CAAA,CAGhD,KAAKgrB,mBAAoB/tC,CAAAA,IAAAA,CAAK+iB,CAAc,EAEpD,CACJ,CACJ,CACA,KAAK4uB,6BAA8B,CAAA,IAAA,CAAKvD,mBAAmB,CAC3D,CAAA,IAAA,CAAKC,WAAc,CAAA,IAAA,CAAKjC,wBAAwBp9F,MAAO,CAAA,IAAA,CAAK++F,mBAAmB,CAAA,CAE/E,KAAK3B,uBAA0BpuD,CAAAA,KAAAA,CAAM1yC,IAAK,CAAA,IAAA,CAAK+iG,YAAYxzD,MAAO,CAAA,CAAC9rC,EAAQ/D,CAAW+D,GAAAA,CAAAA,CAAEwU,IAAIvY,CAAEu3C,CAAAA,MAAAA,CAAQv3C,CAAC,CAAA,CAAG,IAAI4zC,GAAK,CAAA,CAAE9nC,QAAQ,EACjI,MAEI,IAAKs1F,CAAAA,uBAAAA,CAA0B,IAAKuF,CAAAA,6BAAAA,CAA8B,KAAKvD,mBAAmB,EAElG,CAMAuD,6BAA8BC,CAAAA,CAAAA,CAAmB,CAC7C,IAAMC,CAAAA,CAA0B,IAAKC,CAAAA,WAAAA,CAAYF,CAAS,CAK1D,CAAA,GAJA,IAAKxF,CAAAA,uBAAAA,CAA0B,EAC/ByF,CAAAA,CAAAA,CAAwBz1C,OAASe,CAAAA,CAAAA,EAAa,CAC1C,IAAKivC,CAAAA,uBAAAA,CAAwBpsC,KAAK,IAAK0xC,CAAAA,sBAAAA,CAAuBv0C,CAAI,CAAC,EACvE,CAAC,CAAA,CACG,KAAKivC,uBAA2B,EAAA,IAAA,CAAKA,uBAAwB7lF,CAAAA,MAAAA,CAAS,EACtE,OAAK6lF,IAAAA,CAAAA,uBAAAA,CAA0B,IAAKA,CAAAA,uBAAAA,CAAwB54F,OAAQxF,CACzD,EAAA,CAACA,EAAK6zE,kBAChB,CAAA,CAEM,KAAKuqB,uBAEpB,CAEAwD,yBAA0BgC,CAAAA,CAAAA,CAAmB,CACzC,IAAMlhC,CAAAA,CAAkB,IAAK0D,CAAAA,sBAAAA,CAAuBzC,oBAChDigC,CAAAA,CAAAA,EAAaA,CAAUrrF,CAAAA,MAAAA,CAAS,IAChCqrF,CAAYA,CAAAA,CAAAA,CAAUp+F,OAAQtE,CAAMwhE,EAAAA,CAAAA,CAAgBvqB,QAAQj3C,CAAC,CAAA,GAAM,CAAE,CAAA,CAAA,CAAA,CAEzE,IAAM6iG,CAA2BrhC,CAAAA,CAAAA,CAAgB1hE,OAAO4iG,CAAS,CAAA,CAC3DI,EAAyB,IAAKF,CAAAA,WAAAA,CAAYC,CAAwB,CAAA,CACxE,KAAKlG,uBAA0B,CAAA,GAC/BmG,CAAuB51C,CAAAA,OAAAA,CAASe,GAAa,CACzC,IAAA,CAAK0uC,uBAAwB7rC,CAAAA,IAAAA,CAAK,KAAK0xC,sBAAuBv0C,CAAAA,CAAI,CAAC,EACvE,CAAC,CACG,CAAA,IAAA,CAAK0uC,uBAA2B,EAAA,IAAA,CAAKA,wBAAwBtlF,MAAS,CAAA,CAAA,GACtE,KAAKslF,uBAA0B,CAAA,IAAA,CAAKA,wBAAwBr4F,MAAQxF,CAAAA,CAAAA,EACzD,CAACA,CAAAA,CAAK6zE,kBAChB,CAET,EAAA,CAEAowB,uBAAwBL,CAAAA,CAAAA,CAAgB,CACpC,IAAMM,CAAAA,CAAe,IAAKJ,CAAAA,WAAAA,CAAYF,CAAS,CAC/C,CAAA,IAAA,CAAK7D,oBAAsB,EAAA,CACvBmE,EAAa3rF,MAAS,CAAA,CAAA,EACtB2rF,CAAa91C,CAAAA,OAAAA,CAAS2B,GAAc,CAC3B,IAAA,CAAKgwC,mBAAoBh/C,CAAAA,IAAAA,CAAMoO,GAAcA,CAAK5a,CAAAA,MAAAA,GAAWwb,CAAMxb,CAAAA,MAAM,GAC1E,IAAKwrD,CAAAA,mBAAAA,CAAoB/tC,KAAK,IAAK0xC,CAAAA,sBAAAA,CAAuB3zC,CAAK,CAAC,EAExE,CAAC,EAET,CAEA+zC,WAAYF,CAAAA,CAAAA,CAAc,CACtB,IAAMrtB,CAAAA,CAAiB,EACjB4tB,CAAAA,CAAAA,CAAyB,IAAKpF,CAAAA,eAAAA,CAAgBnoB,oBAAoBgtB,CAAS,CAAA,CACjF,QAAS1mG,CAAI,CAAA,CAAA,CAAGA,EAAIinG,CAAkB5rF,CAAAA,MAAAA,CAAQrb,CAAK,EAAA,CAAA,CAC/C,IAAMy3C,CAAgB,CAAA,IAAA,CAAKsB,kBAAmB3B,CAAAA,WAAAA,CAAY6vD,EAAkBjnG,CAAC,CAAA,CAAEiyD,IAAI,CAAA,CACnF,GAAIxa,CAAU,CAAA,CACV,IAAMogC,CAAiC,CAAA,IAAA,CAAKgqB,gBAAgBnqB,iBAAkBjgC,CAAAA,CAAAA,CAAU,IAAKwK,CAAAA,OAAO,EACpG41B,CAAeqvB,CAAAA,YAAAA,CAAe,IAAKC,CAAAA,mBAAAA,CAAoBtvB,EAAexgC,MAAM,CAAA,CAC5EwgC,CAAe0uB,CAAAA,YAAAA,CAAe,KAAKp9B,kBAAmBlN,CAAAA,mBAAAA,CAAoB4b,EAAexgC,MAAM,CAAA,CAC/FgiC,EAAUvkB,IAAK+iB,CAAAA,CAAc,EACjC,CACJ,CACA,OAAOwB,CACX,CAEA8tB,mBAAAA,CAAoB9vD,EAAc,CAE9B,OADkC,IAAK6xB,CAAAA,sBAAAA,CAAuBzC,oBAClCxrB,CAAAA,OAAAA,CAAQ5D,CAAM,CAAK,EAAA,CAAA,CACnD,CAGAmvD,sBAAuBv0C,CAAAA,CAAAA,CAAS,CAE5B,GADA,KAAKm1C,YAAe,CAAA,IAAA,CAAKtF,eAAe3mC,cAAc,EAAA,CAClD,KAAKisC,YACL,CAAA,CAAA,IAAA,IAAWtmG,CAAO,IAAA,IAAA,CAAKsmG,aACnB,GAAI,IAAA,CAAKA,aAAatmG,CAAG,CAAA,CAAEw9D,eAAerjB,OAAQgX,CAAAA,CAAAA,CAAK5a,MAAM,CAAA,GAAM,GAC/D4a,OAAAA,CAAAA,CAAKwJ,YAAe,CAAA,IAAA,CAAK2rC,aAAatmG,CAAG,CAAA,CAAE45D,MACpCzI,CAAAA,CAAAA,CAInB,OAAOA,CACX,CAEAo1C,iBAAe,CAEX,GADA,KAAKD,YAAe,CAAA,IAAA,CAAKtF,cAAe3mC,CAAAA,cAAAA,GACpC,IAAKisC,CAAAA,YAAAA,CACL,IAAWtmG,IAAAA,CAAAA,IAAO,KAAKsmG,YACnB,CAAA,IAAA,CAAKzG,uBAAwBzvC,CAAAA,OAAAA,CAAS4B,GAAU,CACxC,IAAA,CAAKs0C,aAAatmG,CAAG,CAAA,CAAEw9D,eAAerjB,OAAQ6X,CAAAA,CAAAA,CAAEzb,MAAM,CAAA,GAAM,KAC5Dyb,CAAE2I,CAAAA,YAAAA,CAAe,IAAK2rC,CAAAA,YAAAA,CAAatmG,CAAG,CAAE45D,CAAAA,MAAAA,EAEhD,CAAC,CAAA,CAED,KAAKmoC,mBAAoB3xC,CAAAA,OAAAA,CAAS4B,GAAU,CACpC,IAAA,CAAKs0C,aAAatmG,CAAG,CAAA,CAAEw9D,cAAerjB,CAAAA,OAAAA,CAAQ6X,EAAEzb,MAAM,CAAA,GAAM,KAC5Dyb,CAAE2I,CAAAA,YAAAA,CAAe,KAAK2rC,YAAatmG,CAAAA,CAAG,CAAE45D,CAAAA,MAAAA,EAEhD,CAAC,EAGb,CAEA4sC,mBAAmBlpF,CAAU,CAAA,CACzB,KAAK6mF,kBAAkB,EAAA,CACvB7mF,CAAM22B,CAAAA,wBAAAA,GACV,CAE4CwyD,gBAAAA,CAAiBnpF,CAAU,CAAA,CAC/DA,GAAOkvB,IAAMk6D,EAAAA,UAAAA,GAAe,cAC5B,GAAA,IAAA,CAAKC,0BAA4B,CACjC,CAAA,CAAA,IAAA,CAAKrK,qBAAuB,CAC5B,CAAA,CAAA,IAAA,CAAKsK,eAAetpF,CAAOkvB,EAAAA,IAAAA,EAAMq6D,eAAe,CAAA,CAChD,KAAK55D,KAAM,CAAA,CAAA,CAAA,CAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAM,GAAO,CAAK,CAAA,CAAA,CAAA,CAE3C3vB,CAAOkvB,EAAAA,IAAAA,EAAMniC,OAAS,uBACtB,GAAA,IAAA,CAAKs8F,0BAA4B,CACjC,CAAA,CAAA,IAAA,CAAKrK,qBAAuB,CAC5B,CAAA,CAAA,IAAA,CAAKsK,cAAetpF,CAAAA,CAAAA,EAAOkvB,MAAMA,IAAI,CAAA,CACrC,IAAKS,CAAAA,KAAAA,CAAM,GAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAK,IAE1C3vB,CAAMkvB,CAAAA,IAAAA,GAAS,sBAAwBlvB,CAAMkvB,CAAAA,IAAAA,GAAS,qBAAuB,CAAC,IAAA,CAAKg2D,gBACpF,GAAA,IAAA,CAAK3jD,OAAO52B,IAAK,CAAA,iBAAA,CAAmB,OAAS,CAAA,iBAAA,CAAmB,uBAAwB,IAAK6+E,CAAAA,uBAAAA,EAAyB,CAAA,CACtH,KAAKH,yBAA4B,CAAA,CAAA,CAAA,CACjC,KAAKrK,oBAAuB,CAAA,CAAA,CAAA,CAC5B,KAAKrvD,KAAM,CAAA,CAAA,CAAK,CAEhB,CAAA,CAAA,IAAA,CAAKoL,WAAW0uD,uBAA2BzpF,EAAAA,CAAAA,CAAMkvB,IAAS,GAAA,uBAAA,GAC1D,KAAKm6D,yBAA4B,CAAA,CAAA,CAAA,CACjC,IAAKrK,CAAAA,oBAAAA,CAAuB,GAC5B,IAAKz9C,CAAAA,MAAAA,CAAO52B,KAAK,gDAAqD,CAAA,CACtE,KAAKglB,KAAM,CAAA,CAAA,CAAK,CAEhB3vB,CAAAA,CAAAA,CAAAA,CAAMkvB,OAAS,iCAAqC,EAAA,CAAC,IAAKw6D,CAAAA,qBAAAA,GAC1D,KAAKL,yBAA4B,CAAA,CAAA,CAAA,CACjC,IAAKrK,CAAAA,oBAAAA,CAAuB,GAC5B,IAAKz9C,CAAAA,MAAAA,CAAO52B,KAAK,0DAA+D,CAAA,CAChF,KAAKglB,KAAM,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAK,GAG7B3vB,CAAMkvB,CAAAA,IAAAA,GAAS,iCAAqC,EAAA,IAAA,CAAK6L,WAAW4uD,0BACpE,GAAA,IAAA,CAAKN,yBAA4B,CAAA,CAAA,CAAA,CACjC,KAAKrK,oBAAuB,CAAA,CAAA,CAAA,CAC5B,KAAKz9C,MAAO52B,CAAAA,IAAAA,CAAK,0DAA+D,CAC5E,CAAA,IAAA,CAAK++E,qBACL,EAAA,IAAA,CAAKA,sBAAwB,CAC7B,CAAA,CAAA,IAAA,CAAKE,sBAAsB,IAAK/1C,CAAAA,IAAAA,CAAM,KAAKhgD,KAAO,CAAA,IAAA,CAAKg+D,OAAO,CAAA,EACvD,KAAKg4B,YACZ,GAAA,IAAA,CAAKA,aAAe,CACpB,CAAA,CAAA,IAAA,CAAKC,wBAGT9pF,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkvB,IAAS,GAAA,4BAAA,GACf,KAAKqS,MAAO52B,CAAAA,IAAAA,CAAK,iBAAmB,CAAA,OAAA,CAAS,kBAAmB,8BAAgC,CAAA,IAAA,CAAK6+E,uBAAuB,EAAE,EAC9H,IAAKH,CAAAA,yBAAAA,CAA4B,GACjC,IAAKrK,CAAAA,oBAAAA,CAAuB,GAC5B,IAAKrvD,CAAAA,KAAAA,CAAM,CAAM,CAAA,CAAA,CAAA,CAAI,GAErB3vB,CAAMkvB,CAAAA,IAAAA,GAAS,qBACf,GAAA,IAAA,CAAKg2D,iBAAmB,CACxB,CAAA,CAAA,IAAA,CAAK3jD,MAAO52B,CAAAA,IAAAA,CAAK,8CAAmD,CAChE,CAAA,IAAA,CAAKowB,WAAWgvD,qBAAuB,EAAA,IAAA,CAAKpC,YAAY,gBAAkB,CAAA,CAAC,CAE/E,CAAA,CAAA,IAAA,CAAK5sD,WAAWuoD,cACZtjF,GAAAA,CAAAA,CAAMkvB,IAAS,GAAA,kBAAA,CACf,KAAKo0D,cAAiB,CAAA,CAAA,CAAA,CACftjF,CAAMkvB,CAAAA,IAAAA,GAAS,uBACtB,IAAKo0D,CAAAA,cAAAA,CAAiB,KAGlC,CAEAgG,cAAAA,CAAerwD,EAAc,CACzB,IAAM6qB,CAAoB,CAAA,IAAA,CAAKgM,mBAAmBk6B,eAAe,EAAA,EAAIrmE,IAAIsV,CAAM,CAAA,CAC/E,GAAI6qB,CAAc,CAAA,CACd,IAAMumB,CAAAA,CAAoB,KAAKoU,IAAKpU,CAAAA,SAAAA,CACpC,KAAKoU,IAAO,CAAA,IAAA,CAAKgF,gBAAgBnqB,iBAAkBxV,CAAAA,CAAAA,CAAc,CAAK,CAAA,CAAA,CACtE,KAAK0hC,YAAY,EAAA,CACjB,IAAK/G,CAAAA,IAAAA,CAAKpU,UAAYA,CACtB,CAAA,IAAA,CAAKoU,IAAKlxC,CAAAA,WAAAA,CAAc,KAAKqd,gBAAiBhX,CAAAA,qBAAAA,CAAsB,KAAK6qC,IAAI,CAAA,CAC7E,IAAMwL,CAAiB,CAAA,EACvBA,CAAAA,CAAAA,CAAUp2C,KAAO,IAAK4qC,CAAAA,IAAAA,CACtBwL,CAAUp2C,CAAAA,IAAAA,CAAKvQ,UAAY2mD,CAAWp2C,EAAAA,IAAAA,EAAMvQ,SAAY2mD,CAAAA,CAAAA,CAAUp2C,KAAKvQ,SAAY,CAAA,IAAA,CAAKA,UACxF,IAAKmoC,CAAAA,2BAAAA,CAA4Bye,wBAAwBD,CAAYE,CAAAA,CAAAA,EAAyB,CAC1F/yD,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAKipD,SAAY8J,CAAAA,CAAAA,CAAiB9J,UACtC,CAAC,EACL,CAAC,EACL,CACJ,CAGA+J,aAAAA,EAAa,CACT,IAAKj1C,CAAAA,MAAAA,CAAOt3B,OAAO,mBAAmB,CAAA,CACtC,IAAK8pE,CAAAA,WAAAA,CAAY,iBAAkB,CAAC,CAAA,CACpC,KAAKxyC,MAAOt3B,CAAAA,MAAAA,CAAO,gBAAgB,EACvC,CAEuDwsE,uBAAwBrqF,CAAAA,CAAAA,CAAoB,CAC/F,IAAK4/E,CAAAA,YAAAA,CAAe,KAAKxuD,QAAS,CAAA,kBAAA,CAClC,KAAK83D,kBAAmBlpF,CAAAA,CAAK,EACjC,CAC6DsqF,8BAA8BtqF,CAAoB,CAAA,CAC3G,IAAK4/E,CAAAA,YAAAA,CAAe,KAAKxuD,QAAS,CAAA,kBAAA,CAClC,IAAK83D,CAAAA,kBAAAA,CAAmBlpF,CAAK,EACjC,CAC0DuqF,2BAA2BvqF,CAAoB,CAAA,CACrG,IAAMwqF,CAAWp5D,CAAAA,QAAAA,CACjB,IAAKwuD,CAAAA,YAAAA,CAAe4K,EAAIC,aACxB,CAAA,IAAA,CAAKvB,kBAAmBlpF,CAAAA,CAAK,EACjC,CACyD0qF,yBAAAA,CAA0B1qF,CAAoB,CAAA,CACnG,KAAK4/E,YAAe,CAAA,IAAA,CAAKxuD,SAAS,kBAClC,CAAA,IAAA,CAAK83D,mBAAmBlpF,CAAK,EACjC,CAEA2qF,SAAAA,EAAS,CACL,IAAKrzD,CAAAA,IAAAA,CAAO,IAAIE,KACpB,CACA7H,KACIi7D,CAAAA,CAAAA,CACAC,CAAuB,CAAA,CAAA,CAAA,CACvBC,EAAiC,CACjCC,CAAAA,CAAAA,CAAAA,CAA0B,GAC1BC,CAAsB,CAAA,CAAA,CAAA,CAAI,CAE1B,GAAI,CAAC,IAAKhM,CAAAA,oBAAAA,CAAsB,CAC5BlmC,aAAc,CAAA,IAAID,YAAY,uBAAuB,CAAC,EACtD,IAAKxpB,CAAAA,SAAAA,CAAU6B,YAAa,CAAA,wBAAA,CAA8B,GAC1D,IAAKkzD,CAAAA,gBAAAA,CAAiBzH,UAAU,IAAKn6C,CAAAA,QAAQ,EAC7C,IAAKyoD,CAAAA,eAAAA,EACL,CAAA,IAAMC,EAAkB,IAAK17D,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CACzEjnC,EAAS,IAAKP,CAAAA,qBAAAA,CAAsBQ,mBAAmB,EAAA,CACvDwN,EAAiB,IAAK2D,CAAAA,mBAAAA,CAAoB5D,mBAC1C4tD,CAAAA,CAAAA,CAAiB,KAAKpH,KAAM6B,CAAAA,QAAAA,CAASC,aAAcliE,CAAAA,GAAAA,CAAI,gBAAgB,CAY7E,CAAA,GAVA,IAAKwxB,CAAAA,MAAAA,CAAOt3B,OAAO,YAAY,CAAA,CAC/B,IAAKgtC,CAAAA,YAAAA,CAAa/H,MAAM,CAAEyK,eAAAA,CAAiB,EAAI,CAAE,CAAA,CAC7Cq9B,GAAgB,CAAC,IAAA,CAAK5D,aAAc,CAAA,kBAAkB,IACtD,IAAK7xC,CAAAA,MAAAA,CAAOt3B,MAAO,CAAA,mBAAmB,EACtC,IAAK8pE,CAAAA,WAAAA,CAAY,gBAAkB,CAAA,CAAC,EACpC,IAAKxyC,CAAAA,MAAAA,CAAOt3B,OAAO,gBAAgB,CAAA,CAAA,CAEnC+sE,IACA,IAAKlB,CAAAA,qBAAAA,CAAwB,CAE7B,CAAA,CAAA,CAAA,CAACmB,EAAa,CACd,IAAA,CAAKjH,eAAewH,OAAO,EAAA,CAC3B,IAAMh+C,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAElD,IAAKR,CAAAA,GAAAA,CAAIlpB,IAAIypB,CAAei+C,CAAAA,IAAAA,CAAK,YAAgB,IAAM,CAAA,CAAEl7C,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAE31B,CAAAA,SAAAA,CAAU,IAAK,EAAG,EACxG,CAEA,GAAIwwE,CAAAA,CAAY,CACZ,IAAMrqD,CAAAA,CAASvP,SAASC,cAAe,CAAA,iBAAiB,EACpDsP,CAAUA,EAAAA,CAAAA,CAAO2qD,aACjB3qD,GAAAA,CAAAA,CAAO2qD,cAAchuD,WAAY,CAAA,6BAAA,CAA+B,GAAG,CAAA,CACnE,KAAKiE,MAAO52B,CAAAA,IAAAA,CAAK,oDAAyD,CAAA,CAC1E,KAAKg9E,WAAY,CAAA,gBAAA,CAAkB,CAAC,CAE5C,EAAA,CACA,IAAM4D,CAAW,CAAA,IAAA,CAAKxH,KAAM6B,CAAAA,QAAAA,CAASC,cAAcliE,GAAI,CAAA,kBAAkB,CACzE,CAAA,GAAI,KAAKoX,UAAWywD,CAAAA,qBAAAA,CAChB,IAAK/f,CAAAA,2BAAAA,CACAggB,UAAU,IAAKhN,CAAAA,IAAAA,CAAKxlD,MAAM,CAC1BJ,CAAAA,IAAAA,CAAK6yD,GAAU,IAAK/wE,CAAAA,WAAW,CAAC,CAAA,CAChCH,UACI+2B,CAAiB,EAAA,CACVA,GACA,IAAKo6C,CAAAA,eAAAA,CAAgBZ,CAAc,EAE3C,CAAA,CACA,IAAK,CACD,KAAKY,eAAgBZ,CAAAA,CAAc,EACvC,CAAC,CAAA,CAAA,KAAA,GAEF,KAAKhwD,UAAW4uD,CAAAA,0BAAAA,EAA8B,CAAC,IAAA,CAAKN,2BAA6B,IAAKvC,CAAAA,iBAAAA,CAAmB,CAChH,IAAA,CAAK9H,qBAAuB,CAC5B,CAAA,CAAA,MACJ,CACI5nD,KAAAA,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAKu0D,gBAAgBZ,CAAc,EACvC,EAAG,IAAKhwD,CAAAA,UAAAA,CAAW6wD,cAAc,CAAA,CAGjCL,GACA,IAAK52B,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAA2B9M,CAAAA,CAAAA,CAAiB,gBAAmBA,CAAAA,CAAAA,CAAiB,yBAChF,sBAAwBA,CAAAA,CAAAA,CAAiB,iBAAmBA,CAAiB,CAAA,GAAA,CAAM2tD,EAAiB,wBACpG,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B3tD,EAAiB,gBAAmBA,CAAAA,CAAAA,CAAiB,eAChF,CAAA,wBAAA,CAA0BA,EACpB,+DACA,CAAA,yDAAA,CACN,sBAAwBzN,CAAAA,CAAAA,CAAO87D,uBAAuBh+C,GACzD,CAAA,CAAA,CAEA,KAAKo3C,kBACN,GAAA,IAAA,CAAKtwB,SAASrqB,YAAa,CAAA,WAAA,CAAa,CACpC,oBAAA,CAAsB,KAAKm0C,IAAKxlD,CAAAA,MAAAA,CAChC,qBAAsB,IAAK6yD,CAAAA,gBAAAA,CAAiB,KAAKrN,IAAKxlD,CAAAA,MAAM,CAC5D,CAAA,2BAAA,CAA6B,KAAK0B,kBAAmBzB,CAAAA,kBAAAA,CAAmB,KAAKulD,IAAKxlD,CAAAA,MAAM,EAC3F,CACD,CAAA,IAAA,CAAKgsD,kBAAqB,CAAA,CAAA,CAAA,CAAA,CAIzB4F,IACD,IAAK//B,CAAAA,sBAAAA,CAAuBpD,kBAAkB,EAAA,CAC1CojC,GACA,IAAKtH,CAAAA,iBAAAA,CAAkB9W,cAAc,EAAA,CAAA,CAGzCwe,EAAgBa,wBAChB,EAAA,IAAA,CAAK9H,uBAAuBruB,kBAAkB,EAAA,CAE9C,KAAK76B,UAAWixD,CAAAA,wBAAAA,EAChB,IAAKvgB,CAAAA,2BAAAA,CAA4BwgB,wBAEzC,CACJ,CAEAhB,eAAAA,EAAe,CACN,IAAKjE,CAAAA,aAAAA,CAAc,kBAAkB,CAAA,EAAG,KAAKvb,2BAA6BC,EAAAA,SAAAA,GACnF,CAEAigB,eAAAA,CAAgBZ,EAAuB,CACnC,IAAMmB,CAA4B,CAAA,IAAA,CAAK18D,sBAAsB28D,0BAA0B,EAAA,CACvF/6D,QAASkO,CAAAA,IAAAA,CAAKtJ,UAAUnY,MAAO,CAAA,mBAAmB,CAC9CktE,CAAAA,CAAAA,EAAgB,KAAKzG,2BAA4BlkE,CAAAA,IAAAA,CAAK,KAAKq+D,IAAI,CAAA,CAC/D,KAAK9hD,QAASyvD,CAAAA,IAAAA,EAAOvvD,CAAAA,OAAAA,CAAQ,sBAAsB,CAAI,CAAA,CAAA,CAAA,GACnD,KAAK4R,aAAe/K,EAAAA,sBAAAA,CAAuB,KAAKJ,SAAS,CAAA,EAAGpH,WAAW,EAAA,EAAM,gBAC7E,IAAKK,CAAAA,iBAAAA,CAAkByI,KAAK,GAAM,CAAA,IAAA,CAAK8+C,OAAOpzD,IAAO,CAAA,KAAA,CAAQw7D,CAA2BG,EAAAA,yBAAAA,EAA2BnwD,aAAa,CAAA,CAEhI,IAAKK,CAAAA,iBAAAA,CAAkByI,KAAK,GAAM,CAAA,IAAA,CAAK8+C,MAAOpzD,CAAAA,IAAAA,CAAO,IAAM,IAAK+d,CAAAA,aAAAA,EAAe/K,uBAAuB,IAAKJ,CAAAA,SAAS,GAAGpH,WAAW,EAAE,CAGhJ,EAAA,CAEAowD,eAAeloD,CAAmB,CAAA,CAK9B,OAJI,CAAA,EAAA,CAACA,GAIDA,CAAeA,EAAAA,CAAAA,EAAe,EAAMA,EAAAA,CAAAA,CAAYvH,QAAQ,IAAKmnD,CAAAA,sBAAAA,CAAuBrX,MAAM,CAAM,GAAA,CAAA,CAIxG,CAEA4f,SAAU3vD,CAAAA,CAAAA,CAAS,CACf,IAAM16C,EAAIkvC,QAASgO,CAAAA,aAAAA,CAAc,GAAG,CAAA,CACpCl9C,OAAAA,CAAE06C,CAAAA,IAAAA,CAAOA,CACF16C,CAAAA,CACX,CAEA28F,YAAahrC,CAAAA,CAAAA,CAAW4V,EAAW,CAC3B,IAAA,CAAKt6B,KAAKkR,eACVopB,EAAAA,CAAAA,CAAO9yB,wBAAwB,EAAA,CAC/B,KAAKi0B,gBAAiBtU,CAAAA,mBAAAA,CAAoBzC,EAAM,CAAO,CAAA,CAAA,CAAA,CAAI,GAE3D,IAAKm3B,CAAAA,kBAAAA,CAAmB/oB,IAAK,CAAA,CAAEuqC,gBAAiB,WAAW,CAAE,EAE7D,IAAK/N,CAAAA,IAAAA,CAAKlxC,YACV,IAAKonB,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,iBAAA,CAAmB,CAC1C,4BAA8B,CAAA,2BAAA,CACjC,CAED,CAAA,IAAA,CAAKqqB,SAASrqB,YAAa,CAAA,iBAAA,CAAmB,CAC1C,4BAAA,CAA8B,yBACjC,EAET,CAEAmiD,SAAO,CACH,IAAA,CAAKtM,gBAAkB,CACvB,CAAA,CAAA,IAAA,CAAKqE,aAAgB,CAAA,CAAA,CAAA,CACrBpzD,SAASC,cAAe,CAAA,WAAW,CAAG4F,CAAAA,KAAAA,CAAMiK,MAAQ,MACpD9P,CAAAA,QAAAA,CAASC,cAAe,CAAA,WAAW,EAAG4F,KAAM6lC,CAAAA,QAAAA,CAAW,QAC3D,CACA4vB,QAAAA,EAAQ,CACJ,IAAKvM,CAAAA,eAAAA,CAAkB,CACvB,CAAA,CAAA,IAAA,CAAKqE,cAAgB,CACrBpzD,CAAAA,CAAAA,QAAAA,CAASC,cAAe,CAAA,WAAW,EAAG4F,KAAMiK,CAAAA,KAAAA,CAAQ,MACpD9P,CAAAA,QAAAA,CAASC,eAAe,WAAW,CAAA,CAAG4F,MAAM6lC,QAAW,CAAA,UAC3D,CACA6vB,UAAU,EAAA,CACF,IAAKC,CAAAA,eAAAA,IACL,IAAKC,CAAAA,gBAAAA,GACL,IAAKC,CAAAA,iBAAAA,IAEL,IAAKC,CAAAA,kBAAAA,GAEb,CAEAA,oBAAkB,CACd,IAAA,CAAK5M,gBAAkB,CACvB/uD,CAAAA,CAAAA,QAAAA,CAASC,eAAe,WAAW,CAAA,CAAG4F,KAAMiK,CAAAA,KAAAA,CAAQ,OACpD9P,QAASC,CAAAA,cAAAA,CAAe,WAAW,CAAA,CAAG4F,MAAM6lC,QAAW,CAAA,SAAA,CACvD,IAAK8iB,CAAAA,YAAAA,CAAe,GAChB,IAAKxuD,CAAAA,QAAAA,CAAS47D,iBACd,IAAK57D,CAAAA,QAAAA,CAAS47D,kBACP,CAAA,IAAA,CAAK57D,QAAS67D,CAAAA,mBAAAA,CACrB,KAAK77D,QAAS67D,CAAAA,mBAAAA,EACP,CAAA,IAAA,CAAK77D,SAAS87D,sBACrB,CAAA,IAAA,CAAK97D,QAAS87D,CAAAA,sBAAAA,GACP,IAAK97D,CAAAA,QAAAA,CAAS+7D,kBACrB,IAAK/7D,CAAAA,QAAAA,CAAS+7D,mBAEtB,CAEAN,gBAAgB,EAAA,CACZz7D,SAASC,cAAe,CAAA,WAAW,CAAG4F,CAAAA,KAAAA,CAAMiK,MAAQ,MACpD9P,CAAAA,QAAAA,CAASC,cAAe,CAAA,WAAW,EAAG4F,KAAM6lC,CAAAA,QAAAA,CAAW,QACvD,IAAKqjB,CAAAA,eAAAA,CAAkB,GACvB,IAAKP,CAAAA,YAAAA,CAAe,CAChB,CAAA,CAAA,IAAA,CAAKA,eACL,IAAK4E,CAAAA,aAAAA,CAAgB,IAE7B,CAEAoI,eAAAA,EAAe,CACX,OACK,IAAA,CAAKx7D,QAASg8D,CAAAA,iBAAAA,GAAsBxoD,QAAa,IAAKxT,CAAAA,QAAAA,CAASg8D,oBAAsB,IACrF,EAAA,IAAA,CAAKh8D,SAASi8D,mBAAwBzoD,GAAAA,KAAAA,CAAAA,EAAa,IAAKxT,CAAAA,QAAAA,CAASi8D,sBAAwB,IACzF,EAAA,IAAA,CAAKj8D,QAASq5D,CAAAA,aAAAA,GAAkB7lD,QAAa,CAAC,IAAA,CAAKxT,QAASq5D,CAAAA,aAAAA,EAC5D,KAAKr5D,QAASk8D,CAAAA,kBAAAA,GAAuB1oD,QAAa,CAAC,IAAA,CAAKxT,SAASk8D,kBAE1E,CAEAR,iBAAiB,EAAA,CACT,KAAK17D,QAASkO,CAAAA,IAAAA,CAAKwtD,iBACnB,CAAA,IAAA,CAAK17D,SAASkO,IAAKwtD,CAAAA,iBAAAA,EACZ,CAAA,IAAA,CAAK17D,SAASkO,IAAKiuD,CAAAA,oBAAAA,CAC1B,KAAKn8D,QAASkO,CAAAA,IAAAA,CAAKiuD,sBACZ,CAAA,IAAA,CAAKn8D,QAASkO,CAAAA,IAAAA,CAAKkuD,wBAC1B,IAAKp8D,CAAAA,QAAAA,CAASq8D,aAAc,CAAA,MAAM,EAAED,uBAAuB,EAAA,CACpD,IAAKp8D,CAAAA,QAAAA,CAASkO,KAAKouD,mBAC1B,EAAA,IAAA,CAAKt8D,SAASkO,IAAKouD,CAAAA,mBAAAA,GAE3B,CAEAC,sBAAAA,EAAsB,CACb,IAAA,CAAKv8D,SAAS,kBAGf,CAAA,IAAA,CAAK47D,kBAFL,CAAA,IAAA,CAAKY,kBAIb,CAEAA,eAAe,EAAA,CACX,IAAMpD,CAAWp5D,CAAAA,QAAAA,CACb,KAAKA,QAASkO,CAAAA,IAAAA,CAAKwtD,kBACnB,IAAK17D,CAAAA,QAAAA,CAASkO,IAAKwtD,CAAAA,iBAAAA,GACZtC,CAAIlrD,CAAAA,IAAAA,CAAKiuD,oBACIn8D,CAAAA,QAAAA,CAASiF,gBACtBk3D,oBAAoB,EAAA,CACpB,IAAKn8D,CAAAA,QAAAA,CAASkO,KAAKkuD,uBAC1B,CAAA,IAAA,CAAKp8D,SAASq8D,aAAc,CAAA,MAAM,EAAED,uBAAuB,EAAA,CACpD,IAAKp8D,CAAAA,QAAAA,CAASkO,KAAKouD,mBAC1B,EAAA,IAAA,CAAKt8D,QAASkO,CAAAA,IAAAA,CAAKouD,sBAE3B,CACAV,gBAAgB,EAAA,CACR,KAAK57D,QAAS47D,CAAAA,gBAAAA,CACd,KAAK57D,QAAS47D,CAAAA,gBAAAA,GACP,IAAK57D,CAAAA,QAAAA,CAAS67D,mBACrB,CAAA,IAAA,CAAK77D,SAAS67D,mBAAmB,EAAA,CAC1B,IAAK77D,CAAAA,QAAAA,CAAS87D,uBACrB,IAAK97D,CAAAA,QAAAA,CAAS87D,sBAAsB,EAAA,CAC7B,KAAK97D,QAAS+7D,CAAAA,gBAAAA,EACrB,KAAK/7D,QAAS+7D,CAAAA,gBAAAA,GAEtB,CAEA1N,gBAAAA,CAAiBz/E,CAAU,CAAA,CAClB,KAAKg/E,oBACN,GAAA,IAAA,CAAKrqB,SAASrqB,YAAa,CAAA,iBAAA,CAAmB,CAC1C,4BAA8B,CAAA,yBAAA,CACjC,CACDlZ,CAAAA,QAAAA,CAASm0D,uBAAuB,oBAAoB,CAAA,CAAE,CAAC,CAAE6B,CAAAA,YAAAA,CAAa,QAAS,YAAY,CAAA,CAEtF,IAAKh2D,CAAAA,QAAAA,CAASg8D,oBAAsBxoD,KAAa,CAAA,EAAA,IAAA,CAAKxT,QAASg8D,CAAAA,iBAAAA,GAAsB,MACrF,IAAKh8D,CAAAA,QAAAA,CAASi8D,mBAAwBzoD,GAAAA,KAAAA,CAAAA,EAAa,KAAKxT,QAASi8D,CAAAA,mBAAAA,GAAwB,MACzF,IAAKj8D,CAAAA,QAAAA,CAASq5D,gBAAkB7lD,KAAa,CAAA,EAAA,CAAC,IAAKxT,CAAAA,QAAAA,CAASq5D,eAC5D,IAAKr5D,CAAAA,QAAAA,CAASk8D,kBAAuB1oD,GAAAA,KAAAA,CAAAA,EAAa,CAAC,IAAKxT,CAAAA,QAAAA,CAASk8D,kBAElE,EAAA,IAAA,CAAK1I,uBAAyB,CAC1B,CAAA,CAAA,IAAA,CAAKxzD,SAASkO,IAAKwtD,CAAAA,iBAAAA,CACnB,KAAK17D,QAASkO,CAAAA,IAAAA,CAAKwtD,iBAAiB,EAAA,CAC7B,KAAK17D,QAASkO,CAAAA,IAAAA,CAAKiuD,oBAC1B,CAAA,IAAA,CAAKn8D,SAASkO,IAAKiuD,CAAAA,oBAAAA,EACZ,CAAA,IAAA,CAAKn8D,SAASkO,IAAKkuD,CAAAA,uBAAAA,CAC1B,KAAKp8D,QAASq8D,CAAAA,aAAAA,CAAc,MAAM,CAAED,CAAAA,uBAAAA,EAC7B,CAAA,IAAA,CAAKp8D,SAASkO,IAAKouD,CAAAA,mBAAAA,EAC1B,KAAKt8D,QAASkO,CAAAA,IAAAA,CAAKouD,qBAEvB,CAAA,IAAA,CAAK7G,kBAAkB,EAAA,GAEnB7mF,EAAM0L,MAAOqqB,CAAAA,SAAAA,GAAc,gBAC3B,IAAK6uD,CAAAA,sBAAAA,CAAyB,IAG9B,IAAKxzD,CAAAA,QAAAA,CAAS47D,gBACd,CAAA,IAAA,CAAK57D,SAAS47D,gBAAgB,EAAA,CACvB,IAAK57D,CAAAA,QAAAA,CAAS67D,oBACrB,IAAK77D,CAAAA,QAAAA,CAAS67D,mBAAmB,EAAA,CAC1B,KAAK77D,QAAS87D,CAAAA,sBAAAA,CACrB,KAAK97D,QAAS87D,CAAAA,sBAAAA,GACP,IAAK97D,CAAAA,QAAAA,CAAS+7D,gBACrB,EAAA,IAAA,CAAK/7D,SAAS+7D,gBAAgB,EAAA,CAElC,IAAKtG,CAAAA,kBAAAA,KAGjB,CAEAA,kBAAAA,EAAkB,CACdzvD,UAAAA,CAAW,IAAK,CACRhG,QAAAA,CAASC,eAAe,qBAAqB,CAAA,GAC7CD,SAASC,cAAe,CAAA,qBAAqB,CAAG4F,CAAAA,KAAAA,CAAMuH,OAAS9B,MAAOmxD,CAAAA,MAAAA,CAAOrvD,MAAS,CAAA,IAAA,EAE9F,EAAG,GAAG,EACV,CAEA4gD,kBAAAA,EAAkB,CACd,IAAKY,CAAAA,gBAAAA,CAAmB,CAAC,IAAKA,CAAAA,gBAAAA,CAC9B5uD,SAASm0D,sBAAuB,CAAA,oBAAoB,CAAE,CAAA,CAAC,EAAE6B,YAAa,CAAA,OAAA,CAAS,YAAY,EAC/F,CAEA0E,iBAAiB7yD,CAAW,CAAA,CACxB,IAAMI,CAAAA,CAAgB,KAAKsB,kBAAmB3B,CAAAA,WAAAA,CAAYC,CAAM,CAChE,CAAA,OAAII,EACOA,CAASqgC,CAAAA,QAAAA,CAEb,IACX,CAEAqoB,oBAAoBluC,CAAWhgD,CAAAA,CAAAA,CAAeg+D,CAAe,CAAA,CAAA,CACrDA,GAAW,aAAiBA,EAAAA,CAAAA,EAAW,QAAYA,EAAAA,CAAAA,EAAW,UAC9D,IAAKqzB,CAAAA,gBAAAA,CAAmB,IAE5B,IAAKwE,CAAAA,qBAAAA,CAAwB,GAC7B,IAAM/oD,CAAAA,CAASvP,QAASC,CAAAA,cAAAA,CAAe,iBAAiB,CACpDsP,CAAAA,CAAAA,EAAUA,CAAO2qD,CAAAA,aAAAA,GACjB3qD,EAAO2qD,aAAchuD,CAAAA,WAAAA,CAAY,6BAA+B,CAAA,GAAG,EACnE,IAAKiE,CAAAA,MAAAA,CAAO52B,KAAK,2EAAgF,CAAA,CAAA,CAEjG,CAAC,IAAKowB,CAAAA,UAAAA,CAAW4uD,0BAA8B,EAAA,CAAC,KAAK7C,iBACrD,CAAA,IAAA,CAAK8C,qBAAsB/1C,CAAAA,CAAAA,CAAMhgD,EAAOg+D,CAAO,CAAA,EAE/C,IAAKhe,CAAAA,IAAAA,CAAOA,EACZ,IAAKhgD,CAAAA,KAAAA,CAAQA,EACb,IAAKg+D,CAAAA,OAAAA,CAAUA,EACf,IAAKmtB,CAAAA,oBAAAA,CAAuB,CAEpC,CAAA,EAAA,CAEA4K,sBAAsB/1C,CAAWhgD,CAAAA,CAAAA,CAAeg+D,CAAe,CAAA,CAC3D,IAAMwvB,CAAS,CAAA,IAAA,CAAK7xD,qBAAsBgE,CAAAA,mBAAAA,GACpCvD,CAAW,CAAA,IAAA,CAAKT,sBAAsBU,qBAAqB,EAAA,CAGjE,GAFA,IAAKm5D,CAAAA,yBAAAA,CAA4B,CACjC,CAAA,CAAA,IAAA,CAAKrD,mBAAmBnyC,CAAK5a,CAAAA,MAAM,CAC/B,CAAA,IAAA,CAAK+tD,cAAc,kBAAkB,CAAA,CAAG,CACxC,IAAM3c,EAAoB,IAAKoU,CAAAA,IAAAA,CAAKpU,UAKpC,GAJA,IAAA,CAAKoU,KAAO5qC,CACZ,CAAA,IAAA,CAAK4qC,IAAKpU,CAAAA,SAAAA,CAAYA,EAEtB,IAAKyc,CAAAA,iBAAAA,CAAoB,CACrB,CAAA,CAAA,CAAC,KAAK1G,gBAAkB,CAAA,CACxB,IAAMz3F,CAAAA,CAAU04F,EAAOztD,QAAS,CAAA,iBAAA,CAC5BjrC,GACA,IAAKkiE,CAAAA,YAAAA,CAAazS,SAASzvD,CAAS4vD,CAAAA,IAAAA,CAAgBqjC,MAAQ,CAAA,mBAAmB,EAEvF,CACA,MACJ,CAGA,GADA,KAAK/wB,YAAa/H,CAAAA,KAAAA,EACdjvD,CAAAA,CAAAA,EAASg+D,EAAS,CAClB,IAAIC,EAAU,CACV,CAAA,IAAA,CAAKywB,yBAA2B,IAAKA,CAAAA,uBAAAA,CAAwBtlF,MAAS,CAAA,CAAA,GACtE60D,EAAU,CAEVje,CAAAA,CAAAA,CAAAA,CAAKi6C,cAAgB,CACrBj6F,GAAAA,CAAAA,CAAQggD,EAAKi6C,YAEjB,CAAA,CAAA,IAAMC,CAAoBl8B,CAAAA,CAAAA,EAAW,SAC/Bm8B,CAAiB,CAAA,IAAA,CAAKl+B,mBAAmBm+B,wBAAyB,CAAA,IAAA,CAAK3qD,SAAS,CAChFq7B,CAAAA,CAAAA,CAAuB,CACzBl3E,IAAAA,CAAMosD,EAAK5a,MACXlsC,CAAAA,IAAAA,CAAM8mD,CAAK6lB,CAAAA,QAAAA,EAAY,KAAKoyB,gBAAiBj4C,CAAAA,CAAAA,CAAK5a,MAAM,CAAA,CACxD6jC,SAAUjpE,CAAQ,CAAA,CAAA,CAClBg+D,QAAS,MAASA,CAAAA,CAAAA,CAClBR,cAAe08B,CAAWj8B,CAAAA,CAAAA,CAAU,CAAK,EAAA,GAAA,EAAOj+D,EAAQ,CACxD8oC,CAAAA,CAAAA,QAAAA,CAAU,CAAGkX,EAAAA,CAAAA,EAAMq6C,cAAgBr6C,CAAMq6C,EAAAA,aAAAA,CAAgB,gBAAgB,CAAA,CAAA,CACzEhxB,YAAa,CAAC6wB,CAAAA,EAAYl6C,EAAKpsD,IAAOosD,CAAAA,CAAAA,CAAKpsD,KAAO,IAAKkzC,CAAAA,kBAAAA,CAAmBzB,kBAAmB2a,CAAAA,CAAAA,CAAK5a,MAAM,CACxGokC,CAAAA,SAAAA,CAAW2wB,CAAWz4D,EAAAA,WAAAA,CAAcy4D,GAAWz4D,WAAc,CAAA,IAAA,CAC7D+nC,WAAa0wB,CAAAA,CAAAA,EAAWx4D,cAAgBw4D,CAAWx4D,EAAAA,aAAAA,CAAgB,KACnE+nC,eAAiBywB,CAAAA,CAAAA,EAAWv4D,WAAau4D,CAAWv4D,EAAAA,UAAAA,CAAa,IAErE,CAAA,CAAA,IAAA,CAAK4uD,0BAA0BnoB,KAAMyC,CAAAA,CAAe,EACpD,IAAMwvB,CAAAA,CAAkBt8B,GAAW,IAAKma,CAAAA,WAAAA,CAAc,CAAIla,CAAAA,CAAAA,CAC1Dje,EAAKza,QAAW,CAAA,CAAA,CAChB,KAAK+qD,sBAAuBvyB,CAAAA,yCAAAA,CAA0C/d,EAAMge,CAASs8B,CAAAA,CAAAA,CAAiBt6F,CAAK,CAAA,CAC3G,IAAMu6F,CAAY,CAAA,IAAItkB,IACtBj2B,CAAAA,CAAAA,CAAKvQ,UAAYuQ,CAAKvQ,CAAAA,SAAAA,CAAYuQ,CAAKvQ,CAAAA,SAAAA,CAAY,KAAKA,SACxD8qD,CAAAA,CAAAA,CAAUv6C,KAAOA,CACjBu6C,CAAAA,CAAAA,CAAUvqD,QAAU,IAAKA,CAAAA,OAAAA,CACzBuqD,CAAUC,CAAAA,YAAAA,CAAex6F,EACzBu6F,CAAU/2C,CAAAA,WAAAA,CAAcwa,CACxBu8B,CAAAA,CAAAA,CAAUxvB,eAAiB,IAAK6M,CAAAA,2BAAAA,CAA4B6iB,gBAAgB,EAAA,CAE5E,KAAKzjC,YAAa/H,CAAAA,KAAAA,GACd,CAAC,IAAA,CAAK2oB,4BAA4B8iB,uBAAwBH,CAAAA,CAAAA,CAAUv6C,IAAK5a,CAAAA,MAAM,GAAK,IAAK9J,CAAAA,IAAAA,CAAKkR,eAC9F,EAAA,IAAA,CAAKorC,4BAA4B+iB,kBAAmBJ,CAAAA,CAAS,CAGjE,CAAA,IAAM/c,EAA+B,IAAKvhB,CAAAA,kBAAAA,CAAmBg4B,kBACzDzW,CAAAA,CAAAA,EACAA,EAAcv+B,OAASvc,CAAAA,EAAAA,EAAW,CAC1BA,EAAAA,EAAS2F,aAAiBkyD,EAAAA,CAAAA,EAAWv6C,MAAM5a,MAAQiD,EAAAA,WAAAA,IAAiB,IAAK/M,CAAAA,IAAAA,CAAKkR,eAC9E,EAAA,IAAA,CAAKorC,4BAA4B+iB,kBAAmBJ,CAAAA,CAAS,EAErE,CAAC,CAAA,CAEL,KAAK3iB,2BAA4Bye,CAAAA,uBAAAA,CAAwBkE,CAAYjE,CAAAA,EAAAA,EAAyB,CAC1F/yD,UAAW,CAAA,IAAK,CACZ,IAAA,CAAKsyD,sBAAwB,CAC7B,CAAA,CAAA,IAAA,CAAKrJ,SAAY8J,CAAAA,EAAAA,CAAiB9J,UAC7BpwD,CAAS82D,CAAAA,qCAAAA,EACV,KAAKY,WAAY,CAAA,mBAAA,CAAqB,GAAG,CAE7C,CAAA,IAAA,CAAKlc,2BAA4BgjB,CAAAA,aAAAA,CAAc9vB,GAAiBzB,WAAW,CAAA,CAC3E,IAAMmN,EAAAA,CAAoB,KAAKoU,IAAKpU,CAAAA,SAAAA,CACpC,IAAKoU,CAAAA,IAAAA,CAAO5qC,EACZ,IAAK4qC,CAAAA,IAAAA,CAAKpU,UAAYA,EAEtB,CAAA,IAAA,CAAKmb,cACL,CAAA,IAAA,CAAKsB,iBAAoB,CAAA,CAAA,CAAA,CACzB,KAAKtD,iBAAkB9W,CAAAA,cAAAA,GAC3B,CAAA,CAAG,GAAG,EACV,CAAC,EACL,CACJ,CAEA4S,UAAU,EAAA,CACN,IAAMrwD,CAAY,CAAA,IAAA,CAAK00D,OAAO1hC,IAAKjzB,CAAAA,EAAAA,CAAwB,CACvDkS,KAAAA,CAAO,QACPhS,IAAM,CAAA,CAAEznC,KAAM,SAAS,CAAA,CACvBinG,WAAY,6BACf,CAAA,CAAA,CACKC,CAAW1/D,CAAAA,CAAAA,CAAU2/D,kBAC3BD,CAAS39D,CAAAA,WAAAA,CAAc,KAAKA,WAE5B/B,CAAAA,CAAAA,CAAUu8C,aAAchxD,CAAAA,SAAAA,CAAU,IAAK,EAAG,EAC9C,CAEOukE,kBAAkB,EAAA,CACrB,GAAI,CAAC,IAAA,CAAKC,oBAAsB,CAAA,CAC5B,IAAM/uD,CAAW,CAAA,IAAA,CAAKT,sBAAsBU,qBAAqB,EAAA,CACjE,KAAKykC,QAASrqB,CAAAA,YAAAA,CAAa,iBAAmB,CAAA,CAC1C,6BAA8B,wBACjC,CAAA,CAAA,CAEiB,IAAKq5C,CAAAA,MAAAA,CAAO1hC,KAAK3uB,EAAqB,CAAA,CACpD4N,KAAO,CAAA,OAAA,CACPhS,KAAM,CAAEznC,IAAAA,CAAM,QAAQ,CACzB,CAAA,CAAA,CAES+jF,aAAchxD,CAAAA,SAAAA,CAAW/1B,CAAU,EAAA,CACzC,GAAIA,CAAW,GAAA,UAAA,CAAY,CAGvB,GADA,KAAK0iG,0BAA2B,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CACvC,CAACl3D,CAAS82D,CAAAA,qCAAAA,CACV,KAAKY,WAAY,CAAA,mBAAA,CAAqB,GAAG,CACtC,CAAA,KAAA,CACH,IAAKA,CAAAA,WAAAA,CAAY,iBAAkB,CAAC,CAAA,CACpC,IAAMhnD,CAASvP,CAAAA,QAAAA,CAASC,eAAe,iBAAiB,CAAA,CACpDsP,CAAUA,EAAAA,CAAAA,CAAO2qD,gBACjB3qD,CAAO2qD,CAAAA,aAAAA,CAAchuD,YAAY,6BAA+B,CAAA,GAAG,EACnE,IAAKiE,CAAAA,MAAAA,CAAO52B,IAAK,CAAA,0EAA+E,GAExG,CACI,IAAA,CAAKowB,UAAW4uD,CAAAA,0BAAAA,EAChB,KAAKE,YAAe,CAAA,CAAA,CAAA,CACpB,IAAK7K,CAAAA,oBAAAA,CAAuB,IAE5B,IAAK8K,CAAAA,sBAAAA,GAEb,CACJ,CAAC,EACL,CACJ,CAEAA,sBAAsB,EAAA,CAClB,IAAM+E,CAAqB,CAAA,8CAAA,CAAiD,IAAKC,CAAAA,iBAAAA,CAAoB,WAAa,IAAKC,CAAAA,kBAAAA,CACjHC,CAAwBtyD,CAAAA,MAAAA,CAAOulB,KAAK,IAAKo+B,CAAAA,SAAAA,CAAW,aAAcwO,CAAa,CAAA,CAEhFG,EAAiB3yE,MAAQ,EAAA,IAAA,CAAKsrE,WAAY,CAAA,kBAAA,CAAoB,GAAG,CAEtE,CAAA,IAAA,CAAKh4D,KAAM,CAAA,CAAA,CAAI,EACf,IAAMs/D,CAAAA,CAAgChxD,WAAY,CAAA,IAAK,CAC/C+wD,CAAiB3yE,CAAAA,MAAAA,GACjB,KAAK84B,MAAOt3B,CAAAA,MAAAA,CAAO,mBAAmB,CACtC,CAAA,IAAA,CAAKs3B,MAAOt3B,CAAAA,MAAAA,CAAO,kBAAkB,CACrC,CAAA,IAAA,CAAKotE,iBACL,CAAA,IAAA,CAAKtD,YAAY,gBAAkB,CAAA,CAAC,CACpC,CAAA,IAAA,CAAKxyC,OAAOt3B,MAAO,CAAA,gBAAgB,EACnCwgB,aAAc4wD,CAAAA,CAA6B,GAEnD,CAAG,CAAA,IAAA,CAAKl0D,UAAW6wD,CAAAA,cAAc,EACrC,CAEAhrE,WAAAA,EAAW,CACH,IAAA,CAAK2lE,WACL,IAAKA,CAAAA,SAAAA,CAAU5rE,WAAW,EAAA,CAE9B,KAAKA,WAAY3K,CAAAA,IAAAA,CAAK,EAAI,CAC1B,CAAA,IAAA,CAAK2K,YAAYiB,QAAQ,GAC7B,CACA0rE,gCAAAA,EAAgC,CAC5B,GAAIl2D,QAAAA,CAASq8D,aAAc,CAAA,yDAAyD,EAAG,CACnF,IAAMyB,CACF99D,CAAAA,QAAAA,CAASq8D,cAAc,yDAAyD,CAAA,EAAK,IAAI0B,WACvFC,CAAAA,CAAAA,CAA2Bh+D,SAASq8D,aAAc,CAAA,iBAAiB,CAAK,EAAA,IAAI0B,YAClFC,CAAYn4D,CAAAA,KAAAA,CAAMo4D,GAAMH,CAAAA,CAAAA,CAAsBI,aAAe,KACjE,CACJ,CAEQ9F,uBAAAA,EAAuB,CAC3B,IAAM+F,CAAAA,CAAU,IAAI/3D,IAChBg4D,CAAAA,CAAAA,CAAWD,EAAQ7oG,QAAQ,EAAA,CAC/B8oG,OAAAA,CAAAA,CAAWA,EAASjxC,SAAU,CAAA,CAAA,CAAGixC,EAAS3yD,OAAQ,CAAA,MAAM,CAAC,CAAI,CAAA,GAAA,CAAM0yD,CAAQE,CAAAA,eAAAA,GACpED,CACX,CAEArI,2BAA2ByD,CAAuB8E,CAAAA,CAAAA,CAAa,CACvD9E,CAAgB,EAAA,CAAC,IAAKvB,CAAAA,yBAAAA,GAElB,KAAK/D,eAAmB,EAAA,IAAA,CAAKA,eAAgBgG,CAAAA,aAAAA,EAC7C,KAAKhG,eAAgBgG,CAAAA,aAAAA,CAAchuD,WAAY,CAAA,CAAEqyD,oBAAqBD,CAAI,CAAA,CAAI,KAAK1L,sBAAuB12C,CAAAA,KAAK,EAE/G,IAAK9Q,CAAAA,qBAAAA,EAAuBZ,iBAAiB,EAAA,EAAIM,aAAiB,EAAA,QAAA,CAC9D,IAAKopD,CAAAA,eAAAA,CAAkB5oD,OAAekzD,uBAA0BF,CAAAA,CAAAA,CAC9DhzD,MAAekzD,CAAAA,uBAAAA,CAA0B,GAE9ClzD,MAAekzD,CAAAA,uBAAAA,CAA0BF,GAGtD,CArjCSnM,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAyBtxD,IAAAG,GAAA,CAAA,CAAAH,GAAA65C,CAAAA,EAAA,EAAA75C,GAAAgjB,CAAAA,IAAA,CAAAhjB,CAAAA,GAAAA,CAAAwmC,IAAA,CAAAxmC,CAAAA,GAAAA,CAsFtB49D,IAAQ,CAAA,CAAA59D,IAAA0F,EAAA,CAAA,CAAA1F,IAAA23C,EAAA,CAAA,CAAA33C,IAAA8mB,IAAA,CAAA,CAAA9mB,GAAA69D,CAAAA,IAAA,EAAA79D,GAAA89D,CAAAA,GAAA,EAAA99D,GAAA4V,CAAAA,EAAA,EAAA5V,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAAmmC,IAAA,CAAAnmC,CAAAA,GAAAA,CAAA+9D,EAAA,CAAA/9D,CAAAA,GAAAA,CAAAi1B,EAAA,CAAAj1B,CAAAA,GAAAA,CAAAgnB,IAAA,CAAA,CAAAhnB,IAAA84C,IAAA,CAAA,CAAA94C,GAAA8B,CAAAA,EAAA,EAAA9B,GAAAyI,CAAAA,EAAA,CAAAzI,CAAAA,GAAAA,CAAA0nB,EAAA,CAAA1nB,CAAAA,GAAAA,CAAAI,GAAA,CAAAJ,CAAAA,GAAAA,CAAAg+D,IAAA,CAAAh+D,CAAAA,GAAAA,CAAAqK,EAAA,CAAA,CAAArK,IAAAma,EAAA,CAAA,CAAAna,GAAAyiC,CAAAA,IAAA,EAAAziC,GAAAqiC,CAAAA,EAAA,CAAAriC,CAAAA,GAAAA,CAAAQ,GAAA,CAAAR,CAAAA,GAAAA,CAAAmiC,IAAA,CAAAniC,CAAAA,GAAAA,CAAA49B,EAAA,CAAA59B,CAAAA,GAAAA,CAAA67C,IAAA,CAAA,CAAA77C,IAAAqa,IAAA,CAAA,CAAAra,GAAA2V,CAAAA,IAAA,EAAA3V,GAAAK,CAAAA,GAAA,CAAAL,CAAAA,GAAAA,CAAAgqC,IAAA,CAAAhqC,CAAAA,GAAAA,CAAAyJ,IAAA,CAAAzJ,CAAAA,GAAAA,CAAA6V,EAAA,CAAA7V,CAAAA,GAAAA,CAAAuG,EAAA,CAAA,CAAA,CAtFX+qD,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAyB3kE,UAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAAsxE,YAAA,CAAA,SAAAnvE,EAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CAAzBY,EAAAA,EAAAA,CAAA,UAAA,SAAA8nC,CAAAA,CAAA,CAAA,OAAApzD,EAAA8yF,gBAAA1/B,CAAAA,CAAA,CAAwB,CAAA,CAAA,GAAAgF,EAAA,CAAA,CAAC,QAAA,CAAA,UAAA,CAAA,OAAzBp4D,CAAAA,CAAA+zF,eAAe,CAAA,CAAA,GAAA37B,EAAA,CAAA,CAAU,kBAAA,CAAA,SAAAhF,EAAA,CAAA,OAAzBpzD,CAAAg0F,CAAAA,uBAAAA,CAAA5gC,CAAA,CAA+B,CAAA,CAAA,CAAA0mC,CAAAA,CAAAA,EAAA,EAAN,wBAAA,CAAA,SAAA1mC,EAAA,CAAA,OAAzBpzD,EAAAi0F,6BAAA7gC,CAAAA,CAAA,CAAqC,CAAA,CAAA,GAAA0mC,EAAA,CAAA,CAAZ,qBAAA,CAAA,SAAA1mC,EAAA,CAAA,OAAzBpzD,CAAAk0F,CAAAA,0BAAAA,CAAA9gC,CAAA,CAAkC,CAAA,CAAA,GAAA0mC,EAAA,CAAA,CAAT,qBAAA,SAAA1mC,CAAAA,CAAA,CAAA,OAAzBpzD,EAAAq0F,yBAAAjhC,CAAAA,CAAA,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA0mC,EAAA,EDvE9CjxE,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,iBAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,6BAAAA,CAAAA,uCAAAA,CAAAA,yCAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,KAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,kCAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,UAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAAA,iBAAAA,CAAAA,MAAAA,CAAAA,uBAAAA,CAAAA,MAAAA,CAAAA,oBAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,SAAAA,CAAAA,aAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,wCAAAA,CAAAA,OAAAA,CAAAA,iDAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,2CAAAA,CAAAA,OAAAA,CAAAA,4CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,wCAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,gCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,QAAAA,CAAAA,cAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,2CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,2BAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,kBAAA,CAAA,CAAA,EACAmC,EAAA,CAAA,CAAA,CAAA8uE,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAqF,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAK3B,CAAAC,CAAAA,EAAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAuJ9DlxE,CAAAA,EAAAA,EA7JsB+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,GAAAC,EAAA,CAAA,OAAA,CAAA,mBAAA,CAAA,CACoBD,IAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAA/rB,EAAAywF,iBAAA,EAAA,CAAAzwF,EAAA+pF,gBAAA,CAAA,CAKLj+D,IAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAywF,iBAAA,CAsDC3kE,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAA/rB,CAAAA,CAAA2pF,gBAAA,EAAA,CAAA3pF,EAAAupF,YAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCF9B2Q,IACAthC,EACAC,CAAAA,EAAAA,CACAF,GACAwhC,EACA7lC,CAAAA,EAAAA,CACA8lC,EACAC,CAAAA,EAAAA,CACAt9D,IACAk8B,EAA0B,CAAA,CAAA3sC,cAAA,CAAA,CAAA,EAG5B,IAAO4gE,CAAAA,CAAPoN,CAAOpN,CAAAA,OAAAA,CAAyB,IC5DtC,CAAA,IAAaqN,MAAa,IAAA,CAApB,IAAOA,CAAP,CAAA,MAAOA,CAAa,CAiBtBz8F,YACY04C,CACArd,CAAAA,CAAAA,CACA+R,CAAc,CAAA,CAFd,KAAAsL,GAAAA,CAAAA,CAAAA,CACA,IAAArd,CAAAA,qBAAAA,CAAAA,EACA,IAAA+R,CAAAA,MAAAA,CAAAA,EAnBK,IAAAsvD,CAAAA,cAAAA,CAAiB93E,GAAwB6rB,KAAS,CAAA,CAAA,CAC1D,IAAAksD,CAAAA,aAAAA,CAAgB,KAAKD,cAAeE,CAAAA,UAAAA,EAG7C,CAAA,IAAA,CAAAC,oBAAsB,IAAIt4D,IAAAA,CAAqB,IAAI,CAAA,CACnD,KAAAu4D,oBAAwC,CAAA,IAAA,CAAKD,oBAAoBp4D,YAAY,EAAA,CAC7E,KAAAs4D,iBAAsC,CAAA,IAAI57D,GAClC,CAAA,IAAA,CAAA67D,2BAA6B,IAAIz4D,IAAAA,CAAyB,CAAK,CAAA,CAAA,CACvE,KAAA04D,2BAAmD,CAAA,IAAA,CAAKD,0BAA2Bv4D,CAAAA,YAAAA,GACnF,IAAAy4D,CAAAA,kBAAAA,CAAqB,IAAI34D,IAAqB,CAAA,IAAI,EAClD,IAAA44D,CAAAA,qBAAAA,CAAyC,IAAKD,CAAAA,kBAAAA,CAAmBz4D,cACjE,CAAA,IAAA,CAAA24D,oBAAsB,IAAI74D,IAAAA,CAAqB,IAAI,CACnD,CAAA,IAAA,CAAA84D,sBAA0C,CAAA,IAAA,CAAKD,oBAAoB34D,YAAY,EAAA,CAC/E,KAAA64D,uBAA0B,CAAA,IAAI/4D,KAAqB,IAAI,CAAA,CACvD,IAAAg5D,CAAAA,0BAAAA,CAA8C,KAAKD,uBAAwB74D,CAAAA,YAAAA,GAMxE,CAEH+4D,SAASxsG,CAAU,CAAA,CACf,IAAKosG,CAAAA,mBAAAA,CAAoBvhF,KAAK7qB,CAAK,EACvC,CAEAysG,SAAUC,CAAAA,CAAAA,CAAoBh+F,EAAe1O,CAAc,CAAA,CACvD,IAAKksG,CAAAA,kBAAAA,CAAmBrhF,KAAK,CACzB8hF,eAAAA,CAAiBD,CACjBE,CAAAA,SAAAA,CAAWl+F,EACXm+F,OAAS7sG,CAAAA,CAAAA,CACZ,EACL,CAEA8sG,eAAa,CACT,IAAA,CAAKZ,mBAAmBrhF,IAAK,CAAA,CAAEiiF,cAAe,CAAI,CAAA,CAAE,EACxD,CAEAC,YAAU,CACN,IAAM9kD,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,IAAKR,CAAAA,GAAAA,CAAIlpB,IAAIypB,CAAe+kD,CAAAA,OAAAA,CAAQ,YAAgB,EAAA,CAAI,CAAEhiD,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAA,CAAE31B,UAC9E+2B,CAAY,EAAA,CACT,KAAKs/C,cAAe52F,CAAAA,GAAAA,CAAIs3C,CAAQ,CAChC,CAAA,IAAA,CAAKy/C,mBAAoBhhF,CAAAA,IAAAA,CAAKuhC,CAAQ,EAC1C,CAAA,CACC11C,GAAS,CACN,IAAA,CAAK0lC,OAAO1lC,KAAM,CAAA,4CAAA,CAA+CA,CAAK,EAC1E,CAAC,EAET,CAEAu2F,aAAa,EAAA,CACT,OAAO,IAAKtB,CAAAA,aAChB,CAEAuB,qBAAAA,CAAsBC,EAAe,CACjC,IAAA,CAAKb,wBAAwBzhF,IAAKsiF,CAAAA,CAAU,EAChD,CAEAC,mBAAAA,CAAoBC,CAAiC,CAAA,CACjD,GAAIA,CAAsBA,EAAAA,CAAAA,CAAmBv1F,MAAQ,CAAA,CACjD,IAAMmwC,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAClD,IAAKR,CAAAA,GAAAA,CAAIkD,KAAK3C,CAAe+kD,CAAAA,OAAAA,CAAQ,mBAAuBK,CAAoB,CAAA,CAAEriD,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAE31B,CAAAA,SAAAA,CACtG+2B,CAAqC,EAAA,CAC9B,KAAK2/C,iBAAqB,EAAA,IAAA,CAAKA,iBAAkB5xE,CAAAA,IAAAA,CAAO,GACxD,IAAK4xE,CAAAA,iBAAAA,CAAkBpuC,OAE3BvR,CAAAA,CAAAA,CAAS4gD,QAAQr/C,OAASpuD,CAAAA,CAAAA,EAAQ,CAC9B,IAAA,CAAKwsG,kBAAkBj3F,GAAIvV,CAAAA,CAAAA,CAAK0nG,KAAM1nG,CAAK+tG,CAAAA,QAAQ,EACvD,CAAC,CAAA,CACD,IAAKC,CAAAA,cAAAA,CAAiBnhD,EAASmhD,cAC/B,CAAA,IAAA,CAAKvB,2BAA2BnhF,IAAK,CAAA,CAAA,CAAI,EAC7C,CACCnU,CAAAA,CAAAA,EAAS,CACN,IAAA,CAAK0lC,OAAO1lC,KAAM,CAAA,kDAAA,CAAqDA,CAAK,EAChF,CAAC,EAET,CACJ,CAEA82F,iBAAAA,CAAkBvG,EAAY,CAC1B,OAAO,KAAK8E,iBAAkBvtE,CAAAA,GAAAA,CAAIyoE,CAAI,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAnFSwE,CAAaztE,EAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,IAAA2kB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzmD,GAAA,CAAA,CAAA,KAAA,CAAbuvG,EAAa1vG,OAAb0vG,CAAAA,CAAAA,CAAan3D,UAAAC,UAFV,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOk3D,CAAPgC,CAAAA,CAAAA,CAAAA,OAAOhC,CAAa,CAAA,IAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAApnC,EAAA,EAAA,CCPVtqC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAsB,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAKdyC,EAAA,CAAA,6BAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,GAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,GAA+BqtC,CAAAyjC,CAAAA,yBAAAA,CAAAppC,CAAA,CAAiC,CAAA,CAAA,CAAA,CAAC,0CAAA,SAAAA,CAAAA,CAAA,CAAA5nC,EAAAC,CAAAA,CAAA,EAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EACtBqtC,CAAAA,CAAAA,CAAA0jC,oCAAArpC,CAAAA,CAAA,CAA4C,CAAA,CAAA,CAL3FrqC,CAAAA,EAAAA,KACI+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,cAAA,CAAAgtC,EAAA9a,QAAA,CAAA,CAAyB,mBAAA8a,CAAAA,CAAAA,CAAA9a,SAAA2yC,iBAAA,CAAA,CACuB,WAAA73B,CAAAA,CAAAA,CAAA9a,SAAAT,IAAAvQ,CAAAA,SAAA,ECWxE,CAAA,CAAA,IAAayvD,IAA0B,IAAA,CAAjC,IAAOA,CAAP,CAAA,MAAOA,CAA0B,CACnC5+F,WAAAA,CACY6+F,CACAnoC,CAAAA,CAAAA,CACAtuB,EACwB+X,CACxB6E,CAAAA,CAAAA,CACDlqB,CACC+7B,CAAAA,CAAAA,CACAx7B,EAA4C,CAP5C,IAAA,CAAAwjE,aAAAA,CAAAA,CAAAA,CACA,KAAAnoC,YAAAA,CAAAA,CAAAA,CACA,KAAAtuB,iBAAAA,CAAAA,CAAAA,CACwB,KAAA+X,QAAAA,CAAAA,CAAAA,CACxB,IAAA6E,CAAAA,iBAAAA,CAAAA,EACD,IAAAlqB,CAAAA,SAAAA,CAAAA,CACC,CAAA,IAAA,CAAA+7B,yBAAAA,CACA,CAAA,IAAA,CAAAx7B,qBAAAA,CAAAA,CAAAA,CAER,KAAKw7B,wBAAyB9R,CAAAA,oBAAAA,CAAqB,KAAKC,iBAAiB,CAAA,CACzE,KAAKlqB,SAAUgkE,CAAAA,YAAAA,CAAe,CAClC,EAAA,CAEArjE,UAAQ,CACJ,IAAA,CAAKojE,aAAcf,CAAAA,aAAAA,GACvB,CACAa,oCAAAA,CAAqC5jE,CAAS,CAAA,CAC1C,IAAMmyD,CAAS,CAAA,IAAA,CAAK7xD,sBAAsBgE,mBAAmB,EAAA,CACvDvD,EAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CAC3DvnC,EAAU04F,CAAOztD,CAAAA,QAAAA,CAAS,iBAChC,CAAA,IAAA,CAAK3E,UAAUU,KAAK,EAAA,CACpB,IAAKk7B,CAAAA,YAAAA,CAAa/H,OAClB1rB,CAAAA,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAKyzB,aAAazS,QAASzvD,CAAAA,CAAAA,CAAS4vD,IAAgBqjC,CAAAA,MAAAA,CAAQ,iBAAiB,CAC7El/C,CAAAA,MAAAA,CAAOm/C,QAAS,CAAA,CAAA,CAAG,CAAC,CACpBzkD,CAAAA,UAAAA,CAAW,IAAK,CACZ,KAAKyzB,YAAa/H,CAAAA,KAAAA,IAEdpmB,MAAOC,CAAAA,QAAAA,CAASC,KAAKurB,QAAS,CAAA,gBAAgB,CAC9CzrB,EAAAA,MAAAA,CAAOC,SAASC,IAAKurB,CAAAA,QAAAA,CAAS,gBAAgB,CAC9CzrB,EAAAA,MAAAA,CAAOC,SAASC,IAAKurB,CAAAA,QAAAA,CAAS,qBAAqB,CAAA,GAEnD,KAAK5rB,iBAAkByI,CAAAA,IAAAA,CAAK9V,EAAKm7C,SAAS,CAAA,CAE9C,KAAKlxB,iBAAmBuyB,EAAAA,SAAAA,GAC5B,CAAA,CAAGz7C,EAASijE,sBAAsB,EACtC,CAAGjjE,CAAAA,CAAAA,CAASkjE,gBAAgB,CAC5B,CAAA,IAAA,CAAKh6C,iBAAkBi6C,CAAAA,qBAAAA,CAAsBpjF,KAAK,CAC9CqjF,kBAAAA,CAAoB,GACpB1qG,OAAS04F,CAAAA,CAAAA,CAAOztD,SAAS,iBAC5B,CAAA,EACL,CACAi/D,yBAAAA,CAA0B3jE,EAAS,CAC/B,IAAMm7C,CACF,CAAA,IAAId,gBAAgB7sC,MAAOC,CAAAA,QAAAA,CAASO,MAAM,CAAA,CAAEvZ,IAAI,WAAW,CAAA,EAAK,IAAI4lD,eAAgB7sC,CAAAA,MAAAA,CAAOC,SAASO,MAAM,CAAA,CAAEvZ,GAAI,CAAA,WAAW,EAC3H0mD,CACA,EAAA,IAAA,CAAKp7C,SAAUU,CAAAA,KAAAA,GACf,IAAK4M,CAAAA,iBAAAA,CAAkByI,IAAKqlC,CAAAA,CAAS,GAErC3tC,MAAOC,CAAAA,QAAAA,CAASC,KAAKurB,QAAS,CAAA,gBAAgB,GAC9CzrB,MAAOC,CAAAA,QAAAA,CAASC,IAAKurB,CAAAA,QAAAA,CAAS,gBAAgB,CAC9CzrB,EAAAA,MAAAA,CAAOC,SAASC,IAAKurB,CAAAA,QAAAA,CAAS,qBAAqB,CAEnD,EAAA,IAAA,CAAK0C,YAAa/H,CAAAA,KAAAA,GAClB,IAAK7zB,CAAAA,SAAAA,CAAUU,OACf,CAAA,IAAA,CAAK4M,kBAAkByI,IAAK9V,CAAAA,CAAAA,CAAKm7C,SAAS,CAAA,EACvC,KAAKp7C,SAAUU,CAAAA,KAAAA,GAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA3DSojE,GAA0B9gE,GAAA2+D,CAAAA,IAAA,CAAA3+D,CAAAA,GAAAA,CAAA8mB,IAAA,CAAA9mB,CAAAA,GAAAA,CAAA0M,EAAA,CAAA1M,CAAAA,GAAAA,CAKvBE,EAAe,CAAAF,CAAAA,GAAAA,CAAAqhE,IAAA,CAAA,CAAArhE,IAAAC,EAAA,CAAA,CAAAD,GAAAgnB,CAAAA,IAAA,EAAAhnB,GAAAQ,CAAAA,GAAA,CAAA,CAAA,uBALlBsgE,CAA0Bn0E,CAAAA,SAAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAAE,CAAAA,UAAAA,CAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,KAAA,CAAA,CAAA,CAAAC,KAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,EAAA,CAAA,IAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,yCAAA,CAAA,eAAA,mBAAA,CAAA,WAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,CDlBvC7B,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAyC,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACD,EAAA,KAAA,CAAA,CAAA,EACmB,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAE3CoC,GAAA,CAAAiyE,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAQJn0E,EAAA,EAAA,IAEF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAVY+C,GAAA,CAAA,CAAA,CAAAC,GAAA,MAAA/rB,CAAAA,CAAAA,CAAAi+C,QAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCYR2a,GAAMs0B,EAAyB,CAAA,CAAA5gE,aAAA,CAAA,CAAA,CAAA,CAEvC,CAAA,IAAOowE,CAAPS,CAAAA,CAAAA,CAAAA,OAAOT,CAA0B,CAAA,GAAA,KCP1BU,EAAwB,CAAA,CAAA,IAAA,CAA/B,IAAOA,CAAAA,CAAP,MAAOA,CAAwB,CAKjCt/F,WAAoBq7B,CAAAA,CAAAA,CAA4C,CAA5C,IAAAA,CAAAA,qBAAAA,CAAAA,EAA+C,CAEnEI,QAAAA,EAAQ,CACJ,IAAA,CAAKJ,sBAAsBkkE,4BAA6Bl5E,CAAAA,SAAAA,CAAWm5E,GAAwB,CACnFA,CAAAA,GACA,KAAK1yG,MAAS,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,GACrC,IAAKvyC,CAAAA,MAAAA,CAAO2yC,QAAS,CAAA,IAAA,CAAKlxC,GAAG,CAC7B,GAAA,IAAA,CAAKyC,KAAQ,CAAA,IAAA,CAAKlE,OAAO2yC,QAAS,CAAA,IAAA,CAAKlxC,GAAG,CAGtD,CAAA,EAAA,CAAC,EACL,CAhBS+wG,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAwBxhE,GAAAQ,CAAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA67B,EAAA,CAAA,CAAA,IAAA,CAAxBmlC,CAAwB70E,CAAAA,SAAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA8T,OAAA,CAAAhwC,GAAAA,CAAA,KAAA,CAAAo8B,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,MAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAE,CAAAA,QAAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,GAHtBiT,EAAA,CAAA,CAAA,OAAAC,EAAA59B,CAAAA,CAAAA,CAAAlR,KAAA,EAGT,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAOsuG,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAwB,CAAA,IAAA,IAAA,EAAA,CAAA,KAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjqC,EAAA,EAAA,CCXrCtqC,GAAA,CAAA,CAAA,KAAA,EAAuB,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAC4E,EAAA,KAAA,CAAA,CAAA,EACrE,CAAA,CAAA,GAAA,CAAA,CAAA,CACFyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,EAAAykC,MAAA,EAAQ,CAAA,CAAA,CAAA,CAC7B10E,GAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CACJC,IAAI,EAAA,CAERF,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAA+ByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,EAAAykC,MAAA,EAAQ,CAAA,CAAA,EAC5C10E,EAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EACJC,EAAA,EAAA,CACAD,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CAVuBgZ,IAAAC,CAAAA,EAAAA,CAAA,UAAA68D,EAAA,CAAA,CAAA,CAAAnwB,EAAA,CAAA,CAAA,CAMX3sC,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,QAAA,CAAAgtC,EAAAvzD,KAAA,CAAA,CACWsmB,IAAAC,CAAAA,EAAAA,CAAA,KAAAgtC,CAAAA,CAAAA,CAAA5E,KAAA,ECMjC,CAAA,CAAA,IAAaspC,EAAkB,CAAA,CAAA,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAS3B3/F,WACY4qC,CAAAA,CAAAA,CACAuC,EACA9R,CAA4C,CAAA,CAF5C,KAAAuP,iBAAAA,CAAAA,CAAAA,CACA,IAAAuC,CAAAA,UAAAA,CAAAA,EACA,IAAA9R,CAAAA,qBAAAA,CAAAA,CATF,CAAA,IAAA,CAAAukE,WAAgC,IAAIh0E,KAU3C,CAEH6P,QAAAA,EAAQ,CACJ,IAAMG,CAAAA,CAAS,KAAKP,qBAAsBQ,CAAAA,mBAAAA,GAC1C,IAAKgkE,CAAAA,SAAAA,CAAY,IAAKC,CAAAA,YAAAA,GAAiB,IAAQ,CAAC,IAAA,CAAKl1D,iBAAkB5C,CAAAA,QAAAA,CAEvE,KAAK+3D,YAAe,CAAA,CAAA,CAAA,CAChB,IAAKH,CAAAA,UAAAA,EAAc,KAAKA,UAAWI,CAAAA,SAAAA,EAAa,KAAKJ,UAAWI,CAAAA,SAAAA,CAAUl3F,OAAS,CACnF,GAAA,IAAA,CAAKi3F,YAAe,CAAA,CAAA,CAAA,CAAA,CAExB,KAAKE,SAAY,CAAA,IAAA,CAAK9yD,WAAW3E,QAASO,CAAAA,MAAAA,CAAOvZ,IAAI,WAAW,CAAA,CAAA,CAC5D,CAAC,IAAA,CAAKywE,WAAa,IAAKA,CAAAA,SAAAA,GAAc,MACtC,IAAKA,CAAAA,SAAAA,CAAYrkE,EAAOkV,MAEhC,EAAA,CAEA4uD,MAAM,EAAA,CACF,KAAKE,UAAW3zE,CAAAA,IAAAA,GAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAhCS0zE,GAAkB7hE,GAAAmK,CAAAA,IAAA,CAAAnK,CAAAA,GAAAA,CAAA0M,EAAA,CAAA1M,CAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAA,uBAAlBqhE,CAAkBl1E,CAAAA,SAAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA8T,MAAA,CAAA,CAAAuhE,aAAA,cAAAzpC,CAAAA,KAAAA,CAAA,OAAA,CAAA,CAAA+D,QAAA,CAAAwlC,UAAAA,CAAA,YAAA,CAAAj1E,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,MAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,aAAA,CAAA,OAAA,CAAA,EAAA,iBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,OAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CDd/BO,EAAAA,EAAAA,CAAA,EAAA+yE,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAMjyE,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,OAAA/rB,CAAA29F,CAAAA,SAAA,ECYQ/kC,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAMD,GAASykC,EAAwB,CAAA,CAAA9wE,aAAA,CAAA,CAAA,CAAA,CAE/C,CAAA,IAAOmxE,EAAPQ,CAAOR,CAAAA,OAAAA,CAAkB,ICT/B,CAAA,IAAaS,EAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAAA,CAAP,MAAOA,CAAgB,CAYzBpgG,WAAA,EAAA,CACI,IAAKqgG,CAAAA,eAAAA,CAAkB,IACvB,IAAKC,CAAAA,gBAAAA,CAAmB,IACxB,IAAKC,CAAAA,mBAAAA,CAAsB,IAC3B,IAAKC,CAAAA,YAAAA,CAAe,UACpB,CAAA,IAAA,CAAKC,oBAAsB,CAC3B,CAAA,IAAA,CAAKC,oCAAsC,CAC3C,CAAA,IAAA,CAAKC,iBAAmB,kBACxB,CAAA,IAAA,CAAKC,aAAgB,CAAA,eAAA,CACrB,KAAKC,aAAgB,CAAA,eAAA,CACrB,KAAKC,MAAS,CAAA,QAAA,CACd,KAAKC,cAAiB,CAAA,iBAC1B,CAEAC,OAAAA,CAAQC,EAAa,CACjB,OACI,CAACA,CAAAA,EACDA,IAAU,IAAKZ,CAAAA,eAAAA,EACfY,CAAU,GAAA,IAAA,CAAKX,kBACfW,CAAU,GAAA,IAAA,CAAKV,qBACfU,CAAU,GAAA,IAAA,CAAKJ,eACfI,CAAU,GAAA,IAAA,CAAKH,MAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAnCSV,EAAgB,CAAhBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgBrzG,OAAhBqzG,CAAAA,CAAAA,CAAgB96D,UAAAC,UAFb,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAO66D,CAAPc,CAAAA,CAAAA,CAAAA,OAAOd,CAAgB,CAAA,IAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA/qC,EAAA,EAAA,CCL7BtqC,GAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAwEyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,EAAAkmC,YAAa,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAChGn2E,CAAAA,EAAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EACJC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CAF6CosF,GAAA,MAAAnmC,CAAAA,CAAAA,CAAAomC,QAAA,CAAA,EAAA,EACpBrzE,EAAA,EAAA,CAAAC,GAAA,KAAA,CAAA,mBAAA,wCAEzBlD,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,EAAmFyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,GAASqtC,CAAAkmC,CAAAA,YAAAA,CAAa,EAAI,CAAC,CAAA,CAAA,CAAA,CAC1Gn2E,GAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,CACJC,KAF6Cm2E,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,MAAAnmC,CAAAA,CAAAA,CAAAomC,SAAA,aAAA,CAAA,CACpBrzE,IAAAC,CAAAA,EAAAA,CAAA,MAAA,kBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAonC,EAAA,EAAA,CAEzBtqC,EAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAuEyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA+8D,CAAA,CAAA,CAAA,IAAAxvB,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,EAAAkmC,YAAa,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAC/Fn2E,CAAAA,EAAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EACJC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CAF4CosF,EAAA,CAAA,MAAA,CAAAnmC,EAAAomC,QAAA,CAAA,EAAA,EACnBrzE,EAAA,EAAA,CAAAC,GAAA,KAAA,CAAA,eAAA,EAEzBlD,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAuDyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAyoC,CAAAA,CAAA,EAAA,IAAA8E,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,GAASqtC,CAAAkmC,CAAAA,YAAAA,CAAa,CAAK,CAAA,CAAC,CAAA,CAAA,CAAA,CAC/En2E,EAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CACJC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CAF4BosF,GAAA,MAAAnmC,CAAAA,CAAAA,CAAAomC,SAAA,EAAA,CAAA,CACHrzE,IAAAC,CAAAA,EAAAA,CAAA,KAAA,CAAA,eAAA,ICMzB,IAAaqzE,EAAAA,CAAAA,CAA0B,IAAA,CAAjC,IAAOA,CAAP,CAAA,MAAOA,CAA0B,CAOnCthG,YACYglD,CACA3pB,CAAAA,CAAAA,CACAif,EACAinD,CAAkC,CAAA,CAHlC,KAAAv8C,iBAAAA,CAAAA,CAAAA,CACA,IAAA3pB,CAAAA,qBAAAA,CAAAA,EACA,IAAAif,CAAAA,aAAAA,CAAAA,EACA,IAAAinD,CAAAA,gBAAAA,CAAAA,EACT,CACH9lE,QAAAA,EAAQ,CACJ,IAAM+lE,EAAmB,IAAKnmE,CAAAA,qBAAAA,CAAsBomE,yBACpD,CAAA,IAAA,CAAKC,WAAaF,CAAiBG,CAAAA,wBAAAA,CACnC,IAAKC,CAAAA,aAAAA,CAAgB,KAAKC,UAAe,GAAA,UAC7C,CACAV,YAAAA,CAAankG,EAAa,CACtB,IAAM84F,CAAY,CAAA,IAAIngB,KACtBmgB,CAAUp2C,CAAAA,IAAAA,CAAO,KAAKA,IACtBo2C,CAAAA,CAAAA,CAAUpmD,QAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,OAAO,EAAA,CAC9ComD,EAAU3mD,SAAY,CAAA,IAAA,CAAKuQ,IAAKvQ,CAAAA,SAAAA,CAChC2mD,EAAUoE,YAAe,CAAA,CAAA,CACzBpE,CAAU75B,CAAAA,YAAAA,CAAe,KAAKvc,IAAKuc,CAAAA,YAAAA,CACnC65B,EAAUjoG,IAAO,CAAA,IAAA,CAAK0zG,iBAAiBd,mBAAoBqB,CAAAA,cAAAA,EAC3DhM,CAAAA,CAAAA,CAAUlgB,sBAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,YAAe74E,CAAAA,CAAAA,CACzB84F,EAAUhgB,aAAgB,CAAA,CAAA,CAAA,CAC1BggB,CAAUiM,CAAAA,gBAAAA,CAAmB,GAC7BjM,CAAU5yC,CAAAA,WAAAA,CAAc,KAAKxD,IAAKwD,CAAAA,WAAAA,CAClC4yC,EAAUiE,aAAgB,CAAA,eAAA,CAC1BjE,CAAU5f,CAAAA,SAAAA,CAAY3tC,OAAOC,QAASC,CAAAA,IAAAA,CACtC,IAAMuc,CAAyB,CAAA,IAAA,CAAKA,kBAAkBC,oBAAoB,EAAA,CAC1E6wC,CAAUrrB,CAAAA,cAAAA,CAAiBzlB,EAAkBm1C,gBAAgB,EAAA,CAC7Dn1C,EAAkBg9C,UAAWlM,CAAAA,CAAS,EAC1C,CApCSwL,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0BxjE,GAAAgnB,CAAAA,IAAA,EAAAhnB,GAAAQ,CAAAA,GAAA,CAAAR,CAAAA,GAAAA,CAAAyI,EAAA,CAAAzI,CAAAA,GAAAA,CAAAsiE,EAAA,CAAA,CAAA,CAA1BkB,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA0B72E,UAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA8T,MAAA,CAAA,CAAAmhB,KAAA,MAAAmiD,CAAAA,UAAAA,CAAA,YAAAZ,CAAAA,KAAAA,CAAA,QAAAI,QAAA,CAAA,UAAA,CAAA12E,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CDhBvCO,EAAAA,EAAAA,CAAA,EAAA80E,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAsG,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAGU,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAGX,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAN5Fn0E,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,OAAA,CAAA/rB,CAAAA,CAAA0/F,eAAA1/F,CAAAw/F,CAAAA,UAAA,EAGA1zE,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAA0/F,CAAAA,aAAAA,EAAA1/F,CAAAw/F,CAAAA,UAAA,EAGA1zE,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAA0/F,aAAA1/F,EAAAA,CAAAA,CAAAw/F,UAAA,CAGA1zE,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAAw/F,UAAA,CCKK5mC,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAMwkC,EAAwB,CAAA,CAAA9wE,cAAA,CAAA,CAAA,CAEtC,CAAA,IAAO8yE,EAAPe,CAAOf,CAAAA,OAAAA,CAA0B,ICPvBv2E,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAyH,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAC/GyC,GAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,EAAAtF,eAAAsF,CAAAA,CAAAA,CAAA2D,KAAAtJ,CAAAA,CAAA,CAA8B,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,KADDgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,SAAAgtC,CAAAA,CAAAA,CAAAqnC,gBAAArnC,CAAA2D,CAAAA,KAAA,EAAA3D,CAAAsvB,CAAAA,cAAAA,CAAAtvB,EAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAItDz/D,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAyD,CAAA,CAAA,IAAA,EACjD8U,EAAA,CAAA,CAAA,CAA6B5U,CAAAA,EAAAA,IAA7B+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,EAAA/1B,QAAAwa,CAAAA,IAAAA,CAAAA,IAAApsD,CAAAA,IAAA,6BAGZ03B,EAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,kBAEIiD,EAAA,CAAA,MAAA,CAAAgtC,CAAA2D,CAAAA,KAAA,EAAc,UAAA,CAAA,cAAA,EACa,OAAA,CAAA,CAAA,EAChB,YAAA3D,CAAAA,CAAAA,CAAA2D,KAAA2G,CAAAA,QAAA,8BAEfx6C,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,EAAyF8U,EAAA,CAAA,CAAA,CAA0C5U,CAAAA,EAAAA,oBAAnFgD,EAAA,CAAA,MAAA,CAAAgtC,EAAA2D,KAAA2jC,CAAAA,qBAAAA,CAAA7oD,IAAA6a,EAAA,CAAA,CAAyCvmC,EAAA,EAAA,CAAA8R,GAAAm7B,CAAA2D,CAAAA,KAAAA,CAAA2jC,qBAAAC,CAAAA,QAAA,8BAEzFx3E,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,uCAA+EiD,EAAA,CAAA,WAAA,CAAA4Q,GAAA,CAAA,CAAA,CAAA,CAAAo8B,EAAA2D,KAAApoD,CAAAA,IAAA,CAAAy2E,CAAAA,EAAA,8BAE/EliE,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAiG,CAAA,CAAA,GAAA,CAC1F8U,CAAAA,EAAAA,CAAA,CAAA,CAAsB5U,CAAAA,EAAAA,IAAtB+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAA2D,CAAAA,KAAAA,CAAA6jC,UAAA,EAEP13E,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA6F,CAAA,CAAA,CAAA,IAAA,CAAA,CAErFC,GAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,IADyB+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,KAAA,CAAA,cAAA,2BAG7BlD,EAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,sBAAA,EAAA,CAAA,CACJC,IADyB+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,GAAAC,EAAA,CAAA,KAAA,CAAA,eAAA,CAAA,EAAA,CCbjC,IAAay0E,EAAmB,CAAA,CAAA,IAAA,CAA1B,IAAOA,EAAP,MAAOA,CAAmB,CAQ5B1iG,WAAAA,CACYg7B,EACAs0D,CACAziD,CAAAA,CAAAA,CACAM,EACAw1D,CACAtnE,CAAAA,CAAAA,CACA2pB,EACA6R,CACwB3xB,CAAAA,CAAAA,CACzBpK,CAA4C,CAAA,CAT3C,KAAAE,IAAAA,CAAAA,CAAAA,CACA,IAAAs0D,CAAAA,eAAAA,CAAAA,EACA,IAAAziD,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAM,WAAAA,CACA,CAAA,IAAA,CAAAw1D,kBAAAA,CACA,CAAA,IAAA,CAAAtnE,sBAAAA,CACA,CAAA,IAAA,CAAA2pB,iBAAAA,CAAAA,CAAAA,CACA,KAAA6R,wBAAAA,CAAAA,CAAAA,CACwB,IAAA3xB,CAAAA,QAAAA,CAAAA,EACzB,IAAApK,CAAAA,SAAAA,CAAAA,CAZX,CAAA,IAAA,CAAAyvD,eAAyB,kBACzB,CAAA,IAAA,CAAAC,iBAA2B,gBAavB,CAAA,IAAA,CAAK3zB,yBAAyB9R,oBAAqB,CAAA,IAAA,CAAKC,iBAAiB,EAC7E,CACAvpB,QAAQ,EAAA,CACA,KAAKyJ,QACL,EAAA,IAAA,CAAK09D,iBAET,CAAA,IAAM91G,CAAS,CAAA,IAAA,CAAKuuC,sBAAsBgE,mBAAmB,EAAA,CAAA,CAEzDvyC,EAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,QAC9C1lG,CAAO69D,CAAAA,mBAAAA,CAAoB6nC,cAAmB,GAAA,MAAA,EAC9C1lG,EAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAE9C,IAAA,IAAA,CAAKjI,eAAiB,mBACtB,CAAA,IAAA,CAAKC,gBAAmB,CAAA,qBAAA,EAEhC,CAEAoY,eAAe,EAAA,CACX,IAAMhnE,CAAS,CAAA,IAAA,CAAKP,sBAAsBQ,mBAAmB,EAAA,CACvD/uC,CAAS,CAAA,IAAA,CAAKuuC,sBAAsBgE,mBAAmB,EAAA,CACvDmiE,CAAmB,CAAA,IAAA,CAAKnmE,sBAAsBomE,uBAAuB,EAAA,CACrE3lE,CAAW,CAAA,IAAA,CAAKT,sBAAsBU,qBAAqB,EAAA,CAC3D8mE,EAAqB,CACvBnjD,IAAAA,CAAM,KAAKxa,QAASwa,CAAAA,IAAAA,CAAKA,IAAK5a,CAAAA,MAAAA,CAC9BA,OAAQ,IAAKI,CAAAA,QAAAA,CAASwa,IAAKA,CAAAA,IAAAA,CAAK5a,OAChCxxC,IAAM,CAAA,IAAA,CAAK4xC,QAASwa,CAAAA,IAAAA,CAAKA,KAAKpsD,IAC9BkyE,CAAAA,OAAAA,CAAS,KAAKtgC,QAASwa,CAAAA,IAAAA,CAAKA,KAAK8lB,OACjCD,CAAAA,QAAAA,CAAU,IAAKrgC,CAAAA,QAAAA,CAASwa,KAAKA,IAAK6lB,CAAAA,QAAAA,CAClC7/B,KAAM,IAAKR,CAAAA,QAAAA,CAASwa,KAAKA,IAAKza,CAAAA,QAAAA,CAAAA,CAKlC,GAHA,IAAA,CAAKlK,KAAO,IAAKu0D,CAAAA,eAAAA,CAAgBnqB,kBAAkB09B,CAAe,CAAA,IAAA,CAAKh2D,cAAc6C,OAAO,CAAA,CAC5F,IAAKgyD,CAAAA,UAAAA,CAAaF,EAAiBG,wBACnC,CAAA,IAAA,CAAK9rC,iBAAoB/5B,CAAAA,CAAAA,CAAS+5B,kBAC9B,CAAC,IAAA,CAAK96B,IAAM,CAAA,CACZ,KAAKoS,UAAW0D,CAAAA,IAAAA,CAAKjV,GAAQkV,MAAM,CAAA,CACnC,MACJ,CACA,IAAA,CAAK8tB,KAAQ,CAAA,IAAA,CAAK7jC,KAClB,IAAK6jC,CAAAA,KAAAA,CAAM3C,YAAe,CAAA,IAAA,CAAK/2B,SAASwa,IAAKuc,CAAAA,YAAAA,CAC7C,IAAK2C,CAAAA,KAAAA,CAAMzvB,UAAY,IAAKjK,CAAAA,QAAAA,CAASwa,KAAKA,IAAKvQ,CAAAA,SAAAA,CAC/C,KAAKyvB,KAAM1b,CAAAA,WAAAA,CAAc,IAAKhe,CAAAA,QAAAA,CAASwa,KAAKwD,WAC5C,CAAA,IAAA,CAAK0b,KAAQ,CAAA,IAAA,CAAKA,OAAS,IAAKA,CAAAA,KAAAA,CAAM,CAAC,CAAA,CAAI,KAAKA,KAAM,CAAA,CAAC,EAAI,IAAKA,CAAAA,KAAAA,CAChE,KAAKA,KAAM6jC,CAAAA,UAAAA,CAAa31G,CAAO2yC,CAAAA,QAAAA,CAAS,WACxC,IAAKm/B,CAAAA,KAAAA,CAAMxlB,YAAc,IAAKupD,CAAAA,iBAAAA,CAAkBljD,sBAAsB,IAAKmf,CAAAA,KAAK,EACpF,CAEAkkC,eAAepjD,CAAS,CAAA,CACpB,OAAQA,CAAKmiD,CAAAA,UAAAA,EACT,IAAK,SAAA,CACD,OAAO,CAAA,CACX,QACI,OAAO,CACf,CACJ,CAEAlsC,gBAAgBjW,CAAW4V,CAAAA,CAAAA,CAAW,CAC9B,IAAA,CAAKt6B,KAAKkR,eACVopB,GAAAA,CAAAA,CAAO9yB,0BACP,CAAA,IAAA,CAAKmgE,kBAAkBxgD,mBAAoBzC,CAAAA,CAAI,CAEvD,EAAA,CACA4iD,gBAAgB1jC,CAAU,CAAA,CACtB,OAAO,IAAA,CAAK+jC,kBAAkBljD,qBAAsBmf,CAAAA,CAAK,CAC7D,CACAmkC,uBAAqB,CACjB,IAAA,CAAKjoE,UAAUU,KAAK,GACxB,yCAtFSknE,CAAmB5kE,EAAAA,GAAAA,CAAAG,GAAA,CAAA,CAAAH,IAAAwmC,IAAA,CAAA,CAAAxmC,GAAA2V,CAAAA,IAAA,EAAA3V,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAAgjB,IAAA,CAAAhjB,CAAAA,GAAAA,CAAAQ,GAAA,CAAAR,CAAAA,GAAAA,CAAAqhE,IAAA,CAAArhE,CAAAA,GAAAA,CAAAgnB,IAAA,CAAA,CAAAhnB,IAiBhBE,EAAe,CAAA,CAAAF,IAAAC,EAAA,CAAA,CAAA,CAjBlB2kE,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAmBj4E,SAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,EAAAE,UAAA,CAAA,CAAA,CAAA,CAAAmR,SAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,GAAAC,IAAA,CAAA,EAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,IAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,CAAA,CAAA,aAAA,OAAA,CAAA,cAAA,EAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,OAAA,oBAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,QAAA,EAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,6BAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,UAAA,CAAA,QAAA,YAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,cAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,KAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,4BAAA,EAAA,CAAA,CAAA,CAAA,OAAA,UAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,EAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,CDvBhC7B,GAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAiD,CAAA,CAAA,eAAA,CAAA,CAAA,CACqByC,CAAAA,EAAAA,CAAA,YAAA,CAAA,UAAA,CAAA,OAActrB,CAAAA,CAAA6gG,qBAAA,EAAuB,CAAA,CAAE93E,CAAAA,EAAAA,EACzGD,CAAAA,EAAAA,CAAA,EAAA,kBAAA,CAAA,CACAD,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAqE,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAC1B,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACU,EAAA,GAAA,CAAA,CAAA,CAErCC,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EACJC,EAAA,EAAA,CACAkC,GAAA,CAAA61E,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAGJ/3E,EAAA,EAAA,CACAkC,GAAA,CAAA81E,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAGJh4E,IACAkC,CAAAA,EAAAA,CAAA,GAAA+1E,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAKkC,CAAA,EAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CACuD,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAE6B,CAAA,EAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAErB,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAGJ,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAQjGt4E,CAAAA,EAAAA,IArCe+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,QAAA,kBAAA,CAAA,CAA4B,cAAA,CAAA,CAAA,CAAA,EAEQD,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,SAAA,CAAA/rB,CAAAA,CAAA08D,KAAA,CAIZ5wC,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,KAAA/rB,CAAAA,CAAAA,CAAA08D,MAAAl5B,IAAA7H,CAAAA,GAAAA,CAAA02B,EAAA,CAAA,CAAsB,MAAAryD,CAAA08D,CAAAA,KAAAA,CAAAl5B,IAAAE,CAAAA,GAAA,EAAuB,OAAA1jC,CAAAA,CAAAA,CAAA08D,MAAAl5B,IAAAqH,CAAAA,KAAA,EAA2B,QAAA7qC,CAAAA,CAAAA,CAAA08D,KAAAl5B,CAAAA,IAAAA,CAAA2E,MAAA,CAE7Frc,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAA2zD,iBAAA,CAAA,CAI+B7nC,EAAA,EAAA,CAAAC,GAAA,MAAA/rB,CAAAA,CAAAA,CAAAgjC,QAAA,CAKxClX,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA08D,CAAAA,KAAA,EAKD5wC,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAA08D,KAAA18D,EAAAA,CAAAA,CAAA08D,KAAA2jC,CAAAA,qBAAA,EAEEv0E,EAAA,EAAA,CAAAC,GAAA,MAAA/rB,CAAAA,CAAAA,CAAA08D,OAAA18D,CAAA08D,CAAAA,KAAAA,CAAApoD,IAAAtU,EAAAA,CAAAA,CAAA08D,MAAApoD,IAAA,GAAA,EAAA,CAEAwX,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA08D,CAAAA,KAAAA,EAAA18D,EAAA08D,KAAA6jC,CAAAA,UAAAA,EAAAvgG,EAAA08D,KAAA6jC,CAAAA,UAAAA,GAAA,EAAA,CAGAz0E,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAA08D,CAAAA,KAAAA,EAAA18D,CAAA08D,CAAAA,KAAAA,CAAA4kC,aAAAthG,CAAA08D,CAAAA,KAAAA,CAAA4kC,WAAA16F,CAAAA,MAAAA,CAAA,CAAA,CAKGklB,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAw/F,CAAAA,UAAA,CCdH/B,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAoBvD,IAAuBthC,EAAMC,CAAAA,EAAAA,CAASumC,GAA4BhC,EAA0BmE,CAAAA,GAAe,EAAAj1E,aAAA,CAAA,CAAA,CAAA,CAAA,CAEvI,IAAOk0E,CAAPgB,CAAAA,CAAAA,CAAAA,OAAOhB,CAAmB,CAAA,GAAA,CCfhC,IAAaiB,EAA2B,CAAA,CAAA,IAAA,CAAlC,IAAOA,EAAP,MAAOA,CAA2B,CACpC3jG,WAAAA,CACYq7B,EACSuoE,CAA8B,CAAA,CADvC,IAAAvoE,CAAAA,qBAAAA,CAAAA,EACS,IAAAuoE,CAAAA,cAAAA,CAAAA,EAClB,CACH,IAAIC,UAAQ,CACR,IAAMC,CAA2B,CAAA,IAAA,CAAKzoE,sBAAsB0oE,wBAAwB,EAAA,CAChFC,CAA0B,CAAA,CAAA,CAAA,CACxBC,EAA8B,IAAKL,CAAAA,cAAAA,CAAenS,QAASC,CAAAA,aAAAA,CAAcliE,IAAI,iBAAiB,CAAA,CACpGw0E,OAAAA,CACIC,CAAAA,CAAAA,EACAA,EACKzmE,IAAI,EAAA,CACJtvB,KAAM,CAAA,GAAG,EACTo+C,IAAM43C,CAAAA,CAAAA,EAAwBA,CAAqBn8D,EAAAA,WAAAA,KAAkB,aAAa,CAAA,CACpF,CAACi8D,CAAAA,EAAsBF,EAAyBltD,SAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAhBS+sD,GAA2B30E,GAAAsP,CAAAA,GAAA,EAAAtP,GAAA8sE,CAAAA,IAAA,CAAA,CAAA,0BAA3B6H,CAA2B52G,CAAAA,OAAAA,CAA3B42G,EAA2Br+D,SAAAC,CAAAA,UAAAA,CAFxB,MAAM,CAAA,CAAA,CAEhB,IAAOo+D,CAAAA,CAAPQ,SAAOR,CAA2B,CAAA,kCC2B3BS,EAA2B,CAAA,CAAA,IAAA,CAAlC,IAAOA,CAAAA,CAAP,MAAOA,CAA2B,CAnBxCpkG,WAAA,EAAA,CAqBI,IAAAqkG,CAAAA,kBAAAA,CAAwD,KAEvC,IAAAC,CAAAA,UAAAA,CAAav6E,GAAOiU,CAAAA,EAAe,EACnC,IAAAlD,CAAAA,SAAAA,CAAY/Q,IAAOgU,EAAyC,CAAA,CACpE,KAAA8O,aAAgB9iB,CAAAA,GAAAA,CAAO0pB,IAAa,CAAA,CAE7C,KAAA8wD,eAAkBn5E,CAAAA,EAAAA,CAAiC,IAAKk5E,CAAAA,UAAAA,EAAYC,iBAAmB,EAAE,CACzF,CAAA,IAAA,CAAAC,kBAAoBp5E,EAAiC,CAAA,IAAA,CAAKk5E,YAAYE,iBAAqB,EAAA,EAAE,CACrF,CAAA,IAAA,CAAAC,qBAAwB,CAAA,IAAA,CAAKH,YAAYG,qBAEjD,CAAA,IAAA,CAAAC,YAAe34E,CAAAA,EAAAA,CAAS,IAAM,IAAK44E,CAAAA,aAAAA,CAAc,IAAKH,CAAAA,iBAAAA,EAAmB,CAAC,CAAA,CAC1E,KAAAI,eAAkBhgF,CAAAA,EAAAA,CAAe,EAAE,CAEnC,CAAA,IAAA,CAAAigF,cAAiB94E,CAAAA,EAAAA,CAAS,IAAK,CAC3B,IAAM+4E,EAAwB,CAA2B,wBAAA,EAAA,IAAA,CAAKP,iBAAkB,CAAA,MAAA,EAAa,EAAE,CAAA,yBAAA,EAA4B,KAAKA,eAAe,EAAA,CAAG,QAAa,EAAE,CAAA,CAAA,CAC3JQ,EAAwB,CAAe,YAAA,EAAA,IAAA,CAAKl4D,aAAcm4D,CAAAA,kBAAkB,IAAI,IAAKn4D,CAAAA,aAAAA,CAAco4D,UAAU,CAAA,IAAA,EAAO,KAAKp4D,aAAckxB,CAAAA,MAAM,CAAe,YAAA,EAAA,IAAA,CAAKlxB,cAAcmxB,SAAS,CAAA,QAAA,EAAW,KAAKnxB,aAAcqxB,CAAAA,MAAM,GAC5NgnC,CAAiB,CAAA,CAAA,aAAA,EAAgB,IAAKr4D,CAAAA,aAAAA,CAAcgxB,cAAc,aAAa,CAAC,CAAoB,iBAAA,EAAA,IAAA,CAAKhxB,cAAcgxB,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAA,CAE5J,OAAO,CAAGinC,EAAAA,CAAqB,IAAIC,CAAqB,CAAA,CAAA,EAAIG,CAAc,CAC9E,CAAA,CAAC,EAEK74E,CAAAA,eAAAA,EAAe,QAAAshC,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACb,IAAK82C,CAAAA,qBAAAA,EACD,KAAKA,qBAAuBU,EAAAA,kBAAAA,EAAoBC,UAChD,GAAA,MAAM,KAAKX,qBAAsBU,CAAAA,kBAAAA,CAAmBC,WAAW,CAC3DC,WAAAA,CAAa,KAAKb,iBAAiB,EAAA,CACnCc,WAAa,CAAA,IAAA,CAAKjB,oBAAoBj4E,aACtCm5E,CAAAA,gBAAAA,CAAkB,GACrB,CAGb,EAAA,CAAA,CAAA,CAIAC,mBAAiB,CACT,IAAA,CAAK1qE,SACL,EAAA,IAAA,CAAKA,UAAUU,KAAK,GAE5B,CAEQmpE,aAAcH,CAAAA,CAAAA,CAA4C,CAC9D,IAAME,CAAAA,CAA0C,EAAA,CAC1Ce,EAA6BjB,CAAkB,CAAA,sCAAA,EAA6C,EAClG,CAAA,GAAIiB,EAA4B,CAC5B,IAAMC,CAAoBD,CAAAA,CAAAA,CAA2Bv3F,MAAM,GAAG,CAAA,CAC1Dw3F,GAAqBA,CAAkB58F,CAAAA,MAAAA,CAAS,GAChD48F,CACK3vG,CAAAA,MAAAA,CAAQzD,CAAOA,EAAAA,CAAAA,CAAAA,EAAK,IAAIkrC,IAAI,EAAE,CAC9BmhB,CAAAA,OAAAA,CAASgnD,GAAa,CACnB,GAAM,CAACp3G,CAAAA,CAAKyC,CAAK,CAAI20G,CAAAA,CAAAA,CAAUz3F,MAAM,GAAG,CAAA,CACxCw2F,EAAan2G,CAAG,CAAA,CAAIyC,CAAS,EAAA,GACjC,CAAC,EAEb,CAEA,OAAO0zG,CACX,yCA3DSN,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAjqC,EAAA,CAAA,CAAA,IAAA,CAA3BiqC,CAA2B35E,CAAAA,SAAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAAAm7E,CAAAA,SAAAA,CAAA,SAAAh5E,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,GAAAA,CAAAA,CAAA,uKAA3BY,EAAA,CAAA,kCAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,OAAApzD,CAAAsjG,CAAAA,iBAAAA,CAAAlwC,CAAA,CAAyB,EAAA,CAAA0mC,CAAAA,CAAAA,EAAA,EAAE,kCAAA,CAAA,SAAA1mC,EAAA,CAAA,OAA3BpzD,CAAAsjG,CAAAA,iBAAAA,CAAAlwC,CAAA,CAAyB,CAAA,CAAzBroC,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA/qB,EAAA2iG,cAAA,EAAgB,CAAhB33E,CAAAA,EAAAA,CAAA,UAAAhrB,CAAA2qC,CAAAA,aAAAA,CAAAg5D,UAA0B,CAAO,CAAA,CAAA,IAAI,EAAV,KAAA3jG,CAAAA,CAAAA,CAAA2qC,aAAA6sB,CAAAA,KAAAA,CAAL,GAAO,IAAI,CAAA,CAAN,QAAAx3D,CAAAA,CAAAA,CAAA2qC,cAAAi5D,QAAF,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAT,QAAA5jG,CAAA2qC,CAAAA,aAAAA,CAAAk5D,QAAH,CAAO,CAAA,CAAA,IAAI,EAAR,OAAA7jG,CAAAA,CAAAA,CAAA2qC,aAAA6C,CAAAA,OAAAA,CAAH,GAAO,IAAI,CAAA,CAAR,QAAAxtC,CAAAA,CAAAA,CAAA2qC,cAAAgzB,QAAF,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAT,eAAA39D,CAAA2qC,CAAAA,aAAAA,CAAA4xB,cAAG,CAAO,CAAA,CAAA,IAAI,EAAd,OAAAv8D,CAAAA,CAAAA,CAAA2qC,aAAAm5D,CAAAA,OAAAA,CAAH,GAAO,IAAI,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,8CAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ECnChDj7E,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAk7E,EAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,YAAA,EAAA,CAAA,WAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,eAAA,EAAA,CAAA,MAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,eAAA,EAAA,CAAA,MAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,aAAA,CAAA,UAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CDmCM,IAAO9B,CAAAA,CAAP+B,SAAO/B,CAA2B,CAAA,IE1BxC,IAAagC,EAAAA,CAAAA,CAAuC,IAAA,CAA9C,IAAOA,CAAP,CAAA,MAAOA,CAAuC,CADpDpmG,WAAAA,EAAA,CAEqB,IAAA,CAAAwvF,OAASzlE,GAAO4xE,CAAAA,IAAS,CACzB,CAAA,IAAA,CAAA0K,YAAct8E,GAAO2xE,CAAAA,IAAQ,EAEtC,IAAA5gE,CAAAA,SAAAA,CAA8D,KAC9D,IAAAwrE,CAAAA,uBAAAA,CAAyD,KAEjEC,CAAAA,qBAAAA,CAAsBt3G,EAA+B,CACjDu3G,OAAAA,CAAQC,GAAI,CAAA,2CAAA,CAA6C,0BAA2Bx3G,CAAO,CAAA,CACvF,IAAKy3G,CAAAA,eAAAA,CAAgB,KAAKJ,uBAAyBr3G,CAAAA,CAAO,IAC1D,IAAK03G,CAAAA,oBAAAA,GACL,IAAKL,CAAAA,uBAAAA,CAA0Br3G,CAC/B,CAAA,IAAA,CAAK6rC,UAAY,IAAK00D,CAAAA,MAAAA,CAAO1hC,IAAKs2C,CAAAA,EAAAA,CAA6B,CAC3Dr3D,KAAO,CAAA,MAAA,CACP+xD,YAAc,CAAA,CAAA,CAAA,CACd/jE,KAAM,CACFwpE,eAAAA,CAAiBt1G,EAAQs1G,eACzBC,CAAAA,iBAAAA,CAAmBv1G,EAAQ23G,cAC3BnC,CAAAA,qBAAAA,CAAuBx1G,CAAQw1G,CAAAA,qBAAAA,CAAAA,CAEnClK,WAAY,8BACf,CAAA,CAAA,CAAA,CAEL,IAAKsM,CAAAA,6BAAAA,CAA8B,CAAC,iCAAmC,CAAA,wBAAwB,CAAG,CAAA,IAAA,CAAK/rE,UAAW,IAAKurE,CAAAA,WAAW,EACtI,CAEAM,oBAAAA,EAAoB,CACZ,IAAK7rE,CAAAA,SAAAA,GACL,IAAKA,CAAAA,SAAAA,CAAUU,OACf,CAAA,IAAA,CAAK8qE,uBAA0B,CAAA,IAAA,EAEvC,CAEQO,6BACJC,CAAAA,CAAAA,CACAhsE,CACAurE,CAAAA,CAAAA,CAAqB,CAEjBvrE,CACAA,GAAAA,CAAAA,CAAUisE,aAAc1gF,CAAAA,SAAAA,CAAU,IAAK,CAC/BggF,CAAAA,EACAS,CAAanoD,CAAAA,OAAAA,CAASqoD,GAAO,CACzBX,CAAAA,CAAYnkE,eAAgBL,CAAAA,SAAAA,CAAUv/B,IAAI0kG,CAAG,EACjD,CAAC,EAET,CAAC,CACDlsE,CAAAA,CAAAA,CAAUu8C,aAAchxD,CAAAA,SAAAA,CAAU,IAAK,CAC/BggF,CAAAA,EACAS,CAAanoD,CAAAA,OAAAA,CAASqoD,GAAO,CACzBX,CAAAA,CAAYnkE,eAAgBL,CAAAA,SAAAA,CAAUnY,OAAOs9E,CAAG,EACpD,CAAC,EAGT,CAAC,CAET,EAAA,CAEQN,gBAAgBO,CAAyCC,CAAAA,CAAAA,CAAuC,CACpG,OAAI,CAACD,CAAY,EAAA,CAACC,EACP,CAGPD,CAAAA,CAAAA,CAAAA,CAAAA,EAAYC,IACRD,CAAaC,GAAAA,CAAAA,CACN,EACHD,CAAU1C,EAAAA,eAAAA,EAAiB/jD,MAAW0mD,GAAAA,CAAAA,EAAU3C,iBAAiB/jD,MACjEymD,EAAAA,CAAAA,EAAU1C,iBAAiBzqG,MAAWotG,GAAAA,CAAAA,EAAU3C,iBAAiBzqG,MAItE,CAAA,CAAA,CAAA,CACX,CAvESssG,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAuC,0BAAvCA,CAAuCr5G,CAAAA,OAAAA,CAAvCq5G,CAAuC9gE,CAAAA,SAAAA,CAAAC,WAD1B,MAAM,CAAA,CAC1B,CAAA,IAAO6gE,EAAPe,CAAOf,CAAAA,OAAAA,CAAuC,ICgBpD,CAAA,IAAagB,IAA6B,IAAA,CAApC,IAAOA,CAAAA,CAAP,MAAOA,CAA6B,CAWtCpnG,WACYk7B,CAAAA,CAAAA,CACAof,EACA+sD,CACSC,CAAAA,CAAAA,CACAjsE,CAA4C,CAAA,CAJrD,KAAAH,SAAAA,CAAAA,CAAAA,CACA,KAAAof,aAAAA,CAAAA,CAAAA,CACA,KAAA+sD,aAAAA,CAAAA,CAAAA,CACS,IAAAC,CAAAA,WAAAA,CAAAA,EACA,IAAAjsE,CAAAA,qBAAAA,CAAAA,CATb,CAAA,IAAA,CAAAksE,mBAA8B,CAC9B,CAAA,CAAA,IAAA,CAAAC,oBAAgC,CAAA,CAAA,CAAA,CAExC,KAAAC,oBAAgC,CAAA,CAAA,CAAA,CAiLf,KAAAC,wBAA4BC,CAAAA,CAAAA,EAAoC,CACzE,IAAKC,CAAAA,iBAAAA,CAAkBhxD,SAAa,EAAA,IAAA,CAAKgxD,kBAAkBC,uBAEvDF,EAAAA,CAAAA,EACAA,EAAa5sE,IACb4sE,EAAAA,CAAAA,CAAa5sE,KAAKyC,IAClBmqE,EAAAA,CAAAA,CAAa5sE,IAAKyC,CAAAA,IAAAA,KAAW,IAAKoqE,CAAAA,iBAAAA,CAAkBE,qBAAqBtqE,IAAI,EAAA,GAE7E,KAAKiqE,oBAAuB,CAAA,CAAA,CAAA,CAC5B,IAAKM,CAAAA,sBAAAA,EAAwBC,cAGzC,EAAA,CAAA,CArLI,IAAKJ,CAAAA,iBAAAA,CAAoB,KAAKvsE,qBAAsB0oE,CAAAA,wBAAAA,EACpD,CAAA,IAAA,CAAKkE,mBACL17E,CAAAA,gBAAAA,CACI,sCACA,IAAK,CACD,KAAK07E,iBAAiB,GAC1B,CACA,CAAA,CACIC,KAAM,CACT,CAAA,CAAA,EAET,CACAC,oBAAAA,CAAqB/8E,EAA4B,CAC7C,IAAA,CAAK28E,sBAAwBI,EAAAA,oBAAAA,CAAqB/8E,CAAK,EAC3D,CAIA,IAAI+5E,kBAAkB,EAAA,CAClB,OAAO,IAAK4C,CAAAA,sBAAAA,EAAwB5C,kBACxC,CAEA,IAAIiD,cAAc,EAAA,CACd,OAAO,IAAA,CAAKL,wBAAwBK,cAAkB,EAAA,EAC1D,CAEAC,KAAAA,EAAK,CACD,IAAKN,CAAAA,sBAAAA,CAAwBM,QACjC,CAEAC,WAAWl9E,CAA4B,CAAA,CACnC,IAAKq8E,CAAAA,oBAAAA,CAAuB,GACxB,IAAKM,CAAAA,sBAAAA,CACL,KAAKA,sBAAuBO,CAAAA,UAAAA,CAAW,CACnCC,OAAUn9E,CAAAA,CAAAA,EAASA,CAAMm9E,CAAAA,OAAAA,EAAa,KAAKjB,WAAe,EAAA,IAAA,CAAKA,YAAY9qE,QAAa,EAAA,cAAA,CACxF+hC,UAAWnzC,CAASA,EAAAA,CAAAA,CAAMmzC,SAC1BiqC,CAAAA,aAAAA,CAAep9E,GAASA,CAAOo9E,EAAAA,aAAAA,CAC/BC,YAAcr9E,CAAAA,CAAAA,EAASA,EAAMq9E,YAChC,CAAA,CAAA,EAED,IAAKlB,CAAAA,kBAAAA,CAAqB,GAC1B,IAAKmB,CAAAA,oBAAAA,CAAuBt9E,GAEpC,CAEA48E,YAAAA,EAAY,CACJ,IAAKD,CAAAA,sBAAAA,CACL,IAAKA,CAAAA,sBAAAA,CAAuBC,cAE5B,CAAA,IAAA,CAAKR,oBAAuB,CAAA,CAAA,EAEpC,CAEA,IAAImB,aAAAA,CAAcC,CAAoD,CAAA,CAClE,KAAKC,cAAiBD,CAAAA,CAAAA,CAClB,KAAKb,sBACL,GAAA,IAAA,CAAKA,uBAAuBY,aAAgB,CAAA,IAAA,CAAKE,cAEzD,EAAA,CAEA,IAAIC,eAAgB93G,CAAAA,CAAAA,CAAsB,CACtC,IAAA,CAAK+3G,iBAAmB/3G,CACpB,CAAA,IAAA,CAAK+2G,sBACL,GAAA,IAAA,CAAKA,uBAAuBe,eAAkB93G,CAAAA,CAAAA,EAEtD,CAEA,IAAI2qB,OAAAA,CAAQ3qB,EAAc,CACtB,IAAA,CAAKg4G,QAAWh4G,CAAAA,CAAAA,CACZ,KAAK+2G,sBACL,GAAA,IAAA,CAAKA,uBAAuBpsF,OAAU3qB,CAAAA,CAAAA,EAE9C,CAEA,IAAIi4G,QAAAA,CAASj4G,CAA0B,CAAA,CACnC,KAAKk4G,SAAYl4G,CAAAA,CAAAA,CACb,KAAK+2G,sBACL,GAAA,IAAA,CAAKA,uBAAuBkB,QAAWj4G,CAAAA,CAAAA,EAE/C,CAEAm4G,cAAAA,EAAc,CACV,IAAKjuE,CAAAA,SAAAA,CAAU6B,YAAaqsE,CAAAA,QAAAA,CAAW,IAAK,CAExC,IAAA,CAAKpB,YAAY,GACrB,EACA,IAAK9sE,CAAAA,SAAAA,CAAU6B,aAAarQ,mBAAoB,CAAA,SAAA,CAAW,KAAKg7E,wBAAwB,EAC5F,CAEA2B,uBAAAA,EAAuB,CACnB,IAAKzB,CAAAA,iBAAAA,CAAoB,IAAKvsE,CAAAA,qBAAAA,CAAsB0oE,0BAChD,CAAA,IAAA,CAAK6D,iBAAkBhxD,CAAAA,SAAAA,EAAa,KAAKgxD,iBAAkBC,CAAAA,uBAAAA,EAC3D,KAAK3sE,SAAU6B,CAAAA,YAAAA,CAAaxQ,iBAAiB,SAAW,CAAA,IAAA,CAAKm7E,wBAAwB,EAE7F,CAEA4B,gBAAgB,EAAA,CACZ,OAAI,IAAA,CAAKhvD,cAAc5K,OAAO,EAAA,CACtB,IAAK23D,CAAAA,aAAAA,CAAc3tC,MACZ,UAEJ,CAAA,cAAA,CAEJ,WACX,CAEQ6vC,kBAAAA,CAAmBC,EAAqB,CACxC,IAAA,CAAK7tF,OACL,CAAA,IAAA,CAAKA,QAAQ6tF,CAAS,CAAA,CAElB,KAAKR,QACL,EAAA,IAAA,CAAKA,SAASQ,CAAS,EAGnC,CAEQC,wBAAAA,CAAyBC,EAAqC,CAC9D,IAAA,CAAKf,cACL,IAAKA,CAAAA,aAAAA,CAAce,CAAkB,CAEjC,CAAA,IAAA,CAAKb,cACL,EAAA,IAAA,CAAKA,eAAea,CAAkB,EAGlD,CAEQC,0BAAAA,EAA0B,CAC1B,IAAKb,CAAAA,eAAAA,CACL,IAAKA,CAAAA,eAAAA,GAED,IAAKC,CAAAA,gBAAAA,EACL,KAAKA,gBAAgB,GAGjC,CAEQa,mBAAoBC,CAAAA,CAAAA,CAAoC,CACxD,IAAA,CAAKZ,SACL,IAAKA,CAAAA,QAAAA,CAASY,CAAW,CAAA,CAErB,KAAKX,SACL,EAAA,IAAA,CAAKA,SAAUW,CAAAA,CAAW,EAGtC,CAEQ5B,iBAAAA,EAAiB,CACrB,IAAMF,CAAAA,CAA0Bx/D,OAAew/D,sBAC/C,CAAA,GAAIA,CAAwB,CAAA,CAQxB,GAPA,IAAKA,CAAAA,sBAAAA,CAAyBA,CAC9B,CAAA,IAAA,CAAKA,uBAAuBpsF,OAAU,CAAA,IAAA,CAAK4tF,kBAAmBO,CAAAA,IAAAA,CAAK,IAAI,CACvE,CAAA,IAAA,CAAK/B,uBAAuBY,aAAgB,CAAA,IAAA,CAAKc,yBAAyBK,IAAK,CAAA,IAAI,CACnF,CAAA,IAAA,CAAK/B,uBAAuBe,eAAkB,CAAA,IAAA,CAAKa,2BAA2BG,IAAK,CAAA,IAAI,EACvF,IAAK/B,CAAAA,sBAAAA,CAAuBkB,QAAW,CAAA,IAAA,CAAKW,oBAAoBE,IAAK,CAAA,IAAI,EACzE,IAAKC,CAAAA,WAAAA,EAAe,KAAKA,WAAY99E,CAAAA,IAAAA,CAAK,IAAI,CAAA,CAE1C,KAAKs7E,kBAAoB,CAAA,CACzB,IAAKA,CAAAA,kBAAAA,CAAqB,GAC1B,IAAKe,CAAAA,UAAAA,CAAW,IAAKI,CAAAA,oBAAAA,EAAwBj4D,MAAS,CACtD,CAAA,IAAA,CAAKi4D,qBAAuB,IAC5B,CAAA,MACJ,CACI,IAAKlB,CAAAA,oBAAAA,GACL,IAAKA,CAAAA,oBAAAA,CAAuB,GAC5B,IAAKQ,CAAAA,YAAAA,EAEb,EAAA,CACJ,yCAzLSZ,CAA6Bp4E,EAAAA,GAAAA,CAAAmP,GAAA,CAAA,CAAAnP,IAAAuX,EAAA,CAAA,CAAAvX,IAAAykB,IAAA,CAAA,CAAAzkB,IAAAiP,GAAA,CAAA,CAAAjP,GAAAsP,CAAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAApxC,GAAA,CAAA,CAAA,KAAA,CAA7Bk6G,CAA6Br6G,CAAAA,OAAAA,CAA7Bq6G,EAA6B9hE,SAAAC,CAAAA,UAAAA,CAF1B,MAAM,CAAA,EAEhB,IAAO6hE,CAAAA,CAAP4C,SAAO5C,CAA6B,CAAA,IC6C1C,IAAY6C,IAAAA,CAAZ,SAAYA,CAAAA,CAAS,CACjBA,OAAAA,CAAAA,CAAAA,EAAA,QAAA,CAAA,CAAA,EAAA,UACAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAFQA,CAGZ,CAHYA,CAAAA,IAAAA,EAAS,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GC7DLj/E,EAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAAAm/D,EAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAA0Dl8D,EAAA,CAAA,WAAA,CAAA4Q,GAAA,CAAA,CAAA,CAAA,CAAAqrE,CAAA11G,CAAAA,OAAA,EAAAy4F,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA53B,EAAA,EAAA,CAK9DtqC,GAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAA4DyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA6nC,CAAAA,CAAA,CAAA,CAAA,IAAA40C,EAAA30C,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASu8E,EAAAC,eAAA,EAAiB,CAAA,CAAA,CAAA,CAClFvqE,GAAA,CAAA,CAAA,CACJ5U,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CADIgZ,IAAAo8D,CAAAA,EAAAA,CAAA,GAAA+f,CAAAA,CAAAA,CAAAE,gBAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAh1C,EAAA,EAAA,CAEJtqC,EAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAA6DyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAA+8D,CAAAA,CAAA,CAAA,CAAA,IAAA0f,EAAA30C,EAAA,EAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAA3uE,OAAO,CAAA,CAAA,CAAA,CACzEqE,GAAA,CAAA,CAAA,CACJ5U,KADI+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAo8D,EAAA,CAAA,GAAA,CAAA+f,CAAAG,CAAAA,EAAAA,CAAA,GAAA,ECLhB,CAAA,CAAA,IAAYC,EAAZ,CAAA,SAAYA,EAAwB,CAChCA,OAAAA,CAAA,CAAA,SAAA,CAAA,uBACAA,CAAA,CAAA,MAAA,CAAA,gBAFQA,CAGZ,CAAA,CAHYA,IAAwB,EAAA,CAgBpC,CAAA,IAAaC,IAAyB,IAAA,CAAhC,IAAOA,CAAAA,CAAP,MAAOA,CAAyB,CAMlCxqG,WACoB86B,CAAAA,CAAAA,CACgBC,EACxB0vE,CACApvE,CAAAA,CAAAA,CACAwU,EACAyK,CACAq1C,CAAAA,CAAAA,CACAC,EACA10D,CAAoB,CAAA,CARZ,IAAAJ,CAAAA,SAAAA,CAAAA,EACgB,IAAAC,CAAAA,IAAAA,CAAAA,CACxB,CAAA,IAAA,CAAA0vE,6BAAAA,CACA,CAAA,IAAA,CAAApvE,qBAAAA,CAAAA,CAAAA,CACA,KAAAwU,SAAAA,CAAAA,CAAAA,CACA,KAAAyK,aAAAA,CAAAA,CAAAA,CACA,KAAAq1C,MAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,KAAAA,CAAAA,EACA,IAAA10D,CAAAA,SAAAA,CAAAA,EAdZ,IAAAwvE,CAAAA,wBAAAA,CAAuD,EACvD,CAAA,IAAA,CAAAC,mBAAsB,CAAA,CAAA,CAAA,CAEtB,KAAAhwB,aAA4C,CAAA,GAYzC,CAEHl/C,QAAAA,EAAQ,CACJ,IAAKk/C,CAAAA,aAAAA,CAAgB,IAAK5/C,CAAAA,IAAAA,CAAK4/C,cAC/B,IAAKitB,CAAAA,iBAAAA,CAAoB,IAAKvsE,CAAAA,qBAAAA,CAAsB0oE,0BACpD,CAAA,IAAA,CAAK6G,qBAAqB,GAC9B,CAEAC,eAAe,EAAA,CACX,OAAO,IAAKxvE,CAAAA,qBAAAA,CAAsBgE,qBACtC,CAEA,IAAIyrE,oBAAAA,EAAoB,CACpB,OAAO,IAAA,CAAKD,eAAe,EAAA,CAAGprE,SAAS,oBAA2B,EAAA,0BACtE,CAEA,IAAIsrE,uBAAqB,CACrB,OAAO,KAAKF,eAAe,EAAA,CAAGprE,SAAS,qBAC3C,CAEA,IAAIurE,4BAAAA,EAA4B,CAC5B,OAAO,IAAA,CAAKH,eAAe,EAAA,CAAGprE,SAAS,4BAAmC,EAAA,iDAC9E,CAEA,IAAI4qE,iBAAe,CACf,OAAO,KAAKQ,eAAe,EAAA,CAAGprE,SAAS,eAAsB,EAAA,kBACjE,CAEA,IAAI6qE,IAAE,CACF,OAAO,KAAKO,eAAe,EAAA,CAAGprE,SAAS,EAAS,EAAA,IACpD,CAEA,IAAIwrE,iBAAe,CACf,OAAO,KAAKJ,eAAe,EAAA,CAAGprE,SAAS,eAAsB,EAAA,4EACjE,CAEAjE,KAAAA,EAAK,CAED,GADA,IAAA,CAAKV,SAAa,EAAA,IAAA,CAAKA,UAAUU,KAAK,EAAA,CAClC,IAAKN,CAAAA,SAAAA,CAAU6B,aAAayL,QAAU+F,EAAAA,QAAAA,EAAUxG,aAAeW,EAAAA,OAAAA,CAAQ,UAAU,CAAK,EAAA,CAAA,CAAG,CACzF,IAAMwtC,EAAY,IAAK0Z,CAAAA,KAAAA,EAAO6B,QAAUC,EAAAA,aAAAA,EAAeliE,IAAI,WAAW,CAAA,EAAK,IAAKogE,CAAAA,KAAAA,EAAO6B,UAAUC,aAAeliE,EAAAA,GAAAA,CAAI,WAAW,CAC/H,CAAA,GAAI0mD,EACA,IAAKrmC,CAAAA,SAAAA,EAAWgB,IAAKqlC,CAAAA,CAAS,OAC3B,CACH,IAAM/mC,CAAY,CAAA,IAAA,CAAKmL,eAAepL,YAAY,EAAA,EAAM,EACxD,CAAA,IAAA,CAAKW,WAAWgB,IAAK,CAAA,GAAA,CAAM,KAAK8+C,MAAOpzD,CAAAA,IAAAA,CAAO,IAAM,IAAK+d,CAAAA,aAAAA,EAAe/K,sBAAuBJ,CAAAA,CAAS,GAAGpH,WAAW,EAAE,EAC5H,CACJ,CACJ,CAEAqiE,eAAe,EAAA,CACP,IAAKxC,CAAAA,iBAAAA,CAAkBsD,6BACvB,IAAKT,CAAAA,4BAAAA,CAA6BU,qCAElC,CAAA,IAAA,CAAKV,6BAA6BW,sBAAuBvvF,CAAAA,IAAAA,CAAK,CAAI,CAAA,CAAA,CAEtE,KAAK2f,KAAK,GACd,CACQ6vE,iBAAAA,CAAkBX,EAAoD,CAC1EA,CAAAA,CAAyB/rD,OAAS7lD,CAAAA,CAAAA,EAAO,CACrCA,CAAItE,CAAAA,OAAAA,CAAUsE,EAAItE,OAAQmoC,CAAAA,OAAAA,CAAQ,qBAAsB,OAAO,EACnE,CAAC,EACL,CACQiuE,qBAAqB,EAAA,CACzB,GAAI,CAAC,KAAKjwB,aAAe7xE,EAAAA,MAAAA,CAAQ,CAC7B,IAAA,CAAK4hG,yBAAyBnoD,IAAK,CAAA,CAAE+oD,KAAM,EAAIC,CAAAA,KAAAA,CAAOtB,KAAUuB,QAAUh3G,CAAAA,OAAAA,CAAS,IAAKy2G,CAAAA,eAAe,CAAE,CACzG,CAAA,IAAA,CAAKI,iBAAkB,CAAA,IAAA,CAAKX,wBAAwB,CACpD,CAAA,MACJ,CACA,IAAA,CAAKA,yBAA2B,CAAC,GAAG,KAAK/vB,aAAa,CAAA,CACtD,KAAK0wB,iBAAkB,CAAA,IAAA,CAAKX,wBAAwB,CAAA,CACpD,KAAKC,mBACD,CAAA,IAAA,CAAK/C,kBAAkB6D,oBAAwB,EAAA,IAAA,CAAK9wB,cAAcruB,IAAMo/C,CAAAA,CAAAA,EAAWA,CAAOH,CAAAA,KAAAA,GAAUtB,KAAU0B,KAAK,EAC3H,yCAxFSnB,CAAyB1sE,EAAAA,GAAAA,CAAAC,EAAA,CAAAD,CAAAA,GAAAA,CAQtBE,EAAe,CAAA,CAAAF,IAAA8tE,IAAA,CAAA,CAAA9tE,GAAAQ,CAAAA,GAAA,EAAAR,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAAyI,EAAA,CAAAzI,CAAAA,GAAAA,CAAAI,GAAA,CAAAJ,CAAAA,GAAAA,CAAAg+D,IAAA,CAAAh+D,CAAAA,GAAAA,CAAAK,GAAA,CAAA,CAAA,CARlBqsE,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAyB//E,SAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAAE,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,GAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uCAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,CAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,cAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CD7BtC7B,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAmD,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACtB,EAAA,KAAA,CAAA,CAAA,CACS8U,CAAAA,EAAAA,CAAA,CAAA,CAA0B5U,CAAAA,EAAAA,EACxDF,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAuByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAs5B,CAAAA,KAAAA,EAAO,CAAA,CAAA,CAAExQ,GAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAwBC,CAAAA,EAAAA,EAAM,EAAA,CAE3EF,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA8C,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACV8U,EAAA,CAAA,CAAA,EAA2B5U,EAAA,EAAA,CAC3DF,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAA8B,EAAA,CAAA,IAAA,CAAA,CAAA,CAEtBoC,CAAAA,EAAAA,CAAA,GAAA0+E,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,CACJ5gF,CAAAA,EAAAA,IAEJF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAgC8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAkC5U,IAClEF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,CACIoC,GAAA,EAAA2+E,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAwF,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAAA,CAM5F9gF,IAAM,EAAA,UAlBwB+C,EAAA,CAAA,CAAA,EAAA8R,EAAA59B,CAAAA,CAAAA,CAAA4oG,oBAAA,CAAA,CAIE98E,GAAA,CAAA,CAAA,CAAA8R,GAAA59B,CAAA6oG,CAAAA,qBAAA,EAGK/8E,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,UAAA/rB,CAAAwoG,CAAAA,wBAAA,EAGL18E,EAAA,CAAA,CAAA,EAAA8R,EAAA59B,CAAAA,CAAAA,CAAA8oG,4BAAA,CAAA,CAEnBh9E,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAAyoG,mBAAA,CAAA,CAGA38E,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,CAAA/rB,EAAAyoG,mBAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCUPtO,GAAOvhC,EAAM2oC,CAAAA,GAAe,CAAAj1E,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAEpC,IAAOg8E,CAAAA,CAAPwB,SAAOxB,CAAyB,CAAA,GCbtC,CAAA,IAAaoB,MAA4B,IAAA,CAAnC,IAAOA,CAAP,CAAA,MAAOA,CAA4B,CAarC5rG,WAAAA,CACY07C,CACA+J,CAAAA,CAAAA,CACS+pC,EACTn0D,CACA4wE,CAAAA,CAAAA,CACAjxE,CACAwM,CAAAA,CAAAA,CACA4F,EACAwL,CAAoC,CAAA,CARpC,IAAA8C,CAAAA,UAAAA,CAAAA,EACA,IAAA+J,CAAAA,YAAAA,CAAAA,EACS,IAAA+pC,CAAAA,MAAAA,CAAAA,EACT,IAAAn0D,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA4wE,8BAAAA,CACA,CAAA,IAAA,CAAAjxE,IAAAA,CAAAA,CAAAA,CACA,KAAAwM,gBAAAA,CAAAA,CAAAA,CACA,IAAA4F,CAAAA,MAAAA,CAAAA,EACA,IAAAwL,CAAAA,iBAAAA,CAAAA,EAbJ,IAAAszD,CAAAA,UAAAA,CAAqB,EAC7B,IAAAd,CAAAA,sBAAAA,CAAyB,IAAI7mE,IAAAA,CAAqB,IAAI,CACtD,CAAA,IAAA,CAAA4nE,gCAAoD,CAAA,IAAA,CAAKf,uBAAuB3mE,YAAY,GAYzF,CAEI2nE,gBAAAA,CAAiBt1G,EAA6C,CACjE,IAAA,CAAK8wG,kBAAoB,IAAKvsE,CAAAA,qBAAAA,CAAsB0oE,0BACpD,CAAA,IAAA,CAAKsI,sBAAyB,CAAA,CAAA,CAAA,CAC9B,KAAKC,iBAAoB,CAAA,CAAA,CAAA,CACzB,IAAKC,CAAAA,4BAAAA,CAA+B,GACpC,IAAKC,CAAAA,aAAAA,CAAgB,EAAA,CACrB,KAAKC,cAAiB,CAAA,IAAA,CAAK7E,kBAAkB8E,oBAC7C,CAAA,IAAA,CAAKC,0BAA0B71G,CAAQ,CAAA,CACvC,IAAK81G,CAAAA,UAAAA,CAAW91G,CAAQ,EAC5B,CAEQ81G,UAAW91G,CAAAA,CAAAA,CAA6C,CAC5D,IAAK+1G,CAAAA,UAAAA,EACL,CAAA,IAAA,CAAKC,WAAa,IAAKrnD,CAAAA,YAAAA,CAAaxiB,WAAW,IAAK,CAChD,GAAK,IAAK2V,CAAAA,iBAAAA,CAAkBZ,oBAAoB,EAAA,GAChD,KAAKq0D,sBAAyB,CAAA,CAAA,CAAA,CAC1B,CAAC,IAAKC,CAAAA,iBAAAA,CAAAA,CAAmB,CACzB,IAAKS,CAAAA,oBAAAA,EACLj2G,CAAAA,CAAAA,CAAS,EAAI,CACb,CAAA,MACJ,CACJ,CAAG,CAAA,IAAA,CAAK21G,cAAc,EAC1B,CAEQE,yBAA0B71G,CAAAA,CAAAA,CAA6C,CACtE,IAAKu1G,CAAAA,sBAAAA,EACN,IAAK3wD,CAAAA,UAAAA,CAAWE,KAAK,IAAKgsD,CAAAA,iBAAAA,CAAkBoF,MAAQ,CAAA,SAAA,CAAY,KAAKhyE,IAAKwB,CAAAA,QAAQ,EAAEnW,SAAW/1B,CAAAA,CAAAA,EAAU,CACrG,IAAMuJ,CAAAA,CAAevJ,CACrB,CAAA,GAAIuJ,GAASozG,mBAAqB,CAAA,CAC9B,GAAIpzG,CAAAA,EAASqzG,iBAAmB,gBAAoBrzG,EAAAA,CAAAA,EAASupE,SAAc,GAAA,CAAA,CAAG,CAC1E,IAAKkpC,CAAAA,iBAAAA,CAAoB,GACzB,IAAKJ,CAAAA,UAAAA,CAAa,EAClBp1G,CAAS,CAAA,CAAA,CAAK,CACd,CAAA,MACJ,CACA,IAAMq2G,CAAAA,CACF,IAAKvF,CAAAA,iBAAAA,CAAkB6D,sBACvB5xG,CAASuzG,EAAAA,sBAAAA,EAAwBC,MAAQ/7D,EAAAA,IAAAA,CAAMo6D,GAAgBA,CAAOH,CAAAA,KAAAA,GAAUtB,KAAU0B,KAAK,CAAA,CAGnG,GADA,IAAKa,CAAAA,aAAAA,CAAgB3yG,CACjBszG,CAAAA,CAAAA,CACA,KAAKb,iBAAoB,CAAA,CAAA,CAAA,CACzB,KAAKgB,oCAAqCx2G,CAAAA,CAAQ,EAClD,IAAKy2G,CAAAA,aAAAA,CAAcz2G,CAAQ,CAAA,CAAA,KACxB,CACH,IAAK+1G,CAAAA,UAAAA,GACL,IAAKE,CAAAA,oBAAAA,GACL,IAAKb,CAAAA,UAAAA,CAAa,CAClBp1G,CAAAA,CAAAA,CAAS,EAAI,CACb,CAAA,MACJ,CACJ,CAAA,KACI,KAAK01G,aAAgB3yG,CAAAA,CAAAA,CACrB,IAAK0zG,CAAAA,aAAAA,CAAcz2G,CAAQ,EAEnC,CAAC,EAET,CAEQw2G,oCAAAA,CAAqCx2G,EAA6C,CACjF,IAAA,CAAKy1G,4BACN,GAAA,IAAA,CAAKF,uBAAyB,CAC9B,CAAA,CAAA,IAAA,CAAKI,cAAiB,CAAA,IAAA,CAAK7E,kBAAkB4F,aAC7C,CAAA,IAAA,CAAKjB,4BAA+B,CAAA,CAAA,CAAA,CACpC,KAAKK,UAAW91G,CAAAA,CAAQ,GAEhC,CAEQ+1G,UAAAA,EAAU,CACV,IAAKC,CAAAA,UAAAA,EACL,IAAKrnD,CAAAA,YAAAA,CAAagoD,aAAa,IAAKX,CAAAA,UAAU,EAEtD,CAEQS,cAAcz2G,CAA6C,CAAA,CAC/D,IAAI8wG,CAAAA,CAAoB,KAAKvsE,qBAAsB0oE,CAAAA,wBAAAA,GAC/C6D,CAAkB8F,CAAAA,4BAAAA,GACd,KAAKxB,UAAetE,GAAAA,CAAAA,CAAkB+F,eACtC,EAAA,IAAA,CAAKxC,qCAET,CAAA,IAAA,CAAKe,cAET,IAAKzmD,CAAAA,YAAAA,CAAaxiB,WAAW,IAAK,CACzB,IAAK2V,CAAAA,iBAAAA,CAAkBZ,sBAC5B,EAAA,IAAA,CAAK20D,0BAA0B71G,CAAQ,EAC3C,EAAG,GAAI,EACX,CAEQi2G,oBAAAA,EAAoB,CACxB,IAAKb,CAAAA,UAAAA,CAAa,CAClB,CAAA,IAAMmB,EAAS,IAAKb,CAAAA,aAAAA,EAAeY,sBAAwBC,EAAAA,MAAAA,CAC3D,KAAKvyE,SAAY,CAAA,IAAA,CAAK00D,OAAO1hC,IAAK08C,CAAAA,EAAAA,CAA2B,CACzDzvE,IAAM,CAAA,CACF4/C,aAAe0yB,CAAAA,CAAAA,CAAAA,CAEnBvO,aAAc,CACdvE,CAAAA,CAAAA,UAAAA,CAAY,yBACf,CAAA,EAEL,CACAqT,0BAA0B,EAAA,CACtB,IAAK3B,CAAAA,6BAAAA,CAA8BtwF,QAAU80B,KAC7C,CAAA,CAAA,IAAA,CAAKw7D,8BAA8BtD,aAAgBl4D,CAAAA,KAAAA,EACvD,CACA06D,mCAAmC,EAAA,CAC/B,IAAK3jE,CAAAA,gBAAAA,CAAiBqmE,aAAa,CAC/BzrG,SAAAA,CAAWmoG,EAAyBuD,CAAAA,SAAAA,CACpChjE,WAAY,CAAEpN,MAAAA,CAAQ6sE,EAAyBwD,CAAAA,MAAM,EACxD,CACD,CAAA,IAAA,CAAK3gE,OAAOq5D,GAAI,CAAA,sBAAA,CAAwB8D,GAAyBuD,SAAS,EAC9E,CAvISlC,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA4B58E,IAAAg/E,EAAA,CAAA,CAAAh/E,IAAA+9B,IAAA,CAAA,CAAA/9B,IAAA2sE,IAAA,CAAA,CAAA3sE,GAAAsP,CAAAA,GAAA,EAAAtP,GAAAo4E,CAAAA,EAAA,EAAAp4E,GAAAiP,CAAAA,GAAA,EAAAjP,GAAAiZ,CAAAA,IAAA,CAAAjZ,CAAAA,GAAAA,CAAAi/E,EAAA,CAAAj/E,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA,CAA5B+0D,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA4B7+G,OAA5B6+G,CAAAA,CAAAA,CAA4BtmE,UAAAC,UAFzB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOqmE,EAAPsC,CAAOtC,CAAAA,OAAAA,CAA4B,CAAA,GAAA,CCTzC,IAAauC,EAA0B,CAAA,CAAA,IAAA,CAAjC,IAAOA,EAAP,MAAOA,CAA0B,CACnCnuG,WAAAA,CAAoBouG,EAAgC,CAAhC,IAAA,CAAAA,gBAAAA,EAAmC,CACvDC,cAAc1qC,CAAoBC,CAAAA,CAAAA,CAAqBC,CAAqB,CAAA,CACxE,KAAKuqC,eAAgBj4D,CAAAA,YAAAA,CAAa,gBAAkB,CAAA,CAChD,0BAA2B,cAC3B,CAAA,sBAAA,CAAwBwtB,CACxB,CAAA,uBAAA,CAAyBC,EACzB,yBAA2BC,CAAAA,CAAAA,CAC3B,0BAA2B,gBAC3B,CAAA,wBAAA,CAA0B,iBAC1B,sBAAwB,CAAA,gBAAA,CAC3B,EACL,CACAkE,MAAMpE,CAAoBC,CAAAA,CAAAA,CAAqBE,EAAsB,CAC7DA,CAAAA,CACA,KAAKsqC,eAAgBj4D,CAAAA,YAAAA,CAAa,gBAAkB,CAAA,CAChD,0BAA2B,cAC3B,CAAA,sBAAA,CAAwBwtB,EACxB,uBAAyBC,CAAAA,CAAAA,CACzB,0BAA2B,gBAC3B,CAAA,yBAAA,CAA2BE,CAC3B,CAAA,wBAAA,CAA0B,iBAC1B,sBAAwB,CAAA,gBAAA,CAC3B,CAED,CAAA,IAAA,CAAKsqC,gBAAgBj4D,YAAa,CAAA,gBAAA,CAAkB,CAChD,yBAAA,CAA2B,eAC3B,sBAAwBwtB,CAAAA,CAAAA,CACxB,wBAAyBC,CACzB,CAAA,yBAAA,CAA2B,iBAC3B,yBAA2B,CAAA,gBAAA,CAC3B,wBAA0B,CAAA,gBAAA,CAC1B,uBAAwB,gBAC3B,CAAA,EAET,CAnCSuqC,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0Bn/E,IAAAi1C,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA/2E,GAAA,CAAA,CAAA,KAAA,CAA1BihH,EAA0BphH,OAA1BohH,CAAAA,CAAAA,CAA0B7oE,UAAAC,UAFvB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAO4oE,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAA0B,CAAA,GAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA94C,EAAA,EAAA,CCNnCtqC,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAsI,CAAA,CAAA,KAAA,CAAA,CAAA,CAE9HC,CAAAA,EAAAA,CAAA,EAAA,IAAA,CAAA,CAAA,EACAD,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAAgEyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,EAAAz/B,KAAA,EAAO,CAAA,CAAA,CAAA,CAAEvQ,EAAA,EAAA,GAEtFD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EACAD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAA4C,CAAA,CAAA,QAAA,CAAA,EAAA,CACGyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,EAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAszC,QAAA,EAAU,CAAA,CAAA,CAAA,CAAqCtjF,IACnGF,CAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAA4CyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,EAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA37B,UAAU,CAAA,CAAA,CAAqDrU,CAAAA,EAAAA,EAAS,EAAA,uBANtF+C,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,aAAA,CAAAgtC,EAAAuzC,cAAA,CAAA,CAGCxgF,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,eAAA,CAAAgtC,EAAAwzC,gBAAA,CAAA,CAEwBzgF,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,aAAA,CAAAgtC,EAAAyzC,kBAAA,CAAA,CACiB1gF,EAAA,EAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAA0zC,kBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAt5C,EAAA,EAAA,CAGzFtqC,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAmH,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAE3GC,EAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CACAD,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAgEyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,EAAAz/B,KAAA,EAAO,CAAA,CAAA,EAAEvQ,EAAA,EAAA,EAEtFF,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EACIC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACAD,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIC,GAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAmD,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,EAEvDC,EAAA,EAAA,CACAD,GAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAsB,CAAA,EAAA,CAAA,GAAA,CAAA,EAAA,EAMdyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,CAAA2zC,CAAAA,oBAAAA,EAAsB,CAAA,CAAA,CACiB3jF,CAAAA,EAAAA,IAExDD,CAAAA,EAAAA,CAAA,EAAA,CAAA,IAAA,EACAD,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CACIC,GAAA,EAAA,CAAA,IAAA,CAAM,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAEVC,EAAA,EAAA,CACAD,GAAA,EAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CACAD,GAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAgD,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAExCC,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,CAAA,CACAD,GAAA,EAAA,CAAA,GAAA,CAAA,EAAA,CAGIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAgoC,CAAAA,CAAA,EAAA,IAAAuF,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAszC,UAAU,CAAA,CAAA,CAAA,CACkCtjF,IAAI,EAAA,CAEjEF,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CACIC,GAAA,EAAA,CAAA,GAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,EAAA,CAAA,GAAA,CAAA,EAAA,CAGIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAgoC,CAAAA,CAAA,CAAA,CAAA,IAAAuF,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA37B,UAAU,CAAA,CAAA,CAAA,CACkCrU,IAAI,EAAA,EAGrEF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAAsC,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CACc,GAAA,GAAA,CAAA,EAAA,EACeyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,CAAAzkD,CAAAA,IAAAA,EAAM,CAAA,CAAA,EAAEyU,EAAA,EAAA,CAC5EF,GAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAGIyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,EAAAzkD,IAAA,EAAM,CAAA,CAAA,CAAA,CAC+ByU,EAAA,EAAA,IAG1DF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,EAAK,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAEG+gE,EAAA,CAAA,EAAA,CAAA,EAAA,CACIjsD,CAAAA,EAAAA,CAAA,EAAA,CAER5U,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAoB,EAAA,KA1DwC+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAA4zC,+BAAA,CAAA,CAMxD7gF,GAAA,CAAA,CAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAA6zC,yBAAA,CACD9gF,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,cAAAgtC,CAAA8zC,CAAAA,gCAAA,EAEgB/gF,EAAA,EAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAA+zC,gCAAA,CAAA,CAIfhhF,GAAA,CAAA,CAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAg0C,gBAAA16C,EAAA,CAAA,CAAwB,aAAA0G,CAAAA,CAAAA,CAAAi0C,+BAAA,CASFlhF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAAk0C,wCAAA,CAAA,CAELnhF,IAAAC,CAAAA,EAAAA,CAAA,cAAAgtC,CAAAm0C,CAAAA,gCAAA,EAG6DphF,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,cAAAgtC,CAAAo0C,CAAAA,8BAAA,CAK1ErhF,CAAAA,EAAAA,GAAAC,EAAA,CAAA,aAAA,CAAAgtC,CAAAq0C,CAAAA,oCAAA,EAG0EthF,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,aAAA,CAAAgtC,EAAAs0C,8BAAA,CAAA,CAK1EvhF,EAAA,EAAA,CAAAC,GAAA,aAAAgtC,CAAAA,CAAAA,CAAAu0C,oCAAA,CAAA,CAK4BxhF,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAwhF,EAAAlvG,OAAA,CAAA,CAG5BytB,IAAAC,CAAAA,EAAAA,CAAA,UAAAwhF,CAAAlvG,CAAAA,OAAA,CAA0B,CAAA,aAAA,CAAA06D,EAAAy0C,6BAAA,CAAA,CAQ1B1hF,GAAA,CAAA,CAAA,CAAAo8D,GAAA,GAAAnvB,CAAAA,CAAAA,CAAA00C,uBAAA,CAAA,GAAA,ICpCXC,IAAAA,EAAAA,CAAAA,CAA6B,IAAA,CAApC,IAAOA,EAAP,MAAOA,CAA6B,CAItC5vG,WAAAA,CACoB86B,EACCmxE,CACA4D,CAAAA,CAAAA,CACAC,CACyBC,CAAAA,CAAAA,CACzBC,EACT30E,CACA+M,CAAAA,CAAAA,CACAkS,CACAq1C,CAAAA,CAAAA,CACAC,EACA10D,CACA+0E,CAAAA,EAAAA,CAAgD,CAZxC,IAAAn1E,CAAAA,SAAAA,CAAAA,EACC,IAAAmxE,CAAAA,6BAAAA,CAAAA,CACA,CAAA,IAAA,CAAA4D,wBAAAA,CACA,CAAA,IAAA,CAAAC,aAAAA,CAAAA,CAAAA,CACyB,KAAAC,cAAAA,CAAAA,CAAAA,CACzB,IAAAC,CAAAA,2BAAAA,CAAAA,EACT,IAAA30E,CAAAA,qBAAAA,CAAAA,EACA,IAAA+M,CAAAA,iBAAAA,CAAAA,EACA,IAAAkS,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAq1C,OAAAA,CACA,CAAA,IAAA,CAAAC,KAAAA,CAAAA,CAAAA,CACA,KAAA10D,SAAAA,CAAAA,CAAAA,CACA,IAAA+0E,CAAAA,uBAAAA,CAAAA,GAhBZ,IAAAC,CAAAA,UAAAA,CAAa,GAiBV,CAEH,IAAIzB,kBAAgB,CAChB,OAAO,IAAKpzE,CAAAA,qBAAAA,CAAsB80E,oCAAqC1B,CAAAA,gBAC3E,CAEA,IAAIQ,eAAAA,EAAe,CACf,OAAO,IAAA,CAAKa,aAAcM,CAAAA,sBAAAA,CACtB,sBAAsBz2C,IAAK9pB,CAAAA,SAAAA,CAAUC,SAAS,CACxC,CAAA,oBAAA,CACA,aAAa6pB,IAAK9pB,CAAAA,SAAAA,CAAUC,SAAS,CAAA,CACnC,KAAK+6D,eAAe,EAAA,CAAGprE,QAAS4wE,CAAAA,sBAAAA,CAChC,EAAE,CAElB,CAEA,IAAI1B,kBAAAA,EAAkB,CAClB,OAAO,IAAA,CAAK9D,iBAAkBprE,CAAAA,QAAAA,CAAS,2BAC3C,CAEA,IAAIuvE,gCAAgC,EAAA,CAChC,OAAO,IAAKnE,CAAAA,eAAAA,EAAkBprE,CAAAA,QAAAA,CAAS,kCAAuC,sDAClF,CAEA,IAAIyvE,+BAAAA,EAA+B,CAC/B,OAAO,IAAA,CAAKrE,iBAAkBprE,CAAAA,QAAAA,CAAS,iCAAsC,8BACjF,CAEA,IAAI2vE,gCAAAA,EAAgC,CAChC,OACI,IAAA,CAAKvE,eAAe,EAAA,CAAGprE,SAAS,gCAChC,EAAA,2EAER,CAEA,IAAI6vE,sCAAoC,CACpC,OAAO,KAAKzE,eAAe,EAAA,CAAGprE,SAAS,oCAA2C,EAAA,0BACtF,CAEA,IAAI+vE,sCAAoC,CACpC,OAAO,KAAK3E,eAAe,EAAA,CAAGprE,SAAS,oCAA2C,EAAA,mCACtF,CAEA,IAAIivE,oBAAkB,CAClB,OAAO,KAAK7D,eAAe,EAAA,CAAGprE,SAAS,2BAC3C,CAEA,IAAI6wE,aAAAA,EAAa,CACb,OAAO,IAAA,CAAKzF,eAAe,EAAA,CAAGprE,SAAS,aAC3C,CACA,IAAI+uE,cAAAA,EAAc,CACd,OAAO,IAAA,CAAK3D,iBAAkBprE,CAAAA,QAAAA,CAAS,cAC3C,CAEA,IAAIiwE,6BAA6B,EAAA,CAC7B,OAAO,IAAK7E,CAAAA,eAAAA,EAAkBprE,CAAAA,QAAAA,CAAS,+BAAoC,mBAC/E,CAEA,IAAI4vE,8BAAAA,EAA8B,CAC9B,OAAO,IAAA,CAAKxE,iBAAkBprE,CAAAA,QAAAA,CAAS,gCAAqC,QAChF,CAEA,IAAI8vE,8BAAAA,EAA8B,CAC9B,OAAO,IAAA,CAAK1E,eAAe,EAAA,CAAGprE,SAAS,8BAAqC,EAAA,QAChF,CAEA,IAAIovE,iCAA+B,CAC/B,OAAO,KAAKhE,eAAe,EAAA,CAAGprE,SAAS,+BAAsC,EAAA,UACjF,CAEA,IAAI8wE,mBAAiB,CACjB,OAAI,KAAKx1E,IAAQ,EAAA,IAAA,CAAKA,KAAKw1E,iBAChB,CAAA,IAAA,CAAKx1E,IAAQ,EAAA,IAAA,CAAKA,KAAKw1E,iBAEvB,CAAA,IAAA,CAAKR,gBAAkB,IAAKA,CAAAA,cAAAA,CAAeQ,iBAE1D,CAEA,IAAIzB,yBAAyB,EAAA,CACzB,OAAO,IAAKjE,CAAAA,eAAAA,EAAkBprE,CAAAA,QAAAA,CAAS,2BAAgC,2BAC3E,CAEA,IAAIsvE,gCAAAA,EAAgC,CAChC,OACI,IAAA,CAAKlE,iBAAkBprE,CAAAA,QAAAA,CAAS,kCAChC,2EAER,CAEA,IAAI0vE,wCAAAA,EAAwC,CACxC,OAAO,IAAA,CAAKtE,eAAe,EAAA,CAAGprE,SAAS,wCAA+C,EAAA,IAC1F,CAEA,IAAIkwE,yBAAuB,CACvB,OACI,KAAK9E,eAAe,EAAA,CAAGprE,SAAS,uBAChC,EAAA,6KAER,CACAH,QAAAA,EAAQ,CACJ,IAAK4wE,CAAAA,UAAAA,CAAa,CAClB,CAAA,CAAA,IAAA,CAAKM,wBAA0B,IAAKP,CAAAA,uBAAAA,CAAwBtgH,KAAK,EAAA,CAC7D,KAAK4gH,iBACL,EAAA,IAAA,CAAKP,4BAA4BjoC,KAAM,CAAA,sBAAA,CAAwB,yDAAyD,CAE5H,CAAA,IAAA,CAAKkkC,6BAA8B3D,CAAAA,UAAAA,CAAW,CAC1CG,YAAc,CAAA,CAAA,CAAA,CACjB,CACD,CAAA,IAAM3xG,EAAWA,IAAK,CAClB,IAAKo5G,CAAAA,UAAAA,CAAa,GAClB,IAAKM,CAAAA,uBAAAA,CAAwBjhG,OACjC,CAAA,CACA,KAAKsgG,uBAAwBY,CAAAA,gBAAAA,CAAiB35G,CAAUA,CAAAA,CAAQ,EACpE,CAEAy3G,QAAAA,EAAQ,CACJ,GAAI,KAAKgC,iBAEL,CAAA,GADA,IAAKP,CAAAA,2BAAAA,CAA4BjoC,MAAM,sBAAwB,CAAA,iDAAiD,EAC5G,IAAKhtC,CAAAA,IAAAA,EAAQ,KAAKA,IAAK21E,CAAAA,WAAAA,CAAa,CACpCnoE,MAAAA,CAAOulB,KAAM,IAAK/yB,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAK21E,aAAgB,EAAI,CAAA,QAAQ,CAChE,CAAA,MACJ,MAAO,CACHnoE,MAAAA,CAAOulB,KAAM,IAAKiiD,CAAAA,cAAAA,EAAkB,KAAKA,cAAeW,CAAAA,WAAAA,EAAgB,EAAI,CAAA,QAAQ,EACpF,MACJ,CAEA,IAAK31E,CAAAA,IAAAA,EAAQ,KAAKA,IAAK21E,CAAAA,WAAAA,CACvBnoE,MAAOulB,CAAAA,IAAAA,CAAM,KAAK/yB,IAAQ,EAAA,IAAA,CAAKA,KAAK21E,WAAgB,EAAA,EAAA,CAAI,OAAO,CAE/DnoE,CAAAA,MAAAA,CAAOulB,IAAM,CAAA,IAAA,CAAKiiD,gBAAkB,IAAKA,CAAAA,cAAAA,CAAeW,aAAgB,EAAI,CAAA,OAAO,EAE3F,CAEAl1E,KAAAA,EAAK,CAKD,GAJI,KAAK+0E,iBACL,EAAA,IAAA,CAAKP,4BAA4BjoC,KAAM,CAAA,sBAAA,CAAwB,cAAc,CAEjF,CAAA,IAAA,CAAKjtC,SAAa,EAAA,IAAA,CAAKA,UAAUU,KAAK,EAAA,CAElC,IAAK4M,CAAAA,iBAAAA,CAAkBI,SAASO,MAAOyW,CAAAA,GAAAA,CAAI,gBAAgB,CAAA,EAC3D,KAAKpX,iBAAkBI,CAAAA,QAAAA,CAASO,OAAOvZ,GAAI,CAAA,gBAAgB,IAAM,cACnE,CAAA,CACE,IAAM0mD,CAAAA,CAAY,KAAK9tC,iBAAkBI,CAAAA,QAAAA,CAASO,MAAOyW,CAAAA,GAAAA,CAAI,WAAW,CAClE,CAAA,IAAA,CAAKpX,iBAAkBI,CAAAA,QAAAA,CAASO,OAAOvZ,GAAI,CAAA,WAAW,EACtD,IAAK4Y,CAAAA,iBAAAA,CAAkBuoE,sBACzBz6B,CAAAA,CAAAA,EACA,IAAK9tC,CAAAA,iBAAAA,CAAkByI,KAAKqlC,CAAS,EAE7C,CAAW,KAAA,GAAA,IAAA,CAAKh7C,UAAU6B,YAAayL,CAAAA,QAAAA,EAAU+F,QAAUxG,EAAAA,WAAAA,IAAeW,OAAQ,CAAA,UAAU,GAAK,CAAG,CAAA,CAChG,IAAMwtC,CAAY,CAAA,IAAA,CAAK0Z,KAAO6B,EAAAA,QAAAA,EAAUC,eAAeliE,GAAI,CAAA,WAAW,GAAK,IAAKogE,CAAAA,KAAAA,EAAO6B,UAAUC,aAAeliE,EAAAA,GAAAA,CAAI,WAAW,CAAA,CAC/H,GAAI0mD,CACA,CAAA,IAAA,CAAK9tC,mBAAmByI,IAAKqlC,CAAAA,CAAS,OACnC,CACH,IAAM/mC,CAAY,CAAA,IAAA,CAAKmL,eAAepL,YAAY,EAAA,EAAM,EACxD,CAAA,IAAA,CAAK9G,mBAAmByI,IAAK,CAAA,GAAA,CAAM,IAAK8+C,CAAAA,MAAAA,CAAOpzD,KAAO,GAAM,CAAA,IAAA,CAAK+d,eAAe/K,sBAAuBJ,CAAAA,CAAS,GAAGpH,WAAW,EAAE,EACpI,CACJ,SAAW,IAAK7M,CAAAA,SAAAA,CAAU6B,YAAayL,CAAAA,QAAAA,EAAU+F,UAAUxG,WAAW,EAAA,EAAIW,OAAQ,CAAA,kBAAkB,GAAK,CAAG,CAAA,CACxG,IAAMwtC,CACF,CAAA,IAAA,CAAK0Z,OAAO6B,QAAUC,EAAAA,aAAAA,EAAeliE,GAAI,CAAA,WAAW,GACpD,IAAKogE,CAAAA,KAAAA,EAAO6B,QAAUC,EAAAA,aAAAA,EAAeliE,IAAI,WAAW,CAAA,EACpD,IAAKogE,CAAAA,KAAAA,EAAO6B,UAAUC,aAAeliE,EAAAA,GAAAA,CAAI,WAAW,CACpD,EAAA,IAAA,CAAKogE,OAAO6B,QAAUC,EAAAA,aAAAA,EAAeliE,GAAI,CAAA,WAAW,EACxD,GAAI0mD,CAAAA,CACA,KAAK9tC,iBAAmByI,EAAAA,IAAAA,CAAKqlC,CAAS,CACnC,CAAA,KAAA,CACH,IAAM/mC,CAAAA,CAAY,KAAKmL,aAAepL,EAAAA,YAAAA,IAAkB,EACxD,CAAA,IAAA,CAAK9G,mBAAmByI,IAAK,CAAA,GAAA,CAAM,IAAK8+C,CAAAA,MAAAA,CAAOpzD,KAAO,GAAM,CAAA,IAAA,CAAK+d,aAAe/K,EAAAA,sBAAAA,CAAuBJ,CAAS,CAAGpH,EAAAA,WAAAA,EAAa,EACpI,CACJ,CACJ,CAEA6mE,sBAAoB,CAChB,IAAIK,EAAkB,EAClB2B,CAAAA,CAAAA,CAAQ,IAAK/F,CAAAA,eAAAA,GAAkBprE,QAASoxE,CAAAA,YAAAA,CAAe,IAAKhG,CAAAA,eAAAA,GAAkBprE,QAASoxE,CAAAA,YAAAA,CAAe,EACtG,CAAA,qBAAA,CAAsBl3C,KAAK9pB,SAAUC,CAAAA,SAAS,IAC9Cm/D,CAAkB,CAAA,IAAA,CAAKpE,iBAAkBprE,CAAAA,QAAAA,CAASqxE,kBAClDF,CAAAA,CAAAA,CAAQ,KAAK/F,eAAe,EAAA,CAAGprE,QAASsxE,CAAAA,QAAAA,CAAW,KAAKlG,eAAe,EAAA,CAAGprE,QAASsxE,CAAAA,QAAAA,CAAW,IAElG,IAAKf,CAAAA,2BAAAA,CAA4B3B,cAAc,sBAAwB,CAAA,yCAAA,CAA2CuC,CAAK,CAClH3B,CAAAA,CAAAA,EAGL1mE,MAAOulB,CAAAA,IAAAA,CAAKmhD,EAAiB,QAAQ,EACzC,CAEA+B,UAAU,EAAA,CACN,KAAKd,UAAa,CAAA,CAAA,EACtB,CAEA15F,IAAAA,EAAI,CACI,IAAK+5F,CAAAA,iBAAAA,EACL,KAAKP,2BAA4BjoC,CAAAA,KAAAA,CAAM,uBAAwB,2CAA2C,EAElH,CAEA17C,eAAAA,EAAe,CACX,IAAK2jF,CAAAA,2BAAAA,CAA4BjoC,KAAM,CAAA,sBAAA,CAAwB,eAAe,EAClF,CAEA8iC,eAAe,EAAA,CACX,OAAO,IAAKxvE,CAAAA,qBAAAA,CAAsBgE,qBACtC,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA3NSuwE,GAA6B9xE,GAAAC,CAAAA,EAAA,CAAAD,CAAAA,GAAAA,CAAAspE,EAAA,CAAAtpE,CAAAA,GAAAA,CAAAmzE,EAAA,CAAA,CAAAnzE,IAAAozE,IAAA,CAAA,CAAApzE,GAS1BE,CAAAA,EAAe,EAAAF,GAAAqwE,CAAAA,EAAA,EAAArwE,GAAAQ,CAAAA,GAAA,EAAAR,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAAyI,EAAA,CAAAzI,CAAAA,GAAAA,CAAAI,GAAA,CAAA,CAAAJ,IAAAg+D,IAAA,CAAA,CAAAh+D,GAAAK,CAAAA,GAAA,EAAAL,GAAAqzE,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAh3C,EAAA,CAAA,CAAA,IAAA,CATlBy1C,EAA6BnlF,SAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAxD,IAAA,CAAA,MAAA,EAAApQ,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,OAAA,CAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,IAAA,CAAA,wCAAA,CAAA,CAAA,CAAA,wCAAA,CAAA,CAAA,CAAA,IAAA,CAAA,+BAAA,CAAA,QAAA,4DAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,KAAA,8BAAA,CAAA,OAAA,CAAA,2CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,IAAA,CAAA,+BAAA,CAAA,EAAA,+BAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,WAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,IAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,eAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,IAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,8BAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,4CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,oCAAA,CAAA,EAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA,CAAA,IAAA,CAAA,oBAAA,QAAA,CAAA,QAAA,CAAA,CAAA,CAAA,KAAA,CAAA,cAAA,CAAA,CAAA,OAAA,CAAA,OAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oCAAA,EAAA,CAAA,IAAA,CAAA,kCAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,CAAA,KAAA,gCAAA,CAAA,CAAA,CAAA,gCAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,IAAA,CAAA,cAAA,CAAA,EAAA,wCAAA,CAAA,KAAA,CAAA,gBAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,IAAA,CAAA,iCAAA,CAAA,EAAA,iCAAA,CAAA,CAAA,CAAA,IAAA,CAAA,iCAAA,CAAA,CAAA,gCAAA,CAAA,CAAA,CAAA,aAAA,EAAA,CAAA,IAAA,CAAA,eAAA,CAAA,CAAA,wCAAA,CAAA,MAAA,aAAA,CAAA,CAAA,CAAA,OAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oCAAA,CAAA,CAAA,CAAA,EAAA,SAAA,CAAA,cAAA,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,QAAA,SAAA,CAAA,aAAA,EAAA,CAAA,UAAA,CAAA,cAAA,CAAA,CAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,GDlC1C7B,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAikF,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAsI,CAAAC,CAAAA,EAAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CA2E1IpmF,CAAAA,EAAAA,EA3EgH+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAAquG,iBAAA,CAWlBviF,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAAquG,CAAAA,iBAAA,mBCUtFz1C,EACAw2C,CAAAA,GAAAA,CACAvyE,IACAwyE,EACAvyE,CAAAA,GAAAA,CACAwyE,EACAC,CAAAA,GAAAA,CAGAC,GAAgB,CAAAljF,CAAAA,aAAAA,CAAA,CAAA,CAAA,EAGlB,IAAOohF,CAAAA,CAAP+B,CAAO/B,CAAAA,OAAAA,CAA6B,KC1B1C,IAAagC,IAAiC,IAAA,CAAxC,IAAOA,CAAP,CAAA,MAAOA,CAAiC,CAM1C5xG,YAA6BwvF,CAAiB,CAAA,CAAjB,KAAAA,MAAAA,CAAAA,CAAAA,CAFrB,KAAAqiB,aAAyB,CAAA,CAAA,EAEgB,CAEjD1mB,UAAAA,CAAWulB,EAAqBH,CAA0B,CAAA,CACtD,KAAKz1E,SAAY,CAAA,IAAA,CAAK00D,OAAO1hC,IAAK8hD,CAAAA,EAAAA,CAA+B,CAC7D7iE,KAAAA,CAAO,QACPhS,IAAM,CAAA,CACF21E,WAAaA,CAAAA,CAAAA,CACbH,kBAAmBA,CAEvBhW,CAAAA,CAAAA,UAAAA,CAAY,wBACf,CAAA,CAAA,CACD,KAAKsX,aAAgB,CAAA,CAAA,CAAA,CAErB,KAAK/2E,SAAUu8C,CAAAA,WAAAA,GAAchxD,SAAU,CAAA,IAAK,CAExC,IAAA,CAAKwrF,cAAgB,CACjB,CAAA,CAAA,IAAA,CAAKC,cACL,EAAA,IAAA,CAAKA,iBAEb,CAAC,EACL,CAEAC,aAAW,CACP,IAAA,CAAKj3E,WAAa,IAAKA,CAAAA,SAAAA,CAAUU,QACrC,CAEA,IAAIw2E,YAAAA,EAAY,CACZ,OAAO,IAAA,CAAKH,aAChB,CAEAb,YAAU,CACN,IAAA,CAAKl2E,SAAa,EAAA,IAAA,CAAKA,UAAU2/D,iBAAqB,EAAA,IAAA,CAAK3/D,UAAU2/D,iBAAkBuW,CAAAA,UAAAA,GAC3F,CAtCSY,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAiC5iF,GAAA2sE,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzuG,GAAA,CAAA,CAAA,KAAA,CAAjC0kH,EAAiC7kH,OAAjC6kH,CAAAA,CAAAA,CAAiCtsE,UAAAC,UAF9B,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOqsE,CAAPK,CAAAA,CAAAA,CAAAA,OAAOL,CAAiC,CAAA,GAAA,CCO9C,IAAaX,EAAuB,CAAA,CAAA,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAQhCjxG,WAAAA,CACYisG,EACAiG,CACAC,CAAAA,CAAAA,CACS73D,CACTjf,CAAAA,CAAAA,CACA+R,EAAc,CALd,IAAA,CAAA6+D,8BAAAA,CACA,CAAA,IAAA,CAAAiG,4BAAAA,CACA,CAAA,IAAA,CAAAC,qBAAAA,CAAAA,CAAAA,CACS,KAAA73D,aAAAA,CAAAA,CAAAA,CACT,IAAAjf,CAAAA,qBAAAA,CAAAA,EACA,IAAA+R,CAAAA,MAAAA,CAAAA,CAZZ,CAAA,IAAA,CAAAglE,iBAA4B,CAIX,CAAA,CAAA,IAAA,CAAAC,wCAA0CtoF,GAAOq8E,CAAAA,EAAuC,EAUrG,IAAKwB,CAAAA,iBAAAA,CAAoB,IAAKvsE,CAAAA,qBAAAA,CAAsB0oE,0BACpD,CAAA,IAAA,CAAKmO,2BAA4BJ,CAAAA,cAAAA,CAAiB,KAAKQ,8BAA+BxI,CAAAA,IAAAA,CAAK,IAAI,EACnG,CAEA2G,gBAAiB35G,CAAAA,CAAAA,CAAey7G,EAAkB,CAC9C,IAAA,CAAKH,iBAAmB,CACxB,CAAA,CAAA,IAAA,CAAKnG,6BAA8BxE,CAAAA,oBAAAA,CAAuB,GAC1D,IAAM+K,CAAAA,CAAY,KAAKn3E,qBAAsB0oE,CAAAA,wBAAAA,GAC7C,IAAKkI,CAAAA,6BAAAA,CAA8BtD,aAAiB8J,CAAAA,CAAAA,EAA2C,CAC3F,IAAKL,CAAAA,gBAAAA,CAAmB,GACxB,IAAKhlE,CAAAA,MAAAA,CAAO52B,KAAK,2BAA6B,CAAA,iCAAA,CAAmC,iBAAmBi8F,CAAAA,CAAoB,EACpHA,CAAoB,GAAA,aAAA,EAAoC,IAAKC,CAAAA,wBAAAA,CAAyB57G,CAAQ,EACtG,CAAA,CAEA,IAAKm1G,CAAAA,6BAAAA,CAA8BtwF,QAAW6tF,CAAyB,EAAA,CAInE,GAHA,IAAK4I,CAAAA,gBAAAA,CAAmB,GACxB,IAAK5I,CAAAA,SAAAA,CAAYA,CACjB,CAAA,IAAA,CAAKp8D,OAAO1lC,KAAM,CAAA,2BAAA,CAA6B,iCAAmC,CAAA,WAAA,CAAa8hG,CAAS,CACpGA,CAAAA,CAAAA,EAAaA,CAAUpmC,CAAAA,SAAAA,EAAa,MAAO,CACzB,IAAA,CAAK/nC,sBAAsB0oE,wBAAwB,EAAA,EACrD4O,WAIZ77G,CAAQ,EAAA,EAHR,IAAK87G,CAAAA,6BAAAA,CAA8B,KAAKC,kCAAmCrJ,CAAAA,CAAS,CAAG,CAAA,IAAA,CAAK+G,mBAAmB,CAAA,CAC/GgC,CAAa,EAAA,CAAA,CAIjB,MACJ,CAAO,KAAA,CACH,KAAK3K,iBAAoB,CAAA,IAAA,CAAKvsE,sBAAsB0oE,wBAAwB,EAAA,CACxE,IAAK6D,CAAAA,iBAAAA,EAAmBkL,0BACxB,IAAKX,CAAAA,qBAAAA,EAAuB/F,iBAAkBhvD,CAAqB,EAAA,CAC3DA,GAAY,IAAQ,EAAA,CAACA,CACrBtmD,CAAAA,CAAAA,GAEAy7G,CAAa,GAErB,CAAC,CACE,CAAA,IAAA,CAAKG,yBAAyB57G,CAAQ,CAAA,CAC7C,MACJ,CACJ,EAEA,IAAKm1G,CAAAA,6BAAAA,CAA8BnD,eAAkB,CAAA,IAAK,CAClD,IAAKsJ,CAAAA,gBAAAA,CAAkB,IAAKA,CAAAA,gBAAAA,CAAmB,GACzC,IAAKnG,CAAAA,6BAAAA,CAA8BxE,uBACzC,IAAKG,CAAAA,iBAAAA,CAAoB,KAAKvsE,qBAAsB0oE,CAAAA,wBAAAA,EAChD,CAAA,IAAA,CAAK6D,mBAAmBkL,yBACxB,CAAA,IAAA,CAAKX,qBAAsB/F,CAAAA,gBAAAA,CAAkBhvD,GAAqB,CAC1DA,CAAAA,EAAY,IAAQ,EAAA,CAACA,EAAUtmD,CAAQ,EAAA,CACtCy7G,IACT,CAAC,EACE,IAAKG,CAAAA,wBAAAA,CAAyB57G,CAAQ,CAAA,CAAA,CAEjD,KAAKs2C,MAAO52B,CAAAA,IAAAA,CAAK,2BAA6B,CAAA,iCAAA,CAAmC,mBAAmB,EACxG,CAAA,CAEKg8F,CAAUG,CAAAA,UAAAA,CAKP,KAAK1G,6BAA+B9G,EAAAA,kBAAAA,GACpC,KAAK8G,6BAA8B9G,CAAAA,kBAAAA,CAAmB4N,iBAAoBxO,CAAmC,EAAA,CACzG,GAAIA,CAAAA,CAAgB/jD,SAAW,WAAa,CAAA,CACxC,KAAK6xD,uCAAwC1L,CAAAA,oBAAAA,GAC7C,IAAKsF,CAAAA,6BAAAA,CAA8B3D,UAAW,CAAA,CAC1CG,aAAc,CACjB,CAAA,CAAA,CAAA,CACD,MACJ,CACIlE,CAAAA,CAAgB/jD,SAAW,cAC3B,EAAA,IAAA,CAAK6xD,uCAAwC9L,CAAAA,qBAAAA,CAAsB,CAC/DhC,eAAAA,CAAAA,CAAAA,CACAqC,cAAgB,CAAA,IAAA,CAAKvrE,sBAAsBgE,mBAAmB,EAAA,CAAGI,QACjEglE,CAAAA,qBAAAA,CAAuB,KAAKwH,6BAC/B,CAAA,EAET,EACA,IAAKA,CAAAA,6BAAAA,EAA+B9G,oBAAoB6N,cAAc,EAAA,CAAA,CArB1E,IAAK/G,CAAAA,6BAAAA,CAA8B3D,WAAW,CAC1CG,YAAAA,CAAc,CACjB,CAAA,CAAA,EAsBT,CAEAiK,wBAAyB57G,CAAAA,CAAAA,CAAa,CAClC,IAAA,CAAKo7G,4BAA4BH,WAAW,EAAA,CAC5Cj7G,IACJ,CAEQ87G,8BAA8BlC,CAAqBH,CAAAA,CAAAA,CAA0B,CACjF,IAAA,CAAK2B,4BAA4BlB,UAAU,EAAA,CACtC,IAAKkB,CAAAA,2BAAAA,CAA4BF,cAAc,IAAKE,CAAAA,2BAAAA,CAA4B/mB,UAAWulB,CAAAA,CAAAA,CAAaH,CAAiB,EAClI,CAEQA,mBAAiB,CACrB,OAAO,KAAKj2D,aAAc5K,CAAAA,OAAAA,EAC9B,CAEQ4iE,gCAA8B,CAC9B,IAAA,CAAKW,eACL,IAAKA,CAAAA,aAAAA,GAEb,CAEQJ,kCAAAA,CAAmCrJ,CAAqB,CAAA,CAE5D,OACKA,CAAaA,EAAAA,CAAAA,CAAUuG,gBAAkBvG,CAAUuG,CAAAA,cAAAA,CAFjC,gBAE8D,CAAM,EAAA,IAAA,CAAK9D,6BAA8B7D,CAAAA,cAElI,yCA5HS6I,CAAuBjiF,EAAAA,GAAAA,CAAAo4E,EAAA,CAAA,CAAAp4E,IAAA4iF,EAAA,CAAA,CAAA5iF,GAAA48E,CAAAA,IAAA,EAAA58E,GAAAuX,CAAAA,EAAA,EAAAvX,GAAAsP,CAAAA,GAAA,EAAAtP,GAAA2kB,CAAAA,EAAA,CAAA,CAAA,0BAAvBs9D,CAAuBlkH,CAAAA,OAAAA,CAAvBkkH,CAAuB3rE,CAAAA,SAAAA,CAAAC,WAFpB,MAAM,CAAA,CAEhB,CAAA,IAAO0rE,EAAPiC,CAAOjC,CAAAA,OAAAA,CAAuB,ICRpC,CAAA,IAAakC,IAAc,IAAA,CAArB,IAAOA,CAAAA,CAAP,MAAOA,CAAc,CAEvBnzG,WAAA,EAAA,CADiB,KAAAq7B,qBAAwBtR,CAAAA,GAAAA,CAAOuU,GAAqB,EACtD,CAEf80E,aAAcr4G,CAAAA,CAAAA,CAAM,CAChB,IAAM5F,CAAAA,CAAM,CAAE7C,CAAG,CAAA,CAAA,CAAGyhE,CAAG,CAAA,CAAC,EACxB,GAAIh5D,CAAAA,CAAEnC,OAAS,YAAgBmC,EAAAA,CAAAA,CAAEnC,OAAS,WAAemC,EAAAA,CAAAA,CAAEnC,IAAS,GAAA,UAAA,EAAcmC,EAAEnC,IAAS,GAAA,aAAA,CAAe,CACxG,IAAMy6G,CAAAA,CAAQt4G,EAAEu4G,OAAQ,CAAA,CAAC,CAAKv4G,EAAAA,CAAAA,CAAEw4G,eAAe,CAAC,CAAA,CAChDp+G,CAAI7C,CAAAA,CAAAA,CAAI+gH,EAAMG,KACdr+G,CAAAA,CAAAA,CAAI4+D,CAAIs/C,CAAAA,CAAAA,CAAMI,MAClB,CACI14G,KAAAA,CAAAA,CAAAA,CAAEnC,OAAS,WACXmC,EAAAA,CAAAA,CAAEnC,OAAS,SACXmC,EAAAA,CAAAA,CAAEnC,IAAS,GAAA,WAAA,EACXmC,EAAEnC,IAAS,GAAA,WAAA,EACXmC,CAAEnC,CAAAA,IAAAA,GAAS,YACXmC,CAAEnC,CAAAA,IAAAA,GAAS,YACXmC,EAAAA,CAAAA,CAAEnC,OAAS,YAEXzD,IAAAA,CAAAA,CAAI7C,EAAIyI,CAAEy4G,CAAAA,KAAAA,CACVr+G,EAAI4+D,CAAIh5D,CAAAA,CAAAA,CAAE04G,KAEd,CAAA,CAAA,OAAOt+G,CACX,CAEAu+G,gBAAAA,CAAiBC,CAA0BC,CAAAA,GAAAA,CAAAA,CAAc,CACjDD,CAAoB,EAAA,IAAA,GACpBA,CAAmB,CAAA,IAGvB,IAAME,CAAAA,CAAmB/rD,OAAO6rD,CAAgB,CAAA,CAGhD,QAASG,CAAgB,CAAA,CAAA,CAAGA,CAAgBF,CAAAA,CAAAA,CAAQ9qG,OAAQgrG,CAAiB,EAAA,CAAA,CACzE,IAAMC,CAAAA,CAAaH,EAAQE,CAAa,CAAA,CAExC,GAAIC,CAAAA,CAEA,QAAWC,CAAqBD,IAAAA,CAAAA,CAExBjsD,OAAOjlD,SAAUw9E,CAAAA,cAAAA,CAAe4zB,KAAKF,CAAYC,CAAAA,CAAiB,CAE9D,GAAA,OAAOH,EAAiBG,CAAiB,CAAA,EAAM,QAC/CH,EAAAA,CAAAA,CAAiBG,CAAiB,CAClC,EAAA,OAAOD,CAAWC,CAAAA,CAAiB,GAAM,QACzCD,EAAAA,CAAAA,CAAWC,CAAiB,CAE5B,CAAA,IAAA,CAAKN,iBAAiBG,CAAiBG,CAAAA,CAAiB,CAAC,CAAA,CAEzDH,EAAiBG,CAAiB,CAAA,CAAID,CAAWC,CAAAA,CAAiB,GAKtF,CACA,OAAOH,CACX,CAEAK,eAAeC,CAAcC,CAAAA,CAAAA,CAAa,CACtC,OAAO,IAAI/wE,KAAK8wE,CAAMC,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAEvuB,SACpC,CAEAwuB,wBAAwB,EAAA,CACpB,IAAMC,CAAa,CAAA,CAAC,SAAW,CAAA,UAAA,CAAY,QAAS,OAAS,CAAA,KAAA,CAAO,OAAQ,MAAQ,CAAA,QAAA,CAAU,YAAa,SAAW,CAAA,UAAA,CAAY,UAAU,CAAA,CACtIC,EAAgB,IAAKl5E,CAAAA,qBAAAA,CAAsBm5E,+BAAiCD,EAAAA,aAAAA,CAAgB,EAElG,OADmB,IAAIlxE,IAAI,EAAA,CAAGwiD,SACZ0uB,EAAAA,CAAAA,CACPD,EAAW,IAAIjxE,IAAAA,GAAOyiD,QAAQ,EAAA,CAAK,CAAC,CAAA,CAEpCwuB,EAAW,IAAIjxE,IAAAA,EAAOyiD,CAAAA,QAAAA,EAAU,CAE/C,CAGA50C,2BAA4B/B,CAAAA,CAAAA,CAAiB,CAEzC,IAAMG,CAAAA,CAD2B,KAAKjU,qBAAsBgU,CAAAA,gBAAAA,GACdC,YAC9C,CAAA,IAAA,IAAS7hD,CAAI,CAAA,CAAA,CAAGA,EAAI6hD,CAAaxmC,CAAAA,MAAAA,CAAQrb,CACrC,EAAA,CAAA,GAAI6hD,EAAa7hD,CAAC,CAAA,CAAE0hD,SAAaA,EAAAA,CAAAA,EACzBG,EAAa7hD,CAAC,CAAA,CAAE2hC,QAAS,OAAOkgB,CAAAA,CAAa7hD,CAAC,CAAG2hC,EAAAA,OAAAA,EAAS2Y,WAAW,EAAA,CAGjF,OAAO,EACX,CAEA0sE,qBAAsBC,CAAAA,CAAAA,CAAkB,CACpC,IAAMC,CAAAA,CAAmC,IAAIxzE,GAAAA,CAC7C,GAAIuzE,CAAiBA,EAAAA,CAAAA,CAAc5rG,OAAS,CACxC,CAAA,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAIinH,CAAc5rG,CAAAA,MAAAA,CAAQrb,IAAK,CAC3C,IAAMmnH,EAAmBF,CAAcjnH,CAAAA,CAAC,EACxC,GAAImnH,CAAAA,CAASlsE,OAAQ,CAAA,GAAG,EAAI,CAAI,CAAA,CAAA,CAC5B,IAAMmsE,CAAmBD,CAAAA,CAAAA,CAAS1mG,MAAM,GAAG,CAAA,CAC3CymG,CAAY7uG,CAAAA,GAAAA,CAAI+uG,EAAY,CAAC,CAAA,CAAGA,CAAY,CAAA,CAAC,CAAC,EAClD,CACJ,CAEJ,OAAOF,CACX,CAjGSxB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAc,0BAAdA,CAAcpmH,CAAAA,OAAAA,CAAdomH,EAAc7tE,SAAAC,CAAAA,UAAAA,CAFX,MAAM,CAAA,EAEhB,IAAO4tE,CAAAA,CAAP2B,CAAO3B,CAAAA,OAAAA,CAAc,KCA3B,IAAaz/D,EAAa,CAAA,CAAA,IAAA,CAApB,IAAOA,CAAAA,CAAP,MAAOA,CAAa,CAH1B1zC,aAAA,CAII,IAAA,CAAA+0G,WAAc,CAAA,CAAA,CAAA,CACG,KAAAvtE,gBAAmBzd,CAAAA,GAAAA,CAAOke,IAAgB,EAAA,CAE3D+sE,UAAU1hH,CAAY,CAAA,CAClB,IAAM2hH,CAAAA,CAAoBC,mBAAmBj4E,QAAS+jB,CAAAA,MAAM,EAAE9yC,KAAM,CAAA,GAAG,EACjEinG,CAAgBF,CAAAA,CAAAA,CAAGnsG,MACnBssG,CAAAA,CAAAA,CAAa,GAAG9hH,CAAI,CAAA,CAAA,CAAA,CACtB+Q,EAEJ,IAAS5W,IAAAA,CAAAA,CAAI,EAAGA,CAAI0nH,CAAAA,CAAAA,CAAO1nH,CAAK,EAAA,CAAA,CAE5B,GADA4W,CAAI4wG,CAAAA,CAAAA,CAAGxnH,CAAC,CAAEkvC,CAAAA,OAAAA,CAAQ,QAAS,EAAE,CAAA,CACzBt4B,CAAEqkC,CAAAA,OAAAA,CAAQ0sE,CAAU,CAAM,GAAA,CAAA,CAC1B,OAAO/wG,CAAAA,CAAE+lD,UAAUgrD,CAAWtsG,CAAAA,MAAAA,CAAQzE,CAAEyE,CAAAA,MAAM,EAGtD,OAAO,EACX,CAEAusG,SAAU/hH,CAAAA,CAAAA,CAActC,EAAeskH,CAAoBrd,CAAAA,CAAAA,CAAe,EAAE,CAAA,CACxE,IAAMhrG,CAAU,CAAA,IAAIo2C,IACpBp2C,CAAAA,CAAAA,CAAEsoH,QAAQtoH,CAAEs2C,CAAAA,OAAAA,EAAY+xE,CAAAA,CAAAA,CAAa,GAAK,EAAK,CAAA,EAAA,CAAK,GAAI,CACxD,CAAA,IAAME,EAAU,CAAWvoH,QAAAA,EAAAA,CAAAA,CAAEwoH,WAAW,EAAE,GACpCC,CAAQzd,CAAAA,CAAAA,CAAO,CAAUA,OAAAA,EAAAA,CAAI,GAAK,EACxCh7D,CAAAA,QAAAA,CAAS+jB,MAAS,CAAA,CAAA,EAAG1tD,CAAI,CAAItC,CAAAA,EAAAA,CAAK,KAAKwkH,CAAO,CAAA,EAAGE,CAAK,CAC1D,cAAA,EAAA,CAGAC,OAAQC,CAAAA,CAAAA,CAAoB76G,EAAQ86G,CAAgBC,CAAAA,CAAAA,CAAmB,CACnE,GAAKF,CAAAA,CAEMA,IACP,IAAKP,CAAAA,SAAAA,CAAUQ,CAAQ,CAAA,GAAA,CAAKC,CAAW,CACvC,CAAA,IAAA,CAAKf,YAAc,CACnBh6G,CAAAA,CAAAA,CAAAA,CAAE+Q,gBAJF,CAAA,CAAA,KAAA,OAAO,IAAKipG,CAAAA,WAAAA,CAMhB,OAAO,CACX,CAAA,CAEAgB,KAAMC,CAAAA,CAAAA,CAAe,CACjB,IAAMC,CAAAA,CAAkB,IAAKjB,CAAAA,SAAAA,CAAU,WAAW,CAElD,CAAA,OADuB,KAAKxtE,gBAAkB4jC,EAAAA,eAAAA,EAAiBrjC,aAAkBiuE,GAAAA,CAAAA,EAAWC,CAAiBluE,EAAAA,WAAAA,KAAkBiuE,CAEnI,CAEAE,UAAU,EAAA,CAEN,OADwB,IAAKlB,CAAAA,SAAAA,CAAU,WAAW,CAAA,EAC1BjtE,aAAiB,EAAA,OAC7C,CAEA8qD,aAActkG,CAAAA,CAAAA,CAAQ,CAClB,OAAI,IAAA,CAAKymH,SAAUzmH,CAAAA,CAAG,EAAI,GAI9B,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAvDSmlD,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAxmD,GAAA,CAAA,CAAA,KAAA,CAAbwmD,EAAa3mD,OAAb2mD,CAAAA,CAAAA,CAAapO,SAAAC,CAAAA,UAAAA,CAFV,MAAM,CAAA,CAAA,CAEhB,IAAOmO,CAAPyiE,CAAAA,CAAAA,CAAAA,OAAOziE,CAAa,CAAA,GAAA,CA0Dd0iE,IAAZ,CAAA,SAAYA,EAAQ,CAChBA,OAAAA,EAAA,WAAA,CAAA,YAAA,CACAA,EAAA,WAAA,CAAA,YAAA,CAFQA,CAGZ,CAAA,CAHYA,MAAQ,EAAA,ECjDPC,IAAAA,IAAAA,CAAAA,CAA6B,IAAA,CAApC,IAAOA,CAAP,CAAA,MAAOA,CAA6B,CAGtCr2G,WAAAA,CACYq7B,CACAi7E,CAAAA,CAAAA,CACAtmB,EACAp3C,CACA6d,CAAAA,CAAAA,CACAnc,CACAzB,CAAAA,CAAAA,CACSrR,EACTyF,CACAJ,CAAAA,CAAAA,CACAzR,EACAm7E,CAAwC,CAAA,CAXxC,KAAAl7E,qBAAAA,CAAAA,CAAAA,CACA,IAAAi7E,CAAAA,YAAAA,CAAAA,EACA,IAAAtmB,CAAAA,sBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAp3C,kBAAAA,CACA,CAAA,IAAA,CAAA6d,gBAAAA,CAAAA,CAAAA,CACA,KAAAnc,aAAAA,CAAAA,CAAAA,CACA,KAAAzB,qBAAAA,CAAAA,CAAAA,CACS,KAAArR,gBAAAA,CAAAA,CAAAA,CACT,IAAAyF,CAAAA,aAAAA,CAAAA,EACA,IAAAJ,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAzR,cAAAA,CACA,CAAA,IAAA,CAAAm7E,mBAAAA,CAAAA,EACT,CAEHC,aAAcp5D,CAAAA,CAAAA,CAAe0e,EAA2B,CACpD,IAAIpiB,EACA+8D,CACEC,CAAAA,CAAAA,CAAmBt5D,CAASu5D,CAAAA,kCAAAA,CAC5BC,EAAwBx5D,CAASy5D,CAAAA,uCAAAA,CACjCjwE,EAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,mBACxCiwE,CAAAA,CAAAA,CAAgB,IAAKz7E,CAAAA,qBAAAA,CAAsBU,uBAC3CL,CAAAA,CAAAA,CAAe,KAAKL,qBAAsBM,CAAAA,mBAAAA,GAC1CwhC,CAAwB,CAAA,IAAA,CAAK9hC,qBAAsB+hC,CAAAA,4BAAAA,GACnDhuC,CAAU,CAAA,IAAA,CAAKqY,iBAAkBivE,CAAAA,CAAAA,CAAiBtnF,OAAO,CACzDmvC,CAAAA,CAAAA,CAAYm4C,CAAiBn4C,CAAAA,SAAAA,CAC7Bw4C,GAAe,IAAKT,CAAAA,YAAAA,CAAa9mF,IAAI,UAAU,CAAA,CAC/CgN,GAAW,IAAK85E,CAAAA,YAAAA,CAAa9mF,GAAI,CAAA,UAAU,EAC3CwnF,EAAsBF,CAAAA,CAAAA,CAAcG,mBACpCC,CAAAA,EAAAA,CAAgBJ,EAAcI,aAC9BC,CAAAA,EAAAA,CAAUz7E,CAAay7E,CAAAA,OAAAA,CACvBC,GAAa17E,CAAa07E,CAAAA,UAAAA,CAC1BC,GAAU,IAAKC,CAAAA,mBAAAA,GAAwB,IAAKA,CAAAA,mBAAAA,EAAwB,CAAA,EAAA,CACpEC,GAAa,IAAKC,CAAAA,aAAAA,EAClBC,CAAAA,EAAAA,CAAa,KAAKC,aAAa,EAAA,CAC/BC,EAAgB,CAAA,IAAA,CAAKC,kBACrBC,CAAAA,EAAAA,CAAY,KAAKphD,gBAAiBhX,CAAAA,qBAAAA,CAAsBqc,EAAgBpc,IAAI,CAAA,CAC5Eo4D,EAAoB,CAAA,EAAA,IAAA,CAAKtwE,iBAAiBs3B,WAAe,EAAA,IAAA,CAAKt3B,iBAAiB+D,eAC/EwsE,CAAAA,CAAAA,EAAAA,CAAgBrB,EAAiBqB,aACjClW,CAAAA,EAAAA,CAAa,IAAKvnD,CAAAA,aAAAA,CAAc5K,SAAY,CAAA,IAAA,CAAO,KACnDsoE,EAAuB,CAAA,IAAA,CAAK38E,sBAAsBwf,2BAA2B,EAAA,CAC7Eo9D,EAAY,CAAA,IAAA,CAAK78E,eAAekB,OAClC47E,CAAAA,EAAAA,CAAqBxB,CAAiBwB,CAAAA,kBAAAA,CACtCp8C,EAAgBimC,gBAAoB,EAAA,cAAA,GACpCmW,EAAqB,CAAA,IAAA,CAAKC,yBAAyBzB,CAAiBwB,CAAAA,kBAAkB,GAE1FxB,CAAiBzmE,CAAAA,WAAAA,CAAcilE,mBAAmBwB,CAAiBzmE,CAAAA,WAAW,CAC9EymE,CAAAA,CAAAA,CAAiBzmE,YAAcymE,CAAiBzmE,CAAAA,WAAAA,CAAYtT,OAAQ,CAAA,IAAA,CAAM,GAAG,CAEzEm/B,CAAAA,CAAAA,CAAgBi+B,aAAkB,GAAA,SAAA,EAAaie,GAAqBI,qCAC9D1B,GAAAA,CAAAA,CAAiBzmE,YAAYvH,OAAQ,CAAA,4BAA4B,EAAI,CACvEguE,CAAAA,GAAAA,CAAAA,CAAiBzmE,WAAc,CAAA,IAAA,CAAKooE,kBAAkB3B,CAAiBzmE,CAAAA,WAAAA,CAAa,uBAAyB,CAAA,MAAM,IAGvH6rB,CAAgBoa,CAAAA,SAAAA,EAAapa,CAAgBoa,CAAAA,SAAAA,EAAa,KAC1DwgC,CAAiBzmE,CAAAA,WAAAA,CAAc6rB,EAAgBoa,SAEnDwgC,CAAAA,CAAAA,CAAAA,CAAiBzmE,YAAcqvB,kBAAmBo3C,CAAAA,CAAAA,CAAiBzmE,WAAW,CAAA,CAC9E,KAAK+/C,sBAAuBzwB,CAAAA,0BAAAA,GAC5B,IAAMC,EAAAA,CAAYj3B,OACd+vE,EAAa,CAAA,CAAA,CACb94C,EAAUC,CAAAA,YAAAA,CAAaC,WAAajvB,KACpC+uB,CAAAA,EAAAA,EAAAA,CAAUC,aAAaC,QAAS5oB,CAAAA,QAAAA,CAAS6H,QAASghB,EAAqB,EAAA,CAC/DA,EAAcrsE,EAAAA,IAAAA,EAAMy0C,aAAkB,GAAA,IAAA,CAAKmL,cAAgBnL,EAAAA,WAAAA,KAC3DuwE,EAAa34C,CAAAA,EAAAA,CAAaC,YAElC,EAAA,CAAC,GAEA,IAAK/yB,CAAAA,aAAAA,CAAcgzB,UAAY,IAAKhzB,CAAAA,aAAAA,CAAc6C,UAAY8vB,EAAUC,CAAAA,YAAAA,CAAaK,WAAgBrvB,GAAAA,KAAAA,CAAAA,EACtG+uB,GAAUC,YAAaK,CAAAA,WAAAA,CAAYC,KAAMphB,CAAAA,OAAAA,CAASqhB,IAAsB,CAChEA,EAAAA,EAAe1sE,IAAMy0C,EAAAA,WAAAA,KAAkB,IAAKmL,CAAAA,cAAAA,EAAgBnL,aAC5DuwE,GAAAA,EAAAA,CAAat4C,GAAcJ,YAEnC,EAAA,CAAC,CAEL,CAAA,IAAI24C,GAAa,IAAKrlE,CAAAA,cAAAA,CAAiB,IAAKA,CAAAA,cAAAA,CAAiB4oB,GAAiB5oB,cAC9EqlE,CAAAA,EAAAA,CAAaA,EAA0B,EAAA,OAAA,CACvC,IAAMC,EAAe18C,CAAAA,CAAAA,EAAiBwnB,QAAU18C,CAAW6xE,CAAAA,iBAAAA,CAAkB/vE,QAAQ61B,CAAS,CAAA,CAAI,CAC9Fm6C,CAAAA,CAAAA,EAAAA,CAAyB,KAAKr9E,qBAAsBwL,CAAAA,iBAAAA,IAAqB6xE,sBAI7E,CAAA,GAHA,KAAKC,YACAD,CAAAA,EAAAA,EAAwBxC,UAAc,EAAA,IAAA,CAAKK,oBAAoBL,UAAU,EAAA,EACzEwC,IAAwBE,KAAS,EAAA,IAAA,CAAKrC,oBAAoBR,KAAMK,CAAAA,IAAAA,CAASyC,WAAW,CAAA,CAAA,CACpF,KAAKv+D,aAAcrH,CAAAA,qBAAAA,CAAsB6oB,CAAiBpc,EAAAA,IAAAA,EAAMvQ,UAAWopE,EAAU,CAAA,EAAK,IAAKI,CAAAA,YAAAA,GAAiB,CAACH,EAClH9+D,CAAAA,CAAAA,CAAM,KAAKo/D,4BACPlyE,CAAAA,CAAAA,CACA8vE,EACA56C,CACAyC,CAAAA,CAAAA,CACAnvC,CACAkpF,CAAAA,EAAAA,CACAnB,GACA36E,EACA46E,CAAAA,EAAAA,CACAL,EACAkB,CAAAA,EAAAA,CACAF,GACAD,EAAiB,CAAA,CAAA,KAElB,CACH,IAAMiB,GAAqC,CACvCv8E,EAAAA,CACAk6E,EAAiBhxC,gBACjBgxC,CAAAA,CAAAA,CAAiBsC,aACjBz6C,CACAnvC,CAAAA,CAAAA,CACAsnF,CAAiBzmE,CAAAA,WAAAA,CACjBqvB,mBAAmB+3C,EAAO,CAAA,CAC1B/3C,kBAAmBi4C,CAAAA,EAAU,EAC7Bj4C,kBAAmB44C,CAAAA,EAAkB,CACrC54C,CAAAA,kBAAAA,CAAmBo3C,EAAiBuC,oBAAoB,CAAA,CACxD9B,GACAr7C,CAAgBpc,CAAAA,IAAAA,CAAKvQ,UACrBvI,CAAWsyE,CAAAA,GAAAA,CAAIC,iBACfzC,CAAAA,CAAAA,CAAiB0C,gBACjBxyE,CAAWsyE,CAAAA,GAAAA,CAAIG,kBACf5B,EACAn4C,CAAAA,kBAAAA,CAAmBo3C,EAAiB4C,4BAA4B,CAAA,CAChEh6C,kBAAmBo3C,CAAAA,CAAAA,CAAiB6C,aAAa,CACjDz9C,CAAAA,CAAAA,CAAgB9+D,KAChB8+D,CAAgB+Z,CAAAA,YAAAA,CAChBvW,mBAAmBq4C,EAAa,CAAA,CAChCjB,CAAiB8C,CAAAA,cAAAA,CAAeC,WAChCn6C,kBAAmBy4C,CAAAA,EAAa,CAChCD,CAAAA,EAAAA,CACAV,GACAkB,EACAx8C,CAAAA,CAAAA,CAAgBo+B,YAAe,CAAA,CAAA,CAC/B+d,EAAS,CAGPyB,CAAAA,EAAAA,CAAsC,CACxChD,CAAiBsC,CAAAA,YAAAA,CACjBtC,EAAiBhxC,gBACjBt2C,CAAAA,CAAAA,CACAmvC,CACAm4C,CAAAA,CAAAA,CAAiBsC,aACjBjC,EACAv6E,CAAAA,EAAAA,CACA,OACA87E,CAAAA,EAAAA,CACAx8C,EAAgBo+B,YAAe,CAAA,CAAA,CAC/B,MACA,CAAA,KAAA,CACA56B,mBAAmBo3C,CAAiBiD,CAAAA,uBAAuB,EAC3D3C,EACAE,CAAAA,EAAAA,CAAc3kH,UACd4kH,CAAAA,EAAAA,CACAC,EACAS,CAAAA,EAAAA,CAAUtlH,UACVmkH,CAAAA,CAAAA,CAAiB8C,cAAeC,CAAAA,UAAAA,CAChC7yE,EAAWsyE,GAAIG,CAAAA,iBAAAA,CACf/5C,kBAAmB+3C,CAAAA,EAAO,EAC1BxV,EACA6U,CAAAA,CAAAA,CAAiBzmE,YACjB6rB,CAAgBpc,CAAAA,IAAAA,CAAKvQ,UACrB8oE,EAAS,CAAA,CAETrxE,CAAW6xE,CAAAA,iBAAAA,CAAkB/vE,QAAQ61B,CAAS,CAAA,CAAI,GAE9CzC,CAAgBwa,CAAAA,mBAAAA,EAChBmgC,EAAoB7vE,CAAWgzE,CAAAA,2BAAAA,CAC/BlgE,CAAM,CAAA,IAAA,CAAKxd,OAAOu6E,CAAmBiD,CAAAA,EAAoB,GACjDt8D,CAASy8D,CAAAA,UAAAA,EAIjBpD,EAAoB7vE,CAAWgzE,CAAAA,2BAAAA,CAC/BlgE,CAAM,CAAA,IAAA,CAAKxd,OAAOu6E,CAAmBiD,CAAAA,EAAoB,CAJzDjD,GAAAA,CAAAA,CAAoB7vE,EAAWkzE,uBAAwBrD,CAAAA,iBAAAA,CACvD/8D,CAAM,CAAA,IAAA,CAAKxd,OAAOu6E,CAAmBiD,CAAAA,EAAoB,IAMzD59C,CAAgBimC,CAAAA,gBAAAA,EAAoB,oBACpC0U,CAAoB7vE,CAAAA,CAAAA,CAAWmzE,qBAAsBtD,CAAAA,iBAAAA,CAErDA,EAAoB7vE,CAAWozE,CAAAA,gBAAAA,CAAiBvD,iBAEpD/8D,CAAAA,CAAAA,CAAM,KAAKxd,MAAOu6E,CAAAA,CAAAA,CAAmBsC,EAAmB,CAAA,EAEhE,CA2BA,GA1BInC,CAAAA,GACIhwE,GAAYqzE,oBAAyBn+C,GAAAA,CAAAA,EAAiBihB,SAAWjhB,CAAiBkhB,EAAAA,YAAAA,CAAAA,GAClF45B,CAAsB75B,CAAAA,OAAAA,CAAUjhB,EAAgBihB,OAChD65B,CAAAA,CAAAA,CAAsB55B,YAAelhB,CAAAA,CAAAA,CAAgBkhB,cAGrD45B,CAAsBnsC,CAAAA,cAAAA,GACtBmsC,CAAsBnsC,CAAAA,cAAAA,CAAiB3O,EAAgB2O,cAEvDmsC,CAAAA,CAAAA,CAAAA,CAAsBsD,eAClBp+C,CAAgBo+C,CAAAA,YAAAA,CAChBtD,EAAsBsD,YAAep+C,CAAAA,CAAAA,CAAgBo+C,YAErDtD,CAAAA,CAAAA,CAAsBsD,aAAe,IAAKA,CAAAA,YAAAA,IAGlDpyD,MAAO55D,CAAAA,IAAAA,CAAK0oH,CAAqB,CAAEj4D,CAAAA,OAAAA,CAASpwD,EAAe,EAAA,CACvDmrD,EAAM,IAAK2+D,CAAAA,iBAAAA,CAAkB3+D,EAAKnrD,EAAKqoH,CAAAA,CAAAA,CAAsBroH,EAAG,CAAC,EACrE,CAAC,CAAA,CAAA,CAED4uE,EAAsBG,qBACtB5jB,GAAAA,CAAAA,CAAM,IAAKs2C,CAAAA,sBAAAA,CAAuB1xB,yBAAyB5kB,CAAK6kB,CAAAA,CAAS,CAE7E7kB,CAAAA,CAAAA,CAAAA,CAAMA,EAAIxrC,KAAM,CAAA,IAAI,EAAEisG,IAAK,CAAA,GAAG,EAC9BzgE,CAAM,CAAA,IAAA,CAAK0gE,gBAAiB1gE,CAAAA,CAAAA,CAAK,SAAS,CAC1CA,CAAAA,CAAAA,CAAM,IAAK2gE,CAAAA,OAAAA,CAAQ3gE,CAAG,CAClB,CAAA,IAAA,CAAKre,qBAAuBuL,EAAAA,UAAAA,EAAY0zE,gCAAiC,CACzE,IAAMC,GAAoB,YACpBtE,CAAAA,EAAAA,CAAkB,KAAKhpE,aAAczd,CAAAA,GAAAA,CAAI,WAAW,CAAA,CACtDymF,IAAmB,IAAMv8D,GAAAA,CAAAA,CAAM,IAAK2+D,CAAAA,iBAAAA,CAAkB3+D,EAAK6gE,EAAWtE,CAAAA,EAAe,CAC7F,EAAA,CAEA,OAAOv8D,CACX,CAEAo/D,6BACIlyE,CACA8vE,CAAAA,CAAAA,CACA56C,EACAyC,CACAnvC,CAAAA,CAAAA,CACAkpF,CACAnB,CAAAA,CAAAA,CACA36E,EACA46E,CACAL,CAAAA,CAAAA,CACAkB,EACAF,CACAD,CAAAA,EAAAA,CAA0B,CAE1B,IAAIp+D,EAAAA,CACA+8D,EACA+D,CAAAA,EAAAA,CAA8B5zE,EAAW6xE,iBAAkB/vE,CAAAA,OAAAA,CAAQ61B,CAAS,CAAI,CAAA,CAAA,CAAA,CAChFk8C,GAAoB3+C,CAAiBpc,EAAAA,IAAAA,EAAMvQ,SAAWpH,EAAAA,WAAAA,IAAiBnB,CAAYw+B,EAAAA,eAAAA,EAAiBr9B,WAAW,EAAA,CACnH2uE,EAAiBzmE,WAAc,CAAA,IAAA,CAAK0oE,YAC9B/xE,EAAAA,CAAAA,EAAY8zE,kBACRp7C,kBAAmB14B,CAAAA,CAAAA,EAAY8zE,iBAAiB,CAEpDhE,CAAAA,CAAAA,CAAiBzmE,YAEvB,IAAI0qE,EAAAA,CAAsC,CACtCjE,CAAAA,CAAiBhxC,iBACjBgxC,CAAiBsC,CAAAA,YAAAA,CACjBz6C,CACAnvC,CAAAA,CAAAA,CACAkpF,EACAx8C,CAAgBo+B,CAAAA,YAAAA,CAAe,CAC/Bid,CAAAA,CAAAA,CACAr7C,EAAgBpc,IAAKvQ,CAAAA,SAAAA,CACrBunE,EAAiB0C,eACjBt9C,CAAAA,CAAAA,CAAgB9+D,KAChBw/B,CACAk6E,CAAAA,CAAAA,CAAiBzmE,WACjBymE,CAAAA,CAAAA,CAAiB8C,eAAeC,UAChCrC,CAAAA,CAAAA,CACAL,CACA,CAAA,OAAA,CACAyD,GACAC,EACAxC,CAAAA,CAAAA,CACA34C,kBAAmBy4C,CAAAA,CAAa,EAChCD,EAAiB,CAAA,CAErBrB,OAAAA,EAAoB7vE,CAAAA,CAAAA,EAAYg0E,qBAAqBnE,iBACrD/8D,CAAAA,EAAAA,CAAM,IAAKxd,CAAAA,MAAAA,CAAOu6E,GAAmBkE,EAAuB,CAAA,CACrDjhE,EACX,CAEAxd,MAAAA,CAAO37B,EAAiBnQ,CAAoB,CAAA,CACxC,IAAIgvE,CAAAA,CAAY7+D,EAChB,IAAS9S,IAAAA,CAAAA,CAAI,EAAGA,CAAI8S,CAAAA,CAAAA,CAAQuI,OAAQrb,CAAK,EAAA,CAAA,CACrC,IAAM4xE,CAAAA,CAAQ,IAAIt9B,MAAO,CAAA,KAAA,CAAQt0C,CAAI,CAAA,KAAA,CAAO,IAAI,CAC5C2C,CAAAA,CAAAA,CAAM3C,CAAC,CAAA,EAAKgjD,KACZ2uB,CAAYA,CAAAA,CAAAA,CAAUziC,QAAQ0iC,CAAOjvE,CAAAA,CAAAA,CAAM3C,CAAC,CAAC,CAAA,CAE7C2xE,CAAYA,CAAAA,CAAAA,CAAUziC,QAAQ0iC,CAAO,CAAA,EAAE,EAE/C,CACA,OAAOD,CACX,CACAk4C,mBAAmB,EAAA,CACf,IAAMuD,CAAY,CAAA,IAAA,CAAKvE,aAAa9mF,GAAI,CAAA,WAAW,EAC7CsrF,CAAe,CAAA,IAAA,CAAKxE,YAAa9mF,CAAAA,GAAAA,CAAI,cAAc,CACnDypB,CAAAA,CAAAA,CAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAClD,CAAA,OAAO,IAAKL,CAAAA,qBAAAA,CAAsBT,aAC9Ba,CAAei+C,CAAAA,IAAAA,CAAK,eACpB,IAAKt+C,CAAAA,iBAAAA,CAAkBxB,eACvByjE,CAAAA,CAAAA,CACAC,CAAY,CAEpB,CACAtD,aAAa,EAAA,CACT,IAAMv+D,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKN,kBAAkBxB,aAAa,EAAA,CAAK6B,EAAekH,QAAS,CAAA,QAC5E,CACAu3D,aAAa,EAAA,CAGT,GAFqB,IAAA,CAAKr8E,sBAAsBM,mBAAmB,EAAA,CACnCo/E,UACd,EAAA,IAAA,CACd,OAAO,IACJ,CAAA,CACH,IAAM9hE,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAClD,OAAOomB,kBAAAA,CAAmB,KAAK1mB,iBAAkBxB,CAAAA,aAAAA,EAAkB6B,CAAAA,CAAAA,CAAekH,SAAS,QAAW,CAC1G,CACJ,CACAy3D,kBAAgB,CAEZ,IAAMD,CADa,CAAA,IAAA,CAAKt8E,sBAAsBwL,iBAAiB,EAAA,CACtBqyE,IAAI8B,iBAC7C,CAAA,OAAOrD,EAAcvtD,SAAU,CAAA,CAAA,CAAGutD,CAAcsD,CAAAA,WAAAA,CAAY,GAAG,CAAC,CACpE,CACAZ,OAAAA,CAAQ3gE,EAAW,CACf,IAAM9S,CAAa,CAAA,IAAA,CAAKvL,sBAAsBwL,iBAAiB,EAAA,CAC/D,OAAI6S,CAAIhR,CAAAA,OAAAA,CAAQ,MAAM,CAAK,EAAA,CAAA,CAAA,GACvBgR,CAAM9S,CAAAA,CAAAA,CAAWZ,KAAO,GAAM0T,CAAAA,CAAAA,CAAAA,CAE3BA,CACX,CACA2+D,kBAAkB3+D,CAAanrD,CAAAA,CAAAA,CAAayC,CAAa,CAAA,CACrD,OAAI0oD,CAAIhR,CAAAA,OAAAA,CAAQ,GAAG,CAAI,CAAA,CAAA,CAAA,CACnBgR,GAAO,GAAMnrD,CAAAA,CAAAA,CAAM,GAAMyC,CAAAA,CAAAA,CAEzB0oD,GAAO,GAAMnrD,CAAAA,CAAAA,CAAM,GAAMyC,CAAAA,CAAAA,CAEtB0oD,CACX,CAEAwgE,YAAAA,EAAY,CACR,IAAMjE,EAAkB,IAAKhpE,CAAAA,aAAAA,CAAczd,IAAI,WAAW,CAAA,CAC1D,OAAIymF,CAAoBA,GAAAA,CAAAA,EAAiBluE,WAAW,EAAA,GAAO,WAAakuE,CAAiBluE,EAAAA,WAAAA,EAAkB,GAAA,SAAA,CAAA,CAChG,eACAkuE,CAAiBluE,EAAAA,WAAAA,EAAkB,GAAA,OAAA,CACnC,eAEJ,eACX,CAEAmzE,kBAAkBC,CAA2B,CAAA,CACzC,KAAKjoE,cAAiBioE,CAAAA,EAC1B,CAEAC,iBAAAA,EAAiB,CACb,OAAO,IAAA,CAAKloE,cAChB,CAEAknE,iBAAiB1gE,CAAanrD,CAAAA,CAAAA,CAAW,CACrC,IAAM8sH,EAAkB,IAAKC,CAAAA,iBAAAA,CAAkB5hE,EAAKnrD,CAAG,CAAA,CACvD,GAAI8sH,CAAiB,CAAA,CACjB,IAAIE,CAAAA,CAAa,KAAKC,WAAY9hE,CAAAA,CAAAA,CAAKnrD,CAAG,CAC1CgtH,CAAAA,OAAAA,EAAa,IAAKlD,CAAAA,iBAAAA,CAAkBkD,CAAYhtH,CAAAA,CAAAA,CAAK+wE,mBAAmB+7C,CAAe,CAAC,EACjFE,CACX,CACA,OAAO7hE,CACX,CAEA4hE,iBAAkB5hE,CAAAA,CAAAA,CAAanrD,EAAW,CAEtC,OADmB,IAAI6mF,eAAAA,CAAgB17B,CAAG,CACxBlqB,CAAAA,GAAAA,CAAIjhC,CAAG,CAAA,EAAK,EAClC,CAEAitH,WAAAA,CAAY9hE,EAAanrD,CAAW,CAAA,CAChC,IAAIktH,CAAc/hE,CAAAA,CAAAA,CAAIxrC,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAC9BwtG,CAAuB,CAAA,GACrBC,CAAcjiE,CAAAA,CAAAA,CAAIhR,OAAQ,CAAA,GAAG,IAAM,CAAKgR,CAAAA,CAAAA,CAAAA,CAAIxrC,MAAM,GAAG,CAAA,CAAE,CAAC,CAAI,CAAA,EAAA,CAClE,GAAIytG,CAAAA,GAAgB,GAAI,CACpBD,CAAAA,CAAaC,CAAYztG,CAAAA,KAAAA,CAAM,GAAG,CAClC,CAAA,IAAA,IAASzgB,CAAIiuH,CAAAA,CAAAA,CAAW5yG,OAAS,CAAGrb,CAAAA,CAAAA,EAAK,EAAGA,CAAK,EAAA,CAAA,CAC/BiuH,EAAWjuH,CAAC,CAAA,CAAEygB,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,GAC1B3f,GACVmtH,CAAWl5D,CAAAA,MAAAA,CAAO/0D,EAAG,CAAC,CAAA,CAG1BiuH,CAAY5yG,EAAAA,MAAAA,CAAS,IACrB2yG,CAAcA,CAAAA,CAAAA,CAAc,IAAMC,CAAWvB,CAAAA,IAAAA,CAAK,GAAG,CAE7D,EAAA,CACA,OAAOsB,CACX,CAEAh0E,iBAAkBrY,CAAAA,CAAAA,CAAe,CAI7B,OAH8B,KAAKiM,qBAAsBugF,CAAAA,4BAAAA,EAChBC,CAAAA,UAAAA,CACP9lH,OAAQ+lH,CAAYA,EAAAA,CAAAA,EAAI1sF,SAAS2Y,WAAW,EAAA,GAAO3Y,GAAS2Y,WAAW,EAAE,CACrF,CAAA,CAAC,EAAEc,cAAelL,CAAAA,WAAAA,EAC5C,CAEAw6E,yBAAyBD,CAA0B,CAAA,CAC/C,IAAIz7E,CAAAA,CAAqBy4E,mBAAmBgD,CAAkB,CAAA,CAC9D,GAAIz7E,CAAY,CAAA,CACZ,IAAIs/E,CAAYt/E,CAAAA,CAAAA,CAAWhtC,KAAMgtC,CAAAA,CAAAA,CAAWiM,QAAQ,YAAY,CAAA,CAAI,EAAmB,CAAA,CACvFqzE,EAAY,IAAK1D,CAAAA,iBAAAA,CAAkB0D,CAAW,CAAA,WAAA,CAAaxzE,OAAOC,QAASC,CAAAA,IAAI,EAC/EszE,CAAYA,CAAAA,CAAAA,CAAUp/E,QAAQ,IAAM,CAAA,GAAG,CACvCF,CAAAA,CAAAA,CAAa,KAAK++E,WAAY/+E,CAAAA,CAAAA,CAAY,WAAW,CACrDA,CAAAA,CAAAA,CAAa,KAAK47E,iBAAkB57E,CAAAA,CAAAA,CAAY,WAAas/E,CAAAA,CAAS,EAC1E,CACA,OAAOt/E,CACX,CA5YS45E,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA6BrnF,IAAAsP,GAAA,CAAA,CAAAtP,GAAAi7D,CAAAA,IAAA,EAAAj7D,GAAA0sC,CAAAA,EAAA,CAAA1sC,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA7nB,CAAAA,GAAAA,CAAA8xB,IAAA,CAAA,CAAA9xB,IAAAuX,EAAA,CAAA,CAAAvX,IAAAmpB,IAAA,CAAA,CAAAnpB,IAAAiZ,IAAA,CAAA,CAAAjZ,GAAA0kB,CAAAA,EAAA,EAAA1kB,GAAAykB,CAAAA,IAAA,CAAAzkB,CAAAA,GAAAA,CAAAqP,IAAA,CAAArP,CAAAA,GAAAA,CAAA0kB,EAAA,CAAA,CAAA,CAA7B2iE,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA6BtpH,QAA7BspH,CAA6B/wE,CAAAA,SAAAA,CAAAC,WAF1B,MAAM,CAAA,CAEhB,CAAA,IAAO8wE,EAAP2F,CAAO3F,CAAAA,OAAAA,CAA6B,CAAA,ICX1C,IAAa4F,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAHtCj8G,WAAA,EAAA,CAII,KAAAk8G,uBAA6C,CAAA,IAAItwF,IACjD,CAAA,IAAA,CAAAuwF,iBAAsC,IAAIvwF,IAAAA,CAwBzB,KAAAwwF,yBAA6BzU,CAAAA,CAAAA,EAAiC,CAC3E,IAAKwU,CAAAA,gBAAAA,CAAiBlwF,IAAK07E,CAAAA,CAAAA,CAAaz+E,MAAM,CAC9Cy7B,CAAAA,aAAAA,CAAc,IAAID,WAAY,CAAA,kCAAA,CAAoC,CAAEx7B,MAAQ,CAAA,CAAEmzF,UAAY,CAAA,SAAS,CAAE,CAAE,CAAC,EAC5G,CAAA,CAEiB,KAAAC,oCAAwC3U,CAAAA,CAAAA,EAAiC,CACtF,IAAA,CAAKuU,wBAAwBjwF,IAAK07E,CAAAA,CAAAA,CAAaz+E,MAAM,CACrDy7B,CAAAA,aAAAA,CAAc,IAAID,WAAY,CAAA,kCAAA,CAAoC,CAAEx7B,MAAAA,CAAQ,CAAEmzF,UAAY,CAAA,SAAS,CAAE,CAAE,CAAC,EAC5G,EAAA,CA9BAE,kBAAkB,EAAA,CACd53D,cAAc,IAAID,WAAAA,CAAY,+BAAgC,CAAEx7B,MAAAA,CAAQ,CAAEszF,aAAe,CAAA,SAAA,CAAWC,YAAc,CAAA,SAAS,CAAE,CAAE,CAAC,EACpI,CAEAC,kBAAgB,CACZ/3D,aAAAA,CAAc,IAAID,WAAAA,CAAY,8BAA+B,CAAEx7B,MAAAA,CAAQ,CAAEyzF,UAAY,CAAA,OAAA,CAASF,aAAc,SAAS,CAAE,CAAE,CAAC,EAC9H,CAEAG,qBAAAA,EAAqB,CACjBrwF,gBAAiB,CAAA,kCAAA,CAAoC,KAAK6vF,yBAAyB,CAAA,CACnF7vF,gBAAiB,CAAA,8BAAA,CAAgC,KAAK+vF,oCAAoC,EAC9F,CAEAO,gBAAgB,EAAA,CACZnwF,oBAAoB,kCAAoC,CAAA,IAAA,CAAK0vF,yBAAyB,CAAA,CACtF1vF,oBAAoB,8BAAgC,CAAA,IAAA,CAAK4vF,oCAAoC,EACjG,CAEAQ,YAAY,EAAA,CACRn4D,aAAc,CAAA,IAAID,YAAY,iCAAiC,CAAC,EACpE,CAxBSu3D,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAyB,0BAAzBA,CAAyBlvH,CAAAA,OAAAA,CAAzBkvH,CAAyB32E,CAAAA,SAAAA,CAAAC,WAFtB,MAAM,CAAA,CAEhB,CAAA,IAAO02E,EAAPc,CAAOd,CAAAA,OAAAA,CAAyB,CAAA,GAAA,CCEtC,IAAae,EAAc,CAAA,CAAA,IAAA,CAArB,IAAOA,CAAAA,CAAP,MAAOA,CAAc,CAH3Bh9G,WAAA,EAAA,CAII,KAAAi9G,MAAkB,CAAA,CAAA,CAAA,CAClB,IAAAC,CAAAA,mBAAAA,CAA+B,GAC/B,IAAAC,CAAAA,UAAAA,CAAkB,IAClB,CAAA,IAAA,CAAAC,iBAA2B,kBAEnB,CAAA,IAAA,CAAAC,oBAAsB,IAAI94E,IAAAA,CAAwB,EAAE,CAC5D,CAAA,IAAA,CAAA+4E,uBAA8C,CAAA,IAAA,CAAKD,oBAAoB54E,YAAY,GAAA,CAEnF84E,uBAAuB/8D,CAAc,CAAA,CACjC,KAAK68D,mBAAoBxhG,CAAAA,IAAAA,CAAK2kC,CAAM,EACxC,CAEAg9D,QAAQ,EAAA,CACJ,YAAKP,MAAS,CAAA,CAAA,CAAA,CACP,EACX,CACAQ,UAAAA,EAAU,CACN,OAAA,IAAA,CAAKR,OAAS,CACd,CAAA,CAAA,IAAA,CAAKM,sBAAuB,CAAA,IAAA,CAAKH,gBAAgB,CAC1C,CAAA,CAAA,CACX,CAEAvZ,QAAAA,EAAQ,CACJ,OAAO,IAAA,CAAKoZ,MAChB,CAEAS,qBAAAA,EAAqB,CACjB,OAAO,IAAA,CAAKR,mBAChB,CAEAS,eAAa,CACT,OAAO,IAAKR,CAAAA,UAChB,CAEAS,gBAAiBxgE,CAAAA,CAAAA,CAAeygE,CAAY,CAAA,CACxC,GAAI,CAAC,IAAA,CAAKZ,OACN,OAGJ,IAAIzmG,EAEA4mC,CACIygE,GAAAA,CAAAA,EAAWzgE,CAAS+/D,CAAAA,UAAAA,CACpB3mG,EAAO4mC,CAAS+/D,CAAAA,UAAAA,CACT//D,CAASriB,CAAAA,IAAAA,EAAQqiB,EAASriB,IAAKA,CAAAA,IAAAA,EAAQqiB,CAASriB,CAAAA,IAAAA,CAAKA,KAAKoiF,UACjE3mG,GAAAA,CAAAA,CAAO4mC,EAASriB,IAAKA,CAAAA,IAAAA,CAAKoiF,aAI7B3mG,CACDA,GAAAA,CAAAA,CAAO,EAAA,CAAA,CAEPA,EAAKsqE,UAAc,EAAA,IAAA,GACnBtqE,EAAKsqE,UAAa,CAAA,CAAA,CAAA,CAAA,CAEjBtqE,EAAKsnG,aACNtnG,GAAAA,CAAAA,CAAKsnG,aAAgB,CAAA,2DAAA,CACrBtnG,EAAKunG,WAAc,CAAA,CAAA,CAAA,CAAA,CAGvB,KAAKZ,UAAa3mG,CAAAA,CAAAA,CAClB,KAAK0mG,mBAAsB,CAAA,CAAA,EAC/B,CA/DSF,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAc,0BAAdA,CAAcjwH,CAAAA,OAAAA,CAAdiwH,CAAc13E,CAAAA,SAAAA,CAAAC,WAFX,MAAM,CAAA,CAEhB,CAAA,IAAOy3E,EAAPgB,CAAOhB,CAAAA,OAAAA,CAAc,ICG3B,CAAA,IAAMiB,GAAN,KAAuB,CAMnBj+G,WAAA,EAAA,CACI,KAAKk+G,MAAS,CAAA,QAAA,CACd,IAAKC,CAAAA,MAAAA,CAAS,SACd,IAAKC,CAAAA,aAAAA,CAAgB,eACrB,CAAA,IAAA,CAAKC,SAAW,UAChB,CAAA,IAAA,CAAKC,YAAc,cACvB,CAAA,CAAA,CAMSC,IAAsB,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CAG/Bv+G,WACY4qC,CAAAA,CAAAA,CACAvP,EACAq7B,CACA8nD,CAAAA,CAAAA,CACAxjF,CACAyjF,CAAAA,CAAAA,CACAC,EAA4D,CAN5D,IAAA,CAAA9zE,kBAAAA,CACA,CAAA,IAAA,CAAAvP,sBAAAA,CACA,CAAA,IAAA,CAAAq7B,YAAAA,CAAAA,CAAAA,CACA,KAAA8nD,SAAAA,CAAAA,CAAAA,CACA,KAAAxjF,IAAAA,CAAAA,CAAAA,CACA,KAAAyjF,WAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,6BAAAA,CAAAA,EATZ,IAAAC,CAAAA,iBAAAA,CAAuC,IAAIV,GAUxC,CAEHW,uBAAuBC,CAAmB,CAAA,CACtC,OAAQA,CAAAA,EACJ,KAAK,IAAA,CAAKF,iBAAkBT,CAAAA,MAAAA,CAC5B,KAAK,IAAKS,CAAAA,iBAAAA,CAAkBR,MAC5B,CAAA,KAAK,KAAKQ,iBAAkBP,CAAAA,aAAAA,CACxB,GAAI,CAAC,IAAA,CAAKxzE,kBAAkBk0B,WAAe,EAAA,IAAA,CAAKl0B,iBAAkBW,CAAAA,eAAAA,CAC9D,OAAO,CAEX,CAAA,CAAA,MACJ,KAAK,IAAA,CAAKozE,kBAAkBN,QACxB,CAAA,GAAI,CAAC,IAAA,CAAKzzE,kBAAkBk0B,WAAe,EAAA,CAAC,KAAKl0B,iBAAkBW,CAAAA,eAAAA,CAC/D,OAAO,CAEX,CAAA,CAAA,MACJ,KAAK,IAAA,CAAKozE,kBAAkBL,WACxB,CAAA,GAAI,IAAK1zE,CAAAA,iBAAAA,CAAkBk0B,YACvB,OAAO,CAAA,CAAA,CAEX,KACR,CACA,OAAO,CACX,CAAA,CAEAggD,uBAAuB71E,CAAa81E,CAAAA,CAAAA,CAAsBjoH,EAAc,CAChE,IAAA,CAAKkkC,IAAKkR,CAAAA,eAAAA,CACV,KAAK8yE,sBAAuB/1E,CAAAA,CAAAA,CAAQ81E,EAAiBjoH,CAAQ,CAAA,CAE7D,KAAK2nH,WAAY3wD,CAAAA,IAAAA,GAEzB,CAEAkxD,uBAAuB/1E,CAAa81E,CAAAA,CAAAA,CAAsBjoH,EAAc,CACpE,IAAMmoH,EAAe,IAAK5jF,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CACnE,KAAK6/E,aAAcj2E,CAAAA,CAAM,CAAE5iB,CAAAA,SAAAA,CACtB+2B,GAAY,CACT,GAAIA,CACA,CAAA,GAAIA,EAAS4G,QAAY5G,EAAAA,CAAAA,CAAS4G,SAAStb,OAAQ,CAAA,aAAa,EAAI,CAAI,CAAA,CAAA,CACpE,IAAMl0C,CAAAA,CAAUyqH,EAAax/E,QAAS,CAAA,eAAA,CAClCjrC,CACA,EAAA,IAAA,CAAKkiE,aAAazS,QAASzvD,CAAAA,CAAO,EAE1C,CAAA,KAAO,CACH,IAAM2uE,CAAAA,CAAc,KAAKu7C,6BAA8BlI,CAAAA,aAAAA,CAAcp5D,EAAU2hE,CAAe,CAAA,CAC9F3hE,CAAS4G,CAAAA,QAAAA,CAAWmf,EAChBrsE,CAMAA,CAAAA,CAAAA,CALyB,CACrBqoH,OAAAA,CAAS,GACTC,YAAc,CAAA,EAAA,CACdC,aAAel8C,CAAAA,CAAAA,CAEM,EAEzB,IAAKm8C,CAAAA,0BAAAA,CAA2BliE,EAAS4G,QAAQ,EAEzD,CAER,CACCt8C,CAAAA,CAAAA,EAAS,CACN,GAAIA,GAASA,CAAMqzB,CAAAA,IAAAA,EAAQrzB,EAAMqzB,IAAKwkF,CAAAA,MAAAA,EAAU73G,EAAMqzB,IAAKwkF,CAAAA,MAAAA,CAAO9/E,QAAY/3B,EAAAA,CAAAA,CAAMqzB,KAAKwkF,MAAO9/E,CAAAA,QAAAA,CAAS,CAAC,CACtG,CAAA,GAAI3oC,EAAU,CACV,IAAMk/F,CAAmB,CAAA,CACrBmpB,QAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAc13G,CAAMqzB,CAAAA,IAAAA,CAAKwkF,OAAO9/E,QAAS,CAAA,CAAC,CAC1C4/E,CAAAA,aAAAA,CAAe,IAEnBvoH,CAASk/F,CAAAA,CAAgB,EAC7B,CACI,KAAA,IAAA,CAAKt/B,aAAazS,QAASv8C,CAAAA,CAAAA,CAAMqzB,IAAKwkF,CAAAA,MAAAA,CAAO9/E,SAAS,CAAC,CAAC,EAGpE,CAAC,EAET,CAEAy/E,aAAAA,CAAcj2E,CAAW,CAAA,CACrB,IAAMgQ,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAKslE,CAAAA,SAAAA,CAAUhvF,GAAIypB,CAAAA,CAAAA,CAAekH,SAAS,cAAmBlX,CAAAA,CAAM,CAC/E,CAEAq2E,2BAA2BD,CAAqB,CAAA,CAC5C,IAAMxzG,CAAAA,CAAqB,CACvBzJ,SAAW,CAAA,oBAAA,CACX0oC,WAAY,CACRu0E,aAAAA,CAAeA,IAGvB,IAAKz0E,CAAAA,iBAAAA,CAAkBijE,YAAahiG,CAAAA,CAAK,EAC7C,CApGS0yG,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAsBvvF,IAAAiZ,IAAA,CAAA,CAAAjZ,IAAAsP,GAAA,CAAA,CAAAtP,GAAA41B,CAAAA,IAAA,EAAA51B,GAAAysB,CAAAA,IAAA,EAAAzsB,GAAAiP,CAAAA,GAAA,EAAAjP,GAAA4nD,CAAAA,IAAA,CAAA5nD,CAAAA,GAAAA,CAAAqnF,IAAA,CAAA,CAAA,CAAtBkI,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAsBxxH,QAAtBwxH,CAAsBj5E,CAAAA,SAAAA,CAAAC,UAFnB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOg5E,EAAPiB,CAAOjB,CAAAA,OAAAA,CAAsB,KCjBnC,IAAakB,EAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAAA,CAAP,MAAOA,CAAgB,CAgBzBz/G,WACYmtC,CAAAA,CAAAA,CACA9R,CACAH,CAAAA,CAAAA,CACAy0D,EACA3iD,CACAmU,CAAAA,CAAAA,CAAsD,CALtD,IAAAhU,CAAAA,UAAAA,CAAAA,EACA,IAAA9R,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAH,UAAAA,CACA,CAAA,IAAA,CAAAy0D,MAAAA,CAAAA,CAAAA,CACA,KAAA3iD,mBAAAA,CAAAA,CAAAA,CACA,IAAAmU,CAAAA,0BAAAA,CAAAA,EArBZ,IAAAu+D,CAAAA,aAAAA,CAAwB,EACxB,IAAAC,CAAAA,SAAAA,CAAqB,GAKrB,IAAAC,CAAAA,gCAAAA,CAAwD,CAExD,CAAA,CAAA,IAAA,CAAAC,uBAAsC,CAClCv7D,WAAAA,CAAa,GACbw7D,cAAgB,CAAA,CAAA,CAAA,CAChBnjF,QAAS,CACTijF,CAAAA,CAAAA,gCAAAA,CAAkC,CAUnC,CAAA,EAAA,CAEHG,WAAWj7E,CAAc,CAAA,CACrB,IAAMk7E,CAAe,CAAA,IAAA,CAAK3kF,sBAAsBQ,mBAAmB,EAAA,CAC7D0M,CAAS,CAAA,IAAA,CAAKrN,UAAU6B,YAC9B,CAAA,OAAOwL,CAAOC,CAAAA,QAAAA,CAASy3E,SAAW,KAAQ13E,CAAAA,CAAAA,CAAOC,QAASxC,CAAAA,IAAAA,CAAOg6E,EAAalvE,MAAS,CAAA,cAAA,CAAiBhM,EAASyD,CAAOC,CAAAA,QAAAA,CAASO,MACrI,CACAy3D,YAAAA,CAAa17D,CAAc,CAAA,CACvB,IAAMk7E,CAAe,CAAA,IAAA,CAAK3kF,qBAAsBQ,CAAAA,mBAAAA,GAC1C0M,CAAS,CAAA,IAAA,CAAKrN,SAAU6B,CAAAA,YAAAA,CAC9B,OAAOwL,CAAOC,CAAAA,QAAAA,CAASy3E,SAAW,KAAQ13E,CAAAA,CAAAA,CAAOC,SAASxC,IAAOg6E,CAAAA,CAAAA,CAAalvE,MAAS,CAAA,YAAA,CAAehM,EAASyD,CAAOC,CAAAA,QAAAA,CAASO,MACnI,CAEAm3E,WAAWC,CAAwBlxH,CAAAA,CAAAA,CAAsBmxH,CAAmB,CAAA,CACxE,IAAIC,CAAuB,CAAA,MAAA,CACrBL,EAAe,IAAK3kF,CAAAA,qBAAAA,CAAsBQ,qBAChD5sC,CAAAA,CAAAA,CAAU64D,MAAOyoB,CAAAA,MAAAA,CAAO,EAAI,CAAA,IAAA,CAAKsvC,uBAAwB5wH,CAAO,CAAA,CAChE,IAAIyqD,CACA0mE,CAAAA,CAAAA,EACA1mE,CAAMsmE,CAAAA,CAAAA,CAAaM,UAAY,KAAQH,CAAAA,CAAAA,CACvCE,EAAkB,CAElB3mE,CAAAA,EAAAA,CAAAA,CAAM,KAAOymE,CAEjB,CAAA,IAAA,CAAKI,QAAS7mE,CAAAA,CAAAA,CAAKzqD,EAASoxH,CAAe,EAC/C,CAEAE,QAAAA,CAAS7mE,EAAazqD,CAAuBoxH,CAAAA,CAAAA,CAAuBv/B,CAAqBnG,CAAAA,CAAAA,CAAqB,CAC1G1rF,CAAU64D,CAAAA,MAAAA,CAAOyoB,OAAO,EAAA,CAAI,KAAKsvC,sBAAwB5wH,CAAAA,CAAO,CAChE,CAAA,IAAM+wH,EAAe,IAAK3kF,CAAAA,qBAAAA,CAAsBQ,mBAAmB,EAAA,CACnE,KAAK+jF,gCAAmC,CAAA,IAAA,CAAKC,sBAAuBD,CAAAA,gCAAAA,CAChElmE,EAAIhR,OAAQ,CAAA,MAAM,IAAM,CACpBgR,CAAAA,GAAAA,CAAAA,CAAI8mE,OAAO,CAAC,CAAA,GAAM,GAClB9mE,GAAAA,CAAAA,CAAM,IAAMA,CAEZ2mE,CAAAA,CAAAA,CAAAA,GAAoB,CACpB3mE,CAAAA,CAAAA,CAAAA,CAAMsmE,EAAalvE,MAAS4I,CAAAA,CAAAA,CACrB2mE,CAAoB,GAAA,MAAA,GAC3B3mE,EAAM,GAAM,CAAA,IAAA,CAAKi2C,OAAOpzD,IAAOmd,CAAAA,CAAAA,CAAAA,CAAAA,CAGnC,KAAK1M,mBAAoB1E,CAAAA,cAAAA,EAAoB,EAAA,IAAA,CAAK6Y,2BAA2BxG,mBAAmB,EAAA,CAC5FmmC,IAAe,CACf,CAAA,IAAA,CAAK9zC,oBAAoB9D,mBAAoB,CAAA,YAAA,CAAc,CAAEu3E,WAAAA,CAAa,GAAOt9C,WAAazpB,CAAAA,CAAG,CAAE,CAC5FonC,CAAAA,CAAAA,GAAe,IACtB,IAAK9zC,CAAAA,mBAAAA,CAAoB9D,mBAAoB,CAAA,OAAA,CAAS,CAAEu3E,WAAa,CAAA,CAAA,CAAA,CAAOt9C,WAAazpB,CAAAA,CAAAA,CAAKihC,cAAeA,CAAa,CAAE,CAGhI,CAAA,IAAA,CAAKxtC,WAAW0D,IAAK6I,CAAAA,CAAAA,CAAKzqD,CAAO,EAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAzESwwH,GAAgBzwF,GAAAwb,CAAAA,EAAA,CAAAxb,CAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAAmP,GAAA,CAAA,CAAAnP,IAAAkP,GAAA,CAAA,CAAAlP,GAAAmZ,CAAAA,EAAA,EAAAnZ,GAAAqrB,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAntD,GAAA,CAAA,CAAA,KAAA,CAAhBuyH,EAAgB1yH,OAAhB0yH,CAAAA,CAAAA,CAAgBn6E,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAAA,CAEhB,IAAOk6E,CAAAA,CAAPiB,SAAOjB,CAAgB,CAAA,GCJ7B,CAAA,IAAakB,IAAoB,IAAA,CAA3B,IAAOA,CAAP,CAAA,MAAOA,CAAoB,CAHjC3gH,WAAAA,EAAA,CAIY,IAAA,CAAA4gH,sBAAwB,IAAIr8E,IAAAA,CAAyB,EAAK,CAC1D,CAAA,IAAA,CAAAs8E,2BAA6B,IAAIt8E,IAAAA,CAAyB,CAAK,CAAA,CAAA,CACvE,KAAAu8E,sBAA8C,CAAA,IAAA,CAAKF,sBAAsBn8E,YAAY,EAAA,CACrF,KAAAs8E,0BAAkD,CAAA,IAAA,CAAKF,0BAA2Bp8E,CAAAA,YAAAA,IAElFu8E,mBAAoBnhB,CAAAA,CAAAA,CAAkB,CAClC,IAAA,CAAK+gB,sBAAsB/kG,IAAKgkF,CAAAA,CAAS,EAC7C,CAEAohB,+BAA+BJ,CAAmC,CAAA,CAC9D,KAAKA,0BAA2BhlG,CAAAA,IAAAA,CAAKglG,CAA0B,EACnE,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAZSF,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzzH,GAAA,CAAA,CAAA,KAAA,CAApByzH,EAAoB5zH,OAApB4zH,CAAAA,CAAAA,CAAoBr7E,SAAAC,CAAAA,UAAAA,CAFjB,MAAM,CAAA,CAAA,CAEhB,IAAOo7E,CAAAA,CAAPO,SAAOP,CAAoB,CAAA,QCc3BQ,EAAc,CAAA,CAAA,IAAA,CAApB,IAAMA,CAAAA,CAAN,MAAMA,CAAc,GACOC,CAAAC,CAAAA,oBAAAA,CAA+B,sBAC/BD,CAAAA,CAAAA,CAAAE,iBAA2B,kBAFtD,CAAA,IAAMH,CAANC,CAAAA,CAAAA,CAAAA,OAAMD,CAAc,CAAA,GAAA,CAQPI,IAAe,IAAA,CAAtB,IAAOA,CAAP,CAAA,MAAOA,CAAe,CACxBvhH,YACYk7B,CACAwd,CAAAA,CAAAA,CACArd,CACAq7B,CAAAA,CAAAA,CACA17B,EACAiS,CACA7E,CAAAA,CAAAA,CACAkS,CACAokE,CAAAA,CAAAA,CACA8C,EACAh6E,CACAhB,CAAAA,CAAAA,CAAsC,CAXtC,IAAAtL,CAAAA,SAAAA,CAAAA,EACA,IAAAwd,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAArd,sBAAAA,CACA,CAAA,IAAA,CAAAq7B,YAAAA,CAAAA,CAAAA,CACA,KAAA17B,IAAAA,CAAAA,CAAAA,CACA,IAAAiS,CAAAA,aAAAA,CAAAA,EACA,IAAA7E,CAAAA,iBAAAA,CAAAA,EACA,IAAAkS,CAAAA,aAAAA,CAAAA,EACA,IAAAokE,CAAAA,6BAAAA,CAAAA,CACA,CAAA,IAAA,CAAA8C,yBAAAA,CACA,CAAA,IAAA,CAAAh6E,gBAAAA,CAAAA,CAAAA,CACA,KAAAhB,kBAAAA,CAAAA,EACT,CAEHi7E,kBAAAA,CAAmB3lD,EAAsB4lD,CAAqB5qH,CAAAA,CAAAA,CAAc,CACpE,IAAKkkC,CAAAA,IAAAA,CAAKkR,gBACV,IAAKy1E,CAAAA,eAAAA,CAAgB7lD,CAAiB4lD,CAAAA,CAAAA,CAAY5qH,CAAQ,CAE1D,CAAA,IAAA,CAAK8qH,kBAAmB9lD,CAAAA,CAAAA,CAAgBpc,KAAK5a,MAAQg3B,CAAAA,CAAAA,CAAgBoa,SAAW,CAAA,EAAE,EAE1F,CAEAyrC,eAAAA,CAAgB7lD,EAAsB4lD,CAAqB5qH,CAAAA,CAAAA,CAAc,CACrE,IAAMmoH,CAAAA,CAAe,IAAK5jF,CAAAA,qBAAAA,CAAsBgE,qBAE1C4Z,CAAAA,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAClD,IAAKR,CAAAA,GAAAA,CAAIlpB,GAAIypB,CAAAA,CAAAA,CAAekH,SAAS,cAAmB,CAAA,CAAErb,OAAQg3B,CAAgBpc,CAAAA,IAAAA,CAAK5a,OAAQgxC,aAAe,CAAA,CAAA,CAAI,CAAE,CAAA,CAAEzvD,UACjH+2B,CAAiB,EAAA,CACd,GAAIA,CAAAA,CACA,GAAIA,CAAS4G,CAAAA,QAAAA,EAAY5G,CAAS4G,CAAAA,QAAAA,CAAStb,QAAQ,aAAa,CAAA,CAAI,GAAI,CACpE,IAAMl0C,EAAUyqH,CAAax/E,CAAAA,QAAAA,CAAS,eAClCjrC,CAAAA,CAAAA,EACA,KAAKkiE,YAAazS,CAAAA,QAAAA,CAASzvD,CAAO,EAE1C,MAAO,CACH,IAAM2uE,CAAc,CAAA,IAAA,CAAKu7C,8BAA8BlI,aAAcp5D,CAAAA,CAAAA,CAAU0e,CAAe,CAC9F1e,CAAAA,CAAAA,CAAS4G,SAAWmf,CAChBrsE,CAAAA,CAAAA,CAMAA,CALyB,CAAA,CACrBqoH,QAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAc,EACdC,CAAAA,aAAAA,CAAel8C,EAEM,CAEzB,CAAA,IAAA,CAAKy+C,kBAAmB9lD,CAAAA,CAAAA,CAAgBpc,KAAK5a,MAAQg3B,CAAAA,CAAAA,CAAgBoa,UAAW94B,CAAS4G,CAAAA,QAAAA,CAAU09D,CAAU,EAErH,CAER,CACCh6G,CAAAA,CAAAA,EAAS,CACN,GACIA,CAAAA,CAAMqzB,MACNrzB,CAAMqzB,CAAAA,IAAAA,CAAKwkF,QACX73G,CAAMqzB,CAAAA,IAAAA,CAAKwkF,MAAO9/E,CAAAA,QAAAA,EAClB/3B,EAAMqzB,IAAKwkF,CAAAA,MAAAA,CAAO9/E,SAAS32B,MAAS,CAAA,CAAA,EACpCpB,EAAMqzB,IAAKwkF,CAAAA,MAAAA,CAAO9/E,QAAS,CAAA,CAAC,EAE5B,GAAI3oC,CAAAA,CAAU,CACV,IAAMk/F,EAAmB,CACrBmpB,OAAAA,CAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAc13G,EAAMqzB,IAAKwkF,CAAAA,MAAAA,CAAO9/E,SAAS,CAAC,CAAA,CAAEoiF,KAC5CxC,aAAe,CAAA,EAAA,CAAA,CAEnBvoH,CAASk/F,CAAAA,CAAgB,EAC7B,CACI,KAAA,IAAA,CAAK8rB,qBAAsBp6G,CAAAA,CAAAA,CAAMqzB,KAAKwkF,MAAO9/E,CAAAA,QAAAA,CAAS,CAAC,CAAA,CAAEoiF,KAAMn6G,CAAOqzB,EAAAA,IAAAA,EAAMipB,QAAQ,CAEjFt8C,CAAAA,KAAAA,GAAAA,CAAAA,EAASA,EAAM63G,MAAU73G,EAAAA,CAAAA,CAAM63G,MAAO9/E,CAAAA,QAAAA,EAAY/3B,EAAM63G,MAAO9/E,CAAAA,QAAAA,CAAS32B,MAAS,CAAA,CAAA,EAAKpB,EAAM63G,MAAO9/E,CAAAA,QAAAA,CAAS,CAAC,CAAA,CACpH,GAAI3oC,CAAU,CAAA,CACV,IAAMk/F,CAAmB,CAAA,CACrBmpB,QAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAc13G,CAAM63G,CAAAA,MAAAA,CAAO9/E,SAAS,CAAC,CAAA,CAAEoiF,KACvCxC,aAAe,CAAA,EAAA,CAAA,CAEnBvoH,EAASk/F,CAAgB,EAC7B,CACI,KAAA,IAAA,CAAK8rB,sBAAsBp6G,CAAM63G,CAAAA,MAAAA,CAAO9/E,SAAS,CAAC,CAAA,CAAEoiF,KAAMn6G,CAAOs8C,EAAAA,QAAQ,EAGrF,CAAC,EAET,CACA89D,qBAAAA,CAAsBC,CAAmB5+C,CAAAA,CAAAA,CAAgB,CACrD,IAAKzM,CAAAA,YAAAA,CAAa/H,KAAK,EAAA,CACvB,IAAMn6D,CAAmB,CAAA,CACrBqtH,KAAME,CACNnpH,CAAAA,IAAAA,CAAMsrD,GAAYC,WAClB69D,CAAAA,QAAAA,CAAU59D,IAAgBqjC,CAAAA,MAAAA,CAC1Bw6B,MAAO,iBAEPztH,CAAAA,CAAAA,CAAAA,EACA,IAAKkiE,CAAAA,YAAAA,CAAap0D,IAAI9N,CAAO,CAAA,CAEjC,IAAM0tH,CAAAA,CAAc,KAAK5nE,aAAcpK,CAAAA,cAAAA,GACvCjN,UAAW,CAAA,IAAK,CACZ,IAAKyzB,CAAAA,YAAAA,CAAa/H,KAAK,EAAA,CACnBwU,EAAa,IAAK/6B,CAAAA,iBAAAA,CAAkByI,IAAKsyB,CAAAA,CAAW,EACnD,IAAK/6B,CAAAA,iBAAAA,CAAkByI,IAAKqxE,CAAAA,CAAW,EAChD,CAAG,CAAA,GAAI,EACX,CACAN,kBAAAA,CAAmB98E,EAAgBoxC,CAAmBisC,CAAAA,CAAAA,CAAmBT,CAAsB,CAAA,CAAA,CAAA,CAAOU,EAAoB,EAAE,CAAA,CACxH,IAAMC,CAAyB,CAAA,IAAA,CAAKhnF,sBAAsBinF,6BAA6B,EAAA,CACjFrM,CAAkB,CAAA,IAAA,CAAKhpE,cAAczd,GAAI,CAAA,WAAW,EACpD+yF,CAAiB,CAAA,IAAA,CAAKrnF,UAAU6B,YAAaylF,CAAAA,QAAAA,CAAS,cAC5D,CAAA,GAAIH,EAAuBI,uBAAyB,CAAA,CAChD,IAAMnyG,CAAAA,CAAe,CACjBgxG,gBAAkBx8E,CAAAA,CAAAA,CAClB6d,QAAU7d,CAAAA,CAAAA,CACV2lC,eAAgB,IAAK6wC,CAAAA,iBAAAA,CAAkB6G,EAAW,gBAAgB,CAAA,CAClEjI,aAAc,IAAKoB,CAAAA,iBAAAA,CAAkB6G,CAAW,CAAA,cAAc,EAC9DhzE,SAAW,CAAA,IAAA,CAAKmL,aAActH,CAAAA,eAAAA,IAGlC,GADA0uE,CAAAA,CAAcA,CAA8D,CAAA,CAAA,CAAA,CAAjD,KAAKgB,8BAA+BxsC,CAAAA,CAAS,EACpEwrC,CAAczL,EAAAA,CAAAA,EAAiBluE,aAAkB,GAAA,SAAA,CAAW,CAC5D,IAAM3lC,EAAoB,gBAAmB0iC,CAAAA,CAAAA,CAAS,GAAMs9E,CAAAA,CAAAA,CAC5DG,EAAUngH,CAAWitD,CAAAA,IAAAA,CAAKG,SAAUl/C,CAAAA,CAAO,CAAC,EAEhD,CAAA,KAAO,CACH,IAAM4xD,CAAAA,CAAmB,KAAK17B,kBAAmB3B,CAAAA,WAAAA,CAAYC,CAAM,CAAA,CAC7D69E,EAAcN,CAAuBO,CAAAA,iCAAAA,CACvC1gD,GAAeygD,CAAeA,EAAAA,CAAAA,CAAYj6E,QAAQw5B,CAAYqD,CAAAA,QAAQ,CAAI,CAAA,CAAA,CAAA,GAC1Ej1D,EAAQuyG,uBAA0B,CAAA,GAAA,CAAA,CAElCR,EAAuBS,aACvB,CAAA,IAAA,CAAKt7E,iBAAiBqmE,YAAa,CAAA,CAC/BzrG,SAAW++G,CAAAA,EAAAA,CAAeG,iBAC1Bx2E,UAAYx6B,CAAAA,CAAAA,CACf,CAEDiyG,CAAAA,CAAAA,CAAUpB,GAAeG,gBAAkBjyD,CAAAA,IAAAA,CAAKG,SAAUl/C,CAAAA,CAAO,CAAC,EAG1E,CACJ,MAAO,CACH,IAAMA,EAAe,CACjB+wG,oBAAAA,CAAsBc,CACtBY,CAAAA,YAAAA,CAAc,CACVzB,gBAAkBa,CAAAA,CAAAA,CAAAA,CAEtBx/D,QAAU7d,CAAAA,CAAAA,CACVuF,OAAQ,KACR0C,CAAAA,KAAAA,CAAO,KAGX,CAAA,CAAA,GADA20E,EAAcA,CAA8D,CAAA,CAAA,CAAA,CAAjD,KAAKgB,8BAA+BxsC,CAAAA,CAAS,EACpEwrC,CAAczL,EAAAA,CAAAA,EAAiBluE,WAAW,EAAA,GAAO,UAAW,CAC5D,IAAM3lC,CAAoB,CAAA,gBAAA,CAAmB0iC,EAAS,GAAMs9E,CAAAA,CAAAA,CAC5DG,CAAUngH,CAAAA,CAAAA,CAAWitD,KAAKG,SAAUl/C,CAAAA,CAAO,CAAC,EAEhD,CAAA,KAAO,CACH,IAAM4xD,CAAAA,CAAmB,IAAK17B,CAAAA,kBAAAA,CAAmB3B,YAAYC,CAAM,CAAA,CAC7D69E,EAAcN,CAAuBO,CAAAA,iCAAAA,CACvC1gD,GAAeygD,CAAeA,EAAAA,CAAAA,CAAYj6E,OAAQw5B,CAAAA,CAAAA,CAAYqD,QAAQ,CAAI,CAAA,CAAA,CAAA,GAC1Ej1D,EAAQuyG,uBAA0B,CAAA,GAAA,CAAA,CAElCR,EAAuBS,aACvB,CAAA,IAAA,CAAKt7E,gBAAiBqmE,CAAAA,YAAAA,CAAa,CAC/BzrG,SAAW++G,CAAAA,EAAAA,CAAeE,oBAC1Bv2E,CAAAA,UAAAA,CAAYx6B,EACf,CAEDiyG,CAAAA,CAAAA,CAAUpB,EAAeE,CAAAA,oBAAAA,CAAsBhyD,KAAKG,SAAUl/C,CAAAA,CAAO,CAAC,EAG9E,CACJ,CACI4lE,CACA,EAAA,IAAA,CAAK9tC,iBAAkByI,CAAAA,IAAAA,CAAKqlC,CAAS,EAG7C,CAEQolC,iBAAkB+D,CAAAA,CAAAA,CAAuB9wH,EAAW,CAExD,OADmB,IAAI6mF,eAAAA,CAAgBiqC,CAAa,CAClC7vF,CAAAA,GAAAA,CAAIjhC,CAAG,CAC7B,CAEAy0H,WAAS,CACL,IAAM/M,CAAkB,CAAA,IAAA,CAAKhpE,cAAczd,GAAI,CAAA,WAAW,CAC1D,CAAA,OAAOymF,IAAoBA,CAAiBluE,EAAAA,WAAAA,EAAkB,GAAA,SAAA,EAAakuE,GAAiBluE,WAAW,EAAA,GAAO,UAClH,CAEA26E,8BAAAA,CAA+BxsC,EAAiB,CAC5C,GAAIA,CAAa,EAAA,EAAA,CAAI,CACjB,IAAM+sC,CAAAA,CAAY,KAAKzB,wBAAyBhpC,CAAAA,MAAAA,CAEhD,GADyBtC,CAAUxtC,CAAAA,OAAAA,CAAQu6E,CAAS,CAAA,EAC5B,GACpB,OAAO,CAAA,CAEf,CACA,OAAO,CAAA,CACX,yCAjMS1B,CAAevyF,EAAAA,GAAAA,CAAAmP,GAAA,CAAA,CAAAnP,IAAAysB,IAAA,CAAA,CAAAzsB,GAAAsP,CAAAA,GAAA,EAAAtP,GAAA41B,CAAAA,IAAA,CAAA51B,CAAAA,GAAAA,CAAAiP,GAAA,CAAAjP,CAAAA,GAAAA,CAAA0kB,EAAA,CAAA1kB,CAAAA,GAAAA,CAAAwb,EAAA,CAAAxb,CAAAA,GAAAA,CAAAuX,EAAA,CAAA,CAAAvX,IAAAqnF,IAAA,CAAA,CAAArnF,GAAAipB,CAAAA,EAAA,EAAAjpB,GAAAiZ,CAAAA,IAAA,CAAAjZ,CAAAA,GAAAA,CAAAqV,EAAA,CAAA,CAAA,0BAAfk9E,CAAex0H,CAAAA,OAAAA,CAAfw0H,EAAej8E,SAAAC,CAAAA,UAAAA,CAFZ,MAAM,CAAA,EAEhB,IAAOg8E,CAAAA,CAAP2B,CAAO3B,CAAAA,OAAAA,CAAe,KCqC5B,IAAapiB,IAA2B,CAAA,CAAA,IAAA,CAAlC,IAAOA,CAAAA,CAAP,MAAOA,CAA2B,CA2BpCgkB,cAAY,CACR,OAAO,sCAAuCxmF,CAAAA,OAAAA,CAAQ,QAAUt4B,CAAK,EAAA,CACjE,IAAMyT,CAAK6oC,CAAAA,IAAAA,CAAK0rB,QAAW,CAAA,EAAA,CAAM,CAEjC,CAAA,OAAA,CADUhoE,IAAM,GAAMyT,CAAAA,CAAAA,CAAKA,EAAI,CAAO,CAAA,CAAA,EAC7BvlB,SAAS,EAAE,CACxB,CAAC,CACL,CAEAyN,WACYq7B,CAAAA,CAAAA,CACAi7E,CACA8M,CAAAA,CAAAA,CACApoF,EACA07B,CACAiF,CAAAA,CAAAA,CACAjjB,CACAvL,CAAAA,CAAAA,CACAH,EACA4iD,CACA2R,CAAAA,CAAAA,CACA1R,EACAhgD,EACAwzE,CAAAA,EAAAA,CACAn2E,GACAo2E,EACAC,CAAAA,EAAAA,CACAC,EACAriE,CAAAA,EAAAA,CACAsiE,GACAhF,EACAnkE,CAAAA,EAAAA,CACAk1C,EACAk0B,CAAAA,EAAAA,CACA1zB,GACA0uB,EACAiF,CAAAA,EAAAA,CACAhtD,EACAF,CAAAA,EAAAA,CACApuB,GACSu7E,EACT3zB,CAAAA,EAAAA,CACAt3C,GACAE,EACAo3D,CAAAA,EAAAA,CACA4T,GACA1R,EACA/2E,CAAAA,EAAAA,CACAH,EACA6oF,CAAAA,EAAAA,CACAC,GACA7zB,EACA9iD,CAAAA,EAAAA,CACAmpE,EACAyN,CAAAA,EAAAA,CACAlgF,GACA0C,EAAsC,CAAA,CA9CtC,IAAAnL,CAAAA,qBAAAA,CAAAA,EACA,IAAAi7E,CAAAA,YAAAA,CAAAA,EACA,IAAA8M,CAAAA,WAAAA,CAAAA,EACA,IAAApoF,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAA07B,aAAAA,CACA,CAAA,IAAA,CAAAiF,mBAAAA,CACA,CAAA,IAAA,CAAAjjB,IAAAA,CACA,CAAA,IAAA,CAAAvL,UAAAA,CAAAA,CAAAA,CACA,KAAAH,mBAAAA,CAAAA,CAAAA,CACA,KAAA4iD,KAAAA,CAAAA,CAAAA,CACA,KAAA2R,gBAAAA,CAAAA,CAAAA,CACA,IAAA1R,CAAAA,sBAAAA,CAAAA,EACA,IAAAhgD,CAAAA,SAAAA,CAAAA,EACA,CAAA,IAAA,CAAAwzE,QAAAA,EACA,CAAA,IAAA,CAAAn2E,gBAAAA,CAAAA,EAAAA,CACA,KAAAo2E,eAAAA,CAAAA,EAAAA,CACA,KAAAC,sBAAAA,CAAAA,EAAAA,CACA,KAAAC,cAAAA,CAAAA,EAAAA,CACA,IAAAriE,CAAAA,0BAAAA,CAAAA,GACA,IAAAsiE,CAAAA,uBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAhF,YAAAA,EACA,CAAA,IAAA,CAAAnkE,aAAAA,CAAAA,EAAAA,CACA,KAAAk1C,MAAAA,CAAAA,EAAAA,CACA,KAAAk0B,mBAAAA,CAAAA,EAAAA,CACA,KAAA1zB,sBAAAA,CAAAA,EAAAA,CACA,IAAA0uB,CAAAA,6BAAAA,CAAAA,GACA,IAAAiF,CAAAA,UAAAA,CAAAA,EACA,CAAA,IAAA,CAAAhtD,uBAAAA,EACA,CAAA,IAAA,CAAAF,gBAAAA,CAAAA,EAAAA,CACA,KAAApuB,qBAAAA,CAAAA,EAAAA,CACS,KAAAu7E,oBAAAA,CAAAA,EAAAA,CACT,KAAA3zB,gBAAAA,CAAAA,EAAAA,CACA,IAAAt3C,CAAAA,MAAAA,CAAAA,GACA,IAAAE,CAAAA,qBAAAA,CAAAA,GACA,IAAAo3D,CAAAA,uBAAAA,CAAAA,GACA,IAAA4T,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAA1R,sBAAAA,EACA,CAAA,IAAA,CAAA/2E,cAAAA,EACA,CAAA,IAAA,CAAAH,KAAAA,EACA,CAAA,IAAA,CAAA6oF,aAAAA,CAAAA,EAAAA,CACA,KAAAC,UAAAA,CAAAA,EAAAA,CACA,IAAA7zB,CAAAA,yBAAAA,CAAAA,GACA,IAAA9iD,CAAAA,MAAAA,CAAAA,EACA,CAAA,IAAA,CAAAmpE,oBAAAA,EACA,CAAA,IAAA,CAAAyN,eAAAA,EACA,CAAA,IAAA,CAAAlgF,eAAAA,EACA,CAAA,IAAA,CAAA0C,kBAAAA,CAAAA,EAAAA,CAjFZ,KAAAy9E,QAAmB,CAAA,UAAA,CAQX,IAAAC,CAAAA,sBAAAA,CAAyB,IAAI3/E,IAAyB,CAAA,CAAA,CAAK,CACnE,CAAA,IAAA,CAAA4/E,mBAA0C,IAAKD,CAAAA,sBAAAA,CAAuBz/E,cAC9D,CAAA,IAAA,CAAA2/E,sBAAwB,IAAI7/E,IAAAA,CAAqB,IAAI,CAAA,CAC7D,KAAA8/E,wBAA4C,CAAA,IAAA,CAAKD,qBAAsB3/E,CAAAA,YAAAA,GAC/D,IAAA6/E,CAAAA,gBAAAA,CAAmB,IAAI//E,IAAAA,CAAgC,IAAI,CACnE,CAAA,IAAA,CAAAggF,oBAAkD,IAAKD,CAAAA,gBAAAA,CAAiB7/E,cACxE,CAAA,IAAA,CAAAw6D,qBAAwB,CAAA,IAAI16D,KAAqB,IAAI,CAAA,CACrD,KAAAigF,sBAA8C,CAAA,IAAA,CAAKvlB,sBAAsBx6D,YAAY,EAAA,CAKrF,IAAAggF,CAAAA,iBAAAA,CAA6B,GAC7B,IAAAC,CAAAA,qBAAAA,CAAiC,GACjC,IAAAlU,CAAAA,uBAAAA,CAA+B,KAC/B,IAAAmU,CAAAA,YAAAA,CAAuB,CACvB,CAAA,IAAA,CAAAC,gBAA2B,CA0DxB,EAAA,CAEH5iB,UAAWlmC,CAAAA,CAAAA,CAA6BhlE,EAAc,CAClD,IAAA,CAAKwtH,gBAAiBzoG,CAAAA,IAAAA,CAAK,EAAI,CAC/B,CAAA,IAAM+qB,EAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,mBAM9C,CAAA,GALA,IAAKg+E,CAAAA,2BAAAA,CAA8Bj+E,EAAWk+E,uBAC1C,CAAA,IAAA,CAAKD,2BAA+B,EAAA,IAAA,CAAKA,4BAA4B,CAAC,CAAA,GACtE,IAAKE,CAAAA,yBAAAA,CAA4B,KAAKF,2BAA4B,CAAA,CAAC,EAAEG,iBACrE,CAAA,IAAA,CAAKC,8BAAgC,IAAKJ,CAAAA,2BAAAA,CAA4B,CAAC,CAAA,CAAEK,uBAEzEt+E,CAAWu+E,CAAAA,yBAAAA,EAA6B,IAAKnqF,CAAAA,IAAAA,CAAKkR,gBAAiB,CACnE,GAAI,IAAKk5E,CAAAA,qBAAAA,CACL,OAEJ,IAAKA,CAAAA,qBAAAA,CAAwB,GAC7BtpD,CAAgB00C,CAAAA,uBAAAA,CAA0B,KAAKP,uBAAwBtgH,CAAAA,KAAAA,GAC3E,CACA,KAAK+mE,YAAa/H,CAAAA,KAAAA,GAClB,IAAKjf,CAAAA,OAAAA,CAAUosB,EAAgBpsB,OAC/B,CAAA,IAAA,CAAK2hB,OAAUyK,CAAAA,CAAAA,CAAgBpc,KAC/B,IAAK2R,CAAAA,OAAAA,CAAQ6kB,UAAYpa,CAAgBoa,CAAAA,SAAAA,CACzC,KAAKmvC,wBAA2BvpD,CAAAA,CAAAA,CAAgBmN,kBAChD,CAAA,IAAM6tC,EAAgB,IAAKz7E,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACtE,KAAK0oF,iBAAoB3N,CAAAA,CAAAA,CAAc2N,iBACvC,CAAA,IAAA,CAAKC,sBAAwB5N,CAAcwO,CAAAA,uBAAAA,CAC3C,IAAMnoD,CAAwB,CAAA,IAAA,CAAK9hC,sBAAsB+hC,4BAA4B,EAAA,CAC/E4iD,CAAe,CAAA,IAAA,CAAK3kF,sBAAsBQ,mBAAmB,EAAA,CACnEigC,CAAgB9+D,CAAAA,IAAAA,CAAO8+D,EAAgB+Z,YAAe,CAAA,MAAA,CAASjvC,CAAW2+E,CAAAA,QAAAA,CACrEzpD,EAAgB5Y,WACjB4Y,GAAAA,CAAAA,CAAgB5Y,YACZ4Y,CAAgBimC,CAAAA,gBAAAA,GAAqBtxD,OAAYqrB,CAAgBimC,CAAAA,gBAAAA,CAAmBjmC,CAAgBG,CAAAA,YAAAA,CAAAA,CAE5GH,EAAgBpc,IAAK8lE,CAAAA,MAAAA,CAAS1pD,CAAgB+Z,CAAAA,YAAAA,CAC9C,IAAM4vC,CAAuB3pD,CAAAA,CAAAA,CAE7B,GADAA,CAAAA,CAAgBoB,aAAe,IAAKwoD,CAAAA,qBAAAA,CAAsB5pD,CAAe,CACrE,CAAA,IAAA,CAAK3a,2BAA2BxG,mBAAoBmhB,CAAAA,CAAAA,CAAgBpc,IAAKvQ,CAAAA,SAAS,EAAG,CACrF,IAAMw2E,EAAuB,IAAKxkE,CAAAA,0BAAAA,CAA2BjG,mBACzDyqE,CAAAA,CAAAA,GAAiB7pD,CAAgBya,CAAAA,kBAAAA,CAAqBh2C,MAAMolF,CAAe,CAAA,EACnF,MAAO,CACH,IAAM1rE,EAA2B,IAAK4pE,CAAAA,sBAAAA,CAAuB1pE,sBAAsB,EAAA,CACnF2hB,EAAgBya,kBAAqBt8B,CAAAA,CAAAA,CAAoBqB,mBACnD,CAAA,CAAC,GAAG,IAAIytC,GAAAA,CAAI9uC,CAAoBqB,CAAAA,mBAAAA,CAAoBlb,IAAKwlF,CAAYA,EAAAA,CAAAA,CAAGz2E,SAAS,CAAC,CAAC,EACnF,KACV,CAIA,GADA,IAAA,CAAK02E,mBACD1oD,CAAAA,CAAAA,CAAsBG,qBAAuB,CAAA,CAC7C,IAAMr4B,CAAW62B,CAAAA,CAAAA,CAAgBpc,IAAKza,CAAAA,QAAAA,CAChCg4B,EAAsBnB,CAAgBpc,CAAAA,IAAAA,CAAKud,oBAC3C6oD,CAAoB,CAAA,IAAA,CAAK91B,uBAAuBn0B,sBAAuBC,CAAAA,CAAe,CACtFM,CAAAA,EAAAA,CAAY0pD,EAAkB1pD,SAAa3rB,EAAAA,IAAAA,CAAYqrB,CAAgBoB,CAAAA,YAAAA,CAAe4oD,EAAkB1pD,SAC9G,CAAA,IAAA,CAAK4zB,sBAAuBnzB,CAAAA,sBAAAA,CACxBipD,EAAkBnpD,gBAClBmpD,CAAAA,CAAAA,CAAkBlpD,cAClB,IAAK+nD,CAAAA,YAAAA,CACL1/E,EACAg4B,CACAb,CAAAA,EAAS,EAEjB,CAGA,GADA,IAAK2pD,CAAAA,kBAAAA,CAAmBjqD,CAAe,CACnC,CAAA,CAAC,KAAK9gC,IAAK4+C,CAAAA,MAAAA,CAAOpqD,GAAI,CAAA,YAAY,GAAK,IAAKwL,CAAAA,IAAAA,CAAK4+C,OAAOpqD,GAAI,CAAA,YAAY,GAAK,EAAI,CAAA,CACjF,IAAMw2F,CAAAA,CAAO,KAAK7C,YAAY,EAAA,CAC9BrnD,CAAgBmqD,CAAAA,4BAAAA,CAA+BD,EAC1C,IAAKxV,CAAAA,uBAAAA,GACN,IAAKA,CAAAA,uBAAAA,CAA0B10C,EAAgB00C,uBAC/C10C,CAAAA,CAAAA,CAAgB00C,wBAA0B,IAE9C,CAAA,CAAA,IAAM0V,EAAkB72D,IAAKG,CAAAA,SAAAA,CAAUsM,CAAe,CAAA,CAClD,KAAK00C,uBACL10C,GAAAA,CAAAA,CAAgB00C,uBAA0B,CAAA,IAAA,CAAKA,wBAC/C,IAAKA,CAAAA,uBAAAA,CAA0B,IAEnCthD,CAAAA,CAAAA,YAAAA,CAAaK,QAAQy2D,CAAME,CAAAA,CAAe,EAC9C,CACA,GAAI,KAAKlrF,IAAKkR,CAAAA,eAAAA,EACN,IAAKoqE,CAAAA,YAAAA,CAAa9mF,IAAI,kBAAkB,CAAA,EAAK,SACzCsnF,EAAAA,CAAAA,CAAcqP,qBAAsB,CACpC,IAAA,CAAKh5E,UAAW0D,CAAAA,IAAAA,CAAKmvE,GAAcoG,cAAc,CAAA,CACjD,MACJ,CAGR,GAAI,KAAK9C,eAAgBN,CAAAA,SAAAA,EAAa,CAAA,CAClC,KAAKM,eAAgB7B,CAAAA,kBAAAA,CAAmB3lD,EAAiB,CAAMhlE,CAAAA,CAAAA,CAAQ,EACvE,IAAKuvH,CAAAA,gBAAAA,CAAiBvqD,CAAe,CAAA,CACrC,MACJ,CAAWl1B,KAAAA,GAAAA,CAAAA,CAAW0/E,wBAAyB,CAC3C,IAAMr9E,EAAc,IAAKs9E,CAAAA,SAAAA,CAAUzqD,CAAe,CAAA,CAClD,KAAKynD,sBAAuBzE,CAAAA,sBAAAA,CAAuB71E,CAAQ6yB,CAAAA,CAAAA,CAAiBhlE,CAAQ,CACpF,CAAA,MACJ,CAGA,GAAI,CAAC,IAAKsjG,CAAAA,uBAAAA,CAAwBt+B,EAAgBpc,IAAK5a,CAAAA,MAAM,GAAK,IAAK9J,CAAAA,IAAAA,CAAKkR,eAAmB,EAAA,CAAC4vB,EAAgBua,iBAAmB,CAAA,CAC/H,IAAKgkB,CAAAA,kBAAAA,CAAmBv+B,EAAiBhlE,CAAQ,CAAA,CACjD,MACJ,CAEA,IAAMomF,CAA+B,CAAA,IAAA,CAAKvhB,mBAAmBg4B,gBAAgB,EAAA,CACzEzW,GACAA,CAAcv+B,CAAAA,OAAAA,CAASvc,CAAW,EAAA,CAC9B,GAAIA,CAAS2F,EAAAA,WAAAA,EAAiB+zB,EAAAA,CAAAA,EAAiBpc,MAAM5a,MAAQiD,EAAAA,WAAAA,EAAiB,EAAA,IAAA,CAAK/M,KAAKkR,eAAiB,CAAA,CACrG,KAAKmuD,kBAAmBv+B,CAAAA,CAAAA,CAAiBhlE,CAAQ,CACjD,CAAA,MACJ,CACJ,CAAC,EAqBL,IAAI0vH,CAAAA,CAAU,IAAKC,CAAAA,UAAAA,CAAW3qD,CAAe,CAE7C,CAAA,GAAI,IAAK9gC,CAAAA,IAAAA,CAAKkR,gBAOV,GALI,IAAA,CAAK+jD,iBAAiBpR,sBACtB,EAAA,EAAE,KAAK03B,mBAAoBR,CAAAA,KAAAA,CAAMK,IAASyC,CAAAA,WAAW,GAAK,IAAKtC,CAAAA,mBAAAA,CAAoBL,UAAU,EAAA,CAAA,EAE7F,KAAKjmB,gBAAiBjR,CAAAA,mBAAAA,EAEtBljB,CAAAA,CAAAA,CAAgBpsB,QAEhB,GADA,IAAA,CAAKo0E,cAAc9C,mBAAoB,CAAA,CAAA,CAAK,EACxC,IAAKh0E,CAAAA,mBAAAA,CAAoB1E,cAAc,EAAA,CAAI,CAC3C,IAAMW,CAAAA,CAAS,CACXw3E,WAAAA,CAAa,GACbt9C,WAAcqjD,CAAAA,CAAAA,EAAW,aAAgBvpF,CAAAA,QAAAA,CAAS0vC,SAClDviC,UAAY,CAAA,YAAA,CAAA,CAEhB,KAAK4C,mBAAoB9D,CAAAA,mBAAAA,CAAoB,aAAcD,CAAM,EACrE,CAAO,KAAA,CACH,IAAMy9E,CAA8B,CAAA,IAAA,CAAKrrF,qBAAsB80E,CAAAA,kCAAAA,GAC3DuW,CAA+BA,EAAAA,CAAAA,CAA4BC,qBAC3D,CAAA,IAAA,CAAKxlB,aAAarlC,CAAiBhlE,CAAAA,CAAQ,EAE3C,IAAK8vH,CAAAA,mCAAAA,CACD,IAAK,CACD,IAAA,CAAKzlB,YAAarlC,CAAAA,CAAAA,CAAiBhlE,CAAQ,EAC/C,CAAA,CACA,IAAK,CACGglE,CAAAA,CAAgB00C,0BAChB10C,CAAgB00C,CAAAA,uBAAAA,CAAwBjhG,IAAI,EAAA,CAC5C,KAAK61G,qBAAwB,CAAA,CAAA,CAAA,EAErC,CAAC,EAGb,CAAA,KAEI,KAAKp4E,mBAAoB1E,CAAAA,cAAAA,EACzBk+E,GAAAA,CAAAA,EAAW,cAAgBvpF,QAAS0vC,CAAAA,QAAAA,CAAAA,CAExC,IAAKk6C,CAAAA,oCAAAA,CAAqC/qD,EAAiB0qD,CAAS1vH,CAAAA,CAAQ,CAC5EmsC,CAAAA,UAAAA,CAAW,IAAK,CACR,IAAA,CAAKwhF,mBAAqB,IAAKC,CAAAA,qBAAAA,EAC/B,KAAKX,UAAWrH,CAAAA,gBAAAA,GAExB,CAAA,CAAG,GAAI,CAGP,CAAA,KAAA,GAAA,IAAA,CAAK1vE,mBAAoB1E,CAAAA,cAAAA,IAAoB,IAAK6Y,CAAAA,0BAAAA,CAA2BxG,mBAAmB,EAAA,CAChG6rE,GAAW,aAAgBvpF,CAAAA,QAAAA,CAAS0vC,SACpC,IAAK3/B,CAAAA,mBAAAA,CAAoB9D,oBAAoB,YAAc,CAAA,CACvDu3E,WAAa,CAAA,CAAA,CAAA,CACbt9C,YAAaqjD,CACbnuB,CAAAA,eAAAA,CAAiB,YACpB,CAAA,CAAA,CAAA,KACE,CACH,IAAMyuB,CAAAA,CAAe,IAAKL,CAAAA,UAAAA,CAAW3qD,CAAe,CAC9C1sC,CAAAA,CAAAA,CAAkB,KAAK4d,mBAAoB1C,CAAAA,gBAAAA,IAC7C,CAAClb,CAAAA,EAAWA,CAAS2Y,EAAAA,WAAAA,IAAiB,QACtC,GAAA,IAAA,CAAKswE,kBAAkByO,CAAc,CAAA,cAAA,CAAgB,MAAM,CAG/D,CAAA,IAAMC,CAAwB,CAAA,CAC1B1uB,gBAAiB,YAEf2uB,CAAAA,CAAAA,EAAAA,CAA0B,CAC5B73E,SAAW2sB,CAAAA,CAAAA,CAAgBpc,KAAKvQ,SAChC2sB,CAAAA,eAAAA,CAAiB2pD,CACjBwB,CAAAA,SAAAA,CAAW,IAAI5jF,IAAI,EAAA,CAAGE,OAAO,EAAA,CAAA,CAG3Bu4B,EAAgBimC,gBAAoB,EAAA,cAAA,EACtC,IAAK2hB,CAAAA,mBAAAA,CAAoBvyD,wCAAwC,wBAA0B61D,CAAAA,EAAkB,EAG7GlrD,CAAgBorD,CAAAA,6BAAAA,GAChBH,EAAiB7wC,SAAYpa,CAAAA,CAAAA,CAAgBoa,SAE7Cpa,CAAAA,CAAAA,CAAAA,CAAgBimC,kBAAoB,cACpCglB,GAAAA,CAAAA,CAAiBvvC,aAAgB1b,CAAAA,CAAAA,CAAgBoa,UAC7Cj5C,QAASmiD,CAAAA,oBAAAA,CAAqB,qBAAqB,CAAA,CAAEt2E,QAAU,CAAG,EAAA,IAAA,CAAK21G,YAAY3wD,IAAKi5D,CAAAA,CAAgB,GAE1GjrD,CAAgBimC,CAAAA,gBAAAA,EAAoB,cAAqBjmC,EAAAA,CAAAA,CAAgBimC,kBAAoB,cAC/F,EAAA,IAAA,CAAK0c,WAAY3wD,CAAAA,IAAAA,CAAKi5D,CAAgB,CAEtCjrD,CAAAA,CAAAA,CAAgBimC,gBAAoB,EAAA,cAAA,GACpCglB,EAAiBvvC,aAAgB1b,CAAAA,CAAAA,CAAgBoa,UACjD,IAAKuoC,CAAAA,WAAAA,CAAY3wD,KAAKi5D,CAAgB,CAAA,EAE9C,CAER,CAEAI,sBAAsBC,CAAa,CAAA,CAC/B,KAAKA,QAAWA,CAAAA,EACpB,CAEAvB,iBAAiB,EAAA,CACT,IAAKuB,CAAAA,QAAAA,GAAa32E,SAClB,IAAKk0E,CAAAA,YAAAA,CAAe,KAAKyC,QAASC,CAAAA,SAAAA,CAAW/1H,GAAWA,CAAEi9C,CAAAA,QAAAA,GAAa/F,QAAS+F,CAAAA,QAAQ,EACxF,IAAKo2E,CAAAA,YAAAA,CAAe,IAAKA,CAAAA,YAAAA,CAAe,GAEhD,CAEAzF,aAAAA,CAAcj2E,CAAW,CAAA,CACrB,IAAMgQ,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACjEG,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,YACxCa,CAAAA,CAAAA,CAAekH,SAAS,uBACxB,CAAA,IAAA,CAAK9X,qBAAsBZ,CAAAA,iBAAAA,EAAmB,CAKlD,CAAA,OAAO,IAAKiR,CAAAA,GAAAA,CAAIlpB,IAAI6pB,CAAUpQ,CAAAA,CAAAA,CAAQ,CAAE+S,eAAiB,CAAA,CAAA,CAAI,CAAE,CACnE,CAEAuqE,SAAUzqD,CAAAA,CAAAA,CAA2B,CACjC,IAAI7rB,CAAAA,CAAsB,IAAKqK,CAAAA,aAAAA,CAAcpK,gBACxCD,CAAAA,CAAAA,GACDA,CAAc6rB,CAAAA,CAAAA,CAAgBoa,WAE7BjmC,CACDA,GAAAA,CAAAA,CAAc1H,OAAOC,QAASC,CAAAA,IAAAA,CAAAA,CAElC,IAAM7B,CAAa,CAAA,IAAA,CAAKvL,qBAAsBwL,CAAAA,iBAAAA,GAC9C,OAAKi1B,CAAAA,CAAgBga,gBAAeha,CAAgBga,CAAAA,aAAAA,CAAgB,IAC/Dha,CAAgB9+D,CAAAA,IAAAA,GAAM8+D,CAAgB9+D,CAAAA,IAAAA,CAAO4pC,EAAW2+E,QAEtD,CAAA,CAAA,CACHzgF,OAAQg3B,CAAgBpc,CAAAA,IAAAA,CAAK5a,OAC7B9nC,IAAM8+D,CAAAA,CAAAA,CAAgB9+D,IACtBsqH,CAAAA,IAAAA,CAAMxrD,EAAgB+Z,YACtB0xC,CAAAA,eAAAA,CAAiB,IAAKp6E,CAAAA,UAAAA,CAAW3E,SAASO,MAAOvZ,CAAAA,GAAAA,CAAI,iBAAiB,CAAA,CACtEg4F,aAAc,IAAKr6E,CAAAA,UAAAA,CAAW3E,SAASO,MAAOvZ,CAAAA,GAAAA,CAAI,cAAc,CAChEsmD,CAAAA,aAAAA,CAAeha,CAAgBga,CAAAA,aAAAA,CAC/B7lC,YAAaqvB,kBAAmBrvB,CAAAA,CAAW,CAC3Cw3E,CAAAA,WAAAA,CAAa3rD,EAAgBwnB,MAC7BjN,CAAAA,iBAAAA,CAAmBva,CAAgBua,CAAAA,iBAAAA,CACnCC,oBAAqBxa,CAAgBwa,CAAAA,mBAAAA,CACrCC,mBAAoBza,CAAgBya,CAAAA,kBAAAA,CACpCmxC,iBAAkB5rD,CAAgBpc,CAAAA,IAAAA,CAAKgoE,gBACvCzB,CAAAA,4BAAAA,CAA8BnqD,EAAgBmqD,4BAEtD,CAAA,CAEA7rB,uBAAwBt1D,CAAAA,CAAAA,CAAc,CAElC,OADwB,CAAA,CAAA,IAAA,CAAK0B,kBAAmB3B,CAAAA,WAAAA,CAAYC,CAAM,CAKtE,CAEA2hF,WAAW3qD,CAA2B,CAAA,CAClC,IAAMl1B,CAAa,CAAA,IAAA,CAAKvL,qBAAsBwL,CAAAA,iBAAAA,GACxCkxD,CAA4B,CAAA,IAAA,CAAK18D,sBAAsB28D,0BAA0B,EAAA,CAClFl8B,EAAgB9+D,IAAM8+D,GAAAA,CAAAA,CAAgB9+D,IAAO4pC,CAAAA,CAAAA,CAAW2+E,UAC7D,IAAIn2F,CAAAA,CAAkB,KAAKkrB,aAAc/K,CAAAA,sBAAAA,CAAuBusB,EAAgBpc,IAAKvQ,CAAAA,SAAS,CAC1F2sB,CAAAA,CAAAA,CAAgBia,iBAChB3mD,CAAU0sC,CAAAA,CAAAA,CAAgBia,cAEzB3mD,CAAAA,CAAAA,CAAAA,GACDA,EAAU,OAEd,CAAA,CAAA,IAAI9+B,CAAS,CAAA,IAAA,CAAKqzH,WAAWvsE,aAAa,EAAA,CAAK,IAAMhoB,CAAS2Y,EAAAA,WAAAA,GAO9D,GANI3Y,CAAAA,EAAS2Y,WAAW,EAAA,EAAM,kBAC1Bz3C,CAAS,CAAA,IAAA,CAAKu/F,sBAAuBrX,CAAAA,MAAAA,CAAS,MAAQuf,CAA2BG,EAAAA,yBAAAA,EAA2BnwD,WAAW,EAAA,CAAA,CAG3Hz3C,GAAU,YAAewrE,CAAAA,CAAAA,CAAgBpc,KAAK5a,MAE1C,CAAA,IAAA,CAAKkI,oBAAoB1E,cAAc,EAAA,EAAM,IAAKsnD,CAAAA,KAAAA,CAAM6B,SAASC,aAAcliE,CAAAA,GAAAA,CAAI,kBAAkB,CAAA,CAAG,CACxG,IAAMm4F,CAAAA,CAAsC,IAAIxmF,GAAAA,CAChDwmF,EAAe7hH,GAAI,CAAA,kBAAA,CAAoB,MAAM,CAC7C6hH,CAAAA,CAAAA,CAAe7hH,IAAI,gBAAkB,CAAA,IAAA,CAAKknC,mBAAoB1C,CAAAA,gBAAAA,EAAkB,CAChFq9E,CAAAA,CAAAA,CAAe7hH,IAAI,eAAiB,CAAA,IAAA,CAAKknC,oBAAoB5D,iBAAiB,EAAE,CAChFu+E,CAAAA,CAAAA,CAAe7hH,IAAI,gBAAkBg2D,CAAAA,CAAAA,CAAgBG,YAAY,CACjE3rE,CAAAA,CAAAA,CAAS,KAAKs3H,oBAAqBt3H,CAAAA,CAAAA,CAAQq3H,CAAc,EAC7D,CAEA,OAAI7rD,CAAAA,CAAgB+Z,YAChBvlF,CAAAA,CAAAA,CAAS,KAAK+nH,iBAAkB/nH,CAAAA,CAAAA,CAAQ,MAAQ,CAAA,MAAM,EAC/CwrE,CAAgB9+D,CAAAA,IAAAA,GACvB1M,EAAS,IAAK+nH,CAAAA,iBAAAA,CAAkB/nH,EAAQ,MAAQwrE,CAAAA,CAAAA,CAAgB9+D,IAAI,CAAA,CAAA,CAEpE8+D,EAAgBjuE,IAChByC,GAAAA,CAAAA,CAAS,IAAK+nH,CAAAA,iBAAAA,CAAkB/nH,EAAQ,OAASwrE,CAAAA,CAAAA,CAAgBjuE,IAAI,CAAA,CAAA,CAGjEiuE,EAAgBjuE,IAAS,GAAA,IAAA,CAAK0zG,iBAAiBlB,eAC/CvkC,EAAAA,CAAAA,CAAgBjuE,OAAS,IAAK0zG,CAAAA,gBAAAA,CAAiBjB,gBAC/CxkC,EAAAA,CAAAA,CAAgBjuE,OAAS,IAAK0zG,CAAAA,gBAAAA,CAAiBhB,mBAE/CjwG,IAAAA,CAAAA,CAAS,KAAK+nH,iBAAkB/nH,CAAAA,CAAAA,CAAQ,oBAAsBwrE,CAAAA,CAAAA,CAAgBG,YAAY,CAG1FH,CAAAA,CAAAA,CAAAA,CAAgBo+B,eAChB5pG,CAAS,CAAA,IAAA,CAAK+nH,kBAAkB/nH,CAAQ,CAAA,cAAA,CAAgBwrE,CAAgBo+B,CAAAA,YAAAA,CAAa3nG,UAAU,CAAA,CAAA,CAAA,CAGhGjC,CACX,CAEA6wG,YAAAA,CAAarlC,EAA6BhlE,CAAc,CAAA,CACpD,IAAMggH,CAAAA,CAAgB,KAAKz7E,qBAAsBU,CAAAA,qBAAAA,GAC3C2qF,CAA8B,CAAA,IAAA,CAAKrrF,sBAAsB80E,kCAAkC,EAAA,CAC3F0X,CAAc,CAAA,IAAA,CAAKxsF,sBAAsBwL,iBAAiB,EAAA,CAEhE,GACI6/E,CAAAA,EACAA,EAA4BC,qBAC5B,EAAA,IAAA,CAAK3rF,IAAKkR,CAAAA,eAAAA,EACV,KAAKlR,IAAKkR,CAAAA,eAAAA,CACZ,CACE,IAAM47E,CAAAA,CAAuBpB,EAA4BqB,oBACzD,CAAA,IAAA,CAAKrxD,YAAa/H,CAAAA,KAAAA,GAClB,IAAMn6D,CAAAA,CAAmB,CACrBqtH,IAAAA,CAAMiG,EACNlvH,IAAMsrD,CAAAA,EAAAA,CAAYC,WAClB69D,CAAAA,QAAAA,CAAU59D,KAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,mBAEPztH,CACA,EAAA,IAAA,CAAKkiE,aAAap0D,GAAI9N,CAAAA,CAAO,CAEjC,CAAA,IAAA,CAAK6xH,iBAAiBvqD,CAAe,EACzC,CAAO,KAAA,CAMH,GALAA,CAAgBma,CAAAA,iBAAAA,CACZ,IAAKmtC,CAAAA,WAAAA,CAAYtkD,cAChB,IAAKskD,CAAAA,WAAAA,CAAYh0F,UAAY,YAAgB,EAAA,IAAA,CAAKg0F,YAAYh0F,OAAY,GAAA,SAAA,CAAA,GAC1E,IAAKi0F,CAAAA,OAAAA,CAAQ7zF,IAAI,iBAAiB,CAAA,GAAM,QAAU,IAAK2d,CAAAA,UAAAA,CAAW3E,SAASO,MAAOvZ,CAAAA,GAAAA,CAAI,iBAAiB,CAAA,GAAM,QAE9GssC,CAAgBma,CAAAA,iBAAAA,EAAqB6gC,EAAckR,uBAA2B,EAAA,CAAC,KAAKhtF,IAAKkR,CAAAA,eAAAA,CAAiB,CAC1G,IAAA,CAAKoO,cAAc1J,WAAc,CAAA,IAAA,CAAK1D,gBAAiBlB,CAAAA,kBAAAA,CACnD,KAAKsO,aAAc1J,CAAAA,WAAAA,CACnB,EACAkrB,CAAAA,CAAAA,CAAgBpc,KAAK5a,MACrB,CAAA,CAAA,CAAK,EAET,MACJ,CAEA,IAAMmjF,CACFnsD,CAAAA,CAAAA,CAAgBjuE,IAAS,GAAA,IAAA,CAAK0zG,iBAAiBlB,eAC/CvkC,EAAAA,CAAAA,CAAgBjuE,IAAS,GAAA,IAAA,CAAK0zG,iBAAiBV,aAC/C/kC,EAAAA,CAAAA,CAAgBjuE,IAAS,GAAA,IAAA,CAAK0zG,iBAAiBjB,gBAC/CxkC,EAAAA,CAAAA,CAAgBjuE,OAAS,GACzBiuE,EAAAA,CAAAA,CAAgBjuE,OAAS,GACzBiuE,EAAAA,CAAAA,CAAgBjuE,IAAS,GAAA,IAAA,CAAK0zG,iBAAiBT,MAMnD,CAAA,GAJImnB,CAA2BnsD,EAAAA,CAAAA,CAAgBpc,KAAKvQ,SAChD2sB,GAAAA,CAAAA,CAAgBpc,IAAO,CAAA,IAAA,CAAKwoE,0BAA0BpsD,CAAgBpc,CAAAA,IAAI,GAIzEuoE,CAA2BnsD,EAAAA,CAAAA,CAAgBpc,KAAKyoE,eAChDF,EAAAA,CAAAA,EAA2BnsD,CAAgBpc,CAAAA,IAAAA,CAAK0oE,iBACnD,CASE,GARItsD,EAAgBma,iBAChB,GAAA,IAAA,CAAK37B,cAAc1J,WAAc,CAAA,IAAA,CAAK1D,gBAAiBlB,CAAAA,kBAAAA,CACnD,KAAKsO,aAAc1J,CAAAA,WAAAA,CACnB0uB,mBAAmB,IAAKzvB,CAAAA,SAAAA,CAAUkwE,WAAWjkD,CAAgBpc,CAAAA,IAAAA,CAAK5a,MAAM,CAAC,EACzEg3B,CAAgBpc,CAAAA,IAAAA,CAAK5a,MACrB,CAAA,IAAA,CAAK9J,KAAKkR,eAAe,CAAA,CAAA,CAG7B4vB,CAAgBma,CAAAA,iBAAAA,CAChB,KAAK37B,aAAc1J,CAAAA,WAAAA,CAAc,KAAK1D,gBAAiBlB,CAAAA,kBAAAA,CACnD,KAAKsO,aAAc1J,CAAAA,WAAAA,CACnB0uB,kBAAmB,CAAA,IAAA,CAAKzvB,UAAUkwE,UAAWjkD,CAAAA,CAAAA,CAAgBpc,IAAK5a,CAAAA,MAAM,CAAC,CACzEg3B,CAAAA,CAAAA,CAAgBpc,IAAK5a,CAAAA,MAAAA,CACrB,KAAK9J,IAAKkR,CAAAA,eAAe,OAE1B,CACH,IAAMm8E,EAA2B,CAC7B3oE,IAAAA,CAAMoc,CAEV,CAAA,CAAA,IAAA,CAAK0zB,OAAO1hC,IAAK40C,CAAAA,EAAAA,CAAqB,CAAE3nE,IAAAA,CAAMstF,CAAmB,CAAE,CAAA,CACnE,IAAKjE,CAAAA,qBAAAA,CAAsBvoG,KAAKwsG,CAAmB,EACvD,CACA,MACJ,CACA,IAAMp5H,CAAoC,CAAA,CACtCmqE,eAAiB,CAAA,CAAA,CAAA,CAAA,CAEjBnqE,GAAS,IAAKynE,CAAAA,YAAAA,CAAa/H,MAAM1/D,CAAO,CAAA,CAC5C,IAAMg6C,CAAc,CAAA,IAAA,CAAKs9E,SAAUzqD,CAAAA,CAAe,EAClD,IAAKwsD,CAAAA,gBAAAA,CAAiBr/E,EAAQ6yB,CAAiB+rD,CAAAA,CAAAA,CAAa/wH,CAAQ,EACxE,CACJ,CAEAwxH,gBAAAA,CAAiBr/E,EAAa6yB,CAA6B+rD,CAAAA,CAAAA,CAAkB/wH,CAAc,CAAA,CACvF,KAAKooH,aAAcj2E,CAAAA,CAAM,CAAE5iB,CAAAA,SAAAA,CACtB+2B,GAAiB,CAEd,GAAIA,GAAYA,CAAS+/D,CAAAA,UAAAA,EAAc//D,EAAS4G,QAAU,CAAA,CACtD,IAAKqiE,CAAAA,gBAAAA,CAAiBvqD,CAAe,CACrC,CAAA,IAAA,CAAKysD,qBAAsBnrE,CAAAA,CAAAA,CAAU0e,EAAiBhlE,CAAQ,CAAA,CAC9D,MACJ,CAEA,GADA,IAAKuvH,CAAAA,gBAAAA,CAAiBvqD,CAAe,CACjC1e,CAAAA,EAAAA,EAASriB,IAAQqiB,EAAAA,CAAAA,CAASriB,IAAKytF,CAAAA,IAAAA,CAAAA,CAC5B,CACH,IAAIC,CAAAA,CAAuB,IAAKptF,CAAAA,qBAAAA,CAAsBwL,mBAAqB4hF,EAAAA,oBAAAA,CACrEtlD,CAAc,CAAA,IAAA,CAAKu7C,8BAA8BlI,aAAcp5D,CAAAA,CAAAA,CAAU0e,CAAe,CAE9F,CAAA,GADA1e,EAAS4G,QAAWmf,CAAAA,CAAAA,CAEfslD,CAAsBvS,EAAAA,UAAAA,EAAc,KAAKK,mBAAoBL,CAAAA,UAAAA,IAC7DuS,CAAsB7P,EAAAA,KAAAA,EAAS,KAAKrC,mBAAoBR,CAAAA,KAAAA,CAAMK,IAASyC,CAAAA,WAAW,EACrF,CACE,IAAA,CAAK6P,0BAA0BvlD,CAAW,CAAA,CAC1C,MACJ,CAEA,IAAA,CAAKwlD,sBAAuBvrE,CAAAA,CAAAA,CAAU0e,EAAiBhlE,CAAQ,EACnE,CACI+wH,CAAAA,CAAYe,wBACZ,IAAKvF,CAAAA,OAAAA,CAAQlnE,GAAI,CAAA,UAAA,CAAY,KAAKnhB,IAAKwB,CAAAA,QAAAA,EAAY,GAAI,CACnDy4C,MAAAA,CAAQ,KAAKh6C,IAAKg6C,CAAAA,MAAAA,CACrB,CACL,CAAA,IAAMtyB,EAAWmZ,CAAiBpc,EAAAA,IAAAA,EAAMpsD,IAClCwoE,CAAAA,CAAAA,EAAiBpc,MAAMpsD,IACvB,CAAA,IAAA,CAAKkzC,kBAAmBzB,CAAAA,kBAAAA,CAAmB+2B,GAAiBpc,IAAK5a,CAAAA,MAAM,EAC7E,IAAKw1D,CAAAA,aAAAA,CAAc33C,CAAQ,EAC/B,CAAA,CACCj7C,CAAc,EAAA,CACX,KAAK2+G,gBAAiBvqD,CAAAA,CAAe,CACrC,CAAA,IAAA,CAAKysD,sBAAsB7gH,CAAOo0D,CAAAA,CAAAA,CAAiBhlE,CAAQ,EAC/D,CAAC,EAET,CAEAuvH,iBAAiBvqD,CAAoB,CAAA,CACjC,KAAKpF,YAAa/H,CAAAA,KAAAA,EACC,CAAA,IAAA,CAAKtzB,sBAAsBwL,iBAAiB,EAAA,CAChDs+E,2BAA6BrpD,CAAgB00C,CAAAA,uBAAAA,EAA2B,KAAK4U,qBACxFtpD,GAAAA,CAAAA,CAAgB00C,uBAAwBjhG,CAAAA,IAAAA,GACxC,IAAK61G,CAAAA,qBAAAA,CAAwB,IAErC,CAEAsD,yBAAAA,CAA0BrJ,EAAqB,CAC3C,IAAMwJ,CAAgB,CAAA,IAAIzzC,gBAAgBiqC,CAAa,CAAA,CACjD/uG,CAAe,CAAA,GACrBA,CAAQopC,CAAAA,GAAAA,CAAM2lE,CACd/uG,CAAAA,CAAAA,CAAQ1X,KAAO,eACViwH,CAAAA,CAAAA,CAAcr5F,IAAI,QAAQ,CAAA,GAC3Blf,EAAQw4G,UAAa,CAAA,QAAA,CAAA,CAEzB,IAAK1F,CAAAA,WAAAA,CAAYvV,aAAa,CAC1BzrG,SAAAA,CAAW,IAAK6hH,CAAAA,QAAAA,CAChBn5E,WAAYx6B,CACf,CAAA,EACL,CAEAylF,uBAAAA,CAAwBj6B,EAAsBhlE,CAA6B,CAAA,CACvE,IAAMmyC,CAAc,CAAA,IAAA,CAAKs9E,UAAUzqD,CAAe,CAAA,CAClD,IAAKojD,CAAAA,aAAAA,CAAcj2E,CAAM,CAAE5iB,CAAAA,SAAAA,CACtB+2B,CAAiB,EAAA,CACd,GAAIA,EAAAA,CAAAA,CAASriB,IAAQqiB,EAAAA,CAAAA,CAASriB,KAAKytF,IAC5B,CAAA,CAAA,CAEH,IAAMxyB,CAAwB,CAAA,CAC1B9J,UAFgB,IAAKwyB,CAAAA,6BAAAA,CAA8BlI,aAAcp5D,CAAAA,CAAAA,CAAU0e,CAAe,CAI9FhlE,CAAAA,CAAAA,CAAAA,CAASk/F,CAAgB,EAC7B,CACJ,EACCtuF,CAAc,EAAA,CACX,IAAK6gH,CAAAA,qBAAAA,CAAsB7gH,EAAOo0D,CAAe,EACrD,CAAC,EAET,CAEAu8C,kBAAkB3+D,CAAanrD,CAAAA,CAAAA,CAAayC,CAAa,CAAA,CACrD,OAAI0oD,CAAIhR,CAAAA,OAAAA,CAAQ,GAAG,CAAA,CAAI,GACnBgR,CAAO,EAAA,GAAA,CAAMnrD,CAAM,CAAA,GAAA,CAAMyC,EAEzB0oD,CAAO,EAAA,GAAA,CAAMnrD,EAAM,GAAMyC,CAAAA,CAAAA,CAEtB0oD,CACX,CAEAkuE,oBAAAA,CAAqBluE,CAAaqvE,CAAAA,CAAAA,CAA6B,CAC3D,OAAIA,CAAAA,EAAYA,CAAS59F,CAAAA,IAAAA,CAAO,GAC5B49F,CAASpqE,CAAAA,OAAAA,CAAQ,CAAC3tD,CAAAA,CAAOzC,IAAO,CACxBmrD,CAAAA,CAAIhR,QAAQ,GAAG,CAAA,CAAI,GACnBgR,CAAO,EAAA,GAAA,CAAMnrD,CAAM,CAAA,GAAA,CAAMyC,EAEzB0oD,CAAO,EAAA,GAAA,CAAMnrD,CAAM,CAAA,GAAA,CAAMyC,EAEjC,CAAC,CAAA,CAEE0oD,CACX,CACAsvE,aAAaxC,CAAiB5wC,CAAAA,CAAAA,CAA8B,CACxD,IAAMoqC,CAAAA,CAAe,KAAK3kF,qBAAsBQ,CAAAA,mBAAAA,EAChD,CAAA,GAAI,CAAC,IAAKb,CAAAA,IAAAA,CAAKkR,gBAAiB,CAC5B,IAAM66E,EAAwB,CAC1B7wC,SAAAA,CAAWswC,CACXnuB,CAAAA,eAAAA,CAAiB,cAErB,OAAKomB,IAAAA,CAAAA,WAAAA,CAAY3wD,KAAKi5D,CAAgB,CAAA,CAC/B,EACX,CACA,IAAMkC,CAAkB,CAAA,IAAI5lF,KAAK,IAAKrI,CAAAA,IAAAA,CAAKkuF,WAAe,EAAA,EAAE,EACtDC,CAAiBnJ,CAAAA,CAAAA,CAAaoJ,0BACpC,CAAA,GAAID,EAAS,CAAG,CAAA,CACZ,IAAME,CAAgB,CAAA,IAAIhmF,KACtB+8E,CAAa,CAAA,CAAA,CAAA,CACjBiJ,CAAQC,CAAAA,WAAAA,CAAYD,EAAQtjC,WAAW,EAAA,CAAKojC,CAAM,CAAA,CAClD,IAAMl6H,CAAuB,CAAA,CACzB0tC,OAASi5C,CAAAA,CAAAA,CAAAA,CAEb,GAAIyzC,CAAUJ,CAAAA,CAAAA,CACV,OAAIE,CAAW,GAAA,EAAA,EACX,KAAKt5E,SAAUqwE,CAAAA,UAAAA,CAAW,QAAUjxH,CAAAA,CAAAA,CAASmxH,CAAU,CAEvD+I,CAAAA,CAAAA,GAAW,EACX,EAAA,IAAA,CAAKt5E,UAAUqwE,UAAW,CAAA,WAAA,CAAajxH,CAASmxH,CAAAA,CAAU,EAEvD,CAEf,CAAA,CACA,OAAO,CACX,CAAA,CAEA8H,0BAA0BxoE,CAAS,CAAA,CAC/B,IAAM9Y,CAAAA,CAAa,KAAKvL,qBAAsBwL,CAAAA,iBAAAA,GACxCnL,CAAe,CAAA,IAAA,CAAKL,sBAAsBM,mBAAmB,EAAA,CAC7DwT,CAAYuQ,CAAAA,CAAAA,CAAKvQ,UACvB,GAAIuQ,CAAAA,GAAS,CAACA,CAAK6lB,CAAAA,QAAAA,EAAY7lB,EAAK6lB,QAAa,GAAA,EAAA,CAAA,CAAK,CAClD,IAAMrD,EAAmB,IAAK17B,CAAAA,kBAAAA,CAAmB3B,WAAY6a,CAAAA,CAAAA,CAAK5a,MAAM,CACpEo9B,CAAAA,CAAAA,GACAxiB,CAAK6lB,CAAAA,QAAAA,CAAWrD,EAAYqD,QAEpC,EAAA,CAEA,IAAMgkD,CAAyB,CAAA,IAAA,CAAKjvE,cAAclJ,4BAA6BjC,CAAAA,CAAAA,CAAWzT,CAAa8tF,CAAAA,uBAAuB,EACxHC,CAA+B,CAAA,IAAA,CAAKnvE,aAAclJ,CAAAA,4BAAAA,CAA6BjC,EAAWvI,CAAW8iF,CAAAA,gCAAgC,CACrIC,CAAAA,CAAAA,CAAsB/iF,EAAWgjF,cACjCC,CAAAA,CAAAA,CAA0B,KAAKvvE,aAAclJ,CAAAA,4BAAAA,CAA6BjC,EAAWvI,CAAWkjF,CAAAA,+BAA+B,CAErI,CAAA,GAAIP,GAAkB11E,IAAamB,CAAAA,uBAAAA,EAA2Bu0E,CAAkB11E,EAAAA,IAAAA,CAAaoB,6BAEpF,CAACrO,CAAAA,CAAWmjF,iCACTN,EAAAA,CAAAA,CAAwB/gF,QAAQgX,CAAK6lB,CAAAA,QAAQ,EAAI,CACjD,CAAA,EAAA,CAAC7lB,EAAK5a,MAAOklF,CAAAA,UAAAA,CAAW,KAAK,CAAA,EAChCtqE,EAAK6lB,QAAY,EAAA,UAAA,EAAc7lB,CAAK5a,CAAAA,MAAAA,CAAOklF,WAAW,cAAc,CAAA,EAErEtqE,CAAK0oE,CAAAA,gBAAAA,CAAmB,GACxB1oE,CAAKyoE,CAAAA,eAAAA,CAAkB,KAEvBzoE,CAAK0oE,CAAAA,gBAAAA,CAAmB,GACxB1oE,CAAKyoE,CAAAA,eAAAA,CAAkB,CAExB,CAAA,CAAA,CAAA,KAAA,CACH,IAAM8B,CAAQV,CAAAA,CAAAA,EAAkB11E,IAAaqB,CAAAA,sBAAAA,CACvCozB,EAAUihD,CAAkB11E,EAAAA,IAAAA,CAAasB,oBAAwB80E,EAAAA,CAAAA,CAElE,CAACrjF,CAAWmjF,CAAAA,iCAAAA,EACTN,EAAwB/gF,OAAQgX,CAAAA,CAAAA,CAAK6lB,QAAQ,CAAI,CAAA,CAAA,CAAA,EACjD,CAAC7lB,CAAAA,CAAK5a,OAAOklF,UAAW,CAAA,KAAK,CAChCtqE,EAAAA,CAAAA,CAAK6lB,UAAY,UAAc7lB,EAAAA,CAAAA,CAAK5a,MAAOklF,CAAAA,UAAAA,CAAW,cAAc,CAErEtqE,EAAAA,CAAAA,CAAK0oE,iBAAmB,CACxB1oE,CAAAA,CAAAA,CAAAA,CAAKyoE,gBAAkB,CAEvBzoE,CAAAA,GAAAA,CAAAA,CAAK0oE,gBAAmB9/C,CAAAA,CAAAA,CACxB5oB,EAAKyoE,eAAkB8B,CAAAA,CAAAA,EAE/B,CACA,GAAIN,GAAkB,EAAEF,CAAAA,CAAwB/gF,OAAQgX,CAAAA,CAAAA,CAAK6lB,QAAQ,CAAI,CAAA,CAAA,CAAA,EAAM,CAAC7lB,CAAK5a,CAAAA,MAAAA,CAAOklF,WAAW,KAAK,CAAA,CAAA,GACxGtqE,CAAKwqE,CAAAA,WAAAA,CAAc,GACnBxqE,CAAKyqE,CAAAA,aAAAA,CAAgB,GACjBN,CAAsBA,EAAAA,CAAAA,CAAmB/gH,OAAS,CAAG,CAAA,CAAA,CACrD,IAAMshH,CAAAA,CAAuBP,EAAmB9zH,MAAQsO,CAAAA,CAAAA,EAAWA,IAAMq7C,CAAK6lB,CAAAA,QAAQ,EAClF6kD,CAAwBA,EAAAA,CAAAA,CAAqB,CAAC,CAAA,GAC9C1qE,EAAK2qE,qBAAwBzjF,CAAAA,CAAAA,CAAW27D,qBAEhD,EAAA,CAEJ,OAAO7iD,CACX,CAEAipE,sBAAuBvrE,CAAAA,CAAAA,CAAe0e,EAA6BhlE,CAAc,CAAA,CAC7E,KAAK0sH,cAAe5F,CAAAA,gBAAAA,CAAiBxgE,EAAU,CAAI,CAAA,CAAA,CAE/C,IAAKomE,CAAAA,cAAAA,CAAe3f,UAAe,GAAA,CAAA,CAAA,CACnC,IAAKymB,CAAAA,OAAAA,CAAQltE,EAAU0e,CAAiBhlE,CAAAA,CAAQ,CAEhD,CAAA,IAAA,CAAK0sH,eAAelG,uBAAwBj3F,CAAAA,SAAAA,CAAWkkG,GAAsB,CACrEA,CAAAA,EAAiBA,IAAkB,IAAK/G,CAAAA,cAAAA,CAAepG,gBACvD,EAAA,IAAA,CAAKkN,QAAQltE,CAAU0e,CAAAA,CAAAA,CAAiBhlE,CAAQ,EAExD,CAAC,EAET,CAEAwzH,OAAQltE,CAAAA,CAAAA,CAAe0e,EAA6BhlE,CAAc,CAAA,CAC9D,GAAIglE,CAAgBma,CAAAA,iBAAAA,EAAqB,KAAKsrB,gBAAiBP,CAAAA,OAAAA,CAAQllC,CAAgBjuE,CAAAA,IAAI,EACvF,IAAKysD,CAAAA,aAAAA,CAAc1J,YAAc,IAAK1D,CAAAA,gBAAAA,CAAiBlB,mBACnD,IAAKsO,CAAAA,aAAAA,CAAc1J,WACnB0uB,CAAAA,kBAAAA,CAAmBliB,EAAS4G,QAAQ,CAAA,CACpC8X,EAAgBpc,IAAK5a,CAAAA,MAAAA,CACrB,KAAK9J,IAAKkR,CAAAA,eAAe,CAE1B,CAAA,KAAA,CACH,IAAMj9C,CAAuB,CAAA,CACzB0tC,OAASm/B,CAAAA,CAAAA,CAAgB8Z,sBACzBtxB,WAAa,CAAA,CAAA,CAAA,CAAA,CAOjB,GAJIwX,CAAAA,CAAgBjuE,MAAQ,WAAeiuE,EAAAA,CAAAA,CAAgB3sB,WACvD,IAAKu0E,CAAAA,mBAAAA,CAAoBhyD,iCAAiCoK,CAAgB3sB,CAAAA,SAAAA,CAAW2sB,CAAgBpc,CAAAA,IAAAA,CAAK5a,MAAM,CAGhHhuC,CAAAA,CAAAA,CAAU,CACV,IAAMk/F,EAAmB,CACrBmpB,OAAAA,CAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAc,GACdC,aAAejiE,CAAAA,CAAAA,CAAS4G,UAE5BltD,CAASk/F,CAAAA,CAAgB,EAC7B,CACQ,KAAA,GAAA,IAAA,CAAKtmD,OACL,CAAA,IAAA,CAAK4qD,cAAcx+B,CAAiBpc,EAAAA,IAAAA,EAAMpsD,IAAI,CAAA,CAC9C,KAAKu8C,SAAU0wE,CAAAA,QAAAA,CAASnjE,CAAS4G,CAAAA,QAAAA,CAAU/0D,EAAS,CAAM,CAAA,CAAA,CAAC,OACxD,CAEH,IAAIspH,EAAa,IAAKmG,CAAAA,6BAAAA,EAA+BtD,iBAAiB,EAAA,CAChE,KAAKsD,6BAA+BtD,EAAAA,iBAAAA,GACpCt/C,CAAiB5oB,EAAAA,cAAAA,CAGvB,GADAqlE,CAAaA,CAAAA,CAAAA,EAAc,OACvB,CAAA,IAAA,CAAKj+D,cAAcrH,qBAAsB6oB,CAAAA,CAAAA,EAAiBpc,MAAMvQ,SAAWopE,CAAAA,CAAU,EAAG,CACxF,IAAA,CAAKje,aAAcx+B,CAAAA,CAAAA,EAAiBpc,MAAMpsD,IAAI,CAAA,CAC9C,IAAKu8C,CAAAA,SAAAA,CAAU0wE,SAASnjE,CAAS4G,CAAAA,QAAAA,CAAU/0D,CAAS,CAAA,CAAA,CAAA,CAAM,CAAC,CAC3D,CAAA,MACJ,CAEA,IAAM6sC,CAAAA,CAAW,KAAKT,qBAAsBU,CAAAA,qBAAAA,EAC5C,CAAA,GAAID,EAASy1D,kCAET,CAAA,GAD6B,IAAKsB,CAAAA,aAAAA,CAAc,kBAAkB,CACxC,CAAA,CAEtB,IAAMi1B,CAAAA,CADS,KAAKzsF,qBAAsBgE,CAAAA,mBAAAA,GACdI,QAAS,CAAA,iBAAA,CACrC,KAAKi3B,YAAa/H,CAAAA,KAAAA,EAClB1rB,CAAAA,UAAAA,CAAW,IAAK,CACR6kF,CAAAA,EAAgB,IAAKlD,CAAAA,eAAAA,EACrB,KAAKluD,YAAazS,CAAAA,QAAAA,CAAS6jE,CAAc1jE,CAAAA,IAAAA,CAAgBqjC,OAAQ,iBAAiB,CAAA,CACtF,KAAKm9B,eAAkB,CAAA,CAAA,CAAA,CACvBr8E,OAAOm/C,QAAS,CAAA,CAAEwT,GAAK,CAAA,CAAC,CAAE,CAC1Bj4D,CAAAA,UAAAA,CAAW,IAAK,CACZ,IAAA,CAAKyzB,aAAa/H,KAAK,EAAA,CACvB,IAAKi2D,CAAAA,eAAAA,CAAkB,GACnB,IAAKz3E,CAAAA,UAAAA,CAAW3E,SAASkR,GAAG,EAAA,CAAGhR,QAAQ,UAAU,CAAA,EAAK,CACtD,EAAA,IAAA,CAAK4R,cAAc3J,SAAS,EAAA,CAEhC,IAAK4mC,CAAAA,SAAAA,GACT,CAAGz7C,CAAAA,CAAAA,CAASijE,sBAAsB,EACtC,EAAG,CAAC,EACR,MAAO,CACH,IAAMyrB,EAA0B,CAC5Bt+B,SAAAA,CAAW9uC,CAAS4G,CAAAA,QAAAA,CACpBtE,KAAM,IAAK2R,CAAAA,OAAAA,CACX4K,YAAcH,CAAAA,CAAAA,CAAgBG,cAGlC,IAAKwuD,CAAAA,sBAAAA,CAAuBD,CAAkB,EAClD,MACG,CACH,IAAMA,EAA0B,CAC5Bt+B,SAAAA,CAAW9uC,EAAS4G,QACpBtE,CAAAA,IAAAA,CAAM,IAAK2R,CAAAA,OAAAA,CACX4K,aAAcH,CAAgBG,CAAAA,YAAAA,CAAAA,CAGlC,IAAKwuD,CAAAA,sBAAAA,CAAuBD,CAAkB,EAClD,CACJ,CAER,CACJ,CAEA33B,aAActkG,CAAAA,CAAAA,CAAQ,CAClB,OAAI,IAAA,CAAK80H,QAAQ7zF,GAAIjhC,CAAAA,CAAG,CAAM,GAAA,GAIlC,CAEAk8H,sBAAuB1vF,CAAAA,CAAAA,CAAY,KAAI,CACjB,IAAA,CAAKy0D,OAAO1hC,IAAK8wC,CAAAA,EAAAA,CAA4B,CAC3D7xD,KAAAA,CAAO,QACP1C,MAAQ,CAAA,OAAA,CACRtP,KAAMA,CACT,CAAA,CAAA,CACSs8C,aAAchxD,CAAAA,SAAAA,CAAU,IAAK,CACnC,KAAK69F,sBAAuBroG,CAAAA,IAAAA,CAAK,CAAI,CAAA,CAAA,CACrC,KAAKm3E,0BAA2B,CAAA,CAAA,CAAK,EACzC,CAAC,EACL,CAEAA,0BAAAA,CAA2BuI,EAAa,CAEpC,IAAMpK,EAAkBl0D,QAASm0D,CAAAA,sBAAAA,CAAuB,mBAAmB,CAAA,CAAEtoF,OACtEm0B,QAASm0D,CAAAA,sBAAAA,CAAuB,mBAAmB,CAAA,CAAE,CAAC,CACvD,CAAA,IAAA,CACFD,CAAmBA,EAAAA,CAAAA,CAAgBgG,eACnChG,CAAgBgG,CAAAA,aAAAA,CAAchuD,YAAY,CAAEqyD,mBAAAA,CAAqBD,CAAI,CAAI,CAAA,IAAA,CAAK1L,sBAAuB12C,CAAAA,KAAK,EAE1G,IAAK9Q,CAAAA,qBAAAA,EAAuBZ,iBAAiB,EAAA,EAAIM,aAAiB,EAAA,QAAA,CAC9DopD,CAAkB5oD,CAAAA,MAAAA,CAAekzD,wBAA0BF,CACzDhzD,CAAAA,MAAAA,CAAekzD,wBAA0B,CAE9ClzD,CAAAA,CAAAA,MAAAA,CAAekzD,wBAA0BF,EAElD,CAEAsrB,oCAAqC/qD,CAAAA,CAAAA,CAAsB0qD,EAAiB1vH,CAAc,CAAA,CAEtF,GAD0B,IAAKukC,CAAAA,qBAAAA,CAAsB0oE,0BAC/BntD,CAAAA,SAAAA,CAAW,CAC7B,IAAA,CAAK6sE,wBAAwBhT,gBACzB,CAAA,IAAK,CACD,IAAKia,CAAAA,iBAAAA,CAAkB5uD,EAAiB0qD,CAAS1vH,CAAAA,CAAQ,EAC7D,CAAA,CACA,IAAK,CACGglE,CAAAA,CAAgB00C,uBAChB10C,GAAAA,CAAAA,CAAgB00C,wBAAwBjhG,IAAI,EAAA,CAC5C,IAAK61G,CAAAA,qBAAAA,CAAwB,IAErC,CAAC,CAAA,CAEL,MACJ,CACA,IAAA,CAAKsF,kBAAkB5uD,CAAiB0qD,CAAAA,CAAAA,CAAS1vH,CAAQ,EAC7D,CAEAyxH,qBAAsB7gH,CAAAA,CAAAA,CAAYo0D,CAA6BhlE,CAAAA,CAAAA,CAAc,CACzE,GAAI4Q,CAAAA,CAAO,CACP,IAAIijH,EAAuB,EAAA,CAI3B,GAHIjjH,CAAO63G,EAAAA,MAAAA,EAAU73G,GAAO63G,MAAQ9/E,EAAAA,QAAAA,GAChCkrF,CAAgBjjH,CAAAA,CAAAA,CAAM63G,OAAO9/E,QAE7B/3B,CAAAA,CAAAA,CAAAA,CAAMs8C,QAEN,CAAA,GAD0B,KAAKo/D,WAAYtkD,CAAAA,WAAAA,EAClB,IAAKyiC,CAAAA,gBAAAA,CAAiBP,QAAQllC,CAAgBjuE,CAAAA,IAAI,EACvE,IAAKysD,CAAAA,aAAAA,CAAc1J,YAAc,IAAK1D,CAAAA,gBAAAA,CAAiBlB,kBACnD,CAAA,IAAA,CAAKsO,cAAc1J,WACnB0uB,CAAAA,kBAAAA,CAAmB53D,EAAMs8C,QAAQ,CAAA,CACjC8X,EAAgBpc,IAAK5a,CAAAA,MAAAA,CACrB,IAAK9J,CAAAA,IAAAA,CAAKkR,eAAe,CAEzB,CAAA,IAAA,CAAKiV,2BAA2BxG,mBAAmB,EAAA,EACnDpS,OAAOvsC,MAAOmtC,CAAAA,WAAAA,CACV,CACI/mC,SAAAA,CAAW,aACX6mC,MAAQ,CAAA,CAAEk6B,WAAaz7D,CAAAA,CAAAA,CAAMs8C,QAAQ,CAEzCzb,CAAAA,CAAAA,MAAAA,CAAOC,QAASuP,CAAAA,MAAM,OAG3B,CACH,IAAM9oD,EAAuB,CACzB0tC,OAAAA,CAASm/B,EAAgB8Z,qBAE7B,CAAA,CAAA,GAAI,IAAKz0B,CAAAA,0BAAAA,CAA2BxG,qBAChCpS,CAAAA,MAAAA,CAAOvsC,MAAOmtC,CAAAA,WAAAA,CACV,CACI/mC,SAAW,CAAA,YAAA,CACX6mC,MAAQ,CAAA,CAAEk6B,YAAaz7D,CAAMs8C,CAAAA,QAAQ,GAEzCzb,MAAOC,CAAAA,QAAAA,CAASuP,MAAM,CAOtBrwC,CAAAA,KAAAA,GAAAA,CAAAA,CAAMy1G,UAAcz1G,EAAAA,CAAAA,CAAMy1G,WAAWr8B,UAAc,EAAA,GAAA,CAAK,CACxD,IAAMkmC,EAA0B,CAC5B73E,SAAAA,CAAW2sB,CAAgBpc,CAAAA,IAAAA,CAAKvQ,UAChC2sB,eAAiBA,CAAAA,CAAAA,CACjBmrD,UAAW,IAAI5jF,IAAAA,GAAOE,OAAO,EAAA,CAAA,CAE5Bu4B,CAAgBwa,CAAAA,mBAAAA,EAEjB,KAAKotC,mBAAoBvyD,CAAAA,uCAAAA,CAAwC,8BAA+B61D,CAAkB,CAAA,CAEtH,IAAMhjE,CAAW,CAAA,IAAA,CAAK4mE,iBAAkB1V,CAAAA,kBAAAA,CAAmBxtG,EAAMs8C,QAAQ,CAAA,CAAG8X,CAAe,CAC3F,CAAA,IAAA,CAAKjsB,UAAU0wE,QAASv8D,CAAAA,CAAAA,CAAU/0D,CAAS,CAAA,CAAA,CAAA,CAAM,GAAI07H,CAAa,EACtE,CACI,KAAA,IAAA,CAAKE,8BAA8BF,CAAe7zH,CAAAA,CAAQ,CAC1D,CAAA,IAAA,CAAK+4C,UAAU0wE,QAASrL,CAAAA,kBAAAA,CAAmBxtG,EAAMs8C,QAAQ,CAAA,CAAG/0D,EAAS,CAAM,CAAA,CAAA,CAAA,CAAA,CAAI07H,CAAa,EAGxG,MAEA,IAAKE,CAAAA,6BAAAA,CAA8BF,CAAe7zH,CAAAA,CAAQ,EAElE,CACJ,CAEA4zH,iBAAkB5uD,CAAAA,CAAAA,CAAsB0qD,EAAiB1vH,CAAc,CAAA,CACnE,GAAI,IAAKk2C,CAAAA,mBAAAA,CAAoB1E,gBAAkB,CAAA,CAC3C,IAAMW,CAAAA,CAAS,CACXw3E,WAAa,CAAA,CAAA,CAAA,CACbt9C,WAAaqjD,CAAAA,CAAAA,CACbp8E,WAAY,YAEhB,CAAA,CAAA,IAAA,CAAK4C,mBAAoB9D,CAAAA,mBAAAA,CAAoB,aAAcD,CAAM,EACrE,MACI,IAAKk4D,CAAAA,YAAAA,CAAarlC,EAAiBhlE,CAAQ,EAEnD,CAEA6gG,gBAAAA,CAAiB7yD,EAAW,CACxB,IAAM6qB,EAAe,IAAKgM,CAAAA,kBAAAA,CAAmBk6B,iBACzCgM,CAAAA,CAAAA,CACJ,GAAIlyC,CAAAA,EAAgBA,EAAaxkC,IAAO,CAAA,CAAA,CAAG,CACvC,IAAMkmC,CAAAA,CAAU1B,EAAangC,GAAIsV,CAAAA,CAAM,CACvC,CAAA,GAAIusB,EACAwwC,OAAAA,CAAAA,CAAaxwC,CAAQkU,CAAAA,QAAAA,CAEds8B,CAEf,CACA,OAAO,IACX,CAEAtyD,uBAAuBJ,CAAiB,CAAA,CAEpC,IAAI/f,CAAkB,CAAA,IAAA,CAAK0U,eAAe4D,iBAAoB,CAAA,IAAA,CAAK5D,cAAe6D,CAAAA,OAAAA,CAAQr0C,KAAO,IAAK8nC,CAAAA,aAAAA,EAAehM,OACrH,CAAA,OAAI+f,GAAa/f,CAAS2Y,EAAAA,WAAAA,EAAiB,EAAA,QAAA,GACvC3Y,EAAU,IAAK40F,CAAAA,cAAAA,CAAe9yE,4BAA4B/B,CAAS,CAAA,CAC/D/f,GAAS2Y,WAAW,EAAA,EAAM,OAC1B3Y,GAAAA,CAAAA,CAAU,WAGXA,CAASuO,EAAAA,WAAAA,EACpB,CAEAmtF,eAAehvD,CAAsBivD,CAAAA,CAAAA,CAAyB,CAC1D,GAAM,CAAEhpB,gBAAAA,CAAAA,CAAAA,CAAkBriD,KAAAA,CAAM82B,CAAAA,eAAAA,CAAAA,EAAiBtzB,WAAAA,CAAAA,CAAW,CAAK4Y,CAAAA,CAAAA,CAEjE,OAAIimC,CAAqB,GAAA,YAAA,CACdriD,EAAKwD,WAEZxD,CAAAA,CAAAA,EAAMsrE,YAAc,eAAmBtrE,EAAAA,CAAAA,EAAMsrE,UAAc,EAAA,aAAA,EAAiBx0C,EACrEtzB,CAEJ6nE,CAAAA,CAAAA,EAAqB7nE,CAChC,CAEA6iE,kBAAAA,CAAmBjqD,EAAoB,CACnC,IAAMO,CAAU,CAAA,IAAA,CAAKV,mBAAmBQ,eAAgBL,CAAAA,CAAAA,CAAgBpc,IAAKvQ,CAAAA,SAAAA,CAAW2sB,EAAgBG,YAAY,CAAA,CAChHgvD,CACAtuD,CAAAA,CAAAA,CACAouD,EACAG,CACAC,CAAAA,CAAAA,CACElvD,EAAe,IAAK1sB,CAAAA,sBAAAA,CAAuBusB,EAAgBpc,IAAKvQ,CAAAA,SAAS,CAC3EktB,CAAAA,CAAAA,EAAWA,EAAQC,YACnBK,GAAAA,CAAAA,CAAmBN,CAAQC,CAAAA,YAAAA,CAAaK,iBACxCuuD,CAAuB7uD,CAAAA,CAAAA,CAAQC,YAAalyB,CAAAA,UAAAA,CAC5C2gF,EAAoB,IAAKpvD,CAAAA,kBAAAA,CAAmByvD,gBAAgBtvD,CAAgBpc,CAAAA,IAAAA,CAAKvQ,UAAW+7E,CAAoB,CAAA,CAC3GvuD,CACDA,GAAAA,CAAAA,CAAmBuuD,EACnBH,CAAoBjvD,CAAAA,CAAAA,EAAiBimC,gBAGrCjmC,CAAAA,CAAAA,CAAAA,CAAAA,EAAiBimC,kBAAkBioB,UAAW,CAAA,gBAAgB,CAC9DluD,EAAAA,CAAAA,EAAiBimC,kBAAkBioB,UAAW,CAAA,gBAAgB,GAC9DluD,CAAiBimC,EAAAA,gBAAAA,EAAkBioB,WAAW,gBAAgB,CAAA,EAC9DluD,CAAiBimC,EAAAA,gBAAAA,EAAkBioB,WAAW,QAAQ,CAAA,IAEtDe,EAAoBjvD,CAAgBimC,CAAAA,gBAAAA,CAAAA,CAExCopB,EAAkB,IAAKxvD,CAAAA,kBAAAA,CAAmByvD,eAAgBtvD,CAAAA,CAAAA,CAAgBpc,KAAKvQ,SAAWwtB,CAAAA,CAAgB,EAC1GsuD,CACInvD,CAAAA,CAAAA,EAAiBpc,MAAMurE,wBACtB5uD,GAAAA,CAAAA,CAAQC,YAAa9rB,CAAAA,YAAAA,GACrB6rB,EAAQC,YAAa9rB,CAAAA,YAAAA,CAAa66E,qBAC/BhvD,EAAAA,CAAAA,CAAQC,aAAa9rB,YAAa86E,CAAAA,qBAAAA,EAClCjvD,CAAQC,CAAAA,YAAAA,CAAa9rB,aAAa+6E,qBAChC,CAAA,CAAA,qBAAA,CACA,8BAEd,IAAM5oE,CAAAA,CAAWmZ,EAAgBpc,IAAKpsD,CAAAA,IAAAA,CAChCwoE,CAAiBpc,EAAAA,IAAAA,EAAMpsD,KACvB,IAAKkzC,CAAAA,kBAAAA,CAAmBzB,kBAAmB+2B,CAAAA,CAAAA,EAAiBpc,KAAK5a,MAAM,CAAA,CACvEoe,CAAcyZ,CAAAA,CAAAA,EAAoBb,EAAgB5Y,WACpDsoE,CAAAA,CAAAA,CAA+B1vD,EAAgBoB,YAC/CpB,CAAAA,CAAAA,EAAiBimC,kBAAkBioB,UAAW,CAAA,wBAAwB,CACtEe,GAAAA,CAAAA,CAAoBjvD,EAAgBimC,gBACpCopB,CAAAA,CAAAA,CAAkB,IAAKxvD,CAAAA,kBAAAA,CAAmByvD,gBAAgBtvD,CAAgBpc,CAAAA,IAAAA,CAAKvQ,SAAW+7E,CAAAA,CAAoB,GAE9GpvD,CAAiB5Y,EAAAA,WAAAA,EAAe,yBAA2B4Y,CAAiB5Y,EAAAA,WAAAA,EAAanb,aAAiB,EAAA,cAAA,CAC1GyjF,CAAuB,CAAA,gBAAA,CAChB1vD,GAAiBoB,YACxBsuD,CAAAA,CAAAA,CAAuB1vD,GAAiBo+B,YAClC,CAAA,CAAA,EAAGp+B,GAAiBoB,YAAY,CAAA,CAAA,EAAIpB,CAAiBo+B,EAAAA,YAAAA,CAAe,CAAC,CACrE,CAAA,CAAA,CAAA,EAAGp+B,GAAiBoB,YAAY,CAAA,EAAA,CAAA,CAEtCsuD,EAAuB1vD,CAAiBo+B,EAAAA,YAAAA,CAAe,CAAKp+B,EAAAA,EAAAA,CAAAA,EAAiBo+B,aAAe,CAAC,CAAA,CAAA,CAAK,KAElGp+B,CAAAA,CAAAA,CAAgB2vD,2BAChB3vD,CAAgBo+B,CAAAA,YAAAA,CAAep+B,CAAgB2vD,CAAAA,wBAAAA,CAAAA,CAEnD,IAAM5xB,CAAiB,CAAA,IAAA,CAAKl+B,mBAAmBm+B,wBAAyBh+B,CAAAA,CAAAA,CAAgBpc,KAAKvQ,SAAS,CAAA,CAChGq7B,EAA6B,CAAA,CAC/Bl3E,KAAMwoE,CAAiBpc,EAAAA,IAAAA,EAAM5a,MAC7BlsC,CAAAA,IAAAA,CAAMkjE,GAAiBpc,IAAM6lB,EAAAA,QAAAA,CAAWzJ,CAAiBpc,EAAAA,IAAAA,EAAM6lB,SAAW,IAAKoyB,CAAAA,gBAAAA,CAAiB77B,EAAgBpc,IAAK5a,CAAAA,MAAM,EAC3H6jC,QAAU7M,CAAAA,CAAAA,EAAiBo+B,YAAe,CAAA,CAAA,CAC1Cx8B,QAAS,IAAKotD,CAAAA,cAAAA,CAAehvD,CAAiBivD,CAAAA,CAAiB,EAC/D7tD,YAAcsuD,CAAAA,CAAAA,CACdhjF,QACIszB,CAAAA,CAAAA,EAAiBpc,MAAMsrE,UAAc,EAAA,eAAA,EAAmBlvD,GAAiBpc,IAAMsrE,EAAAA,UAAAA,EAAc,cACvFlvD,CAAgB5Y,CAAAA,WAAAA,CAAc,GAAM4Y,CAAAA,CAAAA,EAAiBpc,MAAMgsE,UAC3D5vD,CAAAA,CAAAA,CAAgB2a,kBACd,qBAA6BvzB,CAAAA,CAAAA,CAC7B4Y,GAAiB6vD,oBAAyB7vD,EAAAA,CAAAA,CAAAA,EAAiBi+B,aAAiB,EAAA,gBAAA,EAAoB,MAAQ72C,CACpH1C,CAAAA,MAAAA,CAAQsb,GAAiBpc,IAAMksE,EAAAA,gBAAAA,CAAmB,MAAQ,UAC1DhjD,CAAAA,WAAAA,CAAaqiD,CAA4B,EAAA,gBAAA,CACzCpiD,UAAW,IAAKpS,CAAAA,gBAAAA,CAAiBhX,qBAAsBqc,CAAAA,CAAAA,EAAiBpc,IAAI,CAAI,CAAA,WAAA,CAAc,eAC9FopB,CAAAA,aAAAA,CAAe,KAAKnS,sBAAuBxC,CAAAA,sBAAAA,CAAuB2H,GAAiBpc,IAAI,CAAA,CAAI,aAAe,OAC1GqpB,CAAAA,WAAAA,CAAapmB,CAAYmZ,EAAAA,CAAAA,EAAiBpc,MAAM6D,eAChD0Y,CAAAA,YAAAA,CAAcA,CACd+M,CAAAA,eAAAA,CAAiBlN,GAAiBsa,mBAAuB+0C,EAAAA,CAAAA,EAAmBrvD,CAAiB5Y,EAAAA,WAAAA,CAC7F+lB,mBAAoB,IAAKo8C,CAAAA,wBAAAA,GAA6BhpD,GAASC,YAAcuvD,EAAAA,gBAAAA,CAAmB,QAAU,SAC1G3iD,CAAAA,CAAAA,SAAAA,CAAW2wB,CAAWz4D,EAAAA,WAAAA,CACtB+nC,YAAa0wB,CAAWx4D,EAAAA,aAAAA,CACxB+nC,eAAiBywB,CAAAA,CAAAA,EAAWv4D,WAC5B2H,MAAQ6yB,CAAAA,CAAAA,CAAAA,CAEZ,IAAKo0B,CAAAA,yBAAAA,CAA0BnoB,MAAMyC,EAAe,EACxD,CAEAo8C,mCAAoC9vH,CAAAA,CAAAA,CAAey7G,EAAkB,CACjE,IAAM3K,CAAoB,CAAA,IAAA,CAAKvsE,sBAAsB0oE,wBAAwB,EAAA,CAC7E,GAAI,IAAK6f,CAAAA,oBAAAA,CAAqB/f,SAAU,CACpC,IAAA,CAAK4f,uBAAwBxQ,CAAAA,aAAAA,CAAgB,IAAK,CAC9C,GAAI,KAAKrjB,KAAM6B,CAAAA,QAAAA,CAASC,cAAclyC,GAAI,CAAA,WAAW,CAAG,CAAA,CACpD,IAAMssE,CAA4B,CAAA,IAAA,CAAKl8B,KAAM6B,CAAAA,QAAAA,CAASC,cAAcliE,GAAI,CAAA,WAAW,CACnF,CAAA,GAAIs8F,GAA6BA,CAA0BtuF,CAAAA,IAAAA,GAAQ,CAC/D,IAAA,CAAKqS,UAAU0wE,QAASuL,CAAAA,CAAAA,CAA0BtuF,IAAI,EAAE,EACxD,MACJ,CACJ,CACA,GAAI,KAAKmb,MAAOozE,CAAAA,WAAAA,CAAYt6B,QAAS/3C,CAAAA,GAAAA,CAAIxrC,MAAM,GAAG,CAAA,CAAEo+C,KAAM0/D,CAAYA,EAAAA,CAAAA,EAASxuF,MAAQuK,EAAAA,WAAAA,EAAkB,GAAA,UAAU,EAAG,CAClH,IAAMkI,CAAc,CAAA,IAAA,CAAKqK,cAAcpK,cAAc,EAAA,CACrD,GAAID,CAAAA,CAAa,CACb,IAAKJ,CAAAA,SAAAA,CAAU0wE,SAAStwE,CAAW,CAAA,CACnC,MACJ,CACJ,CACJ,CACA,CAAA,IAAA,CAAKwzE,wBAAwBhT,gBACzB,CAAA,IAAK,CACD35G,CAAQ,GACZ,EACA,IAAK,CACDy7G,CAAa,GACjB,CAAC,CAEL,CAAA,MACJ,CACA,GAAI3K,CAAAA,CAAkBsD,+BAAiC,IAAKkY,CAAAA,WAAAA,CAAYtkD,WAAe,EAAA,IAAA,CAAKskD,YAAY73E,eAAkB,CAAA,CAAA,CACtH,IAAK4mE,CAAAA,qBAAAA,CAAsB/F,iBAAkBhvD,CAAqB,EAAA,CAC1DA,CAAY,EAAA,IAAA,EAAQ,CAACA,CACrBtmD,CAAAA,CAAAA,GAEAy7G,CAAa,GAErB,CAAC,CACD,CAAA,MACJ,CACAz7G,CAAAA,GACJ,CAEA4uH,qBAAAA,CAAsB5pD,CAAoB,CAAA,CACtC,IAAMmwD,CAAwBhvF,CAAAA,QAAAA,CAASm0D,sBAAuB,CAAA,cAAc,EACtEl0B,CAAoBpB,CAAAA,CAAAA,CAAgBoB,aAI1C,GAHIpB,CAAAA,CAAgBpc,KAAKwsE,aAAiBpwD,EAAAA,CAAAA,CAAgBpc,IAAKwsE,CAAAA,aAAAA,EAAiB,KAC5EpwD,CAAgBG,CAAAA,YAAAA,CAAeH,CAAgBpc,CAAAA,IAAAA,CAAKwsE,eAEpDD,CAAiBnjH,CAAAA,MAAAA,CAAS,CAC1B,CAAA,CAAA,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAIw+H,EAAiBnjH,MAAQrb,CAAAA,CAAAA,EAAAA,CAEzC,GADmBw+H,CAAiBx+H,CAAAA,CAAC,CAC3Bo0C,CAAAA,SAAAA,CAAUC,SAAS,QAAWg6B,CAAAA,CAAAA,CAAgBG,YAAY,CAAA,CAChE,QAAQxuE,CAAI,CAAA,CAAA,EAAG8E,QAAQ,EAAA,CAInC,OAAO2qE,CAAeA,CAAAA,CAAAA,CAAa3qE,UAAa,CAAA,EACpD,CAEA8nG,kBAAmBv+B,CAAAA,CAAAA,CAAsBhlE,CAAc,CAAA,CACnD,KAAKuvH,gBAAiBvqD,CAAAA,CAAe,CACrC,CAAA,IAAA,CAAKpF,aAAa/H,KAAK,EAAA,CAEvB,IAAIm5D,CAAAA,CADiB,KAAKzsF,qBAAsBgE,CAAAA,mBAAAA,GACRI,QAAS,CAAA,gBAAA,CACjDqoF,EAAeA,CAAanrF,CAAAA,OAAAA,CAAQ,KAAOm/B,CAAAA,CAAAA,CAAgBpc,KAAK5a,MAAM,CAAA,CACtE,IAAMtwC,CAAAA,CAAmB,CACrBqtH,IAAMiG,CAAAA,CAAAA,CACNlvH,IAAMsrD,CAAAA,EAAAA,CAAYC,YAClB69D,QAAU59D,CAAAA,IAAAA,CAAgBqjC,OAC1Bw6B,KAAO,CAAA,iBAAA,CAAA,CAEX,GAAInrH,CAMAA,CAAAA,CAAAA,CALyB,CACrBqoH,OAAAA,CAAS,GACTC,YAAc0I,CAAAA,CAAAA,CACdzI,aAAe,CAAA,EAAA,CAEM,UAErBvjD,CAAgBpsB,CAAAA,OAAAA,CAEhB,GAAIosB,CAAAA,CAAgBoa,UAAW,CAC3B,IAAMh8B,EAAkB,IAAK2pE,CAAAA,sBAAAA,CAAuB1pE,wBAChDgyE,CAAAA,CAAAA,CAAoBrwD,CAAiBoa,EAAAA,SAAAA,CACrC,KAAK/oC,UAAW3E,CAAAA,QAAAA,CAASO,OAAOvZ,GAAI,CAAA,cAAc,IAAM,MACxD28F,CAAAA,CAAAA,CAAYrwD,CAAiBoa,EAAAA,SAAAA,CACrBh8B,EAAgBkyE,KACxBD,GAAAA,CAAAA,CAAY,KAAK9T,iBAAkBv8C,CAAAA,CAAAA,CAAgBoa,UAAW,cAAgB,CAAA,MAAM,CAExF5kB,CAAAA,CAAAA,cAAAA,CAAe/B,QAAQ,kBAAoBF,CAAAA,IAAAA,CAAKG,SAAUh7D,CAAAA,CAAO,CAAC,CAC9D23H,CAAAA,CAAAA,EACA,IAAKh/E,CAAAA,UAAAA,CAAW0D,KAAKs7E,CAAS,CAAA,CAElClpF,WAAW,IAAK,CACZ,KAAKopF,mBAAmB,GAC5B,CAAG,CAAA,IAAA,CAAKtH,yBAAyB,EACrC,CAAA,KACIzzD,cAAe/B,CAAAA,OAAAA,CAAQ,mBAAoBF,IAAKG,CAAAA,SAAAA,CAAUh7D,CAAO,CAAC,EAClE,IAAK63H,CAAAA,mBAAAA,QAEN,CACH,IAAMvwF,EAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACjE,GAAID,CAASy1D,CAAAA,kCAAAA,CAAoC,CAC7C,IAAM46B,EAAYrwD,CAAiBoa,EAAAA,SAAAA,CAC7BgsC,CAAc,CAAA,IAAA,CAAK5nE,cAAcpK,cAAc,EAAA,CACjD43E,GACA,IAAKpxD,CAAAA,YAAAA,CAAazS,SAAS6jE,CAAc1jE,CAAAA,IAAAA,CAAgBqjC,MAAQ,CAAA,iBAAiB,EAEtFxkD,UAAW,CAAA,IAAK,CACZ,IAAKyzB,CAAAA,YAAAA,CAAa/H,OACdw9D,CAAAA,CAAAA,CAAW,IAAKh/E,CAAAA,UAAAA,CAAW0D,KAAKs7E,CAAS,CAAA,CACxC,KAAKh/E,UAAW0D,CAAAA,IAAAA,CAAKqxE,CAAW,EACzC,CAAA,CAAGpmF,CAASijE,CAAAA,sBAAsB,EACtC,CAAO,KAAA,CACHvqG,CAAQytH,CAAAA,KAAAA,CAAQ,oBAChB,IAAMuI,CAAAA,CAA0B,CAC5B9qE,IAAAA,CAAM,KAAK2R,OACXyhC,CAAAA,iBAAAA,CAAmBt+F,GAEvB,IAAKi2H,CAAAA,sBAAAA,CAAuBD,CAAkB,EAClD,CACJ,CAGR,CAEA6B,qBAAmB,CACf,IAAA,CAAK31D,YAAa/H,CAAAA,KAAAA,GAClB,IAAMn6D,CAAAA,CAAU66D,IAAKC,CAAAA,KAAAA,CAAMgC,eAAenC,OAAQ,CAAA,kBAAkB,GAAK,EAAE,CAAA,CACvE36D,GACA,IAAKkiE,CAAAA,YAAAA,CAAap0D,GAAI9N,CAAAA,CAAO,EAEjCyuC,UAAW,CAAA,IAAK,CACZ,IAAA,CAAKyzB,aAAa/H,KAAK,EAAA,CACvB2C,cAAeS,CAAAA,UAAAA,CAAW,kBAAkB,EAChD,CAAA,CAAG,KAAKkzD,6BAA6B,EACzC,CAEA4F,6BAA8BF,CAAAA,CAAAA,CAAoB7zH,CAAc,CAAA,CAC5D,GAAIA,CAAU,CAAA,CACV,IAAMk/F,CAAmB,CAAA,CACrBmpB,QAAS,CACTC,CAAAA,CAAAA,YAAAA,CAAcuL,CAAc,CAAA,CAAC,EAAE9I,IAAM7wH,EAAAA,KAAAA,CAAQ25H,EAAc,CAAC,CAAA,CAAE9I,KAAK7wH,KAAQ25H,CAAAA,CAAAA,CAAc,CAAC,CAAA,CAAE9I,KAC5FxC,aAAe,CAAA,EAAA,CAAA,CAEnBvoH,CAASk/F,CAAAA,CAAgB,EAC7B,CAAW20B,KAAAA,CAAAA,EAAiBA,CAAc7hH,CAAAA,MAAAA,CAAS,IAC/C,IAAK4tD,CAAAA,YAAAA,CAAa/H,OAClBg8D,CAAAA,CAAAA,CAAchsE,QAASprD,CAAY,EAAA,CAC/BA,CAAIsuH,CAAAA,IAAAA,CAAOtuH,EAAIsuH,IAAM7wH,EAAAA,KAAAA,CAAQuC,CAAIsuH,CAAAA,IAAAA,EAAM7wH,MAAQuC,CAAIsuH,CAAAA,IAAAA,CACnDtuH,CAAIyuH,CAAAA,QAAAA,CAAW,SACfzuH,CAAI0uH,CAAAA,KAAAA,CAAQ,kBAChB,CAAC,CAAA,CACG0I,GACA,IAAKj0D,CAAAA,YAAAA,CAAa41D,WAAY3B,CAAAA,CAAa,GAGvD,CAEA4B,6BAAAA,CAA8BznF,CAAc,CAAA,CACxC,GAAI,IAAK9J,CAAAA,IAAAA,CAAKkR,eAAiB,CAAA,CAC3B,GAAI,IAAKo3E,CAAAA,eAAAA,CAAgBN,WAAa,CAAA,CAClC,IAAItB,CAAsB,CAAA,CAAA,CAAA,CACtB,IAAK2B,CAAAA,OAAAA,CAAQ7zF,IAAI,WAAW,CAAA,GAC5BkyF,EAAa,CAEjB,CAAA,CAAA,CAAA,IAAA,CAAK4B,gBAAgB7B,kBAAmB38E,CAAAA,CAAAA,CAAQ48E,CAAU,CAAA,CAC1D,MACJ,CAEA,IAAM8K,EAAkB,CACpB1nF,MAAAA,CAAQA,GAEZ,IAAK+hF,CAAAA,oCAAAA,CAAqC2F,CAAY,CAAA,EAAE,EAC5D,CACI,KAAA,IAAA,CAAK/N,WAAY3wD,CAAAA,IAAAA,GAEzB,CAEAqsC,gBAAAA,EAAgB,CACZ,OAAO,IAAI92D,IAAI,EAAA,CAAGE,SACtB,CAEAqnF,kBAAkBznD,CAAqBuzC,CAAAA,CAAAA,CAAqB,CACxD,GAAIA,GAAoBA,CAAiBjsC,CAAAA,cAAAA,CAAgB,CACrD,IAAM/wB,EAAM,IAAI5B,GAAAA,CAAIqrB,CAAW,CAAA,CACzBspD,EAAO/yE,CAAIgzE,CAAAA,YAAAA,CAAal9F,IAAI,MAAM,CAAA,CACxC,GAAIkqB,CAAO+yE,EAAAA,CAAAA,EAAQA,CAAQ,EAAA,EAAA,CAAI,CAC3B,IAAIE,CAAAA,CAAuB,EAC3B,CAAA,OAAIjW,EAAiBjsC,cACjBkiD,GAAAA,CAAAA,EAAgB,kBAAqBjW,CAAAA,CAAAA,CAAiBjsC,gBAEtDisC,CAAiBwD,CAAAA,YAAAA,GACjByS,GAAgB,gBAAmBjW,CAAAA,CAAAA,CAAiBwD,cAExDxgE,CAAIgzE,CAAAA,YAAAA,CAAa5mH,GAAI,CAAA,MAAA,CAAQ2mH,EAAOE,CAAY,CAAA,CACzCjzE,EAAInnD,QAAQ,EACvB,CACJ,CACA,OAAO4wE,CACX,CAEAypD,cAAc9nF,CAAc,CAAA,CACxB,OAAO,IAAK4T,CAAAA,GAAAA,CAAIlpB,IAAI,uBAAyB,CAAA,CAAEsV,MAAQA,CAAAA,CAAM,EAAI,CAAEkX,eAAAA,CAAiB,CAAI,CAAA,CAAE,CAC9F,CAEAs7C,SAAAA,CAAUxyD,CAAc,CAAA,CACpB,OAAO,IAAK4T,CAAAA,GAAAA,CAAIlpB,IAAI,oBAAsB,CAAA,CAAEsV,OAAQA,CAAM,CAAA,CAAI,CAAEkX,eAAAA,CAAiB,EAAI,CAAE,CAC3F,CAEA87C,qBAAAA,EAAqB,CACjB,IAAKp/C,CAAAA,GAAAA,CACAlpB,GAAI,CAAA,iCAAA,CAAmC,KAAM,CAAEwsB,eAAAA,CAAiB,EAAI,CAAE,CAAA,CACtE6wE,WACA70H,CAAAA,IAAAA,CACI80H,CAAkB,EAAA,CACXA,IAAcA,CAAUC,CAAAA,SAAAA,EAAaD,CAAUE,CAAAA,WAAAA,CAAAA,EAC/CzkF,OAAOC,QAASykF,CAAAA,MAAAA,GAExB,CAAA,CACCvlH,GAAS,CAEN8+F,OAAAA,CAAQ9+F,MAAM,2CAA8CA,CAAAA,CAAK,EACrE,CAAC,EAEb,CAEA6vE,SAAAA,EAAS,CACL,IAAK+sC,CAAAA,gBAAAA,CAAiBzoG,KAAK,CAAK,CAAA,EACpC,CACAy+E,aAAcv/D,CAAAA,CAAAA,CAAY,CAGtB,GAFA,KAAKqS,MAAO52B,CAAAA,IAAAA,CAAKukB,CAAI,CACD,CAAA,IAAA,CAAKM,sBAAsBwL,iBAAiB,EAAA,CAChDqmF,gBAAkB,CAAA,CAC9B,IAAMC,CAAiB,CAAA,CACnBtS,SAAW,CAAA,IAAA,CAAK7/E,KAAK4+C,MAAOpqD,CAAAA,GAAAA,CAAI,WAAW,CAAA,EAAK,GAChDsrF,YAAc,CAAA,IAAA,CAAK9/E,KAAK4+C,MAAOpqD,CAAAA,GAAAA,CAAI,cAAc,CAAK,EAAA,EAAA,CAAA,CAI1D,IAAK6zF,CAAAA,OAAAA,CAAQ+J,UAAU,YAAcD,CAAAA,CAAAA,CAAW,CAC5Cl4C,MAAAA,CAAQ,KAAKh6C,IAAKg6C,CAAAA,MAAAA,CACrB,EACL,CACJ,yCA/wCSkqB,CAA2BnwE,EAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAAi7D,IAAA,CAAAj7D,CAAAA,GAAAA,CAAAiZ,IAAA,CAAA,CAAAjZ,IAAAiP,GAAA,CAAA,CAAAjP,GAAA41B,CAAAA,IAAA,EAAA51B,GAAAixC,CAAAA,IAAA,CAAAjxC,CAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAAwb,EAAA,CAAAxb,CAAAA,GAAAA,CAAAmZ,EAAA,CAAAnZ,CAAAA,GAAAA,CAAA8sE,IAAA,CAAA,CAAA9sE,IAAAoxE,EAAA,CAAA,CAAApxE,IAAAipB,EAAA,CAAA,CAAAjpB,IAAAywF,EAAA,CAAA,CAAAzwF,GAAA0kB,CAAAA,EAAA,EAAA1kB,GAAA2b,CAAAA,EAAA,EAAA3b,GAAAuyF,CAAAA,EAAA,EAAAvyF,GAAAuvF,CAAAA,EAAA,CAAAvvF,CAAAA,GAAAA,CAAAguF,EAAA,CAAAhuF,CAAAA,GAAAA,CAAAqrB,IAAA,CAAA,CAAArrB,IAAAiiF,EAAA,CAAA,CAAAjiF,GAAA4nD,CAAAA,IAAA,EAAA5nD,GAAAuX,CAAAA,EAAA,EAAAvX,GAAA2sE,CAAAA,IAAA,EAAA3sE,GAAA6gC,CAAAA,EAAA,CAAA7gC,CAAAA,GAAAA,CAAA0sC,EAAA,CAAA1sC,CAAAA,GAAAA,CAAAqnF,IAAA,CAAA,CAAArnF,IAAA6nB,IAAA,CAAA,CAAA7nB,GAAA+jC,CAAAA,EAAA,EAAA/jC,GAAA8xB,CAAAA,IAAA,EAAA9xB,GAAAuY,CAAAA,IAAA,EAAAvY,GAAA20E,CAAAA,EAAA,CAAA30E,CAAAA,GAAAA,CAAA2qD,IAAA,CAAA3qD,CAAAA,GAAAA,CAAA6qB,IAAA,CAAA,CAAA7qB,IAAAmpB,IAAA,CAAA,CAAAnpB,GAAAmiF,CAAAA,IAAA,EAAAniF,GAAA+qB,CAAAA,IAAA,EAAA/qB,GAAA48E,CAAAA,IAAA,EAAA58E,GAAAqP,CAAAA,IAAA,CAAArP,CAAAA,GAAAA,CAAAkP,GAAA,CAAAlP,CAAAA,GAAAA,CAAA2xF,EAAA,CAAA3xF,CAAAA,GAAAA,CAAAitF,EAAA,CAAAjtF,CAAAA,GAAAA,CAAA84C,IAAA,CAAA,CAAA94C,IAAA2kB,EAAA,CAAA,CAAA3kB,IAAA0kB,EAAA,CAAA,CAAA1kB,IAAAmkF,EAAA,CAAA,CAAAnkF,GAAA4U,CAAAA,IAAA,EAAA5U,GAAAqV,CAAAA,EAAA,CAAA,CAAA,0BAA3B86D,CAA2BpyG,CAAAA,OAAAA,CAA3BoyG,CAA2B75D,CAAAA,SAAAA,CAAAC,WAFxB,MAAM,CAAA,EAEhB,IAAO45D,CAAAA,CAAPkuB,SAAOluB,CAA2B,CAAA,IC7DxBp0E,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAmCyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAA6nC,CAAAA,CAAA,EAAA,IAAA40C,CAAAA,CAAA30C,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAAmjB,SAAA,EAAW,CAAA,CAAA,CAAA,CAAoBtiG,EAAA,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CAAwBC,EAAA,GAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAoqC,EAAA,EAAA,CALnHtqC,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAyI,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAC3G,CAAA,CAAA,KAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACyB,EAAA,KAAA,CAAA,CAAA,CACT8U,CAAAA,EAAAA,CAAA,CAAA,CAAyB5U,CAAAA,EAAAA,GAClDkC,EAAA,CAAA,CAAA,CAAAogG,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EACJtiG,EAAA,EAAA,EAEJF,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACuB,EAAA,GAAA,CAAA,CAAA,EACR8U,EAAA,CAAA,EAAA,CAA0B5U,CAAAA,EAAAA,IAChD,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB,EAAA,CAAA,KAAA,CAAA,CAAA,CACiB,CAAA,EAAA,CAAA,IAAA,EAAA,CAAA,CACP,GAAA,GAAA,CAAA,EAAA,CACZyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,EAAA,IAAAw8E,CAAAA,CAAA30C,EAAA,EAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAAmjB,WAAW,CAAA,CAAA,CACnBviG,CAAAA,EAAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAA2D8U,CAAAA,EAAAA,CAAA,GAAA,QAAA,CAAA,CAAM5U,IAAS,EAAA,CAE9EF,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,CAAA,CAAGyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAw8E,EAAA30C,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASu8E,EAAAqjB,UAAA,EAAY,CAAA,CAAA,EACpBziG,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,CAAA,CAAmD8U,GAAA,EAAA,CAAA,CAAqC5U,EAAA,EAAA,IAE5F,EAAA,EAEN,EAAA,uBApB2B+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAqqE,EAAAsjB,YAAAC,CAAAA,MAAA,EACnB1/F,EAAA,EAAA,CAAAC,GAAA,MAAAk8E,CAAAA,CAAAA,CAAAsjB,YAAAE,CAAAA,QAAA,EAKkB3/F,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAqqE,EAAAsjB,YAAAj5H,CAAAA,OAAA,CAUmCw5B,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAqqE,EAAAsjB,YAAAG,CAAAA,kBAAA,ICN9DC,IAAAA,EAAAA,CAAAA,CAAuB,IAAA,CAA9B,IAAOA,CAAP,CAAA,MAAOA,CAAuB,CAGhC7tH,WAAAA,CACY6vC,EACD/U,CACyBC,CAAAA,CAAAA,CACxBM,CAA4C,CAAA,CAH5C,KAAAwU,SAAAA,CAAAA,CAAAA,CACD,KAAA/U,SAAAA,CAAAA,CAAAA,CACyB,KAAAC,IAAAA,CAAAA,CAAAA,CACxB,IAAAM,CAAAA,qBAAAA,CAAAA,EACT,CAEHI,QAAAA,EAAQ,CACJ,IAAA,CAAKgyF,aAAe,IAAK1yF,CAAAA,KAC7B,CAEAuyF,SAAAA,EAAS,CACL,IAAKxyF,CAAAA,SAAAA,CAAUU,QACnB,CAEAgyF,YAAU,CACN,IAAM5xF,CAAc,CAAA,IAAA,CAAKP,sBAAsBQ,mBAAmB,EAAA,CAClE,IAAKgU,CAAAA,SAAAA,CAAUgB,KAAKjV,CAAOa,CAAAA,UAAAA,CAAWid,GAAG,EAC7C,yCArBSm0E,CAAuB/vF,EAAAA,GAAAA,CAAA0M,EAAA,CAAA1M,CAAAA,GAAAA,CAAAC,EAAA,CAAAD,CAAAA,GAAAA,CAMpBE,EAAe,CAAA,CAAAF,IAAAQ,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA67B,EAAA,CAAA,CAAA,IAAA,CANlB0zD,EAAuBpjG,SAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAAE,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,EAAAC,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,2BAAA,CAAA,WAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,2CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,UAAA,CAAA,KAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,EAAA,SAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,YAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,OAAA,CAAA,WAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,SAAA,KAAA,CAAA,uBAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAA,aAAA,CAAA,WAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAAC,QAAA,CAAA,SAAAhS,EAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EDdpCO,GAAA,CAAA2gG,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM7/F,EAAA,CAAA,MAAA,CAAA/rB,EAAAurH,YAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCYQ3yD,EAAI,CAAAtsC,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAEZ,IAAOq/F,CAAAA,CAAPE,SAAOF,CAAuB,CAAA,ICDpB/hC,IAAAA,EAAAA,CAAAA,IAAAA,EAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CACI/gE,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACIyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA,IAAA04D,CAAAA,CAAAtgG,EAAAC,CAAAA,CAAA,EAAAjuB,KAAAyqG,CAAAA,CAAAA,CAAA30C,EAAA,EAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAA8jB,eAAAD,CAAAA,CAAAA,CAAA14D,CAAA,CAA0B,CAAA,CAAA,CAGrBrqC,CAAAA,EAAAA,sCAFd+C,EAAA,EAAA,CAAAd,EAAA,CAAA,iCAAA,CAAA8gG,IAAA7jB,CAAA+jB,CAAAA,YAAA,IAWXC,IAAAA,EAAAA,CAAAA,CAAiC,IAAA,CAAxC,IAAOA,CAAP,CAAA,MAAOA,CAAiC,CAtB9CnuH,WAAAA,EAAA,CAuBa,IAAAouH,CAAAA,IAAAA,CAAgB,GAChB,IAAAC,CAAAA,eAAAA,CAA2B,CAC3B,CAAA,CAAA,IAAA,CAAAC,aAAwB,CAKjCL,EAAAA,CAAAA,eAAAA,CAAgBvuH,CAAemM,CAAAA,CAAAA,CAAY,CACvC,GAAI,IAAA,CAAKyiH,YAAgB,EAAA,IAAA,CAAKJ,eAAiBxuH,CAC3CmM,CAAAA,CAAAA,CAAM0iH,iBACN1iH,CAAAA,CAAAA,CAAM22B,0BACH,CAAA,KAAA,CACH,IAAM/0C,CAAAA,CAAIiS,EACJ8uH,CAAa,CAAA,IAAA,CAAKC,QAASC,CAAAA,MAAAA,EAAQC,OAAO7lH,MAASrb,CAAAA,CAAAA,CAAIA,CAAI,CAAA,CAAA,CACjE,GAAI,IAAKghI,CAAAA,QAAAA,CAASC,QAAQzlF,MAAOmlF,CAAAA,IAAAA,CAAM,CACnC,GAAI,IAAA,CAAKK,QAASC,CAAAA,MAAAA,EAAQ9wB,YAAc4wB,CAAY,CAAA,OACpD,IAAKC,CAAAA,QAAAA,CAASC,QAAQE,WAAYJ,CAAAA,CAAU,EAChD,CAAA,KACI,KAAKC,QAASC,CAAAA,MAAAA,EAAQG,QAAQL,CAAU,EAEhD,CACJ,CAtBSL,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAiC,CAAjCA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAiC1jG,UAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,CAAA8T,OAAA,CAAA6vF,IAAAA,CAAA,MAAAC,CAAAA,eAAAA,CAAA,kBAAAC,YAAA,CAAA,cAAA,CAAAQ,UAAA,WAAAZ,CAAAA,YAAAA,CAAA,eAAAO,QAAA,CAAA,UAAA,CAAA9jG,CAAAA,UAAAA,CAAA,GAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,MAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,QAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,CAnBtC7B,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAsC,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAK9BoC,EAAA,CAAA,CAAA,CAAA4hG,GAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAOJ9jG,IAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GARF+C,EAAA,EAAA,CAAAghG,KAAA,kBAAA9sH,CAAAA,CAAAA,CAAAmsH,iBAAA,EAAA,CAAA,CADAnhG,GAAA,6BAAA,CAAA,CAAAhrB,CAAAosH,CAAAA,YAAA,EAE+BtgG,EAAA,EAAA,CAAAC,GAAA,SAAA68D,CAAAA,EAAAA,CAAA,EAAAnwB,EAAA,CAAA,CAAA36D,WAAAkC,CAAAA,CAAAA,CAAA4sH,SAAA,CAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAYjCG,EAAO,CAAA,CAAAzgG,cAAA,CAAA,CAAA,CAEf,CAAA,IAAO2/F,EAAPe,CAAOf,CAAAA,OAAAA,CAAiC,KCxB9C,IAAYgB,GAAZ,SAAYA,CAAAA,CAAkB,CAC1BA,OAAAA,EAAA,OAAA,CAAA,SAAA,CACAA,CAAA,CAAA,OAAA,CAAA,UACAA,CAAA,CAAA,UAAA,CAAA,YAHQA,CAAAA,CAIZ,EAJYA,EAAkB,EAAA,EAAA,CAMjBC,CAAAA,EAAAA,CAA2BA,CAAChtF,CAAsB6lC,CAAAA,CAAAA,CAAkConD,CAAW,CAAA,CAAA,GACxG,IAAI7nG,GAAiBnlB,CAAAA,CAAAA,EAAc,CAC/B,IAAMitH,EAAW,IAAIx0C,EAAAA,CAKfy0C,CAAuB,CAAA,IAAIC,qBAAqB,CAACz1G,CAAAA,CAASiO,IAAY,CACxEjO,CAAAA,CAAQ4kC,QAASt9C,CAAS,EAAA,CACtB,GAAIouH,EAAAA,CAAepuH,CAAK,CACpBiuH,CAAAA,CAAAA,CAASzzG,KAAK,CAAExa,KAAAA,CAAAA,EAAO2mB,QAAAA,CAAAA,CAAQ,CAAE,CAAA,CAAA,KAC9B,CACH,IAAM0nG,CAAAA,CAAqB,CACvBlvE,MAAQ2uE,CAAAA,EAAAA,CAAmBQ,YAE/BttH,CAAWwZ,CAAAA,IAAAA,CAAK6zG,CAAkB,EACtC,CACJ,CAAC,EACL,CAAGznD,CAAAA,CAAM,EAETqnD,OAAAA,CAAAA,CAAS5qF,IAAKkrF,CAAAA,IAAAA,CAAaP,CAAQ,CAAGt5H,CAAAA,IAAAA,CAAO85H,OAAO,CAAC,CAAA,CAAExpG,UAAiB/1B,CAAeq9D,EAAAA,GAAAA,CAAA,KAGnF,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,GAFuB,MAAMkyC,EAAUvvG,CAAAA,CAAAA,CAAO+Q,KAAMkW,CAAAA,MAAqB,EAErD,CAChB,IAAMm4G,CAAqB,CAAA,CACvBlvE,OAAQ2uE,EAAmBW,CAAAA,OAAAA,CAC3BjyF,IAAKkyF,EAAOz/H,CAAAA,CAAAA,CAAO+Q,MAAMkW,MAAM,CAAA,CAAA,CAEnClV,CAAWwZ,CAAAA,IAAAA,CAAK6zG,CAAkB,EACtC,CACJ,CAAC,CAAA,CAAA,CAEDH,EAAqBS,OAAQ5tF,CAAAA,CAAO,CAE7B,CAAA,CACH5b,aAAW,CACP+oG,CAAAA,CAAqBU,YACrBX,CAAAA,CAAAA,CAAS9oG,cACb,CAAA,CAER,CAAC,CAAA,CAEL,SAASupG,EAAOx4G,CAAAA,CAAAA,CAAW,CACvB,OAAOA,CAAAA,CAAO24G,YAAc34G,CAAO44G,CAAAA,UAAAA,CAAW,CAAC,CAAA,EAAG5nE,YAAY1qB,GAAKuyF,EAAAA,SACvE,CAEA,SAAevwB,EAAAA,CAAUz9D,EAAoB,CAAAurB,OAAAA,GAAAA,CAAA,IACzC,CAAA,IAAA,CAAA,WAAA,CAAA,OAAO,IAAIkD,OAASt4D,CAAAA,CAAAA,EAAW,CACV,IAAIi3H,qBAAqB,CAAC,CAACnuH,CAAK,CAAA,GAAK,CAClD9I,CAAQ8I,CAAAA,CAAAA,CAAMouH,cAAc,EAChC,CAAC,EAEQO,OAAQ5tF,CAAAA,CAAO,EAC5B,CAAC,CACL,CAEA,CAAA,CAAA,SAASqtF,EAAepuH,CAAAA,CAAAA,CAAgC,CACpD,OAAOA,CAAAA,CAAMouH,cAAkBpuH,EAAAA,CAAAA,CAAMgvH,kBAAoB,CAC7D,KCxDaC,EAA6B,CAAA,CAAA,IAAA,CAApC,IAAOA,CAAAA,CAAP,MAAOA,CAA6B,CAUtCtwH,WAAoBoiC,CAAAA,CAAAA,CAAmB,CAAnB,IAAA,CAAAA,QAAAA,CATX,CAAA,IAAA,CAAAmuF,oBAAuB,CAAA,CAAA,CACvB,KAAAC,sBAAyB,CAAA,KAAA,CAEzB,KAAAC,qBAA2C,CAAA,EAAA,CAE1C,KAAAC,gBAAmB,CAAA,IAAI9kG,IAEzB,CAAA,IAAA,CAAA+kG,SAAW,IAAI71C,GAEmB,CAE1Cr/C,QAAQ,EAAA,CACJ,IAAM2G,CAAU,CAAA,IAAA,CAAKA,OAAQhW,CAAAA,aAAAA,CACvB67C,EAAS,CACXv7D,IAAAA,CAAM,KAAKkkH,gBACXC,CAAAA,UAAAA,CAAY,KAAKL,sBACjBM,CAAAA,SAAAA,CAAW,IAAKL,CAAAA,qBAAAA,CAAAA,CAGpBrB,GAAyBhtF,CAAS6lC,CAAAA,CAAAA,CAAQ,IAAKsoD,CAAAA,oBAAoB,EAC9D7rF,IAAK6yD,CAAAA,EAAAA,CAAU,IAAKo5B,CAAAA,QAAQ,CAAC,CAC7BtqG,CAAAA,SAAAA,CAAWm6B,GAAU,CAClB,IAAA,CAAKkwE,iBAAiBzkG,IAAKu0B,CAAAA,CAAM,EACrC,CAAC,EACT,CAEA/zB,WAAAA,EAAW,CACP,IAAA,CAAKkkG,SAAS90G,IAAK,CAAA,CAAA,CAAI,EAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA7BSy0G,GAA6BxyF,GAAA9T,CAAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA+mG,IAAA,CAAA,CAAA,IAAA,CAA7BT,EAA6B7lG,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAgyF,oBAAA,CAAA,sBAAA,CAAAC,sBAAA,CAAA,wBAAA,CAAAI,iBAAA,kBAAAH,CAAAA,qBAAAA,CAAA,uBAAA,CAAAr2D,CAAAA,OAAAA,CAAA,CAAAs2D,gBAAA,CAAA,kBAAA,CAAA/lG,CAAAA,UAAAA,CAAA,EAAA,CAAA,CAAA,CAApC,IAAO2lG,CAAPU,CAAAA,CAAAA,CAAAA,OAAOV,CAA6B,CAAA,ICF7BW,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,EAAP,MAAOA,CAAkB,CAO3BjxH,WAAoB8pB,CAAAA,CAAAA,CAAsB,CAAtB,IAAA,CAAAA,WAAAA,CALpB,CAAA,IAAA,CAAAgnG,SAAY,CAAA,GAAA,CAGZ,KAAAI,gBAAmB,CAAA,IAAItlG,IAGnB,CAAA,IAAMulG,EAAaC,EAAU,CAAA,IAAA,CAAKtnG,WAAWsC,aAAe,CAAA,YAAY,EAAEsY,IAAKtE,CAAAA,EAAAA,CAAI,IAAM,CAAA,CAAI,CAAC,CAExFixF,CAAAA,CAAAA,CAAWD,EAAU,CAAA,IAAA,CAAKtnG,WAAWsC,aAAe,CAAA,UAAU,CAAEsY,CAAAA,IAAAA,CAAKtE,GAAI,IAAM,CAAA,CAAK,CAAC,CAErFkxF,CAAAA,CAAAA,CAAYF,GAAsB,IAAKtnG,CAAAA,UAAAA,CAAWsC,aAAe,CAAA,WAAW,EAAEsY,IAChF3uC,CAAAA,IAAAA,CAAQ8V,CAAUA,EAAAA,CAAAA,CAAM0lH,QAAU,CAAC,CAAA,CACnCnxF,EAAI,CAAA,IAAM,EAAI,CAAC,CAAA,CAGboxF,EAAUJ,EAAsB,CAAA,IAAA,CAAKtnG,WAAWsC,aAAe,CAAA,SAAS,CAAEsY,CAAAA,IAAAA,CAC5E3uC,KAAQ8V,CAAUA,EAAAA,CAAAA,CAAM0lH,QAAU,CAAC,CAAA,CACnCnxF,GAAI,IAAM,CAAA,CAAK,CAAC,CAAA,CAGpB,KAAKqxF,cAAiBC,CAAAA,EAAAA,CAAMJ,EAAWE,CAASL,CAAAA,CAAAA,CAAYE,CAAQ,CAAEhrG,CAAAA,SAAAA,CAAWr1B,CAAU,EAAA,IAAA,CAAKkgI,iBAAiBjlG,IAAKj7B,CAAAA,CAAK,CAAC,EAChI,CAEAy7B,WAAW,EAAA,CACH,IAAKglG,CAAAA,cAAAA,EACL,KAAKA,cAAejrG,CAAAA,WAAAA,GAE5B,CA7BSyqG,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkBnzF,IAAA9T,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA+mG,IAAA,CAAA,CAAA,IAAA,CAAlBE,EAAkBxmG,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,cAAA,EAAA,CAAA,CAAA2vC,CAAAA,OAAAA,CAAA,CAAA82D,gBAAA,CAAA,kBAAA,EAAAvmG,UAAA,CAAA,CAAA,CAAA,CAAA,CAAzB,CAAA,IAAOsmG,CAAPU,CAAAA,CAAAA,CAAAA,OAAOV,CAAkB,CAAA,ICHlBW,IAAAA,EAAAA,CAAAA,CAAe,IAAA,CAAtB,IAAOA,CAAP,CAAA,MAAOA,CAAe,CACxBrmG,SAAAA,CAAUv6B,EAAetB,CAAS,CAAA,CAC9B,IAAImiI,CAAUniI,CAAAA,CAAAA,CAAKitC,OAAQ,CAAA,qCAAA,CAAuC,MAAM,CACxEk1F,CAAAA,CAAAA,CAAUA,EACL3jH,KAAM,CAAA,GAAG,EACTnY,MAAQxI,CAAAA,CAAAA,EACEA,CAAEub,CAAAA,MAAAA,CAAS,CACrB,CACAqxG,CAAAA,IAAAA,CAAK,GAAG,CACb,CAAA,IAAM2X,EAAQ,IAAI/vF,MAAAA,CAAO8vF,CAAS,CAAA,IAAI,EACtC,OAAOniI,CAAAA,CAAOsB,CAAM2rC,CAAAA,OAAAA,CAAQm1F,EAAQ5oH,CAAU,EAAA,OAAA,CAAUA,CAAQ,CAAA,QAAQ,EAAIlY,CAChF,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAXS4gI,EAAe,CAAfA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAeG,KAAA,CAAApnG,CAAAA,CAAAA,UAAAA,CAAA,CAAA,CAAA,CAAA,EAAtB,IAAOinG,CAAAA,CAAPI,CAAOJ,CAAAA,OAAAA,CAAe,KCN5B7mG,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAuCyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,GAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,YAAY,CAAA,CAAA,CAAA,CACxDh3E,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,uBADS+C,EAAA,EAAA,CAAAC,EAAA,CAAA,KAAA,CAAAgtC,EAAAg3D,iBAAA19D,CAAAA,EAAA,EAAyB,UAAA0G,CAAAA,CAAAA,CAAAvhB,GAAA,EAElC3uB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAuCyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,GAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAAAqtC,CAAAA,CAAAA,CAAAknD,UAAqBlnD,CAAA+mC,CAAAA,UAAAA,EAAe,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAC5Eh3E,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,GADS+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,KAAA,CAAAgtC,CAAAg3D,CAAAA,iBAAAA,CAAA19D,EAAA,CAAyB,CAAA,UAAA,CAAA0G,CAAAvhB,CAAAA,GAAA,ICcrBw4E,IAAAA,EAAAA,CAAAA,CAAe,IAAA,CAAtB,IAAOA,EAAP,MAAOA,CAAe,CAexBlyH,WAAAA,CACYs6C,EACAnN,CACAmqC,CAAAA,CAAAA,CACAj8C,CACAmL,CAAAA,CAAAA,CAAsC,CAJtC,IAAA8T,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAnN,WAAAA,CACA,CAAA,IAAA,CAAAmqC,4BAAAA,CACA,CAAA,IAAA,CAAAj8C,sBAAAA,CACA,CAAA,IAAA,CAAAmL,kBAAAA,CAAAA,CAAAA,CATZ,KAAA6qB,OAAe,CAAA,GAWX,IAAK3hB,CAAAA,OAAAA,CAAU,KAAK4K,aAAc5K,CAAAA,OAAAA,EAClC,CAAA,IAAMswE,EAAe,IAAK3kF,CAAAA,qBAAAA,CAAsBQ,qBAChD,CAAA,IAAA,CAAKs2F,uBAAyB,GAAMnS,CAAAA,CAAAA,CAAaoS,WAAc,CAAA,aACnE,CACA32F,QAAQ,EAAA,CACA,IAAK42F,CAAAA,cAAAA,EAAkB,KAAKA,cAAex0F,CAAAA,GAAAA,CAC3C,IAAKo0F,CAAAA,iBAAAA,CAAoB,KAAKI,cAAex0F,CAAAA,GAAAA,CAE7C,KAAKo0F,iBAAoB,CAAA,GAEjC,CACAjwB,UAAU,EAAA,CACN,IAAI9+C,CAAAA,CACA,KAAKtqD,IAAQ,EAAA,KAAA,CACbsqD,CAAc,CAAA,aAAA,CAEdA,EAAc,aAElB,CAAA,IAAM4yC,CAAY,CAAA,IAAIngB,KAChB7wC,CAAiB,CAAA,IAAA,CAAKwtF,uBAAuB,IAAKnQ,CAAAA,SAAAA,CAAUzoE,GAAG,CACrEo8C,CAAAA,CAAAA,CAAUp2C,IAAO,CAAA,IAAA,CAAKlZ,mBAAmB3B,WAAYC,CAAAA,CAAM,CAC3DgxD,CAAAA,CAAAA,CAAUp2C,KAAK5a,MAASA,CAAAA,CAAAA,CACxBgxD,CAAUp2C,CAAAA,IAAAA,CAAKvQ,UAAY,IAAKA,CAAAA,SAAAA,CAChC2mD,EAAUpmD,OAAU,CAAA,IAAA,CAAKA,QACzBomD,CAAUoE,CAAAA,YAAAA,CAAe,CACzBpE,CAAAA,CAAAA,CAAU75B,aAAe,IAAKs2D,CAAAA,WAAAA,CAC9Bz8B,EAAUjoG,IAAO,CAAA,GAAA,CACjBioG,EAAUlgB,qBAAwB,CAAA,CAAA,CAAA,CAClCkgB,CAAUjgB,CAAAA,YAAAA,CAAe,GACzBigB,CAAUhgB,CAAAA,aAAAA,CAAgB,GAC1BggB,CAAUiM,CAAAA,gBAAAA,CAAmB,gBAC7BjM,CAAU54B,CAAAA,YAAAA,CAAe,CACzB44B,CAAAA,CAAAA,CAAU5yC,YAAcA,CACxB4yC,CAAAA,CAAAA,CAAUiE,aAAgB,CAAA,IAAA,CAAKA,cAC/BjE,CAAU5f,CAAAA,SAAAA,CAAY3tC,MAAOC,CAAAA,QAAAA,CAASC,KACtCqtD,CAAUrrB,CAAAA,cAAAA,CAAiB,KAAK6M,2BAA4B6iB,CAAAA,gBAAAA,GACxD,IAAKgoB,CAAAA,SAAAA,GACD,IAAKqQ,CAAAA,SAAAA,CAAU,KAAKrQ,SAAUzoE,CAAAA,GAAG,CACjC,CAAA,IAAA,CAAK49B,4BAA4B0qB,UAAWlM,CAAAA,CAAS,CAErD,CAAA,IAAA,CAAK3oD,WAAW0D,IAAK,CAAA,IAAA,CAAKsxE,WAAWzoE,GAAG,CAAA,EAGpD,CACA44E,sBAAuB1mF,CAAAA,CAAAA,CAAY,CAC/B,OAAOA,EAAKE,MAAOF,CAAAA,CAAAA,CAAKlD,OAAQ,CAAA,IAAA,CAAKypF,sBAAsB,CAAI,CAAA,IAAA,CAAKA,sBAAuBrpH,CAAAA,MAAM,CACrG,CAEA0pH,SAAAA,CAAU5mF,EAAY,CAClB,OAAOA,EAAKlD,OAAQ,CAAA,IAAA,CAAKypF,sBAAsB,CAAA,CAAI,CACvD,CAxESD,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAep0F,IAAAyI,EAAA,CAAA,CAAAzI,IAAA0M,EAAA,CAAA,CAAA1M,GAAAqhE,CAAAA,IAAA,EAAArhE,GAAAQ,CAAAA,GAAA,EAAAR,GAAAuG,CAAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA81B,EAAA,CAAA,CAAA,IAAA,CAAf+3D,CAAeznG,CAAAA,SAAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA8T,OAAA,CAAAmb,GAAAA,CAAA,KAAA24E,CAAAA,cAAAA,CAAA,iBAAAz5H,IAAA,CAAA,MAAA,CAAAupH,UAAA,WAAAoQ,CAAAA,WAAAA,CAAA,cAAApjF,SAAA,CAAA,WAAA,CAAA4qD,aAAA,CAAA,eAAA,CAAA04B,gBAAA,iBAAA,CAAA,CAAA9nG,UAAA,CAAA,CAAA,CAAA,CAAAmR,SAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,OAAA,CAAA,CAAA,QAAA,KAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,OAAA,CAAA,EAAAC,QAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EDlB5BO,GAAA,CAAAulG,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAA8D,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA5C1kG,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAtJ,MAAA,KAAA,CAAA,CAGAo1B,IAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAAtJ,CAAAA,IAAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCaJkiE,GAAM83D,IAAmBC,CAAAA,IAAA,CAAArkG,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAEjC,IAAO0jG,CAAAA,CAAPY,SAAOZ,CAAe,CAAA,ICbfa,IAAAA,IAAAA,CAAAA,CAAe,IAAA,CAAtB,IAAOA,CAAP,CAAA,MAAOA,CAAe,CACxBC,uBAAAA,CAAwBC,CAAoBhxD,CAAAA,CAAAA,CAAgB,CACxD,IAAMixD,CAAAA,CAAgC,IAAKC,CAAAA,wBAAAA,CAAyBF,EAAYhxD,CAAQ,CAAA,CACxF,OAAO,IAAKmxD,CAAAA,qBAAAA,CAAsBF,CAAqB,CAC3D,CAEAC,wBAAyBF,CAAAA,CAAAA,CAAoBhxD,EAAgB,CACzD,IAAMoxD,EAAuB,IAAKC,CAAAA,wBAAAA,CAAyBL,CAAU,CAIrE,CAAA,OAH2B,IAAKM,CAAAA,aAAAA,CAAcF,EAAcpxD,CAAQ,CAAA,CAC3C,IAAI5+B,IAAI,EAAA,CAC6BmwF,mBAAsB,CAAA,EAExF,CAEAD,aAAAA,CAAcF,EAAsBI,CAAgB,CAAA,CAChD,IAAMC,CAAAA,CAAwB,KAAKC,4BAA6BF,CAAAA,CAAQ,CACxE,CAAA,OAAOJ,EAAeK,CAC1B,CAEAC,6BAA6BF,CAAgB,CAAA,CACzC,OAAIA,CAAa,GAAA,KAAA,CACN,CAGJ,CAAA,CAAA,KAAA,CAAS,EACpB,CAEAG,gBAAAA,CAAiB5iI,CAAa,CAAA,CAC1B,OAAIA,CAAU,GAAA,CAAA,EAAK,CAACA,CAAAA,CACT,KACAA,CAAQ,CAAA,EAAA,CACR,IAAMA,CAEVA,CAAAA,CAAAA,CAAMuB,UACjB,CAEA+gI,wBAAyBL,CAAAA,CAAAA,CAAkB,CACvC,GAAIA,CAAAA,CAAY,CACZ,IAAMY,EAAiBZ,CAAW/kH,CAAAA,KAAAA,CAAM,GAAG,CAAA,CAErC6zE,EAAgB8xC,CAAU,CAAA,CAAC,EAAIztC,MAAOytC,CAAAA,CAAAA,CAAU,CAAC,CAAC,CAAA,CAAI,CACtD5xC,CAAAA,CAAAA,CAAkB4xC,EAAU,CAAC,CAAA,CAAIztC,OAAOytC,CAAU,CAAA,CAAC,CAAC,CAAI,CAAA,CAAA,CACxDpvC,CAAkBovC,CAAAA,CAAAA,CAAU,CAAC,CAAIztC,CAAAA,MAAAA,CAAOytC,EAAU,CAAC,CAAC,EAAI,CAE9D,CAAA,OAD6B9xC,CAAQ,CAAA,EAAA,CAAK,GAAKE,CAAU,CAAA,EAAA,CAAKwC,CAElE,CACA,OACJ,CAAA,CAEA2uC,qBAAsBC,CAAAA,CAAAA,CAAoB,CACtC,IAAMtxC,CAAAA,CAAQphC,KAAK4K,KAAM8nE,CAAAA,CAAAA,CAAgB,IAAQ,CAC3CpxC,CAAAA,CAAAA,CAAUthC,IAAK4K,CAAAA,KAAAA,CAAAA,CAAO8nE,EAAetxC,CAAQ,CAAA,EAAA,CAAK,EAAM,EAAA,EAAE,EAC1D0C,CAAU4uC,CAAAA,CAAAA,EAAgBtxC,CAAQ,CAAA,EAAA,CAAK,GAAKE,CAAU,CAAA,EAAA,CAAA,CAC5D,OAAO,IAAK2xC,CAAAA,gBAAAA,CAAiB7xC,CAAK,CAAI,CAAA,GAAA,CAAM,IAAK6xC,CAAAA,gBAAAA,CAAiB3xC,CAAO,CAAI,CAAA,GAAA,CAAM,IAAK2xC,CAAAA,gBAAAA,CAAiBnvC,CAAO,CACpH,CAEAqvC,qBAAsBb,CAAAA,CAAAA,CAAoBhxD,EAAgB,CACtD,IAAMsf,EAAoB,IAAKyxC,CAAAA,uBAAAA,CAAwBC,EAAYhxD,CAAQ,CAAA,CACrE8xD,CAA2B,CAAA,IAAA,CAAKT,yBAAyB/xC,CAAS,CAAA,CAClEyyC,EAAoB,IAAI3wF,IAAAA,CACxB4wF,EAA6BD,CAAYhyC,CAAAA,QAAAA,EAAa,CAAA,EAAA,CAAK,GAAKgyC,CAAY9xC,CAAAA,UAAAA,GAAe,EAAK8xC,CAAAA,CAAAA,CAAYE,YAC5GC,CAAAA,CAAAA,CAA0BJ,CAAmBE,CAAAA,CAAAA,CACnD,OAAIE,CAAkB,CAAA,CAAA,CACX,IAEJ,CAAA,IAAA,CAAKf,sBAAsBe,CAAe,CACrD,CAEAC,aAAAA,CAAcC,EAAe,CACzB,IAAMC,EAAKD,CAAWvuC,CAAAA,QAAAA,GAAa,CAC7ByuC,CAAAA,CAAAA,CAAKF,CAAWxuC,CAAAA,OAAAA,GAChB2uC,CAAOH,CAAAA,CAAAA,CAAWtuC,WAAW,EAAA,CAC7B7pD,EAASq4F,CAAK,CAAA,GAAA,CAAMD,CAAK,CAAA,GAAA,CAAME,EAC/BC,CAAOJ,CAAAA,CAAAA,CAAWryC,UAClBC,CAAAA,CAAAA,CAAUoyC,EAAWnyC,UAAU,EAAA,CAC/BwyC,CAAYD,CAAAA,CAAAA,EAAQ,GAAK,IAAO,CAAA,IAAA,CACtC,OAAOv4F,CAAAA,CAAS,OAASu4F,CAAO,CAAA,GAAA,CAAMxyC,CAAU,CAAA,GAAA,CAAMyyC,CAC1D,CA7ES3B,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAe,0BAAfA,CAAehmI,CAAAA,OAAAA,CAAfgmI,EAAeztF,SAAAC,CAAAA,UAAAA,CAFZ,MAAM,CAAA,EAEhB,IAAOwtF,CAAAA,CAAP4B,SAAO5B,CAAe,CAAA,8BCL5BjnC,EAAA,CAAA,CAAA,CACIjsD,CAAAA,EAAAA,CAAA,CAAA,CAAA7R,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAo8D,EAAA,CAAA,GAAA,CAAA/1B,EAAAuf,IAAA,CAAA;AAAA,CAAA,EAAA,CAAA,CCaSghD,IAAAA,EAAAA,CAAAA,CAAgB,IAAA,CAAvB,IAAOA,CAAP,CAAA,MAAOA,CAAgB,CAUzB50H,WACYylD,CAAAA,CAAAA,CACAovE,CACAj8E,CAAAA,CAAAA,CAAoC,CAFpC,IAAA6M,CAAAA,YAAAA,CAAAA,CACA,CAAA,IAAA,CAAAovE,eAAAA,CAAAA,CAAAA,CACA,IAAAj8E,CAAAA,iBAAAA,CAAAA,EAZH,IAAAk8E,CAAAA,QAAAA,CAAoB,CACpB,CAAA,CAAA,IAAA,CAAAC,eAA0B,CAAA,EAAA,CAC1B,IAAAC,CAAAA,SAAAA,CAAqB,GAEpB,IAAAC,CAAAA,UAAAA,CAAoC,IAAIrpG,KAS/C,CAEH8sC,WAAAA,EAAW,CACP,IAAA,CAAKw8D,YAAc,IAAK3zC,CAAAA,SAAAA,CACnB,IAAK4zC,CAAAA,aAAAA,GACN,IAAKA,CAAAA,aAAAA,CAAgB,IAAK1vE,CAAAA,YAAAA,CAAaqE,8BAA8B,IAAK,CACtE,GAAI,CAAC,IAAKlR,CAAAA,iBAAAA,CAAkBZ,oBAAoB,EAAA,CAAI,OACpD,IAAMysC,CAAAA,CAAkB,IAAKowC,CAAAA,eAAAA,CAAgBvB,yBAAyB,IAAK4B,CAAAA,WAAW,CAClFzwC,CAAAA,CAAAA,GAAY,IACZ,IAAKh/B,CAAAA,YAAAA,CAAavb,aAAc,CAAA,IAAA,CAAKirF,aAAa,CAAA,CAClD,IAAKF,CAAAA,UAAAA,CAAWhpG,KAAK,CAAI,CAAA,CAAA,CAAA,CAE7B,IAAKipG,CAAAA,WAAAA,CAAc,IAAKL,CAAAA,eAAAA,CAAgBzB,qBAAsB3uC,CAAAA,CAAAA,CAAU,CAAC,EAC7E,CAAA,CAAG,GAAI,CAAA,EAEf,CAEA,IAAI7Q,IAAI,EAAA,CACJ,GAAI,CAAC,IAAA,CAAKkhD,QACN,CAAA,OAAO,KAAKI,WAGhB,CAAA,IAAMzwC,CAAkB,CAAA,IAAA,CAAKowC,gBAAgBvB,wBAAyB,CAAA,IAAA,CAAK4B,WAAW,CAAA,CAChFE,CAAOz0E,CAAAA,IAAAA,CAAK00E,IAAK5wC,CAAAA,CAAAA,EAAW,KAAO,EAAG,CAAA,CAAA,CAC5C,OAAO2wC,CAAAA,CAAO,CAAIA,CAAAA,CAAAA,CAAO,CAAK,EAAA,IAAA,CAAKL,gBAAkB,GAAM,CAAA,IAAA,CAAKA,eAAkB,CAAA,EAAA,CAAA,CAAM,IAAKG,CAAAA,WACjG,CAEAzoG,WAAAA,EAAW,CACP,IAAKg5B,CAAAA,YAAAA,CAAavb,aAAc,CAAA,IAAA,CAAKirF,aAAa,EACtD,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA3CSP,CAAgB92F,EAAAA,GAAAA,CAAAivB,IAAA,CAAAjvB,CAAAA,GAAAA,CAAAi1F,IAAA,CAAA,CAAAj1F,GAAA+Y,CAAAA,IAAA,CAAA,CAAA,uBAAhB+9E,CAAgBnqG,CAAAA,SAAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAu2F,QAAA,CAAA,UAAA,CAAAC,eAAA,CAAA,iBAAA,CAAAC,SAAA,CAAA,WAAA,CAAAzzC,SAAA,CAAA,WAAA,EAAAnnB,OAAA,CAAA,CAAA66D,UAAA,CAAA,YAAA,CAAAtqG,CAAAA,UAAAA,CAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAAu+B,EAAA77B,CAAAA,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,CDd7BO,EAAAA,EAAAA,CAAA,CAAAmoG,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAernG,EAAA,CAAA,MAAA,CAAA/rB,EAAA8yH,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCYDl6D,EAAI,CAAA,CAAAtsC,cAAA,CAAA,CAAA,CAEZ,CAAA,IAAOomG,CAAPW,CAAAA,CAAAA,CAAAA,OAAOX,CAAgB,CAAA,ICPhBY,IAAAA,EAAAA,CAAAA,CAA0B,IAAA,CAAjC,IAAOA,CAAAA,CAAP,MAAOA,CAA0B,CACnCx1H,WAAoBouG,CAAAA,CAAAA,CAAgC,CAAhC,IAAA,CAAAA,eAAAA,CAAAA,EAAmC,CAEvDqnB,UAAAA,CACIC,EACAhyD,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACA4xD,CAAAA,CAAAA,CAAkB,CAElB,IAAA,CAAKvnB,gBAAgBj4D,YAAau/E,CAAAA,CAAAA,CAAc,CAC5C,yBAAA,CAA2BhyD,CAC3B,CAAA,sBAAA,CAAwBC,CACxB,CAAA,uBAAA,CAAyBC,EACzB,yBAA2BC,CAAAA,CAAAA,CAC3B,yBAA2BC,CAAAA,CAAAA,CAC3B,wBAA0BC,CAAAA,CAAAA,CAC1B,sBAAwB4xD,CAAAA,CAAAA,CAC3B,EACL,CAtBSH,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0BxmG,GAAAi1C,CAAAA,IAAA,CAAA,CAAA,CAA1BuxD,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA0BzoI,QAA1ByoI,CAA0BlwF,CAAAA,SAAAA,CAAAC,UAFvB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOiwF,CAAPI,CAAAA,CAAAA,CAAAA,OAAOJ,CAA0B,CAAA,ICO1BK,IAAAA,EAAAA,CAAAA,CAAsB,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CAgB/B71H,WACYq7B,CAAAA,CAAAA,CACAqd,CACAtL,CAAAA,CAAAA,CACAghE,CAAgC,CAAA,CAHhC,KAAA/yE,qBAAAA,CAAAA,CAAAA,CACA,IAAAqd,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAAtL,MAAAA,CAAAA,CAAAA,CACA,KAAAghE,eAAAA,CAAAA,CAAAA,CAlBJ,IAAA0nB,CAAAA,cAAAA,CAAiB,IAAIvxF,IAAAA,CAAyB,CAAK,CAAA,CAAA,CAEnD,KAAAwxF,iBAAoB,CAAA,IAAIxxF,IAAyB,CAAA,CAAA,CAAK,CAEtD,CAAA,IAAA,CAAAyxF,SAAY,CAAA,IAAIzxF,KAAyB,CAAK,CAAA,CAAA,CAC9C,IAAA0xF,CAAAA,6BAAAA,CAAgC,IAAI1xF,IAAAA,CAAyB,CAAI,CAAA,CAAA,CAerE,KAAK2xF,oBAAuB,CAAA,IAAA,CAAK76F,qBAAuB86F,EAAAA,6BAAAA,EAAiCC,EAAAA,sBAAAA,CACzF,IAAKC,CAAAA,2BAAAA,CAA8B,KAAKh7F,qBAAuB86F,EAAAA,6BAAAA,EAAiCG,EAAAA,6BAAAA,CAChG,KAAKvuG,UAAa,CAAA,IAAA,CAAKiuG,SAAUvxF,CAAAA,YAAAA,GACjC,IAAK8xF,CAAAA,eAAAA,CAAkB,IAAKT,CAAAA,cAAAA,CAAerxF,YAAY,EAAA,CACvD,IAAK+xF,CAAAA,kBAAAA,CAAqB,KAAKT,iBAAkBtxF,CAAAA,YAAAA,EACjD,CAAA,IAAA,CAAKgyF,8BAAiC,CAAA,IAAA,CAAKR,6BAA8BxxF,CAAAA,YAAAA,GAC7E,CAEA,IAAIiyF,mBAAmB,EAAA,CACnB,OAAO,IAAA,CAAKC,uBAChB,CAEAC,6BAA6Bh+H,CAAcunB,CAAAA,CAAAA,CAAU,CACjD,IAAA,CAAKu4B,IACAlpB,GACG,CAAA,0CAAA,CACA,CAAE52B,IAAAA,CAAMA,EAAMunB,EAAIA,CAAAA,CAAE,CACpB,CAAA,CACI4pE,YAAc,CAAA,MAAA,CACd/tC,eAAiB,CAAA,CAAA,CAAA,CACpB,EAEJ31B,SAAU,CAAA,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAiB,CAChBA,CAAAA,EACA,IAAK24E,CAAAA,iBAAAA,CAAkBl6G,KAAKuhC,CAAQ,EAE5C,CACA11C,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAMlT,CAAAA,CAAmB,CACrBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,MAClB7U,QAAU59D,CAAAA,IAAAA,CAAgBqjC,MAE9B,CAAA,CAAA,IAAA,CAAKr6C,OAAO1lC,KAAMlT,CAAAA,CAAO,EAC7B,CAAA,CACH,EACT,CACAsiI,eAAgBC,CAAAA,CAAAA,CAA6C,CACzD,IAAKr+E,CAAAA,GAAAA,CACAkD,IAAK,CAAA,2CAAA,CAA6Cm7E,CAAkB,CAAA,CACjEhtC,YAAc,CAAA,MAAA,CACd/tC,gBAAiB,CACpB,CAAA,CAAA,CAAA,CACA31B,SAAU,CAAA,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAiB,CAChBA,CAAAA,EACA,KAAK04E,cAAej6G,CAAAA,IAAAA,CAAKuhC,CAAQ,EAEzC,CACA11C,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAMlT,CAAmB,CAAA,CACrBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,KAClB7U,CAAAA,QAAAA,CAAU59D,KAAgBqjC,MAE9B,CAAA,CAAA,IAAA,CAAKr6C,MAAO1lC,CAAAA,KAAAA,CAAMlT,CAAO,EAC7B,CACH,CAAA,EACT,CACAihI,UACIC,CAAAA,CAAAA,CACAhyD,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACA4xD,EAAkB,CAElB,IAAA,CAAKvnB,eAAgBj4D,CAAAA,YAAAA,CAAau/E,EAAc,CAC5C,yBAAA,CAA2BhyD,CAC3B,CAAA,sBAAA,CAAwBC,EACxB,uBAAyBC,CAAAA,CAAAA,CACzB,yBAA2BC,CAAAA,CAAAA,CAC3B,yBAA2BC,CAAAA,CAAAA,CAC3B,wBAA0BC,CAAAA,CAAAA,CAC1B,uBAAwB4xD,CAC3B,CAAA,EACL,CACAqB,uBAAAA,CAAwBC,CAAuB,CAAA,CAC3C,IAAKhB,CAAAA,6BAAAA,CAA8Bp6G,KAAKo7G,CAAc,EAC1D,CAEAC,wBAAAA,CAAyBC,CAAuB,CAAA,CAC5C,OAAIj0F,EAAAA,CAAYi0F,CAAe,CAGvB3yC,CAAAA,EAFe,IAAInhD,IAAAA,CAAK8zF,CAAe,CACX5zF,CAAAA,OAAAA,EAAY,CAAA,IAAIF,MAAOE,CAAAA,OAAAA,EACnC,EAAA,CAAA,CAAA,CAKjB,CACX,CAAA,CAEA6zF,8BAA+BC,CAAAA,CAAAA,CAAiCC,EAA4BC,CAA4B,CAAA,CACpH,OACID,CAAAA,EAAuBlB,sBACvBmB,EAAAA,CAAAA,EACAF,CACAC,EAAAA,CAAAA,EAAuBhB,+BAA+BkB,UACtDF,EAAAA,CAAAA,EAAuBhB,6BAA+BmB,EAAAA,QAAAA,EACtD,IAAKP,CAAAA,wBAAAA,CAAyBI,CAAuBhB,EAAAA,6BAAAA,EAA+BoB,eAAe,CAE3G,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/HS7B,CAAsB7mG,EAAAA,GAAAA,CAAAsP,GAAA,CAAAtP,CAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAA2kB,EAAA,CAAA,CAAA3kB,GAAAi1C,CAAAA,IAAA,CAAA,CAAA,CAAtB4xD,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAsB9oI,QAAtB8oI,CAAsBvwF,CAAAA,SAAAA,CAAAC,UAFnB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOswF,CAAAA,CAAP8B,SAAO9B,CAAsB,CAAA,ICmBnC,IAAa+B,EAAsB,CAAA,CAAA,IAAA,CAA7B,IAAOA,EAAP,MAAOA,CAAsB,CAM/B53H,WAAAA,CACY4jG,CACA5oE,CAAAA,CAAAA,CACAyjF,CACA/nD,CAAAA,CAAAA,CACA4/C,EACAzmE,CACA04D,CAAAA,CAAAA,CACAsvB,CACAhrF,CAAAA,CAAAA,CACAG,CACAwiD,CAAAA,CAAAA,CACA/2C,CACAC,CAAAA,EAAAA,CACAE,GACAvd,EACAqoF,CAAAA,EAAAA,CACA9rC,EACA/+B,CAAAA,EAAAA,CACAi/E,EACA5nC,CAAAA,EAAAA,CAAoD,CAnBpD,IAAA,CAAA0T,eAAAA,CACA,CAAA,IAAA,CAAA5oE,IAAAA,CAAAA,CAAAA,CACA,IAAAyjF,CAAAA,WAAAA,CAAAA,CACA,CAAA,IAAA,CAAA/nD,aAAAA,CACA,CAAA,IAAA,CAAA4/C,YAAAA,CAAAA,CAAAA,CACA,KAAAzmE,SAAAA,CAAAA,CAAAA,CACA,IAAA04D,CAAAA,OAAAA,CAAAA,EACA,IAAAsvB,CAAAA,kBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAhrF,aAAAA,CAAAA,CAAAA,CACA,IAAAG,CAAAA,mBAAAA,CAAAA,EACA,IAAAwiD,CAAAA,MAAAA,CAAAA,CACA,CAAA,IAAA,CAAA/2C,eAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,GAAAA,CAAAA,GACA,IAAAE,CAAAA,iBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAvd,qBAAAA,CAAAA,EAAAA,CACA,IAAAqoF,CAAAA,mBAAAA,CAAAA,GACA,IAAA9rC,CAAAA,oBAAAA,CAAAA,EACA,CAAA,IAAA,CAAA/+B,sBAAAA,EACA,CAAA,IAAA,CAAAi/E,oBAAAA,CAAAA,EAAAA,CACA,KAAA5nC,yBAAAA,CAAAA,EAAAA,CArBJ,IAAAygC,CAAAA,QAAAA,CAAW,IAAI71C,EAAAA,CAAAA,CAuBf,IAAK8oB,CAAAA,cAAAA,CAAenS,SAASC,aAAcliE,CAAAA,GAAAA,CAAI,YAAY,CAAA,EAAK,MAAU,EAAA,IAAA,CAAKo0E,cAAenS,CAAAA,QAAAA,CAASC,cAAcliE,GAAI,CAAA,MAAM,CAC/H,IAAA,IAAA,CAAKuoG,cAAiB,CAAA,CAAA,CAAA,EAE9B,CAEAC,eAAAA,EAAe,CAIX,OAHI,CAAA,IAAA,CAAKC,YAAiBxnF,GAAAA,KAAAA,CAAAA,EAAa,KAAKwnF,YAAgB,EAAA,IAAA,IACxD,IAAKA,CAAAA,YAAAA,CAAe,KAAK3hB,YAAa9mF,CAAAA,GAAAA,CAAI,YAAY,CAAA,CAAA,CAEtD,IAAKyoG,CAAAA,YAAAA,EAAgB,MAK7B,CAEAC,wBAAwB7mE,CAAY,CAAA,CAChC,IAAIt2B,CAAAA,CACJA,CAAO,CAAA,IAAA,CAAK68C,oBAAqBx4B,CAAAA,eAAAA,CAAgBiS,EAAQlxC,EAAE,CAAA,CACvD4a,CAAMokB,EAAAA,YAAAA,GACNpkB,CAAKo9F,CAAAA,KAAAA,CAAQp9F,CAAKokB,CAAAA,YAAAA,CAAag5E,OAEnCp9F,CAAOA,CAAAA,CAAAA,EAAQ,EAAA,CACf,IAAMyvC,CAAAA,CAAuB,CACzBl3E,IAAAA,CAAM+9D,EAAQ1O,QACd/pD,CAAAA,IAAAA,CAAMy4D,CAAQ+mE,CAAAA,QAAAA,CACdzvD,QAAUyd,CAAAA,MAAAA,CAAOiyC,SAAUhnE,CAAAA,CAAAA,CAAQsX,QAAQ,CAAItX,CAAAA,CAAAA,CAAQsX,QAAW,CAAA,CAAA,CAAIl4B,KACtEitB,CAAAA,CAAAA,OAAAA,CAASrM,CAAQqM,CAAAA,OAAAA,CACjBR,aAAckpB,MAAOiyC,CAAAA,SAAAA,CAAUhnE,CAAQsX,CAAAA,QAAQ,CAAItX,CAAAA,CAAAA,CAAQsX,QAAW,CAAA,CAAA,CAAI,KAAOl4B,KACjFjI,CAAAA,CAAAA,QAAAA,CAAU6oB,CAAQinE,CAAAA,qBAAAA,CAClB93E,OAAQzlB,CAAKo9F,CAAAA,KAAAA,CAAQ,KAAQ,CAAA,UAAA,CAC7BvvD,YAAavX,CAAQknE,CAAAA,cAAAA,CAAiB,cAAiBlnE,CAAAA,CAAAA,CAAQknE,cAAiB,CAAA,+BAAA,CAChF1vD,SAAW9tC,CAAAA,CAAAA,CAAKqe,YAAc,WAAc,CAAA,eAAA,CAC5C0vB,aAAe,CAAA,gBAAA,CACfC,WAAa1X,CAAAA,CAAAA,CAAQ1O,QACrBsZ,CAAAA,YAAAA,CAAc,QACd+M,eAAiB,CAAA,OAAA,CAAA,CAErB,IAAKknB,CAAAA,yBAAAA,CAA0BnoB,KAAMyC,CAAAA,CAAe,EACxD,CAEAguD,mBACI71E,CACAy1E,CAAAA,CAAAA,CACAK,CACA52B,CAAAA,CAAAA,CACAx7B,EACAvhC,CACA4zF,CAAAA,CAAAA,CACAC,CACAtnE,CAAAA,CAAAA,CAAe,EAAE,CAAA,CAEjB,IAAItZ,CAAAA,CACEyF,CAAsB,CAAA,IAAA,CAAKniB,qBAAsBgE,CAAAA,mBAAAA,GAYvD,GAVIs5F,CAAAA,CACA5gF,CAAS4gF,CAAAA,CAAAA,CAET5gF,CAASxP,CAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,CAG7B4oB,EAAQlxC,EAAK2kB,CAAAA,CAAAA,CACbusB,CAAQ+mE,CAAAA,QAAAA,CAAWA,CACnB/mE,CAAAA,CAAAA,CAAQ1O,QAAWA,CAAAA,CAAAA,CAEf,EAAC,IAAKqmE,CAAAA,YAAAA,CAAarmE,CAAUy1E,CAAAA,CAAAA,CAAUK,EAAU52B,CAAYx7B,CAAAA,CAAAA,CAAUvhC,CAAQ4zF,CAAAA,CAAAA,CAAW3gF,EAAQsZ,CAAO,CAAA,CAG7G,CAAI,GAAA,CAAC,IAAK2mE,CAAAA,eAAAA,EAAmB,CAAA,CACG,KAAK1hB,YAAc9mF,EAAAA,GAAAA,CAAI,YAAY,CAAA,EAAGuY,WAAW,EAAA,GAAO,OAEhF,EAAA,IAAA,CAAK6wF,wBAAwB7gF,CAAM,CAAA,CAGvC,MACJ,CAGA,GAFA,IAAA,CAAKmgF,uBAAwB7mE,CAAAA,CAAO,EACpC,IAAKqF,CAAAA,YAAAA,CAAa/H,KAAK,EAAA,CACnB,IAAK9hB,CAAAA,aAAAA,CAAc6C,OAAS,CAAA,CAC5B,IAAMuJ,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAM5CjQ,CAAAA,EAAAA,CAAS,CACXw3E,WAAAA,CAAa,GACbt9C,WAPiB,CAAA,IAAA,CAAKtqB,qBAAsBT,CAAAA,YAAAA,CAC5Ca,CAAeE,CAAAA,KAAAA,CAAM,gBACrB,CAAA,IAAA,CAAKP,kBAAkBnB,kBAAkB,EAAA,CACzCkL,CAAQ,CAAA,CAKRvY,UAAY,CAAA,YAAA,CAAA,CAEhB,IAAK4C,CAAAA,mBAAAA,CAAoB9D,oBAAoB,YAAcD,CAAAA,EAAM,EACrE,CACI,KAAK4D,aAAc4xB,CAAAA,aAAAA,EAAiB25D,CAAUrwF,EAAAA,WAAAA,KAAkB,QAChE,CAAA,IAAA,CAAK8wF,sBAAuB/zF,CAAAA,CAAM,CAAEze,CAAAA,SAAAA,CAC/B+2B,CAAY,EAAA,CACLA,EAAS4G,QACT,CAAA,IAAA,CAAKg+C,UAAW5kD,CAAAA,CAAAA,CAAS4G,QAAQ,CAAA,CAE7BxG,CAAgB/d,EAAAA,QAAAA,CAAS,wBACzB,IAAKi3B,CAAAA,YAAAA,CAAazS,QAASzG,CAAAA,CAAAA,CAAe/d,QAAS,CAAA,sBAAyB,EAGxF,CAAA,CACC/3B,GAAS,CACFA,CAAAA,EAAS81C,CAAgB/d,EAAAA,QAAAA,CAAS,wBAClC,IAAKi3B,CAAAA,YAAAA,CAAazS,QAASzG,CAAAA,CAAAA,CAAe/d,SAAS,sBAAyB,EACpF,CAAC,CAAA,CAGL,IAAKq5F,CAAAA,gBAAAA,CAAiBn2E,CAAUy1E,CAAAA,CAAAA,CAAUK,EAAU52B,CAAYx7B,CAAAA,CAAAA,CAAUvhC,CAAQ4zF,CAAAA,CAAAA,CAAW3gF,CAAM,CAAA,CAAE1xB,SAChG+2B,CAAAA,CAAAA,EAAY,CACT,GAAIA,CAAAA,CAAS+lB,WACT,CAAA,IAAA,CAAK41D,gBAAiB37E,CAAAA,CAAAA,CAAS+lB,WAAaxgB,CAAAA,CAAAA,CAAUy1E,EAAUrgF,CAAM,CAAA,CAAA,KAAA,GAC/DqF,CAAS47E,CAAAA,YAAAA,EAAgB57E,EAAS47E,YAAgB,EAAA,GAAA,CAAK,CAC9D,IAAI5Z,GAAe5hE,CAAe/d,CAAAA,QAAAA,CAAS2d,CAAS47E,CAAAA,YAAY,CAChE5Z,CAAAA,EAAAA,CAAe5hE,CAAe/d,CAAAA,QAAAA,CAAS,MAAQ2d,CAAS47E,CAAAA,YAAY,CAC/D5Z,CAAAA,EAAAA,GACDA,EAAe5hE,CAAAA,CAAAA,CAAe/d,QAAS,CAAA,sBAAA,CAAA,CAEvC2/E,IACA,IAAK1oD,CAAAA,YAAAA,CAAazS,QAASm7D,CAAAA,EAAY,CAEvC,CAAA,IAAA,CAAK6Z,kBAAkB,EAAA,GACvB,KAAK1wB,OAAQziG,CAAAA,GAAAA,CAAI,qBAAuB,CAAA,KAAA,CAAQs3C,EAAS47E,YAAY,CAAA,CACrE,IAAKnpF,CAAAA,SAAAA,CAAUgB,KAAKkH,CAAM,CAAA,EAElC,CACQyF,KAAAA,CAAAA,EAAgB/d,QAAS,CAAA,sBAAA,EACzB,IAAKi3B,CAAAA,YAAAA,CAAazS,SAASzG,CAAe/d,CAAAA,QAAAA,CAAS,sBAAyB,CAAA,CAGpFwD,UAAW,CAAA,IAAM,IAAKyzB,CAAAA,YAAAA,CAAa/H,OAAS,CAAA,GAAI,EACpD,CAAA,CACCjnD,CAAS,EAAA,CACFA,CAAS81C,EAAAA,CAAAA,EAAgB/d,SAAS,sBAClC,EAAA,IAAA,CAAKi3B,YAAazS,CAAAA,QAAAA,CAASzG,EAAe/d,QAAS,CAAA,sBAAyB,EACpF,CAAC,GAGb,CAEAw5F,kBAAAA,EAAkB,CACd,OAAI1wF,MAAOC,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CAAQ,uBAAuB,CAAI,CAAA,CAAA,CAEhE,CACAkwF,uBAAAA,CAAwB7gF,CAAc,CAAA,CAClC,GAAI,IAAA,CAAK/c,KAAKkR,eAAmB,EAAA,IAAA,CAAKoqE,YAAc9mF,EAAAA,GAAAA,CAAI,YAAY,CAAA,EAAGuY,WAAW,EAAA,EAAM,QAAS,CAC7F,IAAImxF,CAEJ,CAAA,GAD6B,KAAK79F,qBAAsB0iB,CAAAA,sBAAAA,EACpCC,CAAAA,6BAAAA,CAA+B,CAC/C,IAAMm7E,CAAAA,CAAsB,IAAKvhD,CAAAA,oBAAAA,CAAqB73B,iBAAiB,EAAA,CACvEm5E,CAAmB,CAAA,CACf1kI,QAAS2kI,CAAoBC,CAAAA,wBAAAA,CAC7B1L,MAAQyL,CAAAA,CAAAA,CAAoBE,uBAC5B1L,CAAAA,QAAAA,CAAUwL,CAAoBG,CAAAA,kBAAAA,CAC9B1L,mBAAoBuL,CAAoBI,CAAAA,oBAAAA,EAEhD,CAAO,KAAA,CACH,IAAM/7E,CAAAA,CAAsB,IAAKniB,CAAAA,qBAAAA,CAAsBgE,qBACvD65F,CAAAA,CAAAA,CAAmB,CACf1kI,OAAAA,CAASgpD,EAAe/d,QAAS25F,CAAAA,wBAAAA,CACjC1L,MAAQlwE,CAAAA,CAAAA,CAAe/d,SAAS45F,uBAChC1L,CAAAA,QAAAA,CAAUnwE,CAAe/d,CAAAA,QAAAA,CAAS65F,kBAClC1L,CAAAA,kBAAAA,CAAoBpwE,CAAe/d,CAAAA,QAAAA,CAAS85F,sBAEpD,CACkB,IAAA,CAAK/pC,MAAO1hC,CAAAA,IAAAA,CAAK+/D,EAAyB,CAAA,CACxD9gF,KAAO,CAAA,OAAA,CACPhS,KAAMm+F,CACT,CAAA,CAAA,CAES7hD,WAAW,EAAA,CAAGhxD,SAAU,CAAA,IAAK,CACnC,IAAA,CAAKwpB,UAAUgB,IAAKkH,CAAAA,CAAM,EAC9B,CAAC,EACL,CACJ,CAEA0uE,UAAAA,CACI9jE,EACAy1E,CACAK,CAAAA,CAAAA,CACA52B,CACAx7B,CAAAA,CAAAA,CACAvhC,CACA4zF,CAAAA,CAAAA,CACA3gF,CAAc,CAAA,CAEd,IAAIznD,CAAiB,CAAA,EAAA,CACrB,OAAIynD,CAAAA,CAAOrP,OAAQ,CAAA,GAAG,CAAM,GAAA,CAAA,CAAA,CACxBp4C,EACIynD,CACA,CAAA,uCAAA,CACA4K,CACA,CAAA,YAAA,CACAy1E,CACA,CAAA,YAAA,CACAK,CACA,CAAA,cAAA,CACA52B,EACA,YACAx7B,CAAAA,CAAAA,CACA,UACAvhC,CAAAA,CAAAA,CACA,cACA4zF,CACA,CAAA,aAAA,CACA3gF,CAEJznD,CAAAA,CAAAA,CACIynD,EACA,uCACA4K,CAAAA,CAAAA,CACA,YACAy1E,CAAAA,CAAAA,CACA,YACAK,CAAAA,CAAAA,CACA,cACA52B,CAAAA,CAAAA,CACA,aACAx7B,CACA,CAAA,UAAA,CACAvhC,CACA,CAAA,aAAA,CACA4zF,CACA,CAAA,aAAA,CACA3gF,CAEDznD,CAAAA,CACX,CAEA04H,YACIrmE,CAAAA,CAAAA,CACAy1E,CACAK,CAAAA,CAAAA,CACA52B,CACAx7B,CAAAA,CAAAA,CACAvhC,CACA4zF,CAAAA,CAAAA,CACA3gF,EACAsZ,CAAY,CAAA,CAEZ,IAAI21D,CAAAA,CACEwS,EAAkB,EAAA,CAgBxB,OAfAA,CAAAA,CAAW72E,SAAWA,CACtB62E,CAAAA,CAAAA,CAAWpB,QAAWA,CAAAA,CAAAA,CACtBoB,CAAWf,CAAAA,QAAAA,CAAWA,CACtBe,CAAAA,CAAAA,CAAW33B,WAAaA,CACxB23B,CAAAA,CAAAA,CAAWnzD,QAAWA,CAAAA,CAAAA,CACtBmzD,CAAW10F,CAAAA,MAAAA,CAASA,CACpB00F,CAAAA,CAAAA,CAAWd,UAAYA,CACvBc,CAAAA,CAAAA,CAAWzhF,MAASA,CAAAA,CAAAA,CACpByhF,CAAWC,CAAAA,OAAAA,CAAU,CACrBD,CAAAA,CAAAA,CAAAA,CAAWnoE,QAAUA,CAErB21D,CAAAA,CAAAA,CAAqB,CACjBlrD,eAAAA,CAAiB09D,EACjBvS,SAAW,CAAA,IAAI5jF,IAAI,EAAA,CAAGE,SAErB,CAAA,CAAA,IAAA,CAAKvI,IAAKkR,CAAAA,eAAAA,CAMR,CALH,CAAA,EAAA,IAAA,CAAKw3E,mBAAoBvyD,CAAAA,uCAAAA,CAAwC,yBAA0B61D,CAAkB,CAAA,CAC7G,IAAKvI,CAAAA,WAAAA,CAAYtnC,SAAUzyC,CAAAA,IAAAA,CAAK6yD,EAAU,CAAA,IAAA,CAAKo5B,QAAQ,CAAC,CAAA,CAAEtqG,SAAU,CAAA,IAAM,IAAKo4F,CAAAA,WAAAA,CAAY3wD,IAAI,EAAE,EAC1F,CAIf,CAAA,CAAA,CAEAirE,gBAAiB51D,CAAAA,CAAAA,CAAkBu2D,CAAmBtB,CAAAA,CAAAA,CAAkBrgF,CAAc,CAAA,CAGlF,GADAorB,CAAc+xC,CAAAA,kBAAAA,CAAmB/xC,CAAW,CAAA,CACxCi1D,CAAY,EAAA,SAAA,CACZ,GAAI,IAAA,CAAKvrF,cAAc6C,OACnB,CAAA,IAAA,CAAKG,SAAUgB,CAAAA,IAAAA,CAAKsyB,CAAW,CAAA,CAAA,KAC5B,CAKH,GAJA,KAAKw2D,WAAc,CAAA,EACd,CAAA,IAAA,CAAKpxB,OAAQ/4E,CAAAA,GAAAA,CAAI,aAAa,CAAA,EAAG,KAAK+4E,OAAQziG,CAAAA,GAAAA,CAAI,aAAe,CAAA,IAAA,CAAK6zH,WAAW,CACtF,CAAA,IAAA,CAAKA,WAAc,CAAA,IAAA,CAAKpxB,QAAQ/4E,GAAI,CAAA,aAAa,CAAK,EAAA,EAElD,CAAA,IAAA,CAAKmqG,WAAYjxF,CAAAA,OAAAA,CAAQgxF,CAAS,CAAI,CAAA,CAAA,CAAA,CAAI,CAC1C,IAAA,CAAKE,UAAaF,CAAAA,CAAAA,CAClB,MACJ,CACA,IAAM7+B,CAAmBtyD,CAAAA,MAAAA,CAAOulB,IAC5BqV,CAAAA,CAAAA,CACA,QACA,CAAA,gIAAgI,CAEhIprB,CAAAA,CAAAA,EACA,KAAKlI,SAAUgB,CAAAA,IAAAA,CAAKkH,CAAM,CAAA,CAE9B,KAAK4hF,WAAYp3E,CAAAA,IAAAA,CAAKm3E,CAAS,CAAA,CAC/B,KAAKnxB,OAAQziG,CAAAA,GAAAA,CAAI,aAAe,CAAA,IAAA,CAAK6zH,WAAW,CAAA,CAChD,IAAM7+B,CAAAA,CAAgChxD,YAAY,IAAK,CAC/C,IAAK8vF,CAAAA,UAAAA,EAAcF,CACnB,GAAA,IAAA,CAAKE,UAAa,CAAA,EAAA,CAClB/+B,GAAkBg/B,KAAK,EAAA,CAAA,CAEvBh/B,CAAkB3yE,EAAAA,MAAAA,GAClB,IAAKyxG,CAAAA,WAAAA,CAAc,IAAKA,CAAAA,WAAAA,CAAY5jI,OAAQtE,CACjCA,EAAAA,CAAAA,EAAKioI,CACf,CAAA,CACD,KAAKnxB,OAAQziG,CAAAA,GAAAA,CAAI,aAAe,CAAA,IAAA,CAAK6zH,WAAW,CAChDzvF,CAAAA,aAAAA,CAAc4wD,CAA6B,CAAA,CAC3C,IAAK+8B,CAAAA,kBAAAA,CAAmBt/C,cAAc,EAAA,EAE9C,EAAG,GAAG,EACV,CACG,KAAA,IAAA,CAAK1oC,SAAUgB,CAAAA,IAAAA,CAAKsyB,CAAW,EAC1C,CACA6+B,UAAW7+B,CAAAA,CAAAA,CAAgB,CACvBA,CAAAA,CAAc+xC,kBAAmB/xC,CAAAA,CAAW,CACxC,CAAA,IAAA,CAAK40D,gBACLxvF,MAAOvsC,CAAAA,MAAAA,CAAOmtC,WAAY,CAAA,CAAEvwC,IAAM,CAAA,YAAA,CAAcmiC,IAAMooC,CAAAA,CAAW,EAAI56B,MAAOC,CAAAA,QAAAA,CAASuP,MAAM,CAAA,CAG/F,IAAKlI,CAAAA,SAAAA,CAAUgB,IAAKsyB,CAAAA,CAAW,EACnC,CAEA21D,gBAAAA,CACIn2E,CACAy1E,CAAAA,CAAAA,CACAK,CACA52B,CAAAA,CAAAA,CACAx7B,CACAvhC,CAAAA,CAAAA,CACA4zF,EACAC,CAAiB,CAAA,CAEjB,IAAM1/E,CAAAA,CAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACnEG,EAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,YAAaa,CAAAA,CAAAA,CAAeE,MAAM,YAAiB,CAAA,IAAA,CAAKP,iBAAkBnB,CAAAA,kBAAAA,EAAoB,CACpIwB,CAAAA,CAAAA,CAAeE,KAAM,CAAA,eAAA,EAAsBF,CAAeE,CAAAA,KAAAA,CAAM,eAAsB,EAAA,SAAA,GACtFE,EAAWJ,CAAeE,CAAAA,KAAAA,CAAM,YAEpC,CAAA,CAAA,IAAM2gF,CAAkB,CAAA,IAAA,CAAKz+F,qBAAsB0iB,CAAAA,sBAAAA,GACnD,GAAI+7E,CAAAA,CAAgBC,+BAAiC,CAAA,CACjD,IAAIC,EAAAA,CACJ,GAAI,IAAA,CAAKlC,qBAAqBmC,aAAiB,EAAA,IAAA,CAAM,CACjD,IAAMC,GAAsBC,IAAS,CAAA,IAAA,CAAK5xB,OAAQ/4E,CAAAA,GAAAA,CAAI,qBAAqB,CAAC,CAAA,CAC5E,IAAK+4E,CAAAA,OAAAA,CAAQ7+E,MAAO,CAAA,qBAAqB,CACrCowG,CAAAA,CAAAA,CAAgBM,2BAChBJ,EAAgBE,CAAAA,EAAAA,CAAsB72F,IAAKmoB,CAAAA,GAAAA,EAAQ0uE,CAAAA,EAAAA,CAAsB72F,IAAKmoB,CAAAA,GAAAA,GAAQ,IAAKssE,CAAAA,oBAAAA,CAAqBmC,aAExH,EAAA,CACA,IAAMI,EAAAA,CAAU,CACZ13E,QAAAA,CAAUA,EACVy1E,QAAUA,CAAAA,CAAAA,CACVK,QAAUA,CAAAA,CAAAA,CACV52B,WAAYA,CACZx7B,CAAAA,QAAAA,CAAUA,CACVvhC,CAAAA,MAAAA,CAAQA,EACR4zF,SAAWA,CAAAA,CAAAA,CACXC,SAAWA,CAAAA,CAAAA,CACX/+E,GAAK,CAAA,IAAA,CAAK08D,YAAa9mF,CAAAA,GAAAA,CAAI,UAAU,CACrC8qG,CAAAA,OAAAA,CAAS,EACTC,CAAAA,YAAAA,CAAc,EACdC,CAAAA,gBAAAA,CAAkB,CAClBR,CAAAA,CAAAA,aAAAA,CAAeA,GACfjC,cAAgB,CAAA,CAAA,CAAA,CAAA,CAEhB9+E,CAAeE,CAAAA,KAAAA,CAAM,eAAsBF,EAAAA,CAAAA,CAAeE,KAAM,CAAA,eAAA,EAAsB,UACtF,IAAKV,CAAAA,eAAAA,CAAgBmD,IAAKvC,CAAAA,CAAAA,CAAUghF,EAAS,CAAA,CAAEr+E,eAAiB,CAAA,CAAA,CAAI,CAAE,CAEtE,CAAA,IAAA,CAAKtD,GAAIkD,CAAAA,IAAAA,CAAKvC,CAAUghF,CAAAA,EAAAA,CAAS,CAAEr+E,eAAAA,CAAiB,EAAI,CAAE,EAElE,CACA,IAAI7mD,CACJ,CAAA,OAAI8jD,CAAeE,CAAAA,KAAAA,CAAM,iBAAsBF,CAAeE,CAAAA,KAAAA,CAAM,eAAsB,EAAA,SAAA,CACtFhkD,CAAM,CAAA,IAAA,CAAKsjD,eAAgBjpB,CAAAA,GAAAA,CACvB6pB,EACA,CACIsJ,QAAAA,CAAUA,CACVy1E,CAAAA,QAAAA,CAAUA,EACVK,QAAUA,CAAAA,CAAAA,CACV52B,UAAYA,CAAAA,CAAAA,CACZx7B,SAAUA,CACVvhC,CAAAA,MAAAA,CAAQA,CACR4zF,CAAAA,SAAAA,CAAWA,CACXC,CAAAA,SAAAA,CAAWA,CACX/+E,CAAAA,GAAAA,CAAK,KAAK08D,YAAa9mF,CAAAA,GAAAA,CAAI,UAAU,CAAA,CAAA,CAEzC,CAAEwsB,eAAAA,CAAiB,CAAI,CAAA,CAAE,EAG7B7mD,CAAM,CAAA,IAAA,CAAKujD,GAAIlpB,CAAAA,GAAAA,CACX6pB,CACA,CAAA,CACIsJ,QAAUA,CAAAA,CAAAA,CACVy1E,SAAUA,CACVK,CAAAA,QAAAA,CAAUA,CACV52B,CAAAA,UAAAA,CAAYA,EACZx7B,QAAUA,CAAAA,CAAAA,CACVvhC,MAAQA,CAAAA,CAAAA,CACR4zF,UAAWA,CACXC,CAAAA,SAAAA,CAAWA,CACX/+E,CAAAA,GAAAA,CAAK,IAAK08D,CAAAA,YAAAA,CAAa9mF,GAAI,CAAA,UAAU,GAEzC,CAAEwsB,eAAAA,CAAiB,CAAI,CAAA,CAAE,CAI1B7mD,CAAAA,CACX,CACA0jI,sBAAAA,CAAuB4B,EAAmB,CACtC,IAAMxhF,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAClD,CAAA,OAAO,KAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,CAAeE,CAAAA,KAAAA,CAAM,aAAiB,CAAEshF,WAAAA,CAAaA,CAAW,CAAE,CAC1F,CACAhuG,WAAAA,EAAW,CACP,IAAA,CAAKkkG,QAASlpG,CAAAA,QAAAA,GAClB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApbSmwG,GAAsB5oG,GAAA8sE,CAAAA,IAAA,CAAA9sE,CAAAA,GAAAA,CAAAiP,GAAA,CAAA,CAAAjP,GAAAyoD,CAAAA,EAAA,EAAAzoD,GAAA41B,CAAAA,IAAA,CAAA51B,CAAAA,GAAAA,CAAAi7D,IAAA,CAAA,CAAAj7D,GAAAwb,CAAAA,EAAA,EAAAxb,GAAA0rG,CAAAA,EAAA,CAAA1rG,CAAAA,GAAAA,CAAA2oD,EAAA,CAAA,CAAA3oD,GAAAykB,CAAAA,IAAA,EAAAzkB,GAAAmZ,CAAAA,EAAA,CAAAnZ,CAAAA,GAAAA,CAAA2sE,IAAA,CAAA,CAAA3sE,GAAAwnB,CAAAA,EAAA,EAAAxnB,GAAAwU,CAAAA,EAAA,CAAAxU,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA7nB,GAAAsP,CAAAA,GAAA,EAAAtP,GAAA6gC,CAAAA,EAAA,CAAA7gC,CAAAA,GAAAA,CAAAwtB,EAAA,CAAA,CAAAxtB,GAAAmpB,CAAAA,IAAA,EAAAnpB,GAAA2rG,CAAAA,CAAA,CAAA3rG,CAAAA,GAAAA,CAAA84C,IAAA,CAAA,CAAA,CAAtB8vD,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAsB7qI,QAAtB6qI,CAAsBtyF,CAAAA,SAAAA,CAAAC,UAFnB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOqyF,CAAAA,CAAPgD,SAAOhD,CAAsB,CAAA,ICrBnC,IAAaiD,EAAe,CAAA,CAAA,IAAA,CAAtB,IAAOA,EAAP,MAAOA,CAAe,CAcxB76H,WAAAA,CACY04C,CACAsa,CAAAA,CAAAA,CACA1Y,CACAjf,CAAAA,CAAAA,CAA4C,CAH5C,IAAAqd,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAAsa,aAAAA,CACA,CAAA,IAAA,CAAA1Y,aAAAA,CAAAA,CAAAA,CACA,KAAAjf,qBAAAA,CAAAA,CAAAA,CAjBZ,IAAAy/F,CAAAA,mBAAAA,CAAqD,IAAI35F,GAAAA,CACzD,IAAA45F,CAAAA,uBAAAA,CAAyD,IAAI55F,GAGrD,CAAA,IAAA,CAAA65F,6BAAgC,CAAA,IAAIz2F,IAAkC,CAAA,IAAIpD,GAAkB,CAAA,CACpG,KAAA85F,wBAA4C,CAAA,IAAA,CAAKD,6BAA8Bv2F,CAAAA,YAAAA,EAEvE,CAAA,IAAA,CAAAy2F,8BAAiC,CAAA,IAAI32F,KAAqB,IAAI,CAAA,CACtE,IAAA42F,CAAAA,+BAAAA,CAAmD,KAAKD,8BAA+Bz2F,CAAAA,YAAAA,EAEvF,CAAA,IAAA,CAAA22F,gBAAuB,EAAA,CACvB,IAAAC,CAAAA,+BAAAA,CAAkC,IAAI92F,IAAAA,CAAyB,IAAIsrF,OAAS,EAOzE,CAEHyL,mBAAAA,CAAoBnsF,CAAoB,CAAA,EAAA,CAAI4C,CAAyB,CAAA,EAAA,CAAE,CACnE,IAAMkH,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,EAAesiF,GAAI,CAAA,kBAAA,CAAuB,CAAE3oF,SAAAA,CAAWzD,CAAWtG,CAAAA,cAAAA,CAAgBkJ,CAAc,CAAE,CAC1H,CAEAypF,wBAAAA,CAAyBC,CAAqC,CAAA,CAC1D,IAAKP,CAAAA,8BAAAA,CAA+Br/G,IAAK4/G,CAAAA,CAAgC,EAC7E,CAEAC,gBAAAA,CAAiBvsF,CAAoB,CAAA,EAAA,CAAE,CAC/BA,CAAAA,GAAc,EACdA,GAAAA,CAAAA,CAAY,KAAKmL,aAAcpL,CAAAA,YAAAA,EAAkB,EAAA,EAAA,CAAA,CAErD,IAAIysF,CAAAA,CAAmC,IAAIx6F,GAAAA,CAE3C,GADAw6F,CAAiB,CAAA,IAAA,CAAKb,mBAAoBtrG,CAAAA,GAAAA,CAAI2f,CAAS,CAAK,EAAA,IAAIhO,GAC5Dw6F,CAAAA,CAAAA,EAAkBA,EAAexwG,IAAO,CAAA,CAAA,CACxC,OAAOwwG,CAAAA,CACJ,CACH,IAAM/+C,CAAmB,CAAA,IAAA,CAAK5pB,aAAab,8BAA+BhjB,CAAAA,CAAS,CACnF,CAAA,OAAIytC,CACA,GAAA,IAAA,CAAKk+C,mBAAoBh1H,CAAAA,GAAAA,CAAIqpC,EAAWytC,CAAW,CAAA,CACnD,IAAKm+C,CAAAA,uBAAAA,CAAwBj1H,GAAIqpC,CAAAA,CAAAA,CAAW,IAAKysF,CAAAA,0BAAAA,CAA2Bh/C,CAAW,CAAC,CAAA,CAAA,CAErFA,CACX,CACJ,CAEAg/C,0BAA2BrrF,CAAAA,CAAAA,CAAmB,CAC1C,IAAMsrF,EAA4C,IAAI16F,GAAAA,CACtD,OAAIoP,CAAAA,EAAkBA,CAAeplB,CAAAA,IAAAA,CAAO,CACxColB,EAAAA,CAAAA,CAAex2B,SAAU4kC,CAAAA,OAAAA,CAASt9C,CAAc,EAAA,CACvCA,CAAM,CAAA,CAAC,CAAEy6H,CAAAA,oBAAAA,EACVvrF,EAAex2B,OAAO,EAAA,CAAG4kC,OAAStQ,CAAAA,CAAAA,EAAiB,CAC3CA,CAAAA,CAAS,CAAC,CAAA,CAAE0tF,gBAAkB16H,CAAM,CAAA,CAAC,CACrCkvC,EAAAA,CAAAA,CAAex2B,SAAU4kC,CAAAA,OAAAA,CAASq9E,CAAkB,EAAA,CAC5CA,EAAU,CAAC,CAAA,CAAEC,gBAAoBD,EAAAA,CAAAA,CAAU,CAAC,CAAA,CAAEC,gBAAiBvzF,CAAAA,OAAAA,CAAQ2F,EAAS,CAAC,CAAA,CAAEjE,UAAU,CAAA,CAAI,CACjG/oC,CAAAA,GAAAA,CAAAA,CAAM,CAAC,CAAA,CAAE66H,iBAAmBF,CAAU,CAAA,CAAC,CAAE5xF,CAAAA,UAAAA,CACzCyxF,CAAqB/1H,CAAAA,GAAAA,CAAIzE,CAAM,CAAA,CAAC,EAAE+oC,UAAY/oC,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAE66H,gBAAgB,CAAA,EAE/E,CAAC,EAET,CAAC,EAET,CAAC,CAEEL,CAAAA,CACX,CAEAM,6BAAAA,EAA6B,CACzB,IAAMzgG,EAAe,IAAKL,CAAAA,qBAAAA,CAAsBM,mBAAmB,EAAA,CAC7DwT,CAAoB,CAAA,IAAA,CAAKmL,aAAcpL,CAAAA,YAAAA,IAAkB,EAC/D,CAAA,GAAIC,CACA,CAAA,CAAA,IAAA,IAAS1hD,CAAI,CAAA,CAAA,CAAGA,CAAIiuC,CAAAA,CAAAA,CAAa0gG,0BAA0BtzH,MAAQrb,CAAAA,CAAAA,EAAAA,CAC/D,GAAIiuC,CAAAA,EAAc0gG,0BAA0B3uI,CAAC,CAAA,EAAG0hD,SAAWpH,EAAAA,WAAAA,KAAkBoH,CAAWpH,EAAAA,WAAAA,EACpF,CAAA,OAAOrM,CAAa0gG,CAAAA,yBAAAA,CAA0B3uI,CAAC,CAAA,CAAE6iD,gBAI7D,OAAO,EACX,CAEA+rF,qBAAAA,EAAqB,CACjB,IAAM3gG,CAAe,CAAA,IAAA,CAAKL,sBAAsBM,mBAAmB,EAAA,CACnE,OAAO,IAAA,CAAK2gG,SAAU5gG,CAAAA,CAAAA,CAAa4U,eAAe,CACtD,CAEAgsF,SAAUC,CAAAA,CAAAA,CAA4B,CAClC,OAAI,CAACA,CAAwBA,EAAAA,CAAAA,GAAyB,EAC3C,CAAA,IAAA,CAAKC,wBAEZD,CAAAA,CAAAA,EAAsBx0F,WAAW,EAAA,GAAO,IAAKo0F,CAAAA,6BAAAA,EAAiCp0F,EAAAA,WAAAA,GACvE,IAAKy0F,CAAAA,sBAAAA,EAET,CAAA,IAAA,CAAKC,yCAA0CF,CAAAA,CAAoB,CAC9E,CAEAE,0CAA0CC,CAA8B,CAAA,CACpE,GAAIA,CAAAA,CAAwB,CACxB,IAAMC,CAA4B,CAAA,IAAA,CAAKjB,kBACvC,CAAA,GAAIiB,CAAwBA,EAAAA,CAAAA,CAAqBxxG,KAAO,CAAG,CAAA,CACvD,IAAW58B,IAAAA,CAAAA,IAAOgyC,MAAM1yC,IAAK8uI,CAAAA,CAAAA,CAAqBzuI,IAAI,EAAE,CAAG,CAAA,CACvD,IAAMmgD,CAAAA,CAAgBsuF,EAAqBntG,GAAIjhC,CAAAA,CAAG,CAClD,CAAA,GAAI8/C,CAAYA,EAAAA,CAAAA,CAASjE,UAAciE,EAAAA,CAAAA,EAAUjE,YAAYrC,WAAW,EAAA,GAAO20F,CAAwB30F,EAAAA,WAAAA,EACnG,CAAA,OAAO40F,CAAqBntG,CAAAA,GAAAA,CAAIjhC,CAAG,CAE3C,CACA,OAAO,IACX,CACJ,CACA,OAAO,IACX,CAEAiuI,wBAAsB,CAClB,IAAMI,CAA+B,CAAA,IAAA,CAAKT,6BAA6B,EAAA,CACjEU,CAA2B,CAAA,IAAA,CAAKJ,0CAA0CG,CAAoB,CAAA,CACpG,GAAIC,CAAAA,CACA,OAAOA,CAAAA,CACJ,CACH,IAAMF,EAA4B,IAAKjB,CAAAA,gBAAAA,EACvC,CAAA,GAAIiB,CAAwBA,EAAAA,CAAAA,CAAqBxxG,IAAO,CAAA,CAAA,CACpD,OAAOwxG,CAAqB5iH,CAAAA,OAAAA,EAAU8B,CAAAA,IAAAA,GAAO7qB,KAAM,CAAA,CAAC,CAE5D,CACA,OAAO,IACX,CAEA8rI,eAAgBC,CAAAA,CAAAA,CAAmB,CAC/B,IAAM3B,CAAuB,CAAA,GAC7B2B,CAAep+E,CAAAA,OAAAA,CAAStQ,CAAiB,EAAA,CACjCA,CAAS,CAAA,UAAA,EACTA,CAAS,CAAA,UAAA,CAAcsQ,QAASm3C,CAAkB,EAAA,CAC9C,SAAaA,GAAAA,CAAAA,GAAcslC,CAAgBtlC,CAAAA,CAAAA,CAAUp2C,IAAI,CAAA,CAAIo2C,EAAUrwB,OAC3E,EAAA,CAAC,EACT,CAAC,EACD,IAAK21D,CAAAA,eAAAA,CAAkBA,CACvB,CAAA,IAAA,CAAKpoE,aAAaX,oBAAqB,CAAA,IAAA,CAAK+oE,eAAe,CAAA,CAC3D,IAAKC,CAAAA,+BAAAA,CAAgCx/G,IAAK,CAAA,CAAA,CAAI,EAClD,CA1ISg/G,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAe7rG,GAAAwU,CAAAA,EAAA,CAAAxU,CAAAA,GAAAA,CAAA6gC,EAAA,CAAA,CAAA7gC,IAAAuX,EAAA,CAAA,CAAAvX,GAAAsP,CAAAA,GAAA,CAAA,CAAA,CAAfu8F,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAe9tI,QAAf8tI,CAAev1F,CAAAA,SAAAA,CAAAC,UAFZ,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOs1F,CAAPmC,CAAAA,CAAAA,CAAAA,OAAOnC,CAAe,CAAA,GAAA,CCPfoC,IAAAA,EAAAA,CAAAA,CAAmB,IAAA,CAA1B,IAAOA,CAAAA,CAAP,MAAOA,CAAmB,CAO5Bj9H,WAAA,EAAA,EAEAk9H,EAAAA,CAAGC,CAAmB3oI,CAAAA,CAAAA,CAAiB4oI,EAAuB,CAAK,CAAA,CAAA,CAC/D,IAAKC,CAAAA,OAAAA,CAAU,CACf,CAAA,CAAA,IAAA,CAAKxxF,OAAU5I,CAAAA,UAAAA,CAAW,IAAK,CAC3B,IAAA,CAAKq6F,GAAG,GACZ,CAAG,CAAA,GAAI,CACP,CAAA,IAAA,CAAKH,UAAYA,CACjB,CAAA,IAAA,CAAK3oI,OAAUA,CAAAA,CAAAA,CACf,IAAK4oI,CAAAA,WAAAA,CAAcA,EACvB,CAEAE,KAAG,CACC7vB,YAAAA,CAAa,IAAK5hE,CAAAA,OAAO,CACzB,CAAA,IAAA,CAAKwxF,OAAU,CAAA,CAAA,EACnB,yCAtBSJ,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA/vI,GAAA,CAAA,CAAA,KAAA,CAAnB+vI,CAAmBlwI,CAAAA,OAAAA,CAAnBkwI,CAAmB33F,CAAAA,SAAAA,CAAAC,UAFhB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAO03F,CAAPM,CAAAA,CAAAA,CAAAA,OAAON,CAAmB,CAAA,ICKnBO,IAAAA,EAAAA,CAAAA,CAAmB,IAAA,CAA1B,IAAOA,CAAP,CAAA,MAAOA,CAAmB,CAO5Bx9H,WACY04C,CAAAA,CAAAA,CACArd,EAA4C,CAD5C,IAAA,CAAAqd,GAAAA,CAAAA,CAAAA,CACA,IAAArd,CAAAA,qBAAAA,CAAAA,CANJ,CAAA,IAAA,CAAAoiG,mBAAqB,IAAIl5F,IAAAA,CAAqB,IAAI,CAAA,CAClD,IAAAm5F,CAAAA,sBAAAA,CAAyB,IAAIn5F,IAAAA,CAAqB,IAAI,CAC9D,CAAA,IAAA,CAAAo5F,sBAA0C,CAAA,IAAA,CAAKF,mBAAmBh5F,YAAY,EAAA,CAC9E,IAAAm5F,CAAAA,6BAAAA,CAAiD,KAAKF,sBAAuBj5F,CAAAA,YAAAA,GAI1E,CAEHo5F,2BAA2B,EAAA,CACvB,IAAM5kF,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAClD,CAAA,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,CAAe6kF,CAAAA,aAAAA,CAAc,UAAa,CAAEz3G,CAAAA,SAAAA,CACpD+2B,CAAiB,EAAA,CACd,IAAK2gF,CAAAA,gBAAAA,CAAmB3gF,CACxB,CAAA,IAAA,CAAK4gF,cAAc5gF,CAAS6gF,CAAAA,iBAAiB,CAC7C,CAAA,IAAA,CAAKR,mBAAmB5hH,IAAKuhC,CAAAA,CAAQ,EACzC,CAAA,CACA,IAAK,EAAG,EAEhB,CACA8gF,eAAe,EAAA,CACX,OAAO,IAAA,CAAKH,gBAChB,CACAI,oBAAAA,CAAqBC,CAAiB,CAAA,CAClC,IAAKV,CAAAA,sBAAAA,CAAuB7hH,IAAKuiH,CAAAA,CAAY,EACjD,CACAJ,aAAAA,CAAcjjG,CAAS,CAAA,CACnB,GAAIA,CAAAA,CAAKsjG,mBAAqB,CAAA,CAI1B,IAAMC,CAHkB,CAAA,CAAA,IAAIj7F,IAAKtI,CAAAA,CAAAA,CAAKsjG,mBAAmB,CAAA,CAChC,IAAIh7F,IAAAA,EAEgB,IAAO,EACpD,CAAA,IAAA,CAAKk7F,gBAAmBD,CAAAA,CAAAA,CAAuB,CAC3C,CAAA,IAAA,CAAKC,gBACL,EAAA,IAAA,CAAKJ,qBAAqBpjG,CAAI,EAEtC,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAxCSyiG,CAAmBxuG,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAAsP,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAApxC,GAAA,CAAA,CAAA,KAAA,CAAnBswI,CAAmBzwI,CAAAA,OAAAA,CAAnBywI,CAAmBl4F,CAAAA,SAAAA,CAAAC,WAFhB,MAAM,CAAA,CAEhB,CAAA,IAAOi4F,EAAPgB,CAAOhB,CAAAA,OAAAA,CAAmB,CAAA,QCFnBiB,EAA0B,CAAA,CAAA,IAAA,CAAjC,IAAOA,CAAP,CAAA,MAAOA,CAA0B,CACnCz+H,YACqB0+H,CACTC,CAAAA,CAAAA,CAAqC,CAD5B,IAAA,CAAAD,iBAAAA,CAAAA,CAAAA,CACT,IAAAC,CAAAA,cAAAA,CAAAA,EACT,CAEH/nF,SAAAA,EAAS,CACL,IAAMgoF,CAAc,CAAA,IAAA,CAAKF,iBAAkBjtC,CAAAA,QAAAA,CAASmtC,YAC9CC,CAAuB,CAAA,IAAA,CAAKF,cAAe5iG,CAAAA,qBAAAA,GAAwB8iG,oBAEzE,CAAA,OAAO,IAAKC,CAAAA,yBAAAA,CAA0BF,CAAW,CAAKC,EAAAA,CAC1D,CACQC,yBAAAA,CAA0BF,CAAoC,CAAA,CAClE,IAAMG,CAAAA,CAAyBj3E,OAAO55D,IAAK0wI,CAAAA,CAAW,CAAEttF,CAAAA,IAAAA,CAAMnkD,CAAMA,EAAAA,CAAAA,CAAEqwC,IAAI,EAAA,CAAGuK,aAAkB,GAAA,gBAAgB,CACzGi3F,CAAAA,CAAAA,CAA2Bl3E,MAAO/tC,CAAAA,OAAAA,CAAQ6kH,CAAW,CAAA,CAAEttF,KAAMnkD,CAAMA,EAAAA,CAAAA,CAAE,CAAC,CAAA,CAAEqwC,MAAOuK,CAAAA,WAAAA,EAAkB,GAAA,gBAAgB,EACvH,OAAIg3F,CAAAA,EAAAA,CACIC,EAAAA,CAAAA,EAAAA,CAA6BA,CAAyB,CAAA,CAAC,CAAK,EAAA,EAAA,EAAIxhG,MAAOuK,CAAAA,WAAAA,EAAkB,GAAA,IAAA,CAKrG,CArBS02F,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0BzvG,GAAA8sE,CAAAA,IAAA,EAAA9sE,GAAAsP,CAAAA,GAAA,CAAA,CAAA,CAA1BmgG,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA0B1xI,OAA1B0xI,CAAAA,CAAAA,CAA0Bn5F,UAAAC,UAFvB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOk5F,CAAAA,CAAPQ,CAAOR,CAAAA,OAAAA,CAA0B,KCGvC,IAAaS,EAA6B,CAAA,CAAA,IAAA,CAApC,IAAOA,CAAP,CAAA,MAAOA,CAA6B,CAEtCl/H,WAAAA,CACY27D,CACA2b,CAAAA,CAAAA,CACA6nD,CAA8C,CAAA,CAF9C,IAAAxjE,CAAAA,kBAAAA,CAAAA,EACA,IAAA2b,CAAAA,2BAAAA,CAAAA,CACA,CAAA,IAAA,CAAA6nD,sBAAAA,CAAAA,EACT,CAEHC,SAAAA,EAAS,CACL,IAAKC,CAAAA,oBAAAA,CAAuB,IAAK1jE,CAAAA,kBAAAA,CAAmB2jE,0BAA0Bj5G,SACzE+2B,CAAAA,CAAAA,EAAiB,CACd,GAAIA,EACA,GAAIA,CAAAA,CAAS0e,eAAgB29D,CAAAA,OAAAA,CAAS,CAClC,IAAMxwF,CAASmU,CAAAA,CAAAA,CAAS0e,gBACxB,IAAKqjE,CAAAA,sBAAAA,CAAuB3G,kBACxBvvF,CAAAA,CAAAA,CAAO0Z,QACP1Z,CAAAA,CAAAA,CAAOmvF,QACPnvF,CAAAA,CAAAA,CAAOwvF,SACPxvF,CAAO44D,CAAAA,UAAAA,CACP54D,CAAOo9B,CAAAA,QAAAA,CACPp9B,CAAOnE,CAAAA,MAAAA,CACPmE,CAAOyvF,CAAAA,SAAAA,CACPzvF,EAAO8O,MACP9O,CAAAA,CAAAA,CAAOooB,OAAO,EAEtB,MACI,IAAKimB,CAAAA,2BAAAA,CAA4B0qB,UAAW5kD,CAAAA,CAAAA,CAAS0e,eAAe,EAGhF,CAAA,CACA,IAAK,EAAG,EAEhB,CACArvC,WAAAA,EAAW,CACP,IAAK4yG,CAAAA,oBAAAA,EAAsB74G,WAAW,GAC1C,CAnCS04G,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA6BlwG,GAAAixC,CAAAA,IAAA,EAAAjxC,GAAAmwE,CAAAA,IAAA,CAAAnwE,CAAAA,GAAAA,CAAA4oG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA1qI,GAAA,CAAA,CAAA,KAAA,CAA7BgyI,EAA6BnyI,OAA7BmyI,CAAAA,CAAAA,CAA6B55F,SAAAC,CAAAA,UAAAA,CAF1B,MAAM,CAAA,CAAA,CAEhB,IAAO25F,CAAAA,CAAPK,SAAOL,CAA6B,CAAA,ICA1C,IAAaM,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAOlCx/H,WAAAA,CACY04C,CACAge,CAAAA,CAAAA,CACA8J,CACAplC,CAAAA,CAAAA,CAA4B,CAH5B,IAAAsd,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAAge,YAAAA,CAAAA,CAAAA,CACA,IAAA8J,CAAAA,QAAAA,CAAAA,EACA,IAAAplC,CAAAA,aAAAA,CAAAA,CAVZ,CAAA,IAAA,CAAAqkG,UAA+C,CAAA,IAAIt+F,GAC3C,CAAA,IAAA,CAAAu+F,oBAAsB,IAAIn7F,IAAAA,CAAyB,CAAK,CAAA,CAAA,CAChE,IAAAo7F,CAAAA,oBAAAA,CAA4C,IAAKD,CAAAA,mBAAAA,CAAoBj7F,eASlE,CAEKm7F,QAAQ,EAAA,CACR,IAAKH,CAAAA,UAAAA,EAAc,IAAKA,CAAAA,UAAAA,CAAWt0G,KAAO,CAC1C,EAAA,IAAA,CAAKs0G,UAAW9wE,CAAAA,KAAAA,GAExB,CAEAkxE,YAAaC,CAAAA,CAAAA,CAA0B,CACnC,IAAKpnF,CAAAA,GAAAA,CACAkD,IAAK,CAAA,2BAAA,CAA6BkkF,EAAa,CAC5C/1C,YAAAA,CAAc,MACd/tC,CAAAA,eAAAA,CAAiB,GACjB2H,WAAa,CAAA,CAAA,CAAA,CAChB,CACAt9B,CAAAA,SAAAA,CACI+2B,CAAmC,EAAA,CAC5BA,CAAS6hE,CAAAA,YAAAA,GAAc,KAAKA,YAAe7hE,CAAAA,CAAAA,CAAS6hE,YAExD,CAAA,CAAA,IAAA,CAAK2gB,QAAQ,EAAA,CACbxiF,CAAS2iF,CAAAA,OAAAA,CAAQphF,QAASlV,CAA+B,EAAA,CACrD,IAAKg2F,CAAAA,UAAAA,CAAW35H,GAAI2jC,CAAAA,CAAAA,CAAOwuD,IAAMxuD,CAAAA,CAAM,EAC3C,CAAC,CAAA,CACD,IAAKi2F,CAAAA,mBAAAA,CAAoB7jH,KAAK,CAAI,CAAA,EACtC,CACCnU,CAAAA,CAAAA,EAAiB,CACd,IAAIlT,CAAAA,CAAmB,CACnBqtH,IAAAA,CAAMn6G,CACN9O,CAAAA,IAAAA,CAAMsrD,EAAY2yE,CAAAA,KAAAA,CAClB7U,SAAU59D,IAAgBqjC,CAAAA,MAAAA,CAC1Bw6B,KAAO,CAAA,iBAAA,CAAA,CAEPztH,CACA,GAAA,IAAA,CAAKkiE,YAAap0D,CAAAA,GAAAA,CAAI9N,CAAO,CAC7ByuC,CAAAA,UAAAA,CAAW,IAAK,CACZ,IAAKyzB,CAAAA,YAAAA,CAAa/H,KAAK,GAC3B,EAAG,GAAI,CAAA,EAEf,CAAC,EAEb,CAEAqxE,aAAa,EAAA,CACT,OAAO,IAAA,CAAKP,UAChB,CAEAQ,SAAAA,CAAUhoC,CAAY,CAAA,CAClB,OAAO,IAAA,CAAKwnC,UAAWjwG,CAAAA,GAAAA,CAAIyoE,CAAI,CACnC,CAEAioC,cAAc,EAAA,CACV,OAAO,IAAA,CAAKjhB,YAChB,CAEAx7C,iBACIC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACA4xD,CAAkB,CAAA,CAElB,KAAKn1D,QAASrqB,CAAAA,YAAAA,CAAa,gBAAkB,CAAA,CACzC,yBAA2ButB,CAAAA,CAAAA,CAC3B,sBAAwBC,CAAAA,CAAAA,CACxB,wBAAyBC,CACzB,CAAA,yBAAA,CAA2B,IAAKxoC,CAAAA,aAAAA,CAAchM,OAAU,CAAA,GAAA,CAAMy0C,CAC9D,CAAA,yBAAA,CAA2BC,EAC3B,wBAA0BC,CAAAA,CAAAA,CAC1B,sBAAwB4xD,CAAAA,CAAAA,CAC3B,EACL,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApFS6J,CAAyBxwG,EAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAA41B,IAAA,CAAA,CAAA51B,GAAAi1C,CAAAA,IAAA,CAAAj1C,CAAAA,GAAAA,CAAAqP,IAAA,CAAA,CAAA,CAAzBmhG,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAyBzyI,QAAzByyI,CAAyBl6F,CAAAA,SAAAA,CAAAC,UAFtB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOi6F,CAAPW,CAAAA,CAAAA,CAAAA,OAAOX,CAAyB,CAAA,ICAtC,IAAaY,IAAW,IAAA,CAAlB,IAAOA,CAAAA,CAAP,MAAOA,CAAW,CACpBpgI,WAAAA,CACYi7B,EACAD,CACAw0D,CAAAA,CAAAA,CACA3iD,CAA4B,CAAA,CAH5B,IAAA5R,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAAD,KAAAA,CACA,CAAA,IAAA,CAAAw0D,MAAAA,CAAAA,CAAAA,CACA,KAAA3iD,aAAAA,CAAAA,CAAAA,CAGZ,IAAAwzF,CAAAA,WAAAA,CAAmB,EAEX,CAAA,IAAA,CAAAxgC,SAAY,CAAA,IAAIt7D,IAAyB,CAAA,CAAA,CAAK,CAC9C,CAAA,IAAA,CAAA4b,SAAW,IAAI5b,IAAAA,CAAqB,IAAK87F,CAAAA,WAAW,CAC5D,CAAA,IAAA,CAAApnE,uBAA+C,CAAA,IAAA,CAAK4mC,UAAUp7D,YAAY,GANvE,CAQH67F,oBAAAA,CAAqBzgC,CAAkB,CAAA,CACnC,IAAKA,CAAAA,SAAAA,CAAUhkF,KAAKgkF,CAAS,EACjC,CAEA1U,UAAAA,CAAWhrC,EAAa,CACpBA,CAAAA,CAASogF,cAAiB,CAAA,CAAA,CAAA,CAC1B,KAAKzlG,SAAY,CAAA,IAAA,CAAK00D,MAAO1hC,CAAAA,IAAAA,CAAK8wC,EAA4B,CAAA,CAC1D7xD,KAAO,CAAA,IAAA,CAAKF,cAAc2zF,WAAW,EAAA,CAAK,IAC1CzlG,CAAAA,IAAAA,CAAMolB,CACT,CAAA,EACL,CAEA4xD,WAAAA,EAAW,CACH,IAAKj3E,CAAAA,SAAAA,EACL,IAAKA,CAAAA,SAAAA,CAAUU,KAAK,GAE5B,CAEAilG,YAAAA,CAAa1lG,EAAS,CAClB,IAAA,CAAKolB,QAAStkC,CAAAA,IAAAA,CAAKkf,CAAI,EAC3B,CAEA2lG,gCAAAA,CAAiCzkE,EAAoB,CACjD,IAAM0kE,CAAyB,CAAA,IAAA,CAAKC,yBAA0B,CAAA,IAAA,CAAKC,WAAW,EAAE,EAChF,GAAIF,CAAAA,CAAwB,CACxB,IAAMhF,CAAiBtsE,CAAAA,IAAAA,CAAKC,KAAMqxE,CAAAA,CAAsB,EACxD,GAAIhF,CAAAA,CAAe1/D,CAAY,CAAA,EAAK0/D,CAAe1/D,CAAAA,CAAY,CAAE3b,CAAAA,KAAAA,EAASq7E,EAAe1/D,CAAY,CAAA,CAAE3b,KAAMx3C,CAAAA,MAAAA,CAAS,EAClH,OAAO,IAAA,CAAKg4H,uBAAwBnF,CAAAA,CAAAA,CAAe1/D,CAAY,CAAE3b,CAAAA,KAAK,CAE9E,CACA,OAAO,IACX,CAEAygF,mBAAAA,CAAoBj8F,EAAW,CAC3B,IAAMk8F,CAAuB,CAAA,IAAA,CAAKC,uBAAwBn8F,CAAAA,CAAAA,CAAS,eAAe,CAAA,CAClF,OAAIk8F,CACO3xE,CAAAA,IAAAA,CAAKC,KAAM0xE,CAAAA,CAAoB,CAEnC,CAAA,IACX,CAEAF,uBAAAA,CAAwB15D,EAAc,CAClC,IAAM5U,CAAmB,CAAA,CACrB0uE,oBAAqB,IACrBC,CAAAA,+BAAAA,CAAiC,IAE/BC,CAAAA,CAAAA,CAAAA,CAA2B,EAC3BC,CAAAA,CAAAA,CAA0C,EAAA,CAChDj6D,OAAAA,CAAAA,CAAQzoB,OAAS7Z,CAAAA,CAAAA,EAAkB,CAC/B,IAAMk8F,CAAAA,CAAuB,IAAKC,CAAAA,uBAAAA,CAAwBn8F,CAAS,CAAA,eAAe,CAC9Ek8F,CAAAA,CAAAA,CACAI,EAAkB7+E,IAAKy+E,CAAAA,CAAoB,CAE3CK,CAAAA,CAAAA,CAA8B9+E,IAAKzd,CAAAA,CAAM,EAEjD,CAAC,EACD0tB,CAAY0uE,CAAAA,mBAAAA,CAAsBE,CAClC5uE,CAAAA,CAAAA,CAAY2uE,gCAAkCE,CACvC7uE,CAAAA,CACX,CAEAquE,WAAAA,EAAW,CACP,OAAI,IAAA,CAAK7lG,IAAKkR,CAAAA,eAAAA,CACH,wBAA2B,CAAA,IAAA,CAAKjR,IAAKsB,CAAAA,IAAAA,CAAO,IAAM,IAAKvB,CAAAA,IAAAA,CAAKk1B,QAE5D,CAAA,wBAAA,CAA2B,IAAKj1B,CAAAA,IAAAA,CAAKsB,IAEpD,CAEAqkG,0BAA0BryI,CAAW,CAAA,CACjC,GAAI,CACA,OAAO+iE,cAAAA,CAAenC,OAAQ5gE,CAAAA,CAAG,CACrC,CAAgB,KAAA,CAEZ,OAAO,IACX,CACJ,CAEA0yI,uBAAwB1yI,CAAAA,CAAAA,CAAW,CAC/B,GAAI,CACA,OAAO2gE,YAAAA,CAAaC,OAAQ5gE,CAAAA,CAAG,CACnC,CAAA,KAAgB,CACZ,OAAO,IACX,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAlGS6xI,CAAWpxG,EAAAA,GAAAA,CAAAkP,GAAA,CAAA,CAAAlP,IAAAiP,GAAA,CAAA,CAAAjP,GAAA2sE,CAAAA,IAAA,CAAA3sE,CAAAA,GAAAA,CAAAykB,IAAA,CAAA,CAAA,CAAX2sF,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAWrzI,OAAXqzI,CAAAA,CAAAA,CAAW96F,UAAAC,UAFR,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAO66F,CAAPkB,CAAAA,CAAAA,CAAAA,OAAOlB,CAAW,CAAA,ICuFlB,IAAOmB,EAAP,CAAA,KAAqC,EAK9BC,CAAAA,EAAAA,CAAP,KAA8B,EAKvBC,CAAAA,EAAAA,CAAP,KAAqB,GAQdC,EAAP,CAAA,KAA+B,EAAA,CAKxBC,EAAP,CAAA,KAAuB,OAYhBC,EAAP,CAAA,KAAwB,CAO1B5hI,WAAAA,EAAA,CACI,IAAK6hI,CAAAA,IAAAA,CAAO,IAAI1gG,IACpB,GAES2gG,EAAP,CAAA,KAAoB,EAAA,CASbC,EAAP,CAAA,KAAoC,EAAA,CAM7BC,GAAP,KAAwB,EAIjBC,CAAAA,EAAAA,CAAP,KAA+B,GCvIrC,IAAaC,IAAoB,IAAA,CAA3B,IAAOA,CAAAA,CAAP,MAAOA,CAAoB,CA2C7BliI,WAAAA,CACYwgE,EACA9nB,CACAge,CAAAA,CAAAA,CACAr7B,CACAL,CAAAA,CAAAA,CAAiB,CAJjB,IAAAwlC,CAAAA,QAAAA,CAAAA,CACA,CAAA,IAAA,CAAA9nB,IAAAA,CACA,CAAA,IAAA,CAAAge,YAAAA,CAAAA,CAAAA,CACA,IAAAr7B,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAL,KAAAA,CAzCZ,CAAA,IAAA,CAAAmnG,cAA0B,CAAA,CAAA,CAAA,CAC1B,IAAA1kC,CAAAA,SAAAA,CAAoB,OACpB,CAAA,IAAA,CAAA2kC,YAAuB,CACvB,CAAA,CAAA,IAAA,CAAAC,aAAyB,CAAA,CAAA,CAAA,CACzB,IAAAC,CAAAA,oBAAAA,CAAgC,CAChC,CAAA,CAAA,IAAA,CAAAC,yBAAiD,EAAA,CACjD,IAAAC,CAAAA,yCAAAA,CAAkF,EAClF,CAAA,IAAA,CAAAC,wBAAiE,CAAA,GACjE,IAAAC,CAAAA,gBAAAA,CAAyD,EAAA,CACzD,IAAAC,CAAAA,oBAAAA,CAA6D,EAAA,CACrD,KAAAC,4BAA+B,CAAA,IAAIr+F,IAAqB,CAAA,IAAI,CACpE,CAAA,IAAA,CAAAs+F,sBAA8C,CAAA,IAAA,CAAKD,6BAA6Bn+F,YAAY,EAAA,CACpF,IAAAq+F,CAAAA,6BAAAA,CAAgC,IAAIhoD,EAAAA,CAC5C,IAAAioD,CAAAA,uBAAAA,CAA8C,KAAKD,6BAA8Br+F,CAAAA,YAAAA,EACzE,CAAA,IAAA,CAAAqxF,eAAiB,IAAIvxF,IAAAA,CAAyB,CAAK,CAAA,CAAA,CAEnD,KAAAy+F,iCAAoC,CAAA,IAAIz+F,IAAqB,CAAA,IAAI,CACzE,CAAA,IAAA,CAAA0+F,2BAAmD,CAAA,IAAA,CAAKD,kCAAkCv+F,YAAY,EAAA,CACtG,IAAAy+F,CAAAA,0BAAAA,CAA6B,IAAI3+F,IAAAA,CAAqB,IAAI,CAAA,CAC1D,KAAA4+F,oBAA4C,CAAA,IAAA,CAAKD,0BAA2Bz+F,CAAAA,YAAAA,EAC5E,CAAA,IAAA,CAAA2+F,yBAA4B,CAAA,IAAI7+F,KAAwB,EAAE,CAAA,CAC1D,IAAA8+F,CAAAA,mBAAAA,CAA0C,KAAKD,yBAA0B3+F,CAAAA,YAAAA,EACzE,CAAA,IAAA,CAAA6+F,yBAA2B,IAAI/+F,IAAAA,CAAqB,IAAI,CAAA,CACxD,IAAAg/F,CAAAA,kBAAAA,CAA0C,IAAKD,CAAAA,wBAAAA,CAAyB7+F,cAKhE,CAAA,IAAA,CAAAuxF,SAAY,CAAA,IAAIzxF,IAAyB,CAAA,CAAA,CAAK,CAE9C,CAAA,IAAA,CAAAi/F,iBAAmB,IAAIj/F,IAAAA,CAAyB,CAAK,CAAA,CAAA,CACrD,IAAAk/F,CAAAA,6BAAAA,CAAgC,IAAIl/F,IAAAA,CAAyB,EAAK,CAClE,CAAA,IAAA,CAAAm/F,8BAAiC,CAAA,IAAIn/F,KAAyB,CAAK,CAAA,CAAA,CACnE,IAAAo/F,CAAAA,oBAAAA,CAAuB,IAAIp/F,IAAyB,CAAA,CAAA,CAAK,CAU7D,CAAA,IAAA,CAAKq/F,yBAA4B,CAAA,IAAA,CAAKvoG,qBAAsBwoG,CAAAA,gCAAAA,GAC5D,IAAK97G,CAAAA,UAAAA,CAAa,IAAKiuG,CAAAA,SAAAA,CAAUvxF,YAAY,EAAA,CAC7C,IAAKq/F,CAAAA,iBAAAA,CAAoB,KAAKN,gBAAiB/+F,CAAAA,YAAAA,EAC/C,CAAA,IAAA,CAAKs/F,8BAAiC,CAAA,IAAA,CAAKN,6BAA8Bh/F,CAAAA,YAAAA,GACzE,IAAKu/F,CAAAA,+BAAAA,CAAkC,IAAKN,CAAAA,8BAAAA,CAA+Bj/F,YAAY,EAAA,CACvF,IAAKw/F,CAAAA,qBAAAA,CAAwB,KAAKN,oBAAqBl/F,CAAAA,YAAAA,EACvD,CAAA,IAAA,CAAK8xF,eAAkB,CAAA,IAAA,CAAKT,cAAerxF,CAAAA,YAAAA,GAC/C,CAEA,IAAIwjC,MAAM,EAAA,CACN,OAAO,IAAA,CAAK27D,yBAChB,CACA,IAAIM,qBAAqB,EAAA,CACrB,OAAO,IAAA,CAAKC,SAChB,CACA,IAAIC,oBAAAA,EAAoB,CACpB,OAAO,IAAA,CAAKC,wBAChB,CACA,IAAIC,kBAAkB,EAAA,CAClB,OAAO,IAAA,CAAKC,kBAChB,CACA,IAAIC,wBAAwB,EAAA,CACxB,OAAO,IAAA,CAAKC,oBAChB,CACA,IAAIC,6BAA6B,EAAA,CAC7B,OAAO,IAAA,CAAKnC,wBAChB,CACA,IAAIoC,8CAAAA,EAA8C,CAC9C,OAAO,IAAA,CAAKnC,yCAChB,CACA,IAAIoC,sBAAAA,EAAsB,CACtB,OAAO,KAAKnC,wBAChB,CACA,IAAIoC,0BAAAA,EAA0B,CAC1B,OAAO,IAAA,CAAKC,uBAChB,CACAC,iBAAiBC,CAA4B51G,CAAAA,CAAAA,CAAiB61G,CAAmB,CAAA,CAC7E,IAAKvsF,CAAAA,GAAAA,CACAkD,IACG,CAAA,sCAAA,CACA,CAAEopF,kBAAoBA,CAAAA,CAAAA,CAAoB51G,OAASA,CAAAA,CAAAA,CAAS61G,WAAaA,CAAAA,CAAW,CACpF,CAAA,CAAEl7C,aAAc,MAAQ/tC,CAAAA,eAAAA,CAAiB,CAAM2H,CAAAA,CAAAA,WAAAA,CAAa,CAAK,CAAA,CAAE,CAEtEt9B,CAAAA,SAAAA,CAAU,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAiB,CACpB,GAAIA,EAAU,CACV,IAAA,CAAK+mF,SAAY/mF,CAAAA,CAAAA,CAAS8nF,cAC1B,IAAInqG,CAAAA,CAAY,EAAA,CACZ,IAAKC,CAAAA,IAAAA,CAAKkR,eACVnR,CAAAA,CAAAA,CAAO,CAAEoqG,YAAc,CAAA,CAAA,CAAI,CAE3BpqG,CAAAA,CAAAA,CAAO,CAAEoqG,YAAAA,CAAc,CAAK,CAAA,CAAA,CAEhC,KAAKnP,SAAUn6G,CAAAA,IAAAA,CAAKkf,CAAI,EAC5B,CACJ,CAAA,CACArzB,KAAQA,CAAAA,CAAAA,EAAiB,CACrB,IAAMlT,CAAAA,CAAmB,CACrBqtH,IAAAA,CAAMn6G,CACN9O,CAAAA,IAAAA,CAAMsrD,EAAY2yE,CAAAA,KAAAA,CAClB7U,SAAU59D,IAAgBqjC,CAAAA,MAAAA,CAC1Bw6B,KAAO,CAAA,iBAAA,CAAA,CAEX,IAAKvrD,CAAAA,YAAAA,CAAap0D,GAAI9N,CAAAA,CAAO,EACjC,CACH,CAAA,EACT,CACA4wI,iBAAAA,CAAkBC,CAA0B,CAAA,CACxC,IAAK3sF,CAAAA,GAAAA,CACAkD,KACG,uCACA,CAAA,CAAEopF,kBAAoBK,CAAAA,CAAkB,CACxC,CAAA,CAAEt7C,YAAc,CAAA,MAAA,CAAQ/tC,gBAAiB,CAAM2H,CAAAA,CAAAA,WAAAA,CAAa,CAAK,CAAA,CAAE,EAEtEt9B,SAAU,CAAA,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAqC,CACpCA,CACA,GAAA,IAAA,CAAKmnF,kBAAqBnnF,CAAAA,CAAAA,CAASkoF,uBACnC,CAAA,IAAA,CAAK9B,gBAAiB3nH,CAAAA,IAAAA,CAAK,EAAI,CAEvC,EAAA,CAAA,CACAnU,KAAQA,CAAAA,CAAAA,EAAiB,CACrB,IAAMlT,CAAmB,CAAA,CACrBqtH,KAAMn6G,CACN9O,CAAAA,IAAAA,CAAMsrD,EAAY2yE,CAAAA,KAAAA,CAClB7U,QAAU59D,CAAAA,IAAAA,CAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,mBAEX,IAAKvrD,CAAAA,YAAAA,CAAap0D,GAAI9N,CAAAA,CAAO,EACjC,CACH,CAAA,EACT,CACA+wI,cAAAA,CAAe3sI,EAAcunB,CAAYqlH,CAAAA,CAAAA,CAAgB91H,CAAc,CAAA,CACnE,IAAKgpC,CAAAA,GAAAA,CACAlpB,GACG,CAAA,0BAAA,CACA,CAAE52B,IAAMA,CAAAA,CAAAA,CAAMunB,EAAIA,CAAAA,CAAAA,CAAIqlH,KAAOA,CAAAA,CAAAA,CAAO91H,MAAQA,CAAAA,CAAM,EAClD,CAAEq6E,YAAAA,CAAc,MAAQ/tC,CAAAA,eAAAA,CAAiB,CAAM2H,CAAAA,CAAAA,WAAAA,CAAa,CAAK,CAAA,CAAE,EAEtEt9B,SAAU,CAAA,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAiB,CAChBA,CACA,GAAA,IAAA,CAAKinF,wBAA2BjnF,CAAAA,CAAAA,CAChC,KAAK04E,cAAej6G,CAAAA,IAAAA,CAAK,CAAI,CAAA,CAAA,EAErC,CACAnU,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAMlT,CAAmB,CAAA,CACrBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,KAClB7U,CAAAA,QAAAA,CAAU59D,KAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,iBAEX,CAAA,CAAA,IAAA,CAAKvrD,YAAap0D,CAAAA,GAAAA,CAAI9N,CAAO,EACjC,EACH,EACT,CAEAixI,oBAAqBC,CAAAA,CAAAA,CAAgD,CACjE,IAAA,CAAKhtF,GACAkD,CAAAA,IAAAA,CAAK,4CAA6C8pF,CAAyB,CAAA,CACxE37C,YAAc,CAAA,MAAA,CACd/tC,eAAiB,CAAA,CAAA,CAAA,CACjB2H,WAAa,CAAA,CAAA,CAAA,CAChB,EACAt9B,SAAU,CAAA,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAiB,CAChBA,CAAAA,EACA,IAAKqmF,CAAAA,6BAAAA,CAA8B5nH,KAAK,CAAI,CAAA,EAEpD,CACAnU,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAMlT,CAAAA,CAAmB,CACrBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,MAClB7U,QAAU59D,CAAAA,IAAAA,CAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,mBAEX,IAAKvrD,CAAAA,YAAAA,CAAap0D,GAAI9N,CAAAA,CAAO,EACjC,CAAA,CACH,EACT,CACAmxI,sBAAsBC,CAAoDC,CAAAA,CAAAA,CAAsB,CAC5F,IAAA,CAAKntF,GACAkD,CAAAA,IAAAA,CAAK,+CAAiDgqF,CAAAA,CAAAA,CAA0B,CAC7E77C,YAAc,CAAA,MAAA,CACd/tC,eAAiB,CAAA,CAAA,CAAA,CACjB2H,WAAa,CAAA,CAAA,CAAA,CAChB,CACAt9B,CAAAA,SAAAA,CAAU,CACPxK,IAAOuhC,CAAAA,CAAAA,EAAuC,CAC1C,GAAIA,EAASoD,MAAW,GAAA,QAAA,CACpB,IAAKikF,CAAAA,oBAAAA,CAAuBrnF,EAC5B,IAAKsmF,CAAAA,8BAAAA,CAA+B7nH,IAAK,CAAA,CAAA,CAAI,CAC7C,CAAA,IAAA,CAAK2oH,wBAAyBpnF,CAAAA,QAAAA,CAASuB,QAASmnF,CAAgB,EAAA,CAC5D,IAAMC,CAAAA,CAAkB,IAAI1iG,IAAAA,EAAOE,CAAAA,OAAAA,GAAY,GACzCyiG,CAAAA,CAAAA,CAA+D,IAAIjE,EAAAA,CACzEiE,CAA8B5oF,CAAAA,QAAAA,CAAW,IAAIwkF,EAAAA,CAC7CoE,EAA8B5oF,QAAS6oF,CAAAA,GAAAA,CAAMH,CAAaG,CAAAA,GAAAA,CAC1DD,EAA8B5oF,QAAS8oF,CAAAA,MAAAA,CAASJ,CAAaI,CAAAA,MAAAA,CAC7DF,EAA8B5oF,QAAS+oF,CAAAA,MAAAA,CAASL,CAAaK,CAAAA,MAAAA,CAC7DH,CAA8B5oF,CAAAA,QAAAA,CAASykF,IAAOiE,CAAAA,CAAAA,CAAajE,KAC3DmE,CAA8BI,CAAAA,UAAAA,CAAazlF,IAAK0lF,CAAAA,KAAAA,CAAMN,CAAkBF,CAAAA,CAAAA,CAAiB,EAAE,CAAA,CAC3FG,EAA8BM,MAAS,CAAA,IAAA,CAAK9B,wBAAyB+B,CAAAA,GAAAA,CACrE,IAAKC,CAAAA,oBAAAA,CAAqBR,CAA6B,EAC3D,CAAC,CACE,CAAA,KAAA,CACH,IAAMxxI,CAAAA,CAAmB,CACrBqtH,IAAM,CAAA,QAAA,CACNjpH,IAAMsrD,CAAAA,EAAAA,CAAY2yE,MAClB7U,QAAU59D,CAAAA,IAAAA,CAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,iBAEX,CAAA,CAAA,IAAA,CAAKqhB,wBAAyBznH,CAAAA,IAAAA,CAAKrnB,CAAO,EAC9C,CACJ,CACAkT,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAIlT,CAAAA,CAAmB,CACnBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,KAClB7U,CAAAA,QAAAA,CAAU59D,IAAgBqjC,CAAAA,MAAAA,CAC1Bw6B,MAAO,iBAEX,CAAA,CAAA,IAAA,CAAKvrD,YAAap0D,CAAAA,GAAAA,CAAI9N,CAAO,CAC7B,CAAA,IAAA,CAAK8uI,wBAAyBznH,CAAAA,IAAAA,CAAKrnB,CAAO,EAC9C,CAAA,CACH,EACT,CACAiyI,gCACI/iE,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACA2iE,CACA/Q,CAAAA,CAAAA,CAAkB,CAElB,IAAA,CAAKn1D,QAASrqB,CAAAA,YAAAA,CAAa,iBAAkB,CACzC,yBAAA,CAA2ButB,CAC3B,CAAA,sBAAA,CAAwBC,CACxB,CAAA,uBAAA,CAAyBC,CACzB,CAAA,yBAAA,CAA2BC,EAC3B,yBAA2BC,CAAAA,CAAAA,CAC3B,wBAA0BC,CAAAA,CAAAA,CAC1B,4BAA6B2iE,CAC7B,CAAA,sBAAA,CAAwB/Q,CAC3B,CAAA,EACL,CACAgR,UAAWC,CAAAA,CAAAA,CAA0B,CACjC,IAAA,CAAKxE,WAAcwE,CAAAA,CAAAA,CACnB,IAAK1D,CAAAA,0BAAAA,CAA2BrnH,KAAK+qH,CAAiB,EAC1D,CACAC,UAAAA,EAAU,CACN,IAAIC,CAA0B7pG,CAAAA,QAAAA,CAASC,eAAe,0BAA0B,CAAA,CAC5E6pG,CAA2B,CAAA,EAC1BD,CAAAA,CAAAA,GAAOC,CAAS9pG,CAAAA,QAAAA,CAASq8D,cAAc,qCAAqC,CAAA,CAAA,CAC7EwtC,CACKA,CAAAA,CAAAA,CAAME,QACPF,CAAMG,CAAAA,KAAAA,EAEHF,CAAAA,CAAAA,GACFA,EAAOC,MACRD,EAAAA,CAAAA,CAAOE,KAAK,EAAA,EAGxB,CACAC,SAAAA,EAAS,CACL,IAAIJ,EAA0B7pG,QAASC,CAAAA,cAAAA,CAAe,0BAA0B,CAAA,CAC5E6pG,CAA2B,CAAA,EAC1BD,CAAAA,CAAAA,GAAOC,EAAS9pG,QAASq8D,CAAAA,aAAAA,CAAc,qCAAqC,CAAA,CAAA,CAC7EwtC,CACIA,CAAAA,CAAAA,CAAME,MAAQF,EAAAA,CAAAA,CAAMK,MACjBJ,CAAAA,CAAAA,EACHA,CAAOC,CAAAA,MAAAA,EAAQD,CAAOI,CAAAA,IAAAA,GAElC,CACAC,iCAAiCtC,CAAuD,CAAA,CACpF,IAAKA,CAAAA,uBAAAA,CAA0BA,EACnC,CACAuC,yBAA0BC,CAAAA,CAAAA,CAAwB,CAC9C,IAAK/E,CAAAA,wBAAAA,CAAyBhgF,IAAK+kF,CAAAA,CAAS,EAChD,CACAC,mCAAoCvB,CAAAA,CAAAA,CAA4D,CAC5F,IAAKxD,CAAAA,yCAAAA,CAA0CjgF,IAAKyjF,CAAAA,CAA6B,CACjF10E,CAAAA,cAAAA,CAAe/B,OAAQ,CAAA,uCAAA,CAAyCF,KAAKG,SAAU,CAAA,IAAA,CAAKgzE,yCAAyC,CAAC,EAClI,CACAgE,oBAAAA,CAAqBR,CAA4D,CAAA,CAC7E,KAAK1D,oBAAuB,CAAA,CAAA,CAAA,CAC5B,IAAKG,CAAAA,wBAAAA,CAAyBlgF,IAAKyjF,CAAAA,CAA6B,CAChE,CAAA,IAAA,CAAKtD,iBAAmB,IAAKD,CAAAA,wBAAAA,CAAyB1sI,MACjDzD,CAAAA,CAAAA,EACGA,CAAEg0I,CAAAA,MAAAA,GAAWN,CAA8BM,CAAAA,MAAAA,EAC3Ch0I,EAAE8qD,QAAS6oF,CAAAA,GAAAA,GAAQD,CAA8B5oF,CAAAA,QAAAA,CAAS6oF,GAC1D3zI,EAAAA,CAAAA,CAAE8qD,QAAS8oF,CAAAA,MAAAA,GAAWF,EAA8B5oF,QAAS8oF,CAAAA,MAAM,CAE3E,CAAA,IAAA,CAAKvD,qBAAuB,IAAKF,CAAAA,wBAAAA,CAAyB1sI,MACrDzD,CAAAA,CAAAA,EACGA,EAAEg0I,MAAWN,GAAAA,CAAAA,CAA8BM,MAC3Ch0I,EAAAA,CAAAA,CAAE8qD,QAAS6oF,CAAAA,GAAAA,GAAQD,CAA8B5oF,CAAAA,QAAAA,CAAS6oF,KAC1D3zI,CAAE8qD,CAAAA,QAAAA,CAAS8oF,MAAWF,GAAAA,CAAAA,CAA8B5oF,QAAS8oF,CAAAA,MAAAA,EAC7D5zI,CAAE8qD,CAAAA,QAAAA,CAAS+oF,SAAW11F,KAAS,CAAA,CAAA,CAEnC,IAAKiyF,CAAAA,gBAAAA,CAAiB55H,MAAS,CAAA,CAAA,EAAK,IAAK65H,CAAAA,oBAAAA,CAAqB75H,QAAU,CACxE,CAAA,IAAA,CAAK45H,gBAAiB/jF,CAAAA,OAAAA,CAAS6oF,GAAY,CACnC,CAAC,IAAKlF,CAAAA,oBAAAA,EAAwBkF,EAASpqF,QAAS+oF,CAAAA,MAAAA,GAAW11F,KAC3D,CAAA,GAAA,IAAA,CAAKgyF,wBAAyBjgF,CAAAA,MAAAA,CAAO,IAAKigF,CAAAA,wBAAAA,CAAyB/5F,QAAQ8+F,CAAQ,CAAA,CAAG,CAAC,CAAA,CACvF,IAAKlF,CAAAA,oBAAAA,CAAuB,CAEpC,CAAA,EAAA,CAAC,EACM,IAAKI,CAAAA,gBAAAA,CAAiB55H,MAAS,CAAA,CAAA,EACtC,IAAK45H,CAAAA,gBAAAA,CAAiB/jF,OAAS6oF,CAAAA,CAAAA,EAAY,CAClC,IAAKlF,CAAAA,oBAAAA,GACN,IAAKG,CAAAA,wBAAAA,CAAyBjgF,MAAO,CAAA,IAAA,CAAKigF,wBAAyB/5F,CAAAA,OAAAA,CAAQ8+F,CAAQ,CAAG,CAAA,CAAC,CACvF,CAAA,IAAA,CAAKlF,oBAAuB,CAAA,CAAA,CAAA,EAEpC,CAAC,CAAA,CAELhxE,eAAe/B,OAAQ,CAAA,wCAAA,CAA0CF,IAAKG,CAAAA,SAAAA,CAAU,IAAKizE,CAAAA,wBAAwB,CAAC,EAClH,CACAgF,kBAAmBC,CAAAA,CAAAA,CAAuB,CACtC,IAAA,CAAK9E,4BAA6B/mH,CAAAA,IAAAA,CAAK6rH,CAAc,EACzD,CACAC,mBAAoBC,CAAAA,CAAAA,CAAqB,CACrC,IAAA,CAAK9E,8BAA8BjnH,IAAK+rH,CAAAA,CAAa,EACzD,CACAC,kBAAkBC,CAAsB,CAAA,CACpC,IAAK9E,CAAAA,iCAAAA,CAAkCnnH,IAAKisH,CAAAA,CAAiB,EACjE,CACAC,8BAA8BC,CAA+D,CAAA,CACrF,IAAKhtG,CAAAA,IAAAA,CAAKkR,eACVgjB,CAAAA,YAAAA,CAAaK,OAAQ,CAAA,iCAAA,CAAoC,KAAKv0B,IAAKk1B,CAAAA,QAAAA,CAAUb,IAAKG,CAAAA,SAAAA,CAAUw4E,CAA8B,CAAC,CAE3H94E,CAAAA,YAAAA,CAAaK,QAAQ,gCAAkCF,CAAAA,IAAAA,CAAKG,SAAUw4E,CAAAA,CAA8B,CAAC,EAE7G,CACAC,4BAA4B,EAAA,CACxB,IAAIC,CACJ,CAAA,OAAI,IAAKltG,CAAAA,IAAAA,CAAKkR,eACVg8F,CAAAA,CAAAA,CAAqC74E,IAAKC,CAAAA,KAAAA,CAAMJ,aAAaC,OAAQ,CAAA,iCAAA,CAAoC,IAAKn0B,CAAAA,IAAAA,CAAKk1B,QAAQ,CAAE,CAE7Hg4E,CAAAA,CAAAA,CAAqC74E,KAAKC,KAAMJ,CAAAA,YAAAA,CAAaC,OAAQ,CAAA,gCAAgC,CAAE,CAAA,CAEpG+4E,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAlWShG,GAAoBlzG,GAAAi1C,CAAAA,IAAA,CAAAj1C,CAAAA,GAAAA,CAAAwU,EAAA,CAAAxU,CAAAA,GAAAA,CAAA41B,IAAA,CAAA,CAAA51B,IAAAsP,GAAA,CAAA,CAAAtP,GAAAiP,CAAAA,GAAA,CAAA,CAAA,CAApBikG,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAoBn1I,QAApBm1I,CAAoB58F,CAAAA,SAAAA,CAAAC,UAFjB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAO28F,CAAAA,CAAPiG,SAAOjG,CAAoB,CAAA,ICnBjC,IAAakG,EAAuB,CAAA,CAAA,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAYhCpoI,WAAAA,CAAoB27D,CAAsC,CAAA,CAAtC,IAAAA,CAAAA,kBAAAA,CAAAA,EAXpB,IAAA0sE,CAAAA,wBAAAA,CAA6C,IAAIlnG,GAAAA,CACjD,IAAAmnG,CAAAA,YAAAA,CAAiC,IAAInnG,GAAAA,CACrC,KAAA04D,SAA8B,CAAA,IAAI14D,GAClC,CAAA,IAAA,CAAAonG,iBAAsC,CAAA,IAAIpnG,GAC1C,CAAA,IAAA,CAAAqnG,kBAAsC,IAAIrnG,GAAAA,CAC1C,IAAAsnG,CAAAA,wBAAAA,CAA6C,IAAItnG,GAAAA,CACjD,IAAAunG,CAAAA,eAAAA,CAAoC,IAAIvnG,GAChC,CAAA,IAAA,CAAAwnG,gBAAqC,CAAA,IAAIxnG,IACzC,IAAAynG,CAAAA,uBAAAA,CAA0B,IAAIrkG,IAAAA,CAAqB,IAAI,CAC/D,CAAA,IAAA,CAAAskG,iCAAqD,CAAA,IAAA,CAAKD,uBAAwBnkG,CAAAA,YAAAA,GAErB,CAE7D26F,WAAS,EAET0J,2BAA4B35F,CAAAA,CAAAA,CAAmB45F,CAAqBC,CAAAA,CAAAA,CAAoB,CACpF,IAAMz6I,EAAM4gD,CAAY,CAAA,GAAA,CAAM45F,CAAc,CAAA,GAAA,CAC5C,IAAKV,CAAAA,wBAAAA,CAAyBviI,GAAIvX,CAAAA,CAAAA,CAAKy6I,CAAe,EAC1D,CAEAC,2BAA4B16I,CAAAA,CAAAA,CAAW,CACnC,OAAO,IAAA,CAAK85I,wBAAyB74G,CAAAA,GAAAA,CAAIjhC,CAAG,CAChD,CAEA26I,sBAAuB/5F,CAAAA,CAAAA,CAAmB45F,CAAqBT,CAAAA,CAAAA,CAAiB,CAC5E,IAAM/5I,EAAM4gD,CAAY,CAAA,GAAA,CAAM45F,CAAc,CAAA,GAAA,CAC5C,IAAKT,CAAAA,YAAAA,CAAaxiI,GAAIvX,CAAAA,CAAAA,CAAK+5I,CAAY,EAC3C,CAEAa,sBAAuB56I,CAAAA,CAAAA,CAAW,CAC9B,OAAO,IAAK+5I,CAAAA,YAAAA,CAAa94G,IAAIjhC,CAAG,CACpC,CAEA66I,0BAAAA,CAA2Bj6F,EAAmB45F,CAAqBR,CAAAA,CAAAA,CAAsB,CACrF,IAAMh6I,EAAM4gD,CAAY,CAAA,GAAA,CAAM45F,CAAc,CAAA,GAAA,CAC5C,IAAKR,CAAAA,iBAAAA,CAAkBziI,GAAIvX,CAAAA,CAAAA,CAAKg6I,CAAiB,EACrD,CAEAc,0BAA2B96I,CAAAA,CAAAA,CAAW,CAClC,OAAO,IAAKg6I,CAAAA,iBAAAA,CAAkB/4G,IAAIjhC,CAAG,CACzC,CACA+6I,0BAAAA,CAA2Bn6F,CAAmB45F,CAAAA,CAAAA,CAAqBT,CAAiB,CAAA,CAChF,IAAI/5I,CAAM4gD,CAAAA,CAAAA,CAAY,GAAM45F,CAAAA,CAAAA,CAAc,IAC1C,IAAKP,CAAAA,iBAAAA,CAAkB1iI,GAAIvX,CAAAA,CAAAA,CAAK+5I,CAAY,EAChD,CACAiB,0BAA2Bh7I,CAAAA,CAAAA,CAAW,CAClC,OAAO,IAAKi6I,CAAAA,iBAAAA,CAAkBh5G,IAAIjhC,CAAG,CACzC,CACAi7I,iCAAAA,CAAkCr6F,CAAmB45F,CAAAA,CAAAA,CAAqBN,CAA6B,CAAA,CACnG,IAAIl6I,CAAM4gD,CAAAA,CAAAA,CAAY,GAAM45F,CAAAA,CAAAA,CAAc,GAC1C,CAAA,IAAA,CAAKN,wBAA0B3iI,EAAAA,GAAAA,CAAIvX,EAAKk6I,CAAwB,EACpE,CACAgB,iCAAAA,CAAkCl7I,EAAW,CACzC,OAAO,IAAKk6I,CAAAA,wBAAAA,EAA0Bj5G,IAAIjhC,CAAG,CACjD,CACAm7I,4BAAAA,CAA6Bv6F,CAAmB45F,CAAAA,CAAAA,CAAqBlvC,CAAc,CAAA,CAC/E,IAAMtrG,CAAM4gD,CAAAA,CAAAA,CAAY,GAAM45F,CAAAA,CAAAA,CAAc,GAC5C,CAAA,IAAA,CAAKlvC,SAAU/zF,CAAAA,GAAAA,CAAIvX,EAAKsrG,CAAS,CAAA,CACjC,IAAKl+B,CAAAA,kBAAAA,CAAmB+tE,4BAA6Bn7I,CAAAA,CAAAA,CAAKsrG,CAAS,EACvE,CAEM8vC,yCAA0Cp7I,CAAAA,CAAAA,CAAW,CAAAo/D,OAAAA,GAAAA,CAAA,sBAEvD,OADuB,MAAM,IAAKgO,CAAAA,kBAAAA,CAAmBguE,0CAA0Cp7I,CAAG,CAEtG,CAEAq7I,CAAAA,CAAAA,kBAAAA,CAAmBC,CAAsB16F,CAAAA,CAAAA,CAAmB45F,CAAmB,CAAA,CAC3E,IAAMx6I,CAAM4gD,CAAAA,CAAAA,CAAY,GAAM45F,CAAAA,CAAAA,CAAc,GAC5C,CAAA,IAAA,CAAKL,eAAgB5iI,CAAAA,GAAAA,CAAIvX,EAAKs7I,CAAe,EACjD,CACAC,kBAAAA,CAAmBv7I,CAAW,CAAA,CAC1B,OAAO,IAAA,CAAKm6I,gBAAgBl5G,GAAIjhC,CAAAA,CAAG,CACvC,CAEAw7I,iBAAiBC,CAAkB,CAAA,CAC/B,IAAKruE,CAAAA,kBAAAA,CAAmBouE,iBAAiBC,CAAa,EAC1D,CAEAC,mBAAAA,CAAoB96F,CAAmB45F,CAAAA,CAAAA,CAAqBJ,CAAqB,CAAA,CAC7E,IAAMp6I,CAAM4gD,CAAAA,CAAAA,CAAY,GAAM45F,CAAAA,CAAAA,CAAc,GAC5C,CAAA,IAAA,CAAKJ,gBAAiB7iI,CAAAA,GAAAA,CAAIvX,EAAKo6I,CAAgB,CAAA,CAC/C,IAAKC,CAAAA,uBAAAA,CAAwB/sH,IAAK8sH,CAAAA,CAAgB,EACtD,CAEAuB,oBAAoB37I,CAAW,CAAA,CAC3B,OAAO,IAAA,CAAKo6I,gBAAiBn5G,CAAAA,GAAAA,CAAIjhC,CAAG,CACxC,yCAvFS65I,CAAuBp5G,EAAAA,GAAAA,CAAAixC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA/yE,GAAA,CAAA,CAAA,KAAA,CAAvBk7I,CAAuBr7I,CAAAA,OAAAA,CAAvBq7I,EAAuB9iG,SAAAC,CAAAA,UAAAA,CAFpB,MAAM,CAAA,CAEhB,CAAA,IAAO6iG,CAAP+B,CAAAA,CAAAA,CAAAA,OAAO/B,CAAuB,CAAA,ICIvBgC,IAAAA,EAAAA,CAAAA,CAAiB,IAAA,CAAxB,IAAOA,CAAAA,CAAP,MAAOA,CAAiB,CAa1BpqI,WACY04C,CAAAA,CAAAA,CACAm8E,EACA8J,CACAl5E,CAAAA,CAAAA,CACA7M,CAAoC,CAAA,CAJpC,KAAAF,GAAAA,CAAAA,CAAAA,CACA,IAAAm8E,CAAAA,eAAAA,CAAAA,CACA,CAAA,IAAA,CAAA8J,cAAAA,CAAAA,CAAAA,CACA,KAAAl5E,YAAAA,CAAAA,CAAAA,CACA,IAAA7M,CAAAA,iBAAAA,CAAAA,CAjBJ,CAAA,IAAA,CAAAyxF,eAAoC,CAAA,IAAIlpG,IACxC,IAAAmpG,CAAAA,gBAAAA,CAAmB,IAAI/lG,IAAAA,CAAqB,IAAI,CAAA,CACxD,IAAAgmG,CAAAA,uBAAAA,CAA2C,KAAKD,gBAAiB7lG,CAAAA,YAAAA,EACzD,CAAA,IAAA,CAAA+lG,6BAA+B,IAAIjmG,IAAAA,CAAqB,IAAI,CAAA,CACpE,KAAAkmG,+BAAmD,CAAA,IAAA,CAAKD,4BAA6B/lG,CAAAA,YAAAA,EAGrF,CAAA,IAAA,CAAAimG,wBAAoC,CAAA,CAAA,CAAA,CAGpC,KAAAlkF,YAAe,CAAA,EAQZ,CAEH44E,SAAAA,EAAS,CACL,IAAA,CAAKqL,+BAAgCpkH,CAAAA,SAAAA,CAAWskH,GAAkB,CAC1DA,CAAAA,EACA,IAAKC,CAAAA,8BAAAA,GAEb,CAAC,EACL,CAEAA,gCAA8B,CAC1B,IAAA,CAAKpkF,YACL,EAAA,CAAA,IAAMqkF,EAAmB,IAAKlM,CAAAA,cAAAA,CAAemM,uBAAuB,EAAA,CACpE,KAAKC,gCAAmC,CAAA,IAAA,CAAKtlF,YAAaqE,CAAAA,6BAAAA,CAA8B,IAAK,CACpF,IAAKlR,CAAAA,iBAAAA,CAAkBZ,sBAC5B,EAAA,IAAA,CAAKgzF,iBAAkB,CAAA,CAAA,CAAK,EAChC,CAAA,CAAGH,CAAiBI,CAAAA,yBAAyB,EACjD,CAEAD,iBAAAA,CAAkBE,CAA+B,CAAA,CAC7C,IAAMj8I,CAAAA,CAAe,CAAE6sD,OAAAA,CAAS,EAAE,CAAA,CAClC7sD,CAAQ6sD,CAAAA,OAAAA,CAAQ,eAAe,CAAA,CAAI,UACnC7sD,CAAAA,CAAAA,CAAQ6sD,QAAQ,MAAY,CAAA,UAAA,CAC5B7sD,CAAQ6sD,CAAAA,OAAAA,CAAQ,OAAa,CAAA,GAAA,CAC7B,IAAM7C,CAAAA,CAAiB,KAAK0lF,cAAezlF,CAAAA,qBAAAA,EAC3C,CAAA,IAAA,CAAKR,GACAmD,CAAAA,mBAAAA,CAAoB5C,CAAekyF,CAAAA,UAAAA,CAAW,eAAmB,CAAED,sBAAAA,CAAwBA,CAAsB,CAAA,CAAIj8I,CAAO,CAAA,CAC5Ho3B,SACI+2B,CAAAA,CAAAA,EAAiB,CACd,IAAKguF,CAAAA,wBAAAA,CAAyBhuF,CAAU8tF,CAAAA,CAAsB,EAClE,CACA,CAAA,IAAK,EAAG,EAEpB,CAEAE,wBAAAA,CAAyBhuF,CAAe8tF,CAAAA,CAAAA,CAA+B,CAC/D9tF,CAAAA,EAAYA,CAASiuF,CAAAA,sBAAAA,EAA0BjuF,EAASiuF,sBAAuBviI,CAAAA,MAAAA,CAAS,CACxFs0C,GAAAA,CAAAA,CAASiuF,sBAAuB1sF,CAAAA,OAAAA,CAASpuD,CAAa,EAAA,CAC9CA,GAAQA,CAAK6kG,CAAAA,eAAAA,GACT,EAAE7kG,CAAAA,CAAK6nI,QAAY7nI,EAAAA,CAAAA,EAAM6nI,QAAUrwF,EAAAA,WAAAA,KAAkB,WAAgB,CAAA,EAAA,CAACx3C,CAAK+6I,CAAAA,UAAAA,GAC3E/6I,EAAK+6I,UAAa,CAAA,EAEtB,CAAA,CAAA,IAAA,CAAKjB,gBAAgBvkI,GAAIvV,CAAAA,CAAAA,EAAM6kG,eAAiBrtD,EAAAA,WAAAA,EAAex3C,CAAAA,CAAI,CAE3E,EAAA,CAAC,EACG6sD,CAASmuF,CAAAA,6BAAAA,GACT,IAAKC,CAAAA,yBAAAA,CAA4BpuF,CAASmuF,CAAAA,6BAAAA,CAAAA,CAG9C,IAAKjB,CAAAA,gBAAAA,CAAiBzuH,KAAK,IAAKwuH,CAAAA,eAAe,CAC3Ca,CAAAA,CAAAA,GACA,IAAKV,CAAAA,4BAAAA,CAA6B3uH,IAAK,CAAA,IAAA,CAAKwuH,eAAe,CAC3D,CAAA,IAAA,CAAKoB,uBAA0B,CAAA,CAAA,CAAA,CAAA,EAG3C,CACAC,8BAA8B,EAAA,CAC1B,OAAO,IAAA,CAAKD,uBAChB,CAEAE,kBAAAA,EAAkB,CACd,OAAO,IAAKtB,CAAAA,eAChB,CAEAuB,qBAAAA,CAAsB9mG,EAAc,CAChC,GAAI,IAAKulG,CAAAA,eAAAA,CAAgBl/G,IAAO,CAAA,CAAA,CAAG,CAC/B,IAAM0gH,EAAoB,IAAKxB,CAAAA,eAAAA,CAAgB76G,GAAIsV,CAAAA,CAAM,CACzD,CAAA,GAAI+mG,CACAA,CAAAA,OAAAA,EAAaC,UAAaD,CAAAA,CAAAA,CAAaE,UAChCF,CAAAA,CAEf,CACJ,CAEAG,4BAA4B,EAAA,CACxB,OAAO,IAAKR,CAAAA,yBAChB,CAEAS,cAAAA,CAAeJ,CAAiB,CAAA,CAC5B,IAAMjlG,CAAAA,CAAa,KAAK+3F,cAAe93F,CAAAA,iBAAAA,EACjCgkG,CAAAA,CAAAA,CAAmB,IAAKlM,CAAAA,cAAAA,CAAemM,uBAAuB,EAAA,CACpE,OAAIe,CAAgBA,EAAAA,CAAAA,CAAaK,QAAYL,EAAAA,CAAAA,EAAcK,QAAUnkG,EAAAA,WAAAA,EAAiB,EAAA,IAAA,CAC3EnB,EAAWZ,IAAO6kG,CAAAA,CAAAA,CAAiBsB,cAAexvG,CAAAA,OAAAA,CAAQ,aAAckvG,CAAaK,CAAAA,QAAQ,CAE7F,CAAA,EAEf,CAEAE,aAActnG,CAAAA,CAAAA,CAAc,CACxB,IAAM+mG,CAAoB,CAAA,IAAA,CAAKD,qBAAsB9mG,CAAAA,CAAM,EAC3D,GAAI+mG,CAAAA,EAAgBA,CAAczT,EAAAA,QAAAA,CAC9B,GAAKyT,CAAAA,CAAaQ,WAEX,CAAA,CAIH,GAHI,CAACR,CAAAA,CAAaS,SAGdT,EAAAA,CAAAA,EAAcS,SAAW1zI,EAAAA,IAAAA,EAAMmvC,WAAW,EAAA,GAAO,YACjD,OAAO,CAAA,CAAA,CACJ,GAAI8jG,CAAAA,EAAcS,WAAW1zI,IAAMmvC,EAAAA,WAAAA,EAAkB,GAAA,SAAA,CAAW,CACnE,IAAMwkG,CAAAA,CAA6B,IAAK1X,CAAAA,eAAAA,CAAgBf,qBAAsB+X,CAAAA,CAAAA,CAAaS,SAAU14D,CAAAA,IAAAA,CAAO,MAAO,KAAK,CAAA,EAAK,EAE7H,CAAA,OAAI6Q,EADoB,IAAA,CAAKowC,eAAgBvB,CAAAA,wBAAAA,CAAyBiZ,CAAkB,CAC1E,CAAA,CAAA,CAKlB,CACJ,CAAA,KAhBW,OAAA,CAAA,CAAA,CAAA,KAmBJ,OAAA,CAAA,CAAA,CAEX,OAAO,CACX,CAAA,CAEAC,0BAA2Bx7I,CAAAA,CAAAA,CAAc,CACrC,IAAK05I,CAAAA,wBAAAA,CAA2B15I,EACpC,CACAy7I,4BAA0B,CACtB,OAAO,IAAK/B,CAAAA,wBAChB,CAEAgC,yBAAAA,EAAyB,CACrB,IAAA,CAAKrC,gBAAkB,IAAIlpG,GAAAA,CAC3B,IAAKmpG,CAAAA,gBAAAA,CAAiBzuH,IAAK,CAAA,IAAA,CAAKwuH,eAAe,EACnD,CACAsC,mBAAoB1Z,CAAAA,CAAAA,CAAkB,CAClC,IAAMsZ,CAA6B,CAAA,IAAA,CAAK1X,eAAgBf,CAAAA,qBAAAA,CAAsBb,EAAa,KAAO,CAAA,KAAK,CAAK,EAAA,EAAA,CAE5G,OADwB,IAAA,CAAK4B,eAAgBvB,CAAAA,wBAAAA,CAAyBiZ,CAAkB,CAE5F,CAEA5iF,QAAQ,EAAA,CACJ,IAAKnD,CAAAA,YAAAA,EAAAA,CACD,IAAKA,CAAAA,YAAAA,GAAiB,GAAK,IAAKukF,CAAAA,gCAAAA,GAChC,IAAKtlF,CAAAA,YAAAA,CAAavb,aAAc,CAAA,IAAA,CAAK6gG,gCAAgC,CAAA,CACrE,KAAKA,gCAAmCt6F,CAAAA,KAAAA,CAAAA,CACpC,IAAK65F,CAAAA,gBAAAA,EACL,IAAKA,CAAAA,gBAAAA,CAAiB9jH,WAAW,EAAA,CAEjC,KAAKgkH,4BACL,EAAA,IAAA,CAAKA,4BAA6BhkH,CAAAA,WAAAA,GAElC,IAAKglH,CAAAA,yBAAAA,GACL,IAAKA,CAAAA,yBAAAA,CAA4B/6F,QAEjC,IAAKg7F,CAAAA,uBAAAA,GACL,IAAKA,CAAAA,uBAAAA,CAA0B,CAG3C,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA1KSrB,CAAiBp7G,EAAAA,GAAAA,CAAAysB,IAAA,CAAAzsB,CAAAA,GAAAA,CAAA+jG,IAAA,CAAA,CAAA/jG,GAAAsP,CAAAA,GAAA,CAAAtP,CAAAA,GAAAA,CAAA+9B,IAAA,CAAA/9B,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA3pD,GAAA,CAAA,CAAA,KAAA,CAAjBk9I,CAAiBr9I,CAAAA,OAAAA,CAAjBq9I,EAAiB9kG,SAAAC,CAAAA,UAAAA,CAFd,MAAM,CAAA,EAEhB,IAAO6kG,CAAAA,CAAPwC,CAAOxC,CAAAA,OAAAA,CAAiB,KC+CxB,IAAOyC,EAAP,CAAA,KAAkC,CAKpC7sI,WAAAA,EAAA,CACI,IAAA,CAAK8sI,QAAU,GACnB,CAGSC,CAAAA,CAAAA,EAAAA,CAAP,KAA2B,EAqCrBC,CAAAA,EAAAA,CAAZ,SAAYA,CAAU,CAAA,CAClBA,OAAAA,CAAAA,CAAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,YACAA,CAAAA,CAAAA,CAAAA,CAAA,KAAA,CAAA,CAAA,EAAA,OACAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAHQA,CAIZ,CAAA,CAJYA,EAAU,EAAA,EAAA,EClGtB,IAAaC,EAAmB,CAAA,CAAA,IAAA,CAA1B,IAAOA,CAAP,CAAA,MAAOA,CAAmB,CAC5BjtI,YACY04C,CACAijB,CAAAA,CAAAA,CACAtgC,CAA4C,CAAA,CAF5C,IAAAqd,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAAijB,mBAAAA,CACA,CAAA,IAAA,CAAAtgC,qBAAAA,CAAAA,EACT,CAEHmsC,kBAAAA,CAAmB1iC,CAAuB2iC,CAAAA,CAAAA,CAAyB,CAC/D,GAAI3iC,CAAAA,CAAQ,CACR,IAAMmU,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,GAClD,OAAO,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,CAAekH,CAAAA,QAAAA,CAAS,mBAAwB,CAAA,CAAErb,OAAQA,CAAQ2iC,CAAAA,UAAAA,CAAYA,CAAU,CAAE,CAClH,CACA,OAAO,IACX,CAEAtL,eAAgBhtB,CAAAA,CAAAA,CAAiB,CAE7B,OADqB,KAAKwsB,kBAAmBQ,CAAAA,eAAAA,CAAgBhtB,CAAW,CAAA,UAAU,CAEtF,CAEA+9F,qBAAAA,CAAsBpoG,CAAuBqoG,CAAAA,CAAAA,CAAuB,CAChE,OAAIroG,CACO,CAAA,IAAA,CAAK4T,IAAIkD,IAAK,CAAA,iCAAA,CAAmC,CAAE9W,MAAAA,CAAQA,CAAQqoG,CAAAA,QAAAA,CAAUA,CAAQ,CAAE,EAE3F,IACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAzBSF,CAAmBj+G,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,GAAAixC,CAAAA,IAAA,EAAAjxC,GAAAsP,CAAAA,GAAA,CAAA,CAAA,0BAAnB2uG,CAAmBlgJ,CAAAA,OAAAA,CAAnBkgJ,CAAmB3nG,CAAAA,SAAAA,CAAAC,WAFhB,MAAM,CAAA,CAEhB,CAAA,IAAO0nG,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAmB,CAAA,ICAnBI,IAAAA,EAAAA,CAAAA,CAAiB,IAAA,CAAxB,IAAOA,CAAAA,CAAP,MAAOA,CAAiB,CAU1BrtI,WAAoB04C,CAAAA,CAAAA,CAAuB,CAAvB,IAAA,CAAAA,GAAAA,CAAAA,CAAAA,CALZ,IAAA40F,CAAAA,iBAAAA,CAAoB,IAAI/oG,IAAqB,CAAA,IAAI,CACzD,CAAA,IAAA,CAAAgpG,qBAAwC,IAAKD,CAAAA,iBAAAA,CAAkB7oG,YAAY,EAAA,CAC3E,KAAA+oG,WAAgC,CAAA,IAAIrsG,GACpC,CAAA,IAAA,CAAAssG,uBAA0B,CAAA,IAAIlpG,IAAqB,CAAA,IAAI,EACvD,IAAAmpG,CAAAA,0BAAAA,CAA8C,IAAKD,CAAAA,uBAAAA,CAAwBhpG,YAAY,GACzC,CAC9CkpG,cAAAA,CAAe11C,EAAY,CACvB,IAAA,CAAKv/C,GAAIlpB,CAAAA,GAAAA,CAAI,6BAA+B,CAAA,CAAEyoE,IAAMA,CAAAA,CAAI,EAAI,CAAEj8C,eAAAA,CAAiB,CAAI,CAAA,CAAE,CAAE31B,CAAAA,SAAAA,CAClF+2B,CAAiB,EAAA,CACVA,IACA,IAAKowF,CAAAA,WAAAA,CAAY1nI,GAAImyF,CAAAA,CAAAA,CAAM76C,CAAQ,CAAA,CACnC,IAAKkwF,CAAAA,iBAAAA,CAAkBzxH,KAAK,IAAK2xH,CAAAA,WAAW,CAEpD,EAAA,CAAA,CACA,IAAK,EAAG,EAEhB,CACAI,cAAe31C,CAAAA,CAAAA,CAAY,CACvB,IAAM41C,CAAkB,CAAA,IAAA,CAAKL,WAAYh+G,CAAAA,GAAAA,CAAIyoE,CAAI,CACjD,CAAA,OAAI41C,CACIA,CAAAA,CAAAA,CAAgBC,sBAA8BD,CACtC,CAAA,IAAA,EAEZ,IAAKF,CAAAA,cAAAA,CAAe11C,CAAI,CACjB,CAAA,IAAA,CAEf,CAEA81C,kBAAAA,CAAmB91C,CAAY,CAAA,CAC3B,IAAKv/C,CAAAA,GAAAA,CAAIlpB,IAAI,6BAA+B,CAAA,CAAEyoE,IAAMA,CAAAA,CAAI,CAAI,CAAA,CAAEj8C,eAAiB,CAAA,CAAA,CAAI,CAAE,CAAE31B,CAAAA,SAAAA,CAClF+2B,CAAiB,EAAA,CACVA,CACA,EAAA,IAAA,CAAKqwF,uBAAwB5xH,CAAAA,IAAAA,CAAKuhC,CAAQ,EAElD,CAAA,CACA,IAAK,EAAG,EAEhB,CAEA4wF,wBAAyBC,CAAAA,CAAAA,CAAqB,CAC1C,IAAMC,CAAAA,CAAe,EAAA,CACrBD,OAAAA,CAAAA,CAAiBtvF,OAASvc,CAAAA,CAAAA,EAAgB,CACtC,IAAM+rG,CAAAA,CAAM/rG,CAAQgsG,CAAAA,MAAAA,CACpBF,CAAQ3rF,CAAAA,IAAAA,CAAK,CACTmrE,MAAAA,CAAQygB,EAAI,MAAa,EAAA,IAAA,CAAOA,CAAI,CAAA,MAAA,CAAY,EAChDE,CAAAA,SAAAA,CAAWF,CAAI,CAAA,YAAY,GAAK,IAAOA,CAAAA,CAAAA,CAAI,YAAY,CAAA,CAAI,GAC3Dv1I,IAAMwpC,CAAAA,CAAAA,CAAQ,YACd+6F,CAAAA,SAAAA,CAAWgR,EAAI,YAAY,CAAA,CAC3BG,MAAQH,CAAAA,CAAAA,CAAI,SAAS,CAAA,EAAK,IAAOA,CAAAA,CAAAA,CAAI,SAAS,CAAI,CAAA,EAAA,CAClDnmF,gBAAkBmmF,CAAAA,CAAAA,CAAI,oBAAoB,CAAA,EAAK,IAAOA,CAAAA,CAAAA,CAAI,oBAAoB,CAAI,CAAA,EAAA,CAClFviG,IAAMuiG,CAAAA,CAAAA,CAAIviG,IAAQ,EAAA,IAAA,CAAOuiG,CAAIviG,CAAAA,IAAAA,CAAK8N,IAAM,GACxC1oD,CAAAA,KAAAA,CAAOm9I,CAAI,CAAA,KAAA,EAAY,IAAOA,CAAAA,CAAAA,CAAI,KAAW,CAAA,EAAA,CAC7CI,UAAWJ,CAAI,CAAA,SAAA,EAAgB,IAAOA,CAAAA,CAAAA,CAAI,SAAe,CAAA,EAAA,CACzDK,QAAUL,CAAAA,CAAAA,CAAI,UAAe,IAAOA,CAAAA,CAAAA,CAAI,QAAc,CAAA,EAAA,CACtDM,iBAAmBN,CAAAA,CAAAA,CAAI,iBAAwB,EAAA,IAAA,CAAOA,EAAI,iBAAuB,CAAA,EAAA,CACjFO,kBAAoBP,CAAAA,CAAAA,CAAI,kBAAyB,EAAA,IAAA,CAAOA,CAAI,CAAA,kBAAA,CAAwB,GACvF,EACL,CAAC,CACDF,CAAAA,CAAAA,CAAmBC,EACZD,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAjESZ,CAAiBr+G,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAA,CAAjB6pG,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAiBtgJ,OAAjBsgJ,CAAAA,CAAAA,CAAiB/nG,SAAAC,CAAAA,UAAAA,CAFd,MAAM,CAAA,CAAA,CAEhB,IAAO8nG,CAAAA,CAAPsB,CAAOtB,CAAAA,OAAAA,CAAiB,CAAA,QCGjBuB,EAAe,CAAA,CAAA,IAAA,CAAtB,IAAOA,CAAP,CAAA,MAAOA,CAAe,CAWxB5uI,YACY04C,CACA8nB,CAAAA,CAAAA,CACAnlC,CACAif,CAAAA,CAAAA,CACAu0F,EAAsB,CAJtB,IAAA,CAAAn2F,GAAAA,CAAAA,CAAAA,CACA,KAAA8nB,QAAAA,CAAAA,CAAAA,CACA,IAAAnlC,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAif,aAAAA,CAAAA,CAAAA,CACA,KAAAu0F,UAAAA,CAAAA,CAAAA,CAZJ,IAAAC,CAAAA,SAAAA,CAAY,IAAIC,IAAAA,CAAmB,CAAC,CAAA,CACnC,KAAAC,SAAY,CAAA,IAAA,CAAKF,SAAUrqG,CAAAA,YAAAA,EAAeC,CAAAA,IAAAA,CAC/CuqG,EAAW,EAAA,CACX7uG,GAAI,IAAK8uG,CAAAA,cAAc,CACvBC,CAAAA,IAAAA,CAAUp0G,GAAS,IAAKq0G,CAAAA,wBAAAA,CAAyBr0G,CAAI,CAAC,CAAC,EASxD,CAEHs0G,WAAW,EAAA,CACP,IAAMp2F,CAAAA,CAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAClD,CAAA,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,CAAe6kF,CAAAA,aAAAA,CAAc,kBAAqB,CAAA,CAAEz3G,UAC5D+2B,CAAiB,EAAA,CACVA,CACA,EAAA,IAAA,CAAKkyF,mBAAoBlyF,CAAAA,CAAQ,EAEzC,CAAA,CACA,IAAK,EAAG,EAEhB,CACAkyF,oBAAoBv0G,CAAS,CAAA,CACzB,IAAKw0G,CAAAA,YAAAA,CAAex0G,EACpB,IAAK+zG,CAAAA,SAAAA,CAAUjzH,IAAKkf,CAAAA,CAAI,EAC5B,CAEA06F,UAAW9xD,CAAAA,CAAAA,CAAoBC,EAAqBC,CAAoBE,CAAAA,CAAAA,CAAsByrE,CAA0B,CAAA,CACpH,IAAMC,CAAAA,CAAiB,IAAKp0G,CAAAA,qBAAAA,CAAsBq0G,6BAC9C/rE,CAAAA,CAAAA,EAAc,aACd,CAAA,IAAA,CAAKnD,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,UAC3B,CAAA,sBAAA,CAAwBwtB,CACxB,CAAA,uBAAA,CAAyBC,EACzB,yBAA2BC,CAAAA,CAAAA,CAC3B,yBAA2B,CAAA,IAAA,CAAKvpB,cAAclJ,4BAA6B,CAAA,WAAA,CAAaq+F,CAAeE,CAAAA,gBAAgB,CACvH,CAAA,wBAAA,CAA0B5rE,CAC1B,CAAA,sBAAA,CAAwB,iBAC3B,CAED,CAAA,IAAA,CAAKvD,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,UAAA,CAC3B,uBAAwBwtB,CACxB,CAAA,uBAAA,CAAyBC,CACzB,CAAA,yBAAA,CAA2BC,CAC3B,CAAA,yBAAA,CAA2B,IAAKvpB,CAAAA,aAAAA,CAAclJ,6BAA6B,WAAaq+F,CAAAA,CAAAA,CAAeE,gBAAgB,CAAA,CACvH,yBAA0B5rE,CAC1B,CAAA,sBAAA,CAAwB,gBACxB,CAAA,2BAAA,CAA6ByrE,EAChC,EAET,CAEQN,cAAeU,CAAAA,CAAAA,CAAa,CAChC,IAAML,CAAeK,CAAAA,CAAAA,CAASL,cAAcnvG,GAAKgC,CAAAA,CAAAA,GAAkB,CAC/DsrF,MAAAA,CAAQtrF,CAAQ,CAAA,MAAA,CAAYA,CAAQ,CAAA,MAAA,CAAY,GAChDisG,SAAWjsG,CAAAA,CAAAA,CAAQ,YAAY,CAAA,CAAIA,CAAQ,CAAA,YAAY,CAAI,CAAA,EAAA,CAC3DxpC,KAAMwpC,CAAQ,CAAA,IAAA,CACd+6F,SAAW/6F,CAAAA,CAAAA,CAAQ,YAAY,CAC/BksG,CAAAA,MAAAA,CAAQlsG,CAAQ,CAAA,SAAS,EAAIA,CAAQ,CAAA,SAAS,CAAI,CAAA,EAAA,CAClD4lB,gBAAkB5lB,CAAAA,CAAAA,CAAQ,oBAAoB,CAAA,CAAIA,EAAQ,oBAAoB,CAAA,CAAI,EAClFwJ,CAAAA,IAAAA,CAAMxJ,CAAQwJ,CAAAA,IAAAA,CAAOxJ,CAAQwJ,CAAAA,IAAAA,CAAK8N,IAAM,GACxC1oD,CAAAA,KAAAA,CAAOoxC,CAAQ,CAAA,KAAA,CAAWA,CAAQ,CAAA,KAAA,CAAW,EAC7CmsG,CAAAA,SAAAA,CAAWnsG,EAAQ,SAAeA,CAAAA,CAAAA,CAAQ,SAAe,CAAA,EAAA,CAAA,CAC3D,CACF,CAAA,OAAO0qB,GAAA1K,CAAAA,GAAAA,CAAA,GAAKwtF,CAAL,CAAA,CAAA,CAAeL,YAAAA,CAAAA,CAAY,CACtC,CAAA,CAEQH,wBAAyBQ,CAAAA,CAAAA,CAAa,CAC1C,OAAOle,EAAAA,CACH,GAAGke,CAAAA,CAASL,YAAanvG,CAAAA,GAAAA,CAAKrF,CACnBA,EAAAA,CAAAA,CAAKwzG,YAAc,EAAKsB,CAAAA,EAAAA,CAAG,CAAI,CAAA,CAAA,CAAI,IAAKhB,CAAAA,UAAAA,CAAWiB,kBAA4B/0G,CAAAA,CAAAA,CAAKwzG,SAAS,CACvG,CAAC,CACJ7pG,CAAAA,IAAAA,CACE3uC,KAAO85H,OAAO,CAAA,CACdkgB,EAAK,EAAA,CACL3vG,GAAI,IAAMwvG,CAAQ,CAAC,CAE3B,CAtFShB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAe5/G,GAAAysB,CAAAA,IAAA,EAAAzsB,GAAAi1C,CAAAA,IAAA,CAAAj1C,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,GAAAuX,CAAAA,EAAA,EAAAvX,GAAAghH,CAAAA,IAAA,CAAA,CAAA,CAAfpB,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAe7hJ,OAAf6hJ,CAAAA,CAAAA,CAAetpG,UAAAC,UAFZ,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOqpG,CAAPqB,CAAAA,CAAAA,CAAAA,OAAOrB,CAAe,CAAA,ICJfsB,IAAAA,EAAAA,CAAAA,CAAsB,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CAS/BlwI,WACYq7B,CAAAA,CAAAA,CACAwjE,CAA4B,CAAA,CAD5B,IAAAxjE,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAwjE,cAAAA,CAVZ,CAAA,IAAA,CAAAsxC,sBAAgC,CAAA,EAEhC,CAAA,IAAA,CAAAC,aAAuB,CAAA,GASpB,CAEHC,mBAAAA,CAAoBhiG,CAAeiiG,CAAAA,CAAAA,CAAmB,CAClD,IAAKC,CAAAA,kBAAAA,CAAqB,IAAKl1G,CAAAA,qBAAAA,CAAsBm1G,8BAA+BD,CAAAA,kBAAAA,CACpF,IAAME,CAAAA,CAAiC,IAAKF,CAAAA,kBAAAA,CAAqB,CAAI,CAAA,IAAA,CAAKA,mBAAqB,GAC/F,CAAA,IAAA,CAAKJ,sBAAyB,CAAA,EAC9B,CAAA,IAAMO,CAAsB,CAAA,IAAA,CAAK7xC,cAAclC,aAAa,EAAA,CAC5D,GAAI+zC,CAAAA,CAAgB,CAChB,IAAMP,CAA8BO,CAAAA,CAAAA,CAAeC,wBAGnD,GAFA,IAAA,CAAKC,oBAAuBF,CAAAA,CAAAA,CAAeE,oBAC3C,CAAA,IAAA,CAAKC,kBAAqBH,CAAAA,CAAAA,CAAeG,mBAErCxiG,CACAA,EAAAA,CAAAA,CAASmC,YAAasgG,CAAAA,WAAAA,EACtBziG,CAASmC,CAAAA,YAAAA,CAAaugG,gBACtB1iG,EAAAA,CAAAA,CAASmC,aAAaugG,gBAAiBjoI,CAAAA,MAAAA,CAAS,CAChDqnI,EAAAA,CAAAA,EACAA,CAAuBrnI,CAAAA,MAAAA,CAAS,CAEhC,CAAA,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAI4gD,CAASmC,CAAAA,YAAAA,CAAaugG,gBAAiBjoI,CAAAA,MAAAA,CAAQrb,CAAK,EAAA,CAAA,CACpE,IAAMujJ,CAAuB3iG,CAAAA,CAAAA,CAASmC,YAAaugG,CAAAA,gBAAAA,CAAiBtjJ,CAAC,CAC/DwjJ,CAAAA,CAAAA,CAAsBd,CAAuBp6I,CAAAA,MAAAA,CAAQm7I,GAAYA,CAAGn2G,CAAAA,IAAAA,CAAK4rD,QAASxmE,CAAAA,EAAAA,CAAGnkB,MAAOi8F,CAAAA,IAAAA,GAAS+4C,CAAgB/4C,CAAAA,IAAI,EAC3Hg5C,CAAkBA,EAAAA,CAAAA,CAAenoI,MAAS,CAAA,CAAA,EAC1CmoI,CAAetyF,CAAAA,OAAAA,CAASwyF,CAAmB,EAAA,CACnCA,EAAWb,WAAeA,EAAAA,CAAAA,EAAe,IAAKH,CAAAA,sBAAAA,CAAuBrnI,MAAS2nI,CAAAA,CAAAA,EAC9E,IAAKN,CAAAA,sBAAAA,CAAuB5tF,KAAK4uF,CAAU,EAEnD,CAAC,EAET,CAER,CACA,OAAO,IAAKhB,CAAAA,sBAChB,CAEAiB,gCAAiC/iG,CAAAA,CAAAA,CAAa,CAC1C,IAAA,CAAKkiG,kBAAqB,CAAA,IAAA,CAAKl1G,qBAAsBm1G,CAAAA,4BAAAA,GAA+BD,kBACpF,CAAA,IAAMc,CAAuC,CAAA,EACvCC,CAAAA,CAAAA,CAAuC,EAAA,CACvCC,EAAuC,EAAA,CACvCC,CAA6B,CAAA,EAC7BC,CAAAA,CAAAA,CAAgB,IAAK5yC,CAAAA,aAAAA,CAAclC,eACzC,CAAA,GAAI80C,CAAe,CAAA,CACf,IAAMtB,CAA8BsB,CAAAA,CAAAA,CAAcd,uBAClD,CAAA,IAAA,CAAKC,qBAAuBa,CAAcb,CAAAA,oBAAAA,CAEtCviG,CACAA,EAAAA,CAAAA,CAASmC,YAAasgG,CAAAA,WAAAA,EACtBziG,CAASmC,CAAAA,YAAAA,CAAaugG,kBACtB1iG,CAASmC,CAAAA,YAAAA,CAAaugG,gBAAiBjoI,CAAAA,MAAAA,CAAS,CAChDqnI,EAAAA,CAAAA,EACAA,CAAuBrnI,CAAAA,MAAAA,CAAS,GAEhCulC,CAASmC,CAAAA,YAAAA,CAAaugG,gBAAiBpyF,CAAAA,OAAAA,CAASqyF,CAAwB,EAAA,CACpE,IAAMC,CAAAA,CAAsBd,EAAuBp6I,MAAQm7I,CAAAA,CAAAA,EAAYA,CAAGn2G,CAAAA,IAAAA,CAAK4rD,QAASxmE,CAAAA,EAAAA,CAAGnkB,MAAOi8F,CAAAA,IAAAA,GAAS+4C,EAAgB/4C,IAAI,CAAA,CAC3Hg5C,CAAkBA,EAAAA,CAAAA,CAAenoI,MAAS,CAAA,CAAA,EAC1CmoI,CAAetyF,CAAAA,OAAAA,CAASwyF,GAAmB,CAEvC,OADoBA,CAAWb,CAAAA,WAAAA,EAE3B,IAAK,eAAiB,CAAA,CAClBe,EAA8B9uF,IAAK4uF,CAAAA,CAAU,CAC7C,CAAA,KACJ,CACA,IAAK,oBAAsB,CAAA,CACvBG,EAA8B/uF,IAAK4uF,CAAAA,CAAU,CAC7C,CAAA,KACJ,CACA,IAAK,oBAAA,CAAsB,CACvBI,CAAAA,CAA8BhvF,KAAK4uF,CAAU,CAAA,CAC7C,KACJ,CACA,IAAK,KAAA,CAAO,CACRK,CAAAA,CAAoBjvF,KAAK4uF,CAAU,CAAA,CACnC,KACJ,CAIJ,CACJ,CAAC,EAET,CAAC,CAAA,CAEL,IAAIO,CAAAA,CACJA,OAAAA,CAAAA,CAAuB,CACnBL,6BAAAA,CACI,KAAKd,kBAAqB,CAAA,CAAA,CAAIc,CAA8B7uF,CAAAA,MAAAA,CAAO,EAAG,IAAK+tF,CAAAA,kBAAkB,CAAIc,CAAAA,CAAAA,CACrGC,8BACI,IAAKf,CAAAA,kBAAAA,CAAqB,CAAIe,CAAAA,CAAAA,CAA8B9uF,MAAO,CAAA,CAAA,CAAG,IAAK+tF,CAAAA,kBAAkB,EAAIe,CACrGC,CAAAA,6BAAAA,CACI,IAAKhB,CAAAA,kBAAAA,CAAqB,CAAIgB,CAAAA,CAAAA,CAA8B/uF,MAAO,CAAA,CAAA,CAAG,KAAK+tF,kBAAkB,CAAA,CAAIgB,CACrGC,CAAAA,mBAAAA,CAAqB,IAAKjB,CAAAA,kBAAAA,CAAqB,CAAIiB,CAAAA,CAAAA,CAAoBhvF,OAAO,CAAG,CAAA,IAAA,CAAK+tF,kBAAkB,CAAA,CAAIiB,GAEzGE,CACX,CACJ,CAEAC,uBAAAA,EAAuB,CACnB,OAAO,IAAA,CAAKf,oBAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/GSV,CAAsBlhH,EAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,IAAAytE,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAvvG,GAAA,CAAA,CAAA,KAAA,CAAtBgjJ,CAAsBnjJ,CAAAA,OAAAA,CAAtBmjJ,CAAsB5qG,CAAAA,SAAAA,CAAAC,WAFnB,MAAM,CAAA,CAEhB,CAAA,IAAO2qG,CAAP0B,CAAAA,CAAAA,CAAAA,OAAO1B,CAAsB,CAAA,ICAtB2B,IAAAA,EAAAA,CAAAA,CAAmB,IAAA,CAA1B,IAAOA,CAAP,CAAA,MAAOA,CAAmB,CAC5B7xI,YACY43E,CACAv8C,CAAAA,CAAAA,CAA4C,CAD5C,IAAA,CAAAu8C,oBAAAA,CAAAA,CAAAA,CACA,IAAAv8C,CAAAA,qBAAAA,CAAAA,EACT,CACHy2G,8BAAAA,EAA8B,CAC1B,IAAMh0F,CAAkB,CAAA,IAAA,CAAKziB,qBAAsB0iB,CAAAA,sBAAAA,GAC/CD,CAAmBA,EAAAA,CAAAA,CAAgBE,6BACnC,EAAA,IAAA,CAAK45B,oBAAqB36B,CAAAA,YAAAA,CAAa,CAAO,CAAA,CAAA,CAAA,CAAK,EAE3D,CACA80F,wCAAAA,EAAwC,CACpC,IAAMj0F,EAAkB,IAAKziB,CAAAA,qBAAAA,CAAsB0iB,sBAAsB,EAAA,CACrED,GAAmBA,CAAgBG,CAAAA,8BAAAA,EACnC,IAAK25B,CAAAA,oBAAAA,CAAqB36B,YAAa,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,EAE1D,yCAhBS40F,CAAmB7iH,EAAAA,GAAAA,CAAAwtB,EAAA,CAAA,CAAAxtB,GAAAsP,CAAAA,GAAA,CAAA,CAAA,0BAAnBuzG,CAAmB9kJ,CAAAA,OAAAA,CAAnB8kJ,CAAmBvsG,CAAAA,SAAAA,CAAAC,UAFhB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOssG,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAmB,CAAA,ICDnBI,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAC3B1mH,SAAU83C,CAAAA,CAAAA,CAAcnnC,CAA4B,CAAA,QAAA,CAAUg2G,EAAe,CACzE,OAAOC,EAAkB9uE,CAAAA,CAAAA,CAAMnnC,CAAQg2G,CAAAA,CAAM,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAHSD,EAAkB,CAAlBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAkBlgB,IAAA,CAAA,CAAA,CAAA,CAAApnG,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAzB,IAAOsnH,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAkB,CAAA,ICDlBI,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAC3B9mH,SAAUv6B,CAAAA,CAAAA,CAAU,CAChB,IAAIshJ,EAKEliJ,CAHSY,CAAAA,CAAAA,CAAMuB,QAAQ,EAAA,CAGR2b,KAAM,CAAA,GAAG,CAGxBi6C,CAAAA,CAAAA,CAAS/3D,EAAM,CAAC,CAAA,CACtB,OAAIA,CAAAA,CAAM,CAAC,CAAA,GACPkiJ,CAAUliJ,CAAAA,CAAAA,CAAM,CAAC,CAAG0Y,EAAAA,MAAAA,EAAU,CAAI1Y,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAIA,CAAM,CAAA,CAAC,EAAE0Y,MAAU,EAAA,CAAA,CAAI,GAAM1Y,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAI,IAGtEg2F,CAAAA,CAAAA,MAAAA,CAAOj+B,CAAM,CAAE25C,CAAAA,cAAAA,EAAmB,CAAA,GAAA,EAAOwwC,CAAoB,EAAA,IAAA,CAGpF,CAlBSD,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAkB,gDAAlBA,CAAkBtgB,CAAAA,IAAAA,CAAA,CAAApnG,CAAAA,CAAAA,UAAAA,CAAA,CAAA,CAAA,CAAA,CAAzB,CAAA,IAAO0nH,EAAPE,CAAOF,CAAAA,OAAAA,CAAkB,CAAA,QCElBG,EAAuB,CAAA,CAAA,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAChCxyI,WAAAA,CAAoB2+H,CAAqC,CAAA,CAArC,IAAAA,CAAAA,cAAAA,CAAAA,EAAwC,CAE5DpzG,SAAAA,CAAUv6B,CAAa,CAAA,CACnB,IAAMyhJ,CAAAA,CAA8B,IAAK9T,CAAAA,cAAAA,CAAe+T,0CACxD,CAAA,GACID,CACAA,EAAAA,CAAAA,CAA4BE,wBAC5BF,EAAAA,CAAAA,CAA4BG,0BAC5BH,EAAAA,CAAAA,CAA4BG,2BAA2B9pI,MAAS,CAAA,CAAA,EAChE,CAAC,IAAA,CAAK+pI,cAAc7hJ,CAAK,CAAA,CAC3B,CACE,IAAM8hJ,GAAM9hJ,CAAM03C,CAAAA,OAAAA,CAAQ,GAAG,CAAA,GAAM,CAAK,CAAA,CAAA,GAAA,CAAM,GAAO+pG,EAAAA,CAAAA,CAA4BG,2BACjF5hJ,CAAQA,CAAAA,CAAAA,CAAQ8hJ,EACpB,CACA,OAAO9hJ,CACX,CAEQ6hJ,aAAAA,CAAch1G,EAAW,CAC7B,OAAOA,CAAI6K,CAAAA,OAAAA,CAAQ,cAAc,CAAA,GAAM,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApBS8pG,GAAuB10G,GAAAQ,CAAAA,GAAAA,CAAA,EAAA,CAAA,CAAA,CAAvBk0G,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAuBzgB,IAAA,CAAA,CAAA,CAAA,CAAApnG,WAAA,CAAA,CAAA,CAAA,CAA9B,CAAA,IAAO6nH,CAAPO,CAAAA,CAAAA,CAAAA,OAAOP,CAAuB,CAAA,ICIvBQ,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAM3BhzI,WACY04C,CAAAA,CAAAA,CACA+M,CACApqB,CAAAA,CAAAA,CACAmlC,CACAplC,CAAAA,CAAAA,CACAwd,CAAoC,CAAA,CALpC,KAAAF,GAAAA,CAAAA,CAAAA,CACA,IAAA+M,CAAAA,YAAAA,CAAAA,CACA,CAAA,IAAA,CAAApqB,qBAAAA,CAAAA,CAAAA,CACA,KAAAmlC,QAAAA,CAAAA,CAAAA,CACA,IAAAplC,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAwd,iBAAAA,CAAAA,CAAAA,CAXJ,KAAAq6F,WAAc,CAAA,IAAI1uG,IAAqB,CAAA,IAAI,CACnD,CAAA,IAAA,CAAA2uG,qBAAyC,CAAA,IAAA,CAAKD,YAAYxuG,YAAY,GAWnE,CACH0uG,oBAAAA,CAAqBC,CAAkB,CAAA,CAEnC,GADA,IAAA,CAAKA,cAAgBA,CACjBA,CAAAA,CAAAA,CAAe,CACf,IAAA,CAAKC,sBAAwB,CAC7B,CAAA,CAAA,IAAM/iI,CAA6B,CAAA,GACnC,IAAWgjI,IAAAA,CAAAA,IAAYF,CACnB9iI,CAAAA,CAAAA,CAAQiyC,IACJ,CAAA,IAAA,CAAK7J,GAAIkD,CAAAA,IAAAA,CACL,6BACA,CAAE23F,QAAAA,CAAUD,CAAQ,CAAA,CACpB,CAAEvpD,YAAAA,CAAc,MAAQ/tC,CAAAA,eAAAA,CAAiB,GAAM2H,WAAa,CAAA,CAAA,CAAK,CAAE,CACtE,CAGT6vF,CAAAA,IAAAA,CAASljI,CAAO,CAAA,CAAE+V,UAAU,CACxBxK,IAAAA,CAAO43H,CAAa,EAAA,CACZA,GACA,IAAKR,CAAAA,WAAAA,CAAYp3H,IAAK43H,CAAAA,CAAS,EAEvC,CACA/rI,CAAAA,KAAAA,CAAOA,IAAK,EAGf,CAAA,EACL,CACJ,CACAgsI,yBAAuB,CACnB,IAAMC,CAAoB,CAAA,IAAA,CAAKt4G,qBAAsBu4G,CAAAA,8BAAAA,EACjD,CAAA,IAAA,CAAKloF,cACLxhB,aAAc,CAAA,IAAA,CAAKwhB,YAAY,CAAA,CAEnC,IAAKA,CAAAA,YAAAA,CAAe,IAAKjG,CAAAA,YAAAA,CAAaqE,8BAA8B,IAAK,CAChE,IAAKlR,CAAAA,iBAAAA,CAAkBZ,sBAC5B,EAAA,IAAA,CAAKm7F,oBAAqB,CAAA,IAAA,CAAKC,aAAa,EAChD,CAAA,CAAGO,CAAkBE,CAAAA,mBAAmB,EAC5C,CACApwE,gBACIC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACA4xD,CAAkB,CAAA,CAElB,IAAKn1D,CAAAA,QAAAA,CAASrqB,aAAa,gBAAkB,CAAA,CACzC,yBAA2ButB,CAAAA,CAAAA,CAC3B,sBAAwBC,CAAAA,CAAAA,CACxB,uBAAyBC,CAAAA,CAAAA,CACzB,0BAA2BC,CAC3B,CAAA,yBAAA,CAA2B,IAAKzoC,CAAAA,aAAAA,CAAchM,OAC9C,CAAA,wBAAA,CAA0B20C,CAC1B,CAAA,sBAAA,CAAwB4xD,EAC3B,EACL,CACAme,+BAAgCC,CAAAA,CAAAA,CAAoB,CAChD,IAAA,CAAKvzE,QAASrqB,CAAAA,YAAAA,CAAa,iBAAkB,CACzC69F,2BAAAA,CAA6BD,CAChC,CAAA,EACL,CAzESf,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkBhkH,GAAAwU,CAAAA,EAAA,EAAAxU,GAAA+9B,CAAAA,IAAA,CAAA/9B,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,GAAAi1C,CAAAA,IAAA,EAAAj1C,GAAAqP,CAAAA,IAAA,CAAArP,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA,CAAlBm8F,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAkBjmJ,QAAlBimJ,CAAkB1tG,CAAAA,SAAAA,CAAAC,UAFf,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOytG,CAAAA,CAAPiB,SAAOjB,CAAkB,CAAA,ICE/B,IAAakB,EAAoB,CAAA,CAAA,IAAA,CAA3B,IAAOA,EAAP,MAAOA,CAAoB,CAQ7Bl0I,WAAAA,CACY04C,CACArd,CAAAA,CAAAA,CACAif,CACA0Y,CAAAA,CAAAA,CACA5lB,EAAc,CAJd,IAAA,CAAAsL,GAAAA,CAAAA,CAAAA,CACA,KAAArd,qBAAAA,CAAAA,CAAAA,CACA,IAAAif,CAAAA,aAAAA,CAAAA,EACA,IAAA0Y,CAAAA,YAAAA,CAAAA,CACA,CAAA,IAAA,CAAA5lB,MAAAA,CAAAA,CAAAA,CAZZ,IAAA+mG,CAAAA,aAAAA,CAAqB,EACrB,CAAA,IAAA,CAAAC,yBAAiC,CAAA,EACzB,CAAA,IAAA,CAAAC,oBAAuB,CAAA,IAAI9vG,KAAqB,IAAI,CAAA,CAC5D,IAAA+vG,CAAAA,sBAAAA,CAA0C,IAAKD,CAAAA,oBAAAA,CAAqB5vG,YAAY,EAAA,CACxE,KAAA8vG,gCAAmC,CAAA,IAAIhwG,IAAqB,CAAA,IAAI,EACxE,IAAAiwG,CAAAA,kCAAAA,CAAsD,IAAKD,CAAAA,gCAAAA,CAAiC9vG,eAQzF,CAEHgwG,gBAAgB,EAAA,CACZ,IAAMx7F,CAAAA,CAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,uBAC5CqX,CAAAA,CAAAA,CAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CAC5E,IAAK2c,CAAAA,GAAAA,CAAIlpB,IAAIypB,CAAewa,CAAAA,aAAAA,CAAc,aAAgB,CAAA,CAAEptC,SACvD+2B,CAAAA,CAAAA,EAAiB,CAEd,GADA,KAAK+2F,aAAgB,CAAA,EACjB/2F,CAAAA,CAAAA,CAAU,CACV,IAAS3vD,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAI2vD,EAASt0C,MAAQrb,CAAAA,CAAAA,EAAAA,CACjC,IAAK0mJ,CAAAA,aAAAA,CAAc5xF,IAAKnF,CAAAA,CAAAA,CAAS3vD,CAAC,CAAA,CAAEk5F,SAASxmE,EAAGu0H,CAAAA,QAAQ,CAE5D,CAAA,IAAA,CAAKN,yBAA4B1gF,CAAAA,IAAAA,CAAU,IAAKygF,CAAAA,aAAa,EAEzD5jF,CAAgBoD,EAAAA,yBAAAA,EAA6B,IAAKrZ,CAAAA,aAAAA,CAActH,eAAe,EAAA,EAAIjL,WAAW,EAAA,EAAM,cACpG,IAAK6rB,CAAAA,qBAAAA,CAAsB,IAAKugF,CAAAA,aAAa,EAC7C5jF,CAAgBsD,EAAAA,+BAAAA,GAAiC,IAAKugF,CAAAA,yBAAAA,CAA4B,KAAKD,aAC3F,CAAA,CAAA,IAAA,CAAKE,oBAAqBx4H,CAAAA,IAAAA,CAAK,IAAKs4H,CAAAA,aAAa,CACjD,CAAA,IAAA,CAAKI,iCAAiC14H,IAAK,CAAA,IAAA,CAAKu4H,yBAAyB,EAC7E,CACJ,CAAA,CACC1sI,CAAS,EAAA,CACN,KAAK0lC,MAAO1lC,CAAAA,KAAAA,CAAM,gDAAmDA,CAAAA,CAAK,EAC9E,CAAC,EAET,CAEAksD,sBAAsBugF,CAAkB,CAAA,CACpC,IAAMrgF,CAAAA,CAA0B,KAAKd,YAAab,CAAAA,8BAAAA,CAA+B,YAAc,CAAA,IAAA,CAAK7X,cAAc7S,iBAAiB,EAAE,CACrI,CAAA,IAAA,CAAK0sG,aAAgBrgF,CAAAA,CAAAA,EAAoB9yB,iBAAmBZ,EAAAA,GAAAA,CAAK9tC,GAAWA,CAAKA,EAAAA,CAAAA,CAAE,CAAC,CAAC,CAAGyD,EAAAA,MAAAA,CAAQg+D,CAAWogF,EAAAA,CAAAA,EAAengF,SAASD,CAAC,CAAC,CAAK,EAAA,GAC9I,CAEA4gF,gBAAgB,EAAA,CACZ,OAAO,IAAKR,CAAAA,aAChB,CAEAS,4BAAAA,EAA4B,CACxB,OAAO,IAAA,CAAKR,yBAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApDSF,GAAoBllH,GAAAysB,CAAAA,IAAA,CAAAzsB,CAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,GAAAuX,CAAAA,EAAA,EAAAvX,GAAA6gC,CAAAA,EAAA,CAAA7gC,CAAAA,GAAAA,CAAA2kB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzmD,GAAA,CAAA,CAAA,KAAA,CAApBgnJ,EAAoBnnJ,OAApBmnJ,CAAAA,CAAAA,CAAoB5uG,SAAAC,CAAAA,UAAAA,CAFjB,MAAM,CAAA,CAEhB,CAAA,IAAO2uG,EAAPW,CAAOX,CAAAA,OAAAA,CAAoB,CAAA,ICHpBY,IAAAA,EAAAA,CAAAA,CAAuB,IAAA,CAA9B,IAAOA,CAAP,CAAA,MAAOA,CAAuB,CAKhC90I,WACY04C,CAAAA,CAAAA,CACAge,CAAiC,CAAA,CADjC,KAAAhe,GAAAA,CAAAA,CAAAA,CACA,IAAAge,CAAAA,YAAAA,CAAAA,CALJ,CAAA,IAAA,CAAAq+E,uBAA0B,CAAA,IAAIxwG,KAAqB,IAAI,CAAA,CAC/D,IAAAywG,CAAAA,wBAAAA,CAA4C,IAAKD,CAAAA,uBAAAA,CAAwBtwG,YAAY,EAAA,CAqCrF,KAAAwf,QAAYm7D,CAAAA,CAAAA,EAA8B,CACtC,IAAM5qH,EAAmB,CACrBqtH,IAAAA,CAAMzC,CACNxmH,CAAAA,IAAAA,CAAMsrD,GAAY2yE,KAClB7U,CAAAA,QAAAA,CAAU59D,IAAgBqjC,CAAAA,MAAAA,CAC1Bw6B,KAAO,CAAA,iBAAA,CAAA,CAEPztH,CACA,GAAA,IAAA,CAAKkiE,aAAap0D,GAAI9N,CAAAA,CAAO,CAC7ByuC,CAAAA,UAAAA,CAAW,IAAM,IAAA,CAAKyzB,YAAa/H,CAAAA,KAAAA,GAAS,GAAI,CAAA,EAExD,EA3CG,CAEHsmF,yBAAyB,EAAA,CACrB,IAAKv8F,CAAAA,GAAAA,CACAkD,KAAK,4CAA8C,CAAA,CAChDmuC,YAAc,CAAA,MAAA,CACd/tC,gBAAiB,CACjB2H,CAAAA,CAAAA,WAAAA,CAAa,CAChB,CAAA,CAAA,CAAA,CACAt9B,UAAU,CACPxK,IAAAA,CAAOuhC,CAAiB,EAAA,CAChBA,CACA,GAAA,IAAA,CAAK83F,oBAAuB93F,CAAAA,CAAAA,CAC5B,KAAK23F,uBAAwBl5H,CAAAA,IAAAA,CAAK,CAAI,CAAA,CAAA,EAE9C,CACAnU,CAAAA,KAAAA,CAAQA,CAAiB,EAAA,CACrB,IAAMlT,CAAmB,CAAA,CACrBqtH,IAAMn6G,CAAAA,CAAAA,CACN9O,IAAMsrD,CAAAA,EAAAA,CAAY2yE,KAClB7U,CAAAA,QAAAA,CAAU59D,KAAgBqjC,MAC1Bw6B,CAAAA,KAAAA,CAAO,iBAEPztH,CAAAA,CAAAA,CAAAA,EACA,KAAKkiE,YAAap0D,CAAAA,GAAAA,CAAI9N,CAAO,EAErC,EACH,EACT,CACA2gJ,uBAAuB,EAAA,CACnB,OAAO,IAAA,CAAKD,oBAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAvCSJ,GAAuB9lH,GAAAwU,CAAAA,EAAA,CAAAxU,CAAAA,GAAAA,CAAA41B,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA13D,GAAA,CAAA,CAAA,KAAA,CAAvB4nJ,EAAuB/nJ,OAAvB+nJ,CAAAA,CAAAA,CAAuBxvG,SAAAC,CAAAA,UAAAA,CAFpB,MAAM,CAAA,CAEhB,CAAA,IAAOuvG,EAAPM,CAAON,CAAAA,OAAAA,CAAuB,CAAA,ICJvBO,IAAAA,EAAAA,CAAAA,CAAqB,IAAA,CAA5B,IAAOA,CAAP,CAAA,MAAOA,CAAqB,CAI9Br1I,WAAA,EAAA,CAHQ,IAAAs1I,CAAAA,UAAAA,CAAa,IAAI/wG,IAAqB,CAAA,IAAI,CAClD,CAAA,IAAA,CAAAgxG,kBAAqB,CAAA,IAAA,CAAKD,UAAW7wG,CAAAA,YAAAA,GAEtB,CAEf+wG,qBAAAA,CAAsBhhJ,CAAY,CAAA,CAC9B,IAAK8gJ,CAAAA,UAAAA,CAAWz5H,IAAKrnB,CAAAA,CAAO,EAChC,CAEAihJ,qBAAAA,EAAqB,CACjB,OAAO,KAAKH,UAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAZSD,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAnoJ,GAAA,CAAA,CAAA,KAAA,CAArBmoJ,EAAqBtoJ,OAArBsoJ,CAAAA,CAAAA,CAAqB/vG,SAAAC,CAAAA,UAAAA,CAFlB,MAAM,CAAA,CAEhB,CAAA,IAAO8vG,EAAPK,CAAOL,CAAAA,OAAAA,CAAqB,CAAA,ICKrBM,IAAAA,EAAAA,CAAAA,CAAc,IAAA,CAArB,IAAOA,CAAP,CAAA,MAAOA,CAAc,CAKvB31I,WACY04C,CAAAA,CAAAA,CACA+M,CACApqB,CAAAA,CAAAA,CACAmlC,EACAplC,CACAwd,CAAAA,CAAAA,CAAoC,CALpC,IAAA,CAAAF,IAAAA,CACA,CAAA,IAAA,CAAA+M,YAAAA,CAAAA,CAAAA,CACA,KAAApqB,qBAAAA,CAAAA,CAAAA,CACA,IAAAmlC,CAAAA,QAAAA,CAAAA,CACA,CAAA,IAAA,CAAAplC,aAAAA,CAAAA,CAAAA,CACA,KAAAwd,iBAAAA,CAAAA,CAAAA,CAVJ,IAAAg9F,CAAAA,aAAAA,CAAgB,IAAIrxG,IAAAA,CAAqB,IAAI,CAAA,CACrD,KAAAsxG,uBAA2C,CAAA,IAAA,CAAKD,aAAcnxG,CAAAA,YAAAA,GAU3D,CACHqxG,sBAAuBllJ,CAAAA,CAAAA,CAAQ,CAC3B,IAAK2iJ,CAAAA,QAAAA,CAAW3iJ,CAChB,CAAA,IAAA,CAAK8nD,IACAkD,IAAK,CAAA,gCAAA,CAAkC,CAAE23F,QAAAA,CAAU3iJ,CAAG,CAAI,CAAA,CAAEm5F,YAAc,CAAA,MAAA,CAAQ/tC,eAAiB,CAAA,CAAA,CAAA,CAAM2H,WAAa,CAAA,CAAA,CAAK,CAAE,CAC7Ht9B,CAAAA,SAAAA,CAAU,CACPxK,IAAAA,CAAOuhC,CAAY,EAAA,CACXA,CACA,EAAA,IAAA,CAAKw4F,cAAc/5H,IAAKuhC,CAAAA,CAAQ,EAExC,CAAA,CACA11C,KAAOA,CAAAA,IAAK,EACR,CAEP,EACT,CACAquI,mBAAAA,EAAmB,CACf,IAAMC,CAAsB,CAAA,IAAA,CAAK36G,qBAAsB46G,CAAAA,yBAAAA,GACnD,IAAKvqF,CAAAA,YAAAA,EACLxhB,aAAc,CAAA,IAAA,CAAKwhB,YAAY,CAAA,CAEnC,IAAKA,CAAAA,YAAAA,CAAe,KAAKjG,YAAaqE,CAAAA,6BAAAA,CAA8B,IAAK,CAChE,IAAKlR,CAAAA,iBAAAA,CAAkBZ,oBAAoB,EAAA,EAChD,KAAK89F,sBAAuB,CAAA,IAAA,CAAKvC,QAAQ,EAC7C,CAAGyC,CAAAA,CAAAA,CAAoBE,qBAAqB,EAChD,CACAzyE,gBACIC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACA4xD,CAAkB,CAAA,CAElB,KAAKn1D,QAASrqB,CAAAA,YAAAA,CAAa,gBAAkB,CAAA,CACzC,yBAA2ButB,CAAAA,CAAAA,CAC3B,sBAAwBC,CAAAA,CAAAA,CACxB,wBAAyBC,CACzB,CAAA,yBAAA,CAA2BC,CAC3B,CAAA,yBAAA,CAA2B,IAAKzoC,CAAAA,aAAAA,CAAchM,OAC9C,CAAA,wBAAA,CAA0B20C,EAC1B,sBAAwB4xD,CAAAA,CAAAA,CAC3B,EACL,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAxDSggB,CAAc3mH,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAA+9B,IAAA,CAAA,CAAA/9B,GAAAsP,CAAAA,GAAA,EAAAtP,GAAAi1C,CAAAA,IAAA,CAAAj1C,CAAAA,GAAAA,CAAAqP,IAAA,CAAArP,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA3pD,GAAA,CAAA,CAAA,KAAA,CAAdyoJ,CAAc5oJ,CAAAA,OAAAA,CAAd4oJ,EAAcrwG,SAAAC,CAAAA,UAAAA,CAFX,MAAM,CAAA,CAEhB,CAAA,IAAOowG,CAAPQ,CAAAA,CAAAA,CAAAA,OAAOR,CAAc,CAAA,ICLdS,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAC3Bp2I,WAAoB63H,CAAAA,CAAAA,CAAsC,CAAtC,IAAAA,CAAAA,kBAAAA,CAAAA,EAAyC,CAE7Dwe,oBAAoBC,CAAoBz+D,CAAAA,CAAAA,CAAqB,CACzD,IAAI0+D,CAA2B,CAAA,CAAA,CACzBC,CAA0B,CAAA,GAC5BC,CAAgB,CAAA,EAYpB,CAAA,GAXIH,CAAiBA,EAAAA,CAAAA,CAAcxtI,MAAS,CAAA,CAAA,EACxCwtI,EAAc33F,OAASvc,CAAAA,CAAAA,EAAgB,CAC/BA,CAAAA,CAAQqjC,OACRgxE,GAAAA,CAAAA,CAAWr0G,CAAQqjC,CAAAA,OAAAA,CAAQ/8B,QAAQ,GAAG,CAAA,GAAM,CAAKtG,CAAAA,CAAAA,CAAAA,CAAQqjC,OAAQv3D,CAAAA,KAAAA,CAAM,GAAG,CAAA,CAAI,CAACk0B,CAAQqjC,CAAAA,OAAO,CAC1FgxE,CAAAA,CAAAA,CAAS/tG,OAAQ,CAAA,YAAY,CAAI,CAAA,CAAA,CAAA,EACjC8tG,EAAmBj0F,IAAKngB,CAAAA,CAAO,CAG3C,EAAA,CAAC,CAGDo0G,CAAAA,CAAAA,EAAsBA,CAAmB1tI,CAAAA,MAAAA,CAAS,GAAK+uE,CAAa,CAAA,CACpE,IAAM6+D,CAAAA,CAAuBF,CAAmBzgJ,CAAAA,MAAAA,CAAQxF,CAAc,EAAA,EAAEsnF,EAAYnvC,OAAQn4C,CAAAA,CAAAA,CAAKmvD,IAAI,CAAA,CAAI,GAAG,CACxGg3F,CAAAA,CAAAA,GACAH,CAAmBG,CAAAA,CAAAA,CAAgB5tI,QAE3C,CACA,OAAOytI,CACX,CAEA3qB,gBAAiBlsE,CAAAA,CAAAA,CAAS,CACtB,IAAMm4B,EAAc,IAAKggD,CAAAA,kBAAAA,CAAmBh/C,cAAc,EAAA,CAC1D,OAAIn5B,CAAAA,CAAK+lB,OAAW/lB,EAAAA,CAAAA,CAAK+lB,QAAQ/8B,OAAQ,CAAA,YAAY,CAAI,CAAA,CAAA,CAAA,CACjDmvC,EAAAA,CAAAA,EAAeA,CAAY/uE,CAAAA,MAAAA,CAAS,GAAK+uE,CAAYnvC,CAAAA,OAAAA,CAAQgX,CAAK5a,CAAAA,MAAM,IAAM,CAK/E,CAAA,CAAA,CAAA,CAAA,CACX,CApCSsxG,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkBpnH,IAAA2oD,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAzqF,GAAA,CAAA,CAAA,KAAA,CAAlBkpJ,CAAkBrpJ,CAAAA,OAAAA,CAAlBqpJ,CAAkB9wG,CAAAA,SAAAA,CAAAC,WAFf,MAAM,CAAA,CAEhB,CAAA,IAAO6wG,CAAPO,CAAAA,CAAAA,CAAAA,OAAOP,CAAkB,CAAA,ICElBQ,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAS3B52I,WAAoBitC,CAAAA,CAAAA,CAA4B,CAA5B,IAAA,CAAAA,cAAAA,CARZ,CAAA,IAAA,CAAA4pG,iBAAoB,CAAA,IAAItyG,KAAyB,CAAI,CAAA,CAAA,CACrD,IAAAuyG,CAAAA,kBAAAA,CAAqB,IAAIvyG,IAAAA,CAAyB,CAAK,CAAA,CAAA,CAC/D,KAAAwyG,2BAAmD,CAAA,IAAA,CAAKF,iBAAkBpyG,CAAAA,YAAAA,EAC1E,CAAA,IAAA,CAAAuyG,4BAAoD,CAAA,IAAA,CAAKF,mBAAmBryG,YAAY,EAAA,CAE/E,IAAAwyG,CAAAA,cAAAA,CAAiBC,IAAS,CAAA,IAAA,CAAKJ,kBAAkB,CAAA,CACjD,KAAAK,eAAkBvyH,CAAAA,EAAAA,CAAO,CAAEmoB,KAAAA,CAAO,CAAG1C,CAAAA,MAAAA,CAAQ,CAAC,CAAE,EAEN,CAEnD+sG,uBAAAA,CAAwBC,CAAiB,CAAA,CACrC,IAAKR,CAAAA,iBAAAA,CAAkBh7H,IAAKw7H,CAAAA,CAAQ,EACxC,CACAC,yBAAAA,CAA0BC,CAAqB,CAAA,CAC3C,IAAKT,CAAAA,kBAAAA,CAAmBj7H,IAAK07H,CAAAA,CAAY,EAC7C,CAEAC,sBAAAA,CAAuBC,CAAS,CAAA,CAC5B,IAAMC,CAAAA,CAAS,YAAeD,CAAAA,CAAAA,CAC9B,OAAO,IAAKxqG,CAAAA,aAAAA,CAAczd,GAAIkoH,CAAAA,CAAM,CACxC,CAEAC,yBAAAA,CAA0BF,CAAS,CAAA,CAC/B,IAAMG,CAAkB,CAAA,eAAA,CAAkBH,CAC1C,CAAA,OAAO,IAAKxqG,CAAAA,aAAAA,CAAczd,GAAIooH,CAAAA,CAAe,CACjD,CACAC,kBAAAA,CAAmBJ,CAAWK,CAAAA,CAAAA,CAAiB,CAC3C,IAAMF,CAAkB,CAAA,eAAA,CAAkBH,EAC1C,IAAKxqG,CAAAA,aAAAA,CAAckP,GAAIy7F,CAAAA,CAAAA,CAAiB,MAAQE,CAAAA,CAAY,EAChE,CAEAC,iBAAiBN,CAAWK,CAAAA,CAAAA,CAAiB,CACzC,IAAMJ,EAAS,YAAeD,CAAAA,CAAAA,CAC9B,IAAKxqG,CAAAA,aAAAA,CAAckP,IAAIu7F,CAAQ,CAAA,MAAA,CAAQI,CAAY,EACvD,CAEAziC,SAAAA,CAAU/hH,CAAWtC,CAAAA,CAAAA,CAAYgnJ,EAAW,CACxC,IAAMC,CAAS,CAAA,IAAI50G,IACb+xF,CAAAA,CAAAA,CAAO8iB,QAASF,CAAAA,CAAAA,CAAQ,EAAE,CAC3B10G,CAAAA,KAAAA,CAAM8xF,CAAI,CAAA,CAIX,IAAKnoF,CAAAA,aAAAA,CAAckP,GAAI7oD,CAAAA,CAAAA,CAAMtC,CAAK,CAHlCinJ,EAAAA,CAAAA,CAAOE,OAAQF,CAAAA,CAAAA,CAAOpyD,SAAYuvC,CAAAA,CAAI,CACtC,CAAA,IAAA,CAAKnoF,cAAckP,GAAI7oD,CAAAA,CAAAA,CAAMtC,CAAO,CAAA,CAAEwkH,OAASyiC,CAAAA,CAAAA,CAAOxiC,WAAW,EAAE,CAAE,CAI7E,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA9CSmhC,CAAkB5nH,EAAAA,GAAAA,CAAA0kB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAxmD,GAAA,CAAA,CAAA,KAAA,CAAlB0pJ,EAAkB7pJ,OAAlB6pJ,CAAAA,CAAAA,CAAkBtxG,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,CAEhB,CAAA,IAAOqxG,EAAPwB,CAAOxB,CAAAA,OAAAA,CAAkB,CAAA,ICElByB,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAC3Br4I,WACY04C,CAAAA,CAAAA,CACAge,CAAiC,CAAA,CADjC,KAAAhe,GAAAA,CAAAA,CAAAA,CACA,IAAAge,CAAAA,YAAAA,CAAAA,CAGZ,CAAA,IAAA,CAAA4hF,gBAAoBC,CAAAA,CAAAA,EACT,KAAK7/F,GAAIkD,CAAAA,IAAAA,CAAK,8BAAgC28F,CAAAA,CAAAA,CAAO,CACxDxuD,YAAAA,CAAc,MACd/tC,CAAAA,eAAAA,CAAiB,GACjB2H,WAAa,CAAA,CAAA,CAAA,CAChB,CAGL,CAAA,IAAA,CAAA60F,oBAAsB,CAACC,CAAAA,CAA+BC,CAC3C,GAAA,IAAA,CAAKhgG,IAAIkD,IACZ,CAAA,iCAAA,CACA,CAAE68F,oBAAAA,CAAAA,CAAsBC,CAAAA,aAAAA,CAAAA,CAAa,CAAA,CACrC,CAAE3uD,YAAc,CAAA,MAAA,CAAQ/tC,eAAiB,CAAA,CAAA,CAAA,CAAM2H,WAAa,CAAA,CAAA,CAAK,CAAE,CAAA,CAI3E,KAAAM,QAAYm7D,CAAAA,CAAAA,EAA8B,CACtC,IAAM5qH,CAAmB,CAAA,CACrBqtH,IAAMzC,CAAAA,CAAAA,CACNxmH,KAAMsrD,EAAY2yE,CAAAA,KAAAA,CAClB7U,QAAU59D,CAAAA,IAAAA,CAAgBqjC,OAC1Bw6B,KAAO,CAAA,iBAAA,CAAA,CAEPztH,CACA,GAAA,IAAA,CAAKkiE,aAAap0D,GAAI9N,CAAAA,CAAO,CAC7ByuC,CAAAA,UAAAA,CAAW,IAAM,IAAA,CAAKyzB,YAAa/H,CAAAA,KAAAA,GAAS,GAAI,CAAA,EAExD,EA7BG,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAJM0pF,CAAkBrpH,EAAAA,GAAAA,CAAAwU,EAAA,CAAA,CAAAxU,IAAA41B,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA13D,GAAA,CAAA,CAAA,KAAA,CAAlBmrJ,CAAkBtrJ,CAAAA,OAAAA,CAAlBsrJ,CAAkB/yG,CAAAA,SAAAA,CAAAC,WAFf,MAAM,CAAA,CAEhB,CAAA,IAAO8yG,EAAPM,CAAON,CAAAA,OAAAA,CAAkB,CAAA,QCJlBO,EAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAP,CAAA,MAAOA,CAAgB,CAH7B54I,aAAA,CAIY,IAAA,CAAA64I,kBAAqB,CAAA,IAAIt0G,IAAqB,CAAA,IAAI,CAC1D,CAAA,IAAA,CAAAu0G,wBAA2C,IAAKD,CAAAA,kBAAAA,CAAmBp0G,YAAY,GAAA,CAC/Es0G,gBAAiB5jJ,CAAAA,CAAAA,CAAQ,CACrB,IAAA,CAAK0jJ,mBAAmBh9H,IAAK1mB,CAAAA,CAAG,EACpC,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EALSyjJ,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA1rJ,GAAA,CAAA,CAAA,KAAA,CAAhB0rJ,CAAgB7rJ,CAAAA,OAAAA,CAAhB6rJ,EAAgBtzG,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAEhB,CAAA,IAAOqzG,CAAPI,CAAAA,CAAAA,CAAAA,OAAOJ,CAAgB,CAAA,ICE7B,IAAaK,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAC3Bj5I,WACY8vF,CAAAA,CAAAA,CACA+kC,CAAgC,CAAA,CADhC,IAAA/kC,CAAAA,sBAAAA,CAAAA,EACA,IAAA+kC,CAAAA,eAAAA,CAAAA,EACT,CACHtpG,UAAU2tH,CAAgB,CAAA,CACtB,GAAIA,CAAAA,CAAU,CACV,IAAMC,CAAAA,CAAmB,IAAKrpD,CAAAA,sBAAAA,CAAuBxtB,eAAe,EAAA,CAChE82E,CAA4B,CAAA,CAAA,CAChC,GAAID,CAAkB,CAAA,CAClB,IAAME,CAAAA,CAAmBF,CAAiBG,CAAAA,aAAAA,CAC1CF,CAAoB,CAAA,IAAA,CAAKvkB,gBAAgBvB,wBAAyB+lB,CAAAA,CAAgB,EACtF,CACA,IAAIE,CAAAA,CAAyBH,CAAoB,CAAA,GAAA,CACjD,GAAID,CAAkBK,EAAAA,eAAAA,EAAiB1wI,MAAS,CAAA,CAAA,EAAKqwI,EAAiBK,eAAgB,CAAA,CAAC,CAAEC,CAAAA,aAAAA,CAAe,CACpG,IAAMC,CAAAA,CAA0B,IAAK7kB,CAAAA,eAAAA,CAAgBvB,wBAAyB6lB,CAAAA,CAAAA,CAAiBK,eAAgB,CAAA,CAAC,EAAEC,aAAa,CAAA,CAC3HC,CAA0B,CAAA,CAAA,GAC1BH,CAAyBA,CAAAA,CAAAA,CAAyBG,CAA0B,CAAA,GAAA,EAEpF,CACA,IAAMltE,CAAAA,CAAK,IAAInpC,IAAAA,CACT4jF,CAAYiyB,CAAAA,CAAAA,CAAW,GAAOK,CAAAA,CAAAA,CAAyB/sE,EAAGgnD,iBAAiB,EAAA,CAAK,EAAK,CAAA,GAAA,CACrFmmB,EAAiB,IAAIt2G,IAAAA,CAAK4jF,CAAS,CAAA,CAEzC,OADmB,IAAK4N,CAAAA,eAAAA,CAAgBT,aAAc,CAAA,IAAI/wF,IAAKs2G,CAAAA,CAAc,CAAC,CAElF,CACJ,CA1BSV,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkBn7G,GAAAyiC,CAAAA,IAAAA,CAAA,EAAA,CAAA,CAAAziC,GAAAi1F,CAAAA,IAAAA,CAAA,EAAA,CAAA,CAAA,CAAlBkmB,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAkBlnB,IAAA,CAAA,CAAA,CAAA,CAAApnG,UAAA,CAAA,CAAA,CAAA,CAAA,CAAzB,CAAA,IAAOsuH,CAAPW,CAAAA,CAAAA,CAAAA,OAAOX,CAAkB,CAAA,GAAA,CCJ/B,IAAa96G,EAAAA,CAAAA,CAAS,IAAA,CAAhB,IAAOA,CAAP,CAAA,MAAOA,CAAS,CAClB,IAAIpB,YAAAA,EAAY,CACZ,OAAOwL,MACX,CAHSpK,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAS,CAATA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAASpxC,OAAToxC,CAAAA,CAAAA,CAASmH,UAAAC,UAFN,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOpH,CAAAA,CAAP07G,CAAO17G,CAAAA,OAAAA,CAAS,ICEtB,CAAA,IAAa27G,EAAwB,CAAA,CAAA,IAAA,CAA/B,IAAOA,CAAAA,CAAP,MAAOA,CAAwB,CACjC95I,WAAoBouG,CAAAA,CAAAA,CAAgC,CAAhC,IAAA,CAAAA,eAAAA,CAAAA,EAAmC,CAEvDrmC,KAAAA,CAAMnE,EAAqBC,CAAuBC,CAAAA,CAAAA,CAAuBC,CAAsBg2E,CAAAA,CAAAA,CAA6B,CAAK,CAAA,CAAA,CAC7H,IAAK3rC,CAAAA,eAAAA,EAAiBj4D,aAAa,gBAAkB,CAAA,CACjD,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB4jG,CAAAA,CAAAA,CAAoB,YAAe,CAAA,YAAA,CAC3D,wBAAyBn2E,CACzB,CAAA,yBAAA,CAA2BC,CAC3B,CAAA,yBAAA,CAA2BC,EAC3B,wBAA0BC,CAAAA,CAAAA,CAC1B,sBAAwB,CAAA,gBAAA,CAC3B,EACL,CAEAi2E,WAAAA,CACIp2E,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAg2E,CAA6B,CAAA,CAAA,CAAA,CAC7BE,EAAqB,EAAE,CAAA,CAEvB,IAAK7rC,CAAAA,eAAAA,EAAiBj4D,YAAa,CAAA,gBAAA,CAAkB,CACjD,yBAAA,CAA2B,QAC3B,sBAAwB4jG,CAAAA,CAAAA,CAAoB,YAAe,CAAA,YAAA,CAC3D,uBAAyBn2E,CAAAA,CAAAA,CACzB,yBAA2BC,CAAAA,CAAAA,CAC3B,0BAA2BC,CAC3B,CAAA,wBAAA,CAA0BC,CAC1B,CAAA,sBAAA,CAAwBk2E,GAA0B,gBAClD,CAAA,8BAAA,CAAgC,SACnC,CAAA,EACL,yCAjCSH,CAAwB9qH,EAAAA,GAAAA,CAAAi1C,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA/2E,GAAA,CAAA,CAAA,KAAA,CAAxB4sJ,CAAwB/sJ,CAAAA,OAAAA,CAAxB+sJ,EAAwBx0G,SAAAC,CAAAA,UAAAA,CAFrB,MAAM,CAAA,CAEhB,CAAA,IAAOu0G,CAAPI,CAAAA,CAAAA,CAAAA,OAAOJ,CAAwB,CAAA,ICLxBK,IAAAA,EAAAA,CAAkB,KAClBC,CAAAA,EAAAA,CAA0B,aAC1BC,CAAAA,EAAAA,CAAyB,aACzBC,EAA0B,CAAA,cAAA,CAC1BC,EAAyB,CAAA,YAAA,CAmMzBC,EAAgC,CAAA,CAAC,MAAQ,CAAA,OAAA,CAAS,YAAa,QAAU,CAAA,QAAQ,CACjFC,CAAAA,EAAAA,CAAoC,CAAC,MAAA,CAAQ,WAAa,CAAA,QAAA,CAAU,SAAU,OAAO,EC1MlG,IAAYC,IAAAA,CAAZ,SAAYA,CAAAA,CAAuB,CAC/BA,OAAAA,EAAA,iBAAA,CAAA,oBAAA,CACAA,CAAA,CAAA,mBAAA,CAAA,sBACAA,CAAAA,CAAAA,CAAA,iBAAA,CAAA,oBAAA,CACAA,EAAA,mBAAA,CAAA,sBAAA,CAJQA,CAKZ,CAAA,CALYA,MAAuB,EAAA,CCUnC,CAAA,IAAaC,IAAmB,IAAA,CAA1B,IAAOA,CAAAA,CAAP,MAAOA,CAAmB,CAHhC36I,WAAAA,EAAA,CAIqB,IAAAmtC,CAAAA,UAAAA,CAAapjB,GAAOygB,CAAAA,EAAiB,CACrC,CAAA,IAAA,CAAAnP,qBAAwBtR,CAAAA,GAAAA,CAAOuU,GAAqB,CACrE,CAAA,IAAA,CAAAs8G,2BAAuC,CAAA,CAAA,EAAA,CAEvCC,+CAA+C,EAAA,CAC3C,IAAMC,CAAAA,CAAyB,KAAK3tG,UAAW3E,CAAAA,QAAAA,CAAS+F,QAElDwsG,CAAAA,CAAAA,CADqB,KAAK1/G,qBAAsBgjB,CAAAA,yBAAAA,EACE28F,CAAAA,gBAAAA,CAClDC,EAAsCF,CAA6BG,CAAAA,YAAAA,CACnEC,CAAqCJ,CAAAA,CAAAA,CAA6BK,WACxE,CAAA,OAAIL,CACA,CAAA,IAAA,CAAKH,4BAA8BK,CAA0B3uF,CAAAA,IAAAA,CAAM+uF,CAAgBP,EAAAA,CAAAA,CAAe9mF,QAASqnF,CAAAA,CAAW,CAAC,CAAA,CAChHF,EACP,IAAKP,CAAAA,2BAAAA,CAA8B,CAACO,CAAAA,CAAyB7uF,IAAMgvF,CAAAA,CAAAA,EAAeR,CAAe9mF,CAAAA,QAAAA,CAASsnF,CAAU,CAAC,CAAA,CAErH,IAAKV,CAAAA,2BAAAA,CAA8B,GAEhC,IAAKA,CAAAA,2BAChB,CAEAW,gBAAAA,EAAgB,CACZ52F,aAAc,CAAA,IAAID,WAAYg2F,CAAAA,IAAAA,CAAwBc,iBAAiB,CAAC,CACxE72F,CAAAA,aAAAA,CAAc,IAAID,WAAYg2F,CAAAA,IAAAA,CAAwBe,mBAAmB,CAAC,EAC9E,CAEAC,gBAAgB,EAAA,CACZ/2F,cAAc,IAAID,WAAAA,CAAYg2F,IAAwBiB,CAAAA,iBAAiB,CAAC,CAAA,CACxEh3F,aAAc,CAAA,IAAID,YAAYg2F,IAAwBkB,CAAAA,mBAAmB,CAAC,EAC9E,CAEAC,kBAAAA,EAAkB,CACV,IAAA,CAAKhB,iDAAqD,EAAA,IAAA,CAAKD,2BAC/D,CAAA,IAAA,CAAKW,gBAAgB,EAAA,CAErB,IAAKG,CAAAA,gBAAAA,GAEb,CArCSf,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAmB,CAAnBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAmB5tJ,OAAnB4tJ,CAAAA,CAAAA,CAAmBr1G,SAAAC,CAAAA,UAAAA,CAFhB,MAAM,CAAA,CAAA,CAEhB,IAAOo1G,CAAAA,CAAPmB,CAAOnB,CAAAA,OAAAA,CAAmB,CAAA,GAAA,KCFnBj0G,EAAmB,CAAA,CAAA,IAAA,CAA1B,IAAOA,EAAP,MAAOA,CAAmB,CAHhC1mC,WAAAA,EAAA,CAIqB,IAAAq7B,CAAAA,qBAAAA,CAAwBtR,GAAOuU,CAAAA,GAAqB,CACpD,CAAA,IAAA,CAAA2O,aAAgBljB,CAAAA,GAAAA,CAAO2pB,EAAa,EAErDqoG,CAAAA,aAAAA,CAAc1tG,CAAa,CAAA,CACvB,IAAMvhD,CAAAA,CAAc,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,qBACzC28G,CAAAA,CAAAA,CAAW,IAAK/uG,CAAAA,aAAAA,CAAc4lD,aAAc,CAAA,WAAW,CACzDopD,CAAAA,CAAAA,CACJ,OAAID,CACAC,CAAAA,CAAAA,CAAa5tG,CAAUmC,EAAAA,YAAAA,EAAc+X,YAAY2zF,0BAC3C7tG,CAAAA,CAAAA,EAAUmC,YAAc+X,EAAAA,UAAAA,EAAY2zF,2BACpCpvJ,CAAO69D,CAAAA,mBAAAA,CAAoB,0BAEjCsxF,CAAAA,CAAAA,CAAa5tG,CAAUmC,EAAAA,YAAAA,EAAc+X,UAAY4zF,EAAAA,kBAAAA,CAC3C9tG,GAAUmC,YAAc+X,EAAAA,UAAAA,EAAY4zF,kBACpCrvJ,CAAAA,CAAAA,CAAO69D,mBAAoB,CAAA,kBAAA,CAE9BsxF,CACX,CAEAG,gBAAgB/tG,CAAa,CAAA,CACzB,IAAMvhD,CAAAA,CAAc,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAC5D6H,EAAuBmH,CAAUmC,EAAAA,YAAAA,EAAc+X,UAAY8zF,EAAAA,oBAAAA,CAC3DhuG,GAAUmC,YAAc+X,EAAAA,UAAAA,EAAY8zF,oBACpCvvJ,CAAAA,CAAAA,CAAO69D,oBAAoB,oBACjC,CAAA,OAAQtc,CAASiuG,CAAAA,iBAAAA,CAA2C,IAAvBp1G,CAAAA,CACzC,CAEAq1G,kBAAAA,CAAmBluG,EAAa,CAC5B,IAAMvhD,CAAc,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EAI/C,CAAA,OAH4BgP,GAAUmC,YAAc+X,EAAAA,UAAAA,EAAYi0F,mBAC1DnuG,CAAAA,CAAAA,EAAUmC,YAAc+X,EAAAA,UAAAA,EAAYi0F,mBACpC1vJ,CAAAA,CAAAA,CAAO69D,oBAAoB,mBAErC,CAEA8xF,uBAAwBpuG,CAAAA,CAAAA,CAAa,CACjC,IAAMvhD,CAAc,CAAA,IAAA,CAAKuuC,sBAAsBgE,mBAAmB,EAAA,CAIlE,OAH6BgP,CAAAA,EAAUmC,YAAc+X,EAAAA,UAAAA,EAAYm0F,oBAC3DruG,CAAAA,CAAAA,EAAUmC,cAAc+X,UAAYm0F,EAAAA,oBAAAA,CACpC5vJ,CAAO69D,CAAAA,mBAAAA,CAAoB,oBAErC,CAEAgyF,2BAA4BtuG,CAAAA,CAAAA,CAAa,CACrC,IAAMvhD,CAAAA,CAAc,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAIlE,OAHiCgP,CAAAA,EAAUmC,cAAc+X,UAAYq0F,EAAAA,wBAAAA,CAC/DvuG,CAAUmC,EAAAA,YAAAA,EAAc+X,YAAYq0F,wBACpC9vJ,CAAAA,CAAAA,CAAO2yC,QAAS,CAAA,wBAE1B,CAEAo9G,8BAA+BxuG,CAAAA,CAAAA,CAAa,CACxC,IAAMvhD,CAAc,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,GAI/C,OAHoCgP,CAAAA,EAAUmC,YAAc+X,EAAAA,UAAAA,EAAYu0F,2BAClEzuG,CAAAA,CAAAA,EAAUmC,YAAc+X,EAAAA,UAAAA,EAAYu0F,4BACpChwJ,CAAO2yC,CAAAA,QAAAA,CAAS,2BAE1B,CAEAwH,WAAYpJ,CAAAA,CAAAA,CAAUqH,CAAa,CAAA,CAC/B,IAAMqrB,CAAsB,CAAA,IAAA,CAAKl1B,qBAAsBU,CAAAA,qBAAAA,GACnDkL,CAAc,CAAA,EAAA,CAClB,GAAIspB,CAAAA,EAAgBwsF,gBAAiB,CACjC,GAAM,CAAE,CAAC73G,CAAQ,EAAGJ,CAAM,CAAA,CAAKyrB,EAAewsF,eAC9C,CAAA,GAAIj4G,CACA,CAAA,IAAA,IAAWk4G,CAASl4G,IAAAA,CAAAA,CACZA,CAAOk4G,CAAAA,CAAK,IACZ/1G,CAAc+1G,CAAAA,CAAAA,EAI9B,CACA,GAAI/1G,CAAepJ,EAAAA,CAAAA,EAAOA,CAAI6K,CAAAA,OAAAA,CAAQzB,CAAW,CAAI,CAAA,CAAA,CAAG,CACpD,IAAMtC,EAAM9G,CAAK3vB,EAAAA,KAAAA,CAAM,GAAG,CAAA,CAC1By2B,GAAK6d,MAAO7d,CAAAA,CAAAA,CAAI77B,MAAS,CAAA,CAAA,CAAG,CAAGm+B,CAAAA,CAAW,CAC1CpJ,CAAAA,CAAAA,CAAM8G,EAAIw1E,IAAK,CAAA,GAAG,EACtB,CACA,OAAOt8E,CACX,CA/ES6I,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAmB,0BAAnBA,CAAmB35C,CAAAA,OAAAA,CAAnB25C,CAAmBpB,CAAAA,SAAAA,CAAAC,UAFhB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOmB,CAAPu2G,CAAAA,CAAAA,CAAAA,OAAOv2G,CAAmB,CAAA,ICyMhC,SAASw2G,EAAAA,CAAUC,CAAS,CAAA,CAC1BC,GAAkC,CAAA,CAClC,IAAMhuI,CAAAA,CAAe2a,GAAOszH,CAAAA,IAAAA,CAAc,CACxC,QAAA,CAAU,EACZ,CAAC,CAAA,CACKC,CAAavzH,CAAAA,GAAAA,CAAOwzH,IAAU,CAAA,CAC9BC,CAAiB,CAAA,GACvBF,CAAW,CAAA,SAAA,CAAU,IAAME,CAAAA,CAAe,OAAQC,CAAAA,CAAAA,EAAMA,CAAG,CAAA,WAAA,EAAa,CAAC,CAAA,CAoBzE,SAASC,CAAAA,CAASC,EAAMC,CAAY,CAAA,CAClC,IAAM51H,CAAAA,CAAW,OAAO41H,CAAe,EAAA,QAAA,CAAW9wF,GAAA1K,CAAAA,GAAAA,CAAA,EAC7Cw7F,CAAAA,CAAAA,CAAAA,CAD6C,CAGhD,KAAA,CAAO7iJ,GAAK,CACV6iJ,CAAAA,CAAW,KAAQ7iJ,GAAAA,CAAC,CACpBqU,CAAAA,CAAAA,EAAc,WAAYrU,CAAAA,CAAC,EAC7B,CACF,CAAA,CAAA,CAAI,CACF,IAAA,CAAM6iJ,CACN,CAAA,KAAA,CAAO7iJ,CAAKqU,EAAAA,CAAAA,EAAc,YAAYrU,CAAC,CACzC,CACM8iJ,CAAAA,CAAAA,CAAMhwJ,KAAK8vJ,CAAI,CAAA,CAAE,SAAU31H,CAAAA,CAAQ,EACzC,OAAAw1H,CAAAA,CAAe,IAAKK,CAAAA,CAAG,CAChB,CAAA,IAAMA,CAAI,CAAA,WAAA,EACnB,CAmBA,SAASC,CAAUhnJ,CAAAA,CAAAA,CAAU,CAC3B,OAAOwmJ,CAAW,CAAA,SAAA,CAAUxmJ,CAAQ,CACtC,CACA,IAAMinJ,CAAAA,CAAU,CACd,QAAA,CAAAL,CACA,CAAA,SAAA,CAAAI,CACF,CACA,CAAA,OAAAX,CAAUY,GAAAA,CAAO,EACVA,CACT,CCxQaC,IAAAA,EAAAA,CAAAA,CAA2B,IAAA,CAAlC,IAAOA,CAAP,CAAA,MAAOA,CAA2B,CAHxCh+I,WAAA,EAAA,CAII,KAAAi+I,mBAAsB,CAAA,IAAI15G,IAAwB,CAAA,EAAE,CACpD,CAAA,IAAA,CAAA25G,sBAA0C,CAAA,IAAA,CAAKD,oBAAoBx5G,YAAY,EAAA,CAC/E,IAAA05G,CAAAA,6BAAAA,CAAyC,CAGxB,CAAA,CAAA,IAAA,CAAAjB,SAAYA,CAAAA,EAAAA,GACZ,IAAAttD,CAAAA,KAAAA,CAAQ7lE,GAAO+xE,CAAAA,IAAc,CAC7B,CAAA,IAAA,CAAA9gE,IAAOjR,CAAAA,GAAAA,CAAOkU,GAAW,CACzB,CAAA,IAAA,CAAA24B,kBAAqB7sC,CAAAA,GAAAA,CAAOy7B,EAAkB,CAAA,CAC9C,IAAAnqB,CAAAA,qBAAAA,CAAwBtR,IAAOuU,GAAqB,CAAA,CACpD,IAAAic,CAAAA,0BAAAA,CAA6BxwB,GAAOgwB,CAAAA,IAA0B,CAC9D,CAAA,IAAA,CAAAqkG,wBAA0Br0H,GAAO+qH,CAAAA,EAAuB,CACxD,CAAA,IAAA,CAAAjoG,aAAgB9iB,CAAAA,GAAAA,CAAO0pB,IAAa,EAAA,CAErD2rF,WAAS,CACL,IAAA,CAAK8d,SAAUQ,CAAAA,QAAAA,CAAS,KAAK9tD,KAAMgvC,CAAAA,WAAAA,CAAc31F,CAAe,EAAA,CAC5D,KAAKg1G,mBAAoBpiI,CAAAA,IAAAA,CAAKotB,CAAO,CAAA,cAAiB,EAC1D,CAAC,EACL,CAEAo1G,4BAA4BC,CAAmB,CAAA,CAC3C,IAAKC,CAAAA,wBAAAA,CAA2BD,EACpC,CAEAE,4BAA4B,EAAA,CACxB,IAAMC,CAA+B,CAAA,IAAA,CAAKpjH,qBAAsBkX,CAAAA,oBAAAA,EAC1DmsG,CAAAA,CAAAA,CAAuB,IAAKrjH,CAAAA,qBAAAA,CAAsB+rB,wBAClDlN,CAAAA,CAAAA,CAAkB,IAAKK,CAAAA,0BAAAA,CAA2BJ,wBAEpD,CAAA,CAAA,CAAC,IAAKnf,CAAAA,IAAAA,CAAKkR,iBAAoB,IAAKlR,CAAAA,IAAAA,CAAKkR,eAAmB,EAAA,CAAC,IAAKiyG,CAAAA,6BAAAA,IAC9DO,CAAgBr3F,CAAAA,iBAAAA,EAAqB,CAACnN,CAAiBykG,EAAAA,qBAAAA,EACvD,IAAK/nF,CAAAA,kBAAAA,CAAmB1P,SAAS,EAAA,CAEjCu3F,CAAwBG,CAAAA,sBAAAA,EACxB,KAAKhoF,kBAAmB3L,CAAAA,qBAAAA,EAExB,CAAA,IAAA,CAAKjwB,IAAKkR,CAAAA,eAAAA,GAAiB,IAAKiyG,CAAAA,6BAAAA,CAAgC,KAE5E,CAEAU,wBAAAA,CAAyBC,CAAkB,CAAA,CACvC,IAAMl4F,CAAkB,CAAA,EACxBk4F,CAAAA,OAAAA,EAAcngG,OAASogG,CAAAA,CAAAA,EAAW,CAC1BA,CAAAA,EAAM,IACNn4F,EAAAA,CAAAA,CAASrE,IAAKw8F,CAAAA,CAAAA,CAAGrK,QAAQ,EAEjC,CAAC,CACM9tF,CAAAA,CACX,CAEAo4F,2BAAAA,CAA4B7vG,CAAiB,CAAA,CACzC,GAAI,CAACA,CAAAA,CACD,OAAOA,CAAAA,CAGX,IAAM8vG,CAAAA,CADsB,IAAK5jH,CAAAA,qBAAAA,CAAsB28D,4BACjBknD,CAAAA,8BAAAA,CAA+BnpJ,MAChEopJ,CAAAA,CAAAA,EAAeA,CAAMhwG,CAAAA,SAAAA,EAAagwG,CAAMhwG,CAAAA,SAAAA,EAAWpH,aAAiBoH,EAAAA,CAAAA,EAAWpH,WAAW,EAAE,CAEjG,CAAA,OAAIk3G,CAAaA,EAAAA,CAAAA,CAAUn2I,OAAS,CACzBqmC,CAAAA,CAAAA,CAAY,GAAM,CAAA,IAAA,CAAKovG,wBAA2B,CAAA,GAAA,CAEtDpvG,CACX,CAEAiwG,kCAAkCllG,CAAoB,CAAA,CAClD,IAAMukG,CAAAA,CAA+B,IAAKpjH,CAAAA,qBAAAA,CAAsBkX,oBAAoB,EAAA,CAC9E8sG,EAA8B,IAAKhkH,CAAAA,qBAAAA,CAAsBikH,6BAA6B,EAAA,CACtFZ,EAAuB,IAAKrjH,CAAAA,qBAAAA,CAAsB+rB,sBAAsB,EAAA,CAAA,CAC1E,CAAC,IAAKpsB,CAAAA,IAAAA,CAAKkR,eAAoB,EAAA,IAAA,CAAKlR,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAKiyG,iCAC9DO,CAAgBr3F,CAAAA,iBAAAA,EAAqB,CAACnN,CAAAA,EAAiBykG,qBACvD,GAAA,IAAA,CAAK/nF,kBAAmBjN,CAAAA,QAAAA,GACxB,IAAKiN,CAAAA,kBAAAA,CAAmB1P,SAAS,EAAA,CAAA,CAEjCu3F,CAAwBG,CAAAA,sBAAAA,EACxB,IAAKhoF,CAAAA,kBAAAA,CAAmB3L,uBAExB,CAAA,IAAA,CAAKjwB,IAAKkR,CAAAA,eAAAA,GAAiB,KAAKiyG,6BAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAEpEkB,CAAwBE,EAAAA,wBAAAA,EAA4B,KAAK1yG,aAAc4xB,CAAAA,aAAAA,EAAiBvkB,CAAgBkyE,CAAAA,KAAAA,EACxG,IAAKgyB,CAAAA,uBAAAA,CAAwBnJ,yBAAyB,GAE9D,yCAlFS+I,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA9wJ,GAAA,CAAA,CAAA,KAAA,CAA3B8wJ,CAA2BjxJ,CAAAA,OAAAA,CAA3BixJ,CAA2B14G,CAAAA,SAAAA,CAAAC,UAFxB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOy4G,CAAPwB,CAAAA,CAAAA,CAAAA,OAAOxB,CAA2B,CAAA,IC4DxC,IAAa1/G,KAAqB,IAAA,CAA5B,IAAOA,CAAAA,CAAP,MAAOA,CAAqB,CAoE9Bt+B,WACYy/I,CAAAA,CAAAA,CACA7mG,EACA8mG,CACAzkH,CAAAA,CAAAA,CAAU,CAHV,IAAA,CAAAwkH,mBAAAA,CAAAA,CAAAA,CACA,IAAA7mG,CAAAA,iBAAAA,CAAAA,EACA,IAAA8mG,CAAAA,UAAAA,CAAAA,CACA,CAAA,IAAA,CAAAzkH,IAAAA,CAAAA,CAAAA,CA1CZ,IAAA0kH,CAAAA,+BAAAA,CAAkC,IAAIp7G,IAAyB,CAAA,CAAA,CAAK,CAEpE,CAAA,IAAA,CAAAg7D,4BAAoD,CAAA,IAAA,CAAKogD,+BAAgCl7G,CAAAA,YAAAA,GAyCtF,CAEHm7G,gBAAAA,CAAiBxzB,CAAc,CAAA,CAC3B,GAAIA,CAAAA,CACA,IAAK1wF,CAAAA,YAAAA,CAAe,KAAK+jH,mBAAoBjwH,CAAAA,GAAAA,CAAIa,IAA4B,CAAA,CAC7E,IAAKwvH,CAAAA,kBAAAA,CAAqB,IAAKJ,CAAAA,mBAAAA,CAAoBjwH,IAAI4E,IAAwB,CAAA,CAC/E,IAAKm8B,CAAAA,cAAAA,CAAiB,IAAKkvF,CAAAA,mBAAAA,CAAoBjwH,GAAIkC,CAAAA,IAAoB,EACvE,IAAKutF,CAAAA,YAAAA,CAAe,IAAKwgC,CAAAA,mBAAAA,CAAoBjwH,GAAI8E,CAAAA,IAAkB,CACnE,CAAA,IAAA,CAAKwrH,wBAA0B,IAAKL,CAAAA,mBAAAA,CAAoBjwH,GAAI4B,CAAAA,IAAiB,EAC7E,IAAKge,CAAAA,SAAAA,CAAY,IAAKqwG,CAAAA,mBAAAA,CAAoBjwH,IAAImG,IAAmB,CAAA,CACjE,IAAKiR,CAAAA,UAAAA,CAAa,IAAK64G,CAAAA,mBAAAA,CAAoBjwH,GAAIuD,CAAAA,IAAsB,EACrE,IAAKgtH,CAAAA,kBAAAA,CAAqB,IAAKN,CAAAA,mBAAAA,CAAoBjwH,GAAI8K,CAAAA,EAAwB,CAC/E,CAAA,IAAA,CAAK0lH,iBAAmB,IAAKP,CAAAA,mBAAAA,CAAoBjwH,GAAIkK,CAAAA,EAAsB,CAC3E,CAAA,IAAA,CAAKumH,mBAAsB,CAAA,IAAA,CAAKR,oBAAoBjwH,GAAIwE,CAAAA,IAAyB,CACjF,CAAA,IAAA,CAAKgsF,aAAe,IAAKy/B,CAAAA,mBAAAA,CAAoBjwH,GAAIqG,CAAAA,IAAkB,EACnE,IAAKqqH,CAAAA,gBAAAA,CAAmB,IAAKT,CAAAA,mBAAAA,CAAoBjwH,GAAI8F,CAAAA,IAA4B,CACjF,CAAA,IAAA,CAAKgd,cAAgB,IAAKmtG,CAAAA,mBAAAA,CAAoBjwH,GAAIyF,CAAAA,IAAuB,CACzE,CAAA,IAAA,CAAKkrH,sBAAyB,CAAA,IAAA,CAAKV,oBAAoBjwH,GAAIqH,CAAAA,EAA4B,CACvF,CAAA,IAAA,CAAK+wE,iBAAoB,CAAA,IAAA,CAAK63C,mBAAoBjwH,CAAAA,GAAAA,CAAIqE,IAAuB,CAC7E,CAAA,IAAA,CAAKmkF,oBAAuB,CAAA,IAAA,CAAKynC,oBAAoBjwH,GAAIgB,CAAAA,IAA2B,CACpF,CAAA,IAAA,CAAKkuH,gBAAkB,IAAKe,CAAAA,mBAAAA,CAAoBjwH,GAAIqC,CAAAA,IAAqB,CACzE,CAAA,IAAA,CAAKsrC,qBAAwB,CAAA,IAAA,CAAKsiF,oBAAoBjwH,GAAIC,CAAAA,IAA2B,CACrF,CAAA,IAAA,CAAK2wH,YAAe,CAAA,IAAA,CAAKX,mBAAoBjwH,CAAAA,GAAAA,CAAIgL,EAAwB,CACzE,CAAA,IAAA,CAAK6lH,eAAkB,CAAA,IAAA,CAAKZ,mBAAoBjwH,CAAAA,GAAAA,CAAIoJ,EAAqB,CAAA,CACzE,KAAK0nH,qBAAwB,CAAA,IAAA,CAAKb,mBAAoBjwH,CAAAA,GAAAA,CAAI6H,EAA2B,CACrF,CAAA,IAAA,CAAKkpH,oBAAuB,CAAA,IAAA,CAAKd,oBAAoBjwH,GAAIiJ,CAAAA,EAA0B,CACnF,CAAA,IAAA,CAAK+nH,kBAAqB,CAAA,IAAA,CAAKf,mBAAoBjwH,CAAAA,GAAAA,CAAI8B,IAAwB,CAC/E,CAAA,IAAA,CAAKmvH,mBAAsB,CAAA,IAAA,CAAKhB,mBAAoBjwH,CAAAA,GAAAA,CAAIqK,EAAyB,CAAA,CACjF,KAAKgxG,gBAAmB,CAAA,IAAA,CAAK4U,mBAAoBjwH,CAAAA,GAAAA,CAAIgG,IAAsB,CAAA,CAC3E,IAAKkrH,CAAAA,oBAAAA,CAAuB,KAAKjB,mBAAoBjwH,CAAAA,GAAAA,CAAIuH,EAA0B,CAAA,CACnF,KAAK4pH,qBAAwB,CAAA,IAAA,CAAKlB,mBAAoBjwH,CAAAA,GAAAA,CAAI8G,IAA2B,CACrF,CAAA,IAAA,CAAK4b,eAAkB,CAAA,IAAA,CAAKutG,mBAAoBjwH,CAAAA,GAAAA,CAAI+J,EAAqB,CAAA,CACzE,KAAKqnH,mBAAsB,CAAA,IAAA,CAAKnB,mBAAoBjwH,CAAAA,GAAAA,CAAI4I,EAAyB,CAAA,CACjF,IAAKyoH,CAAAA,eAAAA,CAAkB,KAAKpB,mBAAoBjwH,CAAAA,GAAAA,CAAI2K,EAA2B,CAAA,CAC/E,IAAK2jB,CAAAA,eAAAA,CAAkB,IAAK2hG,CAAAA,mBAAAA,CAAoBjwH,IAAIwB,IAAqB,CAAA,CACzE,IAAK8vH,CAAAA,oBAAAA,CAAuB,KAAKrB,mBAAoBjwH,CAAAA,GAAAA,CAAIyJ,EAA0B,CAAA,CACnF,KAAK8nH,mBAAsB,CAAA,IAAA,CAAKtB,mBAAoBjwH,CAAAA,GAAAA,CAAIiF,IAAyB,CAAA,CACjF,IAAKusH,CAAAA,qBAAAA,CAAwB,KAAKvB,mBAAoBjwH,CAAAA,GAAAA,CAAIyC,IAAqB,CAAA,CAC/E,IAAKwgH,CAAAA,2BAAAA,CAA8B,IAAKgN,CAAAA,mBAAAA,CAAoBjwH,IAAIoF,IAAiC,CAAA,CACjG,IAAK4sE,CAAAA,gBAAAA,CAAmB,IAAKi+C,CAAAA,mBAAAA,CAAoBjwH,GAAIkB,CAAAA,IAA4B,EACjF,IAAKuoB,CAAAA,cAAAA,CAAiB,IAAKwmG,CAAAA,mBAAAA,CAAoBjwH,IAAII,IAAoB,CAAA,CACvE,IAAKqxH,CAAAA,YAAAA,CAAe,KAAKxB,mBAAoBjwH,CAAAA,GAAAA,CAAI6J,EAAkB,CAAA,CACnE,IAAKy4D,CAAAA,iBAAAA,CAAoB,IAAK2tD,CAAAA,mBAAAA,CAAoBjwH,IAAI0H,EAAuB,CAAA,CAC7E,IAAKwvF,CAAAA,2BAAAA,CAA8B,IAAK+4B,CAAAA,mBAAAA,CAAoBjwH,GAAIgC,CAAAA,IAAiC,EACjG,IAAK0vH,CAAAA,yBAAAA,CAA4B,IAAKzB,CAAAA,mBAAAA,CAAoBjwH,GAAIgE,CAAAA,IAAyB,CACvF,CAAA,IAAA,CAAKsjD,eAAiB,IAAK2oE,CAAAA,mBAAAA,CAAoBjwH,GAAIoI,CAAAA,IAAoB,CACvE,CAAA,IAAA,CAAKupH,sBAAyB,CAAA,IAAA,CAAK1B,oBAAoBjwH,GAAIyI,CAAAA,EAAsB,CACjF,CAAA,IAAA,CAAKmpH,wBAA2B,CAAA,IAAA,CAAK3B,mBAAoBjwH,CAAAA,GAAAA,CAAI6D,IAAwB,CACrF,CAAA,IAAA,CAAKguH,eAAkB,CAAA,IAAA,CAAK5B,mBAAoBjwH,CAAAA,GAAAA,CAAIb,IAAqB,CAAA,CACzE,KAAK2yH,wBAA2B,CAAA,IAAA,CAAK7B,mBAAoBjwH,CAAAA,GAAAA,CAAIkD,IAA8B,CAAA,CAC3F,IAAK6uH,CAAAA,iBAAAA,CAAoB,KAAK9B,mBAAoBjwH,CAAAA,GAAAA,CAAIoD,IAAuB,CAAA,CAC7E,KAAK4uH,YAAe,CAAA,IAAA,CAAK/B,mBAAoBjwH,CAAAA,GAAAA,CAAIqB,IAAkB,CACnE,CAAA,IAAA,CAAK4wH,sBAAyB,CAAA,IAAA,CAAKhC,mBAAoBjwH,CAAAA,GAAAA,CAAI4F,IAA4B,CAAA,CACvF,KAAKssH,oBAAuB,CAAA,IAAA,CAAKjC,mBAAoBjwH,CAAAA,GAAAA,CAAIuF,IAA0B,CAAA,CACnF,IAAK6uG,CAAAA,yBAAAA,CAA4B,KAAK6b,mBAAoBjwH,CAAAA,GAAAA,CAAIkE,IAA+B,CAAA,CAC7F,IAAKiuH,CAAAA,iBAAAA,CAAoB,IAAKlC,CAAAA,mBAAAA,CAAoBjwH,IAAIwK,EAAuB,CAAA,CAC7E,IAAK4nH,CAAAA,wBAAAA,CAA2B,KAAKnC,mBAAoBjwH,CAAAA,GAAAA,CAAI2C,IAA8B,CAAA,CAC3F,KAAK8jH,yBAA4B,CAAA,IAAA,CAAKwJ,mBAAoBjwH,CAAAA,GAAAA,CAAIsJ,IAA+B,CAAA,CAC7F,IAAKumH,CAAAA,sBAAAA,CAAyB,KAAKI,mBAAoBjwH,CAAAA,GAAAA,CAAI+I,EAA4B,CAAA,CACvF,IAAKspH,CAAAA,wBAAAA,CAA2B,IAAKpC,CAAAA,mBAAAA,CAAoBjwH,IAAI2G,IAAwB,CAAA,CACpF,IAAK2rH,CAAAA,iBAAAA,CAAoB,IAAKrC,CAAAA,mBAAAA,CAAoBjwH,GAAIO,CAAAA,IAAuB,EACzE,IAAKgyH,CAAAA,sBAAAA,CAAyB,IAAKtC,CAAAA,mBAAAA,CAAoBjwH,IAAIuI,EAA4B,CAAA,CACvF,IAAKiqH,CAAAA,iBAAAA,CAAoB,KAAKvC,mBAAoBjwH,CAAAA,GAAAA,CAAIwG,IAAuB,CAAA,CAClF,IAAKisH,CAAAA,kBAAAA,CAAqB,IAAKxC,CAAAA,mBAAAA,CAAoBjwH,IAAI+C,IAAwB,CAAA,CAC/E,IAAK2vH,CAAAA,qBAAAA,CAAwB,IAAKzC,CAAAA,mBAAAA,CAAoBjwH,GAAIyD,CAAAA,IAA2B,EACrF,IAAKkvH,CAAAA,uBAAAA,CAA0B,IAAK1C,CAAAA,mBAAAA,CAAoBjwH,GAAIiI,CAAAA,EAA6B,CACzF,CAAA,IAAA,CAAK2qH,gBAAkB,IAAK3C,CAAAA,mBAAAA,CAAoBjwH,GAAIS,CAAAA,IAA2B,CAC/E,CAAA,IAAA,CAAKoyH,cAAiB,CAAA,IAAA,CAAK5C,oBAAoBjwH,GAAIkH,CAAAA,EAA0B,CAC7E,CAAA,IAAA,CAAK4rH,+BAA+B,EAAA,CAAA,KACjC,CACH,IAAMrzJ,EAAe,CAAE6sD,OAAAA,CAAS,EAAE,CAClC7sD,CAAAA,CAAAA,CAAQ6sD,OAAQ,CAAA,eAAe,EAAI,UACnC7sD,CAAAA,CAAAA,CAAQ6sD,OAAQ,CAAA,MAAA,CAAY,UAC5B7sD,CAAAA,CAAAA,CAAQ6sD,OAAQ,CAAA,OAAA,CAAa,IAC7B7sD,CAAQ6sD,CAAAA,OAAAA,CAAQ,mBAAmB,CAAA,CAAI,KAAK7gB,IAAK8gB,CAAAA,WAAAA,CACjD9sD,CAAQ+sD,CAAAA,eAAAA,CAAkB,GAC1B,IAAK0jG,CAAAA,UAAAA,CAAWlwH,GAAI,CAAA,IAAA,CAAKopB,iBAAkBrB,CAAAA,kBAAAA,EAAsBtoD,CAAAA,CAAO,EAAEo3B,SAAW+2B,CAAAA,CAAAA,EAAiB,CAC9FA,CAAAA,GACA,IAAK1hB,CAAAA,YAAAA,CAAe0hB,CAASmlG,CAAAA,cAAAA,CAC7B,KAAKhyF,cAAiBnT,CAAAA,CAAAA,CAASolG,UAC/B,CAAA,IAAA,CAAKpzG,SAAYgO,CAAAA,CAAAA,CAASqlG,SAC1B,CAAA,IAAA,CAAKxjC,aAAe7hE,CAASslG,CAAAA,QAAAA,CAC7B,IAAK7C,CAAAA,kBAAAA,CAAqBziG,EAASulG,oBACnC,CAAA,IAAA,CAAK7C,uBAA0B1iG,CAAAA,CAAAA,CAASwlG,oBACxC,IAAK3C,CAAAA,mBAAAA,CAAsB7iG,CAASylG,CAAAA,eAAAA,CACpC,IAAKj8G,CAAAA,UAAAA,CAAawW,CAAS0lG,CAAAA,YAAAA,CAC3B,KAAK9C,gBAAmB5iG,CAAAA,CAAAA,CAAS2lG,kBACjC,CAAA,IAAA,CAAK/iC,YAAe5iE,CAAAA,CAAAA,CAAS4lG,QAC7B,CAAA,IAAA,CAAK9C,iBAAmB9iG,CAAS6lG,CAAAA,kBAAAA,CACjC,IAAK3wG,CAAAA,aAAAA,CAAgB8K,CAAS8lG,CAAAA,aAAAA,CAC9B,IAAK/C,CAAAA,sBAAAA,CAAyB/iG,EAAS+lG,kBACvC,CAAA,IAAA,CAAKv7C,iBAAoBxqD,CAAAA,CAAAA,CAASgmG,oBAClC,IAAKprC,CAAAA,oBAAAA,CAAuB56D,CAASimG,CAAAA,6BAAAA,CACrC,KAAK3E,eAAkBthG,CAAAA,CAAAA,CAASkmG,wBAChC,CAAA,IAAA,CAAKnmF,qBAAwB/f,CAAAA,CAAAA,CAASmmG,sBACtC,CAAA,IAAA,CAAKlD,gBAAkBjjG,CAASomG,CAAAA,WAAAA,CAChC,IAAKpD,CAAAA,YAAAA,CAAehjG,CAASqmG,CAAAA,cAAAA,CAC7B,IAAKnD,CAAAA,qBAAAA,CAAwBljG,EAASsmG,iBACtC,CAAA,IAAA,CAAKnD,oBAAuBnjG,CAAAA,CAAAA,CAASumG,gBACrC,CAAA,IAAA,CAAKnD,kBAAqBpjG,CAAAA,CAAAA,CAASwmG,eACnC,IAAKnD,CAAAA,mBAAAA,CAAsBrjG,CAASymG,CAAAA,qBAAAA,CACpC,IAAKlD,CAAAA,qBAAAA,CAAwBvjG,CAAS0mG,CAAAA,iBAAAA,CACtC,KAAKjZ,gBAAmBztF,CAAAA,CAAAA,CAAS2mG,eACjC,CAAA,IAAA,CAAKrD,oBAAuBtjG,CAAAA,CAAAA,CAAS4mG,gBACrC,CAAA,IAAA,CAAKpD,oBAAsBxjG,CAAS6mG,CAAAA,qBAAAA,CACpC,IAAK/xG,CAAAA,eAAAA,CAAkBkL,CAAS8mG,CAAAA,WAAAA,CAChC,IAAKrD,CAAAA,eAAAA,CAAkBzjG,EAAS+mG,WAChC,CAAA,IAAA,CAAKrmG,eAAkBV,CAAAA,CAAAA,CAASgnG,WAChC,CAAA,IAAA,CAAKtD,oBAAuB1jG,CAAAA,CAAAA,CAASinG,iBACrC,IAAKtD,CAAAA,mBAAAA,CAAsB3jG,CAASknG,CAAAA,eAAAA,CACpC,KAAKtD,qBAAwB5jG,CAAAA,CAAAA,CAASmnG,WACtC,CAAA,IAAA,CAAK/iD,iBAAmBpkD,CAASonG,CAAAA,kBAAAA,CACjC,IAAK/R,CAAAA,2BAAAA,CAA8Br1F,CAASqnG,CAAAA,6BAAAA,CAC5C,IAAKxrG,CAAAA,cAAAA,CAAiBmE,EAASsnG,gBAC/B,CAAA,IAAA,CAAKzD,YAAe7jG,CAAAA,CAAAA,CAASunG,cAC7B,CAAA,IAAA,CAAK7yD,iBAAoB10C,CAAAA,CAAAA,CAASwnG,wBAClC,IAAKvD,CAAAA,eAAAA,CAAkBjkG,CAASynG,CAAAA,iBAAAA,CAChC,IAAKn+B,CAAAA,2BAAAA,CAA8BtpE,CAAS0nG,CAAAA,uBAAAA,CAC5C,KAAK3D,sBAAyB/jG,CAAAA,CAAAA,CAAS2nG,kBACvC,CAAA,IAAA,CAAK3D,yBAA2BhkG,CAAS4nG,CAAAA,oBAAAA,CACzC,IAAK9D,CAAAA,yBAAAA,CAA4B9jG,EAAS6nG,qBAC1C,CAAA,IAAA,CAAKnuE,cAAiB15B,CAAAA,CAAAA,CAAS8nG,UAC/B,CAAA,IAAA,CAAK5D,wBAA2BlkG,CAAAA,CAAAA,CAAS+nG,qBACzC,IAAK5D,CAAAA,iBAAAA,CAAoBnkG,CAASgoG,CAAAA,mBAAAA,CAClC,IAAK5D,CAAAA,YAAAA,CAAepkG,CAASioG,CAAAA,cAAAA,CAC7B,KAAK5D,sBAAyBrkG,CAAAA,CAAAA,CAASkoG,wBACvC,CAAA,IAAA,CAAK5D,oBAAuBtkG,CAAAA,CAAAA,CAASmoG,sBACrC,CAAA,IAAA,CAAKxF,mBAAqB3iG,CAASooG,CAAAA,oBAAAA,CACnC,IAAK5D,CAAAA,wBAAAA,CAA2BxkG,EAASqoG,0BACzC,CAAA,IAAA,CAAKpG,sBAAyBjiG,CAAAA,CAAAA,CAASsoG,yBACvC,IAAKzD,CAAAA,kBAAAA,CAAqB7kG,CAASuoG,CAAAA,cAAAA,CACnC,IAAK1P,CAAAA,yBAAAA,CAA4B74F,CAASwoG,CAAAA,qBAAAA,CAC1C,KAAKhiB,yBAA4BxmF,CAAAA,CAAAA,CAASyoG,2BAC1C,CAAA,IAAA,CAAKhE,wBAA2BzkG,CAAAA,CAAAA,CAAS0oG,cACzC,CAAA,IAAA,CAAKhE,kBAAoB1kG,CAAS2oG,CAAAA,mBAAAA,CAClC,IAAKhE,CAAAA,sBAAAA,CAAyB3kG,CAAS4oG,CAAAA,wBAAAA,CACvC,IAAKhE,CAAAA,iBAAAA,CAAoB5kG,EAAS6oG,mBAClC,CAAA,IAAA,CAAK9D,uBAA0B/kG,CAAAA,CAAAA,CAAS8oG,mBACxC,CAAA,IAAA,CAAKhE,qBAAwB9kG,CAAAA,CAAAA,CAAS+oG,wBACtC,IAAK/D,CAAAA,eAAAA,CAAkBhlG,CAASgpG,CAAAA,iBAAAA,CAChC,IAAK/D,CAAAA,cAAAA,CAAiBjlG,CAASipG,CAAAA,gBAAAA,CAE/B,KAAK/D,+BAA+B,EAAA,EAE5C,CAAC,EACL,CACJ,CAEAA,+BAA+B,EAAA,CAC3B,KAAK3C,+BAAgC9jI,CAAAA,IAAAA,CAAK,CAAI,CAAA,EAClD,CAEA8f,mBAAAA,EAAmB,CACf,OAAO,KAAKD,YAChB,CAEAK,qBAAqB,EAAA,CACjB,OAAO,IAAKw0B,CAAAA,cAChB,CAEAlhB,gBAAAA,EAAgB,CACZ,OAAO,IAAA,CAAKD,SAChB,CAEAk3G,YAAaC,CAAAA,CAAAA,CAAqB,CAC9B,IAAA,CAAKn3G,UAAUE,YAAei3G,CAAAA,EAClC,CAEAlnH,mBAAAA,EAAmB,CACf,OAAO,IAAK4/E,CAAAA,YAChB,CAEA5gE,yBAAyB,EAAA,CACrB,OAAO,IAAA,CAAKwhG,kBAChB,CAEApvF,wBAAwB,EAAA,CACpB,OAAO,IAAKqvF,CAAAA,uBAChB,CAEA9nD,0BAAAA,EAA0B,CACtB,OAAO,IAAA,CAAKioD,mBAChB,CAEAp5G,mBAAiB,CACb,OAAO,IAAKD,CAAAA,UAChB,CAEA4/G,uBAAAA,EAAuB,CACnB,OAAO,KAAKxG,gBAChB,CAEAyG,sBAAsB,EAAA,CAClB,OAAO,IAAA,CAAK5F,eAChB,CAEAhlH,qBAAmB,CACf,OAAO,IAAKmkF,CAAAA,YAChB,CAEA0mC,uBAAAA,EAAuB,CACnB,OAAO,KAAKxG,gBAChB,CAEA3tG,oBAAoB,EAAA,CAChB,OAAO,IAAKD,CAAAA,aAChB,CAEAgwE,6BAAAA,EAA6B,CACzB,OAAO,IAAA,CAAK69B,sBAChB,CAEAp8C,wBAAwB,EAAA,CACpB,OAAO,IAAA,CAAK6D,iBAChB,CAEA/sD,2BAAAA,EAA2B,CACvB,OAAO,IAAKm9D,CAAAA,oBAChB,CAEA5wD,sBAAAA,EAAsB,CAClB,OAAO,IAAA,CAAKs3F,eAChB,CAEAlO,4BAA4B,EAAA,CACxB,OAAO,IAAA,CAAK8P,qBAChB,CAEAljF,4BAAAA,EAA4B,CACxB,OAAO,IAAKD,CAAAA,qBAChB,CAEAwpF,sBAAAA,EAAsB,CAClB,OAAO,IAAA,CAAKtG,eAChB,CAEAuG,mBAAmB,EAAA,CACf,OAAO,IAAA,CAAKxG,YAChB,CAEAyG,2BAAAA,EAA2B,CACvB,OAAO,IAAKtG,CAAAA,oBAChB,CAEAuG,yBAAAA,EAAyB,CACrB,OAAO,IAAA,CAAKtG,kBAChB,CAEAppF,0BAA0B,EAAA,CACtB,OAAO,IAAA,CAAKqpF,mBAChB,CAEA7kC,4BAAAA,EAA4B,CACxB,OAAO,KAAK+kC,qBAChB,CAEA7V,uBAAuB,EAAA,CACnB,OAAO,IAAKD,CAAAA,gBAChB,CAEA6E,2BAAAA,EAA2B,CACvB,OAAO,IAAKgR,CAAAA,oBAChB,CAEAvuG,sBAAsB,EAAA,CAClB,OAAO,IAAA,CAAKD,eAChB,CAEA60G,0BAA0B,EAAA,CACtB,OAAO,IAAKnG,CAAAA,mBAChB,CAEA7iG,sBAAAA,EAAsB,CAClB,OAAO,IAAKD,CAAAA,eAChB,CAEAkpG,6BAA6B,EAAA,CACzB,OAAO,IAAA,CAAK7F,sBAChB,CAEA8F,+BAAAA,EAA+B,CAC3B,OAAO,KAAK7F,wBAChB,CAEAjoE,gCAAgC,EAAA,CAC5B,OAAO,IAAA,CAAK2nE,oBAChB,CAEAoG,4BAA0B,CACtB,OAAO,IAAKnG,CAAAA,mBAChB,CAEAl+E,4BAAAA,EAA4B,CACxB,OAAO,KAAKm+E,qBAChB,CAEAtO,wCAAwC,EAAA,CACpC,OAAO,IAAA,CAAKD,2BAChB,CAEAhxC,yBAAuB,CACnB,OAAO,IAAKD,CAAAA,gBAChB,CAEAtoD,qBAAqB,EAAA,CACjB,OAAO,IAAA,CAAKD,cAChB,CAEAkuG,mBAAAA,EAAmB,CACf,OAAO,IAAKlG,CAAAA,YAChB,CAEAlvD,wBAAAA,EAAwB,CACpB,OAAO,IAAA,CAAKD,iBAChB,CAEAs1D,sBAAsB,EAAA,CAClB,OAAO,IAAA,CAAK/F,eAChB,CAEAlxC,kCAAAA,EAAkC,CAC9B,OAAO,IAAKuW,CAAAA,2BAChB,CAEA2gC,0BAAAA,EAA0B,CACtB,OAAO,IAAA,CAAKnG,yBAChB,CAEAnqE,qBAAqB,EAAA,CACjB,OAAO,IAAA,CAAKD,cAChB,CAEAwwE,yBAAAA,EAAyB,CACrB,OAAO,IAAKvH,CAAAA,kBAChB,CAEAwH,+BAAAA,EAA+B,CAC3B,OAAO,IAAA,CAAKjG,wBAChB,CAEAkG,wBAAwB,EAAA,CACpB,OAAO,IAAA,CAAKjG,iBAChB,CAEAkG,mBAAAA,EAAmB,CACf,OAAO,IAAKjG,CAAAA,YAChB,CAEAkG,6BAAAA,EAA6B,CACzB,OAAO,IAAA,CAAKjG,sBAChB,CAEAkG,6BAA2B,CACvB,OAAO,IAAKjG,CAAAA,oBAChB,CAEA7d,gCAAgC,EAAA,CAC5B,OAAO,IAAA,CAAKD,yBAChB,CAEAgkB,wBAAwB,EAAA,CACpB,OAAO,IAAKjG,CAAAA,iBAChB,CAEAz5E,+BAAAA,EAA+B,CAC3B,OAAO,IAAK05E,CAAAA,wBAChB,CAEAtC,6BAA6B,EAAA,CACzB,OAAO,IAAA,CAAKD,sBAChB,CAEAwI,gCAAgC,EAAA,CAC5B,OAAO,IAAK5R,CAAAA,yBAChB,CACA6R,+BAAAA,EAA+B,CAC3B,OAAO,IAAA,CAAKjG,wBAChB,CAEA97E,2BAAyB,CACrB,OAAO,IAAK+7E,CAAAA,iBAChB,CAEAttC,6BAAAA,EAA6B,CACzB,OAAO,KAAKutC,sBAChB,CAEAgG,wBAAwB,EAAA,CACpB,OAAO,IAAA,CAAK/F,iBAChB,CAEAgG,8BAA4B,CACxB,OAAO,IAAK9F,CAAAA,qBAChB,CAEA+F,yBAAAA,EAAyB,CACrB,OAAO,KAAKhG,kBAChB,CAEArO,8BAA8B,EAAA,CAC1B,OAAO,IAAKuO,CAAAA,uBAChB,CAEAhsB,6BAAAA,EAA6B,CACzB,OAAO,IAAA,CAAKisB,eAChB,CACA8F,2BAA2B,EAAA,CACvB,OAAO,IAAA,CAAK7F,cAChB,CAjeS/jH,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAqBtP,GAAAm5H,CAAAA,IAAA,CAAAn5H,CAAAA,GAAAA,CAAA6nB,IAAA,CAAA,CAAA7nB,IAAAg/E,EAAA,CAAA,CAAAh/E,GAAAkP,CAAAA,GAAA,CAAA,CAAA,CAArBI,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAqBvxC,QAArBuxC,CAAqBgH,CAAAA,SAAAA,CAAAC,UAFlB,CAAA,MAAM,CAAA,CAAA,CAEhB,IAAOjH,CAAAA,CAAP8pH,SAAO9pH,CAAqB,CAAA,IC3ElC,IAAY+pH,EAAZ,CAAA,SAAYA,CAA2B,CAAA,CACnCA,OAAAA,CAAA,CAAA,WAAA,CAAA,4BACAA,CAAAA,CAAAA,CAAA,OAAA,CAAA,wBAAA,CACAA,CAAA,CAAA,gBAAA,CAAA,kCAHQA,CAIZ,CAAA,CAJYA,EAA2B,EAAA,EAAA,CAAA,CAM3BC,EAAZ,CAAA,SAAYA,EAAqB,CAC7BA,OAAAA,CAAA,CAAA,SAAA,CAAA,YACAA,CAAA,CAAA,OAAA,CAAA,SACAA,CAAAA,CAAAA,CAAA,uBAAA,wBAHQA,CAAAA,CAIZ,CAJYA,CAAAA,EAAAA,EAAqB,EAAA,CCUjC,CAAA,IAAaC,IAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAH/BvoJ,WAAAA,EAAA,CAIqB,IAAA4vF,CAAAA,KAAAA,CAAQ7lE,GAAO+xE,CAAAA,IAAc,CAC7B,CAAA,IAAA,CAAA5gE,SAAYnR,CAAAA,GAAAA,CAAOoU,EAAS,CAC5B,CAAA,IAAA,CAAAoc,0BAA6BxwB,CAAAA,GAAAA,CAAOgwB,IAA0B,CAC9D,CAAA,IAAA,CAAA/e,IAAOjR,CAAAA,GAAAA,CAAOkU,GAAW,CACzB,CAAA,IAAA,CAAA2lF,oBAAuB75F,CAAAA,GAAAA,CAAO45E,EAA2B,CAAA,CACzD,IAAAsI,CAAAA,6BAAAA,CAAgCliF,IAAOq9E,EAA6B,CAAA,CACpE,IAAA/rE,CAAAA,qBAAAA,CAAwBtR,GAAOuU,CAAAA,GAAqB,CACpD,CAAA,IAAA,CAAA+zE,wCAA0CtoF,GAAOq8E,CAAAA,EAAuC,EAEzGoiD,CAAAA,gCAAAA,EAAgC,CAC5B,GAAI,IAAK54D,CAAAA,KAAAA,CAAO,CACZ,IAAM64D,CAAAA,CAA6B,IAAK74D,CAAAA,KAAAA,CAAM6B,SAASC,aAAcliE,CAAAA,GAAAA,CAAI,6BAA6B,CAAA,CACtG,GAAIi5H,CAA8BA,EAAAA,CAAAA,GAA+B,OAC7D,CAAA,MAER,CACK,IAAA,CAAKluG,0BAA2BJ,CAAAA,sBAAAA,GAAyBiyE,KAAO,EAAA,IAAA,CAAKs8B,sBAAsB,EAAA,CAChG,IAAMl2C,CAAAA,CAAY,IAAKn3E,CAAAA,qBAAAA,CAAsB0oE,0BACzC,CAAA,IAAA,CAAK/oE,IAAKkR,CAAAA,eAAAA,EAAmB,IAAK03E,CAAAA,oBAAAA,CAAqB/f,QAClD2O,GAAAA,CAAAA,CAAUG,WAKP,IAAK1G,CAAAA,6BAAAA,EAA+B9G,kBACpC,GAAA,IAAA,CAAK8G,8BAA8B9G,kBAAmB4N,CAAAA,gBAAAA,CAAoBxO,CAAmC,EAAA,CACzG,GAAIA,CAAgB/jD,CAAAA,MAAAA,GAAW,WAAa,CAAA,CACxC,IAAK6xD,CAAAA,uCAAAA,CAAwC1L,oBAAoB,EAAA,CACjE,KAAKsF,6BAA8B3D,CAAAA,UAAAA,CAAW,CAC1CG,YAAAA,CAAc,CACjB,CAAA,CAAA,CAAA,CACD,MACJ,CACIlE,EAAgB/jD,MAAW,GAAA,cAAA,EAC3B,IAAK6xD,CAAAA,uCAAAA,CAAwC9L,qBAAsB,CAAA,CAC/DhC,eAAAA,CAAAA,CAAAA,CACAqC,eAAgB,IAAKvrE,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGI,SACjEglE,qBAAuB,CAAA,IAAA,CAAKwH,6BAC/B,CAAA,EAET,EACA,IAAKA,CAAAA,6BAAAA,EAA+B9G,kBAAoB6N,EAAAA,cAAAA,EArB5D,CAAA,CAAA,IAAA,CAAK/G,6BAA8B3D,CAAAA,UAAAA,CAAW,CAC1CG,YAAc,CAAA,CAAA,CAAA,CACjB,CAsBL,CAAA,IAAA,CAAKwD,6BAA8B9C,CAAAA,cAAAA,EACnC,CAAA,IAAA,CAAK8C,8BAA8B5C,uBAAuB,EAAA,EAElE,CAEQq/C,sBAAAA,EAAsB,CAC1B,IAAM9gD,CAAyB,CAAA,IAAA,CAAKvsE,sBAAsB0oE,wBAAwB,EAAA,CAClF6D,CAAkB+gD,CAAAA,UAAAA,EACd/gD,EAAkB+gD,UAAW7/I,CAAAA,MAAAA,CAAS,CACtC8+F,EAAAA,CAAAA,CAAkB+gD,WAAWhqG,OAASiqG,CAAAA,CAAAA,EAAoB,CACP,CAC3C,CAAElrD,UAAAA,CAAY2qD,EAA4BQ,CAAAA,WAAAA,CAAaC,WAAYR,EAAsBS,CAAAA,SAAS,CAClG,CAAA,CAAErrD,UAAY2qD,CAAAA,EAAAA,CAA4BW,OAASF,CAAAA,UAAAA,CAAYR,GAAsBW,OAAO,CAAA,CAC5F,CAAEvrD,UAAAA,CAAY2qD,EAA4Ba,CAAAA,gBAAAA,CAAkBJ,UAAYR,CAAAA,EAAAA,CAAsBa,sBAAsB,CAAE,CAAA,CAE3GxqG,OAASve,CAAAA,CAAAA,EAA6B,CAC7CwoH,CAAYlgH,CAAAA,OAAAA,CAAQtI,CAAIs9D,CAAAA,UAAU,EAAI,CACjC,CAAA,GAAA,IAAA,CAAKxiE,SAAU6B,CAAAA,YAAAA,CAAaqD,CAAI0oH,CAAAA,UAAU,CAC3C,EAAA,IAAA,CAAKM,wBAAwBR,CAAW,CAAA,EAGpD,CAAC,EACL,CAAC,EACT,CAEQQ,uBAAAA,CAAwBR,EAAmB,CAC/C,IAAMS,CAASpsH,CAAAA,QAAAA,CAASgO,aAAc,CAAA,QAAQ,CAC9Co+G,CAAAA,CAAAA,CAAOzwJ,KAAO,iBACdywJ,CAAAA,CAAAA,CAAOxrH,GAAM+qH,CAAAA,CAAAA,CACb3rH,QAASkO,CAAAA,IAAAA,CAAKC,WAAYi+G,CAAAA,CAAM,EACpC,CA3ESd,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAkB,CAAlBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAkBx7J,OAAlBw7J,CAAAA,CAAAA,CAAkBjjH,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,CAAA,CAEhB,IAAOgjH,CAAAA,CAAPe,CAAOf,CAAAA,OAAAA,CAAkB,CAAA,GAAA,KC8ClBtoF,IAAkB,CAAA,CAAA,IAAA,CAAzB,IAAOA,GAAP,CAAA,MAAOA,GAAkB,CAH/BjgE,aAAA,CAMI,IAAA,CAAAupJ,aAA8C,CAAA,IAAIpoH,IAClD,IAAAqoH,CAAAA,eAAAA,CAAoC,IAAIroH,GAAAA,CACxC,KAAAsoH,8BAAmD,CAAA,IAAItoH,GAEvD,CAAA,IAAA,CAAAuoH,mBAAsB,CAAA,IAAInlH,IAAqB,CAAA,IAAI,EACnD,IAAAolH,CAAAA,sBAAAA,CAA0C,IAAKD,CAAAA,mBAAAA,CAAoBjlH,YAAY,EAAA,CAC/E,IAAAmlH,CAAAA,kBAAAA,CAAqB,IAAIrlH,IAAqB,CAAA,IAAI,CAClD,CAAA,IAAA,CAAAslH,mCAAsC,CAAA,IAAItlH,IAAqB,CAAA,IAAI,EACnE,IAAAxD,CAAAA,eAAAA,CAAgD,IAAII,GAAAA,CACpD,KAAAkxD,qBAAyC,CAAA,IAAA,CAAKu3D,kBAAmBnlH,CAAAA,YAAAA,GACjE,IAAAqlH,CAAAA,sCAAAA,CAA0D,IAAKD,CAAAA,mCAAAA,CAAoCplH,YAAY,EAAA,CAG/G,IAAAggC,CAAAA,eAAAA,CAAuB,EACf,CAAA,IAAA,CAAAslF,+BAAkC,CAAA,IAAIxlH,IAAqB,CAAA,IAAI,CACvE,CAAA,IAAA,CAAAylH,qBAAuB,IAAIzlH,IAAAA,CAAqB,IAAI,CAAA,CACpD,IAAA0lH,CAAAA,qBAAAA,CAAyC,IAAKD,CAAAA,oBAAAA,CAAqBvlH,cACnE,CAAA,IAAA,CAAAylH,yBAA4B,CAAA,IAAI3lH,KAA+B,IAAI,CAAA,CACnE,IAAA4lH,CAAAA,0BAAAA,CAA8C,KAAKD,yBAA0BzlH,CAAAA,YAAAA,EAC7E,CAAA,IAAA,CAAA66F,yBAAiD,CAAA,IAAA,CAAKyqB,+BAAgCtlH,CAAAA,YAAAA,GAEtF,IAAA2lH,CAAAA,uBAAAA,CAA0B,IAAI7lH,IAAAA,CAAqB,IAAI,CAAA,CACvD,IAAA8lH,CAAAA,0BAAAA,CAA8C,KAAKD,uBAAwB3lH,CAAAA,YAAAA,EAC3E,CAAA,IAAA,CAAA6lH,2BAA8B,CAAA,IAAI/lH,IAAyB,CAAA,CAAA,CAAK,EAChE,IAAAgmH,CAAAA,qBAAAA,CAAyC,IAAKD,CAAAA,2BAAAA,CAA4B7lH,YAAY,EAAA,CACtF,IAAA+lH,CAAAA,oBAAAA,CAAsC,EACtC,CAAA,IAAA,CAAAC,uBAAmC,CAAA,CAAA,CAAA,CACnC,IAAAC,CAAAA,wBAAAA,CAAqC,EAAA,CAGrC,KAAAC,mBAA+B,CAAA,CAAA,CAAA,CACvB,IAAAC,CAAAA,qBAAAA,CAAiC,CACzC,CAAA,CAAA,IAAA,CAAAC,wBAAoC,CAAA,CAAA,CAAA,CACpC,KAAAC,0BAAsC,CAAA,CAAA,CAAA,CACtC,IAAAC,CAAAA,4BAAAA,CAAwC,CAGxC,CAAA,CAAA,IAAA,CAAA9yD,IAAY,CAAA,MAAA,CACZ,KAAA2iD,2BAAuC,CAAA,CAAA,CAAA,CACtB,IAAAliG,CAAAA,GAAAA,CAAM3uB,IAAOyZ,EAAkB,CAAA,CAC/B,IAAAiZ,CAAAA,gBAAAA,CAAmB1yB,IAAO0xB,IAAgB,CAAA,CAC1C,IAAAuX,CAAAA,YAAAA,CAAejpC,GAAO8lC,CAAAA,EAAmB,CACzC,CAAA,IAAA,CAAAx0B,sBAAwBtR,GAAOuU,CAAAA,GAAqB,CACpD,CAAA,IAAA,CAAAgc,aAAgBvwB,CAAAA,GAAAA,CAAOwc,EAAa,CAAA,CACpC,KAAAvL,IAAOjR,CAAAA,GAAAA,CAAOkU,GAAW,CAAA,CACzB,IAAA4O,CAAAA,aAAAA,CAAgB9iB,GAAO0pB,CAAAA,IAAa,EACpC,IAAAokF,CAAAA,kBAAAA,CAAqB9tG,GAAO4tD,CAAAA,EAAkB,EAC9C,IAAA18C,CAAAA,IAAAA,CAAOlR,GAAOmU,CAAAA,GAAI,EAClB,IAAAylF,CAAAA,UAAAA,CAAa55F,GAAO8sB,CAAAA,IAAiB,CACrC,CAAA,IAAA,CAAAgoD,aAAgB90E,CAAAA,GAAAA,CAAO0yE,IAAa,CACpC,CAAA,IAAA,CAAAhmC,gBAAmB1sC,CAAAA,GAAAA,CAAO+2B,IAAgB,CAAA,CAC1C,IAAA6V,CAAAA,sBAAAA,CAAyB5sC,IAAOgpC,EAAsB,CAAA,CACtD,IAAA1qB,CAAAA,qBAAAA,CAAwBte,GAAOwd,CAAAA,IAAqB,CACpD,CAAA,IAAA,CAAAyjH,oBAAsBjhI,GAAOyzG,CAAAA,EAAmB,CAChD,CAAA,IAAA,CAAAytB,kBAAoBlhI,GAAOqgH,CAAAA,EAAiB,CAC5C,CAAA,IAAA,CAAA8gB,gBAAkBnhI,GAAO6kH,CAAAA,EAAe,CACxC,CAAA,IAAA,CAAAuc,oBAAuBphI,CAAAA,GAAAA,CAAOmqH,EAAoB,CAAA,CAClD,KAAApkD,sBAAyB/lE,CAAAA,GAAAA,CAAOw2C,IAAsB,CAAA,CACtD,IAAA1nB,CAAAA,qBAAAA,CAAwB9uB,GAAOouB,CAAAA,IAAqB,EACpD,IAAA83C,CAAAA,gBAAAA,CAAmBlmE,GAAO4vD,CAAAA,IAAgB,CAC1C,CAAA,IAAA,CAAAyxE,gBAAmBrhI,CAAAA,GAAAA,CAAOyyB,EAAoB,CAC9C,CAAA,IAAA,CAAA6mE,OAAUt5F,CAAAA,GAAAA,CAAO2pB,EAAa,CAAA,CAC9B,IAAA23G,CAAAA,gBAAAA,CAAmBthI,IAAO6uH,EAAgB,CAAA,CAC1C,IAAA19G,CAAAA,SAAAA,CAAYnR,GAAOoU,CAAAA,EAAS,CAC5B,CAAA,IAAA,CAAAoc,2BAA6BxwB,GAAOgwB,CAAAA,IAA0B,CAC9D,CAAA,IAAA,CAAAuxG,yBAA4BvhI,CAAAA,GAAAA,CAAOy1G,EAAyB,CAAA,CAC5D,KAAAr+E,0BAA6Bp3B,CAAAA,GAAAA,CAAOswB,IAA0B,CAAA,CAC9D,IAAAjN,CAAAA,MAAAA,CAASrjB,GAAO4pB,CAAAA,EAAM,EACtB,IAAA43G,CAAAA,mBAAAA,CAAsBxhI,GAAOyhI,CAAAA,CAAmB,EAChD,IAAAj1C,CAAAA,mBAAAA,CAAsBxsF,GAAO0hI,CAAAA,EAAmB,EAChD,IAAAC,CAAAA,2BAAAA,CAA8B3hI,GAAOi0H,CAAAA,EAA2B,CAChE,CAAA,IAAA,CAAAx2G,gBAAmBzd,CAAAA,GAAAA,CAAOke,IAAgB,CAC1C,CAAA,IAAA,CAAA+7E,cAAiBj6F,CAAAA,GAAAA,CAAOopF,EAAc,CAAA,CACtC,IAAAw4C,CAAAA,mBAAAA,CAAsB5hI,IAAO4wH,EAAmB,CAAA,CAChD,IAAAiR,CAAAA,kBAAAA,CAAqB7hI,GAAOw+H,CAAAA,EAAkB,CAC9C,CAAA,IAAA,CAAA/hH,mBAAqBzc,GAAOsa,CAAAA,EAAkB,CAC9C,CAAA,IAAA,CAAAwqG,WAAa9kH,GAAOimH,CAAAA,IAAU,CAC9B,CAAA,IAAA,CAAAlsG,eAAiB/Z,GAAO6Z,CAAAA,IAAc,CACtC,CAAA,IAAA,CAAAuJ,UAAapjB,CAAAA,GAAAA,CAAOygB,EAAiB,EAAA,CAEtD40F,WAAS,CACL,IAAA,CAAK/jG,qBAAsBkkE,CAAAA,4BAAAA,CAA6Bl5E,SAAWm5E,CAAAA,CAAAA,EAAwB,CACvF,GAAIA,EAAsB,CACtB,IAAA,CAAKosD,kBAAmBpD,CAAAA,gCAAAA,EACxB,CAAA,IAAMtuG,CAAkB,CAAA,IAAA,CAAKK,2BAA2BJ,sBAAsB,EAAA,CACzED,CAAgB2xG,CAAAA,qBAAAA,EACjB,KAAKC,cAAe,CAAA,CAAA,CAAI,CAExB5xG,CAAAA,CAAAA,CAAgB2xG,uBAAyB3xG,CAAgBoB,CAAAA,mBAAAA,EAAuBpB,CAAgBoB,CAAAA,mBAAAA,CAAoBxyC,MAAS,CAAA,CAAA,EAC7H,IAAKijJ,CAAAA,uCAAAA,CAAwC7xG,EAAgBoB,mBAAqB,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAC7F,IAAKjgB,CAAAA,qBAAAA,CAAsBirH,YAAapsG,CAAAA,CAAAA,CAAgBoB,mBAAmB,CACpEpB,EAAAA,CAAAA,CAAgB2xG,qBAAyB3xG,EAAAA,CAAAA,CAAgB8xG,kBAChE,EAAA,IAAA,CAAKC,iCAAiC,EAAA,CAG1C,KAAKC,gBAAmB,CAAA,IAAA,CAAKC,yBAAyB,GAC1D,CACJ,CAAC,CAAA,CACD,IAAK95D,CAAAA,qBAAAA,CAAsBhsE,UAAW+lI,CAAkB,EAAA,CAChDA,CACA,EAAA,IAAA,CAAKC,aAAcD,CAAAA,CAAAA,CAAeE,aAAa,EAEvD,CAAC,CACD,CAAA,IAAA,CAAKtxH,IAAKq2C,CAAAA,MAAAA,CAAO3sC,IAAK3uC,CAAAA,IAAAA,CAAQgF,CAAWA,EAAAA,CAAAA,YAAawxJ,IAAc,CAAC,CAAA,CAAElmI,SAAU,CAAA,IAAK,CAC9E,IAAA,CAAKkjI,aAAiB,EAAA,IAAA,CAAKA,cAAcp+H,IAAO,CAAA,CAAA,EAChD,IAAKo+H,CAAAA,aAAAA,CAAc56F,OAEnB,CAAA,IAAA,CAAK5tB,eAAmB,EAAA,IAAA,CAAKA,gBAAgB5V,IAAO,CAAA,CAAA,EACpD,IAAK4V,CAAAA,eAAAA,CAAgB4tB,KAAK,EAAA,CAE9B,IAAK69F,CAAAA,cAAAA,CAAe,GAAO,CAAI,CAAA,CAAA,CAC/B,IAAKZ,CAAAA,kBAAAA,CAAmBpD,gCAAgC,EAAA,CACxD,IAAKiE,CAAAA,wBAAAA,CAA2B,GACpC,CAAC,CAAA,CACD,IAAKzxH,CAAAA,IAAAA,CAAKq2C,MAAO3sC,CAAAA,IAAAA,CAAK3uC,IAAQgF,CAAAA,CAAAA,EAAWA,aAAa2xJ,EAAmB,CAAC,CAAErmI,CAAAA,SAAAA,CAAU,IAAK,CACvF,IAAA,CAAKg9F,OAAQ35F,CAAAA,MAAAA,CAAO,YAAY,EACpC,CAAC,CACc,CAAA,IAAA,CAAK25F,OAAQphE,CAAAA,SAAAA,CAAU,YAAY,CAAA,EAE9C,KAAKohE,OAAQ35F,CAAAA,MAAAA,CAAO,YAAY,EAExC,CAEAijI,mBAAAA,EAAmB,CACf,GAAI,CACA,IAAKt/G,CAAAA,aAAAA,CACD,CAAC,IAAA,CAAK7F,gBAAiBiI,CAAAA,gBAAAA,EACvB,IAAK5C,CAAAA,aAAAA,CAAc6C,SACnB,CAACnH,MAAAA,CAAOoH,UAAW,CAAA,iBAAiB,EAAEC,OACtC,EAAA,CAACC,SAAUC,CAAAA,SAAAA,CAAU5mC,MAAM,OAAkB,EACrD,CAAgB,KAAA,CACZ,IAAKmkC,CAAAA,aAAAA,CAAgB,cAAkB9E,GAAAA,MAAAA,EAAUsH,UAAUE,cAAiB,CAAA,EAChF,CACJ,CAEQk8G,iCAAiC,EAAA,CACrC,IAAM9wG,CAAAA,CAAgB,KAAK9f,qBAAsBwf,CAAAA,2BAAAA,EACjD,CAAA,IAAA,CAAKsG,0BAA2B3G,CAAAA,gBAAAA,CAAiB,CAAI,CAAA,CAAA,CACrD,IAAM3R,CAAyB,CAAA,IAAA,CAAKR,qBAAsBZ,CAAAA,iBAAAA,EAC1D,CAAA,GAAI0T,CAAeL,EAAAA,mBAAAA,EAAuBK,EAAcL,mBAAoBhyC,CAAAA,MAAAA,CAAS,CAAG,CAAA,CACpF,IAAMuyC,CAAAA,CAA+BF,CAAcL,CAAAA,mBAAAA,CAAoB/kD,OAClEhI,CAAWA,EAAAA,CAAAA,EAAG86C,cAAgBd,EAAAA,WAAAA,EAAkBc,GAAAA,CAAAA,EAAgBd,WAAW,EAAE,EAE9EsT,CAA2BA,EAAAA,CAAAA,CAAwBvyC,MAAS,CAAA,CAAA,GAC5D,IAAKijJ,CAAAA,uCAAAA,CAAwC1wG,CAAyB,CAAA,CAAA,CAAA,CAAM,EAAK,CACjF,CAAA,IAAA,CAAKhgB,qBAAsBirH,CAAAA,YAAAA,CAAajrG,CAAuB,CAEvE,EAAA,CACJ,CAEQgxG,aAAAA,CAAcO,EAA8B,CAIhD,GAHIA,CACA,EAAA,IAAA,CAAKA,qBAAsBA,CAAAA,CAAqB,CAEhD,CAAA,IAAA,CAAK5xH,KAAKkR,eAAiB,CAAA,CAC3B,IAAM2gH,CAAAA,CACF,IAAKt2C,CAAAA,mBAAAA,CAAoBR,KAAMK,CAAAA,IAAAA,CAASyC,WAAW,CAAK,EAAA,IAAA,CAAKtC,mBAAoBR,CAAAA,KAAAA,CAAMK,IAAS02C,CAAAA,WAAW,CACrGF,CAAAA,CAAAA,CACA,GACV,IAAKJ,CAAAA,cAAAA,CAAe,CAAMK,CAAAA,CAAAA,CAAY,EAC1C,CAEJ,CAEAE,wBAAyB1+G,CAAAA,CAAAA,CAAa,CAClC,GAAIA,CAAAA,EAAUmC,YAAcw8G,EAAAA,aAAAA,EAAiB3+G,CAASmC,CAAAA,YAAAA,CAAaw8G,aAAclkJ,CAAAA,MAAAA,CAAS,EAAG,CACzF,IAAMmkJ,CAAa5+G,CAAAA,CAAAA,CAASmC,YAAaw8G,CAAAA,aAAAA,CAAcj3J,MAAQm3J,CAAAA,CAAAA,EACpDA,EAAGC,cACb,CAAA,CACKC,CAAgB/+G,CAAAA,CAAAA,CAASmC,YAAaw8G,CAAAA,aAAAA,CAAcj3J,MAAQm3J,CAAAA,CAAAA,EACvD,CAACA,CAAGC,CAAAA,cACd,CACD,CAAA,GAAI,CAAC,IAAKnyH,CAAAA,IAAAA,CAAKkR,eAAmBkhH,EAAAA,CAAAA,GAAgB,CAAC,CAC/C,CAAA,OAAOA,CAAc,CAAA,CAAC,CACnB,CAAA,GAAI,IAAKpyH,CAAAA,IAAAA,CAAKkR,gBAAiB,CAClC,GAAI,CAAC,IAAA,CAAKlR,IAAK4+C,CAAAA,MAAAA,CAAOpqD,GAAI,CAAA,UAAU,GAAK49H,CAAc,CAAA,CAAC,CACpD,CAAA,OAAOA,CAAc,CAAA,CAAC,CACnB,CAAA,GAAI,KAAKpyH,IAAK4+C,CAAAA,MAAAA,CAAOpqD,GAAI,CAAA,UAAU,CAAKy9H,EAAAA,CAAAA,CAAW,CAAC,CAAA,CACvD,OAAOA,CAAW,CAAA,CAAC,CAChB,CAAA,GAAIA,CAAWnkJ,CAAAA,MAAAA,EAAU,CAAKskJ,EAAAA,CAAAA,GAAgB,CAAC,CAClD,CAAA,OAAOA,CAAc,CAAA,CAAC,CAE9B,CACJ,CACJ,CAEA,IAAIC,uBAAuB,EAAA,CACvB,OAAO,IAAA,CAAKzC,qBAChB,CAEA0C,+BAAgC9sG,CAAAA,CAAAA,CAAe,CAC3C,IAAKoqG,CAAAA,qBAAAA,CAAwBpqG,EACjC,CAEQ+sG,wBAAsB,CAC1B,GAAI,IAAK7C,CAAAA,wBAAAA,EAA0B5hJ,OAAQ,CACvC,IAAMg3H,CAAc,CAAA,CAAC,GAAG,IAAI/2C,GAAI,CAAA,IAAA,CAAK2hE,yBAAyBtqH,GAAK7vC,CAAAA,CAAAA,EAASA,CAAK,CAAA,IAAA,CAAK0nG,IAAI,CAAC,CAAC,CAAC,EAC7F,IAAKqzD,CAAAA,yBAAAA,CAA0BzrB,YAAaC,CAAAA,CAAW,EAC3D,CACJ,CAEA0tB,YAAAA,EAAY,CACJ,IAAKC,CAAAA,sBAAAA,EAA0B,IAAKpyH,CAAAA,qBAAAA,CAAsB0rH,4BAA8BnwG,EAAAA,SAAAA,EACxF,IAAKu0G,CAAAA,oBAAAA,CAAqB1W,kBAE1B,CAAA,IAAA,CAAKz5G,IAAKkR,CAAAA,eAAAA,CACN,IAAKu+G,CAAAA,uBAAAA,GACL,IAAK5yB,CAAAA,kBAAAA,CAAmBt/C,gBACxB,CAAA,IAAA,CAAK5hB,sBAAuBpD,CAAAA,kBAAAA,EAGhC,CAAA,CAAA,IAAA,CAAKk6F,sBACL,EAAA,IAAA,CAAKpyH,sBAAsBU,qBAAqB,EAAA,EAAI2xH,4BACpD,EAAA,IAAA,CAAKrqC,OAAQ7zF,CAAAA,GAAAA,CAAI,aAAa,CAAA,EAE9B,KAAKqoG,kBAAmBt/C,CAAAA,cAAAA,GAEhC,CAEQq0E,sBAAsBA,CAA8B,CAAA,CAAA,CACpD,CAAC,IAAA,CAAK5xH,KAAKkR,eAAoB,EAAA,IAAA,CAAKlR,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAK2+G,wBAClE,IAAA,IAAA,CAAKhsD,cAAcd,UAAU,EAAA,CACzB,IAAK/iE,CAAAA,IAAAA,CAAKkR,eACV,CAAA,IAAA,CAAK2+G,wBAA2B,CAAA,CAAA,CAAA,CAEhC,KAAK0C,sBAAsB,EAAA,CAAA,CAGZ,IAAKlyH,CAAAA,qBAAAA,CAAsBgU,gBAAgB,EAAA,CACpDs+G,4BAAgC,EAAA,CAAC,KAAKlB,wBAChD,GAAA,IAAA,CAAK50B,kBAAmBt/C,CAAAA,cAAAA,EACxB,CAAA,IAAA,CAAK9hB,gBAAiB1U,CAAAA,iBAAAA,GACtB,IAAK4U,CAAAA,sBAAAA,CAAuBpD,kBAAkB,EAAA,CAC9C,IAAKk5F,CAAAA,wBAAAA,CAA2B,CAEpC,CAAA,CAAA,CAAA,IAAMl8F,EAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACtEme,CAAkB,CAAA,IAAA,CAAKK,0BAA2BJ,CAAAA,sBAAAA,GACxD,IAAKuxG,CAAAA,2BAAAA,CAA4BlN,4BAA4B,EAAA,CAC7D,IAAMngD,CAAAA,CAAqB,CAAC,GAAG,IAAItV,GAAI,CAAA,IAAA,CAAKyhE,oBAAqBpqH,CAAAA,GAAAA,CAAK7vC,GAASA,CAAK,CAAA,IAAA,CAAK0nG,IAAI,CAAC,CAAC,CAAC,CAAA,CAChG,IAAK4G,CAAAA,aAAAA,CAAcT,mBAAoBC,CAAAA,CAAkB,CAC9B,CAAA,IAAA,CAAKhjE,sBAAsByrH,yBAAyB,EAAA,CACxD8G,kBACnB,EAAA,IAAA,CAAK5C,mBAAoBntB,CAAAA,2BAAAA,EAE7B,CAAA,IAAMgN,EAAmB,IAAKxvG,CAAAA,qBAAAA,CAAsByvG,uBAAuB,EAAA,CAAA,CACvE,CAAC,IAAA,CAAK9vG,IAAKkR,CAAAA,eAAAA,EAAoB,KAAKlR,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAK6+G,gCAC9DlgB,CAAiBviE,CAAAA,OAAAA,EAAW,CAACpuB,CAAAA,EAAiB2zG,0BAC9C,IAAK5C,CAAAA,iBAAAA,CAAkBjgB,iBAAkB,CAAA,CAAA,CAAI,CAE7C,CAAA,IAAA,CAAKhwG,IAAKkR,CAAAA,eAAAA,GAAiB,KAAK6+G,4BAA+B,CAAA,CAAA,CAAA,CAAA,CAAA,CAE3C,IAAK1vH,CAAAA,qBAAAA,CAAsB0rH,0BAA0B,EAAA,CACzDnwG,SACpB,EAAA,IAAA,CAAKu0G,qBAAqB1W,gBAAgB,EAAA,CAEvB,IAAKp5G,CAAAA,qBAAAA,CAAsBq0G,2BAA2B,EAAA,CAC1D94F,SACf,EAAA,IAAA,CAAKs0G,gBAAgB7b,WAAW,EAAA,CAGhC,CAAC,IAAA,CAAKr0G,KAAKkR,eAAmBqkB,EAAAA,CAAAA,CAAem9F,4BAAgC,EAAA,IAAA,CAAKrqC,QAAQ7zF,GAAI,CAAA,aAAa,CAC3G,EAAA,IAAA,CAAKqoG,kBAAmBt/C,CAAAA,cAAAA,EAE5B,CAAA,IAAA,CAAKu1E,oBAAoBlB,CAAqB,CAAA,CAE9C,IAAKa,CAAAA,sBAAAA,CAAyB,CAClC,EAAA,CASAK,mBAAoBlB,CAAAA,CAAAA,CAA8B,CAC9C,GAAIA,CAAAA,GAA0B,CAAC,IAAA,CAAK5xH,IAAKkR,CAAAA,eAAAA,EAAoB,IAAKlR,CAAAA,IAAAA,CAAKkR,iBAAmB,CAAC,IAAA,CAAK4+G,0BAA8B,CAAA,CAAA,CAC1H,IAAM54G,CAAkB,CAAA,IAAA,CAAK7W,qBAAsB8W,CAAAA,sBAAAA,GAC7CiuG,CAAe,CAAA,IAAA,CAAK/kH,qBAAsBurH,CAAAA,mBAAAA,EAC1C1sG,CAAAA,CAAAA,CAAkB,IAAKK,CAAAA,0BAAAA,CAA2BJ,wBACxD,CAAA,GAAA,CACMjI,CAAiB67G,EAAAA,eAAAA,EAAmB77G,CAAiBgvC,EAAAA,qBAAAA,GAA0B,CAAChnC,CAAAA,CAAgB8zG,mCAChG97G,CAAiB67G,EAAAA,eAAAA,EAAmB77G,CAAiBgvC,EAAAA,qBAAAA,GACnDk/D,CAAc6N,EAAAA,+BAAAA,EACd/zG,CAAiB8zG,EAAAA,gCAAAA,CACvB,CACE,IAAK/9D,CAAAA,gBAAAA,CAAiBrI,UAAU,EAAA,CAChC,KAAKqI,gBAAiBlI,CAAAA,gBAAAA,EACtB,CAAA,IAAM7gB,EAAc,IAAK2uB,CAAAA,eAAAA,EACnB3Y,CAAAA,CAAAA,CAAgB,IAAKyW,CAAAA,gBAAAA,EAC3B,CAAA,IAAA,CAAK1D,iBAAiBhT,aAClB/V,CAAAA,CAAAA,CACAgW,CACA,CAAA,IAAA,CAAKqsE,aAAe/5H,EAAAA,GAAAA,CAAI0iB,CAAgBg8G,CAAAA,iCAAiC,EACzEh0G,CAAgBkyE,CAAAA,KAAAA,CAChB,CAAI,CAAA,EAEZ,CACI,IAAA,CAAKpxF,IAAKkR,CAAAA,eAAAA,GAAiB,KAAK4+G,0BAA6B,CAAA,CAAA,CAAA,EACrE,CACJ,CAEAqD,0BAAwB,CACpB,OAAO,IAAKV,CAAAA,sBAChB,CAEQjB,cAAe4B,CAAAA,CAAAA,CAA4BxB,CAA8B,CAAA,CAC7E,IAAKx9G,CAAAA,SAAAA,CAAY,IAAK/T,CAAAA,qBAAAA,CAAsBgU,kBAC5C,CAAA,IAAM6K,CAAkB,CAAA,IAAA,CAAKK,0BAA2BJ,CAAAA,sBAAAA,EACnDi0G,CAAAA,CAAAA,CAiBD,KAAKC,8BAA+BzB,CAAAA,CAAqB,CAfrD1yG,CAAAA,CAAAA,EACAA,CAAgB2xG,CAAAA,qBAAAA,EAChB3xG,CAAgBoB,CAAAA,mBAAAA,EAChBpB,EAAgBoB,mBAAoBxyC,CAAAA,MAAAA,CAAS,CAE7C,CAAA,IAAA,CAAKijJ,wCAAwC7xG,CAAgBoB,CAAAA,mBAAAA,CAAqB,CAAM,CAAA,CAAA,CAAA,CAAK,EACtFpB,CAAgB2xG,CAAAA,qBAAAA,EAAyB3xG,CAAgB8xG,CAAAA,kBAAAA,CAChE,IAAKC,CAAAA,iCAAAA,EAEkB,CAAA,IAAA,CAAK5wH,sBAAsBgU,gBAAgB,EAAA,CACnDi/G,2BACX,EAAA,IAAA,CAAKxC,cAAe,CAAA,CAAA,CAAA,CAAO,CAACsC,CAAiB,EAM7D,CAEQG,qBAAAA,EAAqB,CACzB,IAAM5N,CAAwB,CAAA,IAAA,CAAKtlH,qBAAsBugF,CAAAA,4BAAAA,GACzD34E,UAAW,CAAA,IAAK,CACZ,IAAMurH,CAAqC7N,CAAAA,CAAAA,CAAsB6N,kCAC3Dr0D,CAAAA,CAAAA,CAAmB,IAAI92D,IAAI,EAAA,CAAGE,OAAO,EAAA,CACrCkrH,CAAyB,CAAA,IAAA,CAAKz7F,YAAahB,CAAAA,4CAAAA,CAA6C,wBAAwB,CAClHy8F,CAAAA,CAAAA,GACIA,CAAuB3yF,CAAAA,eAAAA,EAAmB2yF,CAAuB3yF,CAAAA,eAAAA,CAAgBjuE,IAAQ,EAAA,WAAA,GACzF,KAAKmlE,YAAatB,CAAAA,gCAAAA,CACd+8F,CAAuB3yF,CAAAA,eAAAA,CAAgB3sB,SACvCs/G,CAAAA,CAAAA,CAAuB3yF,eAAgBpc,CAAAA,IAAAA,CAAK5a,OAC5C,CAAI,CAAA,CAAA,CAER,IAAKumH,CAAAA,gBAAAA,CAAiBtS,iBAAiB0V,CAAuB3yF,CAAAA,eAAe,CAEjF2yF,CAAAA,CAAAA,CAAAA,CAAuB3yF,gBAAgB4yF,aAAgB,CAAA,CAAA,CAAA,CACvDp9F,cAAeS,CAAAA,UAAAA,CAAW,wBAAwB,CAAA,CAC9CooC,CAAmBs0D,CAAAA,CAAAA,CAAuBxnC,WAAaunC,CAAqC,CAAA,GAAA,EAC5F,IAAKzE,CAAAA,+BAAAA,CAAgCluI,IAAK4yI,CAAAA,CAAsB,CAG5E,EAAA,CAAA,CAAG9N,EAAsBgO,+BAA+B,EAC5D,CAEAC,qCAAAA,CAAsCz/G,CAAmB+rB,CAAAA,CAAAA,CAAqB,CAG1E,GAFI/rB,GAAasB,IAAatB,EAAAA,CAAAA,EAAa,IAAQA,EAAAA,CAAAA,EAAa,IAE5D+rB,CAAiBzqB,EAAAA,IAAAA,EAAayqB,CAAiB,EAAA,IAAA,EAAQA,GAAiB,EAAI,CAAA,OAAO,CAGvF,CAAA,CAAA,IAAM2zF,CADqB,CAAA,IAAA,CAAKxzH,qBAAsB4sH,CAAAA,yBAAAA,GACS4G,mCAE/D,CAAA,GACIA,CAAuC,EAAA,IAAA,EACvCA,CAAuCp+G,EAAAA,IAAAA,EACvCo+G,CAAqC/lJ,EAAAA,MAAAA,EAAU,EAE/C,OAAO,CAAA,CAAA,CAGX,IAAMgmJ,CAAAA,CAA+BD,CAAoCv9G,CAAAA,IAAAA,CACpEh/C,CAAWA,EAAAA,CAAAA,EAAG68C,UAAUpH,WAAW,EAAA,EAAMoH,CAAUpH,CAAAA,WAAAA,EAAa,CAGrE,CAAA,OAAI+mH,CAAgC,EAAA,IAAA,EAAQA,GAAgCr+G,IAAkB,CAAA,CAAA,CAAA,CAG1Fq+G,CAAAA,EAAAA,CAAAA,CAA6BzgH,QAAY,EAAA,IAAA,EAAQygH,CAA6BzgH,CAAAA,QAAAA,EAAUvlC,QAAU,CAIlGgmJ,EAAAA,CAAAA,CAA6BzgH,QAASie,CAAAA,IAAAA,CAAMh6D,CAAWA,EAAAA,CAAAA,EAAGy1C,WAAW,EAAA,GAAOmzB,EAAcnzB,WAAW,EAAE,CAK/G,CAAA,CAEQsmH,8BAA+BzB,CAAAA,CAAAA,CAA8B,CAKjE,GAAA,CAJI,CAAC,IAAK5xH,CAAAA,IAAAA,CAAKkR,eAAoB,EAAA,IAAA,CAAKlR,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAK2+G,4BAClE,IAAKhsD,CAAAA,aAAAA,CAAcd,UAAU,EAAA,CACzB,IAAK/iE,CAAAA,IAAAA,CAAKkR,eAAiB,GAAA,IAAA,CAAK2+G,yBAA2B,CAE/D,CAAA,CAAA,CAAA,CAAA,IAAA,CAAK7vH,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAKu+G,uBAAyB,CAAA,CAE5D,KAAK8D,qBAAqB,EAAA,CAEtB,CADmB,IAAA,CAAKlzH,qBAAsBgU,CAAAA,gBAAAA,EACnCs+G,CAAAA,4BAAAA,EAAgC,CAAC,IAAKlB,CAAAA,wBAAAA,GACjD,IAAK50B,CAAAA,kBAAAA,CAAmBt/C,gBACxB,CAAA,IAAA,CAAK9hB,gBAAiB1U,CAAAA,iBAAAA,GACtB,IAAK4U,CAAAA,sBAAAA,CAAuBpD,kBAAkB,EAAA,CAC9C,IAAKk5F,CAAAA,wBAAAA,CAA2B,CAEpC,CAAA,CAAA,CAAA,IAAMvyG,EAAkB,IAAKK,CAAAA,0BAAAA,CAA2BJ,sBAAsB,EAAA,CAC9E,IAAK40G,CAAAA,yBAAAA,CAA0B70G,CAAe,CAAA,CAC9C,KAAKqzG,sBAAsB,EAAA,CAC3B,IAAMlvD,CAAAA,CAAqB,CAAC,GAAG,IAAItV,GAAAA,CAAI,KAAKyhE,oBAAqBpqH,CAAAA,GAAAA,CAAK7vC,CAASA,EAAAA,CAAAA,CAAK,KAAK0nG,IAAI,CAAC,CAAC,CAAC,EAChG,IAAK4G,CAAAA,aAAAA,CAAcT,mBAAoBC,CAAAA,CAAkB,CACzD,CAAA,IAAA,CAAK2wD,8BAA+B90G,CAAAA,CAAAA,CAAiB0yG,CAAqB,CAC1E,CAAA,IAAA,CAAKlB,2BAA4BtM,CAAAA,iCAAAA,CAAkCllG,CAAe,CAAA,CAClF,IAAK+0G,CAAAA,oBAAAA,GACL,IAAKxE,CAAAA,uBAAAA,CAA0B,CACnC,EAAA,CACJ,CAEAyE,uBAAAA,CAAwB7zG,CAA4B,CAAA,CAChDA,OAAAA,CAA0BA,CAAAA,CAAAA,CAAwBtlD,MAC7C+lH,CAAAA,CAAAA,EAAYA,GAAIjzE,cAAgBd,EAAAA,WAAAA,EAAkB,GAAA,IAAA,CAAKM,sBAAsBZ,iBAAiB,EAAA,EAAMq0E,CAAGlqE,CAAAA,SAAS,CAE9GyJ,CAAAA,CACX,CAEQ8zG,iCAAAA,EAAiC,CAErC,IAAM9zG,CAAAA,CADiB,IAAKhgB,CAAAA,qBAAAA,CAAsBgU,gBAAgB,EAAA,CACxBC,YAE1C,CAAA,OAAO,KAAK4/G,uBAAwB7zG,CAAAA,CAAuB,CAC/D,CAEAw/F,+CAA+C,EAAA,CAC3C,IAAMC,CAAAA,CAAyB,KAAK3tG,UAAW3E,CAAAA,QAAAA,CAAS+F,QAElDwsG,CAAAA,CAAAA,CADqB,IAAK1/G,CAAAA,qBAAAA,CAAsBgjB,yBAAyB,EAAA,CACvB28F,iBAClDC,CAAsCF,CAAAA,CAAAA,CAA6BG,YACnEC,CAAAA,CAAAA,CAAqCJ,CAA6BK,CAAAA,WAAAA,CACxE,OAAIL,CAAAA,CACA,KAAKH,2BAA8BK,CAAAA,CAAAA,CAA0B3uF,IAAM+uF,CAAAA,CAAAA,EAAgBP,CAAe9mF,CAAAA,QAAAA,CAASqnF,CAAW,CAAC,EAChHF,CACP,CAAA,IAAA,CAAKP,2BAA8B,CAAA,CAACO,CAAyB7uF,CAAAA,IAAAA,CAAMgvF,CAAeR,EAAAA,CAAAA,CAAe9mF,SAASsnF,CAAU,CAAC,CAErH,CAAA,IAAA,CAAKV,4BAA8B,CAEhC,CAAA,CAAA,IAAA,CAAKA,2BAChB,CAEAW,kBAAgB,CACZ52F,aAAAA,CAAc,IAAID,WAAAA,CAAY,oBAAoB,CAAC,CACnDC,CAAAA,aAAAA,CAAc,IAAID,WAAY,CAAA,sBAAsB,CAAC,EACzD,CAEAg3F,gBAAAA,EAAgB,CACZ/2F,aAAAA,CAAc,IAAID,WAAY,CAAA,oBAAoB,CAAC,CAAA,CACnDC,aAAc,CAAA,IAAID,WAAY,CAAA,sBAAsB,CAAC,EACzD,CAEAm3F,kBAAkB,EAAA,CACV,KAAKhB,+CAA+C,EAAA,EAAM,IAAKD,CAAAA,2BAAAA,CAC/D,KAAKW,gBAAgB,EAAA,CAErB,IAAKG,CAAAA,gBAAAA,GAEb,CAEM0T,4CAA6CC,CAAAA,CAAAA,CAAuB,GAAK,CAAA1hG,OAAAA,GAAAA,CAAA,IAC3E,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMtS,CAA2C,CAAA,IAAA,CAAK8zG,iCAAiC,EAAA,CACjF5+F,EAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACtEuzH,CAAwB,CAAA,EAC1BC,CAAAA,CAAAA,CAAyC,GAE7C,GAAIl0G,CAAAA,EAA2BA,CAAwBvyC,CAAAA,MAAAA,CAAS,EAAG,CAC/D,IAAA,IAASrb,CAAI,CAAA,CAAA,CAAGA,EAAI4tD,CAAwBvyC,CAAAA,MAAAA,CAAQrb,CAAK,EAAA,CAAA,CACrD,IAAM0hD,CAAAA,CAAoBkM,CAAwB5tD,CAAAA,CAAC,EAAE0hD,SAC/CqgH,CAAAA,CAAAA,CAA6D,MAAM,IAAA,CAAKx8F,YAAa5C,CAAAA,0BAAAA,CACvFG,CAAe6B,CAAAA,6CAAAA,CACfjjB,EACAkM,CAAwB5tD,CAAAA,CAAC,CAAGo7C,EAAAA,cAAAA,EAAgBd,WAAW,EAAE,CAE7D,CAAA,GAAIynH,GAAwB,IACxBF,CAAAA,CAAAA,CAAiB/sG,IAAK,CAAA,CAClBpT,SAAAA,CAAAA,CAAAA,CACAsgH,IAAMD,CAAAA,CAAAA,CACT,EACDD,CAAgC,CAAA,CAAA,CAAA,CAAA,KAC7B,CACHA,CAAAA,CAAgC,CAChC,CAAA,CAAA,KACJ,CACJ,CACIA,GAAiCD,CAAoBA,EAAAA,CAAAA,CAAiBxmJ,MAAS,CAAA,CAAA,CAC/E67C,aACI,CAAA,IAAID,WAAY,CAAA,gCAAA,CAAkC,CAC9Cx7B,MAAQ,CAAA,CAAEomI,gBAAAA,CAAAA,CAAgB,CAC7B,CAAA,CAAC,CAECD,CAAAA,CAAAA,EACP1qG,cAAc,IAAID,WAAAA,CAAY,gCAAgC,CAAC,EAEnE,IAAKinG,CAAAA,mBAAAA,CAAoB9P,kBAAkB,GAC/C,CACJ,CAEM6T,CAAAA,CAAAA,8CAAAA,CAA+Cr0G,CAA4B,CAAA,CAAA,OAAAsS,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC7E,IAAM4C,CAAAA,CAAsB,KAAKl1B,qBAAsBU,CAAAA,qBAAAA,EACjDwtH,CAAAA,CAAAA,CAAwC,IAAIpoH,GAAAA,CAC9CouH,CAAyC,CAAA,CAAA,CAAA,CAE7C,GAAIl0G,CAA2BA,EAAAA,CAAAA,CAAwBvyC,MAAS,CAAA,CAAA,CAAG,CAC/D,IAAA,IAASrb,CAAI,CAAA,CAAA,CAAGA,EAAI4tD,CAAwBvyC,CAAAA,MAAAA,CAAQrb,CAAK,EAAA,CAAA,CACrD,IAAM+hK,CAAiD,CAAA,MAAM,IAAKx8F,CAAAA,YAAAA,CAAa5C,2BAC3EG,CAAe6B,CAAAA,6CAAAA,CACf/W,CAAwB5tD,CAAAA,CAAC,CAAE0hD,CAAAA,SAAAA,CAC3BkM,CAAwB5tD,CAAAA,CAAC,GAAGo7C,cAAgBd,EAAAA,WAAAA,EAAa,CAAA,CAG7D,GAAIynH,CAAAA,EAAwB,IAAM,CAAA,CAC9B,IAAMG,CAAqB,CAAA,IAAIzvH,EAC/ByvH,CAAAA,CAAAA,CAAQ1uH,4BAA6BuuH,CAAAA,CAAoB,CAEzD,CAAA,IAAA,IAAS/hK,EAAI,CAAGA,CAAAA,CAAAA,CAAI+hK,CAAsBxuH,EAAAA,iBAAAA,EAAmBl4B,OAAQrb,CAAK,EAAA,CAAA,CACtE,IAAMmiK,CAAAA,CAAWJ,GAAsBxuH,iBAAkBvzC,CAAAA,CAAC,CAAE,CAAA,CAAC,CAC7D,CAAA,IAAA,CAAKszC,eAAgBj7B,CAAAA,GAAAA,CAAI8pJ,EAASlwG,IAAMkwG,CAAAA,CAAQ,EACpD,CACArG,CAAczjJ,CAAAA,GAAAA,CAAIu1C,CAAwB5tD,CAAAA,CAAC,EAAE0hD,SAAWwgH,CAAAA,CAAO,CAC/DJ,CAAAA,CAAAA,CAAgC,CACpC,EAAA,CAAA,KAAO,CACHA,CAAAA,CAAgC,GAChC,KACJ,CACJ,CACA,IAAA,CAAK/oH,kBAAmBnB,CAAAA,cAAAA,CAAe,IAAKtE,CAAAA,eAAe,EAC/D,CACI,KAAA,IAAA,CAAKqM,MAAO1lC,CAAAA,KAAAA,CAAM,qDAAqD,CAAA,CACvE6nJ,CAAgC,CAAA,CAAA,CAAA,CASpC,GANI,IAAK/F,CAAAA,eAAAA,EAAmB,IAAKA,CAAAA,eAAAA,CAAgBr+H,IAAO,CAAA,CAAA,EACpD,IAAKq+H,CAAAA,eAAAA,CAAgB7qG,QAAQ,CAAC3sD,CAAAA,CAAQD,CAAa,GAAA,CAC/Cw3J,CAAczjJ,CAAAA,GAAAA,CAAI/T,CAAGC,CAAAA,CAAC,EAC1B,CAAC,CAAA,CAGDu3J,CAAiBA,EAAAA,CAAAA,CAAcp+H,KAAO,CAAG,CAAA,CACzC,IAAKu/H,CAAAA,wBAAAA,CAA2B,EAChC,CAAA,IAAMpJ,CAA2B,CAAA,IAAA,CAAKjmH,qBAAsBksH,CAAAA,+BAAAA,EAE5D,CAAA,IAAA,CAAKiD,qBAAuB,EAAA,CAC5B,IAAMlK,CAAAA,CAAwB,IAAKjlH,CAAAA,qBAAAA,CAAsBm1G,4BAA4B,EAAA,CAErF+Y,EAAc5qG,OAASxP,CAAAA,CAAAA,EAAkB,CACjCA,CAAAA,CAAU9O,aAAiB8O,EAAAA,CAAAA,CAAU9O,aAAclV,CAAAA,IAAAA,CAAO,GAC1DgkB,CAAU9O,CAAAA,aAAAA,CAAcse,OAAStQ,CAAAA,CAAAA,EAAiB,CAC9C,IAAMwhH,CAAAA,CAAkBxhH,CAASmC,CAAAA,YAAAA,CAE7B8wG,GAA0B1qG,SAC1Bi5G,EAAAA,CAAAA,EAAiBC,yBACjBD,EAAAA,CAAAA,EAAiBE,kBAEjB,EAAA,IAAA,CAAKrF,wBAAyBnoG,CAAAA,IAAAA,CAAKstG,GAAiBE,kBAAkB,CAAA,CAItEF,CAAiBG,EAAAA,oBAAAA,EAAsBlnJ,MACvCw3I,EAAAA,CAAAA,CAAsB2P,kBACtB3P,EAAAA,CAAAA,CAAsB4P,sBACtB,CAAC,IAAA,CAAK7iH,aAEN,EAAA,IAAA,CAAKm9G,oBAAqBjoG,CAAAA,IAAAA,CAAK,GAAGstG,CAAAA,CAAgBG,oBAAoB,EAE9E,CAAC,EAET,CAAC,EACL,CACA,OAAOT,CAAgChG,CAAAA,CAAAA,CAAgB,IAAIpoH,GAC/D,CAAA,CAAA,CAEcgvH,oDAAqD5J,CAAAA,CAAAA,CAAqB,CAAA54F,OAAAA,GAAAA,CAAA,IACpF,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMrS,EAA2B,IAAK4zG,CAAAA,uBAAAA,CAAwB3I,CAAgB,CAAA,CAC9E,OAAO,IAAA,CAAKmJ,8CAA+Cp0G,CAAAA,CAAmB,CAClF,CAEM80G,CAAAA,CAAAA,wDAAAA,EAAwD,CAAAziG,OAAAA,GAAAA,CAAA,IAC1D,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMtS,CAA0B,CAAA,IAAA,CAAK8zG,mCACrC,CAAA,OAAO,IAAKO,CAAAA,8CAAAA,CAA+Cr0G,CAAuB,CACtF,CAEMg1G,CAAAA,CAAAA,qBAAAA,CAAsBlhH,EAAiB,CAAAwe,OAAAA,GAAAA,CAAA,IAGzC,CAAA,IAAA,CAAA,WAAA,CAAA,GAFA,IAAKve,CAAAA,SAAAA,CAAY,IAAK/T,CAAAA,qBAAAA,CAAsBgU,kBAC5C,CAAA,MAAM,IAAKihH,CAAAA,uCAAAA,EACP,CAAA,EAAA,IAAA,CAAK/G,aAAep+H,EAAAA,IAAAA,CAAO,GAAK,IAAKo+H,CAAAA,aAAAA,EAAe/5H,GAAI2f,CAAAA,CAAS,CAAG9O,EAAAA,aAAAA,CAAAA,CAOxE,GAJA,IAAA,CAAKkpH,cAAgB,MAAM,IAAA,CAAK6G,wDAAwD,EAAA,CACnF,KAAK7G,aACN,GAAA,IAAA,CAAKA,aAAgB,CAAA,IAAIpoH,KAEzB,IAAKooH,CAAAA,aAAAA,EAAep+H,IAAO,CAAA,CAAA,EAAK,IAAKo+H,CAAAA,aAAAA,EAAe/5H,GAAI2f,CAAAA,CAAS,GAAG9O,aACpE,CAAA,IAAA,CAAKkwH,8BAA+B,CAAA,IAAA,CAAKhH,aAAe,CAAA,CAAA,CAAI,CACzD,CAAA,KAAA,CACH,IAAMtwG,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAC5CrQ,CAAAA,CAAAA,CAAyB,IAAKR,CAAAA,qBAAAA,CAAsBZ,mBAC1D,CAAA,IAAA,CAAKgV,gBAAiBZ,CAAAA,mBAAAA,CAAoB5C,EAAesiF,GAAIi1B,CAAAA,cAAAA,CAAgB,CAAErhH,SAAAA,CAAAA,EAAWtG,cAAAA,CAAAA,CAAc,CAAE,CAAA,CAAExiB,SACjG+2B,CAAAA,CAAAA,EAAiBuQ,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACpB,GAAIvQ,CAAU,CAAA,CAMV,GADA,IAAA,CAAKqzG,eAAgBrzG,CAAAA,CAAAA,CAAU,CAAK,CAAA,CAAA,CAChC,KAAKhO,SAAUk/G,CAAAA,2BAAAA,CAA6B,CAC5C,IAAMoC,CAAY,CAAA,CAAA,CAAA,IAAA,CAAK11H,IAAKkR,CAAAA,eAAAA,CAC5B,KAAK4/G,cAAe,CAAA,CAAA,CAAA,CAAM4E,CAAS,EACvC,MACI,IAAK5E,CAAAA,cAAAA,CAAe,CAAI,CAAA,CAAA,CAE5B,MAAM,IAAKwE,CAAAA,uCAAAA,GACf,CACJ,CACC5oJ,CAAAA,CAAAA,CAAAA,EAAS,CACN,IAAA,CAAK0lC,OAAO1lC,KAAM,CAAA,sCAAA,CAAyCA,CAAK,EACpE,CAAC,EAET,CACJ,CAAA,CAAA,CAEMqkJ,wCAAwCxF,CAAuBqG,CAAAA,CAAAA,CAAgC8D,CAAqB,CAAA,CAAA,CAAA,CAAK,CAAA/iG,OAAAA,GAAAA,CAAA,IAK3H,CAAA,IAAA,CAAA,WAAA,CAAA,GAJA,KAAK47F,aAAgB,CAAA,MAAM,IAAK4G,CAAAA,oDAAAA,CAAqD5J,CAAgB,CAAA,CAChG,IAAKgD,CAAAA,aAAAA,GACN,KAAKA,aAAgB,CAAA,IAAIpoH,GAEzB,CAAA,CAAA,IAAA,CAAKooH,aAAiB,EAAA,IAAA,CAAKA,aAAcp+H,CAAAA,IAAAA,CAAO,EAChD,IAAKolI,CAAAA,8BAAAA,CAA+B,IAAKhH,CAAAA,aAAAA,CAAeqD,CAAuB8D,CAAAA,CAAS,CACrF,CAAA,KAAA,CAAA,CACC,KAAKn6C,mBAAoBR,CAAAA,KAAAA,CAAMK,IAASyC,CAAAA,WAAW,CAAK,EAAA,IAAA,CAAKtC,mBAAoBR,CAAAA,KAAAA,CAAMK,KAAS02C,WAAW,CAAA,IAC3GvG,CAAmB,CAAA,IAAA,CAAKlrH,sBAAsBgU,gBAAgB,EAAA,EAAIshH,4BAC5D,CAAA,IAAA,CAAKt1H,sBAAsBgU,gBAAgB,EAAA,CAAGshH,4BAC9C,CAAA,IAAA,CAAA,CAEV,IAAMt3G,CAAAA,CAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aACxC,2DACA,CAAA,IAAA,CAAK/P,qBAAsBZ,CAAAA,iBAAAA,EAAmB,CAAA,CAElD,IAAKiR,CAAAA,GAAAA,CAAIkD,KAAKvC,CAAUktG,CAAAA,CAAAA,CAAkB,CAAEvqG,eAAAA,CAAiB,CAAI,CAAA,CAAE,CAAE31B,CAAAA,SAAAA,CAC1D+2B,GAAiBuQ,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAChBvQ,CACA,GAAA,IAAA,CAAKqzG,gBAAgBrzG,CAAUwvG,CAAAA,CAAAA,CAAuB8D,CAAS,CAAA,CAC/D,MAAM,IAAKJ,CAAAA,uCAAAA,EAEnB,EAAA,CAAA,CAAA,CACC5oJ,CAAS,EAAA,CACN,IAAK0lC,CAAAA,MAAAA,CAAO1lC,MAAM,sCAAyCA,CAAAA,CAAK,EACpE,CAAC,EAET,CACJ,CAEM4oJ,CAAAA,CAAAA,uCAAAA,CAAwCjB,EAAuB,CAAK,CAAA,CAAA,CAAA,OAAA1hG,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC3C,IAAKtyB,CAAAA,qBAAAA,CAAsBgjB,yBAAyB,EAAA,EAC3DzH,YAAc,MAAM,IAAA,CAAKw4G,4CAA6CC,CAAAA,CAAW,GACzG,CAIMvD,CAAAA,CAAAA,cAAAA,CAAec,CAAgC8D,CAAAA,CAAAA,CAAqB,GAAOE,CAAqC,CAAA,CAAA,CAAA,CAAK,CAAAjjG,OAAAA,GAAAA,CAAA,IACvH,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMkjG,CAAkDn9F,CAAAA,IAAAA,CAAU,KAAK61F,aAAa,CAAA,CAE9En6G,CAAiB,CAAA,IAAA,CAAK/T,qBAAsBgU,CAAAA,gBAAAA,EAClD,CAAA,IAAA,CAAKk6G,cAAgB,MAAM,IAAA,CAAK6G,wDAAwD,EAAA,CACxF,IAAM7/F,CAAAA,CAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,uBAIvD,CAAA,GAHK,IAAKwtH,CAAAA,aAAAA,GACN,KAAKA,aAAgB,CAAA,IAAIpoH,GAEzB,CAAA,CAAA,IAAA,CAAKooH,eAAiB,IAAKA,CAAAA,aAAAA,CAAcp+H,IAAO,CAAA,CAAA,CAChD,IAAKolI,CAAAA,8BAAAA,CAA+B,IAAKhH,CAAAA,aAAAA,CAAeqD,EAAuB8D,CAAS,CAAA,CAAA,KACrF,CACH,IAAA,CAAKnH,aAAgBsH,CAAAA,CAAAA,EAAqB,IAAI1vH,GAAAA,CAC9C,IAAM8X,CAAiB,CAAA,IAAA,CAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAC5CG,CAAAA,CAAAA,CAAW,IAAKR,CAAAA,qBAAAA,CAAsBT,aACxCa,CAAesiF,CAAAA,GAAAA,CAAIu1B,gBACnB,CAAA,IAAA,CAAKzoH,sBAAsBZ,iBAAiB,EAAE,CAGlD,CAAA,IAAA,CAAKgV,iBAAiBZ,mBAAoBxC,CAAAA,CAAAA,CAAU,IAAI,CAAA,CAAEhzB,SAC/C+2B,CAAAA,CAAAA,EAAiBuQ,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAChBvQ,IACIhO,CAAUu+G,CAAAA,4BAAAA,EAAgC,CAAC,IAAA,CAAKlB,wBAChD,GAAA,IAAA,CAAK50B,kBAAmBt/C,CAAAA,cAAAA,GACxB,IAAK9hB,CAAAA,gBAAAA,CAAiB1U,iBAAiB,EAAA,CACvC,IAAK4U,CAAAA,sBAAAA,CAAuBpD,kBAAkB,EAAA,CAC9C,KAAKk5F,wBAA2B,CAAA,CAAA,CAAA,CAAA,CAEpC,IAAKgE,CAAAA,eAAAA,CAAgBrzG,EAAUwvG,CAAuB8D,CAAAA,CAAS,CAC/D,CAAA,MAAM,KAAKJ,uCAAuC,EAAA,CAC9C//F,CAAgBwgG,EAAAA,sBAAAA,EAA0B,CAACH,CAAAA,EAC3C,IAAKI,CAAAA,mBAAAA,IAGjB,CACCtpJ,CAAAA,CAAAA,CAAAA,EAAS,CACN,IAAA,CAAK0lC,MAAO1lC,CAAAA,KAAAA,CAAM,sCAAyCA,CAAAA,CAAK,EACpE,CAAC,EAET,CACJ,CAAA,CAAA,CAEQspJ,mBAAmB,EAAA,CACvB,IAAKt4G,CAAAA,GAAAA,CAAIlpB,IAAI,0BAA0B,CAAA,CAAEnJ,SAAU,CAAA,CAC/CxK,KAAMA,IAAK,EACXnU,CAAAA,KAAAA,CAAQA,GAAS,CACb,IAAA,CAAK0lC,MAAO1lC,CAAAA,KAAAA,CAAM,iCAAoCA,CAAAA,CAAK,EAC/D,CAAA,CACH,EACL,CAEQunJ,oBAAAA,EAAoB,CACxB,IAAA,CAAK1D,mBAAoB0F,CAAAA,WAAAA,CAAY5qI,SAChC6qI,CAAAA,CAAAA,EAAmB,CAChB,IAAKC,CAAAA,eAAAA,CAAkBjZ,QAASgZ,CAAAA,CAAAA,EAAYE,OAAO,CAAA,CACnD,IAAMC,CAAAA,CAA4BH,EAAWI,iBAAkBhgH,CAAAA,IAAAA,CAAMjjD,CAAaA,EAAAA,CAAAA,CAAIE,GAAQ,GAAA,8BAA8B,CAAEyC,CAAAA,KAAAA,CAC9H,GAAI,IAAKmgK,CAAAA,eAAAA,CAAkB,CAAG,CAAA,CAC1B,IAAMC,CAAAA,CACF,IAAI/tH,IAAAA,GAAOwiD,OAAO,EAAA,EAAM,IAAKxqD,CAAAA,qBAAAA,CAAsBm5E,6BAA6B,EAAA,EAAID,aAC9E,CAAA,IAAA,CAAK48C,gBACL,IAAKA,CAAAA,eAAAA,CAAkBE,CAC7BD,CAAAA,CAAAA,CAAU,CAAG,EAAA,IAAA,CAAKpH,oBAAqBnuI,CAAAA,IAAAA,CAAK,CAACu1I,CAAO,EAC5D,CACJ,CAAA,CACC1pJ,GAAS,CACN,IAAA,CAAK0lC,MAAO1lC,CAAAA,KAAAA,CAAM,kCAAoCA,CAAK,EAC/D,CAAC,EAET,CAGA6pJ,cAAAA,EAAc,CACV,IAAMt4G,EAAiB,IAAK5d,CAAAA,qBAAAA,CAAsB6d,qBAAqB,EAAA,CACvE,OAAO,IAAA,CAAKR,GAAIlpB,CAAAA,GAAAA,CAAIypB,EAAeilC,SAAUszE,CAAAA,gBAAAA,CAAkB,EAAA,CAAI,CAAEx1G,eAAAA,CAAiB,CAAI,CAAA,CAAE,CAChG,CAEQu0G,8BAAAA,CACJkB,CACA7E,CAAAA,CAAAA,CACA8D,EAAqB,CAAK,CAAA,CAAA,CAE1B,IAAMz3G,CAAAA,CAAiB,KAAK5d,qBAAsB6d,CAAAA,qBAAAA,EAElD,CAAA,IAAA,CAAKuD,gBAAiBZ,CAAAA,mBAAAA,CAAoB5C,CAAewa,CAAAA,aAAAA,CAAcypB,cAAe,IAAI,CAAA,CAAE72D,SACvF+2B,CAAAA,CAAAA,EAAY,CACT,IAAA,CAAK8/B,aAAgB9/B,CAAAA,CAAAA,CACrB,IAAMgvG,CAAsB,CAAA,CACxB7C,aAAekI,CAAAA,CAAAA,CACfnF,aAAeM,CAAAA,CAAAA,CACf8E,iBAAmB,CAAA,IAAA,CAAK12H,KAAKkR,eAC7BylH,CAAAA,WAAAA,CAAajB,CAEjB,CAAA,CAAA,IAAA,CAAKkB,wBAAwBxF,CAAc,EAC/C,CACC1kJ,CAAAA,CAAAA,EAAS,CACN,IAAK0lC,CAAAA,MAAAA,CAAO1lC,KAAMA,CAAAA,CAAK,CACvB,CAAA,IAAM0kJ,CAAsB,CAAA,CACxB7C,cAAekI,CACfnF,CAAAA,aAAAA,CAAeM,CACf8E,CAAAA,iBAAAA,CAAmB,IAAK12H,CAAAA,IAAAA,CAAKkR,eAC7BylH,CAAAA,WAAAA,CAAajB,GAEjB,IAAKkB,CAAAA,uBAAAA,CAAwBxF,CAAc,EAC/C,CAAC,EAET,CAEMyF,+BAAAA,CAAgC1iH,EAAmBtG,CAAsB,CAAA,CAAA,OAAA8kB,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC3E,IAAM4C,CAAAA,CAAsB,IAAKl1B,CAAAA,qBAAAA,CAAsBU,uBACvD,CAAA,IAAA,CAAK0tH,8BAA+B96F,CAAAA,KAAAA,EACpC,CAAA,IAAM6gG,CAAiD,CAAA,MAAM,KAAKx8F,YAAa5C,CAAAA,0BAAAA,CAC3EG,CAAe6B,CAAAA,6CAAAA,CACfjjB,CACAtG,CAAAA,CAAAA,EAAgBd,WAAW,EAAE,EAGjC,GAAIynH,CAAAA,CAAsB,CACtB,IAAMG,CAAqB,CAAA,IAAIzvH,EAC/ByvH,CAAAA,CAAAA,CAAQ1uH,6BAA6BuuH,CAAoB,CAAA,CACzD,IAAK/F,CAAAA,8BAAAA,CAA+B3jJ,IAAIqpC,CAAWwgH,CAAAA,CAAO,EAC9D,CACA,GAAI,IAAKlG,CAAAA,8BAAAA,EAAkC,IAAKA,CAAAA,8BAAAA,CAA+Bt+H,IAAO,CAAA,CAAA,CAAG,CACrF,IAAMihI,EAAsB,CACxB7C,aAAAA,CAAe,IAAKE,CAAAA,8BAAAA,CACpBiI,iBAAmB,CAAA,IAAA,CAAK12H,IAAKkR,CAAAA,eAAAA,CAAAA,CAEjC,KAAK4lH,wCAAyC1F,CAAAA,CAAc,EAChE,CAAA,KAAO,CACH,IAAMnzG,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CAEvE,IAAKuD,CAAAA,gBAAAA,CACAZ,oBAAoB5C,CAAesiF,CAAAA,GAAAA,CAAIi1B,cAAgB,CAAA,CAAErhH,UAAAA,CAAWtG,CAAAA,cAAAA,CAAAA,CAAc,CAAA,CAAI,CAAEmT,eAAAA,CAAiB,CAAI,CAAA,CAAE,EAC/G31B,SACI+2B,CAAAA,CAAAA,EAAiB,CACVA,CAAAA,EACA,IAAK20G,CAAAA,gCAAAA,CAAiC30G,CAAUjO,CAAAA,CAAAA,CAAWtG,CAAc,EAEjF,CAAA,CACCnhC,CAAS,EAAA,CACN,IAAK0lC,CAAAA,MAAAA,CAAO1lC,KAAM,CAAA,sCAAA,CAAyCA,CAAK,EACpE,CAAC,EAEb,CACJ,GAEAsqJ,mBAAoB/3G,CAAAA,CAAAA,CAAwC,CACxD,IAAA,CAAKM,2BAA2BP,sBAAuBC,CAAAA,CAAmB,CAC1E,CAAA,IAAA,CAAK5e,qBAAsBukH,CAAAA,gBAAAA,CAAiB3lG,CAAoBmyE,CAAAA,KAAK,EAGrE,IAAKugC,CAAAA,mBAAAA,GACT,CAEQiF,uBAAwBxF,CAAAA,CAAAA,CAAmB,CAC/C,IAAA,CAAK6F,mCACL7F,CAAAA,CAAAA,CAAe8F,UAAa,CAAA,IAAA,CAAKl3H,IAAKkR,CAAAA,eAAAA,CACtC,IAAK09G,CAAAA,kBAAAA,CAAmB/tI,KAAKuwI,CAAc,CAAA,CAC3C,IAAK+F,CAAAA,qBAAAA,CAAsB/F,CAAc,EAC7C,CAEQ0F,wCAAAA,CAAyC1F,EAAmB,CAChE,IAAA,CAAKvC,mCAAoChuI,CAAAA,IAAAA,CAAKuwI,CAAc,CAAA,CAC5D,IAAK+F,CAAAA,qBAAAA,CAAsB/F,CAAc,EAC7C,CAEQqE,eAAgB52D,CAAAA,CAAAA,CAAgB+yD,CAAgC8D,CAAAA,CAAAA,CAAqB,CAAK,CAAA,CAAA,CAC9F,KAAK0B,oBAAqBv4D,CAAAA,CAAAA,CAAUw4D,yBAAyB,CAAA,CAC7D,IAAKC,CAAAA,gBAAAA,CAAiBz4D,CAAU04D,CAAAA,cAAAA,CAAgB3F,EAAuB8D,CAAS,CAAA,CAChF,IAAK3mB,CAAAA,gBAAAA,CAAiBlwC,EAAU3c,aAAa,EACjD,CAEQ60E,gCAAAA,CAAiCl4D,EAAgB1qD,CAAmBtG,CAAAA,CAAAA,CAAsB,CAC9F,IAAA,CAAK2pH,qCAAsC34D,CAAAA,CAAAA,CAAUw4D,yBAAyB,CAAA,CAC9E,KAAKI,iCAAkC54D,CAAAA,CAAAA,CAAU04D,cAAgBpjH,CAAAA,CAAAA,CAAWtG,CAAc,EAC9F,CAEQupH,oBAAAA,CAAqBM,EAAsB,CAC/C,IAAA,CAAKA,iBAAoBA,CAAAA,EAC7B,CAEQF,qCAAAA,CAAsCE,CAAsB,CAAA,CAChE,KAAKC,kCAAqCD,CAAAA,EAC9C,CAEQE,oBAAAA,EAAoB,CACxB,OAAO,IAAA,CAAKF,iBAAoB,CAAA,IAAA,CAAKA,kBAAoB,IAAKC,CAAAA,kCAClE,CAEQL,gBAAAA,CAAiBO,CAAkBjG,CAAAA,CAAAA,CAAgC8D,CAAqB,CAAA,CAAA,CAAA,CAAK,CACjG,GAAImC,CAAAA,EAAeA,CAAY/pJ,CAAAA,MAAAA,CAAS,CAAG,CAAA,CACvC,IAASrb,IAAAA,CAAAA,CAAI,EAAGA,CAAIolK,CAAAA,CAAAA,CAAY/pJ,MAAQrb,CAAAA,CAAAA,EAAAA,CAAK,CACzC,IAAMqlK,CAA0B,CAAA,IAAA,CAAKC,oBAAoBF,CAAYplK,CAAAA,CAAC,CAAC,CAAA,CACvE,KAAK87J,aAAczjJ,CAAAA,GAAAA,CAAIgtJ,CAAavkK,CAAAA,GAAAA,CAAKukK,EAAa9hK,KAAK,CAAA,CAC3D,IAAKgiE,CAAAA,YAAAA,CAAalC,iCACdgiG,CAAAA,CAAAA,CAAavkK,GACbmlE,CAAAA,IAAAA,CAAUo/F,EAAa9hK,KAAK,CAAA,CAE5B,IAAKq3C,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAE,EAEtD,CAEI,KAAK+hH,eAAmB,EAAA,IAAA,CAAKA,eAAgBr+H,CAAAA,IAAAA,CAAO,CACpD,EAAA,IAAA,CAAKq+H,eAAgB7qG,CAAAA,OAAAA,CAAQ,CAAC3sD,CAAQD,CAAAA,CAAAA,GAAa,CAC/C,IAAA,CAAKw3J,cAAczjJ,GAAI/T,CAAAA,CAAAA,CAAGC,CAAC,EAC/B,CAAC,CAEL,CAAA,IAAMo6J,CAAsB,CAAA,CACxB7C,aAAe,CAAA,IAAA,CAAKA,aACpB+C,CAAAA,aAAAA,CAAeM,EACf8E,iBAAmB,CAAA,IAAA,CAAK12H,IAAKkR,CAAAA,eAAAA,CAC7BylH,WAAajB,CAAAA,CAAAA,CAAAA,CAEjB,IAAKkB,CAAAA,uBAAAA,CAAwBxF,CAAc,EAC/C,CACJ,CAEQqG,iCAAAA,CAAkCI,CAAkB1jH,CAAAA,CAAAA,CAAmBtG,CAAsB,CAAA,CACjG,IAAImqH,CAA0C,CAAA,CAAA,CAAA,CAC9C,GAAIH,CAAAA,EAAeA,EAAY/pJ,MAAS,CAAA,CAAA,CAAG,CACvC,IAAA,IAASrb,EAAI,CAAGA,CAAAA,CAAAA,CAAIolK,CAAY/pJ,CAAAA,MAAAA,CAAQrb,CACpC,EAAA,CAAA,GAAI0hD,CAAa0jH,EAAAA,CAAAA,CAAYplK,CAAC,CAAE0hD,CAAAA,SAAAA,CAAW,CACvC6jH,CAAAA,CAAiC,CACjCH,CAAAA,CAAAA,CAAAA,CAAcA,CAAYplK,CAAAA,CAAC,EAC3B,KACJ,CAEJ,GAAIulK,CAAAA,CAAgC,CAChC,IAAMF,CAA0B,CAAA,IAAA,CAAKC,oBAAoBF,CAAW,CAAA,CACpE,IAAKpJ,CAAAA,8BAAAA,CAA+B3jJ,IAAIgtJ,CAAavkK,CAAAA,GAAAA,CAAKukK,CAAa9hK,CAAAA,KAAK,EAC5E,IAAKgiE,CAAAA,YAAAA,CAAalC,iCACdgiG,CAAAA,CAAAA,CAAavkK,GACbmlE,CAAAA,IAAAA,CAAUo/F,CAAa9hK,CAAAA,KAAK,EAE5B63C,CAAgBd,EAAAA,WAAAA,EAAa,EAErC,CACA,IAAMqkH,CAAsB,CAAA,CACxB7C,cAAe,IAAKE,CAAAA,8BAAAA,CACpBiI,iBAAmB,CAAA,IAAA,CAAK12H,IAAKkR,CAAAA,eAAAA,CAAAA,CAEjC,IAAK4lH,CAAAA,wCAAAA,CAAyC1F,CAAc,EAChE,CACJ,CAEQ2G,mBAAAA,CAAoB/sF,EAAc,CACtC,IAAMitF,CAA0B,CAAA,IAAA,CAAKC,gBAAgBltF,CAAWmtF,EAAAA,aAAAA,EAAeC,kBAAoBptF,CAAAA,CAAAA,EAAW72B,SAAS,CAAA,CAKvH,OAJmC,CAC/B5gD,IAAKy3E,CAAW72B,EAAAA,SAAAA,CAChBn+C,KAAOiiK,CAAAA,CAAAA,CAGf,CAEAlpB,gBAAAA,CAAiBspB,CAAsB,CAAA,CACnC,KAAKn2E,aAAgBm2E,CAAAA,EACzB,CAEA1/D,gBAAAA,EAAgB,CACZ,OAAI,IAAKzW,CAAAA,aAAAA,CACE,KAAKA,aAET,CAAA,EACX,CAEQg2E,eAAgBI,CAAAA,CAAAA,CAAyBnkH,CAAiB,CAAA,CAC9D,IAAIokH,CAAgD,CAAA,IAAIpyH,GACpDqyH,CAAAA,CAAAA,CAA+C,IAAIryH,GAAAA,CACnDJ,CAAgD,CAAA,IAAII,IACpDmyH,CACIA,GAAAA,CAAAA,CAAmBG,eAAkB,GAAA,CAAC,CAClCH,GAAAA,CAAAA,CAAmBG,eAAgB,CAAA,CAAC,EAAEC,UAAcJ,EAAAA,CAAAA,CAAmBG,eAAgB,CAAA,CAAC,CAAEC,CAAAA,UAAAA,CAAW5qJ,MAAS,CAAA,CAAA,GAC9GyqJ,EAA2B,IAAKvvC,CAAAA,cAAAA,CAAevP,qBAAsB6+C,CAAAA,CAAAA,CAAmBG,gBAAgB,CAAC,CAAA,CAAEC,UAAU,CAAA,CAAA,CAErHJ,EAAmBG,eAAgB,CAAA,CAAC,CAAEhd,CAAAA,QAAAA,EAAY6c,CAAmBG,CAAAA,eAAAA,CAAgB,CAAC,CAAA,CAAEhd,SAAS3tI,MAAS,CAAA,CAAA,GAC1G0qJ,CAA0B,CAAA,IAAA,CAAKxvC,cAAevP,CAAAA,qBAAAA,CAAsB6+C,CAAmBG,CAAAA,eAAAA,CAAgB,CAAC,CAAEhd,CAAAA,QAAQ,CAGtH6c,CAAAA,CAAAA,CAAAA,CAAAA,EAAoBK,YAAgBL,EAAAA,CAAAA,CAAmBK,YAAc7qJ,EAAAA,MAAAA,CAAS,IAC9Ei4B,CAAkB,CAAA,IAAA,CAAK6yH,kBAAmBN,CAAAA,CAAAA,CAAmBK,aAAcxkH,CAAS,CAAA,CAAA,CAAA,CAG5F,IAAM0kH,CAAAA,CAAuC,IAAI1yH,GAC3C2yH,CAAAA,CAAAA,CAA0C,IAAI3yH,GAAAA,CAEpD,GAAImyH,CAAAA,EAAoBI,UAAcJ,EAAAA,CAAAA,CAAmBI,WAAW5qJ,MAAS,CAAA,CAAA,CAAG,CAC5E,IAAA,IAASrb,CAAI,CAAA,CAAA,CAAGA,CAAI6lK,CAAAA,CAAAA,CAAmBI,WAAW5qJ,MAAQrb,CAAAA,CAAAA,EAAAA,CAAK,CAC3D,IAAMsmK,CAAqB,CAAA,IAAA,CAAKC,gBAAiBV,CAAAA,CAAAA,CAAmBI,WAAWjmK,CAAC,CAAA,CAAG8lK,CAA0BpkH,CAAAA,CAAS,EACtH,GAAI4kH,CAAAA,CAAcxqE,aAAiBwqE,EAAAA,CAAAA,CAAcxqE,cAAczgF,MAAS,CAAA,CAAA,CAAG,CACvEirJ,CAAAA,CAAc93B,gBAAmB,CAAA,EACjC,CAAA,IAAA,IAASjnH,GAAI,CAAGA,CAAAA,EAAAA,CAAI++I,CAAcxqE,CAAAA,aAAAA,CAAczgF,MAAQkM,CAAAA,EAAAA,EAAAA,CAAK,CACzD,IAAMi/I,GAAwB,IAAKC,CAAAA,mBAAAA,CAAoBH,CAAcxqE,CAAAA,aAAAA,CAAcv0E,EAAC,CAAA,CAAGu+I,CAA0BpkH,CAAAA,CAAS,EAC1H8kH,EAAiBt3F,CAAAA,gBAAAA,CAAmBo3F,CAAc3pH,CAAAA,UAAAA,CAClD6pH,EAAiBx3F,CAAAA,mBAAAA,CAAsBs3F,CAAcr3F,CAAAA,aAAAA,CACrDu3F,GAAiBE,yBAA4B,CAAA,IAAA,CAAKC,2BAC9Cd,CAAAA,CAAAA,CAAmB9xH,oBACnByyH,CAAAA,EAAgB,CAEpBA,CAAAA,EAAAA,CAAiBpoC,iBAAmB,IAAKwoC,CAAAA,mBAAAA,CAAoBf,CAAmB9xH,CAAAA,oBAAAA,CAAsByyH,EAAgB,CAAA,CAClH,IAAK54H,CAAAA,qBAAAA,CAAsB+hC,8BAA+Bk3F,CAAAA,eAAAA,GAC1DL,EAAiBz3F,CAAAA,gBAAAA,CAAmB,IAAK+3F,CAAAA,kBAAAA,CAAmBjB,CAAmB9xH,CAAAA,oBAAAA,CAAsByyH,EAAgB,CAErHA,CAAAA,CAAAA,EAAAA,CAAiBrkE,KAAOkkE,EAAAA,CAAAA,CAAsBhuJ,IAAImuJ,EAAiBrkE,CAAAA,KAAAA,CAAOqkE,EAAgB,CAAA,CAC9FF,EAAc93B,gBAAiB15E,CAAAA,IAAAA,CAAK0xG,EAAiB7pH,CAAAA,UAAU,EACnE,CACJ,CACI2pH,CAAAA,CAAcnkE,OAAOikE,CAAmB/tJ,CAAAA,GAAAA,CAAIiuJ,CAAcnkE,CAAAA,KAAAA,CAAOmkE,CAAa,EACtF,CAEA,IAAMS,EAA4B,CAC9BpqH,UAAAA,CAAYyJ,IAAcI,EAAAA,YAAAA,EAAclM,WAAW,EAAA,CACnD6nD,KAAO/7C,CAAAA,IAAAA,EAAcI,cAAclM,WAAW,EAAA,CAC9C4gD,YAAc,CAAA,IAAA,CAAK8rE,4BAA4B5gH,IAAcI,EAAAA,YAAAA,EAAclM,WAAW,EAAA,CAAIoH,EAAW,CAAI,CAAA,CAAA,CACzGq/F,QAAU,CAAA,IAAA,CAAKkmB,uBAAwB7gH,CAAAA,IAAAA,EAAcI,YAAclM,EAAAA,WAAAA,GAAeoH,CAAS,CAAA,CAC3F2sF,oBAAsB,CAAA,CAAA,CAAA,CACtBtrF,YAAc,CAAA,IAAA,CAAKmkH,wCAAyC9gH,CAAAA,IAAAA,EAAcI,cAAclM,WAAW,EAAA,CAAIoH,CAAS,CAAA,CAChHylH,eAAiB,CAAA,CAAA,CAAA,CACjBl4F,aAAe7oB,CAAAA,IAAAA,CAAaI,aAAatW,WAAW,EAAA,CACpDk3H,eAAiB,CAAA,aAAA,CAAA,CAGrBhB,EAAmB/tJ,GAAI0uJ,CAAAA,CAAAA,CAAqB5kE,KAAO4kE,CAAAA,CAAoB,EAEvE,IAAMM,CAAAA,CAA0B,CAC5B1qH,UAAAA,CAAYyJ,IAAcK,EAAAA,eAAAA,EAAiBnM,WAAW,EAAA,CACtD6nD,MAAO/7C,IAAcK,EAAAA,eAAAA,EAAiBnM,WAAW,EAAA,CACjD4gD,YAAc,CAAA,IAAA,CAAK8rE,2BAA4B5gH,CAAAA,IAAAA,EAAcK,iBAAiBnM,WAAW,EAAA,CAAIoH,CAAW,CAAA,CAAA,CAAI,CAC5Gq/F,CAAAA,QAAAA,CAAU,IAAKkmB,CAAAA,uBAAAA,CAAwB7gH,MAAcK,eAAiBnM,EAAAA,WAAAA,EAAeoH,CAAAA,CAAS,CAC9F2sF,CAAAA,oBAAAA,CAAsB,CACtBtrF,CAAAA,CAAAA,YAAAA,CAAc,KAAKmkH,wCAAyC9gH,CAAAA,IAAAA,EAAcK,eAAiBnM,EAAAA,WAAAA,EAAeoH,CAAAA,CAAS,CACnHylH,CAAAA,eAAAA,CAAiB,GACjBl4F,aAAe7oB,CAAAA,IAAAA,CAAaK,eAAgBvW,CAAAA,WAAAA,EAC5Ck3H,CAAAA,eAAAA,CAAiB,gBAErBhB,CAAAA,CAAAA,CAAAA,CAAmB/tJ,IAAIgvJ,CAAmBllE,CAAAA,KAAAA,CAAOklE,CAAkB,CAAA,CAC/DhB,CAAsB3oI,CAAAA,IAAAA,CAAO,CAC7B2oI,EAAAA,CAAAA,CAAsBn1G,QAAQ,CAAC4zE,CAAAA,CAAkBwiC,CAA4B,GAAA,CACzElB,EAAmB/tJ,GAAIivJ,CAAAA,CAAAA,CAAkBxiC,CAAW,EACxD,CAAC,EAET,CAEA,IAAMo9B,CAAAA,CAAqB,IAAIzvH,EAAAA,CAC/ByvH,OAAAA,CAAAA,CAAQxvH,iBAAiB0zH,CAAkB,CAAA,CAC3ClE,CAAQnvH,CAAAA,sBAAAA,CAAuB+yH,CAAwB,CAAA,CACvD5D,CAAQhvH,CAAAA,iBAAAA,CAAkB6yH,CAAuB,CACjD7D,CAAAA,CAAAA,CAAQ7uH,kBAAmBC,CAAAA,CAAe,CAC1C4uH,CAAAA,CAAAA,CAAQvuH,WAAckyH,CAAAA,CAAAA,EAAoBlyH,YAC1CuuH,CAAQtuH,CAAAA,aAAAA,CAAgBiyH,CAAoBjyH,EAAAA,aAAAA,CAC5CsuH,EAAQruH,UAAagyH,CAAAA,CAAAA,EAAoBhyH,UACzCquH,CAAAA,CAAAA,CAAQnuH,qBAAuB8xH,CAAoB9xH,EAAAA,oBAAAA,CACnDmuH,CAAQluH,CAAAA,wBAAAA,CAA2B6xH,CAAoB7xH,EAAAA,wBAAAA,CAChDkuH,CACX,CAEQyE,4BAA4B5yH,CAA6ByyH,CAAAA,CAAAA,CAAqB,CAClF,IAAIe,CAA2B,CAAA,CAAA,CAAA,CAC/B,OAAIxzH,CAAAA,EAAwBA,EAAqB14B,MAAU,EAAA,CAAA,EACvD04B,CAAqBmd,CAAAA,OAAAA,CAASgoC,CAAiB,EAAA,CAC3C,GAAIA,CAAAA,CAAS/pB,eAAiBq3F,CAAiBgB,CAAAA,aAAAA,EAAiBtuE,CAASuuE,CAAAA,UAAAA,CAAWxsH,QAAQ,2BAA2B,CAAA,CAAI,CAAI,CAAA,CAAA,CAC3HssH,EAAkB,CAClB,CAAA,CAAA,MACJ,CACJ,CAAC,CAEEA,CAAAA,CACX,CAEQX,mBAAAA,CAAoB7yH,EAA6ByyH,CAAqB,CAAA,CAC1E,GAAIzyH,CAAAA,EAAwBA,CAAqB14B,CAAAA,MAAAA,CAAS,CAAG,CAAA,CACzD,IAAMulC,CAAgB7M,CAAAA,CAAAA,CAAqBzrC,MAAQxF,CAAAA,CAAAA,EAASA,CAAKqsE,CAAAA,aAAAA,EAAiBq3F,CAAiBgB,CAAAA,aAAa,EAChH,GAAI5mH,CAAAA,EAAYA,CAASvlC,CAAAA,MAAAA,CAAS,EAC9B,OAAOulC,CAAAA,CAAS,CAAC,CAAA,CAAE6mH,WAAWxsH,OAAQ,CAAA,wBAAwB,CAAI,CAAA,CAAA,CAE1E,CACA,OAAO,CACX,CAAA,CAEQ6rH,mBAAmB/yH,CAA6ByyH,CAAAA,CAAAA,CAAqB,CACzE,IAAIiB,CAAkB,CAAA,IAAA,CACtB,OAAI1zH,CAAAA,EAAwBA,EAAqB14B,MAAS,CAAA,CAAA,EACtD04B,CAAqBmd,CAAAA,OAAAA,CAASgoC,CACtBA,EAAAA,CAAAA,CAAS/pB,aAAiBq3F,EAAAA,CAAAA,CAAiBgB,eAC3CC,CACIvuE,CAAAA,CAAAA,EAAUuuE,UAAWpsJ,CAAAA,MAAAA,EAAU,EACzB69E,CAAUuuE,EAAAA,UAAAA,CACV9yG,GAAA,CAAA,EAAA,CAAKukC,GAAUuuE,UAAWn/J,CAAAA,MAAAA,CAAQxF,CAAcA,EAAAA,CAAAA,GAAS,2BAA2B,CAAA,CAAA,CACvF2kK,CAAW,CAAA,CAAC,GAEZA,CAEd,CAAA,CAEEA,CACX,CAEAtB,kBAAmBuB,CAAAA,CAAAA,CAAwBhmH,CAAiB,CAAA,CACxD,IAAMpO,CAAgD,CAAA,IAAII,GAC1D,CAAA,GAAIg0H,CAAqBA,EAAAA,CAAAA,CAAkBrsJ,MAAS,CAAA,CAAA,CAAG,CACnD,IAASrb,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAI0nK,EAAkBrsJ,MAAQrb,CAAAA,CAAAA,EAAAA,CAAK,CAC/C,IAAMmiK,EAAgBuF,CAAkB1nK,CAAAA,CAAC,CACzCmiK,CAAAA,CAAAA,CAASwF,aAAgBjmH,CAAAA,CAAAA,CACzBpO,CAAgBj7B,CAAAA,GAAAA,CAAI8pJ,EAASlwG,IAAMkwG,CAAAA,CAAQ,CAC3C,CAAA,IAAA,CAAK7uH,eAAgBj7B,CAAAA,GAAAA,CAAI8pJ,CAASlwG,CAAAA,IAAAA,CAAMkwG,CAAQ,EACpD,CACA,IAAKppH,CAAAA,kBAAAA,CAAmBnB,cAAe,CAAA,IAAA,CAAKtE,eAAe,EAC/D,CACA,OAAOA,CACX,CACQkxH,iCAAAA,EAAiC,CACrC,IAAMoD,CAAAA,CAAsB,IAAKh6H,CAAAA,qBAAAA,CAAsB8rH,qBACvD,CAAA,GAAIkO,CAAoBC,CAAAA,4BAAAA,EAAgCD,CAAoBE,CAAAA,2BAAAA,CAA4BzsJ,MAAS,CAAA,CAAA,CAAG,CAChH,IAAWva,IAAAA,CAAAA,IAAO,IAAKg7J,CAAAA,aAAAA,CAAcr7J,IAAI,EAAA,CACrC,IAAS8mB,IAAAA,CAAAA,CAAI,EAAGA,CAAIqgJ,CAAAA,CAAAA,CAAoBE,2BAA4BzsJ,CAAAA,MAAAA,CAAQkM,CAAK,EAAA,CAAA,CAC7E,IAAMkmD,CAAAA,CAAgBm6F,GAAqBE,2BAA4BvgJ,CAAAA,CAAC,CAAGkmD,EAAAA,aAAAA,EAAe19B,IAAI,EAAA,EAAIuK,WAAW,EAAA,CACvGsG,EAAW,IAAK8tB,CAAAA,eAAAA,CAAgB5tE,CAAK2sE,CAAAA,CAAa,CACxD,CAAA,GAAI7sB,CAAUiuB,EAAAA,YAAAA,EAAcssB,UAAYv6C,CAASiuB,CAAAA,YAAAA,CAAassB,QAAS9/E,CAAAA,MAAAA,CAAS,CAC5E,CAAA,IAAA,IAAS/W,CAAI,CAAA,CAAA,CAAGA,EAAIs8C,CAASiuB,CAAAA,YAAAA,CAAassB,QAAS9/E,CAAAA,MAAAA,CAAQ/W,CAAK,EAAA,CAAA,CAC5D,IAAM+yC,CAAAA,CAASuJ,EAASiuB,YAAassB,CAAAA,QAAAA,CAAS72F,CAAC,CAAA,CAAE2tD,KAC3C8sE,CAAa,CAAA,IAAA,CAAKzrF,eAAgBvR,CAAAA,GAAAA,CAAIsV,CAAM,CAC9C0nF,CAAAA,CAAAA,GACAA,CAAW+hB,CAAAA,SAAAA,CAAY8mB,CAAoBE,CAAAA,2BAAAA,CAA4BvgJ,CAAC,CAAA,CAAEwgJ,UAC1E,IAAKz0H,CAAAA,eAAAA,CAAgBj7B,GAAIg/B,CAAAA,CAAAA,CAAQ0nF,CAAU,CAAA,EAEnD,CAER,CAEJ,KAAKhmF,kBAAmBnB,CAAAA,cAAAA,CAAe,IAAKtE,CAAAA,eAAe,EAC/D,CACJ,CAEQizH,gBAAAA,CAAiBD,EAAoB0B,CAA2BtmH,CAAAA,CAAAA,CAAiB,CACrF,GAAI4kH,EAAe,CACf,IAAMr3F,CAAwBq3F,CAAAA,CAAAA,CAAc3pH,WAC5C2pH,CAAcr3F,CAAAA,aAAAA,CAAgBA,CAC1Bq3F,CAAAA,CAAAA,CAAcnkE,KACVmkE,GAAAA,CAAAA,CAAc3pH,UAAeyJ,GAAAA,IAAAA,CAAaM,SAC1C4/G,CAAca,CAAAA,eAAAA,CAAkB,CAEhCb,CAAAA,EAAAA,CAAAA,CAAc3pH,UAAa2pH,CAAAA,CAAAA,EAAenkE,KAAOjzD,EAAAA,OAAAA,CAAQ,MAAO,EAAE,CAAA,EAAGoL,WAAW,EAAA,CAChFgsH,CAAca,CAAAA,eAAAA,CAAkB,CAEpCb,CAAAA,CAAAA,CAAAA,CAAAA,CAAcnkE,MAAQmkE,CAAc3pH,CAAAA,UAAAA,CAAAA,CAExC2pH,CAAcc,CAAAA,eAAAA,CAAkBnhG,KAAUqgG,CAAcprE,CAAAA,YAAY,CAEpEorE,CAAAA,CAAAA,CAAcprE,aAAe,IAAK+sE,CAAAA,0BAAAA,CAA2Bh5F,CAAe+4F,CAAAA,CAAAA,CAAsB1B,CAAcprE,CAAAA,YAAY,CAC5HorE,CAAAA,CAAAA,CAAcj4B,qBAAuB,IAAK65B,CAAAA,uBAAAA,CAAwB5B,CAAc6B,CAAAA,QAAQ,CACpF7B,CAAAA,CAAAA,CAAcnkE,KACdmkE,GAAAA,CAAAA,CAAcvjH,aAAe,IAAKmkH,CAAAA,wCAAAA,CAAyCZ,CAAcnkE,CAAAA,KAAAA,CAAOzgD,CAAS,CAAA,CAAA,CAE7G,IAAM0mH,CAAAA,CAAwB,KAAKC,mBAAoB/B,CAAAA,CAAa,CACpEA,CAAAA,OAAAA,CAAcprE,CAAAA,YAAAA,CAAektE,CAAiBx/F,CAAAA,KAAAA,CAC9C09F,EAAcvlB,QAAWqnB,CAAAA,CAAAA,CAAiBrnB,QACnCulB,CAAAA,CACX,CACJ,CAEQG,mBAAoBD,CAAAA,CAAAA,CAAuBwB,EAA2BtmH,CAAiB,CAAA,CAC3F,GAAI8kH,CAAAA,CAAkB,CAClB,IAAMv3F,CAAwBu3F,CAAAA,CAAAA,CAAiBgB,cAC/ChB,CAAiBv3F,CAAAA,aAAAA,CAAgBA,CAC7Bu3F,CAAAA,CAAAA,CAAiBrkE,KACbqkE,GAAAA,CAAAA,CAAiBgB,aAAkBphH,GAAAA,IAAAA,CAAaM,UAChD8/G,CAAiB7pH,CAAAA,UAAAA,CAAa6pH,CAAiBgB,CAAAA,aAAAA,CAC/ChB,EAAiBW,eAAkB,CAAA,CAAA,CAAA,GAEnCX,CAAiB7pH,CAAAA,UAAAA,CAAa6pH,GAAkBrkE,KAAOjzD,EAAAA,OAAAA,CAAQ,KAAO,CAAA,EAAE,CAAGoL,EAAAA,WAAAA,EAC3EksH,CAAAA,CAAAA,CAAiBW,gBAAkB,CAEvCX,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB7pH,UACb6pH,CAAAA,CAAAA,CAAiBgB,aAAkBphH,GAAAA,IAAAA,CAAaM,QAC1C8/G,CAAAA,CAAAA,CAAiBgB,cACjBhB,CAAkBrkE,EAAAA,KAAAA,EAAOjzD,OAAQ,CAAA,KAAA,CAAO,EAAE,CAAA,EAAGoL,WAAW,EAAA,CAClEksH,EAAiBrkE,KAAQqkE,CAAAA,CAAAA,CAAiB7pH,UAE9C6pH,CAAAA,CAAAA,CAAAA,CAAiBY,gBAAkBnhG,IAAUugG,CAAAA,CAAAA,CAAiB8B,eAAe,CAAA,CAE7E9B,EAAiBtrE,YAAe,CAAA,IAAA,CAAK+sE,0BAA2Bh5F,CAAAA,CAAAA,CAAe+4F,CAAsBxB,CAAAA,CAAAA,CAAiB8B,eAAe,CAAA,CACrI9B,EAAiBzjH,YAAe,CAAA,IAAA,CAAKmkH,wCAAyCV,CAAAA,CAAAA,CAAiB7pH,UAAY+E,CAAAA,CAAS,CACpH8kH,CAAAA,CAAAA,CAAiB+B,gBACb/B,CAAkBgB,EAAAA,aAAAA,EAAeltH,WAAW,EAAA,GAAO8L,IAAcI,EAAAA,YAAAA,EAAclM,WAAW,EAAA,EAC1FksH,GAAkBgB,aAAeltH,EAAAA,WAAAA,EAAkB8L,GAAAA,IAAAA,CAAaM,SACpE,IAAM0hH,CAAAA,CAAwB,IAAKC,CAAAA,mBAAAA,CAAoB7B,CAAgB,CACvEA,CAAAA,OAAAA,CAAiBtrE,CAAAA,YAAAA,CAAektE,CAAiBx/F,CAAAA,KAAAA,CACjD49F,CAAiBzlB,CAAAA,QAAAA,CAAWqnB,EAAiBrnB,QACtCylB,CAAAA,CACX,CACJ,CAEQyB,0BAA2BnsH,CAAAA,CAAAA,CAAoB0sH,CAAcC,CAAAA,CAAAA,CAA2B,CAC5F,OAAID,CAAAA,EAAWA,CAAQ9qI,CAAAA,IAAAA,CAAO,CAAK8qI,EAAAA,CAAAA,CAAQzmI,GAAI+Z,CAAAA,CAAU,EAC9C0sH,CAAQzmI,CAAAA,GAAAA,CAAI+Z,CAAU,CAAA,CAE1B2sH,CACX,CAEQP,uBAAwBQ,CAAAA,CAAAA,CAAoB,CAChD,OAAIA,CAAAA,CACOA,CAAcpuH,EAAAA,WAAAA,EAAcvK,CAAAA,IAAAA,EAAU,EAAA,OAAA,CAE1C,EACX,CAEQs4H,mBAAAA,CAAoB/B,CAAkB,CAAA,CAC1C,IAAIvlB,CAAAA,CACAn4E,CACE9F,CAAAA,CAAAA,CAAsB,KAAKl1B,qBAAsBU,CAAAA,qBAAAA,EACvD,CAAA,GAAIg4H,CACA19F,GAAAA,CAAAA,CAAQ09F,CAAevjH,EAAAA,YAAAA,EAAc4lH,uBAAyBrC,CAAeprE,EAAAA,YAAAA,CACzEorE,CAAevjH,EAAAA,YAAAA,GACfg+F,EAAWulB,CAAevjH,EAAAA,YAAAA,EAAc6lH,WAExC9lG,CAAAA,CAAAA,CAAAA,CAAe+lG,8BAAgC/lG,CAAe+lG,CAAAA,4BAAAA,EAAgC,EAAI,CAAA,CAAA,CAClG,IAAMC,CAAAA,CAAAA,CAAsBxC,CAAevjH,EAAAA,YAAAA,EAAc4lH,uBAAyBrC,CAAcprE,CAAAA,YAAAA,EAAcz6E,KAC1GqiD,CAAAA,CAAAA,CAAe+lG,4BAA4B,CAAA,CAE/CjgG,CAAQkgG,CAAAA,CAAAA,CAAS,CAAC,CACdA,CAAAA,CAAAA,CAAS,CAAC,CAAA,GACV/nB,CAAW+nB,CAAAA,CAAAA,CAAS,CAAC,CAAA,EAE7B,CAMJ,OAJyB,CACrBlgG,KAAAA,CAAAA,CAAAA,CACAm4E,SAAAA,CAGR,CAAA,CAEQmmB,wCAAyCvqH,CAAAA,CAAAA,CAAoB+E,EAAiB,CAClF,IAAMmxG,CAAwB,CAAA,IAAA,CAAKjlH,qBAAsBm1G,CAAAA,4BAAAA,EACnD8Q,CAAAA,CAAAA,CAA2B,KAAKjmH,qBAAsBksH,CAAAA,+BAAAA,EAEtDiP,CAAAA,CAAAA,CAA8B,IAAK5D,CAAAA,oBAAAA,EACzC,CAAA,GAAI4D,GACA,IAAS/oK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAI+oK,CAAuB1tJ,CAAAA,MAAAA,CAAQrb,CAC/C,EAAA,CAAA,GAAI+oK,EAAuB/oK,CAAC,CAAA,CAAE0hD,SAAaA,EAAAA,CAAAA,CAAW,CAClD,IAAMujH,CAAAA,CAAoB8D,CAAuB/oK,CAAAA,CAAC,EAAE+iD,YACpD,CAAA,IAAA,IAASx7B,CAAI,CAAA,CAAA,CAAGA,CAAI09I,CAAAA,CAAAA,CAAkB5pJ,MAAQkM,CAAAA,CAAAA,EAAAA,CAAK,CAC/C,IAAM66I,CAAAA,CAAkB6C,CAAkB19I,CAAAA,CAAC,CAC3C,CAAA,GAAI66I,CAAiBtmH,EAAAA,UAAAA,EAAYxB,aAAiBqC,EAAAA,CAAAA,EAAYrC,WAAW,EAAA,CACrE,OAAI8nH,CAAAA,EAAiB/Q,aAAiB+Q,EAAAA,CAAAA,EAAiB/Q,cAAch2I,MAAS,CAAA,CAAA,GAC1E+mJ,CAAgB4G,CAAAA,gBAAAA,CAAmB,IAAK/K,CAAAA,2BAAAA,CAA4B7M,wBAChEgR,CAAAA,CAAAA,EAAiB/Q,aAAa,CAKlCwC,CAAAA,CAAAA,CAAAA,EAA0B1qG,SAC1Bi5G,EAAAA,CAAAA,EAAiBC,yBACjBD,EAAAA,CAAAA,EAAiBE,kBAEjB,EAAA,IAAA,CAAKrF,yBAAyBnoG,IAAKstG,CAAAA,CAAAA,EAAiBE,kBAAkB,CAAA,CAItEzP,CAAsB2P,CAAAA,kBAAAA,EACtB3P,CAAsB4P,CAAAA,oBAAAA,EACtB,CAAC,IAAK7iH,CAAAA,aAAAA,EACNwiH,CAAiBG,EAAAA,oBAAAA,EAAsBlnJ,MAEvC,EAAA,IAAA,CAAK0hJ,oBAAqBjoG,CAAAA,IAAAA,CAAK,GAAGstG,CAAgBG,CAAAA,oBAAoB,CAGnEH,CAAAA,CAEf,CACJ,CAIR,CAAA,OAAO,CACHtnG,UAAAA,CAAY,CACR7iB,IAAM,CAAA,cAAA,CAAA,CAGlB,CAEQ+uH,2BAAAA,CAA4BrqH,CAAoB+E,CAAAA,CAAAA,CAAmBunH,CAA2B,CAAA,CAClG,IAAMlmH,CAAoB,CAAA,IAAA,CAAKmkH,wCAAyCvqH,CAAAA,CAAAA,CAAY+E,CAAS,CAAA,CAC7F,OAAIqB,CAAAA,CACOA,EAAa6lB,KAEpBqgG,CAAAA,CAAAA,CACOtsH,CAEJ,CAAA,EACX,CAEQsqH,uBAAAA,CAAwBtqH,CAAoB+E,CAAAA,CAAAA,CAAiB,CACjE,IAAMqB,CAAAA,CAAoB,IAAKmkH,CAAAA,wCAAAA,CAAyCvqH,EAAY+E,CAAS,CAAA,CAC7F,OAAIqB,CAAAA,CACOA,EAAa6lH,WAEjB,CAAA,EACX,CAEAl6F,eAAAA,CAAgBhtB,CAAmB+rB,CAAAA,CAAAA,CAAqB,CAEpD,GADA/rB,EAAY,IAAKu8G,CAAAA,2BAAAA,CAA4B1M,2BAA4B7vG,CAAAA,CAAS,CAC9E,CAAA,IAAA,CAAKo6G,aAAiB,EAAA,IAAA,CAAKA,cAAcp+H,IAAO,CAAA,CAAA,CAAG,CACnD,IAAM66C,CAA6B,CAAA,IAAA,CAAKujF,aAAe/5H,EAAAA,GAAAA,CAAI2f,CAAS,CACpE,CAAA,GAAI62B,CAAaA,EAAAA,CAAAA,CAAU3lC,eAAiB2lC,CAAU3lC,CAAAA,aAAAA,CAAclV,IAAO,CAAA,CAAA,CAOvE,OAL4B,CACxBmxC,YAAAA,CAFiB0J,CAAU3lC,CAAAA,aAAAA,CAAc7Q,GAAI0rC,CAAAA,CAAa,CAG1Dz6B,CAAAA,mBAAAA,CAAqBulC,EAAUvlC,mBAC/BG,CAAAA,cAAAA,CAAgBolC,CAAUplC,CAAAA,cAAAA,CAItC,CACJ,CAEAqlC,YAAa92B,CAAAA,CAAAA,CAAiB,CAC1B,OAAI,IAAA,CAAKo6G,aAAiB,EAAA,IAAA,CAAKA,aAAcp+H,CAAAA,IAAAA,CAAO,CACb,CAAA,IAAA,CAAKo+H,eAAiB,IAAKA,CAAAA,aAAAA,EAAe/5H,GAAI2f,CAAAA,CAAS,CAGvF,CAAA,IACX,CAEAwnH,sBAAAA,CAAuBxnH,EAAmBynH,CAA2B,CAAA,CACjE,IAAMC,CAAAA,CAAe,IAAKnL,CAAAA,2BAAAA,CAA4B1M,2BAA4B7vG,CAAAA,CAAS,EAC3FA,CACI,CAAA,IAAA,CAAKonE,mBAAoBR,CAAAA,KAAAA,CAAMK,IAASyC,CAAAA,WAAW,CAAK,EAAA,IAAA,CAAKtC,oBAAoBR,KAAMK,CAAAA,IAAAA,CAAS02C,WAAW,CAAA,CAAI+J,CAAe1nH,CAAAA,CAAAA,CAClI,IAAM62B,CAAAA,CAA6B,KAAKujF,aAAe/5H,EAAAA,GAAAA,CAAI2f,CAAS,CAAA,CACpE,GAAI62B,CAAaA,EAAAA,CAAAA,CAAU3lC,aAAiB2lC,EAAAA,CAAAA,CAAU3lC,cAAclV,IAAO,CAAA,CAAA,CAAG,CAC1E,IAAM2rI,CAA0Bv2H,CAAAA,KAAAA,CAAM1yC,IAAKm4E,CAAAA,CAAAA,CAAU3lC,cAAchnC,MAAM,EAAE,CAAEtD,CAAAA,MAAAA,CACxEghK,CAAsBA,EAAAA,CAAAA,CAAar6F,aAAkBk6F,GAAAA,CAAmB,EAE7E,GAAIE,CAAAA,EAAsBA,CAAmBhuJ,CAAAA,MAAAA,CAAS,CAClD,CAAA,OAAOguJ,CAAmB,CAAA,CAAC,CAEnC,CACJ,CAEAjhE,eAAe,EAAA,CACX,OAAO,IAAK90D,CAAAA,eAChB,CAEAi2H,iBAAAA,CAAkB7nH,EAAmB+rB,CAAqB,CAAA,CACtD,GAAI/rB,CAAAA,EAAaA,CAAa,EAAA,EAAA,EAAM+rB,CAAiBA,EAAAA,CAAAA,EAAiB,GAAI,CACtE,IAAM5qB,CAAuB,CAAA,IAAA,CAAK2mH,6BAA8B9nH,CAAAA,CAAS,CACzE,CAAA,GAAImB,GAAiBgsB,YACbhsB,EAAAA,CAAAA,CAAgBgsB,YAAalyB,CAAAA,UAAAA,GAAe8wB,CAC5C,CAAA,OAAO,CAGnB,CAAA,CACA,OAAO,CACX,CAAA,CAEA+7F,6BAA8B9nH,CAAAA,CAAAA,CAAiB,CAC3C,IAAImB,CAAAA,CACA01B,CAEJ,CAAA,GADA72B,EAAY,IAAKu8G,CAAAA,2BAAAA,CAA4B1M,2BAA4B7vG,CAAAA,CAAS,CAC9E,CAAA,IAAA,CAAKo6G,aAAiB,EAAA,IAAA,CAAKA,cAAcp+H,IAAO,CAAA,CAAA,GAChD66C,CAAY,CAAA,IAAA,CAAKujF,aAAe/5H,EAAAA,GAAAA,CAAI2f,CAAS,CAAA,CACzC62B,GAAW3lC,aAAiB2lC,EAAAA,CAAAA,CAAU3lC,aAAclV,CAAAA,IAAAA,CAAO,CAAG,CAAA,CAAA,CAC9D,IAAMuQ,CAAAA,CAAoB,KAAKL,qBAAsBM,CAAAA,mBAAAA,EAC/Cu7H,CAAAA,CAAAA,CAAmC,IAAK58G,CAAAA,aAAAA,CAAclJ,4BACxDjC,CAAAA,CAAAA,CACAzT,EAAa0gG,yBAAyB,CAAA,CAGtC86B,CAA4BA,EAAAA,CAAAA,EAA4B,EACxD5mH,GAAAA,CAAAA,CAAkB01B,CAAU3lC,CAAAA,aAAAA,CAAc7Q,IAAI0nI,CAAwB,CAAA,CAAA,CAErE5mH,CACDA,GAAAA,CAAAA,CAAkB01B,CAAU3lC,CAAAA,aAAAA,CAActmB,OAAO,EAAA,CAAG8B,MAAO7qB,CAAAA,KAAAA,CAAM,CAAC,CAAA,EAE1E,CAEJ,GAAIs/C,CAAmB01B,EAAAA,CAAAA,CAMnB,OALmC,CAC/B1J,YAAAA,CAAchsB,CACd7P,CAAAA,mBAAAA,CAAqBulC,EAAUvlC,mBAC/BG,CAAAA,cAAAA,CAAgBolC,CAAUplC,CAAAA,cAAAA,CAItC,CAEQu2H,8CAA+ChoH,CAAAA,CAAAA,CAAiB,CACpE,IAAImB,CACA01B,CAAAA,CAAAA,CACJ,GAAI,IAAA,CAAKyjF,gCAAkC,IAAKA,CAAAA,8BAAAA,CAA+Bt+H,IAAO,CAAA,CAAA,GAClF66C,CAAY,CAAA,IAAA,CAAKyjF,8BAAgCj6H,EAAAA,GAAAA,CAAI2f,CAAS,CAC1D62B,CAAAA,CAAAA,EAAW3lC,aAAiB2lC,EAAAA,CAAAA,CAAU3lC,aAAclV,CAAAA,IAAAA,CAAO,CAAG,CAAA,CAAA,CAC9D,IAAMuQ,CAAoB,CAAA,IAAA,CAAKL,qBAAsBM,CAAAA,mBAAAA,GAC/Cu7H,CAAmC,CAAA,IAAA,CAAK58G,aAAclJ,CAAAA,4BAAAA,CACxDjC,EACAzT,CAAa0gG,CAAAA,yBAAyB,CAGtC86B,CAAAA,CAAAA,EAA4BA,CAA4B,EAAA,EAAA,GACxD5mH,CAAkB01B,CAAAA,CAAAA,CAAU3lC,cAAc7Q,GAAI0nI,CAAAA,CAAwB,CAErE5mH,CAAAA,CAAAA,CAAAA,GACDA,CAAkB01B,CAAAA,CAAAA,CAAU3lC,aAActmB,CAAAA,OAAAA,GAAU8B,IAAI,EAAA,CAAG7qB,KAAM,CAAA,CAAC,CAE1E,EAAA,CAEJ,GAAIs/C,CAAAA,EAAmB01B,EAMnB,OALmC,CAC/B1J,YAAchsB,CAAAA,CAAAA,CACd7P,oBAAqBulC,CAAUvlC,CAAAA,mBAAAA,CAC/BG,cAAgBolC,CAAAA,CAAAA,CAAUplC,eAItC,CAEAw2H,gBAAAA,CAAiBjoH,CAAmB+H,CAAAA,CAAAA,CAAwB,CACxD,IAAMqZ,CAAiB,CAAA,IAAA,CAAKl1B,sBAAsBU,qBAAqB,EAAA,CACjEmW,CAAkB,CAAA,IAAA,CAAK7W,qBAAsB8W,CAAAA,sBAAAA,EAC7CsuG,CAAAA,CAAAA,CAAsB,KAAKplH,qBAAsB+7B,CAAAA,0BAAAA,EACjD+nF,CAAAA,CAAAA,CAAa,IAAKkY,CAAAA,QAAAA,CAASloH,CAAS,CAAA,CACpC/f,EAAkB,IAAK40F,CAAAA,cAAAA,CAAe9yE,2BAA4B/B,CAAAA,CAAS,CAC3EmoH,CAAAA,CAAAA,CAAqB,EAAA,CACrBz6B,EAA2B,IAAKo6B,CAAAA,6BAAAA,CAA8B9nH,CAAS,CAAA,EAAGmtB,YAIhF,CAAA,GAHI,CAACplB,CAAAA,EAAmBupG,EAAoB8W,mBACxCrgH,GAAAA,CAAAA,CAAkBupG,CAAoB8W,CAAAA,mBAAAA,CAAAA,CAEtCpY,CAAOA,EAAAA,KAAAA,CAAO,CACd,IAAM12D,EAAoB,IAAKnuC,CAAAA,aAAAA,CAAcrI,qBAAsB9C,CAAAA,CAAS,CACtEwvC,CAAAA,CAAAA,CAAqB,IAAKrkC,CAAAA,aAAAA,CAAclJ,6BAA6BjC,CAAWohB,CAAAA,CAAAA,CAAeg4B,2BAA2B,CAAA,CAC1HsrE,EAAuCngG,IAAUyrF,CAAAA,CAAAA,CAAMA,KAAM9+G,CAAAA,aAAa,EAI5EwzH,CAAsBA,EAAAA,CAAAA,CAAmB1oI,IAAO,CAAA,CAAA,EAChD0oI,CAAmBl1G,CAAAA,OAAAA,CAAStQ,EAAiB,EAAA,CACzC,IAAImpH,EAAuB,CAAA,CAAA,CAAA,CACrBC,EAAsBhvE,CAAAA,CAAAA,EAAqBp6C,EAASjE,CAAAA,UAAAA,CACpDstH,EAAcrpH,CAAAA,EAAAA,EAAUmC,cAAcmnH,WAC5C,CAAA,GAAItpH,EAASytF,CAAAA,oBAAAA,CAAsB,CAC/B,GAAI,CAACztF,EAAAA,CAASmC,aAAc,CACxB,IAAMonH,EAA0B,CAAA,CAC5BrvG,WAAY,CACR7iB,IAAAA,CAAM,YAGd2I,CAAAA,CAAAA,CAAAA,EAAAA,CAASmC,aAAeonH,GAC5B,CACA,GAAI/6B,CAAAA,EAAuBA,CAAoBzyF,CAAAA,UAAAA,GAAeiE,EAASjE,CAAAA,UAAAA,CAAY,CAC/EiE,EAASwpH,CAAAA,SAAAA,CAAY,CAErB,CAAA,CAAA,IAAM16E,EAAU,CAAA,IAAA,CAAK9hD,qBAAsBgU,CAAAA,gBAAAA,GAEvC,IAAKvL,CAAAA,cAAAA,CAAe4D,iBAAqB,EAAA,IAAA,CAAKowH,uBAAwB1oI,CAAAA,CAAO,CAC7Eif,CAAAA,EAAAA,CAASqL,IAAM,CAAG,EAAA,IAAA,CAAKiqE,UAAWxsE,CAAAA,oBAAAA,CAAqBD,CAAe,CAAC,CAAA,CAAA,EAAI,IAAK6gH,CAAAA,cAAAA,EAAgB,CAAI3oI,CAAAA,EAAAA,CAAO,CAE3Gif,CAAAA,CAAAA,EAAAA,CAASqL,GAAM,CAAA,CAAA,EAAG,IAAKiqE,CAAAA,UAAAA,CAAWxsE,qBAAqBD,CAAe,CAAC,CAAI9nB,CAAAA,EAAAA,CAAO,CAGlF+tD,CAAAA,CAAAA,EAAAA,CAAQ66E,iBACR,EAAA,IAAA,CAAK19G,cAAcpJ,2BAA4B/B,CAAAA,CAAS,CAAGpH,EAAAA,WAAAA,EACvDo1C,EAAAA,EAAAA,EAAS86E,qBAAuBlwH,EAAAA,WAAAA,KAEpCsG,EAASqL,CAAAA,GAAAA,CAAM,IAAKiqE,CAAAA,UAAAA,CAAW1sE,kBAAkBC,CAAe,CAAA,CAAI,GAChEimC,CAAAA,EAAAA,CAAQ+6E,4BACR7pH,EAASqL,CAAAA,GAAAA,CAAM,CAAGrL,EAAAA,EAAAA,CAASqL,GAAG,CAAA,CAAA,EAAI,IAAKze,CAAAA,IAAAA,CAAKsB,IAAI,CAG5D,CAAA,CAAA,EAAA,CAAA,KACQm7H,EACArpH,CAAAA,EAAAA,CAASqL,GAAMg+G,CAAAA,EAAAA,CAAYh+G,GAEvB,CAAA,IAAA,CAAK5V,eAAe4D,iBAAqB,EAAA,IAAA,CAAKowH,uBAAwB1oI,CAAAA,CAAO,CAC7Eif,CAAAA,EAAAA,CAASqL,GAAM,CAAA,CAAA,EAAG,KAAKiqE,UAAWxsE,CAAAA,oBAAAA,CAAqBD,CAAe,CAAC,IAAI,IAAK6gH,CAAAA,cAAAA,EAAgB,CAAA,CAAA,EAAI3oI,CAAO,CAAMif,GAAAA,EAAAA,EAAAA,CAASjE,UAAU,CAAA,CAAA,CAEpIiE,EAASqL,CAAAA,GAAAA,CAAM,CAAG,EAAA,IAAA,CAAKiqE,WAAWxsE,oBAAqBD,CAAAA,CAAe,CAAC,CAAA,CAAA,EAAI9nB,CAAO,CAAA,GAAA,EAAMif,EAASjE,CAAAA,UAAU,GAIvHotH,EAAc,CAAA,IAAA,CAAKW,6BAA8BhpH,CAAAA,CAAS,CAEtDs5C,CAAAA,CAAAA,EACAgvE,EACC,GAAA,CAAC94E,GAAuB,CAACzsC,CAAAA,CAAgB0rC,cAAkB,EAAA,CAAC,KAAK5iD,IAAKkR,CAAAA,eAAAA,CAAAA,GAEvEsrH,EAAc,CAAA,CAAA,CAAA,CAAA,CAElB,IAAMv7B,EAAmB5tF,CAAAA,EAAAA,EAAU4tF,gBAAkBlmI,EAAAA,MAAAA,CAAO85H,OAAO,CAAA,CAE/D2nC,EACC3jH,GAAAA,IAAAA,CAAaY,2BAA6BpG,EAASjE,CAAAA,UAAAA,EAAYrC,WAAW,EAAA,EACvE8L,IAAaW,CAAAA,2BAAAA,GAAgCnG,EAASjE,CAAAA,UAAAA,EAAYrC,aAClEsG,EAAAA,EAAAA,EAAUu6C,QAAU9/E,EAAAA,MAAAA,CAAS,CAC7BmzH,EAAAA,EAAAA,EAAkBnzH,MAAS,CAAA,CAAA,CAAA,EAE/BwuJ,EAAc/0G,IAAKlU,CAAAA,EAAQ,EAEnC,CACJ,CAAC,EAET,CACA,OAAOipH,CACX,CAEQa,6BAA8BhpH,CAAAA,CAAAA,CAAiB,CAEnD,IAAMipH,CADe,CAAA,IAAA,CAAK/8H,qBAAsBM,CAAAA,mBAAAA,GACPy8H,mBACnCllH,CAAAA,CAAAA,CAAyB,IAAK8wE,CAAAA,cAAAA,CAAe9yE,2BAA4B/B,CAAAA,CAAS,CACxF,CAAA,OAAIipH,GAAuBA,CAAoBtvJ,CAAAA,MAAAA,CAAS,CAC7C,CAAA,EAAEsvJ,CAAoB1vH,CAAAA,OAAAA,CAAQwK,CAAc,CAAA,CAAI,IAEpD,CACX,CAAA,CAEAmlH,iCAAkClpH,CAAAA,CAAAA,CAAiB,CAC/C,IAAMgwG,CAAa,CAAA,IAAA,CAAKmZ,0BAA0BnpH,CAAS,CAAA,CACrD/f,CAAkB,CAAA,IAAA,CAAK40F,cAAe9yE,CAAAA,2BAAAA,CAA4B/B,CAAS,CAAA,CAC3EmoH,EAAqB,EAAA,CACrBz6B,CAA2B,CAAA,IAAA,CAAKs6B,8CAA+ChoH,CAAAA,CAAS,CAC9F,CAAA,GAAIgwG,GAAOA,KAAO,CAAA,CACd,IAAM0U,CAAAA,CAAuC1U,CAAMA,CAAAA,KAAAA,CAAM9+G,aACrDwzH,CAAAA,CAAAA,EAAsBA,EAAmB1oI,IAAO,CAAA,CAAA,EAChD0oI,CAAmBl1G,CAAAA,OAAAA,CAAStQ,GAAiB,CACzC,GAAIA,CAASytF,CAAAA,oBAAAA,CAAsB,CAC/B,GAAI,CAACztF,CAASmC,CAAAA,YAAAA,CAAc,CACxB,IAAMonH,CAA0B,CAAA,CAC5BrvG,WAAY,CACR7iB,IAAAA,CAAM,YAGd2I,CAAAA,CAAAA,CAAAA,CAAAA,CAASmC,YAAeonH,CAAAA,EAC5B,CACI/6B,CAAAA,EAAuBA,EAAoBzyF,UAAeiE,GAAAA,CAAAA,CAASjE,UACnEiE,EAAAA,CAAAA,CAASwpH,SAAY,CAAA,CAAA,CAAA,CACrBxpH,CAASqL,CAAAA,GAAAA,CAAM,IAAM,IAAKze,CAAAA,IAAAA,CAAKsB,IAAO,CAAA,GAAA,CAAMnN,GAE5Cif,CAASqL,CAAAA,GAAAA,CAAM,GAAM,CAAA,IAAA,CAAKze,KAAKsB,IAAO,CAAA,GAAA,CAAMnN,CAAU,CAAA,KAAA,CAAQif,CAASjE,CAAAA,UAAAA,CAE3EktH,CAAc/0G,CAAAA,IAAAA,CAAKlU,CAAQ,EAC/B,CACJ,CAAC,EAET,CACA,OAAOipH,CACX,CAEAD,SAASloH,CAAiB,CAAA,CAMtB,OAJyB,CACrBgwG,KAFmB,CAAA,IAAA,CAAKoK,aAAe/5H,EAAAA,GAAAA,CAAI2f,CAAS,CAGpD+tC,CAAAA,aAAAA,CAAe,IAAKA,CAAAA,aAAAA,CAG5B,CAEQo7E,yBAA0BnpH,CAAAA,CAAAA,CAAiB,CAK/C,OAHyB,CACrBgwG,KAFmB,CAAA,IAAA,CAAKsK,8BAAgCj6H,EAAAA,GAAAA,CAAI2f,CAAS,CAAA,CAK7E,CAEAopH,aAAAA,CAAcppH,EAAiB,CAC3B,IAAM62B,CAAiB,CAAA,IAAA,CAAKujF,aAAe/5H,EAAAA,GAAAA,CAAI2f,CAAS,CAAA,CACxD,OAAI62B,CACuBA,CAAAA,CAAAA,CAAUplC,cAG9B,CAAA,IACX,CAEA8oG,4BAAAA,CAA6Bv6F,CAAgB0qD,CAAAA,CAAAA,CAAc,CACvD,IAAMzqD,CAAAA,CAAY,IAAK/T,CAAAA,qBAAAA,CAAsBgU,gBAAgB,EAAA,CACvD4jH,CAA0B,CAAA,IAAA,CAAKC,gBAAgBr5D,CAAW1qD,CAAAA,CAAS,CACzE,CAAA,IAAA,CAAKo6G,aAAczjJ,CAAAA,GAAAA,CAAIqpC,CAAW8jH,CAAAA,CAAY,EAC9C,IAAKzJ,CAAAA,eAAAA,CAAgB1jJ,GAAIqpC,CAAAA,CAAAA,CAAW8jH,CAAY,CAAA,CAChD,IAAKjgG,CAAAA,YAAAA,CAAalC,kCACd3hB,CACAukB,CAAAA,IAAAA,CAAUu/F,CAAY,CAAA,CAEtB,IAAK5qH,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAE,EAE9C,IAAKgmH,CAAAA,sBAAAA,CAILr+G,CAAWuhH,EAAAA,4BAAAA,GAA+B,CAAC,CAAGvhI,EAAAA,OAAAA,EAC9CggB,CAAUuhH,CAAAA,4BAAAA,CAA6B,CAAC,CAAGxhH,EAAAA,SAAAA,EAC3CC,CAAUuhH,CAAAA,4BAAAA,CAA6B,CAAC,CAAA,EAAG9nH,cAC7B,GAAA,IAAA,CAAK0tE,oBAAoBR,KAAMK,CAAAA,IAAAA,CAASyC,WAAW,CAAA,EAAK,IAAKtC,CAAAA,mBAAAA,CAAoBR,KAAMK,CAAAA,IAAAA,CAAS02C,WAAW,CACzH,CAAA,CAAA,IAAA,CAAKf,uCAAwC38G,CAAAA,CAAAA,CAAUuhH,4BAA8B,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAEhG,KAAK7E,cAAe,CAAA,CAAA,CAAI,EAEhC,CAEMniB,0CAA0Cx6F,CAAiB,CAAA,CAAA,OAAAwe,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC7D,IAAM4C,CAAsB,CAAA,IAAA,CAAKl1B,qBAAsBU,CAAAA,qBAAAA,EACjDyzH,CAAAA,CAAAA,CAAiD,MAAM,IAAA,CAAKx8F,aAAa5C,0BAC3EG,CAAAA,CAAAA,CAAe6B,6CACfjjB,CAAAA,CAAAA,CACA,IAAK9G,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAE,EAGlD,GAAI+nH,CAAAA,EAAwB,IAAM,CAAA,CAC9B,IAAMG,CAAAA,CAAqB,IAAIzvH,EAAAA,CAC/ByvH,EAAQ1uH,4BAA6BuuH,CAAAA,CAAoB,CAEzD,CAAA,IAAA,IAAS/hK,EAAI,CAAGA,CAAAA,CAAAA,CAAI+hK,CAAsBxuH,EAAAA,iBAAAA,EAAmBl4B,OAAQrb,CAAK,EAAA,CAAA,CACtE,IAAMmiK,CAAAA,CAAWJ,CAAsBxuH,EAAAA,iBAAAA,CAAkBvzC,CAAC,CAAA,CAAE,CAAC,CAC7D,CAAA,IAAA,CAAKszC,eAAgBj7B,CAAAA,GAAAA,CAAI8pJ,CAASlwG,CAAAA,IAAAA,CAAMkwG,CAAQ,EACpD,CAIA,GAHA,IAAA,CAAKrG,aAAczjJ,CAAAA,GAAAA,CAAIqpC,CAAWwgH,CAAAA,CAAO,CACzC,CAAA,IAAA,CAAKnG,gBAAgB1jJ,GAAIqpC,CAAAA,CAAAA,CAAWwgH,CAAO,CAAA,CAEvC,CAAKlC,IAAAA,CAAAA,sBAAAA,CACF,CACH,IAAMiD,EAAY,CAAK11H,CAAAA,IAAAA,CAAAA,IAAAA,CAAKkR,eAC5B,CAAA,IAAA,CAAK4/G,cAAe,CAAA,CAAA,CAAA,CAAM4E,CAAW,CAAA,CAAA,CAAI,EAC7C,CACA,OAAA,IAAA,CAAKlqH,kBAAmBnB,CAAAA,cAAAA,CAAe,IAAKtE,CAAAA,eAAe,CACpD4uH,CAAAA,CACX,CACA,OAAO,IACX,CAEA71D,CAAAA,CAAAA,wBAAAA,CAAyB3qD,CAAiB,CAAA,CACtC,OAAO,IAAA,CAAKo6G,eAAe/5H,GAAI2f,CAAAA,CAAS,CAC5C,CAEAi8E,gBAAgBj8E,CAAmB5F,CAAAA,CAAAA,CAAkB,CACjD,IAAM8yB,EAAU,IAAKF,CAAAA,eAAAA,CAAgBhtB,CAAW5F,CAAAA,CAAU,CACtDivH,CAAAA,CAAAA,CAAuB,EAC3B,CAAA,OAAIn8F,GAASC,YACTk8F,GAAAA,CAAAA,CAAen8F,CAAQC,CAAAA,YAAAA,CAAau4F,eAAkBx4F,CAAAA,CAAAA,CAAQC,YAAau4F,CAAAA,eAAAA,CAAkB,IAE1F2D,CACX,CAEAC,mBAAoBtpH,CAAAA,CAAAA,CAAmButB,CAAqB,CAAA,CACxD,IAAMyiF,CAAAA,CAAa,KAAKkY,QAASloH,CAAAA,CAAS,CAC1C,CAAA,GAAIgwG,GAAOA,KAAO,CAAA,CACd,IAAM0U,CAAAA,CAAuCngG,KAAUyrF,CAAMA,CAAAA,KAAAA,CAAM9+G,aAAa,CAAA,CAIhF,GAAIwzH,CAAAA,EAAsBA,CAAmB1oI,CAAAA,IAAAA,CAAO,EAAG,CACnD,IAAMutI,CAAqB,CAAA,EAC3B7E,CAAAA,OAAAA,CAAmBl1G,CAAAA,OAAAA,CAAStQ,GAAY,CAChCA,CAAAA,CAAS0tF,cAAmBr/D,GAAAA,CAAAA,EAC5Bg8F,CAAcn2G,CAAAA,IAAAA,CAAKlU,CAAQ,EAEnC,CAAC,CACMqqH,CAAAA,CACX,CACJ,CACJ,CAEAvG,qBAAsBwG,CAAAA,CAAAA,CAAqB,CACvCA,CAAAA,CAAiB9vH,eAAiB,IAAKR,CAAAA,qBAAAA,CAAsBZ,iBAAiB,EAAA,CAC9EkxH,CAAiBz7E,CAAAA,aAAAA,CAAgB,IAAKA,CAAAA,aAAAA,CACtC,IAAMz4B,CAAM,CAAA,IAAIC,WAAY,CAAA,0BAAA,CAA4B,CACpDx7B,MAAAA,CAAQyvI,CACX,CAAA,CAAA,CACD,KAAKz9H,SAAU6B,CAAAA,YAAAA,CAAa67H,eAAkBD,CAAAA,CAAAA,CAC9CpwH,MAAOoc,CAAAA,aAAAA,CAAcF,CAAG,EAC5B,CAEAouC,aAActkG,CAAAA,CAAAA,CAAQ,CAClB,OAAI,KAAK80H,OAAQ7zF,CAAAA,GAAAA,CAAIjhC,CAAG,CAAA,CAAI,GAIhC,CAEAsqK,0BAAAA,CAA2B7nK,CAAc,CAAA,CACrC,IAAK25J,CAAAA,mBAAAA,CAAsB35J,EAC/B,CACA8nK,4BAA0B,CACtB,OAAO,IAAKnO,CAAAA,mBAChB,CAEAwB,yBAAAA,EAAyB,CACrB,IAAM53C,EAAgB,IAAKl5E,CAAAA,qBAAAA,CAAsBm5E,6BAA6B,EAAA,EAAID,aAAgB,CAAA,CAAA,CAC5FwkD,CAAa,CAAA,IAAI11H,MAAOwiD,CAAAA,OAAAA,EAC9B,CAAA,OAAI0uB,EAAgBwkD,CACTxkD,CAAAA,CAAAA,CAAgBwkD,CAChBxkD,CAAAA,CAAAA,CAAgBwkD,EACE,IAAK/0C,CAAAA,cAAAA,CAAe9P,cAAe,CAAA,IAAI7wE,IAAI,EAAA,CAAG0iD,WAAW,EAAA,CAAI,IAAI1iD,IAAI,EAAA,CAAGyiD,QAAQ,EAAA,CAAK,CAAC,CAAA,CACrFizE,CAAaxkD,CAAAA,CAAAA,CAEhC,CAEf,CAEAykD,sBAAAA,CAAuBl0H,CAAc,CAAA,CACjC,IAAMk9G,CAAAA,CAAoB,IAAK3mH,CAAAA,qBAAAA,CAAsB0sH,0BAA4BkR,EAAAA,sBAAAA,CACjF,OAAOjX,CAAAA,CAAkBl9G,CAAM,CAAIk9G,CAAAA,CAAAA,CAAkBl9G,CAAM,CAAA,CAAIk9G,EAAkBkX,OACrF,CACAC,aAAa,EAAA,CACT,IAAMhqH,CAAAA,CAAY,IAAKmL,CAAAA,aAAAA,CAAcpL,cAAkB,EAAA,EAAA,CAEvD,OADoB,IAAA,CAAK+2B,YAAa92B,CAAAA,CAAS,CAC3B1N,EAAAA,wBACxB,CACA23H,YAAat0H,CAAAA,CAAAA,CAAgBG,CAAkB/I,CAAAA,CAAAA,CAAY,CACvD,IAAM0K,CAAkB,CAAA,IAAA,CAAKvL,sBAAsBwL,iBAAiB,EAAA,CAChE0pB,CAAsB,CAAA,IAAA,CAAKl1B,sBAAsBU,qBAAqB,EAAA,CACtEs9H,CAAa,CAAA,IAAA,CAAKF,eAClBE,CAAAA,CAAAA,EAAc9oG,CAAe+V,CAAAA,yBAAAA,GAC7BrhC,CAAWA,CAAAA,CAAAA,CAAWo0H,CAE1B,CAAA,CAAA,IAAMC,EAAcp9H,CAAS,CAAA,GAAA,CAAMA,CAAS,CAAA,MAAA,CAE5C,OADgB0K,CAAAA,CAAWZ,IAAOY,CAAAA,CAAAA,CAAWo+B,iBAAiBroC,OAAQ,CAAA,KAAA,CAAOsI,CAAQ,CAAA,CAAEtI,OAAQ,CAAA,KAAA,CAAOmI,CAAM,CAAA,CAAIw0H,CAEpH,CACAvK,yBAAAA,CAA0B70G,CAAoB,CAAA,CAC1C,IAAM4D,CAAAA,CAAuB,IAAKziB,CAAAA,qBAAAA,CAAsB0iB,wBAClDw7G,CAAAA,CAAAA,CAAuB,IAAKl+H,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAA,CAChF/kB,CAAgBE,CAAAA,6BAAAA,EAAiCF,EAAgBG,8BACjE,GAAA,IAAA,CAAKmtG,gBAAiBnuG,CAAAA,YAAAA,CAAa,CAAMa,CAAAA,CAAAA,CAAAA,CAAgBG,8BAA8B,CAAA,CAGvFs7G,EAAgB3hE,wBAChB,EAAA,IAAA,CAAK9H,sBAAuBruB,CAAAA,kBAAAA,EAEhC,CAAA,IAAMopE,CAAmB,CAAA,IAAA,CAAKxvG,sBAAsByvG,uBAAuB,EAAA,CAAA,CACvE,CAAC,IAAA,CAAK9vG,KAAKkR,eAAoB,EAAA,IAAA,CAAKlR,IAAKkR,CAAAA,eAAAA,EAAmB,CAAC,IAAK6+G,CAAAA,4BAAAA,IAC9DlgB,CAAiBviE,CAAAA,OAAAA,EAAW,CAACpuB,CAAAA,EAAiB2zG,wBAC9C,EAAA,IAAA,CAAK5C,kBAAkBjgB,iBAAkB,CAAA,CAAC,IAAKigB,CAAAA,iBAAAA,CAAkBvf,8BAA8B,EAAE,CAEjG,CAAA,IAAA,CAAK1wG,KAAKkR,eAAiB,GAAA,IAAA,CAAK6+G,4BAA+B,CAAA,CAAA,CAAA,CAAA,EAE3E,CAEAiE,8BAAAA,CAA+B90G,CAAsB0yG,CAAAA,CAAAA,CAA8B,CACxD,IAAKvxH,CAAAA,qBAAAA,CAAsBq0G,2BAA2B,EAAA,CAC1D94F,WACf,IAAKs0G,CAAAA,eAAAA,CAAgB7b,WAAW,EAAA,CAEpC,IAAMn9F,CAAkB,CAAA,IAAA,CAAK7W,qBAAsB8W,CAAAA,sBAAAA,EAC7CiuG,CAAAA,CAAAA,CAAoB,IAAK/kH,CAAAA,qBAAAA,CAAsBurH,qBAEhD10G,CAAAA,CAAAA,CAAAA,EAAiB67G,eAAmB,EAAA,CAAC7zG,CAAgB8zG,CAAAA,gCAAAA,EACrD97G,CAAiB67G,EAAAA,eAAAA,EAAmB3N,GAAc6N,+BAAmC/zG,EAAAA,CAAAA,EAAiB8zG,gCAEvG,GAAA,IAAA,CAAKF,mBAAoBlB,CAAAA,CAAqB,EAEtD,CAEA4M,YAAYhqJ,CAAe0tE,CAAAA,CAAAA,CAAuB,CAC9C1tE,CAAAA,CAAQA,GAAOu4B,WAAW,EAAA,CAC1B,IAAM0xH,CAAAA,CAAkC,KAAKC,kBAAmB,CAAA,IAAA,CAAK34H,eAAiBm8C,CAAAA,CAAAA,CAAe1tE,CAAK,CAAA,CACtGmqJ,CAA8C,CAAA,GAC9CC,CAA4C,CAAA,EAChDH,CAAAA,OAAAA,CAAe96G,EAAAA,OAAAA,CAASk7G,CAAyB,EAAA,CACzCA,GAAOxjG,KAAOtuB,EAAAA,WAAAA,EAAciiF,CAAAA,UAAAA,CAAWx6G,CAAK,CAAA,CAC5CmqJ,CAA0Bp3G,CAAAA,IAAAA,CAAKs3G,CAAK,CAEpCD,CAAAA,CAAAA,CAAwBr3G,IAAKs3G,CAAAA,CAAK,EAE1C,CAAC,CACmCF,CAAAA,CAAAA,CAA0BpoK,OAAOqoK,CAAuB,CAEhG,CAEQF,kBAAAA,CAAmB/pG,CAA4CutB,CAAAA,CAAAA,CAAyB48E,CAAmB,CAAA,CAC/G,IAAML,CAAkC,CAAA,EACxC9pG,CAAAA,OAAAA,CAAchR,EAAAA,OAAAA,CAAS5jB,CAAyB,EAAA,CAC5C,GAAIA,CAAMznC,EAAAA,IAAAA,EAAMy0C,WAAW,EAAA,CAAGW,OAAQoxH,CAAAA,CAAW,CAAK,EAAA,CAAA,CAAA,CAClD,OAEJ,IAAM/lE,CAAAA,CAAyB7W,CAAcnnF,CAAAA,MAAAA,CAAQg+F,GAAyBA,CAAiBh5D,GAAAA,CAAAA,CAAK2kB,IAAI,CAAA,CACpG3kB,EAAKwzG,SACL,CAAA,IAAA,CAAKM,UAAWiB,CAAAA,kBAAAA,CAAmB/0G,CAAKwzG,CAAAA,SAAS,CAAEloH,CAAAA,SAAAA,CAAW/1B,GAAmB,CACzEA,CAAAA,EAAUyjG,CAAcjrF,EAAAA,MAAAA,EAAU,CAClC2wJ,EAAAA,CAAAA,CAAcl3G,IAAK,CAAA,IAAA,CAAKw3G,kBAAkBh/H,CAAK2kB,CAAAA,IAAAA,CAAM3kB,CAAKznC,CAAAA,IAAAA,CAAMynC,CAAKwqC,CAAAA,QAAAA,CAAUxqC,CAAKwzG,CAAAA,SAAS,CAAC,EAEtG,CAAC,CACMx6C,CAAAA,CAAAA,EAAcjrF,QAAU,CAC/B2wJ,EAAAA,CAAAA,CAAcl3G,IAAK,CAAA,IAAA,CAAKw3G,kBAAkBh/H,CAAK2kB,CAAAA,IAAAA,CAAM3kB,CAAKznC,CAAAA,IAAAA,CAAMynC,CAAKwqC,CAAAA,QAAAA,CAAUxqC,CAAKwzG,CAAAA,SAAS,CAAC,EAEtG,CAAC,CACMkrB,CAAAA,CACX,CAEQM,iBAAAA,CAAkBj1H,CAAgBs9E,CAAAA,CAAAA,CAAmB43C,EAAsBzrB,CAAiB,CAAA,CAChG,IAAM3nG,CAAAA,CAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CACzDy+B,EAAiC,IAAInB,EAAAA,CAC3CmB,CAAexgC,CAAAA,MAAAA,CAASA,EACxBwgC,CAAeI,CAAAA,gBAAAA,CAAmB5gC,CAClCwgC,CAAAA,CAAAA,CAAejP,MAAQ+rD,CACvB98C,CAAAA,CAAAA,CAAeC,QAAWy0F,CAAAA,CAAAA,CAC1B10F,CAAeipE,CAAAA,SAAAA,CAAYA,CAC3B,CAAA,IAAIloE,EAAWz/B,CAAWqzH,CAAAA,eAAAA,CAAgB,CAAC,CAAA,CACvCZ,CAAa,CAAA,IAAA,CAAKF,aAAa,EAAA,CACnC,OAAIE,CACAhzF,GAAAA,CAAAA,CAAWA,CAAWgzF,CAAAA,CAAAA,CAAAA,CAE1B/zF,CAAe5/B,CAAAA,IAAAA,CAAO,CAClB7H,GAAAA,CAAK+I,EAAWZ,IAAOY,CAAAA,CAAAA,CAAWo+B,gBAAiBroC,CAAAA,OAAAA,CAAQ,KAAO0pC,CAAAA,CAAQ,CAAE1pC,CAAAA,OAAAA,CAAQ,MAAO2oC,CAAexgC,CAAAA,MAAM,CAAI,CAAA,MAAA,CAAA,CAExHwgC,CAAe3Y,CAAAA,OAAAA,CAAU,CACzB2Y,CAAAA,CAAAA,CAAezY,QAAU,CAClByY,CAAAA,CACX,CAEQwyF,uBAAAA,CAAwB1oI,CAAe,CAAA,CAC3C,IAAMggB,CAAAA,CAAiC,KAAK/T,qBAAsB+T,CAAAA,SAAAA,CAC5D8qH,CAAYpyG,CAAAA,MAAAA,CAAO55D,IAAKkhD,CAAAA,CAAAA,CAAU+qH,YAAY,CAAA,CAAE,CAAC,CACvD,CAAA,OAAI/qH,CAAAA,CAAAA,CAAAA,CAAU+qH,aAAaD,CAAS,CAAA,CAAElmG,QAAS5kC,CAAAA,CAAO,CAE1D,CAEQ2oI,cAAAA,EAAc,CAClB,IAAM3oH,CAAiC,CAAA,IAAA,CAAK/T,qBAAsB+T,CAAAA,SAAAA,CAClE,OAAO0Y,MAAO55D,CAAAA,IAAAA,CAAKkhD,CAAU+qH,CAAAA,YAAY,CAAE,CAAA,CAAC,CAChD,CAAA,CAAA,CAAAroK,GAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EApvDSmuE,IAAkB,CAAlBA,CAAAA,GAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,GAAAA,CAAkBlzE,OAAlBkzE,CAAAA,GAAAA,CAAkB36B,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,EAEhB,IAAO06B,CAAAA,CAAPm6F,GAAOn6F,CAAAA,OAAAA,CAAkB,KCxBHl1C,IAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAA,IAAA6sI,CAAA3sI,CAAAA,EAAAA,CAAAyoC,CAAA,CAAAmkG,CAAAA,CAAAA,CAAAD,CAAAE,CAAAA,SAAAA,CAAAC,CAAAH,CAAAA,CAAAA,CAAAI,MAAAx/F,CAAAA,CAAAA,CAAAzF,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAAs4D,CAAiB,CAAA,CAAA,CAAA,CAAIE,CAAA,CAAU,CAAA,CAAA,CAAA,CACxCzvI,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+ByC,GAAA,OAAA,CAAA,UAAA,CAAA,IAAA8sI,CAAA5sI,CAAAA,EAAAA,CAAAyoC,CAAA,CAAA,CAAAokG,UAAAt/F,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAy/F,CAAAA,eAAAA,CAAAJ,CAAA,CAAqB,CAAA,CAAA,CAAA,CAA7DrvI,EAAA,EAAA,CACAD,EAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CACJC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAFS+C,IAAA2sI,CAAAA,EAAAA,CAAA,KAAAL,CAAAA,CAAAA,CAAA50H,KAAA7H,GAAA02B,CAAAA,EAAA,CAC6BvmC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,WAAAqsI,CAAAA,CAAAA,CAAAhnK,KAAA25F,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA53B,EAAA,EAAA,CASlCtqC,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAIyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAA,IAAAotI,CAAAA,CAAAltI,EAAA2+D,CAAAA,CAAA,CAAAwuE,CAAAA,CAAAA,CAAAD,EAAAL,SAAAO,CAAAA,CAAAA,CAAAF,CAAAH,CAAAA,MAAAA,CAAAx/F,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA64D,CAAiB,CAAA,CAAA,CAAA,CAAKC,CAAA,CAAU,CAAA,CAAA,EACzC/vI,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA+ByC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAA,IAAAqtI,CAAAA,CAAAntI,EAAA2+D,CAAAA,CAAA,CAAAkuE,CAAAA,SAAAA,CAAAt/F,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAy/F,gBAAAG,CAAA,CAAqB,CAAA,CAAA,EAA7D5vI,EAAA,EAAA,CACAD,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,EAAAA,sCAFS+C,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAAE,CAAAn1H,CAAAA,IAAAA,CAAA7H,GAAA02B,CAAAA,EAAA,EAC6BvmC,EAAA,EAAA,CAAAC,EAAA,CAAA,WAAA,CAAAo8D,EAAA,CAAA,CAAA,CAAA,CAAAwwE,CAAAA,CAAAA,CAAAxkG,MAAA4E,CAAA2D,CAAAA,KAAAA,CAAApvD,KAAA,CAAA,CAAAy9E,EAAA,EALlDliE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA2C,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAEnCgwI,CAAAA,EAAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAAC,CAAAA,EAAA,CAMJhwI,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CACIC,CAAAA,EAAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CACJC,IAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,CAAA,CAAA,CAAA,CAV4BgZ,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAA6mC,EAAA,CAAA,CAAA,CAAAC,GAAA,CAAAkG,CAAAA,CAAAvrB,OAAAurB,CAAAA,CAAAA,CAAAigG,YAAA,CAAA,CAC5BltI,CAAAA,EAAAA,GAAAmtI,EAAAt8H,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CAAAo8B,CAAAA,CAAAA,CAAA2D,MAAA/kE,OAAA,CAAA,CAAA,CAAA,CAODm0B,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,SAAA,CAAAgtC,CAAAA,CAAAigG,YAAA,CAAA,CACsBltI,IAAAC,CAAAA,EAAAA,CAAA,KAAA,CAAA,iBAAA,wCArDrClD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAA0C,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACD,EAAA,eAAA,CAAA,CAAA,CAK7ByC,CAAAA,EAAAA,CAAA,eAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAAiBqtC,EAAAmgG,eAAA,EAAiB,CAAA,CAAA,EAAC,kBAAA,CAAA,UAAA,CAAA1tI,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CACfqtC,EAAAogG,+BAAA,EAAiC,CAAA,CAAA,CACrDluI,CAAAA,EAAAA,CAAA,CAAAmuI,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAAhuI,EAAA,CAAA,CACAvC,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAOIyC,CAAAA,EAAAA,CAAA,SAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAAUqtC,EAAAsgG,YAAAjmG,CAAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAE9BkmG,EAAA,CAAA,eAAA,CAAA,SAAAlmG,CAAA,CAAA,CAAA5nC,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA/nC,CAAAA,OAAAguI,EAAAxgG,CAAAA,CAAAA,CAAA2D,KAAApvD,CAAAA,KAAAA,CAAA8lD,CAAA,CAAA,GAAA2F,EAAA2D,KAAApvD,CAAAA,KAAAA,CAAA8lD,CAAA1nC,CAAAA,CAAAA,EAAAA,CAAA0nC,CAAA,CAAA,CAAA,CAAA,CACA9nC,GAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAsgG,YAAAjmG,CAAAA,CAAA,CAAoB,CAAA,CAAA,CAAC,CAAA,UAAA,CAAA,UAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAClBqtC,CAAAygG,CAAAA,UAAAA,EAAY,CAAA,CAAA,CAAC,CAAA,SAAA,CAAA,UAAA,CAAAhuI,EAAAC,CAAAA,CAAA,EAAA,IAAAstC,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EACdqtC,CAAAA,CAAAA,CAAAogG,iCAAiC,CAAA,CAAA,CAAA,CAAC,QAAA,UAAA,CAAA3tI,EAAAC,CAAAA,CAAA,EAAA,IAAAguI,CAAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,OAAAhuI,EAAA+tI,CAAAA,CAAAA,CAAAtwI,YAEV,EAAE,CAAA,CAAA,CAAA,CAAC,MAAA,CAAA,UAAA,CAAAqC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAguI,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,CAAAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAAhuI,EAAA+tI,CAAAA,CAAAA,CAAAtwI,YAAAwwI,CAAA7qK,CAAAA,KAAAA,CACkB,KAAK,CAAA,CAAA,CAfjEi6B,CAAAA,EAAAA,EAgByB,EAAA,CAE7BD,EAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,CAAA,CACJC,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAsE,GAAA,MAAA,CAAA,CAAA,CACZyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,GAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAA6gG,CAAAA,gBAAAA,CAAAxmG,CAAA,CAAwB,CAAA,CAAA,CACnFz1B,CAAAA,EAAAA,CAAA,EAAA,CACJ5U,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CACIgwI,GAAA,EAAAgB,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAAd,EAAA,CAAA,CAMJhwI,IAAK,EAAA,CAETkC,EAAA,CAAA,EAAA,CAAA6uI,GAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAeJ/wI,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA8C,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA/Y,EAAA,CAAA,CAAA,CAAA,CAzDKosF,EAAA,CAAA,gBAAA,CAAAnmC,CAAAghG,CAAAA,QAAAA,CAAA,EAAA,CAAA,CAsBWjuI,GAAA,CAAA,CAAA,CAAA+/D,EAAA,CAAA,aAAA,CAAA,EAAA8tE,CAAAA,CAAAA,CAAA7qK,KAAA,CAAA,KAAA,EALAi9B,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,EAAA,CAAA0F,EAAAM,CAAAA,CAAAA,CAAAihG,cAAAjhG,EAAAA,CAAAA,CAAAghG,QAAA,CAAA,CAAA,CACAE,EAAA,CAAA,SAAA,CAAAlhG,EAAA2D,KAAApvD,CAAAA,KAAA,CASawe,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,KAAA,CAAA,eAAA,CAAuB,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAEPD,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,QAAA,CAAAgtC,CAAAmhG,CAAAA,eAAAA,EAAA,CAAA,CAEjCpuI,GAAA,CAAA,CAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAAnvB,CAAAohG,CAAAA,QAAAA,CAAA,GAAA,CAAA,CAGAruI,GAAA,CAAA,CAAA,CAAAmtI,EAAAlgG,CAAAA,CAAAA,CAAAqhG,SAAA,CAQRtuI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAuuI,GAAAthG,CAAA2D,CAAAA,KAAAA,CAAApvD,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GA5CZub,EAAA,CAAA,CAAA,CAAA,KAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAAqvI,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,EA4DJvxI,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjW,EAAA,EAAA,CA5DIgZ,EAAA,EAAA,CAAAuuI,EAAAthG,CAAAA,CAAAA,CAAAwhG,UAAA,EAAA,CAAA,KAAA,CAAAxhG,CAAAA,CAAAvrB,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CCgCKgtH,IAAAA,EAAAA,CAAAA,CAAsB,IAAA,CAA7B,IAAOA,CAAP,CAAA,MAAOA,CAAsB,CAkC/B18J,WACYsvF,CAAAA,CAAAA,CACAqtE,EACA3hI,CACA07B,CAAAA,CAAAA,CACApc,CACAkmB,CAAAA,CAAAA,CACA9nB,CACA7L,CAAAA,CAAAA,CACAxR,CACAsgC,CAAAA,CAAAA,CACA9E,EACAhe,CACAg2F,CAAAA,EAAAA,CACA9qB,EACAttD,CAAAA,EAAAA,CACA6mF,EACAsf,CAAAA,EAAAA,CACAp2H,EAAsC,CAAA,CAjBtC,KAAA8oD,eAAAA,CAAAA,CAAAA,CACA,IAAAqtE,CAAAA,eAAAA,CAAAA,EACA,IAAA3hI,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAA07B,aAAAA,CACA,CAAA,IAAA,CAAApc,aAAAA,CAAAA,CAAAA,CACA,IAAAkmB,CAAAA,QAAAA,CAAAA,CACA,CAAA,IAAA,CAAA9nB,IAAAA,CACA,CAAA,IAAA,CAAA7L,aAAAA,CAAAA,CAAAA,CACA,IAAAxR,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAsgC,mBAAAA,CACA,CAAA,IAAA,CAAA9E,wBAAAA,CAAAA,CAAAA,CACA,IAAAhe,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAg2F,WAAAA,EACA,CAAA,IAAA,CAAA9qB,UAAAA,CAAAA,EAAAA,CACA,KAAAttD,gBAAAA,CAAAA,EAAAA,CACA,IAAA6mF,CAAAA,UAAAA,CAAAA,GACA,IAAAsf,CAAAA,YAAAA,CAAAA,EACA,CAAA,IAAA,CAAAp2H,kBAAAA,CAAAA,EAAAA,CA/CF,IAAAswB,CAAAA,gBAAAA,CAAmB,IAAIlrC,IAExB,CAAA,IAAA,CAAAma,UAAa,CAAA,IAAA,CAAKuU,aAAcvT,CAAAA,eAAAA,EAEzC,CAAA,IAAA,CAAA63B,MAAQ,CACJpvD,KAAAA,CAAO,EACP3V,CAAAA,OAAAA,CAAc,EAAA,CAAA,CAElB,IAAA6F,CAAAA,KAAAA,CAAgB,EAChB,IAAAm9J,CAAAA,WAAAA,CAAsB,CACtB,CAAA,IAAA,CAAAC,WAAqB,SACrB,CAAA,IAAA,CAAA5B,YAAwB,CAAA,CAAA,CAAA,CACf,KAAAuB,UAAa,CAAA,IAAA,CAAK5vH,aAAc2zF,CAAAA,WAAAA,CACzC,IAAA87B,CAAAA,SAAAA,CAAiB,EAAA,CAIjB,KAAA5gB,gBAA4B,CAAA,CAAA,CAAA,CAI5B,IAAA/qD,CAAAA,mBAAAA,CAA2B,EAAA,CAC3B,IAAAhC,CAAAA,uBAAAA,CAA+B,EAC/B,CAAA,IAAA,CAAAiC,WAAmB,CAAA,EACnB,CAAA,IAAA,CAAA6zB,iBAA6B,CAAA,CAAA,CAAA,CAC7B,KAAAC,qBAAiC,CAAA,CAAA,CAAA,CAwB7B,IAAKq4C,CAAAA,YAAAA,CAAe,CACxB,EAAA,CAEAthI,QAAQ,EAAA,CACJ,IAAMK,CAAW,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,EAC5C,CAAA,IAAA,CAAK2oF,qBAAwB5oF,CAAAA,CAAAA,CAASwpF,wBAElC,IAAKZ,CAAAA,qBAAAA,GACL,IAAKX,CAAAA,UAAAA,CAAW5H,gBAAiB91F,CAAAA,SAAAA,CAAW3jB,CAAgB,EAAA,CACpDA,GAASs6J,UAAWpmH,CAAAA,SAAAA,GACpB,IAAK6tE,CAAAA,iBAAAA,CAAoB,CAEjC,CAAA,EAAA,CAAC,CAED,CAAA,IAAA,CAAKV,WAAW7H,uBAAwB71F,CAAAA,SAAAA,CAAU,IAAK,CACnD,KAAKo+F,iBAAoB,CAAA,CAAA,EAC7B,CAAC,CAAA,CAED,KAAKV,UAAWnH,CAAAA,qBAAAA,EAChB,CAAA,IAAA,CAAKmH,UAAWjH,CAAAA,YAAAA,EAEpB,CAAA,CAAA,IAAA,CAAK93D,kBAAoB,IAAK6R,CAAAA,wBAAAA,CAAyB5R,oBAAoB,EAAA,CAC3E,IAAMioC,CAAAA,CAAS,IAAK7xD,CAAAA,qBAAAA,CAAsBgE,qBACpC49H,CAAAA,CAAAA,CAAsB,IAAK5hI,CAAAA,qBAAAA,CAAsBM,mBAAmB,EAAA,CAC1E,IAAK+/G,CAAAA,gBAAAA,CAAmB5/G,EAAS4/G,gBACjC,CAAA,IAAA,CAAKj3B,iBAAoB3oF,CAAAA,CAAAA,CAAS2oF,kBAC9B,IAAKp5F,CAAAA,WAAAA,GAAgB,WAChB,GAAA,IAAA,CAAKq5F,wBACN,IAAKD,CAAAA,iBAAAA,CAAoB,CAGjC,CAAA,CAAA,CAAA,CAAA,IAAA,CAAKy4C,eAAkB,CAAA,CAAA,CAAA,CACvB,IAAKC,CAAAA,WAAAA,GACL,IAAKd,CAAAA,QAAAA,CAAWnvE,CAAOztD,CAAAA,QAAAA,CAAS,uBAC1BytD,CAAAA,CAAAA,CAAOztD,QAAS,CAAA,uBAAA,CAChBytD,EAAOztD,QAAS,CAAA,iBAAA,CAClB,IAAK29H,CAAAA,oBAAAA,EACL,GAAA,IAAA,CAAKC,OAAO,EAAA,CACZ,KAAKV,eAAgB1hC,CAAAA,wBAAAA,CAAyB50G,SAAW+2B,CAAAA,CAAAA,EAAY,CACjE,GAAIA,CAAAA,EAAYA,CAASjyB,CAAAA,IAAAA,CAAO,IAC5B,IAAKmyI,CAAAA,YAAAA,CAAe5pG,IAAUtW,CAAAA,CAAAA,CAAS5tB,GAAI,CAAA,UAAU,CAAC,CAAA,CAGlD,KAAK8tI,YACL,EAAA,IAAA,CAAKA,YAAahhG,CAAAA,YAAAA,EAClB,IAAKghG,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,EAC/B,KAAK00E,YAAahhG,CAAAA,YAAAA,CAAassB,QAAS9/E,CAAAA,MAAAA,CAAS,CACnD,CAAA,CAAA,CACE,IAAKw0J,CAAAA,YAAAA,CAAaj2F,WAAa,IAAKi2F,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAASn5F,KAAM,CAAA,CAAA,CAAGwtK,CAAoBM,CAAAA,kBAAkB,EACtH,IAAMC,CAAAA,CAAwB,EAAA,CAC9B,IAAKF,CAAAA,YAAAA,CAAaj2F,UAAW1oB,CAAAA,OAAAA,CAASm3C,GAAkB,CACpD0nE,CAAAA,CAAYj7G,IAAKuzC,CAAAA,CAAAA,CAAUp2C,IAAI,EACnC,CAAC,CAAA,CACD,IAAM2nB,CAAkB,CAAA,IAAA,CAAKioB,eAAgBnoB,CAAAA,mBAAAA,CAAoBq2F,CAAW,CAAA,CAC5E,IAAKC,CAAAA,YAAAA,CAAap2F,CAAU,EAChC,CAER,CAAC,CAAA,CACD,KAAK/sB,aAAc5M,CAAAA,eAAAA,CAAgBhJ,IAAKg5H,CAAAA,IAAAA,CAAmB,KAAKpgB,UAAU,CAAC,CAAEj3H,CAAAA,SAAAA,CAAWwnB,CAAmB,EAAA,CACnGA,CACA,GAAA,IAAA,CAAKkvH,aAAe,CAE5B,CAAA,EAAA,CAAC,CAED,CAAA,IAAA,CAAKztE,eAAgB1qB,CAAAA,oBAAAA,CAAqBv+C,SAAU,CAAA,IAAK,CAErD,GADA,IAAA,CAAKi3I,YAAe,CAAA,IAAA,CAAK3hG,kBAAmBQ,CAAAA,eAAAA,CAAgB,IAAKhtB,CAAAA,SAAAA,CAAW,UAAU,CAElF,CAAA,IAAA,CAAKmuH,YACL,EAAA,IAAA,CAAKA,aAAahhG,YAClB,EAAA,IAAA,CAAKghG,YAAahhG,CAAAA,YAAAA,CAAassB,UAC/B,IAAK00E,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAAS9/E,MAAS,CAAA,CAAA,CACnD,CACE,IAAA,CAAKw0J,aAAaj2F,UAAa,CAAA,IAAA,CAAKi2F,YAAahhG,CAAAA,YAAAA,CAAassB,QAASn5F,CAAAA,KAAAA,CAAM,CAAGwtK,CAAAA,CAAAA,CAAoBM,kBAAkB,CACtH,CAAA,IAAMC,CAAwB,CAAA,EAC9B,CAAA,IAAA,CAAKF,YAAaj2F,CAAAA,UAAAA,CAAW1oB,QAASm3C,CAAkB,EAAA,CACpD0nE,CAAYj7G,CAAAA,IAAAA,CAAKuzC,EAAUp2C,IAAI,EACnC,CAAC,CAAA,CACD,IAAM2nB,CAAkB,CAAA,IAAA,CAAKioB,eAAgBnoB,CAAAA,mBAAAA,CAAoBq2F,CAAW,CAAA,CAC5E,IAAKC,CAAAA,YAAAA,CAAap2F,CAAU,EAChC,CACJ,CAAC,CAAA,CAED,IAAKs2F,CAAAA,cAAAA,CAAiB,IAAKhiG,CAAAA,kBAAAA,CAAmB02B,sBAAsBhsE,SAAW+2B,CAAAA,CAAAA,EAAY,CACvF,GAAIA,CACA,GAAA,IAAA,CAAKkgH,YAAe5pG,CAAAA,IAAAA,CAAU,KAAKiI,kBAAmBQ,CAAAA,eAAAA,CAAgB,IAAKhtB,CAAAA,SAAAA,CAAW,UAAU,CAAC,CAG7F,CAAA,IAAA,CAAKmuH,cACL,IAAKA,CAAAA,YAAAA,CAAahhG,YAClB,EAAA,IAAA,CAAKghG,YAAahhG,CAAAA,YAAAA,CAAassB,QAC/B,EAAA,IAAA,CAAK00E,aAAahhG,YAAassB,CAAAA,QAAAA,CAAS9/E,MAAS,CAAA,CAAA,CAAA,CACnD,CACE,IAAA,CAAKw0J,YAAaj2F,CAAAA,UAAAA,CAAa,KAAKi2F,YAAahhG,CAAAA,YAAAA,CAAassB,QAASn5F,CAAAA,KAAAA,CAAM,CAAGwtK,CAAAA,CAAAA,CAAoBM,kBAAkB,CAAA,CACtH,IAAMC,CAAwB,CAAA,EAC9B,CAAA,IAAA,CAAKF,aAAaj2F,UAAW1oB,CAAAA,OAAAA,CAASm3C,CAAkB,EAAA,CACpD0nE,EAAYj7G,IAAKuzC,CAAAA,CAAAA,CAAUp2C,IAAI,EACnC,CAAC,CAAA,CACD,IAAM2nB,CAAAA,CAAkB,KAAKioB,eAAgBnoB,CAAAA,mBAAAA,CAAoBq2F,CAAW,CAAA,CAC5E,IAAKC,CAAAA,YAAAA,CAAap2F,CAAU,EAChC,CAER,CAAC,CAAA,EAET,CAEA3O,WAAAA,CAAY/2D,CAAsB,CAAA,CAC1BA,CAASu5D,EAAAA,aAAAA,EAAepzC,eAAiBnmB,CAASu5D,EAAAA,aAAAA,EAAe0iG,aACjE,GAAA,IAAA,CAAKh/F,MAAMpvD,KAAQ,CAAA,EAAA,CACnB,IAAKovD,CAAAA,KAAAA,CAAM/kE,QAAU,EAAA,CACrB,IAAKqjK,CAAAA,eAAAA,CAAkB,CACvB,CAAA,CAAA,IAAA,CAAKhB,cAAiB,CAAA,CAAA,CAAA,CACtB,KAAKa,YAAe,CAAA,CAAA,CAAA,CAAA,CAExB,IAAKI,CAAAA,WAAAA,GACT,CAEAU,sBAAsB,EAAA,CACd,KAAKj/F,KAAMpvD,CAAAA,KAAAA,CAAM1G,MAAU,EAAA,CAAA,GAC3B,IAAKo0J,CAAAA,eAAAA,CAAkB,CAE/B,CAAA,EAAA,CAEA9B,iBAAe,CACX,IAAA,CAAKx8F,KAAMpvD,CAAAA,KAAAA,CAAQ,GACnB,IAAKquJ,CAAAA,sBAAAA,GACT,CAEAR,SAAO,CACH,IAAMJ,CAAsB,CAAA,IAAA,CAAK5hI,qBAAsBM,CAAAA,mBAAAA,EAEvD,CAAA,GADA,KAAK2hI,YAAe,CAAA,IAAA,CAAK3hG,kBAAmBQ,CAAAA,eAAAA,CAAgB,IAAKhtB,CAAAA,SAAAA,CAAW,UAAU,CAAA,CAElF,KAAKmuH,YACL,EAAA,IAAA,CAAKA,YAAahhG,CAAAA,YAAAA,EAClB,IAAKghG,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,EAC/B,KAAK00E,YAAahhG,CAAAA,YAAAA,CAAassB,QAAS9/E,CAAAA,MAAAA,CAAS,EACnD,CACE,IAAA,CAAKw0J,YAAahhG,CAAAA,YAAAA,CAAa+K,WAAa,IAAKi2F,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAASn5F,KAAM,CAAA,CAAA,CAAGwtK,CAAoBM,CAAAA,kBAAkB,EACnI,IAAMC,CAAAA,CAAwB,EAAA,CAC9B,IAAKF,CAAAA,YAAAA,CAAahhG,YAAa+K,CAAAA,UAAAA,CAAW1oB,QAASm3C,CAAkB,EAAA,CACjE0nE,CAAYj7G,CAAAA,IAAAA,CAAKuzC,CAAUp2C,CAAAA,IAAI,EACnC,CAAC,EACD,IAAM2nB,CAAAA,CAAkB,IAAKioB,CAAAA,eAAAA,CAAgBnoB,oBAAoBq2F,CAAW,CAAA,CAC5E,IAAKC,CAAAA,YAAAA,CAAap2F,CAAU,EAChC,CACJ,CAEA81F,WAAAA,EAAW,CACH,IAAA,CAAK9xI,WAAgB,GAAA,YAAA,CACrB,KAAK4wI,QAAW,CAAA,KAAA,CAEhB,IAAKA,CAAAA,QAAAA,CAAW,GAExB,CAEAvB,eAAgBh7G,CAAAA,CAAAA,CAAS,CACrBA,CAAKha,CAAAA,IAAAA,CAAK7H,GAAM,CAAA,IAAA,CAAKkI,WACzB,CAEA03H,YAAaK,CAAAA,CAAAA,CAAqB,CAC9B,IAAKxB,CAAAA,SAAAA,CAAY,EAAA,CACjB,QAAS7uK,CAAI,CAAA,CAAA,CAAGA,CAAIqwK,CAAAA,CAAAA,CAAeh1J,OAAQrb,CAAK,EAAA,CAAA,CAC5C,IAAMq3E,CAAAA,CAAqB,IAAKt+B,CAAAA,kBAAAA,CAAmB3B,WAAYi5H,CAAAA,CAAAA,CAAerwK,CAAC,CAAEiyD,CAAAA,IAAI,CACrF,CAAA,GAAIolB,CAAe,CAAA,CACfA,CAAcp/B,CAAAA,IAAAA,CAAO,IACrB,IAAM4/B,CAAAA,CAAiC,IAAKgqB,CAAAA,eAAAA,CAAgBnqB,iBAAkBL,CAAAA,CAAAA,CAAe,IAAKp1B,CAAAA,OAAO,EACzG,IAAK4sH,CAAAA,SAAAA,CAAU/5G,IAAK+iB,CAAAA,CAAc,EACtC,CACJ,CACA,IAAKg3F,CAAAA,SAAAA,CAAY,KAAKyB,oBAAqB,CAAA,IAAA,CAAKzB,SAAS,EAC7D,CAMA0B,qBAAAA,CAAsBF,CAAwB,CAAA,CAC1C,KAAKnvE,uBAA0B,CAAA,EAC/B,CAAA,IAAA,IAASlhG,CAAI,CAAA,CAAA,CAAGA,CAAIqwK,CAAAA,CAAAA,CAAeh1J,OAAQrb,CAAK,EAAA,CAAA,CAC5C,IAAMwwK,CAAAA,CAAmB,IAAKz3H,CAAAA,kBAAAA,CAAmB3B,WAAYi5H,CAAAA,CAAAA,CAAerwK,CAAC,CAAC,CAAA,CAE9E,GAAIwwK,CAAAA,CAAa,CACb,IAAM34F,CAAiC,CAAA,IAAA,CAAKgqB,gBAAgBnqB,iBAAkB84F,CAAAA,CAAAA,CAAa,IAAKvuH,CAAAA,OAAO,CACnGuuH,CAAAA,CAAAA,GACA34F,CAAejP,CAAAA,KAAAA,CAAQ4nG,EAAY3qK,IAEvC,CAAA,CAAA,IAAA,CAAKq7F,uBAAwBpsC,CAAAA,IAAAA,CAAK+iB,CAAc,EACpD,CACJ,CACJ,CAMA2sB,yBAAyB,EAAA,CAIjB,IAAKtB,CAAAA,mBAAAA,CAAoB7nF,MAAS,CAAA,CAAA,EAAK,IAAK6nF,CAAAA,mBAAAA,CAAoB7nF,QAAU,CAG1E,EAAA,IAAA,CAAK6lF,uBAA0B,CAAA,IAAA,CAAKgC,oBAAoB7nF,MAAS,CAAA,CAAA,CAAI,IAAKk1J,CAAAA,qBAAAA,CAAsB,KAAKrtE,mBAAmB,CAAA,CAAI,EAAA,CAC5H,IAAKC,CAAAA,WAAAA,CAAc,IAAKjC,CAAAA,uBAAAA,CAAwBp9F,OAAO,IAAK+qK,CAAAA,SAAS,CAErE,CAAA,IAAA,CAAKA,SAAY/7H,CAAAA,KAAAA,CAAM1yC,IAAK,CAAA,IAAA,CAAK+iG,YAAYxzD,MAAO,CAAA,CAAC9rC,CAAQ/D,CAAAA,CAAAA,GAAW+D,CAAEwU,CAAAA,GAAAA,CAAIvY,CAAEu3C,CAAAA,MAAAA,CAAQv3C,CAAC,CAAG,CAAA,IAAI4zC,GAAK,CAAA,CAAE9nC,QAAQ,CAAA,EAG/G,IAAKijK,CAAAA,SAAAA,CAAY,KAAK0B,qBAAsB,CAAA,IAAA,CAAKrtE,mBAAmB,CAAA,CAExE,IAAK2rE,CAAAA,SAAAA,CAAY,IAAKyB,CAAAA,oBAAAA,CAAqB,KAAKzB,SAAS,EAC7D,CAEAzqE,kBAAAA,EAAkB,CAEd,IAAM54C,CAAiB,CAAA,IAAA,CAAK5d,sBAAsB6d,qBAAqB,EAAA,CACjEm6C,CAAoB,CAAA,IAAA,CAAKx6C,qBAAsBT,CAAAA,YAAAA,CAAaa,CAAekH,CAAAA,QAAAA,CAAS,mBAAsB,CAChH,CAAA,IAAA,CAAKzH,GAAIlpB,CAAAA,GAAAA,CAAI6jE,CAAiB,CAAEhtE,CAAAA,SAAAA,CAAW+2B,CAAiB,EAAA,CACpDA,IAEA,IAAKuzC,CAAAA,mBAAAA,CAAsBvzC,CAASk2C,CAAAA,mBAAAA,CAEpC,IAAKrB,CAAAA,yBAAAA,EAEb,EAAA,CAAC,EACL,CAEA+P,UAAAA,CAAWtiD,CAAWw+G,CAAAA,CAAAA,CAAiBC,CAAY,CAAA,CAC/C,IAAKznG,CAAAA,YAAAA,CAAa/H,OAClB,CAAA,IAAMmjC,CAAyB,CAAA,IAAA,CAAKz2D,qBAAsB02D,CAAAA,wBAAAA,EAM1D,CAAA,GALI,KAAK/2D,IAAKkR,CAAAA,eAAAA,EAAmB4lD,CAAkBE,CAAAA,yBAAAA,EAA6B,IAAK3mE,CAAAA,WAAAA,GAAgB,WACjG,EAAA,IAAA,CAAKwmE,oBAGTnyC,CAAAA,CAAAA,CAAKza,QAAW,CAAA,CAAA,CACZ,IAAK5Z,CAAAA,WAAAA,GAAgB,YACrB,CAAA,GAAI6yI,EAAQ,CACR,IAAMpoE,CAAY,CAAA,IAAIngB,IACtBmgB,CAAAA,CAAAA,CAAUp2C,IAAOA,CAAAA,CAAAA,CACjBo2C,EAAUpmD,OAAU,CAAA,IAAA,CAAKA,OACzBomD,CAAAA,CAAAA,CAAU75B,YAAe,CAAA,QAAA,CACzB65B,CAAUjoG,CAAAA,IAAAA,CAAO,IACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,aAAe,CACzBigB,CAAAA,CAAAA,CAAAA,CAAUhgB,aAAgB,CAAA,CAAA,CAAA,CAC1BggB,EAAUiM,gBAAmB,CAAA,aAAA,CAC7BjM,CAAU5yC,CAAAA,WAAAA,CAAc,aACxB4yC,CAAAA,CAAAA,CAAUiE,aAAgB,CAAA,QAAA,CAC1BjE,EAAUp2C,IAAKvQ,CAAAA,SAAAA,CAAY,IAAKA,CAAAA,SAAAA,CAChC2mD,CAAUoE,CAAAA,YAAAA,CAAeikE,CACzBroE,CAAAA,CAAAA,CAAUrrB,eAAiB,IAAKzlB,CAAAA,iBAAAA,CAAkBm1C,gBAAgB,EAAA,CAClE,IAAKn1C,CAAAA,iBAAAA,CAAkBg9C,UAAWlM,CAAAA,CAAS,EAC/C,CAAO,KAAA,CACH,IAAMA,CAAAA,CAAY,IAAIngB,IACtBmgB,CAAAA,CAAAA,CAAUp2C,IAAOA,CAAAA,CAAAA,CACjBo2C,EAAUpmD,OAAU,CAAA,IAAA,CAAKA,OACzBomD,CAAAA,CAAAA,CAAU75B,YAAe,CAAA,QAAA,CACzB65B,CAAUjoG,CAAAA,IAAAA,CAAO,IACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,YAAe,CAAA,CAAA,CAAA,CACzBigB,CAAUhgB,CAAAA,aAAAA,CAAgB,GAC1BggB,CAAUiM,CAAAA,gBAAAA,CAAmB,QAC7BjM,CAAAA,CAAAA,CAAU5yC,WAAc,CAAA,QAAA,CACxB4yC,CAAUiE,CAAAA,aAAAA,CAAgB,SAC1BjE,CAAUp2C,CAAAA,IAAAA,CAAKvQ,SAAY,CAAA,IAAA,CAAKA,UAChC2mD,CAAUoE,CAAAA,YAAAA,CAAeikE,CACzBroE,CAAAA,CAAAA,CAAUrrB,eAAiB,IAAKzlB,CAAAA,iBAAAA,CAAkBm1C,gBAAgB,EAAA,CAClE,IAAKn1C,CAAAA,iBAAAA,CAAkBg9C,UAAWlM,CAAAA,CAAS,EAC/C,CACO,KAAA,IAAA,CAAKzqE,WAAgB,GAAA,WAAA,GAC5Bq0B,CAAKi6C,CAAAA,YAAAA,CAAewkE,CACpBz+G,CAAAA,CAAAA,CAAKvQ,UAAY,IAAKA,CAAAA,SAAAA,CACtB,IAAKivH,CAAAA,iBAAAA,CAAoB,IAAK3nG,CAAAA,gBAAAA,CAAiBlV,4BAA6Bl7B,CAAAA,SAAAA,CAAWksE,GAAyB,CACxGA,CAAAA,GACA7yC,CAAKtG,CAAAA,WAAAA,CAAcm5C,CAAiB7pD,CAAAA,OAAAA,CAAQgX,CAAK5a,CAAAA,MAAM,EAAI,CAEnE,CAAA,EAAA,CAAC,CACD,CAAA,IAAA,CAAKgyB,gBAAiB7qC,CAAAA,IAAAA,CAAKyzB,CAAI,CAAA,CAAA,CAEnC,KAAKkf,KAAMpvD,CAAAA,KAAAA,CAAQ,EACnB,CAAA,IAAA,CAAKovD,KAAM/kE,CAAAA,OAAAA,CAAU,EAAA,CACrB,KAAKkjK,YAAe,CAAA,CAAA,CAAA,CACpB,IAAKb,CAAAA,cAAAA,CAAiB,CACtB,CAAA,CAAA,IAAA,CAAKgB,eAAkB,CAAA,CAAA,EAC3B,CAEAxB,UAAU,EAAA,CACN,IAAKl7F,CAAAA,QAAAA,CAASrqB,aAAa,YAAc,CAAA,CACrC,WAAe,CAAA,IAAA,CAAK9qB,aAAe,WAAc,CAAA,YAAA,CAAe,QAChE,CAAA,aAAA,CAAe,IAAKuzC,CAAAA,KAAAA,CAAMpvD,KAC7B,CAAA,EACL,CAEA+rJ,YAAa1vJ,CAAAA,CAAAA,CAAU,CAmBnB,GAlBA,IAAKkxJ,CAAAA,YAAAA,CAAe,CACpB,CAAA,CAAA,IAAA,CAAKb,eAAiB,CAElB,CAAA,CAAA,IAAA,CAAKkB,oBAAoB,EAAA,EAAM,IAAKx+F,CAAAA,KAAAA,CAAMpvD,KAAM1G,CAAAA,MAAAA,GAAW,GAAK,IAAKuiB,CAAAA,WAAAA,CAErE,IAAKuzC,CAAAA,KAAAA,CAAMpvD,MAAM1G,MAAW,GAAA,CAAA,EAC5B,IAAKi0J,CAAAA,YAAAA,CAAe,GACpB,IAAKG,CAAAA,eAAAA,CAAkB,CAEvB,CAAA,GAAA,IAAA,CAAKA,eAAkB,CAAA,CAAA,CAAA,CACnB,IAAKE,CAAAA,oBAAAA,IAA0B,IAAK/xI,CAAAA,WAAAA,GAAgB,YACpD,GAAA,IAAA,CAAK0xI,YAAe,CAAA,CAAA,CAAA,CAChB,IAAK/hI,CAAAA,IAAAA,CAAKkR,kBACV,IAAKgwH,CAAAA,cAAAA,CAAiB,CAK9B,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAKt9F,KAAMpvD,CAAAA,KAAAA,CAAM1G,MAAS,CAAA,CAAA,CAAG,CAC7B,IAAK81D,CAAAA,KAAAA,CAAM/kE,OAAU,CAAA,GACrB,IAAKqhK,CAAAA,YAAAA,CAAe,CAChB,CAAA,CAAA,IAAA,CAAK7vI,cAAgB,WACrB,GAAA,IAAA,CAAK0xI,YAAe,CAAA,CAAA,CAAA,CAAA,CAEnB,IAAK/hI,CAAAA,IAAAA,CAAKkR,eACX,GAAA,IAAA,CAAK6wH,aAAe,CAEpB,CAAA,CAAA,CAAA,IAAA,CAAKK,oBAAoB,EAAA,EAAM,IAAKx+F,CAAAA,KAAAA,CAAMpvD,KAAU,GAAA,EAAA,EAAM,KAAK6b,WAEnE,CAAA,MACJ,CAAWxf,KAAAA,GAAAA,CAAAA,CAAMtd,GAAQ,GAAA,SAAA,CAAW,CAC5B,IAAA,CAAKmR,QAAU,CAAK,EAAA,IAAA,CAAKA,KAAU,GAAA,CAAA,EACnC,KAAKm9J,WAAc,CAAA,CAAA,CACnB,IAAKn9J,CAAAA,KAAAA,CAAQ,GAET,IAAKo9J,CAAAA,UAAAA,GAAe,WACpB,EAAA,IAAA,CAAKD,WAAc,CAAA,IAAA,CAAKA,WAAc,CAAA,CAAA,CACtC,KAAKn9J,KAAQ,CAAA,IAAA,CAAKA,KAAQ,CAAA,CAAA,EAE1B,IAAKm9J,CAAAA,WAAAA,CAAc,IAAKn9J,CAAAA,KAAAA,CAAQ,EAGxC,IAAKA,CAAAA,KAAAA,EAAAA,CACL,IAAI2+J,CAAAA,CAAM3+J,CAEV,CAAA,IADA2+J,CAAOphI,CAAAA,QAAAA,CAASqhI,iBAAiB,sBAAsB,CAAA,CAClD5+J,CAAQ,CAAA,CAAA,CAAGA,EAAQ2+J,CAAKv1J,CAAAA,MAAAA,CAAQ,EAAEpJ,CAAAA,CACnC2+J,EAAK3+J,CAAK,CAAA,CAAEmiC,SAAUnY,CAAAA,MAAAA,CAAO,QAAQ,CAAA,CAGzC,GADA20I,CAAAA,CAAK,KAAKxB,WAAW,CAAA,CAAEh7H,SAAUv/B,CAAAA,GAAAA,CAAI,QAAQ,CAAA,CACzC,IAAKu6J,CAAAA,WAAAA,CAAc,EAAG,CACtB,IAAMl4I,CAAYsY,CAAAA,QAAAA,CAASm0D,sBAAuB,CAAA,kBAAkB,CACpEzsE,CAAAA,CAAAA,CAAU,CAAC,CAAE45I,CAAAA,SAAAA,CAAY55I,CAAU,CAAA,CAAC,EAAE45I,SAAY,CAAA,GACtD,CACA,IAAA,CAAKzB,WAAa,UACtB,CAAA,KAAA,GAAWjxJ,CAAMtd,CAAAA,GAAAA,GAAQ,WAAa,CAAA,CAC9B,IAAKmR,CAAAA,KAAAA,GAAU,EACf,IAAKm9J,CAAAA,WAAAA,CAAc,CAEf,CAAA,IAAA,CAAKC,UAAe,GAAA,SAAA,EACpB,IAAKD,CAAAA,WAAAA,CAAc,KAAKA,WAAc,CAAA,CAAA,CACtC,IAAKn9J,CAAAA,KAAAA,CAAQ,IAAKA,CAAAA,KAAAA,CAAQ,CAE1B,EAAA,IAAA,CAAKm9J,YAAc,IAAKn9J,CAAAA,KAAAA,CAAQ,CAGxC,CAAA,IAAA,CAAKA,QACL,IAAIA,CAAAA,CACE2+J,CAAOphI,CAAAA,QAAAA,CAASqhI,iBAAiB,sBAAsB,CAAA,CAC7D,IAAK5+J,CAAAA,CAAQ,CAAGA,CAAAA,CAAAA,CAAQ2+J,CAAKv1J,CAAAA,MAAAA,CAAQ,EAAEpJ,CACnC2+J,CAAAA,CAAAA,CAAK3+J,CAAK,CAAA,CAAEmiC,SAAUnY,CAAAA,MAAAA,CAAO,QAAQ,CAAA,CAGzC,GADA20I,CAAK,CAAA,IAAA,CAAKxB,WAAW,CAAA,CAAEh7H,SAAUv/B,CAAAA,GAAAA,CAAI,QAAQ,CAAA,CACzC,KAAKu6J,WAAc,CAAA,CAAA,CAAG,CACtB,IAAMl4I,CAAYsY,CAAAA,QAAAA,CAASm0D,sBAAuB,CAAA,kBAAkB,EACpEzsE,CAAU,CAAA,CAAC,CAAE45I,CAAAA,SAAAA,CAAY55I,CAAU,CAAA,CAAC,CAAE45I,CAAAA,SAAAA,CAAY,GACtD,CACA,IAAA,CAAKzB,UAAa,CAAA,YACtB,CAAWjxJ,KAAAA,CAAAA,CAAMtd,GAAQ,GAAA,OAAA,EACrB,KAAKmR,KAAQ,CAAA,CAAA,CACT,IAAKk/D,CAAAA,KAAAA,CAAM/kE,OAAQ,CAAA,IAAA,CAAKgjK,WAAW,CAAA,EAAK,KAAKj+F,KAAM/kE,CAAAA,OAAAA,CAAQ,IAAKgjK,CAAAA,WAAW,EAAEtuB,SAC7E,CAAA,IAAA,CAAKM,UAAWiB,CAAAA,kBAAAA,CAAmB,KAAKlxE,KAAM/kE,CAAAA,OAAAA,CAAQ,IAAKgjK,CAAAA,WAAW,CAAEtuB,CAAAA,SAAS,CAAEloH,CAAAA,SAAAA,CAAW/1B,GAAU,CAChGA,CAAAA,EACA,IAAK0xG,CAAAA,UAAAA,CAAW,IAAKpjC,CAAAA,KAAAA,CAAM/kE,OAAQ,CAAA,IAAA,CAAKgjK,WAAW,CAAG,CAAA,CAAA,CAAA,CAAO,CAAC,EAEtE,CAAC,CAAA,CAED,IAAK76D,CAAAA,UAAAA,CAAW,KAAKpjC,KAAM/kE,CAAAA,OAAAA,CAAQ,IAAKgjK,CAAAA,WAAW,EAAG,CAAO,CAAA,CAAA,CAAC,CAE3DhxJ,EAAAA,CAAAA,CAAMtd,MAAQ,WACrB,EAAA,IAAA,CAAKmR,KAAQ,CAAA,CAAA,CACb,IAAK8+J,CAAAA,oBAAAA,EACD,CAAA,IAAA,CAAKnzI,cAAgB,WACrB,GAAA,IAAA,CAAK0xI,YAAe,CAAA,CAAA,CAAA,CAAA,GAGxB95H,UAAW,CAAA,IAAK,CACZ,GAAI,KAAK27B,KAAMpvD,CAAAA,KAAAA,CAAM1G,MAAS,CAAA,CAAA,CAAG,CAC7B,IAAA,CAAK81D,KAAM/kE,CAAAA,OAAAA,CAAU,EACrB,CAAA,MACJ,CACA,IAAA,CAAK2kK,uBACT,CAAA,CAAG,GAAG,CAAA,CACN,KAAKtD,YAAe,CAAA,CAAA,CAAA,EAE5B,CAEAsD,oBAAAA,EAAoB,CAChB,IAAA,CAAK5/F,KAAM/kE,CAAAA,OAAAA,CAAU,KAAK8hE,kBAAmB69F,CAAAA,WAAAA,CAAY,IAAK56F,CAAAA,KAAAA,CAAMpvD,KAAO,CAAA,IAAA,CAAKmsD,kBAAmBg4B,CAAAA,gBAAAA,EAAkB,CACrH,CAAA,IAAA,CAAK/0B,KAAM/kE,CAAAA,OAAAA,CAAU,IAAKkkK,CAAAA,oBAAAA,CAAqB,IAAKn/F,CAAAA,KAAAA,CAAM/kE,OAAO,CACjE,CAAA,IAAA,CAAKqhK,YAAe,CAAA,EAAA,IAAA,CAAKt8F,KAAM/kE,CAAAA,OAAAA,CAAQiP,MAAS,CAAA,CAAA,EACpD,CAEAi1J,oBAAqB91G,CAAAA,CAAAA,CAAc,CAE/B,OADiB,IAAK5sB,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACpDiL,uBACTihB,CAAU7nB,CAAAA,GAAAA,CAAK+tG,CAAY,EAAA,CACvBA,CAAIzoG,CAAAA,IAAAA,CAAK7H,GAAM,CAAA,IAAA,CAAK++H,aAAa31H,WAAYknG,CAAAA,CAAAA,CAAIzoG,IAAK7H,CAAAA,GAAAA,CAAKswG,CAAIrpG,CAAAA,MAAM,EACzE,CAAC,EAEEmjB,CACX,CAEAm0G,eAAe,EAAA,CAOX,OANI,IAAK/wI,CAAAA,WAAAA,GAAgB,WAGrB,EAAA,CAAC,KAAKixI,SAGN,EAAA,IAAA,CAAKA,SAAUxzJ,CAAAA,MAAAA,EAAU,CAClB,CAAA,CAAA,CAAA,CAEJ,IAAKi0J,CAAAA,YAChB,CAEAK,oBAAoB,EAAA,CAEhB,OADiB,IAAA,CAAK/hI,qBAAsBU,CAAAA,qBAAAA,EAC5BqhI,CAAAA,oBAAAA,EAAwB,KAAKd,SAAa,EAAA,IAAA,CAAKA,SAAUxzJ,CAAAA,MAAAA,EAAU,CACvF,CAEA21J,QAAS5yJ,CAAAA,CAAAA,CAAU,CAEXA,CAAM0L,CAAAA,MAAAA,CAAOqqB,SAAa,EAAA,uDAAA,EAC1B/1B,EAAM0L,MAAOqqB,CAAAA,SAAAA,EAAa,qDAC1B/1B,EAAAA,CAAAA,CAAM0L,OAAOqqB,SAAa,EAAA,kDAAA,EAC1B/1B,CAAM0L,CAAAA,MAAAA,CAAOqqB,SAAa,EAAA,kDAAA,GAE1B,IAAKg9B,CAAAA,KAAAA,CAAMpvD,MAAQ,EACnB,CAAA,IAAA,CAAKovD,KAAM/kE,CAAAA,OAAAA,CAAU,EAAA,EAE7B,CAGA6kK,WAAAA,CAAY7yJ,EAAU,CAClB,IAAMoxJ,CAAsB,CAAA,IAAA,CAAK5hI,qBAAsBM,CAAAA,mBAAAA,EACjD2hI,CAAAA,CAAAA,CAAe,KAAK3hG,kBAAmBQ,CAAAA,eAAAA,CAAgB,IAAKhtB,CAAAA,SAAAA,CAAW,UAAU,CACnFmuH,CAAAA,CAAAA,EAAgBA,CAAahhG,CAAAA,YAAAA,EAC7B,KAAKghG,YAAeA,CAAAA,CAAAA,CACpB,IAAKG,CAAAA,YAAAA,CAAa,IAAKH,CAAAA,YAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAASn5F,MAAM,CAAGwtK,CAAAA,CAAAA,CAAoBM,kBAAkB,CAAC,CAE1G,GAAA,IAAA,CAAKD,YAAe,CAAA,IAAA,CACpB,KAAKG,YAAa,CAAA,EAAE,CAAA,CAAA,CAExB,IAAKkB,CAAAA,SAAAA,CAAY,CAGb9yJ,CAAAA,CAAAA,EAAAA,GACAA,CAAM0L,CAAAA,MAAAA,GACL1L,CAAM0L,CAAAA,MAAAA,CAAO4I,EAAO,GAAA,iBAAA,EAAqBtU,CAAM0L,CAAAA,MAAAA,CAAO4I,KAAO,wBAA4BtU,EAAAA,CAAAA,CAAM0L,MAAO4I,CAAAA,EAAAA,GAAO,gBAI9GtU,CAAAA,CAAAA,GAAAA,CAAAA,EAASA,CAAM0L,CAAAA,MAAAA,EAAU1L,EAAM0L,MAAO4I,CAAAA,EAAAA,GAAO,aAAkB,GAAA,CAAC,IAAKy+C,CAAAA,KAAAA,CAAMpvD,KAAS,EAAA,IAAA,CAAKovD,MAAMpvD,KAAU,GAAA,EAAA,CAAA,CACrG,IAAK4tJ,CAAAA,oBAAAA,EAA0B,EAAA,IAAA,CAAKpiI,IAAKkR,CAAAA,eAAAA,EAAmB,KAAK7gB,WAAgB,GAAA,YAAA,GACjF,IAAK0xI,CAAAA,YAAAA,CAAe,GAEhB,IAAK/hI,CAAAA,IAAAA,CAAKkR,eACV,GAAA,IAAA,CAAKgwH,eAAiB,CAI9B,CAAA,CAAA,CAAA,EAAA,IAAA,CAAKa,YAAe,CAAA,CAAA,CAAA,CACpB,IAAKb,CAAAA,cAAAA,CAAiB,CAE9B,CAAA,CAAA,EAAA,CAGA0C,UAAQ,CACJ,IAAM9iI,CAAW,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,EACvC,CAAA,IAAA,CAAK4iI,YACF7iI,CAASshI,CAAAA,oBAAAA,EAAwB,IAAKd,CAAAA,SAAAA,EAAa,IAAKA,CAAAA,SAAAA,CAAUxzJ,MAAS,CAAA,CAAA,CAE/E,KAAK81D,KAAMpvD,CAAAA,KAAAA,CAAQ,EACnB,CAAA,IAAA,CAAKovD,MAAM/kE,OAAU,CAAA,EACrB,CAAA,IAAA,CAAKkjK,aAAe,CACpB,CAAA,CAAA,IAAA,CAAKb,cAAiB,CAAA,CAAA,CAAA,CACtB,IAAKgB,CAAAA,eAAAA,CAAkB,CAE3B,CAAA,CAAA,CAAA,IAAA,CAAKyB,UAAY,CACrB,EAAA,CAEA7C,gBAAiBjwJ,CAAAA,CAAAA,CAAU,CACvBA,CAAAA,CAAM22B,wBAAwB,GAClC,CAEAq8H,cAAehzJ,CAAAA,CAAAA,CAAU,CACrBA,CAAAA,CAAM22B,wBAAwB,GAClC,CAGA64H,+BAAAA,EAA+B,CACvB,IAAK52C,CAAAA,iBAAAA,EAAqB,IAAKC,CAAAA,qBAAAA,EAAyB,KAAKr5F,WAAgB,GAAA,YAAA,CAC7E,IAAK04F,CAAAA,UAAAA,CAAWxH,oBAEhB,CAAA,IAAA,CAAKmI,qBAAwB,CAAA,CAAA,EAErC,CAEAj4F,WAAAA,EAAW,CACH,IAAA,CAAKkxI,gBACL,IAAKA,CAAAA,cAAAA,CAAen3I,WAAW,EAAA,CAE/B,IAAK43I,CAAAA,iBAAAA,EAEL,IAAKr6C,CAAAA,UAAAA,CAAWlH,mBACxB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA5jBS6/C,CAAsB5+H,EAAAA,GAAAA,CAAAwmC,IAAA,CAAA,CAAAxmC,GAAA+8F,CAAAA,EAAA,EAAA/8F,GAAAG,CAAAA,GAAA,CAAAH,CAAAA,GAAAA,CAAA8mB,IAAA,CAAA9mB,CAAAA,GAAAA,CAAAyI,EAAA,CAAA,CAAAzI,IAAAmmC,IAAA,CAAA,CAAAnmC,GAAA0F,CAAAA,EAAA,CAAA1F,CAAAA,GAAAA,CAAA2V,IAAA,CAAA,CAAA3V,IAAAQ,GAAA,CAAA,CAAAR,GAAAmiC,CAAAA,IAAA,CAAAniC,CAAAA,GAAAA,CAAAgnB,IAAA,CAAA,CAAAhnB,IAAAqa,IAAA,CAAA,CAAAra,GAAAkyG,CAAAA,IAAA,CAAAlyG,CAAAA,GAAAA,CAAAm+E,EAAA,CAAA,CAAAn+E,IAAAgjB,IAAA,CAAA,CAAAhjB,GAAAy/G,CAAAA,IAAA,EAAAz/G,GAAA4I,CAAAA,EAAA,CAAA5I,CAAAA,GAAAA,CAAAuG,EAAA,CAAA,CAAA,CAAtBq4H,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAsBjyI,SAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAAsxE,CAAAA,YAAAA,CAAA,SAAAnvE,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EAAtBY,GAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,OAAApzD,CAAAA,CAAAw8J,WAAAppG,CAAAA,CAAA,CAAmB,CAAA,CAAA,CAAG,OAAA,CAAA,UAAA,CAAA,OAAtBpzD,CAAAA,CAAA08J,QAAA,EAAU,EAAA,CAAA5iE,CAAAA,CAAAA,EAAA,EDlCvB7uE,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,aAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,EAAAA,CAAAA,aAAAA,CAAAA,iBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,eAAAA,CAAAA,OAAAA,CAAAA,UAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,6BAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,+BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA2xI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAAvC,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAr6J,CAAAuiH,CAAAA,iBAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ECgCc1pD,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAASgkG,KAAmBC,IAAAC,CAAAA,IAAAA,CAAEC,IAAWC,CAAAA,IAAAA,CAAE7/D,EAA0B8/D,CAAAA,EAAAA,CAAWxtC,EAAiBytC,CAAAA,EAAAA,CAASn0I,GAAarB,EAAa,CAAA,CAAA2E,aAAA,CAAA,CAAA,CAAA,CAE5I,CAAA,IAAOkuI,CAAP4C,CAAAA,CAAAA,CAAAA,OAAO5C,CAAsB,CAAA,wCClCnC3xI,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAKIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,IAAA04D,CAAAA,CAAAtgG,EAAAC,CAAAA,CAAA,CAAAjuB,CAAAA,KAAAA,CAAAyqG,CAAA30C,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAAo1D,gBAAAjqG,CAAAA,CAAAA,CAAA04D,CAA6B,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CACxCjjG,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAoF,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAI5EC,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAUJC,EAAA,EAAA,CAEAF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA+B,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACH8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAA0E5U,EAAA,EAAA,CAClGF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACkD8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA2/H,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAIhEv0I,EAAA,EAAA,CACF4U,EAAA,CAAA,EAAA,CACJ5U,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAqF,EAAA,CAAA,MAAA,CAE3E8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA2/H,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAmEv0I,EAAA,EAAA,EACvE,EAAA,CAGVF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAA6B,CAAA,EAAA,CAAA,GAAA,CAAA,EAAA,CACtByC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,IAAA04D,CAAAA,CAAAtgG,EAAAC,CAAAA,CAAA,CAAAjuB,CAAAA,KAAAA,CAAAyqG,CAAA30C,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASu8E,CAAAA,CAAAA,CAAAs1D,aAAAnqG,CAAAA,CAAAA,CAAA04D,CAA0B,CAAA,CAAC,CAAC,CAAA,CAAA,CAA4BnuF,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAuB5U,EAAA,EAAA,CAC1FD,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CACLC,CAAAA,EAAAA,EAAM,EAAA,GAvCV+jG,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,IAAAA,CAAA,aAAA7kB,CAAAA,CAAAA,CAAAu1D,aAAA,CAAA,CAAmC,OAAAv1D,CAAAA,CAAAA,CAAAw1D,SAAA,CAAA,CAID3xI,EAAA,EAAA,CAAAghG,IAAA,CAAA,kBAAA,CAAA7kB,CAAAy1D,CAAAA,sBAAA,CAKtB5xI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAk8E,CAAA01D,CAAAA,sBAAAA,CAAAC,CAAA,CAAA,CAA8C,CAAA,QAAA,CAAA,EAAA,CAAA,CACjC,YAAA31D,CAAAA,CAAAA,CAAA41D,yBAAA,CAAA,CAC2B,kBAAA51D,CAAAA,CAAAA,CAAA41D,yBAAA,CAAA,CACM,kBAAA,CAAA,SAAA,CAChB,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CACX,WAAA,CAAA,CAAA,CAAA,CACA,CAAA,OAAA,CAAAD,CAAAE,CAAAA,cAAA,CAMChyI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAiyI,EAAA,CAAA,EAAA,CAAA91D,CAAA+1D,CAAAA,MAAAA,CAAA,GAAAJ,CAAAA,CAAAA,CAAAK,UAAA,CAAA,GAAA,CAAAh2D,CAAAi2D,CAAAA,sBAAAA,CAAA,EAAA,CAAA,CAEIpyI,EAAA,CAAA,CAAA,CAAAghG,CAAAA,IAAAA,CAAA,OAAA7kB,CAAAA,CAAAA,CAAA41D,yBAAA,CAAA,CAA0C/xI,EAAA,EAAA,CAAA8R,EAAAggI,CAAAA,CAAAA,CAAAO,cAAA,EAAA,IAAA,CAAAh2E,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAAy1E,CAAAx1G,CAAAA,QAAA,CAAA+/B,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAAy1E,CAAAO,CAAAA,cAAAA,CAAA,GAAAP,CAAAA,CAAAA,CAAAx1G,QAAA,CAAA,CAKlEt8B,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAA+f,CAAAm2D,CAAAA,eAAAA,CAAA,GAAA,CAAA,CAE2BtyI,EAAA,EAAA,CAAAghG,IAAA,CAAA,kBAAA,CAAA7kB,CAAAo2D,CAAAA,0BAAA,EAErBvyI,EAAA,CAAA,CAAA,CAAAwyI,CAAAA,EAAAA,CAAA,EAAAr2D,CAAAA,CAAAA,CAAAs2D,cAAA,CAAA,IAAA,CAAA5hI,EAAA,CAAA,EAAA,CAAA,EAAAihI,CAAAA,CAAAA,CAAAY,UAAA,CAAA,CAAA,GAAA,CAAA,CAKgC1yI,EAAA,CAAA,CAAA,CAAAghG,CAAAA,IAAAA,CAAA,OAAA7kB,CAAAA,CAAAA,CAAAw1D,SAAA,CAAA,CAA0B3xI,EAAA,EAAA,CAAA8R,EAAAqqE,CAAAA,CAAAA,CAAAw2D,YAAA,EAAA,CAAA,CCzBhF,IAAaC,EAAAA,CAAAA,CAA2B,IAAA,CAAlC,IAAOA,CAAAA,CAAP,MAAOA,CAA2B,CAuBpC5gK,WAAAA,CACYq7B,CACAmlC,CAAAA,CAAAA,CACAsvB,CACA3iD,CAAAA,CAAAA,CACArS,CAAoD,CAAA,CAJpD,IAAAO,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAmlC,QAAAA,CAAAA,CAAAA,CACA,IAAAsvB,CAAAA,sBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA3iD,UAAAA,CAAAA,CAAAA,CACA,IAAArS,CAAAA,SAAAA,CAAAA,EACT,CACHW,QAAQ,EAAA,CACA,IAAK2mC,CAAAA,aAAAA,GACL,IAAKJ,CAAAA,YAAAA,CAAe,IAAK8tB,CAAAA,sBAAAA,CAAuBxtB,eAAe,EAAA,CAAA,CAEnE,IAAKu+F,CAAAA,gBAAAA,CAAmB,IAAKxlI,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGyhI,6BACzE,CAAA,IAAA,CAAKC,qBAAwB,CAAA,IAAA,CAAK1lI,qBAAsBwnC,CAAAA,4BAAAA,EAA+B+0B,CAAAA,wBAAAA,CACvF,IAAKipE,CAAAA,gBAAAA,CAAmB,IAAKxlI,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGsrB,mBAAoBm2G,CAAAA,6BAAAA,CAC7F,IAAKV,CAAAA,sBAAAA,CAAyB,IAAK/kI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBZ,CAAAA,sBAAAA,CAChH,IAAKE,CAAAA,eAAAA,CAAkB,IAAKjlI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBV,CAAAA,eAAAA,CACzG,IAAKJ,CAAAA,MAAAA,CAAS,IAAK7kI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBd,CAAAA,MAAAA,CAChG,IAAKO,CAAAA,cAAAA,CAAiB,IAAKplI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBP,CAAAA,cAAAA,CACxG,KAAKb,sBAAyB,CAAA,IAAA,CAAKvkI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBpB,sBAChH,CAAA,IAAA,CAAKW,0BACD,CAAA,IAAA,CAAKllI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBT,0BACtF,CAAA,IAAA,CAAKR,yBAA4B,CAAA,IAAA,CAAK1kI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBjB,yBACnH,CAAA,IAAA,CAAKL,aAAgB,CAAA,IAAA,CAAKrkI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBtB,aACvG,CAAA,IAAA,CAAKiB,YAAe,CAAA,IAAA,CAAKtlI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBL,YACtG,CAAA,IAAA,CAAKhB,SAAY,CAAA,IAAA,CAAKtkI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBrB,UACvG,CACAJ,gBAAiB1zJ,CAAAA,CAAAA,CAAYo1J,CAAuB,CAAA,CAChD,IAAKC,CAAAA,eAAAA,CAAgBr1J,CAAOo1J,CAAAA,CAAAA,CAAiB,gBAAgB,EACjE,CACAC,eAAAA,CAAgBr1J,CAAYo1J,CAAAA,CAAAA,CAAyBE,CAAiB,CAAA,CAClE,IAAMC,CAAAA,CAAa,IAAKh/F,CAAAA,aAAAA,CAAc6+F,CAAkB,CAAA,CAAC,CACzDp1J,CAAAA,CAAAA,CAAM0iH,eAAe,EAAA,CACrB,IAAK/tD,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,OACzB,CAAA,yBAAA,CAA2B,YAAoB8qH,CAAAA,CAAAA,CAC/C,yBAA2B,CAAA,mBAAA,CAC3B,wBAA0BE,CAAAA,CAAAA,CAC1B,sBAAwBC,CAAAA,CAAAA,CAAW7/F,WACtC,CAAA,CAAA,CACD,IAAK8/F,CAAAA,wBAAAA,EACL,CAAA,IAAA,CAAKl0H,UAAW0D,CAAAA,IAAAA,CAAKuwH,CAAY7/F,EAAAA,WAAW,EAChD,CACOk+F,aAAc5zJ,CAAAA,CAAAA,CAAYo1J,CAAuB,CAAA,CACpD,IAAKC,CAAAA,eAAAA,CAAgBr1J,CAAOo1J,CAAAA,CAAAA,CAAiB,aAAa,EAC9D,CACAI,wBAAAA,EAAwB,CACpB,IAAMC,CAAyB,CAAA,CAC3BC,YAAc,CAAA,CAAA,CAAA,CAAA,CAElB,IAAKzmI,CAAAA,SAAAA,CAAUU,MAAM8lI,CAAiB,CAAA,CACtC,IAAKxxE,CAAAA,sBAAAA,CAAuBtsB,qBAAqB,GACrD,CACOq8F,sBAAAA,CAAuBuB,CAAe,CAAA,CACzC,OAAKI,IAAAA,CAAAA,aAAAA,CAAiBJ,CAAWpB,CAAAA,cAAAA,CAAiBoB,CAAWjB,CAAAA,UAAAA,CAAc,GACpE,CAAA,IAAA,CAAKqB,aAChB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAhFSZ,CAA2B9iI,EAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAAR,GAAAmmC,CAAAA,IAAA,CAAAnmC,CAAAA,GAAAA,CAAAyiC,IAAA,CAAA,CAAAziC,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA0jI,EAAA,CAAA,CAAA,IAAA,CAA3Bb,CAA2Bn2I,CAAAA,SAAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAA6jC,aAAAA,CAAA,eAAAggD,CAAAA,SAAAA,CAAA,WAAA,CAAA,CAAAz3F,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,KAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,aAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,QAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAAC,QAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,CDdxCO,EAAAA,EAAAA,CAAA,CAAAu0I,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAI2BzzI,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,SAAA/rB,CAAAA,CAAAA,CAAAkgE,aAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCQbi6B,EAAOslE,CAAAA,IAAAA,CAAsBC,IAAEC,CAAAA,EAAAA,CAAc5oB,EAAkB,CAAA,CAAAzqH,aAAA,CAAA,CAAA,CAAA,CAAA,CAEvE,IAAOoyI,CAAAA,CAAPkB,CAAOlB,CAAAA,OAAAA,CAA2B,CAAA,GAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,ECZhC51I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA+DiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,eAAAomC,CAAAA,CAAAA,CAAA0tG,eAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAlgJ,EAAA,EAAA,CAI3DkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA6C,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACnBC,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA4CC,EAAA,EAAA,CAClEF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAwB,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACD8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAwB5U,EAAA,EAAA,CAC3CF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAkByC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA6nC,CAAA,CAAA,CAAA,IAAAlB,CAAAA,CAAAmB,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASymC,CAAAA,CAAAA,CAAA2tG,iBAAA,EAAmB,CAAA,CAAA,CAAEniI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAoB5U,EAAA,EAAA,EAClE,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAJqB2pB,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAAtmG,CAAAA,CAAAA,CAAA4tG,kBAAA1tG,EAAA,CAAA,CAEJvmC,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAA6tG,CAAAA,kBAAA,CAC6Bl0I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAA8tG,cAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAIpDp3I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA0E,CAAA,CAAA,CAAA,MAAA,CAAA,CAChE8U,EAAA,CAAA,CAAA,CAAe5U,CAAAA,EAAAA,EACpBF,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAqB8U,EAAA,CAAA,CAAA,CAAW5U,CAAAA,EAAAA,EAAO,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADlC2pB,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAA+tG,CAAAA,SAAA,CACgBp0I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAAguG,KAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAE1Bt3I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA+G,CAAA,CAAA,CAAA,MAAA,CAAA,CACrG8U,EAAA,CAAA,CAAA,CAAe5U,CAAAA,EAAAA,EACpBF,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAqB8U,EAAA,CAAA,CAAA,CAAW5U,CAAAA,EAAAA,EAAO,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAFnB6oB,EAAA,CAAA,gBAAA,CAAAmnC,CAAAiuG,CAAAA,WAAA,CACft0I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAAkuG,SAAA,CAAA,CACgBv0I,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAAmuG,CAAAA,KAAA,EAE1Bz3I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+G,CAAA,CAAA,MAAA,CACrG8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CACxBF,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAqB8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAe5U,EAAA,EAAA,EAFZiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,gBAAAmnC,CAAAA,CAAAA,CAAAouG,eAAA,CAAA,CACnBz0I,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAAquG,CAAAA,aAAA,CACgB10I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAAsuG,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAX9B53I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAAy1I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA0E,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAIqC,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAQnH73I,CAAAA,EAAAA,EAbiDiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,WAAA,CAAA,CAAAmnC,CAAA0uG,CAAAA,aAAA,CACnB/0I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAomC,CAAAA,CAAAA,CAAAguG,KAAAhuG,EAAAA,CAAAA,CAAAguG,KAAA,EAAA,MAAA,EAAAhuG,CAAAguG,CAAAA,KAAAA,EAAA,GAAA,CAAA,CAIqCr0I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAAmuG,CAAAA,KAAAA,EAAAnuG,CAAAmuG,CAAAA,KAAAA,EAAA,MAAAnuG,EAAAA,CAAAA,CAAAmuG,KAAA,EAAA,GAAA,CAIQx0I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAomC,CAAAA,CAAAA,CAAAsuG,SAAAtuG,EAAAA,CAAAA,CAAAsuG,SAAA,EAAA,MAAA,EAK3E53I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyD,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACX,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAChBC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAkDC,CAAAA,EAAAA,EACxEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA0B,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACH8U,EAAA,CAAA,CAAA,CAAwB5U,CAAAA,EAAAA,EAC3CF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyB8U,EAAA,CAAA,CAAA,CAA+B5U,CAAAA,EAAAA,IACtD,EAAA,CAEVF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAyC,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACfC,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAiDC,EAAA,EAAA,CACvEF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAA0B,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACH8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAuB5U,EAAA,EAAA,CAC1CF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAyB8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAA8B5U,EAAA,EAAA,EACrD,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAA0C,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAChBC,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAkDC,EAAA,EAAA,CACxEF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAA0B,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACH8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAwB5U,EAAA,EAAA,CAC3CF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAyB8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAA+B5U,EAAA,EAAA,EACtD,EAAA,CAGVF,EAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAOIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAArB,CAAAA,CAAAmB,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASymC,CAAAA,CAAAA,CAAA2uG,iBAAA,EAAmB,CAAA,CAAA,CAAE/3I,CAAAA,EAAAA,EAAkB,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CA5BrB2pB,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAAtmG,CAAAA,CAAAA,CAAA4uG,uBAAA1uG,CAAAA,EAAA,CAEJvmC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAAu0B,CAAA6uG,CAAAA,kBAAA,CACMl1I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAA8uG,yBAAA,CAAA,CAIFn1I,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAAtmG,CAAAA,CAAAA,CAAA+uG,sBAAA7uG,CAAAA,EAAA,CAEJvmC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAAgvG,iBAAA,CAAA,CACMr1I,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAAivG,CAAAA,wBAAA,CAIFt1I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAAtmG,CAAAkvG,CAAAA,uBAAAA,CAAAhvG,EAAA,CAAA,CAEJvmC,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,CAAAmvG,CAAAA,kBAAA,CACMx1I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAAovG,yBAAA,CAAA,CAK7Bz1I,EAAA,EAAA,CAAAC,EAAA,CAAA,UAAA,CAAAomC,CAAAqvG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,SAAA,CAAA,QAAA,CACE,CAAA,MAAA,CAAA,QAAA,CAAA,CACH,kBAAA,CAAA,kBAAA,CACsB,CAAA,UAAA,CAAArvG,CAAAsvG,CAAAA,QAAA,EAnDvD54I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAiC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAEzBoC,CAAAA,EAAAA,CAAA,CAAAy2I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAA6C,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAOuC,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CA8CxF74I,CAAAA,EAAAA,EAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAtD4B2pB,EAAA,EAAA,CAAAd,EAAA,CAAA,gBAAA,CAAA,CAAAmnC,CAAAA,CAAA0tG,eAAA,CAAA,CACN/zI,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAA0uG,CAAAA,aAAA,EAOE/0I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAA0vG,CAAAA,eAAA,CAcI/1I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAomC,CAAAA,CAAAA,CAAA2vG,mBAAA,EAAA,CAAA,CCd1C,IAAaC,IAAAA,CAAAA,CAAiC,IAAA,CAAxC,IAAOA,CAAAA,CAAP,MAAOA,CAAiC,CAiC1CjkK,WAAAA,CACYq7B,CACAmlC,CAAAA,CAAAA,CACA0jG,CAAsD,CAAA,CAFtD,IAAA7oI,CAAAA,qBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAmlC,QAAAA,CAAAA,CAAAA,CACA,IAAA0jG,CAAAA,0BAAAA,CAAAA,CAjBZ,CAAA,IAAA,CAAAF,mBAA+B,CAAA,CAAA,CAAA,CAY/B,IAAAN,CAAAA,QAAAA,CAAoB,CAMjB,EAAA,CAEHjoI,QAAQ,EAAA,CACJ,IAAM3uC,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAC7D,IAAKqjI,CAAAA,aAAAA,CAAgB51K,CAAOq3K,CAAAA,qBAAAA,CAAsBC,aAClD,CAAA,IAAA,CAAK7B,SAAYz1K,CAAAA,CAAAA,CAAOq3K,qBAAsBE,CAAAA,SAAAA,CAC9C,IAAKjC,CAAAA,SAAAA,CAAYt1K,CAAOq3K,CAAAA,qBAAAA,CAAsBG,SAC9C,CAAA,IAAA,CAAKnC,cAAiBr1K,CAAAA,CAAAA,CAAOq3K,qBAAsBI,CAAAA,cAAAA,CACnD,IAAKZ,CAAAA,QAAAA,CAAW72K,CAAOq3K,CAAAA,qBAAAA,CAAsBK,QAC7C,CAAA,IAAA,CAAKtB,kBAAqBp2K,CAAAA,CAAAA,CAAOq3K,qBAAsBM,CAAAA,kBAAAA,CACvD,IAAKxB,CAAAA,uBAAAA,CAA0Bn2K,CAAOq3K,CAAAA,qBAAAA,CAAsBO,uBAC5D,CAAA,IAAA,CAAKvB,yBAA4Br2K,CAAAA,CAAAA,CAAOq3K,qBAAsBQ,CAAAA,yBAAAA,CAC9D,IAAKnB,CAAAA,kBAAAA,CAAqB12K,CAAOq3K,CAAAA,qBAAAA,CAAsBS,kBACvD,CAAA,IAAA,CAAKnB,yBAA4B32K,CAAAA,CAAAA,CAAOq3K,qBAAsBU,CAAAA,yBAAAA,CAC9D,IAAKtB,CAAAA,uBAAAA,CAA0Bz2K,CAAOq3K,CAAAA,qBAAAA,CAAsBW,uBAC5D,CAAA,IAAA,CAAKzB,iBAAoBv2K,CAAAA,CAAAA,CAAOq3K,qBAAsBY,CAAAA,iBAAAA,CACtD,IAAK3B,CAAAA,sBAAAA,CAAyBt2K,CAAOq3K,CAAAA,qBAAAA,CAAsBa,sBAC3D,CAAA,IAAA,CAAK1B,wBAA2Bx2K,CAAAA,CAAAA,CAAOq3K,qBAAsBc,CAAAA,wBAAAA,CAC7D,IAAKvB,CAAAA,QAAAA,CAAW,CAAC,IAAA,CAAKQ,2BAA2BttH,SAAS,GAC9D,CAEAorH,iBAAAA,EAAiB,CACb,IAAA,CAAK+B,eAAkB,CAAA,CAAC,IAAKA,CAAAA,eAAAA,CAC7B,IAAKC,CAAAA,mBAAAA,CAAsB,CAAC,IAAA,CAAKA,mBACjC,CAAA,IAAA,CAAKkB,OAAU,CAAA,UAAA,CACf,IAAKC,CAAAA,WAAAA,CAAc,CACnB,CAAA,IAAA,CAAK3kG,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,mBAAA,CACxB,uBAAyB,CAAA,OAAA,CACzB,yBAA2B,CAAA,kBAAA,CAA0B,IAAK+rH,CAAAA,kBAAAA,CAC1D,yBAA2B,CAAA,kBAAA,CAC3B,wBAA0B,CAAA,IAAA,CAAKC,cAC/B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,EACL,CAEAa,iBAAAA,EAAiB,CACb,IAAA,CAAKe,eAAkB,CAAA,CAAC,IAAKA,CAAAA,eAAAA,CAC7B,IAAKC,CAAAA,mBAAAA,CAAsB,CAAC,IAAA,CAAKA,mBAChC/mI,CAAAA,QAAAA,CAASC,cAAe,CAAA,YAAY,CAAkBwqD,CAAAA,QAAAA,CAAS,CAAG,CAAA,CAAC,CACpE,CAAA,IAAA,CAAKlnB,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,mBAAA,CACxB,uBAAyB,CAAA,OAAA,CACzB,yBAA2B,CAAA,kBAAA,CAA0B,IAAK+rH,CAAAA,kBAAAA,CAC1D,yBAA2B,CAAA,kBAAA,CAC3B,wBAA0B,CAAA,IAAA,CAAKyB,QAC/B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,EACL,CAvFSM,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAiCnmI,GAAAQ,CAAAA,GAAA,CAAAR,CAAAA,GAAAA,CAAAmmC,IAAA,CAAA,CAAAnmC,GAAA2gG,CAAAA,EAAA,CAAA,CAAA,CAAjCwlC,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAiCx5I,SAAA,CAAA,CAAA,CAAA,gCAAA,CAAA,CAAA,CAAA8T,MAAA,CAAA,CAAAwjI,eAAA,CAAA,iBAAA,CAAA3/C,SAAA,CAAA,WAAA,CAAAgjD,cAAA,CAAA,gBAAA,CAAAlD,kBAAA,CAAA,oBAAA,CAAAM,KAAA,CAAA,OAAA,CAAAH,KAAA,CAAA,OAAA,CAAAM,SAAA,CAAA,WAAA,CAAAV,iBAAA,CAAA,mBAAA,CAAA8B,gBAAA,iBAAAhB,CAAAA,aAAAA,CAAA,eAAAN,CAAAA,eAAAA,CAAA,iBAAAH,CAAAA,WAAAA,CAAA,aAAA+C,CAAAA,mBAAAA,CAAA,qBAAA,CAAA,CAAA16I,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAA,CAAAC,KAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,OAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,WAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,GDb9C7B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAuC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAE/BoC,CAAAA,EAAAA,CAAA,CAAAm4I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACJr6I,CAAAA,EAAAA,EACAkC,CAAAA,EAAAA,CAAA,CAAAo4I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAyDJt6I,CAAAA,EAAAA,EA5D2C+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,EAAAd,CAAAA,EAAAA,CAAA,eAAA,CAAA,CAAAhrB,CAAAmjK,CAAAA,mBAAAA,EAAA,CAAAnjK,CAAAA,CAAA6gK,aAAA,EAAA,CAAA7gK,CAAA6hK,CAAAA,eAAA,CACK/1I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAA6/J,eAAA,CAAA,CAEtC/zI,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAmjK,CAAAA,mBAAA,CCOIvqG,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAMy2C,EAAsBi0D,CAAAA,IAAAA,CAAsBC,IAAuB,CAAA,CAAAj3I,aAAA,CAAA,CAAA,CAAA,CAAA,CAEjF,IAAOy1I,CAAPyB,CAAAA,CAAAA,CAAAA,OAAOzB,CAAiC,CAAA,GCCVl5I,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAAqByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA6nC,CAAAA,CAAA,CAAA,CAAA,IAAA40C,CAAA30C,CAAAA,EAAAA,EAAAmwG,CAAAA,CAAAA,CAAAx7D,CAAAowD,CAAAA,SAAAA,CAAAqL,CAAAz7D,CAAAA,CAAAA,CAAAzqG,KAAA26J,CAAAA,CAAAA,CAAA7kG,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASysI,CAAAA,CAAAA,CAAA38H,MAAAioI,CAAAA,CAAAA,CAAa,GAAGC,CAAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAC9C76I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA+ByC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA6nC,CAAA,CAAA,CAAA,IAAAowG,CAAAA,CAAAnwG,EAAA,EAAA,CAAA+kG,SAAAF,CAAAA,CAAAA,CAAA7kG,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASysI,CAAAA,CAAAA,CAAAK,eAAAiL,CAAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAA7D16I,EAAA,EAAA,GAAK+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,EAAA2sI,CAAAA,EAAAA,CAAA,KAAAgL,CAAAA,CAAAA,CAAAjgI,IAAA7H,CAAAA,GAAAA,CAAA02B,EAAA,CAAA,CAA0DomG,EAAA,CAAA,KAAA,CAAAgL,CAAAjgI,CAAAA,IAAAA,CAAAE,GAAA,EAAA,CAAA,CAAA,SAAAhX,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAJ/E7D,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAwE,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAC7C,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAEfoC,CAAAA,EAAAA,CAAA,CAAA04I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAGJ56I,CAAAA,EAAAA,EAAM,EAAA,EAHE+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAA03I,CAAAjgI,CAAAA,IAAA,EAPhC3a,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAmC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAC6C,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEtCoC,EAAA,CAAA,CAAA,CAAA24I,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CASJ76I,EAAA,EAAA,CACAF,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAoEyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAA0sI,CAAAA,CAAA7kG,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASysI,CAAA0L,CAAAA,aAAAA,EAAe,CAAA,CAAA,CAAA,CAAqB96I,EAAA,EAAA,CACjHF,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAAuEyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAA0sI,CAAAA,CAAA7kG,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASysI,CAAA2L,CAAAA,aAAAA,EAAe,CAAA,CAAA,CAAA,CAAqB/6I,EAAA,EAAA,EAClH,EAAA,GAfiB+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAd,CAAAA,EAAAA,CAAA,+BAAA,CAAA,CAAAmtI,CAAA3qH,CAAAA,OAAA,CAEc1hB,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,eAAA,CAAAosI,CAAA4L,CAAAA,aAAA,CACcj4I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAosI,CAAA6L,CAAAA,SAAA,CAUvCl4I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,QAAAosI,CAAAA,CAAAA,CAAA8L,aAAA,CAAA,CACAn4I,EAAA,EAAA,CAAAC,EAAA,CAAA,QAAA,CAAAosI,CAAA+L,CAAAA,cAAA,EASAr7I,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAAqByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAs9D,CAAAA,CAAA,EAAA,IAAAq7E,CAAAA,CAAA7wG,EAAA,EAAA,CAAA8wG,CAAAD,CAAAA,CAAAA,CAAA9L,SAAAgM,CAAAA,CAAAA,CAAAF,CAAA3mK,CAAAA,KAAAA,CAAA26J,CAAA7kG,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASysI,CAAA38H,CAAAA,MAAAA,CAAA4oI,CAAa,CAAA,GAAA,CAAGC,CAAA,CAAI,CAAA,CAAA,CAC9Cx7I,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+ByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAs9D,CAAAA,CAAA,CAAA,CAAA,IAAAs7E,CAAA9wG,CAAAA,EAAAA,EAAA+kG,CAAAA,SAAAA,CAAAF,CAAA7kG,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASysI,CAAAK,CAAAA,eAAAA,CAAA4L,CAAA,CAAqB,CAAA,CAAA,CAA7Dr7I,CAAAA,EAAAA,EAA2F,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAAA,SAAA,CAAtF2pB,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA2L,CAAA5gI,CAAAA,IAAAA,CAAA7H,GAAA02B,CAAAA,EAAA,CAA0DomG,CAAAA,EAAAA,CAAA,KAAA2L,CAAAA,CAAAA,CAAA5gI,IAAAE,CAAAA,GAAA,EAH3E7a,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyF,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAEjFoC,EAAA,CAAA,CAAA,CAAAq5I,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAGJv7I,EAAA,EAAA,EAHQ+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAq4I,CAAA5gI,CAAAA,IAAA,EALxB3a,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAkC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAC8C,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAEpEoC,CAAAA,EAAAA,CAAA,CAAAs5I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAOJx7I,CAAAA,EAAAA,EAAM,EAAA,EATiB+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAd,EAAA,CAAA,+BAAA,CAAA,CAAAmtI,CAAAA,CAAA3qH,OAAA,CAAA,CAEG1hB,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,SAAAosI,CAAAA,CAAAA,CAAA6L,SAAA,EAAA,CAAA,CCf1C,IAAaQ,IAAAA,CAAAA,CAA0B,IAAA,CAAjC,IAAOA,CAAAA,CAAP,MAAOA,CAA0B,CAoCnC1mK,WAAAA,CACY86B,CACAwf,CAAAA,CAAAA,CACAxwB,CACAuR,CAAAA,CAAAA,CACA2pB,CAA8C,CAAA,CAJ9C,IAAAlqB,CAAAA,SAAAA,CAAAA,CACA,CAAA,IAAA,CAAAwf,aAAAA,CAAAA,CAAAA,CACA,IAAAxwB,CAAAA,UAAAA,CAAAA,CACA,CAAA,IAAA,CAAAuR,qBAAAA,CAAAA,CAAAA,CACA,IAAA2pB,CAAAA,iBAAAA,CAAAA,CA/BZ,CAAA,IAAA,CAAA2hH,IAAe,CAAA,GAAA,CACf,IAAAR,CAAAA,aAAAA,CAAyB,CACzB,CAAA,CAAA,IAAA,CAAAC,cAA0B,CAAA,CAAA,CAAA,CAM1B,IAAAz9F,CAAAA,QAAAA,CAAmB,CAEnB,CAAA,IAAA,CAAAs9F,aAA+B,CAAA,CAC3BW,UAAY,CAAA,CAAA,CAAA,CACZC,cAAgB,CAAA,CAAA,CAAA,CAChBC,YAAc,CAAA,EAAA,CACdC,aAAe,CAAA,GAAA,CACf/+I,QAAU,CAAA,CAAA,CAAA,CACVg/I,MAAQ,CAAA,CAAA,CAAA,CACRC,cAAgB,CAAA,CAAA,CAChBC,QAAU,CAAA,CAAA,CAAA,CACVC,aAAe,CAAA,CAAA,CAAA,CACfC,wBAA0B,CAAA,CAAA,CAAA,CAC1BlqC,EAAI,CAAA,CACAmqC,WAAc34C,CAAAA,CAAAA,EAAW,IAAK44C,CAAAA,cAAAA,CAAe54C,CAAM,CAAA,CAAA,EAUxD,CAEHjzF,QAAAA,EAAQ,CACJ,IAAA,CAAKiU,OAAU,CAAA,IAAA,CAAK4K,aAAc5K,CAAAA,OAAAA,EAClC,CAAA,IAAA,CAAK3J,UAAa,CAAA,IAAA,CAAKuU,aAAcvT,CAAAA,eAAAA,EACjC,CAAA,IAAA,CAAKm/H,SAAUp9J,CAAAA,MAAAA,CAAS,IAAK69J,CAAAA,IAAAA,GAC7B,IAAKP,CAAAA,cAAAA,CAAiB,CAE1B,CAAA,CAAA,CAAA,IAAMt5K,CAAS,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EAC1C,CAAA,IAAA,CAAKkoI,gBAAmBz6K,CAAAA,CAAAA,CAAOq3K,qBAAsBqD,CAAAA,iBACzD,CAEAn7I,eAAAA,EAAe,CACP4Q,QAAAA,CAASC,eAAe,QAAQ,CAAA,GAChC,IAAKuqI,CAAAA,iBAAAA,CAAqBxqI,QAASC,CAAAA,cAAAA,CAAe,QAAQ,CAAA,CAAkBx3B,UAEpF,EAAA,CAEAg4B,MAAOgiB,CAAAA,CAAAA,CAAW7xD,CAAcJ,CAAAA,CAAAA,CAAM,CAOlCwvC,QAAAA,CAASmiD,oBAAqB,CAAA,MAAM,CAAE,CAAA,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUnY,MAAO,CAAA,uBAAuB,CACjF,CAAA,IAAA,CAAKoR,SAAUU,CAAAA,KAAAA,EAMf,CAAA,IAAMs6D,CAAY,CAAA,IAAIngB,IACtBmgB,CAAAA,CAAAA,CAAUp2C,IAAOA,CAAAA,CAAAA,CACjBo2C,CAAUpmD,CAAAA,OAAAA,CAAU,IAAKA,CAAAA,OAAAA,CACzBomD,CAAUp2C,CAAAA,IAAAA,CAAKvQ,SAAY,CAAA,IAAA,CAAKA,SAChC2mD,CAAAA,CAAAA,CAAUoE,YAAezsG,CAAAA,CAAAA,CACzBqoG,CAAU75B,CAAAA,YAAAA,CAAe,UACzB65B,CAAAA,CAAAA,CAAUjoG,IAAOA,CAAAA,CAAAA,CACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,YAAe,CAAA,CAAA,CAAA,CACzBigB,CAAUhgB,CAAAA,aAAAA,CAAgB,CAC1BggB,CAAAA,CAAAA,CAAAA,CAAUiM,gBAAmB,CAAA,IAAA,CAAKA,gBAClCjM,CAAAA,CAAAA,CAAU54B,YAAe,CAAA,IAAA,CAAKA,YAC9B44B,CAAAA,CAAAA,CAAU5f,SAAY3tC,CAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,CACtCqtD,CAAUiE,CAAAA,aAAAA,CAAgBr6C,CAAK5a,CAAAA,MAAAA,CAAS,kCACxCgxD,CAAAA,CAAAA,CAAU5yC,WAAc,CAAA,mBAAA,CACxB4yC,CAAUtf,CAAAA,eAAAA,CAAkB,CAC5Bsf,CAAAA,CAAAA,CAAAA,CAAUrrB,cAAiB,CAAA,IAAA,CAAKzlB,iBAAkBm1C,CAAAA,gBAAAA,EAClDrE,CAAAA,CAAAA,CAAUoxB,6BAAgC,CAAA,CAAA,CAAA,CAC1C,IAAKliE,CAAAA,iBAAAA,CAAkBg9C,UAAWlM,CAAAA,CAAS,EAC/C,CAEAwxE,cAAe54C,CAAAA,CAAAA,CAAc,CACzB,IAAMhvH,CAAQgvH,CAAAA,CAAAA,CAAO9wB,SACrB,CAAA,IAAA,CAAKuoE,aAAgBzmK,CAAAA,CAAAA,GAAU,CAC3B,CAAA,IAAA,CAAKwmK,SAAa,EAAA,IAAA,CAAKA,SAAUp9J,CAAAA,MAAAA,CAAS,CAC1C,GAAA,IAAA,CAAK4+J,gBAAmBhoK,CAAAA,CAAAA,CAAQ,IAAKinK,CAAAA,IAAAA,CAAO,GAC5C,CAAA,IAAA,CAAKP,eAAiB,IAAKsB,CAAAA,gBAAAA,GAAqB,IAAKxB,CAAAA,SAAAA,CAAUp9J,MAAS,CAAA,CAAA,EAEhF,CACAi9J,aAAAA,EAAa,CACL,IAAA,CAAK4B,YAAcj5C,EAAAA,MAAAA,EACnB,IAAKi5C,CAAAA,YAAAA,CAAaj5C,MAAOk5C,CAAAA,SAAAA,GAEjC,CACA5B,aAAa,EAAA,CACL,IAAK2B,CAAAA,YAAAA,EAAcj5C,MACnB,GAAA,IAAA,CAAKi5C,YAAaj5C,CAAAA,MAAAA,CAAOm5C,SAAS,EAAA,CAClC,IAAKzB,CAAAA,cAAAA,CAAiB,IAAKsB,CAAAA,gBAAAA,GAAqB,IAAKxB,CAAAA,SAAAA,CAAUp9J,MAAS,CAAA,CAAA,EAEhF,CAEA4xJ,eAAAA,CAAgBh7G,CAAS,CAAA,CACrBA,CAAKha,CAAAA,IAAAA,CAAK7H,GAAM,CAAA,IAAA,CAAKkI,WACzB,CAEA+hI,mBAAmB,EAAA,CACf,OAAI,IAAA,CAAKp4H,OACE,CAAA,kBAAA,CAEJ,oBACX,CAEAq4H,UAAU,EAAA,CACF,IAAKj+I,CAAAA,UAAAA,CAAWsC,aAAcglE,CAAAA,sBAAAA,CAAuB,kBAAkB,CAAA,CAAE,CAAC,CAAA,CAAE3uD,UAAc,EAAA,IAAA,CAAKglI,iBAC/F,EAAA,IAAA,CAAKO,UAAa,CAAA,CAAA,CAAA,CAClB/kI,UAAW,CAAA,IAAK,CACZ,IAAMkrG,CAAMlxG,CAAAA,QAAAA,CAASC,cAAe,CAAA,kBAAkB,CAClDixG,CAAAA,CAAAA,EAAKA,CAAIl7C,CAAAA,YAAAA,CAAa,UAAY,CAAA,UAAU,EACpD,CAAA,CAAG,GAAG,CAAA,EACC,IAAKnpE,CAAAA,UAAAA,CAAWsC,aAAcglE,CAAAA,sBAAAA,CAAuB,kBAAkB,CAAA,CAAE,CAAC,CAAA,CAAE3uD,UAAa,CAAA,IAAA,CAAKglI,iBACrG,GAAA,IAAA,CAAKO,UAAa,CAAA,CAAA,CAAA,EAE1B,CAxIStB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0B5oI,GAAAC,CAAAA,EAAA,CAAAD,CAAAA,GAAAA,CAAAyI,EAAA,CAAA,CAAAzI,GAAA9T,CAAAA,IAAA,CAAA8T,CAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAAR,GAAAqhE,CAAAA,IAAA,CAAA,CAAA,CAA1BunE,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA0Bj8I,SAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAAm7E,CAAAA,SAAAA,CAAA,SAAAh5E,CAAAA,CAAA1qB,CAAA,CAAA,CAAA,GAAA0qB,CAAA,CAAA,CAAA,EAAAq7I,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAAC,EAAA,EAAA,CAAA,GAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,SAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,cAAA,CAAA,YAAA,CAAA,cAAA,CAAA,aAAA,CAAA,eAAA,CAAA,SAAA,CAAA,WAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAAjgK,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,IAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA,YAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA,aAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GDdvC6iB,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAoC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAsB5U,EAAA,EAAA,CAC1DF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAgF,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAKxEyC,CAAAA,EAAAA,CAAA,QAAA,CAAA,UAAA,CAAA,OAAUtrB,CAAA6lK,CAAAA,UAAAA,EAAY,CAAA,CACtB56I,CAAAA,EAAAA,CAAA,CAAAi7I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAmC,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAgCvCp9I,EAAA,EAAA,EAvCgC+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAA59B,CAAAqlK,CAAAA,gBAAA,CAI5Bv5I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAghG,IAAA,CAAA,YAAA,CAAA9sH,CAAAwtC,CAAAA,OAAAA,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CACAxiB,EAAA,CAAA,4BAAA,CAAA,CAAAhrB,CAAAA,CAAAwtC,OAAAxtC,EAAAA,CAAAA,CAAA4lK,mBAAA,EAAA,EAAA,kBAAA,CAAA,CAFA75I,EAAA,CAAA,SAAA,CAAA/rB,CAAA4lK,CAAAA,mBAAAA,EAAA,CAAA,CAIM95I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAAwtC,OAAAxtC,EAAAA,CAAAA,CAAAgkK,SAAA,CAAA,CAmBAl4I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAwtC,CAAAA,OAAAA,EAAAxtC,CAAAgkK,CAAAA,SAAA,CCdAnrG,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAASD,EAAMuhC,CAAAA,EAAAA,CAAOisE,EAAe,CAAA,CAAA95I,aAAA,CAAA,CAAA,CAAA,CAAA,CAE7C,IAAOk4I,CAAAA,CAAP6B,CAAO7B,CAAAA,OAAAA,CAA0B,CAAA,GAAA,CAAA,IAAA8B,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,GAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAAr4I,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA1O,EAAA,EAAA,CCGHkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAA+E,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACtDyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAgoC,CAAAA,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAy/F,CAAAA,eAAAA,CAAAz/F,CAAA3G,CAAAA,OAAA,CAAwB,CAAA,CAAA,CAAA,CAAtDrpC,EAAA,EAAA,GAAwD+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAA2sI,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAAmnD,SAAA,CAAA,CAAnDn0F,EAAA,CAAA,KAAA,CAAAgtC,CAAA3G,CAAAA,OAAAA,CAAAC,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GANbxpC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAKIoC,CAAAA,EAAAA,CAAA,CAAA07I,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGA99I,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyE8U,EAAA,CAAA,CAAA,CAAkB5U,CAAAA,EAAAA,EAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CALjG4pB,EAAA,CAAA,SAAA,CAAA6mC,EAAA,CAAA,CAAA,CAAA6F,IAAAM,CAAAA,CAAAA,CAAAjG,cAAA,EAAA,IAAA,CAAA,IAAAiG,CAAAA,CAAAA,CAAAjG,cAAA3L,CAAAA,SAAAA,CAAA4R,CAAAjG,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAiG,CAAAjG,CAAAA,cAAAA,CAAA1L,WAAA,CAAA,CAAyF,CAAA,SAAA,CAAA2L,EAAA,CAAA,CAAA,CAAAF,IAAAkG,CAAAA,CAAAA,CAAA6tG,WAAA,CAAA,CAEzD96I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAA0I,CAAAA,iBAAAA,EAAA6S,CAAA7F,CAAAA,aAAA,CAGVpnC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,SAAAgnC,CAAAA,EAAAA,CAAA,EAAAC,CAAAA,IAAAA,CAAA+F,CAAAjG,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAiG,CAAAjG,CAAAA,cAAAA,CAAA1L,WAAA,CAAA,CAAmDt7B,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAAm7B,CAAA/R,CAAAA,YAAA,8BAQrEn+B,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAIK8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADpBu2D,EAAAK,CAAAA,CAAAA,CAAA8tG,SAAAC,CAAAA,CAAAA,CAAAz6K,GAAAq3K,CAAAA,CAAA,CAAA,CAAA,CACC53I,EAAA,EAAA,CAAA8R,EAAAkpI,CAAAA,CAAAA,CAAAh4K,KAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GATT+5B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAKIoC,CAAAA,EAAAA,CAAA,CAAA87I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAMJh+I,CAAAA,EAAAA,EATIgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,QAAA,CAAA,CAAAgtC,CAAAiuG,CAAAA,qBAAA,CAAiC,CAAA,SAAA,CAAAj0G,EAAA,CAAA,CAAA,CAAAw4B,GAAAxyB,CAAAA,CAAAA,CAAAkuG,eAAA,CAAA,CAKTn7I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,SAAAgtC,CAAAA,CAAAA,CAAAw7E,QAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GARhC1rH,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAi8I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAYJn+I,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CATS2pB,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAw7E,CAAAA,QAAAA,EAAAx7E,CAAAw7E,CAAAA,QAAAA,CAAA3tI,MAAA,CAAA,CAAA,EAgBDiiB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAIK8U,EAAA,CAAA,CAAA,CAAmB5U,CAAAA,EAAAA,EADpBgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,SAAAo7I,CAAAA,EAAAA,CAAA,CAAAx7E,CAAAA,IAAAA,CAAA,CAAA5yB,CAAAA,CAAAvrB,OAAA45H,CAAAA,CAAAA,CAAA,CAAA,GAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CACCt7I,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAAypI,CAAAv4K,CAAAA,KAAA,EATT+5B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIoC,EAAA,CAAA,CAAA,CAAAq8I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAMJv+I,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CATI4pB,EAAA,CAAA,QAAA,CAAA,CAAAgtC,CAAAA,CAAAiuG,qBAAA,CAAA,CAAiC,SAAAj0G,CAAAA,EAAAA,CAAA,CAAAw4B,CAAAA,GAAAA,CAAAxyB,CAAAkuG,CAAAA,eAAA,CAAA,CAAA,CAKTn7I,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAAw7E,CAAAA,QAAA,EAP5BtpH,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAAs8I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGKx7I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAw7E,QAAAx7E,EAAAA,CAAAA,CAAAw7E,QAAA3tI,CAAAA,MAAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA+Y,EAAA,EAAA,CAWbkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAAohE,CAAA,CAAA,CAAA,IAAA7zB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,IAAA4V,CAAAA,CAAA,CAA6B,CAAA,CAAA,CAAA,CAEsBrqC,EAAA,EAAA,GAA5D+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAA7hB,CAAAA,WAAAA,CAAA6hB,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,EAKRz/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EADS+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAA2sI,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAAyuG,UAAAn1G,CAAAA,EAAA,CAAuBomG,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAAmnD,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAEhCr3F,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAuD8U,CAAAA,EAAAA,CAAA,CAAA,CAA0B5U,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,EAA1B+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAAjB,EAAA,CAAA,CAAA,CAAA,CAAAo8B,CAAAA,CAAAA,CAAAsK,QAAA,CAAA,EAY3Cx6C,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAOIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA2+D,CAAAA,CAAA,CAAA,CAAA,IAAApxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAI,CAAA,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,GANjCgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAA,CAAAA,CAAAyoG,QAAA,CAAA,CAAqB,MAAA,CAAA,UAAA,CACF,CAAA,SAAA,CAAA,SAAA,CAAA,CACE,MAAA,CAAA,QAAA,CACJ,CAAA,kBAAA,CAAA,yCAAA,CAAA,CAC6C,UAAAzoG,CAAAA,CAAAA,CAAA0uG,YAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA9nJ,EAAA,EAAA,CA0BtEkJ,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAIIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAo/D,CAAA,CAAA,CAAA,IAAA7xB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA2uG,UAAW,CAAA,YAAY,CAAC,CAAA,CAAA,CAAA,CACjC7+I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAoC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,WAAA,CAAS5U,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAHnD6oB,EAAA,CAAA,gBAAA,CAAA+tC,CAAA4uG,CAAAA,UAAA,EAKJ9+I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAIIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA4+D,CAAAA,CAAA,CAAA,CAAA,IAAArxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,EAAA2uG,UAAW,CAAA,aAAa,CAAC,CAAA,CAAA,CAAA,CAClC7+I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAoC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,YAAA,CAAU5U,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAFpD6oB,EAAA,CAAA,gBAAA,CAAA+tC,CAAA6uG,CAAAA,WAAA,EAShB/+I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CACIC,CAAAA,EAAAA,CAAA,CAAA,CAAA,gCAAA,CAAA,EAAA,CAAA,CAcJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAbQ2pB,EAAA,EAAA,CAAAC,EAAA,CAAA,qBAAA,CAAAgtC,CAAAoqG,CAAAA,mBAAA,CAA2C,CAAA,eAAA,CAAApqG,CAAA8nG,CAAAA,aAAA,CACZ,CAAA,iBAAA,CAAA9nG,CAAAwnG,CAAAA,eAAA,CACI,CAAA,aAAA,CAAAxnG,CAAAqnG,CAAAA,WAAA,CACR,CAAA,iBAAA,CAAArnG,CAAA8oG,CAAAA,eAAA,CACQ,CAAA,WAAA,CAAA9oG,CAAAmnD,CAAAA,SAAA,CACZ,CAAA,iBAAA,CAAAnnD,CAAA8mG,CAAAA,eAAA,CACY,CAAA,oBAAA,CAAA9mG,CAAAinG,CAAAA,kBAAA,CACM,CAAA,mBAAA,CAAAjnG,CAAAgnG,CAAAA,iBAAA,CACF,CAAA,OAAA,CAAAhnG,CAAAunG,CAAAA,KAAA,CACxB,CAAA,OAAA,CAAAvnG,CAAAonG,CAAAA,KAAA,CACA,CAAA,WAAA,CAAApnG,CAAA0nG,CAAAA,SAAA,CACQ,CAAA,gBAAA,CAAA1nG,CAAAmqG,CAAAA,cAAA,EAG/Br6I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CACIC,CAAAA,EAAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,EAAA,CAAA,CAMJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CALQ2pB,EAAA,EAAA,CAAAC,EAAA,CAAA,WAAA,CAAAgtC,CAAAirG,CAAAA,SAAA,CAAuB,CAAA,kBAAA,CAAAjrG,CAAA8mC,CAAAA,gBAAA,CACc,CAAA,cAAA,CAAA9mC,CAAAi/B,CAAAA,YAAA,CACR,CAAA,eAAA,CAAAj/B,CAAA8+B,CAAAA,aAAA,CACE,CAAA,WAAA,CAAA9+B,CAAA9rB,CAAAA,SAAA,EAGvCpkB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EACIC,EAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EAD8B+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,eAAAgtC,CAAAA,CAAAA,CAAAmH,aAAA,CAAA,CAA+B,WAAAnH,CAAAA,CAAAA,CAAAmnD,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAvgG,EAAA,EAAA,CAtJjFkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAuB,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACkByC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA8uG,CAAAA,QAAAA,CAAAz0G,CAAA,CAAgB,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,EAChEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAA6C,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACI,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACKyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA8uG,QAAA,EAAU,CAAA,CAAA,CAAE9+I,CAAAA,EAAAA,EACnEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAsC,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACN,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACgByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+uG,gBAAA,EAAkB,CAAA,CAAA,CAA/D/+I,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIoC,EAAA,CAAA,EAAA,CAAA88I,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAI4D,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAML,CAAA,EAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA78I,EAAA,CAAA,CA4B3DrC,EAAA,EAAA,CACAkC,EAAA,CAAA,EAAA,CAAAi9I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAOJn/I,EAAA,EAAA,CACAF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAuC,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACR8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAkB5U,EAAA,EAAA,CAC7CkC,EAAA,CAAA,EAAA,CAAAk9I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAqD,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAIrDv/I,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAsC,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACF8U,EAAA,CAAA,EAAA,CAAe5U,CAAAA,EAAAA,EAC/CF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAQIoC,EAAA,CAAA,EAAA,CAAAo9I,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAcAx/I,EAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAMIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,EAAkB,EAAA,EAE1D,EAAA,EAGdF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAyB,CAAA,EAAA,CAAA,KAAA,CAAA,CAChB,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACkC,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CACH,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAC+CyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA2uG,UAAW,CAAA,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAC3G7+I,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAoC8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,kBAAA,CAAgB5U,CAAAA,EAAAA,EAAM,EAAA,CAE9DkC,EAAA,CAAA,EAAA,CAAAq9I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAIuC,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAU3Cx/I,CAAAA,EAAAA,EAAK,EAAA,EAEP,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAAu9I,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAA+B,CAAA,EAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAgBP,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAW5B3/I,CAAAA,EAAAA,EAAM,EAAA,EAKR,EAAA,GApJe+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,CAAA4vG,CAAAA,kBAAAA,CAAAt2G,EAAA,CAAA,CAA4DomG,EAAA,CAAA,KAAA,CAAA1/F,CAAAmnD,CAAAA,SAAA,CAIxDp0F,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA/R,CAAAA,YAAAA,EAAA+R,CAAA6vG,CAAAA,yBAAA,CAQE98I,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA8vG,CAAAA,mBAAA,CAA2B,CAAA,UAAA,CAAAC,CAAA,CAAA,CA6BhCh9I,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAApF,iBAAAoF,EAAAA,CAAAA,CAAAgwG,2BAAA,CAAA,CASqBj9I,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAA++F,CAAAA,YAAA,CACrBhsI,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAyuG,UAAA,CAAA,CAG8B17I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAA,CAAAyuG,UAAA,CAAA,CAEA17I,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAmnD,CAAAA,SAAA,CAS5Bp0F,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAuuI,EAAAthG,CAAAA,CAAAA,CAAA6tG,WAAA7tG,EAAAA,CAAAA,CAAAiwG,sBAAAjwG,EAAAA,CAAAA,CAAAvrB,OAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAeI1hB,EAAA,EAAA,CAAAC,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,MAAA,CAAA,QAAA,CACD,CAAA,kBAAA,CAAA,0BAAA,CAAA,CAC8B,UAAAzoG,CAAAA,CAAAA,CAAAkwG,GAAA,CAAA,CAWvBn9I,EAAA,CAAA,CAAA,CAAAd,CAAAA,EAAAA,CAAA,gBAAA+tC,CAAAA,CAAAA,CAAAmwG,iBAAA,CAAA,CAMvBp9I,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAqiG,YAAAriG,EAAAA,CAAAA,CAAAqiG,YAAA10E,CAAAA,QAAAA,EAAA3tB,CAAAqiG,CAAAA,YAAAA,CAAA10E,QAAA9/E,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAMAklB,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAowG,CAAAA,iBAAAA,EAAApwG,CAAAqwG,CAAAA,0BAAA,CASqCt9I,CAAAA,EAAAA,EAAAd,CAAAA,EAAAA,CAAA,cAAA+tC,CAAAA,CAAAA,CAAA4uG,UAAA,CAAA,CAAiC,eAAA5uG,CAAAA,CAAAA,CAAA6uG,WAAA,CAAA,CACjF97I,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAmwG,iBAAA,CAAA,CAgBAp9I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA4uG,CAAAA,UAAA,CAQA77I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA6uG,WAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAjoJ,EAAA,EAAA,CA2BMkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA+E,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACtDyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAg/D,CAAA,CAAA,CAAA,IAAAzxB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAy/F,eAAAz/F,CAAAA,CAAAA,CAAA3G,OAAA,CAAwB,CAAA,CAAA,CAAtDrpC,CAAAA,EAAAA,EAAgF,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAxB2pB,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,CAAAmnD,CAAAA,SAAA,CAAnDn0F,CAAAA,EAAAA,CAAA,KAAAgtC,CAAAA,CAAAA,CAAA3G,OAAAC,CAAAA,EAAA,EANbxpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIoC,EAAA,CAAA,CAAA,CAAAo+I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAGAxgJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAyE8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAkB5U,EAAA,EAAA,EAL3FgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,SAAA6mC,CAAAA,EAAAA,CAAA,CAAA6F,CAAAA,IAAAA,CAAAM,CAAAjG,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAiG,CAAAjG,CAAAA,cAAAA,CAAA3L,SAAA4R,CAAAA,CAAAA,CAAAjG,cAAA,EAAA,IAAA,CAAA,IAAAiG,CAAAA,CAAAA,CAAAjG,cAAA1L,CAAAA,WAAA,CAAA,CAAA,CAAyF,SAAA2L,CAAAA,EAAAA,CAAA,CAAAF,CAAAA,IAAAA,CAAAkG,CAAA6tG,CAAAA,WAAA,CAAA,CAAA,CAEzD96I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAA0I,iBAAA6S,EAAAA,CAAAA,CAAA7F,aAAA,CAAA,CAGVpnC,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,EAAA,CAAAC,IAAA+F,CAAAA,CAAAA,CAAAjG,cAAA,EAAA,IAAA,CAAA,IAAAiG,CAAAA,CAAAA,CAAAjG,cAAA1L,CAAAA,WAAA,CAAA,CAAA,CAAmDt7B,EAAA,EAAA,CAAA8R,EAAAm7B,CAAAA,CAAAA,CAAA/R,YAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAQrEn+B,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAIK8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADpBu2D,EAAAK,CAAAA,CAAAA,CAAA8tG,SAAAyC,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CACCz9I,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAA0rI,CAAAx6K,CAAAA,KAAA,EATT+5B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIoC,EAAA,CAAA,CAAA,CAAAu+I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAMJzgJ,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CATI4pB,EAAA,CAAA,QAAA,CAAA,CAAAgtC,CAAAA,CAAAiuG,qBAAA,CAAA,CAAiC,SAAAj0G,CAAAA,EAAAA,CAAA,CAAAw4B,CAAAA,GAAAA,CAAAxyB,CAAAkuG,CAAAA,eAAA,CAAA,CAAA,CAKTn7I,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAAw7E,CAAAA,QAAA,EARhC1rH,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAAw+I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAYJ1gJ,CAAAA,EAAAA,EATS+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAw7E,QAAAx7E,EAAAA,CAAAA,CAAAw7E,QAAA3tI,CAAAA,MAAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAgBDiiB,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAIK8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADpB4pB,EAAA,CAAA,SAAA,CAAAo7I,EAAA,CAAA,CAAA,CAAAx7E,IAAA,CAAA,CAAA5yB,CAAAvrB,CAAAA,OAAAA,CAAAk8H,CAAA,CAAA,CAAA,GAAA,EAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CACC59I,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAA+rI,CAAA76K,CAAAA,KAAA,EATT+5B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIoC,EAAA,CAAA,CAAA,CAAA2+I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAMJ7gJ,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CATI4pB,EAAA,CAAA,QAAA,CAAA,CAAAgtC,CAAAA,CAAAiuG,qBAAA,CAAA,CAAiC,SAAAj0G,CAAAA,EAAAA,CAAA,CAAAw4B,CAAAA,GAAAA,CAAAxyB,CAAAkuG,CAAAA,eAAA,CAAA,CAAA,CAKTn7I,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAAw7E,CAAAA,QAAA,EAP5BtpH,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA4+I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGK99I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAw7E,QAAAx7E,EAAAA,CAAAA,CAAAw7E,QAAA3tI,CAAAA,MAAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA+Y,EAAA,EAAA,CAWbkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA4gE,CAAA,CAAA,CAAA,IAAArzB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,IAAA4V,CAAAA,CAAA,CAA6B,CAAA,CAAA,CAAA,CAEsBrqC,EAAA,EAAA,GAA5D+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAA7hB,CAAAA,WAAAA,CAAA6hB,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,EAKRz/D,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADS2pB,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,CAAAyuG,CAAAA,UAAAA,CAAAn1G,EAAA,CAAA,CAAuBomG,EAAA,CAAA,KAAA,CAAA1/F,CAAAmnD,CAAAA,SAAA,EAEhCr3F,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAuD8U,EAAA,CAAA,CAAA,CAA0B5U,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,EAA1B+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAAjB,EAAA,CAAA,CAAA,CAAA,CAAAo8B,CAAAA,CAAAA,CAAAsK,QAAA,CAAA,EAa/Cx6C,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAIIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAs+I,CAAAA,CAAA,CAAA,CAAA,IAAA/wG,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA2uG,CAAAA,UAAAA,CAAW,YAAY,CAAC,CAAA,CAAA,CACjC7+I,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAoC8U,EAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAS5U,EAAA,EAAA,GAH7CiC,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,gBAAA+tC,CAAAA,CAAAA,CAAA4uG,UAAA,EAAA,CAAA,CAAA,SAAAoC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAApqJ,EAAA,EAAA,CAKJkJ,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAIIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAw+I,CAAA,CAAA,CAAA,IAAAjxG,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA2uG,UAAW,CAAA,aAAa,CAAC,CAAA,CAAA,CAAA,CAClC7+I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAoC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,YAAA,CAAU5U,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAHpD6oB,EAAA,CAAA,gBAAA,CAAA+tC,CAAA6uG,CAAAA,WAAA,EAUhB/+I,CAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,gCAAA,CAAA,EAAA,CAcJC,CAAAA,EAAAA,EAbQ+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,qBAAAgtC,CAAAA,CAAAA,CAAAoqG,mBAAA,CAAA,CAA2C,eAAApqG,CAAAA,CAAAA,CAAA8nG,aAAA,CAAA,CACZ,iBAAA9nG,CAAAA,CAAAA,CAAA8oG,eAAA,CAAA,CACI,iBAAA9oG,CAAAA,CAAAA,CAAAwnG,eAAA,CAAA,CACA,aAAAxnG,CAAAA,CAAAA,CAAAqnG,WAAA,CAAA,CACR,WAAArnG,CAAAA,CAAAA,CAAAmnD,SAAA,CAAA,CACJ,iBAAAnnD,CAAAA,CAAAA,CAAA8mG,eAAA,CAAA,CACY,oBAAA9mG,CAAAA,CAAAA,CAAAinG,kBAAA,CAAA,CACM,mBAAAjnG,CAAAA,CAAAA,CAAAgnG,iBAAA,CAAA,CACF,OAAAhnG,CAAAA,CAAAA,CAAAunG,KAAA,CAAA,CACxB,OAAAvnG,CAAAA,CAAAA,CAAAonG,KAAA,CAAA,CACA,WAAApnG,CAAAA,CAAAA,CAAA0nG,SAAA,CAAA,CACQ,gBAAA1nG,CAAAA,CAAAA,CAAAmqG,cAAA,EAAA,CAAA,CAAA,SAAA+G,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAG/BphJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,EAAA,CAKJC,CAAAA,EAAAA,EAJQ+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAA,CAAAA,CAAAirG,SAAA,CAAA,CAAuB,kBAAAjrG,CAAAA,CAAAA,CAAA8mC,gBAAA,CAAA,CACc,cAAA9mC,CAAAA,CAAAA,CAAAi/B,YAAA,CAAA,CACR,eAAAj/B,CAAAA,CAAAA,CAAA8+B,aAAA,EAAA,CAAA,CAAA,SAAAqyE,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAGrCrhJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EAD8B+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,eAAAgtC,CAAAA,CAAAA,CAAAmH,aAAA,CAAA,CAA+B,WAAAnH,CAAAA,CAAAA,CAAAmnD,SAAA,EAAA,CAAA,CAAA,SAAAiqD,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAxqJ,EAAA,EAAA,CAYjEkJ,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAOIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA4+I,CAAA,CAAA,CAAA,IAAArxG,CAAAA,CAAAzF,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAI,CAAA,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,GANjCgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAA,CAAAA,CAAAyoG,QAAA,CAAA,CAAqB,MAAA,CAAA,UAAA,CACF,CAAA,SAAA,CAAA,SAAA,CAAA,CACE,MAAA,CAAA,QAAA,CACJ,CAAA,kBAAA,CAAA,yCAAA,CAAA,CAC6C,UAAAzoG,CAAAA,CAAAA,CAAA0uG,YAAA,EAAA,CAAA,CAAA,SAAA4C,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA1qJ,EAAA,EAAA,CAxIlFkJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAsB,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACmByC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA++D,CAAA,CAAA,CAAA,IAAAxxB,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA8uG,CAAAA,QAAAA,CAAAz0G,CAAA,CAAgB,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,EAChEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA4D,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACX,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACKyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA++D,CAAAA,CAAA,CAAA,CAAA,IAAAxxB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA8uG,QAAA,EAAU,CAAA,CAAA,CAAE9+I,CAAAA,EAAAA,EACnEF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAsC,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACN,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACgByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA++D,CAAAA,CAAA,CAAA,CAAA,IAAAxxB,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+uG,CAAAA,gBAAAA,EAAkB,CAAA,CAAA,CAAA,CAA/D/+I,EAAA,EAAA,CACAF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAAq/I,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAI4D,CAAA,EAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAML,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAAp/I,CAAAA,EAAA,CA4B3DrC,CAAAA,EAAAA,EACAkC,CAAAA,EAAAA,CAAA,EAAAw/I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAOJ1hJ,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAuC,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACR8U,EAAA,CAAA,EAAA,CAAkB5U,CAAAA,EAAAA,EAC7CkC,CAAAA,EAAAA,CAAA,EAAAy/I,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAqD,CAAA,EAAA,CAAAC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAIrD9hJ,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAsC,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACF8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAe5U,EAAA,EAAA,EAC7C,EAAA,EAGdF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyB,EAAA,CAAA,KAAA,CAChB,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACkC,CAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CACH,CAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAC+CyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA++D,CAAA,CAAA,CAAA,IAAAxxB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA2uG,UAAW,CAAA,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAC3G7+I,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAoC8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,kBAAA,CAAgB5U,CAAAA,EAAAA,EAAM,EAAA,CAE9DkC,EAAA,CAAA,EAAA,CAAA2/I,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAIuC,EAAAC,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAU3C9hJ,CAAAA,EAAAA,EAAK,EAAA,EAEP,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAA6/I,CAAAA,IAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAA+B,CAAA,EAAA,CAAAC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAgBP,EAAAC,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAU5BjiJ,CAAAA,EAAAA,EAAM,EAAA,EAGdF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMIoC,EAAA,CAAA,EAAA,CAAAggJ,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAaApiJ,EAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAMIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA++D,CAAA,CAAA,CAAA,IAAAxxB,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,EAAkB,EAAA,EAE1D,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAmiJ,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA/oK,EAAA,EAAA,CA9ImB2pB,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAA4vG,mBAAAt2G,EAAA,CAAA,CAA4DomG,EAAA,CAAA,KAAA,CAAA1/F,CAAAmnD,CAAAA,SAAA,CAIxDp0F,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA/R,CAAAA,YAAAA,EAAA+R,CAAA6vG,CAAAA,yBAAA,CAQE98I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA8vG,mBAAA,CAAA,CAA2B,UAAAsC,CAAAA,CAAA,CA6BhCr/I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAApF,CAAAA,iBAAAA,EAAAoF,CAAAgwG,CAAAA,2BAAA,CASqBj9I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAm7B,CAAAA,CAAAA,CAAA++F,YAAA,CAAA,CACrBhsI,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAyuG,CAAAA,UAAA,CAG8B17I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAyuG,CAAAA,UAAA,CAEA17I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAm7B,CAAAA,CAAAA,CAAAmnD,SAAA,CAAA,CAQAp0F,EAAA,CAAA,CAAA,CAAAd,CAAAA,EAAAA,CAAA,gBAAA+tC,CAAAA,CAAAA,CAAAmwG,iBAAA,CAAA,CAMvBp9I,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAqiG,YAAAriG,EAAAA,CAAAA,CAAAqiG,YAAA10E,CAAAA,QAAAA,EAAA3tB,CAAAqiG,CAAAA,YAAAA,CAAA10E,QAAA9/E,CAAAA,MAAAA,CAAA,CAAA,CAAA,CAOAklB,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAowG,CAAAA,iBAAAA,EAAApwG,CAAAqwG,CAAAA,0BAAA,CAQqCt9I,CAAAA,EAAAA,EAAAd,CAAAA,EAAAA,CAAA,cAAA+tC,CAAAA,CAAAA,CAAA4uG,UAAA,CAAA,CAAiC,eAAA5uG,CAAAA,CAAAA,CAAA6uG,WAAA,CAAA,CACjF97I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAmwG,CAAAA,iBAAA,CAgBAp9I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA4uG,UAAA,CAAA,CAOA77I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA6uG,CAAAA,WAAA,CAYd97I,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAuuI,EAAAthG,CAAAA,CAAAA,CAAA6tG,WAAA7tG,EAAAA,CAAAA,CAAAiwG,sBAAAjwG,EAAAA,CAAAA,CAAAvrB,OAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAcI1hB,EAAA,EAAA,CAAAC,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,MAAA,CAAA,QAAA,CACD,CAAA,kBAAA,CAAA,0BAAA,CAAA,CAC8B,UAAAzoG,CAAAA,CAAAA,CAAAkwG,GAAA,EAAA,CAAA,CCvQnE,IAAamC,IAAAA,CAAAA,CAA0B,IAAA,CAAjC,IAAOA,CAAAA,CAAP,MAAOA,CAA0B,CA8EnCttK,WAAAA,CACW86B,CACyBC,CAAAA,CAAAA,CACxB8oF,CACArjD,CAAAA,CAAAA,CACA12C,CACAuR,CAAAA,CAAAA,CACA2pB,EACAhqB,CAAAA,EAAAA,CACAy7B,EACAzV,CAAAA,EAAAA,CACAnU,EACAyN,CAAAA,EAAAA,CACAsc,EACA5pB,CAAAA,EAAAA,CACAyxE,EACA8uD,CAAAA,EAAAA,CACAz9E,EACAR,CAAAA,EAAAA,CACAu/C,EACAq1B,CAAAA,EAAAA,CACA19H,EAAsC,CAAA,CApBvC,IAAA1L,CAAAA,SAAAA,CAAAA,CACyB,CAAA,IAAA,CAAAC,IAAAA,CAAAA,CAAAA,CACxB,IAAA8oF,CAAAA,sBAAAA,CAAAA,CACA,CAAA,IAAA,CAAArjD,QAAAA,CAAAA,CAAAA,CACA,IAAA12C,CAAAA,UAAAA,CAAAA,CACA,CAAA,IAAA,CAAAuR,qBAAAA,CAAAA,CAAAA,CACA,IAAA2pB,CAAAA,iBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAhqB,IAAAA,CAAAA,EAAAA,CACA,IAAAy7B,CAAAA,gBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAzV,MAAAA,CAAAA,EAAAA,CACA,IAAAnU,CAAAA,aAAAA,CAAAA,EACA,CAAA,IAAA,CAAAyN,aAAAA,CAAAA,EAAAA,CACA,IAAAsc,CAAAA,kBAAAA,CAAAA,EACA,CAAA,IAAA,CAAA5pB,mBAAAA,CAAAA,EAAAA,CACA,IAAAyxE,CAAAA,WAAAA,CAAAA,EACA,CAAA,IAAA,CAAA8uD,mBAAAA,CAAAA,EAAAA,CACA,IAAAz9E,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAR,eAAAA,CAAAA,EAAAA,CACA,IAAAu/C,CAAAA,UAAAA,CAAAA,EACA,CAAA,IAAA,CAAAq1B,2BAAAA,EACA,CAAA,IAAA,CAAA19H,kBAAAA,CAAAA,EAAAA,CA/FZ,IAAAgnI,CAAAA,iBAAAA,CAAyB,CAMzB,CAAA,CAAA,IAAA,CAAA9D,UAAkB,CAAA,IAAA,CAKlB,IAAAjzB,CAAAA,QAAAA,CAAgB,EAAA,CAChB,IAAA0yB,CAAAA,eAAAA,CAA2B,CAK3B,CAAA,CAAA,IAAA,CAAA5+E,cAAyB,CAAA,kBAAA,CACzB,IAAAC,CAAAA,gBAAAA,CAA2B,gBAC3B,CAAA,IAAA,CAAAygF,2BAAuC,CAAA,CAAA,CAAA,CACvC,IAAAp1G,CAAAA,iBAAAA,CAA6B,CAC7B,CAAA,CAAA,IAAA,CAAAzc,WAAuB,CAAA,CAAA,CAAA,CAEvB,IAAAgP,CAAAA,iBAAAA,CAA6B,CAC7B,CAAA,CAAA,IAAA,CAAA8O,WAAmB,CAAA,IAAA,CACnB,IAAAhO,CAAAA,YAAAA,CAAoB,IAIpB,CAAA,IAAA,CAAAukH,iBAAyB,CAAA,CAAA,CAAA,CAEzB,IAAArC,CAAAA,iBAAAA,CAA6B,CAQ7B,CAAA,CAAA,IAAA,CAAAF,sBAAkC,CAAA,CAAA,CAAA,CAIlC,IAAAhF,CAAAA,SAAAA,CAAiB,EAAA,CAQjB,IAAAtjG,CAAAA,SAAAA,CAAmB,EAAA,CAQnB,IAAAmhG,CAAAA,eAAAA,CAA2B,CAG3B,CAAA,CAAA,IAAA,CAAAtB,eAA2B,CAAA,CAAA,CAAA,CAC3B,IAAAH,CAAAA,WAAAA,CAAuB,CAMvB,CAAA,CAAA,IAAA,CAAAoL,UAAkB,CAAA,EAIlB,CAAA,IAAA,CAAAhK,QAAoB,CAAA,CAAA,EAuBjB,CACHjoI,QAAAA,EAAQ,CACJ,IAAA,CAAKkyI,YAAY,EAAA,CACjB,IAAKC,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAK7nI,UAAa,CAAA,IAAA,CAAKuU,aAAcvT,CAAAA,eAAAA,EACrC,CAAA,IAAA,CAAK2I,OAAU,CAAA,IAAA,CAAK4K,aAAc5K,CAAAA,OAAAA,EAClC,CAAA,IAAA,CAAKmwB,QAAW,CAAA,IAAA,CAAKhzB,aAAc4xB,CAAAA,aAAAA,CACnC,IAAKovG,CAAAA,MAAAA,CAAS,IAAKp3G,CAAAA,gBAAAA,CAAiBlV,4BAA6Bl7B,CAAAA,SAAAA,CAAW+6B,CAAuB,EAAA,CAC3FA,CACA,GAAA,IAAA,CAAKhI,WAAc,CAAA,IAAA,CAAKqd,gBAAiBhX,CAAAA,qBAAAA,CAAsB,IAAKC,CAAAA,IAAI,CAEhF,EAAA,CAAC,CACD,CAAA,IAAA,CAAKouH,cAAc,EAAA,CACnB,IAAKP,CAAAA,mBAAAA,CAAoB/lG,kBAAmB,CAAA,IAAA,CAAK9nB,KAAK5a,MAAQ,CAAA,IAAA,CAAK4a,IAAK6lB,CAAAA,QAAQ,CAAGl/C,EAAAA,SAAAA,CAAWlxB,CAAY,EAAA,CAClGA,CACA,GAAA,IAAA,CAAK4sK,eAAkB5sK,CAAAA,CAAAA,EAAK4sK,eAEpC,EAAA,CAAC,CACG,CAAA,IAAA,CAAKsD,mBACL,CAAA,IAAA,CAAKkI,mBAAoBrgC,CAAAA,qBAAAA,CAAsB,IAAKxtF,CAAAA,IAAAA,CAAK5a,MAAQ,CAAA,IAAA,CAAK4a,IAAK6lB,CAAAA,QAAQ,CAAGl/C,EAAAA,SAAAA,CAAWlxB,CAAO,EAAA,CAChGA,CACA,GAAA,IAAA,CAAK44K,UAAa54K,CAAAA,CAAAA,CAAI44K,UACtB,CAAA,IAAA,CAAKvL,KAAQrtK,CAAAA,CAAAA,CAAIqtK,KACjB,CAAA,IAAA,CAAKH,KAAQltK,CAAAA,CAAAA,CAAIktK,KAEZ,CAAA,CAAA,CAAC,IAAKG,CAAAA,KAAAA,EAAS,IAAKA,CAAAA,KAAAA,GAAU,MAC9B,IAAA,CAAC,IAAKH,CAAAA,KAAAA,EAAS,IAAKA,CAAAA,KAAAA,GAAU,MAC9B,CAAA,GAAA,CAAC,IAAKM,CAAAA,SAAAA,EAAa,IAAKA,CAAAA,SAAAA,EAAa,EAAM,EAAA,IAAA,CAAKA,SAAa,EAAA,MAAA,CAAA,CAE9D,IAAKoB,CAAAA,eAAAA,CAAkB,CAEvB,CAAA,CAAA,IAAA,CAAKA,eAAkB,CAAA,CAAA,CAAA,CAEvB,CAAC,IAAA,CAAKgK,UAAc,EAAA,IAAA,CAAKA,UAAe,GAAA,KAAA,CACxC,IAAKhL,CAAAA,aAAAA,CAAgB,CAErB,CAAA,EAAA,IAAA,CAAKA,aAAgB,CAAA,CAAA,CAAA,CACrB,IAAKiL,CAAAA,uBAAAA,CAAwB,IAAKD,CAAAA,UAAU,CAG3C,CAAA,CAAA,CAAA,CAAC,IAAKvL,CAAAA,KAAAA,EAAS,IAAKA,CAAAA,KAAAA,GAAU,MAAU,EAAA,IAAA,CAAKA,KAAU,GAAA,GAAA,IACvD,CAAC,IAAA,CAAKH,KAAS,EAAA,IAAA,CAAKA,KAAU,GAAA,MAAA,EAAU,IAAKA,CAAAA,KAAAA,GAAU,GACxD,CAAA,EAAA,IAAA,CAAKM,SACL,EAAA,IAAA,CAAKA,SAAa,EAAA,MAAA,CAElB,IAAKF,CAAAA,eAAAA,CAAkB,CAEvB,CAAA,CAAA,IAAA,CAAKD,KACL,EAAA,IAAA,CAAKA,KAAU,GAAA,MAAA,EACf,IAAKA,CAAAA,KAAAA,GAAU,GACd,GAAA,CAAC,IAAKH,CAAAA,KAAAA,EAAS,IAAKA,CAAAA,KAAAA,GAAU,QAAU,IAAKA,CAAAA,KAAAA,GAAU,GACvD,CAAA,GAAA,CAAC,IAAKM,CAAAA,SAAAA,EAAa,IAAKA,CAAAA,SAAAA,EAAa,EAAM,EAAA,IAAA,CAAKA,SAAa,EAAA,MAAA,CAAA,GAE9D,IAAKL,CAAAA,WAAAA,CAAc,CAG/B,CAAA,CAAA,EAAA,CAAC,CAED,EAAA,IAAA,CAAKA,WAAc,CAAA,CAAA,CAAA,CACnB,IAAKyB,CAAAA,eAAAA,CAAkB,CACvB,CAAA,CAAA,IAAA,CAAKhB,aAAgB,CAAA,CAAA,CAAA,CACrB,IAAKN,CAAAA,eAAAA,CAAkB,CACvB,CAAA,CAAA,IAAA,CAAKH,WAAc,CAAA,CAAA,CAAA,CAAA,CAEvB,IAAK2L,CAAAA,eAAAA,EACL,CAAA,IAAA,CAAK51G,sBAAsB,EAAA,CAC3B,IAAK61G,CAAAA,gBAAAA,EACL,CAAA,IAAA,CAAKxK,QAAW,CAAA,CAAC,IAAKQ,CAAAA,0BAAAA,CAA2BttH,SAAS,GAC9D,CACAvqB,eAAAA,EAAe,CACP,IAAA,CAAK88I,eAAiB,CAAA,IAAA,CAAKgF,qBAAqB,EAAA,CAC/C,IAAKC,CAAAA,gBAAAA,GAEd,CACAN,cAAc,EAAA,CACV,IAAIhyI,CAAAA,CAAgB,IAAKT,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACpE,IAAKkjF,CAAAA,YAAAA,CAAe,IAAK5jF,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAClE,IAAK0rI,CAAAA,mBAAAA,CAAsBjvI,CAASivI,CAAAA,mBAAAA,CACpC,IAAK1F,CAAAA,mBAAAA,CAAsBvpI,CAASupI,CAAAA,mBAAAA,CACpC,IAAKx2B,CAAAA,UAAAA,CAAWiB,kBAA4Bh0G,CAAAA,CAAAA,CAASuyI,wBAAwB,CAAA,CAAEhoJ,SAAWgoJ,CAAAA,CAAAA,EAA4B,CAC9GA,CAAAA,EAA4B,CAAC,IAAA,CAAKrzI,IAAKkR,CAAAA,eAAAA,GACvC,IAAK++H,CAAAA,2BAAAA,CAA8B,CAE3C,CAAA,EAAA,CAAC,CACD,CAAA,IAAIxhD,CAA+B,CAAA,IAAA,CAAKnvE,aAAclJ,CAAAA,4BAAAA,CAClD,IAAKsO,CAAAA,IAAAA,CAAKvQ,SACV,CAAA,IAAA,CAAK9T,qBAAsBwL,CAAAA,iBAAAA,EAAoB6iF,CAAAA,gCAAgC,CAE/E4kD,CAAAA,CAAAA,CAA6B,IAAKjzI,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CAAGynI,0BAChFA,CAAAA,CAAAA,CAA6BA,CAA4BpgK,EAAAA,KAAAA,CAAM,GAAG,CAAA,CAC9Du7G,GAA2BA,CAAwB/gF,CAAAA,OAAAA,CAAQ,IAAK68B,CAAAA,QAAQ,CAAI,CAAA,CAAA,CAAA,CAC5E,IAAK2lG,CAAAA,sBAAAA,CAAyB,CACvBoD,CAAAA,CAAAA,CAAAA,EAA8BA,CAA2BxlK,CAAAA,MAAAA,CAAS,CACzEwlK,EAAAA,CAAAA,EAA4B3vH,OAASmzE,CAAAA,CAAAA,EAAc,CAC3C,IAAI/vF,MAAO+vF,CAAAA,CAAAA,CAAO,GAAG,CAAA,CAAEn4D,IAAK,CAAA,IAAA,CAAKja,IAAK5a,CAAAA,MAAM,CAC5C,GAAA,IAAA,CAAKomI,sBAAyB,CAAA,CAAA,CAAA,EAEtC,CAAC,EAET,CACAxQ,eAAAA,CAAgBpmG,CAAY,CAAA,CACxB,IAAKvuB,CAAAA,UAAAA,CAAauuB,EACtB,CACA01G,gBAAgB,EAAA,CACZ,IAAKa,CAAAA,kBAAAA,CAAqB,IAAK9kI,CAAAA,WACnC,CACA4nI,YAAAA,EAAY,CACR,IAAA,CAAKY,QAAW,CAAA,IAAA,CAAKxzI,IAAKwzI,CAAAA,QAAAA,CAC1B,IAAKC,CAAAA,WAAAA,CAAc,IAAKzzI,CAAAA,IAAAA,CAAKyzI,WAC7B,CAAA,IAAA,CAAK3D,kBAAqB,CAAA,IAAA,CAAK9vI,IAAK8vI,CAAAA,kBAAAA,CACpC,IAAKnB,CAAAA,UAAAA,CAAa,IAAK3uI,CAAAA,IAAAA,CAAK2uI,UAC5B,CAAA,IAAA,CAAKZ,WAAc,CAAA,IAAA,CAAK/tI,IAAK+tI,CAAAA,WAAAA,CAC7B,IAAK9O,CAAAA,YAAAA,CAAe,IAAKj/H,CAAAA,IAAAA,CAAKi/H,YAC9B,CAAA,IAAA,CAAKz0F,QAAW,CAAA,IAAA,CAAKxqC,IAAKwqC,CAAAA,QAAAA,CAC1B,IAAK7lB,CAAAA,IAAAA,CAAO,IAAK3kB,CAAAA,IAAAA,CAAK2kB,IACtB,CAAA,IAAA,CAAKw6C,YAAe,CAAA,IAAA,CAAKn/D,IAAKm/D,CAAAA,YAAAA,CAC9B,IAAK6H,CAAAA,gBAAAA,CAAmB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAClC,CAAA,IAAA,CAAK5yD,SAAY,CAAA,IAAA,CAAKpU,IAAKoU,CAAAA,SAAAA,CAC3B,IAAKsnG,CAAAA,QAAAA,CAAW,IAAK17G,CAAAA,IAAAA,CAAK07G,QAC1B,CAAA,IAAA,CAAK0yB,eAAkB,CAAA,IAAA,CAAKpuI,IAAKouI,CAAAA,eAAAA,CACjC,IAAKtzG,CAAAA,iBAAAA,CAAoB,IAAK96B,CAAAA,IAAAA,CAAK86B,iBACnC,CAAA,IAAA,CAAKvB,OAAU,CAAA,IAAA,CAAKv5B,IAAKu5B,CAAAA,OAAAA,CACzB,IAAKm5G,CAAAA,iBAAAA,CAAoB,KAAK1yI,IAAK0yI,CAAAA,iBAAAA,CACnC,IAAKgB,CAAAA,aAAAA,CAAgB,IAAK1zI,CAAAA,IAAAA,CAAK0zI,aAC/B,CAAA,IAAA,CAAKxyG,YAAe,CAAA,IAAA,CAAKlhC,IAAKkhC,CAAAA,YAAAA,CAC9B,IAAKiB,CAAAA,YAAAA,CAAe,IAAKniC,CAAAA,IAAAA,CAAKmiC,YAC9B,CAAA,IAAA,CAAKjtB,WAAc,CAAA,IAAA,CAAKlV,IAAKkV,CAAAA,WAAAA,CAC7B,IAAKk7H,CAAAA,GAAAA,CAAM,IAAKpwI,CAAAA,IAAAA,CAAKowI,GACrB,CAAA,IAAA,CAAK/oD,SAAY,CAAA,IAAA,CAAK1iE,IAAKpsD,CAAAA,IAAAA,CAC3B,IAAKymG,CAAAA,aAAAA,CAAgB,IAAKr6C,CAAAA,IAAAA,CAAKq6C,aAC/B,CAAA,IAAA,CAAKyzE,iBAAoB,CAAA,IAAA,CAAKzyI,IAAKyyI,CAAAA,iBAAAA,CACnC,IAAK1C,CAAAA,yBAAAA,CAA4B,IAAK/vI,CAAAA,IAAAA,CAAK+vI,yBAC3C,CAAA,IAAA,CAAK5B,qBAAwB,CAAA,IAAA,CAAKnuI,IAAKmuI,CAAAA,qBAAAA,CACvC,IAAK9zG,CAAAA,aAAAA,CAAgB,IAAKr6B,CAAAA,IAAAA,CAAKq6B,cACnC,CAEA4sC,UAAWtiD,CAAAA,CAAAA,CAAW8lE,CAAe,CAAA,CAC7B,IAAKzqF,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,sCAAA,EAC3C,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,kCACxB,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,yBAA2B,CAAA,IAAA,CAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAKpU,IAAQ,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EAAoB,kCAC3C,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,uBAAyB,CAAA,WAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKuJ,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,YACzD,CAAA,yBAAA,CAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,SACxC,CAAA,CAAA,CAEL,IAAK46H,CAAAA,QAAAA,EACL,CAAA,IAAIj0E,CAAY,CAAA,IAAIngB,KACpBmgB,CAAUp2C,CAAAA,IAAAA,CAAOA,CACjBo2C,CAAAA,CAAAA,CAAUpmD,OAAU,CAAA,IAAA,CAAKA,OACzBomD,CAAAA,CAAAA,CAAUoE,YAAe,CAAA,IAAA,CAAKA,YAC9BpE,CAAAA,CAAAA,CAAU75B,YAAe,CAAA,IAAA,CAAKA,YAC9B65B,CAAAA,CAAAA,CAAUjoG,IAAO,CAAA,GAAA,CACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,YAAe2vC,CAAAA,CAAAA,CACzB1vB,CAAUhgB,CAAAA,aAAAA,CAAgB,CAC1BggB,CAAAA,CAAAA,CAAAA,CAAUiM,gBAAmB,CAAA,IAAA,CAAKA,gBAClCjM,CAAAA,CAAAA,CAAU54B,YAAe,CAAA,IAAA,CAAKA,YAC9B44B,CAAAA,CAAAA,CAAU5f,SAAY,CAAA,IAAA,CAAKjmC,WAC3B6lD,CAAAA,CAAAA,CAAUoxB,6BAAgC,CAAA,CAAA,CAAA,CAC1CpxB,CAAUiE,CAAAA,aAAAA,CAAgB,IAAKA,CAAAA,aAAAA,CAC/BjE,CAAUrf,CAAAA,iBAAAA,CAAoB,CAC9Bqf,CAAAA,CAAAA,CAAAA,CAAUrrB,cAAiB,CAAA,IAAA,CAAKzlB,iBAAkBm1C,CAAAA,gBAAAA,EAClD,CAAA,IAAA,CAAKn1C,iBAAkBg9C,CAAAA,UAAAA,CAAWlM,CAAS,EAC/C,CAEAz9B,sBAAAA,EAAsB,CAClB,IAAMnB,CAAc,CAAA,IAAA,CAAK77B,qBAAsBkX,CAAAA,oBAAAA,EACzCgV,CAAAA,CAAAA,CAAqC,IAAKjN,CAAAA,aAAAA,CAAclJ,4BAC1D,CAAA,IAAA,CAAKjC,SACL+nB,CAAAA,CAAAA,CAAYG,2BAA2B,CAAA,CAE3C,IAAKmB,CAAAA,aAAAA,CAAgB,IAAK5B,CAAAA,kBAAAA,CAAmB1Q,qBAAsB7/B,CAAAA,SAAAA,CAAU,IAAK,CAC9E,IAAK4nJ,CAAAA,eAAAA,GACT,CAAC,CACG1mH,CAAAA,CAAAA,EACA,IAAKqP,CAAAA,kBAAAA,CAAmBvQ,mBAAoBhgC,CAAAA,SAAAA,CAAU,IAAK,CACvD,IAAK4nJ,CAAAA,eAAAA,GACT,CAAC,EAET,CAiBAA,eAAe,EAAA,CACX,IAAI/kH,CAAAA,CAAe,IAAK0N,CAAAA,kBAAAA,CAAmBlN,mBAAoB,CAAA,IAAA,CAAKhK,IAAK5a,CAAAA,MAAM,CAC3E+0B,CAAAA,CAAAA,CAAqB,IAAKx+B,CAAAA,qBAAAA,CAAsBkX,oBAAoB,EAAA,CAAGsnB,kBACvE3Q,CAAAA,CAAAA,GACA,IAAKA,CAAAA,YAAAA,CAAeA,CAAaf,CAAAA,MAAAA,CACjC,KAAKzI,IAAKwJ,CAAAA,YAAAA,CAAeA,CAAaf,CAAAA,MAAAA,CACtC,IAAKzI,CAAAA,IAAAA,CAAK0I,iBAAoBc,CAAAA,CAAAA,CAAad,iBACvCyR,CAAAA,CAAAA,GACA,IAAK7E,CAAAA,cAAAA,CAAiB,IAAK4B,CAAAA,kBAAAA,CAAmB3N,sBAAuBC,CAAAA,CAAY,CAG7F,CAAA,EAAA,CACA0kH,YAAY,EAAA,CACR,IAAI9gL,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CACvD03D,CAAkB,CAAA,IAAA,CAAK17D,qBAAsBwnC,CAAAA,4BAAAA,EAE7C/1E,CAAAA,CAAAA,CAAAA,CAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAC9C1lG,EAAAA,CAAAA,CAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAC9C1lG,EAAAA,CAAAA,CAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAE9C,IAAA,IAAA,CAAKjI,cAAiB,CAAA,mBAAA,CACtB,IAAKC,CAAAA,gBAAAA,CAAmB,qBAE5B,CAAA,CAAA,IAAA,CAAKm/E,YAAe78K,CAAAA,CAAAA,CAAO2yC,QAASivI,CAAAA,YAAAA,CACpC,IAAK/L,CAAAA,SAAAA,CAAY71K,CAAOq3K,CAAAA,qBAAAA,CAAsBwK,SAC9C,CAAA,IAAA,CAAK5N,qBAAwBhqE,CAAAA,CAAAA,CAAgBa,wBAC7C,CAAA,IAAA,CAAK0zE,0BAA6Bv0E,CAAAA,CAAAA,CAAgB63E,4BAC9C,CAAA,IAAA,CAAK7N,qBAAyB,EAAA,IAAA,CAAKuK,0BACnC,GAAA,IAAA,CAAKuD,kBAAqB,CAAA,IAAA,CAAK/+E,sBAAuB/uB,CAAAA,yBAAAA,CAA0B16C,SAAWyoJ,CAAAA,CAAAA,EAAsB,CACzGA,CAAAA,EACA,IAAKC,CAAAA,gBAAAA,GAEb,CAAC,CAED,CAAA,CAAA,IAAA,CAAKhO,qBAAyB,EAAA,IAAA,CAAKuK,0BACnC,GAAA,IAAA,CAAK0D,4BAA+B,CAAA,IAAA,CAAKl/E,sBAAuB7uB,CAAAA,2BAAAA,CAA4B56C,SAAWyoJ,CAAAA,CAAAA,EAAsB,CACrHA,CAAAA,EACA,IAAKC,CAAAA,gBAAAA,GAEb,CAAC,CAET,EAAA,CAEAA,gBAAgB,EAAA,CACZ,IAAKE,CAAAA,iBAAAA,CAAkB,IAAKn/E,CAAAA,sBAAAA,CAAuBvtB,2BAA4B,CAAA,IAAA,CAAK7iB,IAAK5a,CAAAA,MAAM,CAAC,EACpG,CAEAmqI,iBAAAA,CAAkBC,CAA2B,CAAA,CACzC,IAAKC,CAAAA,iBAAAA,CAAoBD,CACrB,CAAA,IAAA,CAAKC,iBAAqB1+H,EAAAA,IAAAA,EAC1B,IAAK46H,CAAAA,iBAAAA,CAAoB,CACzB,CAAA,CAAA,IAAA,CAAKzoG,SAAY,CAAA,IAAA,CAAKusG,iBAAkBvsG,CAAAA,SAAAA,CACxC,IAAKR,CAAAA,aAAAA,CAAgB,IAAK0tB,CAAAA,sBAAAA,CAAuBntB,wBAAyB,CAAA,IAAA,CAAKC,SAAS,CAAA,EAExF,IAAKyoG,CAAAA,iBAAAA,CAAoB,CAEjC,EAAA,CAEAtB,QAASz0G,CAAAA,CAAAA,CAAc,IAAI,CAAA,CACnBA,CACI,EAAA,IAAA,CAAKv6B,IAAQ,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EAAoB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,sCAAA,EAC1E,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,kCACxB,CAAA,uBAAA,CAAyB,gCACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,yBAA2B,CAAA,IAAA,CAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAKpU,IAAQ,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EAAoB,kCAC3C,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,uBAAyB,CAAA,gCAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKuJ,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,YACzD,CAAA,yBAAA,CAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,SACxC,CAAA,CAAA,CAED,IAAK25H,CAAAA,WAAAA,EACL,IAAKtoG,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,eAC3B,CAAA,sBAAA,CAAwB,oBACxB,CAAA,uBAAA,CAAyB,eACzB,CAAA,yBAAA,CAA2B,IAAKisE,CAAAA,SAAAA,CAChC,yBAA2B,CAAA,UAAA,CAC3B,wBAA0B,CAAA,+CAAA,CAC1B,sBAAwB,CAAA,8BAAA,CAC3B,CAGL,EAAA,IAAA,CAAK5hD,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,mBAAA,CACxB,uBAAyB,CAAA,OAAA,CACzB,yBAA2B,CAAA,IAAA,CAAK+jD,YAChC,CAAA,yBAAA,CAA2B,OAC3B,CAAA,wBAAA,CAA0B,kBAC1B,CAAA,sBAAA,CAAwB,iBAC3B,CAELj9D,CAAAA,QAAAA,CAASmiD,oBAAqB,CAAA,MAAM,CAAE,CAAA,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUnY,MAAO,CAAA,uBAAuB,CACjF4rC,CAAAA,CAAAA,EAAUA,CAAO9yB,CAAAA,wBAAAA,EACjB,CAAA,IAAA,CAAK4sI,oCAAoC,EAAA,CACzC,IAAKt0I,CAAAA,SAAAA,CAAUU,KAAK,GACxB,CAEA4zI,oCAAAA,EAAoC,CAChC,IAAIl1H,CAAkB,CAAA,IAAA,CAAK2pE,sBAAuB1pE,CAAAA,sBAAAA,EAClD,CAAA,GAAID,CAAmBA,EAAAA,CAAAA,CAAgBkyE,KAC/B,EAAA,IAAA,CAAKryB,aAAiB,EAAA,SAAA,EAAa,IAAKA,CAAAA,aAAAA,EAAiB,QAAU,CAAA,CACnE,IAAIx8D,CAAAA,CAAQ,WACRiL,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAA,CAAI,CAC/BgL,CAAAA,EAAAA,MAAAA,CAAO8mI,OAAQC,CAAAA,SAAAA,CAAU9mI,QAASC,CAAAA,IAAAA,CAAM,EAAID,CAAAA,QAAAA,CAASC,IAAKqD,CAAAA,MAAAA,CAAO,CAAGtD,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAA,CAAI,CAAC,CAAC,EAE7G,CAER,CAEA4wI,qBAAAA,EAAqB,CACjB,IAAIoB,CAAe,CAAA,IAAA,CAAKl0I,qBAAsBgE,CAAAA,mBAAAA,EAAsBI,CAAAA,QAAAA,CAAS+vI,eACzE/pG,CAAAA,CAAAA,CAAU,IAAK37C,CAAAA,UAAAA,CAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,qBAAqB,CAAA,CAClF,IAAS7wK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAIg4E,CAAQ38D,CAAAA,MAAAA,CAAQrb,CAChCg4E,EAAAA,CAAAA,CAAAA,CAAQh4E,CAAC,CAAA,CAAEq1C,KAAM2sI,CAAAA,OAAAA,CAAUF,CAE/B,CAAA,IAAIG,CAAgB,CAAA,IAAA,CAAKr0I,qBAAsBgE,CAAAA,mBAAAA,EAAsBI,CAAAA,QAAAA,CAASkwI,eAC1EC,CAAAA,CAAAA,CAAW,IAAK9lJ,CAAAA,UAAAA,CAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,qBAAqB,CAAA,CACnF,IAAS7wK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAImiL,CAAS9mK,CAAAA,MAAAA,CAAQrb,CACjCmiL,EAAAA,CAAAA,CAAAA,CAASniL,CAAC,CAAA,CAAEq1C,MAAM2sI,OAAUC,CAAAA,EAEpC,CAEAtB,gBAAAA,EAAgB,CACZ,IAAImB,CAAe,CAAA,IAAA,CAAKl0I,qBAAsBgE,CAAAA,mBAAAA,EAAsBI,CAAAA,QAAAA,CAASowI,gBACzEpqG,CAAAA,CAAAA,CAAU,IAAK37C,CAAAA,UAAAA,CAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,qBAAqB,CAAA,CAClF,IAAS7wK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAIg4E,CAAQ38D,CAAAA,MAAAA,CAAQrb,CAChCg4E,EAAAA,CAAAA,CAAAA,CAAQh4E,CAAC,CAAA,CAAEq1C,KAAM2sI,CAAAA,OAAAA,CAAUF,EAEnC,CAEA55G,eAAgBjW,CAAAA,CAAAA,CAAW4V,CAAW,CAAA,CAElC,GADAA,CAAAA,CAAO9yB,wBAAwB,EAAA,CAC3B,IAAKxH,CAAAA,IAAAA,CAAKkR,eAEN,CAAA,IAAA,CAAKnR,IACL,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EACV,IAAK0rE,CAAAA,iBAAAA,GACJ,IAAK1yI,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,sCAAA,EAC3B,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,kCAAA,CAAA,CAElC,IAAK+tE,CAAAA,oBAAAA,CAAqBpwH,CAAI,CAAA,CAE9B,IAAK8gB,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,OACzB,CAAA,yBAAA,CAA2BuJ,CAAK5a,CAAAA,MAAAA,CAChC,yBAA2B,CAAA,mBAAA,CAC3B,wBAA0B,CAAA,IAAA,CAAKw9D,eAAgB5iD,CAAAA,CAAI,CAAI,CAAA,cAAA,CAAiB,YACxE,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,CAAA,CAEL,IAAK+W,CAAAA,gBAAAA,CAAiBtU,mBAAoBzC,CAAAA,CAAI,CAC9C,CAAA,IAAA,CAAKtG,WAAc,CAAA,CAAC,IAAKA,CAAAA,WAAAA,CAAAA,KACtB,CACH,IAAA,CAAK4H,MAAOosE,CAAAA,SAAAA,CAAU,eAAiB1tE,CAAAA,CAAI,CAC3C,CAAA,IAAA,CAAKqqH,QAAQ,EAAA,CACb,IAAIhjD,CAAAA,CAAwB,CACxB1uB,eAAAA,CAAiB,WAErB,CAAA,CAAA,GAAI,IAAK3oD,CAAAA,OAAAA,EAAW,IAAK1C,CAAAA,mBAAAA,CAAoB1E,cAAc,EAAA,CAAI,CAC3D,IAAA,CAAK0E,mBAAoB9D,CAAAA,mBAAAA,CAAoB,aAAc,CAAEu3E,WAAAA,CAAa,CAAMpoB,CAAAA,CAAAA,eAAAA,CAAiB,WAAW,CAAE,CAC9G,CAAA,MACJ,CACA,IAAA,CAAKomB,WAAY3wD,CAAAA,IAAAA,CAAKi5D,CAAgB,EAC1C,CACJ,CAEA+oD,oBAAqBpwH,CAAAA,CAAAA,CAAS,CACtB,IAAA,CAAK3kB,IAAQ,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EAAoB,sCAC3C,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,kCAAA,CACxB,uBAAyB,CAAA,IAAA,CAAKmsD,eAAgB5iD,CAAAA,CAAI,CAAI,CAAA,cAAA,CAAiB,YACvE,CAAA,yBAAA,CAA2BA,CAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,YACpD,CAAA,yBAAA,CAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,SACxC,CAAA,CAAA,CAED,IAAKpU,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,kCAAA,EAC3C,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,8BACxB,CAAA,uBAAA,CAAyB,IAAKmsD,CAAAA,eAAAA,CAAgB5iD,CAAI,CAAA,CAAI,cAAiB,CAAA,YAAA,CACvE,yBAA2BA,CAAAA,CAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACpD,yBAA2B,CAAA,IAAA,CAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,EAET,CAEAmzD,eAAgB5iD,CAAAA,CAAAA,CAAS,CACrB,OAAO,IAAK+W,CAAAA,gBAAAA,CAAiBhX,qBAAsBC,CAAAA,CAAI,CAC3D,CAEAkqH,UAAWmG,CAAAA,CAAAA,CAAe,CACtB,OAAQA,CAAO,EACX,IAAK,mBAAA,CACD,IAAK5K,CAAAA,WAAAA,CAAc,CACnB,CAAA,IAAA,CAAKD,OAAU,CAAA,iBAAA,CACf,IAAKkG,CAAAA,iBAAAA,CAAoB,CACzB,CAAA,CAAA,IAAA,CAAKvB,UAAa,CAAA,CAAA,CAAA,CAClB,IAAKC,CAAAA,WAAAA,CAAc,CACnB,CAAA,CAAA,MACJ,IAAK,YAAA,CACD,IAAK3E,CAAAA,WAAAA,CAAc,CACnB,CAAA,IAAA,CAAKD,QAAU,UACf,CAAA,IAAA,CAAK2E,UAAa,CAAA,CAAA,CAAA,CAClB,IAAKuB,CAAAA,iBAAAA,CAAoB,CACzB,CAAA,CAAA,IAAA,CAAKtB,WAAc,CAAA,CAAA,CAAA,CACnB,MACJ,IAAK,aACD,CAAA,IAAA,CAAK3E,WAAc,CAAA,CAAA,CACnB,IAAKD,CAAAA,OAAAA,CAAU,WACf,CAAA,IAAA,CAAK4E,WAAc,CAAA,CAAA,CAAA,CACnB,IAAKD,CAAAA,UAAAA,CAAa,CAClB,CAAA,CAAA,IAAA,CAAKuB,iBAAoB,CAAA,CAAA,CAAA,CACzB,KACR,CACA,IAAK5qG,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,OACzB,CAAA,yBAAA,CAA2B,IAAKgvH,CAAAA,WAAAA,CAChC,yBAA2B,CAAA,kBAAA,CAC3B,wBAA0B,CAAA,IAAA,CAAKD,OAC/B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,EACL,CAEAgJ,gBAAAA,EAAgB,CACZ,IAAI5Q,CAAe,CAAA,IAAA,CAAKiQ,mBAAoBpxG,CAAAA,eAAAA,CAAgB,IAAKhtB,CAAAA,SAAS,CAC1E,CAAA,GAAImuH,CAAgBA,EAAAA,CAAAA,CAAahhG,YAAgBghG,EAAAA,CAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,EAAY00E,CAAahhG,CAAAA,YAAAA,CAAassB,QAAS9/E,CAAAA,MAAAA,CAAS,CAAG,CAAA,CAClI,IAAIuoD,CAAAA,CACAnsB,CACJ,CAAA,IAAA,CAAKo4H,YAAeA,CAAAA,CAAAA,CAAahhG,YACjC,CAAA,IAAA,IAAS7uE,CAAI,CAAA,CAAA,CAAGA,CAAI6vK,CAAAA,CAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAAS9/E,MAAQrb,CAAAA,CAAAA,EAAAA,CAC3D4jE,CAAUisG,CAAAA,CAAAA,CAAahhG,YAAassB,CAAAA,QAAAA,CAASn7F,CAAC,CAAA,CAAEiyD,IAChDxa,CAAAA,CAAAA,CAAW,IAAKsB,CAAAA,kBAAAA,CAAmB3B,WAAYwsB,CAAAA,CAAO,CACtD,CAAA,IAAA,CAAK60G,SAAU3jH,CAAAA,IAAAA,CAAKrd,CAAQ,CAAA,CAEhC,IAAKu4H,CAAAA,YAAAA,CAAa,IAAKyI,CAAAA,SAAS,EACpC,CACJ,CACAzI,YAAAA,CAAaK,CAAqB,CAAA,CAC9B,IAAKoI,CAAAA,SAAAA,CAAY,EAAA,CACjB,IAASz4K,IAAAA,CAAAA,CAAI,EAAGA,CAAIqwK,CAAAA,CAAAA,CAAeh1J,MAAQrb,CAAAA,CAAAA,EAAAA,CAAK,CAC5C,IAAIq3E,CAAqBg5F,CAAAA,CAAAA,CAAerwK,CAAC,CAAA,CACrC63E,CAAiB,CAAA,IAAA,CAAKgqB,eAAgBnqB,CAAAA,iBAAAA,CAAkBL,CAAe,CAAA,IAAA,CAAKp1B,OAAO,CAAA,CACvF,IAAKw2H,CAAAA,SAAAA,CAAU3jH,IAAK+iB,CAAAA,CAAc,EACtC,CACJ,CAEA0oG,uBAAAA,CAAwBgC,CAAsB,CAAA,CAC1C,IAAIljL,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAC3D,OAAQ2wI,CAAAA,CAAeryI,WAAW,EAAA,EAC9B,IAAK,MACL,CAAA,IAAK,UACD,CAAA,IAAA,CAAKukI,kBAAqBp1K,CAAAA,CAAAA,CAAOq3K,qBAAsBM,CAAAA,kBAAAA,CACvD,IAAKW,CAAAA,cAAAA,CAAiBt4K,CAAOq3K,CAAAA,qBAAAA,CAAsB8L,IACnD,CAAA,IAAA,CAAKhO,iBAAoBn1K,CAAAA,CAAAA,CAAOq3K,qBAAsBO,CAAAA,uBAAAA,CACtD,MACJ,IAAK,KACD,CAAA,IAAA,CAAKxC,kBAAqBp1K,CAAAA,CAAAA,CAAOq3K,qBAAsBS,CAAAA,kBAAAA,CACvD,IAAKQ,CAAAA,cAAAA,CAAiBt4K,CAAOq3K,CAAAA,qBAAAA,CAAsB+L,GACnD,CAAA,IAAA,CAAKjO,iBAAoBn1K,CAAAA,CAAAA,CAAOq3K,qBAAsBW,CAAAA,uBAAAA,CACtD,MACJ,IAAK,KACL,CAAA,IAAK,SACD,CAAA,IAAA,CAAK5C,kBAAqBp1K,CAAAA,CAAAA,CAAOq3K,qBAAsBgM,CAAAA,uBAAAA,CACvD,IAAK/K,CAAAA,cAAAA,CAAiBt4K,CAAOq3K,CAAAA,qBAAAA,CAAsBiM,MACnD,CAAA,IAAA,CAAKnO,iBAAoBn1K,CAAAA,CAAAA,CAAOq3K,qBAAsBa,CAAAA,sBAAAA,CACtD,KACR,CACJ,CACA+D,SAAAA,CAAUtjG,CAAc/lE,CAAAA,CAAAA,CAAa,CACjC,OAAA,IAAA,CAAKguK,UAAa5lH,CAAAA,MAAAA,CAAO55D,IAAK,CAAA,IAAA,CAAK+wH,YAAaoxD,CAAAA,aAAa,CACzD,CAAA,IAAA,CAAK3C,UAAW15G,CAAAA,QAAAA,CAASyR,CAAO,CAAA,CAChC,IAAK4qG,CAAAA,aAAAA,CAAgB,IAAKpxD,CAAAA,YAAAA,CAAaoxD,aAAc5qG,CAAAA,CAAO,CACrD,CAAA,IAAA,CAAK0jG,eACR,CAAA,CAAC,KAAKuE,UAAW15G,CAAAA,QAAAA,CAASyR,CAAO,CAAA,EAAK/lE,CAAQ,CAAA,CAAA,GAAM,CACpD,CAAA,IAAA,CAAK2wK,aAAgB,CAAA,IAAA,CAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcb,eAErD,CAAA,IAAA,CAAKa,aAAgB,CAAA,IAAA,CAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcV,eAGzD,CAAA,IAAA,CAAKU,aAAgB,CAAA,IAAA,CAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcR,gBAElD,CAAA,IAAA,CAAKQ,aAChB,CACA5jJ,WAAW,EAAA,CACH,IAAKohJ,CAAAA,MAAAA,EACL,IAAKA,CAAAA,MAAAA,CAAOrnJ,WAAW,EAAA,CAEvB,IAAKgyC,CAAAA,aAAAA,EACL,IAAKA,CAAAA,aAAAA,CAAchyC,WAAW,EAAA,CAE9B,IAAKqoJ,CAAAA,kBAAAA,EACL,IAAKA,CAAAA,kBAAAA,CAAmBroJ,WAAW,GAE3C,CArmBS8mJ,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAA0BxvI,GAAAC,CAAAA,EAAA,CAAAD,CAAAA,GAAAA,CAgFvBE,EAAe,CAAA,CAAAF,GAAAic,CAAAA,IAAA,CAAAjc,CAAAA,GAAAA,CAAAmmC,IAAA,CAAA,CAAAnmC,GAAA9T,CAAAA,IAAA,CAAA8T,CAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAAR,GAAAqhE,CAAAA,IAAA,CAAArhE,CAAAA,GAAAA,CAAAG,GAAA,CAAA,CAAAH,GAAAgjB,CAAAA,IAAA,CAAAhjB,CAAAA,GAAAA,CAAA4V,EAAA,CAAA,CAAA5V,GAAA2V,CAAAA,IAAA,CAAA3V,CAAAA,GAAAA,CAAAyI,EAAA,CAAA,CAAAzI,GAAA0nB,CAAAA,EAAA,CAAA1nB,CAAAA,GAAAA,CAAAqK,EAAA,CAAA,CAAArK,GAAA84C,CAAAA,IAAA,CAAA94C,CAAAA,GAAAA,CAAAmvG,EAAA,CAAA,CAAAnvG,GAAAyiC,CAAAA,IAAA,CAAAziC,CAAAA,GAAAA,CAAAwmC,IAAA,CAAA,CAAAxmC,GAAAkyG,CAAAA,IAAA,CAAAlyG,CAAAA,GAAAA,CAAA2gG,EAAA,CAAA,CAAA3gG,GAAAuG,CAAAA,EAAA,CAAA,CAAA,CAhFlBipI,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA0B7iJ,SAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAAE,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,MAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,IAAA,CAAA,YAAA,CAAA,CAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,eAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,eAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,GD7CvC7B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAAmjJ,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAAC,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAgY3BtlJ,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAhYU+C,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAA29D,QAAA,CAAA,CAgKA7xC,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA29D,CAAAA,QAAA,CChIF/E,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CACAD,EACAE,CAAAA,EAAAA,CACAshC,EACA4nE,CAAAA,IAAAA,CACAyC,IACA9F,CAAAA,EAAAA,CACA4P,EACAhL,CAAAA,IAAAA,CACAC,IAAuB,CAAA,CAAAj3I,aAAA,CAAA,CAAA,CAAA,CAAA,CAGzB,IAAO8+I,CAAPmD,CAAAA,CAAAA,CAAAA,OAAOnD,CAA0B,CAAA,GCtBvC,CAAA,IAAaoD,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,CAAP,CAAA,MAAOA,CAAyB,CAmDlC1wK,WAAA,EAAA,CAlDA,IAAAwtK,CAAAA,iBAAAA,CAAyB,CAkBzB,CAAA,CAAA,IAAA,CAAAC,iBAAyB,CAAA,CAAA,CAAA,CAGzB,IAAA/D,CAAAA,UAAAA,CAAkB,IAIlB,CAAA,IAAA,CAAAjzB,QAAgB,CAAA,EAChB,CAAA,IAAA,CAAA0yB,eAA2B,CAAA,CAAA,CAAA,CAC3B,IAAAtzG,CAAAA,iBAAAA,CAA6B,CAE7B,CAAA,CAAA,IAAA,CAAA44G,aAAyB,CAAA,CAAA,CAAA,CAEzB,IAAAvF,CAAAA,qBAAAA,CAAiC,CACjC,CAAA,CAAA,IAAA,CAAA4B,yBAAqC,CAAA,CAAA,CAAA,CAK7B,IAAAn6C,CAAAA,QAAAA,CAAW,IAAI71C,EAAAA,CAEN,IAAA61F,CAAAA,qBAAAA,CAAwB5mJ,GAAOsrH,CAAAA,EAAqB,CACpD,CAAA,IAAA,CAAA/6F,aAAgBvwB,CAAAA,GAAAA,CAAOwc,EAAa,CAAA,CACpC,IAAAlL,CAAAA,qBAAAA,CAAwBtR,GAAOuU,CAAAA,GAAqB,CACpD,CAAA,IAAA,CAAAq9B,kBAAqB5xC,CAAAA,GAAAA,CAAOk2C,IAAkB,CAAA,CAC9C,IAAAuvB,CAAAA,MAAAA,CAASzlE,GAAO4xE,CAAAA,IAAS,CACzB,CAAA,IAAA,CAAA/L,KAAQ7lE,CAAAA,GAAAA,CAAO+xE,IAAc,CAAA,CAC7B,IAAA+nB,CAAAA,sBAAAA,CAAyB95F,GAAOgwB,CAAAA,IAA0B,CAC1D,CAAA,IAAA,CAAA7e,SAAYnR,CAAAA,GAAAA,CAAOoU,EAAS,CAAA,CAC5B,IAAAoc,CAAAA,0BAAAA,CAA6BxwB,GAAOgwB,CAAAA,IAA0B,CAC9D,CAAA,IAAA,CAAA6iH,YAAe7yI,CAAAA,GAAAA,CAAO2c,EAAmB,CAAA,CAGtD,IAAKkqI,CAAAA,QAAAA,GACT,CAEAn1I,QAAQ,EAAA,CACJ,IAAMye,CAAAA,CAAkB,IAAKK,CAAAA,0BAAAA,CAA2BJ,sBAAsB,EAAA,CAC9E,GAAI,IAAA,CAAKwhB,kBAAmBm9F,CAAAA,0BAAAA,EAA8B,CAAA,OACrD,IAAKn9F,CAAAA,kBAAAA,CAAmBk9F,0BAA2B,CAAA,CAAA,CAAI,CAE5D,CAAA,IAAMgY,CAA8B,CAAA,IAAA,CAAKjhF,KAAM6B,CAAAA,QAAAA,CAASxoD,OAAO,MACzDgvD,CAAAA,CAAAA,CAAO,IAAKrI,CAAAA,KAAAA,EAAO6B,QAAUq/E,EAAAA,WAAAA,EAAa74E,IAAO,CAAA,IAAA,CAAKrI,KAAO6B,EAAAA,QAAAA,EAAUq/E,WAAa74E,EAAAA,IAAAA,CAAO,EACjG,CAAA,IAAA,CAAKvoD,OAAU,CAAA,IAAA,CAAK4K,aAAc5K,CAAAA,OAAAA,EAClC,CAAA,IAAA,CAAKqhI,YAAe,CAAA,IAAA,CAAKJ,qBAAsBp7B,CAAAA,kBAAAA,CAAmBlvH,SAAW2qJ,CAAAA,CAAAA,EAAgB,CACrFA,CAAAA,GACA,IAAKj2I,CAAAA,IAAAA,CAAOi2I,CAEPH,CAAAA,CAAAA,CAAAA,EAA+B54E,CAAKvvD,CAAAA,OAAAA,CAAQ,WAAW,CAAA,CAAI,CAC5DH,CAAAA,EAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,CAAKC,OAAQ,CAAA,WAAW,CAAI,CAAA,CAAA,CAAA,EAC5C,CAACwR,CAAAA,CAAgBkyE,KAEbnvF,GAAAA,QAAAA,CAASm0D,sBAAuB,CAAA,iCAAiC,CAAEtoF,CAAAA,MAAAA,EAAU,CAC7E,EAAA,IAAA,CAAKqiF,UAAU,EAAA,EAI/B,CAAC,EACL,CAE+B1yB,QAAAA,EAAQ,CACnC,IAAA,CAAKm4G,QAAQ,EAAA,CACb,IAAKlhI,CAAAA,OAAAA,CAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,OAAO,GAC7C,CAEAkhI,QAAAA,EAAQ,CACA,IAAA,CAAK11I,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOu3E,CAAAA,UAAAA,EAAc,GAAK,CAAA,IAAA,CAAKlkI,KAAQ,CAAA,GAAA,CAC9D,IAAK7R,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,UAAa,CAAA,IAAA,CAAK/1I,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOw3E,CAAAA,WAAAA,CACxF,IAAKnkI,CAAAA,KAAAA,CAAQ,IAAK7R,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,UAC/C,CAAA,IAAA,CAAKlkI,KAAQ,CAAA,IAAA,CAAK7R,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOw3E,CAAAA,WAAAA,CACrD,IAAK3C,CAAAA,QAAAA,CAAW,IAAKxhI,CAAAA,KAAAA,CACrB,IAAKyhI,CAAAA,WAAAA,CAAc,IAAKD,CAAAA,QAAAA,CAAW,IACvC,CAEAZ,YAAY,EAAA,CACR,IAAKjoI,CAAAA,IAAAA,CAAO,IAAK3K,CAAAA,IAAAA,CAAK2K,IACtB,CAAA,IAAA,CAAKga,IAAO,CAAA,IAAA,CAAK3kB,IAAK2kB,CAAAA,IAAAA,CACtB,IAAKw6C,CAAAA,YAAAA,CAAe,IAAKn/D,CAAAA,IAAAA,CAAKm/D,YAC9B,CAAA,IAAA,CAAK6H,gBAAmB,CAAA,IAAA,CAAKhnE,IAAKgnE,CAAAA,gBAAAA,CAClC,IAAK9lC,CAAAA,YAAAA,CAAe,IAAKlhC,CAAAA,IAAAA,CAAKkhC,YAC9B,CAAA,IAAA,CAAKiB,YAAe,CAAA,IAAA,CAAKniC,IAAKmiC,CAAAA,YAAAA,CAC9B,IAAK44B,CAAAA,SAAAA,CAAY,IAAK/6D,CAAAA,IAAAA,CAAK+6D,SAC3B,CAAA,IAAA,CAAK1mE,OAAU,CAAA,IAAA,CAAK2L,IAAK3L,CAAAA,OAAAA,CACzB,IAAKm2C,CAAAA,QAAAA,CAAW,IAAK7lB,CAAAA,IAAAA,CAAK6lB,QAC1B,CAAA,IAAA,CAAK1nC,GAAM,CAAA,IAAA,CAAK9C,IAAK8C,CAAAA,GAAAA,CACrB,IAAKsR,CAAAA,SAAAA,CAAY,IAAKpU,CAAAA,IAAAA,CAAKoU,SAC3B,CAAA,IAAA,CAAKsnG,QAAW,CAAA,IAAA,CAAK17G,IAAK07G,CAAAA,QAAAA,CAC1B,IAAK5gF,CAAAA,iBAAAA,CAAoB,IAAK96B,CAAAA,IAAAA,CAAK86B,iBACnC,CAAA,IAAA,CAAK5lB,WAAc,CAAA,IAAA,CAAKlV,IAAKkV,CAAAA,WAAAA,CAC7B,IAAKk7H,CAAAA,GAAAA,CAAM,IAAKpwI,CAAAA,IAAAA,CAAKowI,GACrB,CAAA,IAAA,CAAKqC,iBAAoB,CAAA,IAAA,CAAKzyI,IAAKyyI,CAAAA,iBAAAA,CACnC,IAAK2D,CAAAA,gBAAAA,CAAmB,IAAKp2I,CAAAA,IAAAA,CAAKo2I,iBACtC,CAEAhmF,UAAU,EAAA,CACN,IAAKwiF,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAKG,cAAc,EAAA,CACnB,IAAKsD,CAAAA,YAAAA,EACgB,CAAA,CAAA,EAAE,IAAK1xH,CAAAA,IAAAA,CAAKC,UAAclP,EAAAA,IAAAA,EAAa,CAAC,IAAA,CAAKiP,IAAKC,CAAAA,UAAAA,CAAAA,EAAe,CAAC,IAAA,CAAKD,IAAK8D,CAAAA,aAAAA,GAC7E,IAAKiqH,CAAAA,iBAAAA,EAAqB,IAAK/9H,CAAAA,OAAAA,GAC3C,IAAKxU,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,UAAc,EAAA,GAAA,EAAO1oI,MAAOk0H,CAAAA,UAAAA,EAAc,GAAOx/H,EAAAA,QAAAA,CAASkO,IAAK9I,CAAAA,WAAAA,EAAe,GACjH,CAAA,GAAA,IAAA,CAAKosI,aAAgB,CAAA,CAAA,CAAA,CAAA,CAG7B,IAAM4C,CAAAA,CAAoB,CACtB9C,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,CACfC,YAAa,IAAKA,CAAAA,WAAAA,CAClB3D,kBAAoB,CAAA,IAAA,CAAKA,kBACzB7Q,CAAAA,YAAAA,CAAc,IAAKA,CAAAA,YAAAA,CACnB0P,UAAY,CAAA,IAAA,CAAKA,UACjBnkG,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,CACf20B,YAAc,CAAA,IAAA,CAAKA,YACnBx6C,CAAAA,IAAAA,CAAM,IAAKA,CAAAA,IAAAA,CACXqiD,gBAAkB,CAAA,IAAA,CAAKA,gBACvB5yD,CAAAA,SAAAA,CAAW,IAAKA,CAAAA,SAAAA,CAChBizE,SAAW,CAAA,IAAA,CAAK1iE,IAAKpsD,CAAAA,IAAAA,CACrBw1K,WAAa,CAAA,IAAA,CAAKA,WAClBryB,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,CACf0yB,eAAiB,CAAA,IAAA,CAAKA,eACtBtzG,CAAAA,iBAAAA,CAAmB,IAAKA,CAAAA,iBAAAA,CACxB43G,iBAAmB,CAAA,IAAA,CAAKA,iBACxBn5G,CAAAA,OAAAA,CAAS,IAAKA,CAAAA,OAAAA,CACdm6G,aAAe,CAAA,IAAA,CAAKA,aACpBxyG,CAAAA,YAAAA,CAAc,IAAKA,CAAAA,YAAAA,CACnBiB,YAAc,CAAA,IAAA,CAAKA,YACnBjtB,CAAAA,WAAAA,CAAa,IAAKA,CAAAA,WAAAA,CAClBk7H,GAAK,CAAA,IAAA,CAAKA,GACVqC,CAAAA,iBAAAA,CAAmB,IAAKA,CAAAA,iBAAAA,CACxBtE,qBAAuB,CAAA,IAAA,CAAKA,qBAC5B4B,CAAAA,yBAAAA,CAA2B,IAAKA,CAAAA,yBAAAA,CAChC11G,aAAe,CAAA,IAAA,CAAKA,aAElBk8G,CAAAA,CAAAA,CAAAA,CAAmB,IAAK9hF,CAAAA,MAAAA,CAAO1hC,IAAKw/G,CAAAA,IAAAA,CAA4B,CAClEvyI,IAAAA,CAAMs2I,CACT,CAAA,CAAA,CACDC,CACKvqE,CAAAA,WAAAA,EACAriE,CAAAA,IAAAA,CAAK6yD,EAAU,CAAA,IAAA,CAAKo5B,QAAQ,CAAC,CAC7BtqG,CAAAA,SAAAA,CAAU,IAAK,CACZ4W,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,SAAUv/B,CAAAA,GAAAA,CAAI,uBAAuB,EAClF,CAAC,CAAA,CAELgvK,CACKj6F,CAAAA,WAAAA,EACA3yC,CAAAA,IAAAA,CAAK6yD,EAAU,CAAA,IAAA,CAAKo5B,QAAQ,CAAC,CAC7BtqG,CAAAA,SAAAA,CAAU,IAAK,CACR,IAAK8qJ,CAAAA,gBAAAA,GACD,IAAKzhI,CAAAA,OAAAA,CACLnH,MAAOm/C,CAAAA,QAAAA,CAAS,EAAG,IAAKypF,CAAAA,gBAAgB,CAExC,CAAA,IAAA,CAAKj2I,SAAU6B,CAAAA,YAAAA,CAAa2qD,QAAS,CAAA,CAAA,CAAG,IAAKypF,CAAAA,gBAAgB,CAGjE,CAAA,CAAA,IAAA,CAAKzhI,OACL,CAAA,IAAA,CAAK0/H,oCAAoC,EAAA,CAEzC,IAAKmC,CAAAA,cAAAA,GAEb,CAAC,EACT,CAEAA,cAAc,EAAA,CACVt0I,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,SAAUnY,CAAAA,MAAAA,CAAO,uBAAuB,CAAA,CAIjF,IAAK0lJ,CAAAA,oCAAAA,GAET,CAEAA,oCAAoC,EAAA,CAChC,IAAMl1H,CAAAA,CAAkB,IAAK2pE,CAAAA,sBAAAA,CAAuB1pE,sBAAsB,EAAA,CAC1E,GAAID,CAAAA,EAAmBA,CAAgBkyE,CAAAA,KAAAA,EAG/B,IAAK1sE,CAAAA,IAAAA,CAAKq6C,aAAiB,EAAA,SAAA,EAAa,IAAKr6C,CAAAA,IAAAA,CAAKq6C,aAAiB,EAAA,QAAA,CAAU,CAC7E,IAAMx8D,CAAQ,CAAA,WAAA,CACViL,QAASC,CAAAA,IAAAA,CAAKC,OAAQnL,CAAAA,CAAK,CAAI,CAAA,CAAA,CAAA,EAC/BgL,MAAO8mI,CAAAA,OAAAA,CAAQC,SAAU9mI,CAAAA,QAAAA,CAASC,IAAM,CAAA,EAAA,CAAID,QAASC,CAAAA,IAAAA,CAAKqD,MAAO,CAAA,CAAA,CAAGtD,QAASC,CAAAA,IAAAA,CAAKC,OAAQnL,CAAAA,CAAK,CAAI,CAAA,CAAC,CAAC,EAE7G,CAER,CAEA6zI,YAAY,EAAA,CACJ,IAAK1rI,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAK7H,GACvB,GAAA,IAAA,CAAKA,GAAMwxB,CAAAA,IAAAA,CAAKC,KAAMD,CAAAA,IAAAA,CAAKG,SAAU,CAAA,IAAA,CAAK9pB,IAAK7H,CAAAA,GAAG,CAAC,CAAA,CAAA,CAC/C,IAAK4vI,CAAAA,iBAAAA,EAAqB,IAAKz3G,CAAAA,YAAAA,IAE/B,IAAK60G,CAAAA,kBAAAA,CAAqB,IAAKlvG,CAAAA,kBAAAA,CAAmBy9F,YAAa,CAAA,IAAA,CAAK15G,IAAK5a,CAAAA,MAAAA,CAAQ,QAAQ,CAAA,CAAA,CAAA,CAI7F,IAAK4a,CAAAA,IAAAA,CAAK8D,aACV,GAAA,IAAA,CAAK3lB,GAAM,CAAA,IAAA,CAAK6hB,KAAK,YAAgB,CAAA,YAAA,CAAgB,GAErD,CAAA,CAAA,IAAA,CAAK7hB,GAAO,EAAA,CAAC,IAAK6R,CAAAA,OAAAA,GAClB,IAAKm7H,CAAAA,kBAAAA,CAAqB,IAAKhtI,CAAAA,GAAAA,CAAAA,CAEd,IAAKxC,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACzDiL,qBACR,GAAA,IAAA,CAAKnJ,GAAM,CAAA,IAAA,CAAK++H,YAAa31H,CAAAA,WAAAA,CAAY,IAAKpJ,CAAAA,GAAAA,CAAK,IAAK6hB,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,CACnE,IAAK+lI,CAAAA,kBAAAA,CAAqB,IAAKjO,CAAAA,YAAAA,CAAa31H,WAAY,CAAA,IAAA,CAAK4jI,kBAAoB,CAAA,IAAA,CAAKnrH,IAAK5a,CAAAA,MAAM,CAEzG,EAAA,CAEAgpI,cAAc,EAAA,CACV,IAAMhyI,CAAAA,CAAgB,IAAKT,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACtE,IAAK0xI,CAAAA,iBAAAA,CAAoB,IAAKnzH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,IAAKvQ,CAAAA,SAAAA,CAAWrT,CAAS2xI,CAAAA,iBAAiB,CACxH,CAAA,IAAA,CAAKz3G,YAAe,CAAA,IAAA,CAAK1b,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAASk8B,wBAAwB,CAAA,CAC1H,IAAKkxG,CAAAA,qBAAAA,CAAwB,IAAK5uH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,IAAKvQ,CAAAA,SAAAA,CAAWrT,CAAS01I,CAAAA,qBAAqB,CAChI,CAAA,IAAA,CAAK1G,yBAA4B,CAAA,IAAA,CAAKxwH,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAAS21I,yBAAyB,CAAA,CACxI,IAAKtI,CAAAA,eAAAA,CAAkB,IAAK7uH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,IAAKvQ,CAAAA,SAAAA,CAAWrT,CAAS41I,CAAAA,aAAa,CAClH,CAAA,IAAA,CAAK77G,iBAAoB,CAAA,IAAA,CAAKvb,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKjC,CAAAA,SAAAA,CAAWrT,CAASi8B,CAAAA,uBAAuB,CACzH,CAAA,IAAM45G,CAAkB,CAAA,IAAA,CAAKt2I,qBAAsBsrH,CAAAA,sBAAAA,EAC/CgrB,CAAAA,CAAAA,GACA,IAAKxG,CAAAA,GAAAA,CAAMwG,CAAgBC,CAAAA,SAAAA,CAAUzG,GAEzC,CAAA,CAAA,IAAMr+K,CAAS,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EAC1C,CAAA,IAAA,CAAK26H,YAAeltK,CAAAA,CAAAA,CAAOq3K,qBAAsB0N,CAAAA,kBAAAA,CACjD,IAAMjrI,CAAAA,CAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CACzDirI,CAAclrI,CAAAA,CAAAA,CAAWmrI,cAAgBzgI,EAAAA,IAAAA,CAAMiP,CAAWA,EAAAA,CAAAA,CAAEzb,MAAU,EAAA,IAAA,CAAK4a,IAAK5a,CAAAA,MAAM,CAC5F,CAAA,IAAA,CAAK4kI,UACD9iI,CAAAA,CAAAA,CAAWZ,IACXY,CAAAA,CAAAA,CAAWo+B,gBAAiBroC,CAAAA,OAAAA,CAAQ,KAAO,CAAA,aAAa,CAAEA,CAAAA,OAAAA,CAAQ,KAAOm1I,CAAAA,CAAAA,CAAcA,CAAatsG,EAAAA,OAAAA,CAAU,IAAK9lB,CAAAA,IAAAA,CAAK8lB,OAAO,CAAA,CAC/H,MACJ,CAAA,IAAA,CAAKsjG,WAAcliI,CAAAA,CAAAA,CAAWgjF,cAC9B,CAAA,IAAA,CAAKx0D,aAAgB,CAAA,IAAA,CAAK9a,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKjC,CAAAA,SAAAA,CAAWrT,CAASs5B,CAAAA,aAAa,CAC3G,CAAA,IAAA,CAAKd,OAAU1tB,CAAAA,CAAAA,CAAWZ,IAAO,CAAA,sDACrC,CAEAvZ,WAAAA,EAAW,CACH,IAAA,CAAKskJ,YACL,EAAA,IAAA,CAAKA,YAAavqJ,CAAAA,WAAAA,EAEtB,CAAA,IAAA,CAAKm1C,kBAAmBk9F,CAAAA,0BAAAA,CAA2B,CAAK,CAAA,CAAA,CACxD,IAAK8X,CAAAA,qBAAAA,CAAsBn7B,qBAAsB,CAAA,IAAI,CACrD,CAAA,IAAA,CAAK7kB,QAAS90G,CAAAA,IAAAA,EACd,CAAA,IAAA,CAAK80G,QAASlpG,CAAAA,QAAAA,GAClB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAlQSipJ,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAjP,EAAA,CAAA,CAAA,IAAA,CAAzBiP,CAAyBjmJ,CAAAA,SAAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAAsxE,CAAAA,YAAAA,CAAA,SAAAnvE,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EAAzBY,EAAA,CAAA,QAAA,CAAA,UAAA,CAAA,OAAAtrB,CAAAA,CAAAu2D,QAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA6B,EAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAApyD,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAjB,IAAOwoK,CAAAA,CAAPsB,CAAOtB,CAAAA,OAAAA,CAAyB,CAAA,ICNtC,SAASuB,IAAAA,CAA+CrlJ,CAAI1qB,CAAAA,CAAAA,CAAK,EAC3DgwK,IAAAA,IAAAA,CAA2B,CAE/B,gBAAA,CAA+Bh8H,EAAQ,CAAA,OAAA,CAAS,CAAc59B,IAAAA,CAAM,cAA6BwqB,CAAAA,IAAAA,CAAM,CACrG,SAAA,CAAW,kBACb,CAAC,CAAC,CAAA,CAAgBxqB,IAAM,CAAA,SAAA,CAAwBwqB,IAAM,CAAA,CACpD,SAAW,CAAA,gBACb,CAAC,CAAC,EAAgBqvI,EAAW,CAAA,oCAAA,CAAmD7kG,GAAM,CAAA,CAAc8kG,EAAQ,CAAA,CAAA,EAAGC,GAAmB,CAAA,OAAO,CAAIC,CAAAA,EAAAA,GAAAA,CAAgB,kBAAkB,CAAA,CAAE,CAAgB9iK,CAAAA,GAAAA,CAAM,IAAmB+iK,CAAAA,GAAAA,EAAgB,CAAA,CACxO,QAAU,CAAA,CAAA,CACZ,CAAC,CAAC,CAAC,CAAC,CAAgBJ,CAAAA,EAAAA,CAAW,iBAAgC7kG,CAAAA,GAAAA,CAAM,CAAc8kG,EAAAA,CAAQ,GAAGC,GAAmB,CAAA,OAAO,CAAIC,CAAAA,EAAAA,GAAAA,CAAgB,kBAAkB,CAAA,CAAE,CAAgB9iK,CAAAA,GAAAA,CAAM,IAAmB+iK,CAAAA,GAAAA,EAAgB,CAAA,CACvN,QAAU,CAAA,CAAA,CACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACR,CAAA,CAMIC,IAAwC,CAAA,CAAA,IAAM,CAChD,IAAMC,CAAN,CAAA,MAAMA,CAAgCC,SAAAA,IAAmB,CACvD,WAAY5oJ,CAAAA,CAAAA,CAAY6oJ,CAAkB11I,CAAAA,CAAAA,CAAUgrC,CAAQ2qG,CAAAA,CAAAA,CAASltH,CAAQmtH,CAAAA,CAAAA,CAAYC,CAAoBC,CAAAA,EAAAA,CAAc,CACzH,KAAA,CAAMjpJ,CAAY6oJ,CAAAA,CAAAA,CAAkB11I,CAAUgrC,CAAAA,CAAAA,CAAQ2qG,CAASltH,CAAAA,CAAAA,CAAQmtH,CAAYE,CAAAA,EAAY,CAE/F,CAAA,IAAA,CAAK,eAAkB,CAAA,MAAA,CAEvB,IAAK,CAAA,sBAAA,CAAyB,IAAInnJ,IAAAA,CAClC,IAAK,CAAA,uBAAA,CAA0BknJ,EAAmB,OAAQ,CAAA,CAACE,GAAY,CAAA,MAAA,CAAQA,GAAY,CAAA,KAAA,CAAOA,GAAY,CAAA,MAAM,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,CACrI,IAAMnxI,CAAY,CAAA,IAAA,CAAK,WAAY,CAAA,aAAA,CAAc,SACjDA,CAAAA,CAAAA,CAAU,MAAO,CAAA,mCAAA,CAAqCixI,CAAmB,CAAA,SAAA,CAAUE,GAAY,CAAA,MAAM,CAAC,CAAA,CACtGnxI,CAAU,CAAA,MAAA,CAAO,mCAAoCixI,CAAmB,CAAA,SAAA,CAAUE,GAAY,CAAA,KAAK,CAAC,CAAA,CACpGnxI,CAAU,CAAA,MAAA,CAAO,mCAAqCixI,CAAAA,CAAAA,CAAmB,SAAUE,CAAAA,GAAAA,CAAY,MAAM,CAAC,EACxG,CAAC,EACH,CAEA,KAAQ,EAAA,CACD,IAAK,CAAA,UAAA,GACR,IAAK,CAAA,eAAA,CAAkB,SACvB,CAAA,IAAA,CAAK,kBAAmB,CAAA,YAAA,EACxB,CAAA,IAAA,CAAK,mBAAmB,aAAc,EAAA,EAE1C,CAEA,IAAA,EAAO,CACA,IAAA,CAAK,UACR,GAAA,IAAA,CAAK,eAAkB,CAAA,QAAA,CACvB,IAAK,CAAA,kBAAA,CAAmB,YAAa,EAAA,EAEzC,CACA,WAAA,EAAc,CACZ,KAAA,CAAM,WAAY,EAAA,CAClB,IAAK,CAAA,uBAAA,CAAwB,WAAY,EAAA,CACzC,IAAK,CAAA,UAAA,CAAa,CACpB,EAAA,CACA,gBAAiBnnK,CAAAA,CAAAA,CAAO,CAClBA,CAAAA,CAAM,OAAY,GAAA,SAAA,EACpB,IAAK,CAAA,UAAA,EAEP,CAAA,IAAA,CAAK,sBAAuB,CAAA,IAAA,CAAKA,CAAK,EACxC,CACA,iBAAA,CAAkBA,CAAO,CAAA,CACvB,IAAK,CAAA,sBAAA,CAAuB,IAAKA,CAAAA,CAAK,EACxC,CACA,oBAAuB,EAAA,EA2CzB,CAAA,CAzCI4mK,CAAK,CAAA,SAAA,CAAO,SAAyC5jJ,CAAAA,CAAmB,CACtE,OAAO,IAAKA,CAAqB4jJ,EAAAA,CAAAA,EAA4B30I,GAAqB9T,CAAAA,IAAU,CAAM8T,CAAAA,GAAAA,CAAqBm1I,EAAgB,CAAA,CAAMn1I,GAAkB49D,CAAAA,IAAAA,CAAU,CAAC,CAAA,CAAM59D,GAAqBo1I,CAAAA,IAAY,CAAMp1I,CAAAA,GAAAA,CAAqBq1I,IAAoB,CAAA,CAAMr1I,GAAqBkvB,CAAAA,EAAM,CAAMlvB,CAAAA,GAAAA,CAAqBs1I,IAAU,CAAA,CAAMt1I,GAAqBu1I,CAAAA,EAAkB,CAAMv1I,CAAAA,GAAAA,CAAqBw1I,EAAY,CAAC,CAC7Z,CAGAb,CAAAA,CAAAA,CAAK,SAAyBc,CAAAA,EAAAA,CAAkB,CAC9C,IAAA,CAAMd,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,4BAA4B,CAAC,CAC1C,CAAA,SAAA,CAAW,CAAC,UAAA,CAAY,IAAM,CAAA,CAAA,CAAG,4BAA4B,CAAA,CAC7D,QAAU,CAAA,CAAA,CACV,YAAc,CAAA,SAA8C7lJ,CAAI1qB,CAAAA,CAAAA,CAAK,CAC/D0qB,CAAAA,CAAK,CACJ4mJ,EAAAA,EAAAA,CAAwB,eAAgB,SAA0El+G,CAAAA,CAAQ,CAC3H,OAAOpzD,CAAI,CAAA,iBAAA,CAAkBozD,CAAM,CACrC,CAAC,CAAA,CAAE,aAAe,CAAA,SAAyEA,CAAQ,CAAA,CACjG,OAAOpzD,CAAAA,CAAI,gBAAiBozD,CAAAA,CAAM,CACpC,CAAC,CAEC1oC,CAAAA,CAAAA,CAAK,CACJ6mJ,GAAAA,EAAAA,CAAwB,QAAUvxK,CAAAA,CAAAA,CAAI,eAAe,CAAA,CACrDwxK,EAAY,CAAA,MAAA,CAAQxxK,CAAI,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAE,YAAcA,CAAAA,CAAAA,CAAI,OAAQ,CAAA,SAAS,CAAE,CAAA,YAAA,CAAcA,CAAI,CAAA,OAAA,CAAQ,SAAS,CAAA,EAErH,CACA,CAAA,UAAA,CAAY,CACZ,CAAA,CAAA,QAAA,CAAU,CAAIyxK,EAAAA,CAA+Bn1I,EAAmB,CAAA,CAChE,KAAO,CAAA,CAAA,CACP,IAAM,CAAA,CAAA,CACN,MAAQ,CAAA,CAAC,CAAC,iBAAA,CAAmB,EAAE,CAAC,EAChC,QAAU,CAAA,SAA0C5R,CAAI1qB,CAAAA,CAAAA,CAAK,CACvD0qB,CAAAA,CAAK,CACJO,EAAAA,EAAAA,CAAW,CAAG8kJ,CAAAA,IAAAA,CAAgD,CAAG,CAAA,CAAA,CAAG,aAAe,CAAA,CAAC,EAE3F,CAAA,CACA,YAAc,CAAA,CAAC2B,IAAe,CAAA,CAC9B,MAAQ,CAAA,CAAC,86CAA86C,CAAA,CACv7C,aAAe,CAAA,CAAA,CACf,IAAM,CAAA,CACJ,SAAW,CAAA,CAAC1B,KAAyB,gBAAgB,CACvD,CACF,CAAC,CApFL,CAAA,IAAMM,CAANC,CAAAA,CAAAA,CAuFA,OAAOD,CACT,CAAG,GAAA,CAMGqB,IAAqC,CAAA,IAAIC,GAAe,CAAA,oBAAoB,CAI5EC,CAAAA,GAAAA,CAAN,OAA2B,CACzB,WAAc,EAAA,CAEZ,IAAK,CAAA,IAAA,CAAO,IAEZ,CAAA,IAAA,CAAK,WAAc,CAAA,CAAA,CAAA,CAEnB,IAAK,CAAA,YAAA,CAAe,GAEpB,IAAK,CAAA,SAAA,CAAY,IAEjB,CAAA,IAAA,CAAK,SAAY,CAAA,CAAA,CAAA,CAMjB,IAAK,CAAA,iBAAA,CAAoB,CASzB,CAAA,CAAA,IAAA,CAAK,SAAY,CAAA,QAAA,CAKjB,IAAK,CAAA,YAAA,CAAe,CACtB,EAAA,CACF,CAKMC,CAAAA,CAAAA,CAAN,KAAwB,CAEtB,IAAI,QAAA,EAAW,CACb,OAAO,IAAK,CAAA,IAAA,CAAK,iBACnB,CAKA,IAAI,YAAA,EAAe,CACjB,OAAO,IAAK,CAAA,IAAA,CAAK,YACnB,CACA,WAAYC,CAAAA,CAAAA,CAAMhsG,CAAQisG,CAAAA,CAAAA,CAAmB,CAC3C,IAAA,CAAK,IAAOD,CAAAA,CAAAA,CAEZ,IAAK,CAAA,YAAA,CAAe,IAAIn5F,EAAAA,CACxB,IAAK,CAAA,iBAAA,CAAoBo5F,CACzB,CAAA,IAAA,CAAK,YAAejsG,CAAAA,CAAAA,CAAO,YAE3BisG,CAAAA,CAAAA,CAAkB,sBAAuB,CAAA,IAAA,CAAKn+K,IAAO8V,CAAAA,CAAAA,EAASA,CAAM,CAAA,SAAA,GAAc,QAAUA,CAAM,CAAA,OAAA,GAAY,SAAS,CAAA,CAAGsoK,IAAK,CAAA,CAAC,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,CACjJ,IAAA,CAAK,YAAa,CAAA,IAAA,EAClB,CAAA,IAAA,CAAK,YAAa,CAAA,QAAA,GACpB,CAAC,CAEDD,CAAAA,CAAAA,CAAkB,sBAAuB,CAAA,IAAA,CAAKn+K,IAAO8V,CAAAA,CAAAA,EAASA,CAAM,CAAA,SAAA,GAAc,MAAUA,EAAAA,CAAAA,CAAM,UAAY,QAAQ,CAAA,CAAGsoK,IAAK,CAAA,CAAC,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,CAChJ,YAAA,CAAa,IAAK,CAAA,qBAAqB,CACvC,CAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,OAAO,EAC9B,CAAC,CACDF,CAAAA,CAAAA,CAAK,UAAW,CAAA,WAAA,EAAc,CAAA,SAAA,CAAU,IAAM,CAC5C,IAAK,CAAA,IAAA,CAAK,MAAM,IAAK,CAAA,OAAO,EAC9B,CAAC,CACDviD,CAAAA,EAAAA,CAAM,IAAK,CAAA,aAAA,EAAiB,CAAA,IAAA,CAAK,aAAc,EAAA,CAAE,IAAK37H,CAAAA,IAAAA,CAAO8V,CAASA,EAAAA,CAAAA,CAAM,OAAY,GAAA,EAAM,CAAC,CAAC,CAAE,CAAA,SAAA,CAAUA,CAAS,EAAA,CAC/G,CAAC,IAAA,CAAK,YAAiBA,GAAAA,CAAAA,CAAM,IAAS,GAAA,SAAA,EAAa,CAACuoK,EAAevoK,CAAAA,CAAK,CAC1EA,CAAAA,GAAAA,CAAAA,CAAM,cAAe,EAAA,CACrB,IAAK,CAAA,OAAA,EAET,EAAA,CAAC,EACH,CAKA,OAAQvb,CAAAA,CAAAA,CAAQ,CACT,IAAA,CAAK,iBAIV,GAAA,IAAA,CAAK,iBAAkB,CAAA,sBAAA,CAAuB,IAAKyF,CAAAA,IAAAA,CAAO8V,CAASA,EAAAA,CAAAA,CAAM,SAAc,GAAA,OAAO,CAAGsoK,CAAAA,IAAAA,CAAK,CAAC,CAAC,EAAE,SAAUtoK,CAAAA,CAAAA,EAAS,CAM3H,IAAA,CAAK,qBAAwB,CAAA,UAAA,CAAW,IAAM,CAC5C,IAAK,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,OAAO,EAC9B,CAAGA,CAAAA,CAAAA,CAAM,SAAY,CAAA,GAAG,CACxB,CAAA,IAAA,CAAK,IAAK,CAAA,UAAA,CAAW,cAAe,GACtC,CAAC,CAAA,CACD,IAAK,CAAA,OAAA,CAAUvb,CACf,CAAA,IAAA,CAAK,kBAAkB,IAAK,EAAA,CAC5B,IAAK,CAAA,iBAAA,CAAoB,IAC3B,EAAA,CAEA,cAAiB,EAAA,CACf,OAAO,IAAA,CAAK,IAAK,CAAA,MACnB,CAEA,WAAA,EAAc,CACZ,OAAO,IAAK,CAAA,YACd,CAIA,aAAA,EAAgB,CACd,OAAO,IAAK,CAAA,IAAA,CAAK,aACnB,CAIA,aAAgB,EAAA,CACd,OAAO,IAAA,CAAK,KAAK,aACnB,CACF,CAGM+jL,CAAAA,EAAAA,CAAgD,IAAIP,GAAAA,CAAe,kCAAkC,CAAA,CAIvGQ,IAA+B,CAAA,CAAA,IAAM,CACvC,IAAMC,CAAN,CAAA,MAAMA,CAAe,CAEnB,IAAI,qBAAA,EAAwB,CAC1B,IAAMv4K,CAAS,CAAA,IAAA,CAAK,kBACpB,CAAA,OAAOA,CAASA,CAAAA,CAAAA,CAAO,qBAAwB,CAAA,IAAA,CAAK,0BACtD,CACA,IAAI,qBAAA,CAAsBhL,CAAO,CAAA,CAC3B,IAAK,CAAA,kBAAA,CACP,IAAK,CAAA,kBAAA,CAAmB,qBAAwBA,CAAAA,CAAAA,CAEhD,IAAK,CAAA,0BAAA,CAA6BA,EAEtC,CACA,WAAYwjL,CAAAA,CAAAA,CAAUC,CAAUC,CAAAA,CAAAA,CAAoBC,CAAiB,CAAA,CACnE,IAAK,CAAA,QAAA,CAAWH,CAChB,CAAA,IAAA,CAAK,kBAAqBE,CAAAA,CAAAA,CAC1B,IAAK,CAAA,eAAA,CAAkBC,CACvB,CAAA,IAAA,CAAK,0BAA6B,CAAA,IAAA,CAClC,KAAK,OAAUF,CAAAA,CAAAA,CAAS,GAAIG,CAAAA,IAAM,EACpC,CACA,IAAKC,CAAAA,CAAAA,CAAwB5sG,CAAQ,CAAA,CACnC,IAAM6sG,CAAAA,CAAU1yH,GAAA,CAAAj1D,GAAA,CAAA,EAAA,CACV,IAAK,CAAA,eAAA,EAAmB,IAAI4mL,GAAAA,CAAAA,CAC7B9rG,CAED8sG,CAAAA,CAAAA,CAAAA,CACJ,OAAK,IAAA,CAAA,OAAA,CAAQ,IAAKF,CAAAA,CAAAA,CAAwB/nH,GAAA1K,CAAAA,GAAAA,CAAA,EACrC0yH,CAAAA,CAAAA,CAAAA,CADqC,CAGxC,YAAA,CAAc,GAEd,yBAA2B,CAAA,CAAA,CAAA,CAC3B,QAAU,CAAA,MAAA,CACV,SAAWtC,CAAAA,IAAAA,CACX,cAAgBsC,CAAAA,CAAAA,CAAQ,cAAkB,EAAA,IAAA,CAAK,QAAS,CAAA,gBAAA,CAAiB,KAAM,EAAA,CAC/E,gBAAkB,CAAA,IAAA,CAAK,QAAS,CAAA,QAAA,EAAW,CAAA,MAAA,EAAS,CAAA,kBAAA,EAAqB,CAAA,MAAA,CAAO,GAAG,CAAA,CACnF,eAAiB,CAAA,KAAO,CACtB,cAAA,CAAgBC,CAClB,CACA,CAAA,CAAA,SAAA,CAAW,CAACC,CAAAA,CAAQC,CAAYtwJ,CAAAA,CAAAA,IAC9BowJ,CAAM,CAAA,IAAIf,CAAkBgB,CAAAA,CAAAA,CAAQF,CAASnwJ,CAAAA,CAAS,CAC/C,CAAA,CAAC,CACN,OAAA,CAASqvJ,CACT,CAAA,QAAA,CAAUe,CACZ,CAAA,CAAG,CACD,OAAA,CAASlB,IACT,CAAA,QAAA,CAAUiB,CAAQ,CAAA,IACpB,CAAC,CAAA,CAEL,CAAC,CAAA,CAAA,CAEDC,CAAI,CAAA,cAAA,EAAiB,CAAA,SAAA,CAAU,IAAM,CAE/B,IAAK,CAAA,qBAAA,GAA0BA,CACjC,GAAA,IAAA,CAAK,qBAAwB,CAAA,IAAA,EAEjC,CAAC,CAAA,CACG,IAAK,CAAA,qBAAA,EAGP,IAAK,CAAA,qBAAA,CAAsB,cAAe,EAAA,CAAE,SAAU,CAAA,IAAMA,CAAI,CAAA,iBAAA,EAAmB,KAAM,EAAC,CAC1F,CAAA,IAAA,CAAK,qBAAsB,CAAA,OAAA,EAG3BA,EAAAA,CAAAA,CAAI,kBAAkB,KAAM,EAAA,CAE9B,IAAK,CAAA,qBAAA,CAAwBA,CACtBA,CAAAA,CACT,CAKA,OAAA,CAAQzkL,CAAQ,CAAA,CACV,IAAK,CAAA,qBAAA,EACP,IAAK,CAAA,qBAAA,CAAsB,OAAQA,CAAAA,CAAM,EAE7C,CACA,WAAc,EAAA,CACR,IAAK,CAAA,0BAAA,EACP,IAAK,CAAA,0BAAA,CAA2B,OAAQ,GAE5C,CAaF,CAAA,CAXIikL,CAAK,CAAA,SAAA,CAAO,SAAgC1lJ,CAAmB,CAAA,CAC7D,OAAO,IAAKA,CAAqB0lJ,EAAAA,CAAAA,EAAmBvlJ,GAAYkmJ,CAAAA,EAAO,CAAMlmJ,CAAAA,GAAAA,CAAYmmJ,IAAQ,CAAA,CAAMnmJ,GAASulJ,CAAAA,CAAAA,CAAgB,EAAE,CAAA,CAAMvlJ,GAASqlJ,CAAAA,EAAAA,CAAkC,CAAC,CAAC,CACvL,CAAA,CAGAE,CAAK,CAAA,UAAA,CAA0Ba,GAAmB,CAAA,CAChD,KAAOb,CAAAA,CAAAA,CACP,OAASA,CAAAA,CAAAA,CAAe,UACxB,UAAY,CAAA,MACd,CAAC,CAAA,CA7FL,IAAMD,CAAAA,CAANC,CAgGA,CAAA,OAAOD,CACT,CAAA,GAIIe,CAAAA,EAAAA,CAAAA,CAAqC,IAAM,CAC7C,IAAMC,CAAAA,CAAN,MAAMA,CAAqB,EAiB3B,CAfIA,CAAK,CAAA,SAAA,CAAO,SAAsCzmJ,CAAAA,CAAmB,CACnE,OAAO,IAAKA,CAAAA,EAAqBymJ,CACnC,CAAA,CAAA,CAGAA,CAAK,CAAA,SAAA,CAAyBC,EAAiB,CAAA,CAC7C,IAAMD,CAAAA,CACR,CAAC,CAAA,CAGDA,CAAK,CAAA,SAAA,CAAyBE,EAAiB,CAAA,CAC7C,SAAW,CAAA,CAAClB,IAAc,CAAA,CAC1B,OAAS,CAAA,CAACmB,EAAcC,CAAAA,EAAAA,CAAiBC,IAAcD,CAAAA,EAAe,CACxE,CAAC,CAfL,CAAA,IAAML,CAANC,CAAAA,CAAAA,CAkBA,OAAOD,CACT,CAAG,IC1XH,IAAaO,GAAc,IAAA,CAArB,IAAOA,CAAP,CAAA,MAAOA,CAAc,CAKvB51K,WAAAA,EAAA,EAEA61K,oBAAoBC,CAAqB,CAAA,CACrC,KAAKA,gBAAmBA,CAAAA,EAC5B,CAEAC,mBAAmB,EAAA,CACf,OAAO,IAAA,CAAKD,gBAChB,CAEAE,uBAAAA,CAAwBC,EAAyB,CAC7C,IAAA,CAAKA,qBAAuBA,EAChC,CAEAC,uBAAuB,EAAA,CACnB,OAAO,IAAKD,CAAAA,oBAChB,CACAE,yBAA0BC,CAAAA,CAAAA,CAA2B,CACjD,IAAKC,CAAAA,gBAAAA,CAAmBD,EAC5B,CACAE,2BAAyB,CACrB,OAAO,KAAKD,gBAChB,CACAE,aAAaz7I,CAAc,CAAA,CACvB,IAAKA,CAAAA,SAAAA,CAAYA,EACrB,CACA07I,YAAAA,EAAY,CACR,OAAO,IAAA,CAAK17I,SAChB,CACA27I,cAAAA,CAAe37I,CAAc,CAAA,CACzBA,EAAUU,KAAK,GACnB,yCApCSo6I,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAnoL,GAAA,CAAA,CAAA,KAAA,CAAdmoL,EAAc7oL,OAAd6oL,CAAAA,CAAAA,CAActwI,SAAAC,CAAAA,UAAAA,CAFX,MAAM,CAAA,CAAA,CAEhB,IAAOqwI,CAAPc,CAAAA,CAAAA,CAAAA,OAAOd,CAAc,CAAA,ICO3B,IAAae,IAAkB,IAAA,CAAzB,IAAOA,CAAAA,CAAP,MAAOA,CAAkB,CAH/B32K,WAAA,EAAA,CAIqB,KAAA27D,kBAAqB5xC,CAAAA,GAAAA,CAAOk2C,IAAkB,CAAA,CAC9C,KAAA3lB,aAAgBvwB,CAAAA,GAAAA,CAAOwc,EAAa,CAAA,CACpC,KAAAlL,qBAAwBtR,CAAAA,GAAAA,CAAOuU,GAAqB,CAAA,CACpD,KAAAgxD,eAAkBvlE,CAAAA,GAAAA,CAAOu6C,IAAe,EAAA,CASzDsyG,eAAe56G,CAAuBzyB,CAAAA,CAAAA,CAAoB4F,EAAiB,CACvE,GAAM,CAAE9O,aAAAA,CAAAA,CAAa,CAAK,CAAA,IAAA,CAAKw2I,yBAAyB1nI,CAAS,CAAA,EAAK,EAAA,CACtE,GAAI,CAAC9O,CAAAA,EAAiBA,CAAelV,EAAAA,IAAAA,GAAS,EAC1C,OAEJ,IAAMkjB,EAAWhO,CAAc7Q,CAAAA,GAAAA,CAAI+Z,CAAU,CAC7C,CAAA,OAAO8E,CAAWA,CAAAA,CAAAA,CAASk7C,eAAej4C,IAAM9jD,CAAAA,CAAAA,EAAMA,CAAEkvE,CAAAA,aAAAA,GAAkBV,CAAa,CAAIvrB,CAAAA,KAAAA,CAC/F,CAEAqmI,aAAAA,CAAc96G,EAAuBzyB,CAAoB4F,CAAAA,CAAAA,CAAmB4nI,EAAmB,EAAE,CAAA,CAC7F,IAAMC,CAAoC,CAAA,EACpC,CAAA,CAAEj2I,gBAAAA,CAAe,CAAA,CAAK,IAAK81I,CAAAA,wBAAAA,CAAyB1nI,CAAS,CAAK,EAAA,EAClEojF,CAAAA,CAAAA,CAA4C,KAAKqkD,cAAe56G,CAAAA,CAAAA,CAAezyB,EAAY4F,CAAS,CAAA,CAE1G,OAAIojF,CAAa3pC,EAAAA,QAAAA,CAAS9/E,MAAW,GAAA,CAAA,CAC1BkuK,GAEXzkD,CAAa3pC,EAAAA,QAAAA,CAASjqC,OAAQ,CAAA,CAAC5jB,EAAWr7B,CAAiB,GAAA,CACvD,IAAMu3K,CAAAA,CAAel2I,GAAiBvR,GAAIuL,CAAAA,CAAAA,CAAK2kB,IAAI,CAC7Cw3H,CAAAA,CAAAA,CAA2B,KAAK1wG,WAAYywG,CAAAA,CAAAA,CAAc9nI,CAAWzvC,CAAAA,CAAAA,CAAO6yH,EAAYsiC,eAAiB95H,CAAAA,CAAI,CACnH,CAAA,GAAIk8I,EAAc,CACd,IAAME,EAAmC,CAAA,CACrCryI,OAAQmyI,CAAcv3H,EAAAA,IAAAA,EAAQ,GAC9Bv/B,EAAI82J,CAAAA,CAAAA,EAAcv3H,MAAQ,EAC1BpsD,CAAAA,IAAAA,CAAM2jL,CAAc3jL,EAAAA,IAAAA,EAAQ,GAC5B8jL,GAAK,CAAA,CACDv5I,GAAK,CAAA,IAAA,CAAKyxD,gBAAgBzqB,gBAAiBqyG,CAAAA,CAAAA,CAAe,CAAK,CAAA,CAAA,CAC/DnxI,WAAY,IAAKuU,CAAAA,aAAAA,CAAcvT,iBAC/BswI,CAAAA,OAAAA,CAAS,KAAK/nF,eAAgBzqB,CAAAA,gBAAAA,CAAiBqyG,CAAe,CAAA,CAAA,CAAK,GAEvE/4D,MAAQ,CAAA,CACJm5D,aAAeL,CAAAA,CAAAA,EAAc3jL,MAAQ,EACrCikL,CAAAA,cAAAA,CAAgB,EAChBC,CAAAA,aAAAA,CAAe,IAEnBC,MAAQ,CAAA,IAAA,CAAKC,WAAYvoI,CAAAA,CAAAA,CAAW+nI,CAAa,CACjDx3H,CAAAA,IAAAA,CAAMw3H,CAEVF,CAAAA,CAAAA,CAAAA,CAAYz0H,KAAK40H,EAAY,EACjC,CACJ,CAAC,EACMH,CAAYvnL,CAAAA,KAAAA,CAAM,CAAGsnL,CAAAA,CAAQ,EACxC,CAEAvwG,WAAAA,CAAYywG,EAAmB9nI,CAAmBzvC,CAAAA,CAAAA,CAAem1J,EAAyB95H,CAAS,CAAA,CAC/F,OAAO,CACH2kB,KAAMu3H,CAAcv3H,EAAAA,IAAAA,EAAQ,EAC5BpsD,CAAAA,IAAAA,CAAM2jL,GAAc3jL,IAAQ,EAAA,EAAA,CAC5BqyE,SAAWjmE,CAAAA,CAAAA,CACX8lE,QAASyxG,CAAczxG,EAAAA,OAAAA,EAAW,GAClCD,QAAU0xG,CAAAA,CAAAA,EAAc1xG,UAAY,EACpCE,CAAAA,OAAAA,CAAS1qC,CAAM0qC,EAAAA,OAAAA,EAAW,GAC1B3gC,MAAQmyI,CAAAA,CAAAA,EAAcv3H,IAAQ,EAAA,EAAA,CAC9Bha,KAAMuxI,CAAe,CAAA,CAAEp5I,GAAK,CAAA,IAAA,CAAKyxD,gBAAgBzqB,gBAAiBoyG,CAAAA,CAAAA,CAAc,EAAK,CAAC,CAAA,CAAK,CAAEp5I,GAAK,CAAA,EAAE,CACpGsR,CAAAA,SAAAA,CAAAA,EACA0d,OAASntD,CAAAA,CAAAA,CAAQ,CACjBq6F,CAAAA,aAAAA,CAAe,iBACf72C,WAAa2xG,CAAAA,CAAAA,CACbl1G,UAAY,CAAA,CAAA,CAAA,CAEpB,CASAg4H,4BAA6B37G,CAAAA,CAAAA,CAAuBzyB,EAAoB4F,CAAiB,CAAA,CACrF,IAAMyoI,CAAgD,CAAA,IAAA,CAAKhB,cAAe56G,CAAAA,CAAAA,CAAezyB,EAAY4F,CAAS,CAAA,CAY9G,OAX2D,CACvDguF,UAAWy6C,CAAiBpnI,EAAAA,YAAAA,EAAcqnI,mBAAsBD,CAAAA,CAAAA,EAAiBpnI,cAAc+X,UAAY7iB,EAAAA,IAAAA,CAAO,GAClHoyI,SAAWF,CAAAA,CAAAA,EAAiBjvF,aAC5BovF,aAAe,CAAA,EAAA,CACfC,mBAAqB,CAAA,EAAA,CACrBC,aAAcL,CAAiBppC,EAAAA,QAAAA,CAC/B0pC,gBAAkB,CAAA,EAAA,CAClBC,SAAUP,CAAAA,CAAAA,CAAAA,EAAiBpnI,YAAc+X,EAAAA,UAAAA,EAAY7iB,KACrD0yI,SAAWR,CAAAA,CAAAA,CAAAA,GAAiBjvF,YAC5B0vF,CAAAA,YAAAA,CAAcT,EAAAA,CAAiBppC,EAAAA,QAAAA,CAGvC,CAEAkpC,WAAAA,CAAYvoI,EAAmBuQ,CAAe,CAAA,CAC1C,GAAI,CAACA,EAAK+lB,OACN,CAAA,OAEJ,IAAMqU,CAAAA,CAAa,KAAKne,kBAAmB48F,CAAAA,aAAAA,CAAcppH,CAAS,CAClE,CAAA,GAAI2qC,GAAY3uD,IAAS,GAAA,CAAA,CACrB,OAEJ,GAAIu0B,EAAK+lB,OAAQ/8B,CAAAA,OAAAA,CAAQ,GAAG,CAAA,GAAM,GAAI,CAClC,IAAM4vI,CAAuBx+F,CAAAA,CAAAA,CAAWtqD,IAAIkwB,CAAK+lB,CAAAA,OAAO,CACxD,CAAA,OAAO,CAAC,CAAEl3E,GAAAA,CAAKmxD,CAAK+lB,CAAAA,OAAAA,CAASz0E,MAAOsnL,CAAY,CAAE,CACtD,CACA,IAAIC,CAAc74H,CAAAA,CAAAA,CAAK+lB,OAAQv3D,CAAAA,KAAAA,CAAM,GAAG,CACxCqqK,CAAAA,OAAAA,EAAc,IAAKpP,CAAAA,eAAAA,CAAgBh6H,CAAS,CAAIopI,CAAAA,CAAAA,CAAc,CAACA,CAAAA,CAAY,CAAC,CAAC,CAAA,CAC9DA,CAAYn4I,CAAAA,GAAAA,CAAK7xC,IAAS,CAAEA,GAAAA,CAAAA,CAAKyC,CAAAA,KAAAA,CAAO8oF,EAAWtqD,GAAIjhC,CAAAA,CAAG,CAAC,CAAG,CAAA,CAAA,CAC/DwH,OAAO,CAAC,CAAE/E,KAAAA,CAAAA,CAAK,IAAOA,CAAK,CAC7C,CAEAwnL,kBAAAA,CAAmBrpI,EAAiB,CAChC,IAAM2nE,CAA+B,CAAA,IAAA,CAAKz7E,sBAAsBU,qBAAqB,EAAA,CACrF,OAAO,CACH08I,YAAAA,CAAc,KAAKn+H,aAAclJ,CAAAA,4BAAAA,CAA6BjC,CAAW2nE,CAAAA,CAAAA,CAAc9+C,wBAAwB,CAEvH,CAAA,CAEQmxG,eAAgBh6H,CAAAA,CAAAA,CAAiB,CACrC,OAAO,IAAA,CAAKmL,aAAclJ,CAAAA,4BAAAA,CAA6BjC,EAAW,IAAK9T,CAAAA,qBAAAA,CAAsBU,uBAAwB21I,CAAAA,aAAa,CACtI,CASQmF,wBAAAA,CAAyB1nI,CAAiB,CAAA,CAC9C,GAAI,CAACA,CAAAA,CACD,OAEJ,IAAMupI,EAAiD,IAAK/8G,CAAAA,kBAAAA,CAAmB4tF,aAC/E,CAAA,OAAOmvB,EAAaA,CAAWlpJ,CAAAA,GAAAA,CAAI2f,GAAW3R,IAAI,EAAE,EAAIiT,KAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA5ISkmI,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA3kL,GAAA,CAAA,CAAA,KAAA,CAAlB2kL,EAAkB5pL,OAAlB4pL,CAAAA,CAAAA,CAAkBrxI,SAAAC,CAAAA,UAAAA,CAFf,MAAM,CAAA,CAAA,CAEhB,IAAOoxI,CAAAA,CAAPgC,SAAOhC,CAAkB,CAAA,ICZ/B,IAAYiC,GAAAA,CAAZ,SAAYA,CAAU,CAAA,CAClBA,OAAAA,CAAAA,CAAAA,EAAA,yBAAA,CAAA,GAAA,CAAA,CAAA,2BAAA,CACAA,EAAAA,CAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,sBACAA,CAAAA,CAAAA,CAAAA,CAAA,uBAAA,GAAA,CAAA,CAAA,yBACAA,CAAAA,CAAAA,CAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,QACAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,CAAA,kBAAA,CALQA,CAMZ,CAAA,CANYA,KAAU,EAAA,CCMtB,CAAA,IAAMC,GAAqB,GACrBC,CAAAA,IAAAA,CAAqB,CAEfC,CAAAA,GAAAA,CAAZ,SAAYA,CAAU,CAAA,CAClBA,OAAAA,CAAAA,CAAAA,EAAA,yBAAA,CAAA,GAAA,CAAA,CAAA,2BAAA,CACAA,EAAAA,CAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,wBAAA,CACAA,EAAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,SACAA,CAAAA,CAAAA,CAAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,kBACAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,cAAA,CALQA,CAMZ,CANYA,CAAAA,GAAAA,EAAU,EAAA,CAAA,CAQVC,GAAZ,CAAA,SAAYA,EAAU,CAClBA,OAAAA,CAAAA,CAAAA,CAAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,2BACAA,CAAAA,CAAAA,CAAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAFQA,CAAAA,CAGZ,EAHYA,GAAU,EAAA,EAAA,CAAA,CAQTC,MAAmB,IAAA,CAA1B,IAAOA,CAAAA,CAAP,MAAOA,CAAmB,CAC5Bj5K,WAA6B6sC,CAAAA,CAAAA,CAA4B,CAA5B,IAAAA,CAAAA,aAAAA,CAAAA,EAA+B,CAE5DqsI,kBAAAA,CAAmBC,EAA2BC,CAA+B,CAAA,CAAA,CAAA,CAAI,CAC7E,IAAM1pI,EAAU,IAAK7C,CAAAA,aAAAA,CAAc6C,OAC/B2pI,CAAAA,CAAAA,CAAmC,CACnCC,SAAWT,CAAAA,EAAAA,CACXU,SAAWT,CAAAA,IAAAA,CACXU,iBAAkB,CAAC9pI,CAAAA,CAAAA,CAEvB,OAAI,CAACypI,CAAAA,EAAoB,CAACzpI,CAAW,EAAA,CAAC0pI,CAGtCC,GAAAA,CAAAA,CAAaC,UAAY,IAAKG,CAAAA,YAAAA,EAC9BJ,CAAAA,CAAAA,CAAaE,UAAY,IAAKG,CAAAA,YAAAA,EACvBL,CAAAA,CAAAA,CACX,CAEQK,YAAY,EAAA,CAChB,OAAI,IAAK7sI,CAAAA,aAAAA,CAAc2zF,aAAiBo4C,EAAAA,GAAAA,CAAWe,mBACxCX,CAAAA,GAAAA,CAAWY,0BAElB,IAAK/sI,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,EAAMo4C,IAAWiB,sBAA0B,EAAA,IAAA,CAAKhtI,aAAc2zF,CAAAA,WAAAA,GAAgBo4C,GAAWkB,CAAAA,MAAAA,CAChHd,IAAWc,MAEfhB,CAAAA,IACX,CAEQW,YAAY,EAAA,CAChB,OAAI,IAAA,CAAK5sI,cAAc2zF,WAAW,EAAA,EAAMo4C,GAAWe,CAAAA,mBAAAA,CACxCZ,IAAWa,yBAElB,CAAA,IAAA,CAAK/sI,aAAc2zF,CAAAA,WAAAA,IAAiBo4C,GAAWiB,CAAAA,sBAAAA,CACxCd,GAAWc,CAAAA,sBAAAA,CAGlB,KAAKhtI,aAAc2zF,CAAAA,WAAAA,EAAgBo4C,CAAAA,GAAAA,CAAWiB,wBAA0B,IAAKhtI,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,EAAMo4C,IAAWkB,MAChHf,CAAAA,GAAAA,CAAWe,MAGlB,CAAA,IAAA,CAAKjtI,cAAc2zF,WAAW,EAAA,CAAKo4C,IAAWkB,MAAU,EAAA,IAAA,CAAKjtI,cAAc2zF,WAAW,EAAA,EAAMo4C,GAAWmB,CAAAA,gBAAAA,CAChGhB,IAAWgB,gBAEfhB,CAAAA,GAAAA,CAAWiB,YACtB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA5CSf,GAAmBjqJ,GAAAykB,CAAAA,IAAA,CAAA,CAAA,0BAAnBwlI,CAAmBlsL,CAAAA,OAAAA,CAAnBksL,EAAmB3zI,SAAAC,CAAAA,UAAAA,CAFhB,MAAM,CAAA,CAAA,CAEhB,IAAO0zI,CAAAA,CAAPgB,SAAOhB,CAAmB,CAAA,GCnBhC,CAAA,IAAaiB,KAAsB,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CADnCl6K,aAAA,CAEY,IAAA,CAAAm6K,YAAcpwJ,GAAOqwJ,CAAAA,IAAS,EAEtCC,CAAAA,SAAAA,CAAUrpL,EAAsCspL,CAAe,CAAA,CAAA,CAAA,CAAMC,CAAkB,CAAA,CAAA,CAAA,CAAOC,EAAa,CAAI,CAAA,CAAA,CAC3G,GAAIxpL,CAAAA,CAAO,CACP,IAAMypL,CAAAA,CAAkBD,GAAaE,EAAa1pL,CAAAA,CAAAA,CAAMm3D,OAAQ,IAAKgyH,CAAAA,WAAAA,CAAa,OAAO,CAAA,EAAK,GAC9F,OAAIG,CAAAA,CACOC,CAAkB,CAAA,CAAA,EAAGE,CAAe,CAAIzpL,CAAAA,EAAAA,CAAAA,CAAMs5D,QAAQ,CAAA,CAAA,CAAK,GAAGt5D,CAAMs5D,CAAAA,QAAQ,IAAImwH,CAAe,CAAA,CAAA,CAE/FA,CAEf,CACA,OAAO,EACX,CAEAE,YAAYpwH,CAAgB,CAAA,CACxB,GAAI,CAACA,EACD,OAEJ,IAAMqwH,CAAmBrwH,CAAAA,CAAAA,CAAS5tB,QAAQ,SAAW,CAAA,EAAE,EACjD2tB,CAAW,CAAA,IAAA,CAAKuwH,oBAAoBD,CAAgB,CAAA,CACpDE,CAAuBF,CAAAA,CAAAA,CAAiBj+I,QAAQ2tB,CAAU,CAAA,EAAE,CAC5DywH,CAAAA,CAAAA,CAAe,KAAKC,iBAAkBF,CAAAA,CAAoB,CAEhE,CAAA,OAAO,CAAExwH,QAAAA,CAAAA,CAAAA,CAAUnC,OAAQ4yH,CAAY,CAC3C,CAEQC,iBAAkBzwH,CAAAA,CAAAA,CAAgB,CAMtC,IAAM0wH,EALoB1wH,CAAS5tB,CAAAA,OAAAA,CAAQ,IAAM,CAAA,EAAE,EACPA,OAAQ,CAAA,IAAA,CAAM,EAAE,CAAA,CAClBA,QAAQ,KAAO,CAAA,EAAE,CACZA,CAAAA,OAAAA,CAAQ,MAAO,EAAE,CAAA,CAETzzB,KAAM,CAAA,cAAc,IAAI,CAAC,CAAA,EAAK,EACjFgyK,CAAAA,CAAAA,CAAmBD,EACvB,GAAIA,CAAAA,CAAwBnyK,MAAS,CAAA,CAAA,CAAG,CAEpC,IAAMmhD,CAAAA,CAAWgxH,EAAwBxrL,KAAM,CAAA,CAAA,CAAG0rL,EAAW,CACvDjxH,CAAAA,CAAAA,CAAc+wH,CAAwBxrL,CAAAA,KAAAA,CAAM0rL,EAAW,CAC7DD,CAAAA,CAAAA,CAAmB,CAAGjxH,EAAAA,CAAQ,IAAIC,CAAW,CAAA,EACjD,CAEA,OAAOQ,WAAWwwH,CAAiBv+I,CAAAA,OAAAA,CAAQ,KAAM,EAAE,CAAC,CACxD,CAEQk+I,mBAAAA,CAAoBtwH,CAAgB,CAAA,CACxC,IAAMC,CAAkBD,CAAAA,CAAAA,CAASrhD,KAAM,CAAA,YAAY,EAC/CohD,CAAW,CAAA,EAAA,CAEf,GAAIE,CAAAA,EAAmBA,EAAgB1hD,MAAS,CAAA,CAAA,CAAG,CAC/C,IAASrb,IAAAA,CAAAA,CAAI,EAAGA,CAAI+8D,CAAAA,CAAAA,CAAgB1hD,MAAQrb,CAAAA,CAAAA,EAAAA,CACxC68D,EAAWA,CAAWE,CAAAA,CAAAA,CAAgB/8D,CAAC,CAAA,CAE3C68D,EAAWA,CAAS3tB,CAAAA,OAAAA,CAAQ,IAAM,CAAA,EAAE,EACpC2tB,CAAWA,CAAAA,CAAAA,CAAS3tB,QAAQ,KAAO,CAAA,EAAE,EACzC,CACA,OAAO2tB,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAzDS4vH,EAAsB,CAAtBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAsBntL,OAAtBmtL,CAAAA,CAAAA,CAAsB50I,UAAAC,UADT,CAAA,MAAM,CAAA,CAAA,CAC1B,IAAO20I,CAAPkB,CAAAA,CAAAA,CAAAA,OAAOlB,CAAsB,CAAA,GAAA,CCInC,IAAamB,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAClCr7K,WAAAA,CAA6Bs7K,EAAuC,CAAvC,IAAA,CAAAA,eAAAA,CAAAA,EAA0C,CAEvE/vJ,SAAUv6B,CAAAA,CAAAA,CAAsCspL,EAAuBC,CAA0BC,CAAAA,CAAAA,CAAmB,CAChH,OAAO,IAAA,CAAKc,eAAgBjB,CAAAA,SAAAA,CAAUrpL,EAAOspL,CAAcC,CAAAA,CAAAA,CAAiBC,CAAU,CAC1F,yCALSa,CAAyBv9I,EAAAA,GAAAA,CAAAo8I,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAqB,IAAA,CAAA,CAAA,IAAA,CAAA,yBAAA,CAAA,IAAA,CAAzBF,EAAyBtpD,IAAA,CAAA,CAAA,CAAA,CAAApnG,WAAA,CAAA,CAAA,CAAA,CAAhC,CAAA,IAAO0wJ,EAAPG,CAAOH,CAAAA,OAAAA,CAAyB,CAAA,GAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GCFtBtwJ,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CACIC,GAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CACJC,IADyC+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,SAAAomC,CAAAonH,CAAAA,SAAAA,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAPjD1wJ,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAKIoC,GAAA,CAAAuuJ,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAKA3wJ,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAsD8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA87I,EAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAEpD1wJ,IAAO,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAu0I,EAAA,CAAA,CAAA,CAAA,CAVTvyI,EAAAonC,CAAAA,CAAAA,CAAAunH,aAAA,CAAA,CACA1uJ,GAAA,gBAAAmnC,CAAAA,CAAAA,CAAAwnH,WAAA,GAAA,UAAA,CAAmD,CAAA,cAAA,CAAAxnH,EAAAwnH,SAAA,EAAA,GAAA,MAAA,CAAA,CAEnD7tJ,IAAAuuI,CAAAA,EAAAA,CAAAloG,CAAAynH,CAAAA,QAAAA,IAAAznH,CAAA0nH,CAAAA,cAAAA,GAAA,CAAA,CAAA,CAAA,CAAA,EAKuB/tJ,EAAA,EAAA,CAAAd,EAAA,CAAA,SAAA,CAAAmnC,EAAAmmH,UAAA,EAAA,CAA+BxsJ,CAAAA,EAAAA,GAAA8R,EAAAk8I,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA3nH,EAAAvsC,YAAA,EAAA,CAAAusC,EAAAimH,YAAA,EAAA,CAAAjmH,EAAA4nH,mBAAA,EAAA,CAAA5nH,CAAAmmH,CAAAA,UAAAA,EAAA,CAAA,EAAA,CAAA,CAAA,SAAA0B,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAX9D/uJ,EAAA,CAAA,CAAA,CAAAgvJ,GAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,kBAAA5f,EAAAloG,CAAAA,CAAAA,CAAAvsC,cAAA,CAAA,CAAA,CAAA,EAAA,ECcJ,CAAA,CAAA,IAAas0J,GAAsB,CAAA,CAAA,IAAA,CAA7B,IAAOA,CAAAA,CAAP,MAAOA,CAAsB,CARnCp8K,WAAA,EAAA,CASY,IAAAq8K,CAAAA,aAAAA,CAAgBz3J,GAAsC6rB,KAAS,CAAA,CAAA,CACvE,KAAAsrI,cAAiBn3J,CAAAA,EAAAA,CAAgB,EAAK,CAEtC,CAAA,IAAA,CAAA8+I,QAAWt4I,CAAAA,EAAAA,CAAe,EAAI,CAC9B,CAAA,IAAA,CAAAqwJ,SAAYrwJ,CAAAA,EAAAA,CAAc,EAAE,CAC5B,CAAA,IAAA,CAAA89B,YAAe99B,CAAAA,EAAAA,GACf,IAAAywJ,CAAAA,SAAAA,CAAYzwJ,GAA8B,UAAU,CAAA,CACpD,KAAA0wJ,QAAW1wJ,CAAAA,EAAAA,CAAe,CAAI,CAAA,CAAA,CAC9B,KAAAovJ,UAAapvJ,CAAAA,EAAAA,CAAe,CAAI,CAAA,CAAA,CAChC,KAAAkvJ,YAAelvJ,CAAAA,EAAAA,CAAe,CAAI,CAAA,CAAA,CAClC,KAAA6wJ,mBAAsB7wJ,CAAAA,EAAAA,CAAe,EAAK,CAC1C,CAAA,IAAA,CAAAwwJ,YAAcxwJ,EAAc,CAAA,EAAE,EAE9B,CAAA,IAAItD,cAAY,CACZ,OAAOiE,EAAS,CAAA,IAAM,KAAKswJ,aAAa,EAAA,EAAM,IAAKnzH,CAAAA,YAAAA,EAAc,CACrE,CAEA,IAAIphC,YAAaw0J,CAAAA,CAAAA,CAAsC,CACnD,IAAKD,CAAAA,aAAAA,CAAcv2K,GAAIw2K,CAAAA,CAAO,EAClC,CApBSF,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAsB,CAAtBA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAsB3xJ,UAAA,CAAA,CAAA,mBAAA,CAAA,EAAA8T,MAAA,CAAA,CAAAmlI,SAAA,CAAA,CAAA,CAAA,UAAA,CAAA+X,CAAAA,SAAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAAvyH,CAAAA,YAAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA2yH,CAAAA,SAAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAAC,CAAAA,QAAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAAtB,UAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EAAAF,YAAA,CAAA,CAAA,CAAA,CAAA,cAAA,EAAA2B,mBAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,EAAAL,WAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAAjxJ,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,EAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,OAAA,CAAA,iBAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,EAAA,QAAA,CAAA,EAAAC,QAAA,CAAA,SAAAhS,EAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EDfnCO,GAAA,CAAAovJ,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,OAAAhgB,EAAAr6J,CAAAA,CAAAA,CAAAwhK,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCYc8Y,KAAsBnB,EAAyB,CAAA,CAAA9sJ,OAAA,CAAA,CAAA;AAAA,qFAAA,CAAA,CAAA,CAAAE,gBAAA,CAAA,CAAA,CAGvD,CAAA,IAAO2tJ,EAAPK,CAAOL,CAAAA,OAAAA,CAAsB,CAAA,GAAA,CCVnC,IAAMM,IAA4B,CAAA,IAAA,CAC5BC,GAAmC,GACnCC,CAAAA,EAAAA,CAA6B,EAMtBC,IAAuC,CAAA,CAAA,IAAA,CAA9C,IAAOA,EAAP,MAAOA,CAAuC,CAShD78K,WAA6B88K,CAAAA,CAAAA,CAAuC,CAAvC,IAAAA,CAAAA,eAAAA,CAAAA,CAR7B,CAAA,IAAA,CAAAC,oBAAsB3xJ,EAAe,CAAA,CAAA,CAAI,EACzC,IAAA4xJ,CAAAA,aAAAA,CAAgB5xJ,GAAcwxJ,EAA0B,CAAA,CACxD,IAAAK,CAAAA,mBAAAA,CAAsB7xJ,GAAcuxJ,EAAgC,CAAA,CACpE,IAAAO,CAAAA,YAAAA,CAAe9xJ,GAAcsxJ,IAAyB,CAAA,CACtD,IAAAnC,CAAAA,eAAAA,CAAkBnvJ,GAAe,CAAK,CAAA,EAIiC,CAEvEqB,WAAW,EAAA,CACPyd,cAAc,IAAKizI,CAAAA,qBAAqB,EAC5C,CAEA1hJ,UAAQ,CACA,IAAA,CAAKshJ,qBACL7yI,GAAAA,aAAAA,CAAc,KAAKizI,qBAAqB,CAAA,CACxC,IAAKA,CAAAA,qBAAAA,CAAwBrzI,YAAY,IAAK,CAC1C,IAAMszI,CAAU,CAAA,IAAA,CAAKC,sBAAsB,IAAKP,CAAAA,eAAAA,CAAgBh1J,YAAY,EAAE,EAC9E,IAAKg1J,CAAAA,eAAAA,CAAgBh1J,YAAes1J,CAAAA,EACxC,EAAG,IAAKF,CAAAA,YAAAA,EAAc,CAAA,EAE9B,CAEQG,qBAAsBv1J,CAAAA,CAAAA,CAA2C,CAErE,GAAI,CAACA,EACD,OAGJ,GAAM,CAAEwiC,QAAAA,CAAAA,EAAUnC,MAAAA,CAAAA,CAAM,EAAKrgC,CACzBw1J,CAAAA,CAAAA,CAAYn1H,EAAS,IAAK60H,CAAAA,aAAAA,EAAkBO,CAAAA,GAAAA,CAChD,OAAO,CAAEjzH,QAAAA,CAAAA,EAAUnC,MAAQm1H,CAAAA,CAAS,CACxC,CAlCST,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAuC/+I,GAAAs+I,CAAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAoB,IAAA,CAAA,CAAA,IAAA,CAAvCX,EAAuCpyJ,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA,EAAA8T,MAAA,CAAA,CAAAw+I,oBAAA,CAAA,CAAA,CAAA,qBAAA,CAAAC,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAAC,CAAAA,mBAAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,EAAAC,YAAA,CAAA,CAAA,CAAA,CAAA,cAAA,EAAA3C,eAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA5vJ,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA9C,IAAOkyJ,CAAPY,CAAAA,CAAAA,CAAAA,OAAOZ,CAAuC,CAAA,ICR7C,IAAMa,EAAAA,CAAkC,0BAClCC,CAAAA,EAAAA,CAAgC,yBAMhCC,IAAkC,CAAA,CAAA,IAAA,CAAzC,IAAOA,CAAAA,CAAP,MAAOA,CAAkC,CAK3C59K,WACqB69K,CAAAA,CAAAA,CACAvC,EAAuC,CADvC,IAAA,CAAAuC,cAAAA,CACA,CAAA,IAAA,CAAAvC,gBAAAA,CANrB,CAAA,IAAA,CAAAwC,aAAgB1yJ,CAAAA,EAAAA,CAAc,EAAE,CAChC,CAAA,IAAA,CAAA2yJ,mBAAqB3yJ,EAAcsyJ,CAAAA,EAA+B,EAClE,IAAAM,CAAAA,cAAAA,CAAiB5yJ,EAAcuyJ,CAAAA,EAA6B,EA4BpD,IAAAM,CAAAA,0BAAAA,CAA8B1xK,CAA6B,EAAA,CAC/D,IAAM2xK,CAAc3xK,CAAAA,CAAAA,CAAG2c,MAAU,EAAA,GACjC,IAAKi1J,CAAAA,WAAAA,CAAYD,EAAW1uJ,GAAI,CAAA,IAAA,CAAKsuJ,eAAe,CAAA,EAAG11H,iBAAqB,EAAA,CAAA,CAAA,CAAO81H,EAAW1uJ,GAAI,CAAA,IAAA,CAAKsuJ,eAAe,CAAA,EAAG31H,QAAU,EAAE,EACzI,EA1BG,CAEH17B,aAAW,CACPC,mBAAAA,CAAoBgxJ,GAAiC,IAAKO,CAAAA,0BAA0B,EACxF,CAEAxiJ,QAAAA,EAAQ,CACJlP,gBAAAA,CAAiB,KAAKwxJ,kBAAkB,EAAA,CAAI,IAAKE,CAAAA,0BAA0B,EAC3E,IAAKG,CAAAA,0BAAAA,CAA2B,IAAKJ,CAAAA,cAAAA,EAAgB,EACzD,CAEAI,2BAA2BJ,CAAsB,CAAA,CAC7C,IAAIK,CAAgB,CAAA,CAChBv5I,MAAQ,CAAA,IAAA,CAAKg5I,eACb9sL,CAAAA,KAAAA,CAAO,CACHo3D,iBAAmB,CAAA,CAAA,CAAA,CACnBD,OAAQ,EAGhBxD,CAAAA,CAAAA,CAAAA,aAAAA,CAAc,IAAID,WAAAA,CAAYs5H,EAAgB,CAAE90J,MAAAA,CAAQm1J,CAAa,CAAE,CAAC,EACxE,IAAKF,CAAAA,WAAAA,CAAYE,CAAcrtL,CAAAA,KAAAA,CAAMo3D,kBAAmBi2H,CAAcrtL,CAAAA,KAAAA,CAAMm3D,MAAM,EACtF,CAOQg2H,YAAY/1H,CAA4BmC,CAAAA,CAAAA,CAAgB,CAC5D,IAAM+zH,EAAoB,IAAKhD,CAAAA,eAAAA,CAAgBX,YAAYpwH,CAAQ,CAAA,CACnE,KAAKszH,aAAc9B,CAAAA,cAAAA,CAAej2K,GAAIsiD,CAAAA,CAAiB,EACvD,IAAKy1H,CAAAA,aAAAA,CAAc/1J,aAAew2J,EACtC,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAxCSV,GAAkC9/I,GAAAs+I,CAAAA,GAAA,CAAAt+I,CAAAA,GAAAA,CAAAo8I,GAAA,CAAA,CAAA,yBAAlC0D,CAAkCnzJ,CAAAA,SAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,iCAAA,CAAA,EAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAu/I,aAAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAAC,CAAAA,kBAAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,EAAAC,cAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,CAAArzJ,CAAAA,UAAAA,CAAA,EAAA,CAAA,CAAA,CAAzC,IAAOizJ,CAAPW,CAAAA,CAAAA,CAAAA,OAAOX,CAAkC,CAAA,GAAA,CCL/C,IAAMY,GAAAA,CAAY,CACd,CAACC,IAAAA,CAAgBC,KAAK,EAAG,CACrBC,mBAAoB,qBACpBC,CAAAA,eAAAA,CAAiB,mBAErB,CAAA,CAAA,CAACH,KAAgBI,IAAI,EAAG,CACpBF,kBAAAA,CAAoB,0BACpBC,eAAiB,CAAA,wBAAA,CAAA,CAAA,CAQZE,EAA2B,CAAA,CAAA,IAAA,CAAlC,IAAOA,CAAAA,CAAP,MAAOA,CAA2B,CAgBpC9+K,aAAA,CAfA,IAAA,CAAA8kC,MAAS1Z,CAAAA,EAAAA,CAAMua,UACf,CAAA,IAAA,CAAAud,YAAc93B,EAAMua,CAAAA,QAAAA,GACpB,IAAAo5I,CAAAA,KAAAA,CAAQ3zJ,EAAM,CAAA,CAAA,CAAK,EACnB,IAAA63B,CAAAA,kBAAAA,CAAqB73B,IACrB,CAAA,IAAA,CAAA4zJ,4BAA8B5zJ,EAAMua,CAAAA,QAAAA,EAEpC,CAAA,IAAA,CAAAs5I,aAAer6J,EAAO,CAAA,IAAA,CAAKm6J,KAAK,EAAE,EAGjB,IAAAG,CAAAA,aAAAA,CAAgBn1J,GAAOC,CAAAA,IAAU,EACjC,IAAAysC,CAAAA,gBAAAA,CAAmB1sC,IAAO+2B,IAAgB,CAAA,CAC1C,KAAA7T,aAAgBljB,CAAAA,GAAAA,CAAO2pB,EAAa,CAAA,CACpC,KAAA+qE,WAAc10F,CAAAA,GAAAA,CAAO6sD,IAAe,CACpC,CAAA,IAAA,CAAA0wB,YAAcv9E,GAAOkU,CAAAA,GAAW,EAElC,CAEf5R,iBAAe,CACX,IAAA,CAAK/D,aAAe,IAAKmuC,CAAAA,gBAAAA,CAAiBlV,6BAA6Bl7B,SAAW+6B,CAAAA,CAAAA,EAAkB,CAChG,GAAIA,GAAkBA,CAAet4C,CAAAA,MAAAA,CAAS,EAAG,CAC7C,IAAM6tE,EAAa,IAAKlgB,CAAAA,gBAAAA,CAAiBhX,qBAAsB,CAAA,CAC3D3a,OAAQ,IAAKA,CAAAA,MAAAA,GACb6a,UAAY,CAAA,CAAA,CAAA,CACf,EACD,IAAKs/H,CAAAA,YAAAA,CAAan5K,GAAI6wE,CAAAA,CAAU,EAChC,IAAKwoG,CAAAA,iBAAAA,GACT,CACJ,CAAC,EACL,CAGAC,YAAAA,CAAavzK,CAAY,CAAA,CAErB,GADAA,CAAM22B,CAAAA,wBAAAA,GACF,IAAK8kE,CAAAA,WAAAA,CAAYp7D,gBACjB,IAAKuqB,CAAAA,gBAAAA,CAAiBtU,mBAAoB,CAAA,CACtCrd,OAAQ,IAAKA,CAAAA,MAAAA,EACb6a,CAAAA,UAAAA,CAAY,GACZsD,kBAAoB,CAAA,IAAA,CAAKA,kBAAkB,EAAA,CAC3CC,YAAa,IAAKA,CAAAA,WAAAA,GACrB,CACD,CAAA,IAAA,CAAK+7H,aAAan5K,GAAI,CAAA,CAAC,IAAKm5K,CAAAA,YAAAA,EAAc,CAC1C,CAAA,IAAA,CAAKE,mBACF,CAAA,KAAA,CACH,KAAKlyI,aAAcmgF,CAAAA,SAAAA,CAAU,eAAiB,CAAA,CAC1CtoF,OAAQ,IAAKA,CAAAA,MAAAA,GACb6a,UAAY,CAAA,CAAA,CAAA,CACZsD,mBAAoB,IAAKA,CAAAA,kBAAAA,EACzBC,CAAAA,WAAAA,CAAa,KAAKA,WAAW,EAAA,CAChC,CACD,CAAA,IAAM6jE,EAAwB,CAC1B1uB,eAAAA,CAAiB,WAErB,CAAA,CAAA,IAAA,CAAKomB,YAAY3wD,IAAKi5D,CAAAA,CAAgB,EAC1C,CACJ,CAEQo4D,mBAAiB,CACrB,IAAME,CAAqB,CAAA,IAAA,CAAKH,eAAe9yJ,aAAektE,EAAAA,aAAAA,CAAc,4BAA4B,CACxG,CAAA,GAAI,KAAK2lF,YAAY,EAAA,CAAI,CACrBI,CAAAA,EAAoBx9I,WAAWv/B,GAAIk8K,CAAAA,GAAAA,CAAU,KAAKQ,2BAA2B,EAAE,EAAEJ,eAAe,CAAA,CAChGS,CAAoBx9I,EAAAA,SAAAA,EAAWnY,OAAO80J,GAAU,CAAA,IAAA,CAAKQ,2BAA2B,EAAE,EAAEL,kBAAkB,CAAA,CACtG,MACJ,CACAU,GAAoBx9I,SAAWv/B,EAAAA,GAAAA,CAAIk8K,IAAU,IAAKQ,CAAAA,2BAAAA,EAA6B,CAAEL,CAAAA,kBAAkB,CACnGU,CAAAA,CAAAA,EAAoBx9I,WAAWnY,MAAO80J,CAAAA,GAAAA,CAAU,KAAKQ,2BAA2B,EAAE,EAAEJ,eAAe,EACvG,CAEAnyJ,WAAAA,EAAW,CACP,IAAKnE,CAAAA,YAAAA,CAAa9B,cACtB,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAtESs4J,EAA2B,CAA3BA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA2Br0J,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,CAAAsxE,aAAA,SAAAnvE,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CAA3BY,EAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA,OAAApzD,CAAAA,CAAAk9K,YAAA9pH,CAAAA,CAAA,CAAoB,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA3B,IAAOwpH,CAAPQ,CAAAA,CAAAA,CAAAA,OAAOR,CAA2B,CAAA,GAAA,CCGxC,IAAaS,EAAAA,CAAAA,CAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAgB1Bv/K,WAAsCi9B,CAAAA,CAAAA,CAAkB,CAAlB,IAAA,CAAAA,SAAAA,CAftC,CAAA,IAAA,CAAAyiB,IAAOt0B,CAAAA,EAAAA,CAAMua,UACb,CAAA,IAAA,CAAAs2B,YAAe7wC,CAAAA,EAAAA,CAAMua,UACrB,CAAA,IAAA,CAAAwJ,UAAY/jB,EAAMua,CAAAA,QAAAA,GAClB,IAAA8wG,CAAAA,QAAAA,CAAWrrH,EAAwC,CAAA,EAAE,CAEpC,CAAA,IAAA,CAAAuwC,mBAAqB5xC,GAAOk2C,CAAAA,IAAkB,EAC9C,IAAA3lB,CAAAA,aAAAA,CAAgBvwB,GAAOwc,CAAAA,EAAa,EACpC,IAAAsG,CAAAA,aAAAA,CAAgB9iB,IAAO0pB,IAAa,CAAA,CACpC,KAAAm8C,KAAQ7lE,CAAAA,GAAAA,CAAO+xE,IAAc,CAAA,CAC7B,KAAA60E,qBAAwB5mJ,CAAAA,GAAAA,CAAOsrH,EAAqB,CAAA,CACpD,KAAAmqC,cAAiBz1J,CAAAA,GAAAA,CAAO6rJ,CAAc,CAAA,CACtC,KAAA/xD,sBAAyB95F,CAAAA,GAAAA,CAAOgwB,IAA0B,CAC1D,CAAA,IAAA,CAAA1e,sBAAwBtR,GAAOuU,CAAAA,GAAqB,CACpD,CAAA,IAAA,CAAAs+H,aAAe7yI,GAAO2c,CAAAA,EAAmB,EAEC,CAG3D04I,YAAAA,CAAavzK,EAAY,CACrBA,CAAAA,CAAM22B,wBAAwB,EAAA,CAC9B,IAAM1G,CAA0B,CAAA,IAAA,CAAKT,sBAAsBU,qBAAqB,EAAA,CAC1EskH,EAAmC,IAAKhlH,CAAAA,qBAAAA,CAAsBsrH,sBAAsB,EAAA,CACpFnpG,EAAgC,IAAKniB,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,EAAII,SAClFggJ,CAAiC,CAAA,IAAA,CAAKnlI,aAAczI,CAAAA,8CAAAA,CACtD,KAAK1C,SAAS,EAAA,CACdrT,EAAS4jJ,2BAA2B,CAAA,CAElCvO,EAA2B5oI,MAAOo3I,CAAAA,WAAAA,CAClCjwI,CAAmB,CAAA,IAAA,CAAK7C,cAAc6C,OACtCkwI,CAAAA,CAAAA,CAAyB,KAAK3iJ,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAE,CAAA,CAAC,CACrEiyF,CAAAA,CAAAA,CAAoB,CACtB3xH,IAAM,CAAA,IAAA,CAAKA,MACX0iE,CAAAA,SAAAA,CAAW,KAAK1iE,IAAI,EAAA,EAAIpsD,IACxBuqC,CAAAA,GAAAA,CAAK,KAAKgiJ,eAAe,EAAA,CACzBhqH,kBAAmB,IAAKvb,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKsO,CAAAA,IAAAA,EAAQvQ,EAAAA,SAAAA,EAAa,GAAIrT,CAASi8B,CAAAA,uBAAuB,EACjIiiG,YAAc3Z,CAAAA,CAAAA,EAAiBuxB,WAAWkO,kBAC1Cv6G,CAAAA,QAAAA,CAAU,IAAK7lB,CAAAA,IAAAA,IAAQ6lB,QACvB4lG,CAAAA,GAAAA,CAAK9qB,GAAiBuxB,SAAWzG,EAAAA,GAAAA,EAAO3tH,GAAgBuiI,aACxDrwI,CAAAA,OAAAA,CAAAA,CACAwqD,CAAAA,YAAAA,CAAc,KAAKx6C,IAAI,EAAA,EAAIimB,UAC3Bo8B,gBAAkB,CAAA,YAAA,CAClB9lC,aAAc,IAAKA,CAAAA,YAAAA,EAAgBg5F,EAAAA,aAAAA,CACnCuY,kBAAmB,CACnB/2B,CAAAA,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,GACfv5E,YAAc,CAAA,CAAA,CACd8iH,WAAa,CAAA,IAAA,CAAKpwF,MAAM6B,QAASxoD,CAAAA,MAAAA,CACjCnG,MAAO0a,CAAgByiI,EAAAA,eAAAA,CACvB7wJ,QAAS,EACT+f,CAAAA,SAAAA,CAAW,IAAKuQ,CAAAA,IAAAA,IAAQvQ,SACxBc,CAAAA,WAAAA,CAAa1H,OAAOC,QAASC,CAAAA,IAAAA,CAC7Bk4H,aAAc,eACdj7H,CAAAA,IAAAA,CAAM,IAAKga,CAAAA,IAAAA,IAAQha,IACnByrI,CAAAA,gBAAAA,CAAAA,GAGJ,GAAIsO,CAAAA,CAAuB,CACvB,IAAKS,CAAAA,kCAAAA,EACL,CAAA,IAAA,CAAKvP,sBAAsBn7B,qBAAsB67B,CAAAA,CAAiB,CAClE,CAAA,MACJ,CACA,IAAMv2I,CAAAA,CAAY4U,CACZ,CAAA,IAAA,CAAK8vI,eAAezJ,mBAAmB,EAAA,CAAGoK,wBAAwB9O,CAAiB,CAAA,CACnF,KAAKmO,cAAezJ,CAAAA,mBAAAA,EAAsBqK,CAAAA,mBAAAA,CAAoB/O,CAAiB,CACrFuO,CAAAA,CAAAA,CAAuB/9I,UAAUv/B,GAAI,CAAA,uBAAuB,EAC5Dw4B,CAAUu8C,CAAAA,WAAAA,EAAchxD,CAAAA,SAAAA,CAAU,IAAK,CAC/B8qJ,CAAAA,EACA5oI,OAAOm/C,QAAS,CAAA,CAAA,CAAGypF,CAAgB,CAEvCzhI,CAAAA,CAAAA,CAAU,IAAKqpB,CAAAA,aAAAA,GAAkB,IAAKsnH,CAAAA,oBAAAA,GAC1C,CAAC,EACL,CAEAH,kCAAAA,EAAkC,CAE9B,GAD6C,KAAKr8D,sBAAuB1pE,CAAAA,sBAAAA,IACpDiyE,KAAO,CAAA,CACxB,IAAMk0D,CAAoB/3I,CAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,CACtC83I,EACAC,CAAuB,CAAA,EAAA,CACvB,KAAKC,kBAAmBH,CAAAA,CAAS,GACjCC,CAAeD,CAAAA,CAAAA,CAAUx0I,MAAO,CAAA,CAAA,CAAGw0I,EAAU53I,OAAQ,CAAA,GAAG,CAAC,CACzD83I,CAAAA,CAAAA,CAAeF,EAAUx0I,MAAOw0I,CAAAA,CAAAA,CAAU53I,OAAQ,CAAA,GAAG,CAAC,CAEtD63I,EAAAA,CAAAA,CAAeD,EAEf,IAAKI,CAAAA,kBAAAA,CAAmBH,CAAY,CACpCA,CAAAA,CAAAA,CAAeA,CAAe,CAAA,YAAA,CAAe,KAAK7gI,IAAI,EAAA,EAAI5a,OAE1Dy7I,CAAeA,CAAAA,CAAAA,CAAe,cAAgB,IAAK7gI,CAAAA,IAAAA,EAAQ5a,EAAAA,MAAAA,CAE/Dy7I,EAAeA,CAAeC,CAAAA,CAAAA,CAC9Bj4I,OAAO8mI,OAAQC,CAAAA,SAAAA,CAAU9mI,SAASC,IAAM,CAAA,EAAA,CAAI83I,CAAY,EAC5D,CACJ,CAEAG,kBAAAA,CAAmBhnI,EAAW,CAC1B,OAAIA,EAAIuhE,WAAY,CAAA,GAAG,CAAI,CAAA,CAAA,GAAMvhE,EAAI5wC,MAIzC,CAEA23K,kBAAmB/mI,CAAAA,CAAAA,CAAW,CAC1B,OAAIA,CAAAA,EAAAA,CAAOA,EAAAA,CAAAA,CAAIhR,QAAQ,GAAG,CAAA,CAAI,GAIlC,CAEA23I,oBAAAA,EAAoB,CACe,IAAKpjJ,CAAAA,QAAAA,CAASmiD,oBAAqB,CAAA,MAAM,EAAE,CAAC,CAAA,CACpDv9C,UAAUnY,MAAO,CAAA,uBAAuB,EAC/D,IAAK0lJ,CAAAA,oCAAAA,GACT,CACAA,sCAAoC,CAChC,IAAMwQ,EAAyB,IAAK3iJ,CAAAA,QAAAA,CAASmiD,qBAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAE3E,GAD6C,IAAKykC,CAAAA,sBAAAA,CAAuB1pE,sBAAsB,EAAA,EAC1EiyE,MAAO,CACxB,IAAM7uF,CAAQ,CAAA,WAAA,CACViL,SAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAI,CAAA,CAAA,CAAA,EAAM,CAACqiJ,CAAuB/9I,CAAAA,SAAAA,CAAUC,QAAS,CAAA,uBAAuB,GACvGyG,MAAO8mI,CAAAA,OAAAA,CAAQC,UAAU9mI,QAASC,CAAAA,IAAAA,CAAM,GAAID,QAASC,CAAAA,IAAAA,CAAKqD,MAAO,CAAA,CAAA,CAAGtD,SAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAI,CAAA,CAAC,CAAC,EAE7G,CACJ,CAEAw7B,aAAAA,EAAa,CACT,IAAKymH,CAAAA,cAAAA,CAAezJ,mBAAmB,EAAA,CAAG4K,2BAC9C,CAEAd,eAAe,EAAA,CACX,IAAIhV,CAA6B,CAAA,EAAA,CAC3B/4H,EAAyB,IAAKzW,CAAAA,qBAAAA,CAAsBU,uBACpD0xI,CAAAA,CAAAA,CAAoB,IAAKnzH,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKsO,CAAAA,IAAAA,IAAQvQ,SAAa,EAAA,EAAA,CAAI2C,EAAQ27H,iBAAiB,CAAA,CAC3Hz3G,CAAe,CAAA,IAAA,CAAK1b,cAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,MAAQvQ,EAAAA,SAAAA,EAAa,GAAI2C,CAAQkmB,CAAAA,wBAAwB,CACnI,CAAA,OAAI,KAAKtY,IAAI,EAAA,EAAIha,MAAM7H,GACf4vI,GAAAA,CAAAA,EAAqBz3G,KACrB60G,CAAqB,CAAA,IAAA,CAAKlvG,kBAAmBy9F,CAAAA,YAAAA,CAAa,KAAK15G,IAAI,EAAA,EAAI5a,QAAU,EAAI,CAAA,QAAQ,GAGjGgN,CAAQ9K,CAAAA,qBAAAA,GACR6jI,CAAqB,CAAA,IAAA,CAAKjO,aAAa31H,WAAY4jI,CAAAA,CAAAA,CAAoB,KAAKnrH,IAAI,EAAA,EAAI5a,QAAU,EAAE,CAAA,CAAA,CAE7F+lI,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA/IS0U,GAAiBzhJ,GAgBN49D,CAAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA8hF,IAAA,CAAA,CAAA,IAAA,CAhBnB+B,EAAiB90J,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAAsxE,CAAAA,YAAAA,CAAA,SAAAnvE,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,GAAjBY,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,OAAApzD,CAAAk9K,CAAAA,YAAAA,CAAA9pH,CAAA,CACb,CAAA,EADM,CAAA,CAAA,MAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAOiqH,EAAPqB,CAAOrB,CAAAA,OAAAA,CAAiB,ICf9B,CAAA,IAAasB,EAA0B,CAAA,CAAA,IAAA,CAAjC,IAAOA,CAAAA,CAAP,MAAOA,CAA0B,CAEnC7gL,YACqBq7B,CACAif,CAAAA,CAAAA,CAA4B,CAD5B,IAAA,CAAAjf,sBAAAA,CACA,CAAA,IAAA,CAAAif,cAAAA,CAEjB,CAAA,IAAA,CAAKw8D,cAAgB,IAAKz7E,CAAAA,qBAAAA,CAAsBU,qBAAqB,GACzE,CAEA+kJ,mBAAoB3xI,CAAAA,CAAAA,CAAiB,CACjC,OAAO,CACH2sI,SAAU,IAAKiF,CAAAA,gBAAAA,CAAiB5xI,CAAS,CAAA,CACzCssI,UAAW,IAAKuF,CAAAA,eAAAA,GAExB,CAEQD,gBAAAA,CAAiB5xI,EAAiB,CACtC,OAAO,IAAKmL,CAAAA,aAAAA,CAAclJ,6BAA6BjC,CAAW,CAAA,IAAA,CAAK2nE,cAAc1hD,aAAa,CACtG,CAEQ4rH,eAAe,EAAA,CAEnB,OAAO,CAAA,EADwB,KAAK3lJ,qBAAsBwL,CAAAA,iBAAAA,EACrCb,CAAAA,IAAI,GAAG,IAAKi7I,CAAAA,cAAAA,EAAgB,CAAA,CACrD,CAEQA,cAAc,EAAA,CAElB,OADmC,IAAK5lJ,CAAAA,qBAAAA,CAAsB+7B,4BAC1CzC,CAAAA,wBAAAA,CAA2B,IAAKmiD,CAAAA,aAAAA,CAAcx+C,YAAY9D,YAAe,CAAA,IAAA,CAAKsiD,cAAcx+C,WAAYhE,CAAAA,OAChI,yCA5BSusH,CAA0B7xJ,EAAAA,GAAAA,CAAAsP,GAAA,CAAA,CAAAtP,IAAAuX,EAAA,CAAA,CAAA,CAA1Bs6I,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA0B9zL,QAA1B8zL,CAA0Bv7I,CAAAA,SAAAA,CAAAC,UAFvB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOs7I,EAAPK,CAAOL,CAAAA,OAAAA,CAA0B,ICCvC,CAAA,IAAaM,IAAwB,CAAA,CAAA,IAAA,CAA/B,IAAOA,CAAAA,CAAP,MAAOA,CAAwB,CAHrCnhL,aAAA,CAIqB,IAAA,CAAAohL,2BAA8Br3J,CAAAA,GAAAA,CAAOo1E,IAA2B,CAChE,CAAA,IAAA,CAAAtyD,cAAgB9iB,GAAO0pB,CAAAA,IAAa,EAE5C,IAAAosB,CAAAA,QAAAA,CAAW,IAAKhzB,CAAAA,aAAAA,CAAcgzB,SAC9B,IAAAnB,CAAAA,QAAAA,CAAW,KAAK7xB,aAAc6xB,CAAAA,SAAAA,CAEvC0gH,aAAa1/H,CAA6BrR,CAAAA,CAAAA,CAA0B,CAChE,IAAMynD,EAAY,IAAKurF,CAAAA,aAAAA,CAAc3hI,CAAMrR,CAAAA,CAAQ,EACnD,IAAK+yI,CAAAA,2BAAAA,CAA4Bp/E,UAAWlM,CAAAA,CAAS,EACzD,CACQurF,aAAAA,CAAc3hI,EAA6BrR,CAA0B,CAAA,CACzE,IAAMynD,CAAY,CAAA,IAAIngB,IACtBmgB,CAAAA,OAAAA,EAAUp2C,IAAOA,CAAAA,CAAAA,CACjBo2C,EAAUpmD,OAAU,CAAA,IAAA,CAAKmwB,UAAY,IAAKnB,CAAAA,QAAAA,CAC1Co3B,CAAUoE,CAAAA,YAAAA,CAAex6C,GAAMimB,SAAa,EAAA,CAAA,CAC5CmwB,EAAU75B,YAAe5tB,CAAAA,CAAAA,EAAUjE,YAAc,EACjD0rD,CAAAA,CAAAA,CAAUjoG,IAAO,CAAA,YAAA,CACjBioG,EAAUlgB,qBAAwB,CAAA,CAAA,CAAA,CAClCkgB,CAAUjgB,CAAAA,YAAAA,CAAe,GACzBigB,CAAUhgB,CAAAA,aAAAA,CAAgB,CAC1BggB,CAAAA,CAAAA,CAAAA,CAAUiM,iBAAmB,YAC7BjM,CAAAA,CAAAA,CAAU54B,aAAe,CACzB44B,CAAAA,CAAAA,CAAUiE,cAAgBr6C,CAAMq6C,EAAAA,aAAAA,EAAiB,EACjDjE,CAAAA,CAAAA,CAAUrrB,eAAiB,IAAK22G,CAAAA,2BAAAA,CAA4BjnF,kBACrDrE,CAAAA,CACX,yCA1BSqrF,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAnvL,GAAA,CAAA,CAAA,KAAA,CAAxBmvL,CAAwBp0L,CAAAA,OAAAA,CAAxBo0L,EAAwB77I,SAAAC,CAAAA,UAAAA,CAFrB,MAAM,CAAA,CAAA,CAEhB,IAAO47I,CAAPG,CAAAA,CAAAA,CAAAA,OAAOH,CAAwB,CAAA,IC4CrC,IAAaI,IAAAA,CAAAA,CAAuB,IAAA,CAA9B,IAAOA,CAAP,CAAA,MAAOA,CAAuB,CAtBpCvhL,aAAA,CAuBI,IAAA,CAAAwhL,WAAap2J,EAAMua,CAAAA,QAAAA,GACnB,IAAA+9H,CAAAA,QAAAA,CAAWt4I,EAAMua,CAAAA,QAAAA,GACjB,IAAAwJ,CAAAA,SAAAA,CAAY/jB,GAAMua,QAAQ,EAAA,CAC1B,KAAA87I,SAAYr2J,CAAAA,EAAAA,CAAMua,QAAQ,EAAA,CAC1B,KAAAo3B,WAAc3xC,CAAAA,EAAAA,CAAMua,UAUpB,CAAA,IAAA,CAAA85I,sBAAwB76J,EAAO,CAAA,CAAA,CAAK,CACpC,CAAA,IAAA,CAAA6oJ,kBAAoB7oJ,EAAO,CAAA,CAAA,CAAK,EAGf,IAAA88J,CAAAA,0BAAAA,CAA6B33J,IAAO82J,EAA0B,CAAA,CAC9D,IAAAc,CAAAA,wBAAAA,CAA2B53J,IAAOo3J,IAAwB,CAAA,CAC1D,KAAAt0I,aAAgB9iB,CAAAA,GAAAA,CAAO0pB,IAAa,CACpC,CAAA,IAAA,CAAApY,qBAAwBtR,CAAAA,GAAAA,CAAOuU,GAAqB,CACpD,CAAA,IAAA,CAAAgc,cAAgBvwB,GAAOwc,CAAAA,EAAa,GAErD9K,QAAQ,EAAA,CACJ,IAAKmmJ,CAAAA,sBAAAA,GACL,IAAKC,CAAAA,oBAAAA,GACL,IAAK/0L,CAAAA,MAAAA,CAAS,KAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EACzC,CAAA,IAAA,CAAKgxI,cAAgB,IAAKvjL,CAAAA,MAAAA,CAAOujL,aACjC,CAAA,IAAMv0I,EAA0B,IAAKT,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CAChF,KAAK0xI,iBAAkB3nK,CAAAA,GAAAA,CAAI,KAAKw0C,aAAclJ,CAAAA,4BAAAA,CAA6B,KAAKjC,SAAS,EAAA,CAAIrT,CAAS2xI,CAAAA,iBAAiB,CAAC,CACxH,CAAA,IAAA,CAAKgS,sBAAsB35K,GAAI,CAAA,IAAA,CAAKw0C,cAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,SAAS,EAAA,CAAIrT,EAASk8B,wBAAwB,CAAC,EACnI,IAAK8pH,CAAAA,uBAAAA,CAA0B,KAAKxnI,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKjC,CAAAA,SAAAA,GAAarT,CAASq5B,CAAAA,uBAAuB,CAC3H,CAAA,MAAA,CACA,WACV,CAEA4sH,iBAAAA,EAAiB,CACb,OAAO,KAAKtC,qBAAqB,EAAA,EAAM,KAAKhS,iBAAiB,EACjE,CAEAuU,iBAAiB,EAAA,CACb,OAAO,IAAA,CAAKl1L,OAAO69D,mBAAoB6nC,CAAAA,cAAAA,CAAezqD,aAAkB,GAAA,MAAA,CAAS02I,KAAgBC,KAAQD,CAAAA,IAAAA,CAAgBI,IAC7H,CAEAoD,aAAaviI,CAA2B,CAAA,CACpC,KAAKiiI,wBAAyBvC,CAAAA,YAAAA,CAAa1/H,EAAM,IAAKqd,CAAAA,WAAAA,EAAa,EACvE,CAEQ6kH,sBAAsB,EAAA,CAC1B,IAAKM,CAAAA,gBAAAA,CAAmB,CACpBC,UAAY,CAAA,CAAEC,OAAS,CAAA,IAAA,CAAK/mJ,sBAAsBgE,mBAAmB,EAAA,CAAGI,SAAS4iJ,SAAS,CAAA,CAC1FC,SAAU,CAAEC,WAAAA,CAAa,IAAKlnJ,CAAAA,qBAAAA,CAAsBgE,qBAAsBI,CAAAA,QAAAA,CAAS+iJ,UAAU,CAC7F9yI,CAAAA,OAAAA,CAAS,KAAK7C,aAAc6C,CAAAA,OAAAA,CAC5BhK,IAAM,CAAA,CAAEwB,qBAAsB,EAAE,CAAA,EAExC,CAEQ26I,oBAAoB,EAAA,CACxB,KAAKY,iBAAoB,CAAA,IAAA,CAAKf,0BAA2BZ,CAAAA,mBAAAA,CAAoB,KAAK3xI,SAAS,EAAE,EACjG,CA7DSoyI,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAuB,uBAAvBA,CAAuB92J,CAAAA,SAAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA8T,OAAA,CAAAijJ,UAAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA9d,CAAAA,QAAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAAv0H,SAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAAsyI,SAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA1kH,YAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAApyC,UAAA,CAAA,CAAA,CAAA,CAAAmR,SAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,GAAAC,IAAA,CAAA,EAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,UAAA,eAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,eAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,CAAA,OAAA,CAAA,qBAAA,OAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,KAAA,CAAA,aAAA,MAAA,CAAA,eAAA,CAAA,UAAA,CAAA,CAAA,CAAA,OAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,SAAA,CAAA,WAAA,QAAA,CAAA,eAAA,CAAA,MAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,wBAAA,CAAA,oBAAA,EAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,UAAA,CAAA,UAAA,UAAA,CAAA,QAAA,CAAA,8BAAA,oBAAA,CAAA,aAAA,CAAA,CAAA,CAAA,OAAA,eAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,UAAA,CAAA,OAAA,cAAA,CAAA,WAAA,CAAA,CAAA,CAAA,YAAA,EAAA,CAAA,MAAA,CAAA,aAAA,CAAA,CAAA,CAAA,QAAA,IAAA,CAAA,SAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,eAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,MAAA,CAAA,OAAA,UAAA,CAAA,eAAA,CAAA,OAAA,cAAA,CAAA,WAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA,iCAAA,CAAA,GAAA,MAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,CAAA,UAAA,CAAA,YAAA,UAAA,CAAA,eAAA,CAAA,eAAA,CAAA,CAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,EAAA,kBAAA,CAAA,cAAA,CAAA,eAAA,yBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,EAAAC,QAAA,CAAA,SAAAhS,EAAA1qB,CAAA,CAAA,CAAA,GAAA0qB,EAAA,CCvDpC7B,GAAAA,EAAAA,CAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,oBAAA,CAAA,CAAA,EAEAD,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAUIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,EAAA+/K,YAAa//K,CAAAA,CAAAA,CAAAs/K,UAAA,EAAA,CAAY9hI,IAAA,CAAM,CAAA,CAV5Cz0B,CAAAA,EAAAA,GAaAD,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAOmB,CAAA,CAAA,0BAAA,CAAA,CAAA,CASe,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAWkB,CAAA,CAAA,oBAAA,CAAA,CAAA,CAUpDD,CAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,CAAA,EAOIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAA+/K,CAAAA,YAAAA,CAAa//K,EAAAs/K,UAAA,EAAA,CAAY9hI,IAAA,CAAM,CAAA,CACxC7f,CAAAA,EAAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,GAGAD,EAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAYiB,EAAA,CAAA,mBAAA,CAAA,CAAA,CAWW,CAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,CAUhCC,IAlG+BgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,aAAA,CAAA,CAAA/rB,EAAAggL,gBAAAxyI,CAAAA,OAAA,EAAyC,SAAA,CAAA,CAAA,CAAA,EAAiB,eAAAxtC,CAAAA,CAAAA,CAAAu/K,SAAA,EAAA,EACjEzzJ,EAAA,EAAA,CAAAC,GAAA,eAAA/rB,CAAAA,CAAAA,CAAAu/K,WAAA,CAAA,CAGhBzzJ,EAAA,EAAA,CAAAC,GAAA,oBAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,OAAA,CAAA,EAAA,CACd,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CACU,UAAA/rB,CAAAs/K,CAAAA,UAAAA,GAAApK,GAAAC,CAAAA,OAAA,EACY,KAAAn1K,CAAAA,CAAAA,CAAAs/K,UAAA,EAAA,CAAApK,IAAAv5I,GAAA,CAAA,CACR,aAAA37B,CAAAs/K,CAAAA,UAAAA,GAAApK,GAAArxI,CAAAA,UAAA,CACc,CAAA,MAAA,CAAA7jC,EAAAggL,gBAAAx8I,CAAAA,IAAA,EACZ,eAAA,CAAA,CAAA,CAAA,EACP,UAAAxjC,CAAAA,CAAAA,CAAAwhK,QAAA,EAAA,EAMvB11I,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,QAAA,EAAiB,SAAA,CAAA,SAAA,CACI,CAAA,UAAA,CAAA/rB,EAAAwhK,QAAA,EAAA,EACE,QAAAxhK,CAAAA,CAAAA,CAAAs/K,YAAA/J,CAAAA,MAAA,CACO,CAAA,eAAA,CAAAv1K,EAAAmuK,aAAA,CAAA,CACC,OAAA,CAAA,CAAA,CAAA,CAK/BriJ,IAAAC,CAAAA,EAAAA,CAAA,WAAAy0J,CAAAA,CAAAA,CAAAA,CAAAxgL,EAAAs/K,UAAA,EAAA,CAAAmB,YAAA,IAAA,CAAA,IAAA,CAAAD,EAAAE,SAAA,CAAA,CAA+C,UAAA1gL,CAAAA,CAAAA,CAAAwhK,UAAA,CAAA,CACxB,kBAAAmf,CAAAA,CAAAA,CAAAA,CAAA3gL,EAAAs/K,UAAA,EAAA,CAAAmB,SAAA,GAAA,IAAA,CAAA,KAAAE,CAAAC,CAAAA,UAAA,EACgC,wBAAAC,CAAAA,CAAAA,CAAAA,CAAA7gL,EAAAs/K,UAAA,EAAA,CAAAmB,SAAA,GAAA,IAAA,CAAA,KAAAI,CAAAC,CAAAA,SAAA,EACK,oBAAAC,CAAAA,CAAAA,CAAAA,CAAA/gL,EAAAs/K,UAAA,EAAA,CAAAmB,SAAA,GAAA,IAAA,CAAA,KAAAM,CAAAC,CAAAA,KAAA,EAM5Dl1J,EAAA,EAAA,CAAAC,GAAA,UAAA,CAAA,CAAA/rB,CAAA6/K,CAAAA,iBAAAA,EAAA,CAAiC,CAAA,SAAA,CAAA,QAAA,CAAA,CACb,WAAA7/K,CAAA8/K,CAAAA,iBAAAA,EAAA,CAAA,CACY,SAAA9/K,CAAAs/K,CAAAA,UAAAA,GAAA18I,MAAA,CAAA,CAEF,8BAAA5iC,CAAA8/K,CAAAA,iBAAAA,EAAA,CAAA,CAEqB,qBAAA,CAAA,CAAA,CAAA,CACxB,cAAA9/K,CAAAs/K,CAAAA,UAAAA,GAAA9hI,IAAAwD,CAAAA,WAAA,CAI3Bl1B,CAAAA,EAAAA,GAAAC,EAAA,CAAA,UAAA,CAAA/rB,EAAAggL,gBAAAxyI,CAAAA,OAAAA,EAAAxtC,EAAAu9K,qBAAA,EAAA,CAAgE,CAAA,MAAA,CAAAv9K,EAAAs/K,UAAA,EAAA,CAAA9hI,IAAA,CAAA,CAEtC,eAAAx9C,CAAA66D,CAAAA,WAAAA,EAAA,CAAA,CACI,YAAA76D,CAAAitC,CAAAA,SAAAA,EAAA,CAM9BnhB,CAAAA,EAAAA,GAAAC,EAAA,CAAA,IAAA,CAAA,WAAA/rB,CAAAA,CAAAA,CAAAs/K,YAAA9hI,CAAAA,IAAA,EAAsC,SAAA,CAAA,QAAA,EAClB,MAAA,CAAA,SAAA,CACF,CAAA,MAAA,CAAA,QAAA,CAIlB1xB,CAAAA,EAAAA,GAAAo8D,EAAA,CAAA,GAAA,CAAAloF,EAAAggL,gBAAAC,CAAAA,UAAAA,CAAAC,OAAA,CAAA,GAAA,EAKAp0J,EAAA,EAAA,CAAAC,GAAA,UAAA/rB,CAAAA,CAAAA,CAAAu9K,uBAAAv9K,EAAAA,CAAAA,CAAAurK,iBAAA,EAAA,EAA2D,UAAAvrK,CAAAA,CAAAA,CAAAggL,iBAAAI,QAAA,CAAA,CACrB,UAAA,MAAA,CAAA,CACpB,MAAA,CAAA,SAAA,EACA,MAAA,CAAA,OAAA,EACF,UAAApgL,CAAAA,CAAAA,CAAAggL,iBAAAI,QAAAC,CAAAA,WAAA,CACkC,CAAA,eAAA,CAAA,kBAAA,CACd,CAAA,MAAA,CAAArgL,EAAAs/K,UAAA,EAAA,CAAA9hI,IAAA,CAEV,CAAA,cAAA,CAAAx9C,CAAA66D,CAAAA,WAAAA,EAAA,CACI,CAAA,WAAA,CAAA76D,CAAAitC,CAAAA,SAAAA,EAAA,CAK9BnhB,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,YAAA/rB,CAAA4/K,CAAAA,uBAAA,EAAqC,UAAA5/K,CAAAA,CAAAA,CAAAugL,kBAAA3G,QAAA,CAAA,CACE,WAAA55K,CAAAA,CAAAA,CAAAugL,kBAAAhH,SAAA,CAAA,CACE,WAAAv5K,CAAAwhK,CAAAA,QAAAA,EAAA,CAClB,CAAA,eAAA,CAAA,CAAA,CAAA,CAEJ,gBAAAxhK,CAAAs/K,CAAAA,UAAAA,GAAA18I,MAAA,CAAA,CAMnB9W,IAAAC,CAAAA,EAAAA,CAAA,kBAAAk1J,CAAAA,CAAAA,CAAAA,CAAAjhL,EAAAs/K,UAAA,EAAA,CAAArjE,MAAA,GAAA,IAAA,CAAA,KAAAglE,CAAA7L,CAAAA,aAAA,CAAuD,CAAA,cAAA,CAAA,CAAA8L,EAAAlhL,CAAAs/K,CAAAA,UAAAA,GAAArjE,MAAA,GAAA,IAAA,CAAA,KAAAilE,CAAA7L,CAAAA,cAAA,CACH,CAAA,cAAA,CAAA,CAAA8L,EAAAnhL,CAAAs/K,CAAAA,UAAAA,GAAArjE,MAAA,GAAA,IAAA,CAAA,KAAAklE,CAAA7L,CAAAA,aAAA,EDvDpD8L,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,IAAAA,CACAC,KACA99I,IACA+9I,CAAAA,IAAAA,CACAC,KACAC,IACAC,CAAAA,IAAAA,CACAC,KACAxH,GACAyH,CAAAA,IAAAA,CACAjG,IACAf,CAAAA,IAAAA,CACAiH,GACAvE,EACAT,CAAAA,EAA2B,CAAAtwJ,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAI7B,IAAO+yJ,CAAAA,CAAPwC,SAAOxC,CAAuB,CAAA,IErD7B,IAAMyC,IAAAA,CAAsC,CAC/C7L,QAAU,CAAA,CAAA,CAAA,CACVC,SAAW,CAAA,CAAA,CAAA,CACXC,aAAc,CACd4L,CAAAA,CAAAA,QAAAA,CAAU,GACVC,kBAAoB,CAAA,MAAA,CACpB5K,UAAW,CACXC,CAAAA,SAAAA,CAAW,CCOHxuJ,CAAAA,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,IAAA,CAAA,CAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,sBAAA,CAAA,CAAA,CAQJC,CAAAA,EAAAA,8CAPQ+C,EAAA,CAAA,CAAA,EAAAm2J,EAAA,CAAA,IAAA,CAAA,kBAAAh6E,CAAAptC,CAAAA,WAAAA,CAAA3yB,UAAA,CAAA,GAAA,CAAAg6I,EAAAt/I,MAAA,CAAA,EAAA,EAEA7W,EAAA,CAAA,YAAA,CAAAm2J,CAAA,CAAmB,CAAA,UAAA,CAAA,MAAA,CAAA,CACA,YAAAj6E,CAAAh7D,CAAAA,SAAA,EACI,aAAAg7D,CAAAA,CAAAA,CAAAptC,WAAA,CACI,CAAA,WAAA,CAAAsnH,CAAA,CAAA,CAAA,yFAtB3Ct5J,EAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAIIC,GAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAUA+vI,GAAA,CAAAupB,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,IAAAC,CAAAA,EAAA,CAYJt5J,CAAAA,EAAAA,oBAzBIgD,EAAA,CAAA,kBAAA,CAAAk8E,EAAAkvE,YAAA,EAAA,IAAA,CAAA,KAAAlvE,CAAAkvE,CAAAA,YAAAA,CAAAG,gBAAA,CAAA,CAAmD,YAAArvE,CAAAkvE,CAAAA,YAAAA,EAAA,KAAA,IAAAlvE,CAAAA,CAAAA,CAAAkvE,aAAAC,SAAA,CAAA,CACd,WAAAnvE,CAAAA,CAAAA,CAAAkvE,cAAA,IAAA,CAAA,IAAA,CAAAlvE,EAAAkvE,YAAAE,CAAAA,SAAA,EAIjCvrJ,EAAA,EAAA,CAAAC,EAAA,CAAA,UAAA,CAAA,MAAA,CAAmB,CAAA,WAAA,CAAAk8E,CAAAq6E,CAAAA,0BAAAA,EAAA,KAAA,IAAAr6E,CAAAA,CAAAA,CAAAq6E,0BAAA1M,CAAAA,SAAA,EACgC,cAAA3tE,CAAAA,CAAAA,CAAAq6E,4BAAA,IAAA,CAAA,IAAA,CAAAr6E,EAAAq6E,0BAAAvM,CAAAA,YAAA,CACM,CAAA,kBAAA,CAAA9tE,EAAAq6E,0BAAA,EAAA,IAAA,CAAA,KAAAr6E,CAAAq6E,CAAAA,0BAAAA,CAAAtM,gBAAA,CACQ,CAAA,qBAAA,CAAA/tE,CAAAq6E,CAAAA,0BAAAA,EAAA,KAAA,IAAAr6E,CAAAA,CAAAA,CAAAq6E,2BAAAxM,mBAAA,CAAA,CACM,YAAA7tE,CAAAq6E,CAAAA,0BAAAA,EAAA,IAAA,CAAA,IAAA,CAAAr6E,EAAAq6E,0BAAArnD,CAAAA,SAAA,CACpB,CAAA,eAAA,CAAAhzB,EAAAq6E,0BAAA,EAAA,IAAA,CAAA,IAAAr6E,CAAAA,CAAAA,CAAAq6E,2BAAAzM,aAAA,CAAA,CAGvD/pJ,IAAAmtI,CAAAA,EAAAA,CAAAhxD,EAAA6sE,WAAA,EAAA,CAAA,CCGKyN,IAAAA,EAAAA,CAAAA,CAAoB,IAAA,CAA3B,IAAOA,EAAP,MAAOA,CAAoB,CANjCzkL,WAAA,EAAA,CAOI,IAAA0kL,CAAAA,gBAAAA,CAAmBt5J,GAAM,CAAI,CAAA,CAAA,CAQZ,KAAAu5J,mBAAsB56J,CAAAA,GAAAA,CAAOkvJ,IAAmB,CAChD,CAAA,IAAA,CAAA2L,kBAAqB76J,CAAAA,GAAAA,CAAO4sJ,EAAkB,CAE/D,CAAA,IAAA,CAAAkO,kBAAoBjgK,EAAgB,CAAA,CAAA,CAAK,EA0BjC,IAAAkgK,CAAAA,kBAAAA,CAAsBplI,CACnBoN,EAAAA,GAAAA,CAAA1K,IAAA,EACA1C,CAAAA,CAAAA,CAAAA,CADA,CAEHwD,WAAa,CAAA,IAAA,CAAK6hI,oBA3B1BtpJ,CAAAA,EAAAA,CAAAA,QAAAA,EAAQ,CACJ,IAAA,CAAKupJ,gBACL,CAAA,IAAA,CAAKC,yBACL,CAAA,IAAA,CAAKC,kBACT,CAEQA,eAAe,EAAA,CACnB,IAAM/L,CAAmB,CAAA,IAAA,CAAKnC,YAAYluK,MAAS,CAAA,CAAA,CACnD,KAAKuwK,YAAe,CAAA,IAAA,CAAKsL,mBAAoBzL,CAAAA,kBAAAA,CAAmBC,EAAkB,IAAKuL,CAAAA,gBAAAA,EAAkB,CAAA,CACzG,KAAKG,iBAAkB/+K,CAAAA,GAAAA,CAAIqzK,CAAgB,EAC/C,CAEQ8L,uBAAuB,EAAA,CAC3B,KAAKT,0BAA6B,CAAA,IAAA,CAAKI,mBAAmBjN,4BACtD,CAAA,IAAA,CAAK56G,WAAYL,CAAAA,aAAAA,CACjB,KAAKK,WAAYJ,CAAAA,gBAAAA,CACjB,KAAKxtB,SAAS,EAEtB,CAEQ41I,kBAAkB,EAAA,CACtB,OAAO,IAAA,CAAKhoH,YAAY83F,eAC5B,CASQmwB,gBAAc,CAClB,IAAIhO,EAAc,IAAK4N,CAAAA,kBAAAA,CAAmB9N,aACtC,CAAA,IAAA,CAAK/5G,YAAYL,aACjB,CAAA,IAAA,CAAKK,YAAYJ,gBACjB,CAAA,IAAA,CAAKxtB,UACL60I,IAAiBC,CAAAA,QAAQ,CAG7B,CAAA,IAAA,CAAKjN,YAAcA,CAAY52I,CAAAA,GAAAA,CAAKohJ,GACzB10H,GAAA1K,CAAAA,GAAAA,CAAA,GACAo/H,CADA,CAAA,CAAA,CAEH9hI,IAAM,CAAA,IAAA,CAAKolI,mBAAmBtD,CAAW9hI,CAAAA,IAAI,GAEpD,EACL,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA3DS+kI,EAAoB,CAApBA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAoBh6J,SAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,EAAA8T,MAAA,CAAA,CAAAmmJ,iBAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAAv1I,UAAA,WAAA4tB,CAAAA,WAAAA,CAAA,aAAA,CAAA,CAAApyC,WAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAA0C,EAAA,EAAAC,KAAA,CAAA,CAAA,CAAAC,KAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,YAAA,WAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,YAAA,cAAA,CAAA,kBAAA,CAAA,sBAAA,WAAA,CAAA,eAAA,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,YAAA,CAAA,WAAA,WAAA,CAAA,aAAA,CAAA,WAAA,CAAA,CAAA,CAAAC,SAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CDlBjCO,EAAAA,EAAAA,CAAA,EAAAg4J,EAAA,CAAA,CAAA,CAAA,GAAA,sBAAA,CAAA,CAAA,CAAA5oB,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAr6J,EAAA2iL,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCecO,KAA2BC,IAA+B9D,CAAAA,IAAuB,CAAA/yJ,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAAA,CAGzF,IAAOi2J,CAAPa,CAAAA,CAAAA,CAAAA,OAAOb,CAAoB,CAAA,ICZjC,SAASc,GAAsC34J,CAAAA,CAAAA,CAAI1qB,CAAK,CAAA,CAClD0qB,EAAK,CACJ5B,EAAAA,EAAAA,CAAU,CAAG,CAAA,KAAA,CAAO,CAAC,EAE5B,CACA,IAAMw6J,EAAgD,IAAI1R,GAAAA,CAAe,kCAAkC,CAAA,CAoBvG2R,IAAAA,GAAAA,CAAAA,CAA+B,IAAM,CACvC,IAAMC,CAAN,CAAA,MAAMA,CAAe,CACnB,YAAYC,CAAaC,CAAAA,CAAAA,CAASC,CAAoBC,CAAAA,CAAAA,CAAgBC,EAAU,CAC9E,IAAA,CAAK,WAAcJ,CAAAA,CAAAA,CACnB,IAAK,CAAA,OAAA,CAAUC,CACf,CAAA,IAAA,CAAK,mBAAqBC,CAC1B,CAAA,IAAA,CAAK,cAAiBC,CAAAA,CAAAA,CAEtB,KAAK,gBAAmB,CAAA,CAAA,CAAA,CACxB,IAAK,CAAA,aAAA,CAAgB,UACrB,IAAK,CAAA,MAAA,CAAS,CACd,CAAA,IAAA,CAAK,YAAe,CAAA,CAAA,CAMpB,IAAK,CAAA,YAAA,CAAe,IAAIl6J,IACxB,CAAA,IAAA,CAAK,KAAQ,CAAA,aAAA,CAEb,KAAK,qBAAwB/f,CAAAA,CAAAA,EAAS,CAChC,IAAA,CAAK,aAAa,SAAU,CAAA,MAAA,GAAW,CAAK,EAAA,CAACA,CAAM,CAAA,MAAA,EAAU,CAACA,CAAAA,CAAM,OAAO,SAAU,CAAA,QAAA,CAAS,kCAAkC,CAAA,EAAA,CAGhI,KAAK,IAAS,GAAA,aAAA,EAAiB,IAAK,CAAA,IAAA,GAAS,WAC/C,IAAK,CAAA,OAAA,CAAQ,GAAI,CAAA,IAAM,IAAK,CAAA,YAAA,CAAa,IAAK,CAAA,CAC5C,MAAO,IAAK,CAAA,KACd,CAAC,CAAC,EAEN,CACA,CAAA,IAAA,CAAK,gBAAmBi6K,CAAAA,CAAAA,GAAmB,iBACvCC,CACEA,GAAAA,CAAAA,CAAS,KACX,GAAA,IAAA,CAAK,KAAQ,CAAA,IAAA,CAAK,aAAgBA,CAAAA,CAAAA,CAAS,OAE7C,IAAK,CAAA,IAAA,CAAOA,CAAS,CAAA,IAAA,EAAQ,KAAK,IAEtC,EAAA,CASA,IAAI,KAAA,EAAQ,CACV,OAAO,IAAA,CAAK,MAAU,EAAA,IAAA,CAAK,aAC7B,CACA,IAAI,KAAA,CAAM/0L,EAAO,CACf,IAAA,CAAK,MAASA,CAAAA,EAChB,CAEA,IAAI,KAAA,EAAQ,CACV,OAAO,KAAK,MACd,CACA,IAAI,KAAA,CAAMgB,CAAG,CAAA,CACX,IAAK,CAAA,MAAA,CAASg0L,IAAMh0L,CAAK,EAAA,CAAC,CAC1B,CAAA,IAAA,CAAK,mBAAmB,YAAa,GACvC,CAEA,IAAI,aAAc,CAChB,OAAO,IAAK,CAAA,YAAA,EAAgB,CAC9B,CACA,IAAI,WAAA,CAAYA,EAAG,CACjB,IAAA,CAAK,YAAeg0L,CAAAA,GAAAA,CAAMh0L,GAAK,CAAC,CAAA,CAChC,IAAK,CAAA,kBAAA,CAAmB,eAC1B,CAQA,IAAI,IAAA,EAAO,CACT,OAAO,IAAK,CAAA,KACd,CACA,IAAI,IAAA,CAAKhB,CAAO,CAAA,CAGd,KAAK,KAAQA,CAAAA,CAAAA,CACb,IAAK,CAAA,kBAAA,CAAmB,eAC1B,CACA,eAAkB,EAAA,CAGhB,IAAK,CAAA,OAAA,CAAQ,iBAAkB,CAAA,IAAM,CACnC,IAAK,CAAA,WAAA,CAAY,aAAc,CAAA,gBAAA,CAAiB,gBAAiB,IAAK,CAAA,qBAAqB,EAC7F,CAAC,EACH,CACA,WAAA,EAAc,CACZ,IAAA,CAAK,WAAY,CAAA,aAAA,CAAc,mBAAoB,CAAA,eAAA,CAAiB,KAAK,qBAAqB,EAChG,CAEA,uBAAA,EAA0B,CACxB,OAAO,CAAA,OAAA,EAAU,IAAK,CAAA,gBAAA,GAAqB,CAAI,CAAA,IAAA,CAAK,KAAQ,CAAA,GAAG,CACjE,CAAA,CAAA,CAEA,sBAAyB,EAAA,CACvB,OAAO,CAAG,EAAA,IAAA,CAAK,IAAS,GAAA,QAAA,CAAW,KAAK,WAAc,CAAA,GAAG,CAC3D,CAAA,CAAA,CAEA,kBAAmB,CACjB,OAAO,IAAK,CAAA,IAAA,GAAS,eAAmB,EAAA,IAAA,CAAK,IAAS,GAAA,OACxD,CA6DF,CA3DI00L,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAAgC72J,EAAmB,CAC7D,OAAO,IAAKA,CAAAA,EAAqB62J,GAAmB5nJ,GAAqB9T,CAAAA,IAAU,CAAM8T,CAAAA,GAAAA,CAAqBkvB,EAAM,CAAA,CAAMlvB,GAAqBmoJ,CAAAA,EAAiB,EAAMnoJ,GAAkBooJ,CAAAA,EAAAA,CAAuB,CAAC,CAAA,CAAMpoJ,IAAkB0nJ,CAAkC,CAAA,CAAC,CAAC,CAC9Q,EAGAE,CAAK,CAAA,SAAA,CAAyBnS,EAAkB,CAAA,CAC9C,IAAMmS,CAAAA,CAAAA,CACN,SAAW,CAAA,CAAC,CAAC,kBAAkB,CAAC,CAChC,CAAA,SAAA,CAAW,CAAC,MAAA,CAAQ,aAAe,CAAA,eAAA,CAAiB,IAAK,eAAiB,CAAA,KAAA,CAAO,UAAY,CAAA,IAAA,CAAM,CAAG,CAAA,sBAAA,CAAwB,qBAAqB,CAAA,CACnJ,SAAU,EACV,CAAA,YAAA,CAAc,SAAqC94J,CAAAA,CAAI1qB,EAAK,CACtD0qB,CAAAA,CAAK,CACJ8mJ,GAAAA,EAAAA,CAAY,gBAAiBxxK,CAAI,CAAA,gBAAA,EAAqB,CAAA,IAAA,CAAOA,CAAI,CAAA,KAAK,CAAE,CAAA,MAAA,CAAQA,EAAI,IAAI,CAAA,CACxF+qB,EAAW,CAAA,MAAA,CAAS/qB,EAAI,KAAK,CAAA,CAC7BgrB,EAAY,CAAA,yBAAA,CAA2BhrB,EAAI,gBAAgB,CAAA,CAAE,sCAAwC,CAAA,CAACA,CAAI,CAAA,gBAAgB,CAAE,CAAA,oCAAA,CAAsCA,EAAI,gBAAiB,EAAC,CAE/L,EAAA,CAAA,CACA,OAAQ,CACN,KAAA,CAAO,OACP,CAAA,KAAA,CAAO,CAAC,CAAG,CAAA,OAAA,CAAS,OAASikL,CAAAA,EAAe,CAC5C,CAAA,WAAA,CAAa,CAAC,CAAA,CAAG,cAAe,aAAeA,CAAAA,EAAe,CAC9D,CAAA,IAAA,CAAM,MACR,CACA,CAAA,OAAA,CAAS,CACP,YAAA,CAAc,cAChB,CACA,CAAA,QAAA,CAAU,CAAC,gBAAgB,CAC3B,CAAA,UAAA,CAAY,CACZ,CAAA,CAAA,QAAA,CAAU,CAAIC,IAA6B5nJ,CAAAA,EAAmB,CAC9D,CAAA,KAAA,CAAO,EACP,IAAM,CAAA,CAAA,CACN,MAAQ,CAAA,CAAC,CAAC,aAAe,CAAA,MAAA,CAAQ,CAAG,CAAA,6BAA6B,CAAG,CAAA,CAAC,CAAG,CAAA,iCAAiC,EAAG,CAAC,CAAA,CAAG,kCAAkC,CAAA,CAAG,CAAC,aAAe,CAAA,MAAA,CAAQ,CAAG,CAAA,0BAAA,CAA4B,kCAAkC,CAAG,CAAA,CAAC,CAAG,CAAA,gCAAgC,CAAG,CAAA,CAAC,aAAe,CAAA,MAAA,CAAQ,EAAG,0BAA4B,CAAA,oCAAoC,CAAC,CAAA,CACpX,SAAU,SAAiC5R,CAAAA,CAAI1qB,CAAK,CAAA,CAC9C0qB,EAAK,CACJ7B,GAAAA,EAAAA,CAAe,CAAG,CAAA,KAAA,CAAO,CAAC,CAAA,CAC1BC,EAAU,CAAA,CAAA,CAAG,MAAO,CAAC,CAAA,CACrBmC,EAAW,CAAA,CAAA,CAAGo4J,IAAuC,CAAG,CAAA,CAAA,CAAG,KAAO,CAAA,CAAC,EACnEt6J,EAAa,EAAA,CACbF,EAAe,CAAA,CAAA,CAAG,KAAO,CAAA,CAAC,CAC1BC,CAAAA,EAAAA,CAAU,EAAG,MAAQ,CAAA,CAAC,CACtBC,CAAAA,EAAAA,GACAF,EAAe,CAAA,CAAA,CAAG,KAAO,CAAA,CAAC,EAC1BC,EAAU,CAAA,CAAA,CAAG,MAAQ,CAAA,CAAC,CACtBC,CAAAA,EAAAA,EAED2B,CAAAA,CAAAA,CAAAA,CAAK,IACJoB,EAAU,EAAA,CACVghG,IAAY,CAAA,YAAA,CAAc9sH,EAAI,sBAAuB,EAAC,CACtD8rB,CAAAA,EAAAA,GACAuuI,EAAcr6J,CAAAA,CAAAA,CAAI,IAAS,GAAA,QAAA,CAAW,CAAI,CAAA,CAAA,CAAE,CAC5C8rB,CAAAA,EAAAA,GACAghG,IAAY,CAAA,WAAA,CAAa9sH,CAAI,CAAA,uBAAA,EAAyB,CAE7D,EAAA,CAAA,CACA,MAAQ,CAAA,CAAC,owOAAwwO,CACjxO,CAAA,aAAA,CAAe,CACf,CAAA,eAAA,CAAiB,CACnB,CAAC,CAnKL,CAAA,IAAMujL,EAANC,CAsKA,CAAA,OAAOD,CACT,CAAA,IAKA,SAASO,GAAAA,CAAMh0L,CAAG6Y,CAAAA,CAAAA,CAAM,EAAGC,CAAM,CAAA,GAAA,CAAK,CACpC,OAAO,IAAK,CAAA,GAAA,CAAID,CAAK,CAAA,IAAA,CAAK,IAAIC,CAAK9Y,CAAAA,CAAC,CAAC,CACvC,CACIq0L,IAAAA,GAAAA,CAAAA,CAAqC,IAAM,CAC7C,IAAMC,CAAN,CAAA,MAAMA,CAAqB,EAEvBA,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAAsCz3J,EAAmB,CACnE,OAAO,IAAKA,CAAAA,EAAqBy3J,EACnC,CAGAA,CAAAA,CAAAA,CAAK,SAAyB/Q,CAAAA,EAAAA,CAAiB,CAC7C,IAAM+Q,CAAAA,CACR,CAAC,CAAA,CAGDA,CAAK,CAAA,SAAA,CAAyB9Q,EAAiB,CAAA,CAC7C,QAAS,CAACE,EAAe,CAC3B,CAAC,EAdL,IAAM2Q,CAAAA,CAANC,CAiBA,CAAA,OAAOD,CACT,CAAG;AC7NH,IAAM1rH,EAAM,CAAA,CAAC,aAAa,CAAA,CACpB5F,IAAM,CAAA,CAAC,mBAAmB,CAAA,CAC1BG,IAAM,CAAA,CAAC,gBAAgB,CAAA,CACvBu4B,KAAM,CAAC,CAAC,CAAC,EAAA,CAAI,iBAAmB,CAAA,EAAE,CAAC,CAAA,CAAG,CAAC,CAAC,EAAA,CAAI,iBAAmB,CAAA,EAAE,CAAC,CAAA,CAAG,CAAC,CAAC,GAAI,kBAAoB,CAAA,EAAE,CAAC,CAAC,CACnGI,CAAAA,IAAAA,CAAM,CAAC,mBAAA,CAAqB,oBAAqB,oBAAoB,CAAA,CACrE04F,EAAM,CAAA,CAAC,GAAG,CAAA,CACVC,GAAN,CAAA,OAAuB,CACrB,WAAYnzE,CAAAA,CAAAA,CAAQ,IAAIozE,GAAAA,CAASC,CAAW,CAAA,IAAIC,GAAY98I,CAAAA,CAAAA,CAAUte,EAAY,IAAIq7J,CAAAA,CAAar1D,CAAQs1D,CAAAA,CAAAA,CAAc5hF,CAAYrsG,CAAAA,CAAAA,CAAO,OAASsyE,CAAAA,CAAAA,CAAQ,GAAInL,CAAQ,CAAA,CAAA,CAAG+mH,CAAO,CAAA,CAAA,CAAGC,CAAc,CAAA,CAAA,CAAGC,CAAgB,CAAA,CAAA,CAAGC,GAAY,CAAGC,CAAAA,EAAAA,CAAa,CAAGC,CAAAA,EAAAA,CAAe,CAAGC,CAAAA,EAAAA,CAAa,CAAGC,CAAAA,EAAAA,CAAe,EAAGC,EAAS,CAAA,4BAAA,CAA8BC,EAAQ,CAAA,GAAA,CAAKn5D,EAAO,CAAA,CAAA,CAAA,CAAOo5D,EAAS,CAAA,CAAA,CAAGC,GAAiB,CAAGC,CAAAA,EAAAA,CAAQ,CAAOC,CAAAA,CAAAA,EAAAA,CAAU,CAAMC,CAAAA,CAAAA,EAAAA,CAAS,CAAOC,CAAAA,CAAAA,EAAAA,CAAM,GAAOC,EAAQ,CAAA,CAAA,CAAA,CAAMC,EAAW,CAAA,CAAA,CAAG,CACre,IAAA,CAAK,KAAQ10E,CAAAA,CAAAA,CACb,KAAK,QAAWqzE,CAAAA,CAAAA,CAChB,IAAK,CAAA,QAAA,CAAW78I,CAChB,CAAA,IAAA,CAAK,SAAYte,CAAAA,CAAAA,CACjB,KAAK,MAASgmG,CAAAA,CAAAA,CACd,IAAK,CAAA,YAAA,CAAes1D,CACpB,CAAA,IAAA,CAAK,UAAa5hF,CAAAA,CAAAA,CAClB,KAAK,IAAOrsG,CAAAA,CAAAA,CACZ,IAAK,CAAA,KAAA,CAAQsyE,CACb,CAAA,IAAA,CAAK,KAAQnL,CAAAA,CAAAA,CACb,KAAK,IAAO+mH,CAAAA,CAAAA,CACZ,IAAK,CAAA,WAAA,CAAcC,CACnB,CAAA,IAAA,CAAK,aAAgBC,CAAAA,CAAAA,CACrB,KAAK,SAAYC,CAAAA,EAAAA,CACjB,IAAK,CAAA,UAAA,CAAaC,EAClB,CAAA,IAAA,CAAK,YAAeC,CAAAA,EAAAA,CACpB,KAAK,UAAaC,CAAAA,EAAAA,CAClB,IAAK,CAAA,YAAA,CAAeC,EACpB,CAAA,IAAA,CAAK,MAASC,CAAAA,EAAAA,CACd,KAAK,KAAQC,CAAAA,EAAAA,CACb,IAAK,CAAA,IAAA,CAAOn5D,EACZ,CAAA,IAAA,CAAK,MAASo5D,CAAAA,EAAAA,CACd,KAAK,cAAiBC,CAAAA,EAAAA,CACtB,IAAK,CAAA,KAAA,CAAQC,EACb,CAAA,IAAA,CAAK,OAAUC,CAAAA,EAAAA,CACf,KAAK,MAASC,CAAAA,EAAAA,CACd,IAAK,CAAA,GAAA,CAAMC,EACX,CAAA,IAAA,CAAK,KAAQC,CAAAA,EAAAA,CACb,KAAK,QAAWC,CAAAA,GAClB,CACF,CAAA,CAEA,IAAMpB,GAAAA,CAAN,OAAe,GAEf,IAAMF,GAAAA,CAAN,OAAY,EAENG,CAAAA,CAAAA,CAAN,KAAgB,CACd,YAAYoB,CAAK,CAAA,CAAA,CAAGC,CAAK,CAAA,CAAA,CAAGC,CAAK,CAAA,CAAA,CAAGC,CAAK,CAAA,CAAA,CAAGC,EAAM,CAAG,CAAA,CACnD,IAAK,CAAA,EAAA,CAAKJ,CACV,CAAA,IAAA,CAAK,EAAKC,CAAAA,CAAAA,CACV,KAAK,EAAKC,CAAAA,CAAAA,CACV,IAAK,CAAA,EAAA,CAAKC,CACV,CAAA,IAAA,CAAK,GAAMC,CAAAA,CAAAA,CACX,KAAK,EAAK,CAAA,EACZ,CACF,CAAA,CAQMpV,GAAN,CAAA,OAAkB,CAChB,WAAA,CAAYiV,EAAK,GAAKC,CAAAA,CAAAA,CAAK,GAAKC,CAAAA,CAAAA,CAAK,IAAME,CAAAA,CAAAA,CAAK,IAAM,CAAA,CACpD,KAAK,EAAKJ,CAAAA,CAAAA,CACV,IAAK,CAAA,EAAA,CAAKC,CACV,CAAA,IAAA,CAAK,EAAKC,CAAAA,CAAAA,CACV,KAAK,EAAKE,CAAAA,EACZ,CACF,CAAA,CAEA,IAAMC,GAAAA,CAAN,OAA+B,CAC7B,YAAYvtJ,CAAM,CAAA,CAChB,IAAK,CAAA,SAAA,CAAYA,EACnB,CACF,CACMwtJ,CAAAA,IAAAA,CAAa,IAAIzU,GAAe,CAAA,YAAA,CAAc,CAClD,UAAA,CAAY,MACZ,CAAA,OAAA,CAAS,IAAM0U,EAAAA,CAAkBz+J,GAAO0+J,CAAAA,IAAW,CAAC,CACtD,CAAC,CAAA,CAqBGC,IAAAA,IAAAA,CAAAA,CAAyC,IAAM,CACjD,IAAMC,CAAN,CAAA,MAAMA,CAAyB,EAE3BA,CAAAA,CAAAA,CAAK,UAAO,SAA0C95J,CAAAA,CAAmB,CACvE,OAAO,IAAKA,CAAAA,EAAqB85J,CACnC,CAAA,CAAA,CAGAA,EAAK,SAAyBC,CAAAA,IAAAA,CAAkB,CAC9C,IAAA,CAAMD,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,GAAI,iBAAmB,CAAA,EAAE,CAAC,CAAA,CACvC,UAAY,CAAA,CAAA,CACd,CAAC,CAAA,CAXL,IAAMD,CAANC,CAAAA,CAAAA,CAcA,OAAOD,CACT,CAAG,GAAA,CAICG,IAAyC,CAAA,CAAA,IAAM,CACjD,IAAMC,CAAAA,CAAN,MAAMA,CAAyB,EAa/B,CAXIA,CAAK,CAAA,SAAA,CAAO,SAA0Cj6J,CAAmB,CAAA,CACvE,OAAO,IAAKA,CAAqBi6J,EAAAA,CAAAA,CACnC,CAGAA,CAAAA,CAAAA,CAAK,UAAyBF,IAAkB,CAAA,CAC9C,IAAME,CAAAA,CAAAA,CACN,SAAW,CAAA,CAAC,CAAC,EAAA,CAAI,kBAAmB,EAAE,CAAC,CACvC,CAAA,UAAA,CAAY,CACd,CAAA,CAAC,CAXL,CAAA,IAAMD,EAANC,CAcA,CAAA,OAAOD,CACT,CAAA,GAIIE,CAAAA,EAAAA,CAAAA,CAA0C,IAAM,CAClD,IAAMC,CAAN,CAAA,MAAMA,CAA0B,EAE5BA,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAA2Cn6J,EAAmB,CACxE,OAAO,IAAKA,CAAAA,EAAqBm6J,CACnC,CAAA,CAAA,CAGAA,CAAK,CAAA,SAAA,CAAyBJ,KAAkB,CAC9C,IAAA,CAAMI,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,EAAI,CAAA,kBAAA,CAAoB,EAAE,CAAC,CAAA,CACxC,UAAY,CAAA,CAAA,CACd,CAAC,CAAA,CAXL,IAAMD,CAAAA,CAANC,EAcA,OAAOD,CACT,CAAG,GAAA,CAICE,IAAwC,CAAA,CAAA,IAAM,CAChD,IAAMC,EAAN,MAAMA,CAAwB,CAC5B,WAAA,CAAYtqJ,CAAU,CAAA,CACpB,IAAK,CAAA,QAAA,CAAWA,EAClB,CAaF,CAAA,CAXIsqJ,CAAK,CAAA,SAAA,CAAO,SAAyCr6J,CAAAA,CAAmB,CACtE,OAAO,IAAKA,CAAqBq6J,EAAAA,CAAAA,EAA4BprJ,GAAqBqrJ,CAAAA,IAAW,CAAC,CAChG,CAGAD,CAAAA,CAAAA,CAAK,UAAyBN,IAAkB,CAAA,CAC9C,IAAMM,CAAAA,CAAAA,CACN,SAAW,CAAA,CAAC,CAAC,EAAA,CAAI,iBAAkB,EAAE,CAAC,CACtC,CAAA,UAAA,CAAY,CACd,CAAA,CAAC,CAdL,CAAA,IAAMD,EAANC,CAiBA,CAAA,OAAOD,CACT,CAAA,GAKIG,CAAAA,EAAAA,CAAAA,CAAkC,IAAM,CAC1C,IAAMC,CAAN,CAAA,MAAMA,CAAkB,CACtB,WAAYC,CAAAA,CAAAA,CAAe,CACzB,IAAA,CAAK,cAAgBA,EACvB,CAaF,CAXID,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAAmCx6J,CAAmB,CAAA,CAChE,OAAO,IAAKA,CAAAA,EAAqBw6J,CAAsBvrJ,EAAAA,GAAAA,CAAqByrJ,IAAgB,CAAC,CAC/F,CAAA,CAGAF,EAAK,SAAyBT,CAAAA,IAAAA,CAAkB,CAC9C,IAAA,CAAMS,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,GAAI,mBAAqB,CAAA,EAAE,CAAC,CAAA,CACzC,UAAY,CAAA,CAAA,CACd,CAAC,CAAA,CAdL,IAAMD,CAANC,CAAAA,CAAAA,CAiBA,OAAOD,CACT,CAAG,GAAA,CAICI,IAAgC,CAAA,CAAA,IAAM,CACxC,IAAMC,CAAAA,CAAN,MAAMA,CAAgB,CACpB,WAAA,EAAc,CACZ,IAAA,CAAK,SAAWC,IAAM,CAAA,IAAM,OAAO,qBAAU,CAAC,CAAA,CAAE,IAAKz6C,CAAAA,EAAAA,CAAY,CAC/D,UAAY,CAAA,CAAA,CACZ,QAAU,CAAA,CAAA,CACZ,CAAC,CAAC,EACJ,CACA,MAAO,CACL,OAAO,IAAK,CAAA,QACd,CAaF,CAAA,CAXIw6C,CAAK,CAAA,SAAA,CAAO,SAAiC56J,CAAAA,CAAmB,CAC9D,OAAO,IAAKA,CAAAA,EAAqB46J,CACnC,CAAA,CAAA,CAGAA,EAAK,UAA0BrU,CAAAA,GAAAA,CAAmB,CAChD,KAAA,CAAOqU,CACP,CAAA,OAAA,CAASA,CAAgB,CAAA,SAAA,CACzB,WAAY,MACd,CAAC,CApBL,CAAA,IAAMD,CAANC,CAAAA,CAAAA,CAuBA,OAAOD,CACT,IAIIG,CAAAA,IAAAA,CAAAA,CAAyC,IAAM,CACjD,IAAMC,CAAAA,CAAN,MAAMA,CAAyB,CAC7B,WAAYhE,CAAAA,CAAAA,CAASiE,CAAkB,CAAA,CACrC,IAAK,CAAA,OAAA,CAAUjE,CACf,CAAA,IAAA,CAAK,iBAAmBiE,CACxB,CAAA,IAAA,CAAK,SAAY,CAAA,IAAI/uG,GACvB,CACA,WAAc,EAAA,CACZ,KAAK,SAAU,CAAA,IAAA,GACjB,CACA,YAAa14C,CAAAA,CAAAA,CAAS,CACpB,OAAO,KAAK,gBAAiB,CAAA,IAAA,EAAO,CAAA,IAAA,CAAKhC,EAAI,CAAA,IAG7C,IAAK,CAAA,OAAA,CAAQ,kBAAkB,IAAM,IAAI,MAAOgC,CAAAA,CAAO,CAAC,CAAC,CAIzDm1D,CAAAA,EAAAA,CAAU,KAAK,SAAS,CAAC,CAC3B,CACA,EAAGuyF,CAAAA,CAAAA,CAAQj+K,CAAO,CAAA,CAChB,OAAOulH,EAAU04D,CAAAA,CAAAA,CAAQj+K,CAAK,CAAA,CAAE,IAGhCk+K,CAAAA,IAAAA,CAAY,IAAK,CAAA,OAAO,EAAGxyF,EAAU,CAAA,IAAA,CAAK,SAAS,CAAC,CACtD,CAYF,CAVIqyF,CAAAA,CAAAA,CAAK,UAAO,SAA0C/6J,CAAAA,CAAmB,CACvE,OAAO,IAAKA,CAAAA,EAAqB+6J,CAA6B56J,EAAAA,GAAAA,CAAYg+B,EAAM,CAAMh+B,CAAAA,GAAAA,CAASw6J,IAAe,CAAC,CACjH,CAAA,CAGAI,CAAK,CAAA,UAAA,CAA0BxU,IAAmB,CAChD,KAAA,CAAOwU,CACP,CAAA,OAAA,CAASA,CAAyB,CAAA,SACpC,CAAC,CAAA,CAlCL,IAAMD,CAANC,CAAAA,CAAAA,CAqCA,OAAOD,CACT,CAAG,IAIH,SAASI,IAAAA,CAAYrkI,EAAQ,CAC3B,OAAOh2C,CAAU,EAAA,IAAI8X,GAAWnlB,CAAAA,CAAAA,EAAcqN,CAAO,CAAA,SAAA,CAAU,CAC7D,IAAM1e,CAAAA,CAAAA,EAAS00D,CAAO,CAAA,GAAA,CAAI,IAAMrjD,CAAAA,CAAW,IAAKrR,CAAAA,CAAK,CAAC,CACtD,CAAA,KAAA,CAAO0W,CAASg+C,EAAAA,CAAAA,CAAO,GAAI,CAAA,IAAMrjD,CAAW,CAAA,KAAA,CAAMqF,CAAK,CAAC,CAAA,CACxD,QAAU,CAAA,IAAMg+C,CAAO,CAAA,GAAA,CAAI,IAAMrjD,CAAAA,CAAW,UAAU,CACxD,CAAC,CAAC,CACJ,CACI2nL,IAAAA,IAAAA,CAAAA,CAAwC,IAAM,CAChD,IAAMC,CAAN,CAAA,MAAMA,CAAgCnvG,SAAAA,EAAQ,CAC5C,WAAA,CAAYovG,EAAWxkI,CAAQ,CAAA,CAC7B,KAAM,EAAA,CACN,IAAK,CAAA,SAAA,CAAY,IAAIo1B,EAAAA,CAGjBovG,GACFxkI,CAAO,CAAA,iBAAA,CAAkB,IAAM0rE,EAAAA,CAAU,MAAQ,CAAA,QAAQ,CAAE,CAAA,IAAA,CAAK75B,GAAY,IAAK,CAAA,SAAS,CAAC,CAAA,CAAE,SAAU,CAAA,IAAI,CAAC,EAEhH,CACA,WAAc,EAAA,CACZ,IAAK,CAAA,SAAA,CAAU,IAAK,GACtB,CAaF,CAAA,CAXI0yF,EAAK,SAAO,CAAA,SAAyCp7J,CAAmB,CAAA,CACtE,OAAO,IAAKA,CAAqBo7J,EAAAA,CAAAA,EAA4Bj7J,IAASu5J,IAAU,CAAA,CAAMv5J,GAAYg+B,CAAAA,EAAM,CAAC,CAC3G,CAGAi9H,CAAAA,CAAAA,CAAK,WAA0B7U,GAAmB,CAAA,CAChD,KAAO6U,CAAAA,CAAAA,CACP,OAASA,CAAAA,CAAAA,CAAwB,SACjC,CAAA,UAAA,CAAY,MACd,CAAC,CAAA,CAvBL,IAAMD,CAAAA,CAANC,CA0BA,CAAA,OAAOD,CACT,CAAA,IAMIG,EAA4B,CAAA,CAAA,IAAM,CACpC,IAAMC,CAAN,CAAA,MAAMA,UAAoB5D,GAAiB,CACzC,IAAI,UAAA,EAAa,CACf,OAAO,IAAK,CAAA,WACd,CACA,IAAI,UAAA,CAAWzrJ,CAAM,CAAA,CACfA,CACF,EAAA,IAAA,CAAK,iBAAkBA,CAAAA,CAAI,EAE/B,CAKA,IAAI,UAAWsvJ,CAAAA,CAAAA,CAAY,CACzB,IAAA,CAAK,YAAa,CAAA,IAAA,CAAKA,GAAY,aAAa,EAClD,CAKA,IAAI,UAAWC,CAAAA,CAAAA,CAAY,CACzB,IAAA,CAAK,aAAa,IAAKA,CAAAA,CAAAA,EAAY,aAAa,EAClD,CAOA,IAAI,OAAU,EAAA,CACZ,OAAO,IAAK,CAAA,UACd,CACA,IAAI,OAAQp6L,CAAAA,CAAAA,CAAI,CAId,IAAK,CAAA,UAAA,CAAaA,EACpB,CACA,WAAA,CAAYq6L,CAAOC,CAAAA,CAAAA,CAAWC,CAAUC,CAAAA,CAAAA,CAAYC,CAAM/E,CAAAA,CAAAA,CAASgF,EAA0BC,CAA2B,CAAA,CACtH,KAAM,EAAA,CACN,IAAK,CAAA,KAAA,CAAQN,CACb,CAAA,IAAA,CAAK,UAAYC,CACjB,CAAA,IAAA,CAAK,QAAWC,CAAAA,CAAAA,CAChB,IAAK,CAAA,UAAA,CAAaC,CAClB,CAAA,IAAA,CAAK,KAAOC,CACZ,CAAA,IAAA,CAAK,OAAU/E,CAAAA,CAAAA,CACf,IAAK,CAAA,wBAAA,CAA2BgF,CAChC,CAAA,IAAA,CAAK,0BAA4BC,CAEjC,CAAA,IAAA,CAAK,WAAc,CAAA,CAAA,CAEnB,IAAK,CAAA,YAAA,CAAe,EAAC,CACrB,KAAK,YAAe,CAAA,IAAIj/J,IAExB,CAAA,IAAA,CAAK,MAAS,CAAA,IAAIA,IAClB,CAAA,IAAA,CAAK,cAAgB,IACrB,CAAA,IAAA,CAAK,WAAc,CAAA,IAAA,CACnB,IAAK,CAAA,oBAAA,CAAuB,IAAIkvD,EAAAA,CAChC,KAAK,OAAU,CAAA,IAAA,CACf,IAAK,CAAA,cAAA,CAAiB,CACtB,CAAA,CAAA,IAAA,CAAK,SAAY,CAAA,IAAIA,GACrB,IAAK,CAAA,SAAA,CAAY,CACjB,CAAA,CAAA,IAAA,CAAK,eAAkB,CAAA,CAAA,CAAA,CAEvB,IAAK,CAAA,YAAA,CAAe,IAAIA,EACxB,CAAA,IAAA,CAAK,YAAe,CAAA,IAAIA,EACxB,CAAA,IAAA,CAAK,qBAAsB,GAC7B,CACA,SAAY,EAAA,CACV,IAAK,CAAA,aAAA,GACP,CACA,aAAgB,EAAA,CACd,GAAI,IAAK,CAAA,SAAA,CAAW,CAClB,IAAA,CAAK,SAAY,CAAA,CAAA,CAAA,CACjB,IAAMgwG,CAAAA,CAAa,KAAK,WACpB,CAAA,CAAC,IAAK,CAAA,aAAA,EAAmBA,CAC3B,GAAA,IAAA,CAAK,WAAc,CAAA,IAAA,CAAK,SAAS,IAAKA,CAAAA,CAAU,CAAE,CAAA,MAAA,CAAO,CAACprL,CAAAA,CAAOnP,CAAS,GAAA,IAAA,CAAK,QAAU,IAAK,CAAA,OAAA,CAAQmP,CAAOnP,CAAAA,CAAI,CAAIA,CAAAA,CAAI,CAE7H,EAAA,CACI,KAAK,WACP,GAAA,IAAA,CAAK,aAAgB,CAAA,IAAA,CAAK,eAAmB,EAAA,IAAA,CAAK,aAAgB,CAAA,IAAA,CAAK,cAAgB,IAAK,CAAA,WAAA,CAAY,IAAK,CAAA,IAAA,CAAK,WAAW,CAAA,CACzH,IAAK,CAAA,aAAA,EACP,KAAK,iBAAkB,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,WAAW,CAAC,CAGzD,EAAA,CACA,kBAAkB+kJ,CAAY,CAAA,CAC5B,IAAK,CAAA,WAAA,CAAcA,CACnB,CAAA,IAAA,CAAK,SAAY,CAAA,CAAA,EACnB,CACA,iBAAkBv6G,CAAAA,CAAAA,CAAM,CACtB,GAAI,CAAC,IAAA,CAAK,aAAe,CAAA,OACzB,KAAK,MAAS,CAAA,IAAA,CAAK,WAAgB,GAAA,IAAA,CAAK,YACxC,CAAA,IAAMuuJ,CAAgB,CAAA,IAAA,CAAK,YAAY,aACvC,CAAA,IAAA,CAAK,eAAkB,CAAA,CAAA,CAAA,CACvB,IAAK,CAAA,aAAA,CAAc,gBAAiB,CAAA,CAAC/4L,EAAMw6L,CAAuB78D,CAAAA,CAAAA,GAAiB,CACjF,IAAMj3G,CAAO,CAAA,IAAA,CAAK,WAAY8jB,CAAAA,CAAAA,CAAKmzF,CAAY,CAAGA,CAAAA,CAAY,CAC9D,CAAA,GAAIj3G,CAAM,EAAA,QAAA,CACR,GAAI1mB,CAAAA,CAAK,eAAiB,IAAM,CAAA,CAC9B,IAAMmS,CAAAA,CAAU,IAAI4lL,GAAAA,CAAyBvtJ,CAAKmzF,CAAAA,CAAY,CAAC,CAAA,CAC/DxrH,CAAQ,CAAA,KAAA,CAAQwrH,CAChBo7D,CAAAA,CAAAA,CAAc,kBAAmBryK,CAAAA,CAAAA,CAAK,SAAUvU,CAASwrH,CAAAA,CAAY,EACvE,CAAA,KAAA,GAAWA,CAAgB,EAAA,IAAA,CACzBo7D,CAAc,CAAA,MAAA,CAAOyB,CAAqB,CACrC,CAAA,KAAA,CACL,IAAMC,CAAAA,CAAO1B,CAAc,CAAA,GAAA,CAAIyB,CAAqB,CAAA,CACpDzB,EAAc,IAAK0B,CAAAA,CAAAA,CAAM98D,CAAY,EACvC,CAEJ,CAAC,CACD,CAAA,IAAA,CAAK,yBACD,CAAA,IAAA,CAAK,KAAM,CAAA,aAAA,EACb,IAAK,CAAA,kBAAA,GAET,CAKA,yBAA0B,CACxB,IAAMo7D,CAAgB,CAAA,IAAA,CAAK,WAAY,CAAA,aAAA,CACvC,IAAS2B,IAAAA,CAAAA,CAAc,EAAGlmL,CAAQukL,CAAAA,CAAAA,CAAc,MAAQ2B,CAAAA,CAAAA,CAAclmL,CAAOkmL,CAAAA,CAAAA,EAAAA,CAAe,CAE1F,IAAMvoL,EADU4mL,CAAc,CAAA,GAAA,CAAI2B,CAAW,CAAA,CACrB,OACxBvoL,CAAAA,CAAAA,CAAQ,KAAQqC,CAAAA,CAAAA,CAChBrC,EAAQ,KAAQuoL,CAAAA,CAAAA,GAAgB,CAChCvoL,CAAAA,CAAAA,CAAQ,IAAOuoL,CAAAA,CAAAA,GAAgBlmL,CAAQ,CAAA,CAAA,CACvCrC,EAAQ,IAAOuoL,CAAAA,CAAAA,CAAc,CAAM,GAAA,CAAA,CACnCvoL,CAAQ,CAAA,GAAA,CAAM,CAACA,CAAAA,CAAQ,KACvBA,CAAQ,CAAA,KAAA,CAAQuoL,EAClB,CACF,CACA,WAAA,CAAYlwJ,CAAMttC,CAAAA,CAAAA,CAAG,CACnB,OAAI,IAAA,CAAK,cAAgB,EAAA,MAAA,GAAW,CAC3B,CAAA,IAAA,CAAK,cAAe,CAAA,KAAA,CAAA,CAEZ,KAAK,cAAkB,EAAA,EAAI,EAAA,IAAA,CAAKy9L,CAAO,EAAA,CAAC,CAACA,CAAAA,CAAI,OAAOz9L,CAAGstC,CAAAA,CAAI,CAAC,CAE/E,CACA,eAAA,EAAkB,CAChB,IAAA,CAAK,kBACL,CAAA,IAAA,CAAK,gBAAmB,CAAA,IAAA,CAAK,gBAAiB,EAAA,CAC1C,IAAK,CAAA,UAAA,GACP,KAAK,iBAAkB,EAAA,CACnB,CAAC,IAAA,CAAK,QAAS,CAAA,OAAA,EAAW,IAAK,CAAA,MAAA,CAAO,OACxC,IAAK,CAAA,YAAA,EAEP,CAAA,IAAA,CAAK,0BAA2B,EAAA,CAChC,IAAK,CAAA,kBAAA,IAET,CACA,kBAAA,EAAqB,CACnB,IAAA,CAAK,IAAK,CAAA,YAAA,EACV,CAAA,IAAA,CAAK,eAAe,OAAQ,CAAA,SAAA,CAAU,IAAM,CAC1C,IAAK,CAAA,eAAA,CAAkB,CACvB,CAAA,CAAA,IAAA,CAAK,gBACP,CAAC,CACD,CAAA,IAAA,CAAK,cAAe,CAAA,eAAA,GACtB,CACA,kBAAmB,CACjB,IAAA,CAAK,MAAO,CAAA,eAAA,CAAkB,IAAK,CAAA,MAAA,CAAO,eAAkB,CAAA,IAAA,CAAK,OAAO,eAAkB,CAAA,IAAIi4I,GAC1F,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAO,GAAA,KAAA,CAAA,GAC1B,KAAK,MAAO,CAAA,IAAA,CAAK,EAAK,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAEzC,CAAA,CAAA,IAAA,CAAK,KAAO,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,GAAA,GAAQ,CAAI,CAAA,OAAA,CAAU,YACnD,CAAA,IAAA,CAAK,KAAO,IAAK,CAAA,MAAA,CAAO,IAAQ,EAAA,CAAA,CAAA,CAChC,IAAK,CAAA,MAAA,CAAO,MAAS,CAAA,IAAA,CAAK,OAAO,MAAU,EAAA,4BAAA,CAC3C,IAAK,CAAA,KAAA,CAAM,MAAS,CAAA,IAAA,CAAK,MAAO,CAAA,KAAA,EAAS,GACzC,IAAK,CAAA,GAAA,CAAM,CAAK,CAAA,IAAA,CAAA,MAAA,CAAO,GACvB,CAAA,IAAA,CAAK,QAAW,CAAA,IAAA,CAAK,OAAO,QAAY,EAAA,KAAA,CAAA,CACxC,IAAK,CAAA,QAAA,CAAW,OAAO,IAAA,CAAK,MAAO,CAAA,QAAA,EAAa,SAAW,IAAK,CAAA,MAAA,CAAO,QAAW,CAAA,IAAA,CAAK,QACnF,CAAA,IAAA,CAAK,MAAO,CAAA,QAAA,EAAY,KAAK,MAAO,CAAA,QAAA,CAAS,OAC/C,GAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAU,IAAK,CAAA,MAAA,CAAO,SAAS,OAC7C,CAAA,IAAA,CAAK,QAAS,CAAA,MAAA,CAAS,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAA,CAE9C,KAAK,gBAAmB,CAAA,IAAA,CAAK,GAAM,CAAA,EAAA,CAAK,GACxC,CAAA,IAAA,CAAK,KAAQ,CAAA,IAAA,CAAK,OAAO,KAAS,EAAA,OAAO,IAAK,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA,CAAY,GAAc,CAAA,IAAA,CAAK,OAAO,KAAM,CAAA,OAAA,CAAU,CACjH,CAAA,CAAA,IAAA,CAAK,aAAc,GACrB,CACA,WAAA,EAAc,CACZ,IAAK,CAAA,OAAA,EAAS,OAAQ,EAAA,CACtB,IAAK,CAAA,SAAA,CAAU,IAAK,GACtB,CAEA,YAAe,EAAA,CAEb,IAAK,CAAA,yBAAA,CAA0B,YAAa,CAAA,IAAA,CAAK,eAAgB,CAAA,aAAa,EAAE,SAAU8W,CAAAA,CAAAA,EAAU,CAClG,IAAA,CAAK,OAAUA,CAAAA,CAAAA,CACfA,CAAO,CAAA,GAAA,CAAI,KAAK,CAAE,CAAA,GAAA,CAAI,CACpB,SAAA,CAAW,MAAO,CAAA,oBACpB,CAAC,CAAA,CACD,KAAK,yBAA0B,CAAA,EAAA,CAAGA,CAAQ,CAAA,UAAU,CAAE,CAAA,SAAA,CAAU,IAAM,CACpE,KAAK,aAAgB,CAAA,IAAA,CAAK,kBAAmB,CAAA,aAAA,CAAc,WAC3D,CAAA,IAAA,CAAK,cAAiB,CAAA,IAAA,CAAK,UAAU,IAAK,CAAA,UAAU,CACpD,CAAA,IAAA,CAAK,MAAS,CAAA,CAAA,CACd,IAAK,CAAA,SAAA,CAAU,KAAK,kBAAmB,CAAA,aAAA,CAAe,YAAc,CAAA,EAAE,EACxE,CAAC,CACG,CAAA,IAAA,CAAK,SAAS,OAChB,EAAA,IAAA,CAAK,yBAA0B,CAAA,EAAA,CAAGA,CAAQ,CAAA,OAAO,CAAE,CAAA,SAAA,CAAUv9K,GAAM,CACjE,IAAA,CAAK,cAAe,CAAA,SAAA,CAAWA,CAAE,EACnC,CAAC,CAAA,CACD,KAAK,yBAA0B,CAAA,EAAA,CAAGu9K,CAAQ,CAAA,SAAS,CAAE,CAAA,SAAA,CAAUv9K,CAAM,EAAA,CACnE,KAAK,cAAe,CAAA,UAAA,CAAYA,CAAE,EACpC,CAAC,CAAA,GAED,IAAK,CAAA,yBAAA,CAA0B,GAAGu9K,CAAQ,CAAA,SAAS,CAAE,CAAA,SAAA,CAAUv9K,CAAM,EAAA,CACnE,IAAK,CAAA,cAAA,CAAe,UAAWA,CAAE,EACnC,CAAC,CAAA,CACD,IAAK,CAAA,yBAAA,CAA0B,EAAGu9K,CAAAA,CAAAA,CAAQ,UAAU,CAAE,CAAA,SAAA,CAAUv9K,CAAM,EAAA,CACpE,IAAK,CAAA,cAAA,CAAe,UAAYA,CAAAA,CAAE,EACpC,CAAC,CAAA,CAAA,CAEH,IAAK,CAAA,yBAAA,CAA0B,EAAGu9K,CAAAA,CAAAA,CAAQ,kBAAkB,CAAA,CAAE,UAAU,CAAC,CACvE,QAAA/B,CAAAA,CACF,CAAM,GAAA,CACJ,GAAI,IAAA,CAAK,IAAIA,CAAQ,CAAA,EAAK,IAAK,CAAA,QAAA,CAAU,CACvC,IAAA,CAAK,KAAM,CAAA,QAAA,CAAWA,EACtB,IAAIoD,CAAAA,CAAQ,CACP,CAAA,IAAA,CAAK,GAGRA,CAAAA,CAAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,QAAU,UAAa,CAAA,CAAA,CAAI,CAF9CA,CAAAA,CAAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,KAAU,GAAA,UAAA,CAAa,EAAI,CAIhD,CAAA,IAAA,CAAK,kBAAmBA,CAAAA,CAAK,EAC/B,CAAA,KACE,IAAK,CAAA,MAAA,CAAS,EACd,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,kBAAA,CAAmB,aAAe,CAAA,YAAA,CAAc,4CAA4C,CAAA,CAChH,KAAK,SAAU,CAAA,IAAA,CAAK,kBAAmB,CAAA,aAAA,CAAe,WAAa,CAAA,EAAE,EAEzE,CAAC,EACD,IAAK,CAAA,yBAAA,CAA0B,EAAGrB,CAAAA,CAAAA,CAAQ,cAAc,CAAA,CAAE,SAAU,CAAA,CAAC,CACnE,QAAAsB,CAAAA,CACF,CAAM,GAAA,CAGJA,CAAS,CAAA,eAAA,GACX,CAAC,EACH,CAAC,EACH,CAEA,cAAA,CAAerwL,CAAGwR,CAAAA,CAAAA,CAAI,CAGpB,GAAIA,EAAG,MAAO,CAAA,CAAA,GAAM,CAClB,CAAA,OAEFA,CAAK,CAAA,IAAA,CAAK,GAAI,CAAA,IAAA,CAAK,SAAS,OAAUA,CAAAA,CAAAA,CAAG,MAASA,CAAAA,CAAAA,CAAG,MAAM,CAAA,CAC3D,IAAI8+K,CAAAA,CAAO9+K,EAAK,IAAK,CAAA,MAAA,CACrB8+K,CAAO,CAAA,IAAA,CAAK,IAAS,GAAA,YAAA,CAAe,IAAK,CAAA,GAAA,CAAI9+K,EAAK,IAAK,CAAA,MAAM,CAAK,EAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAU,IAAK,CAAA,QAAA,CAAS,MAAS,CAAA,IAAA,CAAK,aAAiB,CAAA,CAAA,GAAA,CAAM8+K,CAC7I,CAAA,IAAA,CAAK,MAAS9+K,CAAAA,CAAAA,CACd,KAAK,KAAM,CAAA,KAAA,CAAQxR,CACnB,CAAA,IAAA,CAAK,kBAAmBA,CAAAA,CAAAA,CAAGswL,CAAI,CAAA,CAC/B,KAAK,sBAAuB,GAC9B,CACA,kBAAA,CAAmBtwL,CAAGswL,CAAAA,CAAAA,CAAM,CAC1B,IAAM98C,EAAY,IAAK,CAAA,GAAA,CAAM,UAAa,CAAA,SAAA,CAC1C,IAAK,CAAA,cAAA,CAAiBxzI,CAAMwzI,GAAAA,CAAAA,CAAY88C,EAAO,IAAK,CAAA,cAAA,CAAiB,IAAK,CAAA,cAAA,CAAiBA,EAC7F,CACA,sBAAyB,EAAA,CACnB,KAAK,cAAiB,CAAA,CAAA,GACxB,IAAK,CAAA,cAAA,CAAiB,CAExB,CAAA,CAAA,IAAMzyL,CAAO,CAAA,IAAA,CAAK,OAAS,YAAe,CAAA,GAAA,CAAM,IAChD,CAAA,IAAA,CAAK,SAAU,CAAA,IAAA,CAAK,kBAAmB,CAAA,aAAA,CAAe,YAAa,IAAK,CAAA,QAAA,CAAS,OAAU,CAAA,CAAA,eAAA,EAAkB,IAAK,CAAA,gBAAgB,CAAG,EAAA,IAAA,CAAK,cAAc,CAAGA,EAAAA,CAAI,CAAS,IAAA,CAAA,CAAA,CAAA,YAAA,EAAe,IAAK,CAAA,gBAAgB,CAAG,EAAA,IAAA,CAAK,cAAc,CAAGA,EAAAA,CAAI,CAAS,OAAA,CAAA,EACpP,CAEA,kBAAA,EAAqB,CACnB,GAAM,CACJ,SAAA0yL,CAAAA,CAAAA,CACA,YAAAC,CAAAA,CACF,CAAI,CAAA,IAAA,CAAK,KAAM,CAAA,aAAA,CACT,CACJ,OAASC,CAAAA,CAAAA,CACT,WAAaC,CAAAA,CACf,CAAI,CAAA,MAAA,CACuBH,CAAaE,EAAAA,CAAAA,CAAgBC,EAAoBF,CAAe,CAAA,CAAA,EAAKA,CAAeA,CAAAA,CAAAA,CAAe,CAAKC,EAAAA,CAAAA,CAEjI,IAAK,CAAA,oBAAA,CAAqB,KAAK,CAAC,CAAA,CAEhC,IAAK,CAAA,oBAAA,CAAqB,IAAK,CAAA,CAAC,EAEpC,CAEA,oBAAqB,CACnB,IAAME,CAAc,CAAA,IAAA,CAAK,MAAO,CAAA,eAAA,CAChC,IAAK,CAAA,WAAA,CAAc,KAAK,UAAa,CAAA,MAAA,CAAO,UAAaA,CAAAA,CAAAA,EAAa,EACtE,CAAA,IAAA,CAAK,aAAgB,CAAA,IAAA,CAAK,cAAc,aAAc,CAAA,WAAA,CAClD,IAAK,CAAA,IAAA,GAAS,YAChB,EAAA,IAAA,CAAK,UAAa,CAAA,IAAA,CAAK,aAAeA,CAAa,EAAA,EAAA,CAAK,IAAO,CAAA,IAAA,CAAK,WAAeA,EAAAA,CAAAA,EAAa,EAAK,CAAA,IAAA,CAAO,KAAK,WAAeA,EAAAA,CAAAA,EAAa,EAAK,CAAA,IAAA,CAAO,IAAK,CAAA,WAAA,EAAeA,CAAa,EAAA,EAAA,CAAK,KAAO,IACtM,CAAA,IAAA,CAAK,KAAQ,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,IAAK,CAAA,UAAU,EAC7C,IAAK,CAAA,SAAA,CAAY,IAAK,CAAA,aAAA,CAAgB,IAAK,CAAA,KAAA,GAE3C,IAAK,CAAA,KAAA,CAAQ,KAAK,KAAM,CAAA,IAAA,CAAK,aAAgB,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CACjE,KAAK,SAAY,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,GAClC,CAAA,IAAA,CAAK,UAAa,CAAA,KAAA,CAAA,CAEpB,KAAK,UAAa,CAAA,EAAE,IAAK,CAAA,MAAA,CAAO,KAAQ,CAAA,IAAA,CAAK,KAAQ,CAAA,IAAA,CAAK,OAAO,KAAQ,CAAA,IAAA,CAAK,KAC9E,CAAA,CAAA,IAAA,CAAK,IAAO,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,EAAQ,KAAK,UAAa,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAO,IAAK,CAAA,UAAA,CAC1E,IAAK,CAAA,KAAA,CAAQ,KAAK,MAAO,CAAA,KAAA,EAAS,IAAK,CAAA,MAAA,CAAO,KAAQ,CAAA,CAAA,CAAA,CAAK,IAAK,CAAA,MAAA,CAAO,MAAQ,GAC/E,CAAA,IAAA,CAAK,cAAe,GACtB,CAEA,KAAA,CAAMC,CAAkB,CAAA,CACtBA,IAAqB,IAAK,CAAA,cAAA,CAAiB,CAC3C,CAAA,CAAA,CAAA,IAAA,CAAK,gBAAiB,CAAA,WAAA,CAAc,EACpC,CAAA,IAAA,CAAK,OAAO,CAAC,CAAA,CACb,IAAK,CAAA,cAAA,GACP,CAEA,cAAiB,EAAA,CACf,IAAMC,CAAM,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,WAAW,CAAA,CAAE,MAAU,EAAA,IAAA,CAAK,MAAQ,IAAK,CAAA,UAAA,CAAA,CACrE,IAAK,CAAA,WAAA,CAAc,IAAK,CAAA,IAAA,CAAKA,CAAM,CAAA,IAAA,CAAK,UAAU,CAClD,CAAA,IAAMC,CAAW,CAAA,EACjB,CAAA,GAAI,IAAK,CAAA,WAAA,CAAc,GAAK,CAAC,IAAA,CAAK,MAAO,CAAA,KAAA,EAAO,iBAC9C,CAAA,IAAA,IAAS,CAAI,CAAA,CAAA,CAAG,EAAI,IAAK,CAAA,WAAA,CAAa,CACpCA,EAAAA,CAAAA,CAAAA,CAAS,IAAK,CAAA,CAAC,CAGnB,CAAA,IAAA,CAAK,aAAeA,CACpB,CAAA,IAAA,CAAK,qBAAsB,EAAA,CACvB,IAAK,CAAA,WAAA,EAAe,CACtB,CAAA,IAAA,CAAK,YAAY,CAAG,CAAA,CAAC,CAEjB,CAAA,IAAA,CAAK,YAAiB,GAAA,CAAA,EAAK,CAAC,IAAA,CAAK,KACnC,IAAK,CAAA,WAAA,CAAY,CAAG,CAAA,CAAC,CAErB,CAAA,IAAA,CAAK,WAAY,CAAA,CAAA,CAAG,CAAC,EAG3B,CAEA,qBAAwB,EAAA,CACtB,IAAMp+L,CAAAA,CAAI,IAAK,CAAA,IAAA,CAAK,KAAK,YAAe,CAAA,IAAA,CAAK,UAAU,CAAA,CACvD,IAAK,CAAA,WAAA,CAAcA,CACnB,CAAA,IAAA,CAAK,KAAK,YAAa,GACzB,CAEA,MAAA,CAAOq+L,CAAOH,CAAAA,CAAAA,CAAkB,CAG9B,GADAA,IAAqB,IAAK,CAAA,cAAA,CAAiB,CACvC,CAAA,CAAA,CAAA,IAAA,CAAK,WAAgBG,GAAAA,CAAAA,EAASA,CAAQ,CAAA,IAAA,CAAK,YAAa,CAC1D,IAAIC,CACEC,CAAAA,CAAAA,CAAO,IAAK,CAAA,YAAA,CAAeF,CAAQ,CAAA,CAAA,CAAI,EAC7C,OAAQA,CAAAA,EACN,KACE,CAAA,CAAA,IAAA,CAAK,WAAY,CAAA,CAAA,CAAG,CAAC,CACrBC,CAAAA,CAAAA,CAAeD,CAAQ,CAAA,IAAA,CAAK,UAC5B,CAAA,MACF,KAAK,IAAA,CAAK,YAAc,CACtB,CAAA,IAAA,CAAK,WAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CACrBC,CAAe,CAAA,KAAA,CAAM,KAAK,IAAK,CAAA,WAAW,CAAE,CAAA,MAAA,CAAS,IAAK,CAAA,KAAA,CAC1D,MACF,QACE,KAAK,WAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CACrBA,CAAeD,CAAAA,CAAAA,CAAQ,IAAK,CAAA,WAChC,CACA,IAAK,CAAA,kBAAA,CAAmBE,CAAMD,CAAAA,CAAAA,CAAc,IAAK,CAAA,KAAK,EACxD,CACF,CAEA,aAAgB,EAAA,CACd,IAAK,CAAA,KAAA,CAAQ,IAAK,CAAA,WAAA,EAClB,CAAA,IAAIE,EAAO,EACX,CAAA,IAAA,CAAK,QAAW,CAAA,CAAA,CAAA,EAAI,IAAK,CAAA,KAAK,CAC1B,2DAAA,CAAA,CAAA,IAAA,CAAK,OAAO,MAAW,GAAA,QAAA,EACzB,IAAK,CAAA,SAAA,CAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,aAAA,CAAe,QAAQ,CAExD,CAAA,IAAA,CAAK,MAAO,CAAA,SAAA,GAAc,MAC5BA,GAAAA,CAAAA,EAAQ,CAAG,EAAA,IAAA,CAAK,QAAQ,CAE1B,0CAAA,CAAA,CAAA,CAAA,IAAMP,CAAc,CAAA,IAAA,CAAK,MAAO,CAAA,eAAA,CAC5BQ,CAAY,CAAA,EAAA,CAChB,GAAI,IAAK,CAAA,QAAA,CAAS,OAAS,CAAA,CACzB,IAAMC,CAAAA,CAAc,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAqB,kBAAA,EAAA,IAAA,CAAK,QAAS,CAAA,MAAA,CAAS,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAC9FC,GAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAA,kBAAA,EAAqB,IAAK,CAAA,QAAA,CAAS,OAAS,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,GAAA,CAAA,CAC9FC,CAAc,CAAA,CAAA,EAAG,KAAK,QAAQ,CAAA,kBAAA,EAAqB,IAAK,CAAA,QAAA,CAAS,MAAS,CAAA,CAAC,IAAK,CAAA,MAAA,CAAO,KAAK,EAAE,CAAA,GAAA,CAAA,CAC9FC,CAAc,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAAqB,kBAAA,EAAA,IAAA,CAAK,SAAS,MAAS,CAAA,CAAC,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,EAAE,CAC9FC,GAAAA,CAAAA,CAAAA,CAAAA,CAAc,GAAG,IAAK,CAAA,QAAQ,CAAqB,kBAAA,EAAA,IAAA,CAAK,QAAS,CAAA,MAAA,CAAS,CAAC,IAAA,CAAK,OAAO,IAAK,CAAA,EAAE,CACpGL,GAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAqBR,kBAAAA,EAAAA,CAAAA,EAAa,EAAK,CAAA,CAAC,OAAOS,CAAW,CAAA;AAAA,sCACtCT,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOU,CAAW,CAAA;AAAA,sCACjCV,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOW,CAAW,CAAA;AAAA,sCACjCX,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOY,CAAW,CAAA;AAAA,sCAAA,EACjCZ,CAAa,EAAA,EAAE,CAAOa,IAAAA,EAAAA,CAAW,CACnE,CAAA,EAAA,CAAA,KAAA,GAAW,IAAK,CAAA,IAAA,GAAS,YAAc,CAAA,CACrC,IAAMJ,CAAAA,CAAc,KAAK,MAAO,CAAA,IAAA,GAAS,QAAW,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAAqB,kBAAA,EAAA,EAAA,CAAK,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,UAAA,EAAa,EAAK,CAAA,CAAC,KAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,GAAA,CAAA,CAAQ,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAA,kBAAA,EAAqB,GAAM,CAAA,CAAC,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,EAAE,CAAa,UAAA,EAAA,GAAA,CAAM,CAAC,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,EAAE,CAChQC,GAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAuB,oBAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,UAAA,EAAa,IAAM,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,EAAA,CAAA,CACtHC,CAAc,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAAuB,oBAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAa,UAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,EAAA,CAAA,CACtHC,CAAc,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAAuB,oBAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,OAAO,IAAK,CAAA,EAAE,CAAa,UAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,EAAA,CAAA,CACtHC,CAAc,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAAuB,oBAAA,EAAA,GAAA,CAAM,CAAC,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,EAAE,CAAa,UAAA,EAAA,GAAA,CAAM,CAAC,IAAA,CAAK,OAAO,IAAK,CAAA,EAAE,CAC5HL,EAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAqBR,kBAAAA,EAAAA,CAAAA,EAAa,EAAK,CAAA,CAAC,OAAOS,CAAW,CAAA;AAAA,sCACtCT,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOU,CAAW,CAAA;AAAA,sCACjCV,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOW,CAAW,CAAA;AAAA,sCACjCX,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOY,CAAW,CAAA;AAAA,sCACjCZ,EAAAA,CAAAA,EAAa,EAAE,CAAA,IAAA,EAAOa,CAAW,CAAA,CAAA,EACnE,CACEL,KAAAA,CAAAA,CAAY,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAA,kBAAA,EAAqB,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,GAAG,CAAc,WAAA,EAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,IAAA,CAAA,CAEzG,IAAK,CAAA,SAAA,CAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,aAAA,CAAe,IAAK,CAAA,KAAK,EACxD,IAAK,CAAA,QAAA,CAAS,OAChB,GAAA,IAAA,CAAK,SAAU,CAAA,QAAA,CAAS,IAAK,CAAA,kBAAA,CAAmB,aAAe,CAAA,aAAa,CAC5E,CAAA,IAAA,CAAK,SAAU,CAAA,QAAA,CAAS,IAAK,CAAA,aAAA,CAAc,aAAe,CAAA,QAAA,CAAU,CAAG,EAAA,IAAA,CAAK,QAAS,CAAA,MAAM,CAAI,EAAA,CAAA,CAAA,CAAA,CAEjG,IAAK,CAAA,GAAA,EAAO,CAAC,IAAA,CAAK,QAAS,CAAA,OAAA,EAAW,KAAK,SAAU,CAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,aAAe,CAAA,QAAQ,CAChG,CAAA,IAAA,CAAK,gBAAiB,CAAA,CAAA,EAAGD,CAAI,CAAA,CAAA,EAAIC,CAAS,CAAA,CAAE,CAC5C,CAAA,IAAA,CAAK,kBAAmB,GAC1B,CAEA,kBAAA,CAAmBM,CAAK,CAAA,CACtB,IAAIC,CAAAA,CAAY,IAAK,CAAA,KAAA,CACjBpF,CAAe,CAAA,CAAA,CACfqF,CAAY,CAAA,IAAA,CAAK,KAAK,IAAK,CAAA,MAAA,CAAS,IAAK,CAAA,SAAS,CAGtD,CAAA,GAFAA,CAAY,CAAA,QAAA,CAASA,CAAS,CAAA,CAAIA,CAAY,CAAA,CAAA,CAC9C,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,kBAAA,CAAmB,aAAe,CAAA,WAAA,CAAa,EAAE,CAAA,CACjE,IAAK,CAAA,WAAA,GAAgB,CAElB,CAAA,GAAIF,CAAQ,GAAA,CAAA,GAAM,CAAC,IAAA,CAAK,IAAQ,EAAA,CAAC,KAAK,OAAW,EAAA,IAAA,CAAK,IAAO,CAAA,CAAA,CAElE,IAAMG,CAAAA,CADgB,IAAK,CAAA,YAAA,CAAe,IAAK,CAAA,UAAA,CACb,IAAK,CAAA,UAAA,CACvC,IAAK,CAAA,WAAA,CAAY,CAAG,CAAA,CAAC,CACjB,CAAA,IAAA,CAAK,YAAiB,GAAA,CAAA,EACxBtF,CAAe,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,WAAW,CAAA,CAAE,MAAS,CAAA,IAAA,CAAK,KAC1DoF,CAAAA,CAAAA,CAAY,IACZ,IAAK,CAAA,WAAA,CAAY,CAAG,CAAA,CAAC,CACZ,EAAA,IAAA,CAAK,UAAcE,EAAAA,CAAAA,EAC5BtF,CAAe,CAAA,CAAA,CACf,IAAK,CAAA,WAAA,CAAY,CAAG,CAAA,CAAC,CAErB,GAAA,IAAA,CAAK,WAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CACjBqF,CAAY,CAAA,IAAA,CAAK,UACnBrF,EAAAA,CAAAA,CAAe,IAAK,CAAA,YAAA,CAAeqF,CACnCD,CAAAA,CAAAA,CAAY,GAEZpF,EAAAA,CAAAA,CAAe,KAAK,YAAe,CAAA,IAAA,CAAK,UAG5C,CAAA,CAAA,IAAA,CAAK,kBAAmBmF,CAAAA,CAAAA,CAAKnF,CAAcoF,CAAAA,CAAS,EACtD,CAAA,KAAWD,CAAQ,GAAA,CAAA,GAAM,CAAC,IAAA,CAAK,IAAQ,EAAA,CAAC,IAAK,CAAA,MAAA,EAAU,IAAK,CAAA,IAAA,CAAA,GACtD,KAAM,CAAA,IAAA,CAAK,IAAK,CAAA,WAAW,CAAE,CAAA,MAAA,EAAU,IAAK,CAAA,YAAA,CAAe,IAAK,CAAA,KAAA,CAAQ,IAAK,CAAA,UAAA,EAAc,CAAC,IAAA,CAAK,MACnGnF,EAAAA,CAAAA,CAAe,KAAM,CAAA,IAAA,CAAK,IAAK,CAAA,WAAW,CAAE,CAAA,MAAA,CAAS,IAAK,CAAA,KAAA,CAC1D,IAAK,CAAA,WAAA,CAAY,CAAG,CAAA,CAAC,CACZ,EAAA,IAAA,CAAK,MACdA,EAAAA,CAAAA,CAAe,CACfoF,CAAAA,CAAAA,CAAY,GACZ,CAAA,IAAA,CAAK,WAAY,CAAA,CAAA,CAAG,CAAC,CAAA,GAErB,IAAK,CAAA,WAAA,CAAY,EAAG,CAAC,CAAA,CACjBC,CAAY,CAAA,IAAA,CAAK,UACnBrF,EAAAA,CAAAA,CAAe,IAAK,CAAA,YAAA,CAAe,IAAK,CAAA,UAAA,EAAcqF,CAAY,CAAA,IAAA,CAAK,UACvED,CAAAA,CAAAA,CAAAA,CAAY,GAEZpF,EAAAA,CAAAA,CAAe,IAAK,CAAA,YAAA,CAAe,IAAK,CAAA,UAAA,CAAA,CAG5C,IAAK,CAAA,kBAAA,CAAmBmF,CAAKnF,CAAAA,CAAAA,CAAcoF,CAAS,CAAA,EAExD,CAEA,kBAAA,CAAmBD,CAAKnF,CAAAA,CAAAA,CAAcoF,EAAW,CAC/C,GAAI,IAAK,CAAA,MAAA,GAAW,CAAG,CAAA,CACrB,IAAM77L,CAAAA,CAAM,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CACpCg8L,CAAO,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAASh8L,CAAAA,CAAAA,CAAM,IAAK,CAAA,MAAA,EAAU,IAAK,CAAA,WAAA,CAAc,IAAK,CAAA,MAAA,CAAO,CACxFg8L,CAAAA,CAAAA,CAAOA,CAAOH,CAAAA,CAAAA,CAAYA,EAAYG,CACtCH,CAAAA,CAAAA,CAAYG,CAAO,CAAA,GAAA,CAAM,GAAMA,CAAAA,CAAAA,CAC/B,IAAK,CAAA,MAAA,CAAS,EAChB,CACI,IAAK,CAAA,cAAA,EACP,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,kBAAA,CAAmB,aAAe,CAAA,YAAA,CAAc,CAAaH,UAAAA,EAAAA,CAAS,CAAM,GAAA,EAAA,IAAA,CAAK,MAAO,CAAA,MAAM,CAAE,CAAA,CAAA,CACpH,IAAK,CAAA,MAAA,CAAO,SAAa,EAAA,IAAA,CAAK,iBAAkBD,CAAAA,CAAAA,CAAKnF,CAAe,CAAA,CAAA,CAAGA,CAAe,CAAA,IAAA,CAAK,KAAOoF,CAAAA,CAAAA,CAAW,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,YAAA,CAAepF,CAAY,CAAC,CAEvJ,EAAA,IAAA,CAAK,SAAU,CAAA,IAAA,CAAK,kBAAmB,CAAA,aAAA,CAAe,YAAc,CAAA,EAAE,CAExE,CAAA,IAAA,CAAK,UAAa,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,WAAW,CAAA,CAAE,MAC/C,CAAA,IAAA,CAAK,gBAAgBA,CAAY,CAAA,CACjC,IAAK,CAAA,YAAA,CAAeA,CACpB,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA,CACrB,IAAK,CAAA,qBAAA,EACL,CAAA,IAAA,CAAK,oBAAqB,EAAA,CAC1B,IAAK,CAAA,cAAA,CAAiB,CACxB,EAAA,CAEA,WAAYt3C,CAAAA,CAAAA,CAAO88C,CAAM,CAAA,CACvB,IAAK,CAAA,OAAA,CAAU,CAAC,CAAC98C,CACjB,CAAA,IAAA,CAAK,OAAS,CAAC,CAAC88C,EAClB,CACA,gBAAiBC,CAAAA,CAAAA,CAAMhB,CAAO,CAAA,CAC5B,IAAIiB,CAAAA,CAAU,EACd,CAAA,OAAAA,CAAW,EAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CACvB,0BAAA,CAAA,CAAA,IAAA,CAAK,QAAS,CAAA,OAAA,EAChB,IAAK,CAAA,SAAA,CAAUD,CAAI,CAAA,CAAI,IAAK,CAAA,QAAA,CAAS,MAAS,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAKA,CAAI,CAAIhB,CAAAA,CAAAA,CACvEiB,CAAW,EAAA,CAAA,IAAA,EAAO,IAAK,CAAA,SAAA,CAAUD,CAAI,CAAC,CAEtC,KAAA,CAAA,GAAA,IAAA,CAAK,SAAUA,CAAAA,CAAI,CAAI,CAAA,GAAA,CAAM,IAAK,CAAA,MAAA,CAAO,IAAKA,CAAAA,CAAI,CAAIhB,CAAAA,CAAAA,CACtDiB,CAAW,EAAA,CAAA,EAAG,IAAK,CAAA,gBAAgB,CAAG,EAAA,IAAA,CAAK,SAAUD,CAAAA,CAAI,CAAC,CAAA,OAAA,CAAA,CAAA,CAE5DC,CAAW,EAAA,MAAA,CACJA,CACT,CAEA,eAAgBjB,CAAAA,CAAAA,CAAO,CACrB,IAAIkB,CAAW,CAAA,EAAA,CACf,GAAI,IAAA,CAAK,IAAS,GAAA,YAAA,CAAc,CAC9B,IAAMtB,CAAc,CAAA,IAAA,CAAK,MAAO,CAAA,eAAA,CAChCsB,CAAW,CAAA,CAAA,mBAAA,EAAsBtB,CAAa,EAAA,EAAA,CAAK,CAAC,CAAA,KAAA,EAAQ,IAAK,CAAA,gBAAA,CAAiB,IAAMI,CAAAA,CAAK,CAAC,CAAA;AAAA,yBAAA,EAC3EJ,GAAa,EAAE,CAAA,KAAA,EAAQ,KAAK,gBAAiB,CAAA,IAAA,CAAMI,CAAK,CAAC,CAAA;AAAA,yBAAA,EACzDJ,GAAa,EAAE,CAAA,KAAA,EAAQ,KAAK,gBAAiB,CAAA,IAAA,CAAMI,CAAK,CAAC,CAAA;AAAA,yBAAA,EACzDJ,GAAa,EAAE,CAAA,KAAA,EAAQ,KAAK,gBAAiB,CAAA,IAAA,CAAMI,CAAK,CAAC,CAAA;AAAA,yBAAA,EACzDJ,CAAa,EAAA,EAAE,CAAQ,KAAA,EAAA,IAAA,CAAK,gBAAiB,CAAA,IAAA,CAAMI,CAAK,CAAC,CAC9E,EAAA,EAAA,CAAA,KACE,IAAK,CAAA,SAAA,CAAU,GAAM,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,GAAMA,CAAAA,CAAAA,CAC5CkB,CAAW,CAAA,CAAA,EAAG,IAAK,CAAA,QAAQ,CAA6B,0BAAA,EAAA,IAAA,CAAK,gBAAgB,CAAA,EAAG,IAAK,CAAA,SAAA,CAAU,GAAG,CAEpG,UAAA,CAAA,CAAA,IAAA,CAAK,gBAAiB,CAAA,WAAA,CAAcA,EACtC,CAEA,oBAAuB,EAAA,CACjB,OAAO,IAAA,CAAK,MAAO,CAAA,IAAA,EAAS,QAC9B,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,WAAW,CAAA,CAAE,MAAS,CAAA,IAAA,CAAK,IAAQ,EAAA,IAAA,CAAK,YAAe,CAAA,IAAA,CAAK,KAAS,EAAA,IAAA,CAAK,YAAa,CAAA,IAAA,CAAK,IAAK,CAAA,YAAY,EAEjI,CAEA,aAAc,CACZ,IAAIC,CAAO,CAAA,EAAA,CACLC,CAAW,CAAA,gEAAA,CACjB,IAAS,IAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,EAAA,CACrBD,CAAQC,EAAAA,CAAAA,CAAS,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAO,EAAA,CAAIA,CAAS,CAAA,MAAM,CAAC,CAAA,CAErE,OAAO,CAAA,WAAA,EAAcD,CAAI,CAAA,CAC3B,CAEA,iBAAA,EAAoB,CAClB,IAAMtoK,EAAY,IAAK,CAAA,aAAA,CAAc,aACrC,CAAA,GAAI,IAAK,CAAA,QAAA,EAAY,IAAK,CAAA,IAAA,CAAM,CAC9B,IAAA,CAAK,wBAAyB,CAAA,IAAA,CAE9BwoK,IAAU,CAAA,IAAM3uG,IAAM,CAAA,GAAG,CAAC,CAAA,CAAG+Y,EAAY,CAAA,IAAA,CAAK,SAAS,CAAC,CAAE,CAAA,SAAA,CAAU,IAAM,CAIxE,IAAK,CAAA,OAAA,CAAQ,GAAI,CAAA,IAAM,IAAK,CAAA,kBAAA,EAAoB,EAClD,CAAC,CACD,CAAA,IAAM61F,CAAYhtJ,CAAAA,EAAAA,CAAM,IAAM,CAAC,CACzBitJ,CAAAA,CAAAA,CAAWjtJ,EAAM,CAAA,IAAM,CAAC,CAAA,CACxBktJ,CAAQl8D,CAAAA,EAAAA,CAAUzsG,CAAW,CAAA,YAAY,CAAE,CAAA,IAAA,CAAK0oK,CAAQ,CAAA,CACxDE,CAASn8D,CAAAA,EAAAA,CAAUzsG,CAAW,CAAA,YAAY,CAAE,CAAA,IAAA,CAAKyoK,CAAS,CAAA,CAC1DI,CAAap8D,CAAAA,EAAAA,CAAUzsG,EAAW,YAAY,CAAA,CAAE,IAAK0oK,CAAAA,CAAQ,CAC7DI,CAAAA,CAAAA,CAAcr8D,EAAUzsG,CAAAA,CAAAA,CAAW,UAAU,CAAA,CAAE,IAAKyoK,CAAAA,CAAS,CAC7DM,CAAAA,CAAAA,CAAY7jJ,EAAS,CAAA,IAAA,CAAK,MAAO,CAAA,QAAA,EAAU,MAAM,CAAA,CAAE,IAAKwjJ,CAAAA,CAAQ,CAChEM,CAAAA,CAAAA,CAAe,IAAK,CAAA,QAAA,CAAS,YAAgB,EAAA,CAAA,CAC7CC,CAAoBl8D,CAAAA,EAAAA,CAAM47D,CAAOE,CAAAA,CAAAA,CAAYD,EAAQE,CAAa,CAAA,IAAA,CAAK,oBAAoB,CAAA,CAAE,IAAKI,CAAAA,EAAAA,CAAU,CAAC,CAAA,CAAGV,IAAUv8L,CAAAA,CAAAA,GAC9H,IAAK,CAAA,IAAA,CAAK,YAAa,EAAA,CAChBA,CAAM88L,CAAAA,CAAAA,CAAYI,IAC1B,CAAA,CAAC,CACFtvG,CAAAA,IAAAA,CAAMmvG,CAAY,CAAA,CAAE,IAAKR,CAAAA,IAAAA,CAAU,IAAMS,CAAiB,CAAGr2F,CAAAA,EAAAA,CAAY,IAAK,CAAA,SAAS,CAAC,CAAA,CAAE,UAAU,IAAM,CACxG,IAAK,CAAA,kBAAA,CAAmB,CAAC,EAC3B,CAAC,EACH,CACF,CAEA,iBAAkB7tF,CAAAA,CAAAA,CAAW/Z,CAAOC,CAAAA,CAAAA,CAAK23L,CAAOz+K,CAAAA,CAAAA,CAAQ,CACtD,IAAMwgL,CAAAA,CAAgB,IAAK,CAAA,WAAA,CAAY,aACnC14L,CAAAA,CAAAA,CAAMkY,CAAS,CAAA,CAAA,CAAIA,CAAS,CAAA,CAAA,CAChClY,CAAMA,CAAAA,CAAAA,GAAQ,CAAI,CAAA,CAAA,CAAIA,CACtB,CAAA,IAAMm9L,EAAmB,EAAC,CAC1B,GAAIrkL,CAAAA,GAAc,CAChB,CAAA,IAAA,IAASjc,CAAIkC,CAAAA,CAAAA,CAAQ,CAAGlC,CAAAA,CAAAA,CAAImC,CAAKnC,CAAAA,CAAAA,EAAAA,CAAK,CACpCsgM,CAAAA,CAAiB,IAAKtgM,CAAAA,CAAC,CACvBmD,CAAAA,CAAAA,CAAMA,CAAM,CAAA,CAAA,CAEZ,IAAM8R,CAAAA,CADU4mL,CAAc,CAAA,GAAA,CAAI77L,CAAC,CAAA,CACX,OACxBiV,CAAAA,CAAAA,CAAQ,OAAU,CAAA,CAChB,KAAO,CAAA,CAAA,CAAA,CACP,OAAQ,CACN,QAAA,CAAU9R,CACZ,CACF,EACF,CAAA,KAESnD,IAAAA,IAAAA,CAAAA,CAAImC,CAAM,CAAA,CAAA,CAAGnC,CAAKkC,EAAAA,CAAAA,CAAQ,CAAGlC,CAAAA,CAAAA,EAAAA,CAAK,CACzCsgM,CAAAA,CAAiB,IAAKtgM,CAAAA,CAAC,CACvBmD,CAAAA,CAAAA,CAAMA,CAAM,CAAA,CAAA,CAEZ,IAAM8R,CAAAA,CADU4mL,CAAc,CAAA,GAAA,CAAI77L,CAAC,CAAA,CACX,OACxBiV,CAAAA,CAAAA,CAAQ,OAAU,CAAA,CAChB,MAAO,CACP,CAAA,CAAA,MAAA,CAAQ,CACN,QAAA,CAAU,CAAC9R,CACb,CACF,EACF,CAEF,IAAA,CAAK,IAAK,CAAA,YAAA,EACV4tF,CAAAA,IAAAA,CAAM+oG,CAAQ,CAAA,EAAG,CAAE,CAAA,IAAA,CAAKhwF,EAAY,CAAA,IAAA,CAAK,SAAS,CAAC,CAAE,CAAA,SAAA,CAAU,IAAM,IAAA,CAAK,iBAAkBw2F,CAAAA,CAAgB,CAAC,EAC/G,CACA,iBAAA,CAAkBA,EAAkB,CAClC,IAAMzE,CAAgB,CAAA,IAAA,CAAK,WAAY,CAAA,aAAA,CACvCyE,CAAiB,CAAA,OAAA,CAAQ,CAAK,EAAA,CAE5B,IAAMrrL,CAAAA,CADU4mL,CAAc,CAAA,GAAA,CAAI,CAAC,CAAA,CACX,QACxB5mL,CAAQ,CAAA,OAAA,CAAU,CAChB,KAAA,CAAO,CACP,CAAA,CAAA,MAAA,CAAQ,CACN,QAAA,CAAU,CACZ,CACF,EACF,CAAC,CACD,CAAA,IAAA,CAAK,IAAK,CAAA,YAAA,GACZ,CAEA,SAAA,CAAUi/B,CAAIhzC,CAAAA,CAAAA,CAAMiC,CAAK,CAAA,CACvB,IAAK,CAAA,SAAA,CAAU,QAAS+wC,CAAAA,CAAAA,CAAIhzC,CAAMiC,CAAAA,CAAG,EACvC,CAEA,gBAAiBo9L,CAAAA,CAAAA,CAAO,CACtB,IAAMC,CAAY,CAAA,IAAA,CAAK,SAAU,CAAA,aAAA,CAAc,OAAO,CAAA,CACtD,GAAID,CAAAA,CAAO,CACT,IAAME,CAAY,CAAA,IAAA,CAAK,SAAU,CAAA,UAAA,CAAWF,CAAK,CACjD,CAAA,IAAA,CAAK,SAAU,CAAA,WAAA,CAAYC,CAAWC,CAAAA,CAAS,EACjD,CACA,OAAK,IAAA,CAAA,SAAA,CAAU,WAAY,CAAA,IAAA,CAAK,KAAM,CAAA,aAAA,CAAeD,CAAS,CAAA,CACvDA,CACT,CACA,qBAAwB,EAAA,CACtB,IAAK,CAAA,YAAA,CAAa,IAElBd,CAAAA,IAAAA,CAAU7C,CAAcA,EAAAA,CAAAA,CAAal5D,EAAUk5D,CAAAA,CAAAA,CAAY,OAAO,CAAA,CAAIwD,IAAK,CAAA,CAAGv2F,GAAY,IAAK,CAAA,SAAS,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,IAAK,CAAA,kBAAA,CAAmB,CAAC,CAAC,CACrJ,CAAA,IAAA,CAAK,YAAa,CAAA,IAAA,CAAK41F,IAAU9C,CAAAA,CAAAA,EAAcA,CAAaj5D,CAAAA,EAAAA,CAAUi5D,CAAY,CAAA,OAAO,CAAIyD,CAAAA,IAAK,CAAGv2F,CAAAA,EAAAA,CAAY,IAAK,CAAA,SAAS,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,IAAK,CAAA,kBAAA,CAAmB,CAAC,CAAC,EAC9K,CACA,0BAAA,EAA6B,CAC3B,IAAA,CAAK,OAAQ,CAAA,iBAAA,CAAkB,IAAM65B,EAAAA,CAAU,MAAQ,CAAA,QAAQ,CAAE,CAAA,IAAA,CAAKxB,IAAa,CAAA,GAAG,EAAG75H,IAAO,CAAA,IAAM,IAAK,CAAA,WAAA,GAAgB,MAAO,CAAA,UAAU,CAAGwhG,CAAAA,EAAAA,CAAY,IAAK,CAAA,SAAS,CAAC,CAAA,CAAE,SAAU,CAAA,IAAM,CAC1L,IAAA,CAAK,UAAU,IAAK,CAAA,kBAAA,CAAmB,aAAe,CAAA,YAAA,CAAc,EAAE,CAAA,CAGtE,IAAK,CAAA,OAAA,CAAQ,GAAI,CAAA,IAAM,CACrB,IAAA,CAAK,kBAAmB,EAAA,CACxB,IAAK,CAAA,IAAA,CAAK,YAAa,GACzB,CAAC,EACH,CAAC,CAAC,EACJ,CAwEF,CAtEI6yF,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAA6Bv7J,CAAmB,CAAA,CAC1D,OAAO,IAAKA,GAAqBu7J,CAAgBtsJ,EAAAA,GAAAA,CAAqB9T,IAAU,CAAA,CAAM8T,GAAqBqwJ,CAAAA,EAAS,CAAMrwJ,CAAAA,GAAAA,CAAqBswJ,EAAe,CAAA,CAAMtwJ,GAAkByqJ,CAAAA,IAAU,CAAMzqJ,CAAAA,GAAAA,CAAqBmoJ,EAAiB,CAAA,CAAMnoJ,GAAqBkvB,CAAAA,EAAM,CAAMlvB,CAAAA,GAAAA,CAAkBksJ,IAAuB,CAAA,CAAMlsJ,GAAkB6rJ,CAAAA,IAAwB,CAAC,CAC/W,CAGAS,CAAAA,CAAAA,CAAK,SAAyB7W,CAAAA,EAAAA,CAAkB,CAC9C,IAAA,CAAM6W,EACN,SAAW,CAAA,CAAC,CAAC,cAAc,CAAC,CAAA,CAC5B,cAAgB,CAAA,SAAoCx9J,CAAI1qB,CAAAA,CAAAA,CAAK2qB,CAAU,CAAA,CAMrE,GALID,CAAAA,CAAK,CACJyhK,GAAAA,EAAAA,CAAexhK,CAAU67J,CAAAA,IAAAA,CAA0B,CAAG1+J,CAAAA,IAAU,CAChEqkK,CAAAA,EAAAA,CAAexhK,CAAUg8J,CAAAA,IAAAA,CAA0B,CAAG7+J,CAAAA,IAAU,CAChEqkK,CAAAA,EAAAA,CAAexhK,CAAUo8J,CAAAA,IAAAA,CAAyB,CAAC,CAAA,CAAA,CAEpDr8J,EAAK,CAAG,CAAA,CACV,IAAI0hK,CAAAA,CACDC,EAAeD,CAAAA,CAAAA,CAAQE,EAAY,EAAC,CAAMtsL,GAAAA,CAAAA,CAAI,UAAaosL,CAAAA,CAAAA,CAAG,KAC9DC,CAAAA,CAAAA,EAAAA,CAAeD,CAAQE,CAAAA,EAAAA,EAAa,CAAMtsL,GAAAA,CAAAA,CAAI,UAAaosL,CAAAA,CAAAA,CAAG,KAC9DC,CAAAA,CAAAA,EAAAA,CAAeD,CAAQE,CAAAA,EAAAA,EAAa,CAAA,GAAMtsL,CAAI,CAAA,cAAA,CAAiBosL,CACpE,EAAA,CACF,CACA,CAAA,SAAA,CAAW,SAA2B1hK,CAAI1qB,CAAAA,CAAAA,CAAK,CAO7C,GANI0qB,CAAK,CAAA,CAAA,GACJ6hK,EAAYrF,CAAAA,EAAAA,CAAmB,CAAC,CAAA,CAChCqF,EAAY9zH,CAAAA,EAAAA,CAAK,CAAG3wC,CAAAA,IAAU,CAC9BykK,CAAAA,EAAAA,CAAY15H,IAAK,CAAA,CAAA,CAAG/qC,IAAU,CAAA,CAC9BykK,EAAYv5H,CAAAA,IAAAA,CAAK,CAAGlrC,CAAAA,IAAU,CAE/B4C,CAAAA,CAAAA,CAAAA,CAAK,CAAG,CAAA,CACV,IAAI0hK,CAAAA,CACDC,EAAeD,CAAAA,CAAAA,CAAQE,IAAa,CAAA,GAAMtsL,CAAI,CAAA,WAAA,CAAcosL,CAAG,CAAA,KAAA,CAAA,CAC/DC,EAAeD,CAAAA,CAAAA,CAAQE,EAAY,EAAC,CAAMtsL,GAAAA,CAAAA,CAAI,aAAgBosL,CAAAA,CAAAA,CAAG,KACjEC,CAAAA,CAAAA,EAAAA,CAAeD,CAAQE,CAAAA,EAAAA,EAAa,CAAA,GAAMtsL,CAAI,CAAA,kBAAA,CAAqBosL,CAAG,CAAA,KAAA,CAAA,CACtEC,EAAeD,CAAAA,CAAAA,CAAQE,EAAY,EAAC,CAAMtsL,GAAAA,CAAAA,CAAI,eAAkBosL,CAAAA,CAAAA,CAAG,OACxE,CACF,CAAA,CACA,MAAQ,CAAA,CACN,MAAQ,CAAA,QAAA,CACR,UAAY,CAAA,YAAA,CACZ,OAAS,CAAA,SACX,CACA,CAAA,OAAA,CAAS,CACP,YAAA,CAAc,cACd,CAAA,MAAA,CAAQ,QACV,CAAA,CACA,UAAY,CAAA,CAAA,CAAA,CACZ,QAAU,CAAA,CAAII,EAAmB,CAAA,CAAC/E,IAAwB,CAAC,CAAMhW,CAAAA,EAAAA,CAA+Bn1I,EAAmB,CAAA,CACnH,kBAAoBqvD,CAAAA,IAAAA,CACpB,MAAO,EACP,CAAA,IAAA,CAAM,CACN,CAAA,MAAA,CAAQ,CAAC,CAAC,aAAe,CAAA,EAAE,CAAG,CAAA,CAAC,gBAAkB,CAAA,EAAE,CAAG,CAAA,CAAC,mBAAqB,CAAA,EAAE,EAAG,CAAC,CAAA,CAAG,aAAa,CAAA,CAAG,CAAC,CAAA,CAAG,qBAAqB,CAAA,CAAG,CAAC,CAAA,CAAG,mBAAmB,CAAA,CAAG,CAAC,mBAAA,CAAqB,EAAE,CAAA,CAAG,CAAC,CAAG,CAAA,aAAa,CAAC,CAAA,CACxM,QAAU,CAAA,SAA8BjhE,CAAI1qB,CAAAA,CAAAA,CAAK,CAC3C0qB,CAAAA,CAAK,CACJ+hK,GAAAA,EAAAA,CAAgBlhG,IAAG,CAAA,CACnB1iE,EAAe,CAAA,CAAA,CAAG,KAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAC7BwC,EAAa,CAAA,CAAC,CACdxC,CAAAA,EAAAA,CAAe,CAAG,CAAA,KAAA,CAAO,CAAG,CAAA,CAAC,CAAE,CAAA,CAAA,CAAG,KAAO,CAAA,CAAA,CAAG,CAAC,CAC7CF,CAAAA,EAAAA,CAAmB,CAAG,CAAA,CAAC,CACvBI,CAAAA,EAAAA,EAAe,EAAA,CACfD,EAAU,CAAA,CAAA,CAAG,KAAO,CAAA,CAAC,CACrBuC,CAAAA,EAAAA,CAAa,CAAG,CAAA,CAAC,CACjBtC,CAAAA,EAAAA,EACAsC,CAAAA,EAAAA,CAAa,EAAI,CAAA,CAAC,CAEzB,EAAA,CAAA,CACA,YAAc,CAAA,CAAC67J,EAAiB,CAAA,CAChC,MAAQ,CAAA,CAAC,yuDAAyuD,CAAA,CAClvD,gBAAiB,CACnB,CAAC,CAnsBL,CAAA,IAAMe,CAANC,CAAAA,CAAAA,CAssBA,OAAOD,CACT,CAAG,GAAA,CAICyE,EAAiC,CAAA,CAAA,IAAM,CACzC,IAAMC,CAAN,CAAA,MAAMA,CAAiB,CACrB,WAAc,EAAA,CACZ,IAAK,CAAA,OAAA,CAAU,CACjB,EAAA,CA8BF,CA5BIA,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAAkChgK,CAAmB,CAAA,CAC/D,OAAO,IAAKA,GAAqBggK,CACnC,CAAA,CAAA,CAGAA,CAAK,CAAA,SAAA,CAAyBtb,EAAkB,CAAA,CAC9C,IAAMsb,CAAAA,CAAAA,CACN,SAAW,CAAA,CAAC,CAAC,UAAU,CAAC,CAAA,CACxB,QAAU,CAAA,CAAA,CACV,aAAc,SAAuCjiK,CAAAA,CAAI1qB,CAAK,CAAA,CACxD0qB,CAAK,CAAA,CAAA,EACJM,EAAY,CAAA,MAAA,CAAQhrB,CAAI,CAAA,OAAO,EAEtC,CAAA,CACA,UAAY,CAAA,CAAA,CAAA,CACZ,QAAU,CAAA,CAAIs8B,EAAmB,CACjC,CAAA,kBAAA,CAAoB+nJ,EACpB,CAAA,KAAA,CAAO,CACP,CAAA,IAAA,CAAM,CACN,CAAA,QAAA,CAAU,SAAmC35J,CAAAA,CAAI1qB,CAAK,CAAA,CAChD0qB,CAAK,CAAA,CAAA,GACJ+hK,EAAgB,EAAA,CAChBphK,EAAa,CAAA,CAAC,CAErB,EAAA,CAAA,CACA,aAAe,CAAA,CACjB,CAAC,CAAA,CA/BL,IAAMqhK,CAAAA,CAANC,CAkCA,CAAA,OAAOD,CACT,CAAA,GAIIE,CAAAA,EAAAA,CAAAA,CAAiC,IAAM,CACzC,IAAMC,CAAN,CAAA,MAAMA,CAAiB,CACrB,WAAc,EAAA,CACZ,IAAK,CAAA,OAAA,CAAU,CACjB,EAAA,CAiCF,CA/BIA,CAAAA,CAAAA,CAAK,SAAO,CAAA,SAAkClgK,CAAmB,CAAA,CAC/D,OAAO,IAAKA,CAAqBkgK,EAAAA,CAAAA,CACnC,CAGAA,CAAAA,CAAAA,CAAK,SAAyBxb,CAAAA,EAAAA,CAAkB,CAC9C,IAAA,CAAMwb,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,UAAU,CAAC,CAAA,CACxB,QAAU,CAAA,CAAA,CACV,YAAc,CAAA,SAAuCniK,CAAI1qB,CAAAA,CAAAA,CAAK,CACxD0qB,CAAAA,CAAK,CACJM,EAAAA,EAAAA,CAAY,MAAQhrB,CAAAA,CAAAA,CAAI,OAAO,EAEtC,CACA,CAAA,UAAA,CAAY,CACZ,CAAA,CAAA,QAAA,CAAU,CAAIs8B,EAAmB,CACjC,CAAA,kBAAA,CAAoB+nJ,EACpB,CAAA,KAAA,CAAO,CACP,CAAA,IAAA,CAAM,CACN,CAAA,MAAA,CAAQ,CAAC,CAAC,EAAG,MAAM,CAAC,CACpB,CAAA,QAAA,CAAU,SAAmC35J,CAAAA,CAAI1qB,CAAK,CAAA,CAChD0qB,CAAK,CAAA,CAAA,GACJ+hK,EAAgB,EAAA,CAChB5jK,EAAe,CAAA,CAAA,CAAG,KAAO,CAAA,CAAC,EAC1BwC,EAAa,CAAA,CAAC,CACdtC,CAAAA,EAAAA,EAEP,EAAA,CAAA,CACA,MAAQ,CAAA,CAAC,mIAAmI,CAC9I,CAAC,CAAA,CAlCL,IAAM6jK,CAAAA,CAANC,CAqCA,CAAA,OAAOD,CACT,CAAG,ICzlCI,IAAME,GAA2B,CAAA,CACpCC,6BAA+B,CAAA,CAC3BC,aAAeA,CAAAA,IAAM,OAAO,qBAAqD,CAAEl3L,CAAAA,IAAAA,CAAM1F,CAAMA,EAAAA,CAAAA,CAAE28L,6BAA6B,CAElIE,CAAAA,CAAAA,qBAAAA,CAAuB,CACnBD,aAAAA,CAAeA,IAAM,OAAO,qBAAoC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAE69L,CAAAA,qBAAqB,CAEzGC,CAAAA,CAAAA,wBAAAA,CAA0B,CACtBF,aAAAA,CAAeA,IAAM,OAAO,qBAAwC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAE89L,wBAAwB,CAAA,CAAA,CAEhHC,wBAA0B,CAAA,CACtBH,aAAeA,CAAAA,IAAM,OAAO,qBAAyC,CAAEl3L,CAAAA,IAAAA,CAAM1G,GAAMA,CAAE+9L,CAAAA,wBAAwB,CAEjHC,CAAAA,CAAAA,sBAAAA,CAAwB,CACpBJ,aAAAA,CAAeA,IAAM,OAAO,qBAAsC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEg+L,CAAAA,sBAAsB,CAE5GC,CAAAA,CAAAA,8BAAAA,CAAgC,CAC5BL,aAAeA,CAAAA,IAAM,OAAO,qBAAsC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAEi+L,8BAA8B,CAAA,CAAA,CAGpHC,8BAAgC,CAAA,CAC5BN,aAAeA,CAAAA,IAAM,OAAO,qBAAuC,EAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEk+L,CAAAA,8BAA8B,CAErHC,CAAAA,CAAAA,mBAAAA,CAAqB,CACjBP,aAAAA,CAAeA,IAAM,OAAO,qBAAiC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEm+L,CAAAA,mBAAmB,GAEpGC,yBAA2B,CAAA,CACvBR,aAAeA,CAAAA,IAAM,OAAO,qBAAyC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAEo+L,yBAAyB,CAAA,CAAA,CAElHC,iBAAmB,CAAA,CACfT,aAAeA,CAAAA,IAAM,OAAO,qBAAwC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEq+L,CAAAA,iBAAiB,CAGzGC,CAAAA,CAAAA,0BAAAA,CAA4B,CACxBV,aAAAA,CAAeA,IAAM,OAAO,qBAAyC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,EAAEs+L,0BAA0B,CAAA,CAAA,CAEnHC,yBAA2B,CAAA,CACvBX,aAAeA,CAAAA,IAAM,OAAO,qBAAyC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAEu+L,yBAAyB,CAAA,CAAA,CAElHC,2BAA6B,CAAA,CACzBZ,cAAeA,IAAM,OAAO,qBAAmC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEw+L,CAAAA,2BAA2B,CAE9GC,CAAAA,CAAAA,uBAAAA,CAAyB,CACrBb,aAAAA,CAAeA,IAAM,OAAO,qBAAuC,CAAA,CAAEl3L,KAAM1G,CAAMA,EAAAA,CAAAA,CAAEy+L,uBAAuB,CAAA,CAAA,CAE9GC,4BAA8B,CAAA,CAC1Bd,aAAeA,CAAAA,IAAM,OAAO,qBAA6C,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAE0+L,4BAA4B,CAAA,CAAA,CAEzHC,mBAAoB,CAChBf,aAAAA,CAAeA,IAAM,OAAO,qBAAiC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAE4+L,CAAAA,yBAAyB,CAE1GC,CAAAA,CAAAA,wBAAAA,CAA0B,CACtBjB,aAAAA,CAAeA,IAAM,OAAO,qBAAwC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAE8+L,+BAA+B,CAAA,CAAA,CAEvHC,2BAA6B,CAAA,CACzBnB,aAAeA,CAAAA,IAAM,OAAO,qBAA2C,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAE++L,2BAA2B,CAEtHC,CAAAA,CAAAA,oBAAAA,CAAsB,CAClBpB,aAAAA,CAAeA,IAAM,OAAO,qBAAmC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEg/L,CAAAA,oBAAoB,CAEvGC,CAAAA,CAAAA,yBAAAA,CAA2B,CACvBrB,aAAAA,CAAeA,IAAM,OAAO,qBAAwC,CAAEl3L,CAAAA,IAAAA,CAAM1G,CAAMA,EAAAA,CAAAA,CAAEi/L,yBAAyB,CAAA,CAAA,CAEjHC,yBAA2B,CAAA,CACvBtB,aAAeA,CAAAA,IAAM,OAAO,qBAAgD,CAAEl3L,CAAAA,IAAAA,CAAM1G,GAAMA,CAAEk/L,CAAAA,yBAAyB,CAEzH9f,CAAAA,CAAAA,yBAAAA,CAA2B,CACvBwe,aAAAA,CAAeA,IAAM,OAAO,qBAA0C,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEo/K,CAAAA,yBAAyB,CAEnH+f,CAAAA,CAAAA,wBAAAA,CAA0B,CACtBvB,aAAeA,CAAAA,IAAM,OAAO,qBAAkD,CAAEl3L,CAAAA,IAAAA,CAAM1F,CAAMA,EAAAA,CAAAA,CAAEm+L,wBAAwB,CAAA,CAAA,CAE1HhM,oBAAsB,CAAA,CAClByK,aAAeA,CAAAA,IAAM,OAAO,qBAA4C,EAAEl3L,IAAM1F,CAAAA,CAAAA,EAAMA,CAAEmyL,CAAAA,oBAAoB,CAEhHiM,CAAAA,CAAAA,yBAAAA,CAA2B,CACvBxB,aAAAA,CAAeA,IAAM,OAAO,qBAAwC,CAAA,CAAEl3L,IAAM1G,CAAAA,CAAAA,EAAMA,CAAEo/L,CAAAA,yBAAyB,IAIxGC,GAAwB,CAAA,IAAI7c,GAAe,CAAA,uBAAA,CAAyB,CAC7E/mL,OAAAA,CAASA,IAAMiiM,GAAAA,CAClB,CC/ED,CAAA,IAAa4B,GAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAP,CAAA,MAAOA,CAAgB,CACzB5wL,WAAAA,CAC2C6wL,CAC/BC,CAAAA,CAAAA,CAAkD,CADnB,IAAA,CAAAD,aAAAA,CAAAA,CAAAA,CAC/B,IAAAC,CAAAA,wBAAAA,CAAAA,EACT,CAEGC,2BAA4Bh2J,CAAAA,CAAAA,CAAS,CAAA4yB,OAAAA,GAAAA,CAAA,sBACvC,GAAM,CAAE/0D,IAAAA,CAAAA,CAAI,CAAKmiC,CAAAA,CAAAA,CACXi2J,CAAe,CAAA,IAAA,CAAKH,aAAcj4L,CAAAA,CAAI,CAC5C,CAAA,GAAIo4L,CAAc,CAAA,CACd,IAAMC,CAAAA,CAAY,MAAMD,CAAa9B,CAAAA,aAAAA,EAErC,CAAA,OADgB,IAAK4B,CAAAA,wBAAAA,CAAyBI,uBAAwBD,CAAAA,CAAS,CAEnF,CACA,OAAO,EACX,CAfSL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAgB5hK,GAEb2hK,CAAAA,GAAqB,EAAA3hK,GAAAmiK,CAAAA,IAAA,CAAA,CAAA,CAFxBP,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgB7jM,OAAhB6jM,CAAAA,CAAAA,CAAgBtrJ,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAEhB,CAAA,IAAOqrJ,CAAPQ,CAAAA,CAAAA,CAAAA,OAAOR,CAAgB,CAAA,GAAA,CAAA,IAAAnvB,GAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,SAAAv5J,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ECEhBmpL,IAAAA,GAAAA,CAAAA,CAAkC,IAAA,CAAzC,IAAOA,CAAAA,CAAP,MAAOA,CAAkC,CAM3CrxL,WAAAA,CAAoBsxL,CAAkC,CAAA,CAAlC,IAAAA,CAAAA,gBAAAA,CAAAA,EAAqC,CACzD71J,QAAAA,EAAQ,CACJ,IAAM81J,CAAgB,CAAA,CAClB34L,IAAM,CAAA,IAAA,CAAK44L,aAEf,CAAA,CAAA,IAAA,CAAKF,gBAAiBP,CAAAA,2BAAAA,CAA4BQ,CAAa,CAAA,CAAEv5L,IAAMy5L,CAAAA,CAAAA,EAAyB,CAC5F,IAAKC,CAAAA,aAAAA,CAAgB,IAAKC,CAAAA,kCAAAA,CAAmCC,eAAgBH,CAAAA,CAAgB,CAC7F,CAAA,IAAA,IAAWI,CAAa,IAAA,IAAA,CAAKC,SACzB,CAAA,IAAA,CAAKJ,aAAcl3F,CAAAA,QAAAA,CAASq3F,CAAS,CAAA,CAAI,KAAKC,SAAUD,CAAAA,CAAS,CAEjE,CAAA,IAAA,CAAKE,YACL,EAAA,IAAA,CAAKA,YAAapzI,CAAAA,OAAAA,CAASqzI,CAAiC,EAAA,CACxD,IAAKN,CAAAA,aAAAA,CAAcl3F,QAASw3F,CAAAA,CAAAA,CAAY5vL,SAAS,CAAA,CAAEikB,UAAW0U,CAAa,EAAA,CACvEi3J,CAAYl7L,CAAAA,QAAAA,CAASikC,CAAI,EAC7B,CAAC,EACL,CAAC,CAAA,CAEL,IAAK22J,CAAAA,aAAAA,CAAcO,iBAAkBC,CAAAA,aAAAA,GACzC,CAAC,EACL,CACAx5H,WAAAA,EAAW,CACP,GAAI,IAAKg5H,CAAAA,aAAAA,CAAe,CACpB,IAAA,IAAWG,CAAa,IAAA,IAAA,CAAKC,SACzB,CAAA,IAAA,CAAKJ,aAAcl3F,CAAAA,QAAAA,CAASq3F,CAAS,CAAA,CAAI,KAAKC,SAAUD,CAAAA,CAAS,CAErE,CAAA,GAAI,CACA,IAAA,CAAKH,aAAcl3F,CAAAA,QAAAA,CAAS9hC,WAAW,GAC3C,CAAQ,KAAA,EAGZ,CACJ,CArCS24H,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAkCvzJ,IAAA8yJ,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAvsL,EAAA,CAAA,CAAA,IAAA,CAAlCgtL,CAAkC5mK,CAAAA,SAAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,CAAAm7E,CAAAA,SAAAA,CAAA,SAAAh5E,CAAAA,CAAA1qB,CAAA,CAAA,CAAA,GAAA0qB,EAAA,CAKE28J,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,IAAgB,CChBjEp8J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,kCAAAA,CAAAA,CAAAA,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,wBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAAglK,CAAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA7kK,CAAAA,EAAA,EDWM,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAO+jK,CAAPe,CAAAA,CAAAA,CAAAA,OAAOf,CAAkC,CAAA,IEY/C,IAAM12H,IAAM,CAAC,GAAG,EAGV8yB,IAAAA,GAAAA,CAAM,49DACN4kG,CAAN,CAAA,KAAsB,CACpB,WAAc,EAAA,CAEZ,KAAK,WAAc,CAAA,CAAA,CAEnB,KAAK,QAAW,CAAA,EAClB,CAEA,IAAI,QAAA,EAAW,CACb,OAAO,KAAK,QAAW,CAAA,CACzB,CAKA,IAAI,OAAA,EAAU,CACZ,IAAMC,CAAAA,CAAa,KAAK,GAAI,CAAA,GAAG,KAAK,OAAO,CAAA,CAG3C,OAAOA,CAAa,CAAA,CAAA,CAAI,KAAK,QAAWA,CAAAA,CAAAA,CAAa,CAAI,CAAA,IAAA,CAAK,QAChE,CAMA,MAAA,CAAOC,EAAYC,CAAO,CAAA,CACxB,KAAK,WAAc,CAAA,CAAA,CACnB,KAAK,QAAW,CAAA,CAAA,CAChB,KAAK,OAAU,CAAA,IAAI,MAAMD,CAAU,CAAA,CACnC,KAAK,OAAQ,CAAA,IAAA,CAAK,CAAG,CAAA,CAAA,CAAG,KAAK,OAAQ,CAAA,MAAM,EAC3C,IAAK,CAAA,SAAA,CAAYC,EAAM,GAAIC,CAAAA,CAAAA,EAAQ,KAAK,UAAWA,CAAAA,CAAI,CAAC,EAC1D,CAEA,WAAWA,CAAM,CAAA,CAEf,IAAMC,CAAgB,CAAA,IAAA,CAAK,gBAAiBD,CAAAA,CAAAA,CAAK,OAAO,CAExD,CAAA,OAAA,IAAA,CAAK,kBAAkBC,CAAeD,CAAAA,CAAI,EAG1C,IAAK,CAAA,WAAA,CAAcC,EAAgBD,CAAK,CAAA,OAAA,CACjC,IAAIE,GAAa,CAAA,IAAA,CAAK,SAAUD,CAAa,CACtD,CAEA,gBAAiBE,CAAAA,CAAAA,CAAU,CACrBA,CAAAA,CAAW,KAAK,OAAQ,CAAA,MAAA,CAI5B,IAAIF,CAAgB,CAAA,CAAA,CAAA,CAChBG,EAAc,CAElB,CAAA,CAAA,EAAG,CAED,GAAI,IAAA,CAAK,YAAcD,CAAW,CAAA,IAAA,CAAK,QAAQ,MAAQ,CAAA,CACrD,KAAK,QAAS,EAAA,CACdF,CAAgB,CAAA,IAAA,CAAK,QAAQ,OAAQ,CAAA,CAAA,CAAG,KAAK,WAAW,CAAA,CACxDG,EAAc,IAAK,CAAA,gBAAA,CAAiBH,CAAa,CACjD,CAAA,QACF,CAGA,GAFAA,CAAAA,CAAgB,KAAK,OAAQ,CAAA,OAAA,CAAQ,EAAG,IAAK,CAAA,WAAW,EAEpDA,CAAiB,EAAA,CAAA,CAAA,CAAI,CACvB,IAAK,CAAA,QAAA,GACLA,CAAgB,CAAA,IAAA,CAAK,QAAQ,OAAQ,CAAA,CAAA,CAAG,KAAK,WAAW,CAAA,CACxDG,EAAc,IAAK,CAAA,gBAAA,CAAiBH,CAAa,CACjD,CAAA,QACF,CACAG,CAAc,CAAA,IAAA,CAAK,gBAAiBH,CAAAA,CAAa,EAGjD,IAAK,CAAA,WAAA,CAAcA,EAAgB,EAGrC,CAAA,MAASG,EAAcH,CAAgBE,CAAAA,CAAAA,EAAYC,GAAe,CAGlE,EAAA,OAAO,KAAK,GAAIH,CAAAA,CAAAA,CAAe,CAAC,CAClC,CAEA,UAAW,CACT,IAAA,CAAK,WAAc,CAAA,CAAA,CACnB,KAAK,QAEL,EAAA,CAAA,IAAA,IAASjlM,EAAI,CAAGA,CAAAA,CAAAA,CAAI,KAAK,OAAQ,CAAA,MAAA,CAAQA,IACvC,IAAK,CAAA,OAAA,CAAQA,CAAC,CAAI,CAAA,IAAA,CAAK,IAAI,CAAG,CAAA,IAAA,CAAK,QAAQA,CAAC,CAAA,CAAI,CAAC,EAErD,CAKA,gBAAiBilM,CAAAA,CAAAA,CAAe,CAC9B,IAASjlM,IAAAA,CAAAA,CAAIilM,EAAgB,CAAGjlM,CAAAA,CAAAA,CAAI,KAAK,OAAQ,CAAA,MAAA,CAAQA,IACvD,GAAI,IAAA,CAAK,QAAQA,CAAC,CAAA,EAAK,EACrB,OAAOA,CAAAA,CAIX,OAAO,IAAK,CAAA,OAAA,CAAQ,MACtB,CAEA,iBAAA,CAAkBkC,EAAO8iM,CAAM,CAAA,CAC7B,QAAS,CAAI,CAAA,CAAA,CAAG,EAAIA,CAAK,CAAA,OAAA,CAAS,IAChC,IAAK,CAAA,OAAA,CAAQ9iM,EAAQ,CAAC,CAAA,CAAI8iM,EAAK,QAEnC,CACF,CAKME,CAAAA,GAAAA,CAAN,OAAmB,CACjB,WAAA,CAAYG,EAAKC,CAAK,CAAA,CACpB,KAAK,GAAMD,CAAAA,CAAAA,CACX,KAAK,GAAMC,CAAAA,EACb,CACF,CAMMC,CAAAA,GAAAA,CAA6B,IAAIlf,GAAe,CAAA,eAAe,EACjEmf,GAA4B,CAAA,CAAA,IAAM,CACpC,IAAMC,EAAN,MAAMA,CAAY,CAChB,WAAYC,CAAAA,CAAAA,CAAUC,EAAW,CAC/B,IAAA,CAAK,SAAWD,CAChB,CAAA,IAAA,CAAK,UAAYC,CACjB,CAAA,IAAA,CAAK,SAAW,CAChB,CAAA,IAAA,CAAK,SAAW,EAClB,CAEA,IAAI,OAAA,EAAU,CACZ,OAAO,IAAA,CAAK,QACd,CACA,IAAI,QAAQpiM,CAAO,CAAA,CACjB,KAAK,QAAW,CAAA,IAAA,CAAK,MAAMqiM,EAAqBriM,CAAAA,CAAK,CAAC,EACxD,CAEA,IAAI,OAAU,EAAA,CACZ,OAAO,IAAK,CAAA,QACd,CACA,IAAI,OAAA,CAAQA,EAAO,CACjB,IAAA,CAAK,SAAW,IAAK,CAAA,KAAA,CAAMqiM,GAAqBriM,CAAK,CAAC,EACxD,CAKA,SAAA,CAAUsiM,EAAUtiM,CAAO,CAAA,CACzB,KAAK,QAAS,CAAA,aAAA,CAAc,KAAMsiM,CAAAA,CAAQ,EAAItiM,EAChD,CAyCF,EAvCIkiM,CAAK,CAAA,SAAA,CAAO,SAA6BrkK,CAAmB,CAAA,CAC1D,OAAO,IAAKA,CAAAA,EAAqBqkK,GAAgBp1J,GAAqB9T,CAAAA,IAAU,EAAM8T,GAAkBk1J,CAAAA,GAAAA,CAAe,CAAC,CAAC,CAC3H,CAGAE,CAAAA,CAAAA,CAAK,UAAyB3f,EAAkB,CAAA,CAC9C,KAAM2f,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,eAAe,CAAC,CAC7B,CAAA,SAAA,CAAW,CAAC,CAAG,CAAA,eAAe,EAC9B,QAAU,CAAA,CAAA,CACV,aAAc,SAAkCtmK,CAAAA,CAAI1qB,CAAK,CAAA,CACnD0qB,EAAK,CACJ8mJ,EAAAA,EAAAA,CAAY,UAAWxxK,CAAI,CAAA,OAAO,EAAE,SAAWA,CAAAA,CAAAA,CAAI,OAAO,EAEjE,CAAA,CACA,OAAQ,CACN,OAAA,CAAS,UACT,OAAS,CAAA,SACX,EACA,QAAU,CAAA,CAAC,aAAa,CACxB,CAAA,UAAA,CAAY,GACZ,QAAU,CAAA,CAAIs8B,EAAmB,CACjC,CAAA,kBAAA,CAAoBm8B,IACpB,KAAO,CAAA,CAAA,CACP,KAAM,CACN,CAAA,MAAA,CAAQ,CAAC,CAAC,CAAA,CAAG,uBAAuB,CAAC,CAAA,CACrC,SAAU,SAA8B/tC,CAAAA,CAAI1qB,CAAK,CAAA,CAC3C0qB,EAAK,CACJ+hK,GAAAA,EAAAA,GACA5jK,EAAe,CAAA,CAAA,CAAG,MAAO,CAAC,CAAA,CAC1BwC,GAAa,CAAC,CAAA,CACdtC,IAEP,EAAA,CAAA,CACA,OAAQ,CAAC,29DAA29D,EACp+D,aAAe,CAAA,CAAA,CACf,eAAiB,CAAA,CACnB,CAAC,CAlEL,CAAA,IAAMgoK,EAANC,CAqEA,CAAA,OAAOD,CACT,CAAG,IAwIH,IAAMM,GAAsB,CAAA,+BAAA,CAMtBC,EAAN,KAAiB,CACf,aAAc,CACZ,IAAA,CAAK,MAAQ,CACb,CAAA,IAAA,CAAK,QAAW,CAAA,EAClB,CAUA,IAAKC,CAAAA,CAAAA,CAAYC,EAASC,CAAMjqL,CAAAA,CAAAA,CAAW,CACzC,IAAK,CAAA,WAAA,CAAckqL,IAAeH,CAAU,CAAA,CAC5C,KAAK,KAAQC,CAAAA,CAAAA,CAAQ,SACrB,IAAK,CAAA,QAAA,CAAWA,EAAQ,OACxB,CAAA,IAAA,CAAK,MAAQC,CACb,CAAA,IAAA,CAAK,WAAajqL,EACpB,CAQA,gBAAgBmqL,CAAaC,CAAAA,CAAAA,CAAgB,CAM3C,OAAO,CAAA,CAAA,EAAID,CAAW,CAAQ,KAAA,EAAA,IAAA,CAAK,WAAW,CAAMC,GAAAA,EAAAA,CAAc,IACpE,CAOA,eAAA,CAAgBC,EAAUj0L,CAAQ,CAAA,CAGhC,OAAOA,CAAAA,GAAW,EAAI,GAAMk0L,CAAAA,CAAAA,CAAK,IAAID,CAAQ,CAAA,GAAA,EAAM,KAAK,WAAW,CAAA,IAAA,EAAOj0L,CAAM,CAAE,CAAA,CACpF,CAOA,WAAYi0L,CAAAA,CAAAA,CAAUE,EAAM,CAC1B,OAAO,IAAIF,CAAQ,CAAA,GAAA,EAAME,CAAI,CAAA,KAAA,EAAQA,EAAO,CAAC,CAAA,GAAA,EAAM,KAAK,WAAW,CAAA,CAAA,CACrE,CAOA,QAASxB,CAAAA,CAAAA,CAAMyB,EAAUC,CAAU,CAAA,CAEjC,IAAIC,CAAsB,CAAA,GAAA,CAAM,KAAK,KAGjCC,CAAAA,CAAAA,CAAAA,CAA8B,KAAK,KAAQ,CAAA,CAAA,EAAK,IAAK,CAAA,KAAA,CACzD,KAAK,YAAa5B,CAAAA,CAAAA,CAAM0B,EAAUC,CAAqBC,CAAAA,CAA0B,EACjF,IAAK,CAAA,YAAA,CAAa5B,EAAMyB,CAAUE,CAAAA,CAAAA,CAAqBC,CAA0B,EACnF,CAEA,aAAa5B,CAAM0B,CAAAA,CAAAA,CAAUG,EAAcC,CAAa,CAAA,CAEtD,IAAIC,CAAgB,CAAA,IAAA,CAAK,gBAAgBF,CAAcC,CAAAA,CAAW,EAG9DE,CAAO,CAAA,IAAA,CAAK,aAAe,KAAQ,CAAA,OAAA,CAAU,OACjDhC,CAAK,CAAA,SAAA,CAAUgC,EAAM,IAAK,CAAA,eAAA,CAAgBD,EAAeL,CAAQ,CAAC,EAClE1B,CAAK,CAAA,SAAA,CAAU,OAASuB,CAAAA,CAAAA,CAAK,KAAK,WAAYQ,CAAAA,CAAAA,CAAe/B,EAAK,OAAO,CAAC,CAAC,EAC7E,CAIA,eAAgB,CACd,OAAO,GAAG,IAAK,CAAA,WAAW,OAAO,IAAK,CAAA,QAAQ,OAChD,CAKA,WAAA,CAAYiC,CAAY,CAAA,CACtB,OAAO,CAAG,EAAA,IAAA,CAAK,QAAQ,CAAM,GAAA,EAAA,IAAA,CAAK,YAAYA,CAAY,CAAA,CAAC,CAAC,CAC9D,CAAA,CAMA,mBAAoB,CAClB,OAAO,IACT,CACF,CAAA,CAMMC,IAAN,OAA8BnB,SAAAA,CAAW,CACvC,WAAA,CAAYoB,EAAgB,CAC1B,KAAA,GACA,IAAK,CAAA,cAAA,CAAiBA,EACxB,CACA,IAAA,CAAKnB,EAAYC,CAASC,CAAAA,CAAAA,CAAMjqL,EAAW,CACzC,KAAA,CAAM,KAAK+pL,CAAYC,CAAAA,CAAAA,CAASC,EAAMjqL,CAAS,CAAA,CAC/C,KAAK,cAAiBkqL,CAAAA,GAAAA,CAAe,KAAK,cAAc,CAAA,CACnDL,IAAoB,IAAK,CAAA,IAAA,CAAK,cAAc,EAGnD,CACA,aAAad,CAAMyB,CAAAA,CAAAA,CAAU,CAC3BzB,CAAK,CAAA,SAAA,CAAU,MAAO,IAAK,CAAA,eAAA,CAAgB,KAAK,cAAgByB,CAAAA,CAAQ,CAAC,CAAA,CACzEzB,EAAK,SAAU,CAAA,QAAA,CAAUuB,EAAK,IAAK,CAAA,WAAA,CAAY,KAAK,cAAgBvB,CAAAA,CAAAA,CAAK,OAAO,CAAC,CAAC,EACpF,CACA,iBAAA,EAAoB,CAClB,OAAO,CAAC,SAAUuB,CAAK,CAAA,CAAA,EAAG,IAAK,CAAA,WAAA,CAAY,KAAK,cAAc,CAAC,MAAM,IAAK,CAAA,aAAA,EAAe,CAAE,CAAA,CAAC,CAC9F,CACA,KAAA,CAAM31B,EAAM,CACVA,CAAAA,CAAK,cAAc,CAAC,QAAA,CAAU,IAAI,CAAC,CAAA,CAC/BA,CAAK,CAAA,MAAA,EACPA,EAAK,MAAO,CAAA,OAAA,CAAQo0B,GAAQ,CAC1BA,CAAAA,CAAK,UAAU,KAAO,CAAA,IAAI,EAC1BA,CAAK,CAAA,SAAA,CAAU,SAAU,IAAI,EAC/B,CAAC,EAEL,CACF,EAMMoC,GAAN,CAAA,OAAA,SAA8BrB,CAAW,CACvC,YAAYxiM,CAAO,CAAA,CACjB,OACA,CAAA,IAAA,CAAK,YAAYA,CAAK,EACxB,CACA,YAAayhM,CAAAA,CAAAA,CAAMyB,EAAUI,CAAcC,CAAAA,CAAAA,CAAa,CACtD,IAAIO,CAAAA,CAAuBR,EAAe,IAAK,CAAA,cAAA,CAC/C,IAAK,CAAA,cAAA,CAAiB,KAAK,eAAgBQ,CAAAA,CAAAA,CAAsBP,CAAW,CAI5E9B,CAAAA,CAAAA,CAAK,UAAU,WAAa,CAAA,IAAA,CAAK,gBAAgB,IAAK,CAAA,cAAA,CAAgByB,CAAQ,CAAC,CAAA,CAC/EzB,EAAK,SAAU,CAAA,YAAA,CAAcuB,EAAK,IAAK,CAAA,WAAA,CAAY,IAAK,CAAA,cAAA,CAAgBvB,EAAK,OAAO,CAAC,CAAC,EACxF,CACA,mBAAoB,CAClB,OAAO,CAAC,eAAiBuB,CAAAA,CAAAA,CAAK,GAAG,IAAK,CAAA,WAAA,CAAY,KAAK,cAAc,CAAC,MAAM,IAAK,CAAA,aAAA,EAAe,CAAA,CAAE,CAAC,CACrG,CACA,MAAM31B,CAAM,CAAA,CACVA,EAAK,aAAc,CAAA,CAAC,gBAAiB,IAAI,CAAC,EAC1CA,CAAK,CAAA,MAAA,CAAO,QAAQo0B,CAAQ,EAAA,CAC1BA,EAAK,SAAU,CAAA,WAAA,CAAa,IAAI,CAChCA,CAAAA,CAAAA,CAAK,UAAU,YAAc,CAAA,IAAI,EACnC,CAAC,EACH,CACA,WAAYzhM,CAAAA,CAAAA,CAAO,CACjB,IAAM+jM,CAAAA,CAAa/jM,EAAM,KAAM,CAAA,GAAG,EAC9B+jM,CAAW,CAAA,MAAA,CAGf,KAAK,cAAiB,CAAA,UAAA,CAAWA,CAAW,CAAA,CAAC,CAAC,CAAI,CAAA,UAAA,CAAWA,EAAW,CAAC,CAAC,EAC5E,CACF,CAAA,CAQMC,IAAN,OAA4BxB,SAAAA,CAAW,CACrC,YAAaf,CAAAA,CAAAA,CAAMyB,EAAU,CAE3B,IAAIY,EAAuB,GAAM,CAAA,IAAA,CAAK,QAElCG,CAAAA,CAAAA,CAAAA,CAAuB,KAAK,KAAQ,CAAA,CAAA,EAAK,KAAK,KAE9CC,CAAAA,CAAAA,CAAiB,KAAK,eAAgBJ,CAAAA,CAAAA,CAAsBG,CAAmB,CACnFxC,CAAAA,CAAAA,CAAK,UAAU,KAAO,CAAA,IAAA,CAAK,gBAAgByC,CAAgBhB,CAAAA,CAAQ,CAAC,CACpEzB,CAAAA,CAAAA,CAAK,SAAU,CAAA,QAAA,CAAUuB,EAAK,IAAK,CAAA,WAAA,CAAYkB,EAAgBzC,CAAK,CAAA,OAAO,CAAC,CAAC,EAC/E,CACA,KAAMp0B,CAAAA,CAAAA,CAAM,CACNA,CAAK,CAAA,MAAA,EACPA,EAAK,MAAO,CAAA,OAAA,CAAQo0B,GAAQ,CAC1BA,CAAAA,CAAK,UAAU,KAAO,CAAA,IAAI,EAC1BA,CAAK,CAAA,SAAA,CAAU,SAAU,IAAI,EAC/B,CAAC,EAEL,CACF,EAEA,SAASuB,CAAAA,CAAKmB,EAAK,CACjB,OAAO,QAAQA,CAAG,CAAA,CAAA,CACpB,CAEA,SAASvB,GAAAA,CAAe5iM,CAAO,CAAA,CAC7B,OAAOA,CAAM,CAAA,KAAA,CAAM,eAAe,CAAIA,CAAAA,CAAAA,CAAQ,GAAGA,CAAK,CAAA,EAAA,CACxD,CAKMokM,IAAAA,GAAAA,CAAe,MACjBC,EAA4B,CAAA,CAAA,IAAM,CACpC,IAAMC,CAAAA,CAAN,MAAMA,CAAY,CAChB,WAAYnC,CAAAA,CAAAA,CAAUoC,EAAM,CAC1B,IAAA,CAAK,SAAWpC,CAChB,CAAA,IAAA,CAAK,KAAOoC,CAEZ,CAAA,IAAA,CAAK,QAAU,MACjB,CAEA,IAAI,IAAO,EAAA,CACT,OAAO,IAAK,CAAA,KACd,CACA,IAAI,IAAA,CAAKvkM,CAAO,CAAA,CACd,KAAK,KAAQ,CAAA,IAAA,CAAK,IAAI,CAAG,CAAA,IAAA,CAAK,MAAMqiM,EAAqBriM,CAAAA,CAAK,CAAC,CAAC,EAClE,CAEA,IAAI,UAAA,EAAa,CACf,OAAO,IAAA,CAAK,OACd,CACA,IAAI,WAAWA,CAAO,CAAA,CACpB,KAAK,OAAU,CAAA,CAAA,EAAGA,GAAgB,EAAU,CAAA,EAC9C,CAEA,IAAI,SAAA,EAAY,CACd,OAAO,IAAA,CAAK,UACd,CACA,IAAI,UAAUA,CAAO,CAAA,CACnB,IAAMwkM,CAAW,CAAA,CAAA,EAAGxkM,CAAgB,EAAA,EAAU,GAC1CwkM,CAAa,GAAA,IAAA,CAAK,aACpB,IAAK,CAAA,UAAA,CAAaA,EAClB,IAAK,CAAA,cAAA,CAAe,KAAK,UAAU,CAAA,EAEvC,CACA,QAAW,EAAA,CACT,KAAK,UAAW,EAAA,CAChB,KAAK,eAAgB,GACvB,CAKA,qBAAA,EAAwB,CACtB,IAAK,CAAA,YAAA,GACP,CAEA,UAAA,EAAa,CACN,IAAK,CAAA,KAGZ,CAEA,eAAkB,EAAA,CACX,KAAK,UACR,EAAA,IAAA,CAAK,eAAe,KAAK,EAE7B,CAEA,cAAeC,CAAAA,CAAAA,CAAW,CACpB,IAAA,CAAK,aACP,IAAK,CAAA,WAAA,CAAY,MAAM,IAAI,CAAA,CAEzBA,IAAcL,GAChB,CAAA,IAAA,CAAK,YAAc,IAAIJ,GAAAA,CACdS,GAAaA,CAAU,CAAA,OAAA,CAAQ,GAAG,CAAI,CAAA,CAAA,CAAA,CAC/C,KAAK,WAAc,CAAA,IAAIZ,IAAgBY,CAAS,CAAA,CAEhD,KAAK,WAAc,CAAA,IAAId,IAAgBc,CAAS,EAEpD,CAEA,YAAe,EAAA,CACR,KAAK,gBACR,GAAA,IAAA,CAAK,iBAAmB,IAAIpD,CAAAA,CAAAA,CAE9B,IAAMqB,CAAU,CAAA,IAAA,CAAK,iBACflB,CAAQ,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAOC,GAAQ,CAACA,CAAAA,CAAK,WAAaA,CAAK,CAAA,SAAA,GAAc,IAAI,CAC7E/oL,CAAAA,CAAAA,CAAY,KAAK,IAAO,CAAA,IAAA,CAAK,KAAK,KAAQ,CAAA,KAAA,CAChD,KAAK,gBAAiB,CAAA,MAAA,CAAO,KAAK,IAAM8oL,CAAAA,CAAK,CAC7C,CAAA,IAAA,CAAK,YAAY,IAAK,CAAA,IAAA,CAAK,WAAYkB,CAAS,CAAA,IAAA,CAAK,KAAMhqL,CAAS,CAAA,CACpE8oL,EAAM,OAAQ,CAAA,CAACC,EAAM/yL,CAAU,GAAA,CAC7B,IAAM5L,CAAM4/L,CAAAA,CAAAA,CAAQ,UAAUh0L,CAAK,CAAA,CACnC,IAAK,CAAA,WAAA,CAAY,SAAS+yL,CAAM3+L,CAAAA,CAAAA,CAAI,IAAKA,CAAI,CAAA,GAAG,EAClD,CAAC,CAAA,CACD,KAAK,aAAc,CAAA,IAAA,CAAK,YAAY,iBAAkB,EAAC,EACzD,CAEA,aAAA,CAAcgvC,EAAO,CACfA,CAAAA,GACF,KAAK,QAAS,CAAA,aAAA,CAAc,MAAMA,CAAM,CAAA,CAAC,CAAC,CAAIA,CAAAA,CAAAA,CAAM,CAAC,CAEzD,EAAA,CAqDF,EAnDIwyJ,CAAK,CAAA,SAAA,CAAO,SAA6BzmK,CAAmB,CAAA,CAC1D,OAAO,IAAKA,CAAAA,EAAqBymK,GAAgBx3J,GAAqB9T,CAAAA,IAAU,CAAM8T,CAAAA,GAAAA,CAAqB43J,KAAgB,CAAC,CAAC,CAC/H,CAGAJ,CAAAA,CAAAA,CAAK,UAAyB/hB,EAAkB,CAAA,CAC9C,KAAM+hB,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,eAAe,CAAC,CAC7B,CAAA,cAAA,CAAgB,SAAoC1oK,CAAI1qB,CAAAA,CAAAA,CAAK2qB,CAAU,CAAA,CAIrE,GAHID,CAAK,CAAA,CAAA,EACJyhK,GAAexhK,CAAUomK,CAAAA,GAAAA,CAAa,CAAC,CAExCrmK,CAAAA,CAAAA,CAAK,EAAG,CACV,IAAI0hK,EACDC,EAAeD,CAAAA,CAAAA,CAAQE,IAAa,CAAA,GAAMtsL,EAAI,MAASosL,CAAAA,CAAAA,EAC5D,CACF,CAAA,CACA,UAAW,CAAC,CAAA,CAAG,eAAe,CAC9B,CAAA,QAAA,CAAU,EACV,YAAc,CAAA,SAAkC1hK,EAAI1qB,CAAK,CAAA,CACnD0qB,EAAK,CACJ8mJ,EAAAA,EAAAA,CAAY,OAAQxxK,CAAI,CAAA,IAAI,EAEnC,CACA,CAAA,MAAA,CAAQ,CACN,IAAM,CAAA,MAAA,CACN,WAAY,YACZ,CAAA,SAAA,CAAW,WACb,CACA,CAAA,QAAA,CAAU,CAAC,aAAa,CAAA,CACxB,WAAY,CACZ,CAAA,CAAA,QAAA,CAAU,CAAIwsL,EAAmB,CAAA,CAAC,CAChC,OAASsE,CAAAA,GAAAA,CACT,YAAasC,CACf,CAAC,CAAC,CAAA,CAAM92J,EAAmB,CAC3B,CAAA,kBAAA,CAAoBm8B,IACpB,KAAO,CAAA,CAAA,CACP,KAAM,CACN,CAAA,QAAA,CAAU,SAA8B/tC,CAAI1qB,CAAAA,CAAAA,CAAK,CAC3C0qB,CAAK,CAAA,CAAA,GACJ+hK,IACA5jK,CAAAA,EAAAA,CAAe,EAAG,KAAK,CAAA,CACvBwC,EAAa,CAAA,CAAC,EACdtC,EAAa,EAAA,EAEpB,EACA,MAAQ,CAAA,CAACwiE,GAAG,CACZ,CAAA,aAAA,CAAe,EACf,eAAiB,CAAA,CACnB,CAAC,CA5IL,CAAA,IAAM4nG,EAANC,CA+IA,CAAA,OAAOD,CACT,CAAG,GAAA,CAICM,EAAkC,CAAA,CAAA,IAAM,CAC1C,IAAMC,CAAAA,CAAN,MAAMA,CAAkB,GAEpBA,CAAK,CAAA,SAAA,CAAO,SAAmC/mK,CAAmB,CAAA,CAChE,OAAO,IAAKA,CAAAA,EAAqB+mK,EACnC,CAGAA,CAAAA,CAAAA,CAAK,UAAyBrgB,EAAiB,CAAA,CAC7C,KAAMqgB,CACR,CAAC,EAGDA,CAAK,CAAA,SAAA,CAAyBpgB,GAAiB,CAC7C,OAAA,CAAS,CAACqgB,GAAengB,CAAAA,EAAAA,CAAiBmgB,IAAengB,EAAe,CAC1E,CAAC,CAdL,CAAA,IAAMigB,EAANC,CAiBA,CAAA,OAAOD,CACT,CAAG,ICruBH,IAAIG,EAAAA,CAAAA,CAAqC,IAAM,CAC7C,IAAMC,EAAN,MAAMA,CAAqB,CACzB,WAAc,EAAA,CACZ,KAAK,WAAc,CAAA,IAAIhnD,KAAc,CAAC,CAAA,CACtC,KAAK,UAAa,CAAA,IAAA,CAAK,YAAY,YAAa,GAClD,CACA,WAAc,EAAA,CACR,KAAK,WAAe,EAAA,CAAC,KAAK,WAAY,CAAA,MAAA,GACxC,KAAK,WAAY,CAAA,IAAA,GACjB,IAAK,CAAA,WAAA,CAAY,UAErB,EAAA,CAaF,EAXIgnD,CAAK,CAAA,SAAA,CAAO,SAAsClnK,CAAmB,CAAA,CACnE,OAAO,IAAKA,CAAAA,EAAqBknK,EACnC,CAGAA,CAAAA,CAAAA,CAAK,UAAyBnN,IAAkB,CAAA,CAC9C,KAAMmN,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,EAAA,CAAI,wBAAyB,EAAE,CAAC,EAC7C,UAAY,CAAA,CAAA,CACd,CAAC,CArBL,CAAA,IAAMD,EAANC,CAwBA,CAAA,OAAOD,CACT,CAAG,GAAA,CAIGE,GAAWhlM,CAAS,EAAA,MAAA,CAAO,UAAU,QAAS,CAAA,IAAA,CAAKA,CAAK,CAAM,GAAA,iBAAA,CAC9DilM,EAAM,IAAI,OAAA,CACVC,KAAa,4BAtCnBC,CAAAA,CAAAA,CAAAC,EAuCMC,CAAN,CAAA,KAAc,CASZ,WAAYrlM,CAAAA,CAAAA,CAAO,CARnBslM,GAAA,CAAA,IAAA,CAAAH,GACAG,GAAA,CAAA,IAAA,CAAAF,GAQEG,GAAA,CAAA,IAAA,CAAKJ,EAASK,IAAWxlM,CAAAA,CAAK,EAAIA,CAAQ,CAAA,KAAA,CAAA,CAAA,CAC1C,IAAImvB,CAAK81K,CAAAA,CAAAA,CAAI,IAAIjlM,CAAK,CAAA,EAAKklM,KACvB,CAACO,IAAAA,CAAMzlM,CAAK,CAAK,EAAA,CAACilM,EAAI,GAAIjlM,CAAAA,CAAK,GACjCilM,CAAI,CAAA,GAAA,CAAIjlM,EAAOmvB,CAAKu2K,CAAAA,EAAAA,CAAS,uBAAuB,CAAC,CAAA,CAEvDH,IAAA,IAAKH,CAAAA,CAAAA,CAAMj2K,GACb,CAbA,IAAI,OAAQ,CACV,OAAOw2K,IAAA,IAAKR,CAAAA,CAAAA,CACd,CACA,IAAI,EAAA,EAAK,CACP,OAAOQ,GAAAA,CAAA,KAAKP,CACd,CAAA,CASF,EAhBED,CAAA,CAAA,IAAA,OAAA,CACAC,EAAA,IAgBF,OAAA,CAAA,IAAIQ,EAAmC,SAAUA,CAAAA,CAAqB,CACpE,OAAAA,CAAAA,CAAoB,KAAU,MAC9BA,CAAAA,CAAAA,CAAoB,SAAc,UAClCA,CAAAA,CAAAA,CAAoB,WAAgB,YAC7BA,CAAAA,CACT,EAAEA,CAAuB,EAAA,EAAE,CACrBC,CAAAA,GAAAA,CAAN,gBAAwC,SAAU,CAChD,WAAc,EAAA,CACZ,IAAMx9L,CAAAA,CAAS,OAAO,MAAOu9L,CAAAA,CAAmB,EAAE,IAAK,CAAA,GAAG,EAC1D,KAAM,CAAA,CAAA,8EAAA,EAAiFv9L,CAAM,CAAK,GAAA,CAAA,EACpG,CACF,CACMy9L,CAAAA,CAAAA,CAAN,cAAyC,SAAU,CACjD,aAAc,CACZ,KAAA,CAAM,uGAAuG,EAC/G,CACF,EACMC,CAAN,CAAA,cAAuC,SAAU,CAC/C,WAAA,EAAc,CACZ,KAAM,CAAA,kGAAkG,EAC1G,CACF,CAAA,CACMC,IAAN,OAAwC,SAAA,SAAU,CAChD,WAAc,EAAA,CACZ,MAAM,kGAAkG,EAC1G,CACF,CAnFAb,CAAAA,GAAAA,CAoFMc,EAAN,KAAgB,CAKd,YAAYjmM,CAAQ4lM,CAAAA,CAAAA,CAAoB,SAAU,CAJlDN,GAAAA,CAAA,KAAAH,GAKE,CAAA,CAAA,GAAI,CAAC,MAAO,CAAA,MAAA,CAAOS,CAAmB,CAAE,CAAA,QAAA,CAAS5lM,CAAK,CACpD,CAAA,MAAM,IAAI6lM,GAEZN,CAAAA,GAAAA,CAAA,KAAKJ,GAASnlM,CAAAA,CAAAA,EAChB,CARA,IAAI,KAAA,EAAQ,CACV,OAAO2lM,GAAAA,CAAA,KAAKR,GACd,CAAA,CAOF,EAVEA,GAAA,CAAA,IAAA,OAAA,CArFF,IAAAA,CAgGMe,CAAAA,CAAAA,CAAN,KAAc,CAKZ,WAAA,CAAYlmM,CAAO,CAAA,CAJnBslM,GAAA,CAAA,IAAA,CAAAH,GAKEI,GAAA,CAAA,IAAA,CAAKJ,EAASgB,IAAUnmM,CAAAA,CAAK,EAAIA,CAAQ,CAAA,CAAA,CAAA,EAC3C,CALA,IAAI,KAAA,EAAQ,CACV,OAAO2lM,GAAAA,CAAA,KAAKR,CACd,CAAA,CAIF,EAPEA,CAAA,CAAA,IAAA,OAAA,CAjGF,IAAAA,GAyGMiB,CAAAA,CAAAA,CAAN,MAAMA,CAAW,CAKf,YAAYpmM,CAAO,CAAA,CAJnBslM,IAAA,IAAAH,CAAAA,GAAAA,CAAAA,CAKEI,IAAA,IAAKJ,CAAAA,GAAAA,CAASiB,EAAW,KAAMpmM,CAAAA,CAAK,GACtC,CALA,IAAI,OAAQ,CACV,OAAO2lM,IAAA,IAAKR,CAAAA,GAAAA,CACd,CAIA,OAAO,KAAA,CAAMnlM,EAAO,CAElB,IAAMqI,GADWg+L,IAASrmM,CAAAA,CAAK,EAAIA,CAAM,CAAA,IAAA,GAAS,KAC1B,EAAA,KAAA,CAAM,KAAK,CACnC,CAAA,GAAIqI,EAAO,MAAU,EAAA,CAAA,EAAKA,EAAO,KAAMzI,CAAAA,CAAAA,EAAO,sBAAsB,IAAKA,CAAAA,CAAG,CAAC,CAAG,CAAA,CAC9E,GAAM,CAACsqG,CAAAA,CAAKzjF,EAAQyjF,CAAKo8F,CAAAA,CAAAA,CAASp8F,EAAK1jF,EAAOC,CAAAA,CAAK,EAAIpe,CACvD,CAAA,OAAO,GAAG6hG,CAAG,CAAA,CAAA,EAAIzjF,CAAK,CAAA,CAAA,EAAI6/K,CAAM,CAAA,CAAA,EAAI9/K,EAAI,CAC1C,CAAA,CACA,MAAM,IAAIs/K,CACZ,CACF,CAhBEX,CAAAA,GAAAA,CAAA,YADF,IAAMoB,CAAAA,CAANH,EAzGAjB,CA2HMqB,CAAAA,CAAAA,CAAN,MAAMA,CAAS,CAKb,YAAYvgL,CAAM,CAAA,CAJlBq/K,IAAA,IAAAH,CAAAA,CAAAA,CAAAA,CAKEI,IAAA,IAAKJ,CAAAA,CAAAA,CAASqB,EAAS,QAASvgL,CAAAA,CAAI,GACtC,CALA,IAAI,OAAQ,CACV,OAAO0/K,IAAA,IAAKR,CAAAA,CAAAA,CACd,CAIA,OAAO,QAAA,CAASl/K,EAAM,CACpB,GAAIw/K,KAAMx/K,CAAI,CAAA,CACZ,OAAO,IAET,CAAA,GAAIA,aAAgB,OAAWA,EAAAA,CAAAA,CAAK,WAAa,IAAK,CAAA,YAAA,CACpD,OAAOA,CAET,CAAA,MAAM,IAAI8/K,CACZ,CACF,EAhBEZ,CAAA,CAAA,IAAA,OAAA,CADF,IAAMsB,CAAND,CAAAA,CAAAA,CA3HArB,EA6IMuB,CAAN,CAAA,MAAMA,CAAU,CAKd,WAAA,CAAY1mM,EAAO,CAJnBslM,GAAAA,CAAA,KAAAH,CAKEI,CAAAA,CAAAA,GAAAA,CAAA,KAAKJ,CAASuB,CAAAA,CAAAA,CAAU,SAAS1mM,CAAS,EAAA,CAAC,EAAG,CAAC,CAAC,GAClD,CALA,IAAI,OAAQ,CACV,OAAO2lM,IAAA,IAAKR,CAAAA,CAAAA,CACd,CAIA,OAAO,QAAA,CAASnlM,EAAO,CACrB,GAAI0mM,EAAU,OAAQ1mM,CAAAA,CAAK,EACzB,OAAO,CAACA,CAAK,CAEf,CAAA,GAAI,MAAM,OAAQA,CAAAA,CAAK,GAAKA,CAAM,CAAA,KAAA,CAAMJ,GAAO8mM,CAAU,CAAA,OAAA,CAAQ9mM,CAAG,CAAC,CAAA,CACnE,OAAOI,CAAM,CAAA,IAAA,GAEf,MAAM,IAAIgmM,GACZ,CACA,OAAO,QAAQhmM,CAAO,CAAA,CACpB,OAAO2mM,IAAS3mM,CAAAA,CAAK,GAAKA,CAAS,EAAA,CAAA,EAAKA,GAAS,CACnD,CACF,EAnBEmlM,CAAA,CAAA,IAAA,OAAA,CADF,IAAMyB,CAANF,CAAAA,CAAAA,CAqBMG,GAAY,MAAO,CAAA,qBAAqB,EACxCC,GAAa,CAAA,MAAA,CAAO,sBAAsB,CAnKhD3B,CAAAA,CAAAA,CAAA4B,EAoKMC,CAAN,CAAA,KAAa,CA2BX,WAAY/oM,CAAAA,CAAAA,CAAS,CA1BrBqnM,GAAA,CAAA,IAAA,CAAAH,GACAG,GAAA,CAAA,IAAA,CAAAyB,GA0BE9oM,CAAY,GAAA,GACZsnM,GAAA,CAAA,IAAA,CAAKJ,EAAS,MAAO,CAAA,MAAA,CAAO,CAC1B,IAAM,CAAA,IAAIsB,EAASxoM,CAAQ,CAAA,IAAI,CAC/B,CAAA,UAAA,CAAY,IAAIsoM,CAAAA,CAAWtoM,EAAQ,UAAU,CAAA,CAC7C,UAAW,IAAI2oM,CAAAA,CAAU3oM,EAAQ,SAAS,CAAA,CAC1C,QAAS,IAAIioM,CAAAA,CAAQjoM,EAAQ,OAAO,CAAA,CACpC,UAAW,IAAIgoM,CAAAA,CAAUhoM,EAAQ,SAAS,CAAA,CAC1C,QAAS,IAAIonM,CAAAA,CAAQpnM,EAAQ,OAAO,CACtC,CAAC,CACDsnM,CAAAA,CAAAA,GAAAA,CAAA,KAAKwB,CAAQE,CAAAA,EAAAA,CAASzoI,EAAU,CAC9B,UAAA,CAAY,KAAK,UACjB,CAAA,SAAA,CAAW,KAAK,SAChB,CAAA,OAAA,CAAS,KAAK,OACd,CAAA,SAAA,CAAW,KAAK,SAChB,CAAA,OAAA,CAAS,KAAKqoI,EAAS,CACzB,CAAC,CAAC,CAAA,EACJ,CAzCA,IAAI,IAAA,EAAO,CACT,OAAOlB,GAAAA,CAAA,KAAKR,CAAO,CAAA,CAAA,IAAA,CAAK,KAC1B,CACA,IAAI,YAAa,CACf,OAAOQ,IAAA,IAAKR,CAAAA,CAAAA,CAAAA,CAAO,WAAW,KAChC,CACA,IAAI,SAAY,EAAA,CACd,OAAOQ,GAAA,CAAA,IAAA,CAAKR,GAAO,SAAU,CAAA,KAC/B,CACA,IAAI,OAAA,EAAU,CACZ,OAAOQ,GAAAA,CAAA,KAAKR,CAAO,CAAA,CAAA,OAAA,CAAQ,KAC7B,CACA,IAAI,SAAA,EAAY,CACd,OAAOQ,GAAAA,CAAA,KAAKR,CAAO,CAAA,CAAA,SAAA,CAAU,KAC/B,CACA,IAAI,SAAU,CACZ,OAAOQ,IAAA,IAAKR,CAAAA,CAAAA,CAAAA,CAAO,QAAQ,KAC7B,CACA,IAAK0B,EAAS,CAAA,EAAI,CAChB,OAAOlB,GAAAA,CAAA,KAAKR,CAAO,CAAA,CAAA,OAAA,CAAQ,EAC7B,CACA,IAAK2B,GAAU,CAAI,EAAA,CACjB,OAAOnB,GAAA,CAAA,IAAA,CAAKoB,EACd,CAmBF,CAAA,CA5CE5B,EAAA,IACA4B,OAAAA,CAAAA,CAAAA,CAAA,YAtKF,IAAAG,CAAAA,CAAAC,EAAAC,CAkNMC,CAAAA,CAAAA,CAAN,KAAwB,CAItB,WAAA,CAAYpwH,EAAQnxE,CAAU,CAAA,CAH9Bw/L,IAAA,IAAA4B,CAAAA,CAAAA,CAAS,IAAI,GACb5B,CAAAA,CAAAA,GAAAA,CAAA,KAAA6B,CACA7B,CAAAA,CAAAA,GAAAA,CAAA,KAAA8B,CAEE7B,CAAAA,CAAAA,GAAAA,CAAA,KAAK4B,CAAY,CAAA,IAAI,qBAAqB,CAAIzoM,GAAAA,CAAAA,GAAS,CACrDoH,CAAS,CAAA,IAAA,CAAK,GAAGpH,CAAI,EACvB,EAAG,CACD,IAAA,CAAMu4E,EAAO,IACb,CAAA,UAAA,CAAYA,EAAO,UACnB,CAAA,SAAA,CAAW,CAAC,GAAGA,CAAAA,CAAO,SAAS,CACjC,CAAC,CACDsuH,CAAAA,CAAAA,GAAAA,CAAA,IAAK6B,CAAAA,CAAAA,CAAW,IAAM,CACpBzB,GAAAA,CAAA,KAAKwB,CAAU,CAAA,CAAA,UAAA,GACfrhM,CAAS,CAAA,QAAA,GACX,CACF,EAAA,CACA,QAAQmgB,CAAM,CAAA,CACZ0/K,IAAA,IAAKuB,CAAAA,CAAAA,CAAAA,CAAO,IAAIjhL,CAAI,CAAA,CACpB0/K,IAAA,IAAKwB,CAAAA,CAAAA,CAAAA,CAAU,QAAQlhL,CAAI,EAC7B,CACA,UAAWA,CAAAA,CAAAA,CAAM,CACf0/K,GAAA,CAAA,IAAA,CAAKuB,GAAO,MAAOjhL,CAAAA,CAAI,EACvB0/K,GAAA,CAAA,IAAA,CAAKuB,GAAO,IAAOvB,CAAAA,GAAAA,CAAA,KAAKwB,CAAU,CAAA,CAAA,SAAA,CAAUlhL,CAAI,CAAI0/K,CAAAA,GAAAA,CAAA,KAAKyB,CAAL,CAAA,CAAA,IAAA,CAAA,IAAA,EACtD,CACF,CAxBEF,CAAAA,CAAAA,CAAA,YACAC,CAAA,CAAA,IAAA,OAAA,CACAC,EAAA,IArNF,OAAA,CAAA,IAAAE,EAAAC,CAAAC,CAAAA,CAAAA,CA4OMC,EAAN,MAAMA,CAAc,CAIlB,WAAY3hM,CAAAA,CAAAA,CAAU,CAFtBw/L,GAAA,CAAA,IAAA,CAAAiC,EAAS,IAAI,OAAA,CAAA,CACbjC,IAAA,IAAAkC,CAAAA,CAAAA,CAAAA,CAEEjC,IAAA,IAAKiC,CAAAA,CAAAA,CAAY1hM,GACnB,CACA,OAAA,CAAQmgB,EAAMgxD,CAAQ,CAAA,CACpB,IAAMlI,CAAQ42H,CAAAA,GAAAA,CAAA,KAAK4B,CAAO,CAAA,CAAA,GAAA,CAAItwH,EAAO,IAAQ0uH,EAAAA,GAAAA,CAAA8B,EAAcH,CAAW,CAAA,CAAA,EAAK,KAAK,MAAOrwH,CAAAA,CAAM,EACvFywH,CAAOzwH,CAAAA,CAAAA,CAAO6vH,GAAU,CAGzB/3H,CAAAA,CAAAA,CAAM,IAAI24H,CAAI,CAAA,EACjB,KAAK,MAAO34H,CAAAA,CAAAA,CAAOkI,CAAM,CAE3BlI,CAAAA,CAAAA,CAAM,IAAI24H,CAAI,CAAA,CAAE,QAAQzhL,CAAI,EAC9B,CACA,UAAWA,CAAAA,CAAAA,CAAMgxD,EAAQ,CACvB,IAAMlI,EAAQ42H,GAAA,CAAA,IAAA,CAAK4B,GAAO,GAAItwH,CAAAA,CAAAA,CAAO,MAAQ0uH,GAAA8B,CAAAA,CAAAA,CAAcH,EAAW,CAChEI,CAAAA,CAAAA,CAAOzwH,EAAO6vH,GAAU,CAAA,CAC1B/3H,GAASA,CAAM,CAAA,GAAA,CAAI24H,CAAI,CACzB34H,EAAAA,CAAAA,CAAM,IAAI24H,CAAI,CAAA,CAAE,WAAWzhL,CAAI,CAAA,CAE7B8oD,GAASA,CAAM,CAAA,IAAA,GAAS,GAC1B42H,GAAA,CAAA,IAAA,CAAK4B,GAAO,MAAOtwH,CAAAA,CAAAA,CAAO,MAAQ0uH,GAAA8B,CAAAA,CAAAA,CAAcH,EAAW,EAE/D,CACA,OAAOrwH,CAAQ,CAAA,CACb,IAAMlI,CAAQ,CAAA,IAAI,IAClB,OAAA42H,GAAAA,CAAA,KAAK4B,CAAO,CAAA,CAAA,GAAA,CAAItwH,EAAO,IAAQ0uH,EAAAA,GAAAA,CAAA8B,EAAcH,CAAav4H,CAAAA,CAAAA,CAAK,CAC/D,CAAA,IAAA,CAAK,MAAOA,CAAAA,CAAAA,CAAOkI,CAAM,CAClBlI,CAAAA,CACT,CACA,MAAOA,CAAAA,CAAAA,CAAOkI,EAAQ,CACpB,IAAMywH,EAAOzwH,CAAO6vH,CAAAA,GAAU,EACxBa,CAAY,CAAA,IAAIN,EAAkBpwH,CAAQ,CAAA,CAC9C,KAAM,CAAIv4E,GAAAA,CAAAA,GAAS,CACjBinM,GAAA,CAAA,IAAA,CAAK6B,GAAL,IAAe,CAAA,IAAA,CAAA,GAAG9oM,GACpB,CACA,CAAA,QAAA,CAAU,IAAM,CACdqwE,CAAAA,CAAM,OAAO24H,CAAI,EACnB,CACF,CAAC,CAAA,CACD34H,EAAM,GAAI24H,CAAAA,CAAAA,CAAMC,CAAS,EAC3B,CACF,EA5CSL,CAAA,CAAA,IAAA,OAAA,CACPC,EAAA,IACAC,OAAAA,CAAAA,CAAAA,CAAA,YAFAlC,GADImC,CAAAA,CAAAA,CACGH,EAAc,MAAO,CAAA,MAAA,CAAO,IAAI,CADzC,CAAA,CAAA,IAAMM,EAANH,CA8CMjpI,CAAAA,CAAAA,CAAYpkC,GACZ,KAAM,CAAA,OAAA,CAAQA,CAAK,CACd,CAAA,CAAA,CAAA,EAAIA,EAAM,GAAIokC,CAAAA,CAAS,EAAE,IAAK,CAAA,GAAG,CAAC,CAEvCwmI,CAAAA,CAAAA,CAAAA,EAAAA,CAAS5qK,CAAK,CACT,CAAA,MAAA,CAAO,QAAQA,CAAK,CAAA,CAAE,KAAK,CAAC,CAAC35B,CAAC,CAAG,CAAA,CAACvE,CAAC,CAAM,GAAA,MAAA,CAAOuE,CAAC,CAAA,CAAE,aAAc,CAAA,MAAA,CAAOvE,CAAC,CAAC,CAAC,EAAE,GAAI,CAAA,CAAC,CAACqB,CAAKyC,CAAAA,CAAK,IAAM,CAAGzC,EAAAA,CAAG,IAAIihE,CAAUx+D,CAAAA,CAAK,CAAC,CAAE,CAAA,CAAA,CAAE,KAAK,GAAG,CAAA,CAE3I,OAAOo6B,CAAK,CAAA,CAEf6sK,GAAWjnM,CAAS,EAAA,CACxB,GAAI,CACF,IAAMo6B,EAAQ,UAAW,CAAA,SAAA,CAAUp6B,CAAK,CACxC,CAAA,OAAO,WAAW,IAAKo6B,CAAAA,CAAK,CAC9B,CAAQ,KAAA,CACN,OAAOp6B,CACT,CACF,EACI6nM,IAAkC,CAAA,CAAA,IAAM,CA3S5C,IAAAC,CAAAA,CAAAP,EA4SE,IAAMQ,CAAAA,CAAN,MAAMA,CAAkB,CAGtB,aAAc,CAFdzC,GAAAA,CAAA,KAAAwC,CACAxC,CAAAA,CAAAA,GAAAA,CAAA,KAAAiC,CAEEhC,CAAAA,CAAAA,GAAAA,CAAA,KAAKuC,CAAY,CAAA,IAAIh+G,IACrB,IAAK,CAAA,QAAA,CAAW67G,IAAA,IAAKmC,CAAAA,CAAAA,CAAAA,CAAU,cAC/B,CAAA,IAAA,CAAK,KAAO/uK,GAAOijC,CAAAA,EAAM,EACzB,IAAK,CAAA,IAAA,CAAK,kBAAkB,IAAM,CAChCupI,IAAA,IAAKgC,CAAAA,CAAAA,CAAS,IAAIK,CAAc7+K,CAAAA,CAAAA,EAAW,IAAK,CAAA,mBAAA,CAAoBA,CAAO,CAAC,GAC9E,CAAC,EACH,CACA,QAAS9C,CAAAA,CAAAA,CAAMgxD,EAAQ,CACrB,IAAA,CAAK,KAAK,iBAAkB,CAAA,IAAM,CAChC0uH,GAAA,CAAA,IAAA,CAAK4B,GAAO,OAAQthL,CAAAA,CAAAA,CAAMgxD,CAAM,EAClC,CAAC,EACH,CACA,UAAA,CAAWhxD,EAAMgxD,CAAQ,CAAA,CACvB,KAAK,IAAK,CAAA,iBAAA,CAAkB,IAAM,CAChC0uH,GAAAA,CAAA,KAAK4B,CAAO,CAAA,CAAA,UAAA,CAAWthL,EAAMgxD,CAAM,EACrC,CAAC,EACH,CACA,oBAAoBluD,CAAU,CAAA,GAAI,CAChC,IAAA,CAAK,KAAK,GAAI,CAAA,IAAMA,EAAQ,OAAQ1Y,CAAAA,CAAAA,EAASs1L,IAAA,IAAKmC,CAAAA,CAAAA,CAAAA,CAAU,KAAKz3L,CAAK,CAAC,CAAC,EAC1E,CAaF,EAnCEy3L,CAAA,CAAA,IAAA,OAAA,CACAP,EAAA,IAuBEQ,OAAAA,CAAAA,CAAAA,CAAK,UAAO,SAAmClqK,CAAAA,CAAmB,CAChE,OAAO,IAAKA,GAAqBkqK,CACnC,CAAA,CAAA,CAGAA,EAAK,UAA0B3jB,CAAAA,GAAAA,CAAmB,CAChD,KAAO2jB,CAAAA,CAAAA,CACP,QAASA,CAAkB,CAAA,SAAA,CAC3B,WAAY,MACd,CAAC,EAlCL,IAAMF,CAAAA,CAANE,CAqCA,CAAA,OAAOF,CACT,CAAA,IAIMG,EAAqB,CAAA,MAAA,CAAO,oBAAoB,CAClDC,CAAAA,IAAAA,CAAAA,CAAoC,IAAM,CAC5C,IAAMC,EAAN,MAAMA,CAAoB,CACxB,WAAc,EAAA,CACZ,KAAK,gBAAmB,CAAA,IAAIttK,KAC5B,IAAK,CAAA,qBAAA,CAAwB,IAAIA,IACjC,CAAA,IAAA,CAAK,OAAS,IAAIosK,CAAAA,CAAO,EAAE,CAAA,CAC3B,KAAK,UAAajuK,CAAAA,GAAAA,CAAO0+J,IAAW,CACpC,CAAA,IAAA,CAAK,kBAAoB1+J,GAAOk8J,CAAAA,EAAiB,EACjD,IAAK,CAAA,UAAA,CAAal8J,IAAOC,IAAU,CAAA,CACnC,KAAK,WAAcD,CAAAA,GAAAA,CAAO+rK,GAAsB,CAC9C,IAAA,CAAM,EACR,CAAC,CAAA,CACD,KAAK,iBAAoB/rK,CAAAA,GAAAA,CAAO8uK,IAAiB,EACnD,CACA,IAAI,OAAQ5pM,CAAAA,CAAAA,CAAS,CACnB,IAAK,CAAA,MAAA,CAAS,IAAI+oM,CAAO/oM,CAAAA,CAAO,EAClC,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,UAAW,CAAA,aACzB,CACA,eAAkB,EAAA,CAChB,GAAI,CAACu5L,EAAAA,CAAkB,KAAK,UAAU,CAAA,CAAG,CACvC,IAAK,CAAA,IAAA,CAAK,OAAW,CAAM,CAAA,CAAA,CAAA,CAAI,CAC/B,CAAA,MACF,CACA,IAAA,CAAK,kBAAkB,QAAS,CAAA,IAAA,CAAKzyL,KAAOsL,CAASA,EAAAA,CAAAA,CAAM,SAAW,IAAK,CAAA,aAAa,EAAGk2F,EAAU,CAAA,IAAA,CAAK,YAAY,UAAU,CAAC,EAAE,SAAUl2F,CAAAA,CAAAA,EAAS,CACpJ,IAAK,CAAA,IAAA,CAAKA,EAAO,CAAK,CAAA,CAAA,CACtB,KAAK,iBAAkB,CAAA,YAAA,GACzB,CAAC,CAAA,CACD,KAAK,iBAAkB,CAAA,QAAA,CAAS,KAAK,aAAe,CAAA,IAAA,CAAK,MAAM,EACjE,CACA,aAAc,CACRmnL,EAAAA,CAAkB,KAAK,UAAU,CAAA,GACnC,KAAK,iBAAkB,CAAA,UAAA,CAAW,KAAK,aAAe,CAAA,IAAA,CAAK,MAAM,CACjE,CAAA,IAAA,CAAK,KAAK,KAAW,CAAA,CAAA,CAAA,CAAA,CAAM,EAAK,CAEpC,EAAA,CACA,UAAUnnL,CAAO,CAAA,CACf,OAAO,IAAK,CAAA,MAAA,CAAO,QAAUA,CAAM,CAAA,cAAA,EAAkBA,EAAM,iBAAoB,CAAA,CAAA,CAAIA,EAAM,iBAAqB,EAAA,CAChH,CACA,IAAKA,CAAAA,CAAAA,CAAO4oH,EAAOkvE,CAAa,CAAA,CAC9B,KAAK,gBAAiB,CAAA,IAAA,CAAK,CACzB,CAACH,EAAkB,EAAG,CACpB,KAAA,CAAA33L,CACF,CACA,CAAA,MAAA,CAAQ,IAAK,CAAA,aAAA,CACb,OAAS4oH,CAAAA,CAAAA,CAAQ,CAAC,CAACkvE,CAAAA,CAAc,CAAC93L,CAAS,EAAA,IAAA,CAAK,UAAUA,CAAK,CACjE,CAAC,CACG,CAAA,IAAA,CAAK,OAAO,OACd,EAAA,IAAA,CAAK,sBAAsB,IAAK,CAAA,IAAA,CAAK,OAAO,OAAQA,CAAAA,CAAAA,CAAO,CACzD,KAAA4oH,CAAAA,CAAAA,CACA,YAAaA,CAAQ,CAAA,CAAC,CAACkvE,CAAc,CAAA,KAAA,CAAA,CACrC,OAAQ,IAAK,CAAA,MACf,CAAC,CAAC,EAEN,CAqBF,CAnBID,CAAAA,CAAAA,CAAK,UAAO,SAAqCrqK,CAAAA,CAAmB,CAClE,OAAO,IAAKA,GAAqBqqK,CACnC,CAAA,CAAA,CAGAA,EAAK,SAAyBtQ,CAAAA,IAAAA,CAAkB,CAC9C,IAAMsQ,CAAAA,CAAAA,CACN,UAAW,CAAC,CAAC,GAAI,YAAc,CAAA,EAAE,CAAC,CAClC,CAAA,MAAA,CAAQ,CACN,OAAS,CAAA,CAAC,EAAG,mBAAqB,CAAA,SAAS,CAC7C,CACA,CAAA,OAAA,CAAS,CACP,gBAAkB,CAAA,kBAAA,CAClB,sBAAuB,uBACzB,CAAA,CACA,WAAY,CACZ,CAAA,CAAA,QAAA,CAAU,CAAIE,EAAwB,CAAA,CAACtD,EAAoB,CAAC,CAAC,CAC/D,CAAC,CAAA,CAzEL,IAAMmD,CAANC,CAAAA,CAAAA,CA4EA,OAAOD,CACT,CAAG,ICzZH,SAASI,GAAyBroM,CAAO,CAAA,CACvC,OAAO,CACL,MAAAA,CACA,CAAA,IAAA,CAAM,UACN,CAAA,QAAA,CAAU,CAAC,CAACA,CAAAA,EAAS,CACrB,CAAA,CAAA,QAAA,CAAU,GACV,KAAO,CAAA,CAAA,CACT,CACF,CAUA,SAASsoM,EAAgB,EAAA,CACvB,OAAOC,CAAAA,EAAMA,EAAG,IAAKC,CAAAA,IAAAA,EAAeC,CAAAA,IAAAA,CAAI,CAAC,CACvC,IAAA,CAAAC,EACA,KAAAhyL,CAAAA,CACF,IAAM,CAEAgyL,CAAAA,GAAS,GACX,EAAA,OAAA,CAAQ,MAAMhyL,CAAK,EAEvB,CAAC,CAAA,CAAG04B,GAAI,CAAC,CACP,KAAApvC,CAAAA,CAAAA,CACA,MAAA0W,CACA,CAAA,IAAA,CAAAgyL,CACA,CAAA,QAAA,CAAA7xK,CACF,CAAM,GAAA,CACJ,IAAM8xK,CAAAA,CAAqBC,GAAqCF,CAAI,CAAA,CACpE,OAAO,CACL,MAAA1oM,CACA,CAAA,QAAA,CAAA62B,CACA,CAAA,KAAA,CAAAngB,EACA,IAAMiyL,CAAAA,CAAAA,CACN,SAAUA,CAAuB,GAAA,UACnC,CACF,CAAC,CAAC,CACJ,CASA,SAASC,EAAqCF,CAAAA,CAAAA,CAAM,CAClD,OAAQA,GACN,IAAK,GACH,CAAA,OAAO,WACT,IAAK,GAAA,CACH,OAAO,OAAA,CACT,IAAK,GACL,CAAA,QACE,OAAO,MACX,CACF,CAQA,IAAMG,EAAsB7oM,CAAAA,CAAAA,EAAS8oM,GAAM,IAAKjM,CAAAA,EAAAA,CAAU78L,CAAK,CAAC,EAgB1D+oM,EAA4C,CAAA,IAAM,CAEtD,IAAIC,CAAAA,CAEJ,OAAOC,CAGDA,GAAAA,CAAAA,CAAa,IAAS,GAAA,MAAA,GACxBD,EAAkBC,CAAa,CAAA,KAAA,CAAA,CAG7BA,CAAa,CAAA,IAAA,GAAS,QAAwCA,CAAa,CAAA,KAAA,GAAU,KAChFZ,CAAAA,CAAAA,EAAAA,CAAyB,MAAS,CAKvCY,EAAAA,CAAAA,CAAAA,CAAa,IAAS,GAAA,OAAA,EAA0CA,EAAa,IAAS,GAAA,UAAA,EAAgDA,CAAa,CAAA,IAAA,GAAS,cAC9JA,CAAa,CAAA,KAAA,CAAQD,CAEhBC,CAAAA,CAAAA,CAAAA,CAAAA,CAEX,EAcA,SAASC,EAAAA,EAAyB,CAEhC,IAAMC,EAAqB,IAAIprD,IAAAA,CAAc,CAAC,CAC1CqrD,CAAAA,CAAAA,CAAmB,GACjBC,CAAUF,CAAAA,CAAAA,CAAmB,IAAKv1J,CAAAA,EAAAA,GAExCxE,EAAIk6J,CAAAA,CAAAA,EACEC,EAAkBD,CAAAA,CAAW,EACxBE,CAAuBF,CAAAA,CAAW,CAChCG,CAAAA,EAAAA,CAAoBH,CAAW,CACjCE,CAAAA,CAAAA,CAAuBE,EAA4BJ,CAAAA,CAAW,CAAC,CAC7D,CAAA,CAACF,CAAoBE,EAAAA,CAAAA,GAAgB,OACvCR,EAEFD,CAAAA,EAAAA,CAAoBS,CAAW,CACvC,EAAGnN,IAAUr7L,CAAAA,CAAAA,EACLA,CAAE,CAAA,IAAA,CAAK2nM,KAAI,IAAMW,CAAAA,CAAmB,EAAI,CAAGx1J,CAAAA,EAAAA,GAAwB00J,EAAc,EAAA,CAAGl5J,EAAI25J,CAAAA,EAAAA,EAA2C,CAAC,CAC5I,CAAC,CAAA,CACF,OAAO,CACL,IAAA,CAAKhyK,CAAY,CAAA,CACfoyK,EAAmB,IAAKpyK,CAAAA,CAAU,EACpC,CAAA,CACA,oBAAoB4yK,CAAqB,CAAA,CACvCP,CAAmBA,CAAAA,CAAAA,EAAoBO,EACzC,CACA,CAAA,OAAA,CAAAN,CACF,CAAA,CASA,SAASG,CAAuBF,CAAAA,CAAAA,CAAa,CAC3C,OAAO,IAAI9yK,GAAWnlB,CAAAA,CAAAA,EAAc,CAClC,IAAIu4L,CAAAA,CAAqB,GACnBxmM,CAAQvG,CAAAA,IAAAA,CAAKysM,CAAW,CAAA,CAAE,UAAU,CACxC,IAAA,CAAMtoM,CAAK,EAAA,CACT4oM,EAAqB,CACrBv4L,CAAAA,CAAAA,CAAAA,CAAW,IAAKrQ,CAAAA,CAAC,EACnB,CACA,CAAA,KAAA,CAAO+I,CAAK,EAAA,CACV6/L,EAAqB,CACrBv4L,CAAAA,CAAAA,CAAAA,CAAW,KAAMtH,CAAAA,CAAC,EACpB,CACA,CAAA,QAAA,CAAU,IAAMsH,CAAAA,CAAW,UAC7B,CAAC,CACD,CAAA,OAAI+3L,GAAoBQ,CACtBv4L,EAAAA,CAAAA,CAAW,KAAK,KAAS,CAAA,CAAA,CAEpB,IAAM,CACXjO,CAAAA,CAAM,WAAY,GACpB,CACF,CAAC,CACH,CACF,CACA,SAASmmM,EAAkBnvK,CAAAA,CAAAA,CAAO,CAChC,OAAO,OAAOA,CAAO,EAAA,IAAA,EAAS,YAAcyvK,IAAazvK,CAAAA,CAAK,CAChE,CACA,SAASqvK,EAAoBrvK,CAAAA,CAAAA,CAAO,CAClC,OAAO,OAAOA,CAAO,EAAA,SAAA,EAAc,UACrC,CACA,SAASsvK,EAA4BtvK,CAAAA,CAAAA,CAAO,CAC1C,OAAO,IAAI5D,IAAWnlB,CAAc,EAAA,CAClC,IAAMw7I,CAAMzyH,CAAAA,CAAAA,CAAM,SAAU,CAAA,CAC1B,KAAMp6B,CAASqR,EAAAA,CAAAA,CAAW,IAAKrR,CAAAA,CAAK,CACtC,CAAC,CAAA,CACD,OAAO,IAAM,CACX6sJ,CAAI,CAAA,WAAA,GACN,CACF,CAAC,CACH,CChMA,SAASi9C,EAAAA,CAAmBC,EAAkBC,CAAat4L,CAAAA,CAAAA,CAAShD,CAAQ,CAAA,CAAA,CAAG,CAC7E,IAAMsrL,CAAAA,CAAO+P,CAAiB,CAAA,kBAAA,CAAmBC,EAAat4L,CAAShD,CAAAA,CAAK,EAC5E,OAAAsrL,CAAAA,CAAK,eACEA,CAAAA,CACT,CAQA,SAASiQ,GAAiBF,CAAkB,CAAA,CAC1C,IAAMG,CAAAA,CAAgB,IAAI,GACpBC,CAAAA,CAAAA,CAAO7nM,CACJ4nM,EAAAA,CAAAA,CAAc,IAAI5nM,CAAI,CAAA,EAAKu8I,EAAG,CAAA,KAAA,CAAS,EAE1CrgH,CAAMl8B,CAAAA,CAAAA,EAAQ,CAClB,IAAIyhL,EACEqmB,CAAcD,CAAAA,CAAAA,CAAK7nM,CAAI,CAAA,CAC7B,OAAI8nM,CACUA,EAAAA,CAAAA,CAAY,SAAUtjL,CAAAA,CAAAA,EAAKi9J,EAAMj9J,CAAC,CAAA,CAC1C,aAECi9J,CAAAA,CACT,EACA,OAAO,CACL,GAAIzhL,CAAAA,CAAAA,CAAM0nM,EAAa,CACrBK,CAAAA,CAAe/nM,CAAM0nM,CAAAA,CAAW,EAC3BE,CAAc,CAAA,GAAA,CAAI5nM,CAAI,CAAA,CAGzB4nM,EAAc,GAAI5nM,CAAAA,CAAI,CAAE,CAAA,IAAA,CAAK0nM,CAAW,CAFxCE,CAAAA,CAAAA,CAAc,GAAI5nM,CAAAA,CAAAA,CAAM,IAAIixC,IAAgBy2J,CAAAA,CAAW,CAAC,EAI5D,EACA,IAAAG,CAAAA,CAAAA,CACA,GAAA3rK,CAAAA,CAAAA,CACA,mBAAoB,CAACl8B,CAAAA,CAAMoP,IAAYo4L,EAAmBC,CAAAA,CAAAA,CAAkBvrK,EAAIl8B,CAAI,CAAA,CAAGoP,CAAO,CAChG,EAEA,SAAS24L,CAAAA,CAAe/H,CAAU0H,CAAAA,CAAAA,CAAa,CAC7C,IAAMM,CAAAA,CAAsB,CAAC,EAAE,CAACN,CAAeA,EAAAA,CAAAA,CAAY,kBAC3D,CAAA,CAAA,GAAI,CAACM,CACH,CAAA,MAAM,IAAI,KAAA,CAAM,GAAGhI,CAAQ,CAAA,qCAAA,EAAwC,OAAO0H,CAAW,EAAE,CAEzF,CAAA,OAAOM,CACT,CACF,CAYA,SAASC,EAAAA,CAAyBC,EAAoBC,CAAUC,CAAAA,CAAAA,CAAch2I,EAAQ,CACpF,OAAO6zI,CAAMA,EAAAA,CAAAA,CAAG,KAAKpM,IAAUn7L,CAAAA,CAAAA,EACR0pM,CAAa,EAAA,CAI3BnqM,KAAOs+I,EAAG79I,CAAAA,CAAC,CAAG2pM,CAAAA,GAAAA,CAAWH,EAAoBC,CAAU,CAAA,CAACG,CAAIC,CAAAA,CAAAA,CAAM5sM,IAAY,CAKnF4sM,CAAAA,CAAKL,CAAoBvsM,CAAAA,CAAAA,CAAQ,KAAK,EACxC,CAAA,CAAG,CACD,KAAA,CAAOusM,EAAmB,OAAWA,EAAAA,CAAAA,CACrC,MAAA91I,CAAAA,CACF,CAAC,CAAE,CAAA,IAAA,CAAKo2I,IAAgB,CAAC,EAXhBjsD,EAAG79I,CAAAA,CAAC,CAYd,CAAC,CACJ,CASA,SAAS+pM,EAAmBC,CAAAA,CAAAA,CAAkB,CAC5C,GAAM,CACJ,gBAAAjB,CAAAA,CAAAA,CACA,mBAAAkB,CACA,CAAA,iBAAA,CAAAC,CACA,CAAA,iBAAA,CAAAC,CACF,CAAIH,CAAAA,CAAAA,CACJ,OAAO,CACL,uBAAAI,CACA,CAAA,UAAA,CAAAC,CACA,CAAA,QAAA,CAAAC,EACA,UAAAC,CAAAA,CAAAA,CACA,cAAAC,CAAAA,EAAAA,CACA,WAAAC,CACF,CAAA,CAEA,SAASL,CAAuB7rM,CAAAA,CAAAA,CAAMmP,EAAOqF,CAAO,CAAA,CAClD,IAAMimL,CAAAA,CAAO+P,EAAiB,GAAIr7L,CAAAA,CAAK,CACvCy8L,CAAAA,CAAAA,CAAkB5rM,EAAMy6L,CAAM,CAAA,CAC5B,KAAAjmL,CAAAA,CAAAA,CACA,MAAArF,CACF,CAAC,CACDsrL,CAAAA,CAAAA,CAAK,gBACP,CACA,SAASsR,CAAAA,CAASI,EAAUnsM,CAAMmP,CAAAA,CAAAA,CAAOqF,CAAO,CAAA,CAC9C,IAAM43L,CAAU5B,CAAAA,CAAAA,CAAiB,GAAI2B,CAAAA,CAAQ,EACvC1R,CAAO+P,CAAAA,CAAAA,CAAiB,KAAK4B,CAASj9L,CAAAA,CAAK,EACjDy8L,CAAkB5rM,CAAAA,CAAAA,CAAMy6L,CAAM,CAAA,CAC5B,MAAAjmL,CACA,CAAA,KAAA,CAAArF,CACF,CAAC,EACDsrL,CAAK,CAAA,aAAA,GACP,CACA,SAASyR,CAAWlsM,CAAAA,CAAAA,CAAMmP,EAAOqF,CAAO,CAAA,CACtC,IAAMimL,CAAO+P,CAAAA,CAAAA,CAAiB,GAAIr7L,CAAAA,CAAK,EACvCy8L,CAAkB5rM,CAAAA,CAAAA,CAAMy6L,CAAM,CAAA,CAC5B,MAAAjmL,CACA,CAAA,KAAA,CAAArF,CACF,CAAC,EACDsrL,CAAK,CAAA,aAAA,GACP,CACA,SAASuR,EAAW78L,CAAO,CAAA,CACzB,OAAOq7L,CAAAA,CAAiB,OAAOr7L,CAAK,CACtC,CACA,SAAS28L,EAAW9rM,CAAMmP,CAAAA,CAAAA,CAAOqF,CAAO,CAAA,CACtC+1L,GAAmBC,CAAkBkB,CAAAA,CAAAA,CAAoBC,CAAkB3rM,CAAAA,CAAAA,CAAM,CAC/E,KAAAwU,CAAAA,CAAAA,CACA,KAAArF,CAAAA,CACF,CAAC,CAAGA,CAAAA,CAAK,EACX,CACF,CAOA,SAAS88L,EAAAA,CAAe76L,CAASo+D,CAAAA,CAAAA,CAAO,CACtC,IAAM68H,CAAAA,CAAc,IAAI,GAClBC,CAAAA,CAAAA,CAAa,EACfC,CAAAA,CAAAA,CAAe,CACnB,CAAA,CAAA,OAAAn7L,EAAQ,gBAAiB,CAAA,CAACo7L,CAAQhS,CAAAA,CAAAA,CAAuB78D,IAAiB,CACxE,IAAM39H,CAAOwsM,CAAAA,CAAAA,CAAO,KAChBA,CAAO,CAAA,aAAA,EAAiB,IAE1BF,EAAAA,CAAAA,CAAW,KAAKG,CAAgBzsM,CAAAA,CAAAA,CAAM29H,CAAiB,GAAA,IAAA,CAAO,OAAYA,CAAY,CAAC,CACvF0uE,CAAAA,CAAAA,CAAY,IAAIrsM,CAAI,CAAA,CACpBusM,CAAe,CAAA,CAAA,CAAA,EACN5uE,GAAgB,IAEzB2uE,EAAAA,CAAAA,CAAW,KAAKI,CAAgB1sM,CAAAA,CAAAA,CAAMw6L,IAA0B,IAAO,CAAA,KAAA,CAAA,CAAYA,CAAqB,CAAC,EACzG+R,CAAe,CAAA,CAAA,CAAA,EACN/R,CAA0B,GAAA,IAAA,GAEnC8R,EAAW,IAAKK,CAAAA,CAAAA,CAAc3sM,CAAM29H,CAAAA,CAAAA,CAAc68D,CAAqB,CAAC,CAAA,CACxE6R,CAAY,CAAA,GAAA,CAAIrsM,CAAI,CACpBusM,CAAAA,CAAAA,CAAe,CAEnB,CAAA,EAAA,CAAC,EACDn7L,CAAQ,CAAA,qBAAA,CAAsBo7L,CAAU,EAAA,CACtC,IAAMxsM,CAAOwsM,CAAAA,CAAAA,CAAO,IACfH,CAAAA,CAAAA,CAAY,IAAIrsM,CAAI,CAAA,GACvBssM,EAAW,IAAKM,CAAAA,CAAAA,CAAgB5sM,EAAMwsM,CAAO,CAAA,YAAY,CAAC,CAAA,CAC1DH,EAAY,GAAIrsM,CAAAA,CAAI,CAExB,EAAA,CAAC,EACDwvE,CAAM,CAAA,OAAA,CAAQ,CAACxvE,CAAAA,CAAMmP,IAAU,CACxBk9L,CAAAA,CAAY,GAAIrsM,CAAAA,CAAI,GACvBssM,CAAW,CAAA,IAAA,CAAKO,CAAmB7sM,CAAAA,CAAAA,CAAMmP,CAAK,CAAC,EAEnD,CAAC,CAAA,CACM,CAACm9L,CAAYC,CAAAA,CAAY,CAEhC,CAAA,SAASI,EAAc3sM,CAAM29H,CAAAA,CAAAA,CAAc68D,EAAuB,CAChE,OAAO,CAAC,CAAuC,CAAA,CAACx6L,CAAM29H,CAAAA,CAAAA,CAAc68D,CAAqB,CAAC,CAC5F,CACA,SAASoS,EAAgB5sM,CAAM29H,CAAAA,CAAAA,CAAc,CAC3C,OAAO,CAAC,CAAyC,CAAA,CAAC39H,CAAM29H,CAAAA,CAAY,CAAC,CACvE,CACA,SAASkvE,CAAAA,CAAmB7sM,EAAMmP,CAAO,CAAA,CACvC,OAAO,CAAC,EAA0C,CAACnP,CAAAA,CAAMmP,CAAK,CAAC,CACjE,CACA,SAASs9L,EAAgBzsM,CAAM29H,CAAAA,CAAAA,CAAc,CAC3C,OAAO,CAAC,CAAyC,CAAA,CAAC39H,EAAM29H,CAAiB,GAAA,IAAA,CAAO,KAAYA,CAAAA,CAAAA,CAAY,CAAC,CAC3G,CACA,SAAS+uE,CAAAA,CAAgB1sM,EAAMw6L,CAAuB,CAAA,CACpD,OAAO,CAAC,EAAyC,CAACx6L,CAAAA,CAAMw6L,CAA0B,GAAA,IAAA,CAAO,OAAYA,CAAqB,CAAC,CAC7H,CACF,CAGA,SAASsS,EAAAA,CAAgBtiM,CAAG,CAAA,CAC1B,OAAOA,CAAK,EAAA,IAAA,EAAQ,MAAM,OAAQA,CAAAA,CAAC,GAAKA,CAAE,CAAA,MAAA,GAAW,CAAKA,EAAAA,CAAAA,CAAE,CAAC,CAAa,WAAA,KAC5E,CAEA,SAASuiM,GAAmBC,CAAU,CAAA,CACpC,IAAMC,CAAAA,CAAeD,EAAWxiM,CAAKwiM,EAAAA,CAAAA,CAAS,WAAYxiM,CAAAA,CAAC,EAAI,OAAQ,CAAA,KAAA,CACvE,OAAO,CACL,YAAa2M,CAAS,EAAA,CAChB21L,EAAgB31L,CAAAA,CAAK,GACvB81L,CAAa91L,CAAAA,CAAAA,CAAM,CAAC,CAAC,EACrB,OAAQ,CAAA,KAAA,CAAM,yBAA0BA,CAAM,CAAA,CAAC,CAAC,CAEhD81L,EAAAA,CAAAA,CAAa91L,CAAK,EAEtB,CACF,CACF,CAKA,SAAS+1L,EAAAA,CAA0Bx1H,EAAQ,CACzC,GAAM,CACJ,gBAAA,CAAA+zH,EACA,cAAA0B,CAAAA,CAAAA,CACA,QAAAC,CACA,CAAA,eAAA,CAAAC,CACF,CAAI31H,CAAAA,CAAAA,CACE,CACJ,mBAAA,CAAA41H,EACA,UAAAC,CAAAA,CAAAA,CACA,KAAOtC,CAAAA,CAAAA,CACP,UAAAuC,CACA,CAAA,MAAA,CAAA/hM,CACF,CAAA,CAAI0hM,EACEtuL,CAAekuL,CAAAA,EAAAA,CAAmBI,EAAe,YAAY,CAAA,CAC7Dh4I,EAASq4I,CAAwB,EAAA,KAAA,CAAA,CACjCC,CAAoBC,CAAAA,EAAAA,CAAiBJ,EAAqBC,CAAU,CAAA,CACtEI,CACJ,CAAA,SAASC,EAAU9kM,CAAQ,CAAA,CACzB,OAAI6kM,CAAAA,GAGG7kM,EAAS6kM,CAAUN,CAAAA,CAAAA,CAAgB,IAAKvkM,CAAAA,CAAM,EAAE,MAAOskM,CAAAA,CAAO,CAAI,CAAA,IAAA,CAC3E,CAKA,IAAMS,CAAAA,CAAkBrC,EAAmBjvI,CAAAA,GAAAA,CAAA1K,IAAA,EACtC45I,CAAAA,CAAAA,CAAAA,CADsC,CAEzC,kBAAA,CAAoBA,EAAiB,WACvC,CAAA,CAAC,EACKjB,CAAmBiB,CAAAA,CAAAA,CAAiB,iBACtCc,CAAe,CAAA,CAAA,CAAA,CACfD,CACAwB,CAAAA,CAAAA,CAAoB,GACxB,OAAO,CACL,YAAaC,CAAAA,CAAAA,CAAY,CACvBN,CAAkB,CAAA,IAAA,CAAKM,CAAU,EACnC,EACA,MAAOjE,CAAAA,CAAAA,CAAS,CACd,OAAOA,EAAQ,IAAKkE,CAAAA,CAAAA,EAAQ,CAC9B,CACF,CACA,CAAA,SAASC,CAAc,EAAA,CACrB,OAAOjF,CAAMA,EAAAA,CAAAA,CAAG,IAAK95G,CAAAA,EAAAA,CAAW3mF,IAC9BulM,CAAoB,CAAA,CAAA,CAAA,CACpBjvL,EAAa,WAAYtW,CAAAA,CAAG,EACrB+2I,EAAG,CAAA,IAAI,CACf,CAAA,CAAC,CACJ,CACA,SAAS0uD,CAAS,EAAA,CAChB,OAAOhF,CAAMp1G,EAAAA,IAAAA,CAAc,CAACo1G,CAAAA,CAAIyE,EAAkB,SAAU,CAAA,IAAA,CAAKp5J,EAAqB,EAAC,CAAC,CAAC,CAAA,CAAE,IAAKxE,CAAAA,EAAAA,CAAI,CAAC,CAACq+J,CAAAA,CAAUhD,CAAQ,CAAA,GAAM,CAC5H,IAAMiD,CAAAA,CAASP,CAAUM,CAAAA,CAAQ,EAC7B98L,CACJ,CAAA,GAAI+8L,EAAQ,CACV,GAAIL,EAAmB,CACrB,IAAMM,CAAkB,CAAA,GACxB,IAASlxM,IAAAA,CAAAA,CAAI,CAAGmxM,CAAAA,CAAAA,CAAO7D,EAAiB,MAAQttM,CAAAA,CAAAA,CAAImxM,CAAMnxM,CAAAA,CAAAA,EAAAA,CAAK,CAC7D,IAAMoxM,CAAAA,CAAU9D,EAAiB,GAAIttM,CAAAA,CAAC,EACtCkxM,CAAgBlxM,CAAAA,CAAC,CAAIoxM,CAAAA,CAAAA,CAAQ,QAAQ,UACvC,CACAH,CAAO,CAAA,IAAA,CAAKC,CAAe,EAC7B,CACAh9L,CAAU+8L,CAAAA,CAAAA,CAAO,KAAKD,CAAQ,EAChC,CACA,OAAO,CACL,QAAA98L,CACA,CAAA,QAAA,CAAA88L,CACA,CAAA,QAAA,CAAAhD,CACF,CACF,CAAC,CAEDtO,CAAAA,IAAAA,CAAU,CAAC,CACT,OAAA,CAAAxrL,CACA,CAAA,QAAA,CAAA88L,EACA,QAAAhD,CAAAA,CACF,CAAM,GAAA,CACJ,GAAI,CAAC95L,CAAAA,CACH,OAAOkuI,EAAAA,CAAG,EAAE,CAAA,CAEd,IAAMx2I,CAAAA,CAASolM,GAAY,EAAC,CAEtB1+H,CAAQ,CAAA,KAAA,CAAM,QAAQ1mE,CAAM,CAAA,CAAIA,EAAS,KAAM,CAAA,IAAA,CAAKolM,CAAQ,CAC5DK,CAAAA,CAAAA,CAAcV,CAAgB,CAAA,cAAA,CAAez8L,EAASo+D,CAAK,CAAA,CACjE88H,CAAaiC,CAAAA,CAAAA,CAAY,CAAC,CAC1B,CAAA,IAAMC,CAAoBD,CAAAA,CAAAA,CAAY,CAAC,CACjCE,CAAAA,CAAAA,CAAgBC,CAA+BpC,CAAAA,CAAAA,CAAYpB,EAAU17H,CAAM,CAAA,MAAM,CACvF,CAAA,OAAAs+H,EAAoB,CACpBvB,CAAAA,CAAAA,CAAAA,CAAeiC,CAAqB/iM,EAAAA,CAAAA,CAC7BmoF,KAAc66G,CAAc,CAAA,MAAA,CAAS,CAAIA,CAAAA,CAAAA,CAAgB,CAACnvD,EAAG,CAAA,IAAI,CAAC,CAAC,CAAA,CAAE,KAAK4pD,IAAI,CAAA,IAAM4E,CAAoB,CAAA,CAAA,CAAK,EAAG9C,EAAyBC,CAAAA,CAAAA,CAAoBC,CAAU,CAAA,IAAMqB,EAAcp3I,CAAM,CAAA,CAAG84I,CAAY,EAAA,CAAGp+J,GAAI,IAAMq+J,CAAQ,CAAC,CAC/O,CAAC,CAAGD,CAAAA,CAAAA,EAAa,CACnB,CAYA,SAASS,CAAAA,CAA+Bt9L,CAAS85L,CAAAA,CAAAA,CAAU12L,EAAO,CAChE,OAAOpD,CAAQ,CAAA,MAAA,CAAS,EAAIA,CAAQ,CAAA,GAAA,CAAIkS,GAAU,CAChD,IAAM00D,EAAU10D,CAAO,CAAA,CAAC,CACxB,CAAA,OAAO8nL,IAAW9nL,CAAO,CAAA,CAAC,CAAG4nL,CAAAA,CAAAA,CAAU7iM,GAAQ,CAC7C,OAAQA,CAAM,EACZ,KACEwlM,CAAAA,CAAAA,CAAAA,CAAgB,WAAW71H,CAAQ,CAAA,CAAC,EAAGA,CAAQ,CAAA,CAAC,CAAGxjE,CAAAA,CAAK,EACxD,MACF,KACEq5L,CAAAA,CAAAA,CAAAA,CAAgB,SAAS71H,CAAQ,CAAA,CAAC,CAAGA,CAAAA,CAAAA,CAAQ,CAAC,CAAGA,CAAAA,CAAAA,CAAQ,CAAC,CAAGxjE,CAAAA,CAAK,EAClE,MACF,KACEq5L,CAAAA,CAAAA,CAAAA,CAAgB,WAAW71H,CAAQ,CAAA,CAAC,CAAC,CAAA,CACrC,MACF,KAAK,CAAA,CACH61H,CAAgB,CAAA,UAAA,CAAW71H,EAAQ,CAAC,CAAA,CAAGA,CAAQ,CAAA,CAAC,EAAGxjE,CAAK,CAAA,CACxD,MACF,OACEq5L,CAAgB,CAAA,sBAAA,CAAuB71H,CAAQ,CAAA,CAAC,EAAGA,CAAQ,CAAA,CAAC,CAAGxjE,CAAAA,CAAK,EACpE,KACJ,CACF,EAAG,CACD,MAAA,CAAA2gD,CACF,CAAC,CACH,CAAC,CAAA,CAAI,CAACmqF,EAAG,CAAA,IAAI,CAAC,CAChB,CACF,CACA,IAAMqvD,EAAe,CAAA,CAAC,CACpB,KAAAn6L,CAAAA,CAAAA,CACA,KAAArF,CAAAA,CACF,IAAMA,CAAU,GAAA,CAAA,CACVy/L,EAAc,CAAA,CAAC,CACnB,KAAAp6L,CAAAA,CAAAA,CACA,KAAArF,CAAAA,CACF,IAAMA,CAAUqF,GAAAA,CAAAA,CAAQ,CAClBq6L,CAAAA,EAAAA,CAAc,CAAC,CACnB,KAAA,CAAAr6L,EACA,KAAArF,CAAAA,CACF,IAAMA,CAAQ,CAAA,CAAA,GAAM,CACd2/L,CAAAA,EAAAA,CAAN,KAA+B,CA+D7B,WAAA,CAAY9uM,CAAM+uM,CAAAA,CAAAA,CAAa,CA9D/BC,GAAA,CAAA,IAAA,CAAA,OAAA,CAAQ,IAAIxwD,IAAAA,CAAc,CAAC,CAC3BwwD,CAAAA,CAAAA,GAAAA,CAAA,IAAQ,CAAA,OAAA,CAAA,IAAA,CAAK,MAAM,YAAa,EAAA,CAAA,CAChCA,GAAA,CAAA,IAAA,CAAA,YAAA,CAAA,CACAA,IAAA,IACAA,CAAAA,YAAAA,CAAAA,CAAAA,GAAAA,CAAA,IACAA,CAAAA,SAAAA,CAAAA,CAAAA,GAAAA,CAAA,mBACAA,GAAA,CAAA,IAAA,CAAA,WAAA,CAAY,IAAIh7J,IAAAA,CAAgB,CAC9B,KAAO,CAAA,CAAA,CAAA,CACP,MAAO,CACT,CAAA,CAAC,GAiEDg7J,GAAA,CAAA,IAAA,CAAA,QAAA,CAAS3wM,CACA,EAAA,IAAA,CAAK,MAAM,IAAKwxC,CAAAA,EAAAA,CAAItoB,CAAKlpB,EAAAA,CAAAA,CAAM,OAAO,CAAC4wM,CAAAA,CAAKjxM,CAAQixM,GAAAA,CAAAA,GAAMjxM,CAAG,CAAGupB,CAAAA,CAAC,CAAC,CAAC,GAZ1E,IAAK,CAAA,SAAA,CAAYvnB,CACb+uM,CAAAA,CAAAA,EACF,KAAK,aAAcA,CAAAA,CAAW,EAElC,CAzDA,IAAI,SAAU/kC,CAAAA,CAAAA,CAAW,CACvB,IAAA,CAAK,WAAaA,CAClB,CAAA,IAAA,CAAK,MAAM,IAAKA,CAAAA,CAAS,EAC3B,CACA,IAAI,SAAY,EAAA,CACd,OAAO,IAAK,CAAA,UACd,CACA,IAAI,WAAY,CACd,OAAO,IAAK,CAAA,UACd,CACA,IAAI,MAAA,EAAS,CACX,OAAO,KAAK,OACd,CACA,IAAI,SAAA,EAAY,CACd,OAAO,IAAA,CAAK,UACd,CACA,IAAI,KAAQ,EAAA,CACV,OAAO,IAAA,CAAK,UAAU,QAAS,EAAA,CAAE,KACnC,CACA,IAAI,OAAQ,CACV,OAAO,IAAK,CAAA,SAAA,CAAU,UAAW,CAAA,KACnC,CACA,IAAI,OAAQ,CACV,OAAO2kC,EAAa,CAAA,IAAA,CAAK,UAAU,QAAS,EAAC,CAC/C,CACA,IAAI,IAAO,EAAA,CACT,OAAOC,EAAAA,CAAY,KAAK,SAAU,CAAA,QAAA,EAAU,CAC9C,CACA,IAAI,IAAA,EAAO,CACT,OAAOC,GAAY,IAAK,CAAA,SAAA,CAAU,UAAU,CAC9C,CACA,IAAI,GAAA,EAAM,CACR,OAAO,CAAC,IAAK,CAAA,IACf,CACA,IAAI,QAAS,CACX,OAAO,IAAK,CAAA,SAAA,CAAU,KAAKh/J,EAAI/7B,CAAAA,CAAAA,EAAKA,CAAE,CAAA,KAAK,EAAGugC,EAAqB,EAAC,CACtE,CACA,IAAI,MAAS,EAAA,CACX,OAAO,IAAA,CAAK,UAAU,IAAKxE,CAAAA,EAAAA,CAAI5yC,CAAKA,EAAAA,CAAAA,CAAE,KAAK,CAAGo3C,CAAAA,EAAAA,EAAsB,CACtE,CACA,IAAI,MAAS,EAAA,CACX,OAAO,IAAA,CAAK,UAAU,IAAKxE,CAAAA,EAAAA,CAAI8+J,EAAY,CAAA,CAAGt6J,IAAsB,CACtE,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,SAAU,CAAA,IAAA,CAAKxE,GAAI++J,EAAW,CAAA,CAAGv6J,EAAqB,EAAC,CACrE,CACA,IAAI,KAAQ,EAAA,CACV,OAAO,IAAK,CAAA,SAAA,CAAU,IAAKxE,CAAAA,EAAAA,CAAIg/J,EAAW,CAAGx6J,CAAAA,EAAAA,EAAsB,CACrE,CACA,IAAI,IAAO,EAAA,CACT,OAAO,IAAA,CAAK,MAAM,IAAKxE,CAAAA,EAAAA,CAAIq/J,CAAQ,EAAA,CAACA,CAAI,CAAC,CAC3C,CAOA,aAAA,CAAcC,EAAU,CACtB,IAAA,CAAK,SAAU,CAAA,IAAA,CAAKt9I,QAAA,EACf,CAAA,IAAA,CAAK,SAAU,CAAA,QAAA,IACfs9I,CACJ,CAAA,EACH,CAIF,CAAA,CACIC,EAAmC,SAAUA,CAAAA,CAAqB,CACpE,OAAAA,EAAoB,KAAW,CAAA,UAAA,CAC/BA,EAAoB,QAAc,CAAA,aAAA,CAClCA,EAAoB,QAAc,CAAA,aAAA,CAC3BA,CACT,CAAA,CAAEA,GAAuB,EAAE,EAQ3B,SAASC,GAA8BC,CAAmB,CAAA,CAExD,OAAO,CACL,SAAU5F,CAAgB,EAAA,CACxB,IAAM1/B,CAAAA,CAAY0/B,EAAa,KAC/B,CAAA,OAAO73I,GAAA,CAAA,CACL,UAAAm4G,CACA,CAAA,QAAA,CAAU,CACV,CAAA,CAAA,KAAA,CAAO,GACP,QAAU,CAAA,CAAA,CAAA,CAAA,CACPslC,CAAkBtlC,CAAAA,CAAS,EAElC,CACA,CAAA,IAAA,CAAM0/B,GAAgB,CACpB,IAAM1/B,EAAY0/B,CAAa,CAAA,KAAA,CAC/B,OAAO73I,GAAAA,CAAA,CACL,SAAAm4G,CAAAA,CAAAA,CACA,QAAU,CAAA,CAAA,CAAA,CACV,MAAO,CACP,CAAA,CAAA,QAAA,CAAU,CACPslC,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBtlC,CAAS,CAElC,CAAA,CAAA,CACA,KAAO0/B,CAAAA,CAAAA,EAAgB,CACrB,IAAM1/B,CAAAA,CAAY0/B,CAAa,CAAA,KAAA,CAC/B,OAAO73I,GAAA,CAAA,CACL,SAAAm4G,CAAAA,CAAAA,CACA,SAAU,CACV,CAAA,CAAA,KAAA,CAAO0/B,CAAa,CAAA,KAAA,EAAS,GAC7B,QAAU,CAAA,CAAA,CAAA,CAAA,CACP4F,EAAkBtlC,CAAS,CAAA,CAElC,EACA,QAAU0/B,CAAAA,CAAAA,EAAgB,CACxB,IAAM1/B,EAAY0/B,CAAa,CAAA,KAAA,CAC/B,OAAO73I,GAAAA,CAAA,CACL,SAAAm4G,CAAAA,CAAAA,CACA,KAAO,CAAA,CAAA,CAAA,CACP,SAAU,CACV,CAAA,CAAA,QAAA,CAAU,CACPslC,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBtlC,CAAS,CAElC,CAAA,CACF,CACF,CACA,SAASulC,EAAsB73H,CAAAA,CAAAA,CAAQ,CACrC,GAAM,CACJ,cAAAy1H,CAAAA,CAAAA,CACA,0BAAAqC,CAAAA,CAAAA,CACA,iBAAA/D,CACF,CAAA,CAAI/zH,EACE,CACJ,mBAAA,CAAA41H,EACA,UAAAC,CAAAA,CAAAA,CACA,KAAOtC,CAAAA,CAAAA,CACP,UAAAuC,CACA,CAAA,MAAA,CAAA/hM,CACF,CAAA,CAAI0hM,EACEtuL,CAAekuL,CAAAA,EAAAA,CAAmBI,CAAe,CAAA,YAAY,EAC7Dh4I,CAASq4I,CAAAA,CAAAA,EAAwB,KACnCiC,CAAAA,CAAAA,CAAAA,CACEhC,EAAoBC,EAAiBJ,CAAAA,CAAAA,CAAqBC,CAAU,CAAA,CACpEmC,EAAYhF,EAAiBe,CAAAA,CAAAA,CAAiB,gBAAgB,CAAA,CAC9DjB,EAAmBiB,CAAiB,CAAA,gBAAA,CACpCkE,CAAkBj4H,CAAAA,CAAAA,CAAO,kBAAoB6lH,IAC7CqS,CAAAA,CAAAA,CAAaP,GAA8B5D,CAAiB,CAAA,aAAA,GAAkB,KAAO,EAAC,CAAA,CAAG,CAC/F,CAAA,OAAO,CACL,cAAgB,CAAA,CAAC1oM,CAAM0nM,CAAAA,CAAAA,GAAgB,CACrCiF,CAAU,CAAA,GAAA,CAAI3sM,CAAM0nM,CAAAA,CAAW,EACjC,CACA,CAAA,YAAA,CAAcgD,CAAkB,CAAA,IAAA,CAChC,OAAO3D,CAAS,CAAA,CACd,IAAI+F,CAAAA,CACAnG,EAAe,CACjB,KAAA,CAAO,KACP,CAAA,CAAA,QAAA,CAAU,GACV,KAAO,CAAA,CAAA,CAAA,CACP,IAAM,CAAA,UAAA,CACN,SAAU,CACZ,CAAA,CAAA,CACA,OAAOvoE,EAAM2oE,CAAAA,CAAAA,CAAQ,KAAKZ,IAAI/rM,CAAAA,CAAAA,EAAKusM,CAAevsM,CAAAA,CAAC,CAAC,CAAGwyM,CAAAA,CAAAA,CAAgB,IAAKzG,CAAAA,IAAAA,CAAIvjJ,GAAWkqJ,CAAMlqJ,CAAAA,CAAO,CAAC,CAAC,EAAE,IAAKi3I,CAAAA,IAAAA,CAAU,IAAM,CAC/H,IAAMkT,CAAcD,CAAAA,CAAAA,EAAOnG,CAAa,CAAA,IAAA,CACxCmG,EAAM,KACN,CAAA,CAAA,IAAMpvM,CAAQipM,CAAAA,CAAAA,CAAa,MACrBqG,CAAeP,CAAAA,CAAAA,CAA2BM,CAAW,CAAA,CAAErvM,EAAOivM,CAAS,CAAA,CAC7E,OAAOA,CAAU,CAAA,IAAA,CAAKK,CAAY,CAAE,CAAA,IAAA,CAAKlgK,EAAIxB,CAAAA,CAAAA,GAAa,CACxD,QAAAA,CAAAA,CAAAA,CACA,YAAA0hK,CAAAA,CAAAA,CACA,aAAArG,CACA,CAAA,WAAA,CAAAoG,CACF,CAAA,CAAE,CAAC,CACL,CAAC,EAAGE,IAAevC,CAAAA,CAAAA,CAAkB,SAAS,CAE9C7Q,CAAAA,IAAAA,CAAU,CAAC,CAAC,CACV,QAAAvuJ,CAAAA,CAAAA,CACA,YAAA0hK,CAAAA,CAAAA,CACA,aAAArG,CACA,CAAA,WAAA,CAAAoG,CACF,CAAA,CAAG5E,CAAQ,CAAM,GAAA,CACf,IAAM+E,CAAgBR,CAAAA,CAAAA,GAAmBphK,GAAY,CAACA,CAAAA,CAChDk+J,CAAe0D,CAAAA,CAAAA,EAAiBxkM,EACtC,OAAO2/L,GAAAA,CAAW1B,CAAa,CAAA,KAAA,CAAOwB,EAAU,CAACzpM,CAAAA,CAAG6pM,CAAM5sM,CAAAA,CAAAA,GAAY,CACpE,IAAMyT,CAAAA,CAAUy9L,CAAWE,CAAAA,CAAW,EAAEpG,CAAY,CAAA,CACpD,GAAIuG,CAAAA,CAIEzF,EAAiB,MAAS,CAAA,CAAA,EAE5BA,CAAiB,CAAA,KAAA,GAGfn8J,CAEFqhK,EAAAA,CAAAA,CAAU,kBAAmBK,CAAAA,CAAAA,CAAc59L,CAAO,CAE3Ck8B,CAAAA,KAAAA,GAAAA,CAAAA,CAAU,CAGnB,IAAMosJ,CAAAA,CAAO+P,EAAiB,GAAI,CAAA,CAAC,CACnC,CAAA,MAAA,CAAO,KAAKr4L,CAAO,CAAA,CAAE,OAAQ3Q,CAAAA,CAAAA,EAAK,CAChCi5L,CAAK,CAAA,OAAA,CAAQj5L,CAAC,CAAA,CAAI2Q,EAAQ3Q,CAAC,EAC7B,CAAC,CAAA,CAED8pM,EAAK7Q,CAAM/7L,CAAAA,CAAAA,CAAQ,KAAOgrM,CAAAA,CAAY,EACxC,CACA+F,CAAAA,CAAiBphK,EACnB,CAAA,CAAG,CACD,MAAA8mB,CAAAA,CACF,CAMA,CAAA,CAAE,KAAK61I,EAAyBC,CAAAA,CAAAA,CAAoBC,EAAU,IAAMqB,CAAAA,CAAcp3I,CAAM,CAAG+5B,CAAAA,EAAAA,CAAW1kF,CACpGqU,GAAAA,CAAAA,CAAa,YAAYrU,CAAC,CAAA,CACnB80I,EAAG90I,CAAAA,CAAC,EACZ,CAAC,CACJ,CAAC,CAAC,CACJ,CACF,CACF,CCrlBA,IAAM0lM,EAAqB3zI,GAAA1K,CAAAA,GAAAA,CAAA,EACtBu9I,CAAAA,CAAAA,CAAAA,CADsB,CAEzB,IAAM,CAAA,SACR,CAoCIe,CAAAA,CAAAA,EAAAA,CAAAA,CAAsB,IAAM,CAC9B,IAAMC,CAAN,CAAA,MAAMA,CAAM,CAyYV,WAAA,CAAY3F,EAAa,CAxYzBuE,GAAAA,CAAA,oBAEAA,GAAA,CAAA,IAAA,CAAA,kBAAA,CAAmBx1K,GAAO62K,CAAAA,EAAkB,GAE5CrB,GAAA,CAAA,IAAA,CAAA,OAAA,CAAQx1K,GAAOk8J,CAAAA,EAAiB,GAChCsZ,GAAA,CAAA,IAAA,CAAA,UAAA,CAAWx1K,GAAOorJ,CAAAA,IAAQ,GAE1BoqB,GAAA,CAAA,IAAA,CAAA,QAAA,CAASx1K,GAAOijC,CAAAA,EAAM,GAEtBuyI,GAAA,CAAA,IAAA,CAAA,kBAAA,CAAmBx1K,GAAOw/J,CAAAA,IAAgB,GAE1CgW,GAAA,CAAA,IAAA,CAAA,cAAA,CAAex1K,GAAOszH,CAAAA,IAAY,GAoBlCkiD,GAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAqDAA,GAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAgBAA,IAAA,IAiBAA,CAAAA,OAAAA,CAAAA,CAAAA,GAAAA,CAAA,iBA2BAA,GAAA,CAAA,IAAA,CAAA,gBAAA,CAAA,CAyBAA,IAAA,IAyBAA,CAAAA,iBAAAA,CAAAA,CAAAA,GAAAA,CAAA,IA0BAA,CAAAA,cAAAA,CAAAA,CAAAA,GAAAA,CAAA,wBAyBAA,GAAA,CAAA,IAAA,CAAA,aAAA,CAAA,CA2FAA,GAAA,CAAA,IAAA,CAAA,cAAA,CAAe,KAAK,gBAAiB,CAAA,MAAA,CAAO,MAgC5CA,CAAAA,CAAAA,GAAAA,CAAA,iBAAY,IAAK,CAAA,gBAAA,CAAiB,MAAO,CAAA,SAAA,CAAA,CAEzCA,IAAA,IAAqBrF,CAAAA,oBAAAA,CAAAA,EAAAA,EAErBqF,CAAAA,CAAAA,GAAAA,CAAA,uBAAkBsB,IAAiB,CAAA,IAAM,IAAI9xD,IAAAA,CAAc,CAAC,CAAC,CAAA,CAAA,CAE7DwwD,GAAA,CAAA,IAAA,CAAA,gBAAA,CAAiB,IAAIxwD,IAAc,CAAA,CAAC,GAEpCwwD,GAAA,CAAA,IAAA,CAAA,iBAAA,CAAA,CAEAA,IAAA,IAAe,CAAA,cAAA,CAAA,IAAIuB,GAEnBvB,CAAAA,CAAAA,GAAAA,CAAA,wBAEAA,GAAA,CAAA,IAAA,CAAA,WAAA,CAAY,IAAIzkH,EAAAA,CAAAA,CAEhBykH,IAAA,IAAwB,CAAA,uBAAA,CAAA,IAAIzkH,EAE5BykH,CAAAA,CAAAA,GAAAA,CAAA,eAAU,IAAK,CAAA,kBAAA,CAAmB,OAClCA,CAAAA,CAAAA,GAAAA,CAAA,gBAAW7V,IAAM,CAAA,IAAM,IAAK,CAAA,SAAS,GAMnC,IAAK,CAAA,WAAA,CAAcsR,EACrB,CAxUA,IAAI,QAAS+F,CAAAA,CAAAA,CAAc,CACzB,IAAA,CAAK,gBAAgB,IAAKA,CAAAA,CAAY,EACxC,CA6NA,IAAI,eAAejqM,CAAU,CAAA,CAC3B,IAAK,CAAA,eAAA,CAAkBA,EACzB,CAkGA,OAAO,sBAAuB0R,CAAAA,CAAAA,CAAKtG,EAAK,CACtC,OAAO,CACT,CAAA,CAKA,UAAW,CACT,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,KAAK,eAAgB,CAAA,MAAA,CAAOwvH,EAAM,CAAA,IAAA,CAAK,QAAS,IAAK,CAAA,qBAAqB,CAAC,CAAA,CAAE,UAAUhkI,CAAK,EAAA,CAChH,IAAK,CAAA,SAAA,CAAU,KAAKA,CAAC,CAAA,CACrB,KAAK,eAAiB,EAAA,IAAA,CAAKA,CAAC,EAC9B,CAAC,CAAC,CAAA,CACF,KAAK,YAAa,CAAA,GAAA,CAAIgkI,EAAM,CAAA,IAAA,CAAK,gBAAkBooE,EAAO,CAAA,IAAA,CAAK,WAAa,EAAA,IAAA,CAAK15J,GAAI,IAAM,MAAoC,CAAC,CAAK05J,EAAAA,EAAAA,CAAO,KAAK,eAAiB,EAAA,IAAA,CAAK15J,EAAI,CAAA,IAAM,UAA4C,CAAC,CAAA,EAAK05J,EAAO,CAAA,IAAA,CAAK,iBAAiB,IAAK15J,CAAAA,EAAAA,CAAI,IAAM,UAA4C,CAAC,CAAK05J,EAAAA,EAAAA,CAAO,KAAK,YAAc,EAAA,IAAA,CAAK15J,GAAI,IAAM,OAAsC,CAAC,CAAA,EAAK05J,EAAK,CAAE,CAAA,IAAA,CAAK/jM,IAAO/D,CAAAA,CAAAA,EAAK,CAAC,CAACA,CAAC,CAAC,CAAA,CAAE,UAAUzE,CAAK,EAAA,IAAA,CAAK,cAAe,CAAA,IAAA,CAAKA,CAAC,CAAC,CAAC,EACje,CAEA,YAAYoU,CAAS,CAAA,CACd,IAAK,CAAA,eAAA,EACR,KAAK,sBAAuB,EAAA,CAE1BA,CAAQ,CAAA,QAAA,EACV,KAAK,eAAgB,CAAA,cAAA,CAAe8+L,EAAmB,QAAU,CAAA,IAAA,CAAK,QAAQ,CAE5E9+L,CAAAA,CAAAA,CAAQ,QACV,GAAA,IAAA,CAAK,gBAAgB,cAAe8+L,CAAAA,CAAAA,CAAmB,QAAU,CAAA,IAAA,CAAK,QAAQ,CAC9E,CAAA,IAAA,CAAK,kBAAmB,CAAA,mBAAA,CAAoB,CAAC,CAAC,IAAA,CAAK,QAAQ,CAAA,CAAA,CAEzD9+L,EAAQ,KACV,EAAA,IAAA,CAAK,eAAgB,CAAA,cAAA,CAAe8+L,EAAmB,KAAO,CAAA,IAAA,CAAK,KAAK,CAAA,CAEtE9+L,EAAQ,KACNq/L,GAAAA,EAAAA,CAAS,IAAK,CAAA,KAAK,EACrB,IAAK,CAAA,kBAAA,CAAmB,KAAKC,IAAa,CAAA,IAAA,CAAK,MAAO,CACpD,QAAA,CAAU,IAAK,CAAA,QACjB,CAAC,CAAC,CAAA,CAEF,IAAK,CAAA,kBAAA,CAAmB,KAAK,IAAK,CAAA,KAAK,CAG7C,EAAA,CAEA,aAAc,CACZ,IAAA,CAAK,YAAa,CAAA,WAAA,GACpB,CAEA,sBAAA,EAAyB,CACvB,IAAA,CAAK,gBAAkBnB,EAAsB,CAAA,CAC3C,gBAAkB,CAAA,CAChB,iBAAkB,IAAK,CAAA,gBAAA,CACvB,aAAeoB,CAAAA,CAAAA,GAAU,CACvB,KAAAA,CAAAA,CACF,EACF,CACA,CAAA,cAAA,CAAgB,CACd,KAAO,CAAA,IAAA,CAAK,KACZ,CAAA,MAAA,CAAQ,CAAC,CAAC,IAAA,CAAK,YACf,CAAA,SAAA,CAAW,KAAK,SAAY,CAAA,IAAA,CAAK,MAAS,CAAA,CAAA,CAAA,CAC1C,oBAAqB,IAAK,CAAA,gBAAA,CAAiB,gBAC3C,UAAY,CAAA,IAAA,CAAK,iBAAiB,UAClC,CAAA,YAAA,CAAc,IAAK,CAAA,YACrB,EACA,0BAA4B,CAAA,CACzB,QAA+C,CAAA,IAAM,KAAK,QAAWT,CAAAA,CAAAA,CAAmB,QAAWA,CAAAA,CAAAA,CAAmB,KACtH,IAAuC,CAAA,IAAMA,EAAmB,IAChE,CAAA,KAAA,CAAyC,IAAM,IAAK,CAAA,KAAA,CAAQA,CAAmB,CAAA,KAAA,CAAQA,EAAmB,IAC1G,CAAA,QAAA,CAA+C,IAAM,IAAA,CAAK,SAAWA,CAAmB,CAAA,QAAA,CAAWA,CAAmB,CAAA,IACzH,EACA,gBAAkB,CAAA,IAAA,CAAK,cACzB,CAAC,EACD,IAAK,CAAA,eAAA,CAAgB,cAAeA,CAAAA,CAAAA,CAAmB,KAAM,IAAK,CAAA,WAAW,CAC7E,CAAA,IAAA,CAAK,gBAAgB,YAAa,CAAA,IAAA,CAAK,eAAgB,CAAA,OAAO,EAChE,CA8BF,CAAA,CA7dElB,IAbIoB,CAaG,CAAA,uBAAA,CAAA,CAicPpB,IA9cIoB,CA8cG,CAAA,WAAA,CAAO,SAAuB9xK,CAAAA,CAAmB,CACtD,OAAO,IAAKA,CAAqB8xK,EAAAA,CAAAA,EAAU7iK,IAAqBqrJ,IAAW,CAAC,CAC9E,CAAA,CAAA,CAEAoW,IAldIoB,CAkdG,CAAA,WAAA,CAAyB/X,IAAkB,CAAA,CAChD,KAAM+X,CACN,CAAA,SAAA,CAAW,CAAC,CAAC,GAAI,OAAS,CAAA,EAAE,CAAC,CAAA,CAC7B,OAAQ,CACN,KAAA,CAAO,OACP,CAAA,QAAA,CAAU,CAAC,CAAG,CAAA,eAAA,CAAiB,UAAU,CACzC,CAAA,QAAA,CAAU,CAAC,CAAG,CAAA,eAAA,CAAiB,UAAU,CAAA,CACzC,MAAO,CAAC,CAAA,CAAG,YAAc,CAAA,OAAO,EAChC,QAAU,CAAA,CAAC,CAAG,CAAA,eAAA,CAAiB,UAAU,CACzC,CAAA,cAAA,CAAgB,CAAC,CAAA,CAAG,sBAAuB,gBAAgB,CAAA,CAC3D,eAAiB,CAAA,CAAC,EAAG,sBAAwB,CAAA,iBAAiB,CAC9D,CAAA,YAAA,CAAc,CAAC,CAAG,CAAA,mBAAA,CAAqB,cAAc,CAAA,CACrD,gBAAiB,CAAC,CAAA,CAAG,uBAAwB,iBAAiB,CAAA,CAC9D,YAAa,CAAC,CAAA,CAAG,kBAAoB,CAAA,aAAa,EAClD,cAAgB,CAAA,CAAC,CAAG,CAAA,qBAAA,CAAuB,gBAAgB,CAC3D,CAAA,YAAA,CAAc,CAAC,CAAA,CAAG,cAAe,cAAc,CAAA,CAC/C,UAAW,CAAC,CAAA,CAAG,iBAAkB,WAAW,CAC9C,CACA,CAAA,OAAA,CAAS,CACP,QAAU,CAAA,UACZ,CACA,CAAA,UAAA,CAAY,GACZ,QAAU,CAAA,CAAItmI,EAAoB,CACpC,CAAC,CAzeH,CAAA,CAAA,IAAMqmI,EAANC,CA2eA,CAAA,OAAOD,CACT,CAAG,ICxhBK31K,IAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAmD,EAAA,GAAA,CAAA,CAAA,CAC7B8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAA4B5U,EAAA,EAAA,CAC7C4U,GAAA,CAAA,CAAA,CACL5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAFsB2pB,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAu0B,EAAA8sI,sBAAA,CAAA,CACjBnzK,EAAA,EAAA,CAAAo8D,GAAA,GAAA/1B,CAAAA,CAAAA,CAAA+sI,kBAAA,CAAA,GAAA,8BAELr2K,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAkD,CAAA,CAAA,CAAA,KAAA,CAAA,CACzC,EAAA,GAAA,CAAA,CAAA,CACiB8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAA4B5U,EAAA,EAAA,GAElDD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EAAK8U,EAAA,CAAA,CAAA,CAAwB5U,CAAAA,EAAAA,IAHP+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAAu0B,CAAA8sI,CAAAA,sBAAA,CAGjBnzK,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAA+sI,kBAAA,EAfbr2K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAIsB,CAAA,CAAA,MAAA,CAAA,CAAA,CACU8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAI7U,CAAAA,EAAAA,CAAA,CAAA,CAAA,IAAA,EAAM6U,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAK5U,IAC3CkC,CAAAA,EAAAA,CAAA,CAAAk0K,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAmD,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAWvDr2K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAfI2qH,KAAA,kBAAA36D,CAAAA,CAAAA,CAAAwsG,gBAAA,CAAA,CACA5yI,GAAA,SAAAgnC,CAAAA,EAAAA,CAAA,CAAA0F,CAAAA,EAAAA,CAAAtG,CAAAktI,CAAAA,YAAA,CAAA,CAAA,CAG8BvzK,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAomC,CAAAktI,CAAAA,YAAA,CAIAvzK,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAAktI,CAAAA,YAAA,EAc9Bx2K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACK8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAqD5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAArD2pB,EAAA,EAAA,CAAAwyI,GAAA,EAAAnsG,CAAAA,CAAAA,CAAA8sI,sBAAA,CAAA,GAAA,CAAA9sI,CAAA+sI,CAAAA,kBAAAA,CAAA,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAELr2K,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAA4G,EAAA,KAAA,CAAA,CACnG8U,EAAA,CAAA,CAAA,EAA4B5U,EAAA,EAAA,CACjCD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACAD,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAK8U,EAAA,CAAA,CAAA,CAAwB5U,CAAAA,EAAAA,EAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAF9B2pB,GAAA,CAAA,CAAA,CAAA8R,EAAAu0B,CAAAA,CAAAA,CAAA8sI,sBAAA,CAAA,CAEAnzK,EAAA,CAAA,CAAA,EAAA8R,EAAAu0B,CAAAA,CAAAA,CAAA+sI,kBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAZbr2K,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAIuB,EAAA,MAAA,CAAA,CAAA,CACS8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAI7U,CAAAA,EAAAA,CAAA,EAAA,IAAA,CAAA,CAAM6U,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAK5U,EAAA,EAAA,CAC3CkC,GAAA,CAAAq0K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACK,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAOTx2K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAZI2qH,IAAA,CAAA,kBAAA,CAAA36D,EAAAwsG,gBAAA,CAAA,CACA5yI,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,CAAA,CAAA0F,EAAAtG,CAAAA,CAAAA,CAAAktI,YAAA,CAAA,CAAA,CAG8BvzK,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAA8sI,CAAAA,sBAAAA,EAAA,GAAA9sI,CAAA+sI,CAAAA,kBAAAA,EAAA,CAAA,EAAA,CAAA/sI,CAAAktI,CAAAA,YAAA,CAGAvzK,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAomC,CAAA8sI,CAAAA,sBAAAA,EAAA,GAAA9sI,CAAA+sI,CAAAA,kBAAAA,EAAA,CAAA/sI,EAAAA,CAAAA,CAAAktI,YAAA,ECjBtC,CAAA,CAAA,IAAaG,EAAyB,CAAA,CAAA,IAAA,CAAhC,IAAOA,CAAP,CAAA,MAAOA,CAAyB,CAUlC1hM,WAAAA,CAAoBq7B,CAA4C,CAAA,CAA5C,IAAAA,CAAAA,qBAAAA,CAAAA,CANV,CAAA,IAAA,CAAAsmK,cAAgB,IAAI/1K,KAMqC,CACnE6P,QAAAA,EAAQ,CACJ,IAAA,CAAKslI,qBAAwB,CAAA,IAAA,CAAK1lI,sBAAsBwnC,4BAA4B,EAAA,CAAG+0B,wBACvF,CAAA,IAAA,CAAKipE,iBAAmB,IAAKxlI,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGyhI,8BACzE,IAAKygC,CAAAA,YAAAA,CAAe,IAAKJ,CAAAA,sBAAAA,CAAyB,EAAM,EAAA,IAAA,CAAKC,kBAAqB,CAAA,GACtF,CACAQ,eAAgB/1L,CAAAA,CAAAA,CAAU,CACtB,IAAA,CAAK81L,aAAc11K,CAAAA,IAAAA,CAAKpgB,CAAK,EACjC,yCAlBS61L,CAAyB5jK,EAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAujK,EAAA,CAAA,CAAA,IAAA,CAAzBH,CAAyBj3K,CAAAA,SAAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA8T,OAAA,CAAA4iK,sBAAAA,CAAA,wBAAAC,CAAAA,kBAAAA,CAAA,qBAAAxe,SAAA,CAAA,WAAA,CAAAxoH,CAAAA,OAAAA,CAAA,CAAAunI,aAAAA,CAAA,eAAA,CAAA,CAAAh3K,WAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,EAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,kDAAA,CAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,0CAAA,CAAA,EAAA,kBAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,gBAAA,QAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,QAAA,gBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6BAAA,eAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,EAAA,CAAA0qB,CAAAA,CAAA,CDXtC7B,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAKyC,GAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA,OAASpzD,CAAAA,CAAA0/L,eAAAtsI,CAAAA,CAAA,CAAuB,CAAA,CAAA,CACjCnoC,EAAA,CAAA,CAAA,CAAA20K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAIsB,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CA6B1B92K,CAAAA,EAAAA,UA7BS+C,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAA0gL,SAAA,CAAA,CAkBA50J,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,CAAA/rB,CAAA0gL,CAAAA,SAAA,CCdK9nH,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAMC,EAAO,CAAA,CAAAvsC,cAAA,CAAA,CAAA,CAErB,CAAA,IAAOkzK,EAAPM,CAAON,CAAAA,OAAAA,CAAyB,CAAA,IAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAO,EAAA,EAAA,CCXtCl3K,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAKIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA,IAAA04D,CAAAA,CAAAtgG,EAAAC,CAAAA,CAAA,CAAAjuB,CAAAA,KAAAA,CAAAyqG,CAAA30C,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASu8E,CAAAo1D,CAAAA,gBAAAA,CAAAjqG,CAAA04D,CAAAA,CAAAA,CAA6B,CAAC,CAAC,CAAA,CAAA,CAAA,CACxCjjG,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAA+E,CAAA,CAAA,KAAA,CAAA,CAAA,CAEvEC,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAUJC,EAAA,EAAA,CAEAF,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAA+B,EAAA,KAAA,CAAA,CAAA,CACH8U,CAAAA,EAAAA,CAAA,CAAA,CAA0E5U,CAAAA,EAAAA,EAClGF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAoB,EAAA,MAAA,CAAA,CAAA,CACkD8U,CAAAA,EAAAA,CAAA,CAAA,CAIhE5U,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,UAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,UAAAA,CAAAA,CAAAA,EAAAA,EACF4U,CAAAA,EAAAA,CAAA,EAAA,CACJ5U,CAAAA,EAAAA,EAAM,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,EAA6B,EAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CACtByC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA,IAAA04D,CAAAA,CAAAtgG,EAAAC,CAAAA,CAAA,CAAAjuB,CAAAA,KAAAA,CAAAyqG,CAAA30C,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASu8E,CAAAs1D,CAAAA,aAAAA,CAAAnqG,EAAA04D,CAA0B,CAAA,CAAC,CAAC,CAAA,CAAA,CAA4BnuF,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAuB5U,EAAA,EAAA,CAC1FD,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,CAAA,CACLC,EAAA,EAAA,EAEJF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CACAD,EAAA,CAAA,EAAA,CAAA,MAAA,CAAM8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAAqiK,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAkEj3K,IAAO,EAAA,GApCnF+jG,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,IAAAA,CAAA,cAAA7kB,CAAAu1D,CAAAA,aAAA,CAAmC,CAAA,OAAA,CAAAv1D,CAAAw1D,CAAAA,SAAA,CAID3xI,CAAAA,EAAAA,GAAAghG,IAAA,CAAA,kBAAA,CAAA7kB,CAAAg4F,CAAAA,iBAAA,CAGtBn0K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,SAAAk8E,CAAAA,CAAAA,CAAA01D,sBAAAC,CAAAA,CAAA,CAAA,CAAA,CAA8C,QAAA,CAAA,EAAA,EACjC,YAAA31D,CAAAA,CAAAA,CAAA41D,yBAAA,CAAA,CAC2B,mBAAA51D,CAAA41D,CAAAA,yBAAA,CACM,CAAA,kBAAA,CAAA,SAAA,CAChB,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CACX,WAAA,CAAA,CAAA,CAAA,CACA,CAAA,OAAA,CAAAD,EAAAE,cAAA,CAAA,CAMChyI,EAAA,CAAA,CAAA,EAAAiyI,EAAA,CAAA,EAAA,CAAA91D,CAAA+1D,CAAAA,MAAAA,CAAA,IAAAJ,CAAAK,CAAAA,UAAAA,CAAA,GAAAh2D,CAAAA,CAAAA,CAAAi2D,sBAAA,CAAA,EAAA,CAEIpyI,CAAAA,EAAAA,CAAA,CAAA,CAAAghG,CAAAA,IAAAA,CAAA,OAAA7kB,CAAAA,CAAAA,CAAA41D,yBAAA,CAA0C/xI,CAAAA,EAAAA,EAAA8R,CAAAA,EAAAA,CAAAggI,EAAAO,cAAA,EAAA,IAAA,CAAAh2E,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAAy1E,CAAAx1G,CAAAA,QAAA,EAAA+/B,EAAA,CAAA,EAAA,CAAA,EAAAy1E,CAAAA,CAAAA,CAAAO,cAAA,CAAA,GAAA,CAAAP,CAAAx1G,CAAAA,QAAA,CAAA,CAKlEt8B,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAA+f,CAAAm2D,CAAAA,eAAAA,CAAA,GAAA,CAIsCtyI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAghG,KAAA,OAAA7kB,CAAAA,CAAAA,CAAAw1D,SAAA,CAAA,CAA0B3xI,IAAA8R,CAAAA,EAAAA,CAAAqqE,CAAAw2D,CAAAA,YAAA,CAI7C3yI,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAghG,KAAA,kBAAA7kB,CAAAA,CAAAA,CAAAi4F,qBAAA,CAAA,CACIp0K,IAAAghG,CAAAA,IAAAA,CAAA,OAAA7kB,CAAAA,CAAAA,CAAAi4F,qBAAA,CACzBp0K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAwyI,EAAA,CAAA,EAAA,CAAAr2D,CAAAs2D,CAAAA,cAAAA,CAAA,IAAA5hI,EAAA,CAAA,EAAA,CAAA,EAAAihI,CAAAA,CAAAA,CAAAY,UAAA,CAAA,CAAA,GAAA,ECvBd,CAAA,CAAA,IAAa2hC,IAA2B,IAAA,CAAlC,IAAOA,CAAAA,CAAP,MAAOA,CAA2B,CAsBpCriM,WAAAA,CACYq7B,EACAmlC,CACAsvB,CAAAA,CAAAA,CACA3iD,CACAqyI,CAAAA,CAAAA,CAA8B,CAJ9B,IAAA,CAAAnkJ,qBAAAA,CAAAA,CAAAA,CACA,KAAAmlC,QAAAA,CAAAA,CAAAA,CACA,IAAAsvB,CAAAA,sBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA3iD,UAAAA,CAAAA,CAAAA,CACA,KAAAqyI,cAAAA,CAAAA,EACT,CACH/jJ,QAAAA,EAAQ,CACJ,IAAKq6I,CAAAA,gBAAAA,CAAmB,IAAK0J,CAAAA,cAAAA,CAAezJ,qBACxC,CAAA,IAAA,CAAK3zG,aACL,GAAA,IAAA,CAAKJ,YAAe,CAAA,IAAA,CAAK8tB,sBAAuBxtB,CAAAA,eAAAA,IAGpD,IAAKu+F,CAAAA,gBAAAA,CAAmB,IAAKxlI,CAAAA,qBAAAA,CAAsBgE,qBAAsByhI,CAAAA,6BAAAA,CACzE,IAAKC,CAAAA,qBAAAA,CAAwB,KAAK1lI,qBAAsBwnC,CAAAA,4BAAAA,EAA+B+0B,CAAAA,wBAAAA,CACvF,IAAKipE,CAAAA,gBAAAA,CAAmB,IAAKxlI,CAAAA,qBAAAA,CAAsBgE,qBAAsBsrB,CAAAA,mBAAAA,CAAoBm2G,6BAC7F,CAAA,IAAA,CAAKV,uBAAyB,IAAK/kI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,wBAAwBZ,sBAChH,CAAA,IAAA,CAAKE,eAAkB,CAAA,IAAA,CAAKjlI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBV,gBACzG,IAAKJ,CAAAA,MAAAA,CAAS,IAAK7kI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBd,CAAAA,MAAAA,CAChG,KAAKO,cAAiB,CAAA,IAAA,CAAKplI,qBAAsBwnC,CAAAA,4BAAAA,EAA+Bm+F,CAAAA,uBAAAA,CAAwBP,cACxG,CAAA,IAAA,CAAK0hC,kBAAoB,IAAK9mK,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,wBAAwBmhC,iBAC3G,CAAA,IAAA,CAAKC,qBAAwB,CAAA,IAAA,CAAK/mK,sBAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBohC,CAAAA,qBAAAA,CAC/G,IAAKriC,CAAAA,yBAAAA,CAA4B,IAAK1kI,CAAAA,qBAAAA,CAAsBwnC,8BAA+Bm+F,CAAAA,uBAAAA,CAAwBjB,yBACnH,CAAA,IAAA,CAAKL,aAAgB,CAAA,IAAA,CAAKrkI,qBAAsBwnC,CAAAA,4BAAAA,GAA+Bm+F,uBAAwBtB,CAAAA,aAAAA,CACvG,IAAKiB,CAAAA,YAAAA,CAAe,IAAKtlI,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAAGm+F,wBAAwBL,YACtG,CAAA,IAAA,CAAKhB,SAAY,CAAA,IAAA,CAAKtkI,sBAAsBwnC,4BAA4B,EAAA,CAAGm+F,uBAAwBrB,CAAAA,UACvG,CACAJ,gBAAiB1zJ,CAAAA,CAAAA,CAAYo1J,CAAuB,CAAA,CAChD,IAAKC,CAAAA,eAAAA,CAAgBr1J,CAAOo1J,CAAAA,CAAAA,CAAiB,gBAAgB,EACjE,CACAC,eAAgBr1J,CAAAA,CAAAA,CAAYo1J,CAAyBE,CAAAA,CAAAA,CAAiB,CAClE,IAAMC,EAAa,IAAKh/F,CAAAA,aAAAA,CAAc6+F,CAAkB,CAAA,CAAC,CACzDp1J,CAAAA,CAAAA,CAAM0iH,eAAe,EAAA,CACrB,KAAK/tD,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,SAC3B,CAAA,sBAAA,CAAwB,wBACxB,CAAA,uBAAA,CAAyB,QACzB,yBAA2B,CAAA,WAAA,CAAc8qH,CACzC,CAAA,yBAAA,CAA2B,IAAK6U,CAAAA,gBAAAA,CAAiBwsB,qBAAqB,EAAA,CACtE,yBAA0BnhC,CAC1B,CAAA,sBAAA,CAAwBC,CAAW7/F,CAAAA,WAAAA,CACtC,EACD,IAAK8/F,CAAAA,wBAAAA,EACL,CAAA,IAAA,CAAKl0H,WAAW0D,IAAKuwH,CAAAA,CAAAA,EAAY7/F,WAAW,EAChD,CACOk+F,aAAAA,CAAc5zJ,CAAYo1J,CAAAA,CAAAA,CAAuB,CACpD,IAAKC,CAAAA,eAAAA,CAAgBr1J,CAAOo1J,CAAAA,CAAAA,CAAiB,eAAe,EAChE,CACAI,wBAAwB,EAAA,CACpB,IAAMC,CAAyB,CAAA,CAC3BC,YAAc,CAAA,CAAA,CAAA,CAAA,CAElB,IAAKuU,CAAAA,gBAAAA,CAAiBysB,oBAAqBjhC,CAAAA,CAAiB,EAC5D,IAAKxxE,CAAAA,sBAAAA,CAAuBtsB,qBAAqB,GACrD,CACOq8F,sBAAAA,CAAuBuB,CAAe,CAAA,CACzC,YAAKI,aAAiBJ,CAAAA,CAAAA,CAAWpB,cAAiBoB,CAAAA,CAAAA,CAAWjB,UAAc,CAAA,GAAA,CACpE,IAAKqB,CAAAA,aAChB,yCAhFS6gC,CAA2BvkK,EAAAA,GAAAA,CAAAQ,GAAA,CAAA,CAAAR,IAAAmmC,IAAA,CAAA,CAAAnmC,GAAAyiC,CAAAA,IAAA,EAAAziC,GAAA0M,CAAAA,EAAA,CAAA1M,CAAAA,GAAAA,CAAA83I,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAisB,EAAA,CAAA,CAAA,IAAA,CAA3BQ,EAA2B53K,SAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAA6jC,aAAAA,CAAA,eAAA,CAAAz3C,CAAAA,UAAAA,CAAA,CAAAmR,CAAAA,CAAAA,QAAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,aAAA,CAAA,QAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,QAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,QAAA,CAAA,aAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,CDfxCO,EAAAA,EAAAA,CAAA,CAAAq1K,CAAAA,EAAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAI2Bv0K,EAAA,CAAA,SAAA,CAAA/rB,CAAAkgE,CAAAA,aAAA,kBCSbi6B,EAAOslE,CAAAA,IAAAA,CAAsBC,IAAEC,CAAAA,EAAAA,CAAc5oB,EAAkB,CAAA,CAAAzqH,aAAA,CAAA,CAAA,CAAA,CAEvE,CAAA,IAAO6zK,CAAPI,CAAAA,CAAAA,CAAAA,OAAOJ,CAA2B,CAAA,GAAA,CAAA,IAAA,EAAA,CAAA,CAAA,GAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GCR5Bt3K,EAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAuH8U,EAAA,CAAA,CAAA,CAErH5U,CAAAA,EAAAA,EAFiF2vC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAuvC,EAAA4+D,SAAA25B,CAAAA,CAAAA,CAAAn0M,GAAAy/H,CAAAA,CAAA,CAAA,CAAA,CAAoChgG,EAAA,EAAA,CAAA8R,GAAA4iK,CAAA1xM,CAAAA,KAAA,EAL3H+5B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAKIoC,GAAA,CAAAw1K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAGJ13K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAPI4pB,GAAA,QAAA,CAAA,CAAAk8E,CAAA++D,CAAAA,qBAAA,CAAiC,CAAA,SAAA,CAAAj0G,EAAA,CAAA,CAAA,CAAAF,GAAAo1C,CAAAg/D,CAAAA,eAAA,CAAA,CAAA,CAIsBn7I,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAk8E,EAAAssC,QAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAN/D1rH,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAy1K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EASJ33K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CANS2pB,EAAA,EAAA,CAAAC,GAAA,MAAAk8E,CAAAA,CAAAA,CAAAssC,QAAAtsC,EAAAA,CAAAA,CAAAssC,QAAA3tI,CAAAA,MAAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAaDiiB,GAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAII8U,GAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADnB4pB,GAAA,SAAAo7I,CAAAA,EAAAA,CAAA,CAAAn0G,CAAAA,EAAAA,CAAA,CAAAi1C,CAAAA,CAAAz6D,OAAAk2H,CAAAA,CAAAA,CAAA,IAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CACA53I,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAA4+E,CAAAh4K,CAAAA,KAAAA,CAAA,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GATR+5B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAKIoC,EAAA,CAAA,CAAA,CAAA01K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAMJ53K,IAVIgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,QAAA,CAAA,CAAAk8E,CAAA++D,CAAAA,qBAAA,CAAiC,CAAA,SAAA,CAAAj0G,GAAA,CAAAF,CAAAA,EAAAA,CAAAo1C,CAAAg/D,CAAAA,eAAA,CAAA,CAMTn7I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAk8E,CAAAssC,CAAAA,QAAA,EAP5BtpH,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA21K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAz+L,EAAA,CAAA,CAAA,CAAA,CAGK4pB,EAAA,CAAA,MAAA,CAAAk8E,EAAAssC,QAAAtsC,EAAAA,CAAAA,CAAAssC,QAAA3tI,CAAAA,MAAAA,CAAA,CAAA,EAgBDkiB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CAAK4pB,EAAA,CAAA,KAAA,CAAAk8E,EAAA71C,OAAAC,CAAAA,EAAA,EACLvpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAKiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAk8E,CAAA31C,CAAAA,YAAAA,CAAAD,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAFTxpC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACIoC,EAAA,CAAA,CAAA,CAAA41K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyD,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAE7D/3K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAF0B2pB,IAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAAk8E,EAAAx1C,wBAAA,CAAA,CACK3mC,EAAA,EAAA,CAAAC,GAAA,MAAAk8E,CAAAA,CAAAA,CAAAx1C,wBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAPnC5pC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAKIoC,EAAA,CAAA,CAAA,CAAA81K,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAIAl4K,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAA4E8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAyB5U,EAAA,EAAA,qBANrGgD,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,CAAA,CAAAw4B,GAAA0c,CAAAn1C,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAm1C,EAAAn1C,cAAA3L,CAAAA,SAAA,CAAA,CAAA,CAAqD,SAAA4L,CAAAA,EAAAA,CAAA,CAAA44B,CAAAA,EAAAA,CAAAsc,EAAA2+D,WAAA,CAAA,CAEpB96I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAk8E,CAAAA,CAAAA,CAAA/hD,mBAAA+hD,CAAA/0C,CAAAA,aAAA,CAIRpnC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,SAAAgnC,CAAAA,EAAAA,CAAA,EAAAsxH,EAAAp8E,CAAAA,CAAAA,CAAAn1C,cAAA,EAAA,IAAA,CAAA,KAAAm1C,CAAAn1C,CAAAA,cAAAA,CAAA1L,WAAA,CAAA,EAAmDt7B,EAAA,EAAA,CAAA8R,EAAAqqE,CAAAA,CAAAA,CAAAjhD,YAAAf,CAAAA,MAAA,EAnCpFp9B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAA+1K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAuD,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,EAAA71K,EAAA,CAAA,CAW1B,CAAA81K,CAAAA,EAAAA,CAAA,EAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAyBjCn4K,IArCgEgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,SAAAgnC,CAAAA,EAAAA,CAAA,CAAA0F,CAAAA,EAAAA,CAAAwvC,CAAA2+D,CAAAA,WAAA,CAAA,CACrD96I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAk8E,CAAAA,CAAAA,CAAA4gE,mBAAA,CAAA,CAA2B,WAAAs4B,CAAA,CAAA,CA2B7Br1K,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAAk8E,CAAAA,CAAAA,CAAA2gE,2BAAA3gE,CAAAjhD,CAAAA,YAAA,ECjBT,CAAA,CAAA,IAAao6I,IAAwB,IAAA,CAA/B,IAAOA,CAAAA,CAAP,MAAOA,CAAwB,CAqBjCtjM,WACYs6C,CAAAA,CAAAA,CACAjf,CACAu7B,CAAAA,CAAAA,CAAsC,CAFtC,IAAA,CAAAtc,cAAAA,CACA,CAAA,IAAA,CAAAjf,qBAAAA,CAAAA,CAAAA,CACA,KAAAu7B,kBAAAA,CAAAA,CAAAA,CAvBZ,IAAAsyG,CAAAA,qBAAAA,CAAiC,GACjC,IAAA4B,CAAAA,yBAAAA,CAAqC,CAC5B,CAAA,CAAA,IAAA,CAAAhC,WAAuB,CAAA,CAAA,CAAA,CACvB,IAAAryB,CAAAA,QAAAA,CAAgB,EAChB,CAAA,IAAA,CAAA0yB,eAA2B,CAAA,CAAA,CAAA,CAE3B,KAAAjgH,YAAoB,CAAA,IAAA,CACpB,IAAAd,CAAAA,iBAAAA,CAA6B,GAC7B,IAAAjZ,CAAAA,SAAAA,CAAoB,EAE7B,CAAA,IAAA,CAAAimB,aAAyB,CAAA,CAAA,CAAA,CAKzB,IAAAs4G,CAAAA,UAAAA,CAAkB,GASf,CACHjyI,QAAQ,EAAA,CACJ,IAAIK,CAAAA,CAAW,IAAKT,CAAAA,qBAAAA,CAAsBU,uBAC1C,CAAA,IAAA,CAAKkjF,YAAe,CAAA,IAAA,CAAK5jF,qBAAsBgE,CAAAA,mBAAAA,EAC/C,CAAA,IAAA,CAAK0rI,oBAAsBjvI,CAASivI,CAAAA,mBAAAA,CACpC,IAAInkI,CAAAA,CAAa,KAAKvL,qBAAsBwL,CAAAA,iBAAAA,EACxCswB,CAAAA,CAAAA,CAAoB,KAAK97B,qBAAsB+7B,CAAAA,0BAAAA,EACnD,CAAA,IAAA,CAAKzC,wBAA2BwC,CAAAA,CAAAA,CAAaxC,wBAC7C,CAAA,IAAA,CAAKu0G,sBAAwB,IAAK5uH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,UAAWrT,CAAS01I,CAAAA,qBAAqB,CAC3H,CAAA,IAAA,CAAK1G,0BAA4B,IAAKxwH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKjC,SAAWrT,CAAAA,CAAAA,CAAS21I,yBAAyB,CAAA,CACnI,KAAKr8G,aAAgB,CAAA,IAAA,CAAK9a,aAAclJ,CAAAA,4BAAAA,CAA6B,KAAKjC,SAAWrT,CAAAA,CAAAA,CAASs5B,aAAa,CAAA,CAC3G,KAAKd,OAAU1tB,CAAAA,CAAAA,CAAWZ,IAAOlK,CAAAA,CAAAA,CAASw8B,WAAYhE,CAAAA,OAAAA,CACtD,IAAKE,CAAAA,YAAAA,CAAe5tB,EAAWZ,IAAOlK,CAAAA,CAAAA,CAASw8B,WAAY9D,CAAAA,YAAAA,CACvD,IAAKtL,CAAAA,YAAAA,EACL,IAAK+kH,CAAAA,eAAAA,GAEb,CAaAA,eAAAA,EAAe,CACc,IAAA,CAAK5yI,qBAAsBkX,CAAAA,oBAAAA,EAAuBsnB,CAAAA,kBAAAA,GAEvE,KAAK7E,cAAiB,CAAA,IAAA,CAAK4B,kBAAmB3N,CAAAA,sBAAAA,CAAuB,KAAKC,YAAY,CAAA,EAE9F,CACA6/G,SAAAA,CAAUtjG,EAAc/lE,CAAa,CAAA,CACjC,OAAKguK,IAAAA,CAAAA,UAAAA,CAAa5lH,MAAO55D,CAAAA,IAAAA,CAAK,IAAK+wH,CAAAA,YAAAA,CAAaoxD,aAAa,CACzD,CAAA,IAAA,CAAK3C,UAAW15G,CAAAA,QAAAA,CAASyR,CAAO,CAChC,CAAA,IAAA,CAAK4qG,aAAgB,CAAA,IAAA,CAAKpxD,aAAaoxD,aAAc5qG,CAAAA,CAAO,CACrD,CAAA,IAAA,CAAK0jG,eACR,CAAA,CAAC,IAAKuE,CAAAA,UAAAA,CAAW15G,SAASyR,CAAO,CAAA,EAAK/lE,CAAQ,CAAA,CAAA,GAAM,EACpD,IAAK2wK,CAAAA,aAAAA,CAAgB,IAAKpxD,CAAAA,YAAAA,CAAaoxD,cAAcb,eAErD,CAAA,IAAA,CAAKa,aAAgB,CAAA,IAAA,CAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcV,eAGzD,CAAA,IAAA,CAAKU,cAAgB,IAAKpxD,CAAAA,YAAAA,CAAaoxD,aAAcR,CAAAA,gBAAAA,CAElD,IAAKQ,CAAAA,aAChB,CA1ESizB,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAwBxlK,IAAAyI,EAAA,CAAA,CAAAzI,GAAAQ,CAAAA,GAAA,CAAAR,CAAAA,GAAAA,CAAA0nB,EAAA,CAAA,CAAA,CAAxB89I,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAwB74K,SAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA8T,CAAAA,MAAAA,CAAA,CAAAuqI,WAAA,CAAA,aAAA,CAAAryB,QAAA,CAAA,UAAA,CAAA0yB,eAAA,CAAA,iBAAA,CAAAz5H,OAAA,CAAA,SAAA,CAAAwZ,aAAA,cAAAd,CAAAA,iBAAAA,CAAA,mBAAAjZ,CAAAA,SAAAA,CAAA,WAAA,CAAA,CAAAxkB,UAAA,CAAA,CAAA,CAAA,CAAAmR,SAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,CAAAC,CAAAA,IAAAA,CAAA,CAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,EAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,SAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,0BAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,yBAAA,CAAA,EAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,EAAA,CDXrCO,EAAAA,EAAAA,CAAA,CAAAo2K,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAMt1K,GAAA,MAAA/rB,CAAAA,CAAAA,CAAAgnK,qBAAAhnK,EAAAA,CAAAA,CAAA4oK,yBAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCSQhwG,EAAMC,CAAAA,EAAAA,CAASshC,GAAOxhC,EAAO,CAAA,CAAArsC,aAAA,CAAA,CAAA,CAAA,CAErC,CAAA,IAAO80K,CAAPE,CAAAA,CAAAA,CAAAA,OAAOF,CAAwB,CAAA,GAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GCJjBv4K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAyD,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACnB,CAAA,CAAA,KAAA,CAAA,EAAA,CAE1BC,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAyB8U,GAAA,CAAA,CAAA,CAAAqiK,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAmCj3K,EAAA,EAAA,EAC1D,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAHO2pB,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,KAAA,CAAAomC,CAAAC,CAAAA,OAAAA,CAAAC,EAAA,CAAA,CAEgBvmC,EAAA,CAAA,CAAA,EAAA8R,EAAAjB,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAAw1B,EAAAt5B,IAAAm8B,CAAAA,WAAA,CAAA,EAAA,CAAA,CCWrD,IAAausI,EAA4B,CAAA,CAAA,IAAA,CAAnC,IAAOA,CAAP,CAAA,MAAOA,CAA4B,CAYrCzjM,YACW86B,CACCE,CAAAA,CAAAA,CACAE,CACAikG,CAAAA,CAAAA,CACAl+E,EACAw9D,CACAhoD,CAAAA,CAAAA,CACwB17B,CACxBM,CAAAA,CAAAA,CACAu8C,EACA5qC,EACAk3H,CAAAA,EAAAA,CAAsD,CAXvD,IAAA,CAAAppI,SAAAA,CAAAA,CAAAA,CACC,IAAAE,CAAAA,IAAAA,CAAAA,EACA,IAAAE,CAAAA,SAAAA,CAAAA,CACA,CAAA,IAAA,CAAAikG,uBAAAA,CACA,CAAA,IAAA,CAAAl+E,qBAAAA,CAAAA,CAAAA,CACA,KAAAw9D,WAAAA,CAAAA,CAAAA,CACA,IAAAhoD,CAAAA,gBAAAA,CAAAA,CACwB,CAAA,IAAA,CAAA17B,IAAAA,CAAAA,CAAAA,CACxB,KAAAM,qBAAAA,CAAAA,CAAAA,CACA,IAAAu8C,CAAAA,oBAAAA,CAAAA,CACA,CAAA,IAAA,CAAA5qC,mBAAAA,CAAAA,EAAAA,CACA,KAAAk3H,0BAAAA,CAAAA,EAAAA,CAvBL,IAAA5vG,CAAAA,OAAAA,CAAU,sFACV,CAAA,IAAA,CAAAi2B,cAAyB,CAAA,kBAAA,CACzB,KAAAC,gBAA2B,CAAA,gBAAA,CAC3B,IAAApxC,CAAAA,WAAAA,CAAc,GAOrB,IAAAsqH,CAAAA,QAAAA,CAAoB,CAehB,CAAA,CAAA,IAAA,CAAKkN,WACT,CAEAn1I,QAAQ,EAAA,CACA,IAAKV,CAAAA,IAAAA,CAAKyoB,aACV,GAAA,IAAA,CAAKkgJ,aAAe,IAAK9rH,CAAAA,oBAAAA,CAAqBx4B,eAAgB,CAAA,IAAA,CAAKrkB,IAAK6jB,CAAAA,IAAAA,CAAK7F,MAAOpc,CAAAA,OAAAA,CAAQ,cAAe,EAAE,CAAA,CAAEgnK,iBAAiB,EAAE,CAC9H,CAAA,IAAA,CAAKD,YACL,GAAA,IAAA,CAAKE,qBAAqB,IAAKF,CAAAA,YAAY,CAC3C,CAAA,IAAA,CAAK3oK,KAAK6jB,IAAKxF,CAAAA,WAAAA,CAAc,IAAKw+B,CAAAA,oBAAAA,CAAqBn4B,sBAAsB,CAAEE,UAAAA,CAAY,CAAO7a,CAAAA,CAAAA,MAAAA,CAAQ,IAAK/J,CAAAA,IAAAA,CAAK6jB,IAAK7F,CAAAA,MAAM,CAAE,CAGzI,CAAA,CAAA,CAAA,IAAMjsD,CAAc,CAAA,IAAA,CAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EAE3CvyC,CAAAA,CAAAA,CAAAA,CAAO69D,oBAAoB6nC,cAAmB,GAAA,MAAA,EAC9C1lG,CAAO69D,CAAAA,mBAAAA,CAAoB6nC,cAAmB,GAAA,MAAA,EAC9C1lG,CAAO69D,CAAAA,mBAAAA,CAAoB6nC,iBAAmB,MAE9C,IAAA,IAAA,CAAKjI,cAAiB,CAAA,mBAAA,CACtB,KAAKC,gBAAmB,CAAA,qBAAA,CAAA,CAE5B,IAAKuP,CAAAA,aAAAA,CAAgB,KAAKh/D,IAAKg/D,CAAAA,aAAAA,CAC3B98D,QAASq8D,CAAAA,aAAAA,CAAc,qBAAqB,CAAA,GAC3Cr8D,QAASq8D,CAAAA,aAAAA,CAAc,qBAAqB,CAAkBx2D,CAAAA,KAAAA,CAAM2sI,OAAU3iL,CAAAA,CAAAA,CAAO2yC,SAASwgJ,eAEnG,CAAA,CAAA,IAAA,CAAKvc,QAAW,CAAA,CAAC,KAAKQ,0BAA2BttH,CAAAA,SAAAA,GACrD,CAEAgtJ,oBAAqBC,CAAAA,CAAAA,CAAiB,CAClC,IAAA,CAAK9oK,KAAK+oK,SAAYD,CAAAA,CAAAA,CAAavwM,IACnC,CAAA,IAAA,CAAKynC,KAAKgpK,eAAkBF,CAAAA,CAAAA,CAAa1kJ,YAAaypB,CAAAA,WAAAA,CACtD,KAAK7tC,IAAK8C,CAAAA,GAAAA,CAAMgmK,CAAa1kJ,CAAAA,YAAAA,CAAaJ,YAAalhB,CAAAA,GAAAA,CACvD,IAAK9C,CAAAA,IAAAA,CAAKm8B,YAAc2sI,CAAaG,CAAAA,QACzC,CAC+BvrI,QAAAA,EAAQ,CACnC,IAAA,CAAKm4G,QAAQ,GACjB,CAEAA,QAAQ,EAAA,CACA,IAAK11I,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,UAAa,CAAA,GAAA,CAChD,KAAKlkI,KAAQ,CAAA,GAAA,CACN,IAAK7R,CAAAA,SAAAA,CAAU6B,aAAa28D,MAAOu3E,CAAAA,UAAAA,CAAa,IAAK/1I,CAAAA,SAAAA,CAAU6B,aAAa28D,MAAOw3E,CAAAA,WAAAA,CAC1F,IAAKnkI,CAAAA,KAAAA,CAAQ,IAAK7R,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,WAC/C,IAAKlkI,CAAAA,KAAAA,CAAQ,IAAK7R,CAAAA,SAAAA,CAAU6B,aAAa28D,MAAOw3E,CAAAA,WAAAA,CACrD,IAAK3C,CAAAA,QAAAA,CAAW,KAAKxhI,KACrB,CAAA,IAAA,CAAKyhI,WAAc,CAAA,IAAA,CAAKD,QAAW,CAAA,IACvC,CACA01B,UAAAA,EAAU,CACNhnK,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUnY,MAAO,CAAA,uBAAuB,EACjFuT,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,SAAUnY,CAAAA,MAAAA,CAAO,wBAAwB,CAClF,CAAA,IAAA,CAAKoR,SAAUU,CAAAA,KAAAA,EACXyB,CAAAA,QAAAA,CAASq8D,aAAc,CAAA,wBAAwB,IAC9Cr8D,QAASq8D,CAAAA,aAAAA,CAAc,wBAAwB,CAAA,CAAkBna,SAAY,CAAA,EAAA,EAEtF,CAEA6iB,UAAAA,EAAU,CAEN,GADA,IAAA,CAAKiiG,UAAU,EAAA,CACX,KAAKlpK,IAAKyoB,CAAAA,aAAAA,CAAe,CACzB,IAAM6N,EAAe,CACjBsX,QAAAA,CAAU,IAAK5tC,CAAAA,IAAAA,CAAK4tC,QACpBjL,CAAAA,OAAAA,CAAS,IAAK3iC,CAAAA,IAAAA,CAAK2iC,QACnB66D,cAAgB,CAAA,IAAA,CAAKx9F,IAAKw9F,CAAAA,cAAAA,CAC1BD,sBAAuB,IAAKv9F,CAAAA,IAAAA,CAAKu9F,qBAErC,CAAA,CAAA,IAAA,CAAK6G,uBAAuB3G,kBACxB,CAAA,IAAA,CAAKkrE,YAAapwM,CAAAA,IAAAA,CAClB,OACA,CAAA,IAAA,CAAKowM,YAAaQ,CAAAA,UAAAA,CAClB,OACA,IAAKR,CAAAA,YAAAA,CAAavkJ,YAAaJ,CAAAA,YAAAA,CAAalhB,IAC5C,IAAK6lK,CAAAA,YAAAA,CAAavjL,EAClB,CAAA,CAAA,CAAA,CACA,GACAkxC,CAAO,EAEf,CACJ,CAEAsE,eAAgB/W,CAAAA,CAAAA,CAAS,CACrB,IAAMz+B,EAAK,IAAKujL,CAAAA,YAAAA,CAAavjL,EAC7B,CAAA,GAAK,IAAK6a,CAAAA,IAAAA,CAAKkR,eAQP0S,CAAAA,CAAAA,CAAKxF,aACL,IAAKre,CAAAA,IAAAA,CAAK6jB,IAAKxF,CAAAA,WAAAA,CAAc,CAC7B,CAAA,CAAA,IAAA,CAAK6H,qBAAsB3H,CAAAA,eAAAA,CAAgBn5B,EAAI,IAAK6a,CAAAA,IAAAA,CAAK7a,EAAK,CAAA,IAAA,CAAK6a,KAAK7a,EAAK,CAAA,EAAE,CAAEkG,CAAAA,SAAAA,CAC5E+2B,GAAiB,CACd,GAAIA,CAAS9sD,CAAAA,MAAAA,CAAQ,CACjB,IAAMggB,CAAU,CAAA,CACZ85B,WAAY,YACZiV,CAAAA,MAAAA,CAAQl/B,CACRi5B,CAAAA,WAAAA,CAAa,CAEjB,CAAA,CAAA,CAAA,IAAA,CAAKpM,mBAAoB9D,CAAAA,mBAAAA,CAAoB,aAAc54B,CAAO,CAAA,CAClE,IAAKmmD,CAAAA,gBAAAA,CAAiBhU,sBAAuB,CAAA,CAAA,CAAA,CAAOtiC,CAAE,CAAA,CACtD,KAAKy3D,oBAAqB36B,CAAAA,YAAAA,CAAa,CAAO,CAAA,CAAA,CAAA,CAAK,EACvD,CACJ,CAAA,CACA,IAAK,EAAG,CAGZ,GAAA,IAAA,CAAKliB,IAAK6jB,CAAAA,IAAAA,CAAKxF,WAAc,CAAA,CAAA,CAAA,CAC7B,IAAK6H,CAAAA,qBAAAA,CAAsBnI,aAAa34B,CAAI,CAAA,IAAA,CAAK6a,IAAK7a,CAAAA,EAAAA,CAAK,IAAK6a,CAAAA,IAAAA,CAAK7a,EAAK,CAAA,EAAE,EAAEkG,SACzE+2B,CAAAA,CAAAA,EAAiB,CACd,GAAIA,CAAS9sD,CAAAA,MAAAA,CAAQ,CACjB,IAAA,CAAKmmE,iBAAiBhU,sBAAuB,CAAA,CAAA,CAAA,CAAMtiC,CAAE,CAAA,CACrD,IAAM7P,CAAU,CAAA,CACZ85B,UAAY,CAAA,YAAA,CACZiV,OAAQl/B,CACRi5B,CAAAA,WAAAA,CAAa,CAEjB,CAAA,CAAA,CAAA,IAAA,CAAKpM,mBAAoB9D,CAAAA,mBAAAA,CAAoB,YAAc54B,CAAAA,CAAO,EAClE,IAAKsnE,CAAAA,oBAAAA,CAAqB36B,YAAa,CAAA,CAAA,CAAA,CAAO,EAAK,EACvD,CACJ,CACA,CAAA,IAAK,EAAG,CAAA,CAAA,CAAA,KAxCY,CAC5B,IAAA,CAAKgnJ,UAAU,EAAA,CAEf,IAAMl9E,CAAAA,CAAwB,CAC1B1uB,eAAiB,CAAA,WAAA,CAAA,CAErB,IAAKomB,CAAAA,WAAAA,CAAY3wD,KAAKi5D,CAAgB,EAC1C,CAqCJ,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAtJS08E,GAA4B3lK,GAAAC,CAAAA,EAAA,CAAAD,CAAAA,GAAAA,CAAAG,GAAA,CAAA,CAAAH,GAAAK,CAAAA,GAAA,EAAAL,GAAA85F,CAAAA,EAAA,CAAA95F,CAAAA,GAAAA,CAAA0a,EAAA,CAAA,CAAA1a,GAAA84C,CAAAA,IAAA,EAAA94C,GAAAgjB,CAAAA,IAAA,CAAAhjB,CAAAA,GAAAA,CAoBzBE,EAAe,CAAA,CAAAF,GAAAQ,CAAAA,GAAA,EAAAR,GAAA0e,CAAAA,EAAA,CAAA1e,CAAAA,GAAAA,CAAAqK,EAAA,CAAArK,CAAAA,GAAAA,CAAA2gG,EAAA,CAAA,CAAA,CApBlBglE,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAA4Bh5K,SAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAAsxE,aAAA,SAAAnvE,CAAAA,CAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EAA5BY,EAAA,CAAA,QAAA,CAAA,UAAA,CAAA,OAAAtrB,CAAAu2D,CAAAA,QAAAA,EAAU,CAAA,CAAA,CAAA6B,CAAAA,CAAAA,EAAA,83BDvBvBvvC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAyC,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACLyC,GAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAA+hM,CAAAA,UAAAA,EAAY,CAAA,EAAEh5K,EAAA,EAAA,CACvDF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAkD,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CACf,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACW,CAAA,CAAA,KAAA,CAAA,CAAA,CAE9BC,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACAmC,CAAAA,EAAAA,CAAA,CAAAg3K,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAQAp5K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACAD,GAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACIyC,GAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAyzD,CAAAA,eAAAA,CAAAzzD,CAAA64B,CAAAA,IAAAA,CAAA6jB,IAAA,CAA0B,CAAA,CAEmC3zB,CAAAA,EAAAA,IACxE,EAAA,CAEVF,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAAiG,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAC7ByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAA+hM,CAAAA,UAAAA,EAAY,CAAA,CAAEh5K,CAAAA,EAAAA,IAE3FD,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACJC,EAAA,EAAA,CACAF,GAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAsB,GAAA,KAAA,CAAA,EAAA,CACW8U,CAAAA,EAAAA,CAAA,EAAA,CAAoB5U,CAAAA,EAAAA,EACjDD,CAAAA,EAAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CACJC,IACAF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAoE,EAAA,CAAA,iBAAA,CAAA,EAAA,CAI5DyC,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAA8/F,CAAAA,UAAAA,EAAY,CAAA,CAAA,CAGzB/2E,EAAA,EAAA,IAEF,EAAA,EAnCW+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAAz4J,CAAAA,CAAAA,CAAA64B,IAAA8C,CAAAA,GAAAA,CAAA02B,EAAA,CAAA,CAAqBomG,GAAA,KAAAz4J,CAAAA,CAAAA,CAAA64B,IAAA+oK,CAAAA,SAAA,CACpB91K,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAA64B,CAAAA,IAAAA,CAAAm8B,WAAA,CAAA,CAaElpC,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,UAAA/rB,CAAA64B,CAAAA,IAAAA,CAAA6jB,IAAAxF,CAAAA,WAAAA,CAAAl3C,EAAAqoF,cAAAroF,CAAAA,CAAAA,CAAAsoF,gBAAA,CAAA,CAGsDx8D,IAAAghG,CAAAA,IAAAA,CAAA,OAAA9sH,CAAAA,CAAAA,CAAAssK,WAAA,CAAA,IAAA,CAMrCxgJ,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAA59B,CAAA64B,CAAAA,IAAAA,CAAA+oK,SAAA,CACD91K,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,YAAA/rB,CAAA64B,CAAAA,IAAAA,CAAAgpK,eAAA92G,CAAAA,EAAA,CAEKj/D,CAAAA,EAAAA,EAAAghG,CAAAA,IAAAA,CAAA,QAAA9sH,CAAAssK,CAAAA,WAAAA,CAAA,IAAA,CAAA,CAE7BxgJ,IAAAC,CAAAA,EAAAA,CAAA,UAAA/rB,CAAAA,CAAAA,CAAAwhK,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,kBAAA,CAAA,4BAAA,CAE+B,CAAA,UAAA,CAAA7kI,GAAA,EAAA,CAAA,EAAA,CAAA38B,CAAA64B,CAAAA,IAAAA,CAAAowI,GAAA,CAAA,CChBvDrwG,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CAAMC,GAASy1G,EAAe3O,CAAAA,GAAAA,CAAc2D,IAAsBC,CAAAA,IAAuB,CAAAj3I,CAAAA,aAAAA,CAAA,CAAA,CAAA,EAEjG,IAAOi1K,CAAAA,CAAPW,CAAOX,CAAAA,OAAAA,CAA4B,ICfrB14K,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,6BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAtF,CAAAA,eAAAA,CAAAsF,EAAAvb,IAAA4V,CAAAA,CAAA,CAA6B,CAAA,CAAA,CAEgCrqC,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAA5E2pB,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAAqnC,CAAAA,eAAAA,CAAArnC,CAAAvb,CAAAA,IAAA,EAAAub,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,EAZxBz/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAiE,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAC9ByC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,GAASqtC,CAAA8uG,CAAAA,QAAAA,CAAAz0G,CAAA,CAAgB,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,GAC1DF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAA6D,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAC7B8U,GAAA,CAAA,CAAA,CAAe5U,EAAA,EAAA,CAC3CF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAqC,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACJ,EAAA,KAAA,CAAA,EAAA,CACWyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,GAAA,OAAA5nC,EAAAA,CAASqtC,CAAAy/F,CAAAA,eAAAA,EAAiB,CAAA,CAAA,CAAA,CAA9DzvI,IACAkC,CAAAA,EAAAA,CAAA,CAAAk3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAOJp5K,EAAA,EAAA,CACAF,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAsE,EAAA,CAAA,KAAA,CAAA,EAAA,CAC7B8U,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAkB5U,EAAA,EAAA,CACvDF,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAAgC8U,EAAA,CAAA,EAAA,CAA0B5U,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,EAC1DF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAA0D,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAQlDyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAC,CAAAA,CAAA,EAAA,IAAAstC,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,UAAA/mC,CAAAA,CAAAA,CAAAvb,IAAiB,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,EAAkB,EAAA,EAGhED,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,EAAM,EAAA,GA5BuB+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAghG,KAAA,OAAA/zD,CAAAA,CAAAA,CAAAszG,QAAA,CAAA,IAAA,EACDvgJ,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,EAAAmnD,SAAA,CAAA,CAGfp0F,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAA4vG,mBAAAt2G,EAAA,CAAA,CAA2DomG,EAAA,CAAA,KAAA,CAAA1/F,EAAAmnD,SAAA,CAAA,CAC1Dp0F,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAApF,iBAAA,CAAA,CAQ6B7nC,EAAA,EAAA,CAAAghG,IAAA,CAAA,OAAA,CAAA/zD,EAAAuzG,WAAA,CAAA,IAAA,CACExgJ,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAA++F,CAAAA,YAAA,EACLhsI,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAjB,EAAA,CAAA,EAAA,CAAA,EAAAo8B,CAAAA,CAAAA,CAAAsK,QAAA,CAAA,CAAA,CACLv3C,EAAA,CAAA,CAAA,CAAAghG,CAAAA,IAAAA,CAAA,OAAA/zD,CAAAA,CAAAA,CAAAuzG,YAAA,IAAA,CAAA,CAInBxgJ,EAAA,EAAA,CAAAC,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,EAAqB,MAAA,CAAA,SAAA,CACH,CAAA,kBAAA,CAAA,oBAAA,CACuB,CAAA,UAAA,CAAAzoG,CAAAkwG,CAAAA,GAAA,wCA0B7CpgJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACAD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAyoC,CAAAA,CAAA,CAAA,CAAA,IAAA8E,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,KAAA4V,CAAA,CAA6B,CAAA,CAAA,EAEsBrqC,EAAA,EAAA,GAA5D+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,EAAA7hB,WAAA6hB,CAAAA,CAAAA,CAAAsvB,cAAAtvB,CAAAA,CAAAA,CAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAMRz/D,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,qBADS+C,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,EAAAyuG,UAAAn1G,CAAAA,EAAA,CAAuBomG,CAAAA,EAAAA,CAAA,MAAA1/F,CAAAmnD,CAAAA,SAAA,EAEhCr3F,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAiD8U,GAAA,CAAA,CAAA,CAAAqiK,EAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAA0Bj3K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAA1B2pB,IAAA8R,CAAAA,EAAAA,CAAAjB,EAAA,CAAA,CAAA,CAAA,EAAAo8B,CAAAsK,CAAAA,QAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAIzCx6C,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACI8U,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,qBADI+C,EAAA,EAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAAnvB,EAAAqpI,UAAA,CAAA,GAAA,EAHRv5K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+D,EAAA,KAAA,CAAA,EAAA,CACnC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAW5U,EAAA,EAAA,CACnCkC,GAAA,CAAAo3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGJt5K,CAAAA,EAAAA,qBAJ4B+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,EAAAunG,KAAA,CAAA,CAClBx0I,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAunG,KAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAMNz3I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACI8U,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,EADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAAnvB,CAAAupI,CAAAA,aAAAA,CAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAHRz5K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAkE,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACtC8U,GAAA,CAAA,CAAA,CAAc5U,EAAA,EAAA,CACtCkC,GAAA,CAAAs3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGJx5K,CAAAA,EAAAA,qBAJ4B+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAypI,CAAAA,QAAA,CAClB12K,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAypI,CAAAA,QAAA,EAMN35K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACI8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CACJ5U,IADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAAnvB,CAAA0pI,CAAAA,mBAAAA,CAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAHR55K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAA8E,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACzC8U,GAAA,CAAA,CAAA,CAAoB5U,EAAA,EAAA,CACrDkC,GAAA,CAAAy3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGJ35K,CAAAA,EAAAA,qBAJqC+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,EAAA4pI,cAAA,CAAA,CAC3B72K,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAA4pI,cAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAfd95K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACIoC,EAAA,CAAA,CAAA,CAAA23K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+D,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMG,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAYtE/5K,IAlBU+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAunG,CAAAA,KAAA,CAMAx0I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAypI,QAAA,CAMA12K,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAA4pI,CAAAA,cAAA,EAYd95K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,MAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,EAAAA,qBADgC+C,EAAA,EAAA,CAAAC,EAAA,CAAA,WAAA,CAAA4Q,GAAA,CAAA,CAAA,CAAA,CAAAo8B,CAAA8mG,CAAAA,eAAA,EAAA90E,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAg1G,EAAA,EAAA,CAShCl3K,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAOIyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAwoC,CAAAA,CAAA,CAAA,CAAA,IAAA+E,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,UAAA/mC,CAAAA,CAAAA,CAAAvb,IAAiB,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAEz0B,CAAAA,EAAAA,wBANjCgD,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,EAAqB,MAAA,CAAA,UAAA,CACF,CAAA,SAAA,CAAA,SAAA,CAAA,CACE,iBAAAzoG,CAAAA,CAAAA,CAAAgqI,iBAAA,CACgB,CAAA,kBAAA,CAAA,6CAAA,CAAA,CAC6B,WAAAhqI,CAAA0uG,CAAAA,YAAA,EAgB9E3+I,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAgFiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,eAAAgtC,CAAAA,CAAAA,CAAAmH,aAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA6/H,EAAA,EAAA,CAxFxFl3K,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAiF,EAAA,KAAA,CAAA,EAAA,CAC7CyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA+8D,CAAA,CAAA,CAAA,IAAAxvB,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA8uG,QAAAz0G,CAAAA,CAAA,CAAgB,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,EAC3DF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA8D,EAAA,KAAA,CAAA,EAAA,CACjB,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACC,CAAA,CAAA,KAAA,CAAA,EAAA,CACJ,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACUyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA+8D,CAAAA,CAAA,CAAA,CAAA,IAAAxvB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,GAASqtC,CAAAy/F,CAAAA,eAAAA,EAAiB,CAAA,CAAA,CAAA,CAA9DzvI,EAAA,EAAA,CACAF,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,GAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CAQJC,IACAkC,CAAAA,EAAAA,CAAA,CAAA+3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAOJj6K,EAAA,EAAA,CACAF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAuE,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAC7B8U,EAAA,CAAA,EAAA,CAA8B5U,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,EACpEF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAAwCyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA+8D,CAAA,CAAA,CAAA,IAAAxvB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA8uG,SAAAz0G,CAAA,CAAgB,CAAA,CAAA,EAAErqC,EAAA,EAAA,CACnEkC,EAAA,CAAA,EAAA,CAAAg4K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAgD,CAAA,EAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAGC,CAAA,EAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAqBrDp6K,EAAA,EAAA,CACAD,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,GACAF,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACIC,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACAmC,CAAAA,EAAAA,CAAA,EAAAm4K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,EAGJr6K,EAAA,EAAA,EAEJF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAIIoC,CAAAA,EAAAA,CAAA,GAAAo4K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAeAx6K,EAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,CAKIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA+8D,CAAA,CAAA,CAAA,IAAAxvB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,UAAA/mC,CAAAA,CAAAA,CAAAvb,KAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,EAAEz0B,EAAA,EAAA,EAE1CkC,CAAAA,EAAAA,CAAA,GAAAq4K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CACJv6K,EAAA,EAAA,uBAvFkC+C,EAAA,CAAA,CAAA,CAAAghG,CAAAA,IAAAA,CAAA,OAAA/zD,CAAAA,CAAAA,CAAAszG,QAAA,CAAA,IAAA,EAIbvgJ,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAA4vG,kBAAAt2G,CAAAA,EAAA,EAA2DomG,EAAA,CAAA,KAAA,CAAA1/F,CAAAmnD,CAAAA,SAAA,EAGxDp0F,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,cAAAgtC,CAAA6tG,CAAAA,WAAA,CAA2B,CAAA,UAAA,CAAA7tG,CAAAw7E,CAAAA,QAAA,CACN,CAAA,SAAA,CAAAx7E,EAAAvrB,OAAA,CAAA,CACF,cAAAurB,CAAAA,CAAAA,CAAA/R,YAAA,CACU,CAAA,mBAAA,CAAA+R,CAAA7S,CAAAA,iBAAA,EACU,iBAAA6S,CAAAA,CAAAA,CAAAkuG,eAAA,CAAA,CACJ,WAAAluG,CAAAA,CAAAA,CAAA9rB,SAAA,CAAA,CAGrCnhB,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAApF,iBAAA,CAQ8B7nC,CAAAA,EAAAA,EAAAghG,CAAAA,IAAAA,CAAA,QAAA/zD,CAAAuzG,CAAAA,WAAAA,CAAA,IAAA,CAAA,CACExgJ,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAjB,GAAA,EAAA,CAAA,EAAA,CAAAo8B,CAAA++F,CAAAA,YAAA,CAAA,CAAA,CAEhChsI,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAyuG,CAAAA,UAAA,CAGwB17I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAyuG,UAAA,CAAA,CACxB17I,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAwqI,oBAAA,CAwBmBz3K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,WAAA,CAAAgtC,CAAAmnD,CAAAA,SAAAA,CAAAn1B,EAAA,CACtBj/D,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA8mG,eAAA,CAAA,CASX/zI,GAAA,CAAA,CAAA,CAAAuuI,EAAAthG,CAAAA,CAAAA,CAAA6tG,WAAA7tG,EAAAA,CAAAA,CAAAiwG,sBAAA,CAAA,EAAA,CAAA,EAAA,CAgBIl9I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CACH,CAAA,kBAAA,CAAA,iCAAA,CAAA,CACoC,UAAAzoG,CAAAA,CAAAA,CAAAyqI,YAAA,CAAA,CAIrC13K,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAowG,iBAAApwG,EAAAA,CAAAA,CAAAqwG,0BAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA22B,EAAA,EAAA,CAUzBl3K,GAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CAKIyC,EAAA,CAAA,eAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAohE,CAAAA,CAAA,CAAA,CAAA,IAAA7zB,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAAiBqtC,CAAAkwB,CAAAA,UAAAA,CAAA71B,CAAA,CAAkB,CAAA,CAAA,CACvCrqC,CAAAA,EAAAA,wBAJIgD,EAAA,CAAA,wBAAA,CAAAgtC,CAAA+kG,CAAAA,cAAA,EAAyC,oBAAA/kG,CAAAA,CAAAA,CAAAklG,UAAA,CAAA,CACR,YAAAllG,CAAA0qI,CAAAA,OAAA,EAIrC56K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAUIyC,GAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,GAAA2+D,CAAA,CAAA,CAAA,IAAApxB,CAAAA,CAAAzF,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAtF,CAAAA,eAAAA,CAAAsF,CAAAvb,CAAAA,IAAAA,CAAA4V,CAAA,CAA6B,CAAA,CAAA,CAAA,CACgCrqC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAtE4pB,EAAA,CAAA,SAAA,CAAAgtC,EAAAqnC,eAAArnC,CAAAA,CAAAA,CAAAvb,IAAA,CAAA,CAAAub,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,wCAEJz/D,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAKIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAo/D,CAAAA,CAAA,CAAA,CAAA,IAAA7xB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,KAAA4V,CAAA,CAA6B,CAAA,CAAA,EACgCrqC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAtE4pB,EAAA,CAAA,SAAA,CAAAgtC,CAAAqnC,CAAAA,eAAAA,CAAArnC,CAAAvb,CAAAA,IAAA,EAAAub,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,wCAgBAz/D,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAA4FyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA4+D,CAAA,CAAA,CAAA,IAAArxB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAkwB,CAAAA,UAAAA,CAAA71B,CAAA,CAAkB,CAAA,CAAA,CAAA,CACnHz1B,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,wBADI+C,EAAA,EAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAAnvB,EAAAqnH,QAAA,CAAA,GAAA,EAhDZv3J,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAIIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAs9D,CAAA,CAAA,CAAA,IAAA/vB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,WAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,CAChCvyB,CAAAA,EAAAA,CAAA,EAAAy4K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAKyC,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAaiC,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAS1E/6K,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAOIC,EAAA,CAAA,CAAA,CAAA,kBAAA,EAAA,CAAA,CAQAmC,EAAA,CAAA,CAAA,CAAA44K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGJ96K,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CA/CN4pB,GAAA,SAAAgnC,CAAAA,EAAAA,CAAA,EAAA0F,CAAAA,EAAAA,CAAAM,EAAAowG,iBAAA,CAAA,CAGKr9I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAowG,iBAAA,CAQAr9I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAApF,iBAAAoF,EAAAA,CAAAA,CAAAgwG,6BAAA,EAAAhwG,CAAAA,CAAAjF,YAAAiF,EAAAA,CAAAA,CAAAwyG,iBAAAxyG,CAAAA,EAAAA,CAAAA,CAAAgB,YAAA,GAAA,aAAA,EAAAhB,EAAAgB,YAAAhB,GAAAA,CAAAA,CAAA+qI,gBAAA/qI,EAAAA,CAAAA,CAAAvb,KAAAsrE,UAAA,GAAA,aAAA,CAaAh9F,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAApF,CAAAA,iBAAAA,EAAA,EAAAoF,CAAAA,CAAAjF,YAAAiF,EAAAA,CAAAA,CAAAwyG,qBAAAxyG,CAAAgB,CAAAA,YAAAA,GAAA,aAAAhB,EAAAA,CAAAA,CAAAgB,YAAAhB,GAAAA,CAAAA,CAAA+qI,gBAAA,CAAA,CAAA,CAaGh4K,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CACH,CAAA,eAAA,CAAA,kBAAA,CAAA,CACkB,mBAAA,qBAAA,CAAA,CACM,kBAAAzuG,CAAAA,EAAAA,CAAA,GAAAF,EAAAkG,CAAAA,CAAAA,CAAAgrI,kBAAA,CAAA,CACgC,CAAA,UAAA,CAAAhrI,CAAAirI,CAAAA,OAAA,EAG/Cl4K,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAkrI,CAAAA,eAAAA,EAAAlrI,CAAAjF,CAAAA,YAAAA,EAAAiF,EAAAwyG,iBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAYnC1iJ,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAIIC,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CACJC,CAAAA,EAAAA,qBAFIgD,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,CAAA,CAAAC,GAAA+F,CAAAvb,CAAAA,IAAAA,EAAA,IAAA,CAAA,IAAA,CAAAub,CAAAvb,CAAAA,IAAAA,CAAAxY,oBAAA,CAAA,EACKlZ,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,CAAAp9B,CAAAA,GAAAA,CAAA02B,EAAA,CAAA,CAA0ComG,GAAA,KAAA1/F,CAAAA,CAAAA,CAAAmnD,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA6/E,EAAA,EAAA,CAGnDl3K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAGIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAA++D,CAAAA,CAAA,CAAA,CAAA,IAAAxxB,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,KAAA4V,CAAA,CAA6B,CAAA,CAAA,EACgCrqC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAtE4pB,EAAA,CAAA,SAAA,CAAAgtC,EAAAqnC,eAAArnC,CAAAA,CAAAA,CAAAvb,IAAA,CAAA,CAAAub,CAAAsvB,CAAAA,cAAAA,CAAAtvB,CAAAuvB,CAAAA,gBAAA,6BAOAx/D,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,mBAA4DiD,EAAA,CAAA,WAAA,CAAAgtC,CAAAmnD,CAAAA,SAAAA,CAAAn1B,EAAA,EANhEliE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMIoC,EAAA,CAAA,CAAA,CAAAi5K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACJn7K,CAAAA,EAAAA,EADU+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAorI,CAAAA,iBAAA,EAGNr7K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA2EiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAA,CAAAA,CAAAmnD,UAAAn1B,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAD/EliE,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAm5K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACJr7K,CAAAA,EAAAA,EADU+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAsrI,CAAAA,gCAAA,wCA5Bdx7K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAEIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAA8+D,CAAAA,CAAA,CAAA,CAAA,IAAAvxB,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,EAKhCvyB,EAAA,CAAA,CAAA,CAAAq5K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAGgE,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAQU,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMpE,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAMN57K,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIC,EAAA,CAAA,CAAA,CAAA,kBAAA,EAAA,CAAA,CASJC,EAAA,EAAA,GApCK+C,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,IAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,KAAA,EAQAjX,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAApF,iBAAAoF,EAAAA,CAAAA,CAAAgwG,2BAAAhwG,EAAAA,CAAAA,CAAAvb,KAAAsrE,UAAA,GAAA,aAAA,CAKAh9F,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAAgtC,EAAA2rI,qBAAA3rI,EAAAA,CAAAA,CAAA2rI,qBAAA3rI,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAAg2B,EAAAA,CAAAA,CAAAvb,KAAAza,QAAA,EAAA,KAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAsrE,UAAA,GAAA,aAAA,CAM4Bh9F,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAAsrE,YAAA,aAAA,CAAA,CASzBh9F,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,UAAA,CAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,gBAAA,kBAAA,CAAA,CACkB,kBAAA,CAAA,qBAAA,EACM,kBAAAzuG,CAAAA,EAAAA,CAAA,EAAAF,CAAAA,EAAAA,CAAAkG,EAAAgrI,kBAAA,CAAA,CACgC,CAAA,UAAA,CAAAhrI,CAAAkwG,CAAAA,GAAA,CAC1D,CAAA,UAAA,CAAAlwG,EAAA4rI,eAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5E,EAAA,EAAA,CAyBxBl3K,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAGIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,EAAA2/D,CAAAA,CAAA,CAAA,CAAA,IAAApyB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,IAAA4V,CAAAA,CAAA,CAA6B,CAAA,CAAA,CACgCrqC,CAAAA,EAAAA,GAAtEgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,SAAAgtC,CAAAA,CAAAA,CAAAqnC,gBAAArnC,CAAAvb,CAAAA,IAAA,CAAAub,CAAAA,CAAAA,CAAAsvB,eAAAtvB,CAAAuvB,CAAAA,gBAAA,EAEAx/D,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAgEiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAA,CAAAA,CAAAmnD,SAAAn1B,CAAAA,EAAA,wCA1BxEliE,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAEIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAg/D,CAAA,CAAA,CAAA,IAAAzxB,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,CAAAvb,CAAAA,IAAAA,CAAiB,EAAK,CAAC,CAAA,CAAA,CAAA,CAEhC30B,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACAD,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAMIC,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAMJC,CAAAA,EAAAA,EAAM,EAAA,CAEVkC,EAAA,CAAA,CAAA,CAAA25K,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAKA/7K,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAA45K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACJ97K,EAAA,EAAA,wBAtBS+C,EAAA,CAAA,CAAA,CAAA2sI,CAAAA,EAAAA,CAAA,MAAA1/F,CAAAp9B,CAAAA,GAAAA,CAAA02B,EAAA,CAAA,CAAoComG,GAAA,KAAA1/F,CAAAA,CAAAA,CAAAmnD,SAAA,CAAA,CAQjCp0F,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAyoG,CAAAA,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CACH,CAAA,kBAAA,CAAA,qBAAA,CAAA,CACwB,mBAAAzuG,EAAA,CAAA,CAAA,CAAAF,EAAAkG,CAAAA,CAAAA,CAAAgrI,kBAAA,CAAA,CACgC,CAAA,UAAA,CAAAhrI,EAAAkwG,GAAA,CAAA,CAMjFn9I,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAApF,CAAAA,iBAAAA,EAAAoF,EAAAgwG,2BAAA,CAAA,CAIKj9I,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAorI,iBAAA,EA7HlBt7K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EACIoC,EAAA,CAAA,CAAA,CAAA65K,EAAA,CAAA,CAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAIsC,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAmDqE,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAwE/Gj8K,IA7HS+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAksI,sBAAA,CAAA,CAqDAn5K,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAgB,eAAA,aAAAhB,EAAAA,CAAAA,CAAAgB,YAAAhB,GAAAA,CAAAA,CAAA+qI,kBAAA,CAAA/qI,CAAAA,CAAAksI,sBAAA,CAAA,CA8CAn5K,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,EAAAgB,YAAA,GAAA,aAAA,EAAAhB,CAAAgB,CAAAA,YAAAA,GAAAhB,CAAA+qI,CAAAA,gBAAAA,GAAA,CAAA/qI,CAAAA,CAAAksI,sBAAA,EAsCDp8K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAGIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,EAAA05K,CAAAA,CAAA,EAAA,IAAAnsI,CAAAA,CAAAzF,EAAA,CAAA,CAAA,EAAA,OAAA5nC,EAAAA,CAASqtC,CAAAtF,CAAAA,eAAAA,CAAAsF,CAAAvb,CAAAA,IAAAA,CAAA4V,CAAA,CAA6B,CAAA,CAAA,CAAA,CACgCrqC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAtE4pB,GAAA,SAAAgtC,CAAAA,CAAAA,CAAAqnC,eAAArnC,CAAAA,CAAAA,CAAAvb,IAAA,CAAAub,CAAAA,CAAAA,CAAAsvB,cAAAtvB,CAAAA,CAAAA,CAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAEAx/D,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CAAiG4pB,EAAA,CAAA,WAAA,CAAAgtC,EAAAmnD,SAAAn1B,CAAAA,EAAA,EAGjGjiE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAGIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,WAAAgtC,CAAAA,CAAAA,CAAAmnD,SAAAn1B,CAAAA,EAAA,6BAcAjiE,EAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CACIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAA,CAAAA,CAAAyoG,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,kBAAA,CAAA,qBAAA,CACwB,CAAA,UAAA,CAAAzoG,EAAAosI,oBAAA,CAAA,CACT,UAAApsI,CAAAA,CAAAA,CAAA4rI,eAAA,EAMrC77K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CACIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAA,CAAAA,CAAAyoG,QAAA,CAAA,CAAqB,MAAA,CAAA,SAAA,EACH,kBAAA,CAAA,qBAAA,CACwB,CAAA,UAAA,CAAAzoG,CAAAqsI,CAAAA,qBAAA,CACR,CAAA,UAAA,CAAArsI,EAAA4rI,eAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5E,EAAA,EAAA,CAK1Cl3K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA4FyC,CAAAA,EAAAA,CAAA,QAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAA65K,CAAA,CAAA,CAAA,IAAAtsI,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAkwB,UAAA71B,CAAAA,CAAA,CAAkB,CAAA,CAAA,CACnHz1B,CAAAA,EAAAA,CAAA,CAAA,CAAA,CACJ5U,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CADI2pB,EAAA,EAAA,CAAAo8D,GAAA,GAAAnvB,CAAAA,CAAAA,CAAAqnH,QAAA,CAAA,GAAA,EAvDhBv3J,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAOO,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACgCyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAAigE,CAAA,CAAA,CAAA,IAAA1yB,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,EAAA+mC,UAAA/mC,CAAAA,CAAAA,CAAAvb,IAAiB,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAC/DvyB,CAAAA,EAAAA,CAAA,EAAAq6K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKAz8K,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIoC,EAAA,CAAA,CAAA,CAAAs6K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACJx8K,EAAA,EAAA,CACAF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAAu6K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAIJz8K,EAAA,EAAA,CACAF,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAWIoC,EAAA,CAAA,CAAA,CAAAw6K,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAA2C,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,EAUA,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAa/C58K,CAAAA,EAAAA,IACE,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAvDN4pB,EAAA,CAAA,SAAA,CAAAo7I,EAAA,CAAA,CAAA,CAAA57E,EAAAxyB,CAAAA,CAAAA,CAAA6sI,qCAAA7sI,CAAAksI,CAAAA,sBAAAA,CAAAlsI,CAAA8sI,CAAAA,gCAAA,CAAA,CAAA,CAQS/5K,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAApF,CAAAA,iBAAAA,EAAAoF,EAAAgwG,2BAAAhwG,EAAAA,CAAAA,CAAAA,CAAAvb,IAAA,EAAA,IAAA,CAAA,KAAAub,CAAAvb,CAAAA,IAAAA,CAAAsrE,UAAA,GAAA,aAAA,CAIKh9F,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAorI,iBAAAprI,EAAAA,CAAAA,CAAAA,CAAAvb,IAAA,EAAA,IAAA,CAAA,IAAAub,CAAAA,CAAAA,CAAAvb,KAAAsrE,UAAA,GAAA,aAAA,CAIDh9F,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAAsrI,gCAAAtrI,EAAAA,CAAAA,CAAAA,CAAAvb,IAAA,EAAA,IAAA,CAAA,KAAAub,CAAAvb,CAAAA,IAAAA,CAAAsrE,UAAA,GAAA,aAAA,EAI8Bh9F,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgnC,EAAA,CAAA,EAAA,CAAA44B,EAAA,CAAA,CAAA5yB,EAAAksI,sBAAA,CAAA,CAWnCn5K,CAAAA,EAAAA,GAAAuuI,EAAAthG,CAAAA,CAAAA,CAAA4wE,YAAAP,CAAAA,UAAAA,CAAAxiI,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAUAklB,EAAA,EAAA,CAAAuuI,EAAAthG,CAAAA,CAAAA,CAAA4wE,aAAAP,UAAAxiI,CAAAA,MAAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAU+BklB,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAkrI,eAAAlrI,EAAAA,CAAAA,CAAAjF,YAAAiF,EAAAA,CAAAA,CAAAwyG,iBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAiB/BziJ,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CAGI2qH,IAAA,CAAA,WAAA,CAAA/zD,CAAA+sI,CAAAA,uBAAA,EACA/5K,EAAA,CAAA,WAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAApsD,IAAA25F,CAAAA,EAAA,EAdhBliE,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAOO,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACgCyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA4gE,CAAA,CAAA,CAAA,IAAArzB,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAA+mC,UAAA/mC,CAAAA,CAAAA,CAAAvb,KAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,EAC/D30B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAA86K,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKJh9K,IACAF,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAMIC,CAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAMJC,EAAA,EAAA,KAzBJgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,SAAAo7I,CAAAA,EAAAA,CAAA,CAAA57E,CAAAA,EAAAA,CAAAxyB,CAAA6sI,CAAAA,oCAAAA,CAAA7sI,EAAAksI,sBAAAlsI,CAAAA,CAAAA,CAAA8sI,gCAAA,CAAA,CASa/5K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAitI,sBAAA,CAAA,CAWDl6K,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,UAAA,CAAAgtC,EAAAyoG,QAAA,CAAA,CAAqB,MAAA,CAAA,SAAA,CACH,CAAA,kBAAA,CAAA,qBAAA,CAAA,CACwB,mBAAAzuG,EAAA,CAAA,EAAA,CAAAF,EAAAkG,CAAAA,CAAAA,CAAAgrI,kBAAA,CAAA,CAAA,CACgC,UAAAhrI,CAAAA,CAAAA,CAAAirI,OAAA,ECrR9F,CAAA,CAAA,IAAaiC,EAAsB,CAAA,CAAA,IAAA,CAA7B,IAAOA,CAAP,CAAA,MAAOA,CAAsB,CA2G/BnoM,WAAAA,CACgD+6B,CACpCM,CAAAA,CAAAA,CACAH,EACAktK,CACAptK,CAAAA,CAAAA,CACAyjF,CACAhoD,CAAAA,CAAAA,CACAzV,EACAsuC,CACA+4G,CAAAA,CAAAA,CACA/tJ,EACAxwB,CAAAA,IAAAA,CACA8lE,EACAq7D,CAAAA,EAAAA,CACAzqF,EACAxzB,CAAAA,EAAAA,CACAH,GACA8uB,EACAylH,CAAAA,EAAAA,CACAjiD,EACArvC,CAAAA,EAAAA,CACAl3C,EACAirE,CAAAA,EAAAA,CACA27D,EACA7O,CAAAA,EAAAA,CACA9hC,GACAq1B,EACAtH,CAAAA,EAAAA,CAAiC,CA3BG,IAAA,CAAA7hI,IAAAA,CAAAA,CAAAA,CACpC,IAAAM,CAAAA,qBAAAA,CAAAA,EACA,IAAAH,CAAAA,SAAAA,CAAAA,CACA,CAAA,IAAA,CAAAktK,eAAAA,CACA,CAAA,IAAA,CAAAptK,IAAAA,CAAAA,CAAAA,CACA,KAAAyjF,WAAAA,CAAAA,CAAAA,CACA,IAAAhoD,CAAAA,gBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAzV,MAAAA,CAAAA,CAAAA,CACA,KAAAsuC,eAAAA,CAAAA,CAAAA,CACA,IAAA+4G,CAAAA,cAAAA,CAAAA,CACA,CAAA,IAAA,CAAA/tJ,aAAAA,CAAAA,EAAAA,CACA,KAAAxwB,UAAAA,CAAAA,IAAAA,CACA,IAAA8lE,CAAAA,KAAAA,CAAAA,EACA,CAAA,IAAA,CAAAq7D,iBAAAA,CAAAA,EAAAA,CACA,KAAAzqF,QAAAA,CAAAA,EAAAA,CACA,IAAAxzB,CAAAA,mBAAAA,CAAAA,GACA,IAAAH,CAAAA,aAAAA,CAAAA,EACA,CAAA,IAAA,CAAA8uB,mBAAAA,EACA,CAAA,IAAA,CAAAylH,2BAAAA,CAAAA,EAAAA,CACA,IAAAjiD,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAArvC,uBAAAA,EACA,CAAA,IAAA,CAAAl3C,iBAAAA,CAAAA,EAAAA,CACA,IAAAirE,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAA27D,eAAAA,EACA,CAAA,IAAA,CAAA7O,qBAAAA,CAAAA,EAAAA,CACA,IAAA9hC,CAAAA,UAAAA,CAAAA,EACA,CAAA,IAAA,CAAAq1B,2BAAAA,EACA,CAAA,IAAA,CAAAtH,YAAAA,CAAAA,EAAAA,CA3HZ,KAAAopC,gBAA2B,CAAA,UAAA,CAG3B,IAAA/6B,CAAAA,2BAAAA,CAAuC,GAS9B,IAAAkG,CAAAA,gBAAAA,CAAwB,CACxB,CAAA,IAAA,CAAA/hJ,OAAkB,CAAA,EAAA,CAIlB,IAAA+f,CAAAA,SAAAA,CAAoB,GAS7B,IAAAu6H,CAAAA,UAAAA,CAAkB,IAClB,CAAA,IAAA,CAAAn/E,eAAyB,kBACzB,CAAA,IAAA,CAAAC,gBAA2B,CAAA,gBAAA,CAM3B,KAAAr1B,uBAAmC,CAAA,CAAA,CAAA,CACnC,IAAAs4G,CAAAA,iBAAAA,CAAyB,CACzB,CAAA,CAAA,IAAA,CAAAh3B,QAAgB,CAAA,GAChB,IAAAr9F,CAAAA,WAAAA,CAAuB,CACvB,CAAA,CAAA,IAAA,CAAA8P,aAAoB,IACpB,CAAA,IAAA,CAAAd,iBAA6B,CAAA,CAAA,CAAA,CAC7B,KAAA25G,eAAuB,CAAA,IAAA,CAMvB,IAAAkkC,CAAAA,kBAAAA,CAA8B,CAC9B,CAAA,CAAA,IAAA,CAAAqC,aAAyB,CAAA,CAAA,CAAA,CAOzB,KAAAC,UAAkB,CAAA,EAClB,CAAA,IAAA,CAAAC,UAAkB,CAAA,EAElB,CAAA,IAAA,CAAAt9B,uBAAkC,CAQlC,CAAA,CAAA,IAAA,CAAAo5B,UAAqB,CAAA,EAAA,CACrB,IAAAE,CAAAA,aAAAA,CAAwB,EACxB,CAAA,IAAA,CAAAG,oBAA8B,EAC9B,CAAA,IAAA,CAAAniC,KAAa,CAAA,IAAA,CACb,KAAAkiC,QAAgB,CAAA,IAAA,CAChB,IAAAG,CAAAA,cAAAA,CAAsB,KACtB,IAAA4D,CAAAA,uBAAAA,CAAmC,CAMnC,CAAA,CAAA,IAAA,CAAA7lI,SAAmB,CAAA,EAGnB,CAAA,IAAA,CAAAo9F,eAAsB,CACtB,CAAA,IAAA,CAAAG,UAAkB,CAAA,CAAA,CAElB,KAAAymC,qBAAiC,CAAA,CAAA,CAAA,CACjC,IAAAT,CAAAA,eAAAA,CAA2B,GAGnB,IAAAx1E,CAAAA,QAAAA,CAAW,IAAI71C,EAAAA,CAKvB,IAAA4oF,CAAAA,QAAAA,CAAoB,CACV,CAAA,CAAA,IAAA,CAAAglC,kBAAuC,IAAI98K,IAAAA,CAgCjD,IAAKkqJ,CAAAA,gBAAAA,CAAmB,KAAK0J,cAAezJ,CAAAA,mBAAAA,EAC5C,CAAA,IAAA,CAAKrmI,QAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,OAAO,EAAA,CACzC,IAAKkhI,CAAAA,QAAAA,GACT,CAEAn1I,UAAQ,CACJ,IAAA,CAAKsK,UAAa,CAAA,IAAA,CAAKuU,aAAcvT,CAAAA,eAAAA,EACrC,CAAA,IAAA,CAAK28H,SAAW,CAAC,IAAA,CAAKQ,0BAA2BttH,CAAAA,SAAAA,EAC7C,CAAA,IAAA,CAAK7b,IAAM2kB,EAAAA,IAAAA,GACX,KAAKA,IAAO,CAAA,IAAA,CAAK3kB,IAAK2kB,CAAAA,IAAAA,CAAAA,CAE1B,KAAKipJ,uBAAuB,EAAA,CACxB,IAAK5tK,CAAAA,IAAAA,EAAMoU,YACX,IAAKA,CAAAA,SAAAA,CAAY,IAAKpU,CAAAA,IAAAA,CAAKoU,SAE/B,CAAA,CAAA,IAAM2nE,CAAgB,CAAA,IAAA,CAAKz7E,sBAAsBU,qBAAqB,EAAA,CAClE+6E,CAAc8xF,CAAAA,SAAAA,EAAqBv5I,KAAKC,KAAMwnD,CAAAA,CAAAA,EAAe8xF,SAAWtgI,EAAAA,OAAAA,EAAS/1E,UAAYw1C,EAAAA,WAAAA,EAAa,CAAA,GAC1G,IAAK6+J,CAAAA,qBAAAA,CAAwB,CAE7B,CAAA,CAAA,CAAA,IAAA,CAAK7rK,MAAQ,IAAKA,CAAAA,IAAAA,CAAK3L,OAAW,EAAA,EAAA,EAClC,KAAKy5K,gBAAgB,EAAA,CAEzB,IAAK/6B,CAAAA,cAAAA,GACD,IAAKp+H,CAAAA,OAAAA,EAAW,IAAK3U,CAAAA,IAAAA,EACrB,IAAK4yI,CAAAA,YAAAA,EAET,CAAA,IAAA,CAAKyD,cACL,CAAA,IAAA,CAAKh4H,WAAc,CAAA,IAAA,CAAKqd,gBAAiBhX,CAAAA,qBAAAA,CAAsB,IAAKC,CAAAA,IAAI,EACxE,IAAKopJ,CAAAA,kBAAAA,CAAmB,IAAKhzG,CAAAA,SAAS,CAClC,CAAA,IAAA,CAAK56D,SAAU6B,CAAAA,YAAAA,CAAa28D,OAAOu3E,UAAa,CAAA,GAAA,EAAO,IAAKvhI,CAAAA,OAAAA,EAC5D,KAAK4/C,eAAgB9nB,CAAAA,kBAAAA,CAAmB,IAAK9nB,CAAAA,IAAAA,CAAK5a,OAAQ,IAAK4a,CAAAA,IAAAA,CAAK6lB,QAAQ,CAAA,CAAEl/C,SAAWlxB,CAAAA,CAAAA,EAAO,CACxFA,CAAAA,GACA,KAAK4sK,eAAkB5sK,CAAAA,CAAAA,CAAI4sK,eAC3B,CAAA,IAAA,CAAKS,KAAQrtK,CAAAA,CAAAA,CAAIqtK,KACjB,CAAA,IAAA,CAAKkiC,SAAWvvM,CAAIuvM,CAAAA,QAAAA,CACpB,IAAKG,CAAAA,cAAAA,CAAiB1vM,CAAI0vM,CAAAA,cAAAA,EAElC,CAAC,CAAA,CAED,KAAKnlJ,IAAK8D,CAAAA,aAAAA,EAAiB,IAAK3W,CAAAA,aAAAA,CAAc6C,SAC9C,IAAKy7C,CAAAA,UAAAA,CAAW,IAAI,CAAA,CAGxB,KAAKsrD,QAAW,CAAA,IAAA,CAAKsyD,aAAiB,EAAA,IAAA,CAAKhuK,IAAK07G,CAAAA,QAAAA,CAC5C,IAAK/2F,CAAAA,IAAAA,CAAK+lB,SAAW,CAAC,IAAA,CAAKgxE,QACvB,GAAA,IAAA,CAAK0yB,eAAmB,EAAA,IAAA,CAAKzpH,IAAK+lB,CAAAA,OAAAA,CAAQ/8B,QAAQ,GAAG,CAAA,GAAM,CAC3D,CAAA,CAAA,IAAA,CAAK+tG,QAAW,CAAA,IAAA,CAAK/2F,IAAK+lB,CAAAA,OAAAA,CAAQv3D,MAAM,GAAG,CAAA,CAEvC,IAAKwxC,CAAAA,IAAAA,CAAK+lB,QAAQ/8B,OAAQ,CAAA,GAAG,CAAM,GAAA,CAAA,CAAA,CACnC,KAAK+tG,QAASl0F,CAAAA,IAAAA,CAAK,IAAK7C,CAAAA,IAAAA,CAAK+lB,OAAQv3D,CAAAA,KAAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAElD,IAAKuoI,CAAAA,QAAAA,CAASl0F,KAAK,IAAK7C,CAAAA,IAAAA,CAAK+lB,OAAO,CAAA,CAAA,CAIhD,KAAKs7F,qBAAwB,CAAA,IAAA,CAAK1lI,qBAAsBwnC,CAAAA,4BAAAA,EAA+B+0B,CAAAA,wBAAAA,CACvF,IAAK0zE,CAAAA,0BAAAA,CAA6B,KAAKjwI,qBAAsBwnC,CAAAA,4BAAAA,EAA+B+rG,CAAAA,4BAAAA,CACxF,KAAK7N,qBAAyB,EAAA,IAAA,CAAKuK,0BACnC,GAAA,IAAA,CAAKuD,mBAAqB,IAAK/+E,CAAAA,sBAAAA,CAAuB/uB,yBAA0B16C,CAAAA,SAAAA,CAAWyoJ,CAAsB,EAAA,CACzGA,CACA,EAAA,IAAA,CAAKC,mBAEb,CAAC,CAEgB,CAAA,CAAA,CAAA,EAAE,IAAKrvH,CAAAA,IAAAA,CAAKC,UAAclP,EAAAA,IAAAA,EAAa,CAAC,IAAKiP,CAAAA,IAAAA,CAAKC,UAAe,CAAA,EAAA,CAAC,IAAKD,CAAAA,IAAAA,CAAK8D,aAC7E,GAAA,IAAA,CAAKiqH,mBAAqB,IAAK/9H,CAAAA,OAAAA,GAC3C,IAAKxU,CAAAA,SAAAA,CAAU6B,aAAa28D,MAAOu3E,CAAAA,UAAAA,EAAc,GAAO1oI,EAAAA,MAAAA,CAAOk0H,YAAc,GAAOx/H,EAAAA,QAAAA,CAASkO,IAAK9I,CAAAA,WAAAA,EAAe,GACjHY,CAAAA,UAAAA,CAAW,IAAK,CACZ,KAAKkoD,UAAW,CAAA,IAAI,EACxB,CAAA,CAAG,GAAG,CAEN,CAAA,IAAA,CAAKm9G,aAAgB,CAAA,CAAA,CAAA,CAAA,CAG7B,KAAKp/I,YAAe,CAAA,IAAA,CAAK8/I,gBAAiB,CAAA,IAAA,CAAKtpJ,IAAI,CAAA,CAC/C,IAAKwJ,CAAAA,YAAAA,GACL,KAAKd,iBAAoB,CAAA,IAAA,CAAKc,YAAad,CAAAA,iBAAAA,CAAAA,CAE/C,KAAKojF,yBAA4B,CAAA,IAAA,CAAKyf,iBAAkBjf,CAAAA,4BAAAA,GACpD,IAAKR,CAAAA,yBAAAA,EAA2B/rG,QAChC,GAAA,IAAA,CAAK4nK,oBAAuB,CAAA,IAAA,CAAK77D,yBAA0B/rG,CAAAA,QAAAA,CAASwpK,qBACpE,IAAK3B,CAAAA,qBAAAA,CAAwB,IAAK97D,CAAAA,yBAAAA,CAA0B/rG,QAASypK,CAAAA,UAAAA,CACrE,IAAK98D,CAAAA,aAAAA,CAAgB,KAAK6e,iBAAkB7e,CAAAA,aAAAA,CAAc,IAAK1sF,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,CAAA,CAG1E,IAAKi9D,CAAAA,gBAAAA,EAAoB,oCACzB,IAAKA,CAAAA,gBAAAA,EAAoB,sCACzB,EAAA,IAAA,CAAKhnE,MAAMm/D,YAEX,EAAA,IAAA,CAAK15B,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,MACzB,CAAA,yBAAA,CAA2B,KAAKpb,IAAKm/D,CAAAA,YAAAA,CACrC,yBAA2B,CAAA,OAAA,CAC3B,yBAA0B,mBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,CAAA,CAEL,IAAM18C,CAAiB,CAAA,IAAA,CAAKniB,qBAAsBwsH,CAAAA,gCAAAA,EAAoCshD,EAAAA,iCAAAA,CACtF,IAAKnB,CAAAA,uBAAAA,CAA0BxqJ,GAAgB4rJ,uBAC/C,CAAA,IAAA,CAAKlB,sBAAyB,CAAA,IAAA,CAAK7sK,sBAAsBwsH,gCAAgC,EAAA,EAAIwhD,qBAC7F,CAAA,IAAA,CAAK9C,iCAAmC,IAAKlrK,CAAAA,qBAAAA,CAAsBu4G,8BAA8B,EAAA,EAAIy1D,sBACzG,CAEAv7B,cAAc,EAAA,CACV,IAAMhyI,CAAgB,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,EAC3CjvC,CAAAA,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,qBACpCghH,CAAAA,CAAAA,CAAkB,IAAKhlH,CAAAA,qBAAAA,CAAsBsrH,sBAAsB,EAAA,CACnE2iD,CAAsB,CAAA,IAAA,CAAKjuK,sBAAsByvG,uBAAuB,EAAA,CACxE3zE,CAAoB,CAAA,IAAA,CAAK97B,sBAAsB+7B,0BAA0B,EAAA,CAC/E,IAAKvB,CAAAA,iBAAAA,CAAoB,KAAKvb,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAASi8B,uBAAuB,CAAA,CAC9H,KAAK5C,uBAA0B,CAAA,IAAA,CAAK7a,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAASq5B,uBAAuB,CACpI,CAAA,IAAA,CAAKs4G,iBAAoB,CAAA,IAAA,CAAKnzH,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,UAAWrT,CAAS2xI,CAAAA,iBAAiB,CACxH,CAAA,IAAA,CAAKtE,gBAAkB,IAAK7uH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,KAAKvQ,SAAWrT,CAAAA,CAAAA,CAAS41I,aAAa,CAAA,CAClH,IAAKy1B,CAAAA,sBAAAA,CAAyB,IAAK7sJ,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAASqrK,sBAAsB,CAAA,CAClI,IAAKnxI,CAAAA,YAAAA,CAAe,KAAK1b,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,SAAWrT,CAAAA,CAAAA,CAASk8B,wBAAwB,CAAA,CAC1H,KAAKynH,qBAAwB,CAAA,IAAA,CAAKnlI,aAAczI,CAAAA,8CAAAA,CAC5C,KAAK6N,IAAKvQ,CAAAA,SAAAA,CACVrT,CAAS4jJ,CAAAA,2BAA2B,EAExC,IAAKumB,CAAAA,kBAAAA,CAAqB,IAAK3rJ,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,IAAKvQ,CAAAA,SAAAA,CAAWrT,EAASmqK,kBAAkB,CAAA,CAC1H,IAAKI,CAAAA,iBAAAA,CAAoB,KAAK/rJ,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,UAAWrT,CAASytK,CAAAA,qBAAqB,CAC5H,CAAA,IAAA,CAAKC,+BAAkCF,CAAAA,CAAAA,CAAoBG,eAC3D,CAAA,IAAA,CAAK3B,qCAAuCwB,CAAoBI,CAAAA,oBAAAA,CAChE,IAAK3B,CAAAA,gCAAAA,CAAmCuB,EAAoBK,gBACxDtpD,CAAAA,CAAAA,EAAiBuxB,SACjB,GAAA,IAAA,CAAK5X,aAAe3Z,CAAgBuxB,CAAAA,SAAAA,CAAUkO,kBAElD,CAAA,CAAA,IAAA,CAAK3U,GAAM,CAAA,IAAA,CAAKsU,qBAAwBp/B,CAAAA,CAAAA,EAAiBuxB,UAAUzG,GAAMr+K,CAAAA,CAAAA,EAAQ2yC,QAAUsgJ,EAAAA,aAAAA,CAC3F,IAAK2lB,CAAAA,YAAAA,CAAerlD,CAAiBuxB,EAAAA,SAAAA,CAAUzG,KAAOr+K,CAAQ2yC,EAAAA,QAAAA,EAAUsgJ,aACxE,CAAA,IAAA,CAAKmmB,OAAUp5M,CAAAA,CAAAA,CAAO2yC,QAAS4iJ,CAAAA,SAAAA,CAE3B,CAAC,IAAKrnJ,CAAAA,IAAAA,CAAKkR,eACX,EAAA,IAAA,CAAKoO,cAAclJ,4BAA6B,CAAA,IAAA,CAAKsO,IAAKvQ,CAAAA,SAAAA,CAAWrT,EAAS8tK,mBAAmB,CAAA,EACjGvpD,CAEI,GAAA,IAAA,CAAKo/B,qBACL,GAAA,IAAA,CAAKtU,GAAM9qB,CAAAA,CAAAA,EAAiBuxB,WAAWi4B,WAE3C,CAAA,CAAA,IAAA,CAAKnE,YAAerlD,CAAAA,CAAAA,EAAiBuxB,UAAUi4B,WAAe/8M,EAAAA,CAAAA,EAAQ2yC,QAAUsgJ,EAAAA,aAAAA,CAChF,KAAKmmB,OAAUp5M,CAAAA,CAAAA,CAAO2yC,QAASqqK,CAAAA,iBAAAA,CAAAA,CAEnC,IAAKxnB,CAAAA,QAAAA,CAAWx1L,CAAO2yC,CAAAA,QAAAA,CAAS+iJ,YAE5B11L,CAAO69D,CAAAA,mBAAAA,CAAoB6nC,cAAmB,GAAA,MAAA,EAC9C1lG,EAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAC9C1lG,EAAAA,CAAAA,CAAO69D,oBAAoB6nC,cAAmB,GAAA,MAAA,IAE9C,IAAKjI,CAAAA,cAAAA,CAAiB,mBACtB,CAAA,IAAA,CAAKC,gBAAmB,CAAA,qBAAA,CAAA,CAE5B,KAAKqkD,UAAWiB,CAAAA,kBAAAA,CAA4Bh0G,CAASuyI,CAAAA,wBAAwB,CAAEhoJ,CAAAA,SAAAA,CAAWgoJ,CAA4B,EAAA,CAC9GA,GAA4B,CAAC,IAAA,CAAKrzI,IAAKkR,CAAAA,eAAAA,GACvC,IAAK++H,CAAAA,2BAAAA,CAA8B,CAE3C,CAAA,EAAA,CAAC,EACD,IAAK8+B,CAAAA,cAAAA,CAAiBj9M,CAAO2yC,CAAAA,QAAAA,CAASwgJ,gBACtC,IAAKtW,CAAAA,YAAAA,CAAe78K,CAAO2yC,CAAAA,QAAAA,CAASivI,aACpC,IAAKu2B,CAAAA,iBAAAA,CAAoBn4M,CAAO2yC,CAAAA,QAAAA,CAASuqK,iBACzC,CAAA,IAAA,CAAKn6B,gBAAmB/iL,CAAAA,CAAAA,CAAO2yC,SAASowI,gBACxC,CAAA,IAAA,CAAKL,eAAkB1iL,CAAAA,CAAAA,CAAO2yC,SAAS+vI,eACvC,CAAA,IAAA,CAAKG,eAAkB7iL,CAAAA,CAAAA,CAAO2yC,SAASkwI,eACvC,CAAA,IAAA,CAAK0S,SAAYv1L,CAAAA,CAAAA,CAAO2yC,QAAS4iJ,CAAAA,SAAAA,CACjC,IAAKiiB,CAAAA,UAAAA,CAAax3M,EAAO2yC,QAASwqK,CAAAA,KAAAA,CAClC,IAAKzF,CAAAA,aAAAA,CAAgB13M,EAAO2yC,QAASyqK,CAAAA,QAAAA,CACrC,IAAKvF,CAAAA,mBAAAA,CAAsB73M,EAAO2yC,QAAS0qK,CAAAA,cAAAA,CAE3C,IAAMvjK,CAAAA,CAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CACzDirI,EAAclrI,CAAWmrI,CAAAA,cAAAA,EAAgBzgI,IAAMiP,CAAAA,CAAAA,EAAWA,CAAEzb,CAAAA,MAAAA,EAAU,IAAK4a,CAAAA,IAAAA,CAAK5a,MAAM,CAC5F,CAAA,IAAA,CAAK4kI,UACD9iI,CAAAA,CAAAA,CAAWZ,IACXY,CAAAA,CAAAA,CAAWo+B,gBAAiBroC,CAAAA,OAAAA,CAAQ,MAAO,aAAa,CAAA,CAAEA,OAAQ,CAAA,KAAA,CAAOm1I,EAAcA,CAAatsG,EAAAA,OAAAA,CAAU,IAAK9lB,CAAAA,IAAAA,CAAK8lB,OAAO,CAC/H,CAAA,MAAA,CACJ,IAAKsjG,CAAAA,WAAAA,CAAcliI,CAAWgjF,CAAAA,cAAAA,CAC9B,IAAMH,CAAAA,CAA+B,KAAKnvE,aAAclJ,CAAAA,4BAAAA,CACpD,IAAKsO,CAAAA,IAAAA,CAAKvQ,SACVvI,CAAAA,CAAAA,CAAW8iF,gCAAgC,CAAA,CAEzC0gF,EAAwBxjK,CAAW0nI,CAAAA,0BAAAA,EAA4BpgK,KAAM,CAAA,GAAG,CAC1Eu7G,CAAAA,CAAAA,EAA2BA,CAAwB/gF,CAAAA,OAAAA,CAAQ,KAAK68B,QAAQ,CAAA,CAAI,CAC5E,CAAA,CAAA,IAAA,CAAK2lG,uBAAyB,CACvBk/B,CAAAA,CAAAA,CAAAA,EAAyBA,CAAsBthM,CAAAA,MAAAA,CAAS,GAC/DshM,CAAuBzrJ,EAAAA,OAAAA,CAASmzE,CAAc,EAAA,CACtC,IAAI/vF,MAAAA,CAAO+vF,CAAO,CAAA,GAAG,EAAEn4D,IAAK,CAAA,IAAA,CAAKja,IAAK5a,CAAAA,MAAM,CAC5C,GAAA,IAAA,CAAKomI,sBAAyB,CAAA,CAAA,CAAA,EAEtC,CAAC,CAEL,CAAA,IAAA,CAAKu6B,oBAAuB7+J,CAAAA,CAAAA,CAAW6+J,oBACvC,CAAA,IAAA,CAAK9wI,wBAA2BwC,CAAAA,CAAAA,CAAaxC,yBACjD,CACAo6G,gBAAAA,EAAgB,CACZ,IAAA,CAAKE,kBAAkB,IAAKn/E,CAAAA,sBAAAA,CAAuBvtB,2BAA4B,CAAA,IAAA,CAAK7iB,KAAK5a,MAAM,CAAC,EACpG,CAGAmqI,iBAAkBC,CAAAA,CAAAA,CAA2B,CACzC,IAAA,CAAKC,kBAAoBD,CACrB,CAAA,IAAA,CAAKC,iBAAqB1+H,EAAAA,IAAAA,EAC1B,KAAK46H,iBAAoB,CAAA,CAAA,CAAA,CACzB,IAAKs6B,CAAAA,OAAAA,CAAU,KAAKx2B,iBAAkBw2B,CAAAA,OAAAA,CACtC,IAAK3lC,CAAAA,cAAAA,CAAiB,IAAKmP,CAAAA,iBAAAA,CAAkBnP,cAC7C,CAAA,IAAA,CAAKG,WAAa,IAAKgP,CAAAA,iBAAAA,CAAkBhP,UACzC,CAAA,IAAA,CAAKv9F,UAAY,IAAKusG,CAAAA,iBAAAA,CAAkBvsG,SACxC,CAAA,IAAA,CAAKR,cAAgB,IAAK0tB,CAAAA,sBAAAA,CAAuBntB,wBAAyB,CAAA,IAAA,CAAKC,SAAS,CAAA,EAExF,IAAKyoG,CAAAA,iBAAAA,CAAoB,GAEjC,CACA3yG,WAAAA,EAAW,CACP,IAAA,CAAK+9E,QAAW,CAAA,IAAA,CAAKsyD,aAAiB,EAAA,IAAA,CAAKhuK,KAAK07G,SACpD,CACAoyD,gBAAgB,EAAA,CACR,IAAK9tK,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,IAAA,CAAKhnE,KAAKgnE,gBAAqB,GAAA,kCAAA,EAC7D,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,uBAAwB,8BACxB,CAAA,uBAAA,CAAyB,MACzB,CAAA,yBAAA,CAA2B,IAAKpb,CAAAA,IAAAA,CAAK2kB,IAAK5a,CAAAA,MAAAA,CAAS,IAAM,IAAK/J,CAAAA,IAAAA,CAAKm/D,YACnE,CAAA,yBAAA,CAA2B,KAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAKpU,KAAKgnE,gBAAoB,EAAA,IAAA,CAAKhnE,IAAKgnE,CAAAA,gBAAAA,GAAqB,sCAC7D,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,mCACxB,uBAAyB,CAAA,MAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKpb,KAAK2kB,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAK/J,IAAKm/D,CAAAA,YAAAA,CACnE,yBAA2B,CAAA,IAAA,CAAKx6C,KAAKvQ,SACxC,CAAA,EAET,CAEAw5J,uBAAAA,EAAuB,CACf,IAAA,CAAKjpJ,IACL,GAAA,IAAA,CAAK0iE,UAAY,IAAK1iE,CAAAA,IAAAA,CAAKpsD,IAC3B,CAAA,IAAA,CAAKiyE,QAAW,CAAA,IAAA,CAAK7lB,IAAK6lB,CAAAA,QAAAA,EAElC,CAC+B9M,QAAQ,EAAA,CACnC,IAAKm4G,CAAAA,QAAAA,GACL,IAAKlhI,CAAAA,OAAAA,CAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,UACtC,CAEAkhI,QAAQ,EAAA,CACA,IAAK11I,CAAAA,SAAAA,CAAU6B,YAAa28D,CAAAA,MAAAA,CAAOu3E,YAAc,GACjD,CAAA,IAAA,CAAKlkI,KAAQ,CAAA,GAAA,CACN,KAAK7R,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOu3E,CAAAA,UAAAA,CAAa,KAAK/1I,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOw3E,CAAAA,WAAAA,CAC1F,IAAKnkI,CAAAA,KAAAA,CAAQ,IAAK7R,CAAAA,SAAAA,CAAU6B,aAAa28D,MAAOu3E,CAAAA,UAAAA,CAEhD,IAAKlkI,CAAAA,KAAAA,CAAQ,KAAK7R,SAAU6B,CAAAA,YAAAA,CAAa28D,MAAOw3E,CAAAA,WAAAA,CAEpD,KAAK3C,QAAW,CAAA,IAAA,CAAKxhI,KACrB,CAAA,IAAA,CAAKyhI,WAAc,CAAA,IAAA,CAAKD,QAAW,CAAA,IACvC,CACAliJ,eAAe,EAAA,CAAA,CACP,CAAC,IAAA,CAAKohJ,iBAAqB,EAAA,IAAA,CAAK66B,aAC5B,IAAA,IAAA,CAAKn/B,gBACL,IAAKgF,CAAAA,qBAAAA,EAEL,CAAA,IAAA,CAAKC,gBAAgB,EAAA,CAAA,CAGzBnxI,QAASq8D,CAAAA,aAAAA,CAAc,qBAAqB,CAC3Cr8D,GAAAA,QAAAA,CAASq8D,aAAc,CAAA,qBAAqB,EAAkBx2D,KAAM2sI,CAAAA,OAAAA,CAAU,IAAKs6B,CAAAA,cAAAA,CAAAA,CAExF,KAAKM,YAAe9hK,CAAAA,MAAAA,CAAOk0H,UAAc,EAAA,GAAA,EAAOx/H,QAASkO,CAAAA,IAAAA,CAAK9I,WAAe,EAAA,GAAA,CAC7EY,WAAW,IAAK,CACR,IAAKonK,CAAAA,YAAAA,EACL,IAAKC,CAAAA,6BAAAA,EAEJ,CAAA,IAAA,CAAK56J,UACN66J,EAAkB,CAAA,4CAAA,CAA8C,mBAAmB,CAAA,CACnFA,EAAkB,CAAA,iBAAA,CAAmB,sBAAsB,CAAA,CAC3DA,GAAkB,2CAA6C,CAAA,8BAA8B,CAErG,EAAA,CAAA,CAAG,GAAG,EACV,CACA58B,YAAY,EAAA,CACR,KAAKjoI,IAAO,CAAA,IAAA,CAAK3K,IAAK2K,CAAAA,IAAAA,CACtB,IAAKga,CAAAA,IAAAA,CAAO,IAAK3kB,CAAAA,IAAAA,CAAK2kB,KACtB,IAAKw6C,CAAAA,YAAAA,CAAe,IAAKn/D,CAAAA,IAAAA,CAAKm/D,YAC9B,CAAA,IAAA,CAAK6H,gBAAmB,CAAA,IAAA,CAAKhnE,KAAKgnE,gBAClC,CAAA,IAAA,CAAK9lC,YAAe,CAAA,IAAA,CAAKlhC,IAAKkhC,CAAAA,YAAAA,CAC9B,IAAKiB,CAAAA,YAAAA,CAAe,KAAKniC,IAAKmiC,CAAAA,YAAAA,CAC9B,IAAK44B,CAAAA,SAAAA,CAAY,KAAK/6D,IAAK+6D,CAAAA,SAAAA,CAC3B,IAAK1mE,CAAAA,OAAAA,CAAU,KAAK2L,IAAK3L,CAAAA,QAC7B,CACAg/I,gBAAAA,EAAgB,CACZ,IAAMmB,CAAe,CAAA,IAAA,CAAKM,iBACpBpqG,CAAU,CAAA,IAAA,CAAK37C,UAAWsC,CAAAA,aAAAA,CAAckyI,iBAAiB,qBAAqB,CAAA,CACpF,IAAS7wK,IAAAA,CAAAA,CAAI,EAAGA,CAAIg4E,CAAAA,CAAAA,CAAQ38D,MAAQrb,CAAAA,CAAAA,EAAAA,CAChCg4E,CAAQh4E,CAAAA,CAAC,CAAEq1C,CAAAA,KAAAA,CAAM2sI,QAAUF,EAEnC,CACApB,qBAAqB,EAAA,CACjB,IAAMoB,CAAe,CAAA,IAAA,CAAKC,eACpB/pG,CAAAA,CAAAA,CAAU,KAAK37C,UAAWsC,CAAAA,aAAAA,CAAckyI,gBAAiB,CAAA,qBAAqB,CACpF,CAAA,IAAA,IAAS7wK,CAAI,CAAA,CAAA,CAAGA,EAAIg4E,CAAQ38D,CAAAA,MAAAA,CAAQrb,CAChCg4E,EAAAA,CAAAA,CAAAA,CAAQh4E,CAAC,CAAA,CAAEq1C,KAAM2sI,CAAAA,OAAAA,CAAUF,EAE/B,IAAMG,CAAAA,CAAgB,IAAKC,CAAAA,eAAAA,CACrBC,CAAW,CAAA,IAAA,CAAK9lJ,UAAWsC,CAAAA,aAAAA,CAAckyI,iBAAiB,qBAAqB,CAAA,CACrF,IAAS7wK,IAAAA,CAAAA,CAAI,EAAGA,CAAImiL,CAAAA,CAAAA,CAAS9mK,MAAQrb,CAAAA,CAAAA,EAAAA,CACjCmiL,EAASniL,CAAC,CAAA,CAAEq1C,KAAM2sI,CAAAA,OAAAA,CAAUC,EAEpC,CACMvkF,UAAW71B,CAAAA,CAAAA,CAAW,QAAA3H,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAExB,GADA,IAAA,CAAKw4I,gBAAkB,CACnB,CAAA,CAAA,IAAA,CAAKzmJ,IAAKC,CAAAA,UAAAA,EAAclP,MAAa,CAAC,IAAA,CAAKiP,IAAKC,CAAAA,UAAAA,CAAY,CAC5D,IAEI0xH,EACAxlK,QACAA,KAAM22B,CAAAA,wBAAAA,EACN,CAAA,IAAA,CAAK2uI,iBAAmB5oI,MAAOo3I,CAAAA,WAAAA,CAAAA,CAEnC,IAAMnS,CAAAA,CAAoB,GAC1BvwI,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,SAAUv/B,CAAAA,GAAAA,CAAI,uBAAuB,CAG1EkoM,CAuBAn5B,EAAoB,CAChBzyH,IAAAA,CAAM,CAAE7F,MAAAA,CAAQ,IAAK2G,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,CAChC0e,cAAe,IAAK9D,CAAAA,IAAAA,CAAK8D,aACzBugJ,CAAAA,eAAAA,CAAiB,IAAKrkJ,CAAAA,IAAAA,CAAKP,YAAaypB,CAAAA,WAAAA,CACxC6hI,iBAAkB,eAClBC,CAAAA,YAAAA,CAAc,aACdnlI,CAAAA,QAAAA,CAAU,2FACVmkG,CAAAA,UAAAA,CAAY,mFACZyB,CAAAA,GAAAA,CAAK,KAAKkX,SACV7U,CAAAA,iBAAAA,CAAAA,CACA9vG,CAAAA,OAAAA,CAAS,KAAK3iC,IAAKgnE,CAAAA,gBAAAA,EAAoB,IAAKA,CAAAA,gBAAAA,CAC5Cp5B,SAAU,IAAK5tC,CAAAA,IAAAA,CAAKm/D,YAAgB,EAAA,IAAA,CAAKA,YACzCH,CAAAA,aAAAA,CAAe,IAAKr6C,CAAAA,IAAAA,CAAKq6C,cACzBu+B,qBAAuB,CAAA,IAAA,CAAKv9F,IAAKu9F,CAAAA,qBAAAA,EAAyB,IAAKA,CAAAA,qBAAAA,CAAwB,WACvFC,CAAAA,cAAAA,CAAgB,KAAKx9F,IAAKw9F,CAAAA,cAAAA,EAAkB,IAAKA,CAAAA,cAAAA,CAAAA,CAGzD,IAAMz9F,CAAAA,CAAY,IAAKstK,CAAAA,cAAAA,CAAet6I,KAAK21I,EAA8B,CAAA,CACrE12J,KAAO,CAAA,OAAA,CACPhS,KAAMs2I,CACT,CAAA,CAAA,CACDv2I,CAAUu8C,CAAAA,WAAAA,GAAchxD,SAAU,CAAA,IAAK,CACnC,IAAA,CAAK8/K,eAAkB,CAAA,CAAA,CAAA,CACnB,IAAKh1B,CAAAA,gBAAAA,EACL5oI,OAAOm/C,QAAS,CAAA,CAAA,CAAG,IAAKypF,CAAAA,gBAAgB,CAExC,CAAA,IAAA,CAAKzhI,OACL,GAAA,IAAA,CAAKi7J,wBACL7vK,CAAAA,CAAAA,CAAUU,KAAK,EAAA,EAEvB,CAAC,CAAA,CACDyH,UAAW,CAAA,IAAK,CACZ,IAAKqnK,CAAAA,6BAAAA,GACT,CAAA,CAAG,CAAC,EACR,CAAA,KAAO,CACCh1I,CAAAA,GACAA,EAAO9yB,wBAAwB,EAAA,CAC/B,IAAK2uI,CAAAA,gBAAAA,CAAmB5oI,MAAOqiK,CAAAA,OAAAA,CAAAA,CAE/B,IAAK7oG,CAAAA,gBAAAA,GAAqB,wCAC1B,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,0BAAA,CACxB,wBAAyB,YACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,0BAA2B,IAAKx6C,CAAAA,IAAAA,CAAKvQ,SACxC,CAAA,CAAA,CAED,KAAK4yD,gBAAqB,GAAA,kCAAA,EAC1B,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,sBAAA,CACxB,uBAAyB,CAAA,YAAA,CACzB,0BAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,yBAA2B,CAAA,IAAA,CAAKx6C,KAAKvQ,SACxC,CAAA,CAAA,CAGD,IAAK4yD,CAAAA,gBAAAA,EAAoB,kCAAsC,EAAA,IAAA,CAAKA,gBAAoB,EAAA,sCAAA,EACxF,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,QACzB,yBAA2B,CAAA,IAAA,CAAK+jD,YAChC,CAAA,yBAAA,CAA2B,IAAKx6C,CAAAA,IAAAA,CAAK5a,MACrC,CAAA,wBAAA,CAA0B,oBAC1B,sBAAwB,CAAA,gBAAA,CAC3B,CAED,CAAA,IAAA,CAAKi9D,kBAAoB,kCAAsC,EAAA,IAAA,CAAKA,gBAAoB,EAAA,sCAAA,EACxF,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,mBAAA,CACxB,wBAAyB,MACzB,CAAA,yBAAA,CAA2B,IAAK+jD,CAAAA,YAAAA,CAChC,0BAA2B,IAAKx6C,CAAAA,IAAAA,CAAK5a,MACrC,CAAA,wBAAA,CAA0B,oBAC1B,sBAAwB,CAAA,gBAAA,CAC3B,CAGL,CAAA,IAAMusI,CAAoB,CAAA,CACtB3xH,IAAM,CAAA,IAAA,CAAKA,KACX0iE,SAAW,CAAA,IAAA,CAAKA,SAChBvkF,CAAAA,GAAAA,CAAK,IAAKgtI,CAAAA,kBAAAA,CACVh1G,iBAAmB,CAAA,IAAA,CAAKA,kBACxBmkG,YAAc,CAAA,IAAA,CAAKA,YACnBz0F,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,CACf4lG,GAAK,CAAA,IAAA,CAAKu6B,aACVh2J,OAAS,CAAA,IAAA,CAAKA,OACdwqD,CAAAA,YAAAA,CAAc,KAAKA,YACnB6H,CAAAA,gBAAAA,CAAkB,IAAKA,CAAAA,gBAAAA,CACvB9lC,aAAc,IAAKA,CAAAA,YAAAA,CACnBuxG,iBAAmBl4G,CAAAA,CAAAA,CACnBmhF,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,CACfv5E,aAAc,IAAKA,CAAAA,YAAAA,CACnB8iH,WAAa,CAAA,IAAA,CAAKpwF,MAAM6B,QAASxoD,CAAAA,MAAAA,CACjCnG,KAAO,CAAA,IAAA,CAAKinK,eACZ36K,OAAS,CAAA,IAAA,CAAKA,OACd+f,CAAAA,SAAAA,CAAW,IAAKuQ,CAAAA,IAAAA,CAAKvQ,SACrBc,CAAAA,WAAAA,CAAa1H,OAAOC,QAASC,CAAAA,IAAAA,CAC7Bk4H,YAAc,CAAA,eAAA,CACdwQ,iBAAkB,IAAKA,CAAAA,gBAAAA,CAAAA,CAG3B,GAAI,IAAA,CAAKsO,sBACL,IAAKipB,CAAAA,iBAAAA,CAAkBz8K,IAAI,EAAA,CAC3B,IAAKi0J,CAAAA,kCAAAA,EACL,CAAA,IAAA,CAAKvP,sBAAsBn7B,qBAAsB67B,CAAAA,CAAiB,CAC/D,CAAA,KAAA,CACH,IAAMv2I,CAAAA,CAAY,MAAM,IAAA,CAAKg7I,iBAAiBsK,mBAAoB/O,CAAAA,CAAiB,CACnFp0I,CAAAA,QAAAA,CAASmiD,oBAAqB,CAAA,MAAM,CAAE,CAAA,CAAC,EAAEv9C,SAAUv/B,CAAAA,GAAAA,CAAI,uBAAuB,CAAA,CAC9Ew4B,EAAUu8C,WAAW,EAAA,CAAGhxD,SAAU,CAAA,IAAK,CACnC,IAAK8/K,CAAAA,eAAAA,CAAkB,CACnB,CAAA,CAAA,IAAA,CAAKh1B,gBACL5oI,EAAAA,MAAAA,CAAOm/C,QAAS,CAAA,CAAA,CAAG,KAAKypF,gBAAgB,CAAA,CAE5C,IAAKzhI,CAAAA,OAAAA,CAAU,IAAKq6H,CAAAA,QAAAA,EAAa,CAAA,IAAA,CAAKsW,uBAC1C,CAAC,EACL,CACA,IAAKiqB,CAAAA,6BAAAA,GACT,CACJ,GAEAK,sBAAsB,EAAA,CACd,IAAK5oG,CAAAA,gBAAAA,EAAoB,oCAAsC,IAAKA,CAAAA,gBAAAA,EAAoB,sCACxF,EAAA,IAAA,CAAKvhC,SAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,QACzB,yBAA2B,CAAA,IAAA,CAAKpb,IAAKm/D,CAAAA,YAAAA,CACrC,yBAA2B,CAAA,OAAA,CAC3B,wBAA0B,CAAA,mBAAA,CAC1B,uBAAwB,gBAC3B,CAAA,CAAA,CAELj9D,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,UAAUnY,MAAO,CAAA,uBAAuB,EACrF,CACA22J,sBAAoB,CAChBpjJ,QAAAA,CAASmiD,oBAAqB,CAAA,MAAM,EAAE,CAAC,CAAA,CAAEv9C,SAAUnY,CAAAA,MAAAA,CAAO,uBAAuB,CAAA,CAIjF,IAAK0lJ,CAAAA,oCAAAA,GACT,CACAA,oCAAAA,EAAoC,CAEhC,GADwB,KAAKvrD,sBAAuB1pE,CAAAA,sBAAAA,EAC/BiyE,EAAAA,KAAAA,EACb,KAAK1sE,IAAKq6C,CAAAA,aAAAA,EAAiB,SAAa,EAAA,IAAA,CAAKr6C,IAAKq6C,CAAAA,aAAAA,EAAiB,QAAU,CAAA,CAC7E,IAAMx8D,CAAQ,CAAA,WAAA,CACViL,QAASC,CAAAA,IAAAA,CAAKC,QAAQnL,CAAK,CAAA,CAAI,CAAM,CAAA,EAAA,CAACN,SAASmiD,oBAAqB,CAAA,MAAM,CAAE,CAAA,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUC,QAAS,CAAA,uBAAuB,GACzHyG,MAAO8mI,CAAAA,OAAAA,CAAQC,SAAU9mI,CAAAA,QAAAA,CAASC,IAAM,CAAA,EAAA,CAAID,QAASC,CAAAA,IAAAA,CAAKqD,OAAO,CAAGtD,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAA,CAAI,CAAC,CAAC,EAE7G,CAER,CACAykE,UAAWtiD,CAAAA,CAAAA,CAAW8lE,EAAe,CACjC,IAAMi8B,CAAyB,CAAA,IAAA,CAAKpmH,sBAAsBqsH,6BAA6B,EAAA,CACjF7qB,CAAsB,CAAA,IAAA,CAAKlhE,kBAAmBs7F,CAAAA,6BAAAA,CAA8B,IAAK9nH,CAAAA,SAAS,GAAGmtB,YAC7FuuI,CAAAA,CAAAA,CACFhuE,CAAuBA,EAAAA,CAAAA,CAAoBzyF,aAAeq3G,CAAwBqpD,EAAAA,iBAAAA,CAClF,IAAK/vK,CAAAA,IAAAA,EAAMgnE,kBAAoB,IAAK0rE,CAAAA,iBAAAA,GAChC,IAAK1yI,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,sCAAA,EAC/B,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,uBAAwB,kCACxB,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B,KAAKpb,IAAK2kB,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAK/J,CAAAA,IAAAA,CAAKm/D,YACnE,CAAA,yBAAA,CAA2B,KAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAKpU,IAAMgnE,EAAAA,gBAAAA,EAAoB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,mBAAqB,kCAC9D,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,uBAAwB,8BACxB,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B,KAAKpb,IAAK2kB,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,KAAK/J,IAAKm/D,CAAAA,YAAAA,CACnE,yBAA2B,CAAA,IAAA,CAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,CAGL,CAAA,CAAA,CAAC,KAAKs+H,iBAAqB,EAAA,IAAA,CAAKr+I,OAC5B,GAAA,IAAA,CAAK2yE,mBAAqB,sCAC1B,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,kCACxB,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B,KAAKuJ,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,aACzD,yBAA2B,CAAA,IAAA,CAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,EAED,IAAK4yD,CAAAA,gBAAAA,GAAqB,kCAC1B,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,uBAC3B,CAAA,sBAAA,CAAwB,8BACxB,CAAA,uBAAA,CAAyB,WACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,OAAS,GAAM,CAAA,IAAA,CAAKo1D,YACzD,CAAA,yBAAA,CAA2B,IAAKx6C,CAAAA,IAAAA,CAAKvQ,SACxC,CAAA,CAAA,CAAA,CAGL,KAAK25H,WACL,EAAA,IAAA,CAAKtoG,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,eAC3B,CAAA,sBAAA,CAAwB,qBACxB,uBAAyB,CAAA,eAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKisE,SAChC,CAAA,yBAAA,CAA2BoD,CAAS,CAAA,WAAA,CAAc,UAClD,wBAA0B,CAAA,+CAAA,CAC1B,sBAAwB,CAAA,8BAAA,CAC3B,CAED,CAAA,IAAA,CAAK91E,OACL,EAAA,IAAA,CAAKq6H,UAEL,CAAA,IAAA,CAAK36I,OAAW,EAAA,EAAA,EAAM,IAAK2L,CAAAA,IAAAA,EAAM3L,OACjC,GAAA,IAAA,CAAKA,QAAU,IAAK2L,CAAAA,IAAAA,CAAK3L,OAE7B,CAAA,CAAA,IAAI6gB,EAAsB,EACtB,CAAA,IAAA,CAAKjD,mBAAoB1E,CAAAA,cAAAA,GACzB2H,CAAchT,CAAAA,QAAAA,CAAS0vC,QAEnB,CAAA,IAAA,CAAKj9B,OACD,CAAA,IAAA,CAAKP,SAAWpH,EAAAA,WAAAA,IAAiB,MACjCkI,GAAAA,CAAAA,CAAc,IAAK2I,CAAAA,iBAAAA,CAAkBjB,eAAe,EAAA,CAAA,CAGxD1H,CAAc1H,CAAAA,MAAAA,CAAOC,SAASC,IAGtC,CAAA,IAAA,CAAK6R,aAActK,CAAAA,cAAAA,CAAeC,CAAW,CAAA,CAC7C,IAAMohB,CAAAA,CAAe,CACjBsX,QAAU,CAAA,IAAA,CAAKuxB,YACfx8B,CAAAA,OAAAA,CAAS,KAAKqkC,gBACdu2B,CAAAA,qBAAAA,CAAuB,IAAKA,CAAAA,qBAAAA,CAC5BC,eAAgB,IAAKA,CAAAA,cAAAA,CAAAA,CAEzB,GAAI,IAAA,CAAK74E,IAAK8D,CAAAA,aAAAA,CACV,IAAK27E,CAAAA,sBAAAA,CAAuB3G,mBACxB94E,CAAKpsD,CAAAA,IAAAA,CACL,OACAosD,CAAAA,CAAAA,CAAKwkJ,WACL,MACA,CAAA,IAAA,CAAK6G,aACLrrJ,CAAAA,CAAAA,CAAKv/B,GACL,CACAswB,CAAAA,CAAAA,KAAAA,CAAAA,CACA4gB,CAAO,CAAA,CAAA,KAER,CACH,IAAMykC,CAAY,CAAA,IAAIngB,KACtBmgB,CAAUp2C,CAAAA,IAAAA,CAAOA,CACjBo2C,CAAAA,CAAAA,CAAUpmD,QAAU,IAAKA,CAAAA,OAAAA,CACzBomD,CAAUoE,CAAAA,YAAAA,CAAe,KAAKA,YAC9BpE,CAAAA,CAAAA,CAAU75B,YAAe,CAAA,IAAA,CAAKA,YAC9B65B,CAAAA,CAAAA,CAAUjoG,IAAO,CAAA,GAAA,CACjBioG,EAAUlgB,qBAAwB,CAAA,CAAA,CAAA,CAClCkgB,CAAUjgB,CAAAA,YAAAA,CAAe2vC,CACzB1vB,CAAAA,CAAAA,CAAUhgB,aAAgB,CAAA,CAAA,CAAA,CAC1BggB,EAAUiM,gBAAmB,CAAA,IAAA,CAAKA,gBAClCjM,CAAAA,CAAAA,CAAU54B,YAAe,CAAA,IAAA,CAAKA,YAC9B44B,CAAAA,CAAAA,CAAU/f,eAAiB,IAAK3mD,CAAAA,OAAAA,CAChC0mE,CAAUiE,CAAAA,aAAAA,CAAgB,KAAKr6C,IAAKq6C,CAAAA,aAAAA,CACpCjE,CAAUrrB,CAAAA,cAAAA,CAAiB,KAAK22G,2BAA4BjnF,CAAAA,gBAAAA,EACxDsnD,CAAAA,CAAAA,EAA0BopD,CAC1B/0G,GAAAA,CAAAA,CAAUpf,SAAY,CAAA,CAAA,CAAA,CAAA,CAE1B,KAAK0qG,2BAA4Bp/E,CAAAA,UAAAA,CAAWlM,CAAS,EACzD,CACJ,CAEAngC,eAAAA,CAAgBjW,CAAW4V,CAAAA,CAAAA,CAAW,CAElC,GADAA,CAAAA,CAAO9yB,wBAAwB,EAAA,CAC3B,IAAKxH,CAAAA,IAAAA,CAAKkR,eAEN,CAAA,CAAC,KAAKwD,OACN,EAAA,CAAC,IAAK+9H,CAAAA,iBAAAA,EACN,KAAK1rE,gBACJ,GAAA,IAAA,CAAKA,gBAAqB,GAAA,sCAAA,EAA0C,KAAKA,gBAAqB,GAAA,kCAAA,CAAA,EAE/F,IAAKipG,CAAAA,sCAAAA,CAAuCtrJ,CAAI,CAAA,CAGhD,IAAKhQ,CAAAA,OAAAA,EACL,KAAK3U,IAAKgnE,CAAAA,gBAAAA,EACV,IAAK0rE,CAAAA,iBAAAA,GACJ,IAAK1yI,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,sCAAA,EAC5B,KAAKhnE,IAAKgnE,CAAAA,gBAAAA,GAAqB,kCAEnC,CAAA,EAAA,IAAA,CAAK+tE,oBAAqBpwH,CAAAA,CAAI,CAG9B,CAAA,IAAA,CAAKhQ,SACL,CAAC,IAAA,CAAK+9H,iBACN,EAAA,IAAA,CAAK1yI,KAAKgnE,gBACT,GAAA,IAAA,CAAKhnE,IAAKgnE,CAAAA,gBAAAA,GAAqB,wCAC5B,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,kCAAA,CAAA,EAEnC,IAAKipG,CAAAA,sCAAAA,CAAuCtrJ,CAAI,CAAA,CAEpD,KAAK+W,gBAAiBtU,CAAAA,mBAAAA,CAAoBzC,CAAI,CAAA,CAC9C,KAAKtG,WAAc,CAAA,CAAC,IAAKA,CAAAA,WAAAA,CAAAA,KACtB,CAKH,GAJI,IAAA,CAAK1J,OACL,EAAA,IAAA,CAAKq6H,QAAQ,EAAA,CAEjB,IAAK/oH,CAAAA,MAAAA,CAAOosE,UAAU,eAAiB1tE,CAAAA,CAAI,CACvC,CAAA,IAAA,CAAK1S,oBAAoB1E,cAAc,EAAA,CAAI,CAC3C,IAAA,CAAK0E,oBAAoB9D,mBAAoB,CAAA,YAAA,CAAc,CAAEu3E,WAAAA,CAAa,CAAMpoB,CAAAA,CAAAA,eAAAA,CAAiB,WAAW,CAAE,EAC9G,MACJ,CACA,IAAM0uB,CAAAA,CAAwB,CAC1B1uB,eAAAA,CAAiB,WAErB,CAAA,CAAA,IAAA,CAAKomB,YAAY3wD,IAAKi5D,CAAAA,CAAgB,EAC1C,CACJ,CAEAikF,sCAAAA,CAAuCtrJ,CAAS,CAAA,CAAA,CACxC,KAAKqiD,gBAAqB,GAAA,sCAAA,EAA0C,IAAKA,CAAAA,gBAAAA,GAAqB,qCAC9F,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,YAAA,CACxB,uBAAyB,CAAA,IAAA,CAAKmsD,eAAgB5iD,CAAAA,CAAI,EAAI,cAAiB,CAAA,YAAA,CACvE,yBAA2B,CAAA,IAAA,CAAKA,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,aACzD,yBAA2B,CAAA,IAAA,CAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,EAET,CAEA2gI,oBAAqBpwH,CAAAA,CAAAA,CAAS,CACtB,IAAK3kB,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,sCAAA,EAC/B,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,uBAC3B,CAAA,sBAAA,CAAwB,kCACxB,CAAA,uBAAA,CAAyB,IAAKmsD,CAAAA,eAAAA,CAAgB5iD,CAAI,CAAA,CAAI,eAAiB,YACvE,CAAA,yBAAA,CAA2BA,CAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,YACpD,CAAA,yBAAA,CAA2B,KAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAKpU,IAAKgnE,CAAAA,gBAAAA,GAAqB,kCAC/B,EAAA,IAAA,CAAKvhC,SAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,wBAC3B,sBAAwB,CAAA,8BAAA,CACxB,uBAAyB,CAAA,IAAA,CAAKmsD,gBAAgB5iD,CAAI,CAAA,CAAI,cAAiB,CAAA,YAAA,CACvE,yBAA2BA,CAAAA,CAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,KAAKo1D,YACpD,CAAA,yBAAA,CAA2Bx6C,CAAKvQ,CAAAA,SAAAA,CACnC,EAET,CACA46H,QAAAA,CAASz0G,CAAc,CAAA,IAAA,CAAI,CACnBA,CACI,GAAA,IAAA,CAAKv6B,IAAKgnE,CAAAA,gBAAAA,GAAqB,sCAC/B,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,mCACxB,uBAAyB,CAAA,gCAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKpb,KAAK2kB,IAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAK/J,IAAKm/D,CAAAA,YAAAA,CACnE,yBAA2B,CAAA,IAAA,CAAKx6C,KAAKvQ,SACxC,CAAA,CAAA,CAED,IAAKpU,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,kCAAA,EAC/B,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,uBAAyB,CAAA,gCAAA,CACzB,0BAA2B,IAAKpb,CAAAA,IAAAA,CAAK2kB,IAAK5a,CAAAA,MAAAA,CAAS,IAAM,IAAK/J,CAAAA,IAAAA,CAAKm/D,YACnE,CAAA,yBAAA,CAA2B,KAAKx6C,IAAKvQ,CAAAA,SAAAA,CACxC,CAED,CAAA,IAAA,CAAK25H,WACL,EAAA,IAAA,CAAKtoG,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,eAC3B,CAAA,sBAAA,CAAwB,qBACxB,uBAAyB,CAAA,eAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKisE,UAChC,yBAA2B,CAAA,UAAA,CAC3B,wBAA0B,CAAA,+CAAA,CAC1B,sBAAwB,CAAA,8BAAA,CAC3B,CAGT,CAAA,CAAA,IAAA,CAAKuoF,wBACLr1I,CAAAA,CAAAA,EAAUA,CAAO9yB,CAAAA,wBAAAA,GACjB,IAAKszI,CAAAA,gBAAAA,CAAiB6K,wBAAwB,GAClD,CACAqoB,gBAAiBtpJ,CAAAA,CAAAA,CAAS,CACtB,OAAO,IAAK2oJ,CAAAA,cAAAA,CAAe3+I,mBAAoBhK,CAAAA,CAAAA,CAAK5a,MAAM,CAC9D,CAEAw9D,eAAgB5iD,CAAAA,CAAAA,CAAS,CAErB,OAAO,IAAK+W,CAAAA,gBAAAA,CAAiBhX,sBAAsBC,CAAI,CAC3D,CAEA0xH,YAAAA,EAAY,CACJ,IAAA,CAAK1rI,IAAM7H,EAAAA,GAAAA,GACX,KAAKA,GAAMwxB,CAAAA,IAAAA,CAAKC,KAAMD,CAAAA,IAAAA,CAAKG,UAAU,IAAK9pB,CAAAA,IAAAA,CAAK7H,GAAG,CAAC,GAC/C,IAAK4vI,CAAAA,iBAAAA,EAAqB,IAAKz3G,CAAAA,YAAAA,IAC/B,IAAK60G,CAAAA,kBAAAA,CAAqB,IAAKlvG,CAAAA,kBAAAA,CAAmBy9F,aAAa,IAAK15G,CAAAA,IAAAA,CAAK5a,MAAQ,CAAA,QAAQ,IAG7F,IAAK4a,CAAAA,IAAAA,CAAK8D,aACV,GAAA,IAAA,CAAK3lB,IAAM,IAAK6hB,CAAAA,IAAAA,CAAK,YAAgB,CAAA,YAAA,CAAgB,GAEpC,CAAA,CAAA,IAAA,CAAKrkB,qBAAsBU,CAAAA,qBAAAA,GACpCiL,qBACR,GAAA,IAAA,CAAKnJ,GAAM,CAAA,IAAA,CAAK++H,aAAa31H,WAAY,CAAA,IAAA,CAAKpJ,GAAK,CAAA,IAAA,CAAK6hB,KAAK5a,MAAM,CAAA,CACnE,IAAK+lI,CAAAA,kBAAAA,CAAqB,IAAKjO,CAAAA,YAAAA,CAAa31H,WAAY,CAAA,IAAA,CAAK4jI,mBAAoB,IAAKnrH,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,EAEzG,CAEA41H,eAAAA,EAAe,CACX,IAAA,CAAKmQ,mBAAqB,IAAK9kI,CAAAA,WACnC,CAEA+iK,kBAAAA,CAAmBhzG,CAAc,CAAA,CAC7B,GAAI,CAACA,GAAa,CAACA,CAAAA,CAAUpwD,IAAQ,EAAA,IAAA,CAAKyhK,uBACtC,IAAKN,CAAAA,eAAAA,CAAkB,EACpB,CAAA,KAAA,CACH,IAAMjgK,CAAkB,CAAA,IAAA,CAAKvL,qBAAsBwL,CAAAA,iBAAAA,EACnD,CAAA,OAAQD,CAAWqzH,CAAAA,eAAAA,CAAgBnkE,EAAUpwD,IAAI,CAAA,EAC7C,KAAKkB,CAAWqzH,CAAAA,eAAAA,CAAgB,CAAC,CAAA,CAAG,CAChC,IAAK4sC,CAAAA,eAAAA,CAAkB,EACvB,CAAA,KACJ,CACA,KAAKjgK,CAAWqzH,CAAAA,eAAAA,CAAgB,CAAC,CAAG,CAAA,CAChC,IAAK4sC,CAAAA,eAAAA,CAAkB,GACvB,KACJ,CACA,KAAKjgK,CAAAA,CAAWqzH,gBAAgB,CAAC,CAAA,CAAG,CAChC,IAAA,CAAK4sC,eAAkB,CAAA,EAAA,CACvB,KACJ,CACA,KAAKjgK,CAAWqzH,CAAAA,eAAAA,CAAgB,CAAC,CAAA,CAAG,CAChC,IAAA,CAAK4sC,eAAkB,CAAA,EAAA,CACvB,KACJ,CACA,KAAKjgK,CAAWqzH,CAAAA,eAAAA,CAAgB,CAAC,CAAA,CAAG,CAChC,IAAA,CAAK4sC,gBAAkB,EACvB,CAAA,KACJ,CACA,KAAKjgK,EAAWqzH,eAAgB,CAAA,CAAC,CAAG,CAAA,CAChC,KAAK4sC,eAAkB,CAAA,EAAA,CACvB,KACJ,CACJ,CACJ,CACJ,CAEAyD,6BAAAA,EAA6B,CACF,IAAKjvK,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACpDm3D,sCACXj2D,QAASq8D,CAAAA,aAAAA,CAAc,yDAAyD,CAAA,GAC5Er8D,SAASq8D,aAAc,CAAA,iDAAiD,CACvEr8D,GAAAA,QAAAA,CAASq8D,aAAc,CAAA,iDAAiD,CAAkBx2D,CAAAA,KAAAA,CAAMo4D,IAC5Fj+D,QAASq8D,CAAAA,aAAAA,CAAc,yDAAyD,CAAA,CAAkB6B,aAAe,IAEtHl+D,CAAAA,CAAAA,QAAAA,CAASq8D,aAAc,CAAA,kDAAkD,IACxEr8D,QAASq8D,CAAAA,aAAAA,CAAc,kDAAkD,CAAA,CAAkBx2D,KAAMo4D,CAAAA,GAAAA,CAC7Fj+D,QAASq8D,CAAAA,aAAAA,CAAc,yDAAyD,CAAkB6B,CAAAA,YAAAA,CAAe,IAItI,CAAA,EAAA,CAEA+kF,kCAAkC,EAAA,CAE9B,GADwB,IAAA,CAAKr8D,uBAAuB1pE,sBAAsB,EAAA,EACrDiyE,KAEb,EAAA,EAAE,IAAK1sE,CAAAA,IAAAA,CAAKC,UAAclP,EAAAA,IAAAA,EAAa,CAAC,IAAKiP,CAAAA,IAAAA,CAAKC,UAClD,CAAA,EAAA,IAAA,CAAKD,KAAKq6C,aAAiB,EAAA,SAAA,EAC3B,IAAKr6C,CAAAA,IAAAA,CAAKq6C,eAAiB,QAC7B,CAAA,CACE,IAAMumF,CAAAA,CAAoB/3I,MAAOC,CAAAA,QAAAA,CAASC,IACtC83I,CAAAA,CAAAA,CACAC,EAAuB,EACvB,CAAA,IAAA,CAAKC,kBAAmBH,CAAAA,CAAS,GACjCC,CAAeD,CAAAA,CAAAA,CAAUx0I,MAAO,CAAA,CAAA,CAAGw0I,EAAU53I,OAAQ,CAAA,GAAG,CAAC,CAAA,CACzD83I,CAAeF,CAAAA,CAAAA,CAAUx0I,MAAOw0I,CAAAA,CAAAA,CAAU53I,QAAQ,GAAG,CAAC,CAEtD63I,EAAAA,CAAAA,CAAeD,EAEf,IAAKI,CAAAA,kBAAAA,CAAmBH,CAAY,CAAA,CACpCA,EAAeA,CAAe,CAAA,YAAA,CAAe,IAAK7gI,CAAAA,IAAAA,CAAK5a,MAEvDy7I,CAAAA,CAAAA,CAAeA,CAAe,CAAA,aAAA,CAAgB,KAAK7gI,IAAK5a,CAAAA,MAAAA,CAE5Dy7I,CAAeA,CAAAA,CAAAA,CAAeC,CAC9Bj4I,CAAAA,MAAAA,CAAO8mI,OAAQC,CAAAA,SAAAA,CAAU9mI,SAASC,IAAM,CAAA,EAAA,CAAI83I,CAAY,EAC5D,CAER,CAEAG,kBAAmBhnI,CAAAA,CAAAA,CAAW,CAC1B,OAAIA,CAAAA,CAAIuhE,WAAY,CAAA,GAAG,EAAI,CAAMvhE,GAAAA,CAAAA,CAAI5wC,MAIzC,CAEA23K,mBAAmB/mI,CAAW,CAAA,CAC1B,OAAIA,CAAAA,EAAAA,CAAOA,EAAAA,CAAAA,CAAIhR,OAAQ,CAAA,GAAG,EAAI,CAIlC,CAAA,CAAA,CAEAjc,WAAW,EAAA,CACH,KAAKoiJ,kBACL,GAAA,IAAA,CAAKA,kBAAmBroJ,CAAAA,WAAAA,GACxB,IAAKmqG,CAAAA,QAAAA,CAAS90G,IAAI,EAAA,CAClB,IAAK80G,CAAAA,QAAAA,CAASlpG,QAAQ,EAAA,EAE9B,yCAp+BS0gL,CAAsBrqK,EAAAA,GAAAA,CA4GPE,EAAe,CAAA,CAAA,EAAAF,GAAAQ,CAAAA,GAAA,CAAAR,CAAAA,GAAAA,CAAAK,EAAA,CAAAL,CAAAA,GAAAA,CAAA69D,IAAA,CAAA,CAAA79D,GAAAG,CAAAA,GAAA,CAAAH,CAAAA,GAAAA,CAAA84C,IAAA,CAAA94C,CAAAA,GAAAA,CAAAgjB,IAAA,CAAA,CAAAhjB,GAAA4V,CAAAA,EAAA,CAAA5V,CAAAA,GAAAA,CAAAwmC,IAAA,CAAAxmC,CAAAA,GAAAA,CAAA0nB,EAAA,CAAA,CAAA1nB,GAAAyI,CAAAA,EAAA,CAAAzI,CAAAA,GAAAA,CAAA9T,IAAA,CAAA8T,CAAAA,GAAAA,CAAAg+D,IAAA,CAAA,CAAAh+D,IAAAssG,EAAA,CAAA,CAAAtsG,GAAAmmC,CAAAA,IAAA,EAAAnmC,GAAAqK,CAAAA,EAAA,CAAArK,CAAAA,GAAAA,CAAA2V,IAAA,CAAA,CAAA3V,GAAAmiC,CAAAA,IAAA,EAAAniC,GAAAqhE,CAAAA,IAAA,CAAArhE,CAAAA,GAAAA,CAAA85F,EAAA,CAAA,CAAA95F,GAAAyiC,CAAAA,IAAA,EAAAziC,GAAA+Y,CAAAA,IAAA,CAAA/Y,CAAAA,GAAAA,CAAAic,IAAA,CAAA,CAAAjc,GAAA83I,CAAAA,CAAA,EAAA93I,GAAAu3G,CAAAA,EAAA,CAAAv3G,CAAAA,GAAAA,CAAAkyG,IAAA,CAAAlyG,CAAAA,GAAAA,CAAA2gG,EAAA,CAAA,CAAA3gG,IAAA4I,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAAm7J,EAAA,CAAA,CAAA,IAAA,CA5G9BsG,CAAsB19K,CAAAA,SAAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAAsxE,YAAA,CAAA,SAAAnvE,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,GAAtBY,EAAA,CAAA,QAAA,CAAA,UAAA,CAAA,OAAAtrB,CAAAA,CAAAu2D,QAAA,EAAU,EAAA,CAAA6B,CAAAA,CAAAA,EAAA,EDnEvBvvC,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,gBAAAA,CAAAA,kBAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,gBAAAA,CAAAA,kBAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,UAAAA,CAAAA,YAAAA,CAAAA,YAAAA,CAAAA,cAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,SAAAA,CAAAA,WAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,cAAAA,CAAAA,gBAAAA,CAAAA,qBAAAA,CAAAA,uBAAAA,CAAAA,qBAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,6BAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,8BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,UAAAA,CAAAA,SAAAA,CAAAA,cAAAA,CAAAA,mBAAAA,CAAAA,iBAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,aAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,gCAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,gCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gCAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,qCAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,qCAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,2CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,kCAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,wBAAAA,CAAAA,oBAAAA,CAAAA,WAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,iDAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,0EAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,eAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,wBAAAA,CAAAA,oBAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,4BAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,eAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kCAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,wBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,kBAAAA,CAAAA,UAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAA89K,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAiE,CAAAC,CAAAA,EAAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAiCgB,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CA4FL,CAAA,CAAA,CAAAC,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CA0IrE,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAqFXpgL,CAAAA,EAAAA,EA5VgC+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAwtC,CAAAA,OAAAA,EAAA,CAAAxtC,CAAAA,CAAAurK,iBAAA,CAAA,CAiCAz/I,IAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAwtC,OAAAxtC,EAAAA,CAAAA,CAAAurK,iBAAAvrK,EAAAA,CAAAA,CAAAomM,aAAA,CA4FtBt6K,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAwtC,CAAAA,OAAAA,EAAA,CAAAxtC,CAAA23G,CAAAA,UAAAA,EAAAA,CAAA33G,CAAAw9C,CAAAA,IAAAA,EAAA,KAAA,IAAAx9C,CAAAA,CAAAA,CAAAw9C,IAAAsrE,CAAAA,UAAAA,GAAA,eAAA,CAoIDh9F,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAwtC,CAAAA,OAAAA,EAAAxtC,EAAA23G,UAAA33G,EAAAA,CAAAA,CAAAkqI,aAAAlqI,EAAAA,CAAAA,CAAAA,CAAAw9C,MAAA,IAAA,CAAA,IAAA,CAAAx9C,CAAAw9C,CAAAA,IAAAA,CAAAsrE,aAAA,eAAA,CAAA,CA6DAh9F,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAAwtC,UAAAxtC,CAAAw9C,CAAAA,IAAAA,EAAA,IAAA,CAAA,IAAA,CAAAx9C,EAAAw9C,IAAAsrE,CAAAA,UAAAA,GAAA,eAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CCxQDlwD,GACAC,EACAuoI,CAAAA,EAAAA,CACAzoI,EACAwnI,CAAAA,EAAAA,CACAX,EACAlxB,CAAAA,EAAAA,CACA/sE,GACA+hE,CAAAA,IAAAA,CACAC,IAAuB,CAAAj3I,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAGzB,CAAA,IAAO25K,CAAPmD,CAAAA,CAAAA,CAAAA,OAAOnD,CAAsB,CAAA,IAu+B7B,SAAUoC,EAAAA,CAAkBxzI,CAAmBw0I,CAAAA,CAAAA,CAAsB,CACvE,GAAItuK,SAASq8D,aAAc,CAAA,oBAAoB,CAAG,CAAA,CAC9C,IAAMkyG,CAAkBvuK,CAAAA,QAAAA,CAASqhI,gBAAiB,CAAA,GAAA,CAAMvnG,CAAS,CACjE,CAAA,GAAIy0I,CAAW1iM,CAAAA,MAAAA,CAAS,CACpB,CAAA,IAAA,IAASrb,CAAI,CAAA,CAAA,CAAGA,EAAI+9M,CAAW1iM,CAAAA,MAAAA,CAAQrb,CAAK,EAAA,CAAA,CACxC,IAAMg+M,CAA8BD,CAAAA,CAAAA,CAAW/9M,CAAC,CAAA,CAAE6rG,cAAc,qDAAqD,CAAA,CAC/GoyG,CAA8BF,CAAAA,CAAAA,CAAW/9M,CAAC,CAAA,CAAE6rG,aAAc,CAAA,GAAA,CAAMiyG,CAAc,CAC9EI,CAAAA,CAAAA,CAAuBH,CAAW/9M,CAAAA,CAAC,EAAE6rG,aAAc,CAAA,iBAAiB,CACpEsyG,CAAAA,CAAAA,CAAiCJ,EAAW/9M,CAAC,CAAA,CAAE6rG,aACjD,CAAA,iFAAiF,CAE/EuyG,CAAAA,CAAAA,CAAgCL,CAAW/9M,CAAAA,CAAC,EAAE6rG,aAAc,CAAA,wBAAwB,CACtFmyG,CAAAA,CAAAA,EAAkBC,CAAkBC,EAAAA,CAAAA,GACpCH,CAAW/9M,CAAAA,CAAC,EAAEq+M,WAAc,CAAA,UAAA,CACxBL,CAAAA,CAAe3oK,KAAMvX,CAAAA,SAAAA,CAAY,UACjCmgL,CAAAA,CAAAA,CAAe5oK,MAAMvX,SAAY,CAAA,UAAA,CACjCogL,CAAQ7oK,CAAAA,KAAAA,CAAMvX,UAAY,UACtBqgL,CAAAA,CAAAA,GACAA,CAAkB9oK,CAAAA,KAAAA,CAAMo4D,IAAM,GAC9B0wG,CAAAA,CAAAA,CAAkB9oK,KAAMrrB,CAAAA,KAAAA,CAAQ,GAEhCo0L,CAAAA,CAAAA,CAAAA,EACAA,CAAiB/oK,CAAAA,KAAAA,CAAM0L,YAAY,+BAAiC,CAAA,UAAU,EAEtF,CAAA,CACAg9J,CAAW/9M,CAAAA,CAAC,CAAEs+M,CAAAA,SAAAA,CAAY,UAAA,CACtBN,CAAAA,CAAe3oK,KAAMvX,CAAAA,SAAAA,CAAY,aACjCmgL,CAAAA,CAAAA,CAAe5oK,KAAMvX,CAAAA,SAAAA,CAAY,cACjCogL,CAAQ7oK,CAAAA,KAAAA,CAAMvX,SAAY,CAAA,aAAA,CACtBqgL,IACAA,CAAkB9oK,CAAAA,KAAAA,CAAMo4D,GAAM,CAAA,SAAA,CAC9B0wG,EAAkB9oK,KAAMrrB,CAAAA,KAAAA,CAAQ,SAEhCo0L,CAAAA,CAAAA,CAAAA,GACAJ,CAAe3oK,CAAAA,KAAAA,CAAMvX,SAAY,CAAA,aAAA,CACjCmgL,EAAe5oK,KAAMvX,CAAAA,SAAAA,CAAY,UACjCogL,CAAAA,CAAAA,CAAQ7oK,KAAMvX,CAAAA,SAAAA,CAAY,aAC1BsgL,CAAAA,CAAAA,CAAiB/oK,MAAM0L,WAAY,CAAA,+BAAA,CAAiC,aAAa,CAAA,EAEzF,CACAg9J,CAAAA,CAAAA,CAAW/9M,CAAC,CAAA,CAAEu+M,YAAc,UAAA,CACxBN,CAAe5oK,CAAAA,KAAAA,CAAMvX,UAAY,aACjCogL,CAAAA,CAAAA,CAAQ7oK,KAAMvX,CAAAA,SAAAA,CAAY,cACtBsgL,CACAH,GAAAA,CAAAA,CAAe5oK,KAAMvX,CAAAA,SAAAA,CAAY,UACjCogL,CAAAA,CAAAA,CAAQ7oK,KAAMvX,CAAAA,SAAAA,CAAY,cAC1BsgL,CAAiB/oK,CAAAA,KAAAA,CAAM0L,WAAY,CAAA,+BAAA,CAAiC,aAAa,CAEzF,EAAA,CAAA,CACAg9J,CAAW/9M,CAAAA,CAAC,EAAEw+M,UAAa,CAAA,UAAA,CACvBP,CAAAA,CAAe5oK,KAAMvX,CAAAA,SAAAA,CAAY,UACjCogL,CAAAA,CAAAA,CAAQ7oK,MAAMvX,SAAY,CAAA,WAC9B,CAER,EAAA,CAER,CACJ,CC1lCA,IAAa2gL,EAAgB,CAAA,CAAA,IAAA,CAAvB,IAAOA,CAAAA,CAAP,MAAOA,CAAgB,CAGzBlsM,WAAAA,CAAoBwvF,CAAiB,CAAA,CAAjB,KAAAA,MAAAA,CAAAA,EAAoB,CAExC4wF,mBAAAA,CAAoB/O,CAAsB,CAAA,CACtC,IAAMv2I,CAAAA,CAAY,KAAK00D,MAAO1hC,CAAAA,IAAAA,CAAKq+I,EAAyB,CAAA,CACxDp/J,KAAO,CAAA,OAAA,CACPhS,IAAMs2I,CAAAA,CAAAA,CACT,EACD,OAAKv2I,IAAAA,CAAAA,SAAAA,CAAYA,CACjBA,CAAAA,CAAAA,CAAUu8C,aAAchxD,CAAAA,SAAAA,CAAU,IAAK,CACnC,KAAKyU,SAAY2V,CAAAA,KAAAA,EACrB,CAAC,CAAA,CACM3V,CACX,CAEAynK,oBAAqBjhC,CAAAA,CAAAA,CAAsB,CACnC,IAAKxmI,CAAAA,SAAAA,EACL,IAAKA,CAAAA,SAAAA,CAAUU,MAAM8lI,CAAiB,EAE9C,CAEA6e,uBAAAA,CAAwB9O,EAAsB,CAC1C,IAAMv2I,CAAY,CAAA,IAAA,CAAK00D,MAAO1hC,CAAAA,IAAAA,CAAKq6I,EAAwB,CAAA,CACvDptK,KAAMs2I,CACT,CAAA,CAAA,CACD,OAAK+6B,IAAAA,CAAAA,aAAAA,CAAgBtxK,EACrBA,CAAUu8C,CAAAA,WAAAA,EAAchxD,CAAAA,SAAAA,CAAU,IAAK,CACnC,IAAA,CAAK+lL,aAAgB37J,CAAAA,KAAAA,EACzB,CAAC,CAAA,CACM3V,CACX,CAEA6lJ,0BAAwB,CAChB,IAAA,CAAKyrB,aACL,EAAA,IAAA,CAAKA,aAAc5wK,CAAAA,KAAAA,GAE3B,CACA8mK,uBAAqB,CACjB,IAAIlgF,CAAoB,CAAA,EAAA,CACxB,OAAI,IAAA,CAAKtnF,SACLsnF,GAAAA,CAAAA,CAAY,KAAKtnF,SAAU2/D,CAAAA,iBAAAA,CAAkB2nB,SAE1CA,CAAAA,CAAAA,CACX,yCA7CS8pF,CAAgBl9K,EAAAA,GAAAA,CAAA2sE,IAAA,CAAA,CAAA,CAAhBuwG,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAgBn/M,OAAhBm/M,CAAAA,CAAAA,CAAgB5mK,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,EAEhB,IAAO2mK,CAAAA,CAAPG,CAAOH,CAAAA,OAAAA,CAAgB,KCaLnhL,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EACIC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACAD,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,SAAA8nC,EAAA,CAAA5nC,EAAAA,CAAAC,CAAA,CAAA,CAAA,IAAAstC,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAtF,eAAAsF,CAAAA,CAAAA,CAAAvb,KAAA4V,CAAA,CAA6B,CAAA,CAAA,CAEsBrqC,CAAAA,EAAAA,EAAM,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAAlE2pB,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,CAAA7hB,CAAAA,WAAAA,CAAA6hB,CAAAsvB,CAAAA,cAAAA,CAAAtvB,EAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAORz/D,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACIC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CADS2pB,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAA1/F,EAAAyuG,UAAAn1G,CAAAA,EAAA,EAETxpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAiD8U,GAAA,CAAA,CAAA,CAAAqiK,EAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAA0Bj3K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAA1B2pB,EAAA,EAAA,CAAA8R,EAAAjB,CAAAA,EAAAA,CAAA,EAAA,CAAAo8B,CAAAA,CAAAA,CAAAsK,QAAA,CAAA,8BAKzCx6C,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACI8U,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,EADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAAnvB,CAAAqpI,CAAAA,UAAAA,CAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAHRv5K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAA+D,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACnC8U,EAAA,CAAA,CAAA,CAAW5U,CAAAA,EAAAA,GACnCkC,EAAA,CAAA,CAAA,CAAAm/K,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAGJrhL,CAAAA,EAAAA,qBAJ4B+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAunG,CAAAA,KAAA,CAClBx0I,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAunG,CAAAA,KAAA,8BAMNz3I,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACI8U,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,EADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAAnvB,CAAAupI,CAAAA,aAAAA,CAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAHRz5K,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAkE,EAAA,KAAA,CAAA,EAAA,CACtC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAc5U,EAAA,EAAA,CACtCkC,GAAA,CAAAo/K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAGJthL,CAAAA,EAAAA,qBAJ4B+C,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAypI,CAAAA,QAAA,CAClB12K,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAypI,CAAAA,QAAA,8BAMN35K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACI8U,EAAA,CAAA,CAAA,CACJ5U,CAAAA,EAAAA,EADI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAo8D,CAAAA,EAAAA,CAAA,IAAAnvB,CAAA0pI,CAAAA,mBAAAA,CAAA,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAHR55K,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA8E,EAAA,KAAA,CAAA,EAAA,CACzC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAoB5U,EAAA,EAAA,CACrDkC,GAAA,CAAAq/K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAGJvhL,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAJqC2pB,GAAA,CAAA,CAAA,CAAA8R,EAAAm7B,CAAAA,CAAAA,CAAA4pI,cAAA,CAAA,CAC3B72K,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAA4pI,cAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAfd95K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EACIoC,EAAA,CAAA,CAAA,CAAAs/K,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+D,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAMG,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAYtE1hL,CAAAA,EAAAA,EAlBU+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAunG,CAAAA,KAAA,CAMAx0I,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAypI,CAAAA,QAAA,EAMA12K,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAA4pI,CAAAA,cAAA,EAsBV95K,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAIIyC,CAAAA,EAAAA,CAAA,QAAA,UAAA,CAAAE,EAAAgoC,CAAAA,CAAA,EAAA,IAAAuF,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAA+mC,CAAAA,UAAAA,CAAA/mC,EAAAvb,IAAiB,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAInCz0B,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAPI4pB,GAAA,UAAAgtC,CAAAA,CAAAA,CAAAyoG,QAAA,CAAA,CAAqB,MAAA,CAAA,UAAA,CACF,CAAA,SAAA,CAAA,SAAA,CACE,CAAA,iBAAA,CAAAzoG,CAAAgqI,CAAAA,iBAAA,EAEgB,kBAAA,CAAA,6CAAA,CAC6B,CAAA,UAAA,CAAAhqI,EAAA0uG,YAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAqBlF3+I,EAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,CAAgFiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,gBAAAgtC,CAAAmH,CAAAA,aAAA,ECzD5F,CAAA,CAAA,IAAa+pI,EAAuB,CAAA,CAAA,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAqDhCnsM,WAAAA,CACW86B,CACyBC,CAAAA,CAAAA,CACxBC,CACAK,CAAAA,CAAAA,CACAo7B,EACAzV,CACAy9D,CAAAA,CAAAA,CACAz5D,CACAwb,CAAAA,CAAAA,CACAlmB,EACAg1C,EACA+4G,CAAAA,EAAAA,CACAv+K,EACA+iB,CAAAA,EAAAA,CACAijD,GACA+zB,EACAiyD,CAAAA,EAAAA,CACA0J,EACA3wC,CAAAA,EAAAA,CACAq1B,EACAtH,CAAAA,EAAAA,CAAiC,CApBlC,IAAA,CAAA9hI,UAAAA,CACyB,CAAA,IAAA,CAAAC,IAAAA,CAAAA,CAAAA,CACxB,IAAAC,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAAK,sBAAAA,CACA,CAAA,IAAA,CAAAo7B,gBAAAA,CAAAA,CAAAA,CACA,IAAAzV,CAAAA,MAAAA,CAAAA,CACA,CAAA,IAAA,CAAAy9D,YAAAA,CACA,CAAA,IAAA,CAAAz5D,iBAAAA,CAAAA,CAAAA,CACA,KAAAwb,QAAAA,CAAAA,CAAAA,CACA,IAAAlmB,CAAAA,aAAAA,CAAAA,EACA,IAAAg1C,CAAAA,eAAAA,CAAAA,EACA,CAAA,IAAA,CAAA+4G,cAAAA,CAAAA,EAAAA,CACA,IAAAv+K,CAAAA,UAAAA,CAAAA,GACA,IAAA+iB,CAAAA,aAAAA,CAAAA,EACA,CAAA,IAAA,CAAAijD,uBAAAA,EACA,CAAA,IAAA,CAAA+zB,sBAAAA,CAAAA,EAAAA,CACA,KAAAiyD,gBAAAA,CAAAA,EAAAA,CACA,IAAA0J,CAAAA,cAAAA,CAAAA,EACA,CAAA,IAAA,CAAA3wC,UAAAA,CAAAA,EAAAA,CACA,KAAAq1B,0BAAAA,CAAAA,EAAAA,CACA,IAAAtH,CAAAA,YAAAA,CAAAA,GAxEZ,IAAA4Q,CAAAA,iBAAAA,CAAyB,CAMzB,CAAA,CAAA,IAAA,CAAA33G,kBAA6B,CAO7B,CAAA,CAAA,IAAA,CAAAksG,eAAuB,CAAA,IAAA,CACvB,IAAAuiC,CAAAA,UAAAA,CAAqB,EACrB,CAAA,IAAA,CAAAE,cAAwB,EACxB,CAAA,IAAA,CAAAG,mBAA8B,CAAA,EAAA,CAC9B,IAAAniC,CAAAA,KAAAA,CAAa,IACb,CAAA,IAAA,CAAAkiC,SAAgB,IAChB,CAAA,IAAA,CAAAG,cAAsB,CAAA,IAAA,CACtB,IAAA37I,CAAAA,YAAAA,CAAoB,IACpB,CAAA,IAAA,CAAAqhC,eAAyB,kBACzB,CAAA,IAAA,CAAAC,gBAA2B,CAAA,gBAAA,CAC3B,KAAApxC,WAAuB,CAAA,CAAA,CAAA,CACvB,IAAAq9F,CAAAA,QAAAA,CAAgB,EAChB,CAAA,IAAA,CAAArnH,OAAkB,CAAA,EAAA,CAClB,IAAAg5B,CAAAA,iBAAAA,CAA6B,CAC7B,CAAA,CAAA,IAAA,CAAA8O,YAAmB,IACnB,CAAA,IAAA,CAAAwyG,UAAkB,CAAA,IAAA,CAElB,KAAAP,eAA2B,CAAA,CAAA,CAAA,CAC3B,IAAA+B,CAAAA,sBAAAA,CAAkC,GAalC,IAAAtoG,CAAAA,SAAAA,CAAmB,EAAA,CAGnB,IAAAqoG,CAAAA,2BAAAA,CAAuC,CAGvC,CAAA,CAAA,IAAA,CAAAvH,SAAoB,CAwBhB,CAAA,CAAA,IAAA,CAAK8b,cAAe3J,CAAAA,mBAAAA,CAAoB,KAAKC,gBAAgB,EACjE,CAEAr6I,QAAAA,EAAQ,CACJ,IAAKkyI,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAKC,YAAY,EAAA,CACjB,IAAK7nI,CAAAA,UAAAA,CAAa,KAAKuU,aAAcvT,CAAAA,eAAAA,EACjC,CAAA,IAAA,CAAKhM,IAAQ,EAAA,IAAA,CAAKA,IAAK3L,CAAAA,OAAAA,EAAW,IAClC,IAAKy5K,CAAAA,gBAAAA,EAET,CAAA,IAAA,CAAKv5G,eAAgB9nB,CAAAA,kBAAAA,CAAmB,IAAK9nB,CAAAA,IAAAA,CAAK5a,OAAQ,IAAK4a,CAAAA,IAAAA,CAAK6lB,QAAQ,CAAA,CAAEl/C,UAAWlxB,CAAO,EAAA,CACxFA,CACA,GAAA,IAAA,CAAK4sK,gBAAkB5sK,CAAI4sK,CAAAA,eAAAA,CAC3B,IAAKS,CAAAA,KAAAA,CAAQrtK,CAAIqtK,CAAAA,KAAAA,CACjB,IAAKkiC,CAAAA,QAAAA,CAAWvvM,EAAIuvM,QACpB,CAAA,IAAA,CAAKG,cAAiB1vM,CAAAA,CAAAA,CAAI0vM,gBAE9B,IAAK+H,CAAAA,kBAAAA,GACT,CAAC,EACD,IAAKl9J,CAAAA,OAAAA,CAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,OAAO,EAAA,CACzC,IAAKmwB,CAAAA,QAAAA,CAAW,KAAKhzB,aAAc4xB,CAAAA,aAAAA,CACnC,IAAKovG,CAAAA,MAAAA,CAAS,KAAKp3G,gBAAiBlV,CAAAA,4BAAAA,CAA6Bl7B,SAAW+6B,CAAAA,CAAAA,EAAuB,CAC3FA,CACA,GAAA,IAAA,CAAKhI,WAAc,CAAA,IAAA,CAAKqd,gBAAiBhX,CAAAA,qBAAAA,CAAsB,IAAKC,CAAAA,IAAI,GAEhF,CAAC,CAAA,CAEG,IAAKqiD,CAAAA,gBAAAA,EAAoB,sCACzB,EAAA,IAAA,CAAKA,gBAAoB,EAAA,kCAAA,EACzB,KAAKhnE,IAAK4lI,CAAAA,YAAAA,EAEV,IAAKngG,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,QAC3B,sBAAwB,CAAA,mBAAA,CACxB,uBAAyB,CAAA,MAAA,CACzB,0BAA2B,IAAK+jD,CAAAA,YAAAA,CAChC,yBAA2B,CAAA,OAAA,CAC3B,yBAA0B,kBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,CAAA,CAEL,IAAKszE,CAAAA,iBAAAA,EAAqB,IAAK0S,CAAAA,kCAAAA,GAC/B,IAAKpS,CAAAA,cAAAA,EACL,CAAA,IAAA,CAAKpK,QAAW,CAAA,CAAC,IAAKQ,CAAAA,0BAAAA,CAA2BttH,YACrD,CACAk3H,cAAc,EAAA,CACV,IAAMhyI,CAAAA,CAAgB,IAAKT,CAAAA,qBAAAA,CAAsBU,uBAC3C0tF,CAAAA,CAAAA,CAA+B,IAAKnvE,CAAAA,aAAAA,CAAclJ,6BACpD,IAAKsO,CAAAA,IAAAA,CAAKvQ,SACV,CAAA,IAAA,CAAK9T,sBAAsBwL,iBAAiB,EAAA,CAAG6iF,gCAAgC,CAAA,CAE/E4kD,CAA6B,CAAA,IAAA,CAAKjzI,qBAAsBwL,CAAAA,iBAAAA,GAAoBynI,0BAChFA,CAAAA,CAAAA,CAA6BA,CAA4BpgK,EAAAA,KAAAA,CAAM,GAAG,CAAA,CAC9Du7G,CAA2BA,EAAAA,CAAAA,CAAwB/gF,QAAQ,IAAK68B,CAAAA,QAAQ,CAAI,CAAA,CAAA,CAAA,CAC5E,IAAK2lG,CAAAA,sBAAAA,CAAyB,CACvBoD,CAAAA,CAAAA,CAAAA,EAA8BA,EAA2BxlK,MAAS,CAAA,CAAA,EACzEwlK,CAA4B3vH,EAAAA,OAAAA,CAASmzE,GAAc,CAC3C,IAAI/vF,MAAO+vF,CAAAA,CAAAA,CAAO,GAAG,CAAEn4D,CAAAA,IAAAA,CAAK,IAAKja,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,GAC5C,IAAKomI,CAAAA,sBAAAA,CAAyB,IAEtC,CAAC,CAAA,CAEL,IAAK/B,CAAAA,eAAAA,CAAkB,KAAK7uH,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKsO,CAAAA,IAAAA,CAAKvQ,UAAWrT,CAAS41I,CAAAA,aAAa,CAClH,CAAA,IAAA,CAAK7iC,UAAWiB,CAAAA,kBAAAA,CAA4Bh0G,CAASuyI,CAAAA,wBAAwB,EAAEhoJ,SAAWgoJ,CAAAA,CAAAA,EAA4B,CAC9GA,CAAAA,EAA4B,CAAC,IAAKrzI,CAAAA,IAAAA,CAAKkR,eACvC,GAAA,IAAA,CAAK++H,4BAA8B,CAE3C,CAAA,EAAA,CAAC,EACL,CACA2C,YAAY,EAAA,CACR,IAAM9gL,CAAAA,CAAS,KAAKuuC,qBAAsBgE,CAAAA,mBAAAA,EACpCuH,CAAAA,CAAAA,CAAa,IAAKvL,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CACzDkwD,EAAkB,IAAK17D,CAAAA,qBAAAA,CAAsBwnC,4BAA4B,EAAA,CAC/E,IAAKyhI,CAAAA,UAAAA,CAAax3M,CAAO2yC,CAAAA,QAAAA,CAASwqK,MAClC,IAAKzF,CAAAA,aAAAA,CAAgB13M,CAAO2yC,CAAAA,QAAAA,CAASyqK,SACrC,IAAKvF,CAAAA,mBAAAA,CAAsB73M,CAAO2yC,CAAAA,QAAAA,CAAS0qK,eAC3C,IAAMhzI,CAAAA,CAAoB,IAAK97B,CAAAA,qBAAAA,CAAsB+7B,0BAA0B,EAAA,CAE3En6B,QAASq8D,CAAAA,aAAAA,CAAc,qBAAqB,CAC3Cr8D,GAAAA,QAAAA,CAASq8D,aAAc,CAAA,qBAAqB,CAAkBx2D,CAAAA,KAAAA,CAAM2sI,OAAU3iL,CAAAA,CAAAA,CAAO2yC,SAASwgJ,eAG/FnzL,CAAAA,CAAAA,CAAAA,CAAAA,CAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,MAC9C1lG,EAAAA,CAAAA,CAAO69D,mBAAoB6nC,CAAAA,cAAAA,GAAmB,QAC9C1lG,CAAO69D,CAAAA,mBAAAA,CAAoB6nC,cAAmB,GAAA,MAAA,IAE9C,KAAKjI,cAAiB,CAAA,mBAAA,CACtB,IAAKC,CAAAA,gBAAAA,CAAmB,uBAE5B,IAAMsnF,CAAAA,CAAclrI,CAAWmrI,CAAAA,cAAAA,EAAgBzgI,IAAMiP,CAAAA,CAAAA,EAAWA,CAAEzb,CAAAA,MAAAA,EAAU,KAAK4a,IAAK5a,CAAAA,MAAM,CAC5F,CAAA,IAAA,CAAK4kI,UACD9iI,CAAAA,CAAAA,CAAWZ,IACXY,CAAAA,CAAAA,CAAWo+B,iBAAiBroC,OAAQ,CAAA,KAAA,CAAO,aAAa,CAAA,CAAEA,OAAQ,CAAA,KAAA,CAAOm1I,CAAcA,CAAAA,CAAAA,EAAatsG,QAAU,IAAK9lB,CAAAA,IAAAA,CAAK8lB,OAAO,CAAA,CAC/H,OACJ,IAAKsjG,CAAAA,WAAAA,CAAcliI,CAAWgjF,CAAAA,cAAAA,CAC9B,KAAK67E,oBAAuB7+J,CAAAA,CAAAA,CAAW6+J,oBACvC,CAAA,IAAA,CAAK97B,YAAe78K,CAAAA,CAAAA,CAAO2yC,QAASivI,CAAAA,YAAAA,CACpC,KAAKu2B,iBAAoBn4M,CAAAA,CAAAA,CAAO2yC,QAASuqK,CAAAA,iBAAAA,CAEzC,KAAKjpC,qBAAwBhqE,CAAAA,CAAAA,CAAgBa,wBAC7C,CAAA,IAAA,CAAK0zE,2BAA6Bv0E,CAAgB63E,CAAAA,4BAAAA,CAC9C,IAAK7N,CAAAA,qBAAAA,EAAyB,IAAKuK,CAAAA,0BAAAA,GACnC,IAAKuD,CAAAA,kBAAAA,CAAqB,KAAK/+E,sBAAuB/uB,CAAAA,yBAAAA,CAA0B16C,SAAWyoJ,CAAAA,CAAAA,EAAsB,CACzGA,CACA,EAAA,IAAA,CAAKC,gBAAgB,GAE7B,CAAC,CAEL,CAAA,CAAA,IAAA,CAAKp6G,wBAA2BwC,CAAAA,CAAAA,CAAaxC,yBACjD,CACAo6G,gBAAgB,EAAA,CACZ,KAAKE,iBAAkB,CAAA,IAAA,CAAKn/E,sBAAuBvtB,CAAAA,2BAAAA,CAA4B,IAAK7iB,CAAAA,IAAAA,CAAK5a,MAAM,CAAC,EACpG,CAEAmqI,iBAAAA,CAAkBC,CAA2B,CAAA,CACzC,IAAKC,CAAAA,iBAAAA,CAAoBD,CACrB,CAAA,IAAA,CAAKC,mBAAqB1+H,IAC1B,EAAA,IAAA,CAAK46H,iBAAoB,CAAA,CAAA,CAAA,CACzB,KAAKzoG,SAAY,CAAA,IAAA,CAAKusG,iBAAkBvsG,CAAAA,SAAAA,CACxC,KAAKR,aAAgB,CAAA,IAAA,CAAK0tB,sBAAuBntB,CAAAA,wBAAAA,CAAyB,IAAKC,CAAAA,SAAS,CAExF,EAAA,IAAA,CAAKyoG,kBAAoB,CAEjC,EAAA,CACAh/I,eAAe,EAAA,CACP,IAAK88I,CAAAA,eAAAA,CAAiB,IAAKgF,CAAAA,qBAAAA,GAC1B,IAAKC,CAAAA,gBAAAA,EACV,CAAA,IAAA,CAAKw+B,kBAAkB,GAC3B,CACA/D,gBAAAA,EAAgB,CACR,IAAK9tK,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,kBAAoB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,kCAAA,EACzE,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,wBAAyB,MACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,0BAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,SACxC,CAAA,CAAA,CAED,IAAKpU,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,kBAAoB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAAqB,GAAA,sCAAA,EAC1E,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,uBAC3B,CAAA,sBAAA,CAAwB,kCACxB,CAAA,uBAAA,CAAyB,MACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,OAAS,GAAM,CAAA,IAAA,CAAKo1D,YACzD,CAAA,yBAAA,CAA2B,KAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,EAET,CACAy9J,oBAAkB,CACd,GAAI,IAAKl9J,CAAAA,OAAAA,EAAW,IAAK7C,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,EAAM,KAAO,IAAKuhC,CAAAA,eAAAA,CAAiB,CACjF,IAAM8qC,EAAU,IAAK/iL,CAAAA,UAAAA,CAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,+BAA+B,CAC1FuuC,CAAAA,CAAAA,CAAQ/jM,MAAS,CAAA,CAAA,GAAG+jM,CAAQ,CAAA,CAAC,CAAE/pK,CAAAA,KAAAA,CAAMo4D,IAAM,KACnD,EAAA,CACJ,CACAyyE,YAAAA,EAAY,CACR,IAAA,CAAKvrD,SAAY,CAAA,IAAA,CAAKrnF,KAAKqnF,SAC3B,CAAA,IAAA,CAAKvkF,GAAM,CAAA,IAAA,CAAK9C,IAAK8C,CAAAA,GAAAA,CACrB,IAAKm8H,CAAAA,YAAAA,CAAe,KAAKj/H,IAAKi/H,CAAAA,YAAAA,CAC9B,IAAKz0F,CAAAA,QAAAA,CAAW,KAAKxqC,IAAKwqC,CAAAA,QAAAA,CAC1B,IAAK7lB,CAAAA,IAAAA,CAAO,KAAK3kB,IAAK2kB,CAAAA,IAAAA,CACtB,IAAKmW,CAAAA,iBAAAA,CAAoB,IAAK96B,CAAAA,IAAAA,CAAK86B,iBACnC,CAAA,IAAA,CAAKs1G,IAAM,IAAKpwI,CAAAA,IAAAA,CAAKowI,GACrB,CAAA,IAAA,CAAKjxE,aAAe,IAAKn/D,CAAAA,IAAAA,CAAKm/D,YAC9B,CAAA,IAAA,CAAK6H,iBAAmB,IAAKhnE,CAAAA,IAAAA,CAAKgnE,gBAClC,CAAA,IAAA,CAAK9lC,YAAe,CAAA,IAAA,CAAKlhC,IAAKkhC,CAAAA,YAAAA,CAC9B,KAAKuxG,iBAAoB,CAAA,IAAA,CAAKzyI,IAAKyyI,CAAAA,iBAAAA,CACnC,KAAK/2B,QAAW,CAAA,IAAA,CAAK17G,IAAK07G,CAAAA,QAAAA,CAC1B,KAAKv5E,YAAe,CAAA,IAAA,CAAKniC,IAAKmiC,CAAAA,YAAAA,CAC9B,IAAK9tC,CAAAA,OAAAA,CAAU,IAAK2L,CAAAA,IAAAA,CAAK3L,QACzB,IAAK2qE,CAAAA,aAAAA,CAAgB,IAAKr6C,CAAAA,IAAAA,CAAKq6C,aAC/B,CAAA,IAAA,CAAK5qD,SAAY,CAAA,IAAA,CAAKpU,KAAKoU,SAC3B,CAAA,IAAA,CAAKc,WAAc,CAAA,IAAA,CAAKlV,IAAKkV,CAAAA,WAAAA,CAC7B,IAAKo4J,CAAAA,cAAAA,CAAeniJ,sBAAsB7/B,SAAWymL,CAAAA,CAAAA,EAAkB,CACnE,GAAIA,EAAW,CACX,IAAMC,CAASD,CAAAA,CAAAA,CAAUt9K,IAAI,IAAKkwB,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,CACzCioK,CACA,GAAA,IAAA,CAAK71I,WAAc61I,CAAAA,CAAAA,CACnB,KAAK7jJ,YAAe,CAAA,IAAA,CAAKgO,WAAY/O,CAAAA,MAAAA,CACrC,KAAKC,iBAAoB,CAAA,IAAA,CAAK8O,WAAY9O,CAAAA,iBAAAA,EAElD,CACJ,CAAC,CAAA,CACoB,IAAK/sB,CAAAA,qBAAAA,CAAsBU,qBAAqB,EAAA,CACzDiL,qBAAuB,GAAA,IAAA,CAAKnJ,IAAM,IAAK++H,CAAAA,YAAAA,CAAa31H,WAAY,CAAA,IAAA,CAAKpJ,IAAK,IAAK6hB,CAAAA,IAAAA,CAAK5a,MAAM,CAAA,EAC1G,CACAkkK,gBAAiBtpJ,CAAAA,CAAAA,CAAS,CACtB,OAAO,IAAK2oJ,CAAAA,cAAAA,CAAe3+I,mBAAoBhK,CAAAA,CAAAA,CAAK5a,MAAM,CAC9D,CACAkoK,UAAW13I,CAAAA,CAAAA,CAAc,IAAI,CAAA,CACrBA,CACI,EAAA,IAAA,CAAKv6B,MAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,IAAA,CAAKhnE,IAAKgnE,CAAAA,gBAAAA,GAAqB,sCAC1E,EAAA,IAAA,CAAKvhC,SAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,wBAC3B,sBAAwB,CAAA,kCAAA,CACxB,uBAAyB,CAAA,gCAAA,CACzB,0BAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,yBAA2B,CAAA,IAAA,CAAKn/D,KAAKoU,SACxC,CAAA,CAAA,CAED,IAAKpU,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,kCAAA,EAC3C,KAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,wBAAyB,gCACzB,CAAA,yBAAA,CAA2B,IAAKuJ,CAAAA,IAAAA,CAAK5a,OAAS,GAAM,CAAA,IAAA,CAAKo1D,YACzD,CAAA,yBAAA,CAA2B,KAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,CAGL,EAAA,IAAA,CAAKqxB,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,OAC3B,CAAA,sBAAA,CAAwB,mBACxB,CAAA,uBAAA,CAAyB,OACzB,CAAA,yBAAA,CAA2B,IAAK+jD,CAAAA,YAAAA,CAChC,0BAA2B,OAC3B,CAAA,wBAAA,CAA0B,kBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,CAAA,CAELj9D,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAE,CAAA,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUnY,OAAO,uBAAuB,CAAA,CACjF4rC,CAAUA,EAAAA,CAAAA,CAAO9yB,0BACjB,CAAA,IAAA,CAAK4sI,oCAAoC,EAAA,CACzC,IAAKt0I,CAAAA,SAAAA,CAAUU,KAAK,GACxB,CACA8mE,eAAgB5iD,CAAAA,CAAAA,CAAS,CACrB,OAAO,KAAK+W,gBAAiBhX,CAAAA,qBAAAA,CAAsBC,CAAI,CAC3D,CACAiW,eAAgBjW,CAAAA,CAAAA,CAAW4V,CAAW,CAAA,CAElC,GADAA,CAAAA,CAAO9yB,wBAAwB,EAAA,CAC3B,KAAKxH,IAAKkR,CAAAA,eAAAA,CAEN,IAAKnR,CAAAA,IAAAA,EACL,KAAKA,IAAKgnE,CAAAA,gBAAAA,GACT,IAAKhnE,CAAAA,IAAAA,CAAKgnE,kBAAoB,sCAC3B,EAAA,IAAA,CAAKhnE,IAAKgnE,CAAAA,gBAAAA,EAAoB,kCAElC,CAAA,CAAA,IAAA,CAAK+tE,oBAAqBpwH,CAAAA,CAAI,EAE9B,IAAK8gB,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,oBACxB,uBAAyB,CAAA,OAAA,CACzB,yBAA2BuJ,CAAAA,CAAAA,CAAK5a,MAChC,CAAA,yBAAA,CAA2B,mBAC3B,CAAA,wBAAA,CAA0B,KAAKw9D,eAAgB5iD,CAAAA,CAAI,CAAI,CAAA,cAAA,CAAiB,aACxE,sBAAwB,CAAA,gBAAA,CAC3B,CAEL,CAAA,IAAA,CAAK+W,iBAAiBtU,mBAAoBzC,CAAAA,CAAI,CAC9C,CAAA,IAAA,CAAKtG,WAAc,CAAA,CAAC,IAAKA,CAAAA,WAAAA,CAAAA,KACtB,CACH,IAAK4H,CAAAA,MAAAA,CAAOosE,SAAU,CAAA,eAAA,CAAiB1tE,CAAI,CAC3C,CAAA,IAAA,CAAKstJ,UAAU,EAAA,CACf,IAAMjmF,CAAwB,CAAA,CAC1B1uB,eAAiB,CAAA,WAAA,CAAA,CAErB,IAAKomB,CAAAA,WAAAA,CAAY3wD,IAAKi5D,CAAAA,CAAgB,EAC1C,CACJ,CAEA+oD,oBAAqBpwH,CAAAA,CAAAA,CAAS,CACtB,IAAK3kB,CAAAA,IAAAA,EAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,kBAAoB,sCAC3C,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,uBAAwB,kCACxB,CAAA,uBAAA,CAAyB,IAAKmsD,CAAAA,eAAAA,CAAgB5iD,CAAI,CAAA,CAAI,cAAiB,CAAA,YAAA,CACvE,0BAA2BA,CAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,YACpD,CAAA,yBAAA,CAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,UACxC,CAED,CAAA,IAAA,CAAKpU,IAAQ,EAAA,IAAA,CAAKA,KAAKgnE,gBAAoB,EAAA,kCAAA,EAC3C,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,8BAAA,CACxB,uBAAyB,CAAA,IAAA,CAAKmsD,gBAAgB5iD,CAAI,CAAA,CAAI,cAAiB,CAAA,YAAA,CACvE,0BAA2BA,CAAK5a,CAAAA,MAAAA,CAAS,GAAM,CAAA,IAAA,CAAKo1D,aACpD,yBAA2B,CAAA,IAAA,CAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,EAET,CACAi/H,gBAAgB,EAAA,CACZ,IAAMmB,CAAe,CAAA,IAAA,CAAKl0I,qBAAsBgE,CAAAA,mBAAAA,GAAsBI,QAASowI,CAAAA,gBAAAA,CACzEpqG,CAAU,CAAA,IAAA,CAAK37C,WAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,qBAAqB,CAAA,CACpF,IAAS7wK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAIg4E,EAAQ38D,MAAQrb,CAAAA,CAAAA,EAAAA,CAChCg4E,CAAQh4E,CAAAA,CAAC,CAAEq1C,CAAAA,KAAAA,CAAM2sI,OAAUF,CAAAA,EAEnC,CACApB,qBAAqB,EAAA,CACjB,IAAMoB,CAAAA,CAAe,IAAKl0I,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGI,SAAS+vI,eACzE/pG,CAAAA,CAAAA,CAAU,IAAK37C,CAAAA,UAAAA,CAAWsC,cAAckyI,gBAAiB,CAAA,qBAAqB,CACpF,CAAA,IAAA,IAAS7wK,EAAI,CAAGA,CAAAA,CAAAA,CAAIg4E,CAAQ38D,CAAAA,MAAAA,CAAQrb,CAChCg4E,EAAAA,CAAAA,CAAAA,CAAQh4E,CAAC,CAAA,CAAEq1C,MAAM2sI,OAAUF,CAAAA,CAAAA,CAE/B,IAAMG,CAAAA,CAAgB,IAAKr0I,CAAAA,qBAAAA,CAAsBgE,mBAAmB,EAAA,CAAGI,SAASkwI,eAC1EC,CAAAA,CAAAA,CAAW,IAAK9lJ,CAAAA,UAAAA,CAAWsC,aAAckyI,CAAAA,gBAAAA,CAAiB,qBAAqB,CAAA,CACrF,QAAS7wK,CAAI,CAAA,CAAA,CAAGA,CAAImiL,CAAAA,CAAAA,CAAS9mK,OAAQrb,CACjCmiL,EAAAA,CAAAA,CAAAA,CAASniL,CAAC,CAAA,CAAEq1C,MAAM2sI,OAAUC,CAAAA,EAEpC,CACA1tE,UAAAA,CAAWtiD,CAAW8lE,CAAAA,CAAAA,CAAe,CAC7B,IAAA,CAAKzqF,MAAQ,IAAKA,CAAAA,IAAAA,CAAKgnE,gBAAoB,EAAA,sCAAA,EAC3C,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,sBAAwB,CAAA,kCAAA,CACxB,uBAAyB,CAAA,WAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKuJ,KAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,0BAA2B,IAAKn/D,CAAAA,IAAAA,CAAKoU,SACxC,CAAA,CAAA,CAED,KAAKpU,IAAQ,EAAA,IAAA,CAAKA,IAAKgnE,CAAAA,gBAAAA,EAAoB,kCAC3C,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,+BACxB,uBAAyB,CAAA,WAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKuJ,KAAK5a,MAAS,CAAA,GAAA,CAAM,IAAKo1D,CAAAA,YAAAA,CACzD,yBAA2B,CAAA,IAAA,CAAKn/D,IAAKoU,CAAAA,SAAAA,CACxC,EAEL,IAAK69J,CAAAA,UAAAA,EACL,CAAA,IAAMl3G,EAAY,IAAIngB,IAAAA,CACtBmgB,CAAUp2C,CAAAA,IAAAA,CAAOA,EACjBo2C,CAAUpmD,CAAAA,OAAAA,CAAU,IAAKA,CAAAA,OAAAA,CACzBomD,CAAUoE,CAAAA,YAAAA,CAAe,IAAKA,CAAAA,YAAAA,CAC9BpE,EAAU75B,YAAe,CAAA,IAAA,CAAKA,YAC9B65B,CAAAA,CAAAA,CAAUjoG,IAAO,CAAA,GAAA,CACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,GAClCkgB,CAAUjgB,CAAAA,YAAAA,CAAe2vC,CACzB1vB,CAAAA,CAAAA,CAAUhgB,aAAgB,CAAA,CAAA,CAAA,CAC1BggB,CAAUiM,CAAAA,gBAAAA,CAAmB,KAAKA,gBAClCjM,CAAAA,CAAAA,CAAU54B,YAAe,CAAA,IAAA,CAAKA,aAC9B44B,CAAU5f,CAAAA,SAAAA,CAAY,IAAKjmC,CAAAA,WAAAA,CAC3B6lD,EAAUoxB,6BAAgC,CAAA,CAAA,CAAA,CAC1CpxB,CAAUrrB,CAAAA,cAAAA,CAAiB,IAAKzlB,CAAAA,iBAAAA,CAAkBm1C,gBAAgB,EAAA,CAClE,KAAKn1C,iBAAkBg9C,CAAAA,UAAAA,CAAWlM,CAAS,EAC/C,CACAoqF,kCAAkC,EAAA,CAC9B,IAAMhmI,CAAAA,CAAkB,KAAK2pE,sBAAuB1pE,CAAAA,sBAAAA,EACpD,CAAA,GAAID,CAAmBA,EAAAA,CAAAA,CAAgBkyE,KAC/B,EAAA,IAAA,CAAKryB,eAAiB,SAAa,EAAA,IAAA,CAAKA,aAAiB,EAAA,QAAA,CAAU,CAEnE,IAAMx8D,CAAAA,CADqBgL,MAAOC,CAAAA,QAAAA,CAASC,KAAK2hB,SAAU7hB,CAAAA,MAAAA,CAAOC,QAASC,CAAAA,IAAAA,CAAKwyE,WAAY,CAAA,GAAG,CAAC,CAAA,CACtEnyG,OAAS,CAAI,CAAA,aAAA,CAAgB,YACtDy/B,CAAAA,MAAAA,CAAO8mI,OAAQC,CAAAA,SAAAA,CAAU9mI,QAASC,CAAAA,IAAAA,CAAM,GAAID,QAASC,CAAAA,IAAAA,CAAOlL,CAAQ,CAAA,IAAA,CAAKmiB,IAAK5a,CAAAA,MAAM,EACxF,CAER,CACA41H,eAAe,EAAA,CACX,IAAK78H,CAAAA,GAAAA,CAAM,KAAKkI,WACpB,CACAqpI,oCAAoC,EAAA,CAChC,IAAMl1H,CAAkB,CAAA,IAAA,CAAK2pE,sBAAuB1pE,CAAAA,sBAAAA,EACpD,CAAA,GAAID,CAAmBA,EAAAA,CAAAA,CAAgBkyE,OAC/B,IAAKryB,CAAAA,aAAAA,EAAiB,SAAa,EAAA,IAAA,CAAKA,eAAiB,QAAU,CAAA,CACnE,IAAMx8D,CAAAA,CAAQ,YACViL,QAASC,CAAAA,IAAAA,CAAKC,OAAQnL,CAAAA,CAAK,CAAI,CAAA,CAAA,CAAA,EAAM,CAACN,QAAAA,CAASmiD,qBAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAEv9C,UAAUC,QAAS,CAAA,uBAAuB,CACzHyG,EAAAA,MAAAA,CAAO8mI,QAAQC,SAAU9mI,CAAAA,QAAAA,CAASC,IAAM,CAAA,EAAA,CAAID,QAASC,CAAAA,IAAAA,CAAKqD,MAAO,CAAA,CAAA,CAAGtD,SAASC,IAAKC,CAAAA,OAAAA,CAAQnL,CAAK,CAAA,CAAI,CAAC,CAAC,EAE7G,CAER,CACA9Q,WAAW,EAAA,CACH,IAAKohJ,CAAAA,MAAAA,EACL,IAAKA,CAAAA,MAAAA,CAAOrnJ,WAAW,EAAA,CAEvB,KAAKqoJ,kBACL,EAAA,IAAA,CAAKA,kBAAmBroJ,CAAAA,WAAAA,GAEhC,CA3bS2lL,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAuBruK,GAAAC,CAAAA,EAAA,EAAAD,GAuDpBE,CAAAA,EAAe,CAAAF,CAAAA,GAAAA,CAAAG,GAAA,CAAA,CAAAH,GAAAQ,CAAAA,GAAA,EAAAR,GAAAgjB,CAAAA,IAAA,CAAAhjB,CAAAA,GAAAA,CAAA4V,EAAA,CAAA,CAAA5V,GAAA84C,CAAAA,IAAA,EAAA94C,GAAAqhE,CAAAA,IAAA,CAAArhE,CAAAA,GAAAA,CAAAmmC,IAAA,CAAA,CAAAnmC,GAAAyI,CAAAA,EAAA,EAAAzI,GAAAwmC,CAAAA,IAAA,CAAAxmC,CAAAA,GAAAA,CAAA0nB,EAAA,CAAA1nB,CAAAA,GAAAA,CAAA9T,IAAA,CAAA,CAAA8T,IAAA2V,IAAA,CAAA,CAAA3V,GAAAyiC,CAAAA,IAAA,CAAAziC,CAAAA,GAAAA,CAAAic,IAAA,CAAA,CAAAjc,IAAAouK,EAAA,CAAA,CAAApuK,GAAA83I,CAAAA,CAAA,CAAA93I,CAAAA,GAAAA,CAAAkyG,IAAA,CAAA,CAAAlyG,IAAA2gG,EAAA,CAAA,CAAA3gG,GAAA4I,CAAAA,EAAA,CAAA,CAAA,CAvDlBylK,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAuB1hL,UAAA,CAAA,CAAA,qBAAA,CAAA,EAAAE,UAAA,CAAA,CAAA,CAAA,CAAAmR,QAAA,CAAA,CAAA0C,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,CAAAA,IAAAA,CAAA,EAAAC,CAAAA,MAAAA,CAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,0BAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA,CAAA,QAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,UAAA,CAAA,SAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,aAAA,CAAA,UAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,0BAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,EAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAAA,EAAA,CAAA,OAAA,CAAA,qCAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,sCAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,2CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAAC,CAAAA,QAAAA,CAAA,SAAAhS,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,CAAAA,CAAA,ID5CpC7B,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAyC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EACT,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACQyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA,OAASpzD,CAAAA,CAAA8qM,UAAA13I,CAAAA,CAAA,CAAkB,CAAA,CAAErqC,CAAAA,EAAAA,GAC7DF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAIqG,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAClE,EAAA,KAAA,CAAA,CAAA,CACW,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CACiF,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAC1FyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAw4J,CAAAA,eAAAA,EAAiB,CAAA,CAAA,CAA/CzvI,EAAA,EAAA,CACAF,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EACIC,EAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAQJC,EAAA,EAAA,CACAkC,EAAA,CAAA,EAAA,CAAA8/K,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAOJhiL,CAAAA,EAAAA,EACAF,CAAAA,EAAAA,CAAA,GAAA,KAAA,CAAA,EAAA,CAAwC,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CACE8U,CAAAA,EAAAA,CAAA,EAAA,CAA8B5U,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,EAEpEF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAgEyC,GAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,EAAA8qM,UAAA,EAAY,CAAA,CAAA,CAAE/hL,IACvFkC,CAAAA,EAAAA,CAAA,EAAA+/K,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAgD,EAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAGC,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAsBrDniL,EAAA,EAAA,CACAD,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CACJC,EAAA,EAAA,CACAF,GAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,GAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAA+D,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAEnEC,IAEAF,CAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAMIoC,EAAA,CAAA,EAAA,CAAAkgL,GAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAmBAtiL,CAAAA,EAAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAGIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAA,OAAStrB,CAAAA,CAAA8/F,UAAA9/F,CAAAA,CAAAA,CAAAw9C,KAAiB,CAAK,CAAA,CAAC,CAAA,CAAA,CAGpCz0B,EAAA,EAAA,EACE,EAAA,CAEVkC,GAAA,EAAAmgL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,EAAA,CAAA,CACJriL,EAAA,EAAA,IAhGI+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAghG,IAAA,CAAA,KAAA,CAAA9sH,CAAAkgE,CAAAA,aAAAA,EAAAlgE,EAAAkgE,aAAAt5D,CAAAA,MAAAA,EAAA,CAAA,CAAA,KAAA,CAAA,KAAA,CADAokB,CAAAA,EAAAA,CAAA,8BAAA,CAAA,CAAAhrB,EAAA29D,QAAA,CAAA,CAEA5xC,EAAA,CAAA,SAAA,CAAA/rB,CAAAkgE,CAAAA,aAAAA,EAAAlgE,CAAAkgE,CAAAA,aAAAA,CAAAt5D,QAAA,CAAA,CAAA,kBAAA,CAAA,kBAAA,CAAA,CAG8EklB,EAAA,CAAA,CAAA,CAAAd,CAAAA,EAAAA,CAAA,2BAAA,CAAAhrB,CAAAA,CAAA29D,QAAA,CAAA,CAC7D7xC,EAAA,EAAA,CAAA2sI,EAAA,CAAA,KAAA,CAAAz4J,EAAA27B,GAAA02B,CAAAA,EAAA,CAGGvmC,CAAAA,EAAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,aAAA/rB,CAAAA,CAAAA,CAAA4mK,WAAA,CAA2B,CAAA,UAAA,CAAA5mK,CAAAu0I,CAAAA,QAAA,CACN,CAAA,SAAA,CAAAv0I,CAAAwtC,CAAAA,OAAA,EACF,cAAAxtC,CAAAA,CAAAA,CAAAg1D,WAAA,CAAA,CACS,mBAAAh1D,CAAAA,CAAAA,CAAAkmD,iBAAA,CAAA,CACW,kBAAAlmD,CAAAinK,CAAAA,eAAA,CACJ,CAAA,WAAA,CAAAjnK,CAAAitC,CAAAA,SAAA,CAGrCnhB,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA2zD,CAAAA,iBAAAA,EAAA3zD,EAAA+oK,2BAAA,CAAA,CASgCj9I,EAAA,CAAA,CAAA,EAAA8R,EAAAjB,CAAAA,EAAAA,CAAA,EAAA,CAAA,EAAA,CAAA38B,CAAA83J,CAAAA,YAAA,CAAA,CAAA,CAGhChsI,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAwnK,CAAAA,UAAA,CAGwB17I,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAA/rB,CAAAA,CAAAwnK,UAAA,CAAA,CAExB17I,EAAA,EAAA,CAAAC,GAAA,MAAA/rB,CAAAA,CAAAA,CAAAujM,oBAAA,CAAA,CAwBmBz3K,GAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,eAAA,CAAA/rB,EAAAkgH,SAAA,CAAA,CACDp0F,EAAA,EAAA,CAAAC,EAAA,CAAA,eAAA,CAAA/rB,CAAA6/J,CAAAA,eAAA,EAS5B/zI,EAAA,CAAA,CAAA,CAAAuuI,CAAAA,EAAAA,CAAAr6J,EAAA4mK,WAAA5mK,EAAAA,CAAAA,CAAAgpK,sBAAAhpK,EAAAA,CAAAA,CAAAwtC,QAAA,EAAA,CAAA,CAAA,CAAA,CAoBI1hB,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAA/rB,CAAAA,CAAAA,CAAAwhK,QAAA,CAAqB,CAAA,MAAA,CAAA,SAAA,CAAA,CACH,mBAAA,4BAAA,CAAA,CAE+B,UAAAxhK,CAAAA,CAAAA,CAAAipK,GAAA,CAKpCn9I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAmpK,iBAAAnpK,EAAAA,CAAAA,CAAAopK,0BAAA,CCpE7BvwG,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAAA,CACAuoI,EACAxoI,CAAAA,EAAAA,CACAy2C,EAEA8wF,CAAAA,EAAAA,CACA7xB,EACAhL,CAAAA,IAAAA,CACAC,IAAuB,CAAAj3I,CAAAA,aAAAA,CAAA,CAAA,CAAA,CAGzB,CAAA,IAAO29K,CAAPoB,CAAAA,CAAAA,CAAAA,OAAOpB,CAAuB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,SAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,ECR5BnhL,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,EAAA,CAEI6oB,EAAA,CAAA,yBAAA,CAAA,CAAA+tC,EAAAvb,IAAAza,CAAAA,QAAAA,GAAAg2B,CAAAuyI,CAAAA,qBAAAA,EAAAvyI,CAAAvb,CAAAA,IAAAA,CAAAza,QAAAg2B,GAAAA,CAAAA,CAAAwyI,wBAAAxyI,CAAA2rI,CAAAA,qBAAA,CAIA34K,CAAAA,EAAAA,CAAA,UAAAgnC,EAAA,CAAA,CAAA,CAAA44B,EAAA5yB,CAAAA,CAAAA,CAAAvb,MAAA,IAAA,CAAA,IAAA,CAAAub,CAAAvb,CAAAA,IAAAA,CAAAxY,oBAAA,CAAA,EAEJlc,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EACAD,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAKIyC,CAAAA,EAAAA,CAAA,gBAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAA,CAAAgoC,CAAA,CAAA,CAAA,IAAAuF,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAAiBqtC,CAAAA,CAAAA,CAAAxF,gBAAAH,CAAAA,CAAA,CAAwB,CAAA,CAAA,CAC7CrqC,CAAAA,EAAAA,GAJIgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,wBAAAgtC,CAAAA,CAAAA,CAAA+kG,cAAA,CAAA,CAA8C,qBAAA/kG,CAAAklG,CAAAA,UAAA,CACR,CAAA,WAAA,CAAAllG,EAAA0qI,OAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA1D,EAAA,EAAA,CAI1Cl3K,EAAA,CAAA,CAAA,CAAA,qBAAA,EAAA,CAAA,CAkBIyC,EAAA,CAAA,mBAAA,CAAA,UAAA,CAAAE,EAAA+8D,CAAAA,CAAA,EAAA,IAAAxvB,CAAAA,CAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAqBqtC,CAAAA,CAAAA,CAAA9B,UAAA,EAAY,CAAA,CAAA,CAAA,CAErCluC,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAlBI4pB,EAAA,CAAA,MAAA,CAAAgtC,CAAAvb,CAAAA,IAAA,EAAa,cAAAub,CAAAA,CAAAA,CAAAi/B,YAAA,CAAA,CACgB,eAAAj/B,CAAA5sB,CAAAA,QAAAA,EAAA,IAAA,CAAA,IAAA,CAAA4sB,EAAA5sB,QAAAjE,CAAAA,UAAA,CACQ,CAAA,MAAA,CAAA6wB,CAAAyyI,CAAAA,aAAA,CACf,CAAA,kBAAA,CAAAzyI,EAAAk2G,gBAAA,CAAA,CACe,kBAAAl2G,CAAAA,CAAAA,CAAA8mC,gBAAA,CAAA,CACA,gBAAA9mC,CAAAA,CAAAA,CAAAs9D,cAAA,CACJ,CAAA,cAAA,CAAAt9D,CAAA5sB,CAAAA,QAAAA,EAAA,IAAA,CAAA,IAAA,CAAA4sB,CAAA5sB,CAAAA,QAAAA,CAAAs/J,aAAA,CACO,CAAA,WAAA,CAAA1yI,CAAA66B,CAAAA,SAAA,EACjB,YAAA76B,CAAAA,CAAAA,CAAA4+C,UAAA,CAAA,CACE,wBAAA5+C,CAAAq9D,CAAAA,qBAAA,CACsB,CAAA,cAAA,CAAAr9D,CAAA4wE,CAAAA,YAAAA,EAAA,CAAA,CAChB,UAAA5wE,CAAA7rC,CAAAA,OAAA,CACZ,CAAA,eAAA,CAAA6rC,CAAAw7E,CAAAA,QAAA,CACO,CAAA,WAAA,CAAAx7E,EAAAoK,gBAAA,CAAA,CACI,uBAAApK,CAAAA,CAAAA,CAAA2yI,qBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAY9B5iL,EAAA,CAAA,CAAA,CAAA,kCAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CACI4pB,EAAA,CAAA,WAAA,CAAA4/K,GAAA,CAAAC,CAAAA,EAAAA,CAAA7yI,CAAAvb,CAAAA,IAAAA,CAAAub,EAAA8yI,gBAAA9yI,CAAAA,CAAAA,CAAA4+C,UAAA5+C,CAAAA,CAAAA,CAAAw7E,QAAAx7E,CAAAA,CAAAA,CAAA0K,SAAA1K,CAAAA,CAAAA,CAAAv1B,KAAAu1B,CAAA5sB,CAAAA,QAAA,CAAA,CAAA,CAQE,eAAA,CAAA,8BAAA,EAKNrjB,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAUIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAv1B,IAAA,CAAA,CAAa,WAAAu1B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,CAAA,CACa,SAAAg2B,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAA,CACJ,MAAAm2B,CAAAvb,CAAAA,IAAAA,CAAAha,IAAAE,CAAAA,GAAA,EAG1B5a,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAEIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,QAAAgtC,CAAAA,CAAAA,CAAA+yI,WAAA,CAAsB,CAAA,MAAA,CAAA/yI,CAAAv1B,CAAAA,IAAA,EACT,UAAAu1B,CAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAA,CACa,CAAA,QAAA,CAAAg2B,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CACJ,CAAA,KAAA,CAAAm2B,CAAAvb,CAAAA,IAAAA,CAAAha,KAAAE,GAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAq8J,EAAA,EAAA,CAKtBl3K,EAAA,CAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CASIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAwoC,CAAAA,CAAA,EAAA,IAAA+E,CAAAA,CAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAgzI,YAAY,CAAA,CAAA,CAAA,CAAC,YAAA,CAAA,UAAA,CAAAvgL,EAAAA,CAAAwoC,CAAA,CAAA,CAAA,IAAA+E,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EACRqtC,CAAAA,CAAAA,CAAAizI,gBAAgB,CAAA,CAAA,CAAA,CAAC,OAAA,CAAA,UAAA,CAAAxgL,EAAAA,CAAAwoC,CAAA,CAAA,CAAA,IAAA+E,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EACtBqtC,CAAAA,CAAAA,CAAAkzI,gBAAgB,CAAA,CAAA,CAAA,CAAEljL,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAP3Bs2J,EAAA,CAAA,QAAA,CAAA1/F,EAAAvb,IAAAha,CAAAA,IAAAA,CAAA7H,GAAA02B,CAAAA,EAAA,EAHAtmC,EAAA,CAAA,IAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAkB,CAAA,QAAA,CAAA,CAAAm2B,CAAAA,CAAA+yI,WAAA,CAAA,CAEK,KAAA/yI,CAAAA,CAAAA,CAAAmzI,aAAA75I,EAAA,CAAA,CAEH,OAAA,CAAA,CAAA,CAAA,EAOxBxpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,OAAA,CAAA,EAAA,CAQIyC,CAAAA,EAAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAs9D,CAAA,CAAA,CAAA,IAAA/vB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAozI,iBAAA,EAAmB,CAAA,CAAA,CAAA,CAAC,YAAA,CAAA,UAAA,CAAA3gL,EAAAA,CAAAs9D,CAAA,CAAA,CAAA,IAAA/vB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EACfqtC,CAAAA,CAAAA,CAAAizI,cAAA,EAAgB,CAAA,CAAA,CAAA,CAAC,OAAA,CAAA,UAAA,CAAAxgL,EAAAA,CAAAs9D,CAAA,CAAA,CAAA,IAAA/vB,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EACtBqtC,CAAAA,CAAAA,CAAAkzI,cAAA,EAAgB,CAAA,CAAA,CAAA,CAAEljL,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAT3B4pB,EAAA,CAAA,IAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAkB,CAAA,QAAA,CAAA,CAAAm2B,CAAAA,CAAA+yI,WAAA,CAAA,CAEK,KAAA/yI,CAAAA,CAAAA,CAAAmzI,aAAA75I,EAAA,CAAA,CACH,OAAA,CAAA,CAAA,CAAA,EAjB5Bu3B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,CACI3+D,GAAA,CAAAmhL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAW+B,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,OAAA,CAAA,EAAA,CAAA,CAAAC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAnqM,EAAA,CAAA,CAAA,CAAA,CAT1B2pB,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,EAAA4E,QAAA5E,EAAAA,CAAAA,CAAAyD,QAAAzD,IAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAAg2B,EAAAA,CAAAA,CAAAvb,KAAAza,QAAA,EAAA,KAAA,CAAA,EAAAg2B,CAAAwzI,CAAAA,YAAA,CAYAzgL,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA,CAAAgtC,CAAAA,CAAAyD,QAAA,EAAA,CAAAzD,EAAA4E,QAAA5E,GAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,MAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,KAAA,CAAA,EAWTja,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,iCAAA,CAAA,EAAA,CACIiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,cAAAgnC,CAAAA,EAAAA,CAAA,CAAAy5I,CAAAA,EAAAA,CAAAz5I,EAAA,CAAA,CAAA,CAAA05I,GAAA1zI,CAAA2zI,CAAAA,yBAAA,CAAA,CAAA,CAAuF,CAAA,WAAA,CAAAvlC,EAAA,CAAA,CAAA,CAAAwlC,GAAA5zI,CAAAvb,CAAAA,IAAAA,CAAAub,CAAA4wE,CAAAA,YAAAA,GAAA5wE,CAAA5sB,CAAAA,QAAA,CAAA,CAAA,CACT,gBAAA,qBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAK9ErjB,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAA8B+iE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,OAAA,aAAA9yB,CAAAA,CAAAA,CAAAvb,IAAA5a,CAAAA,MAAAA,CAAA,GAAAyvB,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAalBvpC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CAAuDs2J,EAAA,CAAA,KAAA,CAAA1/F,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAA,CAAlD7W,GAAA,KAAAgtC,CAAAA,CAAAA,CAAA3G,OAAAC,CAAAA,EAAA,6BACLvpC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,mBAA2D2vI,EAAA,CAAA,KAAA,CAAA1/F,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAA,CAAtD7W,EAAA,CAAA,KAAA,CAAAgtC,EAAAzG,YAAAD,CAAAA,EAAA,EAFTxpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CACIoC,GAAA,CAAA2hL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAiF,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAErF9jL,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAF0B2pB,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,CAAAgtC,CAAAtG,CAAAA,wBAAA,CACK3mC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAtG,CAAAA,wBAAA,EAZnC5pC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAUIoC,CAAAA,EAAAA,CAAA,EAAA6hL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAIAjkL,EAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAuB8U,EAAA,CAAA,CAAA,EAAuB5U,EAAA,EAAA,EAZ9CgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,UAAA6mC,EAAA,CAAA,CAAA,CAAAm6I,EAAAh0I,CAAAA,CAAAA,CAAAjG,cAAA,EAAA,IAAA,CAAA,IAAAiG,CAAAA,CAAAA,CAAAjG,eAAA3L,SAAA4R,CAAAA,CAAAA,CAAAjG,cAAA,EAAA,IAAA,CAAA,IAAAiG,CAAAA,CAAAA,CAAAjG,cAAA1L,CAAAA,WAAA,CAAA,CAAyF,CAAA,SAAA,CAAA+/G,EAAA,CAAA,CAAA,CAAA6lC,EAAAj0I,CAAAA,CAAAA,CAAA9F,uBAAA8F,CAAAA,CAAAA,CAAAvb,KAAAmV,iBAAAoG,CAAAA,CAAAA,CAAAA,CAAAvb,IAAAyvJ,CAAAA,MAAAA,EAAAl0I,EAAAvb,IAAA0vJ,CAAAA,UAAAA,GAAAn0I,CAAAvb,CAAAA,IAAAA,CAAAmV,iBAAA,CAAA,CAAA,CAKvF,QAAAoG,CAAAA,CAAAA,CAAA8yI,gBAAA,CAAA,CAGsB//K,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAA0I,CAAAA,iBAAAA,EAAA6S,EAAA7F,aAAA,CAAA,CAIDpnC,EAAA,CAAA,CAAA,EAAA8R,EAAAm7B,CAAAA,CAAAA,CAAAvb,IAAAwJ,CAAAA,YAAA,EAf/B4iC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,CACI3+D,GAAA,CAAAkiL,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAAAb,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAnqM,EAAA,CAAA,CAAA,CAAA,CASK2pB,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAA3D,sBAAA2D,EAAAA,CAAAA,CAAAvb,IAAAwJ,CAAAA,YAAAA,EAAA,CAAA+R,CAAAA,CAAA+yI,WAAA,EASLhjL,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA3mB,EAAA,CAAA,CAAA,CAAA,CAEI4pB,EAAA,CAAA,SAAA,CAAA6mC,GAAA,CAAAm6I,CAAAA,EAAAA,CAAAh0I,CAAAjG,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAiG,CAAAjG,CAAAA,cAAAA,CAAA3L,UAAA4R,CAAAjG,CAAAA,cAAAA,EAAA,IAAA,CAAA,IAAA,CAAAiG,EAAAjG,cAAA1L,CAAAA,WAAA,CAAA,CAAA,CAAyF,UAAAgmJ,EAAA,CAAA,CAAA,CAAAC,EAAAt0I,CAAAA,CAAAA,CAAA9F,uBAAA8F,CAAAA,CAAAA,CAAAvb,IAAAmV,CAAAA,iBAAAA,CAAAA,CAAAoG,EAAAvb,IAAAyvJ,CAAAA,MAAAA,EAAAl0I,CAAAvb,CAAAA,IAAAA,CAAA0vJ,UAAAn0I,GAAAA,CAAAA,CAAAvb,IAAAmV,CAAAA,iBAAAA,CAAAoG,EAAAtG,wBAAA,CAAA,CAMvF,CAAA,QAAA,CAAAsG,CAAA8yI,CAAAA,gBAAA,EAMM/iL,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAuD2vI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,MAAA1/F,CAAAvb,CAAAA,IAAAA,CAAA5a,MAAA,CAAA,CAAlD7W,GAAA,KAAAgtC,CAAAA,CAAAA,CAAA3G,OAAAC,CAAAA,EAAA,EACLvpC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA2D2vI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,KAAA1/F,CAAAA,CAAAA,CAAAvb,IAAA5a,CAAAA,MAAA,CAAtD7W,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAzG,CAAAA,YAAAA,CAAAD,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAFTu3B,EAAA,CAAA,CAAA,CACI3+D,CAAAA,EAAAA,CAAA,EAAAqiL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAiF,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAA3DzhL,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA,CAAA,CAAAgtC,EAAAtG,wBAAA,CAAA,CACK3mC,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAtG,wBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAhB3Cm3B,GAAA,CAAA,CAAA,CACI3+D,EAAA,CAAA,CAAA,CAAAuiL,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAWA3kL,CAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAA6D,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,EAErDoC,EAAA,CAAA,CAAA,CAAAwiL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,EAAA,CAAA,CAIJ1kL,IACAF,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAuB8U,EAAA,CAAA,CAAA,EAAuB5U,EAAA,EAAA,EAR7C+C,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA3D,wBAAA2D,CAAAvb,CAAAA,IAAAA,CAAAwJ,YAAA,EAAA,CAAA+R,EAAA+yI,WAAA,CAAA,CAC4BhgL,EAAA,EAAA,CAAAC,GAAA,QAAAgtC,CAAAA,CAAAA,CAAA8yI,gBAAA,CAAA,CAEV//K,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAvb,CAAAA,IAAAA,CAAA0I,iBAAA6S,EAAAA,CAAAA,CAAA7F,aAAA,CAKIpnC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAAm7B,CAAAvb,CAAAA,IAAAA,CAAAwJ,YAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA+4I,EAAA,EAAA,CAM/Bl3K,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAGIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAAohE,CAAAA,CAAA,CAAA,CAAA,IAAA7zB,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAxF,gBAAAH,CAAAA,CAAA,CAAwB,CAAA,CAAA,CAOjCz1B,CAAAA,EAAAA,CAAA,CAAA,CAAA,CACJ5U,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAPI4pB,GAAA,SAAAqhL,CAAAA,EAAAA,CAAA,CAAAM,CAAAA,EAAAA,CAAA30I,CAAA40I,CAAAA,gBAAAA,CAAA50I,CAAAuuI,CAAAA,+BAAAA,EAAAvuI,EAAA4+C,UAAA5+C,CAAAA,CAAAA,CAAAvb,IAAAmV,CAAAA,iBAAAA,EAAAoG,EAAAvb,IAAAwJ,CAAAA,YAAAA,CAAA+R,CAAAvb,CAAAA,IAAAA,CAAAmV,iBAAA,CAAA,CAAA,CAMA7mC,EAAA,EAAA,CAAAo8D,EAAA,CAAA,GAAA,CAAAnvB,CAAAqnH,CAAAA,QAAAA,CAAA,GAAA,EAvDRv3J,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CACIoC,CAAAA,EAAAA,CAAA,CAAA2iL,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAAiI,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,EAAA,CAAA,CACjF,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,cAAA,CAAA,EAAA,CAAA,CAkBD,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAqCnDhlL,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6rM,EAAA,CAAA,CAAA,CAAA,CAzDsChjL,GAAA,sBAAA+tC,CAAAA,CAAAA,CAAAvb,IAAAmV,CAAAA,iBAAA,CACiC7mC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAk1I,CAAAA,kBAAAA,EAAAl1I,CAAAvb,CAAAA,IAAAA,CAAAsrE,UAAA,EAAA,aAAA,CACpDh9F,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA,CAAAgtC,CAAAA,CAAAtG,wBAAA,CAkBA3mC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAtG,CAAAA,wBAAA,CA0BV3mC,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAvrB,SAAAurB,CAAAjF,CAAAA,YAAAA,EAAAiF,CAAAvb,CAAAA,IAAAA,CAAAsrE,UAAA,EAAA,aAAA,CAAmE,CAAA,UAAA,CAAAolF,CAAA,EAY5ErlL,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAKIC,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CACJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAHI4pB,GAAA,QAAAgtC,CAAAA,CAAAA,CAAA8yI,gBAAA,CAAA,CAA2B,UAAAj5I,EAAA,CAAA,CAAA,CAAAu7I,EAAAp1I,CAAAA,CAAAA,CAAAvb,IAAAyvJ,CAAAA,MAAAA,EAAAl0I,CAAAvb,CAAAA,IAAAA,CAAA0vJ,WAAA,CAAAn0I,CAAAA,CAAAvb,IAAAwJ,CAAAA,YAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAI/Bn+B,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAIgD,CAAA,CAAA,MAAA,CACtC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAuB5U,IAAO,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAFpC2qH,IAAA,CAAA,YAAA,CAAA/zD,EAAAq1I,+BAAA,CAAA,CAAoD,OAAAr1I,CAAAA,CAAAA,CAAAs1I,2BAAA,CADpDtiL,CAAAA,EAAAA,CAAA,SAAAgtC,CAAAA,CAAAA,CAAAu1I,6BAAA,EAAA,CAGMxiL,CAAAA,EAAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,CAAAw1I,CAAAA,iBAAA,8BAEV1lL,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAI0C,CAAA,CAAA,MAAA,CAChC8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAsB5U,EAAA,EAAA,qBAF5B+jG,IAAA,CAAA,kBAAA,CAAA/zD,CAAAy1I,CAAAA,2BAAA,EAAsD,OAAAz1I,CAAAA,CAAAA,CAAA01I,qBAAA,CAAA,CADtD1iL,GAAA,SAAAgtC,CAAAA,CAAAA,CAAAu1I,6BAAA,EAAA,CAGMxiL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA8R,GAAAm7B,CAAA21I,CAAAA,gBAAA,EAGV7lL,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CACIC,GAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CACJC,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAFK4pB,EAAA,CAAA,QAAA,CAAAgtC,EAAA8yI,gBAAA,CAAA,CACoB//K,EAAA,EAAA,CAAAC,GAAA,KAAA,CAAA,YAAA,EAiBjBlD,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAA2G8U,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAmB5U,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAAxDu2D,GAAAK,CAAA8tG,CAAAA,SAAAA,CAAA8nC,CAAAtiN,CAAAA,GAAAA,CAAAuiN,CAAA,CAAA,CAAA,CAAqC9iL,EAAA,EAAA,CAAAo8D,GAAA,GAAAymH,CAAAA,CAAAA,CAAA7/M,KAAA,CAAA,EAAA,EAd/G+5B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAcIoC,CAAAA,EAAAA,CAAA,CAAA4jL,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CACJ9lL,IAdIgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,QAAAgtC,CAAAA,CAAAA,CAAA8yI,gBAAA,CAAA,CAA2B,SAAA94I,CAAAA,EAAAA,CAAA,EAAA+7I,EAAA/1I,CAAAA,CAAAA,CAAAkuG,eAAA,CAAA,CAaen7I,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,UAAAgtC,CAAAw7E,CAAAA,QAAA,EAflD1rH,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CACIoC,CAAAA,EAAAA,CAAA,EAAA8jL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAgBJhmL,CAAAA,EAAAA,EAbS+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAw7E,CAAAA,QAAAA,EAAAx7E,CAAAw7E,CAAAA,QAAAA,CAAA3tI,MAAA,CAAA,CAAA,EAAA,CAAAmyD,CAAA4+C,CAAAA,UAAAA,EAAA,CAAA5+C,CAAAA,CAAAi2I,eAAAj2I,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,GAAA,EAAAg2B,EAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAAg2B,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,GAAAg2B,EAAAA,CAAAA,CAAAvb,KAAAza,QAAA,EAAA,IAAA,EA6BDla,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAKK8U,CAAAA,EAAAA,CAAA,CAAA,CAAmB5U,CAAAA,EAAAA,EAFpB2vC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAK,CAAAk2I,CAAAA,eAAAA,CAAAC,CAAA,CAAA,EACAnjL,EAAA,CAAA,SAAA,CAAAo7I,EAAA,CAAA,CAAA,CAAAgoC,EAAA,CAAA,CAAAp2I,CAAAvrB,CAAAA,OAAAA,CAAA0hK,EAAA,CAAA,GAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CACCpjL,CAAAA,EAAAA,GAAA8R,EAAAwxK,CAAAA,CAAAA,CAAAtgN,KAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAnBT+5B,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAcIoC,GAAA,CAAAokL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAOJtmL,CAAAA,EAAAA,qBApBIgD,EAAA,CAAA,QAAA,CAAAgtC,CAAA8yI,CAAAA,gBAAA,CAA2B,CAAA,SAAA,CAAA94I,EAAA,CAAA,CAAA,CAAA+7I,GAAA/1I,CAAAkuG,CAAAA,eAAA,CAAA,CAAA,CAeHn7I,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAgtC,EAAAw7E,QAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAhB5BtpH,EAAA,CAAA,CAAA,CAAAqkL,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,mBAGKvjL,EAAA,CAAA,MAAA,CAAAgtC,CAAAw7E,CAAAA,QAAAA,EAAAx7E,CAAAw7E,CAAAA,QAAAA,CAAA3tI,MAAA,CAAA,CAAA,EAAA,CAAAmyD,CAAA4+C,CAAAA,UAAAA,EAAA,CAAA5+C,CAAAA,CAAAi2I,aAAAj2I,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,KAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,IAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,GAAA,EAAAg2B,EAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAg9J,EAAA,EAAA,CAtLbl3K,GAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAEIyC,GAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAyoC,CAAA,CAAA,CAAA,IAAA8E,CAAAA,CAAAzF,IAAA,CAAA,OAAA5nC,EAASqtC,CAAAA,CAAAA,CAAAv9B,OAAO,GAAG,CAAC,CAAA,CAAA,EAAC,YAAA,CAAA,SAAA43B,CAAA,CAAA,CAAA5nC,EAAAyoC,CAAAA,CAAA,CAAA,CAAA,IAAA8E,EAAAzF,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAEPqtC,EAAAw2I,aAAAn8I,CAAAA,CAAA,CAAqB,CAAA,CAAA,CAAC,CAAA,UAAA,CAAA,SAAAA,CAAAA,CAAA,CAAA5nC,EAAAA,CAAAyoC,CAAA,CAAA,CAAA,IAAA8E,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,EACxBqtC,CAAAA,CAAAA,CAAAy2I,WAAAp8I,CAAAA,CAAA,CAAmB,CAAA,CAAA,CAE/BnoC,CAAAA,EAAAA,CAAA,CAAAwkL,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kCAAA,EAAA,CAAA,CAW2G,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAgBjF,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAQA,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,cAAA,CAAA,EAAA,CAAA,CAGkB,EAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,iCAAA,CAAA,EAAA,CA8BrB,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAEgH,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CA8DnB,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAOpE,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAON,CAAA,EAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAI8D,GAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAGjD,EAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAAhlL,EAAA,CA0C3DrC,CAAAA,EAAAA,GApMIgD,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,UAAA6mC,EAAA,CAAA,EAAA,CAAAyxH,EAAAtrH,CAAAA,CAAAA,CAAAvD,YAAAuD,CAAAA,CAAAA,CAAAvb,IAAA,EAAA,IAAA,CAAA,KAAAub,CAAAvb,CAAAA,IAAAA,CAAAxY,oBAAA,CAAA,EAYKlZ,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAgtC,EAAAvb,IAAAza,CAAAA,QAAAA,EAAA,GAAAg2B,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAAg2B,EAAAA,CAAAA,CAAAvb,KAAAza,QAAA,EAAA,GAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,UAAA,IAAA,CAAA,CAIAjX,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,IAAAg2B,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,OAAA,CAAAg2B,CAAAA,CAAA+yI,WAAA/yI,EAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,GAAAg2B,EAAAA,CAAAA,CAAAvb,KAAAza,QAAA,EAAA,IAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,GAAA,EAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,UAAA,IAAA,CAAA,CAeAjX,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAAza,CAAAA,QAAAA,EAAA,MAAAg2B,CAAAvb,CAAAA,IAAAA,CAAAza,QAAA,EAAA,KAAA,CAQUjX,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAA2rI,CAAAA,qBAAA,CA8BV54K,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA4+C,UAAA,CAEwF7rF,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAAsrE,CAAAA,UAAAA,EAAA,eAAA,CA2DxFh9F,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAAgtC,CAAAvb,CAAAA,IAAAA,CAAAmV,iBAAA,CAAA,CAOA7mC,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAAyvJ,CAAAA,MAAA,CAOAnhL,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAAgtC,CAAAvb,CAAAA,IAAAA,CAAA0vJ,UAAA,CAAA,CAO6BphL,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAAi1C,CAAAA,YAAAA,EAAA,CAAA15B,CAAAA,CAAA4+C,UAAA,CAAA,CAG3B7rF,IAAAC,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAA8vG,mBAAA,CAA2B,CAAA,UAAA,CAAAwnC,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAtQ,EAAA,EAAA,CA4ClCl3K,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAIIyC,EAAA,CAAA,OAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA5nC,EAAA2/D,CAAAA,CAAA,CAAA,CAAA,IAAApyB,EAAAzF,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,GAASqtC,CAAAtF,CAAAA,eAAAA,CAAAL,CAAA,CAAuB,CAAA,CAAA,CAAErqC,CAAAA,EAAAA,wBADlCgD,EAAA,CAAA,SAAA,CAAAgtC,CAAAqnC,CAAAA,eAAAA,CAAArnC,EAAAvb,IAAA,CAAA,CAAAub,CAAAsvB,CAAAA,cAAAA,CAAAtvB,EAAAuvB,gBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAHJr9D,EAAA,CAAA,CAAA,CAAAqlL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAEKvkL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,MAAAgtC,CAAAA,CAAAA,CAAApF,iBAAAoF,EAAAA,CAAAA,CAAAvrB,OAAAurB,EAAAA,CAAAA,CAAAvb,KAAAsrE,UAAA,EAAA,aAAA,EAMLjgG,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAA,CAAA,CAAA,MAAA,CAA6D,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CAC9ByC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAA05K,CAAA,CAAA,CAAA,IAAAnsI,CAAAzF,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAASqtC,CAAAv9B,CAAAA,MAAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CAAA,CAAEzS,IAAI,GAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAg3K,EAAA,EAAA,CAH7Dl3K,EAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAA8C,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CACvCyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,EAAAA,CAAAigE,CAAA,CAAA,CAAA,IAAA1yB,CAAAzF,CAAAA,EAAAA,EAAA,CAAA,OAAA5nC,GAASqtC,CAAAv9B,CAAAA,MAAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CAAEmC,CAAAA,EAAAA,CAAA,CAAA,CAAe5U,CAAAA,EAAAA,EACxCkC,CAAAA,EAAAA,CAAA,CAAAslL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAGJxnL,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAJ6B2pB,EAAA,CAAA,CAAA,CAAA8R,CAAAA,EAAAA,CAAAm7B,EAAAmnD,SAAA,CAAA,CAClBp0F,EAAA,EAAA,CAAAC,GAAA,MAAAgtC,CAAAA,CAAAA,CAAAvb,IAAA4W,CAAAA,gBAAAA,EAAA,CAAA2E,CAAAvb,CAAAA,IAAAA,CAAA6W,eAAA,EAAA,CAAA,CCzNNm8I,IAAAA,EAAAA,CAAAA,CAAkB,IAAA,CAAzB,IAAOA,CAAP,CAAA,MAAOA,CAAkB,CAG3B,IACIhzJ,IAAK1uD,CAAAA,CAAAA,CAAqB,CAC1B,IAAA,CAAK2hN,MAAQ3hN,EAEjB,CAEA,IAAI0uD,IAAAA,EAAI,CACJ,OAAO,IAAKizJ,CAAAA,KAChB,CA4GA3yM,WACY42D,CAAAA,CAAAA,CACA57B,CACAlR,CAAAA,CAAAA,CACA8oL,EACAn8I,CACAzV,CAAAA,CAAAA,CACAsuC,CACAh1C,CAAAA,CAAAA,CACAu9E,EACAozB,CACAzqF,CAAAA,EAAAA,CACAxzB,EACA8iD,CAAAA,EAAAA,CACAz0D,EACAsgC,CAAAA,EAAAA,CACA9uB,EACAu0I,CAAAA,EAAAA,CACAnxF,GACAxqC,EACAo+D,CAAAA,EAAAA,CACAiyD,EACA0J,CAAAA,EAAAA,CACA7O,EACAvjI,CAAAA,EAAAA,CACA3e,EACAi3B,CAAAA,EAAAA,CACA+1I,GAA4B,CA1B5B,IAAA,CAAA7kI,kBAAAA,CAAAA,CAAAA,CACA,IAAA57B,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAAlR,WAAAA,CACA,CAAA,IAAA,CAAA8oL,eAAAA,CAAAA,CAAAA,CACA,KAAAn8I,gBAAAA,CAAAA,CAAAA,CACA,IAAAzV,CAAAA,MAAAA,CAAAA,EACA,IAAAsuC,CAAAA,eAAAA,CAAAA,CACA,CAAA,IAAA,CAAAh1C,aAAAA,CAAAA,CAAAA,CACA,IAAAu9E,CAAAA,kBAAAA,CAAAA,EACA,IAAAozB,CAAAA,iBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAzqF,QAAAA,CAAAA,EAAAA,CACA,IAAAxzB,CAAAA,mBAAAA,CAAAA,GACA,IAAA8iD,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAz0D,qBAAAA,CAAAA,EAAAA,CACA,IAAAsgC,CAAAA,kBAAAA,CAAAA,GACA,IAAA9uB,CAAAA,aAAAA,CAAAA,EACA,CAAA,IAAA,CAAAu0I,4BAAAA,EACA,CAAA,IAAA,CAAAnxF,gBAAAA,CAAAA,EAAAA,CACA,KAAAxqC,YAAAA,CAAAA,EAAAA,CACA,IAAAo+D,CAAAA,sBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAiyD,gBAAAA,CAAAA,EAAAA,CACA,KAAA0J,cAAAA,CAAAA,EAAAA,CACA,IAAA7O,CAAAA,qBAAAA,CAAAA,EACA,CAAA,IAAA,CAAAvjI,MAAAA,CAAAA,EAAAA,CACA,KAAA3e,eAAAA,CAAAA,EAAAA,CACA,IAAAi3B,CAAAA,MAAAA,CAAAA,EACA,CAAA,IAAA,CAAA+1I,QAAAA,CAAAA,EAAAA,CA7HH,KAAArsK,OAAkB,CAAA,EAAA,CAClB,IAAAmpG,CAAAA,cAAAA,CAAyB,GAGlC,IAAAs6E,CAAAA,aAAAA,CAAgBznL,EAAe,CAAA,CAAA,CAAK,EAG3B,IAAAskB,CAAAA,OAAAA,CAAU,IAAK4K,CAAAA,aAAAA,CAAc5K,OAAO,EAAA,CAG7C,IAAAojK,CAAAA,kBAAAA,CAA8B,GAC9B,IAAA/E,CAAAA,gBAAAA,CAA2B,EAI3B,CAAA,IAAA,CAAAt3D,SAAgB,EAAA,CACP,IAAA5K,CAAAA,YAAAA,CAAejnH,GAAY6rB,KAAS,CAAA,CAAA,CAC7C,IAAA/K,CAAAA,IAAAA,CAAY,CAAE7H,GAAAA,CAAK,EAAE,CAAA,CACrB,KAAA6vK,aAAqB,CAAA,CAAE7vK,GAAK,CAAA,EAAE,EAM9B,IAAA0sD,CAAAA,cAAAA,CAAyB,kBACzB,CAAA,IAAA,CAAAC,iBAA2B,gBAC3B,CAAA,IAAA,CAAAy7G,kBAA8B,CAAA,CAAA,CAAA,CAE9B,IAAA90B,CAAAA,gBAAAA,CAA2B,CAyB3B,CAAA,IAAA,CAAAnR,eAAsB,CACtB,CAAA,IAAA,CAAAG,UAAkB,CAAA,CAAA,CAGlB,IAAAkL,CAAAA,iBAAAA,CAA6B,CAS7B,CAAA,CAAA,IAAA,CAAAzqF,MAAgB,EAAA,CAMhB,IAAAmyH,CAAAA,QAAAA,CAAmB,EACnB,CAAA,IAAA,CAAAC,eAA0B,CAAA,EAAA,CAC1B,KAAApM,qBAAiC,CAAA,CAAA,CAAA,CACjC,IAAA4G,CAAAA,qBAAAA,CAAwB,KACxB,IAAAC,CAAAA,qBAAAA,CAAwB,KAGf,CAAA,IAAA,CAAA5tI,SAAW,IAAKhzB,CAAAA,aAAAA,CAAcgzB,QAC9B,CAAA,IAAA,CAAAnB,QAAW,CAAA,IAAA,CAAK7xB,aAAc6xB,CAAAA,QAAAA,CAOvC,KAAAgvG,UAAkB,CAAA,EAIlB,CAAA,IAAA,CAAAwjC,cAAgB,CAChB,CAAA,CAAA,IAAA,CAAAlD,WAAc,CAAA,CAAA,CAAA,CACd,KAAAS,YAAe,CAAA,CAAA,CAAA,CA40Bf,IAAA0C,CAAAA,eAAAA,CAAmBzxM,EACf,EAAA,IAAA,CAAKypK,eACCzpK,CAAAA,EAAAA,CAAQ,IAAM,CACV,CAAA,IAAA,CAAKu/G,YAAaoxD,CAAAA,aAAAA,CAAcb,gBAChC,IAAKvwD,CAAAA,YAAAA,CAAaoxD,aAAcV,CAAAA,eAAAA,CACpC,KAAK1wD,YAAaoxD,CAAAA,aAAAA,CAAcR,gBA/yBtC,CAAA,IAAA,CAAK2P,cAAe3J,CAAAA,mBAAAA,CAAoB,IAAKC,CAAAA,gBAAgB,EAC7D,IAAK96I,CAAAA,IAAAA,CAAKq2C,MAAO3sC,CAAAA,IAAAA,CAAK3uC,IAAQgF,CAAAA,EAAAA,EAAMA,EAAawxJ,YAAAA,IAAc,CAAC,CAAElmI,CAAAA,SAAAA,CAAU,IAAK,CACzE,IAAK2U,CAAAA,IAAAA,CAAKkR,eAAoB,GAAA,IAAA,CAAK2zB,UAAY,IAAKnB,CAAAA,QAAAA,CAAAA,GACpDxP,YAAa6C,CAAAA,UAAAA,CAAW,cAAc,CACtC7C,CAAAA,YAAAA,CAAaK,OAAQ,CAAA,cAAA,CAAgB,OAAO,CAC5CL,CAAAA,YAAAA,CAAa6C,UAAW,CAAA,gBAAgB,CAEhD,EAAA,CAAC,EACL,CAEAykC,WAAS,CACL,GAAI,IAAKy8G,CAAAA,WAAAA,CACL,GACI,IAAKrM,CAAAA,qBAAAA,GACJ,IAAK+L,CAAAA,KAAAA,CAAM1tK,WAAa,IAAKuoK,CAAAA,qBAAAA,EAAyB,IAAKmF,CAAAA,KAAAA,CAAM1tK,QAAa,GAAA,IAAA,CAAKwoK,qBACnF,CAAA,GAAA,IAAA,CAAK5tI,UAAY,IAAKnB,CAAAA,QAAAA,CAAAA,GACtBxP,YAAaC,CAAAA,OAAAA,CAAQ,cAAc,CAAM,GAAA,OAAA,EACrCD,YAAaC,CAAAA,OAAAA,CAAQ,cAAc,CAChCE,EAAAA,IAAAA,CAAKC,KAAMJ,CAAAA,YAAAA,CAAaC,OAAQ,CAAA,cAAc,CAAK,EAAA,EAAE,EAAEzmB,OAAQ,CAAA,IAAA,CAAKiqK,KAAM7tK,CAAAA,MAAAA,CAAS,IAAKuJ,CAAAA,QAAAA,CAASjE,UAAU,CAAA,GAAM,KACzH,CAAC8kB,YAAAA,CAAaC,OAAQ,CAAA,gBAAgB,CACtC,EAAA,IAAA,CAAK+hJ,aAEL,CAAA,CAAA,GAAI,KAAKzC,YAAc,CAAA,CACnBv/I,YAAaK,CAAAA,OAAAA,CAAQ,iBAAkB,IAAKlhB,CAAAA,QAAAA,CAASjE,UAAa,CAAA,IAAA,CAAKuoK,MAAM7tK,MAAM,CAAA,CACnF,IAAKsI,CAAAA,MAAAA,CAAO52B,IAAK,CAAA,SAAA,CAAW,IAAKm8L,CAAAA,KAAAA,CAAM7tK,MAAM,CAC7C,CAAA,IAAMgiG,CAAQ,CAAA,IAAA,CAAKh9G,UAAWsC,CAAAA,aAAAA,EAAektE,aAAc,CAAA,OAAO,EAE9DwtC,CACAA,GAAAA,CAAAA,CAAMhkG,KAAMowK,CAAAA,eAAAA,CAAkB,MAAS,CAAA,IAAA,CAAKP,KAAOjtK,EAAAA,IAAAA,EAAM7H,IAAM,GAEnEoF,CAAAA,CAAAA,UAAAA,CAAW,IAAK,CACR6jG,IACI,IAAKqsE,CAAAA,kBAAAA,EACLrsE,CAAMssE,CAAAA,WAAAA,CAAc,EACpBtsE,CAAMK,CAAAA,IAAAA,EACN,CAAA,IAAA,CAAK6mE,WAAc,CAAA,CAAA,CAAA,GAEnBlnE,CAAMK,CAAAA,IAAAA,GACN,IAAK6mE,CAAAA,WAAAA,CAAc,CAG/B,CAAA,CAAA,EAAA,CAAA,CAAG,IAAKqF,CAAAA,sBAAsB,CAC9B,CAAA,IAAA,CAAK7yI,SAASrqB,YAAa,CAAA,gBAAA,CAAkB,CACzC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,yBACxB,CAAA,uBAAA,CAAyB,WACzB,yBAA2B,CAAA,IAAA,CAAK+jD,YAChC,CAAA,yBAAA,CAA2B,KAAK7rD,QAASs6C,CAAAA,YAAAA,CAAe,GAAM,CAAA,IAAA,CAAKgqH,MAAMr/M,IACzE,CAAA,wBAAA,CAA0B,yBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,EACL,CAEC,CAAA,KAAA,CAAA,IAAA,CAAKq/M,MAAM1tK,QAAa,GAAA,IAAA,CAAKuoK,qBAAyB,EAAA,IAAA,CAAKmF,MAAM1tK,QAAa,GAAA,IAAA,CAAKwoK,qBACnF,IAAA,IAAA,CAAK5tI,UAAY,IAAKnB,CAAAA,QAAAA,CAAAA,EACvB,IAAKkoI,CAAAA,qBAAAA,EACL,IAAKoH,CAAAA,WAAAA,EACL,IAAKkD,CAAAA,aAAAA,EACLhiJ,aAAaC,OAAQ,CAAA,gBAAgB,CAEhC,GAAA,IAAA,CAAKs/I,eACN,IAAK3kL,CAAAA,UAAAA,CAAWsC,aAAcktE,CAAAA,aAAAA,CAAc,OAAO,CAAG2tC,EAAAA,KAAAA,EACtD,CAAA,IAAA,CAAKgnE,UAAU,EAAA,CAAA,EAI/B,CAEAxyK,QAAAA,EAAQ,CACJ,IAAKmyK,CAAAA,qBAAAA,CAAwB,IAAKv/J,CAAAA,QAAAA,EAAUmC,YAAc8iK,EAAAA,0BAAAA,CAAAA,CACtD,IAAKzzI,CAAAA,QAAAA,EAAY,KAAKnB,QACtBxP,GAAAA,YAAAA,CAAaK,OAAQ,CAAA,cAAA,CAAgB,OAAO,CAAA,CAEhD,IAAK8V,CAAAA,gBAAAA,CAAmB,KAAKstI,KAAMxjK,CAAAA,SAAAA,CACnC,IAAK2+H,CAAAA,cAAAA,GACL,IAAMh3D,CAAAA,CAAgB,IAAKz7E,CAAAA,qBAAAA,CAAsBU,uBAC7C+6E,CAAAA,CAAAA,CAAc8xF,SAAqBv5I,EAAAA,IAAAA,CAAKC,KAAMwnD,CAAAA,CAAAA,EAAe8xF,SAAWtgI,EAAAA,OAAAA,EAAS/1E,UAAYw1C,EAAAA,WAAAA,EAAa,CAAA,GAE1G,KAAKirK,eAAkBl8F,CAAAA,CAAAA,CAAc8xF,SAAU2K,CAAAA,WAAAA,CAC/C,KAAK3M,qBAAwB,CAAA,CAAA,CAAA,CAAA,CAIjC,IAAM/7D,CAAAA,CAAmB,IAAKxvG,CAAAA,qBAAAA,CAAsByvG,uBAAuB,EAAA,CAC3E,KAAK0oE,mBAAsB,CAAA,IAAA,CAAKl5J,aAAclJ,CAAAA,4BAAAA,CAA6B,KAAKuhK,KAAMxjK,CAAAA,SAAAA,CAAW07F,CAAiB4oE,CAAAA,eAAe,EAEjI,IAAKC,CAAAA,WAAAA,EACL,CAAA,IAAA,CAAKC,sBAAuB,CAAA,IAAA,CAAK97E,kBAAmBh/C,CAAAA,cAAAA,EAAgB,CAChE,CAAA,IAAA,CAAK+6H,aAAiB,EAAA,IAAA,CAAKjB,KAAMltI,CAAAA,OAAAA,EAAW,IAAKktI,CAAAA,KAAAA,CAAMltI,QAAQ/8B,OAAQ,CAAA,YAAY,CAAI,CAAA,CAAA,CAAA,GACvF,IAAK0pD,CAAAA,SAAAA,CAAY,IAAKylC,CAAAA,kBAAAA,CAAmB5/C,0BAA0B5xD,SAAW+2B,CAAAA,CAAAA,EAAY,CAClFA,CAAAA,EACA,KAAKu2J,sBAAuBv2J,CAAAA,CAAQ,EAE5C,CAAC,GAEL,IAAKy2J,CAAAA,cAAAA,EACL,CAAA,IAAA,CAAKz7I,eAAe,EAAA,CACpB,IAAKC,CAAAA,sBAAAA,GAGL,IAAKmxI,CAAAA,+BAAAA,CAAkC3+D,CAAiB4+D,CAAAA,eAAAA,CACxD,KAAK3B,oCAAuCj9D,CAAAA,CAAAA,CAAiB6+D,oBAC7D,CAAA,IAAA,CAAKoK,wBAA0B,IAAK7oD,CAAAA,iBAAAA,CAAkB1gB,uBAAwBlkH,CAAAA,SAAAA,CAAW+2B,CAAY,EAAA,CAC7FA,CAAYA,EAAAA,CAAAA,CAASjyB,MAAQ,CAC7B,EAAA,IAAA,CAAK4oL,eAAe,GAE5B,CAAC,CACD,CAAA,IAAA,CAAKA,eAAe,EAAA,CACpB,KAAKhzC,qBAAwB,CAAA,IAAA,CAAK1lI,qBAAsBwnC,CAAAA,4BAAAA,EAA+B+0B,CAAAA,wBAAAA,CACnF,IAAKmpE,CAAAA,qBAAAA,GACL,KAAK8N,kBAAqB,CAAA,IAAA,CAAK/+E,sBAAuB/uB,CAAAA,yBAAAA,CAA0B16C,SAAWyoJ,CAAAA,CAAAA,EAAsB,CACzGA,CAAAA,EACA,KAAKC,gBAAgB,GAE7B,CAAC,CAAA,CAAA,CAGL,IAAK19E,CAAAA,YAAAA,EACL,CAAA,IAAA,CAAKinC,sBAAwB,SAAY,CAAA,IAAA,CAAKlpG,OAC1C,CAAA,IAAA,CAAK8iB,iBACL,IAAK8hK,CAAAA,mBAAAA,EAET,CAAA,IAAA,CAAK5F,aAAe,IAAKuE,CAAAA,KAAAA,EAAOjtK,IAAM7H,EAAAA,GAAAA,EAAKiO,MAAO,CAAA,CAAA,CAAG,IAAK6mK,CAAAA,KAAAA,EAAOjtK,MAAM7H,GAAKo9E,EAAAA,WAAAA,CAAY,GAAG,CAAC,CAAI,CAAA,IAAA,CAAK+3F,gBACzG,CAEAiB,eAAeC,CAAsC,CAAA,CACjD,GAAIA,CAAAA,EAAoBA,CAAiB/oL,CAAAA,IAAAA,CAAO,CAC5C,CAAA,CAAA,IAAA,IAAWv6B,KAAOsjN,CACd,CAAA,GAAItjN,CAAI,CAAA,CAAC,GAAK,IAAK+hN,CAAAA,KAAAA,CAAM7tK,MAAQ,CAAA,CAC7B,KAAK6tK,KAAM99I,CAAAA,iBAAAA,CAAoB,CAC/B,CAAA,CAAA,KACJ,CAGZ,CAAA,CAEAi5G,cAAc,EAAA,CACV,IAAMhyI,CAAgB,CAAA,IAAA,CAAKT,qBAAsBU,CAAAA,qBAAAA,EAC3Co7B,CAAAA,CAAAA,CAAoB,IAAK97B,CAAAA,qBAAAA,CAAsB+7B,4BACrD,CAAA,IAAA,CAAKzC,wBAA2BwC,CAAAA,CAAAA,CAAaxC,wBAC7C,CAAA,IAAA,CAAKkB,iBAAoB,CAAA,IAAA,CAAKvb,cAAclJ,4BAA6B,CAAA,IAAA,CAAKi0B,gBAAkBvpC,CAAAA,CAAAA,CAASi8B,uBAAuB,CAChI,CAAA,IAAA,CAAKE,aAAgBn8B,CAAAA,CAAAA,CAASm8B,cAC9B,IAAKkxG,CAAAA,eAAAA,CAAkB,IAAK7uH,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKi0B,gBAAkBvpC,CAAAA,CAAAA,CAAS41I,aAAa,CACpH,CAAA,IAAA,CAAKu0B,kBAAqB,CAAA,IAAA,CAAK3rJ,cAAclJ,4BAA6B,CAAA,IAAA,CAAKi0B,gBAAkBvpC,CAAAA,CAAAA,CAASmqK,kBAAkB,CAC5H,CAAA,IAAA,CAAKjwI,YAAe,CAAA,IAAA,CAAK1b,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKi0B,CAAAA,gBAAAA,CAAkBvpC,EAASk8B,wBAAwB,CAAA,CAC5H,IAAKynH,CAAAA,qBAAAA,CAAwB,KAAKnlI,aAAczI,CAAAA,8CAAAA,CAC5C,IAAKwzB,CAAAA,gBAAAA,CACLvpC,EAAS4jJ,2BAA2B,CAAA,CAExC,IAAKywB,CAAAA,kBAAAA,CAAqB,IAAK71J,CAAAA,aAAAA,CAAclJ,4BAA6B,CAAA,IAAA,CAAKi0B,iBAAkBvpC,CAASq4K,CAAAA,6BAA6B,CACvI,CAAA,IAAA,CAAKh/I,uBAA0B,CAAA,IAAA,CAAK7a,aAAclJ,CAAAA,4BAAAA,CAA6B,KAAKi0B,gBAAkBvpC,CAAAA,CAAAA,CAASq5B,uBAAuB,CAAA,CACtI,IAAKgyI,CAAAA,sBAAAA,CAAyB,IAAK7sJ,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKi0B,CAAAA,gBAAAA,CAAkBvpC,CAASqrK,CAAAA,sBAAsB,EACpI,IAAK/xI,CAAAA,aAAAA,CAAgB,IAAK9a,CAAAA,aAAAA,CAAclJ,6BAA6B,IAAKi0B,CAAAA,gBAAAA,CAAkBvpC,CAASs5B,CAAAA,aAAa,CAClH,CAAA,IAAA,CAAKw+I,aAAgB,CAAA,IAAA,CAAKt5J,cAAclJ,4BAA6B,CAAA,IAAA,CAAKi0B,gBAAkBvpC,CAAAA,CAAAA,CAASs4K,wBAAwB,CAC7H,CAAA,IAAMxtK,CAAkB,CAAA,IAAA,CAAKvL,sBAAsBwL,iBAAiB,EAAA,CACpE,IAAKytB,CAAAA,OAAAA,CAAU1tB,CAAWZ,CAAAA,IAAAA,CAAOlK,CAASw8B,CAAAA,WAAAA,CAAYhE,QACtD,IAAKE,CAAAA,YAAAA,CAAe5tB,CAAWZ,CAAAA,IAAAA,CAAOlK,EAASw8B,WAAY9D,CAAAA,YAAAA,CAC3D,IAAM0C,CAAAA,CAAc,KAAK77B,qBAAsBkX,CAAAA,oBAAAA,EAC/C,CAAA,IAAA,CAAK+kB,sBAAyB,CAAA,IAAA,CAAKhd,aAAclJ,CAAAA,4BAAAA,CAC7C,KAAKi0B,gBACLnO,CAAAA,CAAAA,CAAYK,+BAA+B,CAAA,CAE/C,IAAKhQ,CAAAA,kCAAAA,CAAqC,IAAKjN,CAAAA,aAAAA,CAAclJ,6BACzD,IAAKi0B,CAAAA,gBAAAA,CACLnO,CAAYG,CAAAA,2BAA2B,CAE3C,CAAA,IAAA,CAAK4nD,YAAe,CAAA,IAAA,CAAK5jF,sBAAsBgE,mBAAmB,EAAA,CAClE,IAAKoxK,CAAAA,iBAAAA,CAAoB,KAAKxxF,YAAax/E,CAAAA,QAAAA,CAAS,iBACpD,CAAA,IAAA,CAAK40K,wBAA0B,IAAKp1F,CAAAA,YAAAA,CAAax/E,QAAS,CAAA,uBAAA,CAC1D,IAAK60K,CAAAA,sBAAAA,CAAyB,IAAKr1F,CAAAA,YAAAA,CAAax/E,SAAS,sBACzD,CAAA,IAAA,CAAKmxK,gBAAmB,CAAA,IAAA,CAAK3xF,aAAat0D,mBAAoB,CAAA,iBAAA,CAC9D,IAAK+lJ,CAAAA,2BAAAA,CAA8B,KAAKzxF,YAAat0D,CAAAA,mBAAAA,CAAoB,uBACzE,CAAA,IAAA,CAAKgmJ,qBAAwB,CAAA,IAAA,CAAK1xF,YAAat0D,CAAAA,mBAAAA,CAAoB,uBACnE,IAAK2lJ,CAAAA,+BAAAA,CAAkC,IAAKrxF,CAAAA,YAAAA,EAAcx/E,SAAS,0BACnE,CAAA,IAAA,CAAK8wK,2BAA8B,CAAA,IAAA,CAAKtxF,cAAcx/E,QAAS,CAAA,0BAAA,CAC/D,IAAKi4B,CAAAA,YAAAA,CAAe,IAAKunD,CAAAA,YAAAA,CAAaznD,eAAgBG,CAAAA,oBAAAA,CAChD,KAAKsnD,YAAaznD,CAAAA,eAAAA,CAAgBG,oBAClC,CAAA,aAAA,CAEF,IAAKsnD,CAAAA,YAAAA,CAAat0D,mBAAoB6nC,CAAAA,cAAAA,EACtC,KAAKysB,YAAct0D,EAAAA,mBAAAA,EAAqB6nC,cAAgBzqD,EAAAA,WAAAA,EAAkB,GAAA,MAAA,GAE1E,IAAKwiD,CAAAA,cAAAA,CAAiB,oBACtB,IAAKC,CAAAA,gBAAAA,CAAmB,qBAE5B,CAAA,CAAA,IAAMtM,EAAiB,IAAK7iD,CAAAA,qBAAAA,CAAsB8W,sBAAsB,EAAA,CACxE,KAAKD,eAAkBgsC,CAAAA,CAAAA,CAAUF,uBACjC,CAAA,IAAM+hE,CAAqB,CAAA,IAAA,CAAK1kH,qBAAsBisH,CAAAA,yBAAAA,GACtD,IAAK6rD,CAAAA,kBAAAA,CAAqBpzD,CAAmBozD,CAAAA,kBAAAA,CAC7C,IAAKE,CAAAA,sBAAAA,CAAyBtzD,CAAmBszD,CAAAA,sBAAAA,CACjD,KAAKtoC,mBAAsBjvI,CAAAA,CAAAA,CAASivI,oBACxC,CAEAgE,gBAAgB,EAAA,CACZ,IAAKE,CAAAA,iBAAAA,CAAkB,KAAKn/E,sBAAuBvtB,CAAAA,2BAAAA,CAA4B,IAAKowI,CAAAA,KAAAA,CAAM7tK,MAAM,CAAC,EACrG,CAGAmqI,iBAAAA,CAAkBC,EAA2B,CACzC,IAAA,CAAKC,iBAAoBD,CAAAA,CAAAA,CACrB,IAAKC,CAAAA,iBAAAA,EAAqB1+H,IAC1B,EAAA,IAAA,CAAK46H,kBAAoB,CACzB,CAAA,CAAA,IAAA,CAAKs6B,OAAU,CAAA,IAAA,CAAKx2B,iBAAkBw2B,CAAAA,OAAAA,CACtC,IAAK3lC,CAAAA,cAAAA,CAAiB,KAAKmP,iBAAkBnP,CAAAA,cAAAA,CAC7C,IAAKG,CAAAA,UAAAA,CAAa,IAAKgP,CAAAA,iBAAAA,CAAkBhP,UAEzC,EAAA,IAAA,CAAKkL,kBAAoB,CAEjC,EAAA,CAEAh/I,eAAe,EAAA,CACX,KAAKq5B,MAAO6uJ,CAAAA,iBAAAA,CAAkB,IAAK,CAC/BtxK,WAAW,IAAK,CACZ,IAAKgwK,CAAAA,WAAAA,CAAc,CACvB,EAAA,CAAA,CAAG,GAAG,EACV,CAAC,CACG,CAAA,IAAA,CAAK9pC,eACL,CAAA,IAAA,CAAKgF,uBAEL,CAAA,IAAA,CAAKC,gBAAgB,GAE7B,CAEA11G,WAAW,EAAA,CACP,IAAK2M,CAAAA,gBAAAA,CAAmB,IAAKstI,CAAAA,KAAAA,CAAMxjK,SACnC,CAAA,IAAA,CAAK2+H,gBACD,CAAA,IAAA,CAAK/M,qBACL,EAAA,IAAA,CAAKgO,mBAEb,CAEAyhC,6BAA6B,EAAA,CACzB,OAAI,IAAKxjK,CAAAA,mBAAAA,CAAoB1E,cAAc,EAAA,CAChC,yBAEA,CAAA,mBAEf,CAEAqrK,sBAAAA,CAAuB97H,EAAgB,CACnC,IAAA,CAAK67H,WAAW,EAAA,CACZ,IAAKj9D,CAAAA,QAAAA,EAAY,IAAKA,CAAAA,QAAAA,CAAS3tI,OAAS,CACxC,EAAA,IAAA,CAAK2tI,QAAS93F,CAAAA,OAAAA,CAAQ,CAACpuD,CAAAA,CAAW9C,CAAa,GAAA,CACvC8C,GAAMhC,GAAKm6C,EAAAA,OAAAA,CAAQ,YAAY,CAAA,CAAI,KAC/BmvC,CAAeA,EAAAA,CAAAA,CAAY/uE,MAAS,CAAA,CAAA,EAAK+uE,EAAYnvC,OAAQ,CAAA,IAAA,CAAKgX,IAAK5a,CAAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CACjF,IAAK2xG,CAAAA,QAAAA,CAASj0F,OAAO/0D,CAAG,CAAA,CAAC,CAEzB,CAAA,IAAA,CAAKgpJ,QAAShpJ,CAAAA,CAAC,CAAEuD,CAAAA,KAAAA,CAAQ,KAAK8oF,UAAWtqD,CAAAA,GAAAA,CAAI,IAAKinH,CAAAA,QAAAA,CAAShpJ,CAAC,CAAA,CAAEc,GAAG,CAAA,CAErE,KAAKkoJ,QAAWl2G,CAAAA,KAAAA,CAAM1yC,IAAK,CAAA,IAAIk7F,IAAI,IAAK0tD,CAAAA,QAAQ,CAAC,CAAA,EAEzD,CAAC,CAEL,CAAA,IAAA,CAAK96E,kBAAmB+tF,CAAAA,mBAAAA,CAAoB7tI,IAAK,CAAA,CAAEipB,MAAQ,CAAA,IAAA,CAAK6tK,MAAM7tK,MAAQ2xG,CAAAA,QAAAA,CAAU,IAAKA,CAAAA,QAAAA,EAAY,EAAE,CAAE,EACjH,CAEA+9D,gBAAiBtmN,CAAAA,CAAAA,CAAgBkyC,CAAUq0K,CAAAA,CAAAA,CAAgB,CAEvD,OAAA,CADar0K,CAAIjV,CAAAA,IAAAA,EAAQ,IACb,CAAK,EAAA,CAACj9B,CAAK4a,CAAAA,MAAAA,CACZ,EAES2rM,CAAAA,CAAAA,CAAAA,CAAUvmN,CAAO,CAAA,CAACA,EAAK,CAAC,CAAC,CAClBkyC,EAAAA,GAAAA,CAAK7xC,CAAS,GAAA,CAAEA,GAAAA,CAAAA,CAAAA,CAAKyC,MAAOzC,CAAQ,GAAA,YAAA,CAAeA,CAAM6xC,CAAAA,CAAAA,CAAI5Q,IAAIjhC,CAAG,CAAC,CAAG,CAAA,CAAA,CACrFwH,OAAO,CAAC,CAAE/E,KAAAA,CAAAA,CAAK,CAAO,GAAA,CAAC,CAACA,CAAK,CAC/C,CAEA0iN,WAAAA,EAAW,CAGP,GAFA,KAAKj9D,QAAW,CAAA,EAChB,CAAA,IAAA,CAAK38D,WAAa,IAAKne,CAAAA,kBAAAA,CAAmB48F,aAAc,CAAA,IAAA,CAAKlzF,gBAAgB,CAAA,CACzE,CAAC,CAAA,IAAA,CAAK3lB,KAAK+lB,OAGf,CAAA,GAAI,IAAK/lB,CAAAA,IAAAA,CAAK+lB,OAAQ/8B,CAAAA,OAAAA,CAAQ,GAAG,CAAA,GAAM,IAAM,IAAKoxC,CAAAA,UAAAA,EAAY3uD,IAAO,CAAA,CAAA,CAAG,CACpE,IAAMmtJ,CAAuB,CAAA,IAAA,CAAK54H,KAAK+lB,OAAY,GAAA,YAAA,CAAe,IAAK/lB,CAAAA,IAAAA,CAAK+lB,QAAU,IAAKqU,CAAAA,UAAAA,CAAWtqD,GAAI,CAAA,IAAA,CAAKkwB,KAAK+lB,OAAO,CAAA,CAC3H,IAAKgxE,CAAAA,QAAAA,CAAW,CAAC,CAAEloJ,GAAK,CAAA,IAAA,CAAKmxD,KAAK+lB,OAASz0E,CAAAA,KAAAA,CAAOsnL,CAAY,CAAE,EACpE,CAAA,KAAO,CACH,IAAMC,EAAc,IAAK74H,CAAAA,IAAAA,CAAK+lB,OAAQv3D,CAAAA,KAAAA,CAAM,GAAG,CAAA,CAC/C,IAAKuoI,CAAAA,QAAAA,CAAW,KAAK+9D,gBAAiBj8B,CAAAA,CAAAA,CAAa,IAAKz+F,CAAAA,UAAAA,CAAY,KAAKqvF,eAAe,EAC5F,CACJ,CAEA18I,aAAW,CACH,IAAA,CAAK+rC,aACL,EAAA,IAAA,CAAKA,aAAchyC,CAAAA,WAAAA,EAEnB,CAAA,IAAA,CAAKstL,yBACL,IAAKA,CAAAA,uBAAAA,CAAwBttL,WAAW,EAAA,CAExC,IAAK4rE,CAAAA,SAAAA,EACL,IAAKA,CAAAA,SAAAA,CAAU5rE,aAEf,CAAA,IAAA,CAAKqoJ,kBACL,EAAA,IAAA,CAAKA,kBAAmBroJ,CAAAA,WAAAA,EAExB,CAAA,IAAA,CAAKkuL,yBACLjnG,YAAa,CAAA,IAAA,CAAKinG,uBAAuB,CAAA,CAEzC,KAAKC,gCACL,EAAA,IAAA,CAAKA,gCAAiCnuL,CAAAA,WAAAA,GAE9C,CAEA6qE,YAAAA,EAAY,CACJ,IAAA,CAAKshH,KACL,GAAA,IAAA,CAAKvwF,SAAY,CAAA,IAAA,CAAKuwF,MAAMr/M,IAEpC,EAAA,CAEA0lE,SAAU47I,CAAAA,CAAAA,CAAmB,CACpB,IAAK/B,CAAAA,aAAAA,EACN,GAAA,IAAA,CAAKC,mBAAqB,CACtB,CAAA,CAAA,EAAE,IAAKjzI,CAAAA,QAAAA,EAAY,IAAKnB,CAAAA,QAAAA,CAAAA,EAAa,IAAKo0I,CAAAA,kBAAAA,GAC1C,KAAK/E,gBAAmB6G,CAAAA,CAAAA,CACpB,IAAK/6F,CAAAA,UAAAA,CACD,KAAKuyB,aACL,GAAA,IAAA,CAAKyoE,sBAAyB,CAAA,CAAA,CAAA,CAC9B,KAAKC,sBAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAE3B,IAAK3N,CAAAA,sBAAAA,EAA0B,IAAKyG,CAAAA,qBAAAA,IAC3C,IAAKmH,CAAAA,YAAAA,CAAe,GACpB,IAAKC,CAAAA,YAAAA,CAAe,CAIpC,CAAA,CAAA,CAAA,EAAA,CAEA5mC,gBAAgB,EAAA,CAEZ,IAAMmB,CAAAA,CADS,KAAKl0I,qBAAsBgE,CAAAA,mBAAAA,EACdI,CAAAA,QAAAA,CAASowI,gBAC/BpqG,CAAAA,CAAAA,CAAmC,IAAK37C,CAAAA,UAAAA,CAAWsC,cAAckyI,gBAAiB,CAAA,qBAAqB,CAC7G,CAAA,IAAA,IAAS7wK,EAAI,CAAGA,CAAAA,CAAAA,CAAIg4E,CAAQ38D,CAAAA,MAAAA,CAAQrb,IAChCg4E,CAAQh4E,CAAAA,CAAC,CAAEq1C,CAAAA,KAAAA,CAAM2sI,OAAUF,CAAAA,EAEnC,CAEApB,qBAAAA,EAAqB,CACjB,IAAMrhL,CAAAA,CAAS,IAAKuuC,CAAAA,qBAAAA,CAAsBgE,qBACpComC,CAAAA,CAAAA,CAAmC,IAAK37C,CAAAA,UAAAA,CAAWsC,cAAckyI,gBAAiB,CAAA,qBAAqB,CAC7G,CAAA,IAAA,IAAS7wK,CAAI,CAAA,CAAA,CAAGA,CAAIg4E,CAAAA,CAAAA,CAAQ38D,OAAQrb,CAChCg4E,EAAAA,CAAAA,CAAAA,CAAQh4E,CAAC,CAAA,CAAEq1C,MAAM2sI,OAAU3iL,CAAAA,CAAAA,CAAO2yC,QAAS+vI,CAAAA,eAAAA,CAE/C,IAAME,CAAgB5iL,CAAAA,CAAAA,CAAO2yC,QAASkwI,CAAAA,eAAAA,CAChCC,CAAoC,CAAA,IAAA,CAAK9lJ,UAAWsC,CAAAA,aAAAA,CAAckyI,iBAAiB,qBAAqB,CAAA,CAC9G,IAAS7wK,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAImiL,CAAS9mK,CAAAA,MAAAA,CAAQrb,IACjCmiL,CAASniL,CAAAA,CAAC,CAAEq1C,CAAAA,KAAAA,CAAM2sI,OAAUC,CAAAA,EAEpC,CAEAv2G,UAAAA,EAAU,CACA,IAAK0G,CAAAA,QAAAA,EAAY,IAAKnB,CAAAA,QAAAA,GACxB,KAAKqvI,gBAAmB,CAAA,EAAA,CACxB,IAAK+E,CAAAA,kBAAAA,CAAqB,GACtB,IAAK3L,CAAAA,sBAAAA,GACL,IAAK4N,CAAAA,YAAAA,CAAe,CACpB,CAAA,CAAA,IAAA,CAAKC,YAAe,CAAA,CAAA,CAAA,CAAA,CAEpB,KAAKpH,qBACL,GAAA,IAAA,CAAKmH,YAAe,CAAA,CAAA,CAAA,CACpB,KAAKC,YAAe,CAAA,CAAA,CAAA,CAAA,CAEpB,IAAKn7F,CAAAA,UAAAA,GACL,KAAKg7F,sBAAyB,CAAA,CAAA,CAAA,CAC9B,IAAKC,CAAAA,sBAAAA,CAAyB,CAG1C,CAAA,CAAA,EAAA,CAEA/7I,aAAa,EAAA,CACTxwB,OAAOm/C,QAAS,CAAA,CAAA,CAAG,IAAKypF,CAAAA,gBAAgB,EACxC,IAAK/B,CAAAA,oCAAAA,GACT,CAEAh3G,iBAAe,CACX,IAAMlP,CAAe,CAAA,IAAA,CAAK0N,kBAAmBlN,CAAAA,mBAAAA,CAAoB,IAAKipJ,CAAAA,KAAAA,CAAM7tK,MAAM,CAC5E+0B,CAAAA,CAAAA,CAAqB,IAAKx+B,CAAAA,qBAAAA,CAAsBkX,oBAAoB,EAAA,CAAGsnB,kBACzE3Q,CAAAA,CAAAA,GACA,KAAKypJ,KAAMzpJ,CAAAA,YAAAA,CAAeA,CAAaf,CAAAA,MAAAA,CACvC,IAAKwqJ,CAAAA,KAAAA,CAAMvqJ,iBAAoBc,CAAAA,CAAAA,CAAad,kBACxCyR,CACA,GAAA,IAAA,CAAK7E,cAAiB,CAAA,IAAA,CAAK4B,mBAAmB3N,sBAAuBC,CAAAA,CAAY,CAG7F,CAAA,EAAA,CAEAmP,wBAAsB,CAClB,IAAA,CAAKG,aAAgB,CAAA,IAAA,CAAK5B,kBAAmB1Q,CAAAA,qBAAAA,CAAsB7/B,SAAU,CAAA,IAAK,CAC9E,IAAK+xC,CAAAA,eAAAA,GACT,CAAC,CACG,CAAA,IAAA,CAAK7Q,kCACL,EAAA,IAAA,CAAKqP,mBAAmBvQ,mBAAoBhgC,CAAAA,SAAAA,CAAU,IAAK,CACvD,IAAK+xC,CAAAA,eAAAA,EACL,CAAA,IAAA,CAAK3pC,gBAAgBwmL,YAAY,GACrC,CAAC,EAET,CAEAt/I,eAAgBL,CAAAA,CAAAA,CAAkB,CAE9B,GADAA,EAAO9yB,wBAAwB,EAAA,CAC3B,IAAKxH,CAAAA,IAAAA,CAAKkR,eAEN,CAAA,IAAA,CAAK61D,gBACJ,GAAA,IAAA,CAAKA,mBAAqB,sCAA0C,EAAA,IAAA,CAAKA,gBAAqB,GAAA,kCAAA,CAAA,EAE/F,IAAK+tE,CAAAA,oBAAAA,EAET,CAAA,IAAA,CAAKr5G,iBAAiBtU,mBAAoB,CAAA,IAAA,CAAKwwJ,KAAK,CAAA,CAAA,KACjD,CAEH,GADA,IAAK3xJ,CAAAA,MAAAA,CAAOosE,UAAU,eAAiB,CAAA,IAAA,CAAKulF,KAAK,CAAA,CAC7C,KAAK3lK,mBAAoB1E,CAAAA,cAAAA,EAAkB,CAAA,CAC3C,KAAK0E,mBAAoB9D,CAAAA,mBAAAA,CAAoB,YAAc,CAAA,CACvDu3E,WAAa,CAAA,CAAA,CAAA,CACbpoB,eAAiB,CAAA,WAAA,CACpB,EACD,MACJ,CACA,IAAKu6G,CAAAA,eAAAA,CAAgB9kJ,KAAK,CAAEuqC,eAAAA,CAAiB,WAAW,CAAE,EAC9D,CAEJ,CAEAy3E,oBAAoB,EAAA,CAChB,IAAKzqG,CAAAA,gBAAAA,CAAmB,IAAKstI,CAAAA,KAAAA,CAAMxjK,WAE/B,IAAK4yD,CAAAA,gBAAAA,GAAqB,sCAC1B,EAAA,IAAA,CAAKA,mBAAqB,6CAE1B,GAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,eAAgB,CACvC,yBAAA,CAA2B,uBAC3B,CAAA,sBAAA,CAAwB,YACxB,CAAA,uBAAA,CAAyB,IAAKmsD,CAAAA,eAAAA,CAAgB,KAAK5iD,IAAI,CAAA,CAAI,cAAiB,CAAA,YAAA,CAC5E,yBAA2B,CAAA,IAAA,CAAKizJ,KAAM7tK,CAAAA,MAAAA,CAAS,IAAM,IAAKo1D,CAAAA,YAAAA,CAC1D,yBAA2B,CAAA,IAAA,CAAK70B,gBACnC,CAAA,EAET,CAEAi9B,eAAAA,CAAgB5iD,EAAS,CACrB,OAAO,IAAK+W,CAAAA,gBAAAA,CAAiBhX,sBAAsBC,CAAI,CAC3D,CAEQ2hI,aAAAA,CAAcxzL,EAAY,CAC9B,IAAM+4C,CAAa,CAAA,IAAA,CAAKvL,qBAAsBwL,CAAAA,iBAAAA,EAC9C,CAAA,IAAA,CAAKiiI,YAAcliI,CAAWgjF,CAAAA,cAAAA,CAC9B,IAAM9zB,CAAAA,CAAY,IAAIngB,IACtBmgB,CAAAA,OAAAA,CAAUp2C,CAAAA,IAAAA,CAAO,KAAKizJ,KACtB78G,CAAAA,CAAAA,CAAUpmD,OAAU,CAAA,IAAA,CAAKmwB,QAAY,EAAA,IAAA,CAAKnB,QAC1Co3B,CAAAA,CAAAA,CAAUoE,aAAe,IAAKA,CAAAA,YAAAA,CAC9BpE,CAAU75B,CAAAA,YAAAA,CAAe,KAAK5tB,QAASjE,CAAAA,UAAAA,CACvC0rD,CAAUjoG,CAAAA,IAAAA,CAAOA,EACjBioG,CAAUlgB,CAAAA,qBAAAA,CAAwB,CAClCkgB,CAAAA,CAAAA,CAAAA,CAAUjgB,YAAe,CAAA,CAAA,CAAA,CACzBigB,CAAUhgB,CAAAA,aAAAA,CAAgB,GAC1BggB,CAAUiM,CAAAA,gBAAAA,CAAmB,IAAKA,CAAAA,gBAAAA,CAClCjM,CAAU54B,CAAAA,YAAAA,CAAe,IAAK7uB,CAAAA,QAAAA,CAASs/J,cACvC73G,CAAUiE,CAAAA,aAAAA,CAAgB,IAAK44G,CAAAA,KAAAA,CAAM54G,aACrCjE,CAAAA,CAAAA,CAAUrrB,cAAiB,CAAA,IAAA,CAAK22G,4BAA4BjnF,gBAAgB,EAAA,CACrErE,CACX,CAEAp4D,OAAO7vC,CAAY,CAAA,CACV,IAAKglN,CAAAA,aAAAA,IACN,IAAKpX,CAAAA,QAAAA,CACAyZ,QACG,CAAA,IAAK,CACD,IAAMp/G,CAAY,CAAA,IAAA,CAAKurF,cAAcxzL,CAAI,CAAA,CACzC,IAAKuzL,CAAAA,2BAAAA,CAA4Bp/E,WAAWlM,CAAS,EACzD,CACA,CAAA,CACImsB,MAAO,IACV,CAAA,CAAA,CAEJ57F,SAAS,GAEtB,CAEAwtL,cAAAA,EAAc,CACV,GAAI,MAAKlB,KAAMvuI,CAAAA,kBAAAA,CAGf,CAAI,GAAA,IAAA,CAAKuuI,MAAMjtK,IAAQ,EAAA,IAAA,CAAKitK,KAAMjtK,CAAAA,IAAAA,CAAK7H,IACnC,IAAK6H,CAAAA,IAAAA,CAAK7H,GAAM,CAAA,IAAA,CAAK6vK,aAAc7vK,CAAAA,GAAAA,CAAM,IAAK80K,CAAAA,KAAAA,CAAMjtK,KAAK7H,GACtD,CAAA,KAAA,CACH,IAAM+I,CAAAA,CAAkB,IAAKvL,CAAAA,qBAAAA,CAAsBwL,iBAAiB,EAAA,CAC9DivD,EAAY,IAAKznD,CAAAA,QAAAA,CAASg5B,UAAc,EAAA,IAAA,CAAKh5B,QAASg5B,CAAAA,UAAAA,CAAWtxE,MAAQ+/F,CAAAA,CAAAA,EAAmBA,EAAU68G,KAAU,GAAA,IAAA,CAAKA,KAAM7tK,CAAAA,MAAM,EACvI,GAAIgxD,CAAAA,EAAaA,CAAU,CAAA,CAAC,EAAG,CAC3B,IAAMj4D,CACF+I,CAAAA,CAAAA,CAAWZ,IACXY,CAAAA,CAAAA,CAAWo+B,gBAAiBroC,CAAAA,OAAAA,CAAQ,MAAO,IAAK2yD,CAAAA,eAAAA,CAAgBrqB,WAAY6wB,CAAAA,CAAAA,CAAU,CAAC,CAAC,CAAC,CAAA,CAAEn5D,QAAQ,KAAOm5D,CAAAA,CAAAA,CAAU,CAAC,CAAA,CAAE68G,KAAK,CAAA,CAC5H,GACA,CAAA,IAAA,CAAKrjH,gBAAgBpqB,aAAc4wB,CAAAA,CAAAA,CAAU,CAAC,CAAC,EACnD,IAAKpwD,CAAAA,IAAAA,CAAK7H,GAAM,CAAA,IAAA,CAAK6vK,cAAc7vK,GAAMA,CAAAA,EAC7C,CAAO,KAAA,CACH,IAAMA,CAAAA,CACF+I,CAAWZ,CAAAA,IAAAA,CACXY,EAAWo+B,gBAAiBroC,CAAAA,OAAAA,CAAQ,KAAO,CAAA,IAAA,CAAK2yD,eAAgBrqB,CAAAA,WAAAA,CAAY,IAAK0tI,CAAAA,KAAK,CAAC,CAAEh2K,CAAAA,OAAAA,CAAQ,KAAO,CAAA,IAAA,CAAKg2K,KAAM7tK,CAAAA,MAAM,CACzH,CAAA,GAAA,CACA,KAAKwqD,eAAgBpqB,CAAAA,aAAAA,CAAc,IAAKytI,CAAAA,KAAAA,CAAM7tK,MAAM,CACxD,CAAA,IAAA,CAAKY,IAAK7H,CAAAA,GAAAA,CAAM,KAAK6vK,aAAc7vK,CAAAA,GAAAA,CAAMA,EAC7C,CACJ,CACA,IAAA,CAAK6H,IAAKwB,CAAAA,oBAAAA,CAAuB,KAAKyrK,KAAMzrK,CAAAA,oBAAAA,CAC5C,IAAKxB,CAAAA,IAAAA,CAAKyvK,mBAAqB,IAAKxC,CAAAA,KAAAA,CAAMwC,mBAC9C,CAAA,CAEA1/I,iBAAiBH,CAAW,CAAA,CACxB,IAAK67G,CAAAA,gBAAAA,CAAmB5oI,MAAOo3I,CAAAA,WAAAA,CAC/B,IAAKO,CAAAA,kCAAAA,GACLjjJ,QAASmiD,CAAAA,oBAAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAEv9C,CAAAA,SAAAA,CAAUv/B,GAAI,CAAA,uBAAuB,EAC1E,IAAKy/F,CAAAA,gBAAAA,GAAqB,sCAC1B,EAAA,IAAA,CAAKvhC,QAASrqB,CAAAA,YAAAA,CAAa,cAAgB,CAAA,CACvC,0BAA2B,uBAC3B,CAAA,sBAAA,CAAwB,0BACxB,CAAA,uBAAA,CAAyB,YACzB,CAAA,yBAAA,CAA2B,IAAKw8J,CAAAA,KAAAA,CAAM7tK,OAAS,GAAM,CAAA,IAAA,CAAKo1D,YAC1D,CAAA,yBAAA,CAA2B,IAAKy4G,CAAAA,KAAAA,CAAMxjK,SACzC,CAAA,CAAA,CAED,KAAK4yD,gBAAqB,GAAA,kCAAA,EAC1B,IAAKvhC,CAAAA,QAAAA,CAASrqB,aAAa,cAAgB,CAAA,CACvC,yBAA2B,CAAA,uBAAA,CAC3B,uBAAwB,sBACxB,CAAA,uBAAA,CAAyB,YACzB,CAAA,yBAAA,CAA2B,IAAKw8J,CAAAA,KAAAA,CAAM7tK,MAAS,CAAA,GAAA,CAAM,KAAKo1D,YAC1D,CAAA,yBAAA,CAA2B,IAAKy4G,CAAAA,KAAAA,CAAMxjK,UACzC,CAGD,CAAA,IAAA,CAAK4yD,gBAAoB,EAAA,sCAAA,EAA0C,KAAKA,gBAAoB,EAAA,kCAAA,EAC5F,IAAKvhC,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,cAAA,CAAgB,CACvC,yBAAA,CAA2B,QAC3B,sBAAwB,CAAA,mBAAA,CACxB,uBAAyB,CAAA,OAAA,CACzB,0BAA2B,IAAK+jD,CAAAA,YAAAA,CAChC,yBAA2B,CAAA,OAAA,CAC3B,yBAA0B,gBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,CAAA,CAED5kC,CACAA,EAAAA,CAAAA,CAAO9yB,wBAAwB,EAAA,CAEnC,IAAM6uI,CAAoB,CAAA,CACtB3xH,IAAM,CAAA,IAAA,CAAKizJ,KACXz4G,CAAAA,YAAAA,CAAc,IAAKA,CAAAA,YAAAA,CACnB6H,iBAAkB,IAAKA,CAAAA,gBAAAA,CACvB9lC,YAAc,CAAA,IAAA,CAAK5tB,QAASjE,CAAAA,UAAAA,CAC5B1E,IAAM,CAAA,IAAA,CAAKA,KACX+wG,QAAU,CAAA,IAAA,CAAKA,QACfv5E,CAAAA,YAAAA,CAAc,KAAK7uB,QAASs/J,CAAAA,aAAAA,CAC5B73G,SAAW,CAAA,IAAA,CAAKA,UAChB1mE,OAAS,CAAA,IAAA,CAAKA,OACdmpG,CAAAA,cAAAA,CAAgB,IAAKA,CAAAA,cAAAA,CACrBD,qBAAuB,CAAA,IAAA,CAAKA,sBAAwB,WACpDnpF,CAAAA,SAAAA,CAAW,IAAKk2B,CAAAA,gBAAAA,CAChBs7F,aAAc,eACdwQ,CAAAA,gBAAAA,CAAkB,IAAKA,CAAAA,gBAAAA,CAAAA,CAEvB,KAAKsO,qBACL,CAAA,IAAA,CAAK9O,qBAAsBn7B,CAAAA,qBAAAA,CAAsB67B,CAAiB,CAAA,CAEhD,IAAKyE,CAAAA,gBAAAA,CAAiBqK,wBAAwB9O,CAAiB,CAAA,CACvEh6F,WAAW,EAAA,CAAGhxD,UAAU,IAAK,CACnC,IAAK0yC,CAAAA,aAAAA,GACT,CAAC,EAET,CAEAmnH,kCAAAA,EAAkC,CAC9B,IAAMhmI,CAAkB,CAAA,IAAA,CAAK2pE,uBAAuB1pE,sBAAsB,EAAA,CAC1E,GAAID,CAAAA,EAAmBA,CAAgBkyE,CAAAA,KAAAA,EAE/B,EAAE,IAAA,CAAKumF,MAAMhzJ,UAAclP,EAAAA,IAAAA,EAAa,CAAC,IAAA,CAAKkiK,KAAMhzJ,CAAAA,UAAAA,CAAAA,EACpD,IAAKgzJ,CAAAA,KAAAA,CAAM54G,eAAiB,SAC5B,EAAA,IAAA,CAAK44G,KAAM54G,CAAAA,aAAAA,EAAiB,SAC9B,CACE,IAAMumF,CAAoB/3I,CAAAA,MAAAA,CAAOC,SAASC,IACtC83I,CAAAA,CAAAA,CACAC,CAAuB,CAAA,EAAA,CACvB,IAAKC,CAAAA,kBAAAA,CAAmBH,CAAS,CAAA,EACjCC,EAAeD,CAAUx0I,CAAAA,MAAAA,CAAO,CAAGw0I,CAAAA,CAAAA,CAAU53I,OAAQ,CAAA,GAAG,CAAC,CAAA,CACzD83I,EAAeF,CAAUx0I,CAAAA,MAAAA,CAAOw0I,CAAU53I,CAAAA,OAAAA,CAAQ,GAAG,CAAC,CAEtD63I,EAAAA,CAAAA,CAAeD,EAEf,IAAKI,CAAAA,kBAAAA,CAAmBH,CAAY,CAAA,CACpCA,EAAeA,CAAe,CAAA,YAAA,CAAe,IAAKoyB,CAAAA,KAAAA,CAAM7tK,OAExDy7I,CAAeA,CAAAA,CAAAA,CAAe,aAAgB,CAAA,IAAA,CAAKoyB,KAAM7tK,CAAAA,MAAAA,CAE7Dy7I,CAAeA,CAAAA,CAAAA,CAAeC,EAC9Bj4I,MAAO8mI,CAAAA,OAAAA,CAAQC,SAAU9mI,CAAAA,QAAAA,CAASC,IAAM,CAAA,EAAA,CAAI83I,CAAY,EAC5D,CAER,CAEAnR,oCAAAA,EAAoC,CAChC,IAAMl1H,CAAkB,CAAA,IAAA,CAAK2pE,sBAAuB1pE,CAAAA,sBAAAA,GAChDD,CAAmBA,EAAAA,CAAAA,CAAgBkyE,KAE/B,EAAA,EAAE,KAAKumF,KAAMhzJ,CAAAA,UAAAA,EAAclP,IAAa,EAAA,CAAC,KAAKkiK,KAAMhzJ,CAAAA,UAAAA,CAAAA,EACpD,IAAKgzJ,CAAAA,KAAAA,CAAM54G,aAAiB,EAAA,SAAA,EAC5B,IAAK44G,CAAAA,KAAAA,CAAM54G,eAAiB,QAG5BxxD,EAAAA,MAAAA,CAAO8mI,OAAQC,CAAAA,SAAAA,CAAU9mI,SAASC,IAAM,CAAA,EAAA,CAAID,QAASC,CAAAA,IAAAA,CAAKqD,OAAO,CAAGtD,CAAAA,QAAAA,CAASC,IAAKC,CAAAA,OAAAA,CADpE,WACiF,CAAA,CAAI,CAAC,CAAC,EAGjH,CAEAqrK,eAAAA,EAAe,CACP,IAAA,CAAKpB,OAAS,IAAKA,CAAAA,KAAAA,CAAM7tK,MACzB,EAAA,IAAA,CAAK+mG,aAAa/lI,GAAI,CAAA,IAAA,CAAKmlJ,iBAAkBrf,CAAAA,qBAAAA,CAAsB,IAAK+mE,CAAAA,KAAAA,EAAO7tK,MAAQiD,EAAAA,WAAAA,EAAa,CAAC,CAAA,CAEzG,IAAK8xE,CAAAA,UAAAA,CAAa,CAAC,CAAC,IAAKgyB,CAAAA,YAAAA,GACrB,IAAK8mE,CAAAA,KAAAA,EAAS,IAAKA,CAAAA,KAAAA,CAAM7tK,MACzB,GAAA,IAAA,CAAKsnG,aAAgB,CAAA,IAAA,CAAK6e,kBAAkB7e,aAAc,CAAA,IAAA,CAAKumE,KAAO7tK,EAAAA,MAAAA,EAAQiD,aAAa,CAAA,EAEnG,CAEA6mK,yBAAAA,CAA0B59M,EAAc,CAChCA,CAAAA,GACA,IAAKo7I,CAAAA,aAAAA,CAAgBp7I,CAE7B,EAAA,CAEA0vL,kBAAmBhnI,CAAAA,CAAAA,CAAW,CAC1B,OAAIA,CAAAA,CAAIuhE,WAAY,CAAA,GAAG,EAAI,CAAMvhE,GAAAA,CAAAA,CAAI5wC,MAIzC,CAEA23K,mBAAmB/mI,CAAW,CAAA,CAC1B,OAAIA,CAAAA,EAAAA,CAAOA,EAAAA,CAAAA,CAAIhR,OAAQ,CAAA,GAAG,EAAI,CAIlC,CAAA,CAAA,CAEAsrK,mBAAmB,EAAA,CACf,KAAKW,gCAAmC,CAAA,IAAA,CAAK1kH,gBAAiBjU,CAAAA,gBAAAA,CAAiB31D,UAAWu6D,CAAS,EAAA,CAC/F,GAAIA,CAAAA,CAAMz1D,IAAO,CAAA,CAAA,CAAG,CAChB,IAAMiqL,EAAex0H,CAAMpxD,CAAAA,GAAAA,CAAI,IAAKmjL,CAAAA,KAAAA,CAAM7tK,MAAM,CAAA,CAC5CshG,CACJ,CAAA,GAAIgvE,EAAc,CACd,IAAA,CAAKC,gBAAmB,CAAA,CAAA,CAAA,CACxB,IAAM/8B,CAAAA,CAAuB88B,CAAar6K,CAAAA,IAAAA,CAAK6pD,YAC3C0zF,CAAaxvK,CAAAA,MAAAA,CAAS,CACtB,GAAA,IAAA,CAAK2tI,SAAW,CAAC,CAAEloJ,GAAK+pL,CAAAA,CAAAA,CAActnL,MAAOsnL,CAAY,CAAE,CAE/DlyC,CAAAA,CAAAA,CAAAA,CAAagvE,CAAar6K,CAAAA,IAAAA,EAAQq6K,CAAar6K,CAAAA,IAAAA,CAAK2mD,iBAAmB0zH,CAAar6K,CAAAA,IAAAA,CAAK2mD,eAAgBn+C,CAAAA,OAAAA,GACrG,CAAC,IAAA,CAAKmxK,uBAA2BtuE,EAAAA,CAAAA,CAAa/iG,KAAKmoB,GAAG,EAAA,GACtD,IAAKkpJ,CAAAA,uBAAAA,CAA0B,IAAKjvJ,CAAAA,YAAAA,CAAaxiB,UAAW,CAAA,IAAK,CAC7D,IAAKywK,CAAAA,WAAAA,EACL,CAAA,IAAA,CAAKgB,wBAA0B,KACnC,CAAA,CAAGtuE,CAAa/iG,CAAAA,IAAAA,CAAKmoB,KAAK,CAAA,EAElC,CACJ,CACJ,CAAC,EACL,CAEA8pJ,SAAAA,EAAS,CACL,GACK,CAAA,IAAA,CAAK3C,KAAM1tK,CAAAA,QAAAA,GAAa,IAAKuoK,CAAAA,qBAAAA,EAAyB,IAAKmF,CAAAA,KAAAA,CAAM1tK,WAAa,IAAKwoK,CAAAA,qBAAAA,GACpF,EAAE,IAAA,CAAK5tI,QAAY,EAAA,IAAA,CAAKnB,QACxB,CAAA,EAAA,IAAA,CAAKkoI,sBACP,CACE,IAAA,CAAKoH,WAAc,CAAA,CAAA,CAAA,CACnB,IAAMlnE,CAAQ,CAAA,IAAA,CAAKh9G,UAAWsC,CAAAA,aAAAA,EAAektE,cAAc,OAAO,CAAA,CAC9DwtC,CACAA,GAAAA,CAAAA,CAAMssE,WAAc,CAAA,CAAA,CACpBtsE,CAAMK,CAAAA,IAAAA,IAEV,IAAK3mE,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,gBAAA,CAAkB,CACzC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,0BACxB,uBAAyB,CAAA,OAAA,CACzB,yBAA2B,CAAA,IAAA,CAAK+jD,YAChC,CAAA,yBAAA,CAA2B,IAAK7rD,CAAAA,QAAAA,CAASs6C,aAAe,GAAM,CAAA,IAAA,CAAKgqH,KAAMr/M,CAAAA,IAAAA,CACzE,yBAA0B,yBAC1B,CAAA,sBAAA,CAAwB,gBAC3B,CAAA,EACL,CACJ,CAEA46M,cAAAA,EAAc,CACV,IAAA,CAAKgD,aAAgB,CAAA,CAAA,EACzB,CAEAqE,SAAAA,EAAS,CACL,GACK,CAAA,IAAA,CAAK5C,KAAM1tK,CAAAA,QAAAA,GAAa,IAAKuoK,CAAAA,qBAAAA,EAAyB,IAAKmF,CAAAA,KAAAA,CAAM1tK,WAAa,IAAKwoK,CAAAA,qBAAAA,GACpF,EAAE,IAAA,CAAK5tI,QAAY,EAAA,IAAA,CAAKnB,QACxB,CAAA,EAAA,IAAA,CAAKkoI,uBAED,IAAKoH,CAAAA,WAAAA,EAAe,CAAM,CAAA,CAAA,CAC1B,IAAMwH,CAAmBv4K,CAAAA,QAAAA,CAASC,cAAe,CAAA,IAAA,CAAKy1K,MAAM7tK,MAAM,CAAA,CAGlE,GAFA,IAAA,CAAKkpK,WAAc,CAAA,CAAA,CAAA,CACnB,IAAKkD,CAAAA,aAAAA,CAAgB,GACjBsE,CAAa,CAAA,CACb,IAAMC,CAAAA,CAAYD,EAAYE,QAAWF,CAAAA,CAAAA,CAAYpC,WACjDuC,CAAAA,CAAAA,CAAmB,IAAMH,CAAYpC,CAAAA,WAAAA,CAAeoC,CAAYE,CAAAA,QAAAA,CAChEF,CAAYpC,CAAAA,WAAAA,GAAgB,CAC5BuC,GAAAA,CAAAA,CAAkB,GAEtB,IAAM/xI,CAAAA,CAAc4xI,CAAYpC,CAAAA,WAAAA,GAAgB,EAAI,SAAYqC,CAAAA,CAAAA,GAAc,CAAI,CAAA,OAAA,CAAU,aAC5F,IAAKj1I,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,gBAAA,CAAkB,CACzC,yBAAA,CAA2B,OAC3B,CAAA,sBAAA,CAAwB,0BACxB,uBAAyBytB,CAAAA,CAAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKs2B,YAChC,CAAA,yBAAA,CAA2B,IAAK7rD,CAAAA,QAAAA,CAASs6C,aAAe,GAAM,CAAA,IAAA,CAAKgqH,KAAMr/M,CAAAA,IAAAA,CACzE,wBAA0BqiN,CAAAA,CAAAA,CAAgB9qJ,OAAO,EAAA,CAAK,MAAQ2qJ,CAAYpC,CAAAA,WAAAA,CAAc,QACxF,CAAA,sBAAA,CAAwB,iBAC3B,EACL,CACJ,CAER,CAEAjF,gBAAc,CACV,IAAA,CAAKF,UAAU,GACnB,CAEAA,UAAAA,EAAU,CACN,IAAM9tL,EAAK,IAAKwyL,CAAAA,KAAAA,CAAM7tK,MAAS,CAAA,IAAA,CAAKuJ,UAAUjE,UAE9C,CAAA,GADA,IAAK4jK,CAAAA,WAAAA,CAAc,GACf,IAAKnuI,CAAAA,QAAAA,EAAY,IAAKnB,CAAAA,QAAAA,CAAU,CAChC,IAAM82I,CAAmBv4K,CAAAA,QAAAA,CAASC,eAAe,IAAKy1K,CAAAA,KAAAA,CAAM7tK,MAAM,CAAA,CAElE,GADA,IAAKsI,CAAAA,MAAAA,CAAO52B,IAAKg/L,CAAAA,CAAAA,CAAYE,SAAUF,CAAYpC,CAAAA,WAAW,CAC1DoC,CAAAA,CAAAA,CAAa,CACb,IAAMC,CAAYD,CAAAA,CAAAA,CAAYE,SAAWF,CAAYpC,CAAAA,WAAAA,CACjDuC,CAAmB,CAAA,GAAA,CAAMH,CAAYpC,CAAAA,WAAAA,CAAeoC,CAAYE,CAAAA,QAAAA,CAChEF,EAAYpC,WAAgB,GAAA,CAAA,GAC5BuC,CAAkB,CAAA,CAAA,CAAA,CAEtB,IAAM/xI,CAAAA,CAAc4xI,CAAYpC,CAAAA,WAAAA,GAAgB,EAAI,SAAYqC,CAAAA,CAAAA,GAAc,CAAI,CAAA,OAAA,CAAU,aAC5F,IAAKj1I,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,gBAAA,CAAkB,CACzC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,yBAAA,CACxB,uBAAyBytB,CAAAA,CAAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKs2B,aAChC,yBAA2B,CAAA,IAAA,CAAK7rD,QAASs6C,CAAAA,YAAAA,CAAe,IAAM,IAAKgqH,CAAAA,KAAAA,CAAMr/M,IACzE,CAAA,wBAAA,CAA0BqiN,EAAgB9qJ,OAAO,EAAA,CAAK,KAAQ2qJ,CAAAA,CAAAA,CAAYpC,WAAc,CAAA,QAAA,CACxF,sBAAwB,CAAA,gBAAA,CAC3B,EACL,CACA,GAAIlkJ,YAAaC,CAAAA,OAAAA,CAAQ,cAAc,CAAKD,EAAAA,YAAAA,CAAaC,OAAQ,CAAA,cAAc,GAAK,OAAS,CAAA,CACzF,IAAM7O,CAAAA,CAAQ+O,IAAKC,CAAAA,KAAAA,CAAMJ,YAAaC,CAAAA,OAAAA,CAAQ,cAAc,CAAK,EAAA,EAAE,CACnE7O,CAAAA,CAAAA,CAAMiC,IAAKpiC,CAAAA,CAAE,CACb+uC,CAAAA,YAAAA,CAAaK,QAAQ,cAAgBF,CAAAA,IAAAA,CAAKG,SAAUlP,CAAAA,CAAK,CAAC,EAC9D,CACI4O,KAAAA,YAAAA,CAAaK,QAAQ,cAAgBF,CAAAA,IAAAA,CAAKG,SAAU,CAAA,CAACrvC,CAAE,CAAC,CAAC,CAE7D+uC,CAAAA,YAAAA,CAAa6C,WAAW,gBAAgB,EAC5C,CACJ,CAEAs8I,iBAAiB,EAAA,CACb,IAAKL,CAAAA,WAAAA,CAAc,GACnB,IAAKkD,CAAAA,aAAAA,CAAgB,CACrB,CAAA,CAAA,IAAMsE,CAAmBv4K,CAAAA,QAAAA,CAASC,cAAe,CAAA,IAAA,CAAKy1K,MAAM7tK,MAAM,CAAA,CAClE,GAAI0wK,CAAAA,CAAa,CACb,IAAMC,CAAYD,CAAAA,CAAAA,CAAYE,SAAWF,CAAYpC,CAAAA,WAAAA,CACjDuC,CAAmB,CAAA,GAAA,CAAMH,EAAYpC,WAAeoC,CAAAA,CAAAA,CAAYE,QAChEF,CAAAA,CAAAA,CAAYpC,cAAgB,CAC5BuC,GAAAA,CAAAA,CAAkB,CAEtB,CAAA,CAAA,IAAM/xI,CAAc4xI,CAAAA,CAAAA,CAAYpC,WAAgB,GAAA,CAAA,CAAI,UAAYqC,CAAc,GAAA,CAAA,CAAI,OAAU,CAAA,YAAA,CAC5F,IAAKj1I,CAAAA,QAAAA,CAASrqB,YAAa,CAAA,gBAAA,CAAkB,CACzC,yBAA2B,CAAA,OAAA,CAC3B,sBAAwB,CAAA,yBAAA,CACxB,uBAAyBytB,CAAAA,CAAAA,CACzB,yBAA2B,CAAA,IAAA,CAAKs2B,aAChC,yBAA2B,CAAA,IAAA,CAAK7rD,QAASs6C,CAAAA,YAAAA,CAAe,IAAM,IAAKgqH,CAAAA,KAAAA,CAAMr/M,IACzE,CAAA,wBAAA,CAA0BqiN,EAAgB9qJ,OAAO,EAAA,CAAK,KAAQ2qJ,CAAAA,CAAAA,CAAYpC,WAAc,CAAA,QAAA,CACxF,sBAAwB,CAAA,gBAAA,CAC3B,EACL,CACJ,CAEAwC,gBAAiBl4K,CAAAA,CAAAA,CAAwB,CACrC,IAAK+wK,CAAAA,YAAAA,CAAe/wK,CAAOm4K,CAAAA,OAAAA,CAC3B3mJ,aAAa6C,UAAW,CAAA,cAAc,CACtC7C,CAAAA,YAAAA,CAAaK,OAAQ,CAAA,cAAA,CAAgB,OAAO,EAChD,CAEAkiJ,aAAc5lM,CAAAA,CAAAA,CAAU,CAChBoxB,QAAAA,CAASq8D,cAAc,oBAAoB,CAAA,GAC3CztF,CAAM0L,CAAAA,MAAAA,CAAOurB,MAAMvX,SAAY,CAAA,aAAA,EAEvC,CAEAmmL,WAAAA,CAAY7lM,CAAU,CAAA,CACdoxB,QAASq8D,CAAAA,aAAAA,CAAc,oBAAoB,CAC3CztF,GAAAA,CAAAA,CAAM0L,MAAOurB,CAAAA,KAAAA,CAAMvX,SAAY,CAAA,UAAA,EAEvC,CAGAuqL,mBAAAA,EAAmB,CACX,IAAK9H,CAAAA,WAAAA,GACL,IAAKA,CAAAA,WAAAA,CAAc,CAEvB9+I,CAAAA,CAAAA,CAAAA,YAAAA,CAAa6C,UAAW,CAAA,gBAAgB,EACxC7C,YAAa6C,CAAAA,UAAAA,CAAW,cAAc,CAAA,CACtC7C,aAAaK,OAAQ,CAAA,cAAA,CAAgB,OAAO,EAChD,CAQAw5G,SAAUtjG,CAAAA,CAAAA,CAAc/lE,CAAa,CAAA,CACjC,OAAKguK,IAAAA,CAAAA,UAAAA,CAAa5lH,MAAO55D,CAAAA,IAAAA,CAAK,KAAK+wH,YAAaoxD,CAAAA,aAAa,CACzD,CAAA,IAAA,CAAK3C,WAAW15G,QAASyR,CAAAA,CAAO,CAChC,CAAA,IAAA,CAAK4qG,cAAgB,IAAKpxD,CAAAA,YAAAA,CAAaoxD,aAAc5qG,CAAAA,CAAO,CACrD,CAAA,IAAA,CAAK0jG,eACR,CAAA,CAAC,KAAKuE,UAAW15G,CAAAA,QAAAA,CAASyR,CAAO,CAAA,EAAK/lE,EAAQ,CAAM,GAAA,CAAA,CACpD,IAAK2wK,CAAAA,aAAAA,CAAgB,KAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcb,eAErD,CAAA,IAAA,CAAKa,aAAgB,CAAA,IAAA,CAAKpxD,YAAaoxD,CAAAA,aAAAA,CAAcV,gBAGzD,IAAKU,CAAAA,aAAAA,CAAgB,IAAKpxD,CAAAA,YAAAA,CAAaoxD,aAAcR,CAAAA,gBAAAA,CAElD,IAAKQ,CAAAA,aAChB,yCAl9BSqiC,CAAkB50K,EAAAA,GAAAA,CAAA0nB,EAAA,CAAA,CAAA1nB,GAAAG,CAAAA,GAAA,CAAAH,CAAAA,GAAAA,CAAA9T,IAAA,CAAA8T,CAAAA,GAAAA,CAAA84C,IAAA,CAAA,CAAA94C,IAAAgjB,IAAA,CAAA,CAAAhjB,GAAA4V,CAAAA,EAAA,EAAA5V,GAAAwmC,CAAAA,IAAA,CAAAxmC,CAAAA,GAAAA,CAAAyI,EAAA,CAAA,CAAAzI,GAAA65C,CAAAA,EAAA,EAAA75C,GAAAssG,CAAAA,EAAA,CAAAtsG,CAAAA,GAAAA,CAAAmmC,IAAA,CAAAnmC,CAAAA,GAAAA,CAAAqK,EAAA,CAAA,CAAArK,IAAAyiC,IAAA,CAAA,CAAAziC,GAAAQ,CAAAA,GAAA,CAAAR,CAAAA,GAAAA,CAAAmiC,IAAA,CAAA,CAAAniC,IAAA2V,IAAA,CAAA,CAAA3V,GAAAqhE,CAAAA,IAAA,EAAArhE,GAAA67C,CAAAA,IAAA,CAAA77C,CAAAA,GAAAA,CAAAivB,IAAA,CAAAjvB,CAAAA,GAAAA,CAAAic,IAAA,CAAA,CAAAjc,GAAAouK,CAAAA,EAAA,CAAApuK,CAAAA,GAAAA,CAAA83I,CAAA,CAAA93I,CAAAA,GAAAA,CAAAu3G,EAAA,CAAA,CAAAv3G,GAAA6V,CAAAA,EAAA,CAAA7V,CAAAA,GAAAA,CAAAmoJ,EAAA,CAAAnoJ,CAAAA,GAAAA,CAAAkvB,EAAA,CAAA,CAAAlvB,GAAA8iK,CAAAA,EAAA,CAAA,CAAA,uBAAlB8R,CAAkBjoL,CAAAA,SAAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAAsxE,YAAA,CAAA,SAAAnvE,EAAA1qB,CAAA,CAAA,CAAA0qB,CAAA,CAAA,CAAA,EAAlBY,EAAA,CAAA,mBAAA,CAAA,SAAA8nC,CAAAA,CAAA,CAAA,OAAApzD,CAAAA,CAAA4zM,mBAAAxgJ,CAAAA,CAAA,CAA2B,CAAA,CAAA,CAAAgF,CAAAA,CAAAA,EAAA,ygIDpExCvvC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAIIyC,CAAAA,EAAAA,CAAA,YAAA,CAAA,UAAA,CAAAC,OAAAC,EAAAA,CAAAC,CAAA,CAAA,CAAAC,GAAc1rB,CAAAozM,CAAAA,SAAAA,EAAW,CAAA,CAAA,CAAC,CAAA,YAAA,CAAA,UAAA,CAAA7nL,OAAAC,EAAAA,CAAAC,CAAA,CAAA,CAAAC,GACZ1rB,CAAAqzM,CAAAA,SAAAA,EAAW,CAAA,CAAA,CAAA,CAAC,kBAAA,CAAA,SAAAjgJ,EAAA,CAAA7nC,OAAAC,EAAAC,CAAAA,CAAA,CAAAC,CAAAA,EAAAA,CAGN1rB,CAAA0zM,CAAAA,gBAAAA,CAAAtgJ,CAAA,CAAwB,CAAA,CAAA,CAAA,CAC5CvqC,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAGIyC,GAAA,WAAA,CAAA,UAAA,CAAAC,OAAAC,EAAAC,CAAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAa1rB,EAAA82D,SAAA92D,CAAAA,CAAAA,CAAAw9C,IAAA5a,CAAAA,MAAAA,EAAA5iC,EAAAmsC,QAAA,EAAA,IAAA,CAAA,IAAAnsC,CAAAA,CAAAA,CAAAmsC,SAAAjE,UAAA,CAAA,CAA6C,CAAA,CAAA,CAAC,CAAA,YAAA,CAAA,UAAA,CAAA3c,OAAAC,EAAAC,CAAAA,CAAA,CAAAC,CAAAA,EAAAA,CAC7C1rB,EAAAi3D,UAAA,EAAY,CAAA,CAAA,EAuB1BhsC,EAAA,CAAA,CAAA,CAAA4oL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAMgE,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAEiE,CAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,CAMlF,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA,qBAAA,CAAA,CAAA,CAqB1C,CAAAC,CAAAA,EAAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAQuF,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA9oL,EAAA,CAAA,CAqMpE,EAAA+oL,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAa5BprL,CAAAA,EAAAA,EAAM,GAAA,CAAA,CAAA,CAAA,CAAA,GA/RN+jG,KAAA,cAAA9sH,CAAAA,CAAAA,CAAAwuM,2BAAA,CAAA,CADAxjL,EAAA,CAAA,kCAAA,CAAAhrB,CAAAw9C,CAAAA,IAAAA,CAAA0vJ,UAAA,CAMAnhL,CAAAA,EAAAA,CAAA,mBAAAgnC,CAAAA,EAAAA,CAAA,GAAAF,EAAA+1B,CAAAA,EAAAA,CAAA,EAAAnwB,CAAAA,EAAA,CAAA,CAAA,CAAA,CAGI3sC,EAAA,EAAA,CAAAd,EAAA,CAAA,6BAAA,CAAAhrB,CAAA+jM,CAAAA,kBAAA,EAIAh4K,EAAA,CAAA,SAAA,CAAAqoL,EAAA,CAAA,EAAA,CAAAphJ,EAAA,CAAA,CAAAhzD,CAAAo1D,CAAAA,sBAAAA,EAAA,CAAAp1D,CAAAw9C,CAAAA,IAAAA,CAAAwJ,YAAAhnD,EAAAA,CAAAA,CAAAwtC,OAAAxtC,CAAAA,CAAAA,CAAA6yM,YAAA,EAAA,CAAA7yM,EAAAwtC,OAAA,GAAA,EAAA,CAAAxtC,CAAAw9C,CAAAA,IAAAA,CAAAza,WAAA/iC,CAAAsrM,CAAAA,qBAAAA,EAAAtrM,CAAAw9C,CAAAA,IAAAA,CAAAza,WAAA/iC,CAAAurM,CAAAA,qBAAAA,GAAAvrM,CAAA0kM,CAAAA,qBAAAA,CAAAA,EAAA1kM,CAAAw9C,CAAAA,IAAAA,CAAAsrE,UAAA,GAAA,eAAA,CAAA,CAAA9oH,EAAA8zD,YAAA9zD,CAAAA,CAAAA,CAAAsxM,mBAAAtxM,EAAAA,CAAAA,CAAAw9C,KAAAsrE,UAAA,EAAA,eAAA,CAAA9oH,CAAA2yM,CAAAA,sBAAAA,EAAA,CAAA3yM,CAAAwtC,CAAAA,OAAAA,EAAAxtC,CAAA2pI,CAAAA,YAAAA,EAAA3pI,EAAAA,CAAAA,CAAA2pI,YAAA,EAAA,CAAAQ,aAAA,EAAAnqI,CAAAA,CAAAA,CAAAw9C,IAAAza,CAAAA,QAAAA,GAAA/iC,EAAAsrM,qBAAAtrM,EAAAA,CAAAA,CAAAw9C,IAAAza,CAAAA,QAAAA,GAAA/iC,EAAAurM,qBAAAvrM,GAAAA,CAAAA,CAAA0kM,qBAAA1kM,CAAAA,CAAAA,CAAAA,CAAA23G,UAAA33G,CAAAA,CAAAA,CAAA4lM,oCAAA,CAAA,CAAA5lM,EAAAkqI,aAAAlqI,CAAAA,CAAAA,CAAAw9C,IAAAza,CAAAA,QAAAA,EAAA,GAAA/iC,EAAAA,CAAAA,CAAAw9C,IAAAza,CAAAA,QAAAA,EAAA,KAAA/iC,CAAAw9C,CAAAA,IAAAA,CAAAza,QAAA,EAAA,GAAA,EAAA/iC,CAAAw9C,CAAAA,IAAAA,CAAAza,QAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAoBE,SAAAgwB,CAAAA,EAAAA,CAAA,GAAAw4B,EAAAvrF,CAAAA,CAAAA,CAAAw9C,IAAA,EAAA,IAAA,CAAA,KAAAx9C,CAAAw9C,CAAAA,IAAAA,CAAAy1J,kBAAA,CAAA,CAOGnnL,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,OAAA/rB,CAAA8yM,CAAAA,YAAAA,GAAA9yM,CAAAilM,CAAAA,sBAAAA,EAAAjlM,CAAAw9C,CAAAA,IAAAA,CAAAsrE,UAAA,GAAA,eAAA,CAAA,EAAA,CAAA9oH,CAAAwtC,CAAAA,OAAA,CAGsC1hB,CAAAA,EAAAA,EAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAA4yM,wBAAA5yM,CAAA23G,CAAAA,UAAAA,EAAA,CAAA33G,CAAAA,CAAAwtC,SAAAxtC,CAAA2pI,CAAAA,YAAAA,EAAAQ,CAAAA,WAAA,EAEtCr+G,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAAmpK,CAAAA,iBAAA,CAOAr9I,CAAAA,EAAAA,GAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA6rM,CAAAA,gBAAAA,EAAA7rM,CAAA6rM,CAAAA,gBAAAA,GAAA7rM,CAAAw9C,CAAAA,IAAAA,CAAA5a,QAAA5iC,CAAAmsC,CAAAA,QAAAA,EAAA,IAAA,CAAA,IAAA,CAAAnsC,CAAAmsC,CAAAA,QAAAA,CAAAjE,UAAA,CAAA,CAAA,CAqBApc,IAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAw9C,KAAAha,IAAA,CAAA,CAiNC1X,EAAA,CAAA,CAAA,EAAAC,EAAA,CAAA,MAAA,CAAA/rB,CAAA+1D,CAAAA,aAAA,CCnONghI,EAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,IAAAA,CACAl+H,EACAF,CAAAA,EAAAA,CACAC,GACA4mI,EACAyG,CAAAA,EAAAA,CACA9W,GACA5rJ,CAAAA,EAAAA,CACA65D,GACAjD,EAAK,CAAA,CAAA7tE,aAAA,CAAA,CAAA,CAAA,CAGP,CAAA,IAAOkkL,CAAP6D,CAAAA,CAAAA,CAAAA,OAAO7D,CAAkB,CAAA,ICnDX1nL,IAAAA,EAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,EAAAA,CAAAA,IAAAA,EAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAEIm5J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,KAAA,iBAAAqyB,CAAAA,CAAAA,CAAAjkF,WAAA,EAAA,CAAAnoF,WAAA,GAAAqsK,CAAAA,CAAAA,CAAA3xK,MAAA,CAAA,EAAA,CAEA7W,CAAAA,EAAAA,CAAA,SAAAwoL,CAAAA,CAAAA,EAAA,KAAA,IAAAA,CAAAA,CAAAA,CAAApyI,aAAA,CAAA,CAA+B,MAAAoyI,CAAAA,CAAA,CAClB,CAAA,cAAA,CAAAC,CAAA,CACK,CAAA,UAAA,CAAAF,CAAAjkF,CAAAA,WAAAA,EAAA,CAAA,CACQ,kBAAAikF,CAAAA,CAAAA,CAAAz0G,kBAAA,CAAA,CACa,WAAA20G,CAAAA,CAAAA,CAAA,CAAA,CAVnD3rL,CAAAA,EAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,WAAAA,EAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,MAAAA,EAAAA,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAoH,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAE5GoC,CAAAA,EAAAA,CAAA,CAAAwpL,CAAAA,EAAAA,CAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAUJ1rL,IAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAZuD2qH,IAAA,CAAA,eAAA,CAAAynF,GAAA,IAAA,CAAA,IAAA,CAAAA,CAAAvvK,CAAAA,oBAAA,CAAlDjZ,CAAAA,EAAAA,CAAA,SAAAwoL,CAAAA,CAAAA,CAAA5pJ,OAAA,CAAwB,CAAA,SAAA,CAAA4pJ,CAAA9pJ,CAAAA,OAAA,EACG3+B,EAAA,EAAA,CAAAm2J,EAAA,CAAA,IAAA,CAAA,aAAAqyB,CAAAjkF,CAAAA,WAAAA,EAAAnoF,CAAAA,UAAAA,CAAA,GAAAqsK,CAAAA,CAAAA,CAAA3xK,MAAA,CAAA,EAAA,EAAjC7W,EAAA,CAAA,SAAA,CAAAuoL,CAAAI,CAAAA,cAAAA,CAAAH,CAAA,CAAA,CAEIzoL,CAAAA,EAAAA,GAAAC,EAAA,CAAA,OAAA,CAAA68D,EAAA,CAAA,CAAA,CAAA51B,EAAA,CAAA,EAfrBnqC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAWIgwI,CAAAA,EAAAA,CAAA,EAAA87C,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAAtyB,EAAA,CAAA,CAAA2d,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAgBJj3K,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,EAAA,CAnBI+8F,EAAA,CAAA,WAAA,CAAAo1G,CAAAM,CAAAA,QAAAA,GAAA,EAAA,CAAA,CANA9nF,IAAA,CAAA,OAAA,CAAAwnF,EAAAzpK,KAAA,EAAA,CAAA,IAAA,CAAA,CAA0B,SAAAypK,CAAAnsK,CAAAA,MAAAA,EAAA,CAAA,IAAA,CACE,CAAA,YAAA,CAAAmsK,CAAAO,CAAAA,kBAAAA,GAAA,IAAA,CAAA,CAM5B7pL,EAAA,CAAA,0BAAA,CAAAspL,EAAAjkF,WAAA,EAAA,CAAA+pB,iBAAA,CAAA,CAAkE,sBAAAk6D,CAAAQ,CAAAA,mBAAAA,EAAA,CAAA,CARlE/oL,EAAA,CAAA,MAAA,CAAAuoL,CAAAS,CAAAA,UAAAA,EAAA,CAAqB,CAAA,WAAA,CAAAT,CAAA/gB,CAAAA,SAAAA,EAAA,CAAA,CAII,YAAA+gB,CAAAA,CAAAA,CAAA/iB,YAAA,CAAA,CAMzBzlK,EAAA,EAAA,CAAAmtI,EAAAt8H,CAAAA,EAAAA,CAAA,CAAA,CAAA,EAAA,CAAA23K,EAAAU,kBAAA,CAAA,EAoCgBlsL,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAEIm5J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,KAAA,iBAAAqyB,CAAAA,CAAAA,CAAAjkF,WAAA,EAAA,CAAAnoF,UAAA,CAAA,GAAA,CAAA+sK,CAAAryK,CAAAA,MAAAA,CAAA,EAAA,CAEA7W,CAAAA,EAAAA,CAAA,SAAAkpL,CAAAA,CAAAA,EAAA,IAAA,CAAA,IAAA,CAAAA,CAAA9yI,CAAAA,aAAA,EAA+B,MAAA8yI,CAAAA,CAAA,CAClB,CAAA,cAAA,CAAAC,CAAA,CAAA,CACY,UAAAZ,CAAAA,CAAAA,CAAAjkF,aAAA,CAAA,CACC,kBAAAikF,CAAAA,CAAAA,CAAAz0G,kBAAA,CAAA,CACa,WAAAo1G,CAAAA,CAAAA,CAAAxxI,UAAA,CAAA,CAAA,CAAA8iG,EAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,WAAA,EAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAVnD19I,EAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAgI,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAExHoC,EAAA,CAAA,CAAA,CAAAkqL,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAUJpsL,CAAAA,EAAAA,EAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA5mB,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CAZmE2qH,IAAA,CAAA,eAAA,CAAAmoF,CAAA,EAAA,IAAA,CAAA,KAAAA,CAAAjwK,CAAAA,oBAAA,CAA9DjZ,CAAAA,EAAAA,CAAA,UAAAqpL,CAAA1qJ,CAAAA,UAAA,CAA8B,CAAA,SAAA,CAAA0qJ,EAAA5qJ,UAAA,CAAA,CACvB1+B,EAAA,EAAA,CAAAC,EAAA,CAAA,SAAA,CAAAuoL,CAAAI,CAAAA,cAAAA,CAAAO,CAAA,CAAA,CAAA,CAETnpL,EAAA,EAAA,CAAAC,GAAA,OAAA68D,CAAAA,EAAAA,CAAA,CAAA51B,CAAAA,EAAA,CAAA,EANzBnqC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,UAAA,CAA8D,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAEtDgwI,EAAA,CAAA,CAAA,CAAAw8C,EAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAAhzB,EAAA,CAAA,CAgBJt5J,IAAgB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CAjBD2pB,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAAqpL,CAAA1qJ,CAAAA,UAAA,EAA2B,WAAA4pJ,CAAAA,CAAAA,CAAA/gB,SAAA,EAAA,CAA0B,CAAA,YAAA,CAAA+gB,CAAA/iB,CAAAA,UAAAA,EAAA,CAChEzlK,CAAAA,EAAAA,EAAAmtI,CAAAA,EAAAA,CAAAm8C,CAAAh3J,CAAAA,KAAA,EAkBRt1B,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAEIkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,aAAAspL,CAAAgB,CAAAA,kBAAAA,EAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAvV,EAAA,EAAA,CAKJl3K,GAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAAA,CAKIyC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAE,GAAA2+D,CAAA,CAAA,CAAA,IAAAmqH,CAAAA,CAAAhhJ,GAAA,CAAA,CAAA,CAAA,OAAA5nC,EAAAA,CAAS4oL,EAAAiB,aAAA57L,CAAAA,IAAAA,EAAoB,CAAA,CAAA,CAAA,CAEXoP,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA5mB,EAAA,CAAA,CAAA,CAAA,CALlB6oB,GAAA,YAAAspL,CAAAA,CAAAA,CAAAkB,mBAAA,EAAA,wCAxCR3sL,EAAA,CAAA,CAAA,CAAA,cAAA,CAAA,EAAA,CAAA,CAAA,CAEIyC,CAAAA,EAAAA,CAAA,QAAA,CAAA,SAAA8nC,CAAA,CAAA,CAAA5nC,EAAAyoC,CAAAA,CAAA,EAAA,IAAAqgJ,CAAAA,CAAAhhJ,EAAA,EAAA,CAAA,OAAA5nC,EAAAA,CAAU4oL,CAAAmB,CAAAA,QAAAA,CAAAriJ,CAAA,CAAgB,CAAA,CAAA,CAAA,CAS1BnoC,EAAA,CAAA,CAAA,CAAAyqL,EAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAA8D,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,EA0BxC,CAAAC,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAS1B7sL,CAAAA,EAAAA,uBAxCIiC,EAAA,CAAA,kCAAA,CAAAspL,CAAAuB,CAAAA,gCAAAA,EAAA,CAA6E,CAAA,kCAAA,CAAAvB,CAAAwB,CAAAA,gCAAAA,EAAA,CACA,CAAA,0BAAA,CAAAxB,CAAAjkF,CAAAA,WAAAA,EAAA+pB,CAAAA,iBAAA,CACX,CAAA,qBAAA,CAAAk6D,EAAAjkF,WAAA,EAAA,CAAAykF,mBAAA,CAAA,CACH,6BAAAR,CAAA9mK,CAAAA,OAAAA,EAAA,CAAA,CAN/DzhB,GAAA,QAAAuoL,CAAAA,CAAAA,CAAAyB,sBAAA,EAAA,CAAmC,CAAA,YAAA,CAAAzB,CAAA0B,CAAAA,iBAAAA,EAAA,CA6B9BlqL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,MAAA,CAAA,CAAAuoL,CAAAA,CAAA9mK,SAAA,EAAA,CAAA8mK,CAAA2B,CAAAA,kBAAAA,EAAA,CAAA,CAOAnqL,EAAA,EAAA,CAAAC,GAAA,MAAA,CAAA,CAAAuoL,CAAA9mK,CAAAA,OAAAA,IAAA,CAAA8mK,CAAAA,CAAA2B,kBAAA,EAAA,6BAoBentL,EAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAEIm5J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAA,IAAA,CAAA,iBAAA,CAAAqyB,EAAAjkF,WAAA,EAAA,CAAAnoF,UAAA,CAAA,GAAA,CAAAywH,CAAA/1H,CAAAA,MAAAA,CAAA,EAAA,CAAA,CAEA7W,GAAA,SAAA4sI,CAAAA,CAAAA,EAAA,IAAA,CAAA,IAAA,CAAAA,CAAAx2F,CAAAA,aAAA,CAA+B,CAAA,MAAA,CAAAw2F,CAAA,CAClB,CAAA,cAAA,CAAAu9C,CAAA,CAAA,CACK,WAAA5B,CAAAjkF,CAAAA,WAAAA,EAAA,CAAA,CACQ,mBAAAikF,CAAAz0G,CAAAA,gBAAAA,EAAA,CAAA,CACa,WAAAq2G,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA3vC,EAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,WAAA,EAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAZ3D19I,GAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAmD,CAAA,CAAA,KAAA,CACT,CAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,CACmB,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAE7CoC,EAAA,CAAA,CAAA,CAAAkrL,GAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAUJptL,EAAA,EAAA,EACY,EAAA,mCAfNgD,EAAA,CAAA,SAAA,CAAAuoL,CAAAI,CAAAA,cAAAA,CAAA/7C,CAAA,CAAA,CACT7sI,CAAAA,EAAAA,GAAAd,EAAA,CAAA,YAAA,CAAA2tI,CAAAs0C,CAAAA,MAAA,EACcnhL,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA4sI,EAAAhuG,OAAA,CAAA,CACsD7+B,EAAA,EAAA,CAAAghG,IAAA,CAAA,eAAA,CAAA6rC,CAAA,EAAA,IAAA,CAAA,KAAAA,CAAA3zH,CAAAA,oBAAA,CAAlDjZ,CAAAA,EAAAA,CAAA,UAAA4sI,CAAAhuG,CAAAA,OAAA,CAAwB,CAAA,SAAA,CAAAguG,EAAAluG,OAAA,CAAA,CAE9B3+B,EAAA,EAAA,CAAAC,EAAA,CAAA,OAAA,CAAA68D,EAAA,CAAA,CAAA,CAAA51B,EAAA,CAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAX7BnqC,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAKIgwI,CAAAA,EAAAA,CAAA,EAAAu9C,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,EAAA/zB,CAAAA,EAAA,CAoBJt5J,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,EAAAA,oBAtBI+jG,IAAA,CAAA,YAAA,CAAAwnF,CAAA+B,CAAAA,6BAAAA,GAAA,IAAA,CAAA,CACArrL,EAAA,CAAA,uBAAA,CAAAspL,EAAAl2J,KAAA,EAAA,CAAAx3C,MAAA,CAAA,CAAA,EAAA0tM,CAAAz0G,CAAAA,gBAAAA,EAAA,GAAA,gBAAA,CAAAy0G,EAAAjkF,WAAA,EAAA,CAAAsiC,eAAA,CAAA,CACA7mI,IAAAmtI,CAAAA,EAAAA,CAAAt8H,EAAA,CAAA,CAAA,CAAA,EAAA23K,CAAAgC,CAAAA,MAAA,CAAA,EAAA,CAAA,CCpBSC,IAAAA,EAAAA,CAAAA,CAAoB,IAAA,CAA3B,IAAOA,CAAP,CAAA,MAAOA,CAAoB,CAwM7Bz4M,YACYq7B,CACAif,CAAAA,CAAAA,CACAzN,CAA4B,CAAA,CAF5B,KAAAxR,qBAAAA,CAAAA,CAAAA,CACA,IAAAif,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAzN,aAAAA,CAAAA,CAAAA,CA1MJ,KAAA6rK,cAAiB3uL,CAAAA,GAAAA,CAAO4uL,EAAqB,CAAA,CAC7C,IAAA7uL,CAAAA,UAAAA,CAAaC,GAAgCC,CAAAA,IAAU,EAC/D,IAAA6oL,CAAAA,aAAAA,CAAgBznL,EAAe,CAAA,CAAA,CAAK,CACpC,CAAA,IAAA,CAAAwtL,MAASxtL,CAAAA,EAAAA,CAAMua,SAAgB,CAAEkzK,KAAAA,CAAO,OAAO,CAAE,EACjD,IAAAv4J,CAAAA,KAAAA,CAAQv0B,EAAS,CAAA,IAAK,CAClB,IAAMu0B,CAAAA,CAAQ,IAAKs4J,CAAAA,MAAAA,EACnB,CAAA,OAAA,IAAA,CAAKE,wBAAyBx4J,CAAAA,CAAK,EAC5BA,CACX,CAAC,CACD,CAAA,IAAA,CAAAiyE,YAAcnnG,EAAMua,CAAAA,QAAAA,EACpB,CAAA,IAAA,CAAAmxK,SAAW/qL,EAAS,CAAA,IAAM,IAAKwmG,CAAAA,WAAAA,EAAeukF,EAAAA,QAAAA,EAAY,CAAC,CAAA,CAC3D,KAAApnK,OAAUtkB,CAAAA,EAAAA,CAAe,CAAK,CAAA,CAAA,CAC9B,KAAA2tL,KAAQ3tL,CAAAA,EAAAA,CAAMua,QAAiB,CAAA,CAAEkzK,MAAO,MAAM,CAAE,CAChD,CAAA,IAAA,CAAAlxI,IAAO57C,CAAAA,EAAAA,CAAS,IACR,IAAA,CAAKgtL,OAAW,EAAA,kBAAA,EAAsB,IAAKrpK,CAAAA,OAAAA,EAAa,EAAA,IAAA,CAAK6iF,WAAW,EAAA,CAAGymF,kCACpE,iCAEJ,CAAA,IAAA,CAAKD,KAAK,EACpB,CACD,CAAA,IAAA,CAAAE,gBAAmB7tL,CAAAA,EAAAA,CAAM,EAAI,CAC7B,CAAA,IAAA,CAAA22E,gBAAmB32E,CAAAA,EAAAA,CAAc,EAAE,CACnC,CAAA,IAAA,CAAA+jB,SAAY/jB,CAAAA,EAAAA,CAAc,EAAE,CAC5B,CAAA,IAAA,CAAA+sL,kBAAqB/sL,CAAAA,EAAAA,CAAe,CAAK,CAAA,CAAA,CACzC,IAAA8tL,CAAAA,kBAAAA,CAAqB9tL,GAAMua,QAAgB,CAAA,CAAEkzK,KAAO,CAAA,mBAAmB,CAAE,CAAA,CACzE,IAAAX,CAAAA,iBAAAA,CAAoBnsL,GAAS,IAAM,IAAA,CAAKmtL,kBAAkB,EAAA,EAAM,IAAK54J,CAAAA,KAAAA,EAAO,CAAA,CAC5E,KAAA64J,wBAA2BptL,CAAAA,EAAAA,CAAS,IAAM,IAAA,CAAKmsL,mBAAoBzoN,CAAAA,KAAAA,CAAM,CAAG,CAAA,IAAA,CAAKy+H,cAAc,CAAC,CAChG,CAAA,IAAA,CAAAgpF,kBAAqBjW,CAAAA,IAAAA,CAAa,IAAKkY,CAAAA,wBAAwB,EAC/D,IAAAlC,CAAAA,UAAAA,CAAalrL,EAAS,CAAA,IAAM,IAAKqtL,CAAAA,iBAAAA,EAAmB,CAAA,CAKpD,KAAAC,kBAAqBniE,CAAAA,IAAAA,CAAS,IAAKwhE,CAAAA,cAAAA,CAAe1oF,OAAQ,CAAA,IAAA,CAAKlmG,UAAU,CAAA,CAAE4a,KAAKtE,EAAKk5K,CAAAA,CAAAA,EAASA,CAAKC,CAAAA,cAAAA,CAAe,CAAC,CAAEC,CAAAA,UAAU,CAAC,CAAA,CAAG,CAC/HC,YAAc,CAAA,IAAA,CAAK5sK,aAAc6sK,CAAAA,aAAAA,EAAkB,CAAA,IAAA,CAAK7sK,aAAc2zF,CAAAA,WAAAA,GAAgB,EAAK7/E,CAAAA,IAAAA,CAAK91C,GAAI,CAAA,IAAA,CAAM,KAAKgiC,aAAc2zF,CAAAA,WAAAA,EAAa,CAAA,CAC7I,EAGO,IAAAm5E,CAAAA,qBAAAA,CAAwB,CAC5B7sB,IAAAA,CAAM,CAAE9E,EAAAA,CAAI,CAAGC,CAAAA,EAAAA,CAAI,EAAGC,EAAI,CAAA,CAAA,CAAGC,EAAI,CAAA,CAAA,CAAGC,IAAK,CAAC,CAAA,CAC1C0D,KAAO,CAAA,CAAA,CACPvE,MAAO,GACPO,CAAAA,KAAAA,CAAO,CACH+tB,OAAAA,CAAS,CAEbznF,CAAAA,CAAAA,CAAAA,IAAAA,CAAM,CACN/a,CAAAA,CAAAA,KAAAA,CAAO,IAEX,IAAA4kG,CAAAA,sBAAAA,CAAyBlsL,EACrB,CAAA,IACW,IAAK6tL,CAAAA,mBAAAA,CAAoB,IAAKD,CAAAA,qBAAqB,EAG9D,CAAEE,KAAAA,CAAOC,EAAO,CAAE,CAEtB,CAAA,IAAA,CAAA/sK,KAAQhhB,CAAAA,EAAAA,CAAS,IAAK,CAClB,GAAA,CAAK,IAAK+qL,CAAAA,QAAAA,KAAe,GAAO,EAAA,IAAA,CAAKA,QAAQ,EAAA,GAAO,MAAQ,IAAKpnK,CAAAA,OAAAA,EAAW,CAAA,CACxE,IAAM3C,CAAAA,CAAQ,IAAKF,CAAAA,aAAAA,CAAc2zF,aACjC,CAAA,OAAIzzF,CAAS,EAAA,GAAA,EAEFA,GAAS,GADT,CAAA,GAAA,CAAMA,CAGNA,CAAAA,CAAAA,CAAQ,IACR,IAAOA,CAAAA,CAAAA,CACPA,CAAQ,CAAA,GAAA,EAERA,CAAQ,CAAA,GAAA,CADR,IAAOA,CAAAA,CAAAA,CAGPA,EAAQ,IACR,CAAA,EAAA,CAAKA,CAEL,CAAA,EAAA,CAAKA,CAEpB,CACA,OAAO,IACX,CAAC,EACD,IAAAgtK,CAAAA,wBAAAA,CAA2BhuL,EAAS,CAAA,IAAK,CACrC,IAAMiuL,CAAgB,CAAA,IAAA,CAAK3+K,sBAAsBugF,4BAA4B,EAAA,CAC7E,OAAO,IAAA,CAAKthE,aAAclJ,CAAAA,4BAAAA,CAA6B,IAAKjC,CAAAA,SAAAA,GAAa6qK,CAAcC,CAAAA,4BAA4B,CAAK,EAAA,GAC5H,CAAC,CAAA,CACD,IAAA5vK,CAAAA,MAAAA,CAAS6sG,KACL+pD,IACIl1K,CAAAA,EAAAA,CAAS,IAED,IAAA,CAAK8gB,cAAc2zF,WAAW,EAAA,CAAA,CACtB,IAAKs2E,CAAAA,QAAAA,KAAe,GAAO,EAAA,IAAA,CAAKA,QAAQ,EAAA,GAAO,GAAQ,GAAA,IAAA,CAAKpnK,OAAO,EAAA,CAEpE,GAEd,CAAC,CAAA,CACJhL,IACEyoJ,CAAAA,IAAAA,CAAW+sB,GACHA,CAA4B,GAAA,CAAA,CAAA,CACrB17H,IAAM,CAAA,IAAA,CAAKu7H,0BAA0B,CAAA,CAAEr1K,IAC1CtE,CAAAA,EAAAA,CAAI,IAAK,CACL,IAAMgC,CAAAA,CAAUnF,SAASC,cAAe,CAAA,YAAA,CAAe,IAAKq1F,CAAAA,WAAAA,GAAcnoF,UAAa,CAAA,GAAA,CAAM,IAAKkW,CAAAA,KAAAA,GAAQ,CAAC,CAAA,CAAExb,MAAM,CAAA,CACnH,OAAI1C,CAAAA,CAEI,IAAKke,CAAAA,KAAAA,GAAQ,CAAC,CAAA,CAAErb,QAAa,GAAA,GAAA,EAC7B,IAAKqb,CAAAA,KAAAA,EAAQ,CAAA,CAAC,EAAErb,QAAa,GAAA,GAAA,EAC7B,IAAKqb,CAAAA,KAAAA,EAAQ,CAAA,CAAC,CAAErb,CAAAA,QAAAA,GAAa,KAC7B,IAAKqb,CAAAA,KAAAA,EAAQ,CAAA,CAAC,EAAErb,QAAa,GAAA,GAAA,CAEtB7C,CAAQ+4D,CAAAA,YAAAA,CAAe,EAAI,EAE3B/4D,CAAAA,CAAAA,CAAQ+4D,YAAe,CAAA,EAAA,CAG/B,IACX,CAAC,CAAC,CAAA,CAEC++G,IAA4B,CAC5BrqE,CAAAA,CAAAA,EAAAA,CAAG,IAAI,CAAA,CAEPA,EAAGqqE,CAAAA,CAAuB,CAExC,CAAC,EAEN,CAAET,YAAAA,CAAc,IAAI,CAAE,CAE1B,CAAA,IAAA,CAAAvrF,YAAeniG,CAAAA,EAAAA,CAAS,IAAM,IAAKouL,CAAAA,mBAAAA,EAAqB,CAAA,CACxD,KAAAC,cAAiBx1L,CAAAA,EAAAA,CAAO,CAAK,CAAA,CAAA,CAC7B,KAAA4yL,kBAAqB5yL,CAAAA,EAAAA,CAAO,CAAI,CAAA,CAAA,CAChC,IAAA8yL,CAAAA,mBAAAA,CAAsB3rL,EAAS,CAAA,IACvB,KAAKquL,cAAc,EAAA,CACZ,CAEP,CAAA,CAAA,IAAA,CAAK95J,KAAK,EAAA,EAAM,IAAKA,CAAAA,KAAAA,GAAQx3C,MACtB,CAAA,EAAA,CACF,IAAKguM,CAAAA,QAAAA,EAAe,GAAA,IAAA,EAAQ,IAAKA,CAAAA,QAAAA,KAAe,IAAQ,EAAA,IAAA,CAAKA,QAAQ,EAAA,GAAO,OAC7E,IAAKx2J,CAAAA,KAAAA,EAAQx3C,CAAAA,MAAAA,CAAS,KAAKmvM,sBAAsB,EAAA,CAAGnrB,IAAK3E,CAAAA,EAAAA,CAAKxnI,IAAK05J,CAAAA,GAAAA,CAAI,IAAKvD,CAAAA,QAAAA,EAAU,CAGnF,CAAA,CAAA,CAAA,CAEd,CACD,CAAA,IAAA,CAAAE,oBAAsBjrL,EAAS,CAAA,IAAM,CAAC,CAAC,KAAKwmG,WAAW,EAAA,EAAIykF,mBAAmB,CAAA,CAC9E,IAAAvjB,CAAAA,UAAAA,CAAa1nK,EAAS,CAAA,IAAO,KAAKirL,mBAAmB,EAAA,CAAK,KAAQ,CAAA,KAAM,EACxE,IAAAvhB,CAAAA,SAAAA,CAAY1pK,EAAS,CAAA,IAAO,KAAKirL,mBAAmB,EAAA,CAAK,KAAQ,CAAA,KAAM,CAC7D,CAAA,IAAA,CAAAS,aAAoC,CAAA,IAAI7rL,KAAmB,CAAI,CAAA,CAAA,CAC/D,IAAA0uL,CAAAA,iBAAAA,CAAwC,IAAI1uL,IAAAA,CACtD,IAAAmsL,CAAAA,gCAAAA,CAAmChsL,GAC/B,IACI,IAAA,CAAKu0B,KAAK,EAAA,CAAGx3C,MAAW,GAAA,CAAA,EACxB,IAAKypH,CAAAA,WAAAA,GAAcykF,mBACnB,EAAA,IAAA,CAAKj1G,gBAAgB,EAAA,GAAO,iBAAiB,IAAKwwB,CAAAA,WAAAA,EAAcsiC,CAAAA,eAAe,EAAE,CAEzF,CAAA,IAAA,CAAAmjD,gCAAmCjsL,CAAAA,EAAAA,CAC/B,IACI,IAAA,CAAKu0B,KAAK,EAAA,CAAGx3C,SAAW,CACxB,EAAA,IAAA,CAAKypH,WAAW,EAAA,CAAGykF,qBACnB,IAAKj1G,CAAAA,gBAAAA,EAAuB,GAAA,CAAA,cAAA,EAAiB,KAAKwwB,WAAW,EAAA,CAAGsiC,eAAe,CAAA,CAAE,CAGzF,CAAA,IAAA,CAAAkiD,kBAAqBhrL,CAAAA,EAAAA,CAAS,IAAK,CAC/B,GAAI,IAAK47C,CAAAA,IAAAA,KAAW,oBAAwB,EAAA,IAAA,CAAKt9B,MAAM,EAAA,EAAM,KAAM,CAC/D,IAAMspJ,CAAO,CAAA,IAAA,CAAKsjB,UAAU,EAAA,CACtBxhB,CAAY,CAAA,IAAA,CAAKA,WACjBjD,CAAAA,CAAAA,CAAQ,IAAK2mB,CAAAA,wBAAAA,EAA2B/7K,CAAAA,MAAAA,CAAe,CAACm9K,CAAAA,CAAY76J,IAAQ,CAC9E,IAAM86J,CAAY96J,CAAAA,CAAAA,CAAKmN,OAAUnN,CAAAA,CAAAA,CAAKiN,OACtC,CAAA,OAAO4tJ,EAAaC,CACxB,CAAA,CAAG,CAAC,CAAA,CACEC,EAAO95J,IAAK00E,CAAAA,IAAAA,CAAKm9D,CAAQmB,CAAAA,CAAI,EAEnC,GAAI8B,CAAAA,GAAc,KAAO,CAAA,CAErB,IAAMilB,CAAAA,CADc,IAAKrB,CAAAA,kBAAAA,GACS1lB,CAClC,CAAA,OAAO8mB,CAAOC,CAAAA,CAClB,MACWD,OAAAA,CAAAA,CAAOviE,QAASu9C,CAAAA,CAAS,CAExC,CACA,OAAO,IACX,CAAC,CAED,CAAA,IAAA,CAAA8iB,6BAAgCxsL,CAAAA,EAAAA,CAAS,IAAK,CAC1C,GAAI,IAAK47C,CAAAA,IAAAA,KAAW,iCAAqC,EAAA,IAAA,CAAKj4B,OAAO,EAAA,CAAI,CACrE,IAAM8wF,CAAAA,CAAc,IAAK3zF,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CAE9Cm6E,CAAQ,CAAA,GAAA,CACZ,OAAIn6E,CAAc,CAAA,IAAA,GACVA,CAAe,EAAA,GAAA,CACfm6E,CAAQ,CAAA,IAAA,CAERA,CAAQ,CAAA,EAAA,CAAA,CAGT,KAAKtB,kBAAkB,EAAA,CAAKsB,CACvC,CACA,OAAO,IACX,CAAC,CAAA,CAED,KAAAnC,MAASvX,CAAAA,IAAAA,CAAa,IAAK3gJ,CAAAA,KAAK,EAEhC,IAAAs6J,CAAAA,qBAAAA,CAAwB3Z,IACpBl1K,CAAAA,EAAAA,CAAS,IAAM,IAAKwmG,CAAAA,WAAAA,EAAenoF,EAAAA,UAAAA,EAAYrC,WAAW,EAAA,GAAO8L,IAAaW,CAAAA,2BAAAA,EAA+B,KAAK8L,KAAK,EAAA,EAAIx3C,MAAS,CAAA,CAAC,CAAC,CAAA,CACxI47B,IAAKyvI,CAAAA,IAAAA,CAAK,CAAC,CAAGp+K,CAAAA,IAAAA,CAAO85H,OAAO,CAAC,CAEtB,CAAA,IAAA,CAAAytB,UAAavzH,CAAAA,GAAAA,CAAOwzH,IAAU,EAMpC,CAEH9hH,QAAQ,EAAA,CACJ,KAAKg8K,aAAcxrL,CAAAA,IAAAA,EACf,CAAA,IAAA,CAAKksL,oBAAwB,EAAA,CAAC,IAAKzoK,CAAAA,OAAAA,EACnC,EAAA,IAAA,CAAKmrK,gBAAgB,GAE7B,CAEAxuL,eAAe,EAAA,CACX,IAAKuuL,CAAAA,qBAAAA,CAAsBl2K,IAAKg5H,CAAAA,IAAAA,CAAmB,IAAKpgB,CAAAA,UAAU,CAAC,CAAEj3H,CAAAA,SAAAA,CAAU,IAAK,CAChF,IAAKy0L,CAAAA,oBAAAA,EAAsBC,MAAO,CAAA,CAAC,EACvC,CAAC,EACL,CAEApD,QAAAA,CAAS58K,EAAsB,CAC3B,IAAA,CAAKy8K,kBAAmB1xM,CAAAA,GAAAA,CAAIi1B,EAAK4sJ,OAAO,CAAA,CACxC,IAAKyyB,CAAAA,cAAAA,CAAet0M,GAAIi1B,CAAAA,CAAAA,CAAK6sJ,MAAM,CAAA,CAC/B,KAAKuwB,kBAAkB,EAAA,EAAM,CAAC,IAAA,CAAKzoK,SACnC,EAAA,IAAA,CAAKmrK,gBAAgB,GAE7B,CAEAG,QAAQ,EAAA,CACJ,IAAKF,CAAAA,oBAAAA,CAAqBC,MAAO,CAAA,IAAA,CAAKD,oBAAqBG,CAAAA,WAAAA,CAAc,CAAC,EAC9E,CAEAC,QAAQ,EAAA,CACJ,KAAKJ,oBAAqBC,CAAAA,MAAAA,CAAO,IAAKD,CAAAA,oBAAAA,CAAqBG,YAAc,CAAC,EAC9E,CAEAJ,gBAAAA,EAAgB,CACZ,IAAM9/K,CAAY,CAAA,CACdogL,WAAY,IAAKxzI,CAAAA,IAAAA,EAAW,GAAA,kBAAA,EAAsB,EAAE,IAAA,CAAK6vI,kBAAkB,EAAA,EAAM,KAAKE,mBAAmB,EAAA,CAAA,CACzG0D,WAAa,CAAA,IAAA,CAAK5D,kBAAkB,EAAA,CACpC6D,WAAa,CAAA,IAAA,CAAK3D,qBAEtB,CAAA,CAAA,IAAA,CAAK4C,iBAAkBruL,CAAAA,IAAAA,CAAK8O,CAAI,EACpC,CAEA67K,cAAel3J,CAAAA,CAAAA,CAAS,CACpB,OAAIA,CAAAA,EAAQA,CAAKza,CAAAA,QAAAA,EAAY,IAAKg0K,CAAAA,gBAAAA,EAG9Bv5J,EAAAA,CAAAA,EACAA,EAAKza,QACJ,GAAA,IAAA,CAAK88D,gBAAgB,EAAA,GAAO,iBAAmB,IAAKwwB,CAAAA,WAAAA,EAAcsiC,CAAAA,eAAAA,EAAmB,iBAAmB,IAAKtiC,CAAAA,WAAAA,EAAcnoF,CAAAA,UAAAA,CAAAA,CAJrH,OAAUsV,CAAAA,CAAAA,CAAKza,QAQf,CAAA,QAEf,CAEQ6zK,wBAAyBwC,CAAAA,CAAAA,CAAe,CAC5C,GAAIA,GAAYA,CAASxyM,CAAAA,MAAAA,CAAS,CAAG,CAAA,CACjC,IAAMyyM,CAAgB,CAAA,IAAA,CAAKx5G,gBAAgB,EAAA,EAAM,IAAKA,CAAAA,gBAAAA,EAAoBh6D,EAAAA,WAAAA,GAAcW,OAAQ,CAAA,eAAe,CAAI,CAAA,CAAA,CAAA,CACnH,IAASj7C,IAAAA,CAAAA,CAAI,CAAGA,CAAAA,CAAAA,CAAI6tN,EAASxyM,MAAQrb,CAAAA,CAAAA,EAAAA,CAAK,CACtC,IAAMw3C,CAAWs2K,CAAAA,CAAAA,CAAgB,GAAMD,CAAAA,CAAAA,CAAS7tN,CAAC,CAAEw3C,CAAAA,QAAAA,CAC7C2H,CAAe,CAAA,IAAA,CAAKC,cAAc2zF,WAAW,EAAA,CACnD86E,CAAS7tN,CAAAA,CAAC,EAAE42E,aAAgB,CAAA,IAAA,CAAK/pB,aAActI,CAAAA,eAAAA,CAAgBpF,CAAc3H,CAAAA,CAAQ,EACzF,CACJ,CACJ,CAEQm0K,iBAAAA,EAAiB,CACrB,IAAMrsK,EAAQ,IAAKF,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CACxCy2E,EAAa,CACjB,CAAA,OAAA,CAAK,IAAKH,CAAAA,QAAAA,EAAe,GAAA,GAAA,EAAO,IAAKA,CAAAA,QAAAA,KAAe,GAAQ,GAAA,IAAA,CAAKpnK,OAAO,EAAA,CACpEunK,EAAa,CAET,CAAA,IAAA,CAAK1kF,WAAW,EAAA,CAAGykF,qBACd,IAAKF,CAAAA,QAAAA,EAAe,GAAA,GAAA,EAAO,IAAKA,CAAAA,QAAAA,EAAe,GAAA,GAAA,GAAQ,CAAC,IAAKpnK,CAAAA,OAAAA,EAC9DunK,CAAAA,CAAAA,CAAa,CACNlqK,CAAAA,CAAAA,CAAQ,GACfkqK,CAAAA,CAAAA,CAAa,EACNlqK,CAAQ,CAAA,IAAA,CACfkqK,CAAa,CAAA,CAAA,CAEbA,CAAa,CAAA,CAAA,CAEV,IAAK1kF,CAAAA,WAAAA,GAAc+pB,iBACtBvvG,CAAAA,CAAAA,CAAQ,GACRkqK,CAAAA,CAAAA,CAAa,EACNlqK,CAAQ,CAAA,GAAA,CACfkqK,CAAa,CAAA,CAAA,CAEbA,EAAa,CAEVlqK,CAAAA,CAAAA,CAAQ,GACfkqK,CAAAA,CAAAA,CAAa,CACNlqK,CAAAA,CAAAA,EAAS,GAAOxE,EAAAA,MAAAA,CAAOoH,WAAW,wBAAwB,CAAA,CAAEC,OACnEqnK,CAAAA,CAAAA,CAAa,IAAK38J,CAAAA,aAAAA,CAAclJ,4BAC5B,CAAA,IAAA,CAAKjC,WACL,CAAA,IAAA,CAAK9T,qBAAsBU,CAAAA,qBAAAA,EAAwBy/K,CAAAA,2BAA2B,CAE3EzuK,CAAAA,CAAAA,CAAQ,IACfkqK,CAAa,CAAA,CAAA,CACNlqK,CAAQ,CAAA,GAAA,CACfkqK,EAAa,CAEbA,CAAAA,CAAAA,CAAa,CAGdA,CAAAA,CACX,CAEQkD,mBAAmB,EAAA,CACvB,IAAIsB,CAAAA,CAAoB,EACpBvtF,CAAAA,CAAAA,CAAe,CACnB,CAAA,GAAI,KAAK4oF,QAAQ,EAAA,GAAO,GAAO,EAAA,IAAA,CAAKA,QAAQ,EAAA,GAAO,GAC/C,CAAA,CAAA,IAAA,IAASrpN,EAAI,CAAGA,CAAAA,CAAAA,CAAI,IAAK6yD,CAAAA,KAAAA,EAAQx3C,CAAAA,MAAAA,CAAQrb,CACrC,EAAA,CAAA,GAAIguN,EAAoB,CAAG,CAAA,CACvB,IAAM/7J,CAAAA,CAAO,KAAKY,KAAK,EAAA,CAAG7yD,CAAC,CAAA,CACvBiyD,EAAKza,QAAY,EAAA,GAAA,CACjBw2K,CAAoBA,CAAAA,CAAAA,CAAoB,CACjC/7J,CAAAA,CAAAA,CAAKza,QAAY,EAAA,GAAA,EAEjBya,EAAKza,QAAY,EAAA,GAAA,CADxBw2K,CAAoBA,CAAAA,CAAAA,CAAoB,EAGjC/7J,CAAKza,CAAAA,QAAAA,EAAY,GACxBw2K,CAAAA,CAAAA,CAAoBA,EAAoB,CACjC/7J,CAAAA,CAAAA,CAAKza,QAAY,EAAA,GAAA,CACxBw2K,CAAoBA,CAAAA,CAAAA,CAAoB,CACjC/7J,CAAAA,CAAAA,CAAKza,UAAY,GACpB,CAAA,IAAA,CAAKyK,OAAO,EAAA,CACZ+rK,EAAoBA,CAAoB,CAAA,CAAA,CAExCA,CAAoBA,CAAAA,CAAAA,CAAoB,IAErC/7J,CAAKza,CAAAA,QAAAA,EAAY,IAGpB,EAAA,IAAA,CAAKyK,OAAO,EAAA,CAFhB+rK,CAAoBA,CAAAA,CAAAA,CAAoB,EAKpCA,CAAoBA,CAAAA,CAAAA,CAAoB,CAGhDvtF,CAAAA,CAAAA,CAAezgI,CAAI,CAAA,EACvB,CAGJygI,CAAAA,KAAAA,CAAAA,CAAe,KAAK2kF,aAAa,EAAA,CAAK,IAAKvyJ,CAAAA,KAAAA,EAAQx3C,CAAAA,MAAAA,CAAU,IAAKypH,CAAAA,WAAAA,IAAe3pC,QAAU9/E,EAAAA,MAAAA,EAAU,CAEzG,CAAA,OAAOolH,CACX,CAEQ0rF,mBAAAA,CAAoB3xI,CAAyB,CAAA,CAKjD,GAJI,IAAKsqD,CAAAA,WAAAA,EAAeykF,EAAAA,mBAAAA,GACpB/uI,CAAO6kH,CAAAA,IAAAA,CAAO,CAAE9E,EAAAA,CAAI,EAAGC,EAAI,CAAA,CAAA,CAAGC,EAAI,CAAA,CAAA,CAAGC,GAAI,CAAGC,CAAAA,GAAAA,CAAK,CAAC,CAAA,CAAA,CAGlD,KAAK9nI,KAAK,EAAA,EAAIx3C,MAAS,CAAA,CAAA,EAAK,CAAC,IAAA,CAAK4mC,OAAO,EAAA,EAAM,KAAKupK,gBAAgB,EAAA,CACpE,OAAQ,IAAA,CAAK34J,OAAQ,CAAA,CAAC,CAAErb,CAAAA,QAAAA,EACpB,IAAK,GAAA,CACL,IAAK,GAAA,CACDgjC,CAAO6kH,CAAAA,IAAAA,CAAK7E,EAAK,CAAA,CAAA,CACjBhgH,EAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,CACjBjgH,CAAAA,CAAAA,CAAO6kH,IAAK3E,CAAAA,EAAAA,CAAK,CACjB,CAAA,MACJ,IAAK,GACL,CAAA,IAAK,GACDlgH,CAAAA,CAAAA,CAAO6kH,IAAK7E,CAAAA,EAAAA,CAAK,CACjBhgH,CAAAA,CAAAA,CAAO6kH,KAAK5E,EAAK,CAAA,CAAA,CACjBjgH,CAAO6kH,CAAAA,IAAAA,CAAK3E,GAAK,CACjB,CAAA,MACJ,IAAK,GAAA,CACDlgH,EAAO6kH,IAAK7E,CAAAA,EAAAA,CAAK,CACjBhgH,CAAAA,CAAAA,CAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,CACjBjgH,CAAAA,CAAAA,CAAO6kH,KAAK3E,EAAK,CAAA,CAAA,CACjB,MACJ,IAAK,IACDlgH,CAAO6kH,CAAAA,IAAAA,CAAK9E,EAAK,CAAA,CAAA,CACjB//G,EAAO6kH,IAAK7E,CAAAA,EAAAA,CAAK,CACjBhgH,CAAAA,CAAAA,CAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,CACjBjgH,CAAAA,CAAAA,CAAO6kH,KAAK3E,EAAK,CAAA,CAAA,CACjB,MACJ,IAAK,KACDlgH,CAAO6kH,CAAAA,IAAAA,CAAK7E,EAAK,CAAA,CAAA,CACjBhgH,EAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,CACjBjgH,CAAAA,CAAAA,CAAO6kH,IAAK3E,CAAAA,EAAAA,CAAK,CACjB,CAAA,MACJ,QACIlgH,CAAO6kH,CAAAA,IAAAA,CAAK7E,EAAK,CAAA,CAAA,CACjBhgH,CAAO6kH,CAAAA,IAAAA,CAAK5E,EAAK,CAAA,CAAA,CACjBjgH,EAAO6kH,IAAK3E,CAAAA,EAAAA,CAAK,EACzB,CAAA,KAAA,GAEA,IAAK7nI,CAAAA,KAAAA,EAASx3C,EAAAA,MAAAA,CAAS,GACvB,IAAK4mC,CAAAA,OAAAA,EACJ,GAAA,IAAA,CAAKupK,kBACF,EAAA,IAAA,CAAKl3G,gBAAgB,EAAA,GAAO,iBAAmB,IAAKwwB,CAAAA,WAAAA,EAAcsiC,CAAAA,eAAAA,EAClE,gBAAmB,CAAA,IAAA,CAAKtiC,WAAW,EAAA,CAAGnoF,YAE1C,OAAQ,IAAA,CAAKkW,KAAK,EAAA,CAAG,CAAC,CAAA,CAAErb,QAAQ,EAC5B,IAAK,GACL,CAAA,IAAK,GACL,CAAA,IAAK,GACDgjC,CAAAA,CAAAA,CAAO6kH,IAAK9E,CAAAA,EAAAA,CAAK,IACjB//G,CAAO6kH,CAAAA,IAAAA,CAAK7E,EAAK,CAAA,GAAA,CACjBhgH,EAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,GACjBjgH,CAAAA,CAAAA,CAAO6kH,KAAK3E,EAAK,CAAA,GAAA,CACb,IAAKt7I,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CAAK,GAAO,EAAA,IAAA,CAAK3zF,cAAc2zF,WAAW,EAAA,CAAK,GAC7Ev4D,GAAAA,CAAAA,CAAO6kH,IAAK9E,CAAAA,EAAAA,CAAK,GAErB,CAAA,CAAA,MACJ,IAAK,GACL,CAAA,IAAK,GACL,CAAA,IAAK,IACL,CAAA,IAAK,GACD//G,CAAAA,CAAAA,CAAO6kH,KAAK9E,EAAK,CAAA,GAAA,CACjB//G,CAAO6kH,CAAAA,IAAAA,CAAK7E,GAAK,GACjBhgH,CAAAA,CAAAA,CAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,IACjBjgH,CAAO6kH,CAAAA,IAAAA,CAAK3E,EAAK,CAAA,GAAA,CACb,IAAKt7I,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CAAK,KAAO,IAAK3zF,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CAAK,MAC7Ev4D,CAAO6kH,CAAAA,IAAAA,CAAK9E,EAAK,CAAA,GAAA,CAAA,CAErB,MACJ,IAAK,GAAA,CACD//G,CAAO6kH,CAAAA,IAAAA,CAAK9E,EAAK,CAAA,GAAA,CACjB//G,CAAO6kH,CAAAA,IAAAA,CAAK7E,GAAK,GACjBhgH,CAAAA,CAAAA,CAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,IACjBjgH,CAAO6kH,CAAAA,IAAAA,CAAK3E,EAAK,CAAA,GAAA,CACb,KAAKt7I,aAAc2zF,CAAAA,WAAAA,EAAgB,CAAA,GAAA,EAAO,IAAK3zF,CAAAA,aAAAA,CAAc2zF,WAAW,EAAA,CAAK,MAC7Ev4D,CAAO6kH,CAAAA,IAAAA,CAAK9E,EAAK,CAAA,GAAA,CAAA,CAErB,MACJ,QACI//G,CAAO6kH,CAAAA,IAAAA,CAAK9E,GAAK,GACjB//G,CAAAA,CAAAA,CAAO6kH,IAAK7E,CAAAA,EAAAA,CAAK,GACjBhgH,CAAAA,CAAAA,CAAO6kH,IAAK5E,CAAAA,EAAAA,CAAK,IACjBjgH,CAAO6kH,CAAAA,IAAAA,CAAK3E,EAAK,CAAA,IACzB,CAEJ,OAAOlgH,CACX,CAxbSwwI,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAoB36K,IAAAQ,GAAA,CAAA,CAAAR,GAAAyI,CAAAA,EAAA,CAAAzI,CAAAA,GAAAA,CAAA2V,IAAA,CAAA,CAAA,CAApBglK,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAoBhuL,SAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAAAm7E,CAAAA,SAAAA,CAAA,SAAAh5E,CAAA1qB,CAAAA,CAAAA,CAAA,CAAA0qB,GAAAA,CAAAA,CAAA,CDlEjC7B,GAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,QAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,iBAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,QAAAA,CAAAA,YAAAA,CAAAA,WAAAA,CAAAA,YAAAA,CAAAA,OAAAA,CAAAA,0BAAAA,CAAAA,qBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,YAAAA,CAAAA,kCAAAA,CAAAA,kCAAAA,CAAAA,0BAAAA,CAAAA,qBAAAA,CAAAA,4BAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,iCAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,uBAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,WAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,UAAAA,CAAAA,kBAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,UAAAA,CAAAA,kBAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,QAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,4BAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,8BAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,EAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,iBAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,EAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iCAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAA,CAAA,CAAA,KAAA,EACIoC,EAAA,CAAA,CAAA,CAAAuuL,EAAA,CAAA,CAAA,CAAA,GAAA,eAAA,CAAA,CAAA,CA4BJzwL,CAAAA,EAAAA,GAGAkC,EAAA,CAAA,CAAA,CAAAwuL,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAUmD,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GA1C9C5sF,IAAA,CAAA,QAAA,CAAA9sH,EAAAmoC,MAAA,EAAA,CAAA,IAAA,CAAA,CAQIrc,EAAA,EAAA,CAAAC,EAAA,CAAA,MAAA,CAAA/rB,EAAAylE,IAAA,EAAA,GAAA,oBAAA,CAAA,CA6BJ35C,IAAAC,CAAAA,EAAAA,CAAA,MAAA/rB,CAAAA,CAAAA,CAAAylE,MAAA,GAAA,kBAAA,EAAAzlE,CAAAg2M,CAAAA,iBAAAA,EAAAh2M,EAAAA,CAAAA,CAAAg2M,iBAAA,EAAA,CAAApvM,OAAA,CAAA,CAAA,CA6CAklB,EAAA,EAAA,CAAAC,GAAA,MAAA/rB,CAAAA,CAAAA,CAAAylE,IAAA,EAAA,GAAA,mCAAAzlE,CAAAwtC,CAAAA,OAAAA,EAAA,CAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CC1CGorB,EACA66H,CAAAA,EAAAA,CAAiBN,EAAApC,CAAAA,GAAAA,CACjBl4H,GACA23I,EAEAzpB,CAAAA,IAAAA,CACAP,IACAG,CAAAA,IAAAA,CACA+F,GACAzE,EACA/qB,CAAAA,EAAAA,CACAshC,EAAK,CAAA,CAAAnyK,OAAA,CAAA,CAAA;oFAAA,CAAAE,CAAAA,eAAAA,CAAA,CAAA,CAAA,CAAA,CAeP,IAAOgqL,CAAPoD,CAAAA,CAAAA,CAAAA,OAAOpD,CAAoB,CAAA,ICjEjC,IAAM99I,CAAM,CAAA,CAAC,UAAU,CAAA,CAyBvB,IAAImhJ,CAAAA,CAAAA,CAAgC,IAAM,CACxC,MAAMA,CAAgB,CACpB,IAAI,gBAAiB,CACnB,OAAO,QACT,CACF,CACA,OAAAA,CAAgB,CAAA,SAAA,CAAO,SAAiCjtL,CAAAA,CAAmB,CACzE,OAAO,IAAKA,CAAAA,EAAqBitL,CACnC,CAAA,CAAA,CACAA,EAAgB,UAA0B1mC,CAAAA,GAAAA,CAAmB,CAC3D,KAAA,CAAO0mC,CACP,CAAA,OAAA,CAASA,CAAgB,CAAA,SAC3B,CAAC,CAAA,CACMA,CACT,CAAA,GAIA,CAAA,SAASC,CAAqB,EAAA,CAC5B,OAAO,IAAID,CACb,CACA,IAAME,CAAgB,CAAA,CAAC,UAAY,CAAA,UAAA,CAAY,aAAe,CAAA,cAAA,CAAgB,OAAS,CAAA,MAAA,CAAQ,QAAU,CAAA,SAAA,CAAW,kBAAkB,CAAA,CAClIC,GAA0C,IAAM,CAClD,MAAMA,CAA0B,CAC9B,WAAA,CAAYC,CAAW7lH,CAAAA,CAAAA,CAAK8lH,CAAY,CAAA,CACtC,IAAK,CAAA,SAAA,CAAYD,CACjB,CAAA,IAAA,CAAK,GAAM7lH,CAAAA,CAAAA,CACX,KAAK,UAAa8lH,CAAAA,CAAAA,CAKlB,IAAK,CAAA,KAAA,CAAQ,IAAIvwL,IAAAA,CAIjB,IAAK,CAAA,OAAA,CAAU,IAAIA,IAAAA,CAInB,IAAK,CAAA,cAAA,CAAiB,IAAIA,IAAAA,CAI1B,IAAK,CAAA,cAAA,CAAiB,IAAIA,IAI1B,CAAA,IAAA,CAAK,KAAQ,CAAA,IAAIA,IAIjB,CAAA,IAAA,CAAK,KAAQ,CAAA,IAAIA,IAIjB,CAAA,IAAA,CAAK,UAAa,CAAA,IAAIA,IAItB,CAAA,IAAA,CAAK,cAAiB,CAAA,IAAIA,KAI1B,IAAK,CAAA,SAAA,CAAY,IAAIA,IAAAA,CAIrB,IAAK,CAAA,KAAA,CAAQ,IAAIA,IAAAA,CAIjB,IAAK,CAAA,IAAA,CAAO,IAAIA,IAAAA,CAIhB,IAAK,CAAA,OAAA,CAAU,IAAIA,IAAAA,CAInB,KAAK,QAAW,CAAA,IAAIA,IAIpB,CAAA,IAAA,CAAK,UAAa,CAAA,IAAIA,IAItB,CAAA,IAAA,CAAK,MAAS,CAAA,IAAIA,IAIlB,CAAA,IAAA,CAAK,OAAU,CAAA,IAAIA,IAInB,CAAA,IAAA,CAAK,QAAU,IAAIA,IAAAA,CAInB,IAAK,CAAA,OAAA,CAAU,IAAIA,IAAAA,CAInB,IAAK,CAAA,UAAA,CAAa,IAAIA,IAAAA,CAItB,IAAK,CAAA,YAAA,CAAe,IAAIA,IAAAA,CAIxB,IAAK,CAAA,OAAA,CAAU,IAAIA,IAInB,CAAA,IAAA,CAAK,aAAgB,CAAA,IAAIA,IAIzB,CAAA,IAAA,CAAK,WAAc,CAAA,IAAIA,IAIvB,CAAA,IAAA,CAAK,eAAkB,CAAA,IAAIA,KAC7B,CACA,WAAYjqB,CAAAA,CAAAA,CAAS,CAId,IAAK,CAAA,QAAA,EAKV,IAAK,CAAA,cAAA,CAAe,MAAO,CAAA,IAAA,CAAKA,CAAO,CAAA,CAAE,MAAO,CAAA,CAAC69L,CAAKjxM,CAAAA,CAAAA,GAASu+D,GAAA1K,CAAAA,GAAAA,CAAA,EAC1Do9I,CAAAA,CAAAA,CAAAA,CAD0D,CAE7D,CAACjxM,CAAG,EAAGoT,CAAAA,CAAQpT,CAAG,CAAA,CAAE,YACtB,CAAA,CAAA,CAAI,EAAE,CAAC,EACT,CAKA,cAAA,CAAemlF,CAAY,CAAA,CAEzBsoI,EAAc,OAAQrtN,CAAAA,CAAAA,EAAQ,CAExB+kF,CAAAA,CAAW,cAAe/kF,CAAAA,CAAI,CAChC,GAAA,IAAA,CAAK,QAAS,CAAA,aAAA,CAAcA,CAAI,CAAA,CAAI+kF,CAAW/kF,CAAAA,CAAI,CAEvD,EAAA,CAAC,EACH,CACA,eAAA,EAAkB,CAGhB,IAAA,CAAK,cAELqtN,CAAAA,CAAAA,CAAc,MAAO,CAAA,CAACxc,CAAK7wM,CAAAA,CAAAA,GAE3B,IAAKA,CAAAA,CAAI,CAAM,GAAA,KAAA,CAAA,CAAY6wM,CAAM1yI,CAAAA,GAAAA,CAAA1K,IAAA,EAC5Bo9I,CAAAA,CAAAA,CAAAA,CAD4B,CAE/B,CAAC7wM,CAAI,EAAG,IAAKA,CAAAA,CAAI,CACnB,CAAA,CAAA,CAAG,EAAE,CAAC,CAAA,CACN,IAAK,CAAA,gBAAA,GACP,CACA,IAAI,SAAY,EAAA,CACd,OAAO65L,EAAAA,CAAkB,IAAK,CAAA,UAAU,CAC1C,CACA,gBAAmB,EAAA,CACZ,IAAK,CAAA,SAAA,GACV,IAAK,CAAA,YAAA,CAAe,SAAS,aAAc,CAAA,QAAQ,CACnD,CAAA,IAAA,CAAK,YAAa,CAAA,YAAA,CAAa,cAAgB,CAAA,OAAO,CACtD,CAAA,IAAA,CAAK,YAAa,CAAA,YAAA,CAAa,OAAS,CAAA,MAAM,CAC9C,CAAA,IAAA,CAAK,aAAa,YAAa,CAAA,MAAA,CAAQ,iBAAiB,CAAA,CACxD,IAAK,CAAA,YAAA,CAAa,YAAa,CAAA,KAAA,CAAO,8DAA8D,CAAA,CACpG,IAAK,CAAA,SAAA,CAAU,WAAY,CAAA,IAAA,CAAK,GAAI,CAAA,cAAA,CAAe,KAAM,IAAK,CAAA,YAAY,CAC5E,EAAA,CACA,mBAAsB,EAAA,CACf,IAAK,CAAA,SAAA,EACV,IAAK,CAAA,SAAA,CAAU,WAAY,CAAA,IAAA,CAAK,GAAI,CAAA,cAAA,CAAe,IAAM,CAAA,IAAA,CAAK,YAAY,EAC5E,CACA,WAAc,EAAA,CACZ,IAAK,CAAA,mBAAA,GACP,CACF,CACA,OAAAyzB,CAA0B,CAAA,SAAA,CAAO,SAA2CptL,CAAAA,CAAmB,CAC7F,OAAO,IAAKA,CAAqBotL,EAAAA,CAAAA,EAA8Bn+K,GAAqBqwJ,CAAAA,EAAS,CAAMrwJ,CAAAA,GAAAA,CAAkBg+K,CAAe,CAAA,CAAMh+K,GAAkB2qJ,CAAAA,IAAW,CAAC,CAC1K,CACAwzB,CAAAA,CAAAA,CAA0B,SAAyB1oC,CAAAA,EAAAA,CAAkB,CACnE,IAAM0oC,CAAAA,CAAAA,CACN,SAAW,CAAA,CAAC,CAAC,mBAAmB,CAAC,CAAA,CACjC,SAAW,CAAA,SAAyCrvL,CAAI1qB,CAAAA,CAAAA,CAAK,CAI3D,GAHI0qB,CAAK,CAAA,CAAA,EACJ6hK,GAAY9zH,CAAK,CAAA,CAAC,CAEnB/tC,CAAAA,CAAAA,CAAK,CAAG,CAAA,CACV,IAAI0hK,CAAAA,CACDC,EAAeD,CAAAA,CAAAA,CAAQE,EAAY,EAAC,CAAMtsL,GAAAA,CAAAA,CAAI,QAAWosL,CAAAA,CAAAA,CAAG,OACjE,CACF,CAAA,CACA,MAAQ,CAAA,CACN,KAAO,CAAA,OAAA,CACP,QAAU,CAAA,UAAA,CACV,QAAU,CAAA,UAAA,CACV,WAAa,CAAA,aAAA,CACb,gBAAkB,CAAA,kBAAA,CAClB,MAAQ,CAAA,QAAA,CACR,KAAM,MACN,CAAA,KAAA,CAAO,OACP,CAAA,MAAA,CAAQ,QACR,CAAA,OAAA,CAAS,SACT,CAAA,YAAA,CAAc,cACd,CAAA,GAAA,CAAK,KACL,CAAA,MAAA,CAAQ,QACR,CAAA,KAAA,CAAO,OACT,CAAA,CACA,QAAS,CACP,KAAA,CAAO,OACP,CAAA,OAAA,CAAS,SACT,CAAA,cAAA,CAAgB,gBAChB,CAAA,cAAA,CAAgB,gBAChB,CAAA,KAAA,CAAO,OACP,CAAA,KAAA,CAAO,OACP,CAAA,UAAA,CAAY,YACZ,CAAA,cAAA,CAAgB,iBAChB,SAAW,CAAA,WAAA,CACX,KAAO,CAAA,OAAA,CACP,IAAM,CAAA,MAAA,CACN,OAAS,CAAA,SAAA,CACT,QAAU,CAAA,UAAA,CACV,UAAY,CAAA,YAAA,CACZ,MAAQ,CAAA,QAAA,CACR,OAAS,CAAA,SAAA,CACT,QAAS,SACT,CAAA,OAAA,CAAS,SACT,CAAA,UAAA,CAAY,YACZ,CAAA,YAAA,CAAc,cACd,CAAA,OAAA,CAAS,SACT,CAAA,aAAA,CAAe,eACf,CAAA,WAAA,CAAa,aACb,CAAA,eAAA,CAAiB,iBACnB,CAAA,CACA,SAAU,CAAIj0H,EAAoB,CAClC,CAAA,KAAA,CAAO,CACP,CAAA,IAAA,CAAM,EACN,CAAA,MAAA,CAAQ,CAAC,CAAC,UAAY,CAAA,EAAE,CAAG,CAAA,CAAC,CAAG,CAAA,MAAA,CAAQ,QAAS,SAAW,CAAA,gBAAA,CAAkB,gBAAkB,CAAA,OAAA,CAAS,OAAS,CAAA,YAAA,CAAc,gBAAkB,CAAA,WAAA,CAAa,OAAS,CAAA,SAAA,CAAW,UAAY,CAAA,YAAA,CAAc,QAAU,CAAA,SAAA,CAAW,SAAW,CAAA,SAAA,CAAW,aAAc,cAAgB,CAAA,SAAA,CAAW,gBAAkB,CAAA,cAAA,CAAgB,kBAAkB,CAAC,CACrV,CAAA,QAAA,CAAU,SAA4CztC,CAAAA,CAAI1qB,CAAK,CAAA,CAC7D,GAAI0qB,CAAAA,CAAK,CAAG,CAAA,CACV,IAAMe,CAASyuL,CAAAA,EAAAA,EACZrxL,CAAAA,EAAAA,CAAe,CAAG,CAAA,QAAA,CAAU,CAAG,CAAA,CAAC,CAChCyC,CAAAA,EAAAA,CAAW,MAAQ,CAAA,SAAmE8nC,CAAQ,CAAA,CAC/F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,IAAA,CAAK,IAAKozD,CAAAA,CAAM,CAAC,CAC7C,CAAC,CAAA,CAAE,OAAS,CAAA,SAAoEA,CAAQ,CAAA,CACtF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,KAAA,CAAM,IAAKozD,CAAAA,CAAM,CAAC,CAC9C,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,gBAAkB,CAAA,SAA6EA,CAAQ,CAAA,CACxG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,cAAA,CAAe,IAAKozD,CAAAA,CAAM,CAAC,CACvD,CAAC,CAAA,CAAE,gBAAkB,CAAA,SAA6EA,CAAQ,CAAA,CACxG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,cAAA,CAAe,IAAKozD,CAAAA,CAAM,CAAC,CACvD,CAAC,CAAA,CAAE,OAAS,CAAA,SAAoEA,CAAQ,CAAA,CACtF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,KAAA,CAAM,IAAKozD,CAAAA,CAAM,CAAC,CAC9C,CAAC,CAAA,CAAE,OAAS,CAAA,SAAoEA,CAAQ,CAAA,CACtF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,KAAA,CAAM,IAAKozD,CAAAA,CAAM,CAAC,CAC9C,CAAC,CAAA,CAAE,YAAc,CAAA,SAAyEA,CAAQ,CAAA,CAChG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,UAAA,CAAW,IAAKozD,CAAAA,CAAM,CAAC,CACnD,CAAC,CAAA,CAAE,gBAAkB,CAAA,SAA6EA,CAAQ,CAAA,CACxG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,cAAA,CAAe,IAAKozD,CAAAA,CAAM,CAAC,CACvD,CAAC,CAAA,CAAE,WAAa,CAAA,SAAwEA,CAAQ,CAAA,CAC9F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,SAAA,CAAU,IAAKozD,CAAAA,CAAM,CAAC,CAClD,CAAC,CAAA,CAAE,OAAS,CAAA,SAAoEA,CAAQ,CAAA,CACtF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,KAAA,CAAM,IAAKozD,CAAAA,CAAM,CAAC,CAC9C,CAAC,CAAA,CAAE,MAAQ,CAAA,SAAmEA,CAAQ,CAAA,CACpF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,IAAA,CAAK,IAAKozD,CAAAA,CAAM,CAAC,CAC7C,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,UAAY,CAAA,SAAuEA,CAAQ,CAAA,CAC5F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,QAAA,CAAS,IAAKozD,CAAAA,CAAM,CAAC,CACjD,CAAC,CAAA,CAAE,YAAc,CAAA,SAAyEA,CAAQ,CAAA,CAChG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,UAAA,CAAW,IAAKozD,CAAAA,CAAM,CAAC,CACnD,CAAC,CAAA,CAAE,QAAU,CAAA,SAAqEA,CAAQ,CAAA,CACxF,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,MAAA,CAAO,IAAKozD,CAAAA,CAAM,CAAC,CAC/C,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,YAAc,CAAA,SAAyEA,CAAQ,CAAA,CAChG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,UAAA,CAAW,IAAKozD,CAAAA,CAAM,CAAC,CACnD,CAAC,CAAA,CAAE,cAAgB,CAAA,SAA2EA,CAAQ,CAAA,CACpG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,YAAA,CAAa,IAAKozD,CAAAA,CAAM,CAAC,CACrD,CAAC,CAAA,CAAE,SAAW,CAAA,SAAsEA,CAAQ,CAAA,CAC1F,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,OAAA,CAAQ,IAAKozD,CAAAA,CAAM,CAAC,CAChD,CAAC,CAAA,CAAE,gBAAkB,CAAA,SAA6EA,CAAQ,CAAA,CACxG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,aAAA,CAAc,IAAKozD,CAAAA,CAAM,CAAC,CACtD,CAAC,CAAA,CAAE,cAAgB,CAAA,SAA2EA,CAAQ,CAAA,CACpG,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,WAAA,CAAY,IAAKozD,CAAAA,CAAM,CAAC,CACpD,CAAC,CAAA,CAAE,kBAAoB,CAAA,SAA+EA,CAAQ,CAAA,CAC5G,OAAG5nC,EAAAA,CAAcC,CAAG,CACVC,CAAAA,EAAAA,CAAY1rB,CAAI,CAAA,eAAA,CAAgB,IAAKozD,CAAAA,CAAM,CAAC,CACxD,CAAC,CAAA,CACErqC,EAAa,GAClB,CACI2B,CAAAA,CAAK,CACJ8mJ,EAAAA,EAAAA,CAAY,SAAUxxK,CAAI,CAAA,KAAK,CAAE,CAAA,KAAA,CAAOA,CAAI,CAAA,GAAG,CAAE,CAAA,UAAA,CAAYA,CAAI,CAAA,QAAQ,CAAE,CAAA,UAAA,CAAYA,CAAI,CAAA,QAAQ,CAAE,CAAA,oBAAA,CAAsBA,EAAI,gBAAgB,CAAA,CAAE,MAAQA,CAAAA,CAAAA,CAAI,IAAI,CAAA,CAAE,SAAWA,CAAAA,CAAAA,CAAI,OAAO,CAAA,CAAE,QAAUA,CAAAA,CAAAA,CAAI,MAAM,CAAA,CAAE,OAASA,CAAAA,CAAAA,CAAI,KAAK,CAAE,CAAA,QAAA,CAAUA,CAAI,CAAA,MAAM,CAAE,CAAA,eAAA,CAAiBA,CAAI,CAAA,YAAY,CAAE,CAAA,OAAA,CAASA,CAAI,CAAA,KAAK,EAEvT,CAAA,CACA,aAAe,CAAA,CACjB,CAAC,CACM+5M,CAAAA,CACT,CAAG,GAAA,CAICI,CAAuC,CAAA,CAAA,IAAM,CAC/C,MAAMA,CAAuB,EAC7B,OAAAA,CAAuB,CAAA,SAAA,CAAO,SAAwCxtL,CAAAA,CAAmB,CACvF,OAAO,IAAKA,CAAqBwtL,EAAAA,CAAAA,CACnC,CACAA,CAAAA,CAAAA,CAAuB,SAAyB9mC,CAAAA,EAAAA,CAAiB,CAC/D,IAAA,CAAM8mC,CACR,CAAC,CACDA,CAAAA,CAAAA,CAAuB,SAAyB7mC,CAAAA,EAAAA,CAAiB,CAC/D,SAAW,CAAA,CAAC,CACV,OAAA,CAASsmC,CACT,CAAA,UAAA,CAAYC,CACd,CAAC,CACD,CAAA,OAAA,CAAS,CAAC,EAAE,CACd,CAAC,CAAA,CACMM,CACT,CAAG;","x_google_ignoreList":[0,100,211,228,248,249,254,255,256,257,258,276]}