{"version":3,"file":"ui-vts-kit-ng-vts-input-number.mjs","sources":["../../components/input-number/input-number.component.ts","../../components/input-number/input-number.module.ts","../../components/input-number/public-api.ts","../../components/input-number/ui-vts-kit-ng-vts-input-number.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ENTER, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n  BooleanInput,\n  VtsSizeXLMSType,\n  OnChangeType,\n  OnTouchedType\n} from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, isNotNil } from '@ui-vts-kit/ng-vts/core/util';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'vts-input-number',\n  exportAs: 'vtsInputNumber',\n  template: `\n    <div class=\"vts-input-number-handler-wrap\">\n      <span\n        unselectable=\"unselectable\"\n        class=\"vts-input-number-handler vts-input-number-handler-up\"\n        (mousedown)=\"up($event)\"\n        (mouseup)=\"stop()\"\n        (mouseleave)=\"stop()\"\n        [class.vts-input-number-handler-up-disabled]=\"disabledUp\"\n      >\n        <i vts-icon vtsType=\"ArrowUpOutline\" class=\"vts-input-number-handler-up-inner\"></i>\n      </span>\n      <span\n        unselectable=\"unselectable\"\n        class=\"vts-input-number-handler vts-input-number-handler-down\"\n        (mousedown)=\"down($event)\"\n        (mouseup)=\"stop()\"\n        (mouseleave)=\"stop()\"\n        [class.vts-input-number-handler-down-disabled]=\"disabledDown\"\n      >\n        <i vts-icon vtsType=\"ArrowDownOutline\" class=\"vts-input-number-handler-down-inner\"></i>\n      </span>\n    </div>\n    <div class=\"vts-input-number-input-wrap\">\n      <input\n        #inputElement\n        autocomplete=\"off\"\n        class=\"vts-input-number-input\"\n        [attr.id]=\"vtsId\"\n        [attr.autofocus]=\"vtsAutoFocus ? 'autofocus' : null\"\n        [disabled]=\"vtsDisabled\"\n        [attr.min]=\"vtsMin\"\n        [attr.max]=\"vtsMax\"\n        [placeholder]=\"vtsPlaceHolder\"\n        [attr.step]=\"vtsStep\"\n        [attr.inputmode]=\"vtsInputMode\"\n        (keydown)=\"onKeyDown($event)\"\n        (keyup)=\"stop()\"\n        [ngModel]=\"displayValue\"\n        (ngModelChange)=\"onModelChange($event)\"\n      />\n    </div>\n  `,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VtsInputNumberComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '[class.vts-input-number-focused]': 'isFocused',\n    '[class.vts-input-number-lg]': `vtsSize === 'lg'`,\n    '[class.vts-input-number-sm]': `vtsSize === 'sm'`,\n    '[class.vts-input-number-disabled]': 'vtsDisabled',\n    '[class.vts-input-number-rtl]': `dir === 'rtl'`\n  }\n})\nexport class VtsInputNumberComponent\n  implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit, OnDestroy\n{\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsAutoFocus: BooleanInput;\n\n  private autoStepTimer?: number | ReturnType<typeof setTimeout>;\n  private parsedValue?: string | number;\n  private value?: number;\n  private destroy$ = new Subject<void>();\n  displayValue?: string | number;\n  isFocused = false;\n  disabledUp = false;\n  disabledDown = false;\n  dir: Direction = 'ltr';\n  onChange: OnChangeType = () => {};\n  onTouched: OnTouchedType = () => {};\n  @Output() readonly vtsBlur = new EventEmitter();\n  @Output() readonly vtsFocus = new EventEmitter();\n  @ViewChild('inputElement', { static: true })\n  inputElement!: ElementRef<HTMLInputElement>;\n  @Input() vtsSize: VtsSizeXLMSType = 'md';\n  @Input() vtsMin: number = -Infinity;\n  @Input() vtsMax: number = Infinity;\n  @Input() vtsParser = (value: string) =>\n    value\n      .trim()\n      .replace(/。/g, '.')\n      .replace(/[^\\w\\.-]+/g, '');\n  @Input() vtsPrecision?: number;\n  @Input() vtsPrecisionMode:\n    | 'cut'\n    | 'toFixed'\n    | ((value: number | string, precision?: number) => number) = 'toFixed';\n  @Input() vtsPlaceHolder = '';\n  @Input() vtsStep = 1;\n  @Input() vtsInputMode: string = 'decimal';\n  @Input() vtsId: string | null = null;\n  @Input() @InputBoolean() vtsDisabled = false;\n  @Input() @InputBoolean() vtsAutoFocus = false;\n  @Input() vtsFormatter: (value: number) => string | number = value => value;\n\n  onModelChange(value: string): void {\n    this.parsedValue = this.vtsParser(value);\n    this.inputElement.nativeElement.value = `${this.parsedValue}`;\n    const validValue = this.getCurrentValidValue(this.parsedValue);\n    this.setValue(validValue);\n  }\n\n  getCurrentValidValue(value: string | number): number {\n    let val = value;\n    if (val === '') {\n      val = '';\n    } else if (!this.isNotCompleteNumber(val)) {\n      val = `${this.getValidValue(val)}`;\n    } else {\n      val = this.value!;\n    }\n    return this.toNumber(val);\n  }\n\n  // '1.' '1x' 'xx' '' => are not complete numbers\n  isNotCompleteNumber(num: string | number): boolean {\n    return (\n      isNaN(num as number) ||\n      num === '' ||\n      num === null ||\n      !!(num && num.toString().indexOf('.') === num.toString().length - 1)\n    );\n  }\n\n  getValidValue(value?: string | number): string | number | undefined {\n    let val = parseFloat(value as string);\n    // https://github.com/ant-design-git/ant-design-git/issues/7358\n    if (isNaN(val)) {\n      return value;\n    }\n    if (val < this.vtsMin) {\n      val = this.vtsMin;\n    }\n    if (val > this.vtsMax) {\n      val = this.vtsMax;\n    }\n    return val;\n  }\n\n  toNumber(num: string | number): number {\n    if (this.isNotCompleteNumber(num)) {\n      return num as number;\n    }\n    const numStr = String(num);\n    if (numStr.indexOf('.') >= 0 && isNotNil(this.vtsPrecision)) {\n      if (typeof this.vtsPrecisionMode === 'function') {\n        return this.vtsPrecisionMode(num, this.vtsPrecision);\n      } else if (this.vtsPrecisionMode === 'cut') {\n        const numSplit = numStr.split('.');\n        numSplit[1] = numSplit[1].slice(0, this.vtsPrecision);\n        return Number(numSplit.join('.'));\n      }\n      return Number(Number(num).toFixed(this.vtsPrecision));\n    }\n    return Number(num);\n  }\n\n  getRatio(e: KeyboardEvent): number {\n    let ratio = 1;\n    if (e.metaKey || e.ctrlKey) {\n      ratio = 0.1;\n    } else if (e.shiftKey) {\n      ratio = 10;\n    }\n    return ratio;\n  }\n\n  down(e: MouseEvent | KeyboardEvent, ratio?: number): void {\n    if (!this.isFocused) {\n      this.focus();\n    }\n    this.step('down', e, ratio);\n  }\n\n  up(e: MouseEvent | KeyboardEvent, ratio?: number): void {\n    if (!this.isFocused) {\n      this.focus();\n    }\n    this.step('up', e, ratio);\n  }\n\n  getPrecision(value: number): number {\n    const valueString = value.toString();\n    if (valueString.indexOf('e-') >= 0) {\n      return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n    }\n    let precision = 0;\n    if (valueString.indexOf('.') >= 0) {\n      precision = valueString.length - valueString.indexOf('.') - 1;\n    }\n    return precision;\n  }\n\n  // step={1.0} value={1.51}\n  // press +\n  // then value should be 2.51, rather than 2.5\n  // if this.props.precision is undefined\n  // https://github.com/react-component/input-number/issues/39\n  getMaxPrecision(currentValue: string | number, ratio: number): number {\n    if (isNotNil(this.vtsPrecision)) {\n      return this.vtsPrecision;\n    }\n    const ratioPrecision = this.getPrecision(ratio);\n    const stepPrecision = this.getPrecision(this.vtsStep);\n    const currentValuePrecision = this.getPrecision(currentValue as number);\n    if (!currentValue) {\n      return ratioPrecision + stepPrecision;\n    }\n    return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n  }\n\n  getPrecisionFactor(currentValue: string | number, ratio: number): number {\n    const precision = this.getMaxPrecision(currentValue, ratio);\n    return Math.pow(10, precision);\n  }\n\n  upStep(val: string | number, rat: number): number {\n    const precisionFactor = this.getPrecisionFactor(val, rat);\n    const precision = Math.abs(this.getMaxPrecision(val, rat));\n    let result;\n    if (typeof val === 'number') {\n      result = (\n        (precisionFactor * val + precisionFactor * this.vtsStep * rat) /\n        precisionFactor\n      ).toFixed(precision);\n    } else {\n      result = this.vtsMin === -Infinity ? this.vtsStep : this.vtsMin;\n    }\n    return this.toNumber(result);\n  }\n\n  downStep(val: string | number, rat: number): number {\n    const precisionFactor = this.getPrecisionFactor(val, rat);\n    const precision = Math.abs(this.getMaxPrecision(val, rat));\n    let result;\n    if (typeof val === 'number') {\n      result = (\n        (precisionFactor * val - precisionFactor * this.vtsStep * rat) /\n        precisionFactor\n      ).toFixed(precision);\n    } else {\n      result = this.vtsMin === -Infinity ? -this.vtsStep : this.vtsMin;\n    }\n    return this.toNumber(result);\n  }\n\n  step<T extends keyof VtsInputNumberComponent>(\n    type: T,\n    e: MouseEvent | KeyboardEvent,\n    ratio: number = 1\n  ): void {\n    this.stop();\n    e.preventDefault();\n    if (this.vtsDisabled) {\n      return;\n    }\n    const value = this.getCurrentValidValue(this.parsedValue!) || 0;\n    let val = 0;\n    if (type === 'up') {\n      val = this.upStep(value, ratio);\n    } else if (type === 'down') {\n      val = this.downStep(value, ratio);\n    }\n    const outOfRange = val > this.vtsMax || val < this.vtsMin;\n    if (val > this.vtsMax) {\n      val = this.vtsMax;\n    } else if (val < this.vtsMin) {\n      val = this.vtsMin;\n    }\n    this.setValue(val);\n    this.updateDisplayValue(val);\n    this.isFocused = true;\n    if (outOfRange) {\n      return;\n    }\n    this.autoStepTimer = setTimeout(() => {\n      (this[type] as (e: MouseEvent | KeyboardEvent, ratio: number) => void)(e, ratio);\n    }, 300);\n  }\n\n  stop(): void {\n    if (this.autoStepTimer) {\n      clearTimeout(this.autoStepTimer);\n    }\n  }\n\n  setValue(value: number): void {\n    if (`${this.value}` !== `${value}`) {\n      this.onChange(value);\n    }\n    this.value = value;\n    this.parsedValue = value;\n    this.disabledUp = this.disabledDown = false;\n    if (value || value === 0) {\n      const val = Number(value);\n      if (val >= this.vtsMax) {\n        this.disabledUp = true;\n      }\n      if (val <= this.vtsMin) {\n        this.disabledDown = true;\n      }\n    }\n  }\n\n  updateDisplayValue(value: number): void {\n    const displayValue = isNotNil(this.vtsFormatter(value)) ? this.vtsFormatter(value) : '';\n    this.displayValue = displayValue;\n    this.inputElement.nativeElement.value = `${displayValue}`;\n  }\n\n  onKeyDown(e: KeyboardEvent): void {\n    if (e.keyCode === UP_ARROW) {\n      const ratio = this.getRatio(e);\n      this.up(e, ratio);\n      this.stop();\n    } else if (e.keyCode === DOWN_ARROW) {\n      const ratio = this.getRatio(e);\n      this.down(e, ratio);\n      this.stop();\n    } else if (e.keyCode === ENTER) {\n      this.updateDisplayValue(this.value!);\n    }\n  }\n\n  writeValue(value: number): void {\n    this.value = value;\n    this.setValue(value);\n    this.updateDisplayValue(value);\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(disabled: boolean): void {\n    this.vtsDisabled = disabled;\n    this.cdr.markForCheck();\n  }\n\n  focus(): void {\n    this.focusMonitor.focusVia(this.inputElement, 'keyboard');\n  }\n\n  blur(): void {\n    this.inputElement.nativeElement.blur();\n  }\n\n  constructor(\n    private elementRef: ElementRef,\n    private cdr: ChangeDetectorRef,\n    private focusMonitor: FocusMonitor,\n    @Optional() private directionality: Directionality\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-input-number');\n  }\n\n  ngOnInit(): void {\n    this.focusMonitor.monitor(this.elementRef, true).subscribe(focusOrigin => {\n      if (!focusOrigin) {\n        this.isFocused = false;\n        this.updateDisplayValue(this.value!);\n        this.vtsBlur.emit();\n        Promise.resolve().then(() => this.onTouched());\n      } else {\n        this.isFocused = true;\n        this.vtsFocus.emit();\n      }\n    });\n\n    this.dir = this.directionality.value;\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.vtsFormatter && !changes.vtsFormatter.isFirstChange()) {\n      const validValue = this.getCurrentValidValue(this.parsedValue!);\n      this.setValue(validValue);\n      this.updateDisplayValue(validValue);\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (this.vtsAutoFocus) {\n      this.focus();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.focusMonitor.stopMonitoring(this.elementRef);\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\n\nimport { VtsInputNumberComponent } from './input-number.component';\n\n@NgModule({\n  imports: [BidiModule, CommonModule, FormsModule, VtsIconModule],\n  declarations: [VtsInputNumberComponent],\n  exports: [VtsInputNumberComponent]\n})\nexport class VtsInputNumberModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './input-number.component';\nexport * from './input-number.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;MAoGa,uBAAuB,CAAA;AA0ClC,IAAA,aAAa,CAAC,KAAa,EAAA;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,CAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC3B;AAED,IAAA,oBAAoB,CAAC,KAAsB,EAAA;QACzC,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,GAAG,KAAK,EAAE,EAAE;YACd,GAAG,GAAG,EAAE,CAAC;AACV,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE;YACzC,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,GAAG,IAAI,CAAC,KAAM,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC3B;;AAGD,IAAA,mBAAmB,CAAC,GAAoB,EAAA;AACtC,QAAA,QACE,KAAK,CAAC,GAAa,CAAC;AACpB,YAAA,GAAG,KAAK,EAAE;AACV,YAAA,GAAG,KAAK,IAAI;YACZ,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EACpE;KACH;AAED,IAAA,aAAa,CAAC,KAAuB,EAAA;AACnC,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,KAAe,CAAC,CAAC;;AAEtC,QAAA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AACd,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAED,IAAA,QAAQ,CAAC,GAAoB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,GAAa,CAAC;AACtB,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3D,YAAA,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;gBAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACtD,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;gBAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,gBAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,aAAA;AACD,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACvD,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACpB;AAED,IAAA,QAAQ,CAAC,CAAgB,EAAA;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;YAC1B,KAAK,GAAG,GAAG,CAAC;AACb,SAAA;aAAM,IAAI,CAAC,CAAC,QAAQ,EAAE;YACrB,KAAK,GAAG,EAAE,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,CAA6B,EAAE,KAAc,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KAC7B;IAED,EAAE,CAAC,CAA6B,EAAE,KAAc,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KAC3B;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,SAAA;QACD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACjC,YAAA,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/D,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;;;;;;IAOD,eAAe,CAAC,YAA6B,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC,YAAY,CAAC;AAC1B,SAAA;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAsB,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,cAAc,GAAG,aAAa,CAAC;AACvC,SAAA;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC;KACxE;IAED,kBAAkB,CAAC,YAA6B,EAAE,KAAa,EAAA;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KAChC;IAED,MAAM,CAAC,GAAoB,EAAE,GAAW,EAAA;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,MAAM,GAAG,CACP,CAAC,eAAe,GAAG,GAAG,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG;AAC7D,gBAAA,eAAe,EACf,OAAO,CAAC,SAAS,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AACjE,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,QAAQ,CAAC,GAAoB,EAAE,GAAW,EAAA;QACxC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,MAAM,GAAG,CACP,CAAC,eAAe,GAAG,GAAG,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG;AAC7D,gBAAA,eAAe,EACf,OAAO,CAAC,SAAS,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA;YACL,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AAClE,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;AAED,IAAA,IAAI,CACF,IAAO,EACP,CAA6B,EAC7B,QAAgB,CAAC,EAAA;QAEjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjC,SAAA;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1D,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnB,SAAA;AAAM,aAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,UAAU,EAAE;YACd,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YAClC,IAAI,CAAC,IAAI,CAA4D,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAClF,EAAE,GAAG,CAAC,CAAC;KACT;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAA,EAAG,KAAK,CAAA,CAAE,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACxB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACxF,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,CAAA,EAAG,YAAY,CAAA,CAAE,CAAC;KAC3D;AAED,IAAA,SAAS,CAAC,CAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;AACtC,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,EAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,KAAK,GAAA;QACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KAC3D;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KACxC;AAED,IAAA,WAAA,CACU,UAAsB,EACtB,GAAsB,EACtB,YAA0B,EACd,cAA8B,EAAA;QAH1C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAtS5C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEvC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAiB,MAAK,GAAG,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAkB,MAAK,GAAG,CAAC;AACjB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAGxC,IAAO,CAAA,OAAA,GAAoB,IAAI,CAAC;QAChC,IAAM,CAAA,MAAA,GAAW,CAAC,QAAQ,CAAC;QAC3B,IAAM,CAAA,MAAA,GAAW,QAAQ,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAa,KACjC,KAAK;AACF,aAAA,IAAI,EAAE;AACN,aAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAClB,aAAA,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEtB,IAAgB,CAAA,gBAAA,GAGsC,SAAS,CAAC;QAChE,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACpB,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAY,CAAA,YAAA,GAAW,SAAS,CAAC;QACjC,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QACZ,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,YAAY,GAAuC,KAAK,IAAI,KAAK,CAAC;;QA0QzE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;KACjE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,IAAG;YACvE,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAChD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAoB,KAAI;AAC5F,YAAA,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACrC,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA1VU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAjBvB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,WAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,aAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAjDS,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAwDwB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAAqB,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACpB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAAsB,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FAvCnC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA/DnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CT,EAAA,CAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,kCAAkC,EAAE,WAAW;AAC/C,wBAAA,6BAA6B,EAAE,CAAkB,gBAAA,CAAA;AACjD,wBAAA,6BAA6B,EAAE,CAAkB,gBAAA,CAAA;AACjD,wBAAA,mCAAmC,EAAE,aAAa;AAClD,wBAAA,8BAA8B,EAAE,CAAe,aAAA,CAAA;AAChD,qBAAA;AACF,iBAAA,CAAA;;0BAgTI,QAAQ;4CA9RQ,OAAO,EAAA,CAAA;sBAAzB,MAAM;gBACY,QAAQ,EAAA,CAAA;sBAA1B,MAAM;gBAEP,YAAY,EAAA,CAAA;sBADX,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAElC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACmB,YAAY,EAAA,CAAA;sBAApC,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AC5IR;;;AAGG;MAgBU,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAApB,oBAAoB,EAAA,YAAA,EAAA,CAHhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAD5B,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAEpD,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,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,oBAAoB,YAJrB,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAInD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;oBAC/D,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;AClBD;;;AAGG;;ACHH;;AAEG;;;;"}