{"version":3,"file":"trm-tmpl.mjs","sources":["../../../projects/terminal-template/src/lib/codegen/model/apiErrors.ts","../../../projects/terminal-template/src/lib/codegen/model/invoiceStatus.ts","../../../projects/terminal-template/src/lib/app/helpers/i18n-countries.ts","../../../projects/terminal-template/src/lib/app/i18n/i18n-key.enum.ts","../../../projects/terminal-template/src/lib/app/i18n/keys.ts","../../../projects/terminal-template/src/lib/app/models/constants.ts","../../../projects/terminal-template/src/lib/app/models/mode.ts","../../../projects/terminal-template/src/lib/app/models/version-service-base-class.ts","../../../projects/terminal-template/src/lib/app/services/api-errors.service.ts","../../../projects/terminal-template/src/lib/const.ts","../../../projects/terminal-template/src/lib/app/services/local-storage.ts","../../../projects/terminal-template/src/lib/app/services/csrf.resolver.ts","../../../projects/terminal-template/src/lib/app/services/error.interceptior.ts","../../../projects/terminal-template/src/lib/app/services/translation/translate-lang-storage.service.ts","../../../projects/terminal-template/src/lib/app/helpers/hide-init-loader.ts","../../../projects/terminal-template/src/lib/app/helpers/insertRemoveTrigger.ts","../../../projects/terminal-template/src/lib/app/helpers/phone-codes.ts","../../../projects/terminal-template/src/lib/app/helpers/mask-resolver.ts","../../../projects/terminal-template/src/lib/app/helpers/key-down-handler.ts","../../../projects/terminal-template/src/lib/app/helpers/is-object-the-same.ts","../../../projects/terminal-template/src/lib/app/helpers/warning-console-message.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/payment-field-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/collection-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/field-template.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/advcash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/terminal-step.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/index.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alfabank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay_plus.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/applepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/argentina_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/atf24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/baloto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/beeline.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/blik.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/boleto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/brazil_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/card.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/carga_virtual.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cashtocode.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/codi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/comepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_p2p.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/deposit_express.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/dotpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ecopayz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/eps.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/giropay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/gmmoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/googlepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ideal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton_voucher.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/kassa24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/link.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_brazil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/loterica.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/malaysia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/megafon.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mexico_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/momopay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/moneta.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mts.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/multibanco.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neosurf.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neteller.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/nupay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/onecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/oxxo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoefectivo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoexpress.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagofacil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paypal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paysafecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/picpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pix.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/philippines_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promptpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promsviaz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/przelewy24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/qiwi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapid.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapipago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/redpagos.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sberbank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sbp.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sepa.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/servipag.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinify.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinsback.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skrill.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sofort.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/spei.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/store_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tele2.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tinkoff.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/trustly.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/webpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wechat.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wme.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmu.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/zen_wallet.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/yandex.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wallester.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/bitcoin.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tron.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ethereum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether_trc20.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mercado_pago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mirpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mbway.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/all.ts","../../../projects/terminal-template/src/lib/app/services/session.data-source.ts","../../../projects/terminal-template/src/lib/app/services/script-loader.ts","../../../projects/terminal-template/src/lib/app/terminal.module.ts","../../../projects/terminal-template/src/lib/app/pages/directives/fee-template.directive.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select-label-template.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/scrollbar-select-height.directive.ts","../../../projects/terminal-template/src/lib/app/shared/pipes/translate-by-key.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/pipes/sanitizer.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.html","../../../projects/terminal-template/src/lib/app/shared/directives/ng-var.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.html","../../../projects/terminal-template/src/lib/app/shared/shared.module.ts","../../../projects/terminal-template/src/lib/helpers/remove-empty-props.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/services/constructor-form.service.ts","../../../projects/terminal-template/src/lib/app/pipes/country-translate.pipe.ts","../../../projects/terminal-template/src/lib/app/pipes/countries-sort.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.html","../../../projects/terminal-template/src/lib/app/pipes/method-title.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/directives/tab-index-focus.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.html","../../../projects/terminal-template/src/lib/app/pages/services/mask.service.ts","../../../projects/terminal-template/src/lib/app/pages/directives/input-mask-corrector.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.html","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.html","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.html","../../../projects/terminal-template/src/lib/app/pages/pages.module.ts","../../../projects/terminal-template/src/lib/app/checkin/services/checkin.datasource.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.html","../../../projects/terminal-template/src/lib/app/checkin/checkin.module.ts","../../../projects/terminal-template/src/lib/helpers/moment-import.ts","../../../projects/terminal-template/src/public-api.ts","../../../projects/terminal-template/src/trm-tmpl.ts"],"sourcesContent":["/**\r\n * Codes of the data validation API errors\r\n */\r\nexport enum ApiErrors {\r\n    SESSION_NOT_FOUND = 'error_session_not_found',\r\n    SESSION_USED = 'error_session_used',\r\n    SESSION_EXPIRED = 'error_session_expired',\r\n    FORMAT_WALLET = 'error_format_wallet',\r\n    FORMAT_PHONE = 'error_format_phone',\r\n    FORMAT_DATE_BIRTH = 'error_format_date_birth',\r\n    FORMAT_EMAIL = 'error_format_email',\r\n    FORMAT_STEAM_TOKEN = 'error_format_steam_token',\r\n    FORMAT_NUMERIC = 'error_format_numeric',\r\n    FORMAT_ZIP = 'error_format_zip',\r\n    FORMAT_UPPER_LIMIT = 'error_format_upper_limit',\r\n    FORMAT_LOWER_LIMIT = 'error_format_lower_limit',\r\n    FORMAT_AMOUNT_OUT_OF_LIMIT = 'error_format_amount_out_of_limit',\r\n    FORMAT_AMOUNT_NOT_POSITIVE = 'error_format_amount_not_positive',\r\n    INSUFFICIENT_FUNDS = 'error_insufficient_funds',\r\n    PAYMENT_COUNT_EXCEEDED = 'error_payment_count_exceeded',\r\n    SECURITY_CHECK_FAILED = 'error_security_check_failed',\r\n    INCORRECT_CARD_NUMBER = 'error_incorrect_card_number',\r\n    INCORRECT_CARD_HOLDER = 'error_incorrect_card_holder',\r\n    INCORRECT_CARD_CVV = 'error_incorrect_card_cvv',\r\n    INCORRECT_CARD_DATE = 'error_incorrect_card_date',\r\n    INCORRECT_CARD_DATA = 'error_incorrect_card_data',\r\n    TRANSACTION_3DS_EXPIRED = 'error_transaction_3ds_expired',\r\n    CARD_DATA_NOT_ENTERED = 'error_card_data_not_entered',\r\n    CARD_EXPIRED = 'error_card_expired',\r\n    AUTH_3DS_FAILED = 'error_auth_3ds_failed',\r\n    CARD_LIMIT_EXCEEDED = 'error_card_limit_exceeded',\r\n    USER_CANCEL_TRANSACTION = 'error_user_cancel_transaction',\r\n    NOT_3DS_SECURE_PAYMENT = 'error_not_3ds_secure_payment',\r\n    TIME_FOR_PAY_EXPIRED = 'error_time_for_expired',\r\n    SOFT_DECLINE = 'error_soft_decline',\r\n    USER_ACCOUNT_NOT_FOUND = 'error_user_account_not_found',\r\n    PROVIDER_DENIED = 'error_provider_denied',\r\n    INTERNAL = 'error_internal'\r\n};\r\n\r\n","export enum InvoiceStatus {\r\n    New = 'new',\r\n    Paid = 'paid',\r\n    Refused = 'refused'\r\n};\r\n\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeRu from '@angular/common/locales/ru';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport localeTr from '@angular/common/locales/tr';\r\nimport localeEs from '@angular/common/locales/es';\r\nimport localePt from '@angular/common/locales/pt';\r\nimport localeLt from '@angular/common/locales/lt';\r\nimport EN_COUNTRIES from 'i18n-iso-countries/langs/en.json';\r\nimport RU_COUNTRIES from 'i18n-iso-countries/langs/ru.json';\r\nimport ES_COUNTRIES from 'i18n-iso-countries/langs/es.json';\r\nimport TR_COUNTRIES from 'i18n-iso-countries/langs/tr.json';\r\nimport PT_COUNTRIES from 'i18n-iso-countries/langs/pt.json';\r\nimport LT_COUNTRIES from 'i18n-iso-countries/langs/lt.json';\r\nimport { registerLocale } from 'i18n-iso-countries';\r\n\r\nexport const OTHER_COUNTRY_CODE = 'other';\r\n\r\n// Additional countries\r\nObject.assign(EN_COUNTRIES.countries, {\r\n    OS: 'South Ossetia',\r\n    AB: 'Abkhazia',\r\n    [OTHER_COUNTRY_CODE]: 'Other'\r\n});\r\nObject.assign(RU_COUNTRIES.countries, {\r\n    OS: 'Южная Осетия',\r\n    AB: 'Абхазия',\r\n    [OTHER_COUNTRY_CODE]: 'Другие'\r\n});\r\n\r\nObject.assign(ES_COUNTRIES.countries, {\r\n    OS: 'Osetia del Sur',\r\n    AB: 'Abjasia',\r\n    [OTHER_COUNTRY_CODE]: 'Otro'\r\n});\r\n\r\nObject.assign(TR_COUNTRIES.countries, {\r\n    OS: 'Güney Osetya',\r\n    AB: 'Abhazya',\r\n    [OTHER_COUNTRY_CODE]: 'Diğer'\r\n});\r\n\r\nObject.assign(PT_COUNTRIES.countries, {\r\n    OS: 'Ossétia do Sul',\r\n    AB: 'Abecásia',\r\n    [OTHER_COUNTRY_CODE]: 'Outro'\r\n});\r\n\r\nexport const loadI18NData = () => {\r\n    registerLocaleData(localeRu);\r\n    registerLocaleData(localeEn);\r\n    registerLocaleData(localeEs);\r\n    registerLocaleData(localeTr);\r\n    registerLocaleData(localePt);\r\n    registerLocaleData(localeLt);\r\n    registerLocale(EN_COUNTRIES);\r\n    registerLocale(RU_COUNTRIES);\r\n    registerLocale(ES_COUNTRIES);\r\n    registerLocale(TR_COUNTRIES);\r\n    registerLocale(PT_COUNTRIES);\r\n    registerLocale(LT_COUNTRIES);\r\n}\r\n\r\n","export enum I18N_KEY {\r\n    TITLE_PAGE_INVOICE = 'TITLE_PAGE_INVOICE',\r\n    TITLE_PAGE_SAVE_CARD = 'TITLE_PAGE_SAVE_CARD',\r\n    TITLE_PAGE_PAY_CARD = 'TITLE_PAGE_PAY_CARD',\r\n    CARD_SAVE_HEADER = 'CARD_SAVE_HEADER',\r\n    CARD_PAY_HEADER = 'CARD_PAY_HEADER',\r\n    CDE_CARD_ERROR_500 = 'CDE_CARD_ERROR_500',\r\n    CDE_CARD_ERROR_501 = 'CDE_CARD_ERROR_501',\r\n    CDE_CARD_ERROR_504 = 'CDE_CARD_ERROR_504',\r\n    SESSION_CLOSED = 'session_closed',\r\n    APPLE_NOT_AVAILABLE = 'apple_not_available',\r\n    MIRPAY_NOT_AVAILABLE = 'mirpay_not_available',\r\n    CDE_CARD_ERROR_ALREADY_PAID = 'CDE_CARD_ERROR_ALREADY_PAID',\r\n    CDE_CARD_PAID = 'CDE_CARD_PAID',\r\n    PAGE_NOT_FOUNT = 'page_not_found',\r\n    DEFAULT_ERROR_CODE = 'error_api',\r\n    DEFAULT_ERROR_CODE_GENERAL = 'error_general',\r\n    ERROR_OCCUR = 'ERROR_OCCUR',\r\n    ERROR_OCCUR_SDK = 'ERROR_OCCUR_SDK',\r\n    PROGRESS_TITLE = 'PROGRESS_TITLE',\r\n    FAIL_TITLE = 'FAIL_TITLE',\r\n    SUCCESS_TITLE = 'SUCCESS_TITLE',\r\n    REDIRECT_TEXT = 'REDIRECT_TEXT',\r\n    CHECKIN_MESSAGE = 'CHECKIN_MESSAGE',\r\n    CHECKIN_WAIT = 'CHECKIN_WAIT',\r\n    CHECKIN_WAIT_TIMEOVER = 'CHECKIN_WAIT_TIMEOVER',\r\n    CHECKIN_FAILED = 'CHECKIN_FAILED',\r\n    PROGRESS_3DS_TITLE = 'PROGRESS_3DS_TITLE',\r\n    PROGRESS_3DS_WAIT = 'PROGRESS_3DS_WAIT',\r\n    PROGRESS_3DS_FAILED = 'PROGRESS_3DS_FAILED',\r\n    SESSION_BREAK = 'SESSION_BREAK',\r\n    TERMINAL_SESSION_BREAK = 'TERMINAL_SESSION_BREAK',\r\n    TERMINAL_SESSION_SUCCESS = 'TERMINAL_SESSION_SUCCESS',\r\n    TERMINAL_SESSION_SUPPORT = 'TERMINAL_SESSION_SUPPORT',\r\n    SELECT_SEARCH = 'SELECT_SEARCH',\r\n    SELECT_EMPTY_LIST = 'SELECT_EMPTY_LIST',\r\n    VALIDATION_REQUIRED = 'validation_required',\r\n    VALIDATION_EMAIL = 'validation_email',\r\n    VALIDATION_MIN = 'validation_min',\r\n    VALIDATION_MAX = 'validation_max',\r\n    VALIDATION_PATTERN = 'validation_pattern',\r\n    VALIDATION_DATE_MIN = 'validation_date_min',\r\n    VALIDATION_DATE_MAX = 'validation_date_max',\r\n    CONSTRUCTOR_LABEL_PHONE = 'CONSTRUCTOR_LABEL_PHONE',\r\n    CONSTRUCTOR_LABEL_EMAIL = 'CONSTRUCTOR_LABEL_EMAIL',\r\n    CONSTRUCTOR_LABEL_AMOUNT = 'CONSTRUCTOR_LABEL_AMOUNT',\r\n    CONSTRUCTOR_LABEL_FIRSTNAME = 'CONSTRUCTOR_LABEL_FIRSTNAME',\r\n    CONSTRUCTOR_LABEL_LASTNAME = 'CONSTRUCTOR_LABEL_LASTNAME',\r\n    CONSTRUCTOR_LABEL_DATEBIRTH = 'CONSTRUCTOR_LABEL_DATEBIRTH',\r\n    CONSTRUCTOR_LABEL_ZIP = 'CONSTRUCTOR_LABEL_ZIP',\r\n    CONSTRUCTOR_LABEL_TYPEDOCUMENT = 'CONSTRUCTOR_LABEL_TYPEDOCUMENT',\r\n    CONSTRUCTOR_LABEL_DOCUMENT = 'CONSTRUCTOR_LABEL_DOCUMENT',\r\n    CONSTRUCTOR_LABEL_BANK = 'CONSTRUCTOR_LABEL_BANK',\r\n    CONSTRUCTOR_LABEL_COUNTRY = 'CONSTRUCTOR_LABEL_COUNTRY',\r\n    CONSTRUCTOR_LABEL_CONTINUE = 'CONSTRUCTOR_LABEL_CONTINUE',\r\n    CONSTRUCTOR_LABEL_RETURN = 'CONSTRUCTOR_LABEL_RETURN',\r\n    CONSTRUCTOR_LABEL_RETURN_TO_SHOP = 'CONSTRUCTOR_LABEL_RETURN_TO_SHOP',\r\n    CONSTRUCTOR_LABEL_CANCEL_RETURN = 'CONSTRUCTOR_LABEL_CANCEL_RETURN',\r\n    CONSTRUCTOR_LABEL_FEE = 'CONSTRUCTOR_LABEL_FEE',\r\n    CONSTRUCTOR_LABEL_MIN_AMOUNT = 'CONSTRUCTOR_LABEL_MIN_AMOUNT',\r\n    CONSTRUCTOR_LABEL_MAX_AMOUNT = 'CONSTRUCTOR_LABEL_MAX_AMOUNT',\r\n    CONSTRUCTOR_LABEL_PS = 'CONSTRUCTOR_LABEL_PS',\r\n    CONSTRUCTOR_LABEL_WALLET = 'CONSTRUCTOR_LABEL_WALLET',\r\n    CONSTRUCTOR_LABEL_AMOUNT_FEE = 'CONSTRUCTOR_LABEL_AMOUNT_FEE',\r\n    CONSTRUCTOR_LABEL_MIN_FIXED_FEE = 'CONSTRUCTOR_LABEL_MIN_FIXED_FEE',\r\n    CONSTRUCTOR_LABEL_CURRENCY = 'CONSTRUCTOR_LABEL_CURRENCY',\r\n    CONSTRUCTOR_PREPARATION_HEADER = 'CONSTRUCTOR_PREPARATION_HEADER',\r\n    CONSTRUCTOR_MEGAFON_PREPARATION_TEXT = 'constructor_megafon_preparation_text',\r\n    CONSTRUCTOR_PLACEHOLDER_PHONE = 'CONSTRUCTOR_PLACEHOLDER_PHONE',\r\n    CONSTRUCTOR_PLACEHOLDER_EMAIL = 'CONSTRUCTOR_PLACEHOLDER_EMAIL',\r\n    CONSTRUCTOR_PLACEHOLDER_AMOUNT = 'CONSTRUCTOR_PLACEHOLDER_AMOUNT',\r\n    CONSTRUCTOR_PLACEHOLDER_FIRSTNAME = 'CONSTRUCTOR_PLACEHOLDER_FIRSTNAME',\r\n    CONSTRUCTOR_PLACEHOLDER_LASTNAME = 'CONSTRUCTOR_PLACEHOLDER_LASTNAME',\r\n    CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT',\r\n    CONSTRUCTOR_PLACEHOLDER_ZIP = 'CONSTRUCTOR_PLACEHOLDER_ZIP',\r\n    CONSTRUCTOR_PLACEHOLDER_BANK = 'CONSTRUCTOR_PLACEHOLDER_BANK',\r\n    CONSTRUCTOR_PLACEHOLDER_DOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_DOCUMENT',\r\n    CONSTRUCTOR_PLACEHOLDER_WALLET = 'CONSTRUCTOR_PLACEHOLDER_WALLET',\r\n    CONSTRUCTOR_PLACEHOLDER_PS = 'CONSTRUCTOR_PLACEHOLDER_PS',\r\n    CONSTRUCTOR_DESCRIPTION_VOUCHER = 'CONSTRUCTOR_DESCRIPTION_VOUCHER',\r\n    CONSTRUCTOR_DESCRIPTION_APPLEPAY = 'CONSTRUCTOR_DESCRIPTION_APPLEPAY',\r\n    CONSTRUCTOR_DESCRIPTION_CASHTOCODE = 'CONSTRUCTOR_DESCRIPTION_CASHTOCODE',\r\n    CONSTRUCTOR_DESCRIPTION_PHONE = 'CONSTRUCTOR_DESCRIPTION_PHONE'\r\n}\r\n","import { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { I18N_KEY } from './i18n-key.enum';\r\n\r\nexport const i18nMap: Map<ApiErrors | I18N_KEY, string> = new Map<ApiErrors | I18N_KEY, string>(\r\n  [\r\n    [I18N_KEY.TITLE_PAGE_INVOICE, 'Пополнение'],\r\n    [I18N_KEY.TITLE_PAGE_SAVE_CARD, 'Сохранение карты'],\r\n    [I18N_KEY.TITLE_PAGE_PAY_CARD, 'Пополнение картой'],\r\n    [ApiErrors.SESSION_USED, 'Сессия не установлена'],\r\n    [ApiErrors.SESSION_EXPIRED, 'Сессия уже использована'],\r\n    [ApiErrors.SESSION_NOT_FOUND, 'Время жизни сессии истекло'],\r\n    [I18N_KEY.SESSION_BREAK, 'Сессия прервана'],\r\n    [I18N_KEY.ERROR_OCCUR, 'Произошла ошибка'],\r\n    [ApiErrors.FORMAT_DATE_BIRTH, 'Неправильный формат даты'],\r\n    [ApiErrors.FORMAT_EMAIL, 'Неправильный формат email'],\r\n    [ApiErrors.FORMAT_NUMERIC, 'Неправильный формат одного из числовых полей'],\r\n    [ApiErrors.FORMAT_LOWER_LIMIT, 'Сумма меньше минимального значения'],\r\n    [ApiErrors.FORMAT_UPPER_LIMIT, 'Превышено максимальное значение суммы'],\r\n    [ApiErrors.FORMAT_AMOUNT_OUT_OF_LIMIT, 'Сумма за пределами допустимых лимитов'],\r\n    [ApiErrors.FORMAT_AMOUNT_NOT_POSITIVE, 'Сумма должна быть положительной'],\r\n    [ApiErrors.FORMAT_STEAM_TOKEN, 'Неправильный формат токена steam'],\r\n    [ApiErrors.FORMAT_WALLET, 'Неправильный формат кошелька'],\r\n    [ApiErrors.FORMAT_ZIP, 'Неправильный формат почтового индекса'],\r\n    [ApiErrors.FORMAT_PHONE, 'Неправильный формат телефона'],\r\n    [ApiErrors.INSUFFICIENT_FUNDS, 'Недостаточно средств, чтобы провести операцию'],\r\n    [ApiErrors.PAYMENT_COUNT_EXCEEDED, 'Исчерпан лимит платежей для платёжного направления'],\r\n    [ApiErrors.SECURITY_CHECK_FAILED, 'Операция отклонена системой безопасности'],\r\n    [ApiErrors.PROVIDER_DENIED, 'Платёж отклонён провайдером'],\r\n    [ApiErrors.INTERNAL, 'Внутренняя ошибка'],\r\n    [I18N_KEY.CARD_SAVE_HEADER, 'Сохранение карты для дальнейших покупок'],\r\n    [I18N_KEY.CARD_PAY_HEADER, 'Пополнение банковской картой'],\r\n    [I18N_KEY.CDE_CARD_ERROR_501, 'Сессия с указанным токеном не найдена'],\r\n    [I18N_KEY.CDE_CARD_ERROR_504, 'Время сессии истекло'],\r\n    [I18N_KEY.CDE_CARD_ERROR_500, 'Внутренняя ошибка. Попробуйте повторить попытку позже'],\r\n    [I18N_KEY.DEFAULT_ERROR_CODE, 'Обратитесь в техническую поддержку магазина'],\r\n    [I18N_KEY.DEFAULT_ERROR_CODE_GENERAL, 'Произошла ошибка. Обратитесь в службу поддержки.'],\r\n    [I18N_KEY.PAGE_NOT_FOUNT, 'Страница не найдена'],\r\n    [I18N_KEY.SESSION_CLOSED, 'Сессия закрыта'],\r\n    [I18N_KEY.APPLE_NOT_AVAILABLE, 'ApplePay недоступен в текущем окружении'],\r\n    [I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID, 'Данные карты отправлены. Подтвердите платеж.'],\r\n    [I18N_KEY.CDE_CARD_PAID, 'Данные карты отправлены.'],\r\n    [I18N_KEY.MIRPAY_NOT_AVAILABLE, 'MirPay временно недоступен'],\r\n    [I18N_KEY.VALIDATION_REQUIRED, 'Обязательное поле'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_PHONE, 'Номер телефона'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_EMAIL, 'Email'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT, 'Сумма платежа'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME, 'Имя'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME, 'Фамилия'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH, 'Дата рождения'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_ZIP, 'Индекс'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT, 'Тип документа'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT, 'Документ'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_BANK, 'Банк'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE, 'Введите номер'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL, 'Введите email'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT, 'Укажите сумму'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME, 'Введите имя'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME, 'Введите фамилию'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT, 'Выберите тип'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP, 'Укажите индекс (например, 125047)'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK, 'Выберите банк'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT, 'Введите номер документа'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET, 'Введите номер кошелька'],\r\n    [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS, 'Выбрать другой метод'],\r\n    [I18N_KEY.VALIDATION_EMAIL, 'Некорректный адрес почты'],\r\n    [I18N_KEY.VALIDATION_MIN, 'Значение ниже минимально возможного'],\r\n    [I18N_KEY.VALIDATION_MAX, 'Значение выше максимально возможного'],\r\n    [I18N_KEY.VALIDATION_PATTERN, 'Некорректное значение'],\r\n    [I18N_KEY.VALIDATION_DATE_MIN, 'Значение ниже минимальной даты'],\r\n    [I18N_KEY.VALIDATION_DATE_MAX, 'Превышено значение максимальной даты'],\r\n    [I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER, 'Ваучер действителен в течение 48 часов. Обработка платежей может занять до 3 рабочих дней.'],\r\n    [I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY, 'Данный метод работает только в браузере Safari'],\r\n    [I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE, 'Для успешного пополнения счета сумма пополнения должна быть равна: 10, 25, 50, 100, 200 или 400 евро.'],\r\n    [I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE, 'С кодом страны в международном формате'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_PS, 'Платежная система'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_WALLET, 'Кошелек'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE, 'Сумма с учетом комиссии'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE, 'но не менее '],\r\n    [I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER, 'Подтвердите реквизиты платежа'],\r\n    [I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT, 'Оплачивая услуги с помощью Мегафон, вы соглашаетесь с <a target=\"_blank\" href=\"https://moscow.megafon.ru/download/~federal/oferts/oferta_m_platezhi.pdf\">офертой</a>.'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY, 'Страна'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE, 'Продолжить'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_RETURN, 'Вернуться назад'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP, 'Вернуться в магазин'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN, 'Отменить и вернуться'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY, 'Валюта'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_FEE, 'Комиссия'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT, 'Минимальная сумма'],\r\n    [I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT, 'Максимальная сумма'],\r\n    [I18N_KEY.PROGRESS_TITLE, 'Платёж принят в обработку'],\r\n    [I18N_KEY.FAIL_TITLE, 'Не удалось провести платёж'],\r\n    [I18N_KEY.SUCCESS_TITLE, 'Ваш платёж успешно оплачен!'],\r\n    [I18N_KEY.REDIRECT_TEXT, 'Вы будете автоматически перенаправлены через'],\r\n    [I18N_KEY.CHECKIN_MESSAGE, 'Операция будет обработана в ближайшее время.'],\r\n    [I18N_KEY.CHECKIN_WAIT, 'Пожалуйста, дождитесь окончательного статуса платежа.'],\r\n    [I18N_KEY.CHECKIN_WAIT_TIMEOVER, 'Время ожидания статуса истекло. Транзакция будет обработана в ближайшее время.'],\r\n    [I18N_KEY.CHECKIN_FAILED, 'Платежная операция не может быть обработана или завершилась с ошибкой.'],\r\n    [I18N_KEY.PROGRESS_3DS_TITLE, 'Принято в обработку'],\r\n    [I18N_KEY.PROGRESS_3DS_WAIT, 'Пожалуйста, дождитесь окончания проверки.'],\r\n    [I18N_KEY.PROGRESS_3DS_FAILED, 'Произошла ошибка при обработке 3ds пароля.'],\r\n    [I18N_KEY.TERMINAL_SESSION_BREAK, 'Сессия терминала была прервана'],\r\n    [I18N_KEY.TERMINAL_SESSION_SUCCESS, 'Операция прошла успешно!'],\r\n    [I18N_KEY.TERMINAL_SESSION_SUPPORT, 'В случае возникновения проблем с платежом, обращайтесь в техническую поддержку магазина или к нам на почту'],\r\n    [I18N_KEY.SELECT_SEARCH, 'Поиск'],\r\n    [I18N_KEY.SELECT_EMPTY_LIST, 'Список пуст'],\r\n    [I18N_KEY.ERROR_OCCUR_SDK, 'Ошибка загрузки терминала']\r\n  ]\r\n);\r\n\r\nexport const getI18Key: ((key: I18N_KEY | ApiErrors) => string) = (key: I18N_KEY | ApiErrors) => {\r\n  return i18nMap.get(key);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Mode } from './mode';\r\n\r\nexport enum LANGUAGE {\r\n    EN = 'en',\r\n    RU = 'ru',\r\n    ES = 'es',\r\n    TR = 'tr',\r\n    PT = 'pt',\r\n    LT = 'lt'\r\n}\r\nexport const LOCAL_LANG_KEY = 'TERMINAL_LANG';\r\nexport const DEFAULT_LANG = 'en';\r\nexport const APP_READY_TOKEN = new InjectionToken<BehaviorSubject<boolean>>(\r\n    'APP_READY',\r\n    { providedIn: 'root', factory: () => new BehaviorSubject<boolean>(false) }\r\n);\r\nexport const CSRF_COOKIE_NAME = 'TERMINAL-CSRF-KEY';\r\nexport const I18N_COUNTRIES = new InjectionToken('i18n-iso-countries');\r\n\r\nexport const SessionToken = new InjectionToken<string>('SessionToken');\r\nexport const CheckinModeToken = new InjectionToken<Mode>('CheckinModeToken');\r\nexport const DEFAULT_COUNTRY_LOCALHOST_KEY = 'GM_TERMINAL_COUNTRY';\r\nexport const DEFAULT_METHOD_LOCALHOST_KEY = 'GM_TERMINAL_METHOD';\r\nexport const DEFAULT_CURRENCY_LOCALHOST_KEY = 'GM_TERMINAL_CURRENCY';\r\n","export enum Mode {\r\n    Success = 'success',\r\n    Fail = 'fail'\r\n}\r\n","import { VersionServiceInterface } from './version-service-interface';\r\nimport { MethodType } from '../../codegen/model/methodType';\r\n\r\n\r\nexport abstract class VersionServiceBase implements VersionServiceInterface {\r\n\r\n    logoClass: string;\r\n    methods: MethodType[];\r\n    footerText;\r\n    pageTitle = 'Title';\r\n    supportEmail = '';\r\n\r\n\tprotected constructor(protected document: Document) {\r\n        this.footerText = `${document.defaultView.location.hostname} © ${new Date().getFullYear()}`\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ApiErrors, BadRequestResponse } from '../../codegen/model/models';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { SessionToken } from '../models';\r\n\r\ntype ErrorCode = I18N_KEY | ApiErrors;\r\n\r\n@Injectable()\r\nexport class ApiErrorsService {\r\n  private token = inject(SessionToken, {optional: true}) || 'token';\r\n\r\n  private _localError: ErrorCode;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  clear(): void {\r\n    this._localError = null;\r\n  }\r\n\r\n  get hasError(): boolean {\r\n    return !!this._localError;\r\n  }\r\n\r\n  get hasFatalError(): boolean {\r\n    const formatErrors: ErrorCode[] = [\r\n      ApiErrors.FORMAT_PHONE,\r\n      ApiErrors.FORMAT_DATE_BIRTH,\r\n      ApiErrors.FORMAT_EMAIL,\r\n      ApiErrors.FORMAT_NUMERIC,\r\n      ApiErrors.FORMAT_LOWER_LIMIT,\r\n      ApiErrors.FORMAT_UPPER_LIMIT,\r\n      ApiErrors.FORMAT_STEAM_TOKEN,\r\n      ApiErrors.FORMAT_WALLET,\r\n      ApiErrors.FORMAT_ZIP,\r\n    ];\r\n    if (formatErrors.includes(this._localError)) {\r\n      return false;\r\n    }\r\n    return !!this._localError;\r\n  }\r\n\r\n  setLocalError(err?: BadRequestResponse | { code: I18N_KEY }): void {\r\n    let code: ErrorCode = I18N_KEY.DEFAULT_ERROR_CODE;\r\n    if (err?.code) {\r\n      code = err.code;\r\n    }\r\n    this._localError = code;\r\n  }\r\n\r\n  get hasLocalError() {\r\n    return !!this._localError;\r\n  }\r\n\r\n  getLocalError() {\r\n    return this._localError;\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PaymentFields } from './app/pages';\r\nimport { CheckinServiceInterface, ConfigurationApiInterface, TerminalServiceInterface } from './codegen';\r\nimport { CdeTerminalSdk, VersionServiceInterface } from './app/models';\r\n\r\nexport const CONFIGURATION_TOKEN = new InjectionToken<ConfigurationApiInterface>('CONFIGURATION_TOKEN');\r\nexport const CHECKIN_SERVICE_TOKEN = new InjectionToken<CheckinServiceInterface>('CHECKIN_SERVICE_TOKEN');\r\nexport const TERMINAL_SERVICE_TOKEN = new InjectionToken<TerminalServiceInterface>('TERMINAL_SERVICE_TOKEN');\r\nexport const TERMINAL_METHOD_CONFIGURATION_FACTORY = new InjectionToken<(method: string, defaultConfig: PaymentFields) => PaymentFields>('TERMINAL_METHOD_CONFIGURATION_FACTORY');\r\nexport const ENVIRONMENT = new InjectionToken<{production: boolean, csrf: boolean}>('ENVIRONMENT');\r\nexport const TERMINAL_VERSION_SERVICE_TOKEN = new InjectionToken<VersionServiceInterface>('TERMINAL_VERSION_SERVICE_TOKEN');\r\n\r\nexport const TERMINAL_SDK_FACTORY = new InjectionToken<(token: string, id: string, options: {lang: string, tabindex?: number}) => CdeTerminalSdk>('TERMINAL_SDK_FACTORY');\r\n","\r\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport {\r\n  DEFAULT_COUNTRY_LOCALHOST_KEY,\r\n  DEFAULT_CURRENCY_LOCALHOST_KEY,\r\n  DEFAULT_METHOD_LOCALHOST_KEY,\r\n  LOCAL_LANG_KEY,\r\n} from '../models/constants';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalStorage {\r\n  private _document: Document = inject(DOCUMENT);\r\n  private readonly _supported: boolean = true;\r\n  constructor() {\r\n    try {\r\n      if (!this._document.defaultView.localStorage) {\r\n        this._supported = false;\r\n      }\r\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    } catch (error) {\r\n      this._supported = false;\r\n    }\r\n  }\r\n\r\n  private get _storage(): Storage {\r\n    return this._document.defaultView.localStorage;\r\n  }\r\n\r\n  getItem(key: string): string | null {\r\n    if (!this._supported) {\r\n      return null;\r\n    }\r\n    return this._storage.getItem(key);\r\n  }\r\n\r\n  setItem(key: string, value: string): void {\r\n    if (!this._supported) {\r\n      return;\r\n    }\r\n    this._storage.setItem(key, value);\r\n  }\r\n\r\n  private _defaultCountry: Alpha2Code;\r\n  private _defaultMethodName: string;\r\n  private _defaultCurrency: string;\r\n  private _defaultLang: string;\r\n\r\n  get defaultCountry(): Alpha2Code | null {\r\n    return (\r\n      this._defaultCountry ||\r\n      (this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY) as Alpha2Code)\r\n    );\r\n  }\r\n\r\n  get defaultMethodName(): string | null {\r\n    return (\r\n      this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY)\r\n    );\r\n  }\r\n\r\n  get defaultCurrency(): string | null {\r\n    return (\r\n      this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY)\r\n    );\r\n  }\r\n\r\n  get defaultLang(): string | null {\r\n    return this._defaultLang || this.getItem(LOCAL_LANG_KEY);\r\n  }\r\n\r\n  saveDefaultCountry(value: string): void {\r\n    this._defaultCountry = value as Alpha2Code;\r\n    this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);\r\n  }\r\n\r\n  saveDefaultMethodName(value: string): void {\r\n    this._defaultMethodName = value;\r\n    this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);\r\n  }\r\n\r\n  saveDefaultCurrency(value: string): void {\r\n    this._defaultCurrency = value;\r\n    this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);\r\n  }\r\n\r\n  saveDefaultLang(value: string): void {\r\n    this._defaultLang = value;\r\n    this.setItem(LOCAL_LANG_KEY, value);\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport momentjs from 'moment-timezone';\r\nimport { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';\r\nimport { ConfigurationApiInterface } from '../../codegen/api/configuration';\r\nimport { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { LocalStorage } from \"./local-storage\";\r\n\r\n@Injectable()\r\nexport class CSRFResolver  {\r\n    private cookieSrv = inject(CookieService);\r\n    private apiErrorsSrv = inject(ApiErrorsService);\r\n    private configuration = inject<ConfigurationApiInterface>(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };\r\n    private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n    private token = inject(SessionToken, { optional: true }) || 'token';\r\n    private environment = inject(ENVIRONMENT);\r\n\r\n  private storage: LocalStorage = inject(LocalStorage);\r\n\r\n    constructor() {\r\n    }\r\n\r\n    private saveDefaultCountry(defaultCountryISOCode: string) {\r\n      if (defaultCountryISOCode) {\r\n        this.storage.saveDefaultCountry(defaultCountryISOCode);\r\n      }\r\n    }\r\n\r\n    resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\r\n        const token = this.token;\r\n        if (!token) {\r\n            if (!this.apiErrorsSrv.hasError) {\r\n                this.apiErrorsSrv.setLocalError({code: ApiErrors.SESSION_NOT_FOUND});\r\n            }\r\n            return of(true);\r\n        }\r\n        const timezone = momentjs.tz.guess();\r\n\r\n        if (!this.environment.csrf) {\r\n          return of(false);\r\n        }\r\n        if (this.resolveCSRF(token)) {\r\n            return of(true);\r\n        }\r\n        return this.terminalApi.postTerminalOpen({\r\n            token,\r\n            terminalOpenRequest: {\r\n                timezone\r\n            }\r\n        })\r\n            .pipe(\r\n                catchError((err) => {\r\n                    this.apiErrorsSrv.setLocalError(err.error);\r\n                    return of({csrf: null, defaultCountryISOCode: null});\r\n                }),\r\n                map(({csrf, defaultCountryISOCode}) => {\r\n                    this.saveDefaultCountry(defaultCountryISOCode);\r\n                    this.resolveCSRF(token, csrf);\r\n                    return true;\r\n                })\r\n            );\r\n    }\r\n\r\n    resolveCSRF(token: string, csrf?: string): boolean {\r\n        if (!csrf) {\r\n            if (token && this.cookieSrv.check(`${token}_${CSRF_COOKIE_NAME}`)) {\r\n                this.apiErrorsSrv.clear();\r\n                this.configuration.credentials.CSRF = this.cookieSrv.get(`${token}_${CSRF_COOKIE_NAME}`);\r\n                return true;\r\n            }\r\n        } else {\r\n            this.apiErrorsSrv.clear();\r\n            this.cookieSrv.set(`${token}_${CSRF_COOKIE_NAME}`, csrf, momentjs().add(24, 'hours').toDate(), undefined, undefined, this.environment.production);\r\n            this.configuration.credentials.CSRF = csrf;\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ApiErrorsService } from './api-errors.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n    private apiErrorSrv = inject(ApiErrorsService);\r\n\r\n\r\n    constructor() { }\r\n\r\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n        return next\r\n            .handle(req)\r\n            .pipe(\r\n                catchError((err: HttpErrorResponse) => {\r\n                    if (err.status === 404 || err.status === 500) {\r\n                        this.apiErrorSrv.setLocalError();\r\n                    }\r\n                    return throwError(err);\r\n                })\r\n            );\r\n    }\r\n}\r\n","import { EventEmitter, inject, Injectable, DOCUMENT } from '@angular/core';\r\n\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { DEFAULT_LANG, LANGUAGE } from '../../models/constants'\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';\r\nimport { VersionServiceInterface } from '../../models';\r\nimport { LocalStorage } from \"../local-storage\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\ninterface TranslationLangInfoMeta {\r\n  code: string;\r\n  name: string;\r\n  countries: Alpha2Code[];\r\n}\r\n\r\nexport interface TranslationLangInfo {\r\n  [key: string]: TranslationLangInfoMeta;\r\n}\r\n\r\nconst TRANSLATION_LANG_KEYS: TranslationLangInfo = {\r\n  [LANGUAGE.RU]: {\r\n    code: 'ru',\r\n    name: 'Русский',\r\n    countries: [\r\n      'AZ',\r\n      'AM',\r\n      'BY',\r\n      'KZ',\r\n      'KG',\r\n      'MD',\r\n      'RU',\r\n      'TJ',\r\n      'TM',\r\n      'UZ',\r\n      'UA',\r\n    ],\r\n  },\r\n  [LANGUAGE.EN]: {\r\n    code: 'gb',\r\n    name: 'English',\r\n    countries: [],\r\n  },\r\n  [LANGUAGE.ES]: {\r\n    code: 'es',\r\n    name: 'Español',\r\n    countries: [\r\n      'BZ',\r\n      'GT',\r\n      'HN',\r\n      'CR',\r\n      'PA',\r\n      'NI',\r\n      'SV',\r\n      'AR',\r\n      'CL',\r\n      'CO',\r\n      'EC',\r\n      'PY',\r\n      'PE',\r\n      'GY',\r\n      'ES',\r\n    ],\r\n  },\r\n  [LANGUAGE.TR]: {\r\n    code: 'tr',\r\n    name: 'Türkçe',\r\n    countries: ['TR'],\r\n  },\r\n  [LANGUAGE.PT]: {\r\n    code: 'pt',\r\n    name: 'Português',\r\n    countries: ['PT', 'BR'],\r\n  },\r\n};\r\n@Injectable()\r\nexport class TranslateLangStorageService {\r\n  private _storage: LocalStorage = inject(LocalStorage);\r\n\r\n  constructor() {\r\n  }\r\n\r\n  get languages() {\r\n    return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];\r\n  }\r\n\r\n  private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n  private document = inject<Document>(DOCUMENT);\r\n  private translateSrv = inject(TranslateService);\r\n\r\n  readonly TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;\r\n\r\n  private get location(): Location {\r\n    return this.document.defaultView.location;\r\n  }\r\n\r\n  get onLangChange$(): EventEmitter<LangChangeEvent> {\r\n    return this.translateSrv.onLangChange;\r\n  }\r\n\r\n  get currentLang(): string {\r\n    return this.translateSrv.currentLang;\r\n  }\r\n\r\n  get queryLang(): string | null {\r\n    return new URL(this.location.href).searchParams.get('language');\r\n  }\r\n\r\n  private get countryLanguage(): string | null {\r\n    const code = this._storage.defaultCountry?.toUpperCase();\r\n    if (!code) {\r\n      return null;\r\n    }\r\n    return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang: LANGUAGE) => {\r\n      const meta = this.TRANSLATION_LANG_KEYS[lang];\r\n      return meta?.countries.some((c) => c.includes(code.toUpperCase()));\r\n    });\r\n  }\r\n\r\n  setLanguage$(\r\n    options: { save: boolean; lang?: string } = {save: true},\r\n  ): Observable<any> {\r\n    const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);\r\n    let candidateLang = DEFAULT_LANG;\r\n    const lang = options?.lang?.toLowerCase();\r\n    const queryLang = this.queryLang?.toLowerCase();\r\n    const storageLang = this._storage.defaultLang?.toLowerCase();\r\n    const countryLang = this.countryLanguage?.toLowerCase();\r\n    if (availableLanguages.includes(lang)) {\r\n      candidateLang = lang;\r\n    } else if (availableLanguages.includes(storageLang)) {\r\n      candidateLang = storageLang;\r\n    } else if (availableLanguages.includes(queryLang)) {\r\n      candidateLang = queryLang;\r\n    } else if (availableLanguages.includes(countryLang)) {\r\n      candidateLang = countryLang;\r\n    }\r\n    if (!this.versionSrv.langs.includes(candidateLang as LANGUAGE)) {\r\n      candidateLang = DEFAULT_LANG;\r\n    }\r\n\r\n    if (options?.save) {\r\n      this._storage.saveDefaultLang(candidateLang);\r\n    }\r\n\r\n    return this.translateSrv.use(candidateLang);\r\n  }\r\n}\r\n","import { Observable, of } from 'rxjs';\r\nimport { delay, first, map } from 'rxjs/operators';\r\n\r\nconst DELAY_INITIAL_LOADER_HIDING = 0;\r\nconst LOADER_HIDE_CSS_CLASS = 'trm-loader-init--hide';\r\n\r\nexport function hideInitLoader(): Observable<boolean> {\r\n  return of(false).pipe(\r\n    first(),\r\n    map(() => {\r\n      const loader = document.querySelector('.trm-loader-init');\r\n      if (!loader) {\r\n        return false;\r\n      }\r\n      loader.classList.add(LOADER_HIDE_CSS_CLASS);\r\n      return true;\r\n    }),\r\n    delay(DELAY_INITIAL_LOADER_HIDING)\r\n  );\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const insertRemoveTrigger = trigger('insertRemove', [\r\n    transition(':enter', [\r\n        style({ opacity: 0 }),\r\n        animate('150ms', style({ opacity: 1 })),\r\n    ]),\r\n    transition(':leave', [\r\n        animate('150ms', style({ opacity: 0 }))\r\n    ])\r\n])\r\n","export const removeSpecSymbols = (s) => s.replace(/[\\+\\(\\)\\-\\s]+/g, '');\r\nexport const PHONE_MASKS = [\r\n  {\r\n    mask: '+247-dddd',\r\n    cc: 'AC',\r\n    name_en: 'Ascension',\r\n    desc_en: '',\r\n    name_ru: 'Остров Вознесения',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+376-ddd-ddd', cc: 'AD', name_en: 'Andorra', desc_en: '', name_ru: 'Андорра', desc_ru: '' },\r\n  {\r\n    mask: '+971-5d-ddd-dddd',\r\n    cc: 'AE',\r\n    name_en: 'United Arab Emirates',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Объединенные Арабские Эмираты',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+971-d-ddd-dddd',\r\n    cc: 'AE',\r\n    name_en: 'United Arab Emirates',\r\n    desc_en: '',\r\n    name_ru: 'Объединенные Арабские Эмираты',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+93-dd-ddd-dddd',\r\n    cc: 'AF',\r\n    name_en: 'Afghanistan',\r\n    desc_en: '',\r\n    name_ru: 'Афганистан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (268) ddd-dddd',\r\n    cc: 'AG',\r\n    name_en: 'Antigua & Barbuda',\r\n    desc_en: '',\r\n    name_ru: 'Антигуа и Барбуда',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+1 (264) ddd-dddd', cc: 'AI', name_en: 'Anguilla', desc_en: '', name_ru: 'Ангилья', desc_ru: '' },\r\n  { mask: '+355 (ddd) ddd-ddd', cc: 'AL', name_en: 'Albania', desc_en: '', name_ru: 'Албания', desc_ru: '' },\r\n  { mask: '+374-dd-ddd-ddd', cc: 'AM', name_en: 'Armenia', desc_en: '', name_ru: 'Армения', desc_ru: '' },\r\n  {\r\n    mask: '+599-ddd-dddd',\r\n    cc: 'AN',\r\n    name_en: 'Caribbean Netherlands',\r\n    desc_en: '',\r\n    name_ru: 'Карибские Нидерланды',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+599-ddd-dddd',\r\n    cc: 'AN',\r\n    name_en: 'Netherlands Antilles',\r\n    desc_en: '',\r\n    name_ru: 'Нидерландские Антильские острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+599-9ddd-dddd',\r\n    cc: 'AN',\r\n    name_en: 'Netherlands Antilles',\r\n    desc_en: 'Curacao',\r\n    name_ru: 'Нидерландские Антильские острова',\r\n    desc_ru: 'Кюрасао'\r\n  },\r\n  { mask: '+244 (ddd) ddd-ddd', cc: 'AO', name_en: 'Angola', desc_en: '', name_ru: 'Ангола', desc_ru: '' },\r\n  {\r\n    mask: '+672-1dd-ddd',\r\n    cc: 'AQ',\r\n    name_en: 'Australian bases in Antarctica',\r\n    desc_en: '',\r\n    name_ru: 'Австралийская антарктическая база',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+54 (ddd) ddd-dddd',\r\n    cc: 'AR',\r\n    name_en: 'Argentina',\r\n    desc_en: '',\r\n    name_ru: 'Аргентина',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (684) ddd-dddd',\r\n    cc: 'AS',\r\n    name_en: 'American Samoa',\r\n    desc_en: '',\r\n    name_ru: 'Американское Самоа',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+43 (ddd) ddd-dddd', cc: 'AT', name_en: 'Austria', desc_en: '', name_ru: 'Австрия', desc_ru: '' },\r\n  { mask: '+61-d-dddd-dddd', cc: 'AU', name_en: 'Australia', desc_en: '', name_ru: 'Австралия', desc_ru: '' },\r\n  { mask: '+297-ddd-dddd', cc: 'AW', name_en: 'Aruba', desc_en: '', name_ru: 'Аруба', desc_ru: '' },\r\n  {\r\n    mask: '+994-dd-ddd-dd-dd',\r\n    cc: 'AZ',\r\n    name_en: 'Azerbaijan',\r\n    desc_en: '',\r\n    name_ru: 'Азербайджан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+387-dd-ddddd',\r\n    cc: 'BA',\r\n    name_en: 'Bosnia and Herzegovina',\r\n    desc_en: '',\r\n    name_ru: 'Босния и Герцеговина',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+387-dd-dddd',\r\n    cc: 'BA',\r\n    name_en: 'Bosnia and Herzegovina',\r\n    desc_en: '',\r\n    name_ru: 'Босния и Герцеговина',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+1 (246) ddd-dddd', cc: 'BB', name_en: 'Barbados', desc_en: '', name_ru: 'Барбадос', desc_ru: '' },\r\n  {\r\n    mask: '+880-dd-ddd-ddd',\r\n    cc: 'BD',\r\n    name_en: 'Bangladesh',\r\n    desc_en: '',\r\n    name_ru: 'Бангладеш',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+32 (ddd) ddd-ddd', cc: 'BE', name_en: 'Belgium', desc_en: '', name_ru: 'Бельгия', desc_ru: '' },\r\n  {\r\n    mask: '+226-dd-dd-dddd',\r\n    cc: 'BF',\r\n    name_en: 'Burkina Faso',\r\n    desc_en: '',\r\n    name_ru: 'Буркина Фасо',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+359 (ddd) ddd-ddd', cc: 'BG', name_en: 'Bulgaria', desc_en: '', name_ru: 'Болгария', desc_ru: '' },\r\n  { mask: '+973-dddd-dddd', cc: 'BH', name_en: 'Bahrain', desc_en: '', name_ru: 'Бахрейн', desc_ru: '' },\r\n  { mask: '+257-dd-dd-dddd', cc: 'BI', name_en: 'Burundi', desc_en: '', name_ru: 'Бурунди', desc_ru: '' },\r\n  { mask: '+229-dd-dd-dddd', cc: 'BJ', name_en: 'Benin', desc_en: '', name_ru: 'Бенин', desc_ru: '' },\r\n  {\r\n    mask: '+1 (441) ddd-dddd',\r\n    cc: 'BM',\r\n    name_en: 'Bermuda',\r\n    desc_en: '',\r\n    name_ru: 'Бермудские острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+673-ddd-dddd',\r\n    cc: 'BN',\r\n    name_en: 'Brunei Darussalam',\r\n    desc_en: '',\r\n    name_ru: 'Бруней-Даруссалам',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+591-d-ddd-dddd', cc: 'BO', name_en: 'Bolivia', desc_en: '', name_ru: 'Боливия', desc_ru: '' },\r\n  { mask: '+55 (dd) dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n  { mask: '+55 (dd) 9dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n  {\r\n    mask: '+1 (242) ddd-dddd',\r\n    cc: 'BS',\r\n    name_en: 'Bahamas',\r\n    desc_en: '',\r\n    name_ru: 'Багамские Острова',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+975-17-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n  { mask: '+975-d-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n  { mask: '+267-dd-ddd-ddd', cc: 'BW', name_en: 'Botswana', desc_en: '', name_ru: 'Ботсвана', desc_ru: '' },\r\n  {\r\n    mask: '+375 (dd) ddd-dd-dd',\r\n    cc: 'BY',\r\n    name_en: 'Belarus',\r\n    desc_en: '',\r\n    name_ru: 'Беларусь (Белоруссия) ',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+501-ddd-dddd', cc: 'BZ', name_en: 'Belize', desc_en: '', name_ru: 'Белиз', desc_ru: '' },\r\n  {\r\n    mask: '+243 (ddd) ddd-ddd',\r\n    cc: 'CD',\r\n    name_en: 'Dem. Rep. Congo',\r\n    desc_en: '',\r\n    name_ru: 'Дем. Респ. Конго (Киншаса) ',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+236-dd-dd-dddd',\r\n    cc: 'CF',\r\n    name_en: 'Central African Republic',\r\n    desc_en: '',\r\n    name_ru: 'Центральноафриканская Республика',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+242-dd-ddd-dddd',\r\n    cc: 'CG',\r\n    name_en: 'Congo (Brazzaville) ',\r\n    desc_en: '',\r\n    name_ru: 'Конго (Браззавиль) ',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+41-dd-ddd-dddd',\r\n    cc: 'CH',\r\n    name_en: 'Switzerland',\r\n    desc_en: '',\r\n    name_ru: 'Швейцария',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+225-dd-ddd-ddd',\r\n    cc: 'CI',\r\n    name_en: 'Cote d’Ivoire (Ivory Coast) ',\r\n    desc_en: '',\r\n    name_ru: 'Кот-д’Ивуар',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+682-dd-ddd',\r\n    cc: 'CK',\r\n    name_en: 'Cook Islands',\r\n    desc_en: '',\r\n    name_ru: 'Острова Кука',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+56-d-dddd-dddd', cc: 'CL', name_en: 'Chile', desc_en: '', name_ru: 'Чили', desc_ru: '' },\r\n  { mask: '+237-dddd-dddd', cc: 'CM', name_en: 'Cameroon', desc_en: '', name_ru: 'Камерун', desc_ru: '' },\r\n  {\r\n    mask: '+86 (ddd) dddd-dddd',\r\n    cc: 'CN',\r\n    name_en: 'China (PRC) ',\r\n    desc_en: '',\r\n    name_ru: 'Китайская Н.Р.',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+86 (ddd) dddd-ddd',\r\n    cc: 'CN',\r\n    name_en: 'China (PRC) ',\r\n    desc_en: '',\r\n    name_ru: 'Китайская Н.Р.',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+86-dd-ddddd-ddddd',\r\n    cc: 'CN',\r\n    name_en: 'China (PRC) ',\r\n    desc_en: '',\r\n    name_ru: 'Китайская Н.Р.',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+57 (ddd) ddd-dddd', cc: 'CO', name_en: 'Colombia', desc_en: '', name_ru: 'Колумбия', desc_ru: '' },\r\n  {\r\n    mask: '+506-dddd-dddd',\r\n    cc: 'CR',\r\n    name_en: 'Costa Rica',\r\n    desc_en: '',\r\n    name_ru: 'Коста-Рика',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+53-d-ddd-dddd', cc: 'CU', name_en: 'Cuba', desc_en: '', name_ru: 'Куба', desc_ru: '' },\r\n  {\r\n    mask: '+238 (ddd) dd-dd',\r\n    cc: 'CV',\r\n    name_en: 'Cape Verde',\r\n    desc_en: '',\r\n    name_ru: 'Кабо-Верде',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+599-ddd-dddd', cc: 'CW', name_en: 'Curacao', desc_en: '', name_ru: 'Кюрасао', desc_ru: '' },\r\n  { mask: '+357-dd-ddd-ddd', cc: 'CY', name_en: 'Cyprus', desc_en: '', name_ru: 'Кипр', desc_ru: '' },\r\n  {\r\n    mask: '+420 (ddd) ddd-ddd',\r\n    cc: 'CZ',\r\n    name_en: 'Czech Republic',\r\n    desc_en: '',\r\n    name_ru: 'Чехия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+49 (dddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+49 (ddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+49 (ddd) dd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+49 (ddd) dd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+49 (ddd) dd-dd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+49-ddd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n  { mask: '+253-dd-dd-dd-dd', cc: 'DJ', name_en: 'Djibouti', desc_en: '', name_ru: 'Джибути', desc_ru: '' },\r\n  { mask: '+45-dd-dd-dd-dd', cc: 'DK', name_en: 'Denmark', desc_en: '', name_ru: 'Дания', desc_ru: '' },\r\n  { mask: '+1 (767) ddd-dddd', cc: 'DM', name_en: 'Dominica', desc_en: '', name_ru: 'Доминика', desc_ru: '' },\r\n  {\r\n    mask: '+1 (809) ddd-dddd',\r\n    cc: 'DO',\r\n    name_en: 'Dominican Republic',\r\n    desc_en: '',\r\n    name_ru: 'Доминиканская Республика',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (829) ddd-dddd',\r\n    cc: 'DO',\r\n    name_en: 'Dominican Republic',\r\n    desc_en: '',\r\n    name_ru: 'Доминиканская Республика',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (849) ddd-dddd',\r\n    cc: 'DO',\r\n    name_en: 'Dominican Republic',\r\n    desc_en: '',\r\n    name_ru: 'Доминиканская Республика',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+213-dd-ddd-dddd', cc: 'DZ', name_en: 'Algeria', desc_en: '', name_ru: 'Алжир', desc_ru: '' },\r\n  {\r\n    mask: '+593-dd-ddd-dddd',\r\n    cc: 'EC',\r\n    name_en: 'Ecuador ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Эквадор ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+593-d-ddd-dddd', cc: 'EC', name_en: 'Ecuador', desc_en: '', name_ru: 'Эквадор', desc_ru: '' },\r\n  {\r\n    mask: '+372-dddd-dddd',\r\n    cc: 'EE',\r\n    name_en: 'Estonia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Эстония ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+372-ddd-dddd', cc: 'EE', name_en: 'Estonia', desc_en: '', name_ru: 'Эстония', desc_ru: '' },\r\n  { mask: '+20 (ddd) ddd-dddd', cc: 'EG', name_en: 'Egypt', desc_en: '', name_ru: 'Египет', desc_ru: '' },\r\n  { mask: '+291-d-ddd-ddd', cc: 'ER', name_en: 'Eritrea', desc_en: '', name_ru: 'Эритрея', desc_ru: '' },\r\n  { mask: '+34 (ddd) ddd-ddd', cc: 'ES', name_en: 'Spain', desc_en: '', name_ru: 'Испания', desc_ru: '' },\r\n  { mask: '+251-dd-ddd-dddd', cc: 'ET', name_en: 'Ethiopia', desc_en: '', name_ru: 'Эфиопия', desc_ru: '' },\r\n  {\r\n    mask: '+358 (ddd) ddd-dd-dd',\r\n    cc: 'FI',\r\n    name_en: 'Finland',\r\n    desc_en: '',\r\n    name_ru: 'Финляндия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+679-dd-ddddd', cc: 'FJ', name_en: 'Fiji', desc_en: '', name_ru: 'Фиджи', desc_ru: '' },\r\n  {\r\n    mask: '+500-ddddd',\r\n    cc: 'FK',\r\n    name_en: 'Falkland Islands',\r\n    desc_en: '',\r\n    name_ru: 'Фолклендские острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+691-ddd-dddd',\r\n    cc: 'FM',\r\n    name_en: 'F.S. Micronesia',\r\n    desc_en: '',\r\n    name_ru: 'Ф.Ш. Микронезии',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+298-ddd-ddd',\r\n    cc: 'FO',\r\n    name_en: 'Faroe Islands',\r\n    desc_en: '',\r\n    name_ru: 'Фарерские острова',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+262-ddddd-dddd', cc: 'FR', name_en: 'Mayotte', desc_en: '', name_ru: 'Майотта', desc_ru: '' },\r\n  { mask: '+33 (ddd) ddd-ddd', cc: 'FR', name_en: 'France', desc_en: '', name_ru: 'Франция', desc_ru: '' },\r\n  {\r\n    mask: '+508-dd-dddd',\r\n    cc: 'FR',\r\n    name_en: 'St Pierre & Miquelon',\r\n    desc_en: '',\r\n    name_ru: 'Сен-Пьер и Микелон',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+590 (ddd) ddd-ddd',\r\n    cc: 'FR',\r\n    name_en: 'Guadeloupe',\r\n    desc_en: '',\r\n    name_ru: 'Гваделупа',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+241-d-dd-dd-dd', cc: 'GA', name_en: 'Gabon', desc_en: '', name_ru: 'Габон', desc_ru: '' },\r\n  { mask: '+1 (473) ddd-dddd', cc: 'GD', name_en: 'Grenada', desc_en: '', name_ru: 'Гренада', desc_ru: '' },\r\n  {\r\n    mask: '+995 (ddd) ddd-ddd',\r\n    cc: 'GE',\r\n    name_en: 'Rep. of Georgia',\r\n    desc_en: '',\r\n    name_ru: 'Грузия',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+594-ddddd-dddd',\r\n    cc: 'GF',\r\n    name_en: 'Guiana (French) ',\r\n    desc_en: '',\r\n    name_ru: 'Фр. Гвиана',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+233 (ddd) ddd-ddd', cc: 'GH', name_en: 'Ghana', desc_en: '', name_ru: 'Гана', desc_ru: '' },\r\n  { mask: '+350-ddd-ddddd', cc: 'GI', name_en: 'Gibraltar', desc_en: '', name_ru: 'Гибралтар', desc_ru: '' },\r\n  { mask: '+299-dd-dd-dd', cc: 'GL', name_en: 'Greenland', desc_en: '', name_ru: 'Гренландия', desc_ru: '' },\r\n  { mask: '+220 (ddd) dd-dd', cc: 'GM', name_en: 'Gambia', desc_en: '', name_ru: 'Гамбия', desc_ru: '' },\r\n  { mask: '+224-dd-ddd-ddd', cc: 'GN', name_en: 'Guinea', desc_en: '', name_ru: 'Гвинея', desc_ru: '' },\r\n  {\r\n    mask: '+240-dd-ddd-dddd',\r\n    cc: 'GQ',\r\n    name_en: 'Equatorial Guinea',\r\n    desc_en: '',\r\n    name_ru: 'Экваториальная Гвинея',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+30 (ddd) ddd-dddd', cc: 'GR', name_en: 'Greece', desc_en: '', name_ru: 'Греция', desc_ru: '' },\r\n  { mask: '+502-d-ddd-dddd', cc: 'GT', name_en: 'Guatemala', desc_en: '', name_ru: 'Гватемала', desc_ru: '' },\r\n  { mask: '+1 (671) ddd-dddd', cc: 'GU', name_en: 'Guam', desc_en: '', name_ru: 'Гуам', desc_ru: '' },\r\n  {\r\n    mask: '+245-d-dddddd',\r\n    cc: 'GW',\r\n    name_en: 'Guinea-Bissau',\r\n    desc_en: '',\r\n    name_ru: 'Гвинея-Бисау',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+592-ddd-dddd', cc: 'GY', name_en: 'Guyana', desc_en: '', name_ru: 'Гайана', desc_ru: '' },\r\n  { mask: '+852-dddd-dddd', cc: 'HK', name_en: 'Hong Kong', desc_en: '', name_ru: 'Гонконг', desc_ru: '' },\r\n  { mask: '+504-dddd-dddd', cc: 'HN', name_en: 'Honduras', desc_en: '', name_ru: 'Гондурас', desc_ru: '' },\r\n  { mask: '+385-dd-ddd-ddd', cc: 'HR', name_en: 'Croatia', desc_en: '', name_ru: 'Хорватия', desc_ru: '' },\r\n  { mask: '+509-dd-dd-dddd', cc: 'HT', name_en: 'Haiti', desc_en: '', name_ru: 'Гаити', desc_ru: '' },\r\n  { mask: '+36 (ddd) ddd-ddd', cc: 'HU', name_en: 'Hungary', desc_en: '', name_ru: 'Венгрия', desc_ru: '' },\r\n  {\r\n    mask: '+62 (8dd) ddd-dddd',\r\n    cc: 'ID',\r\n    name_en: 'Indonesia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Индонезия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+62-dd-ddd-dd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n  { mask: '+62-dd-ddd-ddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n  { mask: '+62-dd-ddd-dddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n  {\r\n    mask: '+62 (8dd) ddd-ddd',\r\n    cc: 'ID',\r\n    name_en: 'Indonesia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Индонезия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+62 (8dd) ddd-dd-ddd',\r\n    cc: 'ID',\r\n    name_en: 'Indonesia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Индонезия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+62 (8dd) dddd-ddddd',\r\n    cc: 'ID',\r\n    name_en: 'Indonesia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Индонезия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+353 (ddd) ddd-ddd', cc: 'IE', name_en: 'Ireland', desc_en: '', name_ru: 'Ирландия', desc_ru: '' },\r\n  {\r\n    mask: '+972-5d-ddd-dddd',\r\n    cc: 'IL',\r\n    name_en: 'Israel ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Израиль ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+972-d-ddd-dddd', cc: 'IL', name_en: 'Israel', desc_en: '', name_ru: 'Израиль', desc_ru: '' },\r\n  { mask: '+91 (dddd) ddd-ddd', cc: 'IN', name_en: 'India', desc_en: '', name_ru: 'Индия', desc_ru: '' },\r\n  {\r\n    mask: '+246-ddd-dddd',\r\n    cc: 'IO',\r\n    name_en: 'Diego Garcia',\r\n    desc_en: '',\r\n    name_ru: 'Диего-Гарсия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+964 (ddd) ddd-dddd', cc: 'IQ', name_en: 'Iraq', desc_en: '', name_ru: 'Ирак', desc_ru: '' },\r\n  { mask: '+98 (ddd) ddd-dddd', cc: 'IR', name_en: 'Iran', desc_en: '', name_ru: 'Иран', desc_ru: '' },\r\n  { mask: '+354-ddd-dddd', cc: 'IS', name_en: 'Iceland', desc_en: '', name_ru: 'Исландия', desc_ru: '' },\r\n  { mask: '+39 (ddd) dddd-ddd', cc: 'IT', name_en: 'Italy', desc_en: '', name_ru: 'Италия', desc_ru: '' },\r\n  { mask: '+1 (876) ddd-dddd', cc: 'JM', name_en: 'Jamaica', desc_en: '', name_ru: 'Ямайка', desc_ru: '' },\r\n  { mask: '+962-d-dddd-dddd', cc: 'JO', name_en: 'Jordan', desc_en: '', name_ru: 'Иордания', desc_ru: '' },\r\n  {\r\n    mask: '+81-dd-dddd-dddd',\r\n    cc: 'JP',\r\n    name_en: 'Japan ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Япония ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+81 (ddd) ddd-ddd', cc: 'JP', name_en: 'Japan', desc_en: '', name_ru: 'Япония', desc_ru: '' },\r\n  { mask: '+254-ddd-dddddd', cc: 'KE', name_en: 'Kenya', desc_en: '', name_ru: 'Кения', desc_ru: '' },\r\n  {\r\n    mask: '+996 (ddd) ddd-ddd',\r\n    cc: 'KG',\r\n    name_en: 'Kyrgyzstan',\r\n    desc_en: '',\r\n    name_ru: 'Киргизия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+855-dd-ddd-ddd', cc: 'KH', name_en: 'Cambodia', desc_en: '', name_ru: 'Камбоджа', desc_ru: '' },\r\n  { mask: '+686-dd-ddd', cc: 'KI', name_en: 'Kiribati', desc_en: '', name_ru: 'Кирибати', desc_ru: '' },\r\n  { mask: '+269-dd-ddddd', cc: 'KM', name_en: 'Comoros', desc_en: '', name_ru: 'Коморы', desc_ru: '' },\r\n  {\r\n    mask: '+1 (869) ddd-dddd',\r\n    cc: 'KN',\r\n    name_en: 'Saint Kitts & Nevis',\r\n    desc_en: '',\r\n    name_ru: 'Сент-Китс и Невис',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+850-191-ddd-dddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Корейская НДР ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+850-dd-ddd-ddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: '',\r\n    name_ru: 'Корейская НДР',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+850-ddd-dddd-ddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: '',\r\n    name_ru: 'Корейская НДР',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+850-ddd-ddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: '',\r\n    name_ru: 'Корейская НДР',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+850-dddd-dddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: '',\r\n    name_ru: 'Корейская НДР',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+850-dddd-ddddddddddddd',\r\n    cc: 'KP',\r\n    name_en: 'DPR Korea (North) ',\r\n    desc_en: '',\r\n    name_ru: 'Корейская НДР',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+82-dd-ddd-dddd',\r\n    cc: 'KR',\r\n    name_en: 'Korea (South) ',\r\n    desc_en: '',\r\n    name_ru: 'Респ. Корея',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+965-dddd-dddd', cc: 'KW', name_en: 'Kuwait', desc_en: '', name_ru: 'Кувейт', desc_ru: '' },\r\n  {\r\n    mask: '+1 (345) ddd-dddd',\r\n    cc: 'KY',\r\n    name_en: 'Cayman Islands',\r\n    desc_en: '',\r\n    name_ru: 'Каймановы острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+7 (6dd) ddd-dd-dd',\r\n    cc: 'KZ',\r\n    name_en: 'Kazakhstan',\r\n    desc_en: '',\r\n    name_ru: 'Казахстан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+7 (7dd) ddd-dd-dd',\r\n    cc: 'KZ',\r\n    name_en: 'Kazakhstan',\r\n    desc_en: '',\r\n    name_ru: 'Казахстан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+856 (20dd) ddd-ddd',\r\n    cc: 'LA',\r\n    name_en: 'Laos ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Лаос ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+856-dd-ddd-ddd', cc: 'LA', name_en: 'Laos', desc_en: '', name_ru: 'Лаос', desc_ru: '' },\r\n  {\r\n    mask: '+961-dd-ddd-ddd',\r\n    cc: 'LB',\r\n    name_en: 'Lebanon ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Ливан ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+961-d-ddd-ddd', cc: 'LB', name_en: 'Lebanon', desc_en: '', name_ru: 'Ливан', desc_ru: '' },\r\n  {\r\n    mask: '+1 (758) ddd-dddd',\r\n    cc: 'LC',\r\n    name_en: 'Saint Lucia',\r\n    desc_en: '',\r\n    name_ru: 'Сент-Люсия',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+423 (ddd) ddd-dddd',\r\n    cc: 'LI',\r\n    name_en: 'Liechtenstein',\r\n    desc_en: '',\r\n    name_ru: 'Лихтенштейн',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+94-dd-ddd-dddd', cc: 'LK', name_en: 'Sri Lanka', desc_en: '', name_ru: 'Шри-Ланка', desc_ru: '' },\r\n  { mask: '+231-dd-ddd-ddd', cc: 'LR', name_en: 'Liberia', desc_en: '', name_ru: 'Либерия', desc_ru: '' },\r\n  { mask: '+266-d-ddd-dddd', cc: 'LS', name_en: 'Lesotho', desc_en: '', name_ru: 'Лесото', desc_ru: '' },\r\n  { mask: '+370 (ddd) dd-ddd', cc: 'LT', name_en: 'Lithuania', desc_en: '', name_ru: 'Литва', desc_ru: '' },\r\n  {\r\n    mask: '+352 (ddd) ddd-ddd',\r\n    cc: 'LU',\r\n    name_en: 'Luxembourg',\r\n    desc_en: '',\r\n    name_ru: 'Люксембург',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+371-dd-ddd-ddd', cc: 'LV', name_en: 'Latvia', desc_en: '', name_ru: 'Латвия', desc_ru: '' },\r\n  { mask: '+218-dd-ddd-ddd', cc: 'LY', name_en: 'Libya', desc_en: '', name_ru: 'Ливия', desc_ru: '' },\r\n  {\r\n    mask: '+218-21-ddd-dddd',\r\n    cc: 'LY',\r\n    name_en: 'Libya',\r\n    desc_en: 'Tripoli',\r\n    name_ru: 'Ливия',\r\n    desc_ru: 'Триполи'\r\n  },\r\n  { mask: '+212-dd-dddd-ddd', cc: 'MA', name_en: 'Morocco', desc_en: '', name_ru: 'Марокко', desc_ru: '' },\r\n  { mask: '+377 (ddd) ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n  { mask: '+377-dd-ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n  { mask: '+373-dddd-dddd', cc: 'MD', name_en: 'Moldova', desc_en: '', name_ru: 'Молдова', desc_ru: '' },\r\n  {\r\n    mask: '+382-dd-ddd-ddd',\r\n    cc: 'ME',\r\n    name_en: 'Montenegro',\r\n    desc_en: '',\r\n    name_ru: 'Черногория',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+261-dd-dd-ddddd',\r\n    cc: 'MG',\r\n    name_en: 'Madagascar',\r\n    desc_en: '',\r\n    name_ru: 'Мадагаскар',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+692-ddd-dddd',\r\n    cc: 'MH',\r\n    name_en: 'Marshall Islands',\r\n    desc_en: '',\r\n    name_ru: 'Маршалловы Острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+389-dd-ddd-ddd',\r\n    cc: 'MK',\r\n    name_en: 'Republic of Macedonia',\r\n    desc_en: '',\r\n    name_ru: 'Респ. Македония',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+223-dd-dd-dddd', cc: 'ML', name_en: 'Mali', desc_en: '', name_ru: 'Мали', desc_ru: '' },\r\n  {\r\n    mask: '+95-dd-ddd-ddd',\r\n    cc: 'MM',\r\n    name_en: 'Burma (Myanmar) ',\r\n    desc_en: '',\r\n    name_ru: 'Бирма (Мьянма) ',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+95-d-ddd-ddd',\r\n    cc: 'MM',\r\n    name_en: 'Burma (Myanmar) ',\r\n    desc_en: '',\r\n    name_ru: 'Бирма (Мьянма) ',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+95-ddd-ddd',\r\n    cc: 'MM',\r\n    name_en: 'Burma (Myanmar) ',\r\n    desc_en: '',\r\n    name_ru: 'Бирма (Мьянма) ',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+976-dd-dd-dddd', cc: 'MN', name_en: 'Mongolia', desc_en: '', name_ru: 'Монголия', desc_ru: '' },\r\n  { mask: '+853-dddd-dddd', cc: 'MO', name_en: 'Macau', desc_en: '', name_ru: 'Макао', desc_ru: '' },\r\n  {\r\n    mask: '+1 (670) ddd-dddd',\r\n    cc: 'MP',\r\n    name_en: 'Northern Mariana Islands',\r\n    desc_en: '',\r\n    name_ru: 'Северные Марианские острова Сайпан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+596 (ddd) dd-dd-dd',\r\n    cc: 'MQ',\r\n    name_en: 'Martinique',\r\n    desc_en: '',\r\n    name_ru: 'Мартиника',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+222-dd-dd-dddd',\r\n    cc: 'MR',\r\n    name_en: 'Mauritania',\r\n    desc_en: '',\r\n    name_ru: 'Мавритания',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (664) ddd-dddd',\r\n    cc: 'MS',\r\n    name_en: 'Montserrat',\r\n    desc_en: '',\r\n    name_ru: 'Монтсеррат',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+356-dddd-dddd', cc: 'MT', name_en: 'Malta', desc_en: '', name_ru: 'Мальта', desc_ru: '' },\r\n  { mask: '+230-ddd-dddd', cc: 'MU', name_en: 'Mauritius', desc_en: '', name_ru: 'Маврикий', desc_ru: '' },\r\n  {\r\n    mask: '+960-ddd-dddd',\r\n    cc: 'MV',\r\n    name_en: 'Maldives',\r\n    desc_en: '',\r\n    name_ru: 'Мальдивские острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+265-1-ddd-ddd',\r\n    cc: 'MW',\r\n    name_en: 'Malawi',\r\n    desc_en: 'Telecom Ltd',\r\n    name_ru: 'Малави',\r\n    desc_ru: 'Telecom Ltd'\r\n  },\r\n  { mask: '+265-d-dddd-dddd', cc: 'MW', name_en: 'Malawi', desc_en: '', name_ru: 'Малави', desc_ru: '' },\r\n  { mask: '+52 (ddd) ddd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n  { mask: '+52-dd-dd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n  { mask: '+60 (ddd) ddd-dddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n  {\r\n    mask: '+60-ddd-ddd-ddd',\r\n    cc: 'MY',\r\n    name_en: 'Malaysia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Малайзия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+60-dd-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n  { mask: '+60-d-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n  { mask: '+258-dd-ddd-ddd', cc: 'MZ', name_en: 'Mozambique', desc_en: '', name_ru: 'Мозамбик', desc_ru: '' },\r\n  { mask: '+264-dd-ddd-dddd', cc: 'NA', name_en: 'Namibia', desc_en: '', name_ru: 'Намибия', desc_ru: '' },\r\n  {\r\n    mask: '+687-dd-dddd',\r\n    cc: 'NC',\r\n    name_en: 'New Caledonia',\r\n    desc_en: '',\r\n    name_ru: 'Новая Каледония',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+227-dd-dd-dddd', cc: 'NE', name_en: 'Niger', desc_en: '', name_ru: 'Нигер', desc_ru: '' },\r\n  {\r\n    mask: '+672-3dd-ddd',\r\n    cc: 'NF',\r\n    name_en: 'Norfolk Island',\r\n    desc_en: '',\r\n    name_ru: 'Норфолк (остров) ',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+234 (ddd) ddd-dddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n  { mask: '+234-dd-ddd-ddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n  { mask: '+234-dd-ddd-dd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n  {\r\n    mask: '+234 (ddd) ddd-dddd',\r\n    cc: 'NG',\r\n    name_en: 'Nigeria ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Нигерия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+505-dddd-dddd', cc: 'NI', name_en: 'Nicaragua', desc_en: '', name_ru: 'Никарагуа', desc_ru: '' },\r\n  {\r\n    mask: '+31-dd-ddd-dddd',\r\n    cc: 'NL',\r\n    name_en: 'Netherlands',\r\n    desc_en: '',\r\n    name_ru: 'Нидерланды',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+47 (ddd) dd-ddd', cc: 'NO', name_en: 'Norway', desc_en: '', name_ru: 'Норвегия', desc_ru: '' },\r\n  { mask: '+977-dd-ddd-ddd', cc: 'NP', name_en: 'Nepal', desc_en: '', name_ru: 'Непал', desc_ru: '' },\r\n  { mask: '+674-ddd-dddd', cc: 'NR', name_en: 'Nauru', desc_en: '', name_ru: 'Науру', desc_ru: '' },\r\n  { mask: '+683-dddd', cc: 'NU', name_en: 'Niue', desc_en: '', name_ru: 'Ниуэ', desc_ru: '' },\r\n  {\r\n    mask: '+64 (ddd) ddd-ddd',\r\n    cc: 'NZ',\r\n    name_en: 'New Zealand',\r\n    desc_en: '',\r\n    name_ru: 'Новая Зеландия',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+64-dd-ddd-ddd',\r\n    cc: 'NZ',\r\n    name_en: 'New Zealand',\r\n    desc_en: '',\r\n    name_ru: 'Новая Зеландия',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+64 (ddd) ddd-dddd',\r\n    cc: 'NZ',\r\n    name_en: 'New Zealand',\r\n    desc_en: '',\r\n    name_ru: 'Новая Зеландия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+968-dd-ddd-ddd', cc: 'OM', name_en: 'Oman', desc_en: '', name_ru: 'Оман', desc_ru: '' },\r\n  { mask: '+507-ddd-dddd', cc: 'PA', name_en: 'Panama', desc_en: '', name_ru: 'Панама', desc_ru: '' },\r\n  { mask: '+51 (ddd) ddd-ddd', cc: 'PE', name_en: 'Peru', desc_en: '', name_ru: 'Перу', desc_ru: '' },\r\n  {\r\n    mask: '+689-dd-dd-dd',\r\n    cc: 'PF',\r\n    name_en: 'French Polynesia',\r\n    desc_en: '',\r\n    name_ru: 'Французская Полинезия (Таити) ',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+675 (ddd) dd-ddd',\r\n    cc: 'PG',\r\n    name_en: 'Papua New Guinea',\r\n    desc_en: '',\r\n    name_ru: 'Папуа-Новая Гвинея',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+63 (ddd) ddd-dddd',\r\n    cc: 'PH',\r\n    name_en: 'Philippines',\r\n    desc_en: '',\r\n    name_ru: 'Филиппины',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+92 (ddd) ddd-dddd', cc: 'PK', name_en: 'Pakistan', desc_en: '', name_ru: 'Пакистан', desc_ru: '' },\r\n  { mask: '+48 (ddd) ddd-ddd', cc: 'PL', name_en: 'Poland', desc_en: '', name_ru: 'Польша', desc_ru: '' },\r\n  {\r\n    mask: '+970-dd-ddd-dddd',\r\n    cc: 'PS',\r\n    name_en: 'Palestine',\r\n    desc_en: '',\r\n    name_ru: 'Палестина',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+351-dd-ddd-dddd',\r\n    cc: 'PT',\r\n    name_en: 'Portugal',\r\n    desc_en: '',\r\n    name_ru: 'Португалия',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+680-ddd-dddd', cc: 'PW', name_en: 'Palau', desc_en: '', name_ru: 'Палау', desc_ru: '' },\r\n  { mask: '+595 (ddd) ddd-ddd', cc: 'PY', name_en: 'Paraguay', desc_en: '', name_ru: 'Парагвай', desc_ru: '' },\r\n  { mask: '+974-dddd-dddd', cc: 'QA', name_en: 'Qatar', desc_en: '', name_ru: 'Катар', desc_ru: '' },\r\n  { mask: '+262-ddddd-dddd', cc: 'RE', name_en: 'Reunion', desc_en: '', name_ru: 'Реюньон', desc_ru: '' },\r\n  { mask: '+40-dd-ddd-dddd', cc: 'RO', name_en: 'Romania', desc_en: '', name_ru: 'Румыния', desc_ru: '' },\r\n  { mask: '+381-dd-ddd-dddd', cc: 'RS', name_en: 'Serbia', desc_en: '', name_ru: 'Сербия', desc_ru: '' },\r\n  { mask: '+7 (ddd) ddd-dd-dd', cc: 'RU', name_en: 'Russia', desc_en: '', name_ru: 'Россия', desc_ru: '' },\r\n  { mask: '+250 (ddd) ddd-ddd', cc: 'RW', name_en: 'Rwanda', desc_en: '', name_ru: 'Руанда', desc_ru: '' },\r\n  {\r\n    mask: '+966-5-dddd-dddd',\r\n    cc: 'SA',\r\n    name_en: 'Saudi Arabia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Саудовская Аравия ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+966-d-ddd-dddd',\r\n    cc: 'SA',\r\n    name_en: 'Saudi Arabia',\r\n    desc_en: '',\r\n    name_ru: 'Саудовская Аравия',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+677-ddd-dddd',\r\n    cc: 'SB',\r\n    name_en: 'Solomon Islands ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Соломоновы Острова ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+677-ddddd',\r\n    cc: 'SB',\r\n    name_en: 'Solomon Islands',\r\n    desc_en: '',\r\n    name_ru: 'Соломоновы Острова',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+248-d-ddd-ddd', cc: 'SC', name_en: 'Seychelles', desc_en: '', name_ru: 'Сейшелы', desc_ru: '' },\r\n  { mask: '+249-dd-ddd-dddd', cc: 'SD', name_en: 'Sudan', desc_en: '', name_ru: 'Судан', desc_ru: '' },\r\n  { mask: '+46-dd-ddd-dddd', cc: 'SE', name_en: 'Sweden', desc_en: '', name_ru: 'Швеция', desc_ru: '' },\r\n  { mask: '+65-dddd-dddd', cc: 'SG', name_en: 'Singapore', desc_en: '', name_ru: 'Сингапур', desc_ru: '' },\r\n  {\r\n    mask: '+290-dddd',\r\n    cc: 'SH',\r\n    name_en: 'Saint Helena',\r\n    desc_en: '',\r\n    name_ru: 'Остров Святой Елены',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+290-dddd',\r\n    cc: 'SH',\r\n    name_en: 'Tristan da Cunha',\r\n    desc_en: '',\r\n    name_ru: 'Тристан-да-Кунья',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+386-dd-ddd-ddd', cc: 'SI', name_en: 'Slovenia', desc_en: '', name_ru: 'Словения', desc_ru: '' },\r\n  { mask: '+421 (ddd) ddd-ddd', cc: 'SK', name_en: 'Slovakia', desc_en: '', name_ru: 'Словакия', desc_ru: '' },\r\n  {\r\n    mask: '+232-dd-dddddd',\r\n    cc: 'SL',\r\n    name_en: 'Sierra Leone',\r\n    desc_en: '',\r\n    name_ru: 'Сьерра-Леоне',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+378-dddd-dddddd',\r\n    cc: 'SM',\r\n    name_en: 'San Marino',\r\n    desc_en: '',\r\n    name_ru: 'Сан-Марино',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+221-dd-ddd-dddd', cc: 'SN', name_en: 'Senegal', desc_en: '', name_ru: 'Сенегал', desc_ru: '' },\r\n  { mask: '+252-dd-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n  { mask: '+252-d-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n  {\r\n    mask: '+252-d-ddd-ddd',\r\n    cc: 'SO',\r\n    name_en: 'Somalia ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Сомали ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  {\r\n    mask: '+597-ddd-dddd',\r\n    cc: 'SR',\r\n    name_en: 'Suriname ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Суринам ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+597-ddd-ddd', cc: 'SR', name_en: 'Suriname', desc_en: '', name_ru: 'Суринам', desc_ru: '' },\r\n  {\r\n    mask: '+211-dd-ddd-dddd',\r\n    cc: 'SS',\r\n    name_en: 'South Sudan',\r\n    desc_en: '',\r\n    name_ru: 'Южный Судан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+239-dd-ddddd',\r\n    cc: 'ST',\r\n    name_en: 'Sao Tome and Principe',\r\n    desc_en: '',\r\n    name_ru: 'Сан-Томе и Принсипи',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+503-dd-dd-dddd',\r\n    cc: 'SV',\r\n    name_en: 'El Salvador',\r\n    desc_en: '',\r\n    name_ru: 'Сальвадор',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (721) ddd-dddd',\r\n    cc: 'SX',\r\n    name_en: 'Sint Maarten',\r\n    desc_en: '',\r\n    name_ru: 'Синт-Маартен',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+963-dd-dddd-ddd',\r\n    cc: 'SY',\r\n    name_en: 'Syrian Arab Republic',\r\n    desc_en: '',\r\n    name_ru: 'Сирийская арабская республика',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+268-dd-dd-dddd', cc: 'SZ', name_en: 'Swaziland', desc_en: '', name_ru: 'Свазиленд', desc_ru: '' },\r\n  {\r\n    mask: '+1 (649) ddd-dddd',\r\n    cc: 'TC',\r\n    name_en: 'Turks & Caicos',\r\n    desc_en: '',\r\n    name_ru: 'Тёркс и Кайкос',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+235-dd-dd-dd-dd', cc: 'TD', name_en: 'Chad', desc_en: '', name_ru: 'Чад', desc_ru: '' },\r\n  { mask: '+228-dd-ddd-ddd', cc: 'TG', name_en: 'Togo', desc_en: '', name_ru: 'Того', desc_ru: '' },\r\n  {\r\n    mask: '+66-dd-ddd-dddd',\r\n    cc: 'TH',\r\n    name_en: 'Thailand ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Таиланд ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+66-dd-ddd-ddd', cc: 'TH', name_en: 'Thailand', desc_en: '', name_ru: 'Таиланд', desc_ru: '' },\r\n  {\r\n    mask: '+992-dd-ddd-dddd',\r\n    cc: 'TJ',\r\n    name_en: 'Tajikistan',\r\n    desc_en: '',\r\n    name_ru: 'Таджикистан',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+690-dddd', cc: 'TK', name_en: 'Tokelau', desc_en: '', name_ru: 'Токелау', desc_ru: '' },\r\n  {\r\n    mask: '+670-ddd-dddd',\r\n    cc: 'TL',\r\n    name_en: 'East Timor',\r\n    desc_en: '',\r\n    name_ru: 'Восточный Тимор',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+670-77d-ddddd',\r\n    cc: 'TL',\r\n    name_en: 'East Timor',\r\n    desc_en: 'Timor Telecom',\r\n    name_ru: 'Восточный Тимор',\r\n    desc_ru: 'Timor Telecom'\r\n  },\r\n  {\r\n    mask: '+670-78d-ddddd',\r\n    cc: 'TL',\r\n    name_en: 'East Timor',\r\n    desc_en: 'Timor Telecom',\r\n    name_ru: 'Восточный Тимор',\r\n    desc_ru: 'Timor Telecom'\r\n  },\r\n  {\r\n    mask: '+993-d-ddd-dddd',\r\n    cc: 'TM',\r\n    name_en: 'Turkmenistan',\r\n    desc_en: '',\r\n    name_ru: 'Туркменистан',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+216-dd-ddd-ddd', cc: 'TN', name_en: 'Tunisia', desc_en: '', name_ru: 'Тунис', desc_ru: '' },\r\n  { mask: '+676-ddddd', cc: 'TO', name_en: 'Tonga', desc_en: '', name_ru: 'Тонга', desc_ru: '' },\r\n  { mask: '+90 (ddd) ddd-dddd', cc: 'TR', name_en: 'Turkey', desc_en: '', name_ru: 'Турция', desc_ru: '' },\r\n  {\r\n    mask: '+1 (868) ddd-dddd',\r\n    cc: 'TT',\r\n    name_en: 'Trinidad & Tobago',\r\n    desc_en: '',\r\n    name_ru: 'Тринидад и Тобаго',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+688-90dddd',\r\n    cc: 'TV',\r\n    name_en: 'Tuvalu ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Тувалу ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+688-2dddd', cc: 'TV', name_en: 'Tuvalu', desc_en: '', name_ru: 'Тувалу', desc_ru: '' },\r\n  { mask: '+886-d-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n  { mask: '+886-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n  { mask: '+255-dd-ddd-dddd', cc: 'TZ', name_en: 'Tanzania', desc_en: '', name_ru: 'Танзания', desc_ru: '' },\r\n  { mask: '+380 (dd) ddd-dd-dd', cc: 'UA', name_en: 'Ukraine', desc_en: '', name_ru: 'Украина', desc_ru: '' },\r\n  { mask: '+256 (ddd) ddd-ddd', cc: 'UG', name_en: 'Uganda', desc_en: '', name_ru: 'Уганда', desc_ru: '' },\r\n  {\r\n    mask: '+44-dd-dddd-dddd',\r\n    cc: 'UK',\r\n    name_en: 'United Kingdom',\r\n    desc_en: '',\r\n    name_ru: 'Великобритания',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+598-d-ddd-dd-dd', cc: 'UY', name_en: 'Uruguay', desc_en: '', name_ru: 'Уругвай', desc_ru: '' },\r\n  {\r\n    mask: '+998-dd-ddd-dddd',\r\n    cc: 'UZ',\r\n    name_en: 'Uzbekistan',\r\n    desc_en: '',\r\n    name_ru: 'Узбекистан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+39-6-698-ddddd',\r\n    cc: 'VA',\r\n    name_en: 'Vatican City',\r\n    desc_en: '',\r\n    name_ru: 'Ватикан',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (784) ddd-dddd',\r\n    cc: 'VC',\r\n    name_en: 'Saint Vincent & the Grenadines',\r\n    desc_en: '',\r\n    name_ru: 'Сент-Винсент и Гренадины',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+58 (ddd) ddd-dddd',\r\n    cc: 'VE',\r\n    name_en: 'Venezuela',\r\n    desc_en: '',\r\n    name_ru: 'Венесуэла',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (284) ddd-dddd',\r\n    cc: 'VG',\r\n    name_en: 'British Virgin Islands',\r\n    desc_en: '',\r\n    name_ru: 'Британские Виргинские острова',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (340) ddd-dddd',\r\n    cc: 'VI',\r\n    name_en: 'US Virgin Islands',\r\n    desc_en: '',\r\n    name_ru: 'Американские Виргинские острова',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+84-dd-dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n  { mask: '+84 (ddd) dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n  {\r\n    mask: '+678-dd-ddddd',\r\n    cc: 'VU',\r\n    name_en: 'Vanuatu ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Вануату ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+678-ddddd', cc: 'VU', name_en: 'Vanuatu', desc_en: '', name_ru: 'Вануату', desc_ru: '' },\r\n  {\r\n    mask: '+681-dd-dddd',\r\n    cc: 'WF',\r\n    name_en: 'Wallis and Futuna',\r\n    desc_en: '',\r\n    name_ru: 'Уоллис и Футуна',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+685-dd-dddd', cc: 'WS', name_en: 'Samoa', desc_en: '', name_ru: 'Самоа', desc_ru: '' },\r\n  {\r\n    mask: '+967-ddd-ddd-ddd',\r\n    cc: 'YE',\r\n    name_en: 'Yemen ',\r\n    desc_en: 'mobile',\r\n    name_ru: 'Йемен ',\r\n    desc_ru: 'мобильные'\r\n  },\r\n  { mask: '+967-d-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n  { mask: '+967-dd-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n  {\r\n    mask: '+27-dd-ddd-dddd',\r\n    cc: 'ZA',\r\n    name_en: 'South Africa',\r\n    desc_en: '',\r\n    name_ru: 'Южно-Африканская Респ.',\r\n    desc_ru: ''\r\n  },\r\n  { mask: '+260-dd-ddd-dddd', cc: 'ZM', name_en: 'Zambia', desc_en: '', name_ru: 'Замбия', desc_ru: '' },\r\n  { mask: '+263-d-dddddd', cc: 'ZW', name_en: 'Zimbabwe', desc_en: '', name_ru: 'Зимбабве', desc_ru: '' },\r\n  {\r\n    mask: '+1 (ddd) ddd-dddd',\r\n    cc: 'CA',\r\n    name_en: 'Canada',\r\n    desc_en: '',\r\n    name_ru: 'Канада',\r\n    desc_ru: ''\r\n  },\r\n  {\r\n    mask: '+1 (ddd) ddd-dddd',\r\n    cc: 'US',\r\n    name_en: 'USA',\r\n    desc_en: '',\r\n    name_ru: 'США',\r\n    desc_ru: ''\r\n  }\r\n]\r\n  .map(m => m.mask)\r\n  .sort((a, b) => {\r\n    a = removeSpecSymbols(a);\r\n    b = removeSpecSymbols(b)\r\n    return a > b ? 1 : (a === b ? 0 : -1);\r\n  });\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { PaymentField } from '../pages/components/constructor-form/models';\r\nimport { PHONE_MASKS, removeSpecSymbols } from './phone-codes';\r\n\r\nexport enum MASKS {\r\n  CPF = 'CPF',\r\n  CPF_CNPJ = 'CPF_CNPJ',\r\n  PHONE = 'PHONE',\r\n  CI = 'CI',\r\n  CURP = 'CURP',\r\n  CUIT_DNI = 'CUIT_DNI',\r\n  CC = 'CC'\r\n}\r\n\r\nexport const INITIAL_PHONE_MASK = '+D';\r\nexport const PHONE_MASK_PATTERNS = {\r\n  'D': {\r\n    pattern: /\\d/\r\n  },\r\n  '9': {\r\n    pattern: /\\d/,\r\n    optional: true\r\n  }\r\n};\r\n\r\n\r\n@Injectable()\r\nexport class MaskResolver {\r\n  private maskService = inject(NgxMaskService);\r\n\r\n  constructor() {\r\n  }\r\n\r\n  getMaskPattern(mask: string, value?: string) {\r\n    switch (mask) {\r\n      case MASKS.PHONE:\r\n        return (...args) => this.calcMask(...args);\r\n      case MASKS.CPF_CNPJ:\r\n        if (value?.length > 11) {\r\n          return '00.000.000/0000-00';\r\n        }\r\n        return '000.000.000-009';\r\n      case MASKS.CI:\r\n        return '0000000000';\r\n      case MASKS.CURP:\r\n        return 'SSSS000000SSSSSS00';\r\n      case MASKS.CUIT_DNI:\r\n        return '00-00000000-0||00-000-000';\r\n      case MASKS.CC:\r\n        return '0000000000000000';\r\n      case MASKS.CPF:\r\n        return '000.000.000-00';\r\n      default:\r\n        return mask;\r\n    }\r\n  }\r\n\r\n  getMaskByValue(mask: string, value?: string) {\r\n    const maskValue = this.getMaskPattern(mask, value);\r\n    if (typeof maskValue === 'function') {\r\n      return maskValue.call(null, value) || null;\r\n    } else {\r\n      return maskValue || null;\r\n    }\r\n  }\r\n\r\n  getPatterns(config: PaymentField) {\r\n    if (config?.mask === MASKS.PHONE) {\r\n      return PHONE_MASK_PATTERNS;\r\n    }\r\n    if (config?.maskPatterns) {\r\n      return config?.maskPatterns;\r\n    }\r\n    return this.maskService.patterns;\r\n  }\r\n\r\n  getSpecialCharacters(config: PaymentField) {\r\n    return config?.specialCharacters || this.maskService.specialCharacters;\r\n  }\r\n\r\n\r\n  private calcMask(value?: string) {\r\n    let mask = INITIAL_PHONE_MASK\r\n    if (value) {\r\n      const valueArray = Array.from(removeSpecSymbols(value));\r\n      let masks: string[] = PHONE_MASKS;\r\n      for (let sIndex = 0; sIndex < valueArray.length; sIndex++) {\r\n        const s = valueArray[sIndex];\r\n        const filteredMasks = masks.filter((m) => {\r\n          const maskValue = removeSpecSymbols(m);\r\n          const maskSymbol = maskValue[sIndex];\r\n          if (/\\d/.test(maskSymbol)) {\r\n            return maskSymbol === s;\r\n          }\r\n          return !!maskSymbol;\r\n        });\r\n        if (filteredMasks.length > 0) {\r\n          masks = filteredMasks;\r\n        } else {\r\n          break;\r\n        }\r\n      }\r\n      // Candidate of mask\r\n      mask = masks[0];\r\n\r\n      // Calculation of the additional numbers\r\n      let masksNormalized: string[] = masks.map(m => removeSpecSymbols(m));\r\n      let maskNormalized = removeSpecSymbols(mask);\r\n      const optionalSymbols = masksNormalized.filter(s => s.startsWith(maskNormalized) && s.length > maskNormalized.length).length;\r\n      if (optionalSymbols) {\r\n        mask += Array(optionalSymbols).fill('[d]').join('');\r\n      }\r\n    }\r\n    mask = mask.replace(/[d\\d]/g, 'D').replace(/\\[D]/g, '9');\r\n    return mask;\r\n  }\r\n}\r\n","import { inject, Injectable, DOCUMENT } from '@angular/core';\r\n\r\n\r\nfunction sortByTabIndex(list: HTMLElement[]): HTMLElement[] {\r\n    return list.sort((a, b) => {\r\n        const index1 = +a.getAttribute('tabindex');\r\n        const index2 = +b.getAttribute('tabindex');\r\n        if (index1<index2) {\r\n            return -1;\r\n        }\r\n        if (index1>index2) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    });\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class FocusHandler {\r\n    static document: Document;\r\n    private static get focusableList(): HTMLElement[] {\r\n        return sortByTabIndex(\r\n            Array.from(document.querySelectorAll<HTMLElement>('[tabindex]'))\r\n        );\r\n    }\r\n    private static get focusableEnabledList(): HTMLElement[] {\r\n        return sortByTabIndex(\r\n            Array.from(document.querySelectorAll<HTMLElement>('[tabindex]:not([class*=\"--disabled\"])'))\r\n        );\r\n    }\r\n    static previous(ev?: Event) {\r\n        const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n        const index = focusedElement?.getAttribute('tabindex');\r\n        const focusableList = this.focusableList;\r\n        if (index === null) {\r\n            focusableList.pop()?.focus();\r\n            ev?.preventDefault();\r\n            return;\r\n        }\r\n        for (let i=0; i < focusableList.length; i++) {\r\n            const element = focusableList[i];\r\n            if (element === focusedElement) {\r\n                const prev = focusableList[i - 1];\r\n                if (prev) {\r\n                    ev?.preventDefault();\r\n                    prev.focus();\r\n                }\r\n                return;\r\n            }\r\n        }\r\n    }\r\n    static next(ev?: Event) {\r\n        const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n        const index = focusedElement?.getAttribute('tabindex');\r\n        const focusableList = this.focusableList;\r\n        if (index === null) {\r\n            focusableList.shift()?.focus();\r\n            ev?.preventDefault();\r\n            return;\r\n        }\r\n        for (let i=0; i < focusableList.length; i++) {\r\n            const element = focusableList[i];\r\n            if (element === focusedElement) {\r\n                const next = focusableList[i + 1];\r\n                if (next) {\r\n                    ev?.preventDefault();\r\n                    next.focus();\r\n                }\r\n                return;\r\n            }\r\n        }\r\n    }\r\n    static previousEnabled(ev?: Event) {\r\n        this.previous.call({\r\n            focusableList: this.focusableEnabledList\r\n        }, ev);\r\n    }\r\n    static nextEnabled(ev?: Event) {\r\n        this.next.call({\r\n            focusableList: this.focusableEnabledList\r\n        }, ev);\r\n    }\r\n\r\n    constructor() {\r\n        FocusHandler.document = inject(DOCUMENT);\r\n    }\r\n}\r\n","export const isObjectTheSame = (object1, object2) => {\r\n    if (object1 === object2) {\r\n        return true;\r\n    }\r\n    if (!object1 && object2 || object1 && !object2) {\r\n        return false;\r\n    }\r\n    const objKeys1 = Object.keys(object1);\r\n    const objKeys2 = Object.keys(object2);\r\n\r\n    if (objKeys1.length !== objKeys2.length) return false;\r\n\r\n    for (var key of objKeys1) {\r\n        const value1 = object1[key];\r\n        const value2 = object2[key];\r\n\r\n        const isObjects = isObject(value1) && isObject(value2);\r\n\r\n        if ((isObjects && !isObjectTheSame(value1, value2)) ||\r\n            (!isObjects && value1 !== value2)\r\n        ) {\r\n            return false;\r\n        }\r\n    }\r\n    return true;\r\n};\r\n\r\nexport const isObject = (object) => {\r\n    return object != null && typeof object === \"object\";\r\n};\r\n","export const warningConsole = () => {\r\n    console.log(\"%cОпасно! WARNING!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:50px;font-weight:bold;text-transform:uppercase;color:#FF3B34;-webkit-text-stroke:2px #000;\");\r\n    console.log(\"\\n\");\r\n    console.log(\"%cЭта часть окна предназначена для разработчиков. Пожалуйста не вставляйте сюда ничего! Особенно текст который \\\"якобы\\\" поможет увеличить баланс вашего кошелька! Вас обманут!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n    console.log(\"%cThis part of the window is for developers. Please don't put anything in here! Especially the text that \\\"allegedly\\\" will help to increase the balance of your wallet! You will be deceived!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n    console.log(\"\\n\");\r\n}","export enum PaymentFieldTypeEnum {\r\n    Amount = 'amount',\r\n    Email = 'email',\r\n    Text = 'text',\r\n    Number = 'number',\r\n    Date = 'date',\r\n    Select = 'select',\r\n    Iframe = 'iframe'\r\n}\r\n","export enum CollectionType {\r\n    Banks = 1,\r\n    Documents = 2\r\n}\r\n","import { I18N_KEY } from '../../../../i18n';\r\nimport { MASKS } from '../../../../helpers';\r\nimport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nimport { PaymentField } from './payment-field';\r\nimport momentjs from 'moment-timezone';\r\nimport { CollectionType } from './collection-type.enum';\r\n\r\nconst PHONE_FIELD = {\r\n    name: 'add_phone_number',\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE,\r\n    label: I18N_KEY.CONSTRUCTOR_LABEL_PHONE,\r\n    mask: MASKS.PHONE,\r\n    maskValidation: true,\r\n    placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE,\r\n    require: true,\r\n    type: PaymentFieldTypeEnum.Text\r\n};\r\n\r\nconst EMAIL_FIELD = {\r\n    name: 'add_email',\r\n    label: I18N_KEY.CONSTRUCTOR_LABEL_EMAIL,\r\n    placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL,\r\n    readonly: false,\r\n    require: true,\r\n    type: PaymentFieldTypeEnum.Email\r\n};\r\n\r\nconst castWallet = (config) => {\r\n    return {\r\n        ...config,\r\n        ...{\r\n            name: 'wallet',\r\n            wallet: true\r\n        }\r\n    }\r\n}\r\n\r\nexport const FIELD_TEMPLATE: {[key: string]: PaymentField} = {\r\n    AMOUNT: {\r\n        name: 'amount',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT,\r\n        pattern: /^\\d+\\.?\\d{0,2}/,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT,\r\n        mask: 'separator.2',\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Amount\r\n    },\r\n    CARD_TERMINAL: {\r\n      name: 'card_terminal',\r\n        type: PaymentFieldTypeEnum.Iframe\r\n    },\r\n    EMAIL: EMAIL_FIELD,\r\n    EMAIL_WALLET: castWallet(EMAIL_FIELD),\r\n    FIRST_NAME: {\r\n        name: 'add_first_name',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME,\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Text\r\n    },\r\n    SECOND_NAME: {\r\n        name: 'add_last_name',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME,\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Text\r\n    },\r\n    DATE_OF_BIRTH: {\r\n        name: 'add_day_of_birth',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH,\r\n        placeholder: '1993-04-20',\r\n        require: true,\r\n        mask: '0000-00-00',\r\n        type: PaymentFieldTypeEnum.Date,\r\n        options: {\r\n            startCalendarDate: momentjs().subtract(18, 'years')\r\n        }\r\n    },\r\n    ZIP: {\r\n        name: 'add_zip',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_ZIP,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP,\r\n        pattern: /\\d{6}/,\r\n        mask: '000000',\r\n        maskValidation: true,\r\n        readonly: false,\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Text\r\n    },\r\n    PHONE: PHONE_FIELD,\r\n    PHONE_WALLET: castWallet(PHONE_FIELD),\r\n    DOCUMENT_TYPE: {\r\n        name: 'add_document_type',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT,\r\n        readonly: false,\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Select,\r\n        options: {\r\n            collection: CollectionType.Documents\r\n        }\r\n    },\r\n    BANK_TYPE:  {\r\n        name: 'add_bank_id',\r\n        label: I18N_KEY.CONSTRUCTOR_LABEL_BANK,\r\n        placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK,\r\n        readonly: false,\r\n        require: true,\r\n        type: PaymentFieldTypeEnum.Select,\r\n        options: {\r\n            collection: CollectionType.Banks\r\n        }\r\n    }\r\n}\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const advcash: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Advcash',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","export enum TerminalStep {\r\n    Prepare,\r\n    Confirmation,\r\n    Status\r\n}\r\n","export { PaymentField } from './payment-field';\r\nexport { PaymentFieldOptions, PaymentFieldOptionsItem } from './payment-field-options';\r\nexport { PaymentFields } from './payment-fields';\r\nexport { TerminalStep } from './terminal-step.enum';\r\nexport { CollectionType } from './collection-type.enum';\r\nexport { MASKS } from './../../../../helpers/mask-resolver';\r\nexport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nexport * from './field-template';\r\nexport const FORMAT_DATE = 'YYYY-MM-DD';\r\nexport * from './config/all';\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const alfabank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'AlfaClick',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Alipay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay_plus: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Alipay Plus',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const applepay: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY,\r\n    title: 'ApplePay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const argentina_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Argentina',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const atf24: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'ATF24',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const baloto: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Baloto',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CC',\r\n            mask: MASKS.CC,\r\n            placeholder: '0000000000000000',\r\n            require: true,\r\n            maskValidation: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const beeline: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Beeline',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const blik: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Blik',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const boleto: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n    title: 'Boleto',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF/CNPJ',\r\n            mask: MASKS.CPF_CNPJ,\r\n            placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n            require: true,\r\n            maskValidation: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        FIELD_TEMPLATE.ZIP\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const brazil_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Brazil',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\nexport const card: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Bank cards',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.CARD_TERMINAL,\r\n        FIELD_TEMPLATE.EMAIL,\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const carga_virtual: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Carga virtual',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cash: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Оплата наличными',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const cashtocode: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE,\r\n    title: 'CashToCode',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const codi: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Codi',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const comepay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Comepay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'China Union Pay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'China Union Pay Bank',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_p2p: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'China Union Pay P2P',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const deposit_express: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Deposit Express',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF',\r\n            mask: MASKS.CPF,\r\n            placeholder: '000.000.000-00',\r\n            maskValidation: true,\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        FIELD_TEMPLATE.BANK_TYPE,\r\n        FIELD_TEMPLATE.PHONE\r\n    ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\n\r\nexport const direct_banking_europe: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Direct Banking Europe',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const dotpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Dotpay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ecopayz: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Ecopayz',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const eps: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Eps',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const giropay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Giropay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const gmmoney: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'GM Money',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const internal_gamemoney: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'GM Wallet',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const googlepay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'GooglePay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ideal: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Ideal',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        FIELD_TEMPLATE.BANK_TYPE\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Indonesia',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank_transfer: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Bank transfers in Indonesia',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Jeton Wallet',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton_voucher: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Jeton Voucher',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const kassa24: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Kassa24',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const link: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Link',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const local_card_brazil: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Local Card Brazil',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF',\r\n            mask: MASKS.CPF,\r\n            maskValidation: true,\r\n            placeholder: '000.000.000-00',\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const local_card_mexico: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Local Card Mexico',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const loterica: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Loterica',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF/CNPJ',\r\n            mask: MASKS.CPF_CNPJ,\r\n            placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n            require: true,\r\n            maskValidation: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        FIELD_TEMPLATE.ZIP\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const malaysia_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Malaysia',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const megafon: PaymentFields = {\r\n    confirmation: I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT,\r\n    title: 'Megafon',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mexico_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Mexico',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const momopay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'MoMo Wallet',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const moneta: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Moneta',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mts: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'MTS',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const multibanco: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Multibanco',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neosurf: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Neosurf',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neteller: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Neteller',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const nupay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'NuPay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF',\r\n            mask: MASKS.CPF,\r\n            maskValidation: true,\r\n            placeholder: '000.000.000-00',\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        FIELD_TEMPLATE.PHONE,\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const onecard: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Onecard',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const oxxo: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n    title: 'Oxxo',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CURP',\r\n            mask: MASKS.CURP,\r\n            placeholder: 'ZAZD000000MBSYQN00',\r\n            uppercase: true,\r\n            maskValidation: true,\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagoefectivo: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Pagoefectivo',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        FIELD_TEMPLATE.DOCUMENT_TYPE,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT,\r\n            placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT,\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        FIELD_TEMPLATE.PHONE\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const pagoexpress: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Pago Express',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CI',\r\n            placeholder: '0000000000',\r\n            mask: MASKS.CI,\r\n            maskValidation: true,\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagofacil: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n    title: 'Pagofacil',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paypal: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Paypal',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paysafecard: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Paysafecard',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const picpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'PicPay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF',\r\n            mask: MASKS.CPF,\r\n            maskValidation: true,\r\n            placeholder: '000.000.000-00',\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pix: PaymentFields = {\r\n    title: 'Pix',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        FIELD_TEMPLATE.DATE_OF_BIRTH,\r\n        {\r\n            name: 'wallet',\r\n            label: 'PixKey',\r\n            placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET,\r\n            readonly: false,\r\n            require: true,\r\n            wallet: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        },\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'CPF',\r\n            mask: MASKS.CPF,\r\n            maskValidation: true,\r\n            placeholder: '000.000.000-00',\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const philippines_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Philippines',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promptpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Promptpay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promsviaz: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'PSB',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const przelewy24: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Przelewy24',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const qiwi: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Qiwi',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const rapid: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Rapid transfer',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const rapipago: PaymentFields = {\r\n    description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n    title: 'Rapipago',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME,\r\n        {\r\n            name: 'add_identify_number',\r\n            label: 'DNI/CUIT',\r\n            mask: MASKS.CUIT_DNI,\r\n            maskValidation: true,\r\n            placeholder: '00-00000000-0 or 00-000-000',\r\n            require: true,\r\n            type: PaymentFieldTypeEnum.Text\r\n        }\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const redpagos: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Alipay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sberbank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'SberPay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sbp: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Система быстрых платежей',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sepa: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'SEPA',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const servipag: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Servipag',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinify: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Skinify',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Skinpay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinsback: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Skinsback',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skrill: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Skrill',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sofort: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Sofort',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const spei: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Spei',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const store_mexico: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Convenience store',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tele2: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Tele2',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Thailand',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank_transfer: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Bank transfers in Thailand',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tinkoff: PaymentFields = {\r\n    title: 'Tinkoff',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const trustly: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Trustly',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Banks of Vietnam',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_qr: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Vietnamese QR banking',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_transfer: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Bank transfers in Vietnam',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const webpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Webpay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wechat: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'WeChat',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wme: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Webmoney (WME)',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmr: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Webmoney (WMR)',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmu: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Webmoney (WMU)',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmz: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Webmoney (WMZ)',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const zen_wallet: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Zen wallet',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const yandex: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'YooMoney',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wallester: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Wallester',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const bitcoin: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Bitcoin',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tron: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Tron (TRX)',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ethereum: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Ethereum',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Tether(USDT) erc20',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether_trc20: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Tether(USDT) trc20',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mercado_pago: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Mercado Pago',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.EMAIL,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mirpay: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Mir Pay',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT\r\n    ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mbway: PaymentFields = {\r\n    confirmation: '',\r\n    title: 'Mbway',\r\n    fields: [\r\n        FIELD_TEMPLATE.AMOUNT,\r\n        FIELD_TEMPLATE.PHONE_WALLET,\r\n        FIELD_TEMPLATE.FIRST_NAME,\r\n        FIELD_TEMPLATE.SECOND_NAME\r\n    ]\r\n};\r\n","import { advcash } from './advcash';\r\nimport { alfabank } from './alfabank';\r\nimport { alipay } from './alipay';\r\nimport { alipay_plus } from './alipay_plus';\r\nimport { applepay } from './applepay';\r\nimport { argentina_bank } from './argentina_bank';\r\nimport { atf24 } from './atf24';\r\nimport { baloto } from './baloto';\r\nimport { beeline } from './beeline';\r\nimport { blik } from './blik';\r\nimport { boleto } from './boleto';\r\nimport { brazil_bank } from './brazil_bank';\r\nimport { card } from './card';\r\nimport { carga_virtual } from './carga_virtual';\r\nimport { cash } from './cash';\r\nimport { cashtocode } from './cashtocode';\r\nimport { codi } from './codi';\r\nimport { comepay } from './comepay';\r\nimport { cup } from './cup';\r\nimport { cup_bank } from './cup_bank';\r\nimport { cup_p2p } from './cup_p2p';\r\nimport { deposit_express } from './deposit_express';\r\nimport { direct_banking_europe } from './direct_banking_europe';\r\nimport { dotpay } from './dotpay';\r\nimport { ecopayz } from './ecopayz';\r\nimport { eps } from './eps';\r\nimport { giropay } from './giropay';\r\nimport { gmmoney } from './gmmoney';\r\nimport { internal_gamemoney } from './internal_gamemoney';\r\nimport { googlepay } from './googlepay';\r\nimport { ideal } from './ideal';\r\nimport { indonesia_bank } from './indonesia_bank';\r\nimport { indonesia_bank_transfer } from './indonesia_bank_transfer';\r\nimport { jeton } from './jeton';\r\nimport { jeton_voucher } from './jeton_voucher';\r\nimport { kassa24 } from './kassa24';\r\nimport { link } from './link';\r\nimport { local_card_brazil } from './local_card_brazil';\r\nimport { local_card_mexico } from './local_card_mexico';\r\nimport { loterica } from './loterica';\r\nimport { malaysia_bank } from './malaysia_bank';\r\nimport { megafon } from './megafon';\r\nimport { mexico_bank } from './mexico_bank';\r\nimport { momopay } from './momopay';\r\nimport { moneta } from './moneta';\r\nimport { mts } from './mts';\r\nimport { multibanco } from './multibanco';\r\nimport { neosurf } from './neosurf';\r\nimport { neteller } from './neteller';\r\nimport { nupay } from './nupay';\r\nimport { onecard } from './onecard';\r\nimport { oxxo } from './oxxo';\r\nimport { pagoefectivo } from './pagoefectivo';\r\nimport { pagoexpress } from './pagoexpress';\r\nimport { pagofacil } from './pagofacil';\r\nimport { paypal } from './paypal';\r\nimport { paysafecard } from './paysafecard';\r\nimport { picpay } from './picpay';\r\nimport { pix } from './pix';\r\nimport { philippines_bank } from './philippines_bank';\r\nimport { promptpay } from './promptpay';\r\nimport { promsviaz } from './promsviaz';\r\nimport { przelewy24 } from './przelewy24';\r\nimport { qiwi } from './qiwi';\r\nimport { rapid } from './rapid';\r\nimport { rapipago } from './rapipago';\r\nimport { redpagos } from './redpagos';\r\nimport { sberbank } from './sberbank';\r\nimport { sbp } from './sbp';\r\nimport { sepa } from './sepa';\r\nimport { servipag } from './servipag';\r\nimport { skinify } from './skinify';\r\nimport { skinpay } from './skinpay';\r\nimport { skinsback } from './skinsback';\r\nimport { skrill } from './skrill';\r\nimport { sofort } from './sofort';\r\nimport { spei } from './spei';\r\nimport { store_mexico } from './store_mexico';\r\nimport { tele2 } from './tele2';\r\nimport { thailand_bank } from './thailand_bank';\r\nimport { thailand_bank_transfer } from './thailand_bank_transfer';\r\nimport { tinkoff } from './tinkoff';\r\nimport { trustly } from './trustly';\r\nimport { vietnam_bank } from './vietnam_bank';\r\nimport { vietnam_bank_qr } from './vietnam_bank_qr';\r\nimport { vietnam_bank_transfer } from './vietnam_bank_transfer';\r\nimport { webpay } from './webpay';\r\nimport { wechat } from './wechat';\r\nimport { wme } from './wme';\r\nimport { wmr } from './wmr';\r\nimport { wmu } from './wmu';\r\nimport { wmz } from './wmz';\r\nimport { zen_wallet } from './zen_wallet';\r\nimport { yandex } from './yandex';\r\nimport { wallester } from './wallester';\r\nimport { bitcoin } from './bitcoin';\r\nimport { tron } from './tron';\r\nimport { ethereum } from './ethereum';\r\nimport { tether } from './tether';\r\nimport { tether_trc20 } from './tether_trc20';\r\nimport { mercado_pago } from './mercado_pago';\r\nimport { mirpay } from './mirpay';\r\nimport { mbway } from './mbway';\r\nimport { PaymentFields } from '../payment-fields';\r\n\r\nexport const CONFIG: {[key: string]: PaymentFields} = {\r\n    advcash,\r\n    alfabank,\r\n    alipay,\r\n    alipay_plus,\r\n    applepay,\r\n    argentina_bank,\r\n    atf24,\r\n    baloto,\r\n    beeline,\r\n    blik,\r\n    boleto,\r\n    brazil_bank,\r\n    card,\r\n    carga_virtual,\r\n    cash,\r\n    cashtocode,\r\n    codi,\r\n    comepay,\r\n    cup,\r\n    cup_bank,\r\n    cup_p2p,\r\n    deposit_express,\r\n    direct_banking_europe,\r\n    dotpay,\r\n    ecopayz,\r\n    eps,\r\n    giropay,\r\n    gmmoney,\r\n    internal_gamemoney,\r\n    googlepay,\r\n    ideal,\r\n    indonesia_bank,\r\n    indonesia_bank_transfer,\r\n    jeton,\r\n    jeton_voucher,\r\n    kassa24,\r\n    link,\r\n    local_card_brazil,\r\n    local_card_mexico,\r\n    loterica,\r\n    malaysia_bank,\r\n    megafon,\r\n    mexico_bank,\r\n    momopay,\r\n    moneta,\r\n    mts,\r\n    multibanco,\r\n    neosurf,\r\n    neteller,\r\n    nupay,\r\n    onecard,\r\n    oxxo,\r\n    pagoefectivo,\r\n    pagoexpress,\r\n    pagofacil,\r\n    paypal,\r\n    paysafecard,\r\n    picpay,\r\n    pix,\r\n    philippines_bank,\r\n    promptpay,\r\n    promsviaz,\r\n    przelewy24,\r\n    qiwi,\r\n    rapid,\r\n    rapipago,\r\n    redpagos,\r\n    sberbank,\r\n    sbp,\r\n    sepa,\r\n    servipag,\r\n    skinify,\r\n    skinpay,\r\n    skinsback,\r\n    skrill,\r\n    sofort,\r\n    spei,\r\n    store_mexico,\r\n    tele2,\r\n    thailand_bank,\r\n    thailand_bank_transfer,\r\n    tinkoff,\r\n    trustly,\r\n    vietnam_bank,\r\n    vietnam_bank_qr,\r\n    vietnam_bank_transfer,\r\n    webpay,\r\n    wechat,\r\n    wme,\r\n    wmr,\r\n    wmu,\r\n    wmz,\r\n    zen_wallet,\r\n    yandex,\r\n    wallester,\r\n    bitcoin,\r\n    tron,\r\n    ethereum,\r\n    tether,\r\n    tether_trc20,\r\n    mercado_pago,\r\n    mirpay,\r\n    mbway\r\n};\r\nexport const registerPSConfiguration = (name: string, config: PaymentFields) => {\r\n    CONFIG[name] = config;\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, DOCUMENT } from '@angular/core';\r\nimport {\r\n  MethodInfo,\r\n  MethodType,\r\n  SessionInfo,\r\n  TerminalMethodBanksResponse,\r\n  TerminalMethodDocumentTypesResponse,\r\n  TerminalPaymentPrepareRequest,\r\n  TerminalPaymentPrepareResponse\r\n} from '../../codegen/model/models';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, delay, map, tap } from 'rxjs/operators';\r\n\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { PaymentFields } from './../pages/components/constructor-form/models';\r\nimport { HttpBadRequestResponse } from '../models/http-bad-request-response';\r\nimport { TranslateLangStorageService } from './translation/translate-lang-storage.service';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\nimport { CdeTerminalSdk, SessionToken } from '../models';\r\nimport { CONFIG } from '../pages/components/constructor-form/models/config/all';\r\n\r\n@Injectable()\r\nexport class SessionDataSource {\r\n  document = inject<Document>(DOCUMENT);\r\n  private langStorage = inject(TranslateLangStorageService);\r\n  private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n  private token = inject(SessionToken, {optional: true}) || 'token';\r\n  private apiErrorsSrv = inject(ApiErrorsService);\r\n  private cookieSrv = inject(CookieService);\r\n  private cd = inject(ChangeDetectorRef);\r\n  private cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);\r\n\r\n  payment_token?: string;\r\n  data$: BehaviorSubject<SessionInfo> = new BehaviorSubject<SessionInfo>(undefined);\r\n  loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n  loadingMethodInfo$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n  private redirectUrl: string;\r\n  private returnUrl: string;\r\n  private configurations: Map<string, PaymentFields> = new Map();\r\n\r\n  private fillConfigurations(methods: MethodType[] = this.getSessionValue()?.methodTypes || []) {\r\n    return methods.forEach(\r\n      (m: MethodType) => this.configurations.set(\r\n        m.type.name,\r\n        CONFIG[m.type.name]\r\n      )\r\n    );\r\n  }\r\n\r\n  private unionGlobalCountries(session: SessionInfo) {\r\n    let methods = session.methodTypes;\r\n\r\n    // sort methods by countries in map\r\n    const countriesTypes: Map<string, Set<number>> = new Map<string, Set<number>>();\r\n    methods.forEach(({countryISOCode, type: {id}}) => {\r\n      let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);\r\n      countriesTypes.set(countryISOCode, types);\r\n    });\r\n\r\n    // Check every type in the country on having in other countries and getting ones in collection\r\n    const globalCountries: string[] = [];\r\n    const typesCountriesArray = Array.from(countriesTypes.values());\r\n    const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));\r\n    countriesTypes.forEach((types, iso) => {\r\n      // Check every type includes in all countries\r\n      const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);\r\n      if (hasOnlyGlobalTypes) {\r\n        globalCountries.push(iso);\r\n      }\r\n    });\r\n\r\n    // if we have more than one country with only global types collapse them into one category\r\n    if (globalCountries.length > 0) {\r\n      const firstGlobalCountry = globalCountries.pop();\r\n      methods = methods\r\n        .filter(({countryISOCode}) => !globalCountries.includes(countryISOCode));\r\n      methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));\r\n    }\r\n    session.methodTypes = methods;\r\n    return session;\r\n  }\r\n\r\n  getConfiguration(name: string) {\r\n    return this.configurations.get(name);\r\n  }\r\n\r\n  redirect() {\r\n    if (this.redirectUrl) {\r\n      this.document.defaultView.location.href = this.redirectUrl;\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  returnBack() {\r\n    if (this.returnUrl) {\r\n      this.document.defaultView.location.href = this.returnUrl;\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  get canReturnToProject() {\r\n    return !!this.returnUrl;\r\n  }\r\n\r\n  get returnBackUrl(): string {\r\n    return this.returnUrl;\r\n  }\r\n\r\n  getTypeNameById(id: number) {\r\n    return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;\r\n  }\r\n\r\n  getSessionValue(): SessionInfo {\r\n    return this.data$.getValue();\r\n  }\r\n\r\n  get(): Observable<SessionInfo> {\r\n    if (!this.loading$.getValue()) {\r\n      this.loading$.next(true);\r\n    }\r\n\r\n    return this.terminalApi.getTerminalSessionInfo({\r\n      token: this.token\r\n    })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError(this.loading$)\r\n        ),\r\n        map((session: SessionInfo) => {\r\n          this.data$.next(this.unionGlobalCountries(session));\r\n          this.fillConfigurations();\r\n          this.loading$.next(false);\r\n          this.returnUrl = session.returnUrl;\r\n          return this.data$.getValue();\r\n        })\r\n      );\r\n  }\r\n\r\n  getMethodInfo(currency, typeId: number): Observable<MethodInfo> {\r\n    if (!this.loadingMethodInfo$.getValue()) {\r\n      this.loadingMethodInfo$.next(true);\r\n    }\r\n    if (!typeId || !currency) {\r\n      return throwError({})\r\n        .pipe(\r\n          catchError(\r\n            this.catchError(this.loadingMethodInfo$)\r\n          )\r\n        );\r\n    }\r\n    return this.terminalApi\r\n      .getTerminalMethodInfo({\r\n        token: this.token,\r\n        lang: this.langStorage.currentLang,\r\n        currency,\r\n        typeId\r\n      })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError(this.loadingMethodInfo$)\r\n        ),\r\n        tap((method) => {\r\n          if (method.payment_token) {\r\n            this.payment_token = method.payment_token;\r\n          }\r\n          this.loadingMethodInfo$.next(false);\r\n        })\r\n      );\r\n  }\r\n\r\n  private catchError(loading$?: BehaviorSubject<boolean>) {\r\n    return (err: HttpBadRequestResponse) => {\r\n      this.apiErrorsSrv.setLocalError(err.error);\r\n      loading$?.next(false);\r\n      this.cd.markForCheck();\r\n      return throwError(err);\r\n    }\r\n  }\r\n\r\n  prepare(data: TerminalPaymentPrepareRequest): Observable<TerminalPaymentPrepareResponse> {\r\n    return this.terminalApi\r\n      .postTerminalPaymentPrepare({\r\n        token: this.token,\r\n        terminalPaymentPrepareRequest: data\r\n      })\r\n      .pipe(\r\n        delay(2000),\r\n        catchError(\r\n          this.catchError()\r\n        )\r\n      );\r\n  }\r\n\r\n  confirm() {\r\n    return this.terminalApi\r\n      .postTerminalPaymentConfirm({\r\n        token: this.token,\r\n        terminalPaymentConfirmRequest: {\r\n          lang: this.langStorage.currentLang,\r\n          gaCookie: this.cookieSrv.get('_ga') || null\r\n        }\r\n      })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError()\r\n        ),\r\n        tap((resp) => {\r\n          this.redirectUrl = resp.redirectUrl;\r\n        })\r\n      );\r\n  }\r\n\r\n  close() {\r\n\r\n    return this.terminalApi\r\n      .postTerminalClose({\r\n        token: this.token\r\n      })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError()\r\n        ),\r\n        map(() => {\r\n          if (!this.returnBack()) {\r\n            const error = {code: I18N_KEY.SESSION_CLOSED};\r\n            this.apiErrorsSrv.setLocalError(error);\r\n            this.cd.markForCheck();\r\n\r\n            throw error;\r\n          }\r\n        })\r\n      );\r\n  }\r\n\r\n  getBanks(typeId: number): Observable<TerminalMethodBanksResponse> {\r\n    return this.terminalApi\r\n      .getTerminalMethodBanks({\r\n        typeId,\r\n        token: this.token\r\n      })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError()\r\n        )\r\n      );\r\n  }\r\n\r\n  getDocuments(typeId: number): Observable<TerminalMethodDocumentTypesResponse> {\r\n\r\n    return this.terminalApi\r\n      .getTerminalMethodDocumentTypes({\r\n        typeId,\r\n        token: this.token\r\n      })\r\n      .pipe(\r\n        catchError(\r\n          this.catchError()\r\n        )\r\n      );\r\n  }\r\n\r\n  createCardTerminalSdk(lang: string, id: string, tabindex?: number): CdeTerminalSdk {\r\n    return this.cardTerminalSdkFactory(this.payment_token, id, {lang, tabindex});\r\n  }\r\n\r\n  feeChangeable = !!this.terminalApi.getFee;\r\n\r\n  feeOptions(payment: any) {\r\n    return this.terminalApi.getFee(payment);\r\n  }\r\n}\r\n\r\n\r\n","import { CSP_NONCE, inject, Injectable, DOCUMENT } from '@angular/core';\r\n\r\nimport { ENVIRONMENT } from '../../const';\r\n\r\nexport type SDKScriptId = 'cde_sdk' | 'mir-pay-sdk' | 'apple-pay-sdk' | 'google-pay-sdk';\r\n\r\n@Injectable()\r\nexport class ScriptLoader {\r\n  private document = inject<Document>(DOCUMENT);\r\n  private nonce = inject(CSP_NONCE);\r\n  private environment = inject(ENVIRONMENT);\r\n\r\n\r\n  readonly SCRIPT_HASH_MAP = new Map<SDKScriptId, { src: string; hash?: string; }>([\r\n    [\r\n      'cde_sdk',\r\n      this.environment.production ? {\r\n        src: 'https://sdk.cde.cloud/iframe/sdk-v1.0.4.js',\r\n        hash: 'sha384-I0qNl4ogKez0CNyBsdmucHGgwLsiou3eq/bwdBq1bJumX22uFs9tQhIASrQFImmA'\r\n      } : {\r\n        src: 'https://app.cde-cloud.dev/iframe-sdk/sdk.js',\r\n        hash: ''\r\n      }\r\n    ]\r\n  ]);\r\n\r\n  fetchScript(id: SDKScriptId) {\r\n    return new Promise<void>((resolve, reject) => {\r\n      let script: HTMLScriptElement;\r\n      if (id === 'cde_sdk' && this.document.defaultView?.hasOwnProperty('CdeTerminalSdk')) {\r\n        resolve();\r\n        return;\r\n      }\r\n      if (id === 'google-pay-sdk' && this.document.defaultView?.hasOwnProperty('google')) {\r\n        resolve();\r\n        return;\r\n      }\r\n      if (id === 'apple-pay-sdk' && this.document.defaultView?.hasOwnProperty('ApplePaySession')) {\r\n        resolve();\r\n        return;\r\n      }\r\n      if (id === 'mir-pay-sdk' && this.document.defaultView?.hasOwnProperty('YooMoneyCheckoutWidget')) {\r\n        resolve();\r\n        return;\r\n      }\r\n\r\n      if (id === 'google-pay-sdk' || id === 'apple-pay-sdk' || id === 'mir-pay-sdk') {\r\n        const template: HTMLTemplateElement = this.document.querySelector(`template#${id}`)\r\n        if (!template) {\r\n          reject();\r\n        }\r\n        script = template.content.children.item(0) as HTMLScriptElement;\r\n      } else {\r\n        const {src, hash} = this.SCRIPT_HASH_MAP.get(id);\r\n        script = this.document.createElement('script');\r\n        script.type = 'text/javascript';\r\n        script.src = src;\r\n        if (hash) {\r\n          script.integrity = hash;\r\n          script.crossOrigin = 'anonymous';\r\n        }\r\n        script.async = true;\r\n      }\r\n      script.nonce = this.nonce;\r\n      script.onload = (): void => resolve();\r\n      script.onerror = (err): void => reject(err);\r\n      this.document.body.appendChild(script);\r\n    });\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { loadI18NData } from './helpers/i18n-countries';\r\nimport { ApiErrorsService, ScriptLoader, TranslateLangStorageService } from './services';\r\nimport { I18N_COUNTRIES, LANGUAGE } from './models';\r\nimport { getNames } from 'i18n-iso-countries';\r\n\r\nloadI18NData();\r\n\r\n@NgModule({\r\n  imports: [\r\n    RouterModule.forChild([\r\n      {\r\n        path: '',\r\n        loadChildren: () => import('./pages/pages.module')\r\n      },\r\n      {\r\n        path: 'checkin',\r\n        loadChildren: () => import('./checkin/checkin.module').then(m => m.CheckinModule)\r\n      },\r\n      {\r\n        path: '**',\r\n        redirectTo: ''\r\n      }\r\n    ])\r\n  ]\r\n})\r\nexport class TerminalModule {\r\n}\r\n\r\nexport const provideTerminal = () => {\r\n  return [\r\n    TranslateLangStorageService,\r\n    {\r\n      provide: I18N_COUNTRIES,\r\n      useValue: {\r\n        ru: getNames(LANGUAGE.RU),\r\n        lt: getNames(LANGUAGE.LT),\r\n        en: getNames(LANGUAGE.EN),\r\n        es: getNames(LANGUAGE.ES),\r\n        tr: getNames(LANGUAGE.TR),\r\n        pt: getNames(LANGUAGE.PT)\r\n      }\r\n    },\r\n    ApiErrorsService,\r\n    ScriptLoader\r\n  ];\r\n};\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[terminalFee]',\r\n  standalone: true\r\n})\r\nexport class FeeTemplateDirective {}\r\n","import { Component, ContentChild, HostListener, inject, OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, Router, RouterOutlet } from '@angular/router';\r\nimport { filter, first, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { BehaviorSubject, of, Subject } from 'rxjs';\r\nimport { TranslateLangStorageService } from './services/translation/translate-lang-storage.service';\r\nimport { APP_READY_TOKEN } from './models/constants';\r\nimport { FocusHandler } from './helpers/key-down-handler';\r\nimport { hideInitLoader } from './helpers/hide-init-loader';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FeeTemplateDirective } from './pages/directives/fee-template.directive';\r\n\r\n@Component({\r\n    selector: 'terminal',\r\n    host: {\r\n        class: 'trm'\r\n    },\r\n    templateUrl: './terminal-tpl.component.html',\r\n    styleUrls: ['./terminal-tpl.component.scss'],\r\n    imports: [RouterOutlet, AsyncPipe]\r\n})\r\nexport class TerminalTplComponent implements OnInit, OnDestroy {\r\n    private router = inject(Router);\r\n    ready$ = inject<BehaviorSubject<boolean>>(APP_READY_TOKEN);\r\n    langStorage = inject(TranslateLangStorageService);\r\n\r\n    private unSubscriber = new Subject<void>();\r\n    @ContentChild(FeeTemplateDirective, {read: TemplateRef, static: false}) feeTpl;\r\n\r\n    @HostListener('document:keydown.arrowDown', ['$event', '$event.currentTarget']) next(ev, document: Document) {\r\n        FocusHandler.nextEnabled(ev);\r\n    }\r\n    @HostListener('document:keydown.arrowUp', ['$event', '$event.currentTarget']) prev(ev, document: Document) {\r\n        FocusHandler.previousEnabled(ev);\r\n    }\r\n\r\n\r\n  ngOnInit(): void {\r\n    this.navigationEnd$()\r\n      .pipe(\r\n        switchMap(() => this.langStorage.setLanguage$({ save: false })),\r\n        switchMap(() => hideInitLoader()),\r\n        first(),\r\n        takeUntil(this.unSubscriber),\r\n      )\r\n      .subscribe(() => this.ready$.next(true));\r\n  }\r\n\r\n    private navigationEnd$() {\r\n        if (this.router.navigated) {\r\n            return of({});\r\n        }\r\n        return this.router.events\r\n            .pipe(\r\n                filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)\r\n            )\r\n    }\r\n\r\n    public ngOnDestroy() {\r\n        this.unSubscriber.next();\r\n        this.unSubscriber.unsubscribe();\r\n    }\r\n}\r\n","@if (ready$ | async) {\r\n  <div class=\"app__container\">\r\n    <router-outlet></router-outlet>\r\n  </div>\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[trmSelectLabelTemplate]',\r\n  standalone: true\r\n})\r\nexport class TrmSelectLabelTemplateDirective {\r\n  tpl = inject<TemplateRef<TrmSelectLabelTemplateDirective>>(TemplateRef);\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, inject, OnDestroy, Renderer2 } from '@angular/core';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n\r\n@Directive({\r\n  selector: 'ng-scrollbar[appScrollbarSelectHeight]',\r\n  standalone: true\r\n})\r\nexport class ScrollbarSelectHeightDirective implements AfterViewInit, OnDestroy {\r\n  private element = inject(ElementRef);\r\n  private renderer = inject(Renderer2);\r\n  private layoutScrollbar = inject(NgScrollbar, { skipSelf: true });\r\n  private scrollbar = inject(NgScrollbar);\r\n\r\n  private afterInitSub?: { unsubscribe: () => void };\r\n  private afterUpdateSub?: { unsubscribe: () => void };\r\n\r\n  readonly DEFAULT_MAX_HEIGHT = 250;\r\n\r\n  ngAfterViewInit() {\r\n    const contentWrapper = this.scrollbar?.viewport?.contentWrapperElement;\r\n    if (!contentWrapper) return;\r\n\r\n    const updateFn = () => {\r\n      const viewport = this.layoutScrollbar.viewport;\r\n      const css = this.element.nativeElement.getBoundingClientRect();\r\n      const height = viewport.offsetHeight - parseFloat(css.top);\r\n      this.renderer.setStyle(\r\n        this.scrollbar.nativeElement,\r\n        'maxHeight',\r\n        (height < this.DEFAULT_MAX_HEIGHT ? this.DEFAULT_MAX_HEIGHT : (height - 12)) + 'px'\r\n      );\r\n    };\r\n\r\n    this.afterInitSub = this.scrollbar.afterInit.subscribe(updateFn);\r\n    this.afterUpdateSub = this.scrollbar.afterUpdate.subscribe(updateFn);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.afterInitSub?.unsubscribe();\r\n    this.afterUpdateSub?.unsubscribe();\r\n  }\r\n}","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_KEY, i18nMap } from './../../i18n';\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Pipe({\r\n    name: 'trans',\r\n    pure: false,\r\n    standalone: true\r\n})\r\nexport class TranslateByKeyPipe implements PipeTransform, OnDestroy {\r\n    private cd = inject(ChangeDetectorRef);\r\n    private translateSrv = inject(TranslateService);\r\n\r\n    lang: string;\r\n    private onLangChangeSubscription: Subscription;\r\n\r\n    transform(query: string, ...args: any[]): any {\r\n        if (query === '') {\r\n            return '';\r\n        }\r\n\r\n        this._dispose();\r\n        this._subscribe();\r\n        this.lang = this.translateSrv.currentLang;\r\n        return this.translateSrv.instant(i18nMap.get(query as I18N_KEY) || query, ...args);\r\n    }\r\n\r\n    private _subscribe() {\r\n        this.onLangChangeSubscription = this.translateSrv.onLangChange\r\n            .subscribe(({lang}) => {\r\n                if (lang === this.lang) {\r\n                    return\r\n                }\r\n                this.lang = lang;\r\n                this.cd.markForCheck()\r\n            });\r\n    }\r\n\r\n    private _dispose() {\r\n        if (this.onLangChangeSubscription && !this.onLangChangeSubscription.closed) {\r\n            this.onLangChangeSubscription.unsubscribe();\r\n        }\r\n        this.onLangChangeSubscription = null;\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this._dispose();\r\n    }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  inject,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n  DOCUMENT\r\n} from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormControl,\r\n  FormsModule,\r\n  NG_VALUE_ACCESSOR,\r\n  ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TrmSelectLabelTemplateDirective } from './trm-select-label-template.directive';\r\nimport { ScrollbarSelectHeightDirective } from './scrollbar-select-height.directive';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-trm-select',\r\n    templateUrl: './trm-select.component.html',\r\n    styleUrls: ['./trm-select.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => TrmSelectComponent),\r\n            multi: true,\r\n        }\r\n    ],\r\n    animations: [insertRemoveTrigger],\r\n    imports: [NgTemplateOutlet, NgClass, ScrollbarSelectHeightDirective, NgScrollbar, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class TrmSelectComponent implements OnDestroy, ControlValueAccessor, AfterViewInit {\r\n    private el = inject(ElementRef);\r\n    private document = inject<Document>(DOCUMENT);\r\n    private cd = inject(ChangeDetectorRef);\r\n\r\n    private unSubscriber: Subject<void> = new Subject<void>();\r\n    private _disabled = false;\r\n    I18N_KEY = I18N_KEY;\r\n\r\n    get disabled() {\r\n        return this.data && this.data.length === 1 && this.selected === this.getItemValue(this.data[0])\r\n    }\r\n\r\n    @Input() label: string;\r\n    @Input() hasBorder = true;\r\n    @Input() data: any[] | false;\r\n    @Input() tabIndex = 0;\r\n    @Input() name = '';\r\n    @Input() placeholder = '';\r\n    @Input() searchable = true;\r\n    @Input() hasScrollbar = true;\r\n    searchControl = new FormControl();\r\n    @Output() open = new EventEmitter();\r\n    @Output() search = new EventEmitter();\r\n    selected: any;\r\n    selectedItem: any;\r\n    filteredData = [];\r\n\r\n    onChange = (value) => {\r\n    };\r\n    onTouch = () => {\r\n    };\r\n\r\n    @ContentChild(TrmSelectLabelTemplateDirective) labelTeplate: TrmSelectLabelTemplateDirective;\r\n    get labelTpl() {\r\n      return this.labelTeplate?.tpl;\r\n    }\r\n\r\n    @Input() nameId = 'id';\r\n    @Input() nameLabel = 'name';\r\n    opened = false;\r\n\r\n    constructor() {\r\n        fromEvent(this.document, 'click')\r\n            .pipe(\r\n                debounceTime(100),\r\n                filter((ev) => this.opened && !this.el.nativeElement.contains(ev.target)),\r\n                takeUntil(this.unSubscriber)\r\n            )\r\n            .subscribe(() => this.toggle());\r\n    }\r\n\r\n    get selectedLabel() {\r\n        return this.selectedItem?.[this.nameLabel] || this.getItemLabel(this.selected);\r\n    }\r\n\r\n    ngAfterViewInit() {\r\n        if (this.searchable) {\r\n            this.searchControl\r\n                .valueChanges\r\n                .pipe(\r\n                    takeUntil(this.unSubscriber),\r\n                    debounceTime(200)\r\n                )\r\n                .subscribe((search) => this.triggerSearch(search));\r\n        }\r\n    }\r\n\r\n    get list() {\r\n        if (Array.isArray(this.data)) {\r\n            return this.data?.filter(item => !this.isSelected(item));\r\n        }\r\n        return [];\r\n    }\r\n\r\n    get focusableEl() {\r\n        return this.el.nativeElement.querySelector('[tabindex]');\r\n    }\r\n\r\n    get focused(): boolean {\r\n        return this.el.nativeElement.contains(this.document.activeElement);\r\n    }\r\n\r\n    onBlur() {\r\n        if (!this.opened) {\r\n            return;\r\n        }\r\n        // closed select when focus out\r\n        setTimeout(() => !this.focused && this.toggle(), 100);\r\n    }\r\n\r\n    private searchAutofocusTimer: number;\r\n\r\n    toggle() {\r\n        if (this.data === false) {\r\n            return;\r\n        }\r\n        if (!this.opened && !this.data?.length) {\r\n            return;\r\n        }\r\n        if ((!this.searchable || !this.searchControl.value) && this.data?.length === 1 && this.selected === this.data[0]) {\r\n            return;\r\n        }\r\n        if (this.searchable) {\r\n            if (this.opened === false) {\r\n                clearTimeout(this.searchAutofocusTimer);\r\n                this.searchAutofocusTimer = this.document.defaultView.setTimeout(\r\n                    () => this.el.nativeElement.querySelector('.trm-select-list__search input').focus(),\r\n                    200\r\n                );\r\n            } else {\r\n                this.searchControl.setValue('');\r\n            }\r\n        }\r\n        this.opened = !this.opened;\r\n        this.open.emit(this.opened);\r\n        this.onTouch();\r\n        this.cd.detectChanges();\r\n    }\r\n\r\n    isSelected(item) {\r\n        let value = this.getItemValue(item);\r\n        if (value) {\r\n            return this.selected === value;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    getItemValue(item) {\r\n        return item?.[this.nameId] || item;\r\n    }\r\n\r\n    getItemLabel(id) {\r\n        if (!this.data) {\r\n            return '';\r\n        }\r\n        id = this.getItemValue(id);\r\n        const item = this.getCollectionItem(id);\r\n        return item?.[this.nameLabel] || id;\r\n    }\r\n\r\n    getCollectionItem(id) {\r\n        if (!this.data) {\r\n            return id;\r\n        }\r\n        return this.data.find(f => this.getItemValue(f) === id);\r\n    }\r\n\r\n    select(item) {\r\n        if (this.selected !== this.getItemValue(item)) {\r\n            this.onChange(this.getItemValue(item));\r\n        }\r\n        this.selected = this.getItemValue(item);\r\n        this.selectedItem = this.getCollectionItem(this.selected);\r\n        this.toggle();\r\n        this.focusableEl.focus();\r\n    }\r\n\r\n    writeValue(value: any) {\r\n        if (!this.data) {\r\n            return;\r\n        }\r\n        this.selected = value;\r\n        this.selectedItem = this.getCollectionItem(this.selected);\r\n        this.cd.markForCheck();\r\n    }\r\n\r\n    registerOnTouched(fn: any) {\r\n        this.onTouch = fn;\r\n    }\r\n\r\n    registerOnChange(fn: any) {\r\n        this.onChange = fn;\r\n    }\r\n\r\n    setDisabledState(isDisabled: boolean) {\r\n        this._disabled = isDisabled;\r\n    }\r\n\r\n    triggerSearch(value = this.searchControl.value) {\r\n        if (this.data === false) {\r\n            return;\r\n        }\r\n        this.search.emit(value);\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.unSubscriber.next();\r\n        this.unSubscriber.unsubscribe();\r\n    }\r\n}\r\n","@if (label) {\r\n  <label class=\"trm-label\"\r\n         [for]=\"name\"\r\n         (click)=\"toggle()\"\r\n  > {{ label }} </label>\r\n}\r\n<div class=\"trm-select\"\r\n     [class.trm-select--noBordered]=\"!hasBorder\"\r\n     [class.trm-select--opened]=\"opened\"\r\n     [class.trm-select--disabled]=\"disabled\"\r\n     [tabindex]=\"tabIndex\"\r\n     (blur)=\"onBlur()\"\r\n     [id]=\"name\"\r\n     (keydown.enter)=\"toggle()\"\r\n>\r\n  @if (labelTpl) {\r\n    <div class=\"trm-select-value\"\r\n         (click)=\"toggle()\">\r\n      @if (selected && selectedItem) {\r\n        <ng-container *ngTemplateOutlet=\"labelTpl; context: {item: selectedItem}\"></ng-container>\r\n      }\r\n      @if (!selected) {\r\n        <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n      }\r\n      <span class=\"trm-select-value__arrow\"\r\n            [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n      @if (data === false) {\r\n        <div class=\"trm-spinner\"></div>\r\n      }\r\n    </div>\r\n    @if (opened && hasScrollbar) {\r\n      <ul class=\"trm-select-list\" @insertRemove>\r\n        <ng-scrollbar appearance=\"compact\" class=\"trm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n          <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n        </ng-scrollbar>\r\n      </ul>\r\n    }\r\n    @if (opened && !hasScrollbar) {\r\n      <ul class=\"trm-select-list\" @insertRemove>\r\n        <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n      </ul>\r\n    }\r\n    <ng-template #listTpl>\r\n      @if (searchable) {\r\n        <li class=\"trm-select-list__item trm-select-list__search\">\r\n          <input class=\"trm-form-field\"\r\n                 [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n                 [tabindex]=\"tabIndex\"\r\n                 (keydown.enter)=\"$event.stopPropagation(); $event.preventDefault();\"\r\n                 [formControl]=\"searchControl\">\r\n        </li>\r\n      }\r\n      @if (searchable && searchControl.value && list.length === 0) {\r\n        <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n        >\r\n          {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n        </li>\r\n      }\r\n      @for (item of list; track getItemValue(item)) {\r\n        <li class=\"trm-select-list__item\"\r\n            (click)=\"select(item)\"\r\n            (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n            [tabindex]=\"tabIndex\"\r\n            (blur)=\"onBlur()\">\r\n          @if (item) {\r\n            <ng-container *ngTemplateOutlet=\"labelTpl; context: {item}\"></ng-container>\r\n          }\r\n        </li>\r\n      }\r\n    </ng-template>\r\n  } @else {\r\n    <div class=\"trm-select-value\"\r\n         (click)=\"toggle()\"\r\n         (keydown.enter)=\"toggle()\">\r\n      {{ selectedLabel }}\r\n      @if (!selected) {\r\n        <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n      }\r\n      <span class=\"trm-select-value__arrow\"\r\n            [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n      @if (data === false) {\r\n        <div class=\"trm-spinner\"></div>\r\n      }\r\n    </div>\r\n    @if (opened) {\r\n      <ul class=\"trm-select-list\" @insertRemove>\r\n        <ng-scrollbar class=\"gm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n          @if (searchable) {\r\n            <li class=\"trm-select-list__item trm-select-list__search\">\r\n              <input class=\"trm-form-field\"\r\n                     [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n                     [tabindex]=\"tabIndex\"\r\n                     (keydown.enter)=\"$event.stopPropagation();\"\r\n                     [formControl]=\"searchControl\">\r\n            </li>\r\n          }\r\n          @if (searchable && searchControl.value && list.length === 0) {\r\n            <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n            >\r\n              {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n            </li>\r\n          }\r\n          @for (item of list; track getItemValue(item)) {\r\n            <li class=\"trm-select-list__item\"\r\n                [tabindex]=\"tabIndex\"\r\n                (click)=\"select(item)\"\r\n                (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n                (blur)=\"onBlur()\">\r\n              {{ getItemLabel(item) }}\r\n            </li>\r\n          }\r\n        </ng-scrollbar>\r\n      </ul>\r\n    }\r\n  }\r\n</div>\r\n<ng-content select=\"[app-trm-select-hint]\"></ng-content>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  inject,\r\n  Input,\r\n  OnDestroy,\r\n  Output\r\n} from '@angular/core';\r\nimport { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgClass } from '@angular/common';\r\nimport { TrmSelectComponent } from '../trm-select/trm-select.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from \"../../../../const\";\r\nimport { VersionServiceInterface } from \"../../../models\";\r\n\r\n@Component({\r\n    selector: 'app-terminal-lang-switcher',\r\n    templateUrl: './terminal-lang-switcher.component.html',\r\n    styleUrls: ['./terminal-lang-switcher.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent]\r\n})\r\nexport class TerminalLangSwitcherComponent implements OnDestroy {\r\n    private versionSrv: VersionServiceInterface = inject(TERMINAL_VERSION_SERVICE_TOKEN);\r\n    private langStorageSrv = inject(TranslateLangStorageService);\r\n    private cd = inject(ChangeDetectorRef);\r\n\r\n    private unSubscriber = new Subject<void>();\r\n    @Input() loading = false;\r\n    @Output() langChange = new EventEmitter<string>();\r\n    @Input() tabIndex = 0;\r\n\r\n    get translation_keys() {\r\n        return this.langStorageSrv.TRANSLATION_LANG_KEYS;\r\n    }\r\n\r\n    constructor() {\r\n        this.langStorageSrv.onLangChange$\r\n            .pipe(\r\n                takeUntil(this.unSubscriber)\r\n            )\r\n            .subscribe(() => this.cd.detectChanges());\r\n    }\r\n\r\n    get lang() {\r\n        return this.langStorageSrv.currentLang;\r\n    }\r\n    get langs(): string[] {\r\n        return this.versionSrv.langs;\r\n    }\r\n\r\n    changeLang(lang: string) {\r\n      this.langStorageSrv.setLanguage$({ lang, save: true });\r\n      this.cd.markForCheck();\r\n      this.langChange.emit(lang);\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.unSubscriber.next();\r\n        this.unSubscriber.unsubscribe();\r\n    }\r\n}\r\n","@if (!loading) {\r\n  <app-trm-select class=\"lang-switcher\"\r\n    [hasBorder]=\"false\"\r\n    [searchable]=\"false\"\r\n    [hasScrollbar]=\"false\"\r\n    [data]=\"langs\"\r\n    [ngModel]=\"lang\"\r\n    [tabIndex]=\"tabIndex\"\r\n    (ngModelChange)=\"changeLang($event)\"\r\n    >\r\n    <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n      <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\r\n      <span> {{translation_keys[item].name | translate}}</span>\r\n    </ng-template>\r\n  </app-trm-select>\r\n} @else {\r\n  <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\r\n}\r\n","import { ChangeDetectorRef, Component, inject, Input, OnDestroy } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TerminalLangSwitcherComponent } from '../terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n    selector: 'app-terminal-layout-tpl',\r\n    templateUrl: './terminal-layout-tpl.component.html',\r\n    styleUrls: ['./terminal-layout-tpl.component.scss'],\r\n    imports: [NgScrollbar, TerminalLangSwitcherComponent, GmSkeletonComponent]\r\n})\r\nexport class TerminalLayoutTplComponent implements OnDestroy {\r\n    private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n    private translateSrv = inject(TranslateService);\r\n    private cd = inject(ChangeDetectorRef);\r\n    private translateStorageSrv = inject(TranslateLangStorageService);\r\n\r\n    private unSubscriber = new Subject<void>();\r\n    @Input() projectName: string;\r\n    @Input() description: string;\r\n    @Input() loading = true;\r\n\r\n    constructor() {\r\n      this.translateSrv.onLangChange\r\n        .pipe(takeUntil(this.unSubscriber))\r\n        .subscribe(() => {\r\n          this.cd.detectChanges();\r\n        });\r\n    }\r\n\r\n    get hasChoice() {\r\n      return this.translateStorageSrv.languages.length > 1;\r\n    }\r\n\r\n    get logoClass(): string {\r\n        return this.versionSrv.logoClass;\r\n    }\r\n    get footerText() {\r\n        return this.versionSrv.footerText;\r\n    }\r\n\r\n    public ngOnDestroy() {\r\n        this.unSubscriber.next();\r\n        this.unSubscriber.unsubscribe();\r\n    }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n  <div class=\"terminal-layout\">\r\n    <section class=\"terminal\">\r\n      <div class=\"terminal__content\">\r\n        <header class=\"terminal__header\">\r\n          <i class=\"terminal__header-logo\"\r\n          [class]=\"logoClass\"></i>\r\n          <div class=\"terminal__header-lang\">\r\n            @if (hasChoice) {\r\n              <app-terminal-lang-switcher\r\n                [loading]=\"loading\"\r\n              [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n            }\r\n          </div>\r\n        </header>\r\n        <div class=\"terminal__form\">\r\n          <ng-content selector=\"[terminal-layout-status]\"></ng-content>\r\n          <ng-content selector=\"[terminal-layout-form]\"></ng-content>\r\n          @if (loading) {\r\n            <div class=\"trm-skeleton-group\">\r\n              <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n              <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n              <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>\r\n    </section>\r\n    <footer class=\"terminal-footer\">\r\n      <i class=\"terminal-footer__logo\"></i>\r\n      <p class=\"terminal-footer__txt\">\r\n        {{footerText}}\r\n      </p>\r\n    </footer>\r\n  </div>\r\n</ng-scrollbar>\r\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'sanitize',\r\n    standalone: true\r\n})\r\nexport class SanitizerPipe implements PipeTransform {\r\n    private _sanitizer = inject(DomSanitizer);\r\n\r\n    transform(value: any, context: SecurityContext): any {\r\n        return this._sanitizer.sanitize(context, value);\r\n    }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\n\r\nimport { SanitizerPipe } from '../../pipes/sanitizer.pipe';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-constructor-status',\r\n    templateUrl: './constructor-status.component.html',\r\n    styleUrls: ['./constructor-status.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    imports: [SanitizerPipe, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorStatusComponent {\r\n    private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n    SecurityContext = SecurityContext;\r\n    I18N_KEY = I18N_KEY;\r\n    @Input() failed = false;\r\n    @Input() inProgress = false;\r\n    @Input() animation = true;\r\n    @Input() message: string;\r\n    @Input() failTitle: string;\r\n    @Input() progressTitle: string;\r\n    @Input() successTitle: string;\r\n    @Input() tabIndex: number;\r\n    @Input() backUrl: string;\r\n    @Input() backUrlTitle: string;\r\n    @Input() hasSupportHint = true;\r\n    get supportEmail() {\r\n        return this.versionSrv.supportEmail;\r\n    }\r\n}\r\n","<div class=\"c-status\">\r\n  <div class=\"c-status__content\"\r\n    [class.c-status--failed]=\"failed\"\r\n    [class.c-status--progress]=\"inProgress\"\r\n    [class.c-status--live]=\"animation\"\r\n    >\r\n    <i class=\"c-status__img\"></i>\r\n    <h5 class=\"c-status__title\">\r\n      @if (inProgress) {\r\n        {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\r\n      } @else {\r\n        @if (failed) {\r\n          {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\r\n        }\r\n        @if (!failed) {\r\n          {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\r\n        }\r\n      }\r\n    </h5>\r\n    <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\r\n    @if (hasSupportHint) {\r\n      <div class=\"c-status__hint\">\r\n        {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\r\n        @if (supportEmail) {\r\n          <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\r\n        }\r\n      </div>\r\n    }\r\n  </div>\r\n  @if (!!backUrl) {\r\n    <div class=\"c-status__actions\">\r\n      <a class=\"trm-button trm-button--primary\"\r\n        [tabindex]=\"tabIndex\"\r\n      [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\r\n      <div class=\"c-status__hint c-status__hint-button\">\r\n        <ng-content constructor-status-button-hint></ng-content>\r\n      </div>\r\n    </div>\r\n  }\r\n</div>\r\n","import { Directive, EmbeddedViewRef, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[ngVar]',\r\n    standalone: true,\r\n})\r\nexport class NgVarDirective<T = unknown> {\r\n    private _viewContainer = inject(ViewContainerRef);\r\n    private _templateRef = inject<TemplateRef<NgVarContext<T>>>(TemplateRef);\r\n\r\n    private _context: NgVarContext<T> = new NgVarContext<T>();\r\n    private _viewRef: EmbeddedViewRef<NgVarContext<T>> | null = null;\r\n\r\n    @Input()\r\n    set ngVar(context: T) {\r\n        this._context.$implicit = this._context.ngVar = context;\r\n\r\n        if (!this._viewRef) {\r\n            this._viewRef = this._viewContainer.createEmbeddedView(\r\n                this._templateRef,\r\n                this._context\r\n            );\r\n        }\r\n    }\r\n}\r\n\r\nexport class NgVarContext<T = unknown> {\r\n    public $implicit: T = null!;\r\n    public ngVar: T = null!;\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\nfunction symbolCurrency(code: string, format: 'symbol' | 'narrowSymbol', lang = 'en'): string {\r\n  try {\r\n    return Intl.NumberFormat(lang, {\r\n      style: 'currency',\r\n      currency: code,\r\n      currencyDisplay: format,\r\n    })\r\n      .formatToParts()\r\n      .find((part) => part.type === 'currency').value;\r\n  } catch (e) {\r\n    return code;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'trm-amount',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './trm-amount.component.html',\r\n  styleUrl: './trm-amount.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    CurrencyPipe\r\n  ]\r\n})\r\nexport class TrmAmountComponent {\r\n  private currencyPipe: CurrencyPipe = inject(CurrencyPipe);\r\n  private _thousandSeparator = ' ';\r\n  private _format = '1.2-8';\r\n  separator = '.';\r\n\r\n  value = input<number | string>(0);\r\n  code = input<string>('');\r\n\r\n  symbol = computed(() => symbolCurrency(this.code(), 'narrowSymbol'));\r\n  symbolWide = computed(() => symbolCurrency(this.code(), 'symbol'));\r\n  private _amount = computed(() => this.currencyPipe\r\n    .transform(this.value(), this.code(), 'symbol-narrow', this._format, 'en')\r\n    .replace(/,/g, this._thousandSeparator)\r\n    .replace(this.symbol(), '')\r\n    .trim()\r\n  );\r\n  resultSymbol = computed(() => this.symbol() === '$' ? this.symbolWide() : this.symbol());\r\n  amountSplitted = computed(() => {\r\n    const [int, fract] = this._amount().split('.');\r\n    return {int, fract};\r\n  });\r\n}\r\n","<span class=\"trm-amount\">\r\n    <span class=\"trm-amount__value\">\r\n      <span class=\"trm-amount__int\">{{ amountSplitted().int }}</span>\r\n      @if (amountSplitted().fract) {\r\n        <span class=\"trm-amount__fract\">{{ separator }}{{ amountSplitted().fract }}</span>\r\n      }\r\n    </span>\r\n    <span class=\"trm-currency\">{{ resultSymbol() }}</span>\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TerminalLayoutTplComponent } from './components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { TerminalLangSwitcherComponent } from './components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorStatusComponent } from './components/constructor-status/constructor-status.component';\r\nimport { TrmSelectComponent } from './components/trm-select/trm-select.component';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ScrollbarSelectHeightDirective } from './components/trm-select/scrollbar-select-height.directive';\r\nimport { TranslateByKeyPipe } from './pipes/translate-by-key.pipe';\r\nimport { NgVarDirective } from './directives/ng-var.directive';\r\nimport { TrmSelectLabelTemplateDirective } from './components';\r\n\r\nconst components = [\r\n  TerminalLayoutTplComponent,\r\n  TerminalLangSwitcherComponent,\r\n  ConstructorStatusComponent,\r\n  TrmSelectComponent,\r\n  ScrollbarSelectHeightDirective,\r\n  TranslateByKeyPipe,\r\n  NgVarDirective,\r\n  TrmSelectLabelTemplateDirective\r\n]\r\n\r\n@NgModule({\r\n  exports: components,\r\n  providers: [\r\n    TranslatePipe\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    NgScrollbar,\r\n    TranslateModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    ...components\r\n  ]\r\n})\r\nexport class SharedModule {\r\n}\r\n","export function removeEmptyProps<T extends { [key: string]: any }>(obj: T, options: { nullValue: boolean } = { nullValue: true }): T {\r\n  if (typeof obj !== 'object' || obj === null) {\r\n    return obj;\r\n  }\r\n\r\n  Object.keys(obj).forEach((key: string) => {\r\n    const value: any = obj[key];\r\n    if (typeof value === 'undefined' || (options?.nullValue === true && value === null) || value === '' || (typeof value === 'number' && isNaN(value))) {\r\n      delete obj[key];\r\n    }\r\n  });\r\n  return obj;\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { CollectionType, PaymentField, PaymentFieldOptionsItem, PaymentFields, PaymentFieldTypeEnum } from '../models';\r\nimport { SessionDataSource } from '../../../../services/session.data-source';\r\nimport { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { MethodInfo, TerminalPaymentPrepareRequest } from '../../../../../codegen/model/models';\r\nimport { distinctUntilChanged, Observable, of, Subject } from 'rxjs';\r\nimport { removeEmptyProps } from \"../../../../../helpers/remove-empty-props\";\r\nimport { I18N_KEY } from \"./../../../../i18n\";\r\nimport { TERMINAL_METHOD_CONFIGURATION_FACTORY, TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../../const';\r\nimport { LocalStorage } from \"../../../../services/local-storage\";\r\n\r\n@Injectable()\r\nexport class ConstructorFormService extends FormGroup<{ [key: string]: FormControl | FormGroup }> implements OnDestroy {\r\n  private sessionDS = inject(SessionDataSource);\r\n  private cd = inject(ChangeDetectorRef);\r\n  private versionSettings = inject(TERMINAL_VERSION_SERVICE_TOKEN);\r\n  private configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, {optional: true}) || ((method: string, defaultConfig: PaymentFields) => defaultConfig);\r\n\r\n  private _storage: LocalStorage = inject(LocalStorage);\r\n  private cancelRequestsSubscriber = new Subject<void>();\r\n  private unSubscriber = new Subject<void>();\r\n  config: PaymentFields;\r\n  fields: PaymentField[] = [];\r\n  maskedWallet: string;\r\n  ready = false;\r\n\r\n  constructor() {\r\n    super({\r\n      country: new FormControl(undefined, Validators.required),\r\n      method: new FormControl(undefined, Validators.required),\r\n      currency: new FormControl(undefined, Validators.required),\r\n      user_currency: new FormControl(undefined, Validators.required),\r\n      payment: new FormGroup({})\r\n    });\r\n  }\r\n\r\n  get methodInfoLoading() {\r\n    return this.sessionDS.loadingMethodInfo$.getValue();\r\n  }\r\n\r\n  get paymentFormFieldNames() {\r\n    return Object.keys(this.payment.controls);\r\n  }\r\n\r\n  removePaymentFormControls() {\r\n    this.paymentFormFieldNames\r\n      .forEach((controlName: string) => this.payment.removeControl(controlName));\r\n  }\r\n\r\n  init() {\r\n    this.ready = false;\r\n    this.cd.detectChanges();\r\n    if (this.configurationFactory) {\r\n      this.config = this.configurationFactory(\r\n        this.methodName,\r\n        this.sessionDS.getConfiguration(this.methodName)\r\n      );\r\n    } else {\r\n      this.config = this.sessionDS.getConfiguration(this.methodName);\r\n    }\r\n\r\n    this.fields = [...this.config.fields];\r\n    // that trick for z-index order in page (reverse array + reverse flex-direction)\r\n    this.fields.reverse();\r\n    return this.sessionDS\r\n      .getMethodInfo(\r\n        this.currency.value,\r\n        this.method.value\r\n      )\r\n      .pipe(\r\n        switchMap((methodInfo) => this.generateFields(methodInfo)),\r\n        first(),\r\n        takeUntil(this.cancelRequestsSubscriber)\r\n      );\r\n  }\r\n\r\n  public amountDynamic = false;\r\n\r\n  private async generateFields(methodInfo: MethodInfo): Promise<void>  {\r\n    this.fields\r\n      .forEach((field: PaymentField) => {\r\n        if (!field.name) {\r\n          return;\r\n        }\r\n        const control = new FormControl<string | number>({\r\n          value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,\r\n          disabled: false,\r\n        });\r\n        const validators: ValidatorFn[] = [];\r\n        this.amountDynamic = methodInfo.amountDynamic;\r\n        const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();\r\n        field.placeholder = field.placeholder || '';\r\n        if (field.type === PaymentFieldTypeEnum.Amount) {\r\n          if (methodInfo.defaultAmount || methodInfo.defaultAmount === 0) {\r\n            control.setValue(methodInfo.defaultAmount);\r\n          }\r\n          if (!isEditable) {\r\n            field.readonly = true;\r\n            control.markAsDirty();\r\n            control.markAsTouched();\r\n          } else {\r\n            field.readonly = false;\r\n            validators.push((control) => +control.value === 0 ? {required: true} : null);\r\n          }\r\n          field.options = field.options || {};\r\n          field.options.currency = this.currency.value;\r\n          if (methodInfo.fee) {\r\n            field.options.fee = methodInfo.fee;\r\n          } else {\r\n            field.options.fee = 0;\r\n          }\r\n          if (methodInfo.fixedFee) {\r\n            field.options.fixedFee = methodInfo.fixedFee;\r\n          } else {\r\n            field.options.fixedFee = 0;\r\n          }\r\n          if (!methodInfo.amountDynamic && methodInfo.limits?.max) {\r\n            field.options.max = methodInfo.limits.max;\r\n          } else {\r\n            delete field.options.max;\r\n          }\r\n          if (!methodInfo.amountDynamic && methodInfo.limits?.min) {\r\n            field.options.min = methodInfo.limits.min;\r\n          } else {\r\n            delete field.options.min;\r\n          }\r\n        }\r\n        if (field.wallet && methodInfo.defaultWallet) {\r\n          control.setValue(methodInfo.defaultWallet);\r\n        } else if (methodInfo.email && field.type === PaymentFieldTypeEnum.Email) {\r\n          control.setValue(methodInfo.email);\r\n        }\r\n        if (field.require) {\r\n          validators.push(Validators.required);\r\n        }\r\n        if (field.pattern) {\r\n          validators.push(Validators.pattern(new RegExp(field.pattern)));\r\n        }\r\n\r\n        if (field.type === PaymentFieldTypeEnum.Email) {\r\n          validators.push(Validators.email);\r\n        }\r\n        if (field.options?.max && typeof field.options?.max === 'number') {\r\n          validators.push(Validators.max(field.options?.max));\r\n        }\r\n        if (field.options?.min && typeof field.options?.min === 'number') {\r\n          validators.push(Validators.min(field.options?.min));\r\n        }\r\n        if (field.options?.maxLength) {\r\n          validators.push(Validators.maxLength(field.options?.maxLength));\r\n        }\r\n        if (field.options?.minLength) {\r\n          validators.push(Validators.minLength(field.options?.minLength));\r\n        }\r\n        if (field.type === PaymentFieldTypeEnum.Amount && methodInfo.amountDynamic) {\r\n          validators.length = 0;\r\n        }\r\n        if (typeof field.validator === 'function') {\r\n          validators.push(field.validator(this.payment));\r\n        }\r\n        control.setValidators(validators);\r\n        this.payment.addControl(field.name, control);\r\n        this.fetchCollection(field)\r\n          .subscribe(() => {\r\n            control.updateValueAndValidity();\r\n          });\r\n      });\r\n    this.ready = true;\r\n  }\r\n\r\n  private fetchCollection(field: PaymentField): Observable<PaymentFieldOptionsItem[]> {\r\n    const EMPTY_LIST = of([]).pipe(first());\r\n    if (!field.options?.collection) {\r\n      return EMPTY_LIST;\r\n    }\r\n    switch (field.options.collection) {\r\n      case CollectionType.Banks:\r\n        field.options.items = false;\r\n        return this.sessionDS\r\n          .getBanks(this.method.value)\r\n          .pipe(\r\n            map(({data}) => {\r\n              field.options.items = data;\r\n              this.cd.detectChanges();\r\n              return data;\r\n            })\r\n          );\r\n      case CollectionType.Documents:\r\n        field.options.items = false;\r\n        return this.sessionDS\r\n          .getDocuments(this.method.value)\r\n          .pipe(\r\n            map(({data}) => {\r\n              field.options.items = data;\r\n              this.cd.detectChanges();\r\n              return data;\r\n            })\r\n          );\r\n      default:\r\n        return EMPTY_LIST;\r\n    }\r\n  }\r\n\r\n  get country(): AbstractControl {\r\n    return this.get('country') as AbstractControl;\r\n  }\r\n\r\n  get method(): AbstractControl {\r\n    return this.get('method') as AbstractControl;\r\n  }\r\n\r\n  get currency(): FormControl {\r\n    return this.get('currency') as FormControl;\r\n  }\r\n\r\n  get userCurrency(): FormControl {\r\n    return this.get('user_currency') as FormControl;\r\n  }\r\n\r\n  get payment(): FormGroup {\r\n    return this.get('payment') as FormGroup;\r\n  }\r\n\r\n  get amount(): AbstractControl {\r\n    return this.payment.get(this.fields.find(field => field.type === PaymentFieldTypeEnum.Amount).name) as AbstractControl;\r\n  }\r\n\r\n  public get methodName(): string {\r\n    if (!this.method.value) {\r\n      return null;\r\n    }\r\n    return this.sessionDS.getTypeNameById(this.method.value);\r\n  }\r\n\r\n  getTypeNameById(id) {\r\n    return this.sessionDS.getTypeNameById(id);\r\n  }\r\n\r\n  saveDefaultCountry(): void {\r\n    this._storage.saveDefaultCountry(this.country.value);\r\n  }\r\n\r\n  saveDefaultMethodName(): void {\r\n    this._storage.saveDefaultMethodName(this.methodName);\r\n  }\r\n\r\n  saveDefaultCurrency(): void {\r\n    this._storage.saveDefaultCurrency(this.currency.value);\r\n  }\r\n\r\n  get defaultCountry(): string {\r\n    return this._storage.defaultCountry;\r\n  }\r\n\r\n  get defaultMethodName(): string {\r\n    return this._storage.defaultMethodName;\r\n  }\r\n\r\n  get defaultCurrency(): string {\r\n    return this._storage.defaultCurrency;\r\n  }\r\n\r\n  public cancelRequests() {\r\n    this.cancelRequestsSubscriber.next();\r\n  }\r\n\r\n  public getPaymentValue() {\r\n    const data: TerminalPaymentPrepareRequest = {\r\n      typeId: this.method.value,\r\n      currency: this.currency.value,\r\n      type: this.getTypeNameById(this.method.value),\r\n      user_currency: this.userCurrency.value,\r\n      ...this.payment.getRawValue()\r\n    }\r\n    this.fields.forEach((field: PaymentField) => {\r\n      if (field.type === PaymentFieldTypeEnum.Amount) {\r\n        data[field.name] = +data[field.name];\r\n      }\r\n    });\r\n    return removeEmptyProps(data);\r\n  }\r\n  updateValueAndValidityIframes(): void {\r\n    this.fields.forEach(({ name, type }) => {\r\n      if (type === PaymentFieldTypeEnum.Iframe) {\r\n        this.payment.get(name).updateValueAndValidity({ emitEvent: false });\r\n      }\r\n    });\r\n  }\r\n\r\n  get readyIframesSubmit(): boolean {\r\n    return this.fields\r\n      .filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)\r\n      .every(({ name, type }) => !this.payment.get(name).invalid);\r\n  }\r\n\r\n  isAmountEditable(): boolean {\r\n    return this.sessionDS.getSessionValue().amountEditable;\r\n  }\r\n\r\n  hasWhatToFill() {\r\n    const _hasWhatToFill = this.country.enabled || this.method.enabled || this.currency.enabled || this.isAmountEditable();\r\n    const fields = this.fields;\r\n    if (_hasWhatToFill) {\r\n      return true;\r\n    }\r\n    if (!fields.length) {\r\n      return false;\r\n    }\r\n    return fields.some((f) => {\r\n      const control = this.payment.get(f.name);\r\n      if (f.type === PaymentFieldTypeEnum.Amount) {\r\n        return !control.valid;\r\n      }\r\n      return this.payment.get(f.name).enabled;\r\n    });\r\n  }\r\n\r\n  setCDEError(code: I18N_KEY) {\r\n    this.clearValidators();\r\n    this.setValidators(() => {\r\n      if (this.methodName === 'card') {\r\n        return {cde_error: code};\r\n      }\r\n      return null;\r\n    });\r\n    this.updateValueAndValidity({emitEvent: false});\r\n  }\r\n\r\n  distinctValueChanges(): Observable<Partial<{ [x: string]: any }>> {\r\n    return this.valueChanges.pipe(\r\n      debounceTime(300),\r\n      distinctUntilChanged((prev, curr) => {\r\n        if (\r\n          !prev ||\r\n          !curr ||\r\n          Object.keys(prev.payment).length !== Object.keys(curr.payment).length\r\n        ) {\r\n          return false;\r\n        }\r\n        return (\r\n          prev.country === curr.country &&\r\n          prev.method === curr.method &&\r\n          prev.currency === curr.currency &&\r\n          prev.payment.amount === curr.payment.amount &&\r\n          (\r\n            !this.versionSettings.invokePaymentChangesByField || this.versionSettings.invokePaymentChangesByField.some(name => {\r\n              return prev.payment[name] === curr.payment[name];\r\n            })\r\n          )\r\n        );\r\n      }),\r\n    );\r\n  }\r\n\r\n  public ngOnDestroy() {\r\n    this.unSubscriber.next();\r\n    this.unSubscriber.unsubscribe();\r\n    this.cancelRequestsSubscriber.next();\r\n    this.cancelRequestsSubscriber.unsubscribe();\r\n  }\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_COUNTRIES } from '../models/constants';\r\n\r\n@Pipe({\r\n    name: 'country_translate',\r\n    pure: true,\r\n    standalone: true\r\n})\r\nexport class CountryTranslatePipe implements PipeTransform {\r\n\tprivate i18n_countries = inject(I18N_COUNTRIES);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(code: string, lang: string = this.translateSrv.currentLang): any {\r\n\t\treturn this.i18n_countries[lang][code] || code;\r\n\t}\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CountryTranslatePipe } from './country-translate.pipe';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\n\r\n@Pipe({\r\n    name: 'countries_sort',\r\n    pure: true,\r\n    standalone: true\r\n})\r\nexport class CountriesSortPipe implements PipeTransform {\r\n\tprivate countryTranslatePipe = inject(CountryTranslatePipe);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(types: string[], lang: string = this.translateSrv.currentLang): any {\r\n        return types.sort((c1, c2) => {\r\n            if (c1 === OTHER_COUNTRY_CODE) {\r\n                return 1;\r\n            }\r\n            const c1Translation = this.countryTranslatePipe\r\n                .transform(c1, lang);\r\n            const c2Translation = this.countryTranslatePipe\r\n                .transform(c2,lang );\r\n            return c1Translation > c2Translation ? 1: (c1Translation === c2Translation ? 0 : -1);\r\n        });\r\n    }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\r\nimport { map } from 'rxjs/operators';\r\nimport { ScriptLoader } from '../../../../../services/script-loader';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\nimport { SessionDataSource } from \"../../../../../services/session.data-source\";\r\n\r\n@Injectable()\r\nexport class CardSdkService {\r\n  private scriptLoaderSrv: ScriptLoader = inject(ScriptLoader);\r\n  private sessionSrv = inject(SessionDataSource);\r\n  private _sdk: CdeTerminalSdk;\r\n  private _pending = false;\r\n  private _submitted = false;\r\n\r\n  markAsReady(): void {\r\n    this._pending = false;\r\n  }\r\n\r\n  markAsSubmitted() {\r\n    this._submitted = true;\r\n  }\r\n\r\n  get pending(): boolean {\r\n    return this._pending;\r\n  }\r\n\r\n  public submit(): void {\r\n    if (!this._submitted && this._sdk) {\r\n      this._sdk.submit();\r\n      this._pending = true;\r\n    }\r\n  }\r\n\r\n  private get _ready$(): Observable<void> {\r\n    return fromPromise(this.scriptLoaderSrv.fetchScript('cde_sdk'));\r\n  }\r\n\r\n  createCardTerminalSdk$(\r\n    lang: string,\r\n    id: string,\r\n    tabindex?: number\r\n  ): Observable<CdeTerminalSdk> {\r\n    return this._ready$.pipe(\r\n      map(() => (this._sdk = this.sessionSrv.createCardTerminalSdk(lang, id, tabindex))),\r\n    );\r\n  }\r\n}\r\n","import { Directive, forwardRef, inject } from '@angular/core';\r\nimport {\r\n  AbstractControl,\r\n  AsyncValidator,\r\n  NG_ASYNC_VALIDATORS,\r\n  ValidationErrors,\r\n} from '@angular/forms';\r\nimport { I18N_KEY } from './../../../../../i18n/i18n-key.enum';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\n@Directive({\r\n  selector: '[appIframeValidatorDirective]',\r\n  standalone: true,\r\n  providers: [\r\n    {\r\n      provide: NG_ASYNC_VALIDATORS,\r\n      useExisting: forwardRef(() => IframeValidatorDirectiveDirective),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class IframeValidatorDirectiveDirective implements AsyncValidator {\r\n  private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n  private _sdk: CdeTerminalSdk;\r\n\r\n  private submitting$: Subject<ValidationErrors | null> = new Subject();\r\n\r\n  private _fatalError: I18N_KEY;\r\n  private _validationSdkError = false;\r\n\r\n  registerSDK(sdk?: CdeTerminalSdk): void {\r\n    if (!sdk) {\r\n      this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;\r\n    } else {\r\n      this._sdk = sdk;\r\n      this.handleSubmitting();\r\n    }\r\n  }\r\n\r\n  private handleSubmitting(): void {\r\n    this._sdk.onInputPending(() => {\r\n      this._validationSdkError = true;\r\n    });\r\n    this._sdk.onError((code) => {\r\n      this._validationSdkError = false;\r\n      let codeError = I18N_KEY.ERROR_OCCUR;\r\n      if (code === 501) {\r\n        codeError = I18N_KEY.CDE_CARD_ERROR_501;\r\n      } else if (code === 500) {\r\n        codeError = I18N_KEY.CDE_CARD_ERROR_500;\r\n      } else if (code === 504) {\r\n        codeError = I18N_KEY.CDE_CARD_ERROR_504;\r\n      }\r\n      this._fatalError = codeError;\r\n    });\r\n    this._sdk.onInputReady(() => {\r\n      this._validationSdkError = false;\r\n      this.submitting$.next(null);\r\n    });\r\n    this._sdk.onInputSubmitted(() => {\r\n      this._validationSdkError = false;\r\n      this.submitting$.next(null);\r\n    });\r\n    this._sdk.onTimeout(() => {\r\n      this._validationSdkError = false;\r\n      this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;\r\n    });\r\n  }\r\n\r\n  validate(\r\n    control: AbstractControl,\r\n  ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\r\n    if (this._fatalError) {\r\n      return of({ cde_error: this._fatalError });\r\n    }\r\n    if (this._validationSdkError) {\r\n      return of({ cde_validation_error: true });\r\n    }\r\n    if (this.cardSdkSrv.pending) {\r\n      return this.submitting$.asObservable();\r\n    }\r\n    return of(null);\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DestroyRef,\r\n  forwardRef,\r\n  inject,\r\n  Injector,\r\n  Input,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';\r\nimport { I18N_KEY } from '../../../../../i18n';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';\r\nimport { insertRemoveTrigger } from '../../../../../helpers';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\nconst ID_CDE_CONTAINER = 'cde-container';\r\n\r\n@Component({\r\n    selector: 'app-constructor-field-iframe',\r\n    templateUrl: './constructor-field-iframe.component.html',\r\n    styleUrls: ['./constructor-field-iframe.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    animations: [insertRemoveTrigger],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => ConstructorFieldIframeComponent),\r\n            multi: true,\r\n        },\r\n        CardSdkService,\r\n    ],\r\n    imports: [TranslateByKeyPipe, GmSkeletonComponent],\r\n    hostDirectives: [\r\n        {\r\n            directive: IframeValidatorDirectiveDirective,\r\n        },\r\n    ]\r\n})\r\nexport class ConstructorFieldIframeComponent\r\n  implements AfterViewInit, ControlValueAccessor\r\n{\r\n  private _translateSrv: TranslateService = inject(TranslateService);\r\n  private _cd: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n  private _control: AbstractControl;\r\n  private _injector: Injector = inject(Injector);\r\n  private _destroyRef: DestroyRef = inject(DestroyRef);\r\n  viewReady = false;\r\n\r\n  @Input() tabIndex: number;\r\n\r\n  private validator: IframeValidatorDirectiveDirective = inject(\r\n    IframeValidatorDirectiveDirective,\r\n  );\r\n\r\n  private _sdk: CdeTerminalSdk;\r\n  private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n\r\n  private _loading = true;\r\n  status: I18N_KEY;\r\n  readonly I18N_KEY = I18N_KEY;\r\n\r\n  readonly ID_CDE_CONTAINER = ID_CDE_CONTAINER;\r\n  registerOnTouched(fn: any): void {}\r\n  registerOnChange(fn: any): void {}\r\n  writeValue(): void {}\r\n\r\n  get loading(): boolean {\r\n    return this._loading;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this._control = this._injector.get(NgControl).control;\r\n    this.cardSdkSrv\r\n      .createCardTerminalSdk$(\r\n        this._translateSrv.currentLang,\r\n        this.ID_CDE_CONTAINER,\r\n        this.tabIndex\r\n      )\r\n      .pipe(takeUntilDestroyed(this._destroyRef))\r\n      .subscribe({\r\n        next: (sdk: CdeTerminalSdk) => {\r\n          this._sdk = sdk;\r\n          this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());\r\n          this.validator.registerSDK(sdk);\r\n          this._init();\r\n        },\r\n        error: () => {\r\n          this.validator.registerSDK();\r\n          this._updateValueAndValidity();\r\n        },\r\n      });\r\n  }\r\n\r\n  private _updateValueAndValidity(): void {\r\n    this.cardSdkSrv.markAsReady();\r\n    this._control?.updateValueAndValidity({ onlySelf: true });\r\n    this._cd.detectChanges();\r\n    this.refreshHeight();\r\n  }\r\n\r\n  refreshHeight(): void {\r\n    setTimeout(() => {\r\n      this._sdk?.refreshHeight();\r\n      this.viewReady = true;\r\n      this._cd.detectChanges();\r\n    }, 100);\r\n  }\r\n\r\n  private _init(): void {\r\n    this._sdk.onInputPending(() => {\r\n      this._loading = false;\r\n      this._updateValueAndValidity();\r\n    });\r\n\r\n    this._sdk.onInputReady(() => {\r\n      this._updateValueAndValidity();\r\n    });\r\n\r\n    this._sdk.onInputSubmitted(() => {\r\n      this._loading = false;\r\n      this.cardSdkSrv.markAsSubmitted();\r\n      this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;\r\n      this._updateValueAndValidity();\r\n    });\r\n\r\n    this._sdk.onTimeout(() => {\r\n      this._updateValueAndValidity();\r\n    });\r\n\r\n    this._sdk.onError(() => {\r\n      this._loading = false;\r\n      this._updateValueAndValidity();\r\n    });\r\n\r\n    this._translateSrv.onLangChange\r\n      .pipe(takeUntilDestroyed(this._destroyRef))\r\n      .subscribe({\r\n        next: (options: LangChangeEvent) => {\r\n          if (!options.lang) {\r\n            return;\r\n          }\r\n          this._sdk.useLang(options.lang);\r\n        },\r\n      });\r\n  }\r\n}\r\n","@if (!status) {\r\n  <div\r\n    class=\"iframe-container\"\r\n    [id]=\"ID_CDE_CONTAINER\"\r\n    [class.iframe-container--ready]=\"viewReady\"\r\n  ></div>\r\n} @else if (!loading) {\r\n  <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\r\n}\r\n\r\n@if (loading) {\r\n  <div class=\"trm-skeleton-fields\">\r\n    @for (i of [1,2]; track i) {\r\n      <div class=\"trm-skeleton-field\">\r\n        <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n        <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n      </div>\r\n    }\r\n  </div>\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionDataSource } from '../services/session.data-source';\r\n\r\n@Pipe({\r\n    name: 'method_title',\r\n    pure: true,\r\n    standalone: true\r\n})\r\nexport class MethodTitlePipe implements PipeTransform {\r\n    private sessionDS = inject(SessionDataSource);\r\n\r\n    constructor() {\r\n    }\r\n\r\n    transform(name: string): any {\r\n        return this.sessionDS.getConfiguration(name)?.title;\r\n    }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { FocusHandler } from '../../helpers/key-down-handler';\r\n\r\n@Directive({\r\n    selector: '[tabindex]',\r\n    standalone: true\r\n})\r\nexport class  TabIndexFocusDirective {\r\n\r\n    @HostListener('focus', ['$event.target']) focus(target: HTMLElement) {\r\n        Array.from(target.classList).some(cl => /--disabled$/.test(cl)) && FocusHandler.next();\r\n    }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DestroyRef,\r\n  forwardRef,\r\n  inject,\r\n  Input,\r\n  OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MethodTypeType } from '../../../../../../codegen/model/models';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MethodTitlePipe } from './../../../../../pipes/method-title.pipe';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { NgClass } from '@angular/common';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n  TrmSelectLabelTemplateDirective\r\n} from '../../../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n    selector: 'app-ps-select',\r\n    templateUrl: './ps-select.component.html',\r\n    styleUrls: ['./ps-select.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => PsSelectComponent),\r\n            multi: true,\r\n        },\r\n        MethodTitlePipe,\r\n        TranslatePipe\r\n    ],\r\n    imports: [TabIndexFocusDirective, NgClass, TrmSelectComponent, FormsModule, ReactiveFormsModule, TrmSelectLabelTemplateDirective, MethodTitlePipe, TranslateByKeyPipe]\r\n})\r\nexport class PsSelectComponent implements OnInit, ControlValueAccessor {\r\n  private cd = inject(ChangeDetectorRef);\r\n  private methodTitlePipe = inject(MethodTitlePipe);\r\n  private translatePipe = inject(TranslatePipe);\r\n  private destroyRef: DestroyRef = inject(DestroyRef);\r\n  I18N_KEY = I18N_KEY;\r\n  onChange = (_value) => {\r\n  };\r\n  onTouch = () => {\r\n  };\r\n  @Input() methods: MethodTypeType[] = [];\r\n  disabled = false;\r\n  @Input() tabIndex: number;\r\n\r\n  selectedType: number;\r\n  otherMethodControl: FormControl = new FormControl<number>(undefined);\r\n  searchString: string;\r\n\r\n  get popularMethods(): MethodTypeType[] {\r\n    if (this.disabled) {\r\n      return null;\r\n    }\r\n    return this.methods.slice(0, 4);\r\n  }\r\n\r\n  get otherMethods(): MethodTypeType[] {\r\n    if (this.disabled) {\r\n      return this.methods.slice(0);\r\n    }\r\n    return this.methods\r\n      .slice(this.popularMethods.length)\r\n      .filter((m: MethodTypeType) => {\r\n        if (!this.searchString) {\r\n          return true;\r\n        } else {\r\n          const title: string = this.translatePipe.transform(\r\n            this.methodTitlePipe.transform(m.name)\r\n          );\r\n          return title.toLowerCase()\r\n            .split(' ').some(\r\n              ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n            );\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.otherMethodControl\r\n      .valueChanges\r\n      .pipe(\r\n        filter(m => !!m),\r\n        takeUntilDestroyed(this.destroyRef)\r\n      )\r\n      .subscribe((method) => this.selectMethod(method));\r\n  }\r\n\r\n  selectMethod(method: number, options: { emitChange: boolean } = {emitChange: true}) {\r\n    if (!method || this.selectedType === method) {\r\n      return;\r\n    }\r\n    this.selectedType = method;\r\n    if (options?.emitChange) {\r\n      this.onChange(method);\r\n    }\r\n    const hasInOtherList = this.otherMethods.some(m => m.id === method);\r\n    this.otherMethodControl.setValue(hasInOtherList ? method : undefined, {emitEvent: false, onlySelf: true});\r\n  }\r\n\r\n  writeValue(method: number) {\r\n    this.cd.detectChanges();\r\n    this.selectMethod(method, {emitChange: false});\r\n  }\r\n\r\n  registerOnTouched(fn: any) {\r\n    this.onTouch = fn;\r\n  }\r\n\r\n  registerOnChange(fn: any) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled\r\n    if (isDisabled) {\r\n      if (!this.otherMethodControl.value && this.selectedType) {\r\n        this.otherMethodControl.setValue(this.selectedType, {emitEvent: false, onlySelf: true});\r\n      }\r\n      this.otherMethodControl.disable();\r\n    } else {\r\n      this.otherMethodControl.enable();\r\n    }\r\n    this.cd.detectChanges();\r\n  }\r\n\r\n  search(value: string) {\r\n    this.searchString = value;\r\n    this.cd.markForCheck();\r\n  }\r\n}\r\n","<label class=\"trm-label\">\r\n  {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}}\r\n</label>\r\n<ul class=\"methods\">\r\n  @for (method of popularMethods; track method.id) {\r\n    <li class=\"method\"\r\n      [class.method--selected]=\"selectedType === method.id\"\r\n      [tabindex]=\"tabIndex\"\r\n      (keydown.enter)=\"$event.stopPropagation(); selectMethod(method.id)\"\r\n      (blur)=\"onTouch()\"\r\n      (click)=\"selectMethod(method.id)\"\r\n      >\r\n      <span class=\"method__icon\"\r\n        [ngClass]=\"'ps-icon-'+method.name\"\r\n      ></span>\r\n      <span class=\"method__name\" [title]=\"method.name | trans\" > {{method.name | method_title | trans}} </span>\r\n    </li>\r\n  }\r\n  @if (searchString || otherMethods.length) {\r\n    <li class=\"methods__other\">\r\n      <app-trm-select [data]=\"otherMethods\"\r\n        idLabel=\"method\"\r\n        (search)=\"search($event)\"\r\n        [tabIndex]=\"tabIndex\"\r\n        (open)=\"onTouch()\"\r\n        [formControl]=\"otherMethodControl\"\r\n        [placeholder]=\"I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS | trans\"\r\n        class=\"c-field-select trm-form-field\"\r\n        >\r\n        <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n          <span class=\"method__icon\"\r\n          [ngClass]=\"'ps-icon-'+item.name\"></span>\r\n          <span class=\"method__name\"\r\n          [title]=\"item.name | trans\" >{{item.name | method_title | trans}}</span>\r\n        </ng-template>\r\n      </app-trm-select>\r\n    </li>\r\n  }\r\n</ul>\r\n<ng-content select=\"[app-ps-select-hint]\"></ng-content>\r\n<ng-content select=\"[app-ps-select-error]\"></ng-content>\r\n\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  forwardRef,\r\n  inject,\r\n  Injector,\r\n  Input\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptionsItem } from '../../models';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormsModule,\r\n  NG_VALUE_ACCESSOR,\r\n  NgControl,\r\n  ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\n\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-constructor-field-select',\r\n    templateUrl: './constructor-field-select.component.html',\r\n    styleUrls: ['./constructor-field-select.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    animations: [insertRemoveTrigger],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => ConstructorFieldSelectComponent),\r\n            multi: true\r\n        }\r\n    ],\r\n    imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldSelectComponent implements ControlValueAccessor, AfterViewInit {\r\n  private cd = inject(ChangeDetectorRef);\r\n  private injector = inject(Injector);\r\n  @Input() config: PaymentField;\r\n  @Input() items: PaymentFieldOptionsItem[];\r\n  @Input() tabIndex: number;\r\n  searchString: string;\r\n  I18N_KEY = I18N_KEY;\r\n\r\n  onChange = (_value: any) => {\r\n  };\r\n  onTouch = () => {\r\n  };\r\n  control: AbstractControl;\r\n\r\n  get data() {\r\n    if (!this.items) {\r\n      return [];\r\n    }\r\n    return this.items\r\n      .filter((option: PaymentFieldOptionsItem) => {\r\n        if (!this.searchString) {\r\n          return true;\r\n        } else {\r\n          const title: string = option.name;\r\n          return title.toLowerCase()\r\n            .split(' ').some(\r\n              ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n            );\r\n        }\r\n      })\r\n  }\r\n\r\n  registerOnChange(fn: any) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any) {\r\n    this.onTouch = fn;\r\n  }\r\n\r\n  search(searchString: string) {\r\n    this.searchString = searchString;\r\n    this.cd.markForCheck();\r\n  }\r\n\r\n  writeValue(value: any) {\r\n    this.cd.markForCheck();\r\n  }\r\n\r\n  get apiError(): string {\r\n    return this.control?.getError('error');\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.control = this.injector.get(NgControl).control;\r\n    this.cd.detectChanges();\r\n  }\r\n}\r\n","@if (control) {\r\n  <app-trm-select [data]=\"data\"\r\n                  [placeholder]=\"config.placeholder | trans\"\r\n                  [label]=\"config.label | trans\"\r\n                  [name]=\"config.name\"\r\n                  (search)=\"search($event)\"\r\n                  (open)=\"onTouch()\"\r\n                  [formControl]=\"control\"\r\n                  [tabIndex]=\"tabIndex\"\r\n                  class=\"c-field-select trm-form-field\"\r\n  ></app-trm-select>\r\n  @if (control.hasError('required') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('error') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ apiError | trans }}\r\n    </div>\r\n  }\r\n\r\n  @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ control.getError('custom_error') | trans }}\r\n    </div>\r\n  }\r\n\r\n}\r\n","import { NgxMaskService } from 'ngx-mask';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MaskService extends NgxMaskService {\r\n    constructor() {\r\n        super();\r\n    }\r\n\r\n    numberToString(value: number | string): string {\r\n        return super.numberToString(value).replace(/,/g,'.');\r\n    }\r\n    applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any): string {\r\n        // Fix bug of cursor position in ngx-mask\r\n        this['_shift'].clear();\r\n        return super.applyMask(inputValue, maskExpression, position, justPasted, backspaced, cb);\r\n    }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { MaskService } from '../services/mask.service';\r\n\r\n@Directive({\r\n    providers: [{\r\n            provide: NgxMaskService,\r\n            useClass: MaskService\r\n        }],\r\n    selector: 'input[mask]',\r\n    standalone: true\r\n})\r\nexport class  InputMaskCorrector { }\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  forwardRef,\r\n  inject,\r\n  Injector,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField, PaymentFieldTypeEnum } from '../../models';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormsModule,\r\n  NG_VALUE_ACCESSOR,\r\n  NgControl,\r\n  ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDatepicker, MatDatepickerInput } from '@angular/material/datepicker';\r\nimport momentjs from 'moment-timezone';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';\r\nimport { NgxMaskConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { removeSpecSymbols } from '../../../../../helpers/phone-codes';\r\nimport { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-constructor-field-text',\r\n    templateUrl: './constructor-field-text.component.html',\r\n    styleUrls: ['./constructor-field-text.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    animations: [insertRemoveTrigger],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => ConstructorFieldTextComponent),\r\n            multi: true\r\n        }\r\n    ],\r\n    imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldTextComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\r\n  private cd = inject(ChangeDetectorRef);\r\n  private maskSrv = inject(MaskResolver);\r\n  private injector = inject(Injector);\r\n  private maskPipe = inject(NgxMaskPipe);\r\n\r\n  private unsub: Subject<void> = new Subject<void>();\r\n  private _type = 'text';\r\n\r\n  get disabled() {\r\n    return this.config.readonly || false;\r\n  };\r\n\r\n  readonly FORMAT_DATE = FORMAT_DATE;\r\n  mask: string;\r\n  dropSpecialCharacters = true;\r\n  I18N_KEY = I18N_KEY;\r\n\r\n  @Input() config: PaymentField;\r\n\r\n  get inputmode(): \"text\" | \"tel\" | \"numeric\" | \"email\" | \"url\" | \"none\" {\r\n    return this.config.inputMode || 'text';\r\n  }\r\n\r\n  @Input() matDatepicker: MatDatepicker<momentjs.Moment>;\r\n  @Input() tabIndex: number;\r\n  @Output() maskedValueChange: EventEmitter<string> = new EventEmitter();\r\n  control: AbstractControl;\r\n  @ViewChild(NgxMaskDirective) dir: NgxMaskDirective;\r\n  maskPatterns: NgxMaskConfig['patterns'];\r\n  specialCharacters: string[];\r\n  onChange = (_value: any) => {\r\n  };\r\n  onTouch = () => {\r\n  };\r\n\r\n  constructor() {\r\n  }\r\n\r\n  get type() {\r\n    if (this.config.type === PaymentFieldTypeEnum.Email) {\r\n      return 'email';\r\n    }\r\n    return this._type;\r\n  }\r\n\r\n  get name() {\r\n    return this.config.name;\r\n  }\r\n\r\n  onDateInput(e: InputEvent) {\r\n    const target: HTMLInputElement = e.target as HTMLInputElement;\r\n    let {selectionStart, selectionEnd} = target;\r\n    this.control?.markAsUntouched();\r\n    e.preventDefault();\r\n    e.stopPropagation();\r\n    target.value = this.maskPipe\r\n      .transform(target.value, this.mask, {patterns: this.maskPatterns})\r\n      .replace(/^-|-$/, '');\r\n\r\n    setTimeout(() => {\r\n      this.control?.updateValueAndValidity();\r\n\r\n      if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {\r\n        while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {\r\n          selectionEnd += 1;\r\n          selectionStart += 1;\r\n        }\r\n      }\r\n      target.setSelectionRange(selectionStart, selectionEnd);\r\n    });\r\n  }\r\n\r\n  onPaste(e: ClipboardEvent) {\r\n    const t = e.target as HTMLInputElement;\r\n    if (this.type === PaymentFieldTypeEnum.Email) {\r\n      this._emitMaskedValueChanges(t);\r\n      return;\r\n    }\r\n    const value = t.value;\r\n    let content = e.clipboardData?.getData('text') || '';\r\n    let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;\r\n    if (value) {\r\n      const arr = Array.from(value);\r\n      arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));\r\n      content = removeSpecSymbols(arr.join(''));\r\n    }\r\n    this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);\r\n    this.cd.detectChanges();\r\n    this.control?.setValue(content);\r\n    this.cd.detectChanges();\r\n    e.preventDefault();\r\n    this._emitMaskedValueChanges(t, selectionStart);\r\n  }\r\n\r\n  onInput(e: InputEvent) {\r\n    this.control?.markAsUntouched();\r\n    this.cd.markForCheck();\r\n    if (this.matDatepicker) {\r\n      return;\r\n    }\r\n    const target = e.target as HTMLInputElement;\r\n    if (this.type === PaymentFieldTypeEnum.Email) {\r\n      this._emitMaskedValueChanges(target);\r\n      return;\r\n    }\r\n    const value: string = this.control?.value;\r\n    let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;\r\n    const mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n    if (!mask || mask === INITIAL_PHONE_MASK) {\r\n      return;\r\n    }\r\n    this.mask = mask;\r\n\r\n    this.cd.detectChanges();\r\n    this._emitMaskedValueChanges(target, selectionStart);\r\n  }\r\n\r\n  private _emitMaskedValueChanges(target, positionInUnmaskedValue?) {\r\n    setTimeout(() => {\r\n      this.control?.updateValueAndValidity();\r\n      if (this.mask) {\r\n        this.maskedValueChange.emit(target.value);\r\n      }\r\n      this._setSelection(target, positionInUnmaskedValue);\r\n    });\r\n  }\r\n\r\n  private _setSelection(target: HTMLInputElement, positionInUnmaskedValue?) {\r\n    if (this.type === PaymentFieldTypeEnum.Email) {\r\n      return;\r\n    }\r\n    let positionMaskedValue = 0;\r\n    let i = 0;\r\n    while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {\r\n      if (/\\d/.test(target.value[positionMaskedValue])) {\r\n        i++;\r\n      }\r\n      positionMaskedValue++;\r\n    }\r\n    target.setSelectionRange(positionMaskedValue, positionMaskedValue);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.control = this.injector.get(NgControl).control;\r\n    this.cd.detectChanges();\r\n  }\r\n\r\n  get apiError(): string {\r\n    return this.control?.getError('error');\r\n  }\r\n\r\n  registerOnChange(fn: any) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any) {\r\n    this.onTouch = fn;\r\n  }\r\n\r\n  writeValue(value: any) {\r\n    if (value) {\r\n      this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n    }\r\n    this.cd.markForCheck();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.mask = this.maskSrv.getMaskByValue(this.config.mask);\r\n    if (this.config.maskValidation !== true) {\r\n      this.config.maskValidation = false;\r\n    }\r\n    this.maskPatterns = this.maskSrv.getPatterns(this.config);\r\n    this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];\r\n    this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.unsub.next();\r\n    this.unsub.unsubscribe();\r\n  }\r\n}\r\n","@if (control) {\r\n  <label class=\"trm-label\"\r\n         [for]=\"config.name\"\r\n  > {{ config.label | trans }} </label>\r\n  <div class=\"input-wrapper trm-form-field-wrapper c-text\"\r\n       [class.c-text--disabled]=\"disabled\"\r\n       [class.c-text--uppercase]=\"config.uppercase\">\r\n    @if (!matDatepicker) {\r\n      <input\r\n        class=\"trm-form-field trm-input\"\r\n        [class.trm-form-field--disabled]=\"disabled\"\r\n        [placeholder]=\"config.placeholder | trans\"\r\n        (blur)=\"onTouch()\"\r\n        [formControl]=\"control\"\r\n        (input)=\"onInput($event)\"\r\n        (paste)=\"onPaste($event)\"\r\n        [type]=\"type\"\r\n        [name]=\"name\"\r\n        [id]=\"name\"\r\n        [mask]=\"mask\"\r\n        [attr.inputmode]=\"inputmode\"\r\n        [patterns]=\"maskPatterns\"\r\n        [allowNegativeNumbers]=\"false\"\r\n        [thousandSeparator]=\"' '\"\r\n        [decimalMarker]=\"'.'\"\r\n        [validation]=\"config.maskValidation || false\"\r\n        [specialCharacters]=\"specialCharacters\"\r\n        [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n        [tabindex]=\"tabIndex\"\r\n      />\r\n    } @else {\r\n      <input class=\"trm-form-field trm-input\"\r\n             [matDatepicker]=\"matDatepicker\"\r\n             [formControl]=\"control\"\r\n             [placeholder]=\"config.placeholder | trans\"\r\n             (input)=\"onDateInput($event)\"\r\n             [attr.inputmode]=\"inputmode\"\r\n             (blur)=\"onTouch()\"\r\n             [min]=\"config?.options?.min\"\r\n             [max]=\"config?.options?.max\"\r\n             [tabindex]=\"tabIndex\"\r\n             type=\"text\"\r\n             [name]=\"name\"\r\n             [id]=\"name\"\r\n      />\r\n    }\r\n    <ng-content select=\"[app-c-text-suffix]\"></ng-content>\r\n  </div>\r\n  @if (config.description) {\r\n    <div class=\"c-text__hint\"\r\n         [innerHTML]=\"config.description | trans\"></div>\r\n  }\r\n  <ng-content select=\"[app-c-text-hint]\"></ng-content>\r\n  @if (control.hasError('required') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('email') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_EMAIL | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('min') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_MIN | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('max') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_MAX | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('pattern') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('mask') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('matDatepickerParse') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('matDatepickerMin') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ (I18N_KEY.VALIDATION_DATE_MIN | trans) + ' ' + control.getError('matDatepickerMin').min.format(FORMAT_DATE) }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('matDatepickerMax') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ (I18N_KEY.VALIDATION_DATE_MAX | trans) + ' ' + control.getError('matDatepickerMax').max.format(FORMAT_DATE) }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('error') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ apiError | trans }}\r\n    </div>\r\n  }\r\n  @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n    <div class=\"trm-error\"\r\n         @insertRemove\r\n    >\r\n      {{ control.getError('custom_error') | trans }}\r\n    </div>\r\n  }\r\n}\r\n","import { Component, inject, Input, TemplateRef } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe, NgTemplateOutlet } from '@angular/common';\r\nimport { PaymentFieldOptions } from \"../../models\";\r\nimport { insertRemoveTrigger } from \"../../../../../helpers\";\r\nimport { TerminalTplComponent } from '../../../../../terminal-tpl.component';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n  selector: 'app-method-amount-hint',\r\n  templateUrl: './method-amount-hint.component.html',\r\n  styleUrls: ['./method-amount-hint.component.scss'],\r\n  animations: [insertRemoveTrigger],\r\n  providers: [CurrencyPipe],\r\n  imports: [TranslateByKeyPipe, NgTemplateOutlet, TrmAmountComponent],\r\n  host: {\r\n    '[hidden]': '!loading && (!options || (!options.fee && !options.fixedFee && !options.minFixedFee && !options.min && !options.max))'\r\n  }\r\n})\r\nexport class MethodAmountHintComponent {\r\n  private mainTpl: TerminalTplComponent = inject(TerminalTplComponent);\r\n  @Input() loading: boolean;\r\n  @Input() options: PaymentFieldOptions = {};\r\n  I18N_KEY = I18N_KEY;\r\n\r\n  get feeTpl(): TemplateRef<any> {\r\n    return this.mainTpl.feeTpl;\r\n  }\r\n}\r\n","<div class=\"c-method-hint\" @insertRemove>\r\n  @if (loading) {\r\n    <span class=\"trm-spinner\" @insertRemove></span>\r\n  }\r\n  @if (options.fee || options.fixedFee) {\r\n    <div @insertRemove>\r\n      {{ (I18N_KEY.CONSTRUCTOR_LABEL_FEE | trans) }}\r\n      @if (options.fee) {\r\n        <span class=\"trm-amount\">\r\n            <span class=\"trm-amount__value\">{{ options.fee }}<span class=\"trm-currency\">%</span></span>\r\n          </span>\r\n      }\r\n      @if (options.fixedFee && options.fee) {\r\n        <span> + </span>\r\n      }\r\n      @if (options.fixedFee) {\r\n        <trm-amount [value]=\"options.fixedFee\" [code]=\"options.currency\"></trm-amount>\r\n      }\r\n      @if (options.minFixedFee) {\r\n        ({{ I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE | trans }}<trm-amount [value]=\"options.minFixedFee\" [code]=\"options.currency\"></trm-amount>)\r\n      }\r\n    </div>\r\n  }\r\n  @if (options.min) {\r\n    <div @insertRemove>\r\n      {{ (I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT | trans) }}\r\n      <trm-amount [value]=\"options.min\" [code]=\"options.currency\"></trm-amount>\r\n    </div>\r\n  }\r\n  @if (options.max) {\r\n    <div @insertRemove>\r\n      {{ (I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT | trans) }}\r\n      <trm-amount [value]=\"options.max\" [code]=\"options.currency\"></trm-amount>\r\n    </div>\r\n  }\r\n\r\n  @if (feeTpl) {\r\n    <div *ngTemplateOutlet=\"feeTpl; context: {options}\" @insertRemove></div>\r\n  }\r\n</div>\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DestroyRef,\r\n  forwardRef,\r\n  inject,\r\n  Injector,\r\n  Input\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField } from '../../models';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormsModule,\r\n  NG_VALUE_ACCESSOR,\r\n  NgControl,\r\n  ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { isMoment, Moment } from 'moment';\r\nimport { ConstructorFieldTextComponent } from '../constructor-field-text/constructor-field-text.component';\r\nimport { MatDatepicker, MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n    selector: 'app-constructor-field-date',\r\n    templateUrl: './constructor-field-date.component.html',\r\n    styleUrls: ['./constructor-field-date.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => ConstructorFieldDateComponent),\r\n            multi: true\r\n        }\r\n    ],\r\n    imports: [ConstructorFieldTextComponent, FormsModule, ReactiveFormsModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatDatepicker]\r\n})\r\nexport class ConstructorFieldDateComponent implements ControlValueAccessor, AfterViewInit {\r\n  private cd = inject(ChangeDetectorRef);\r\n  private injector = inject(Injector);\r\n  private destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n  readonly FORMAT_DATE = FORMAT_DATE;\r\n  @Input() config: PaymentField;\r\n  @Input() tabIndex: number;\r\n  control: AbstractControl;\r\n\r\n  get startCalendarDate(): Moment {\r\n    return this.config.options?.startCalendarDate;\r\n  }\r\n\r\n  onChange = (_value: any) => {\r\n  };\r\n  onTouch = () => {\r\n  };\r\n\r\n  registerOnChange(fn: any) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any) {\r\n    this.onTouch = fn;\r\n  }\r\n\r\n  writeValue(value: unknown) {\r\n    if (isMoment(value) || typeof value === 'string') {\r\n      if (isMoment(value)) {\r\n        this.control?.setValue(value.format(FORMAT_DATE), {emitEvent: false});\r\n      } else {\r\n        this.control?.setValue(value, {emitEvent: false});\r\n      }\r\n      this.cd.markForCheck();\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.control = this.injector.get(NgControl).control;\r\n    this.cd.detectChanges();\r\n\r\n    this.control\r\n      .valueChanges\r\n      .pipe(\r\n        takeUntilDestroyed(this.destroyRef)\r\n      )\r\n      .subscribe((value) => {\r\n        if (isMoment(value)) {\r\n          this.onChange(value.format(this.FORMAT_DATE));\r\n        }\r\n      });\r\n  }\r\n}\r\n","@if (control) {\r\n  <app-constructor-field-text\r\n      class=\"c-date__input\"\r\n      [tabIndex]=\"tabIndex\"\r\n      [config]=\"config\"\r\n      [formControl]=\"control\"\r\n      [matDatepicker]=\"picker\">\r\n      <mat-datepicker-toggle [for]=\"picker\"\r\n                             app-c-text-suffix\r\n                             class=\"date__toggle\"\r\n                             [tabIndex]=\"tabIndex\"\r\n      >\r\n          <div class=\"date__toggleIcon\"\r\n               matDatepickerToggleIcon\r\n               app-c-text-suffix></div>\r\n      </mat-datepicker-toggle>\r\n  </app-constructor-field-text>\r\n\r\n  <mat-datepicker #picker [tabIndex]=\"tabIndex\" [startAt]=\"startCalendarDate\"></mat-datepicker>\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n    selector: 'app-constructor-preparation',\r\n    templateUrl: './constructor-preparation.component.html',\r\n    styleUrls: ['./constructor-preparation.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [CurrencyPipe],\r\n  imports: [TranslateByKeyPipe, TrmAmountComponent]\r\n})\r\nexport class ConstructorPreparationComponent {\r\n    @Input() maskedWallet = null;\r\n    @Input() wallet: string;\r\n    @Input() confirmationText: string;\r\n    @Input() methodName: string;\r\n    @Input() currency: string;\r\n    @Input() amount: number;\r\n    @Input() total: number;\r\n    I18N_KEY = I18N_KEY;\r\n}\r\n","<div class=\"confirmation\">\r\n  <h5> {{ I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER | trans }} </h5>\r\n  <div class=\"confirmation__content\">\r\n    <ul class=\"confirmation__list\">\r\n      <li class=\"confirmation__list__item\">\r\n        <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}} </div>\r\n        <div class=\"confirmation__value\"> {{methodName | trans}}  </div>\r\n      </li>\r\n\r\n      @if (maskedWallet || wallet) {\r\n        <li class=\"confirmation__list__item\">\r\n          <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_WALLET | trans}} </div>\r\n          <div class=\"confirmation__value\"> {{ maskedWallet || wallet}} </div>\r\n        </li>\r\n      }\r\n\r\n      @if (amount) {\r\n        <li class=\"confirmation__list__item\">\r\n          <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT | trans}} </div>\r\n          <div class=\"confirmation__value\">\r\n            <trm-amount [value]=\"amount\" [code]=\"currency\"></trm-amount>\r\n          </div>\r\n        </li>\r\n      }\r\n\r\n      @if (total) {\r\n        <li class=\"confirmation__list__item\">\r\n          <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE | trans}} </div>\r\n          <div class=\"confirmation__value\">\r\n            <trm-amount [value]=\"total\" [code]=\"currency\"></trm-amount>\r\n          </div>\r\n        </li>\r\n      }\r\n    </ul>\r\n    @if (confirmationText) {\r\n      <p\r\n      class=\"confirmation__text\" [innerHTML]=\"confirmationText\"></p>\r\n    }\r\n    <ng-content selector=\"[app-constructor-preparation-error]\"></ng-content>\r\n  </div>\r\n</div>\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  ViewChild,\r\n  ViewChildren\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptions, PaymentFieldTypeEnum, TerminalStep } from './models';\r\nimport { ConstructorFormService } from './services/constructor-form.service';\r\nimport {\r\n  MethodType,\r\n  MethodTypeType,\r\n  TerminalPaymentConfirmResponse,\r\n  TerminalPaymentPrepareRequest,\r\n  TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { distinctUntilChanged, Subject } from 'rxjs';\r\nimport { first, takeUntil } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountriesSortPipe } from '../../../pipes/countries-sort.pipe';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n  ConstructorFieldIframeComponent\r\n} from \"./components/constructor-field-iframe/constructor-field-iframe.component\";\r\nimport { CountryTranslatePipe } from '../../../pipes/country-translate.pipe';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { TrmSelectComponent } from '../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n  TrmSelectLabelTemplateDirective\r\n} from '../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { PsSelectComponent } from './components/ps-select/ps-select.component';\r\nimport {\r\n  ConstructorFieldSelectComponent\r\n} from './components/constructor-field-select/constructor-field-select.component';\r\nimport { ConstructorFieldTextComponent } from './components/constructor-field-text/constructor-field-text.component';\r\nimport { MethodAmountHintComponent } from './components/method-amount-hint/method-amount-hint.component';\r\nimport { ConstructorFieldDateComponent } from './components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n  ConstructorPreparationComponent\r\n} from './components/constructor-preparation/constructor-preparation.component';\r\nimport { TabIndexFocusDirective } from '../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { OTHER_COUNTRY_CODE } from \"../../../helpers\";\r\nimport { CardSdkService } from \"./components/constructor-field-iframe/card-sdk.service\";\r\n\r\n@Component({\r\n    selector: 'app-constructor-form',\r\n    templateUrl: './constructor-form.component.html',\r\n    styleUrls: ['./constructor-form.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    animations: [insertRemoveTrigger],\r\n    providers: [\r\n        ConstructorFormService,\r\n        CountryTranslatePipe, CountriesSortPipe\r\n    ],\r\n    imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent]\r\n})\r\nexport class ConstructorFormComponent implements OnChanges, AfterViewInit, OnDestroy {\r\n  private cd = inject(ChangeDetectorRef);\r\n  form = inject(ConstructorFormService);\r\n  private translateSrv = inject(TranslateService);\r\n  private countriesSortPipe = inject(CountriesSortPipe);\r\n  private countryTranslatePipe = inject(CountryTranslatePipe);\r\n  private ngScrollBar = inject(NgScrollbar);\r\n  private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n  private unSubscriber = new Subject<void>();\r\n  private preparationStepFilled = false;\r\n  TERMINAL_STEP = TerminalStep;\r\n  @Input() step: TerminalStep;\r\n  @Input() error?: string;\r\n  @Input() response: TerminalPaymentPrepareResponse & TerminalPaymentConfirmResponse & {\r\n    typeId?: number;\r\n  };\r\n  CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;\r\n  @Input() feeLoading: boolean;\r\n  @Input() feeOptions: PaymentFieldOptions;\r\n  @Input() currency: string;\r\n  @Input() userCurrency: string[];\r\n  @Input() loading = null;\r\n  @Input() types: MethodType[] = [];\r\n  @Input() canReturnToProject = true;\r\n  @Output() amountChanged: EventEmitter<number> = new EventEmitter<number>();\r\n  @Output() back: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() prepare: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() confirm: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onPaymentChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input() tabIndex: number;\r\n  countrySearchString: string;\r\n  @ViewChild('paymentRequisites', {static: false}) requisites: ElementRef;\r\n  @ViewChild('hintMethod', {static: false}) hintMethod: ElementRef;\r\n  @ViewChildren(CardSdkService) sdkList: QueryList<CardSdkService>;\r\n  maskedWallet: string;\r\n\r\n  I18N_KEY = I18N_KEY;\r\n\r\n  get countriesList(): string[] {\r\n    return this.countriesSortPipe\r\n      .transform(\r\n        this.types\r\n          .map(type => type.countryISOCode)\r\n          .filter((value, index, self) => self.indexOf(value) === index)\r\n      )\r\n      .filter((m: string) => {\r\n        if (!this.countrySearchString) {\r\n          return true;\r\n        } else {\r\n          const title: string = this.countryTranslatePipe.transform(m);\r\n          return title.toLowerCase()\r\n            .split(' ').some(\r\n              ts => this.countrySearchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n            );\r\n        }\r\n      });\r\n  }\r\n\r\n  get methodsList(): MethodTypeType[] {\r\n    return this.types\r\n      .filter(type => type.countryISOCode === this.form.country.value)\r\n      // distinct\r\n      .filter((type, index, self) => self.map(m => m.type.id).indexOf(type.type.id) === index)\r\n      //sorting by the priority\r\n      .sort((m1, m2) => m1.priority > m2.priority ? 1 : ((m1.priority === m2.priority) ? 0 : -1))\r\n      .map(type => type.type);\r\n  }\r\n\r\n  get currenciesList() {\r\n    return this.types\r\n      .filter(type => type.countryISOCode === this.form.country.value && type.type.id === this.form.method.value)\r\n      .map(type => type.currency)\r\n  }\r\n\r\n  get userCurrenciesList() {\r\n    const filteredTypes = this.currenciesList;\r\n\r\n    if (!this.userCurrency) {\r\n      return filteredTypes;\r\n    }\r\n\r\n    return this.userCurrency\r\n      .filter(userCurrency => filteredTypes.includes(userCurrency))\r\n  }\r\n\r\n  private setCurrencyValue() {\r\n    let defaultCurrency = this.form.defaultCurrency;\r\n\r\n    let currencies = this.currenciesList;\r\n    let currency = currencies[0];\r\n    if (defaultCurrency && this.currenciesList.includes(defaultCurrency)) {\r\n      currency = defaultCurrency;\r\n    } else if (this.currency && this.currenciesList.includes(this.currency)) {\r\n      currency = this.currency;\r\n    }\r\n    this.form.currency.setValue(currency);\r\n\r\n    currencies = this.userCurrenciesList;\r\n    currency = currencies[0];\r\n    if (defaultCurrency && this.userCurrenciesList.includes(defaultCurrency)) {\r\n      currency = defaultCurrency;\r\n    } else if (this.currency && this.userCurrenciesList.includes(this.currency)) {\r\n      currency = this.currency;\r\n    }\r\n    this.form.userCurrency.setValue(currency, {emitEvent: false});\r\n    if (currencies.length === 1 && currency && this.form.method.disabled) {\r\n      this.form.userCurrency.disable();\r\n    }\r\n  }\r\n\r\n  get hasCurrencyMethodSelector(): boolean {\r\n    return this.versionSrv.hasCurrencyMethodSelector === true;\r\n  }\r\n\r\n  get lang(): string {\r\n    return this.translateSrv.currentLang;\r\n  }\r\n\r\n  get skeletonLength() {\r\n    return new Array(this.form.fields?.length || 3).fill(0);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes.types && this.types?.length || changes.currency && this.currency) {\r\n      // Get configuration fields\r\n      const countries = this.countriesList;\r\n      const defaultCountry = this.form.defaultCountry;\r\n      let country = null;\r\n      if (!countries.includes(defaultCountry)) {\r\n        if (countries.includes(OTHER_COUNTRY_CODE)) {\r\n          country = OTHER_COUNTRY_CODE;\r\n        }\r\n      } else {\r\n        country = defaultCountry;\r\n      }\r\n      this.form.country.setValue(country);\r\n      if (!country) {\r\n        return;\r\n      }\r\n      if (countries.length === 1 && this.form.country.value) {\r\n        this.form.country.disable();\r\n      }\r\n\r\n      const methods = this.methodsList;\r\n      const defaultMethodName = this.form.defaultMethodName;\r\n      const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n      this.form.method.setValue(defaultMethod || methods[0]?.id);\r\n\r\n      this.cd.detectChanges();\r\n      if (methods.length === 1 && this.form.country.disabled) {\r\n        this.form.method.disable();\r\n      }\r\n      this.cd.detectChanges();\r\n      this.setCurrencyValue();\r\n      this.cd.detectChanges();\r\n\r\n      this.form\r\n        .distinctValueChanges()\r\n        .pipe(\r\n          takeUntil(this.unSubscriber)\r\n        )\r\n        .subscribe(() => this.onPaymentChanged.emit(this.form.getRawValue()));\r\n      this.fetchForm();\r\n    }\r\n\r\n    if (changes.step?.currentValue && !changes.types && !changes.currency) {\r\n      this.fetchForm();\r\n    }\r\n\r\n    if (changes.feeOptions && !changes.feeOptions.firstChange) {\r\n      // need for triggering of the custom validator\r\n      this.form.amount?.updateValueAndValidity();\r\n    }\r\n\r\n    if (this.step === TerminalStep.Confirmation) {\r\n      this.preparationStepFilled = true;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.form\r\n      .country\r\n      .valueChanges\r\n      .pipe(\r\n        distinctUntilChanged((a, b) => a === b),\r\n        takeUntil(this.unSubscriber)\r\n      )\r\n      .subscribe(() => {\r\n        this.cd.detectChanges();\r\n        this.form.saveDefaultCountry();\r\n        this.form.method.setValue(this.methodsList[0].id, {emitEvent: false});\r\n\r\n        const methods = this.methodsList;\r\n        const defaultMethodName = this.form.defaultMethodName;\r\n        const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n        this.form.method.setValue(defaultMethod || methods[0].id, {emitEvent: false});\r\n        this.cd.detectChanges();\r\n\r\n        this.setCurrencyValue();\r\n        this.cd.detectChanges();\r\n\r\n        this.fetchForm();\r\n      });\r\n    this.form\r\n      .method\r\n      .valueChanges\r\n      .pipe(\r\n        distinctUntilChanged((a, b) => a === b),\r\n        takeUntil(this.unSubscriber)\r\n      )\r\n      .subscribe(() => {\r\n        this.form.method.clearValidators();\r\n        this.form.saveDefaultMethodName();\r\n        this.setCurrencyValue();\r\n        this.cd.detectChanges();\r\n        this.fetchForm();\r\n      })\r\n    this.form\r\n      .currency\r\n      .valueChanges\r\n      .pipe(\r\n        distinctUntilChanged((a, b) => a === b),\r\n        takeUntil(this.unSubscriber)\r\n      )\r\n      .subscribe(() => {\r\n        this.fetchForm();\r\n        this.form.saveDefaultCurrency();\r\n      });\r\n  }\r\n\r\n  private fetchForm() {\r\n    if (!this.form.method.value) {\r\n      this.form.ready = true;\r\n      return;\r\n    }\r\n    this.form.cancelRequests();\r\n    if (this.step !== this.TERMINAL_STEP.Prepare) {\r\n      return;\r\n    }\r\n    this.form.removePaymentFormControls();\r\n    this.cd.detectChanges();\r\n    this.form\r\n      .init()\r\n      .subscribe(() => {\r\n        if (!this.preparationStepFilled && !this.form.hasWhatToFill()) {\r\n          this.send();\r\n          return;\r\n        }\r\n        this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n        this.cd.detectChanges();\r\n        this.scrollToRequisits();\r\n        this.form.maskedWallet = '';\r\n      }, (err) => {\r\n        this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n        this.cd.markForCheck();\r\n      });\r\n  }\r\n\r\n  private scrollToRequisits() {\r\n    if (this.requisites || this.hintMethod) {\r\n      this.ngScrollBar?.scrollToElement(this.hintMethod?.nativeElement || this.requisites.nativeElement, {\r\n        duration: 500,\r\n        top: -75\r\n      });\r\n    }\r\n  }\r\n\r\n  get description() {\r\n    return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;\r\n  }\r\n\r\n  submit() {\r\n    if (this.feeLoading) {\r\n      return;\r\n    }\r\n    if (this.step === TerminalStep.Confirmation) {\r\n      this.confirm.emit();\r\n      return;\r\n    }\r\n\r\n    if (this.form.config === null || !this.form.ready) {\r\n      return;\r\n    }\r\n    this.triggerIframeSubmit();\r\n    if (this.form.invalid || this.error) {\r\n      Object.values(this.form.controls).forEach((control) => {\r\n        control.markAsDirty();\r\n        control.markAsTouched();\r\n      });\r\n      Object.values(this.form.payment.controls).forEach((control) => {\r\n        control.markAsDirty();\r\n        control.markAsTouched();\r\n        control.updateValueAndValidity({ emitEvent: false });\r\n      });\r\n      this.cd.detectChanges();\r\n      return;\r\n    }\r\n\r\n    if (this.form.pending) {\r\n      this.form.statusChanges\r\n        .pipe(first(), takeUntil(this.unSubscriber))\r\n        .subscribe((status) => {\r\n          if (status === 'VALID') {\r\n            this.send();\r\n          }\r\n        });\r\n    } else {\r\n      this.send();\r\n    }\r\n  }\r\n\r\n  private triggerIframeSubmit() {\r\n    if (!this.form.readyIframesSubmit) {\r\n      return;\r\n    }\r\n    this.sdkList?.forEach((sdk: CardSdkService) => sdk.submit());\r\n    this.form.updateValueAndValidityIframes();\r\n  }\r\n\r\n  private send() {\r\n    const data: TerminalPaymentPrepareRequest = this.form.getPaymentValue();\r\n    this.maskedWallet = this.form.maskedWallet;\r\n    this.prepare.emit(data);\r\n  }\r\n\r\n  searchCountry(value) {\r\n    this.countrySearchString = value;\r\n    this.cd.markForCheck();\r\n  }\r\n\r\n  get backBtnLabel(): string {\r\n    if (this.step === TerminalStep.Prepare) {\r\n      return I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN;\r\n    }\r\n    return I18N_KEY.CONSTRUCTOR_LABEL_RETURN;\r\n  }\r\n\r\n  changeTextFieldValue(maskedValue, field: PaymentField) {\r\n    if (field.wallet) {\r\n      this.form.maskedWallet = maskedValue;\r\n      this.cd.markForCheck();\r\n    }\r\n  }\r\n\r\n  public ngOnDestroy() {\r\n    this.unSubscriber.next();\r\n    this.unSubscriber.unsubscribe();\r\n  }\r\n}\r\n","<form class=\"constructor\"\r\n  [formGroup]=\"form\"\r\n  (ngSubmit)=\"submit()\"\r\n  >\r\n  @if (loading !== null) {\r\n    @if (step === TERMINAL_STEP.Prepare) {\r\n      <div class=\"constructor__fields\">\r\n        @if (countrySearchString || countriesList.length > 1) {\r\n          <div class=\"constructor__field\">\r\n            <app-trm-select [data]=\"countriesList\"\r\n                            @insertRemove\r\n              name=\"country\"\r\n              [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\r\n              formControlName=\"country\"\r\n              class=\"c-field-select trm-form-field\"\r\n              (search)=\"searchCountry($event)\"\r\n              [tabIndex]=\"tabIndex\"\r\n              >\r\n              <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n                <span class=\"fi\"\r\n                [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\r\n                <span class=\"method__name\">{{item | country_translate: lang}}</span>\r\n              </ng-template>\r\n            </app-trm-select>\r\n          </div>\r\n        }\r\n        @if (form.country.value) {\r\n          <app-ps-select [methods]=\"methodsList\"\r\n                         @insertRemove\r\n            formControlName=\"method\"\r\n            [tabIndex]=\"tabIndex\"\r\n            >\r\n            @if (form.config?.description) {\r\n              <div class=\"constructor__hint text--warn\"\r\n                app-ps-select-hint\r\n                #hintMethod\r\n                @insertRemove\r\n                [innerHTML]=\"description | trans\"\r\n                >\r\n              </div>\r\n            }\r\n          </app-ps-select>\r\n\r\n          @if (\r\n            form.method?.hasError('required') &&\r\n            form.method.touched &&\r\n            form.method.dirty\r\n            ) {\r\n            <div class=\"gm-error\" @insertRemove>\r\n              {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n            </div>\r\n          }\r\n        }\r\n\r\n        @if (form.ready) {\r\n            <div formGroupName=\"payment\"\r\n                 @insertRemove\r\n              #paymentRequisites\r\n              class=\"constructor__fields constructor__fields--reverse\">\r\n              @if (form.method.value && form.amountDynamic) {\r\n                <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\r\n              }\r\n              @for (field of form.fields; track field.name; let i = $index) {\r\n                @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\r\n                  @if (form.payment.get(field.name)?.hasError('cde_error')) {\r\n                    <div class=\"constructor__hint cde-error\" @insertRemove>\r\n                      {{\r\n                        form.payment.get(field.name).getError('cde_error')\r\n                          | trans\r\n                      }}\r\n                    </div>\r\n                  }\r\n                  <app-constructor-field-iframe\r\n                    [formControlName]=\"field.name\"\r\n                    @insertRemove\r\n                    [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n                  >\r\n                  </app-constructor-field-iframe>\r\n                }\r\n                @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\r\n                  <app-constructor-field-select\r\n                    @insertRemove\r\n                    [config]=\"field\"\r\n                    [items]=\"field?.options?.items\"\r\n                    [formControlName]=\"field.name\"\r\n                    [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n                  ></app-constructor-field-select>\r\n                }\r\n                @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\r\n                  <app-constructor-field-text\r\n                    @insertRemove\r\n                    [config]=\"field\"\r\n                    [formControlName]=\"field.name\"\r\n                    (maskedValueChange)=\"changeTextFieldValue($event, field)\"\r\n                  [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\r\n                }\r\n                @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\r\n                  <app-constructor-field-text\r\n                    @insertRemove\r\n                    [config]=\"field\"\r\n                    [formControlName]=\"field.name\"\r\n                    [tabIndex]=\"form.fields.length - i + tabIndex\">\r\n                    <app-method-amount-hint app-c-text-hint\r\n                      class=\"constructor__hint\"\r\n                      [loading]=\"feeLoading\"\r\n                      [options]=\"feeOptions || field.options\"\r\n                    ></app-method-amount-hint>\r\n                    @if (!hasCurrencyMethodSelector) {\r\n                      <div app-c-text-suffix\r\n                        class=\"constructor__currency\"\r\n                        [class.constructor__currency--transparent]=\"form.isAmountEditable\"\r\n                        >\r\n                        <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\r\n                      </div>\r\n                    }\r\n                  </app-constructor-field-text>\r\n                  @if (hasCurrencyMethodSelector) {\r\n                    <app-trm-select\r\n                      @insertRemove\r\n                      class=\"constructor-field\"\r\n                      [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\r\n                      [formControl]=\"form.currency\"\r\n                      [searchable]=\"false\"\r\n                      [data]=\"currenciesList\"\r\n                      [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n                      >\r\n                      <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n                        <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n                        [title]=\"item\"></span>\r\n                        {{item}}\r\n                      </ng-template>\r\n                    </app-trm-select>\r\n                  }\r\n                }\r\n                @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\r\n                  <app-constructor-field-date\r\n                    @insertRemove\r\n                    [config]=\"field\"\r\n                    [formControlName]=\"field.name\"\r\n                  [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\r\n                }\r\n              }\r\n              <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\r\n                <app-trm-select\r\n                  class=\"constructor-field-inner\"\r\n                  @insertRemove\r\n                  [label]=\"label\"\r\n                  [formControl]=\"form.userCurrency\"\r\n                  [searchable]=\"false\"\r\n                  [data]=\"userCurrenciesList\"\r\n                  [tabIndex]=\"tabIndex\"\r\n                  >\r\n                  <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n                    <span class=\"trm-icon\"\r\n                      [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n                    [title]=\"item\"></span>\r\n                    {{item}}\r\n                  </ng-template>\r\n                </app-trm-select>\r\n              </ng-template>\r\n            </div>\r\n        } @else {\r\n          <div class=\"trm-skeleton-fields\">\r\n            @for (i of skeletonLength; track $index) {\r\n              <div class=\"trm-skeleton-field\">\r\n                <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n                <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n        @if (error && !form.methodInfoLoading) {\r\n          <div class=\"trm-error\"\r\n            @insertRemove\r\n            >\r\n            {{ error | trans }}\r\n          </div>\r\n        }\r\n      </div>\r\n    }\r\n    @if (step === TERMINAL_STEP.Confirmation) {\r\n      <app-constructor-preparation\r\n        @insertRemove\r\n        [currency]=\"response?.currency\"\r\n        [methodName]=\"form.getTypeNameById(response.typeId)\"\r\n        [wallet]=\"response.wallet\"\r\n        [maskedWallet]=\"maskedWallet\"\r\n        [amount]=\"response.amount\"\r\n        [total]=\"response.total\"\r\n        [confirmationText]=\"form.config?.confirmation\"\r\n        >\r\n        @if (error && !form.payment.pending) {\r\n          <div class=\"trm-error\"\r\n            app-constructor-preparation-error\r\n            @insertRemove\r\n            >\r\n            {{ error | trans }}\r\n          </div>\r\n        }\r\n      </app-constructor-preparation>\r\n    }\r\n    <div class=\"constructor__actions\"\r\n         @insertRemove>\r\n      <button class=\"trm-button trm-button--primary constructor__actions-continue\"\r\n        type=\"submit\"\r\n        [tabindex]=\"form.fields.length + tabIndex\">\r\n        {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\r\n        @if (loading) {\r\n          <span class=\"trm-spinner trm-spinner-white\"></span>\r\n        }\r\n      </button>\r\n      <button class=\"trm-button trm-button--secondary constructor__actions-back\"\r\n        type=\"button\"\r\n        [tabindex]=\"form.fields.length + tabIndex\"\r\n      (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\r\n    </div>\r\n  } @else {\r\n    <div class=\"trm-skeleton-group\">\r\n      <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n      <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n    </div>\r\n  }\r\n</form>\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, ViewChild, DOCUMENT } from '@angular/core';\r\nimport {\r\n  MethodType,\r\n  TerminalPaymentConfirmResponse,\r\n  TerminalPaymentPrepareRequest,\r\n  TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { SessionDataSource } from '../../../services/session.data-source';\r\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\r\nimport { Subject, throwError } from 'rxjs';\r\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { PaymentFieldOptions, TerminalStep } from './../../../pages/components/constructor-form/models';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { AsyncPipe, CurrencyPipe, Location } from '@angular/common';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { getI18Key } from './../../../i18n/keys';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport {\r\n  TerminalLangSwitcherComponent\r\n} from '../../../shared/components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorFormComponent } from '../constructor-form/constructor-form.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n    selector: 'app-terminal-layout',\r\n    templateUrl: './terminal-layout.component.html',\r\n    styleUrls: ['./terminal-layout.component.scss'],\r\n    providers: [\r\n        SessionDataSource,\r\n        CurrencyPipe\r\n    ],\r\n    imports: [\r\n        NgScrollbar,\r\n        TerminalLangSwitcherComponent,\r\n        ConstructorFormComponent, ConstructorStatusComponent,\r\n        AsyncPipe,\r\n        TranslateByKeyPipe, GmSkeletonComponent\r\n    ]\r\n})\r\nexport class TerminalLayoutComponent implements OnInit, OnDestroy {\r\n  private document = inject<Document>(DOCUMENT);\r\n  sessionDS = inject(SessionDataSource);\r\n  translateLoader = inject<any>(TranslateLoader);\r\n  private cd = inject(ChangeDetectorRef);\r\n  private translateStorageSrv = inject(TranslateLangStorageService);\r\n  private translateSrv = inject(TranslateService);\r\n  private adapter = inject<DateAdapter<moment.Moment>>(DateAdapter);\r\n  private apiErrorSrv = inject(ApiErrorsService);\r\n  private location = inject(Location);\r\n  private titleSrv = inject(Title);\r\n  private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n  private unSubscriber = new Subject<void>();\r\n  private resizeObserver: ResizeObserver;\r\n\r\n  private get contentEl() {\r\n    return this.scrollComponent.viewport.contentWrapperElement;\r\n  }\r\n\r\n  TERMINAL_STEP = TerminalStep;\r\n\r\n  types: MethodType[] = [];\r\n  currency: string;\r\n  projectName: string;\r\n  description: string;\r\n  step = TerminalStep.Prepare;\r\n  data: TerminalPaymentPrepareResponse & { typeId?: number; };\r\n  @ViewChild('scrollComponent') scrollComponent: NgScrollbar;\r\n  private urlChangeListener: VoidFunction;\r\n  sessionLoading = null;\r\n\r\n  constructor() {\r\n    this.adapter.setLocale(this.translateSrv.currentLang);\r\n    this._setTitle();\r\n\r\n    this.translateSrv.onLangChange\r\n      .pipe(\r\n        takeUntil(this.unSubscriber)\r\n      )\r\n      .subscribe((e) => {\r\n        this.adapter.setLocale(e.lang);\r\n        this._setTitle();\r\n        this.cd.detectChanges();\r\n      });\r\n    this.checkFatalError();\r\n  }\r\n\r\n  get hasChoice() {\r\n    return this.translateStorageSrv.languages.length > 1;\r\n  }\r\n\r\n  get logoClass(): string {\r\n    return this.versionSrv.logoClass;\r\n  }\r\n\r\n  get footerText() {\r\n    return this.versionSrv.footerText;\r\n  }\r\n\r\n  private _setTitle() {\r\n    this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));\r\n  }\r\n\r\n  public changeLang() {\r\n  }\r\n\r\n  get hostname() {\r\n    return this.document.defaultView.location.hostname;\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.apiErrorSrv.hasFatalError) {\r\n      this.sessionDS.loading$.next(false);\r\n      this.catchError();\r\n      return;\r\n    }\r\n    this.sessionDS.get()\r\n      .subscribe((sessionInfo) => {\r\n        this.types = sessionInfo.methodTypes;\r\n        this.currency = sessionInfo.defaultCurrency;\r\n        this.projectName = sessionInfo.projectName;\r\n        this.description = sessionInfo.description;\r\n        this.sessionLoading = false;\r\n        this.cd.markForCheck();\r\n      }, () => {\r\n        this.sessionLoading = false;\r\n        this.catchError();\r\n      });\r\n\r\n    this.pushState();\r\n    this.urlChangeListener = this.location.onUrlChange((url, state: { step?: TerminalStep }) => {\r\n      if (typeof state?.step === 'number') {\r\n        this.step = state.step;\r\n        this.cd.markForCheck();\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  private _submitted = false;\r\n\r\n  prepare(data: TerminalPaymentPrepareRequest) {\r\n    if (this._submitted) {\r\n      return;\r\n    }\r\n    this._submitted = true;\r\n    this.sessionLoading = true;\r\n    this.sessionDS\r\n      .prepare(data)\r\n      .subscribe((resp: TerminalPaymentPrepareResponse) => {\r\n        if (!resp.amount && !resp.currency && !resp.total) {\r\n          return;\r\n        }\r\n        this.step = TerminalStep.Confirmation;\r\n        this.location.go(this.location.path(), '', {step: this.step});\r\n        this.data = resp;\r\n        this.data.typeId = data.typeId;\r\n        this._submitted = false;\r\n        this.sessionLoading = false;\r\n        this.cd.markForCheck();\r\n      }, () => {\r\n        this._submitted = false;\r\n        this.sessionLoading = false;\r\n        this.catchError();\r\n      });\r\n  }\r\n\r\n  confirm() {\r\n    if (this._submitted) {\r\n      return;\r\n    }\r\n    this._submitted = true;\r\n    this.sessionLoading = true;\r\n    this.sessionDS\r\n      .confirm()\r\n      .subscribe(\r\n        (resp: TerminalPaymentConfirmResponse) => {\r\n          if (this.urlChangeListener) {\r\n            this.urlChangeListener();\r\n          }\r\n          if (this.sessionDS.redirect()) {\r\n            this._submitted = false;\r\n            return;\r\n          }\r\n          this.step += 1;\r\n          if (resp.success) {\r\n            this._statusText = resp.message;\r\n          }\r\n          this._submitted = false;\r\n          this.sessionLoading = false;\r\n          this.cd.markForCheck();\r\n        },\r\n        () => {\r\n          this._submitted = false;\r\n          this.sessionLoading = false;\r\n          this.catchError();\r\n        },\r\n      );\r\n  }\r\n\r\n  checkFatalError() {\r\n    // Clear form error when any values have changed.\r\n    if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {\r\n      this.apiErrorSrv.clear();\r\n    }\r\n  }\r\n\r\n  pushState() {\r\n    this.location.replaceState(this.location.path(), undefined, {step: this.step});\r\n  }\r\n\r\n  back() {\r\n    if (this.step) {\r\n      this.location.back();\r\n    } else {\r\n      this.sessionLoading = true;\r\n      this.sessionDS.close()\r\n        .pipe(\r\n          finalize(() => {\r\n            this.sessionLoading = false;\r\n            this.cd.markForCheck();\r\n          })\r\n        )\r\n        .subscribe();\r\n    }\r\n  }\r\n\r\n  get returnBackUrl(): string {\r\n    return this.sessionDS.returnBackUrl;\r\n  }\r\n\r\n  catchError() {\r\n    if (this.hasStatusError) {\r\n      this.step = TerminalStep.Status;\r\n      if (this.urlChangeListener) {\r\n        this.urlChangeListener();\r\n      }\r\n    }\r\n    this.cd.detectChanges();\r\n  }\r\n\r\n  private _statusText: string;\r\n  get statusText() {\r\n    return this.apiErrorSrv.getLocalError() || this._statusText;\r\n  }\r\n\r\n  get hasStatusError() {\r\n    return this.apiErrorSrv.hasFatalError;\r\n  }\r\n\r\n  public get currentYear() {\r\n    return new Date().getFullYear();\r\n  }\r\n\r\n  private feeCalculateSubject = new Subject<void>();\r\n  public calculateFee(value: any) {\r\n    if (!this.sessionDS.feeChangeable) {\r\n      return;\r\n    }\r\n    this.feeCalculateSubject.next();\r\n    this.feeLoading = true;\r\n    this.feeOptions = {};\r\n    this.cd.detectChanges();\r\n\r\n    this.sessionDS\r\n      .feeOptions(value)\r\n      .pipe(\r\n        tap((options: PaymentFieldOptions) => {\r\n          this.feeOptions = options;\r\n          this.feeLoading = false;\r\n          this.cd.detectChanges();\r\n        }),\r\n        catchError((err) => {\r\n          this.feeLoading = false;\r\n          this.cd.detectChanges();\r\n          return throwError(() => err);\r\n        }),\r\n        takeUntil(this.feeCalculateSubject),\r\n        takeUntil(this.unSubscriber)\r\n      ).subscribe();\r\n  }\r\n\r\n  feeLoading = false;\r\n  feeOptions: PaymentFieldOptions;\r\n\r\n  public ngOnDestroy() {\r\n    this.feeCalculateSubject.unsubscribe();\r\n    this.unSubscriber.next();\r\n    this.unSubscriber.unsubscribe();\r\n    this.resizeObserver?.unobserve(this.contentEl);\r\n    if (this.urlChangeListener) {\r\n      this.urlChangeListener();\r\n    }\r\n  }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n  <div class=\"terminal-layout\">\r\n    <section class=\"terminal\">\r\n      <div class=\"terminal__content\">\r\n        <header class=\"terminal__header\">\r\n          <i class=\"terminal__header-logo\"\r\n          [class]=\"logoClass\"></i>\r\n          <div class=\"terminal__header-lang\">\r\n            @if (hasChoice) {\r\n              <app-terminal-lang-switcher (langChange)=\"changeLang()\"\r\n              [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n            }\r\n          </div>\r\n        </header>\r\n        <div class=\"terminal__form\">\r\n          @if (sessionDS.loading$ | async) {\r\n            <div class=\"trm-skeleton-group\">\r\n              <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n              <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n              <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n            </div>\r\n          } @else {\r\n            @if (projectName) {\r\n              <div class=\"terminal__info\">\r\n                <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n                @if (description) {\r\n                  <p class=\"terminal__info__desc\" [innerHTML]=\"description\"> </p>\r\n                }\r\n              </div>\r\n            }\r\n            @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n              <app-constructor-form\r\n                [feeLoading]=\"feeLoading\"\r\n                [feeOptions]=\"feeOptions\"\r\n                [loading]=\"sessionLoading\"\r\n                [step]=\"step\"\r\n                [types]=\"types\"\r\n                [currency]=\"currency\"\r\n                [response]=\"data\"\r\n                [error]=\"statusText\"\r\n                (prepare)=\"prepare($event)\"\r\n                (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n                (back)=\"back()\"\r\n                [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n                (confirm)=\"confirm()\"\r\n                [tabIndex]=\"2\"></app-constructor-form>\r\n            } @else {\r\n              <app-constructor-status class=\"terminal__status\"\r\n                [failed]=\"hasStatusError\"\r\n                [message]=\"statusText ? (statusText | trans) : ''\"\r\n                [backUrl]=\"returnBackUrl\"\r\n              ></app-constructor-status>\r\n            }\r\n          }\r\n\r\n        </div>\r\n      </div>\r\n    </section>\r\n    <footer class=\"terminal-footer\">\r\n      <i class=\"terminal-footer__logo\"></i>\r\n      <p class=\"terminal-footer__txt\">\r\n        {{ footerText }}\r\n      </p>\r\n    </footer>\r\n  </div>\r\n</ng-scrollbar>\r\n","import { Component, } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n  TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-error',\r\n    templateUrl: './error.component.html',\r\n    styleUrls: ['./error.component.scss'],\r\n    imports: [\r\n        TerminalLayoutTplComponent,\r\n        ConstructorStatusComponent,\r\n        TranslateByKeyPipe,\r\n    ]\r\n})\r\nexport class ErrorComponent {\r\n    I18N_KEY = I18N_KEY\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"false\">\r\n    <app-constructor-status terminal-layout-status\r\n                            [failed]=\"true\"\r\n                            [failTitle]=\"(I18N_KEY.ERROR_OCCUR | trans)\"\r\n                            [hasSupportHint]=\"false\"\r\n    >\r\n    </app-constructor-status>\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { ConstructorFormComponent } from './components/constructor-form/constructor-form.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n  ConstructorFieldTextComponent\r\n} from './components/constructor-form/components/constructor-field-text/constructor-field-text.component';\r\nimport {\r\n  ConstructorFieldDateComponent\r\n} from './components/constructor-form/components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n  ConstructorFieldSelectComponent\r\n} from './components/constructor-form/components/constructor-field-select/constructor-field-select.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PsSelectComponent } from './components/constructor-form/components/ps-select/ps-select.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport {\r\n  ConstructorPreparationComponent\r\n} from './components/constructor-form/components/constructor-preparation/constructor-preparation.component';\r\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { CSRFResolver } from '../services/csrf.resolver';\r\nimport {\r\n  MethodAmountHintComponent\r\n} from './components/constructor-form/components/method-amount-hint/method-amount-hint.component';\r\nimport { MaskResolver } from './../helpers/mask-resolver';\r\nimport { InputMaskCorrector } from './directives/input-mask-corrector.directive';\r\nimport { FORMAT_DATE } from './../pages/components/constructor-form/models';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TabIndexFocusDirective } from './directives/tab-index-focus.directive';\r\n\r\nimport {\r\n  ConstructorFieldIframeComponent\r\n} from './components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component';\r\nimport { TerminalLayoutComponent } from './components/terminal-layout/terminal-layout.component';\r\nimport { ErrorComponent } from './components/error/error.component';\r\n\r\n@NgModule({\r\n    imports: [\r\n        FormsModule,\r\n        ReactiveFormsModule,\r\n        RouterModule.forChild([\r\n            {\r\n                path: 'error',\r\n                loadComponent: () => import('./components/error/error.component').then(m => m.ErrorComponent)\r\n            },\r\n            {\r\n                resolve: {\r\n                    csrf: CSRFResolver\r\n                },\r\n                loadComponent: () => import('./components/terminal-layout/terminal-layout.component').then(m => m.TerminalLayoutComponent),\r\n                path: ''\r\n            },\r\n        ]),\r\n        NgScrollbar,\r\n        TranslateModule,\r\n        CommonModule,\r\n        MatDatepickerModule,\r\n        NgxMaskDirective,\r\n        NgxMaskPipe,\r\n        SharedModule,\r\n        TerminalLayoutComponent,\r\n        ConstructorFormComponent,\r\n        ErrorComponent,\r\n        ConstructorFieldTextComponent,\r\n        ConstructorFieldDateComponent,\r\n        ConstructorFieldSelectComponent,\r\n        PsSelectComponent,\r\n        ConstructorPreparationComponent,\r\n        MethodAmountHintComponent,\r\n        InputMaskCorrector,\r\n        TabIndexFocusDirective,\r\n        ConstructorFieldIframeComponent\r\n    ],\r\n    providers: [\r\n        provideNgxMask(),\r\n        NgxMaskPipe,\r\n        {\r\n            provide: MAT_DATE_FORMATS,\r\n            useValue: {\r\n                parse: {\r\n                    dateInput: FORMAT_DATE,\r\n                },\r\n                display: {\r\n                    dateInput: FORMAT_DATE,\r\n                    monthYearLabel: 'MMM YYYY',\r\n                    dateA11yLabel: 'LL',\r\n                    monthYearA11yLabel: 'MMMM YYYY',\r\n                },\r\n            },\r\n        },\r\n        {\r\n            provide: DateAdapter,\r\n            useClass: MomentDateAdapter,\r\n            deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n        },\r\n        CSRFResolver,\r\n        MaskResolver\r\n    ]\r\n})\r\nexport default class PagesModule {\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, DOCUMENT } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { CheckinSessionInfoResponse, InvoiceStatus } from '../../../codegen/model/models';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { HttpBadRequestResponse } from '../../models/http-bad-request-response';\r\nimport { ApiErrorsService } from '../../services/api-errors.service';\r\n\r\nimport { Mode } from '../../models/mode';\r\nimport { CHECKIN_SERVICE_TOKEN } from '../../../const';\r\nimport { CheckinServiceInterface } from '../../../codegen/api/checkin.service';\r\nimport { CheckinModeToken, SessionToken } from '../../models';\r\n\r\n@Injectable()\r\nexport class CheckinDatasource {\r\n    document = inject<Document>(DOCUMENT);\r\n    private checkInApi = inject<CheckinServiceInterface>(CHECKIN_SERVICE_TOKEN);\r\n    private token = inject(SessionToken, { optional: true }) || 'token';\r\n    private cd = inject(ChangeDetectorRef);\r\n    private apiErrorsSrv = inject(ApiErrorsService);\r\n    private mode = inject<Mode>(CheckinModeToken);\r\n\r\n    private _returnFailUrl: string;\r\n    private _returnUrl: string;\r\n\r\n    loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n    constructor() {\r\n    }\r\n\r\n\r\n    check(options = {emitLoading: true}): Observable<CheckinSessionInfoResponse> {\r\n        if (!this.token) {\r\n            this.loading$.next(false);\r\n\r\n            return of({\r\n                invoiceId: 0,\r\n                status: this.mode === Mode.Success ? InvoiceStatus.New : InvoiceStatus.Refused,\r\n                redirectImmediate: false,\r\n                successUrl: '',\r\n                failUrl: ''\r\n            });\r\n        }\r\n\r\n        if (options?.emitLoading) {\r\n            this.loading$.next(true);\r\n        }\r\n        return this.checkInApi\r\n            .getCheckinSessionInfo({\r\n                token: this.token\r\n            })\r\n            .pipe(\r\n                catchError(\r\n                    this.catchError(options?.emitLoading ? this.loading$ : undefined)\r\n                ),\r\n                tap(({status, failUrl, successUrl, redirectImmediate, error}) => {\r\n                    this._returnFailUrl = failUrl;\r\n                    this._returnUrl = successUrl;\r\n                    if (status === InvoiceStatus.Refused) {\r\n                       this._returnUrl = failUrl;\r\n                       this.apiErrorsSrv.setLocalError({code: error});\r\n                    }\r\n                    if (redirectImmediate && status !== InvoiceStatus.New) {\r\n                        this.returnBack();\r\n                    } else if (options?.emitLoading) {\r\n                        this.loading$.next(false);\r\n                    }\r\n                })\r\n            );\r\n    }\r\n\r\n    returnBack() {\r\n        if (this._returnUrl) {\r\n            this.document.defaultView.location.assign(this._returnUrl);\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    setBackUrlAsFail() {\r\n        this._returnUrl = this._returnFailUrl;\r\n    }\r\n\r\n    get returnBackUrl(): string {\r\n        return this._returnUrl;\r\n    }\r\n\r\n    private catchError(loading$?: BehaviorSubject<boolean>) {\r\n        return (err: HttpBadRequestResponse) => {\r\n            this.apiErrorsSrv.setLocalError(err.error);\r\n            loading$?.next(false);\r\n            this.cd.markForCheck();\r\n            return throwError(err);\r\n        }\r\n    }\r\n}\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { CheckinDatasource } from '../../services/checkin.datasource';\r\nimport { InvoiceStatus } from '../../../../codegen/model/invoiceStatus';\r\nimport { interval, Subject, timer } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { Mode } from '../../../models/mode';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { CheckinModeToken } from '../../../models';\r\nimport {\r\n  TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n    selector: 'app-checkin-page',\r\n    templateUrl: './checkin-page.component.html',\r\n    styleUrls: ['./checkin-page.component.scss'],\r\n    providers: [\r\n        {\r\n            provide: CheckinModeToken,\r\n            deps: [ActivatedRoute],\r\n            useFactory: (activatedRoute: ActivatedRoute) => activatedRoute.snapshot.paramMap.get('mode')\r\n        },\r\n        CheckinDatasource\r\n    ],\r\n    imports: [TerminalLayoutTplComponent, ConstructorStatusComponent, AsyncPipe, TranslateByKeyPipe]\r\n})\r\nexport class CheckinPageComponent implements OnInit, OnDestroy {\r\n    private checkinDS = inject(CheckinDatasource);\r\n    private errorApiSrv = inject(ApiErrorsService);\r\n    private cd = inject(ChangeDetectorRef);\r\n    private mode = inject<Mode>(CheckinModeToken);\r\n\r\n    private CHECK_TIME_INTERVAL = 1000;\r\n    private CHECK_TIME = 10000;\r\n    private REDIRECT_TIME_AFTER = 15000;\r\n    private unSubscriber = new Subject<void>();\r\n    private checkinClearTimerSubj$ = new Subject<void>();\r\n    private checkinClearRedirectTimerSubj$ = new Subject<void>();\r\n    I18N_KEY = I18N_KEY;\r\n    hasStatusError = false;\r\n    animation = true;\r\n    inProgress = false;\r\n    message = '';\r\n    invoiceId: number | string;\r\n\r\n    redirectTimerStarted = false;\r\n\r\n    get returnBackUrl(): string {\r\n        return this.checkinDS.returnBackUrl;\r\n    }\r\n\r\n    get loading() {\r\n        return this.checkinDS.loading$;\r\n    }\r\n\r\n    get redirectTime() {\r\n        return this.REDIRECT_TIME_AFTER / 1000;\r\n    }\r\n\r\n    constructor() {\r\n\r\n    }\r\n\r\n    ngOnInit() {\r\n      this.check();\r\n    }\r\n\r\n    private check(options = {emitLoading: true}) {\r\n        this.checkinDS\r\n            .check(options)\r\n            .pipe(\r\n                takeUntil(this.unSubscriber)\r\n            )\r\n            .subscribe(({status, invoiceId}) => {\r\n                this.invoiceId = invoiceId;\r\n                this.setMessage(status);\r\n\r\n                this.inProgress = status === InvoiceStatus.New;\r\n                if (this.inProgress) {\r\n                    this.startTimer();\r\n                } else {\r\n                    this.startRedirectTimer();\r\n                }\r\n\r\n                this.cd.detectChanges();\r\n            }, () => {\r\n                this.setMessage(InvoiceStatus.Refused);\r\n                this.cd.detectChanges();\r\n            });\r\n    }\r\n\r\n    setMessage(status: InvoiceStatus = this.mode === Mode.Fail ? InvoiceStatus.Refused : InvoiceStatus.New) {\r\n        switch (status) {\r\n            case InvoiceStatus.New:\r\n                this.inProgress = true;\r\n                if (this.invoiceId === 0) {\r\n                    this.animation = false;\r\n                    this.message = I18N_KEY.CHECKIN_MESSAGE;\r\n                    return;\r\n                }\r\n                this.message = I18N_KEY.CHECKIN_WAIT;\r\n                if (!this.CHECK_TIME) {\r\n                    this.animation = false;\r\n                    this.message = I18N_KEY.CHECKIN_WAIT_TIMEOVER;\r\n                }\r\n                break;\r\n            case InvoiceStatus.Paid:\r\n                this.inProgress = false;\r\n                this.message = ``;\r\n                break;\r\n            case InvoiceStatus.Refused:\r\n                this.checkinDS.setBackUrlAsFail();\r\n                this.hasStatusError = true;\r\n                this.inProgress = false;\r\n                this.message = this.errorApiSrv.getLocalError() || I18N_KEY.CHECKIN_FAILED;\r\n                break;\r\n        }\r\n    }\r\n\r\n    get operationIdHint(): string {\r\n        return this.invoiceId ? ` (Transaction&nbsp;ID:&nbsp;<b>${this.invoiceId}</b>)` : '';\r\n    }\r\n\r\n    private startTimer() {\r\n        this.checkinClearTimerSubj$.next();\r\n        this.CHECK_TIME -= this.CHECK_TIME_INTERVAL;\r\n        if (!this.CHECK_TIME) {\r\n            this.checkinClearTimerSubj$.next();\r\n            this.setMessage();\r\n            this.startRedirectTimer();\r\n            return;\r\n        }\r\n        timer(this.CHECK_TIME_INTERVAL)\r\n            .pipe(takeUntil(this.checkinClearTimerSubj$))\r\n            .subscribe(() => this.check({emitLoading: false}));\r\n    }\r\n\r\n    private startRedirectTimer() {\r\n        this.checkinClearRedirectTimerSubj$.next();\r\n        this.redirectTimerStarted = true;\r\n        this.cd.detectChanges();\r\n        interval(1000)\r\n            .pipe(takeUntil(this.checkinClearRedirectTimerSubj$))\r\n            .subscribe(() => {\r\n                this.REDIRECT_TIME_AFTER -= 1000;\r\n                this.cd.detectChanges();\r\n                if (!this.REDIRECT_TIME_AFTER) {\r\n                    this.checkinClearRedirectTimerSubj$.next();\r\n                    this.checkinDS.returnBack();\r\n                }\r\n            });\r\n    }\r\n\r\n    back() {\r\n        this.checkinDS.returnBack();\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.unSubscriber.next();\r\n        this.unSubscriber.unsubscribe();\r\n        this.checkinClearTimerSubj$.next();\r\n        this.checkinClearTimerSubj$.unsubscribe();\r\n        this.checkinClearRedirectTimerSubj$.next();\r\n        this.checkinClearRedirectTimerSubj$.unsubscribe();\r\n    }\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"loading | async\">\r\n  @if (!(loading | async)) {\r\n    <app-constructor-status terminal-layout-status\r\n      [inProgress]=\"inProgress\"\r\n      [failed]=\"hasStatusError\"\r\n      [animation]=\"animation\"\r\n      [progressTitle]=\"(I18N_KEY.PROGRESS_TITLE | trans)\"\r\n      [failTitle]=\"(I18N_KEY.FAIL_TITLE | trans)\"\r\n      [successTitle]=\"(I18N_KEY.SUCCESS_TITLE | trans)\"\r\n      [hasSupportHint]=\"false\"\r\n      [message]=\"(message | trans) + operationIdHint\"\r\n      [backUrl]=\"returnBackUrl\"\r\n      [backUrlTitle]=\"I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans\"\r\n      >\r\n      @if (redirectTimerStarted) {\r\n        <div constructor-status-button-hint>\r\n          {{ I18N_KEY.REDIRECT_TEXT | trans }}&nbsp;<b>{{redirectTime}}</b>\r\n        </div>\r\n      }\r\n    </app-constructor-status>\r\n  }\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CheckinPageComponent } from './components/checkin-page/checkin-page.component';\r\n\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n        SharedModule,\r\n        TranslateModule,\r\n        RouterModule.forChild([\r\n            {\r\n                path: ':mode',\r\n                loadComponent: () => import('./components/checkin-page/checkin-page.component').then(m => m.CheckinPageComponent)\r\n            }\r\n        ]),\r\n        CheckinPageComponent\r\n    ]\r\n})\r\nexport class CheckinModule {\r\n}\r\n","import * as momentjs from 'moment-timezone';\r\n\r\nexport const moment = momentjs;\r\n","/*\r\n * Public API Surface of terminal\r\n */\r\n\r\nexport * from './lib';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["momentjs","i1","i1.IframeValidatorDirectiveDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,yBAA6C;AAC7C,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC;AACnC,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,uBAAyC;AACzC,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,qBAAqC;AACrC,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC;AACnC,IAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,yBAA6C;AAC7C,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC;AACnC,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,0BAA+C;AAC/C,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,sBAAuC;AACvC,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,kBAA+B;AAC/B,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,0BAA+C;AAC/C,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,0BAA+C;AAC/C,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,kCAA+D;AAC/D,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,kCAA+D;AAC/D,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,0BAA+C;AAC/C,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,8BAAuD;AACvD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,6BAAqD;AACrD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,6BAAqD;AACrD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,6BAAqD;AACrD,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,0BAA+C;AAC/C,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,2BAAiD;AACjD,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,2BAAiD;AACjD,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,+BAAyD;AACzD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,6BAAqD;AACrD,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC;AACnC,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,uBAAyC;AACzC,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,2BAAiD;AACjD,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,+BAAyD;AACzD,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,8BAAuD;AACvD,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,wBAA+C;AAC/C,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC;AACnC,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,8BAAuD;AACvD,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,uBAAyC;AACzC,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,gBAA2B;AAC/B,CAAC,EAnCW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAmCpB;;ICtCW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAIxB;;ACWM,MAAM,kBAAkB,GAAG;AAElC;AACA,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AAClC,IAAA,EAAE,EAAE,eAAe;AACnB,IAAA,EAAE,EAAE,UAAU;IACd,CAAC,kBAAkB,GAAG;AACzB,CAAA,CAAC;AACF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AAClC,IAAA,EAAE,EAAE,cAAc;AAClB,IAAA,EAAE,EAAE,SAAS;IACb,CAAC,kBAAkB,GAAG;AACzB,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AAClC,IAAA,EAAE,EAAE,gBAAgB;AACpB,IAAA,EAAE,EAAE,SAAS;IACb,CAAC,kBAAkB,GAAG;AACzB,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AAClC,IAAA,EAAE,EAAE,cAAc;AAClB,IAAA,EAAE,EAAE,SAAS;IACb,CAAC,kBAAkB,GAAG;AACzB,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AAClC,IAAA,EAAE,EAAE,gBAAgB;AACpB,IAAA,EAAE,EAAE,UAAU;IACd,CAAC,kBAAkB,GAAG;AACzB,CAAA,CAAC;AAEK,MAAM,YAAY,GAAG,MAAK;IAC7B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,QAAQ,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;AAChC;;IC5DY;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D;AAC3D,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,WAAgC;AAChC,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,eAA4C;AAC5C,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACvC,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,QAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,QAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,QAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACvC,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD;AACnD,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD;AACnD,IAAA,QAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D;AAC3D,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD;AACzD,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D;AAC3D,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,QAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACjE,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD;AACzD,IAAA,QAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,QAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD;AACvD,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD;AACzD,IAAA,QAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,QAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE;AACrE,IAAA,QAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE;AACnE,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D;AAC7D,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D;AAC7D,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,QAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D;AAC7D,IAAA,QAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE;AACnE,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD;AACzD,IAAA,QAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACjE,IAAA,QAAA,CAAA,sCAAA,CAAA,GAAA,sCAA6E;AAC7E,IAAA,QAAA,CAAA,+BAAA,CAAA,GAAA,+BAA+D;AAC/D,IAAA,QAAA,CAAA,+BAAA,CAAA,GAAA,+BAA+D;AAC/D,IAAA,QAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACjE,IAAA,QAAA,CAAA,mCAAA,CAAA,GAAA,mCAAuE;AACvE,IAAA,QAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE;AACrE,IAAA,QAAA,CAAA,sCAAA,CAAA,GAAA,sCAA6E;AAC7E,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D;AAC3D,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D;AAC7D,IAAA,QAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE;AACrE,IAAA,QAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACjE,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD;AACzD,IAAA,QAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE;AACnE,IAAA,QAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE;AACrE,IAAA,QAAA,CAAA,oCAAA,CAAA,GAAA,oCAAyE;AACzE,IAAA,QAAA,CAAA,+BAAA,CAAA,GAAA,+BAA+D;AACnE,CAAC,EAnFW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;;ACGb,MAAM,OAAO,GAAsC,IAAI,GAAG,CAC/D;AACE,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC3C,IAAA,CAAC,QAAQ,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;AACnD,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AACnD,IAAA,CAAC,SAAS,CAAC,YAAY,EAAE,uBAAuB,CAAC;AACjD,IAAA,CAAC,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;AACtD,IAAA,CAAC,SAAS,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;AAC3D,IAAA,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;AAC3C,IAAA,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC1C,IAAA,CAAC,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;AACzD,IAAA,CAAC,SAAS,CAAC,YAAY,EAAE,2BAA2B,CAAC;AACrD,IAAA,CAAC,SAAS,CAAC,cAAc,EAAE,8CAA8C,CAAC;AAC1E,IAAA,CAAC,SAAS,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;AACpE,IAAA,CAAC,SAAS,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;AACvE,IAAA,CAAC,SAAS,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;AAC/E,IAAA,CAAC,SAAS,CAAC,0BAA0B,EAAE,iCAAiC,CAAC;AACzE,IAAA,CAAC,SAAS,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;AAClE,IAAA,CAAC,SAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC;AACzD,IAAA,CAAC,SAAS,CAAC,UAAU,EAAE,uCAAuC,CAAC;AAC/D,IAAA,CAAC,SAAS,CAAC,YAAY,EAAE,8BAA8B,CAAC;AACxD,IAAA,CAAC,SAAS,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;AAC/E,IAAA,CAAC,SAAS,CAAC,sBAAsB,EAAE,oDAAoD,CAAC;AACxF,IAAA,CAAC,SAAS,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;AAC7E,IAAA,CAAC,SAAS,CAAC,eAAe,EAAE,6BAA6B,CAAC;AAC1D,IAAA,CAAC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACzC,IAAA,CAAC,QAAQ,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;AACtE,IAAA,CAAC,QAAQ,CAAC,eAAe,EAAE,8BAA8B,CAAC;AAC1D,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;AACtE,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;AACrD,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,uDAAuD,CAAC;AACtF,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;AAC5E,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,kDAAkD,CAAC;AACzF,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;AAChD,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC3C,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;AACzE,IAAA,CAAC,QAAQ,CAAC,2BAA2B,EAAE,8CAA8C,CAAC;AACtF,IAAA,CAAC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;AACpD,IAAA,CAAC,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;AAC7D,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AACnD,IAAA,CAAC,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AACpD,IAAA,CAAC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;AAC3C,IAAA,CAAC,QAAQ,CAAC,wBAAwB,EAAE,eAAe,CAAC;AACpD,IAAA,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC;AAC7C,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,SAAS,CAAC;AAChD,IAAA,CAAC,QAAQ,CAAC,2BAA2B,EAAE,eAAe,CAAC;AACvD,IAAA,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC1C,IAAA,CAAC,QAAQ,CAAC,8BAA8B,EAAE,eAAe,CAAC;AAC1D,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,UAAU,CAAC;AACjD,IAAA,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;AACzC,IAAA,CAAC,QAAQ,CAAC,6BAA6B,EAAE,eAAe,CAAC;AACzD,IAAA,CAAC,QAAQ,CAAC,6BAA6B,EAAE,eAAe,CAAC;AACzD,IAAA,CAAC,QAAQ,CAAC,8BAA8B,EAAE,eAAe,CAAC;AAC1D,IAAA,CAAC,QAAQ,CAAC,iCAAiC,EAAE,aAAa,CAAC;AAC3D,IAAA,CAAC,QAAQ,CAAC,gCAAgC,EAAE,iBAAiB,CAAC;AAC9D,IAAA,CAAC,QAAQ,CAAC,oCAAoC,EAAE,cAAc,CAAC;AAC/D,IAAA,CAAC,QAAQ,CAAC,2BAA2B,EAAE,mCAAmC,CAAC;AAC3E,IAAA,CAAC,QAAQ,CAAC,4BAA4B,EAAE,eAAe,CAAC;AACxD,IAAA,CAAC,QAAQ,CAAC,gCAAgC,EAAE,yBAAyB,CAAC;AACtE,IAAA,CAAC,QAAQ,CAAC,8BAA8B,EAAE,wBAAwB,CAAC;AACnE,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,sBAAsB,CAAC;AAC7D,IAAA,CAAC,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;AACvD,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,qCAAqC,CAAC;AAChE,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,sCAAsC,CAAC;AACjE,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;AACtD,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;AAChE,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AACtE,IAAA,CAAC,QAAQ,CAAC,+BAA+B,EAAE,4FAA4F,CAAC;AACxI,IAAA,CAAC,QAAQ,CAAC,gCAAgC,EAAE,gDAAgD,CAAC;AAC7F,IAAA,CAAC,QAAQ,CAAC,kCAAkC,EAAE,uGAAuG,CAAC;AACtJ,IAAA,CAAC,QAAQ,CAAC,6BAA6B,EAAE,wCAAwC,CAAC;AAClF,IAAA,CAAC,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AACpD,IAAA,CAAC,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC;AAC9C,IAAA,CAAC,QAAQ,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;AAClE,IAAA,CAAC,QAAQ,CAAC,+BAA+B,EAAE,cAAc,CAAC;AAC1D,IAAA,CAAC,QAAQ,CAAC,8BAA8B,EAAE,+BAA+B,CAAC;AAC1E,IAAA,CAAC,QAAQ,CAAC,oCAAoC,EAAE,uKAAuK,CAAC;AACxN,IAAA,CAAC,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC;AAC9C,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,YAAY,CAAC;AACnD,IAAA,CAAC,QAAQ,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACtD,IAAA,CAAC,QAAQ,CAAC,gCAAgC,EAAE,qBAAqB,CAAC;AAClE,IAAA,CAAC,QAAQ,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;AAClE,IAAA,CAAC,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC;AAC/C,IAAA,CAAC,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC5C,IAAA,CAAC,QAAQ,CAAC,4BAA4B,EAAE,mBAAmB,CAAC;AAC5D,IAAA,CAAC,QAAQ,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;AAC7D,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAC;AACtD,IAAA,CAAC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;AACnD,IAAA,CAAC,QAAQ,CAAC,aAAa,EAAE,6BAA6B,CAAC;AACvD,IAAA,CAAC,QAAQ,CAAC,aAAa,EAAE,8CAA8C,CAAC;AACxE,IAAA,CAAC,QAAQ,CAAC,eAAe,EAAE,8CAA8C,CAAC;AAC1E,IAAA,CAAC,QAAQ,CAAC,YAAY,EAAE,uDAAuD,CAAC;AAChF,IAAA,CAAC,QAAQ,CAAC,qBAAqB,EAAE,gFAAgF,CAAC;AAClH,IAAA,CAAC,QAAQ,CAAC,cAAc,EAAE,wEAAwE,CAAC;AACnG,IAAA,CAAC,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AACpD,IAAA,CAAC,QAAQ,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;AACzE,IAAA,CAAC,QAAQ,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;AAC5E,IAAA,CAAC,QAAQ,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;AACnE,IAAA,CAAC,QAAQ,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;AAC/D,IAAA,CAAC,QAAQ,CAAC,wBAAwB,EAAE,4GAA4G,CAAC;AACjJ,IAAA,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;AACjC,IAAA,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC;AAC3C,IAAA,CAAC,QAAQ,CAAC,eAAe,EAAE,2BAA2B;AACvD,CAAA;AAGI,MAAM,SAAS,GAA4C,CAAC,GAAyB,KAAI;AAC9F,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB;;IC3GY;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACb,CAAC,EAPW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAQb,MAAM,cAAc,GAAG;AACvB,MAAM,YAAY,GAAG;AACrB,MAAM,eAAe,GAAG,IAAI,cAAc,CAC7C,WAAW,EACX,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAe,CAAU,KAAK,CAAC,EAAE;AAEvE,MAAM,gBAAgB,GAAG;MACnB,cAAc,GAAG,IAAI,cAAc,CAAC,oBAAoB;MAExD,YAAY,GAAG,IAAI,cAAc,CAAS,cAAc;MACxD,gBAAgB,GAAG,IAAI,cAAc,CAAO,kBAAkB;AACpE,MAAM,6BAA6B,GAAG;AACtC,MAAM,4BAA4B,GAAG;AACrC,MAAM,8BAA8B,GAAG;;ICzBlC;AAAZ,CAAA,UAAY,IAAI,EAAA;AACZ,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,IAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EAHW,IAAI,KAAJ,IAAI,GAAA,EAAA,CAAA,CAAA;;MCIM,kBAAkB,CAAA;AAQvC,IAAA,WAAA,CAAgC,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAHrC,IAAA,CAAA,SAAS,GAAG,OAAO;QACnB,IAAA,CAAA,YAAY,GAAG,EAAE;AAGb,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAA,GAAA,EAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;IAClG;AACA;;MCPY,gBAAgB,CAAA;AAK3B,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,OAAO;IAKjE;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;IAC3B;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,YAAY,GAAgB;AAChC,YAAA,SAAS,CAAC,YAAY;AACtB,YAAA,SAAS,CAAC,iBAAiB;AAC3B,YAAA,SAAS,CAAC,YAAY;AACtB,YAAA,SAAS,CAAC,cAAc;AACxB,YAAA,SAAS,CAAC,kBAAkB;AAC5B,YAAA,SAAS,CAAC,kBAAkB;AAC5B,YAAA,SAAS,CAAC,kBAAkB;AAC5B,YAAA,SAAS,CAAC,aAAa;AACvB,YAAA,SAAS,CAAC,UAAU;SACrB;QACD,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3C,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;IAC3B;AAEA,IAAA,aAAa,CAAC,GAA6C,EAAA;AACzD,QAAA,IAAI,IAAI,GAAc,QAAQ,CAAC,kBAAkB;AACjD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE;AACb,YAAA,IAAI,GAAG,GAAG,CAAC,IAAI;QACjB;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;IAC3B;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,WAAW;IACzB;+GAhDW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCFY,mBAAmB,GAAG,IAAI,cAAc,CAA4B,qBAAqB;MACzF,qBAAqB,GAAG,IAAI,cAAc,CAA0B,uBAAuB;MAC3F,sBAAsB,GAAG,IAAI,cAAc,CAA2B,wBAAwB;MAC9F,qCAAqC,GAAG,IAAI,cAAc,CAAkE,uCAAuC;MACnK,WAAW,GAAG,IAAI,cAAc,CAAuC,aAAa;MACpF,8BAA8B,GAAG,IAAI,cAAc,CAA0B,gCAAgC;MAE7G,oBAAoB,GAAG,IAAI,cAAc,CAA4F,sBAAsB;;MCD3J,YAAY,CAAA;AAGvB,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAA,CAAA,SAAS,GAAa,MAAM,CAAC,QAAQ,CAAC;QAC7B,IAAA,CAAA,UAAU,GAAY,IAAI;AAEzC,QAAA,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE;AAC5C,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACzB;;QAEF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACzB;IACF;AAEA,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY;IAChD;AAEA,IAAA,OAAO,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,IAAI;QACb;QACA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;IACnC;IAEA,OAAO,CAAC,GAAW,EAAE,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IACnC;AAOA,IAAA,IAAI,cAAc,GAAA;QAChB,QACE,IAAI,CAAC,eAAe;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAgB;IAE/D;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,QACE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC;IAEzE;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,QACE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;IAEzE;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1D;AAEA,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAmB;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,KAAK,CAAC;IACpD;AAEA,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC;IACnD;AAEA,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,KAAK,CAAC;IACrD;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;IACrC;+GA9EW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCKrB,YAAY,CAAA;AAUrB,IAAA,WAAA,GAAA;AATQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAA4B,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;AACjH,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA2B,sBAAsB,CAAC;AACtE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO;AAC3D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEnC,QAAA,IAAA,CAAA,OAAO,GAAiB,MAAM,CAAC,YAAY,CAAC;IAGlD;AAEQ,IAAA,kBAAkB,CAAC,qBAA6B,EAAA;QACtD,IAAI,qBAAqB,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;QACxD;IACF;AAEA,IAAA,OAAO,CAAC,KAA6B,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAC,CAAC;YACxE;AACA,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACnB;QACA,MAAM,QAAQ,GAAGA,iBAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;AAEpC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC1B,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;QAClB;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACnB;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACrC,KAAK;AACL,YAAA,mBAAmB,EAAE;gBACjB;AACH;SACJ;AACI,aAAA,IAAI,CACD,UAAU,CAAC,CAAC,GAAG,KAAI;YACf,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAC,CAAC;QACxD,CAAC,CAAC,EACF,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,qBAAqB,EAAC,KAAI;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;AAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AAC7B,YAAA,OAAO,IAAI;QACf,CAAC,CAAC,CACL;IACT;IAEA,WAAW,CAAC,KAAa,EAAE,IAAa,EAAA;QACpC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE,CAAC,EAAE;AAC/D,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,EAAG,KAAK,IAAI,gBAAgB,CAAA,CAAE,CAAC;AACxF,gBAAA,OAAO,IAAI;YACf;QACJ;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE,EAAE,IAAI,EAAEA,iBAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACjJ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI;AAC1C,YAAA,OAAO,IAAI;QACf;AACA,QAAA,OAAO,KAAK;IAChB;+GApES,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MCPY,uBAAuB,CAAA;AAIhC,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAG9B;IAEhB,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAC9C,QAAA,OAAO;aACF,MAAM,CAAC,GAAG;AACV,aAAA,IAAI,CACD,UAAU,CAAC,CAAC,GAAsB,KAAI;AAClC,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AAC1C,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YACpC;AACA,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,CACL;IACT;+GAjBS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAvB,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACeD,MAAM,qBAAqB,GAAwB;AACjD,IAAA,CAAC,QAAQ,CAAC,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE;YACT,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;AACL,SAAA;AACF,KAAA;AACD,IAAA,CAAC,QAAQ,CAAC,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,EAAE;AACd,KAAA;AACD,IAAA,CAAC,QAAQ,CAAC,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE;YACT,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;AACL,SAAA;AACF,KAAA;AACD,IAAA,CAAC,QAAQ,CAAC,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,CAAC,IAAI,CAAC;AAClB,KAAA;AACD,IAAA,CAAC,QAAQ,CAAC,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACxB,KAAA;CACF;MAEY,2BAA2B,CAAA;AAGtC,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAA,CAAA,QAAQ,GAAiB,MAAM,CAAC,YAAY,CAAC;AAS7C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,8BAA8B,CAAC;AAC5E,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEtC,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;IAVtD;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;IACnG;AAQA,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ;IAC3C;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY;IACvC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW;IACtC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;IACjE;AAEA,IAAA,IAAY,eAAe,GAAA;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,EAAE;QACxD,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAc,KAAI;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC7C,OAAO,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpE,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,YAAY,CACV,OAAA,GAA4C,EAAC,IAAI,EAAE,IAAI,EAAC,EAAA;QAExD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAClE,IAAI,aAAa,GAAG,YAAY;QAChC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE;AACvD,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACrC,aAAa,GAAG,IAAI;QACtB;AAAO,aAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACnD,aAAa,GAAG,WAAW;QAC7B;AAAO,aAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACjD,aAAa,GAAG,SAAS;QAC3B;AAAO,aAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACnD,aAAa,GAAG,WAAW;QAC7B;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAyB,CAAC,EAAE;YAC9D,aAAa,GAAG,YAAY;QAC9B;AAEA,QAAA,IAAI,OAAO,EAAE,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC;QAC9C;QAEA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;IAC7C;+GAtEW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA3B,2BAA2B,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACzED,MAAM,2BAA2B,GAAG,CAAC;AACrC,MAAM,qBAAqB,GAAG,uBAAuB;SAErC,cAAc,GAAA;AAC5B,IAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CACnB,KAAK,EAAE,EACP,GAAG,CAAC,MAAK;QACP,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAC3C,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC,EACF,KAAK,CAAC,2BAA2B,CAAC,CACnC;AACH;;ACjBO,MAAM,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE;IACvD,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KAC1C,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;QACjB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACzC;AACJ,CAAA;;ACVM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAC/D,MAAM,WAAW,GAAG;AACzB,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACpG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,kCAAkC;AAC3C,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,kCAAkC;AAC3C,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mCAAmC;AAC5C,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACjG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5G,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACpG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AAClG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,6BAA6B;AACtC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,kCAAkC;AAC3C,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,8BAA8B;AACvC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAClG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC5G,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AAChG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5G,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACpG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACtG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AAChG,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACrG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACtG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACpG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACpG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACpG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACjG,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACpG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACzG,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACtG,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACjG,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AAClG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oCAAoC;AAC7C,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC5G,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACtG,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;AAC1G,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACjG,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3F,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACjG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5G,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACjG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5G,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAClG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACpG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACzG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AAC5G,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACrG,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACrG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3G,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACjG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AACjG,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACjG,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9F,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAChG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrG,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1G,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3G,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACxG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iCAAiC;AAC1C,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACvG,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AAC1G,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AAClG,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AAChG,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAClG,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;AACnG,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,OAAO,EAAE;AACV,KAAA;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;AACvG,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE;AACV;AACF;KACE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AACf,KAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACb,IAAA,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACxB,IAAA,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;;IC3tCS;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EARW,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;AAUV,MAAM,kBAAkB,GAAG;AAC3B,MAAM,mBAAmB,GAAG;AACjC,IAAA,GAAG,EAAE;AACH,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,QAAQ,EAAE;AACX;;MAKU,YAAY,CAAA;AAGvB,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;IAG5C;IAEA,cAAc,CAAC,IAAY,EAAE,KAAc,EAAA;QACzC,QAAQ,IAAI;YACV,KAAK,KAAK,CAAC,KAAK;AACd,gBAAA,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAC5C,KAAK,KAAK,CAAC,QAAQ;AACjB,gBAAA,IAAI,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE;AACtB,oBAAA,OAAO,oBAAoB;gBAC7B;AACA,gBAAA,OAAO,iBAAiB;YAC1B,KAAK,KAAK,CAAC,EAAE;AACX,gBAAA,OAAO,YAAY;YACrB,KAAK,KAAK,CAAC,IAAI;AACb,gBAAA,OAAO,oBAAoB;YAC7B,KAAK,KAAK,CAAC,QAAQ;AACjB,gBAAA,OAAO,2BAA2B;YACpC,KAAK,KAAK,CAAC,EAAE;AACX,gBAAA,OAAO,kBAAkB;YAC3B,KAAK,KAAK,CAAC,GAAG;AACZ,gBAAA,OAAO,gBAAgB;AACzB,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;IAEA,cAAc,CAAC,IAAY,EAAE,KAAc,EAAA;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;YACnC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI;QAC5C;aAAO;YACL,OAAO,SAAS,IAAI,IAAI;QAC1B;IACF;AAEA,IAAA,WAAW,CAAC,MAAoB,EAAA;QAC9B,IAAI,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE;AAChC,YAAA,OAAO,mBAAmB;QAC5B;AACA,QAAA,IAAI,MAAM,EAAE,YAAY,EAAE;YACxB,OAAO,MAAM,EAAE,YAAY;QAC7B;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ;IAClC;AAEA,IAAA,oBAAoB,CAAC,MAAoB,EAAA;QACvC,OAAO,MAAM,EAAE,iBAAiB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB;IACxE;AAGQ,IAAA,QAAQ,CAAC,KAAc,EAAA;QAC7B,IAAI,IAAI,GAAG,kBAAkB;QAC7B,IAAI,KAAK,EAAE;YACT,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,KAAK,GAAa,WAAW;AACjC,YAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACzD,gBAAA,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AACvC,oBAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACtC,oBAAA,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;AACpC,oBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;wBACzB,OAAO,UAAU,KAAK,CAAC;oBACzB;oBACA,OAAO,CAAC,CAAC,UAAU;AACrB,gBAAA,CAAC,CAAC;AACF,gBAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,KAAK,GAAG,aAAa;gBACvB;qBAAO;oBACL;gBACF;YACF;;AAEA,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;;AAGf,YAAA,IAAI,eAAe,GAAa,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC;YAC5C,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM;YAC5H,IAAI,eAAe,EAAE;AACnB,gBAAA,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD;QACF;AACA,QAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACxD,QAAA,OAAO,IAAI;IACb;+GAxFW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;ACxBD,SAAS,cAAc,CAAC,IAAmB,EAAA;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;AAC1C,QAAA,IAAI,MAAM,GAAC,MAAM,EAAE;YACf,OAAO,CAAC,CAAC;QACb;AACA,QAAA,IAAI,MAAM,GAAC,MAAM,EAAE;AACf,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,CAAC;AACZ,IAAA,CAAC,CAAC;AACN;MAKa,YAAY,CAAA;AAEb,IAAA,WAAW,aAAa,GAAA;AAC5B,QAAA,OAAO,cAAc,CACjB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAc,YAAY,CAAC,CAAC,CACnE;IACL;AACQ,IAAA,WAAW,oBAAoB,GAAA;AACnC,QAAA,OAAO,cAAc,CACjB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAc,uCAAuC,CAAC,CAAC,CAC9F;IACL;IACA,OAAO,QAAQ,CAAC,EAAU,EAAA;AACtB,QAAA,MAAM,cAAc,GAAgB,QAAQ,CAAC,aAA4B;QACzE,MAAM,KAAK,GAAG,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC;AACtD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AACxC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE;YAC5B,EAAE,EAAE,cAAc,EAAE;YACpB;QACJ;AACA,QAAA,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,OAAO,KAAK,cAAc,EAAE;gBAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE;oBACN,EAAE,EAAE,cAAc,EAAE;oBACpB,IAAI,CAAC,KAAK,EAAE;gBAChB;gBACA;YACJ;QACJ;IACJ;IACA,OAAO,IAAI,CAAC,EAAU,EAAA;AAClB,QAAA,MAAM,cAAc,GAAgB,QAAQ,CAAC,aAA4B;QACzE,MAAM,KAAK,GAAG,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC;AACtD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AACxC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE;YAC9B,EAAE,EAAE,cAAc,EAAE;YACpB;QACJ;AACA,QAAA,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,OAAO,KAAK,cAAc,EAAE;gBAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE;oBACN,EAAE,EAAE,cAAc,EAAE;oBACpB,IAAI,CAAC,KAAK,EAAE;gBAChB;gBACA;YACJ;QACJ;IACJ;IACA,OAAO,eAAe,CAAC,EAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,aAAa,EAAE,IAAI,CAAC;SACvB,EAAE,EAAE,CAAC;IACV;IACA,OAAO,WAAW,CAAC,EAAU,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACX,aAAa,EAAE,IAAI,CAAC;SACvB,EAAE,EAAE,CAAC;IACV;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5C;+GAnES,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA;;4FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCnBY,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAI;AAChD,IAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACrB,QAAA,OAAO,IAAI;IACf;IACA,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;AAC5C,QAAA,OAAO,KAAK;IAChB;IACA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAErC,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;AAErD,IAAA,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;AACtB,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;AAC3B,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;QAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;aAC7C,CAAC,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC,EACnC;AACE,YAAA,OAAO,KAAK;QAChB;IACJ;AACA,IAAA,OAAO,IAAI;AACf;AAEO,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAI;IAC/B,OAAO,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AACvD;;AC7BO,MAAM,cAAc,GAAG,MAAK;AAC/B,IAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,qJAAqJ,CAAC;AACxL,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACjB,IAAA,OAAO,CAAC,GAAG,CAAC,iLAAiL,EAAE,gEAAgE,CAAC;AAChQ,IAAA,OAAO,CAAC,GAAG,CAAC,gMAAgM,EAAE,gEAAgE,CAAC;AAC/Q,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB;;ICNY;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC5B,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACrB,CAAC,EARW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ICApB;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;ACO1B,MAAM,WAAW,GAAG;AAChB,IAAA,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,QAAQ,CAAC,6BAA6B;IACnD,KAAK,EAAE,QAAQ,CAAC,uBAAuB;IACvC,IAAI,EAAE,KAAK,CAAC,KAAK;AACjB,IAAA,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,QAAQ,CAAC,6BAA6B;AACnD,IAAA,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,GAAG;AAChB,IAAA,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,QAAQ,CAAC,uBAAuB;IACvC,WAAW,EAAE,QAAQ,CAAC,6BAA6B;AACnD,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,UAAU,GAAG,CAAC,MAAM,KAAI;IAC1B,OAAO;AACH,QAAA,GAAG,MAAM;QACT,GAAG;AACC,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,MAAM,EAAE;AACX;KACJ;AACL,CAAC;AAEM,MAAM,cAAc,GAAkC;AACzD,IAAA,MAAM,EAAE;AACJ,QAAA,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ,CAAC,wBAAwB;AACxC,QAAA,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,QAAQ,CAAC,8BAA8B;AACpD,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,eAAe;QACnB,IAAI,EAAE,oBAAoB,CAAC;AAC9B,KAAA;AACD,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC;AACrC,IAAA,UAAU,EAAE;AACR,QAAA,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,QAAQ,CAAC,2BAA2B;QAC3C,WAAW,EAAE,QAAQ,CAAC,iCAAiC;AACvD,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,QAAQ,CAAC,0BAA0B;QAC1C,WAAW,EAAE,QAAQ,CAAC,gCAAgC;AACtD,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,KAAA;AACD,IAAA,aAAa,EAAE;AACX,QAAA,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,QAAQ,CAAC,2BAA2B;AAC3C,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,oBAAoB,CAAC,IAAI;AAC/B,QAAA,OAAO,EAAE;YACL,iBAAiB,EAAEA,iBAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO;AACrD;AACJ,KAAA;AACD,IAAA,GAAG,EAAE;AACD,QAAA,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,QAAQ,CAAC,qBAAqB;QACrC,WAAW,EAAE,QAAQ,CAAC,2BAA2B;AACjD,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,KAAA;AACD,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC;AACrC,IAAA,aAAa,EAAE;AACX,QAAA,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,QAAQ,CAAC,8BAA8B;QAC9C,WAAW,EAAE,QAAQ,CAAC,oCAAoC;AAC1D,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC,MAAM;AACjC,QAAA,OAAO,EAAE;YACL,UAAU,EAAE,cAAc,CAAC;AAC9B;AACJ,KAAA;AACD,IAAA,SAAS,EAAG;AACR,QAAA,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,QAAQ,CAAC,sBAAsB;QACtC,WAAW,EAAE,QAAQ,CAAC,4BAA4B;AAClD,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,oBAAoB,CAAC,MAAM;AACjC,QAAA,OAAO,EAAE;YACL,UAAU,EAAE,cAAc,CAAC;AAC9B;AACJ;;;AC7GE,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ICTW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,YAAA,CAAA,YAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY;AACZ,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;ACQjB,MAAM,WAAW,GAAG;;ACNpB,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,WAAW,GAAkB;AACtC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,QAAQ,GAAkB;IACnC,WAAW,EAAE,QAAQ,CAAC,gCAAgC;AACtD,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,cAAc,GAAkB;AACzC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,oBAAoB;AAC3B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,KAAK,CAAC,EAAE;AACd,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;AClBM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,MAAM,GAAkB;IACjC,WAAW,EAAE,QAAQ,CAAC,+BAA+B;AACrD,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,KAAK,CAAC,QAAQ;AACpB,YAAA,WAAW,EAAE,sCAAsC;AACnD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA,cAAc,CAAC;AAClB;CACJ;;ACpBM,MAAM,WAAW,GAAkB;AACtC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,aAAa;AAC5B,QAAA,cAAc,CAAC,KAAK;AACvB;CACJ;;ACTM,MAAM,aAAa,GAAkB;AACxC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,UAAU,GAAkB;IACrC,WAAW,EAAE,QAAQ,CAAC,kCAAkC;AACxD,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,qBAAqB;AAC5B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,eAAe,GAAkB;AAC1C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA,cAAc,CAAC,SAAS;AACxB,QAAA,cAAc,CAAC;AAClB;CACJ;;AClBM,MAAM,qBAAqB,GAAkB;AAChD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,kBAAkB,GAAkB;AAC7C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,SAAS,GAAkB;AACpC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA,cAAc,CAAC;AAClB;CACJ;;ACVM,MAAM,cAAc,GAAkB;AACzC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,oBAAoB;AAC3B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,uBAAuB,GAAkB;AAClD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,6BAA6B;AACpC,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,aAAa,GAAkB;AACxC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,iBAAiB,GAAkB;AAC5C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;AChBM,MAAM,iBAAiB,GAAkB;AAC5C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,KAAK,CAAC,QAAQ;AACpB,YAAA,WAAW,EAAE,sCAAsC;AACnD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA,cAAc,CAAC;AAClB;CACJ;;ACnBM,MAAM,aAAa,GAAkB;AACxC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,OAAO,GAAkB;IAClC,YAAY,EAAE,QAAQ,CAAC,oCAAoC;AAC3D,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,WAAW,GAAkB;AACtC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,UAAU,GAAkB;AACrC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA,cAAc,CAAC,KAAK;AACvB;CACJ;;ACnBM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,IAAI,GAAkB;IAC/B,WAAW,EAAE,QAAQ,CAAC,+BAA+B;AACrD,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;ACnBM,MAAM,YAAY,GAAkB;AACvC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA,cAAc,CAAC,aAAa;AAC5B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,QAAQ,CAAC,0BAA0B;YAC1C,WAAW,EAAE,QAAQ,CAAC,gCAAgC;AACtD,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA,cAAc,CAAC;AAClB;CACJ;;ACnBM,MAAM,WAAW,GAAkB;AACtC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK,CAAC,EAAE;AACd,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;ACjBM,MAAM,SAAS,GAAkB;IACpC,WAAW,EAAE,QAAQ,CAAC,+BAA+B;AACrD,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,WAAW,GAAkB;AACtC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;ACjBM,MAAM,GAAG,GAAkB;AAC9B,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA,cAAc,CAAC,aAAa;AAC5B,QAAA;AACI,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,QAAQ,CAAC,8BAA8B;AACpD,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,oBAAoB,CAAC;AAC9B,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;AC5BM,MAAM,gBAAgB,GAAkB;AAC3C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,SAAS,GAAkB;AACpC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,SAAS,GAAkB;AACpC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,UAAU,GAAkB;AACrC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,QAAQ,GAAkB;IACnC,WAAW,EAAE,QAAQ,CAAC,+BAA+B;AACrD,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC,WAAW;AAC1B,QAAA;AACI,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,KAAK,CAAC,QAAQ;AACpB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,6BAA6B;AAC1C,YAAA,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,oBAAoB,CAAC;AAC9B;AACJ;CACJ;;ACnBM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,0BAA0B;AACjC,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,SAAS,GAAkB;AACpC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,YAAY,GAAkB;AACvC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,aAAa,GAAkB;AACxC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,sBAAsB,GAAkB;AACjD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,4BAA4B;AACnC,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,OAAO,GAAkB;AAClC,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACLM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,YAAY,GAAkB;AACvC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,eAAe,GAAkB;AAC1C,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACPM,MAAM,qBAAqB,GAAkB;AAChD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,2BAA2B;AAClC,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACRM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,GAAG,GAAkB;AAC9B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,UAAU,GAAkB;AACrC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,SAAS,GAAkB;AACpC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,OAAO,GAAkB;AAClC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,IAAI,GAAkB;AAC/B,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,QAAQ,GAAkB;AACnC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,oBAAoB;AAC3B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,YAAY,GAAkB;AACvC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,oBAAoB;AAC3B,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,YAAY,GAAkB;AACvC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,KAAK;AACpB,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;ACTM,MAAM,MAAM,GAAkB;AACjC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC;AAClB;CACJ;;ACNM,MAAM,KAAK,GAAkB;AAChC,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE;AACJ,QAAA,cAAc,CAAC,MAAM;AACrB,QAAA,cAAc,CAAC,YAAY;AAC3B,QAAA,cAAc,CAAC,UAAU;AACzB,QAAA,cAAc,CAAC;AAClB;CACJ;;AC8FM,MAAM,MAAM,GAAmC;IAClD,OAAO;IACP,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;IACR,cAAc;IACd,KAAK;IACL,MAAM;IACN,OAAO;IACP,IAAI;IACJ,MAAM;IACN,WAAW;IACX,IAAI;IACJ,aAAa;IACb,IAAI;IACJ,UAAU;IACV,IAAI;IACJ,OAAO;IACP,GAAG;IACH,QAAQ;IACR,OAAO;IACP,eAAe;IACf,qBAAqB;IACrB,MAAM;IACN,OAAO;IACP,GAAG;IACH,OAAO;IACP,OAAO;IACP,kBAAkB;IAClB,SAAS;IACT,KAAK;IACL,cAAc;IACd,uBAAuB;IACvB,KAAK;IACL,aAAa;IACb,OAAO;IACP,IAAI;IACJ,iBAAiB;IACjB,iBAAiB;IACjB,QAAQ;IACR,aAAa;IACb,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,GAAG;IACH,UAAU;IACV,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,IAAI;IACJ,YAAY;IACZ,WAAW;IACX,SAAS;IACT,MAAM;IACN,WAAW;IACX,MAAM;IACN,GAAG;IACH,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,UAAU;IACV,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,aAAa;IACb,sBAAsB;IACtB,OAAO;IACP,OAAO;IACP,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,MAAM;IACN,MAAM;IACN,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,UAAU;IACV,MAAM;IACN,SAAS;IACT,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,MAAM;IACN;;MAES,uBAAuB,GAAG,CAAC,IAAY,EAAE,MAAqB,KAAI;AAC3E,IAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM;AACzB;;MC1La,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AAC7B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,2BAA2B,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA2B,sBAAsB,CAAC;AACtE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,OAAO;AACzD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;AACjC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAG7D,QAAA,IAAA,CAAA,KAAK,GAAiC,IAAI,eAAe,CAAc,SAAS,CAAC;AACjF,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,eAAe,CAAU,IAAI,CAAC;AACvE,QAAA,IAAA,CAAA,kBAAkB,GAA6B,IAAI,eAAe,CAAU,IAAI,CAAC;AAGzE,QAAA,IAAA,CAAA,cAAc,GAA+B,IAAI,GAAG,EAAE;QAqO9D,IAAA,CAAA,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;AAK1C,IAAA;IAxOS,kBAAkB,CAAC,UAAwB,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,IAAI,EAAE,EAAA;AAC1F,QAAA,OAAO,OAAO,CAAC,OAAO,CACpB,CAAC,CAAa,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CACxC,CAAC,CAAC,IAAI,CAAC,IAAI,EACX,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CACF;IACH;AAEQ,IAAA,oBAAoB,CAAC,OAAoB,EAAA;AAC/C,QAAA,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW;;AAGjC,QAAA,MAAM,cAAc,GAA6B,IAAI,GAAG,EAAuB;AAC/E,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,EAAC,EAAE,EAAC,EAAC,KAAI;AAC/C,YAAA,IAAI,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACrE,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;AAC3C,QAAA,CAAC,CAAC;;QAGF,MAAM,eAAe,GAAa,EAAE;QACpC,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC/D,MAAM,8BAA8B,GAAG,CAAC,MAAM,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxH,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;;YAEpC,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;YAC3E,IAAI,kBAAkB,EAAE;AACtB,gBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,EAAE;AAChD,YAAA,OAAO,GAAG;AACP,iBAAA,MAAM,CAAC,CAAC,EAAC,cAAc,EAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC1E,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,KAAK,kBAAkB,KAAK,CAAC,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC;QAC1G;AACA,QAAA,OAAO,CAAC,WAAW,GAAG,OAAO;AAC7B,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;IACtC;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW;AAC1D,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AACxD,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;IACzB;AAEA,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,eAAe,CAAC,EAAU,EAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;IAChF;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;IAC9B;IAEA,GAAG,GAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC;SACb;AACE,aAAA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC/B,EACD,GAAG,CAAC,CAAC,OAAoB,KAAI;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC9B,CAAC,CAAC,CACH;IACL;IAEA,aAAa,CAAC,QAAQ,EAAE,MAAc,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE;AACvC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC;AACA,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,EAAE;AACjB,iBAAA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACzC,CACF;QACL;QACA,OAAO,IAAI,CAAC;AACT,aAAA,qBAAqB,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;YAClC,QAAQ;YACR;SACD;AACA,aAAA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACzC,EACD,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,YAAA,IAAI,MAAM,CAAC,aAAa,EAAE;AACxB,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;YAC3C;AACA,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC,CAAC,CAAC,CACH;IACL;AAEQ,IAAA,UAAU,CAAC,QAAmC,EAAA;QACpD,OAAO,CAAC,GAA2B,KAAI;YACrC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC;AACxB,QAAA,CAAC;IACH;AAEA,IAAA,OAAO,CAAC,IAAmC,EAAA;QACzC,OAAO,IAAI,CAAC;AACT,aAAA,0BAA0B,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,6BAA6B,EAAE;SAChC;AACA,aAAA,IAAI,CACH,KAAK,CAAC,IAAI,CAAC,EACX,UAAU,CACR,IAAI,CAAC,UAAU,EAAE,CAClB,CACF;IACL;IAEA,OAAO,GAAA;QACL,OAAO,IAAI,CAAC;AACT,aAAA,0BAA0B,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,6BAA6B,EAAE;AAC7B,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;gBAClC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AACxC;SACF;AACA,aAAA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,EAAE,CAClB,EACD,GAAG,CAAC,CAAC,IAAI,KAAI;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;QACrC,CAAC,CAAC,CACH;IACL;IAEA,KAAK,GAAA;QAEH,OAAO,IAAI,CAAC;AACT,aAAA,iBAAiB,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC;SACb;AACA,aAAA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,EAAE,CAClB,EACD,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;gBACtB,MAAM,KAAK,GAAG,EAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAC;AAC7C,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;AACtC,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAEtB,gBAAA,MAAM,KAAK;YACb;QACF,CAAC,CAAC,CACH;IACL;AAEA,IAAA,QAAQ,CAAC,MAAc,EAAA;QACrB,OAAO,IAAI,CAAC;AACT,aAAA,sBAAsB,CAAC;YACtB,MAAM;YACN,KAAK,EAAE,IAAI,CAAC;SACb;aACA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,EAAE,CAClB,CACF;IACL;AAEA,IAAA,YAAY,CAAC,MAAc,EAAA;QAEzB,OAAO,IAAI,CAAC;AACT,aAAA,8BAA8B,CAAC;YAC9B,MAAM;YACN,KAAK,EAAE,IAAI,CAAC;SACb;aACA,IAAI,CACH,UAAU,CACR,IAAI,CAAC,UAAU,EAAE,CAClB,CACF;IACL;AAEA,IAAA,qBAAqB,CAAC,IAAY,EAAE,EAAU,EAAE,QAAiB,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;IAC9E;AAIA,IAAA,UAAU,CAAC,OAAY,EAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IACzC;+GAzPW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;MClBY,YAAY,CAAA;AADzB,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AACrC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAGhC,IAAA,CAAA,eAAe,GAAG,IAAI,GAAG,CAA+C;AAC/E,YAAA;gBACE,SAAS;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG;AAC5B,oBAAA,GAAG,EAAE,4CAA4C;AACjD,oBAAA,IAAI,EAAE;AACP,iBAAA,GAAG;AACF,oBAAA,GAAG,EAAE,6CAA6C;AAClD,oBAAA,IAAI,EAAE;AACP;AACF;AACF,SAAA,CAAC;AA6CH,IAAA;AA3CC,IAAA,WAAW,CAAC,EAAe,EAAA;QACzB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,IAAI,MAAyB;AAC7B,YAAA,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE;AACnF,gBAAA,OAAO,EAAE;gBACT;YACF;AACA,YAAA,IAAI,EAAE,KAAK,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE;AAClF,gBAAA,OAAO,EAAE;gBACT;YACF;AACA,YAAA,IAAI,EAAE,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAAE;AAC1F,gBAAA,OAAO,EAAE;gBACT;YACF;AACA,YAAA,IAAI,EAAE,KAAK,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,wBAAwB,CAAC,EAAE;AAC/F,gBAAA,OAAO,EAAE;gBACT;YACF;AAEA,YAAA,IAAI,EAAE,KAAK,gBAAgB,IAAI,EAAE,KAAK,eAAe,IAAI,EAAE,KAAK,aAAa,EAAE;AAC7E,gBAAA,MAAM,QAAQ,GAAwB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAC;gBACnF,IAAI,CAAC,QAAQ,EAAE;AACb,oBAAA,MAAM,EAAE;gBACV;gBACA,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAsB;YACjE;iBAAO;AACL,gBAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC9C,gBAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB;AAC/B,gBAAA,MAAM,CAAC,GAAG,GAAG,GAAG;gBAChB,IAAI,IAAI,EAAE;AACR,oBAAA,MAAM,CAAC,SAAS,GAAG,IAAI;AACvB,oBAAA,MAAM,CAAC,WAAW,GAAG,WAAW;gBAClC;AACA,gBAAA,MAAM,CAAC,KAAK,GAAG,IAAI;YACrB;AACA,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YACzB,MAAM,CAAC,MAAM,GAAG,MAAY,OAAO,EAAE;AACrC,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,KAAW,MAAM,CAAC,GAAG,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACxC,QAAA,CAAC,CAAC;IACJ;+GA7DW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;ACCD,YAAY,EAAE;MAoBD,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAd,cAAc,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CAhBvB,YAAY,CAAC,QAAQ,CAAC;AACpB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,YAAY,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,YAAY,EAAE,MAAM,8DAAkC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa;AACjF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE;AACb;aACF,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAGO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY,CAAC,QAAQ,CAAC;AACpB,4BAAA;AACE,gCAAA,IAAI,EAAE,EAAE;AACR,gCAAA,YAAY,EAAE,MAAM;AACrB,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,SAAS;AACf,gCAAA,YAAY,EAAE,MAAM,8DAAkC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa;AACjF,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,IAAI;AACV,gCAAA,UAAU,EAAE;AACb;yBACF;AACF;AACF,iBAAA;;AAIM,MAAM,eAAe,GAAG,MAAK;IAClC,OAAO;QACL,2BAA2B;AAC3B,QAAA;AACE,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB,gBAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACzB;AACF,SAAA;QACD,gBAAgB;QAChB;KACD;AACH;;MCzCa,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCeY,oBAAoB,CAAA;AATjC,IAAA,WAAA,GAAA;AAUY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAA2B,eAAe,CAAC;AAC1D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAEzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;AAoC7C,IAAA;IAjCmF,IAAI,CAAC,EAAE,EAAE,QAAkB,EAAA;AACvG,QAAA,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;IAChC;IAC8E,IAAI,CAAC,EAAE,EAAE,QAAkB,EAAA;AACrG,QAAA,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;IACpC;IAGF,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc;AAChB,aAAA,IAAI,CACH,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAC/D,SAAS,CAAC,MAAM,cAAc,EAAE,CAAC,EACjC,KAAK,EAAE,EACP,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAE7B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C;IAEU,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACvB,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC;QACjB;AACA,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC;aACd,IAAI,CACD,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,YAAY,eAAe,CAAC,CAC3H;IACT;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACnC;+GAxCS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,4BAAA,EAAA,mCAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,EAAA,cAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMf,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAS,WAAW,6BC1B1D,wHAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDac,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAExB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,IAAA,EACd;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA,EAAA,OAAA,EAGQ,CAAC,YAAY,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,wHAAA,EAAA;;sBAQjC,YAAY;uBAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAC;;sBAErE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC;;sBAG7E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC;;;MEzBnE,+BAA+B,CAAA;AAJ5C,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAA+C,WAAW,CAAC;AAExE,IAAA;+GAHY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCEY,8BAA8B,CAAA;AAJ3C,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;QAC5B,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAK9B,IAAA,CAAA,kBAAkB,GAAG,GAAG;AAyBlC,IAAA;IAvBC,eAAe,GAAA;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,qBAAqB;AACtE,QAAA,IAAI,CAAC,cAAc;YAAE;QAErB,MAAM,QAAQ,GAAG,MAAK;AACpB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAC9D,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1D,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,WAAW,EACX,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI,CACpF;AACH,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;AAChE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtE;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE;IACpC;+GAjCW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCIY,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AAMY,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAqClD,IAAA;AAhCG,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;AACnC,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACd,YAAA,OAAO,EAAE;QACb;QAEA,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW;AACzC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAiB,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC;IACtF;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7C,aAAA,SAAS,CAAC,CAAC,EAAC,IAAI,EAAC,KAAI;AAClB,YAAA,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBACpB;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAC1B,QAAA,CAAC,CAAC;IACV;IAEQ,QAAQ,GAAA;QACZ,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;AACxE,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;QAC/C;AACA,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;IACxC;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,QAAQ,EAAE;IACnB;+GAtCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCuCY,kBAAkB,CAAA;AAS3B,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnG;AAuBA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG;IAC/B;AAMA,IAAA,WAAA,GAAA;AAzCQ,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AACrC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE9B,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,OAAO,EAAQ;QACjD,IAAA,CAAA,SAAS,GAAG,KAAK;QACzB,IAAA,CAAA,QAAQ,GAAG,QAAQ;QAOV,IAAA,CAAA,SAAS,GAAG,IAAI;QAEhB,IAAA,CAAA,QAAQ,GAAG,CAAC;QACZ,IAAA,CAAA,IAAI,GAAG,EAAE;QACT,IAAA,CAAA,WAAW,GAAG,EAAE;QAChB,IAAA,CAAA,UAAU,GAAG,IAAI;QACjB,IAAA,CAAA,YAAY,GAAG,IAAI;AAC5B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,WAAW,EAAE;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;QAGrC,IAAA,CAAA,YAAY,GAAG,EAAE;AAEjB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAK,KAAI;AACrB,QAAA,CAAC;QACD,IAAA,CAAA,OAAO,GAAG,MAAK;AACf,QAAA,CAAC;QAOQ,IAAA,CAAA,MAAM,GAAG,IAAI;QACb,IAAA,CAAA,SAAS,GAAG,MAAM;QAC3B,IAAA,CAAA,MAAM,GAAG,KAAK;AAGV,QAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC3B,aAAA,IAAI,CACD,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACzE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE/B,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClF;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC;iBACA;AACA,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B,YAAY,CAAC,GAAG,CAAC;AAEpB,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1D;IACJ;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D;AACA,QAAA,OAAO,EAAE;IACb;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;IAC5D;AAEA,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtE;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd;QACJ;;AAEA,QAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC;IACzD;IAIA,MAAM,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB;QACJ;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;YACpC;QACJ;AACA,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9G;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACvB,gBAAA,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACvC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAC5D,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,EACnF,GAAG,CACN;YACL;iBAAO;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IAC3B;AAEA,IAAA,UAAU,CAAC,IAAI,EAAA;QACX,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK;QAClC;AACA,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,YAAY,CAAC,IAAI,EAAA;QACb,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI;IACtC;AAEA,IAAA,YAAY,CAAC,EAAE,EAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,OAAO,EAAE;QACb;AACA,QAAA,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvC;AAEA,IAAA,iBAAiB,CAAC,EAAE,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,OAAO,EAAE;QACb;AACA,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3D;AAEA,IAAA,MAAM,CAAC,IAAI,EAAA;QACP,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C;QACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC5B;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAC1B;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACtB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU;IAC/B;AAEA,IAAA,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACnC;+GA7LS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAVhB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACd;SACJ,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqCa,+BAA+B,gDCjFjD,mkJAqHA,EAAA,MAAA,EAAA,CAAA,smKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvEc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,oFAAE,8BAA8B,EAAA,QAAA,EAAA,wCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,sCAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,0ZAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EAD1H,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAGxB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACd;AACJ,qBAAA,EAAA,UAAA,EACW,CAAC,mBAAmB,CAAC,WACxB,CAAC,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,mkJAAA,EAAA,MAAA,EAAA,CAAA,smKAAA,CAAA,EAAA;;sBAetI;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBAUA,YAAY;uBAAC,+BAA+B;;sBAK5C;;sBACA;;;ME1DQ,6BAA6B,CAAA;AAUtC,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,qBAAqB;IACpD;AAEA,IAAA,WAAA,GAAA;AAbQ,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,8BAA8B,CAAC;AAC5E,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,2BAA2B,CAAC;AACpD,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE9B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QACjC,IAAA,CAAA,OAAO,GAAG,KAAK;AACd,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;QACxC,IAAA,CAAA,QAAQ,GAAG,CAAC;QAOjB,IAAI,CAAC,cAAc,CAAC;AACf,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE/B,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;IACjD;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW;IAC1C;AACA,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK;IAChC;AAEA,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACnC;+GAtCS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B1C,ynBAkBA,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDSc,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,+BAAE,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAEhH,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,mBAGrB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,kBAAkB,EAAE,WAAW,EAAE,+BAA+B,EAAE,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,ynBAAA,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA;;sBAQzH;;sBACA;;sBACA;;;MEpBQ,0BAA0B,CAAA;AAWnC,IAAA,WAAA,GAAA;AAVQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,8BAA8B,CAAC;AAC5E,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAEzD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QAGjC,IAAA,CAAA,OAAO,GAAG,IAAI;QAGrB,IAAI,CAAC,YAAY,CAAC;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aACjC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;IACtD;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS;IACpC;AACA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU;IACrC;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACnC;+GAjCS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,2KCjBvC,y4CAoCA,EAAA,MAAA,EAAA,CAAA,itDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBc,WAAW,EAAA,QAAA,EAAA,sCAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,6BAA6B,iIAAE,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEhE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAG1B,CAAC,WAAW,EAAE,6BAA6B,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,y4CAAA,EAAA,MAAA,EAAA,CAAA,itDAAA,CAAA,EAAA;;sBASzE;;sBACA;;sBACA;;;MEnBQ,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAM5C,IAAA;IAJG,SAAS,CAAC,KAAU,EAAE,OAAwB,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACnD;+GALS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCSY,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,8BAA8B,CAAC;QAEpF,IAAA,CAAA,eAAe,GAAG,eAAe;QACjC,IAAA,CAAA,QAAQ,GAAG,QAAQ;QACV,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,SAAS,GAAG,IAAI;QAQhB,IAAA,CAAA,cAAc,GAAG,IAAI;AAIjC,IAAA;AAHG,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY;IACvC;+GAlBS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfvC,29CAwCA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,ED3Bc,aAAa,4CAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAElC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACI,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,WACtC,CAAC,aAAa,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,29CAAA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA;;sBAO3C;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MExBQ,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA+B,WAAW,CAAC;AAEhE,QAAA,IAAA,CAAA,QAAQ,GAAoB,IAAI,YAAY,EAAK;QACjD,IAAA,CAAA,QAAQ,GAA4C,IAAI;AAanE,IAAA;IAXG,IACI,KAAK,CAAC,OAAU,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO;AAEvD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAClD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,CAChB;QACL;IACJ;+GAjBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;sBAQI;;MAaQ,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,SAAS,GAAM,IAAK;QACpB,IAAA,CAAA,KAAK,GAAM,IAAK;IAC3B;AAAC;;AC1BD,SAAS,cAAc,CAAC,IAAY,EAAE,MAAiC,EAAE,IAAI,GAAG,IAAI,EAAA;AAClF,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,eAAe,EAAE,MAAM;SACxB;AACE,aAAA,aAAa;AACb,aAAA,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK;IACnD;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,IAAI;IACb;AACF;MAaa,kBAAkB,CAAA;AAX/B,IAAA,WAAA,GAAA;AAYU,QAAA,IAAA,CAAA,YAAY,GAAiB,MAAM,CAAC,YAAY,CAAC;QACjD,IAAA,CAAA,kBAAkB,GAAG,GAAG;QACxB,IAAA,CAAA,OAAO,GAAG,OAAO;QACzB,IAAA,CAAA,SAAS,GAAG,GAAG;AAEf,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAkB,CAAC,iDAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE,gDAAC;AAExB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,kDAAC;AACpE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,sDAAC;QAC1D,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;AACnC,aAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI;AACxE,aAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB;AACrC,aAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE;aACzB,IAAI,EAAE,mDACR;QACD,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACxF,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAC7B,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9C,YAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC;AACrB,QAAA,CAAC,0DAAC;AACH,IAAA;+GAtBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAJlB;YACT;AACD,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BH,mYASA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDmBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,EAAE,mBAGM,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;wBACT;AACD,qBAAA,EAAA,QAAA,EAAA,mYAAA,EAAA;;;AEZH,MAAM,UAAU,GAAG;IACjB,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,kBAAkB;IAClB,8BAA8B;IAC9B,kBAAkB;IAClB,cAAc;IACd;CACD;MAgBY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YARrB,YAAY;YACZ,WAAW;YACX,eAAe;YACf,WAAW;AACX,YAAA,mBAAmB,EApBrB,0BAA0B;YAC1B,6BAA6B;YAC7B,0BAA0B;YAC1B,kBAAkB;YAClB,8BAA8B;YAC9B,kBAAkB;YAClB,cAAc;AACd,YAAA,+BAA+B,aAP/B,0BAA0B;YAC1B,6BAA6B;YAC7B,0BAA0B;YAC1B,kBAAkB;YAClB,8BAA8B;YAC9B,kBAAkB;YAClB,cAAc;YACd,+BAA+B,CAAA,EAAA,CAAA,CAAA;AAiBpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAAA,SAAA,EAZZ;YACT;AACD,SAAA,EAAA,OAAA,EAAA,CAEC,YAAY;YACZ,WAAW;YACX,eAAe;YACf,WAAW;AACX,YAAA,mBAAmB,EApBrB,0BAA0B;YAC1B,6BAA6B;YAE7B,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAqBP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAdxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,SAAS,EAAE;wBACT;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,WAAW;wBACX,mBAAmB;AACnB,wBAAA,GAAG;AACJ;AACF,iBAAA;;;ACtCK,SAAU,gBAAgB,CAAmC,GAAM,EAAE,UAAkC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAA;IAC9H,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC3C,QAAA,OAAO,GAAG;IACZ;IAEA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACvC,QAAA,MAAM,KAAK,GAAQ,GAAG,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,OAAO,KAAK,KAAK,WAAW,KAAK,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AAClJ,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC;QACjB;AACF,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,GAAG;AACZ;;ACCM,MAAO,sBAAuB,SAAQ,SAAqD,CAAA;AAc/F,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;YACxD,MAAM,EAAE,IAAI,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;YACvD,QAAQ,EAAE,IAAI,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;YACzD,aAAa,EAAE,IAAI,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC9D,YAAA,OAAO,EAAE,IAAI,SAAS,CAAC,EAAE;AAC1B,SAAA,CAAC;AApBI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACrC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,8BAA8B,CAAC;QACxD,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,qCAAqC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,KAAK,CAAC,MAAc,EAAE,aAA4B,KAAK,aAAa,CAAC;AAE3J,QAAA,IAAA,CAAA,QAAQ,GAAiB,MAAM,CAAC,YAAY,CAAC;AAC7C,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,OAAO,EAAQ;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QAE1C,IAAA,CAAA,MAAM,GAAmB,EAAE;QAE3B,IAAA,CAAA,KAAK,GAAG,KAAK;QAoDN,IAAA,CAAA,aAAa,GAAG,KAAK;IA1C5B;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACrD;AAEA,IAAA,IAAI,qBAAqB,GAAA;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C;IAEA,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,CAAC,WAAmB,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9E;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CACrC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CACjD;QACH;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;QAChE;QAEA,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;AAErC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,OAAO,IAAI,CAAC;AACT,aAAA,aAAa,CACZ,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,IAAI,CAAC,MAAM,CAAC,KAAK;aAElB,IAAI,CACH,SAAS,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAC1D,KAAK,EAAE,EACP,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CACzC;IACL;IAIQ,MAAM,cAAc,CAAC,UAAsB,EAAA;AACjD,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,CAAC,KAAmB,KAAI;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACf;YACF;AACA,YAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAkB;AAC/C,gBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI;AACpE,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA,CAAC;YACF,MAAM,UAAU,GAAkB,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa;YAC7C,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE;YAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;gBAC9C,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa,KAAK,CAAC,EAAE;AAC9D,oBAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC5C;gBACA,IAAI,CAAC,UAAU,EAAE;AACf,oBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI;oBACrB,OAAO,CAAC,WAAW,EAAE;oBACrB,OAAO,CAAC,aAAa,EAAE;gBACzB;qBAAO;AACL,oBAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;oBACtB,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;gBAC9E;gBACA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE;gBACnC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC5C,gBAAA,IAAI,UAAU,CAAC,GAAG,EAAE;oBAClB,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG;gBACpC;qBAAO;AACL,oBAAA,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;gBACvB;AACA,gBAAA,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACvB,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ;gBAC9C;qBAAO;AACL,oBAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC;gBAC5B;gBACA,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;oBACvD,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG;gBAC3C;qBAAO;AACL,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG;gBAC1B;gBACA,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;oBACvD,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG;gBAC3C;qBAAO;AACL,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG;gBAC1B;YACF;YACA,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC5C,gBAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC5C;AAAO,iBAAA,IAAI,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AACxE,gBAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;YACpC;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtC;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE;YAEA,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AAC7C,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACnC;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,QAAQ,EAAE;AAChE,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrD;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,QAAQ,EAAE;AAChE,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrD;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5B,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjE;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5B,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjE;AACA,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC1E,gBAAA,UAAU,CAAC,MAAM,GAAG,CAAC;YACvB;AACA,YAAA,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;AACzC,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD;AACA,YAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;AAC5C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK;iBACvB,SAAS,CAAC,MAAK;gBACd,OAAO,CAAC,sBAAsB,EAAE;AAClC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AAEQ,IAAA,eAAe,CAAC,KAAmB,EAAA;AACzC,QAAA,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE;AAC9B,YAAA,OAAO,UAAU;QACnB;AACA,QAAA,QAAQ,KAAK,CAAC,OAAO,CAAC,UAAU;YAC9B,KAAK,cAAc,CAAC,KAAK;AACvB,gBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;gBAC3B,OAAO,IAAI,CAAC;AACT,qBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;qBAC1B,IAAI,CACH,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,KAAI;AACb,oBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI;AAC1B,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,oBAAA,OAAO,IAAI;gBACb,CAAC,CAAC,CACH;YACL,KAAK,cAAc,CAAC,SAAS;AAC3B,gBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;gBAC3B,OAAO,IAAI,CAAC;AACT,qBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;qBAC9B,IAAI,CACH,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,KAAI;AACb,oBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI;AAC1B,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,oBAAA,OAAO,IAAI;gBACb,CAAC,CAAC,CACH;AACL,YAAA;AACE,gBAAA,OAAO,UAAU;;IAEvB;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAoB;IAC/C;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAoB;IAC9C;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAgB;IAC5C;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAgB;IACjD;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAc;IACzC;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAoB;IACxH;AAEA,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACtB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1D;AAEA,IAAA,eAAe,CAAC,EAAE,EAAA;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;IAC3C;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACtD;IAEA,qBAAqB,GAAA;QACnB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;IACtD;IAEA,mBAAmB,GAAA;QACjB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxD;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc;IACrC;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB;IACxC;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe;IACtC;IAEO,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;IACtC;IAEO,eAAe,GAAA;AACpB,QAAA,MAAM,IAAI,GAAkC;AAC1C,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACzB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7B,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7C,YAAA,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;AACtC,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;SAC5B;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;AAC9C,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC;IAC/B;IACA,6BAA6B,GAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;AACrC,YAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;AACxC,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACrE;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,oBAAoB,CAAC,MAAM;aACzD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAC/D;IAEA,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,cAAc;IACxD;IAEA,aAAa,GAAA;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACtH,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;QAC1B,IAAI,cAAc,EAAE;AAClB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;AAC1C,gBAAA,OAAO,CAAC,OAAO,CAAC,KAAK;YACvB;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO;AACzC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,IAAc,EAAA;QACxB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAK;AACtB,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AAC9B,gBAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC;YAC1B;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;IACjD;IAEA,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAC3B,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,CAAC,CAAC,IAAI,EAAE,IAAI,KAAI;AAClC,YAAA,IACE,CAAC,IAAI;AACL,gBAAA,CAAC,IAAI;gBACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EACrE;AACA,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,QACE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;AAC7B,gBAAA,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AAC3B,gBAAA,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;AAC3C,iBACE,CAAC,IAAI,CAAC,eAAe,CAAC,2BAA2B,IAAI,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,IAAG;AAChH,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClD,CAAC,CAAC,CACH;QAEL,CAAC,CAAC,CACH;IACH;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;AACpC,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;IAC7C;+GA3VW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAtB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCHY,oBAAoB,CAAA;AAIhC,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAG/C;IAEA,SAAS,CAAC,IAAY,EAAE,IAAA,GAAe,IAAI,CAAC,YAAY,CAAC,WAAW,EAAA;QACnE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI;IAC/C;+GATY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,iBAAiB,CAAA;AAI7B,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAG/C;IAEA,SAAS,CAAC,KAAe,EAAE,IAAA,GAAe,IAAI,CAAC,YAAY,CAAC,WAAW,EAAA;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AACzB,YAAA,IAAI,EAAE,KAAK,kBAAkB,EAAE;AAC3B,gBAAA,OAAO,CAAC;YACZ;AACA,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC;AACtB,iBAAA,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC;AACxB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC;AACtB,iBAAA,SAAS,CAAC,EAAE,EAAC,IAAI,CAAE;YACxB,OAAO,aAAa,GAAG,aAAa,GAAG,CAAC,IAAG,aAAa,KAAK,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,QAAA,CAAC,CAAC;IACN;+GAlBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCAY,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,eAAe,GAAiB,MAAM,CAAC,YAAY,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEtC,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,UAAU,GAAG,KAAK;AAkC3B,IAAA;IAhCC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;IACF;AAEA,IAAA,IAAY,OAAO,GAAA;QACjB,OAAO,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjE;AAEA,IAAA,sBAAsB,CACpB,IAAY,EACZ,EAAU,EACV,QAAiB,EAAA;AAEjB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CACnF;IACH;+GAtCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAd,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MCeY,iCAAiC,CAAA;AAX9C,IAAA,WAAA,GAAA;AAYU,QAAA,IAAA,CAAA,UAAU,GAAmB,MAAM,CAAC,cAAc,CAAC;AAGnD,QAAA,IAAA,CAAA,WAAW,GAAqC,IAAI,OAAO,EAAE;QAG7D,IAAA,CAAA,mBAAmB,GAAG,KAAK;AAuDpC,IAAA;AArDC,IAAA,WAAW,CAAC,GAAoB,EAAA;QAC9B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe;QAC7C;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;YACf,IAAI,CAAC,gBAAgB,EAAE;QACzB;IACF;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACjC,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACzB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW;AACpC,YAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,gBAAA,SAAS,GAAG,QAAQ,CAAC,kBAAkB;YACzC;AAAO,iBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,gBAAA,SAAS,GAAG,QAAQ,CAAC,kBAAkB;YACzC;AAAO,iBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,gBAAA,SAAS,GAAG,QAAQ,CAAC,kBAAkB;YACzC;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;AAC9B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAK;AAC1B,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAK;AACvB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,kBAAkB;AAChD,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,QAAQ,CACN,OAAwB,EAAA;AAExB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;QACxC;AACA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;+GA7DW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,SAAA,EARjC;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iCAAiC,CAAC;AAChE,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAX7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,UAAU,CAAC,uCAAuC,CAAC;AAChE,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;;;ACAD,MAAM,gBAAgB,GAAG,eAAe;MAuB3B,+BAA+B,CAAA;AArB5C,IAAA,WAAA,GAAA;AAwBU,QAAA,IAAA,CAAA,aAAa,GAAqB,MAAM,CAAC,gBAAgB,CAAC;AAC1D,QAAA,IAAA,CAAA,GAAG,GAAsB,MAAM,CAAC,iBAAiB,CAAC;AAElD,QAAA,IAAA,CAAA,SAAS,GAAa,MAAM,CAAC,QAAQ,CAAC;AACtC,QAAA,IAAA,CAAA,WAAW,GAAe,MAAM,CAAC,UAAU,CAAC;QACpD,IAAA,CAAA,SAAS,GAAG,KAAK;AAIT,QAAA,IAAA,CAAA,SAAS,GAAsC,MAAM,CAC3D,iCAAiC,CAClC;AAGO,QAAA,IAAA,CAAA,UAAU,GAAmB,MAAM,CAAC,cAAc,CAAC;QAEnD,IAAA,CAAA,QAAQ,GAAG,IAAI;QAEd,IAAA,CAAA,QAAQ,GAAG,QAAQ;QAEnB,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;AAoF7C,IAAA;IAnFC,iBAAiB,CAAC,EAAO,EAAA,EAAS;IAClC,gBAAgB,CAAC,EAAO,EAAA,EAAS;AACjC,IAAA,UAAU,KAAU;AAEpB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO;AACrD,QAAA,IAAI,CAAC;AACF,aAAA,sBAAsB,CACrB,IAAI,CAAC,aAAa,CAAC,WAAW,EAC9B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ;AAEd,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAmB,KAAI;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;AAC1D,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE;YACd,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC5B,IAAI,CAAC,uBAAuB,EAAE;YAChC,CAAC;AACF,SAAA,CAAC;IACN;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QACxB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,aAAa,GAAA;QACX,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAC1B,CAAC,EAAE,GAAG,CAAC;IACT;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACrB,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAK;YAC1B,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,2BAA2B;YAClD,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAK;YACvB,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACrB,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC;AAChB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,OAAwB,KAAI;AACjC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACjB;gBACF;gBACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,CAAC;AACF,SAAA,CAAC;IACN;+GA1GW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAf7B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AAC9D,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,cAAc;SACjB,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,iCAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCL,+lBAoBA,8TDkBkC,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAvC,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EAThB,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAgBxB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBArB3C,SAAS;+BACI,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,cACnC,CAAC,mBAAmB,CAAC,EAAA,SAAA,EACtB;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qCAAqC,CAAC;AAC9D,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,cAAc;AACjB,qBAAA,EAAA,OAAA,EACQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAAA,cAAA,EAClC;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,iCAAiC;AAC/C,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,+lBAAA,EAAA,MAAA,EAAA,CAAA,sQAAA,CAAA,EAAA;;sBAYF;;;ME/CU,eAAe,CAAA;AAGxB,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAG7C;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK;IACvD;+GARS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCAa,sBAAsB,CAAA;AAEU,IAAA,KAAK,CAAC,MAAmB,EAAA;QAC/D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE;IAC1F;+GAJU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;;sBAGI,YAAY;uBAAC,OAAO,EAAE,CAAC,eAAe,CAAC;;;MCgC/B,iBAAiB,CAAA;AAhB9B,IAAA,WAAA,GAAA;AAiBU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC;QACnD,IAAA,CAAA,QAAQ,GAAG,QAAQ;AACnB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,MAAM,KAAI;AACtB,QAAA,CAAC;QACD,IAAA,CAAA,OAAO,GAAG,MAAK;AACf,QAAA,CAAC;QACQ,IAAA,CAAA,OAAO,GAAqB,EAAE;QACvC,IAAA,CAAA,QAAQ,GAAG,KAAK;AAIhB,QAAA,IAAA,CAAA,kBAAkB,GAAgB,IAAI,WAAW,CAAS,SAAS,CAAC;AAmFrE,IAAA;AAhFC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI;QACb;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B;QACA,OAAO,IAAI,CAAC;AACT,aAAA,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;AAChC,aAAA,MAAM,CAAC,CAAC,CAAiB,KAAI;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,OAAO,IAAI;YACb;iBAAO;AACL,gBAAA,MAAM,KAAK,GAAW,IAAI,CAAC,aAAa,CAAC,SAAS,CAChD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC;gBACD,OAAO,KAAK,CAAC,WAAW;AACrB,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CACd,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC3E;YACL;AACF,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;aACF;AACA,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAChB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAEpC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrD;IAEA,YAAY,CAAC,MAAc,EAAE,OAAA,GAAmC,EAAC,UAAU,EAAE,IAAI,EAAC,EAAA;QAChF,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;YAC3C;QACF;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,QAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB;AACA,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;QACnE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAM,GAAG,SAAS,EAAE,EAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;IAC3G;AAEA,IAAA,UAAU,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QACvB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC;IAChD;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;QAC1B,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;AACvD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;YACzF;AACA,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACnC;aAAO;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAClC;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;AAEA,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB;+GAjGW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAXf;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,eAAe;YACf;AACH,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCL,moDA0CA,EAAA,MAAA,EAAA,CAAA,68CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHc,sBAAsB,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,oFAAE,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,gDAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAE5J,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,eAAe;wBACf;AACH,qBAAA,EAAA,OAAA,EACQ,CAAC,sBAAsB,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,eAAe,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,moDAAA,EAAA,MAAA,EAAA,CAAA,68CAAA,CAAA,EAAA;;sBAYvK;;sBAEA;;;MEbU,+BAA+B,CAAA;AAf5C,IAAA,WAAA,GAAA;AAgBU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAKnC,IAAA,CAAA,QAAQ,GAAG,QAAQ;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,MAAW,KAAI;AAC3B,QAAA,CAAC;QACD,IAAA,CAAA,OAAO,GAAG,MAAK;AACf,QAAA,CAAC;AA8CF,IAAA;AA3CC,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,EAAE;QACX;QACA,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAC,CAAC,MAA+B,KAAI;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,OAAO,IAAI;YACb;iBAAO;AACL,gBAAA,MAAM,KAAK,GAAW,MAAM,CAAC,IAAI;gBACjC,OAAO,KAAK,CAAC,WAAW;AACrB,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CACd,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC3E;YACL;AACF,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,MAAM,CAAC,YAAoB,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxC;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO;AACnD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;+GAzDW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAT7B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AAC9D,gBAAA,KAAK,EAAE;AACV;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCL,snCAmCA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDGc,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EARtE,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAUxB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAf3C,SAAS;+BACI,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,cACnC,CAAC,mBAAmB,CAAC,EAAA,SAAA,EACtB;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qCAAqC,CAAC;AAC9D,4BAAA,KAAK,EAAE;AACV;qBACJ,EAAA,OAAA,EACQ,CAAC,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,snCAAA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA;;sBAKpF;;sBACA;;sBACA;;;AEzCG,MAAO,WAAY,SAAQ,cAAc,CAAA;AAC3C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;IACX;AAEA,IAAA,cAAc,CAAC,KAAsB,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,GAAG,CAAC;IACxD;IACA,SAAS,CAAC,UAAkB,EAAE,cAAsB,EAAE,QAAiB,EAAE,UAAoB,EAAE,UAAoB,EAAE,EAA4B,EAAA;;AAE7I,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAC5F;+GAZS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCSa,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0DAPjB,CAAC;AACJ,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,QAAQ,EAAE;aACb,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAII,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,SAAS,EAAE,CAAC;AACJ,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,QAAQ,EAAE;yBACb,CAAC;AACN,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCwCY,6BAA6B,CAAA;AASxC,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK;IACtC;;AASA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM;IACxC;AAcA,IAAA,WAAA,GAAA;AAnCQ,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAE9B,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,OAAO,EAAQ;QAC1C,IAAA,CAAA,KAAK,GAAG,MAAM;QAMb,IAAA,CAAA,WAAW,GAAG,WAAW;QAElC,IAAA,CAAA,qBAAqB,GAAG,IAAI;QAC5B,IAAA,CAAA,QAAQ,GAAG,QAAQ;AAUT,QAAA,IAAA,CAAA,iBAAiB,GAAyB,IAAI,YAAY,EAAE;AAKtE,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,MAAW,KAAI;AAC3B,QAAA,CAAC;QACD,IAAA,CAAA,OAAO,GAAG,MAAK;AACf,QAAA,CAAC;IAGD;AAEA,IAAA,IAAI,IAAI,GAAA;QACN,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AACnD,YAAA,OAAO,OAAO;QAChB;QACA,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;IACzB;AAEA,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,MAAM,MAAM,GAAqB,CAAC,CAAC,MAA0B;AAC7D,QAAA,IAAI,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,MAAM;AAC3C,QAAA,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;QAC/B,CAAC,CAAC,cAAc,EAAE;QAClB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AACjB,aAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAC;AAChE,aAAA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAEvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE;YAEtC,IAAI,cAAc,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,KAAK,uBAAuB,EAAE;AAC9E,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE;oBACtE,YAAY,IAAI,CAAC;oBACjB,cAAc,IAAI,CAAC;gBACrB;YACF;AACA,YAAA,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC;AACxD,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,CAAiB,EAAA;AACvB,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAA0B;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AAC5C,YAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC/B;QACF;AACA,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AACrB,QAAA,IAAI,OAAO,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QACpD,IAAI,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM;QACrH,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvF,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AAClE,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QACvB,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,cAAc,CAAC;IACjD;AAEA,IAAA,OAAO,CAAC,CAAa,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;AAC/B,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;AACA,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B;QAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AAC5C,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACpC;QACF;AACA,QAAA,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,EAAE,KAAK;AACzC,QAAA,IAAI,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;AAC3F,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AACjE,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,kBAAkB,EAAE;YACxC;QACF;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAEhB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC;IACtD;IAEQ,uBAAuB,CAAC,MAAM,EAAE,uBAAwB,EAAA;QAC9D,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE;AACtC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAuB,CAAC;AACrD,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,CAAC,MAAwB,EAAE,uBAAwB,EAAA;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;YAC5C;QACF;QACA,IAAI,mBAAmB,GAAG,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,uBAAuB,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,EAAE;AAC/E,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE;AAChD,gBAAA,CAAC,EAAE;YACL;AACA,YAAA,mBAAmB,EAAE;QACvB;AACA,QAAA,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACpE;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO;AACnD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxC;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;QAClE;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK;QACpC;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AACzD,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,KAAK;IAC1E;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IAC1B;+GApLW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAT3B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC;AAC5D,gBAAA,KAAK,EAAE;AACV;SACJ,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA+BQ,gBAAgB,gDC/E7B,29IAmIA,EAAA,MAAA,EAAA,CAAA,maAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlFc,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,kjBAAE,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,uDAAE,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EARpI,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAUxB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAfzC,SAAS;+BACI,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,cACnC,CAAC,mBAAmB,CAAC,EAAA,SAAA,EACtB;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mCAAmC,CAAC;AAC5D,4BAAA,KAAK,EAAE;AACV;AACJ,qBAAA,EAAA,OAAA,EACQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,29IAAA,EAAA,MAAA,EAAA,CAAA,maAAA,CAAA,EAAA;;sBAoBlJ;;sBAMA;;sBACA;;sBACA;;sBAEA,SAAS;uBAAC,gBAAgB;;;ME3DhB,yBAAyB,CAAA;AAXtC,IAAA,WAAA,GAAA;AAYU,QAAA,IAAA,CAAA,OAAO,GAAyB,MAAM,CAAC,oBAAoB,CAAC;QAE3D,IAAA,CAAA,OAAO,GAAwB,EAAE;QAC1C,IAAA,CAAA,QAAQ,GAAG,QAAQ;AAKpB,IAAA;AAHC,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC5B;+GARW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,uHAAA,EAAA,EAAA,EAAA,SAAA,EANzB,CAAC,YAAY,CAAC,0BCd3B,m9CAwCA,EAAA,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDzBgC,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAxD,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EAFhB,CAAC,mBAAmB,CAAC,EAAA,CAAA,CAAA;;4FAOtB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cAGtB,CAAC,mBAAmB,CAAC,EAAA,SAAA,EACtB,CAAC,YAAY,CAAC,EAAA,OAAA,EAChB,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAA,IAAA,EAC7D;AACJ,wBAAA,UAAU,EAAE;AACb,qBAAA,EAAA,QAAA,EAAA,m9CAAA,EAAA,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA;;sBAIA;;sBACA;;;MEgBU,6BAA6B,CAAA;AAd1C,IAAA,WAAA,GAAA;AAeU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC;QAE1C,IAAA,CAAA,WAAW,GAAG,WAAW;AASlC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,MAAW,KAAI;AAC3B,QAAA,CAAC;QACD,IAAA,CAAA,OAAO,GAAG,MAAK;AACf,QAAA,CAAC;AAoCF,IAAA;AA3CC,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB;IAC/C;AAOA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,UAAU,CAAC,KAAc,EAAA;QACvB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;YACvE;iBAAO;AACL,gBAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;YACnD;AACA,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACxB;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO;AACnD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAEvB,QAAA,IAAI,CAAC;aACF;AACA,aAAA,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAEpC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;IACN;+GApDW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAT3B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC;AAC5D,gBAAA,KAAK,EAAE;AACV;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCL,ivBAoBA,EAAA,MAAA,EAAA,CAAA,iMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDiBc,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAE7H,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mCAAmC,CAAC;AAC5D,4BAAA,KAAK,EAAE;AACV;AACJ,qBAAA,EAAA,OAAA,EACQ,CAAC,6BAA6B,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,ivBAAA,EAAA,MAAA,EAAA,CAAA,iMAAA,CAAA,EAAA;;sBAQxI;;sBACA;;;MEhCU,+BAA+B,CAAA;AAR5C,IAAA,WAAA,GAAA;QASa,IAAA,CAAA,YAAY,GAAG,IAAI;QAO5B,IAAA,CAAA,QAAQ,GAAG,QAAQ;AACtB,IAAA;+GATY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAH7B,CAAC,YAAY,CAAC,0BCX7B,uqDAyCA,EAAA,MAAA,EAAA,CAAA,utBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7BgC,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAtC,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAEjB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,eAAA,EAGtB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,YAAY,CAAC,EAAA,OAAA,EAClB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,uqDAAA,EAAA,MAAA,EAAA,CAAA,utBAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEoDQ,wBAAwB,CAAA;AAZrC,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACtC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC7B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,8BAA8B,CAAC;AAE5E,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QAClC,IAAA,CAAA,qBAAqB,GAAG,KAAK;QACrC,IAAA,CAAA,aAAa,GAAG,YAAY;QAM5B,IAAA,CAAA,uBAAuB,GAAG,oBAAoB;QAKrC,IAAA,CAAA,OAAO,GAAG,IAAI;QACd,IAAA,CAAA,KAAK,GAAiB,EAAE;QACxB,IAAA,CAAA,kBAAkB,GAAG,IAAI;AACxB,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,YAAY,EAAU;AAChE,QAAA,IAAA,CAAA,IAAI,GAAuB,IAAI,YAAY,EAAQ;AACnD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAO;AACpD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAO;AACpD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAO;QAQvE,IAAA,CAAA,QAAQ,GAAG,QAAQ;AAwTpB,IAAA;AAtTC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC;aACT,SAAS,CACR,IAAI,CAAC;aACF,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc;AAC/B,aAAA,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAEjE,aAAA,MAAM,CAAC,CAAC,CAAS,KAAI;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,gBAAA,OAAO,IAAI;YACb;iBAAO;gBACL,MAAM,KAAK,GAAW,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5D,OAAO,KAAK,CAAC,WAAW;AACrB,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CACd,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAClF;YACL;AACF,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;;AAE9D,aAAA,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK;;AAEtF,aAAA,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACzF,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;aACzG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC/B;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;AAEzC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,aAAa;QACtB;QAEA,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjE;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe;AAE/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc;AACpC,QAAA,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;QAC5B,IAAI,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YACpE,QAAQ,GAAG,eAAe;QAC5B;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvE,YAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC1B;QACA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAErC,QAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB;AACpC,QAAA,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;QACxB,IAAI,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YACxE,QAAQ,GAAG,eAAe;QAC5B;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC3E,YAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC1B;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;AAC7D,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpE,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAClC;IACF;AAEA,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,KAAK,IAAI;IAC3D;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW;IACtC;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAE5E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa;AACpC,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;YAC/C,IAAI,OAAO,GAAG,IAAI;YAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACvC,gBAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;oBAC1C,OAAO,GAAG,kBAAkB;gBAC9B;YACF;iBAAO;gBACL,OAAO,GAAG,cAAc;YAC1B;YACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE;gBACZ;YACF;AACA,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACrD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC7B;AAEA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;AAChC,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB;AACrD,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACzE,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAE1D,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACtD,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B;AACA,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAEvB,YAAA,IAAI,CAAC;AACF,iBAAA,oBAAoB;AACpB,iBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAE7B,iBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,SAAS,EAAE;QAClB;AAEA,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACrE,IAAI,CAAC,SAAS,EAAE;QAClB;QAEA,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE;;AAEzD,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE;QAC5C;QAEA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,EAAE;AAC3C,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;QACnC;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC;aACF;aACA;aACA,IAAI,CACH,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EACvC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE7B,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;AAErE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;AAChC,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB;AACrD,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,EAAE;YACzE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YAEvB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YAEvB,IAAI,CAAC,SAAS,EAAE;AAClB,QAAA,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC;aACF;aACA;aACA,IAAI,CACH,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EACvC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE7B,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACjC,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE;AAClB,QAAA,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC;aACF;aACA;aACA,IAAI,CACH,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EACvC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE7B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACjC,QAAA,CAAC,CAAC;IACN;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;YACtB;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC5C;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;AACrC,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC;AACF,aAAA,IAAI;aACJ,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBAC7D,IAAI,CAAC,IAAI,EAAE;gBACX;YACF;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE;AAC7B,QAAA,CAAC,EAAE,CAAC,GAAG,KAAI;AACT,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACxB,QAAA,CAAC,CAAC;IACN;IAEQ,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AACjG,gBAAA,QAAQ,EAAE,GAAG;gBACb,GAAG,EAAE,CAAC;AACP,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW;IACrJ;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB;QACF;QACA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACjD;QACF;QACA,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;AACnC,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;gBACpD,OAAO,CAAC,WAAW,EAAE;gBACrB,OAAO,CAAC,aAAa,EAAE;AACzB,YAAA,CAAC,CAAC;AACF,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;gBAC5D,OAAO,CAAC,WAAW,EAAE;gBACrB,OAAO,CAAC,aAAa,EAAE;gBACvB,OAAO,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtD,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACvB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC;iBACP,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,gBAAA,IAAI,MAAM,KAAK,OAAO,EAAE;oBACtB,IAAI,CAAC,IAAI,EAAE;gBACb;AACF,YAAA,CAAC,CAAC;QACN;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACjC;QACF;AACA,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAmB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;IAC3C;IAEQ,IAAI,GAAA;QACV,MAAM,IAAI,GAAkC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;AAEA,IAAA,aAAa,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE;YACtC,OAAO,QAAQ,CAAC,+BAA+B;QACjD;QACA,OAAO,QAAQ,CAAC,wBAAwB;IAC1C;IAEA,oBAAoB,CAAC,WAAW,EAAE,KAAmB,EAAA;AACnD,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW;AACpC,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACxB;IACF;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACjC;+GA5VW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EANtB;YACP,sBAAsB;AACtB,YAAA,oBAAoB,EAAE;AACzB,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAqCW,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3G9B,qzTA+NA,qkDDxJuD,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,qEAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,oJAAE,+BAA+B,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,mGAAE,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAA4C,mBAAmB,6GAA/b,oBAAoB,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAoY,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EALxa,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAOxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,cACnC,CAAC,mBAAmB,CAAC,EAAA,SAAA,EACtB;wBACP,sBAAsB;AACtB,wBAAA,oBAAoB,EAAE;AACzB,qBAAA,EAAA,OAAA,EACQ,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,qzTAAA,EAAA,MAAA,EAAA,CAAA,8gDAAA,CAAA,EAAA;;sBAc3c;;sBACA;;sBACA;;sBAIA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;;sBAC9C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;;sBACvC,YAAY;uBAAC,cAAc;;;ME7DjB,uBAAuB,CAAA;AAgBlC,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,qBAAqB;IAC5D;AAcA,IAAA,WAAA,GAAA;AA/BQ,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACrC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAM,eAAe,CAAC;AACtC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,CAAC;AACzD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA6B,WAAW,CAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,8BAA8B,CAAC;AAE5E,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QAO1C,IAAA,CAAA,aAAa,GAAG,YAAY;QAE5B,IAAA,CAAA,KAAK,GAAiB,EAAE;AAIxB,QAAA,IAAA,CAAA,IAAI,GAAG,YAAY,CAAC,OAAO;QAI3B,IAAA,CAAA,cAAc,GAAG,IAAI;QAsEb,IAAA,CAAA,UAAU,GAAG,KAAK;AAmHlB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ;QA4BjD,IAAA,CAAA,UAAU,GAAG,KAAK;QAlNhB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE;QAEhB,IAAI,CAAC,YAAY,CAAC;AACf,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAE7B,aAAA,SAAS,CAAC,CAAC,CAAC,KAAI;YACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;QACJ,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;IACtD;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS;IAClC;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU;IACnC;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACvH;IAEO,UAAU,GAAA;IACjB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;IACpD;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,UAAU,EAAE;YACjB;QACF;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG;AACf,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AACzB,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,eAAe;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACxB,CAAC,EAAE,MAAK;AACN,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,KAA8B,KAAI;AACzF,YAAA,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE;AACnC,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;YACxB;AACF,QAAA,CAAC,CAAC;IACJ;AAKA,IAAA,OAAO,CAAC,IAAmC,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB;QACF;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC;aACF,OAAO,CAAC,IAAI;AACZ,aAAA,SAAS,CAAC,CAAC,IAAoC,KAAI;AAClD,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjD;YACF;AACA,YAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACxB,CAAC,EAAE,MAAK;AACN,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACN;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB;QACF;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC;AACF,aAAA,OAAO;AACP,aAAA,SAAS,CACR,CAAC,IAAoC,KAAI;AACvC,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE;YAC1B;AACA,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;gBACvB;YACF;AACA,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;YACjC;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACxB,CAAC,EACD,MAAK;AACH,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CACF;IACL;IAEA,eAAe,GAAA;;AAEb,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE;AACvE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;QAC1B;IACF;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;IAChF;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACtB;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK;AACjB,iBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACxB,YAAA,CAAC,CAAC;AAEH,iBAAA,SAAS,EAAE;QAChB;IACF;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa;IACrC;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM;AAC/B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE;YAC1B;QACF;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;AAGA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,WAAW;IAC7D;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa;IACvC;AAEA,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACjC;AAGO,IAAA,YAAY,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YACjC;QACF;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAEvB,QAAA,IAAI,CAAC;aACF,UAAU,CAAC,KAAK;AAChB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,OAA4B,KAAI;AACnC,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;AAC9B,QAAA,CAAC,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,EACnC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAC7B,CAAC,SAAS,EAAE;IACjB;IAKO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;+GA9PW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAZrB;YACP,iBAAiB;YACjB;AACH,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCL,+sFAkEA,EAAA,MAAA,EAAA,CAAA,09DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED3BQ,WAAW,EAAA,QAAA,EAAA,sCAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEhC,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EADvC,SAAS,yCACT,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhBnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,SAAA,EAGpB;wBACP,iBAAiB;wBACjB;qBACH,EAAA,OAAA,EACQ;wBACL,WAAW;wBACX,6BAA6B;AAC7B,wBAAA,wBAAwB,EAAE,0BAA0B;wBACpD,SAAS;AACT,wBAAA,kBAAkB,EAAE;AACvB,qBAAA,EAAA,QAAA,EAAA,+sFAAA,EAAA,MAAA,EAAA,CAAA,09DAAA,CAAA,EAAA;;sBA8BF,SAAS;uBAAC,iBAAiB;;;;;;;;MExDjB,cAAc,CAAA;AAV3B,IAAA,WAAA,GAAA;QAWI,IAAA,CAAA,QAAQ,GAAG,QAAQ;AACtB,IAAA;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,qEClB3B,0WAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKQ,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,0BAA0B,+NAC1B,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGb,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EAGZ;wBACL,0BAA0B;wBAC1B,0BAA0B;wBAC1B,kBAAkB;AACrB,qBAAA,EAAA,QAAA,EAAA,0WAAA,EAAA;;;;;;;;AEwFS,MAAO,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YA7DxB,WAAW;AACX,YAAA,mBAAmB,mBAcnB,WAAW;YACX,eAAe;YACf,YAAY;YACZ,mBAAmB;YACnB,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,uBAAuB;YACvB,wBAAwB;YACxB,cAAc;YACd,6BAA6B;YAC7B,6BAA6B;YAC7B,+BAA+B;YAC/B,iBAAiB;YACjB,+BAA+B;YAC/B,yBAAyB;YACzB,kBAAkB;YAClB,sBAAsB;YACtB,+BAA+B,CAAA,EAAA,CAAA,CAAA;AA4BlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAAA,SAAA,EA1BjB;AACP,YAAA,cAAc,EAAE;YAChB,WAAW;AACX,YAAA;AACI,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,QAAQ,EAAE;AACN,oBAAA,KAAK,EAAE;AACH,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,cAAc,EAAE,UAAU;AAC1B,wBAAA,aAAa,EAAE,IAAI;AACnB,wBAAA,kBAAkB,EAAE,WAAW;AAClC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,aAAA;YACD,YAAY;YACZ;AACH,SAAA,EAAA,OAAA,EAAA,CA3DG,WAAW;YACX,mBAAmB;YACnB,YAAY,CAAC,QAAQ,CAAC;AAClB,gBAAA;AACI,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,aAAa,EAAE,MAAM,+DAA4C,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc;AAC/F,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE;AACL,wBAAA,IAAI,EAAE;AACT,qBAAA;AACD,oBAAA,aAAa,EAAE,MAAM,wEAAgE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC;AAC1H,oBAAA,IAAI,EAAE;AACT,iBAAA;aACJ,CAAC;YACF,WAAW;YACX,eAAe;YACf,YAAY;YACZ,mBAAmB;YAGnB,YAAY;YACZ,uBAAuB;YACvB,wBAAwB;YACxB,cAAc;YACd,6BAA6B;YAC7B,6BAA6B;YAC7B,+BAA+B;YAC/B,iBAAiB;YAKjB,+BAA+B,CAAA,EAAA,CAAA,CAAA;;4FA4BlB,WAAW,EAAA,UAAA,EAAA,CAAA;kBA/D/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,WAAW;wBACX,mBAAmB;wBACnB,YAAY,CAAC,QAAQ,CAAC;AAClB,4BAAA;AACI,gCAAA,IAAI,EAAE,OAAO;AACb,gCAAA,aAAa,EAAE,MAAM,+DAA4C,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc;AAC/F,6BAAA;AACD,4BAAA;AACI,gCAAA,OAAO,EAAE;AACL,oCAAA,IAAI,EAAE;AACT,iCAAA;AACD,gCAAA,aAAa,EAAE,MAAM,wEAAgE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC;AAC1H,gCAAA,IAAI,EAAE;AACT,6BAAA;yBACJ,CAAC;wBACF,WAAW;wBACX,eAAe;wBACf,YAAY;wBACZ,mBAAmB;wBACnB,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,uBAAuB;wBACvB,wBAAwB;wBACxB,cAAc;wBACd,6BAA6B;wBAC7B,6BAA6B;wBAC7B,+BAA+B;wBAC/B,iBAAiB;wBACjB,+BAA+B;wBAC/B,yBAAyB;wBACzB,kBAAkB;wBAClB,sBAAsB;wBACtB;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA,cAAc,EAAE;wBAChB,WAAW;AACX,wBAAA;AACI,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,QAAQ,EAAE;AACN,gCAAA,KAAK,EAAE;AACH,oCAAA,SAAS,EAAE,WAAW;AACzB,iCAAA;AACD,gCAAA,OAAO,EAAE;AACL,oCAAA,SAAS,EAAE,WAAW;AACtB,oCAAA,cAAc,EAAE,UAAU;AAC1B,oCAAA,aAAa,EAAE,IAAI;AACnB,oCAAA,kBAAkB,EAAE,WAAW;AAClC,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,iBAAiB;AAC3B,4BAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,yBAAA;wBACD,YAAY;wBACZ;AACH;AACJ,iBAAA;;;;;;;;MC1FY,iBAAiB,CAAA;AAa1B,IAAA,WAAA,GAAA;AAZA,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,qBAAqB,CAAC;AACnE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO;AAC3D,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,gBAAgB,CAAC;AAK7C,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,eAAe,CAAU,IAAI,CAAC;IAGvE;AAGA,IAAA,KAAK,CAAC,OAAO,GAAG,EAAC,WAAW,EAAE,IAAI,EAAC,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAEzB,YAAA,OAAO,EAAE,CAAC;AACN,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO;AAC9E,gBAAA,iBAAiB,EAAE,KAAK;AACxB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE;AACZ,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B;QACA,OAAO,IAAI,CAAC;AACP,aAAA,qBAAqB,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC;SACf;AACA,aAAA,IAAI,CACD,UAAU,CACN,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CACpE,EACD,GAAG,CAAC,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAC,KAAI;AAC5D,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,YAAA,IAAI,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,OAAO;gBACzB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;YACjD;YACA,IAAI,iBAAiB,IAAI,MAAM,KAAK,aAAa,CAAC,GAAG,EAAE;gBACnD,IAAI,CAAC,UAAU,EAAE;YACrB;AAAO,iBAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B;QACJ,CAAC,CAAC,CACL;IACT;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,YAAA,OAAO,IAAI;QACf;AACA,QAAA,OAAO,KAAK;IAChB;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc;IACzC;AAEA,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,UAAU;IAC1B;AAEQ,IAAA,UAAU,CAAC,QAAmC,EAAA;QAClD,OAAO,CAAC,GAA2B,KAAI;YACnC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC;AAC1B,QAAA,CAAC;IACL;+GAhFS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;MCmBY,oBAAoB,CAAA;AAqB7B,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa;IACvC;AAEA,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ;IAClC;AAEA,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,mBAAmB,GAAG,IAAI;IAC1C;AAEA,IAAA,WAAA,GAAA;AAhCQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACrC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,gBAAgB,CAAC;QAErC,IAAA,CAAA,mBAAmB,GAAG,IAAI;QAC1B,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,mBAAmB,GAAG,KAAK;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;AAClC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAQ;AAC5C,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,OAAO,EAAQ;QAC5D,IAAA,CAAA,QAAQ,GAAG,QAAQ;QACnB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,SAAS,GAAG,IAAI;QAChB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,OAAO,GAAG,EAAE;QAGZ,IAAA,CAAA,oBAAoB,GAAG,KAAK;IAgB5B;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,EAAE;IACd;AAEQ,IAAA,KAAK,CAAC,OAAO,GAAG,EAAC,WAAW,EAAE,IAAI,EAAC,EAAA;AACvC,QAAA,IAAI,CAAC;aACA,KAAK,CAAC,OAAO;AACb,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAE/B,SAAS,CAAC,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAEvB,IAAI,CAAC,UAAU,GAAG,MAAM,KAAK,aAAa,CAAC,GAAG;AAC9C,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,EAAE;YACrB;iBAAO;gBACH,IAAI,CAAC,kBAAkB,EAAE;YAC7B;AAEA,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QAC3B,CAAC,EAAE,MAAK;AACJ,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;AACtC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC3B,QAAA,CAAC,CAAC;IACV;IAEA,UAAU,CAAC,SAAwB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,GAAG,EAAA;QAClG,QAAQ,MAAM;YACV,KAAK,aAAa,CAAC,GAAG;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,eAAe;oBACvC;gBACJ;AACA,gBAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,YAAY;AACpC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,qBAAqB;gBACjD;gBACA;YACJ,KAAK,aAAa,CAAC,IAAI;AACnB,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAA,CAAE;gBACjB;YACJ,KAAK,aAAa,CAAC,OAAO;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,cAAc;gBAC1E;;IAEZ;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAA,+BAAA,EAAkC,IAAI,CAAC,SAAS,CAAA,KAAA,CAAO,GAAG,EAAE;IACxF;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;AAClC,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;YAClC,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,kBAAkB,EAAE;YACzB;QACJ;AACA,QAAA,KAAK,CAAC,IAAI,CAAC,mBAAmB;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC3C,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAC,WAAW,EAAE,KAAK,EAAC,CAAC,CAAC;IAC1D;IAEQ,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE;AAC1C,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QACvB,QAAQ,CAAC,IAAI;AACR,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC;aACnD,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,mBAAmB,IAAI,IAAI;AAChC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,gBAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE;AAC1C,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC/B;AACJ,QAAA,CAAC,CAAC;IACV;IAEA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;IAC/B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;AAClC,QAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;AACzC,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE;AAC1C,QAAA,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE;IACrD;+GA1IS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,EAVlB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,CAAC,cAAc,CAAC;AACtB,gBAAA,UAAU,EAAE,CAAC,cAA8B,KAAK,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;AAC9F,aAAA;YACD;SACH,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BL,w5BAsBA,0DDOc,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,yCAAE,kBAAkB,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEtF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,SAAA,EAGjB;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gBAAgB;4BACzB,IAAI,EAAE,CAAC,cAAc,CAAC;AACtB,4BAAA,UAAU,EAAE,CAAC,cAA8B,KAAK,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;AAC9F,yBAAA;wBACD;qBACH,EAAA,OAAA,EACQ,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,w5BAAA,EAAA;;;;;;;;MENvF,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAZlB,YAAY;YACZ,YAAY;AACZ,YAAA,eAAe,mBAOf,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAZlB,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,YAAY,CAAC,QAAQ,CAAC;AAClB,gBAAA;AACI,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,aAAa,EAAE,MAAM,qEAA0D,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB;AACnH;aACJ,CAAC;YACF,oBAAoB,CAAA,EAAA,CAAA,CAAA;;4FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAdzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,YAAY;wBACZ,eAAe;wBACf,YAAY,CAAC,QAAQ,CAAC;AAClB,4BAAA;AACI,gCAAA,IAAI,EAAE,OAAO;AACb,gCAAA,aAAa,EAAE,MAAM,qEAA0D,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB;AACnH;yBACJ,CAAC;wBACF;AACH;AACJ,iBAAA;;;;;;;;ACpBM,MAAM,MAAM,GAAG;;ACFtB;;AAEG;;ACFH;;AAEG;;;;"}