{"version":3,"file":"cotecna-material.mjs","sources":["../../../projects/comat/src/lib/model/contextual-toolbar-display-mode.ts","../../../projects/comat/src/lib/contextual-toolbar/contextual-toolbar.component.ts","../../../projects/comat/src/lib/contextual-toolbar/contextual-toolbar.component.html","../../../projects/comat/src/lib/banner/banner.component.ts","../../../projects/comat/src/lib/backdrop/backdrop.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-back-layer.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-back-layer-content.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-back-layer-toolbar.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-front-layer.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-front-layer-subtitle.component.ts","../../../projects/comat/src/lib/backdrop/backdrop-front-layer-content.component.ts","../../../projects/comat/src/lib/fab-speed-dial/fab-speed-dial.animation.ts","../../../projects/comat/src/lib/fab-speed-dial/fab-speed-dial.component.ts","../../../projects/comat/src/public_api.ts","../../../projects/comat/src/cotecna-material.ts"],"sourcesContent":["export enum ContextualToolbarDisplayMode {\n  icons = \"icons\", \n  text = \"text\",\n  all = \"all\"\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActionElement } from '../../public_api';\nimport { ContextualToolbarDisplayMode } from '../model/model';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n  selector: 'comat-contextual-toolbar',\n  templateUrl: './contextual-toolbar.component.html',\n  styleUrls: ['./contextual-toolbar.component.scss'],\n  imports: [\n    CommonModule,\n    MatToolbarModule,\n    MatButtonModule,\n    MatIconModule,\n    MatTooltipModule,\n    MatMenuModule,\n    MatProgressSpinnerModule\n  ],\n})\nexport class ContextualToolbarComponent implements OnInit {\n\n  @Input() count!: number;\n\n  @Input() actions!: ActionElement[];\n\n  @Input() displayMode: ContextualToolbarDisplayMode = ContextualToolbarDisplayMode.icons;\n\n  @Input() moreActions!: ActionElement[];\n\n  @Input() contextualizeTo!: string;\n\n  @Output() selectedAction = new EventEmitter<ActionElement>();\n\n  @Output() clearSelection = new EventEmitter();\n\n  classesToApply = {};\n\n  progressMessage: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\n  constructor() { }\n\n  ngOnInit() {\n    this.setContextualization();\n  }\n\n  showButtonIcon() {\n    return this.displayMode != ContextualToolbarDisplayMode.text;\n  }\n\n  showButtonText() {\n    return this.displayMode != ContextualToolbarDisplayMode.icons;\n  }\n\n  private setContextualization() {\n    this.classesToApply = {\n      'page-contextual-toolbar': this.contextualizeTo != 'card',\n      'card-contextual-toolbar': this.contextualizeTo == 'card'\n    }\n  }\n\n  public setProgress(progressMessage: string) {\n    this.progressMessage.next(progressMessage);\n  }\n\n  public stopProgress() {\n    this.progressMessage.next('');\n  }\n\n  actionSelected(action: ActionElement): void {\n    this.selectedAction.emit(action);\n  }\n\n  clear(): void {\n    this.clearSelection.emit();\n  }\n\n}\n","@if (count > 0) {\n  <mat-toolbar [ngClass]=\"classesToApply\">\n    @if (progressMessage | async) {\n      <mat-spinner [diameter]='24'></mat-spinner>\n      {{ progressMessage | async }}\n      <span class=\"spacer\"></span>\n    } @else {\n      <button mat-icon-button (click)=\"clear()\">\n        <mat-icon fontIcon=\"clear\">clear</mat-icon>\n      </button>\n      <span i18n=\"@@contextualSelectedItems\">{{count}} selected</span>\n      <span class=\"spacer\"></span>\n      @for (action of actions; track action) {\n        <button mat-icon-button\n          (click)=\"actionSelected(action)\"\n          [class.textButton]=\"showButtonText()\"\n          [matTooltip]=\"action.tooltip ? action.tooltip : action.name\">\n          @if (showButtonIcon()) {\n            <mat-icon fontIcon=\"action.icon\">{{action.icon}}</mat-icon>\n          }\n          @if (showButtonText()) {\n            <span>{{action.text}}</span>\n          }\n        </button>\n      }\n      @if (moreActions) {\n        <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n          <mat-icon matTooltip=\"more\" i18n-matTooltip=\"@@moreActions\" fontIcon=\"more_vert\">more_vert</mat-icon>\n        </button>\n      }\n      <mat-menu #menu=\"matMenu\" yPosition=\"below\">\n        @for (moreAction of moreActions; track moreAction) {\n          <button mat-menu-item\n          (click)=\"actionSelected(moreAction)\">{{moreAction.tooltip ? moreAction.tooltip: moreAction.name}}</button>\n        }\n      </mat-menu>\n    }\n  </mat-toolbar>\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n  selector: 'comat-banner',\n  template: `\n  @if (show) {\n    <mat-card>\n      <div id=\"banner-content\">\n        @if (icon) {\n          <mat-icon matListIcon color=\"primary\">{{icon}}</mat-icon>\n        }\n        <div id=\"banner-text-container\">\n          <p matLine>{{firstSentence}}</p>\n          @if (secondSentence) {\n            <p matLine>{{secondSentence}}</p>\n          }\n        </div>\n      </div>\n      <div id=\"banner-actions\">\n        @if (secondaryActionText) {\n          <button mat-button color=\"primary\" (click)=\"secondaryActionClicked()\">{{secondaryActionText}}</button>\n        }\n        <button mat-button color=\"primary\" (click)=\"mainActionClicked()\">{{mainActionText}}</button>\n      </div>\n    </mat-card>\n  }\n  `,\n  styles: [`\n    mat-card {\n        box-shadow: none;\n        border-bottom-style: solid;\n        border-bottom-color: rgba(0, 0, 0, 0.25);\n        border-bottom-width: 2px;\n        border-radius: 0px;\n    }\n\n    mat-card-content{\n        align-items: center;\n        display: flex;\n        justify-content: space-between;\n        margin: 0 auto;\n        max-width: 90%;\n        flex-wrap: wrap;\n    }\n\n    #banner-text-container {\n        margin-left: 24px;\n    }\n\n    #banner-text-container p{\n        font-size: 14px;\n        margin: 3px 0;\n    }\n\n    #banner-actions button{\n        text-transform: uppercase !important;\n    }\n\n    #banner-content {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n    }\n\n    mat-card-content,\n    mat-list,\n    mat-list-item {\n        height: 100% !important;\n        padding: 0;\n    }\n\n    .mat-list, .mat-list-item, .mat-list-text{\n        flex-direction: row !important;\n    }\n\n    @media(max-width:959px){\n        mat-card-content,\n        mat-list,\n        mat-list-item {\n            height: auto !important;\n            max-width: 100% !important;\n            width: 100% !important;\n        }\n\n        mat-list-item {\n            margin: 12px 0 !important;\n        }\n\n        #banner-text-container {\n            margin-left: 16px !important;\n        }\n\n        #banner-actions {\n            justify-content: flex-end;\n            display: flex;\n            width: 100%;\n        }\n    }\n  `],\n  imports: [\n    MatCardModule,\n    MatIconModule,\n    MatButtonModule\n  ],\n})\nexport class BannerComponent implements OnInit {\n\n  @Input()\n  show!: boolean;\n\n  @Input()\n  icon!: string;\n\n  @Input()\n  firstSentence!: string;\n\n  @Input()\n  secondSentence!: string;\n\n  @Input()\n  mainActionText!: string;\n\n  @Input()\n  secondaryActionText!: string;\n\n  @Output()\n  mainActionClick = new EventEmitter();\n\n  @Output()\n  secondaryActionClick = new EventEmitter();\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n  mainActionClicked() {\n    this.mainActionClick.emit();\n  }\n\n  secondaryActionClicked() {\n    this.secondaryActionClick.emit();\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'comat-backdrop',\n  template: `\n    <ng-content select=\"comat-backdrop-back-layer\"></ng-content>\n    <ng-content select=\"comat-backdrop-front-layer\"></ng-content>\n  `,\n  styles: [`\n    :host {\n        width: 100%;\n    }\n  `],\n  imports: []\n})\nexport class BackdropComponent {\n  private backLayerMinHeight: number = 56;\n  private frontLayerMinHeight: number = 42;\n\n  constructor() { }\n\n  public reveal() {\n    let backLayer = this.getBackLayer();\n    let frontLayer = this.getFrontLayer();\n    let toolbar = this.getToolbar();\n\n    let from = frontLayer.offsetTop;\n    let to = toolbar.offsetHeight + backLayer.offsetHeight;\n    this.animateFrontLayerDown(frontLayer, from, to);\n  }\n\n  public conceal() {\n    let frontLayer = this.getFrontLayer();\n\n    let from = frontLayer.offsetTop;\n    let to = this.backLayerMinHeight;\n    this.animateFrontLayerUp(frontLayer, from, to);\n  }\n\n  private getBackLayer(): HTMLElement {\n    return <HTMLElement>document.querySelector('comat-backdrop-back-layer-content')\n  }\n\n  private getFrontLayer(): HTMLElement {\n    return <HTMLElement>document.querySelector('comat-backdrop-front-layer');\n  }\n\n  private getToolbar(): HTMLElement {\n    return <HTMLElement>document.querySelector('mat-toolbar');\n  }\n\n  private getWindowHeight(): number {\n    return document.documentElement.clientHeight;\n  }\n\n  // TODO Refactor animations to single function\n  private animateFrontLayerDown(frontLayer: HTMLElement, from: number, to: number) {\n    let pos = from;\n    let maxPos = this.getWindowHeight() - this.frontLayerMinHeight;\n\n    let interval = setInterval(frame, 3);\n\n    function frame() {\n      if (pos >= to || pos >= maxPos) {\n        if (to >= maxPos) {\n          frontLayer.style.top = maxPos + 'px';\n        }\n        else {\n          frontLayer.style.top = to + 'px';\n        }\n\n        clearInterval(interval);\n      } else {\n        pos = to > from ? pos + 10 : pos - 10;\n        frontLayer.style.top = pos + 'px';\n      }\n    }\n  }\n\n  private animateFrontLayerUp(frontLayer: HTMLElement, from: number, to: number) {\n    let pos = from;\n    let interval = setInterval(frame, 3);\n\n    function frame() {\n      if (pos <= to) {\n        frontLayer.style.top = to + 'px';\n        clearInterval(interval);\n      } else {\n        pos = to > from ? pos + 10 : pos - 10;\n        frontLayer.style.top = pos + 'px';\n      }\n    }\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'comat-backdrop-back-layer',\n  template: `\n    <ng-content select=\"comat-backdrop-back-layer-toolbar\"></ng-content>\n    <ng-content select=\"comat-backdrop-back-layer-content\"></ng-content>\n  `,\n  styles: [`\n    :host {\n      display: flex;\n      flex-direction: column;\n      height: 100%;\n      min-height: 56px;\n      width: 100%;\n    }\n  `],\n  imports: []\n})\nexport class BackdropBackLayerComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'comat-backdrop-back-layer-content',\n    template: `\n    <ng-content></ng-content>\n  `,\n    styles: [`\n    :host{\n      overflow-y: auto;\n    }\n  `],\n  imports: []\n})\nexport class BackdropBackLayerContentComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'comat-backdrop-back-layer-toolbar',\n    template: `<ng-content></ng-content>`,\n    imports: []\n})\nexport class BackdropBackLayerToolbarComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'comat-backdrop-front-layer',\n  template: `\n    <ng-content select=\"comat-backdrop-front-layer-subtitle\"></ng-content>\n    <ng-content select=\"comat-backdrop-front-layer-content\"></ng-content>\n  `,\n  styles: [`\n    :host{\n        border-top-left-radius: 16px;\n        border-top-right-radius: 16px;\n        bottom: 0;\n        height: 100%;\n        overflow: hidden;\n        position: fixed;\n        top: 56px;\n        width: 100%;\n    }\n  `],\n  imports: []\n})\nexport class BackdropFrontLayerComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'comat-backdrop-front-layer-subtitle',\n  template: `<ng-container>\n              <ng-content select=\"mat-icon\" class=\"subtitle-icon\"></ng-content>\n              <ng-content select=\"span\"></ng-content>\n              <span class=\"spacer\"></span>\n              <ng-content select=\"button\"></ng-content>\n             </ng-container>`,\n  styles: [`\n    :host{\n      align-items: center;\n      display: flex;\n      flex-direction: row;\n      margin: 12px 16px;\n      width: auto;\n    }\n\n    :host ::ng-deep mat-icon{\n      margin-right: 8px;\n    }\n\n    :host ::ng-deep span {\n      font-size: 1.2rem;\n    }\n\n    :host ::ng-deep .spacer {\n      flex: 1 1 auto;\n    }\n  `],\n  imports: []\n\n})\nexport class BackdropFrontLayerSubtitleComponent {\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'comat-backdrop-front-layer-content',\n  template: `<ng-content></ng-content>`,\n  styles: [`\n    :host{\n        display: flex;\n        height: 100%;\n        overflow-y: auto;\n        width: 100%;\n    }\n  `],\n  imports: []\n})\nexport class BackdropFrontLayerContentComponent {\n\n}\n","import {\n    animate,\n    keyframes,\n    query,\n    stagger,\n    state,\n    style,\n    transition,\n    trigger,\n    AnimationTriggerMetadata\n  } from '@angular/animations';\n  \n  export const FabSpeedDialAnimation: AnimationTriggerMetadata[] = [\n    trigger('fabButtonAnimation', [\n      state('inactive', style({\n        transform: 'rotate(0deg)'\n      })),\n      state('active', style({\n        transform: 'rotate(180deg)'\n      })),\n      transition('* <=> *', animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n    ]),\n    trigger('speedDialStagger', [\n      transition('* => *', [\n  \n        query(':enter', style({ opacity: 0 }), {optional: true}),\n  \n        query(':enter', stagger('40ms',\n          [\n            animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)',\n              keyframes(\n                [\n                  style({opacity: 0, transform: 'translateY(10px)'}),\n                  style({opacity: 1, transform: 'translateY(0)'}),\n                ]\n              )\n            )\n          ]\n        ), {optional: true}),\n  \n        query(':leave',\n          animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)',\n            keyframes([\n              style({opacity: 1}),\n              style({opacity: 0}),\n            ])\n          ), {optional: true}\n        )\n  \n      ])\n    ])\n  ];\n  ","import { FabSpeedDialAnimation } from './fab-speed-dial.animation';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ActionElement } from '../model/action-element';\nimport { ThemePalette } from '@angular/material/core';\nimport { ToggleState } from '../model/toggle-state';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n\tselector: 'comat-fab-speed-dial',\n\ttemplate: `\n\t\t@if (isCorrectActionsNumber) {\n\t\t  <div>\n\t\t    <div id=\"comat-fab-speed-dial-button-overlay\"></div>\n\t\t    <div class=\"comat-fab-speed-dial-button-component\">\n\t\t      @if (showActions) {\n\t\t        <div [@speedDialStagger]=\"actions.length\" class=\"comat-fab-speed-dial-menu-actions\">\n\t\t          @for (action of actions; track action) {\n\t\t            <div class=\"comat-fab-speed-dial-mini-button\">\n\t\t              @if (action.name) {\n\t\t                <mat-card class=\"comat-fab-speed-dial-card-action\">\n\t\t                  {{ action.name }}\n\t\t                </mat-card>\n\t\t              }\n\t\t              <button mat-mini-fab [color]=\"color\" (click)=\"actionSelected(action)\">\n\t\t                <mat-icon>{{ action.icon }}</mat-icon>\n\t\t              </button>\n\t\t            </div>\n\t\t          }\n\t\t        </div>\n\t\t      }\n\t\t      <button mat-fab [color]=\"color\" (click)=\"toggleSpeedDial()\">\n\t\t        <mat-icon [@fabButtonAnimation]=\"{value: fabSpeedDialState}\">{{ displayedIcon }}</mat-icon>\n\t\t      </button>\n\t\t    </div>\n\t\t  </div>\n\t\t}\n\t\t`,\n\tstyles: [`\n\t\t.comat-fab-speed-dial-button-component {\n\t\t\t\tposition: fixed;\n\t\t\t\tbottom: 16px;\n\t\t\t\tright: 16px;\n\t\t\t\ttext-align: right;\n\t\t}\n\t\t.comat-fab-speed-dial-mini-button {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: flex-end;\n\t\t\t\tmargin-bottom: 16px;\n\t\t}\n\t\t.comat-fab-speed-dial-card-action {\n\t\t\t\tmargin-right: 16px;\n\t\t\t\tpadding: 12px;\n\t\t\t\ttext-align: center;\n\t\t\t\tpadding-right: 16px;\n\t\t\t\tpadding-left: 16px;\n\t\t}\n\t\t.comat-fab-speed-dial-menu-actions {\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: flex-end;\n\t\t\t\tmargin-right: 8px;\n\t\t\t\tposition: relative;\n\t\t\t\tbottom: 8px;\n\t\t}\n\t\t.comat-fab-speed-dial-overlay {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tposition: fixed;\n\t\t\t\tleft: 0;\n\t\t\t\ttop: 0;\n\t\t\t\tz-index: 0;\n\t\tbackground: rgba(0, 0, 0, 0.32);\n\t\t}\n\t`],\n\tanimations: FabSpeedDialAnimation,\n\timports: [\n    MatButtonModule,\n    MatIconModule,\n    MatCardModule\n],\n})\nexport class FabSpeedDialComponent implements OnInit {\n\t@Input() mainIcon!: string;\n\n\t@Input() color: ThemePalette;\n\n\t@Input() actions!: ActionElement[];\n\n\t@Output() selectedAction = new EventEmitter<ActionElement>();\n\n\t@Output() stateChanged = new EventEmitter<ToggleState>();\n\n\tshowActions: boolean = false;\n\tdisplayedIcon: string = '';\n\tfabSpeedDialState: string = '';\n\tisCorrectActionsNumber: boolean = true;\n\n\tconstructor() { }\n\n\tngOnInit() {\n\t\tthis.displayedIcon = this.mainIcon;\n\t\tthis.checkActions();\n\t}\n\n\tcheckActions() {\n\t\tif (this.actions.length < 2) {\n\t\t\tconsole.error('A speed dial should include at least two options.');\n\t\t\tthis.isCorrectActionsNumber = false;\n\t\t}\n\t\telse if (this.actions.length > 6) {\n\t\t\tconsole.error('A speed dial should include no more than six options.');\n\t\t\tthis.isCorrectActionsNumber = false;\n\t\t}\n\t}\n\n\ttoggleSpeedDial() {\n\t\tthis.showActions = !this.showActions;\n\t\tif (this.showActions) {\n\t\t\tthis.fabSpeedDialState = 'active';\n\t\t\tthis.displayedIcon = 'close';\n\t\t\tdocument.getElementById('comat-fab-speed-dial-button-overlay')!.classList.add('comat-fab-speed-dial-overlay');\n\t\t\tthis.stateChanged.emit({ isActive: true, icon: this.displayedIcon });\n\t\t}\n\t\telse {\n\t\t\tthis.fabSpeedDialState = 'inactive';\n\t\t\tthis.displayedIcon = this.mainIcon;\n\t\t\tdocument.getElementById('comat-fab-speed-dial-button-overlay')!.classList.remove('comat-fab-speed-dial-overlay');\n\t\t\tthis.stateChanged.emit({ isActive: false, icon: this.displayedIcon });\n\t\t}\n\t}\n\n\tactionSelected(action: ActionElement) {\n\t\tthis.selectedAction.emit(action);\n\t\tthis.toggleSpeedDial();\n\t}\n}\n","/*\n * Public API Surface of comat\n */\n\nexport * from './lib/model/model';\n\nexport * from './lib/contextual-toolbar/contextual-toolbar.component';\n\nexport * from './lib/banner/banner.component';\n\nexport * from './lib/backdrop/backdrop.component';\nexport * from './lib/backdrop/backdrop-back-layer.component';\nexport * from './lib/backdrop/backdrop-back-layer-content.component';\nexport * from './lib/backdrop/backdrop-back-layer-toolbar.component';\nexport * from './lib/backdrop/backdrop-front-layer.component';\nexport * from './lib/backdrop/backdrop-front-layer-subtitle.component';\nexport * from './lib/backdrop/backdrop-front-layer-content.component';\n\nexport * from './lib/fab-speed-dial/fab-speed-dial.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4","i1","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;IAAY;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACtC,IAAA,4BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,4BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,4BAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAJW,4BAA4B,KAA5B,4BAA4B,GAAA,EAAA,CAAA,CAAA;;MC0B3B,0BAA0B,CAAA;AAoBrC,IAAA,WAAA,GAAA;AAdS,QAAA,IAAA,CAAA,WAAW,GAAiC,4BAA4B,CAAC,KAAK;AAM7E,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAiB;AAElD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE;QAE7C,IAAA,CAAA,cAAc,GAAG,EAAE;AAEnB,QAAA,IAAA,CAAA,eAAe,GAA4B,IAAI,eAAe,CAAS,EAAE,CAAC;IAE1D;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,4BAA4B,CAAC,IAAI;IAC9D;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,4BAA4B,CAAC,KAAK;IAC/D;IAEQ,oBAAoB,GAAA;QAC1B,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,yBAAyB,EAAE,IAAI,CAAC,eAAe,IAAI,MAAM;AACzD,YAAA,yBAAyB,EAAE,IAAI,CAAC,eAAe,IAAI;SACpD;IACH;AAEO,IAAA,WAAW,CAAC,eAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;IAC5C;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/B;AAEA,IAAA,cAAc,CAAC,MAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;IAClC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;IAC5B;8GAvDW,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,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BvC,ugDAuCA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtBI,YAAY,4HACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,aAAa,6vBACb,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGf,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAdtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,OAAA,EAG3B;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb;AACD,qBAAA,EAAA,QAAA,EAAA,ugDAAA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA;;sBAIA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;;MEoEU,eAAe,CAAA;AA0B1B,IAAA,WAAA,GAAA;AALA,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE;AAGpC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE;IAEzB;IAEhB,QAAQ,GAAA;IACR;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B;IAEA,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;IAClC;8GArCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArGhB;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA0EC,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGN,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvG3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,QAAA,EACd;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAAA,OAAA,EAyEQ;wBACP,aAAa;wBACb,aAAa;wBACb;AACD,qBAAA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA;;sBAIA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;;MCpHU,iBAAiB,CAAA;AAI5B,IAAA,WAAA,GAAA;QAHQ,IAAA,CAAA,kBAAkB,GAAW,EAAE;QAC/B,IAAA,CAAA,mBAAmB,GAAW,EAAE;IAExB;IAET,MAAM,GAAA;AACX,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AACrC,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AAE/B,QAAA,IAAI,IAAI,GAAG,UAAU,CAAC,SAAS;QAC/B,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY;QACtD,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;IAClD;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAErC,QAAA,IAAI,IAAI,GAAG,UAAU,CAAC,SAAS;AAC/B,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB;QAChC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;IAChD;IAEQ,YAAY,GAAA;AAClB,QAAA,OAAoB,QAAQ,CAAC,aAAa,CAAC,mCAAmC,CAAC;IACjF;IAEQ,aAAa,GAAA;AACnB,QAAA,OAAoB,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC;IAC1E;IAEQ,UAAU,GAAA;AAChB,QAAA,OAAoB,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;IAC3D;IAEQ,eAAe,GAAA;AACrB,QAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY;IAC9C;;AAGQ,IAAA,qBAAqB,CAAC,UAAuB,EAAE,IAAY,EAAE,EAAU,EAAA;QAC7E,IAAI,GAAG,GAAG,IAAI;QACd,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB;QAE9D,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;AAEpC,QAAA,SAAS,KAAK,GAAA;YACZ,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,MAAM,EAAE;AAC9B,gBAAA,IAAI,EAAE,IAAI,MAAM,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI;gBACtC;qBACK;oBACH,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI;gBAClC;gBAEA,aAAa,CAAC,QAAQ,CAAC;YACzB;iBAAO;AACL,gBAAA,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE;gBACrC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;YACnC;QACF;IACF;AAEQ,IAAA,mBAAmB,CAAC,UAAuB,EAAE,IAAY,EAAE,EAAU,EAAA;QAC3E,IAAI,GAAG,GAAG,IAAI;QACd,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;AAEpC,QAAA,SAAS,KAAK,GAAA;AACZ,YAAA,IAAI,GAAG,IAAI,EAAE,EAAE;gBACb,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI;gBAChC,aAAa,CAAC,QAAQ,CAAC;YACzB;iBAAO;AACL,gBAAA,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE;gBACrC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;YACnC;QACF;IACF;8GA7EW,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXlB;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,CAAA;;2FAQU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,QAAA,EAChB;;;AAGT,EAAA,CAAA,EAAA,OAAA,EAMQ,EAAE,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;MCMA,0BAA0B,CAAA;8GAA1B,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,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAf3B;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,CAAA,CAAA;;2FAYU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjBtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,QAAA,EAC3B;;;AAGT,EAAA,CAAA,EAAA,OAAA,EAUQ,EAAE,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA;;;MCHA,iCAAiC,CAAA;8GAAjC,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,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAVhC;;AAEX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA;;2FAQU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAZ7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,EAAA,QAAA,EACnC;;AAEX,EAAA,CAAA,EAAA,OAAA,EAMQ,EAAE,EAAA,MAAA,EAAA,CAAA,0BAAA,CAAA,EAAA;;;MCLA,iCAAiC,CAAA;8GAAjC,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,QAAA,EAAA,IAAA,EAAA,iCAAiC,6FAHhC,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAG5B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,QAAQ,EAAE,CAAA,yBAAA,CAA2B;AACrC,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;MCgBY,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlB5B;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA,CAAA,CAAA;;2FAeU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBApBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,QAAA,EAC5B;;;AAGT,EAAA,CAAA,EAAA,OAAA,EAaQ,EAAE,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA;;;MCcA,mCAAmC,CAAA;8GAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9BpC,CAAA;;;;;AAKiB,4BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+MAAA,CAAA,EAAA,CAAA,CAAA;;2FAyBhB,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAhC/C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qCAAqC,EAAA,QAAA,EACrC,CAAA;;;;;AAKiB,4BAAA,CAAA,EAAA,OAAA,EAsBlB,EAAE,EAAA,MAAA,EAAA,CAAA,+MAAA,CAAA,EAAA;;;MChBA,kCAAkC,CAAA;8GAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,8FAXnC,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,CAAA,CAAA;;2FAW1B,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAb9C,SAAS;+BACE,oCAAoC,EAAA,QAAA,EACpC,CAAA,yBAAA,CAA2B,EAAA,OAAA,EAS5B,EAAE,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA;;;ACDJ,MAAM,qBAAqB,GAA+B;IAC/D,OAAO,CAAC,oBAAoB,EAAE;AAC5B,QAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;AACtB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAC,CAAC;AACH,QAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;AACpB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAC,CAAC;AACH,QAAA,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;KACvE,CAAC;IACF,OAAO,CAAC,kBAAkB,EAAE;QAC1B,UAAU,CAAC,QAAQ,EAAE;AAEnB,YAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAExD,YAAA,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAC5B;AACE,gBAAA,OAAO,CAAC,sCAAsC,EAC5C,SAAS,CACP;oBACE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC;oBAClD,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAC,CAAC;AAChD,iBAAA,CACF;AAEJ,aAAA,CACF,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;YAEpB,KAAK,CAAC,QAAQ,EACZ,OAAO,CAAC,sCAAsC,EAC5C,SAAS,CAAC;AACR,gBAAA,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;AACnB,gBAAA,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;AACpB,aAAA,CAAC,CACH,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;SAGtB;KACF;CACF;;MCgCU,qBAAqB,CAAA;AAgBjC,IAAA,WAAA,GAAA;AATU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAiB;AAElD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAe;QAExD,IAAA,CAAA,WAAW,GAAY,KAAK;QAC5B,IAAA,CAAA,aAAa,GAAW,EAAE;QAC1B,IAAA,CAAA,iBAAiB,GAAW,EAAE;QAC9B,IAAA,CAAA,sBAAsB,GAAY,IAAI;IAEtB;IAEhB,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;QAClC,IAAI,CAAC,YAAY,EAAE;IACpB;IAEA,YAAY,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC;AAClE,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;QACpC;aACK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC;AACtE,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;QACpC;IACD;IAEA,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,YAAA,QAAQ,CAAC,cAAc,CAAC,qCAAqC,CAAE,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC;AAC7G,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrE;aACK;AACJ,YAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU;AACnC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;AAClC,YAAA,QAAQ,CAAC,cAAc,CAAC,qCAAqC,CAAE,CAAC,SAAS,CAAC,MAAM,CAAC,8BAA8B,CAAC;AAChH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACtE;IACD;AAEA,IAAA,cAAc,CAAC,MAAqB,EAAA;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE;IACvB;8GArDY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BR,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,khBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAwCC,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,0EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,aAAa,iIAJJ,qBAAqB,EAAA,CAAA,CAAA;;2FAOrB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1EjC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,QAAA,EACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BR,EAAA,CAAA,EAAA,UAAA,EAsCU,qBAAqB,EAAA,OAAA,EACxB;wBACN,eAAe;wBACf,aAAa;wBACb;AACH,qBAAA,EAAA,MAAA,EAAA,CAAA,khBAAA,CAAA,EAAA;;sBAGC;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;;AC5FF;;AAEG;;ACFH;;AAEG;;;;"}