{"version":3,"file":"ironsource-fusion-ui-components-modal-v3.mjs","sources":["../../../projects/fusion-ui/components/modal/v3/modal-utils.ts","../../../projects/fusion-ui/components/modal/v3/components/modal-footer/modal-footer.component.html","../../../projects/fusion-ui/components/modal/v3/components/modal-footer/modal-footer.component.ts","../../../projects/fusion-ui/components/modal/v3/components/modal-content/modal-content.component.html","../../../projects/fusion-ui/components/modal/v3/components/modal-content/modal-content.component.ts","../../../projects/fusion-ui/components/modal/v3/components/modal-header/modal-header.component.html","../../../projects/fusion-ui/components/modal/v3/components/modal-header/modal-header.component.ts","../../../projects/fusion-ui/components/modal/v3/modal.component.html","../../../projects/fusion-ui/components/modal/v3/modal.component.ts","../../../projects/fusion-ui/components/modal/v3/modal.module.ts","../../../projects/fusion-ui/components/modal/v3/ironsource-fusion-ui-components-modal-v3.ts"],"sourcesContent":["export function getDefaultCssUnit(value: string): string {\n    return /^\\d+$/.test(value) ? `${value}px` : value;\n}\n","<div class=\"modal-footer\">\n    <span class=\"fu-error-message\" [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_ERROR\">{{ error }}</span>\n    <fusion-button class=\"fu-secondary-button\"\n        [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_CANCEL_BUTTON\"\n        [class]=\"cancelButtonClass\"\n        (click)=\"closeButtonClicked.emit()\"\n        *ngIf=\"!cancelButtonHidden\"\n    >\n        {{ cancelButtonText }}\n    </fusion-button>\n    <fusion-button class=\"fu-primary-button\"\n        [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_SUBMIT_BUTTON\"\n        [class]=\"submitButtonClass\"\n        [loading]=\"submitButtonPending\"\n        [disabled]=\"submitButtonDisabled || !!error\"\n        (click)=\"primaryButtonClicked.emit()\"\n    >\n        {{ submitButtonText }}\n    </fusion-button>\n</div>\n","import {Component, EventEmitter, Injector, Input, Output} from '@angular/core';\nimport {ModalTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\n\n@Component({\n    selector: 'fusion-modal-footer',\n    templateUrl: './modal-footer.component.html',\n    styleUrls: ['./modal-footer.component.scss']\n})\nexport class ModalFooterComponent {\n    @Input() submitButtonPending = false;\n\n    @Input() set cancelButton(config: {cancelButtonText?: string; cancelButtonClass?: string; cancelButtonHidden?: boolean}) {\n        this.cancelButtonText = config?.cancelButtonText;\n        this.cancelButtonClass = config?.cancelButtonClass;\n        this.cancelButtonHidden = config?.cancelButtonHidden;\n    }\n\n    @Input() set submitButton(config: {submitButtonText?: string; submitButtonClass?: string; submitButtonDisabled?: boolean}) {\n        this.submitButtonText = config?.submitButtonText;\n        this.submitButtonClass = config?.submitButtonClass;\n        this.submitButtonDisabled = config?.submitButtonDisabled;\n    }\n\n    @Input() error;\n    /** @internal */\n    @Input() testId: string;\n\n    @Output() primaryButtonClicked = new EventEmitter();\n    @Output() closeButtonClicked = new EventEmitter();\n\n    /** @internal */\n    modalTestIdModifiers: typeof ModalTestIdModifiers = ModalTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = this.injector.get(TestIdsService);\n\n    /** @internal */\n    submitButtonText: string;\n    /** @internal */\n    submitButtonClass: string;\n    /** @internal */\n    submitButtonDisabled = false;\n    /** @internal */\n    cancelButtonText: string;\n    /** @internal */\n    cancelButtonClass: string;\n    /** @internal */\n    cancelButtonHidden: boolean;\n\n    constructor(private injector: Injector) {}\n}\n","<div class=\"modal-content\">\n    <div class=\"content\">\n        <ng-content></ng-content>\n    </div>\n\n    <div class=\"fu-in-waiting\" *ngIf=\"pending\"></div>\n</div>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n    selector: 'fusion-modal-content',\n    templateUrl: './modal-content.component.html',\n    styleUrls: ['./modal-content.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ModalContentComponent {\n    @Input() pending = false;\n}\n","<div class=\"modal-header\" *ngIf=\"headerText\">\n    <div class=\"modal-header-title\" [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_TITLE\">{{ headerText }}</div>\n    <fusion-icon class=\"fu-info\"\n                 *ngIf=\"infoText\"\n                 [name]=\"infoIcon\"\n                 [fusionTooltip]=\"infoText\"\n    ></fusion-icon>\n    <fusion-icon class=\"fu-close\"\n                 *ngIf=\"showCloseButton\"\n                 [name]=\"closeButtonIcon\"\n                 [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_CLOSE_BUTTON\"\n                 (click)=\"closeModal.emit()\"\n    ></fusion-icon>\n</div>\n","import {Component, EventEmitter, Injector, Input, Output} from '@angular/core';\nimport {ModalTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\n\n@Component({\n    selector: 'fusion-modal-header',\n    templateUrl: './modal-header.component.html',\n    styleUrls: ['./modal-header.component.scss']\n})\nexport class ModalHeaderComponent {\n    @Input() headerText: string;\n    @Input() showCloseButton = true;\n    /** @internal */\n    @Input() testId: string;\n\n    private _infoText: string;\n    @Input() set infoText(value: string) {\n        this._infoText = value;\n    }\n\n    get infoText(): string {\n        return this._infoText;\n    }\n\n    /** @internal */\n    modalTestIdModifiers: typeof ModalTestIdModifiers = ModalTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = this.injector.get(TestIdsService);\n\n    /** @internal */\n    closeButtonIcon = {iconName: 'close', iconVersion: 'v3'};\n    /** @internal */\n    infoIcon = {iconName: 'info', iconVersion: 'v3'};\n\n    @Output() closeModal = new EventEmitter();\n\n    constructor(private injector: Injector) {}\n}\n","<div class=\"modal\" [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL\" #modalHolder>\n    <div class=\"modal-body\" [class.has-footer]=\"configuration?.hasFooter\" [class.has-header]=\"configuration?.headerText\" [style.width]=\"configuration?.width\" [style.height]=\"configuration?.height\" #modalBody>\n\n        <fusion-modal-header [testId]=\"testId\" [headerText]=\"configuration?.headerText\" [infoText]=\"configuration?.headerInfoText\" (closeModal)=\"onClose(true, 'close')\"></fusion-modal-header>\n\n        <fusion-modal-content\n            *ngIf=\"configuration?.headerText || configuration?.hasFooter\"\n            [pending]=\"submitPending\"\n            [ngClass]=\"{'fu-has-height': !!configuration?.height}\"\n            [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:modalTestIdModifiers.MODAL_CONTENT\"\n        >\n            <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n        </fusion-modal-content>\n\n        <ng-container *ngIf=\"!configuration?.headerText && !configuration?.hasFooter\">\n            <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n        </ng-container>\n\n        <ng-template #content>\n            <ng-content></ng-content>\n        </ng-template>\n\n        <fusion-modal-footer\n            *ngIf=\"configuration?.hasFooter\"\n            [class.fu-alignment-left]=\"configuration?.footerAlignLeft\"\n            [class.fu-small]=\"configuration?.footerSmall\"\n            [error]=\"configuration?.error\"\n            [submitButton]=\"configuration?.submitButton\"\n            [cancelButton]=\"configuration?.cancelButton\"\n            (primaryButtonClicked)=\"onClose(true, 'submit')\"\n            (closeButtonClicked)=\"onClose(true, 'close')\"\n            [submitButtonPending]=\"submitPending\"\n            [testId]=\"testId\"\n        ></fusion-modal-footer>\n\n    </div>\n</div>\n\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    Inject,\n    Injector,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Renderer2,\n    ViewChild\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DOCUMENT} from '@angular/common';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {UniqueIdService} from '@ironsource/fusion-ui/services/unique-id';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\nimport {ModalConfiguration} from './modal.entities';\nimport {getDefaultCssUnit} from './modal-utils';\nimport {takeUntil} from 'rxjs/operators';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {ModalTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\n\n@Component({\n    selector: 'fusion-modal',\n    templateUrl: './modal.component.html',\n    styleUrls: ['./modal.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ModalComponent),\n            multi: true\n        }\n    ]\n})\nexport class ModalComponent implements OnDestroy, OnInit {\n    /** @internal */\n    static activeModals: {[id: string]: ModalComponent} = {};\n    @Input() submitPending = false; // state for submit pending\n    /** @internal */\n    @Input() set isModalOpen(value: boolean) {\n        if (!isNullOrUndefined(value)) {\n            this.isClosed$.next(!value);\n            this.modalOpenListener$.next(value);\n        }\n    }\n\n    @Input() set configuration(config: ModalConfiguration) {\n        this.setModalConfiguration(config);\n    }\n\n    get configuration(): ModalConfiguration {\n        return this._configuration.getValue();\n    }\n\n    /** @internal */\n    @Input() testId: string;\n\n    @Output() openModal = new EventEmitter();\n    @Output() closeModal = new EventEmitter();\n\n    /** @internal */\n    @ViewChild('modalBody', {static: true}) modalBody: ElementRef;\n    /** @internal */\n    @ViewChild('modalHolder', {static: true}) modalHolder: ElementRef;\n\n    /** @internal */\n    modalTestIdModifiers: typeof ModalTestIdModifiers = ModalTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = this.injector.get(TestIdsService);\n\n    private uid: string;\n    private _configuration = new BehaviorSubject<ModalConfiguration>(null);\n    private isClosed$ = new BehaviorSubject<boolean>(false);\n    private modalOpenListener$ = new BehaviorSubject<boolean>(false);\n    private onDestroy$ = new Subject<void>();\n\n    constructor(\n        @Inject(DOCUMENT) protected document: Document,\n        private uidService: UniqueIdService,\n        private elRef: ElementRef,\n        private windowRef: WindowService,\n        private logService: LogService,\n        private renderer: Renderer2,\n        private injector: Injector\n    ) {\n        this.uid = this.uidService.getUniqueId().toString();\n    }\n\n    ngOnInit() {\n        if (!this.configuration.id) {\n            this.logService.error(new Error('Modal component must have an id'));\n            return;\n        }\n        if (this.configuration.defaultModalState === 'close') {\n            this.onClose(false);\n        }\n\n        this.addModal(this);\n        this.initListeners();\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n        this.removeModal(this.configuration.id);\n    }\n\n    /** @internal */\n    onOpen() {\n        this.renderer.setStyle(this.elRef.nativeElement, 'display', 'block');\n        this.openModal.emit();\n    }\n\n    /** @internal */\n    onClose(emitEvent = true, eventType: 'close' | 'submit' = 'close') {\n        if (eventType === 'close') {\n            this.renderer.setStyle(this.elRef.nativeElement, 'display', 'none');\n        }\n        if (emitEvent) {\n            this.closeModal.emit(eventType);\n        }\n    }\n\n    private initListeners() {\n        this.modalOpenListener$\n            .asObservable()\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe(val => {\n                if (val) {\n                    this.onModalOpened(this.configuration.id);\n                }\n            });\n\n        this.isClosed$\n            .asObservable()\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe((val: boolean) => {\n                if (val) {\n                    this.onClose(false);\n                }\n            });\n    }\n\n    private addModal(modal: ModalComponent) {\n        ModalComponent.activeModals[modal.configuration.id] = modal;\n    }\n\n    private removeModal(id: string) {\n        delete ModalComponent.activeModals[id];\n    }\n\n    private onModalOpened(id: string) {\n        if (ModalComponent.activeModals[id]) {\n            Object.keys(ModalComponent.activeModals).forEach(modalId => {\n                if (modalId === id) {\n                    ModalComponent.activeModals[modalId].onOpen();\n                } else {\n                    this.onModalClosed(modalId, false);\n                }\n            });\n        }\n    }\n\n    private onModalClosed(id: string, emitEvent: boolean = true) {\n        if (ModalComponent.activeModals[id] && !ModalComponent.activeModals[id].isClosed$.getValue()) {\n            ModalComponent.activeModals[id].onClose(emitEvent, 'close');\n        }\n    }\n\n    private setModalConfiguration(config: ModalConfiguration) {\n        this._configuration.next({\n            id: config?.id ?? this.uid,\n            width: getDefaultCssUnit(config?.width),\n            height: getDefaultCssUnit(config?.height),\n            defaultModalState: config?.defaultModalState ?? 'open',\n            hasFooter: config?.hasFooter ?? true,\n            footerAlignLeft: config?.footerAlignLeft,\n            footerSmall: config?.footerSmall,\n            error: config?.error ?? '',\n            headerText: config?.headerText ?? '',\n            headerInfoText: config?.headerInfoText,\n            isHeaderBorder: config?.isHeaderBorder ?? true,\n            submitButton: {\n                submitButtonText: config?.submitButton?.submitButtonText ?? 'Save',\n                submitButtonClass: config?.submitButton?.submitButtonClass ?? (config?.footerSmall ? 'small' : ''),\n                submitButtonDisabled: config?.submitButton?.submitButtonDisabled ?? false\n            },\n            cancelButton: {\n                cancelButtonText: config?.cancelButton?.cancelButtonText ?? 'Cancel',\n                cancelButtonHidden: config?.cancelButton?.cancelButtonHidden ?? false,\n                cancelButtonClass:\n                    config?.cancelButton?.cancelButtonClass ?? (config?.footerSmall ? 'transparent third small' : 'transparent third')\n            }\n        });\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\nimport {ModalFooterComponent} from './components/modal-footer/modal-footer.component';\nimport {ModalContentComponent} from './components/modal-content/modal-content.component';\nimport {ModalHeaderComponent} from './components/modal-header/modal-header.component';\nimport {LoaderModule} from '@ironsource/fusion-ui/components/loader/v2';\nimport {ButtonModule} from '@ironsource/fusion-ui/components/button/v3';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {TooltipModule} from '@ironsource/fusion-ui/components/tooltip/v3';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\n\n@NgModule({\n    declarations: [ModalComponent, ModalFooterComponent, ModalContentComponent, ModalHeaderComponent],\n    exports: [ModalComponent, ModalFooterComponent, ModalContentComponent, ModalHeaderComponent],\n    imports: [CommonModule, LoaderModule, ButtonModule, IconModule, TooltipModule, GenericPipe]\n})\nexport class ModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1","i2","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAM,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC3C,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,EAAG,KAAK,CAAI,EAAA,CAAA,GAAG,KAAK,CAAC;AACtD;;;;ICAI,EAKC,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAFG,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAyB,CAAA,kBAAA,CAAA,IAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IAGnC,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAgB,CAAA,YAAA,EAAA,CAAA;;;IALZ,EAA2B,CAAA,UAAA,CAAA,MAAA,CAAA,iBAAA,CAAA,CAAA;IAD3B,EAAyH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,MAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,CAAA,CAAA;IAKzH,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,CAAA;;MCAS,oBAAoB,CAAA;IAG7B,IAAa,YAAY,CAAC,MAA6F,EAAA;AACnH,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,CAAC;AACjD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,EAAE,kBAAkB,CAAC;KACxD;IAED,IAAa,YAAY,CAAC,MAA+F,EAAA;AACrH,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,CAAC;AACjD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,EAAE,oBAAoB,CAAC;KAC5D;AA2BD,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAvC7B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;AAkB3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;;QAGlD,IAAoB,CAAA,oBAAA,GAAgC,oBAAoB,CAAC;;QAEzE,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;;QAOnE,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;KAQa;qFAxCjC,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADTjC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0B,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;YAC2H,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAO,CAAA,YAAA,EAAA,CAAA;YACnK,EAOgB,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;YAChB,EAMC,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;AADG,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,OAAS,+BAA2B,CAAC,EAAA,CAAA,CAAA;;YAErC,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAgB,EAAA,CAAA;;YAjBe,EAAiH,CAAA,SAAA,EAAA,CAAA;YAAjH,EAAiH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,CAAA,CAAA;YAAC,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAX,EAAW,CAAA,iBAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YAKvJ,EAAyB,CAAA,SAAA,EAAA,CAAA;YAAzB,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,kBAAA,CAAA,CAAA;YAM1B,EAA2B,CAAA,SAAA,EAAA,CAAA;YAA3B,EAA2B,CAAA,UAAA,CAAA,GAAA,CAAA,iBAAA,CAAA,CAAA;AAC3B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,mBAAA,CAA+B,CAAA,UAAA,EAAA,GAAA,CAAA,oBAAA,IAAA,CAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YAF/B,EAAyH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,CAAA,CAAA;YAMzH,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,CAAA;;;iFCTS,oBAAoB,EAAA,CAAA;cALhC,SAAS;2BACI,qBAAqB,EAAA,QAAA,EAAA,m/BAAA,EAAA,MAAA,EAAA,CAAA,kqHAAA,CAAA,EAAA,CAAA;yCAKtB,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEO,YAAY,EAAA,CAAA;kBAAxB,KAAK;YAMO,YAAY,EAAA,CAAA;kBAAxB,KAAK;YAMG,KAAK,EAAA,CAAA;kBAAb,KAAK;YAEG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAEI,oBAAoB,EAAA,CAAA;kBAA7B,MAAM;YACG,kBAAkB,EAAA,CAAA;kBAA3B,MAAM;;kFApBE,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;ICJ7B,EAAiD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;MCGxC,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;QAOa,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAC5B,KAAA;sFAFY,qBAAqB,GAAA,CAAA,EAAA,CAAA,EAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;ADRlC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEnB,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC7B,EAAM,CAAA,YAAA,EAAA,CAAA;YAEN,EAAiD,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACrD,EAAM,CAAA,YAAA,EAAA,CAAA;;YAD0B,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;iFCGhC,qBAAqB,EAAA,CAAA;cANjC,SAAS;2BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kLAAA,EAAA,MAAA,EAAA,CAAA,m3GAAA,CAAA,EAAA,CAAA;gBAGtC,OAAO,EAAA,CAAA;kBAAf,KAAK;;kFADG,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;ICN9B,EAIe,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;AAFF,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,CAAiB,CAAA,eAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAG9B,EAKC,CAAA,cAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IADY,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAiB,CAAA,UAAA,CAAA,IAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IACvC,EAAc,CAAA,YAAA,EAAA,CAAA;;;IAHF,EAAwB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA;IACxB,EAAwH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,MAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,CAAA,CAAA;;;AAVzI,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;IACyG,EAAgB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;AACxK,IAAA,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAIe,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAOnB,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAZ8B,EAAiH,CAAA,SAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,MAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAAC,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA;IAEpJ,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;IAKd,EAAqB,CAAA,SAAA,EAAA,CAAA;IAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA;;MCC1B,oBAAoB,CAAA;IAO7B,IAAa,QAAQ,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAcD,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAzB7B,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;QAchC,IAAoB,CAAA,oBAAA,GAAgC,oBAAoB,CAAC;;QAEzE,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;;QAGnE,IAAe,CAAA,eAAA,GAAG,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;;QAEzD,IAAQ,CAAA,QAAA,GAAG,EAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;AAEvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;KAEA;qFA3BjC,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,eAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDTjC,EAaM,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAbqB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;iFCS9B,oBAAoB,EAAA,CAAA;cALhC,SAAS;2BACI,qBAAqB,EAAA,QAAA,EAAA,kvBAAA,EAAA,MAAA,EAAA,CAAA,klIAAA,CAAA,EAAA,CAAA;yCAKtB,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,eAAe,EAAA,CAAA;kBAAvB,KAAK;YAEG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAGO,QAAQ,EAAA,CAAA;kBAApB,KAAK;YAkBI,UAAU,EAAA,CAAA;kBAAnB,MAAM;;kFAzBE,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;;;ICErB,EAAyD,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;;IAN7D,EAKC,CAAA,cAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;;IACG,EAAyD,CAAA,UAAA,CAAA,CAAA,EAAA,6DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA;IAC7D,EAAuB,CAAA,YAAA,EAAA,CAAA;;;;AALnB,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,aAAA,CAAyB,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAEzB,EAAmH,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,MAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,CAAA,CAAA;IAEpG,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,CAAA;;;IAIxC,EAAyD,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;IAD7D,EAA8E,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC1E,EAAyD,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA;IAC7D,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IADI,EAAyB,CAAA,SAAA,EAAA,CAAA;IAAzB,EAAyB,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,CAAA;;;IAIxC,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;;IAG7B,EAWC,CAAA,cAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAAA,CAAA;AAJG,IAAA,EAAA,CAAA,UAAA,CAAA,sBAAA,EAAA,SAAA,kGAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAwB,eAAA,MAAQ,CAAA,OAAA,CAAA,IAAI,EAAE,QAAQ,CAAC,CAAA,CAAA,EAAA,CAAC,CAC1B,oBAAA,EAAA,SAAA,gGAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,gBAAQ,IAAI,EAAE,OAAO,CAAC,CAAA,CADI,EAAA,CAAA,CAAA;IAInD,EAAsB,CAAA,YAAA,EAAA,CAAA;;;AATnB,IAAA,EAAA,CAAA,WAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,eAAA,CAA0D,CAAA,UAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,WAAA,CAAA,CAAA;IAE1D,EAA8B,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,KAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,YAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,aAAA,CAAA,YAAA,CAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA;;;MCe7B,cAAc,CAAA;;aAEhB,IAAY,CAAA,YAAA,GAAmC,EAAnC,CAAsC,EAAA;;IAGzD,IAAa,WAAW,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;KACJ;IAED,IAAa,aAAa,CAAC,MAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KACtC;AAED,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACzC;AAwBD,IAAA,WAAA,CACgC,QAAkB,EACtC,UAA2B,EAC3B,KAAiB,EACjB,SAAwB,EACxB,UAAsB,EACtB,QAAmB,EACnB,QAAkB,EAAA;QANE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACtC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;QAC3B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAe;QACxB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AA9CrB,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC;AAoBrB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;;QAQ1C,IAAoB,CAAA,oBAAA,GAAgC,oBAAoB,CAAC;;QAEzE,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAG3D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAqB,IAAI,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AAWrC,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;KACvD;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACpE,OAAO;AACV,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,KAAK,OAAO,EAAE;AAClD,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;KAC3C;;IAGD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;;AAGD,IAAA,OAAO,CAAC,SAAS,GAAG,IAAI,EAAE,YAAgC,OAAO,EAAA;QAC7D,IAAI,SAAS,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,SAAA;AACD,QAAA,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,SAAA;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,kBAAkB;AAClB,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,IAAG;AACb,YAAA,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAC7C,aAAA;AACL,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,SAAS;AACT,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,GAAY,KAAI;AACxB,YAAA,IAAI,GAAG,EAAE;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,aAAA;AACL,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,QAAQ,CAAC,KAAqB,EAAA;QAClC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;KAC/D;AAEO,IAAA,WAAW,CAAC,EAAU,EAAA;AAC1B,QAAA,OAAO,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KAC1C;AAEO,IAAA,aAAa,CAAC,EAAU,EAAA;AAC5B,QAAA,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;gBACvD,IAAI,OAAO,KAAK,EAAE,EAAE;oBAChB,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACjD,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACtC,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;AAEO,IAAA,aAAa,CAAC,EAAU,EAAE,SAAA,GAAqB,IAAI,EAAA;AACvD,QAAA,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;AAC1F,YAAA,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,SAAA;KACJ;AAEO,IAAA,qBAAqB,CAAC,MAA0B,EAAA;AACpD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACrB,YAAA,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG;AAC1B,YAAA,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;AACvC,YAAA,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC,YAAA,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,MAAM;AACtD,YAAA,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,IAAI;YACpC,eAAe,EAAE,MAAM,EAAE,eAAe;YACxC,WAAW,EAAE,MAAM,EAAE,WAAW;AAChC,YAAA,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;AAC1B,YAAA,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE;YACpC,cAAc,EAAE,MAAM,EAAE,cAAc;AACtC,YAAA,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,IAAI;AAC9C,YAAA,YAAY,EAAE;AACV,gBAAA,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,IAAI,MAAM;AAClE,gBAAA,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,KAAK,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,EAAE,CAAC;AAClG,gBAAA,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,IAAI,KAAK;AAC5E,aAAA;AACD,YAAA,YAAY,EAAE;AACV,gBAAA,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,IAAI,QAAQ;AACpE,gBAAA,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,IAAI,KAAK;AACrE,gBAAA,iBAAiB,EACb,MAAM,EAAE,YAAY,EAAE,iBAAiB,KAAK,MAAM,EAAE,WAAW,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AACzH,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;AAhKQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,sBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,cAAc,uBA2CX,QAAQ,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,IAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,IAAA,CAAA,aAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,IAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEA3CX,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;AARZ,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,WAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,cAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,cAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,oBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDvCL,EAA4I,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;AACxI,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAA4M,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;AAE7E,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,OAAc,GAAQ,CAAA,OAAA,CAAA,IAAI,EAAE,OAAO,CAAC,CAAC,EAAA,CAAA,CAAA;YAAC,EAAsB,CAAA,YAAA,EAAA,CAAA;YAEvL,EAOuB,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,mGAAA,CAAA,EAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;AAuB3B,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;YAnCS,EAA2G,CAAA,WAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,KAAA,CAAA,CAAA,CAAA;YACL,EAAoC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApC,YAAA,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,KAAA,CAAoC,CAAA,QAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA;AAAjI,YAAA,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,SAAA,CAA6C,CAAA,YAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,UAAA,CAAA,CAAA;YAE5C,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAjB,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,GAAA,CAAA,MAAA,CAAiB,+EAAA,CAAA,UAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,cAAA,CAAA,CAAA;YAGjC,EAA2D,CAAA,SAAA,EAAA,CAAA;YAA3D,EAA2D,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,UAAA,MAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,SAAA,CAAA,CAAA,CAAA;YAQjD,EAA6D,CAAA,SAAA,EAAA,CAAA;YAA7D,EAA6D,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,UAAA,CAAA,IAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,SAAA,CAAA,CAAA,CAAA;YASvE,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,aAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,aAAA,CAAA,SAAA,CAAA,CAAA;;;iFCkB9B,cAAc,EAAA,CAAA;cAb1B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC7C,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;AACJ,iBAAA,EAAA,QAAA,EAAA,w7DAAA,EAAA,MAAA,EAAA,CAAA,s/HAAA,CAAA,EAAA,CAAA;;sBA6CI,MAAM;uBAAC,QAAQ,CAAA;sLAxCX,aAAa,EAAA,CAAA;kBAArB,KAAK;YAEO,WAAW,EAAA,CAAA;kBAAvB,KAAK;YAOO,aAAa,EAAA,CAAA;kBAAzB,KAAK;YASG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAEI,SAAS,EAAA,CAAA;kBAAlB,MAAM;YACG,UAAU,EAAA,CAAA;kBAAnB,MAAM;YAGiC,SAAS,EAAA,CAAA;kBAAhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YAEI,WAAW,EAAA,CAAA;kBAApD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;kFA7B/B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCxBd,WAAW,CAAA;4EAAX,WAAW,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAX,WAAW,EAAA,CAAA,CAAA,EAAA;AAFV,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEpE,WAAW,EAAA,CAAA;cALvB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;gBACjG,OAAO,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;AAC5F,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC;AAC9F,aAAA,CAAA;;wFACY,WAAW,EAAA,EAAA,YAAA,EAAA,CAJL,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEtF,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CADhF,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACd/F;;AAEG;;;;"}