UNPKG

@c-standard/angular-devui-extension

Version:

an extensional components lib for devui

1 lines 33.4 kB
{"version":3,"file":"c-standard-angular-devui-extension-form.mjs","sources":["../../../projects/components/form/form-field.ts","../../../projects/components/form/form-plus-item.component.ts","../../../projects/components/form/form-plus-item.component.html","../../../projects/components/form/form-group.component.ts","../../../projects/components/form/form-plus.component.ts","../../../projects/components/form/form-plus.component.html","../../../projects/components/form/form-plus.module.ts","../../../projects/components/form/c-standard-angular-devui-extension-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport abstract class FormField {\r\n abstract field: string;\r\n abstract control: AbstractControl;\r\n}\r\n","import { Component, ContentChildren, forwardRef, Input, OnInit, QueryList, TemplateRef, ViewEncapsulation, } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { DValidateRules } from 'ng-devui';\r\nimport { DFormItemType } from './form';\r\nimport { FormField } from './form-field';\r\nimport { TemplateDirective } from '@c-standard/angular-devui-extension/template'\r\n\r\n@Component({\r\n selector: 'd-form-plus-item',\r\n templateUrl: './form-plus-item.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n // todo 使用ChangeDetectionStrategy.OnPush做组件变更检查,\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: FormField,\r\n useExisting: forwardRef(() => FormPlusItemComponent),\r\n },\r\n ],\r\n})\r\nexport class FormPlusItemComponent extends FormField implements OnInit {\r\n @Input() showLabel?: boolean = true;\r\n @Input() label?: string;\r\n @Input() field!: string;\r\n @Input() dataType?: DFormItemType;\r\n @Input() helpText: string = '';\r\n @Input() option: { [p: string]: any } = {};\r\n @Input() required: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() template?: string;\r\n @Input() validateRules: DValidateRules = [];\r\n // field 单个值改变的情况\r\n\r\n control: FormControl;\r\n disableAll: boolean = false;\r\n showContent: boolean = false;\r\n\r\n @ContentChildren(TemplateDirective) itemDefinitions!: QueryList<TemplateDirective>;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n // default value\r\n this.control = fb.control('');\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n }\r\n\r\n /**\r\n * todo 父子组件或者树型结构组件存在组件循环导入的问题\r\n * 1. 使用中间服务来提供数据的共享(推荐) 使用@self注入装饰器\r\n * 2. 创建注射器token来实现父组件的注入\r\n */\r\n public get templates(): { [key: string]: TemplateRef<any> } {\r\n if (this.itemDefinitions != null) {\r\n const itemTemplates: { [key: string]: TemplateRef<any> } = {};\r\n for (const definition of this.itemDefinitions.toArray()) {\r\n itemTemplates[definition.template] = definition.templateRef;\r\n }\r\n return itemTemplates;\r\n } else {\r\n return {};\r\n }\r\n }\r\n}\r\n","<d-form-item [dHasFeedback]=\"false\">\r\n <d-form-label\r\n *ngIf=\"showLabel\"\r\n [hasHelp]=\"!!helpText\"\r\n [helpTips]=\"helpText\"\r\n [required]=\"required\"\r\n >\r\n {{ label }}\r\n </d-form-label>\r\n <d-form-control style=\"margin-left: 0\">\r\n <ng-container *ngIf=\"!showContent\">\r\n <ng-container\r\n *ngIf=\"template; else itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: {\r\n control: control,\r\n disabled: disabled,\r\n option: option\r\n }\r\n }\"\r\n [ngTemplateOutlet]=\"templates[template || ''] || defaultItemTemplate\"\r\n >\r\n </ng-container>\r\n <ng-template #defaultItemTemplate> tmpl:{{ option['value'] }} </ng-template>\r\n <ng-template #itemTemplate>\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <input\r\n *ngSwitchDefault\r\n dTextInput\r\n [formControl]=\"control\"\r\n [name]=\"field\"\r\n [dValidateRules]=\"validateRules\"\r\n [placeholder]=\"option['placeholder']\"\r\n [disabled]=\"!!option['disabled'] || disableAll\"\r\n />\r\n <textarea\r\n *ngSwitchCase=\"'text'\"\r\n dTextarea\r\n [formControl]=\"control\"\r\n [dValidateRules]=\"validateRules\"\r\n [placeholder]=\"option['placeholder'] || ''\"\r\n ></textarea>\r\n <d-input-number\r\n *ngSwitchCase=\"'number'\"\r\n [style.min-width]=\"'120px'\"\r\n [formControl]=\"control\"\r\n [dValidateRules]=\"validateRules\"\r\n [allowEmpty]=\"option['allowEmpty']\"\r\n [decimalLimit]=\"option['decimalLimit']\"\r\n [maxLength]=\"option['maxLength']\"\r\n [placeholder]=\"option['placeholder']\"\r\n [step]=\"option['step']\"\r\n ></d-input-number>\r\n <d-toggle\r\n *ngSwitchCase=\"'boolean'\"\r\n [formControl]=\"control\"\r\n [dValidateRules]=\"validateRules\"\r\n ></d-toggle>\r\n <d-radio-plus-group\r\n *ngSwitchCase=\"'enum'\"\r\n [name]=\"field\"\r\n [control]=\"control\"\r\n [dataSource]=\"option['dataSource']\"\r\n >\r\n </d-radio-plus-group>\r\n <d-select-box\r\n *ngSwitchCase=\"'items'\"\r\n [allowClear]=\"option['allowClear']\"\r\n [dataSource]=\"option['dataSource']\"\r\n [displayExpr]=\"option['displayExpr']\"\r\n [multiple]=\"option['multiple']\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"option['placeholder']\"\r\n [valueExpr]=\"option['valueExpr']\"\r\n >\r\n </d-select-box>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </d-form-control>\r\n</d-form-item>\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { forEach, isEmpty, mergeWith } from 'lodash-es';\r\nimport { FormField } from './form-field';\r\n\r\n@Component({\r\n selector: 'd-form-plugin-group',\r\n template: ` <ng-content></ng-content> `,\r\n providers: [\r\n {\r\n provide: FormField,\r\n useExisting: forwardRef(() => FormGroupComponent),\r\n },\r\n ],\r\n})\r\nexport class FormGroupComponent extends FormField implements AfterContentInit {\r\n private _data?: any;\r\n @Input()\r\n set data(value: any) {\r\n this._data = value;\r\n if (this._data) {\r\n this.control.patchValue(this._data);\r\n }\r\n }\r\n\r\n @Input() field!: string;\r\n @Output() groupDataChange: EventEmitter<any> = new EventEmitter<any>();\r\n @ContentChildren(FormField) fields!: QueryList<FormField>;\r\n control: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n this.control = fb.group({});\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.addFormControls(this.fields);\r\n this.fields?.changes.subscribe((f) => {\r\n this.addFormControls(f);\r\n });\r\n this.control.valueChanges.subscribe((value) => {\r\n this.groupDataChange.emit(value);\r\n });\r\n }\r\n\r\n private addFormControls(fields?: QueryList<FormField>) {\r\n if (!fields) return;\r\n // dynamic add、set or remove control\r\n const changedNames: string[] = [];\r\n forEach(fields.toArray(), (t) => {\r\n if (this.control.contains(t.field)) {\r\n this.control.setControl(t.field, t.control);\r\n } else {\r\n this.control.addControl(t.field, t.control);\r\n }\r\n changedNames.push(t.field);\r\n });\r\n // Note 表单field发生改变时,移除对应的control以保证校验通过\r\n const controlNames = Object.keys(this.control.controls);\r\n controlNames.forEach((name) => {\r\n if (!changedNames.find((t) => t == name)) {\r\n this.control.removeControl(name);\r\n }\r\n });\r\n // Note: 当表单field改变时,其对应的默认值再次填充\r\n this.control.patchValue(\r\n mergeWith(this.control.value, this._data, (o, s) => (isEmpty(o) ? s : o))\r\n );\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { forEach, isEmpty, isNull, isObject, mergeWith } from 'lodash-es';\r\nimport { DFormGroupRuleDirective, DValidateRules, FormDirective, FormLayout } from 'ng-devui/form';\r\nimport { FormField } from './form-field';\r\nimport { DFormItem, DFormLayout, DFormValidator } from './form';\r\nimport { AbstractControlDirective, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { TemplateDirective } from '@c-standard/angular-devui-extension/template'\r\n\r\n@Component({\r\n selector: 'd-form-plus',\r\n templateUrl: './form-plus.component.html',\r\n // encapsulation: ViewEncapsulation.None,\r\n styles: [\r\n `\r\n form {\r\n padding: 0 1rem;\r\n overflow: auto;\r\n max-height: 60vh;\r\n }\r\n `,\r\n ],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormPlusComponent implements OnInit, AfterContentInit {\r\n private _data: any;\r\n\r\n @Input()\r\n set data(value: any) {\r\n this._data = value;\r\n if (this._data) {\r\n this.formGroup.patchValue(this._data);\r\n }\r\n }\r\n\r\n private _layout?: DFormLayout;\r\n get layout(): DFormLayout {\r\n return (this._layout = 'horizontal');\r\n }\r\n\r\n @Input()\r\n set layout(value: DFormLayout) {\r\n this._layout = value;\r\n if (this._layout) {\r\n this._layout == 'vertical'\r\n ? (this.layoutDirection = FormLayout.Vertical)\r\n : (this.layoutDirection = FormLayout.Horizontal);\r\n }\r\n }\r\n\r\n @Input() items?: DFormItem[];\r\n @Input() loading: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() validateRules!: DValidateRules;\r\n @Input() height?: string;\r\n @Input() maxHeight?: string;\r\n @Output() initialized: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() fieldDataChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() formSubmit: EventEmitter<DFormValidator> = new EventEmitter<DFormValidator>();\r\n\r\n @ViewChild(FormDirective) devuiForm?: FormDirective;\r\n @ContentChildren(TemplateDirective) itemDefinitions!: QueryList<TemplateDirective>;\r\n @ContentChildren(FormField) fields?: QueryList<FormField>;\r\n\r\n formGroup: FormGroup;\r\n layoutDirection: FormLayout = FormLayout.Horizontal;\r\n\r\n constructor(private fb: FormBuilder, private ref: ElementRef, private _cdr: ChangeDetectorRef) {\r\n this.formGroup = this.fb.group({});\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initialized.emit({\r\n element: this.ref.nativeElement,\r\n component: this,\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.addFormControls(this.fields);\r\n this.fields?.changes.subscribe((f) => {\r\n this.addFormControls(f);\r\n });\r\n // this.formGroup.patchValue(this._data);\r\n this.formGroup.valueChanges.subscribe((value) => {\r\n this.fieldDataChanged.emit(value);\r\n });\r\n }\r\n\r\n private addFormControls(fields?: QueryList<FormField>) {\r\n if (!fields) return;\r\n // dynamic add、set or remove control\r\n const changedNames: string[] = [];\r\n forEach(fields.toArray(), (t) => {\r\n if (this.formGroup.contains(t.field)) {\r\n this.formGroup.setControl(t.field, t.control);\r\n } else {\r\n this.formGroup.addControl(t.field, t.control);\r\n }\r\n changedNames.push(t.field);\r\n });\r\n // Note 表单field发生改变时,移除对应的control以保证校验通过\r\n const controlNames = Object.keys(this.formGroup.controls);\r\n controlNames.forEach((name) => {\r\n if (!changedNames.find((t) => t == name)) {\r\n this.formGroup.removeControl(name);\r\n }\r\n });\r\n // Note: 当表单field改变时,其对应的默认值再次填充\r\n this.formGroup.patchValue(\r\n mergeWith(this.formGroup.value, this._data, (o, s) => (isEmpty(o) ? s : o))\r\n );\r\n }\r\n\r\n public get templates(): { [key: string]: TemplateRef<any> } {\r\n if (this.itemDefinitions != null) {\r\n const itemTemplates: { [key: string]: TemplateRef<any> } = {};\r\n for (const definition of this.itemDefinitions.toArray()) {\r\n itemTemplates[definition.template] = definition.templateRef;\r\n }\r\n return itemTemplates;\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n setValue(value: any) {\r\n if (isObject(value) && !isNull(value)) {\r\n this.formGroup.patchValue(value);\r\n }\r\n }\r\n\r\n submit(e: { valid: boolean; directive: DFormGroupRuleDirective | AbstractControlDirective }) {\r\n this.formSubmit.emit({\r\n valid: e.valid,\r\n });\r\n }\r\n\r\n check() {\r\n this.devuiForm?.updateOnSubmit();\r\n }\r\n\r\n get valid() {\r\n this.check();\r\n return this.formGroup.valid;\r\n }\r\n\r\n get value() {\r\n return {\r\n ...this._data,\r\n ...this.formGroup.value,\r\n };\r\n }\r\n}\r\n","<form\r\n dForm\r\n ngForm\r\n cdkScrollable\r\n labelAlign=\"start\"\r\n labelSize=\"sm\"\r\n dLoading\r\n [formGroup]=\"formGroup\"\r\n [dValidateRules]=\"validateRules\"\r\n [showLoading]=\"loading\"\r\n [layout]=\"layoutDirection\"\r\n [style.height]=\"height\"\r\n [style.max-height]=\"maxHeight\"\r\n (dSubmit)=\"submit($event)\"\r\n>\r\n <d-form-plus-item\r\n *ngFor=\"let item of items\"\r\n [field]=\"item.field\"\r\n [helpText]=\"item.helpText || ''\"\r\n [label]=\"item.label\"\r\n [option]=\"item.options\"\r\n [dataType]=\"item.dataType\"\r\n [required]=\"item.required || false\"\r\n [validateRules]=\"item.validateRules || []\"\r\n [showLabel]=\"item.showLabel || true\"\r\n [template]=\"item.template\"\r\n [disabled]=\"item.disabled\"\r\n >\r\n <ng-container *ngIf=\"item.template\">\r\n <ng-container\r\n [ngTemplateOutletContext]=\"{ $implicit: { item: item } }\"\r\n [ngTemplateOutlet]=\"templates[item.template || ''] || defaultItemTemplate\"\r\n >\r\n </ng-container>\r\n <ng-template #defaultItemTemplate>\r\n <span>formTmpl:{{ item.template }}</span>\r\n </ng-template>\r\n </ng-container>\r\n </d-form-plus-item>\r\n <ng-content></ng-content>\r\n</form>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\r\nimport { FormModule, InputNumberModule, LoadingModule, ToggleModule } from 'ng-devui'\r\nimport { FormGroupComponent } from './form-group.component';\r\nimport { FormPlusItemComponent } from './form-plus-item.component';\r\nimport { FormPlusComponent } from './form-plus.component';\r\nimport { RadioPlusModule } from '@c-standard/angular-devui-extension/radio';\r\nimport { SelectPlusModule } from '@c-standard/angular-devui-extension/select';\r\n\r\n@NgModule({\r\n declarations: [FormPlusComponent, FormPlusItemComponent, FormGroupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n FormModule,\r\n LoadingModule,\r\n ReactiveFormsModule,\r\n CdkScrollableModule,\r\n RadioPlusModule,\r\n SelectPlusModule,\r\n InputNumberModule,\r\n RadioPlusModule,\r\n ToggleModule,\r\n SelectPlusModule,\r\n ],\r\n exports: [FormPlusComponent, FormPlusItemComponent, FormGroupComponent],\r\n})\r\nexport class FormPlusModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.FormPlusItemComponent","i3","i4"],"mappings":";;;;;;;;;;;;;;;;;;MAIsB,SAAS,CAAA;;sGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0GAAT,SAAS,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;ACiBL,MAAO,qBAAsB,SAAQ,SAAS,CAAA;AAmBhD,IAAA,WAAA,CAAoB,EAAe,EAAA;AAC/B,QAAA,KAAK,EAAE,CAAC;QADQ,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAlB1B,IAAS,CAAA,SAAA,GAAa,IAAI,CAAC;QAI3B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAM,CAAA,MAAA,GAAyB,EAAE,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QAI5C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;;QAOzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACjC;IAED,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACzB,SAAA;KACJ;AAED;;;;AAIG;AACH,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,MAAM,aAAa,GAAwC,EAAE,CAAC;YAC9D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE;gBACrD,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AAC/D,aAAA;AACD,YAAA,OAAO,aAAa,CAAC;AACxB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACJ;;kHAhDQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAPnB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACvD,SAAA;KACJ,EAmBgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAiB,oDCrCtC,osHAkFA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,2FAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD9Da,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAG1B,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACvD,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,osHAAA,EAAA,CAAA;kGAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAO8B,eAAe,EAAA,CAAA;sBAAlD,eAAe;uBAAC,iBAAiB,CAAA;;;AEbhC,MAAO,kBAAmB,SAAQ,SAAS,CAAA;AAe7C,IAAA,WAAA,CAAoB,EAAe,EAAA;AAC/B,QAAA,KAAK,EAAE,CAAC;QADQ,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AAJzB,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;QAMnE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC/B;IAhBD,IACI,IAAI,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;KACJ;IAYD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC1C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAA6B,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;;QAEpB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAI;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/C,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/C,aAAA;AACD,YAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;;AAEH,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACpC,aAAA;AACL,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CACnB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5E,CAAC;KACL;;+GArDQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAPhB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACpD,SAAA;KACJ,EAcgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAS,oDApBhB,CAA6B,2BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAQ9B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAA6B,2BAAA,CAAA;AACvC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACpD,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;kGAIO,IAAI,EAAA,CAAA;sBADP,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACqB,MAAM,EAAA,CAAA;sBAAjC,eAAe;uBAAC,SAAS,CAAA;;;MCAjB,iBAAiB,CAAA;AA2C1B,IAAA,WAAA,CAAoB,EAAe,EAAU,GAAe,EAAU,IAAuB,EAAA;QAAzE,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAAU,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QAhBpF,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAIzB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;AACzD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC9D,QAAA,IAAA,CAAA,UAAU,GAAiC,IAAI,YAAY,EAAkB,CAAC;AAOxF,QAAA,IAAA,CAAA,eAAe,GAAe,UAAU,CAAC,UAAU,CAAC;QAGhD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACtC;IA1CD,IACI,IAAI,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;KACJ;AAGD,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,QAAQ,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE;KACxC;IAED,IACI,MAAM,CAAC,KAAkB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,IAAI,UAAU;mBACnB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ;mBAC1C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AACxD,SAAA;KACJ;IAuBD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,YAAA,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa;AAC/B,YAAA,SAAS,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC;KACN;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC5C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAA6B,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;;QAEpB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAI;YAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACjD,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACjD,aAAA;AACD,YAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;;AAEH,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1D,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACtC,aAAA;AACL,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CACrB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9E,CAAC;KACL;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,MAAM,aAAa,GAAwC,EAAE,CAAC;YAC9D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE;gBACrD,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AAC/D,aAAA;AACD,YAAA,OAAO,aAAa,CAAC;AACxB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACJ;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;KACJ;AAED,IAAA,MAAM,CAAC,CAAoF,EAAA;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK;AACjB,SAAA,CAAC,CAAC;KACN;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;KACpC;AAED,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC/B;AAED,IAAA,IAAI,KAAK,GAAA;QACL,OAAO;YACH,GAAG,IAAI,CAAC,KAAK;AACb,YAAA,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;SAC1B,CAAC;KACL;;8GAhIQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,4WAqCT,iBAAiB,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EACjB,SAAS,EAFf,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,aAAa,gDCxE5B,k5CAyCA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oMAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDLa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGf,MAAA,EAAA;AACJ,wBAAA,CAAA;;;;;;AAMC,QAAA,CAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,k5CAAA,EAAA,CAAA;2JAOG,IAAI,EAAA,CAAA;sBADP,KAAK;gBAcF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAUG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEmB,SAAS,EAAA,CAAA;sBAAlC,SAAS;uBAAC,aAAa,CAAA;gBACY,eAAe,EAAA,CAAA;sBAAlD,eAAe;uBAAC,iBAAiB,CAAA;gBACN,MAAM,EAAA,CAAA;sBAAjC,eAAe;uBAAC,SAAS,CAAA;;;ME7CjB,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAjBR,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,aAEvE,YAAY;QACZ,WAAW;QACX,UAAU;QACV,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,YAAY;AACZ,QAAA,gBAAgB,CAEV,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAE7D,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAhBd,OAAA,EAAA,CAAA;YACL,YAAY;YACZ,WAAW;YACX,UAAU;YACV,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,YAAY;YACZ,gBAAgB;AACnB,SAAA,CAAA,EAAA,CAAA,CAAA;2FAGQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;AAC5E,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,UAAU;wBACV,aAAa;wBACb,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,YAAY;wBACZ,gBAAgB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;AAC1E,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}