{"version":3,"sources":["src/app/features/modals/header-filter-modal/header-filter-modal.component.ts","src/app/features/modals/header-filter-modal/header-filter-modal.component.html","node_modules/primeng/fesm2022/primeng-togglebutton.mjs","src/app/shared/toggle/toggle.component.ts","src/app/shared/toggle/toggle.component.html","src/app/shared/header/header.component.ts","src/app/shared/header/header.component.html","src/app/shared/sidebar/sidebar.service.ts","node_modules/@angular/cdk/fesm2022/coercion.mjs","node_modules/@angular/cdk/fesm2022/platform.mjs","node_modules/@angular/cdk/fesm2022/layout.mjs","node_modules/primeng/fesm2022/primeng-sidebar.mjs","src/app/services/auth.service.ts","src/app/shared/sidebar/sidebar.component.ts","src/app/shared/sidebar/sidebar.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { filter, Subscription } from 'rxjs';\nimport { API_END_POINTS } from '../../../constants/constant';\nimport { LineData } from '../../../interfaces/line.interface';\nimport { FactoryData, PlantData } from '../../../interfaces/plant.interface';\nimport { CommonService } from '../../../services/common.service';\nimport { HeaderService } from '../../../services/header.service';\nimport { HttpService } from '../../../services/http.service';\nimport { ButtonComponent } from '../../../shared/button/button.component';\nimport { get } from 'lodash';\nimport { SortByComponent } from '@shared/sort-by/sort-by.component';\n\n@Component({\n selector: 'app-header-filter-modal',\n standalone: true,\n imports: [\n DropdownModule,\n FormsModule,\n ButtonComponent,\n TranslateModule,\n CommonModule,\n ReactiveFormsModule,\n MultiSelectModule,\n SortByComponent,\n ],\n templateUrl: './header-filter-modal.component.html',\n styleUrls: ['./header-filter-modal.component.scss'],\n})\nexport class HeaderFilterModalComponent implements OnInit, OnDestroy {\n lineId: any;\n plantId!: any;\n factoryId: any;\n plantData!: PlantData[];\n cityId!: number;\n selectedLines: any;\n isSubmitted = false;\n locationForm: FormGroup;\n linesData!: LineData[];\n filteredLines!: LineData[];\n factoryData!: FactoryData[];\n lineSubscription?: Subscription;\n factorySubscription?: Subscription;\n plantName: string = 'Neemrana, Rajasthan';\n private subscriptions: Subscription = new Subscription();\n @Input() chartHeading: string = '';\n isDisabled: boolean = false;\n isAllDisabled: boolean = false;\n\n isDailyLineRoute: boolean = false;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private ref: DynamicDialogRef,\n private httpService: HttpService,\n public config: DynamicDialogConfig,\n private headerService: HeaderService,\n private commonService: CommonService\n ) {\n this.locationForm = this.fb.group({\n plant: [null, Validators.required],\n factory: [null],\n line: [null],\n });\n }\n\n ngOnInit(): void {\n this.checkActiveRoute(this.router.url);\n this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((event: any) => {\n this.checkActiveRoute(event.urlAfterRedirects);\n });\n this.commonService.currentChartHeading.subscribe((heading) => {\n this.chartHeading = heading;\n });\n\n this.plantId = localStorage.getItem('plantId');\n\n this.subscriptions.add(\n this.headerService.plantId.subscribe((plantId: string | null) => {\n this.plantId = plantId;\n this.updateSelectedPlant();\n })\n );\n\n this.commonService.currentChartHeading.subscribe((heading) => {\n this.chartHeading = heading;\n if (\n this.chartHeading === 'User Management' ||\n this.chartHeading === 'Alarm Code Definitions' ||\n this.chartHeading === 'Line Management' ||\n this.chartHeading === 'Production Loss Reason' ||\n this.chartHeading === 'Alerts Management'\n ) {\n this.isDisabled = true;\n this.isAllDisabled = false;\n this.headerService.removeLineId();\n this.plantId = localStorage.getItem('plantId');\n if (this.plantId) this.headerService.setPlantId(this.plantId);\n this.factoryId = localStorage.getItem('factoryId');\n if (this.factoryId) this.headerService.setFactoryId(this.factoryId);\n this.lineId = localStorage.getItem('lineId');\n if (this.lineId) this.headerService.setLineId(this.lineId);\n } else if (this.chartHeading === 'Manage Plants') {\n this.plantId = null;\n this.factoryId = null;\n this.lineId = null;\n this.isAllDisabled = true;\n this.isDisabled = false;\n } else {\n this.isAllDisabled = false;\n this.isDisabled = false;\n this.plantId = localStorage.getItem('plantId');\n if (this.plantId) this.headerService.setPlantId(this.plantId);\n this.factoryId = localStorage.getItem('factoryId');\n if (this.factoryId) this.headerService.setFactoryId(this.factoryId);\n this.lineId = localStorage.getItem('lineId');\n if (this.lineId) this.headerService.setLineId(this.lineId);\n }\n this.headerService.fetchSource.next();\n });\n\n this.factoryId = localStorage.getItem('factoryId');\n\n this.lineId = localStorage.getItem('lineId');\n\n const storedLines = localStorage.getItem('selectedLines');\n if (storedLines) {\n this.selectedLines = JSON.parse(storedLines);\n }\n\n this.subscriptions.add(\n this.headerService.lineId.subscribe((lineId: string | null) => {\n this.lineId = lineId;\n this.updateSelectedLine();\n })\n );\n\n this.subscriptions.add(\n this.headerService.factoryId.subscribe((factoryId: string | null) => {\n this.factoryId = factoryId;\n this.updateSelectedFactory();\n })\n );\n\n this.subscriptions.add(\n this.headerService.lineIds.subscribe((lineIds: string[] | null) => {\n if (lineIds) {\n this.selectedLines = lineIds;\n localStorage.setItem(\n 'selectedLines',\n JSON.stringify(this.selectedLines)\n );\n }\n })\n );\n\n this.getPlantData();\n this.getFactoryData();\n if (this.factoryId) {\n this.getLineData();\n } else if (this.plantId) {\n this.getLineDataByPlant();\n }\n }\n\n updateSelectedPlant(): void {\n const selectedPlant = this.plantData?.find(\n (plant: { id: number }) => plant.id === +this.plantId\n );\n if (selectedPlant) {\n this.locationForm\n .get('plant')\n ?.setValue(selectedPlant, { emitEvent: false });\n }\n }\n\n updateSelectedFactory(): void {\n const selectedFactory = this.factoryData?.find(\n (factory: { id: number }) => factory.id === +this.factoryId\n );\n if (selectedFactory) {\n this.locationForm\n .get('factory')\n ?.setValue(selectedFactory, { emitEvent: false });\n this.filterLines(selectedFactory);\n }\n }\n\n updateSelectedLine(): void {\n const selectedLine = this.linesData?.find(\n (line: { id: number }) => line.id === +this.lineId\n );\n if (selectedLine) {\n this.locationForm\n .get('line')\n ?.setValue(selectedLine, { emitEvent: false });\n }\n }\n\n filterLines(selectedFactory: FactoryData) {\n if (selectedFactory) {\n this.filteredLines = this.linesData?.filter(\n (line) => line.factoryId === selectedFactory?.id\n );\n } else {\n this.filteredLines = this.linesData;\n }\n }\n\n onPlantChange(event: { value: PlantData }) {\n if (event) {\n this.plantId = event.value.id;\n this.getFactoryData();\n this.getLineData();\n }\n }\n\n onFactoryChange(event: { value: FactoryData }) {\n const selectedFactory = event.value;\n this.factoryId = get(event, 'value.id');\n this.filterLines(selectedFactory);\n this.locationForm.get('line')?.setValue(null);\n this.selectedLines = [];\n this.getLineData();\n }\n\n getPlantData() {\n const url = API_END_POINTS.GET_PLANT;\n let params = new HttpParams().set('PageNumber', 0).set('PageSize', 0);\n this.httpService\n .getRequest(url, null, { params })\n .then((response) => {\n if (response) {\n this.plantData = response.data.filter(\n (plant: { isActive: boolean }) => plant.isActive\n );\n this.updateSelectedPlant();\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n getFactoryData() {\n if (!this.plantId) return;\n const url = `${API_END_POINTS.GET_FACTORY_BY_PLANTID}${this.plantId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.factoryData = response.data;\n this.updateSelectedFactory();\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n getLineData() {\n if (!this.factoryId) return;\n const url = `${API_END_POINTS.GET_LINE_BY_FACTORYID}${this.factoryId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.linesData = response;\n this.filteredLines = this.linesData;\n this.updateSelectedLine();\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n onViewLines() {\n this.isSubmitted = true;\n if (this.locationForm.valid) {\n this.ref.close({\n form: this.locationForm,\n selectedLines: this.selectedLines,\n });\n }\n }\n\n get factoryControl() {\n return this.locationForm.get('factory');\n }\n\n get isSaveViewDisabled() {\n const factorySelected = !!this.locationForm.get('factory')?.value;\n const lineSelected = !!this.locationForm.get('line')?.value;\n return !(factorySelected || lineSelected);\n }\n\n onLineChange(selectedLine: LineData) {\n this.lineId = selectedLine.id;\n localStorage.setItem('lineId', this.lineId);\n }\n\n private checkActiveRoute(url: string): void {\n if (url === '/chart/hourly-production') {\n this.isDailyLineRoute = true;\n } else {\n this.isDailyLineRoute = false;\n }\n }\n\n onClearAllClick() {\n this.ref.close(null);\n }\n\n ngOnDestroy(): void {\n if (this.factorySubscription) {\n this.factorySubscription?.unsubscribe();\n }\n if (this.lineSubscription) this.lineSubscription?.unsubscribe();\n this.subscriptions.unsubscribe();\n }\n\n getLineDataByPlant() {\n const url = `${API_END_POINTS.GET_ALL_PLANT_LINES}${this.plantId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.linesData = response;\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n}\n","
\n
\n

{{ \"Filter By\" }}

\n
\n \n \n \n Plant is required.\n
\n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i3 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nconst _c0 = (a0, a1, a2) => ({\n \"p-togglebutton p-button p-component\": true,\n \"p-button-icon-only\": a0,\n \"p-highlight\": a1,\n \"p-disabled\": a2\n});\nconst _c1 = (a0, a1) => ({\n \"p-button-icon\": true,\n \"p-button-icon-left\": a0,\n \"p-button-icon-right\": a1\n});\nconst _c2 = a0 => ({\n $implicit: a0\n});\nfunction ToggleButton_Conditional_1_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r0.checked ? ctx_r0.onIcon : ctx_r0.offIcon);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c1, ctx_r0.iconPos === \"left\", ctx_r0.iconPos === \"right\"));\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n }\n}\nfunction ToggleButton_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToggleButton_Conditional_1_span_0_Template, 1, 7, \"span\", 3);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.onIcon || ctx_r0.offIcon);\n }\n}\nfunction ToggleButton_Conditional_2_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction ToggleButton_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToggleButton_Conditional_2_ng_container_0_Template, 1, 0, \"ng-container\", 5);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c2, ctx_r0.checked));\n }\n}\nfunction ToggleButton_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.checked ? ctx_r0.hasOnLabel ? ctx_r0.onLabel : \"\" : ctx_r0.hasOffLabel ? ctx_r0.offLabel : \"\");\n }\n}\nconst TOGGLEBUTTON_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButton),\n multi: true\n};\n/**\n * ToggleButton is used to select a boolean value using a button.\n * @group Components\n */\nclass ToggleButton {\n cd;\n /**\n * Label for the on state.\n * @group Props\n */\n onLabel;\n /**\n * Label for the off state.\n * @group Props\n */\n offLabel;\n /**\n * Icon for the on state.\n * @group Props\n */\n onIcon;\n /**\n * Icon for the off state.\n * @group Props\n */\n offIcon;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'left';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Callback to invoke on value change.\n * @param {ToggleButtonChangeEvent} event - Custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n templates;\n iconTemplate;\n checked = false;\n onModelChange = () => {};\n onModelTouched = () => {};\n constructor(cd) {\n this.cd = cd;\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'icon':\n this.iconTemplate = item.template;\n break;\n default:\n this.iconTemplate = item.template;\n break;\n }\n });\n }\n toggle(event) {\n if (!this.disabled) {\n this.checked = !this.checked;\n this.onModelChange(this.checked);\n this.onModelTouched();\n this.onChange.emit({\n originalEvent: event,\n checked: this.checked\n });\n this.cd.markForCheck();\n }\n }\n onKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n this.toggle(event);\n event.preventDefault();\n break;\n case 'Space':\n this.toggle(event);\n event.preventDefault();\n break;\n }\n }\n onBlur() {\n this.onModelTouched();\n }\n writeValue(value) {\n this.checked = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n get hasOnLabel() {\n return this.onLabel && this.onLabel.length > 0;\n }\n get hasOffLabel() {\n return this.onLabel && this.onLabel.length > 0;\n }\n static ɵfac = function ToggleButton_Factory(t) {\n return new (t || ToggleButton)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ToggleButton,\n selectors: [[\"p-toggleButton\"]],\n contentQueries: function ToggleButton_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n onLabel: \"onLabel\",\n offLabel: \"offLabel\",\n onIcon: \"onIcon\",\n offIcon: \"offIcon\",\n ariaLabel: \"ariaLabel\",\n ariaLabelledBy: \"ariaLabelledBy\",\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n style: \"style\",\n styleClass: \"styleClass\",\n inputId: \"inputId\",\n tabindex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"tabindex\", \"tabindex\", numberAttribute],\n iconPos: \"iconPos\",\n autofocus: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"autofocus\", \"autofocus\", booleanAttribute]\n },\n outputs: {\n onChange: \"onChange\"\n },\n features: [i0.ɵɵProvidersFeature([TOGGLEBUTTON_VALUE_ACCESSOR]), i0.ɵɵInputTransformsFeature],\n decls: 4,\n vars: 17,\n consts: [[\"role\", \"switch\", \"pRipple\", \"\", \"pAutoFocus\", \"\", 3, \"click\", \"keydown\", \"ngClass\", \"ngStyle\", \"autofocus\"], [3, \"class\", \"ngClass\"], [\"class\", \"p-button-label\", 4, \"ngIf\"], [3, \"class\", \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-button-label\"]],\n template: function ToggleButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function ToggleButton_Template_div_click_0_listener($event) {\n return ctx.toggle($event);\n })(\"keydown\", function ToggleButton_Template_div_keydown_0_listener($event) {\n return ctx.onKeyDown($event);\n });\n i0.ɵɵtemplate(1, ToggleButton_Conditional_1_Template, 1, 1, \"span\", 1)(2, ToggleButton_Conditional_2_Template, 1, 4)(3, ToggleButton_span_3_Template, 2, 2, \"span\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(13, _c0, ctx.onIcon && ctx.offIcon && !ctx.hasOnLabel && !ctx.hasOffLabel, ctx.checked, ctx.disabled))(\"ngStyle\", ctx.style)(\"autofocus\", ctx.autofocus);\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx.tabindex)(\"aria-checked\", ctx.checked)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel)(\"data-pc-name\", \"togglebutton\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, !ctx.iconTemplate ? 1 : 2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.onLabel || ctx.offLabel);\n }\n },\n dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.Ripple, i3.AutoFocus],\n styles: [\"@layer primeng{.p-button[_ngcontent-%COMP%]{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label[_ngcontent-%COMP%]{flex:1 1 auto}.p-button-icon-right[_ngcontent-%COMP%]{order:1}.p-button[_ngcontent-%COMP%]:disabled{cursor:default;pointer-events:none}.p-button-icon-only[_ngcontent-%COMP%]{justify-content:center}.p-button-icon-only[_ngcontent-%COMP%]:after{content:\\\"p\\\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical[_ngcontent-%COMP%]{flex-direction:column}.p-button-icon-bottom[_ngcontent-%COMP%]{order:2}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]{margin:0}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:focus, .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:focus .p-button[_ngcontent-%COMP%], .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:focus, .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:focus .p-button[_ngcontent-%COMP%]{position:relative;z-index:1}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:last-child), .p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:last-child):hover, .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:last-child) .p-button[_ngcontent-%COMP%], .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:last-child) .p-button[_ngcontent-%COMP%]:hover, .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:last-child), .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:last-child):hover, .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:last-child) .p-button[_ngcontent-%COMP%], .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:last-child) .p-button[_ngcontent-%COMP%]:hover{border-right:0 none}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type) .p-button[_ngcontent-%COMP%], .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type) .p-button[_ngcontent-%COMP%]{border-radius:0}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:first-of-type:not(:only-of-type), .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:first-of-type:not(:only-of-type) .p-button[_ngcontent-%COMP%], .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:first-of-type:not(:only-of-type), .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:first-of-type:not(:only-of-type) .p-button[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:last-of-type:not(:only-of-type), .p-button-group[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:last-of-type:not(:only-of-type) .p-button[_ngcontent-%COMP%], .p-buttonset[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]:last-of-type:not(:only-of-type), .p-buttonset[_ngcontent-%COMP%] p-button[_ngcontent-%COMP%]:last-of-type:not(:only-of-type) .p-button[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right][_ngcontent-%COMP%] spinnericon[_ngcontent-%COMP%]{order:1}}\"],\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ToggleButton, [{\n type: Component,\n args: [{\n selector: 'p-toggleButton',\n template: `\n \n @if(!iconTemplate) {\n \n } @else {\n \n }\n {{ checked ? (hasOnLabel ? onLabel : '') : hasOffLabel ? offLabel : '' }}\n \n `,\n providers: [TOGGLEBUTTON_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'p-element'\n },\n styles: [\"@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:\\\"p\\\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\\n\"]\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }], {\n onLabel: [{\n type: Input\n }],\n offLabel: [{\n type: Input\n }],\n onIcon: [{\n type: Input\n }],\n offIcon: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n inputId: [{\n type: Input\n }],\n tabindex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n iconPos: [{\n type: Input\n }],\n autofocus: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n onChange: [{\n type: Output\n }],\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }]\n });\n})();\nclass ToggleButtonModule {\n static ɵfac = function ToggleButtonModule_Factory(t) {\n return new (t || ToggleButtonModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ToggleButtonModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, RippleModule, SharedModule, AutoFocusModule, SharedModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ToggleButtonModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, RippleModule, SharedModule, AutoFocusModule],\n exports: [ToggleButton, SharedModule],\n declarations: [ToggleButton]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButton, ToggleButtonModule };\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\n\n@Component({\n selector: 'app-toggle',\n standalone: true,\n imports: [ToggleButtonModule, FormsModule],\n templateUrl: './toggle.component.html',\n styleUrl: './toggle.component.scss',\n})\nexport class ToggleComponent {\n @Input() isChecked = false;\n @Output() isCheckedChange = new EventEmitter();\n\n toggle(): void {\n this.isChecked = !this.isChecked;\n this.isCheckedChange.emit(this.isChecked);\n }\n}\n","
\n
\n
","import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { filter, Subscription } from 'rxjs';\nimport { API_END_POINTS } from '../../constants/constant';\nimport { HeaderFilterModalComponent } from '../../features/modals/header-filter-modal/header-filter-modal.component';\nimport { LineData } from '../../interfaces/line.interface';\nimport { FactoryData, PlantData } from '../../interfaces/plant.interface';\nimport { CommonService } from '../../services/common.service';\nimport { HeaderService } from '../../services/header.service';\nimport { HttpService } from '../../services/http.service';\nimport { SidebarService } from '../sidebar/sidebar.service';\nimport { SortByComponent } from '../sort-by/sort-by.component';\nimport { ToggleComponent } from '../toggle/toggle.component';\nimport { LocalStorageServiceService } from '@services/local-storage-service.service';\nimport { get } from 'lodash';\n\n@Component({\n selector: 'app-header',\n standalone: true,\n imports: [\n SortByComponent,\n CommonModule,\n ToggleComponent,\n MultiSelectModule,\n FormsModule,\n ],\n templateUrl: './header.component.html',\n styleUrl: './header.component.scss',\n})\nexport class HeaderComponent {\n isDailyProduction: any;\n lineId: any;\n plantId: any;\n factoryId: any;\n selectedLines: any;\n selectedFactory: FactoryData[] = [];\n lineData!: LineData[];\n ref!: DynamicDialogRef;\n plantData!: PlantData[];\n factoryData!: FactoryData[];\n isMobile: boolean = false;\n isDisabled: boolean = false;\n isMobileView: boolean = false;\n isAllDisabled: boolean = false;\n isDailyLineRoute: boolean = false;\n isBackBtnRequired: boolean = false;\n autoRefreshEnabled: boolean = false;\n lastApiCallTime: string | null = null;\n chartHeading: string = 'Monthly Production';\n private subscriptions: Subscription = new Subscription();\n headerNavigation: any;\n\n constructor(\n public sidebarService: SidebarService,\n private httpService: HttpService,\n private commonService: CommonService,\n private headerService: HeaderService,\n private datePipe: DatePipe,\n private breakpointObserver: BreakpointObserver,\n private dialogService: DialogService,\n private router: Router,\n private localStorageService: LocalStorageServiceService\n ) {}\n\n ngOnInit(): void {\n this.breakpointObserver\n .observe(['(max-width: 767px)'])\n .subscribe((state: BreakpointState) => {\n this.isMobile = state.matches;\n this.isMobileView = state.matches;\n this.commonService.isMobileSubject.next(state.matches);\n });\n\n this.commonService.currentChartHeading.subscribe((heading) => {\n this.chartHeading = heading;\n this.isBackBtnRequired = false;\n if (this.localStorageService.getItem('header-navigation')) {\n this.headerNavigation =\n this.localStorageService.getItem('header-navigation');\n this.localStorageService.removeItem('header-navigation');\n } else this.headerNavigation = null;\n if (\n this.chartHeading === 'User Management' ||\n this.chartHeading === 'Alarm Code Definitions' ||\n this.chartHeading === 'Line Management' ||\n this.chartHeading === 'Production Loss Reason' ||\n this.chartHeading === 'Alerts Management'\n ) {\n this.isDisabled = true;\n this.isAllDisabled = false;\n this.headerService.removeLineId();\n this.plantId = localStorage.getItem('plantId');\n if (this.plantId) this.headerService.setPlantId(this.plantId);\n this.factoryId = localStorage.getItem('factoryId');\n if (this.factoryId) this.headerService.setFactoryId(this.factoryId);\n this.lineId = localStorage.getItem('lineId');\n if (this.lineId) this.headerService.setLineId(this.lineId);\n } else if (this.chartHeading === 'Manage Plants') {\n this.plantId = null;\n this.factoryId = null;\n this.lineId = null;\n this.isAllDisabled = true;\n this.isDisabled = false;\n } else {\n this.isAllDisabled = false;\n this.isDisabled = false;\n this.plantId = localStorage.getItem('plantId');\n if (this.plantId) this.headerService.setPlantId(this.plantId);\n this.factoryId = localStorage.getItem('factoryId');\n if (this.factoryId) this.headerService.setFactoryId(this.factoryId);\n this.lineId = localStorage.getItem('lineId');\n if (this.lineId) this.headerService.setLineId(this.lineId);\n }\n this.headerService.fetchSource.next();\n if (\n this.headerNavigation?.isBackBtnRequired ||\n this.chartHeading === 'Quality Analysis'\n ) {\n this.isBackBtnRequired = true;\n }\n });\n this.plantId = localStorage.getItem('plantId');\n if (this.plantId) this.headerService.setPlantId(this.plantId);\n\n this.factoryId = localStorage.getItem('factoryId');\n if (this.factoryId) this.headerService.setFactoryId(this.factoryId);\n this.lineId = localStorage.getItem('lineId');\n if (this.lineId) this.headerService.setLineId(this.lineId);\n\n const storedLines = localStorage.getItem('selectedLines');\n if (storedLines && storedLines != 'undefined') {\n this.selectedLines = JSON.parse(storedLines);\n this.headerService.setLineIds(this.selectedLines);\n }\n this.autoRefreshEnabled = this.headerService.getInitialAutoRefreshState();\n if (this.autoRefreshEnabled) this.headerService.setAutoRefresh(true);\n this.headerService.lastApiCallTime.subscribe((time) => {\n this.lastApiCallTime = time ? this.formatDateTime(time) : null;\n });\n this.subscriptions.add(\n this.headerService.lineId.subscribe((lineId: any) => {\n this.lineId = lineId;\n const line = this.lineData?.find((line) => line?.id === lineId);\n const factoryId = line ? line?.factoryId : undefined;\n if (factoryId) this.selectFactoryByLine(factoryId);\n })\n );\n this.subscriptions.add(\n this.headerService.factoryId.subscribe((factoryId: string | null) => {\n this.factoryId = factoryId;\n if (this.factoryId) this.getLineData();\n if (this.plantId) this.getFactoryData();\n })\n );\n\n this.subscriptions.add(\n this.headerService.lineIds.subscribe((lineIds: string[] | null) => {\n if (lineIds) {\n this.selectedLines = lineIds;\n localStorage.setItem(\n 'selectedLines',\n JSON.stringify(this.selectedLines)\n );\n } else {\n this.selectedLines = [];\n }\n })\n );\n this.checkActiveRoute(this.router.url);\n this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((event: any) => {\n this.checkActiveRoute(event.urlAfterRedirects);\n });\n\n this.getPlantData();\n if (this.plantId) this.getFactoryData();\n if (this.factoryId) {\n this.getLineData();\n } else {\n if (this.plantId) this.getLineDataByPlant();\n }\n }\n\n private checkActiveRoute(url: string): void {\n if (url === '/chart/hourly-production') {\n this.isDailyLineRoute = true;\n } else {\n this.isDailyLineRoute = false;\n }\n if (url === '/chart/daily-production') {\n this.isDailyProduction = true;\n } else {\n this.isDailyProduction = false;\n }\n }\n\n getPlantData() {\n const url = API_END_POINTS.GET_PLANT;\n let params = new HttpParams().set('PageNumber', 0).set('PageSize', 0);\n this.httpService\n .getRequest(url, null, { params })\n .then((response) => {\n if (response) {\n this.plantData = response.data.filter((plant: any) => plant.isActive);\n localStorage.setItem('plantData', JSON.stringify(this.plantData));\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n getFactoryData() {\n const url = `${API_END_POINTS.GET_FACTORY_BY_PLANTID}${this.plantId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.factoryData = response.data;\n if (this.factoryId && this.isDailyProduction) {\n this.factoryId = String(this.factoryId);\n this.selectedFactory = [];\n this.factoryId\n .split(',')\n .map(Number)\n .forEach((element: number) => {\n const index = this.factoryData.findIndex((item) => {\n return item.id === element;\n });\n if (index !== -1) {\n this.selectedFactory.push(this.factoryData[index]);\n }\n });\n }\n localStorage.setItem('factoryData', JSON.stringify(this.factoryData));\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n getLineData() {\n const url = `${API_END_POINTS.GET_LINE_BY_FACTORYID}${this.factoryId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.lineData = response;\n localStorage.setItem('lineData', JSON.stringify(this.lineData));\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n getLineDataForMultipleFactors() {\n let factoryIds = '';\n if (this.selectedFactory) {\n this.selectedFactory.forEach((element) => {\n factoryIds = factoryIds + `${element.id},`;\n });\n factoryIds = factoryIds.slice(0, -1);\n }\n const url = `${API_END_POINTS.GET_LINE_BY_FACTORYID}${factoryIds}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.lineData = response;\n localStorage.setItem('lineData', JSON.stringify(this.lineData));\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n onToggleChange(isChecked: boolean): void {\n this.autoRefreshEnabled = isChecked;\n this.headerService.setAutoRefresh(isChecked);\n }\n\n onPlantChange(selectedPlant: PlantData) {\n this.plantId = selectedPlant.id;\n localStorage.setItem('plantId', this.plantId.toString());\n this.headerService.setPlantId(this.plantId);\n this.factoryId = null;\n this.lineId = null;\n this.selectedLines = [];\n this.headerService.removeFactoryId();\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n this.headerService.fetchSource.next();\n this.getFactoryData();\n this.getLineDataByPlant();\n }\n\n onFactoryChange(selectedFactory: FactoryData) {\n this.factoryId = selectedFactory.id;\n localStorage.setItem('factoryId', this.factoryId);\n this.headerService.setFactoryId(this.factoryId);\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n this.headerService.fetchSource.next();\n if (this.factoryId) this.getLineData();\n }\n onFactorySelectionChange(event: any) {\n localStorage.setItem(\n 'selectedFactory',\n JSON.stringify(this.selectedFactory)\n );\n this.headerService.setFactoryIds(this.selectedFactory);\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n this.headerService.fetchSource.next();\n if (this.selectedFactory.length) {\n this.getLineDataForMultipleFactors();\n }\n else {\n this.factoryId = null;\n this.lineId = null;\n this.selectedLines = [];\n this.headerService.removeFactoryId();\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n this.getFactoryData();\n this.getLineDataByPlant();\n\n }\n }\n\n onLineChange(selectedLine: LineData) {\n this.lineId = selectedLine.id;\n localStorage.setItem('lineId', this.lineId);\n this.headerService.setLineId(this.lineId);\n this.headerService.fetchSource.next();\n this.selectFactoryByLine(selectedLine.factoryId);\n }\n onLineSelectionChange(event: any) {\n localStorage.setItem('selectedLines', JSON.stringify(this.selectedLines));\n this.headerService.setLineIds(this.selectedLines);\n this.headerService.fetchSource.next();\n }\n\n selectFactoryByLine(factoryId: any) {\n const selectedFactory = this.factoryData?.find(\n (factory) => factory.id === factoryId\n );\n if (selectedFactory) {\n this.factoryId = selectedFactory.id;\n localStorage.setItem('factoryId', this.factoryId);\n this.headerService.setFactoryId(this.factoryId);\n if (this.factoryId) this.getLineData();\n }\n }\n\n onManualRefresh(): void {\n this.headerService.setManualRefresh();\n }\n\n formatDateTime(dateTime: string): string {\n return this.datePipe.transform(dateTime, 'yyyy, MMMM d, HH:mm') || '';\n }\n\n getLineDataByPlant() {\n const url = `${API_END_POINTS.GET_ALL_PLANT_LINES}${this.plantId}`;\n this.httpService\n .getRequest(url)\n .then((response) => {\n if (response) {\n this.lineData = response;\n localStorage.setItem('lineData', JSON.stringify(this.lineData));\n } else {\n console.error('No data received');\n }\n })\n .catch((error) => {\n console.error('There was an error:', error);\n });\n }\n\n toggleSidebar() {\n this.sidebarService.toggle();\n }\n\n onOpenFilterModal() {\n this.ref = this.dialogService.open(HeaderFilterModalComponent, {\n data: { action: 'add' },\n width: '480px',\n styleClass: this.isMobileView\n ? 'custom-modal-border-radius mobile-modal'\n : 'custom-modal-border-radius',\n });\n this.ref.onClose.subscribe((result) => {\n if (result === undefined) return;\n if (result) {\n const form = get(result, 'form.value');\n const selectedLines = get(result, 'selectedLines');\n if (form?.plant) {\n this.plantId = form?.plant?.id;\n localStorage.setItem('plantId', this.plantId.toString());\n this.headerService.setPlantId(this.plantId);\n if (form?.factory) {\n this.factoryId = form?.factory?.id;\n localStorage.setItem('factoryId', this.factoryId);\n this.headerService.setFactoryId(this.factoryId);\n if (form?.line) {\n this.lineId = form?.line?.id;\n localStorage.setItem('lineId', this.lineId);\n this.headerService.setLineId(this.lineId);\n } else if (selectedLines?.length) {\n this.selectedLines = selectedLines;\n localStorage.setItem(\n 'selectedLines',\n JSON.stringify(this.selectedLines)\n );\n this.headerService.setLineIds(this.selectedLines);\n } else {\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n }\n } else {\n localStorage.removeItem('lineId');\n localStorage.removeItem('plantId');\n this.headerService.removeFactoryId();\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n }\n this.headerService.fetchSource.next();\n } else {\n this.clearAll();\n }\n } else {\n this.clearAll();\n }\n });\n }\n\n clearAll() {\n localStorage.removeItem('factoryId');\n localStorage.removeItem('lineId');\n localStorage.removeItem('plantId');\n this.headerService.removeFactoryId();\n this.headerService.removeLineId();\n this.headerService.removeLineIds();\n this.headerService.fetchSource.next();\n this.router.navigate(['/chart/daily-production']);\n }\n\n onBackClick() {\n if (this.headerNavigation) {\n this.localStorageService.removeItem('header-navigation');\n this.router.navigate([this.headerNavigation?.route]);\n } else this.router.navigate(['chart/module-equipment']);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n if (this.headerNavigation) {\n this.localStorageService.setItem(\n 'header-navigation',\n this.headerNavigation\n );\n }\n }\n}\n","\n \n
\n \n
\n
\n \n

{{ chartHeading }}

\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
\n \n
\n
\n

Auto Refresh

\n \n \n
\n

{{ lastApiCallTime }}

\n
\n
\n \n \n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarService {\n private _isVisible = new BehaviorSubject(true);\n public isVisible = this._isVisible.asObservable() ;\n\n toggle() {\n this._isVisible.next(!this._isVisible.value);\n }\n\n close() {\n this._isVisible.next(false);\n }\n\n open() {\n this._isVisible.next(true);\n }\n\n getVisibilityValue(): boolean {\n return this._isVisible.value;\n }\n}\n","import { ElementRef } from '@angular/core';\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static {\n this.ɵfac = function Platform_Factory(t) {\n return new (t || Platform)(i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Platform,\n factory: Platform.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Platform, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: Object,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }], null);\n})();\nclass PlatformModule {\n static {\n this.ɵfac = function PlatformModule_Factory(t) {\n return new (t || PlatformModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PlatformModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PlatformModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n// `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n// first changing it to something else:\n// The specified value \"\" does not conform to the required format.\n// The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n'color', 'button', 'checkbox', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time', 'url', 'week'];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => supportsPassiveEvents = true\n }));\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nvar RtlScrollAxisType;\n(function (RtlScrollAxisType) {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"NORMAL\"] = 0] = \"NORMAL\";\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"NEGATED\"] = 1] = \"NEGATED\";\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"INVERTED\"] = 2] = \"INVERTED\";\n})(RtlScrollAxisType || (RtlScrollAxisType = {}));\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n } else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n } else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType = scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document ? document.activeElement : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return event.composedPath ? event.composedPath()[0] : event.target;\n}\n\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n typeof __karma__ !== 'undefined' && !!__karma__ ||\n // @ts-ignore\n typeof jasmine !== 'undefined' && !!jasmine ||\n // @ts-ignore\n typeof jest !== 'undefined' && !!jest ||\n // @ts-ignore\n typeof Mocha !== 'undefined' && !!Mocha\n );\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, RtlScrollAxisType, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { NgModule, CSP_NONCE, Injectable, Optional, Inject } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nclass LayoutModule {\n static {\n this.ɵfac = function LayoutModule_Factory(t) {\n return new (t || LayoutModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: LayoutModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\n/** A utility for calling matchMedia queries. */\nclass MediaMatcher {\n constructor(_platform, _nonce) {\n this._platform = _platform;\n this._nonce = _nonce;\n this._matchMedia = this._platform.isBrowser && window.matchMedia ?\n // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window) : noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query, this._nonce);\n }\n return this._matchMedia(query);\n }\n static {\n this.ɵfac = function MediaMatcher_Factory(t) {\n return new (t || MediaMatcher)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MediaMatcher,\n factory: MediaMatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MediaMatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }]\n }], null);\n})();\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query, nonce) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n if (nonce) {\n mediaQueryStyleNode.nonce = nonce;\n }\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n } catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => {},\n removeListener: () => {}\n };\n}\n\n/** Utility for checking the matching state of @media queries. */\nclass BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {}\n };\n breakpointStates.forEach(({\n matches,\n query\n }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable(observer => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = e => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({\n matches\n }) => ({\n query,\n matches\n })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = {\n observable: queryObservable,\n mql\n };\n this._queries.set(query, output);\n return output;\n }\n static {\n this.ɵfac = function BreakpointObserver_Factory(t) {\n return new (t || BreakpointObserver)(i0.ɵɵinject(MediaMatcher), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BreakpointObserver,\n factory: BreakpointObserver.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BreakpointObserver, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: MediaMatcher\n }, {\n type: i0.NgZone\n }], null);\n})();\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries.map(query => query.split(',')).reduce((a1, a2) => a1.concat(a2)).map(query => query.trim());\n}\n\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' + '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' + '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' + '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)'\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\n","import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, ContentChildren, Output, NgModule } from '@angular/core';\nimport * as i1 from 'primeng/api';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { TimesIcon } from 'primeng/icons/times';\nimport * as i3 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport { ZIndexUtils } from 'primeng/utils';\nconst _c0 = [\"*\"];\nconst _c1 = (a0, a1, a2, a3, a4, a5) => ({\n \"p-sidebar\": true,\n \"p-sidebar-active\": a0,\n \"p-sidebar-left\": a1,\n \"p-sidebar-right\": a2,\n \"p-sidebar-top\": a3,\n \"p-sidebar-bottom\": a4,\n \"p-sidebar-full\": a5\n});\nconst _c2 = (a0, a1) => ({\n transform: a0,\n transition: a1\n});\nconst _c3 = a0 => ({\n value: \"visible\",\n params: a0\n});\nfunction Sidebar_div_0_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Sidebar_div_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Sidebar_div_0_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headlessTemplate);\n }\n}\nfunction Sidebar_div_0_ng_template_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Sidebar_div_0_ng_template_3_button_2_TimesIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"TimesIcon\", 13);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-sidebar-close-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"closeicon\");\n }\n}\nfunction Sidebar_div_0_ng_template_3_button_2_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Sidebar_div_0_ng_template_3_button_2_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Sidebar_div_0_ng_template_3_button_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Sidebar_div_0_ng_template_3_button_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 14);\n i0.ɵɵtemplate(1, Sidebar_div_0_ng_template_3_button_2_span_2_1_Template, 1, 0, null, 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵattribute(\"data-pc-section\", \"closeicon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.closeIconTemplate);\n }\n}\nfunction Sidebar_div_0_ng_template_3_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 10);\n i0.ɵɵlistener(\"click\", function Sidebar_div_0_ng_template_3_button_2_Template_button_click_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.close($event));\n })(\"keydown.enter\", function Sidebar_div_0_ng_template_3_button_2_Template_button_keydown_enter_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.close($event));\n });\n i0.ɵɵtemplate(1, Sidebar_div_0_ng_template_3_button_2_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 11)(2, Sidebar_div_0_ng_template_3_button_2_span_2_Template, 2, 2, \"span\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaCloseLabel)(\"data-pc-section\", \"closebutton\")(\"data-pc-group-section\", \"iconcontainer\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.closeIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.closeIconTemplate);\n }\n}\nfunction Sidebar_div_0_ng_template_3_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Sidebar_div_0_ng_template_3_ng_container_6_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Sidebar_div_0_ng_template_3_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 15);\n i0.ɵɵtemplate(2, Sidebar_div_0_ng_template_3_ng_container_6_ng_container_2_Template, 1, 0, \"ng-container\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"footer\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.footerTemplate);\n }\n}\nfunction Sidebar_div_0_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵtemplate(1, Sidebar_div_0_ng_template_3_ng_container_1_Template, 1, 0, \"ng-container\", 5)(2, Sidebar_div_0_ng_template_3_button_2_Template, 3, 5, \"button\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 8);\n i0.ɵɵprojection(4);\n i0.ɵɵtemplate(5, Sidebar_div_0_ng_template_3_ng_container_5_Template, 1, 0, \"ng-container\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, Sidebar_div_0_ng_template_3_ng_container_6_Template, 3, 2, \"ng-container\", 9);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"header\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showCloseIcon);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"content\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.footerTemplate);\n }\n}\nfunction Sidebar_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3, 0);\n i0.ɵɵlistener(\"@panelState.start\", function Sidebar_div_0_Template_div_animation_panelState_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onAnimationStart($event));\n })(\"@panelState.done\", function Sidebar_div_0_Template_div_animation_panelState_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onAnimationEnd($event));\n })(\"keydown\", function Sidebar_div_0_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onKeyDown($event));\n });\n i0.ɵɵtemplate(2, Sidebar_div_0_ng_container_2_Template, 2, 1, \"ng-container\", 4)(3, Sidebar_div_0_ng_template_3_Template, 7, 6, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const notHeadless_r4 = i0.ɵɵreference(4);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction6(9, _c1, ctx_r1.visible, ctx_r1.position === \"left\" && !ctx_r1.fullScreen, ctx_r1.position === \"right\" && !ctx_r1.fullScreen, ctx_r1.position === \"top\" && !ctx_r1.fullScreen, ctx_r1.position === \"bottom\" && !ctx_r1.fullScreen, ctx_r1.fullScreen))(\"@panelState\", i0.ɵɵpureFunction1(19, _c3, i0.ɵɵpureFunction2(16, _c2, ctx_r1.transformOptions, ctx_r1.transitionOptions)))(\"ngStyle\", ctx_r1.style);\n i0.ɵɵattribute(\"data-pc-name\", \"sidebar\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.headlessTemplate)(\"ngIfElse\", notHeadless_r4);\n }\n}\nconst showAnimation = animation([style({\n transform: '{{transform}}',\n opacity: 0\n}), animate('{{transition}}')]);\nconst hideAnimation = animation([animate('{{transition}}', style({\n transform: '{{transform}}',\n opacity: 0\n}))]);\n/**\n * Sidebar is a panel component displayed as an overlay at the edges of the screen.\n * @group Components\n */\nclass Sidebar {\n document;\n el;\n renderer;\n cd;\n config;\n /**\n * Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Whether to block scrolling of the document when sidebar is active.\n * @group Props\n */\n blockScroll = false;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Aria label of the close icon.\n * @group Props\n */\n ariaCloseLabel;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = 0;\n /**\n * Whether an overlay mask is displayed behind the sidebar.\n * @group Props\n */\n modal = true;\n /**\n * Whether to dismiss sidebar on click of the mask.\n * @group Props\n */\n dismissible = true;\n /**\n * Whether to display the close icon.\n * @group Props\n */\n showCloseIcon = true;\n /**\n * Specifies if pressing escape key should hide the sidebar.\n * @group Props\n */\n closeOnEscape = true;\n /**\n * Transition options of the animation.\n * @group Props\n */\n transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Specifies the visibility of the dialog.\n * @group Props\n */\n get visible() {\n return this._visible;\n }\n set visible(val) {\n this._visible = val;\n }\n /**\n * Specifies the position of the sidebar, valid values are \"left\", \"right\", \"bottom\" and \"top\".\n * @group Props\n */\n get position() {\n return this._position;\n }\n set position(value) {\n this._position = value;\n switch (value) {\n case 'left':\n this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n break;\n case 'right':\n this.transformOptions = 'translate3d(100%, 0px, 0px)';\n break;\n case 'bottom':\n this.transformOptions = 'translate3d(0px, 100%, 0px)';\n break;\n case 'top':\n this.transformOptions = 'translate3d(0px, -100%, 0px)';\n break;\n }\n }\n /**\n * Adds a close icon to the header to hide the dialog.\n * @group Props\n */\n get fullScreen() {\n return this._fullScreen;\n }\n set fullScreen(value) {\n this._fullScreen = value;\n if (value) this.transformOptions = 'none';\n }\n templates;\n /**\n * Callback to invoke when dialog is shown.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke when dialog is hidden.\n * @group Emits\n */\n onHide = new EventEmitter();\n /**\n * Callback to invoke when dialog visibility is changed.\n * @param {boolean} value - Visible value.\n * @group Emits\n */\n visibleChange = new EventEmitter();\n initialized;\n _visible;\n _position = 'left';\n _fullScreen = false;\n container;\n transformOptions = 'translate3d(-100%, 0px, 0px)';\n mask;\n maskClickListener;\n documentEscapeListener;\n animationEndListener;\n contentTemplate;\n headerTemplate;\n footerTemplate;\n closeIconTemplate;\n headlessTemplate;\n constructor(document, el, renderer, cd, config) {\n this.document = document;\n this.el = el;\n this.renderer = renderer;\n this.cd = cd;\n this.config = config;\n }\n ngAfterViewInit() {\n this.initialized = true;\n }\n ngAfterContentInit() {\n this.templates?.forEach(item => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n case 'headless':\n this.headlessTemplate = item.template;\n break;\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n onKeyDown(event) {\n if (event.code === 'Escape') {\n this.hide(false);\n }\n }\n show() {\n if (this.autoZIndex) {\n ZIndexUtils.set('modal', this.container, this.baseZIndex || this.config.zIndex.modal);\n }\n if (this.modal) {\n this.enableModality();\n }\n this.onShow.emit({});\n this.visibleChange.emit(true);\n }\n hide(emit = true) {\n if (emit) {\n this.onHide.emit({});\n }\n if (this.modal) {\n this.disableModality();\n }\n }\n close(event) {\n this.hide();\n this.visibleChange.emit(false);\n event.preventDefault();\n }\n enableModality() {\n if (!this.mask) {\n this.mask = this.renderer.createElement('div');\n this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(this.container.style.zIndex) - 1));\n DomHandler.addMultipleClasses(this.mask, 'p-component-overlay p-sidebar-mask p-component-overlay p-component-overlay-enter');\n if (this.dismissible) {\n this.maskClickListener = this.renderer.listen(this.mask, 'click', event => {\n if (this.dismissible) {\n this.close(event);\n }\n });\n }\n this.renderer.appendChild(this.document.body, this.mask);\n if (this.blockScroll) {\n DomHandler.blockBodyScroll();\n }\n }\n }\n disableModality() {\n if (this.mask) {\n DomHandler.addClass(this.mask, 'p-component-overlay-leave');\n this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyModal.bind(this));\n }\n }\n destroyModal() {\n this.unbindMaskClickListener();\n if (this.mask) {\n this.renderer.removeChild(this.document.body, this.mask);\n }\n if (this.blockScroll) {\n DomHandler.unblockBodyScroll();\n }\n this.unbindAnimationEndListener();\n this.mask = null;\n }\n onAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.container = event.element;\n this.appendContainer();\n this.show();\n if (this.closeOnEscape) {\n this.bindDocumentEscapeListener();\n }\n break;\n }\n }\n onAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n this.hide(false);\n ZIndexUtils.clear(this.container);\n this.unbindGlobalListeners();\n break;\n }\n }\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.renderer.appendChild(this.document.body, this.container);else DomHandler.appendChild(this.container, this.appendTo);\n }\n }\n bindDocumentEscapeListener() {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;\n this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', event => {\n if (event.which == 27) {\n if (parseInt(this.container.style.zIndex) === ZIndexUtils.get(this.container)) {\n this.close(event);\n }\n }\n });\n }\n unbindDocumentEscapeListener() {\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n this.documentEscapeListener = null;\n }\n }\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n unbindGlobalListeners() {\n this.unbindMaskClickListener();\n this.unbindDocumentEscapeListener();\n }\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n ngOnDestroy() {\n this.initialized = false;\n if (this.visible && this.modal) {\n this.destroyModal();\n }\n if (this.appendTo && this.container) {\n this.renderer.appendChild(this.el.nativeElement, this.container);\n }\n if (this.container && this.autoZIndex) {\n ZIndexUtils.clear(this.container);\n }\n this.container = null;\n this.unbindGlobalListeners();\n this.unbindAnimationEndListener();\n }\n static ɵfac = function Sidebar_Factory(t) {\n return new (t || Sidebar)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.PrimeNGConfig));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Sidebar,\n selectors: [[\"p-sidebar\"]],\n contentQueries: function Sidebar_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n appendTo: \"appendTo\",\n blockScroll: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"blockScroll\", \"blockScroll\", booleanAttribute],\n style: \"style\",\n styleClass: \"styleClass\",\n ariaCloseLabel: \"ariaCloseLabel\",\n autoZIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"autoZIndex\", \"autoZIndex\", booleanAttribute],\n baseZIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"baseZIndex\", \"baseZIndex\", numberAttribute],\n modal: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"modal\", \"modal\", booleanAttribute],\n dismissible: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"dismissible\", \"dismissible\", booleanAttribute],\n showCloseIcon: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"showCloseIcon\", \"showCloseIcon\", booleanAttribute],\n closeOnEscape: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"closeOnEscape\", \"closeOnEscape\", booleanAttribute],\n transitionOptions: \"transitionOptions\",\n visible: \"visible\",\n position: \"position\",\n fullScreen: \"fullScreen\"\n },\n outputs: {\n onShow: \"onShow\",\n onHide: \"onHide\",\n visibleChange: \"visibleChange\"\n },\n features: [i0.ɵɵInputTransformsFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 1,\n consts: [[\"container\", \"\"], [\"notHeadless\", \"\"], [\"role\", \"complementary\", 3, \"ngClass\", \"ngStyle\", \"class\", \"keydown\", 4, \"ngIf\"], [\"role\", \"complementary\", 3, \"keydown\", \"ngClass\", \"ngStyle\"], [4, \"ngIf\", \"ngIfElse\"], [4, \"ngTemplateOutlet\"], [1, \"p-sidebar-header\"], [\"type\", \"button\", \"class\", \"p-sidebar-close p-sidebar-icon p-link\", \"pRipple\", \"\", 3, \"click\", \"keydown.enter\", 4, \"ngIf\"], [1, \"p-sidebar-content\"], [4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-sidebar-close\", \"p-sidebar-icon\", \"p-link\", 3, \"click\", \"keydown.enter\"], [3, \"styleClass\", 4, \"ngIf\"], [\"class\", \"p-sidebar-close-icon\", 4, \"ngIf\"], [3, \"styleClass\"], [1, \"p-sidebar-close-icon\"], [1, \"p-sidebar-footer\"]],\n template: function Sidebar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, Sidebar_div_0_Template, 5, 21, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.visible);\n }\n },\n dependencies: () => [i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.Ripple, TimesIcon],\n styles: [\"@layer primeng{.p-sidebar{position:fixed;transition:transform .3s;display:flex;flex-direction:column}.p-sidebar-content{position:relative;overflow-y:auto;flex-grow:1}.p-sidebar-header{display:flex;align-items:center}.p-sidebar-footer{margin-top:auto}.p-sidebar-icon{display:flex;align-items:center;justify-content:center;margin-left:auto}.p-sidebar-left{top:0;left:0;width:20rem;height:100%}.p-sidebar-right{top:0;right:0;width:20rem;height:100%}.p-sidebar-top{top:0;left:0;width:100%;height:10rem}.p-sidebar-bottom{bottom:0;left:0;width:100%;height:10rem}.p-sidebar-full{width:100%;height:100%;top:0;left:0;-webkit-transition:none;transition:none}.p-sidebar-left.p-sidebar-sm,.p-sidebar-right.p-sidebar-sm{width:20rem}.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-md{width:40rem}.p-sidebar-left.p-sidebar-lg,.p-sidebar-right.p-sidebar-lg{width:60rem}.p-sidebar-top.p-sidebar-sm,.p-sidebar-bottom.p-sidebar-sm{height:10rem}.p-sidebar-top.p-sidebar-md,.p-sidebar-bottom.p-sidebar-md{height:20rem}.p-sidebar-top.p-sidebar-lg,.p-sidebar-bottom.p-sidebar-lg{height:30rem}@media screen and (max-width: 64em){.p-sidebar-left.p-sidebar-lg,.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-lg,.p-sidebar-right.p-sidebar-md{width:20rem}}}\\n\"],\n encapsulation: 2,\n data: {\n animation: [trigger('panelState', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])]\n },\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Sidebar, [{\n type: Component,\n args: [{\n selector: 'p-sidebar',\n template: `\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n \n `,\n animations: [trigger('panelState', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'p-element'\n },\n styles: [\"@layer primeng{.p-sidebar{position:fixed;transition:transform .3s;display:flex;flex-direction:column}.p-sidebar-content{position:relative;overflow-y:auto;flex-grow:1}.p-sidebar-header{display:flex;align-items:center}.p-sidebar-footer{margin-top:auto}.p-sidebar-icon{display:flex;align-items:center;justify-content:center;margin-left:auto}.p-sidebar-left{top:0;left:0;width:20rem;height:100%}.p-sidebar-right{top:0;right:0;width:20rem;height:100%}.p-sidebar-top{top:0;left:0;width:100%;height:10rem}.p-sidebar-bottom{bottom:0;left:0;width:100%;height:10rem}.p-sidebar-full{width:100%;height:100%;top:0;left:0;-webkit-transition:none;transition:none}.p-sidebar-left.p-sidebar-sm,.p-sidebar-right.p-sidebar-sm{width:20rem}.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-md{width:40rem}.p-sidebar-left.p-sidebar-lg,.p-sidebar-right.p-sidebar-lg{width:60rem}.p-sidebar-top.p-sidebar-sm,.p-sidebar-bottom.p-sidebar-sm{height:10rem}.p-sidebar-top.p-sidebar-md,.p-sidebar-bottom.p-sidebar-md{height:20rem}.p-sidebar-top.p-sidebar-lg,.p-sidebar-bottom.p-sidebar-lg{height:30rem}@media screen and (max-width: 64em){.p-sidebar-left.p-sidebar-lg,.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-lg,.p-sidebar-right.p-sidebar-md{width:20rem}}}\\n\"]\n }]\n }], () => [{\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.PrimeNGConfig\n }], {\n appendTo: [{\n type: Input\n }],\n blockScroll: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n ariaCloseLabel: [{\n type: Input\n }],\n autoZIndex: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n baseZIndex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n modal: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n dismissible: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n showCloseIcon: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n closeOnEscape: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n transitionOptions: [{\n type: Input\n }],\n visible: [{\n type: Input\n }],\n position: [{\n type: Input\n }],\n fullScreen: [{\n type: Input\n }],\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }],\n onShow: [{\n type: Output\n }],\n onHide: [{\n type: Output\n }],\n visibleChange: [{\n type: Output\n }]\n });\n})();\nclass SidebarModule {\n static ɵfac = function SidebarModule_Factory(t) {\n return new (t || SidebarModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SidebarModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, RippleModule, SharedModule, TimesIcon, SharedModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SidebarModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, RippleModule, SharedModule, TimesIcon],\n exports: [Sidebar, SharedModule],\n declarations: [Sidebar]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Sidebar, SidebarModule };\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, from, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { HttpService } from './http.service';\nimport { API_END_POINTS } from '@constants/constant';\nimport { Router } from '@angular/router';\nimport { LocalStorageServiceService } from './local-storage-service.service';\nimport { MsalService } from '@azure/msal-angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private tokenSubject: BehaviorSubject;\n private refreshTokenSubject: BehaviorSubject;\n\n constructor(\n private http: HttpClient,\n private httpService: HttpService,\n private router: Router,\n private localStorageService: LocalStorageServiceService,\n private msalService: MsalService\n ) {\n this.tokenSubject = new BehaviorSubject(\n this.localStorageService.getItem('accessToken')\n );\n this.refreshTokenSubject = new BehaviorSubject(\n localStorage.getItem('refreshToken')\n );\n }\n\n getToken(): string | null {\n return this.tokenSubject.value;\n }\n\n refreshToken(): Observable {\n const token = this.refreshTokenSubject.value;\n return from(\n this.httpService.postRequest(API_END_POINTS.REFRESH_TOKEN, { token })\n ).pipe(\n tap((response: any) => {\n const newToken = response.data.accessToken;\n this.tokenSubject.next(newToken);\n this.localStorageService.setAccessToken(newToken);\n })\n );\n }\n\n logout() {\n this.tokenSubject.next(null);\n this.refreshTokenSubject.next(null);\n this.localStorageService.clearLocalStorage();\n this.msalService.instance.logoutRedirect();\n localStorage.removeItem('refreshToken');\n localStorage.removeItem('userRoleId');\n localStorage.removeItem('userName');\n this.router.navigate(['/login']);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { Event, NavigationEnd, Router } from '@angular/router';\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ConfirmationModalComponent } from '../../features/modals/confirmation-modal/confirmation-modal.component';\nimport { SuccessModalComponent } from '../../features/modals/success-modal/success-modal.component';\nimport { SidebarService } from './sidebar.service';\nimport { LocalStorageServiceService } from '@services/local-storage-service.service';\nimport { HttpService } from '@services/http.service';\nimport { API_END_POINTS } from '@constants/constant';\nimport { HttpParams } from '@angular/common/http';\nimport { USER_ROLE_ID } from '@constants/meta-data';\nimport { AuthService } from '@services/auth.service';\n\n@Component({\n selector: 'app-sidebar',\n standalone: true,\n imports: [SidebarModule, CommonModule],\n templateUrl: './sidebar.component.html',\n styleUrl: './sidebar.component.scss',\n})\nexport class SidebarComponent implements OnInit, OnDestroy {\n activeRoute!: string;\n ref!: DynamicDialogRef;\n isMobileOrTabletView = false;\n isMobileView: boolean = false;\n confirmSubscription?: Subscription;\n sideBarContent: any = [];\n adminSideBarContent: any = [\n {\n name: 'Home',\n routeLink: ['/dashboard'],\n iconPath: '/assets/images/home-2.svg',\n activeIconPath: '/assets/images/document-active.svg',\n },\n {\n name: 'Daily Production',\n routeLink: ['/chart/daily-production', '/chart/hourly-production'],\n iconPath: '/assets/images/building.svg',\n activeIconPath: '/assets/images/building-active.svg',\n },\n {\n name: 'Monthly Production',\n routeLink: ['/chart/monthly-production'],\n iconPath: '/assets/images/buildings.svg',\n activeIconPath: '/assets/images/buildings-active.svg',\n },\n {\n name: 'Module Equipment',\n routeLink: [\n '/chart/module-equipment',\n '/chart/module-equipment/quality-analysis',\n ],\n iconPath: '/assets/images/setting-4.svg',\n activeIconPath: '/assets/images/setting-active.svg',\n },\n {\n name: 'Eq. Failure Downtime',\n routeLink: ['/chart/eq-failure-downtime'],\n iconPath: '/assets/images/sidebar-bottom.svg',\n activeIconPath: '/assets/images/sidebar-bottom-active.svg',\n },\n {\n name: 'Line Status',\n routeLink: ['/chart/line-status'],\n iconPath: '/assets/images/document.svg',\n activeIconPath: '/assets/images/document-active.svg',\n },\n {\n name: 'Productivity Status',\n routeLink: [\n '/chart/productivity-status',\n '/chart/productivity-status/daily-bekido',\n '/chart/productivity-status/daily-productivity',\n ],\n iconPath: '/assets/images/productivity-inactive.svg',\n activeIconPath: '/assets/images/productivity-active.svg',\n },\n {\n name: 'User Management',\n routeLink: ['/user-management'],\n iconPath: '/assets/images/user-profile-img.svg',\n activeIconPath: '/assets/images/user-profile-active-img.svg',\n },\n {\n name: 'Line Management',\n routeLink: ['/chart/line-management'],\n iconPath: '/assets/images/chart.svg',\n activeIconPath: '/assets/images/chart-active.svg',\n },\n {\n name: 'NG Code Definitions',\n routeLink: ['/chart/ng-code'],\n iconPath: '/assets/images/hashtag-img.svg',\n activeIconPath: '/assets/images/hashtag-active-img.svg',\n },\n {\n name: 'Alarm Code Definitions',\n routeLink: ['/chart/alarm-code'],\n iconPath: '/assets/images/chart-success.svg',\n activeIconPath: '/assets/images/chart-success-active.svg',\n },\n // {\n // name: 'Progress Management',\n // routeLink: ['/chart/ms-progress'],\n // iconPath: '/assets/images/alerts-img.svg',\n // activeIconPath: '/assets/images/setting-active-img.svg',\n // },\n {\n name: 'Alerts Management',\n routeLink: ['/chart/alerts-management'],\n iconPath: '/assets/images/alerts-img.svg',\n activeIconPath: '/assets/images/alert-management-active-img.svg',\n },\n {\n name: 'Safety Security',\n routeLink: ['/safety-security'],\n iconPath: '/assets/images/security-safe-inactive-img.svg',\n activeIconPath: '/assets/images/security-safe.svg',\n },\n {\n name: 'Configurations',\n iconPath: '/assets/images/setting-img.svg',\n activeIconPath: '/assets/images/setting-active-img.svg',\n expanded: false,\n subItems: [\n {\n name: 'Manage Plants',\n routeLink: ['/configuration/manage-plants'],\n iconPath: '/assets/images/sub-item-1.svg',\n activeIconPath: '/assets/images/sub-item-1-active.svg',\n },\n {\n name: 'Prod. Loss Reason',\n routeLink: ['/configuration/loss-reason'],\n iconPath: '/assets/images/sub-item-2.svg',\n activeIconPath: '/assets/images/sub-item-2-active.svg',\n },\n {\n name: 'Line Information Input',\n routeLink: ['/configuration/line-info-input'],\n iconPath: '/assets/images/sub-item-3.svg',\n activeIconPath: '/assets/images/sub-item-3-active.svg',\n },\n ],\n },\n ];\n\n userSideBarContent: any = [\n {\n name: 'Home',\n routeLink: ['/dashboard'],\n iconPath: '/assets/images/home-2.svg',\n activeIconPath: '/assets/images/document-active.svg',\n },\n {\n name: 'Daily Production',\n routeLink: ['/chart/daily-production', '/chart/hourly-production'],\n iconPath: '/assets/images/building.svg',\n activeIconPath: '/assets/images/building-active.svg',\n },\n {\n name: 'Monthly Production',\n routeLink: ['/chart/monthly-production'],\n iconPath: '/assets/images/buildings.svg',\n activeIconPath: '/assets/images/buildings-active.svg',\n },\n {\n name: 'Module Equipment',\n routeLink: [\n '/chart/module-equipment',\n '/chart/module-equipment/quality-analysis',\n ],\n iconPath: '/assets/images/setting-4.svg',\n activeIconPath: '/assets/images/setting-active.svg',\n },\n {\n name: 'Eq. Failure Downtime',\n routeLink: ['/chart/eq-failure-downtime'],\n iconPath: '/assets/images/sidebar-bottom.svg',\n activeIconPath: '/assets/images/sidebar-bottom-active.svg',\n },\n {\n name: 'Line Status',\n routeLink: ['/chart/line-status'],\n iconPath: '/assets/images/document.svg',\n activeIconPath: '/assets/images/document-active.svg',\n },\n {\n name: 'Productivity Status',\n routeLink: [\n '/chart/productivity-status',\n '/chart/productivity-status/daily-bekido',\n '/chart/productivity-status/daily-productivity',\n ],\n iconPath: '/assets/images/productivity-inactive.svg',\n activeIconPath: '/assets/images/productivity-active.svg',\n },\n ];\n\n userName: string | null = '';\n\n constructor(\n private router: Router,\n public sidebarService: SidebarService,\n private dialogService: DialogService,\n private localStorage: LocalStorageServiceService,\n private httpService: HttpService,\n private authService: AuthService\n ) {\n this.handleResize();\n this.checkScreenSize();\n window.addEventListener('resize', this.handleResize.bind(this));\n this.activeRoute = this.router.url;\n this.router.events\n .pipe(\n filter(\n (event: Event): event is NavigationEnd =>\n event instanceof NavigationEnd\n )\n )\n .subscribe((event: NavigationEnd) => {\n this.activeRoute = event.urlAfterRedirects;\n this.expandConfigurationDropdown();\n });\n }\n\n ngOnInit() {\n const roleId = localStorage.getItem('userRoleId');\n if (roleId == USER_ROLE_ID.ADMIN) {\n this.sideBarContent = this.adminSideBarContent;\n } else this.sideBarContent = this.userSideBarContent;\n this.expandConfigurationDropdown();\n this.userName = localStorage.getItem('userName');\n }\n\n expandConfigurationDropdown() {\n this.sideBarContent.forEach((item: any) => {\n if (item.subItems) {\n item.expanded = item.subItems.some((subItem: any) =>\n this.isActiveRoute([subItem.routeLink[0]])\n );\n }\n });\n }\n\n toggleDropdown(item: any) {\n item.expanded = !item.expanded;\n }\n\n handleVisibleChange(visible: boolean) {\n if (visible !== this.sidebarService.getVisibilityValue()) {\n this.sidebarService.toggle();\n }\n }\n\n navigate(routeLink: string) {\n this.router.navigate([routeLink]).then(() => {\n if (this.isMobileOrTabletView) {\n this.sidebarService.close();\n }\n });\n }\n\n onDashboardClick() {\n this.router.navigate(['/dashboard']);\n }\n\n handleResize() {\n if (window.innerWidth <= 1024) {\n this.sidebarService.close();\n } else {\n this.sidebarService.open();\n }\n }\n\n onLogout() {\n this.ref = this.dialogService.open(ConfirmationModalComponent, {\n data: {\n headingContent: 'LOGOUT_MESSAGE',\n imageUrl: '/assets/images/archive-plant-img.svg',\n },\n width: '434px',\n styleClass: this.isMobileView\n ? 'custom-modal-border-radius mobile-modal'\n : 'custom-modal-border-radius',\n });\n this.confirmSubscription = this.ref.onClose.subscribe((result) => {\n if (result === 'confirmed') {\n this.onConfirmationLogout();\n }\n });\n }\n\n onConfirmationLogout() {\n const url = `${API_END_POINTS.LOGOUT}`;\n let params = new HttpParams();\n const token = localStorage.getItem('refreshToken');\n if (token) {\n params = params.set('refreshToken', token);\n }\n\n this.httpService\n .getRequest(url, null, { params })\n .then((response) => {\n this.authService.logout();\n this.ref = this.dialogService.open(SuccessModalComponent, {\n data: {\n headingContent: '',\n isLoginSuccess: true,\n },\n width: '384px',\n styleClass: this.isMobileView\n ? 'custom-modal-border-radius mobile-modal'\n : 'custom-modal-border-radius',\n });\n })\n .catch((error) => {\n if(error.error?.errors[0]?.message === 'Token is expired.') {\n this.authService.logout();\n }\n console.error('There was an error:', error);\n });\n }\n\n isActiveRoute(routes: string[]): boolean {\n return routes?.includes(this.activeRoute);\n }\n\n onCloseIconClick() {\n this.sidebarService.close();\n }\n\n checkScreenSize() {\n this.isMobileView = window.innerWidth < 768;\n this.isMobileOrTabletView = window.innerWidth <= 1024;\n }\n\n @HostListener('window:resize')\n onResize() {\n this.handleResize();\n this.checkScreenSize();\n }\n\n ngOnDestroy() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n if (this.confirmSubscription) {\n this.confirmSubscription?.unsubscribe();\n }\n }\n}\n","\n
\n
\n
\n \n \n
\n
    \n \n \n \n

    {{ item.name }}

    \n \n \n
      \n \n

      {{ subItem.name }}

      \n \n
    \n
    \n
\n
\n
\n
\n
\n

{{ userName }}

\n
\n \n
\n
\n
\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,oBAAoB;;;;;ACLlB,IAAA,yBAAA,GAAA,OAAA,EAAA;AAIE,IAAA,iBAAA,GAAA,sBAAA;AACF,IAAA,uBAAA;;;;;AAeA,IAAA,oBAAA,GAAA,cAAA,EAAA;;;;AAQE,IAAA,qBAAA,WAAA,OAAA,aAAA,EAAyB,YAAA,OAAA,cAAA,OAAA,aAAA,EAIe,WAAA,0BAAA,GAAA,KAAA,OAAA,cAAA,OAAA,aAAA,CAAA;;;;;;AAG1C,IAAA,yBAAA,GAAA,OAAA,EAAA,EAQC,GAAA,iBAAA,EAAA;AAGG,IAAA,2BAAA,iBAAA,SAAA,kFAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,MAAA,6BAAA,OAAA,eAAA,MAAA,MAAA,OAAA,gBAAA;AAAA,aAAA,sBAAA,MAAA;IAAA,CAAA;AAID,IAAA,uBAAA,EAAgB;;;;AALf,IAAA,oBAAA;AAAA,IAAA,qBAAA,WAAA,OAAA,aAAA;AACA,IAAA,2BAAA,WAAA,OAAA,aAAA;AAGA,IAAA,qBAAA,kBAAA,0BAAA,GAAA,GAAA,CAAA;;;ADzBA,IAAO,8BAAP,MAAO,4BAA0B;EAsBrC,YACU,IACA,QACA,KACA,aACD,QACC,eACA,eAA4B;AAN5B,SAAA,KAAA;AACA,SAAA,SAAA;AACA,SAAA,MAAA;AACA,SAAA,cAAA;AACD,SAAA,SAAA;AACC,SAAA,gBAAA;AACA,SAAA,gBAAA;AAtBV,SAAA,cAAc;AAOd,SAAA,YAAoB;AACZ,SAAA,gBAA8B,IAAI,aAAY;AAC7C,SAAA,eAAuB;AAChC,SAAA,aAAsB;AACtB,SAAA,gBAAyB;AAEzB,SAAA,mBAA4B;AAW1B,SAAK,eAAe,KAAK,GAAG,MAAM;MAChC,OAAO,CAAC,MAAM,WAAW,QAAQ;MACjC,SAAS,CAAC,IAAI;MACd,MAAM,CAAC,IAAI;KACZ;EACH;EAEA,WAAQ;AACN,SAAK,iBAAiB,KAAK,OAAO,GAAG;AACrC,SAAK,OAAO,OACT,KAAK,OAAO,CAAC,UAAU,iBAAiB,aAAa,CAAC,EACtD,UAAU,CAAC,UAAc;AACxB,WAAK,iBAAiB,MAAM,iBAAiB;IAC/C,CAAC;AACH,SAAK,cAAc,oBAAoB,UAAU,CAAC,YAAW;AAC3D,WAAK,eAAe;IACtB,CAAC;AAED,SAAK,UAAU,aAAa,QAAQ,SAAS;AAE7C,SAAK,cAAc,IACjB,KAAK,cAAc,QAAQ,UAAU,CAAC,YAA0B;AAC9D,WAAK,UAAU;AACf,WAAK,oBAAmB;IAC1B,CAAC,CAAC;AAGJ,SAAK,cAAc,oBAAoB,UAAU,CAAC,YAAW;AAC3D,WAAK,eAAe;AACpB,UACE,KAAK,iBAAiB,qBACtB,KAAK,iBAAiB,4BACtB,KAAK,iBAAiB,qBACtB,KAAK,iBAAiB,4BACtB,KAAK,iBAAiB,qBACtB;AACA,aAAK,aAAa;AAClB,aAAK,gBAAgB;AACrB,aAAK,cAAc,aAAY;AAC/B,aAAK,UAAU,aAAa,QAAQ,SAAS;AAC7C,YAAI,KAAK;AAAS,eAAK,cAAc,WAAW,KAAK,OAAO;AAC5D,aAAK,YAAY,aAAa,QAAQ,WAAW;AACjD,YAAI,KAAK;AAAW,eAAK,cAAc,aAAa,KAAK,SAAS;AAClE,aAAK,SAAS,aAAa,QAAQ,QAAQ;AAC3C,YAAI,KAAK;AAAQ,eAAK,cAAc,UAAU,KAAK,MAAM;MAC3D,WAAW,KAAK,iBAAiB,iBAAiB;AAChD,aAAK,UAAU;AACf,aAAK,YAAY;AACjB,aAAK,SAAS;AACd,aAAK,gBAAgB;AACrB,aAAK,aAAa;MACpB,OAAO;AACL,aAAK,gBAAgB;AACrB,aAAK,aAAa;AAClB,aAAK,UAAU,aAAa,QAAQ,SAAS;AAC7C,YAAI,KAAK;AAAS,eAAK,cAAc,WAAW,KAAK,OAAO;AAC5D,aAAK,YAAY,aAAa,QAAQ,WAAW;AACjD,YAAI,KAAK;AAAW,eAAK,cAAc,aAAa,KAAK,SAAS;AAClE,aAAK,SAAS,aAAa,QAAQ,QAAQ;AAC3C,YAAI,KAAK;AAAQ,eAAK,cAAc,UAAU,KAAK,MAAM;MAC3D;AACA,WAAK,cAAc,YAAY,KAAI;IACrC,CAAC;AAED,SAAK,YAAY,aAAa,QAAQ,WAAW;AAEjD,SAAK,SAAS,aAAa,QAAQ,QAAQ;AAE3C,UAAM,cAAc,aAAa,QAAQ,eAAe;AACxD,QAAI,aAAa;AACf,WAAK,gBAAgB,KAAK,MAAM,WAAW;IAC7C;AAEA,SAAK,cAAc,IACjB,KAAK,cAAc,OAAO,UAAU,CAAC,WAAyB;AAC5D,WAAK,SAAS;AACd,WAAK,mBAAkB;IACzB,CAAC,CAAC;AAGJ,SAAK,cAAc,IACjB,KAAK,cAAc,UAAU,UAAU,CAAC,cAA4B;AAClE,WAAK,YAAY;AACjB,WAAK,sBAAqB;IAC5B,CAAC,CAAC;AAGJ,SAAK,cAAc,IACjB,KAAK,cAAc,QAAQ,UAAU,CAAC,YAA4B;AAChE,UAAI,SAAS;AACX,aAAK,gBAAgB;AACrB,qBAAa,QACX,iBACA,KAAK,UAAU,KAAK,aAAa,CAAC;MAEtC;IACF,CAAC,CAAC;AAGJ,SAAK,aAAY;AACjB,SAAK,eAAc;AACnB,QAAI,KAAK,WAAW;AAClB,WAAK,YAAW;IAClB,WAAW,KAAK,SAAS;AACvB,WAAK,mBAAkB;IACzB;EACF;EAEA,sBAAmB;AACjB,UAAM,gBAAgB,KAAK,WAAW,KACpC,CAAC,UAA0B,MAAM,OAAO,CAAC,KAAK,OAAO;AAEvD,QAAI,eAAe;AACjB,WAAK,aACF,IAAI,OAAO,GACV,SAAS,eAAe,EAAE,WAAW,MAAK,CAAE;IAClD;EACF;EAEA,wBAAqB;AACnB,UAAM,kBAAkB,KAAK,aAAa,KACxC,CAAC,YAA4B,QAAQ,OAAO,CAAC,KAAK,SAAS;AAE7D,QAAI,iBAAiB;AACnB,WAAK,aACF,IAAI,SAAS,GACZ,SAAS,iBAAiB,EAAE,WAAW,MAAK,CAAE;AAClD,WAAK,YAAY,eAAe;IAClC;EACF;EAEA,qBAAkB;AAChB,UAAM,eAAe,KAAK,WAAW,KACnC,CAAC,SAAyB,KAAK,OAAO,CAAC,KAAK,MAAM;AAEpD,QAAI,cAAc;AAChB,WAAK,aACF,IAAI,MAAM,GACT,SAAS,cAAc,EAAE,WAAW,MAAK,CAAE;IACjD;EACF;EAEA,YAAY,iBAA4B;AACtC,QAAI,iBAAiB;AACnB,WAAK,gBAAgB,KAAK,WAAW,OACnC,CAAC,SAAS,KAAK,cAAc,iBAAiB,EAAE;IAEpD,OAAO;AACL,WAAK,gBAAgB,KAAK;IAC5B;EACF;EAEA,cAAc,OAA2B;AACvC,QAAI,OAAO;AACT,WAAK,UAAU,MAAM,MAAM;AAC3B,WAAK,eAAc;AACnB,WAAK,YAAW;IAClB;EACF;EAEA,gBAAgB,OAA6B;AAC3C,UAAM,kBAAkB,MAAM;AAC9B,SAAK,gBAAY,mBAAI,OAAO,UAAU;AACtC,SAAK,YAAY,eAAe;AAChC,SAAK,aAAa,IAAI,MAAM,GAAG,SAAS,IAAI;AAC5C,SAAK,gBAAgB,CAAA;AACrB,SAAK,YAAW;EAClB;EAEA,eAAY;AACV,UAAM,MAAM,eAAe;AAC3B,QAAI,SAAS,IAAI,WAAU,EAAG,IAAI,cAAc,CAAC,EAAE,IAAI,YAAY,CAAC;AACpE,SAAK,YACF,WAAW,KAAK,MAAM,EAAE,OAAM,CAAE,EAChC,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,YAAY,SAAS,KAAK,OAC7B,CAAC,UAAiC,MAAM,QAAQ;AAElD,aAAK,oBAAmB;MAC1B,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,iBAAc;AACZ,QAAI,CAAC,KAAK;AAAS;AACnB,UAAM,MAAM,GAAG,eAAe,sBAAsB,GAAG,KAAK,OAAO;AACnE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,cAAc,SAAS;AAC5B,aAAK,sBAAqB;MAC5B,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,cAAW;AACT,QAAI,CAAC,KAAK;AAAW;AACrB,UAAM,MAAM,GAAG,eAAe,qBAAqB,GAAG,KAAK,SAAS;AACpE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,YAAY;AACjB,aAAK,gBAAgB,KAAK;AAC1B,aAAK,mBAAkB;MACzB,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,cAAW;AACT,SAAK,cAAc;AACnB,QAAI,KAAK,aAAa,OAAO;AAC3B,WAAK,IAAI,MAAM;QACb,MAAM,KAAK;QACX,eAAe,KAAK;OACrB;IACH;EACF;EAEA,IAAI,iBAAc;AAChB,WAAO,KAAK,aAAa,IAAI,SAAS;EACxC;EAEA,IAAI,qBAAkB;AACpB,UAAM,kBAAkB,CAAC,CAAC,KAAK,aAAa,IAAI,SAAS,GAAG;AAC5D,UAAM,eAAe,CAAC,CAAC,KAAK,aAAa,IAAI,MAAM,GAAG;AACtD,WAAO,EAAE,mBAAmB;EAC9B;EAEA,aAAa,cAAsB;AACjC,SAAK,SAAS,aAAa;AAC3B,iBAAa,QAAQ,UAAU,KAAK,MAAM;EAC5C;EAEQ,iBAAiB,KAAW;AAClC,QAAI,QAAQ,4BAA4B;AACtC,WAAK,mBAAmB;IAC1B,OAAO;AACL,WAAK,mBAAmB;IAC1B;EACF;EAEA,kBAAe;AACb,SAAK,IAAI,MAAM,IAAI;EACrB;EAEA,cAAW;AACT,QAAI,KAAK,qBAAqB;AAC5B,WAAK,qBAAqB,YAAW;IACvC;AACA,QAAI,KAAK;AAAkB,WAAK,kBAAkB,YAAW;AAC7D,SAAK,cAAc,YAAW;EAChC;EAEA,qBAAkB;AAChB,UAAM,MAAM,GAAG,eAAe,mBAAmB,GAAG,KAAK,OAAO;AAChE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,YAAY;MACnB,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;;;mBA5TW,6BAA0B,4BAAA,WAAA,GAAA,4BAAA,MAAA,GAAA,4BAAA,gBAAA,GAAA,4BAAA,WAAA,GAAA,4BAAA,mBAAA,GAAA,4BAAA,aAAA,GAAA,4BAAA,aAAA,CAAA;AAAA;4FAA1B,6BAA0B,WAAA,CAAA,CAAA,yBAAA,CAAA,GAAA,QAAA,EAAA,cAAA,eAAA,GAAA,YAAA,MAAA,UAAA,CAAA,6BAAA,GAAA,OAAA,IAAA,MAAA,IAAA,QAAA,CAAA,CAAA,GAAA,uBAAA,GAAA,WAAA,GAAA,CAAA,GAAA,QAAA,mBAAA,GAAA,CAAA,GAAA,SAAA,GAAA,CAAA,OAAA,SAAA,GAAA,WAAA,GAAA,CAAA,GAAA,SAAA,GAAA,CAAA,mBAAA,SAAA,eAAA,QAAA,GAAA,SAAA,UAAA,GAAA,YAAA,WAAA,eAAA,YAAA,WAAA,WAAA,GAAA,CAAA,SAAA,SAAA,GAAA,MAAA,GAAA,CAAA,OAAA,WAAA,GAAA,WAAA,GAAA,CAAA,mBAAA,WAAA,eAAA,eAAA,GAAA,SAAA,UAAA,GAAA,YAAA,WAAA,eAAA,YAAA,WAAA,WAAA,GAAA,CAAA,OAAA,QAAA,GAAA,WAAA,GAAA,CAAA,mBAAA,QAAA,eAAA,YAAA,eAAA,gBAAA,GAAA,WAAA,YAAA,WAAA,GAAA,MAAA,GAAA,CAAA,SAAA,wBAAA,GAAA,MAAA,GAAA,CAAA,GAAA,QAAA,mBAAA,MAAA,GAAA,CAAA,GAAA,SAAA,MAAA,GAAA,CAAA,GAAA,UAAA,GAAA,WAAA,QAAA,UAAA,GAAA,CAAA,GAAA,SAAA,MAAA,GAAA,CAAA,GAAA,UAAA,GAAA,WAAA,QAAA,YAAA,UAAA,GAAA,CAAA,GAAA,OAAA,GAAA,CAAA,mBAAA,QAAA,eAAA,YAAA,eAAA,gBAAA,GAAA,WAAA,YAAA,SAAA,GAAA,CAAA,GAAA,sBAAA,GAAA,CAAA,eAAA,YAAA,eAAA,gBAAA,GAAA,iBAAA,WAAA,WAAA,gBAAA,CAAA,GAAA,UAAA,SAAA,oCAAA,IAAA,KAAA;AAAA,MAAA,KAAA,GAAA;AC1CvC,IAAA,yBAAA,GAAA,OAAA,CAAA,EAA4D,GAAA,OAAA,CAAA,EACtB,GAAA,MAAA,CAAA;AACd,IAAA,iBAAA,CAAA;AAAiB,IAAA,uBAAA,EAAK;AAE5C,IAAA,yBAAA,GAAA,SAAA,CAAA;AACG,IAAA,iBAAA,CAAA;;AAA0B,IAAA,yBAAA,GAAA,QAAA,CAAA;AAAsB,IAAA,iBAAA,GAAA,GAAA;AAAC,IAAA,uBAAA,EAAO;AAE3D,IAAA,yBAAA,GAAA,cAAA,CAAA;;AAME,IAAA,qBAAA,YAAA,SAAA,mEAAA,QAAA;AAAA,aAAY,IAAA,cAAA,MAAA;IAAqB,CAAA;AAIlC,IAAA,uBAAA;AACD,IAAA,qBAAA,IAAA,4CAAA,GAAA,GAAA,OAAA,CAAA;AAMA,IAAA,yBAAA,IAAA,SAAA,CAAA;AAAuC,IAAA,iBAAA,EAAA;;AAA4B,IAAA,uBAAA;AACnE,IAAA,yBAAA,IAAA,cAAA,CAAA;;AAME,IAAA,qBAAA,YAAA,SAAA,oEAAA,QAAA;AAAA,aAAY,IAAA,gBAAA,MAAA;IAAuB,CAAA;AAKrC,IAAA,uBAAA;AACA,IAAA,yBAAA,IAAA,SAAA,CAAA;AAAoC,IAAA,iBAAA,EAAA;;AAAwB,IAAA,uBAAA;AAC5D,IAAA,qBAAA,IAAA,mDAAA,GAAA,GAAA,cAAA,EAAA,EAcC,IAAA,4CAAA,GAAA,GAAA,OAAA,EAAA;AAkBD,IAAA,yBAAA,IAAA,OAAA,EAAA,EAAuC,IAAA,OAAA,EAAA,EACb,IAAA,cAAA,EAAA;AAGpB,IAAA,qBAAA,WAAA,SAAA,qEAAA;AAAA,aAAW,IAAA,gBAAA;IAAiB,CAAA;AAG7B,IAAA,uBAAA,EAAa;AAEhB,IAAA,yBAAA,IAAA,OAAA,EAAA,EAAwB,IAAA,cAAA,EAAA;AAGpB,IAAA,qBAAA,WAAA,SAAA,qEAAA;AAAA,aAAW,IAAA,YAAA;IAAa,CAAA;AAIzB,IAAA,uBAAA,EAAa,EACV,EACF;;;;AAxFyB,IAAA,qBAAA,aAAA,IAAA,YAAA;AAET,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,WAAA;AAGnB,IAAA,oBAAA,CAAA;AAAA,IAAA,6BAAA,IAAA,sBAAA,GAAA,IAAA,OAAA,GAAA,GAAA;AAMD,IAAA,oBAAA,CAAA;AAAA,IAAA,gCAAA,eAAA,sBAAA,IAAA,IAAA,cAAA,CAAA;AAHA,IAAA,qBAAA,WAAA,IAAA,SAAA,EAAqB,YAAA,IAAA,aAAA,EAMK,WAAA,0BAAA,IAAA,KAAA,IAAA,aAAA,CAAA,EACwB,aAAA,KAAA;AAIjD,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,UAAA,UAAA,IAAA,aAAA,IAAA,OAAA,MAAA,OAAA,OAAA,QAAA,SAAA,UAAA,MAAA,IAAA,WAAA;AAKoC,IAAA,oBAAA,CAAA;AAAA,IAAA,6BAAA,IAAA,sBAAA,IAAA,IAAA,SAAA,GAAA,GAAA;AAKrC,IAAA,oBAAA,CAAA;AAAA,IAAA,gCAAA,eAAA,sBAAA,IAAA,IAAA,gBAAA,CAAA;AAHA,IAAA,qBAAA,WAAA,IAAA,WAAA,EAAuB,YAAA,IAAA,aAAA,EAMG,WAAA,0BAAA,IAAA,KAAA,IAAA,aAAA,CAAA,EACwB,aAAA,KAAA;AAIhB,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,sBAAA,IAAA,IAAA,MAAA,CAAA;AAEjC,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,EAAA,IAAA,iBAAA,sBAAA,IAAA,iBAAA,yBAAA,IAAA,iBAAA,4BAAA,IAAA,gBAAA;AAeA,IAAA,oBAAA;AAAA,IAAA,qBAAA,SAAA,IAAA,iBAAA,sBAAA,IAAA,iBAAA,yBAAA,IAAA,iBAAA,4BAAA,CAAA,IAAA,gBAAA;AAmBG,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,WAAA,EAAoB,YAAA,YAAA;AAQpB,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,OAAA,EAAgB,YAAA,UAAA,EAGO,YAAA,IAAA,kBAAA;;;EDtD3B;EAAc;EACd;EAAW;EAAA;EAAA;EACX;EACA;EAAe;EACf;EAAY;EAAA;EACZ;EAAmB;EAAA;EACnB;EAAiB;AAAA,GAAA,QAAA,CAAA,2zCAAA,EAAA,CAAA;AAMf,IAAO,6BAAP;;6EAAO,4BAA0B,EAAA,WAAA,8BAAA,UAAA,gFAAA,YAAA,GAAA,CAAA;AAAA,GAAA;;;AEhCvC,IAAMA,OAAM,CAAC,IAAI,IAAI,QAAQ;AAAA,EAC3B,uCAAuC;AAAA,EACvC,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,cAAc;AAChB;AACA,IAAMC,OAAM,CAAC,IAAI,QAAQ;AAAA,EACvB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,uBAAuB;AACzB;AACA,IAAM,MAAM,SAAO;AAAA,EACjB,WAAW;AACb;AACA,SAAS,2CAA2C,IAAI,KAAK;AAC3D,MAAI,KAAK,GAAG;AACV,IAAG,oBAAU,GAAG,QAAQ,CAAC;AAAA,EAC3B;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,qBAAW,OAAO,UAAU,OAAO,SAAS,OAAO,OAAO;AAC7D,IAAG,qBAAW,WAAc,0BAAgB,GAAGA,MAAK,OAAO,YAAY,QAAQ,OAAO,YAAY,OAAO,CAAC;AAC1G,IAAG,sBAAY,mBAAmB,MAAM;AAAA,EAC1C;AACF;AACA,SAAS,oCAAoC,IAAI,KAAK;AACpD,MAAI,KAAK,GAAG;AACV,IAAG,qBAAW,GAAG,4CAA4C,GAAG,GAAG,QAAQ,CAAC;AAAA,EAC9E;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc;AAChC,IAAG,qBAAW,QAAQ,OAAO,UAAU,OAAO,OAAO;AAAA,EACvD;AACF;AACA,SAAS,mDAAmD,IAAI,KAAK;AACnE,MAAI,KAAK,GAAG;AACV,IAAG,6BAAmB,CAAC;AAAA,EACzB;AACF;AACA,SAAS,oCAAoC,IAAI,KAAK;AACpD,MAAI,KAAK,GAAG;AACV,IAAG,qBAAW,GAAG,oDAAoD,GAAG,GAAG,gBAAgB,CAAC;AAAA,EAC9F;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc;AAChC,IAAG,qBAAW,oBAAoB,OAAO,YAAY,EAAE,2BAA8B,0BAAgB,GAAG,KAAK,OAAO,OAAO,CAAC;AAAA,EAC9H;AACF;AACA,SAAS,6BAA6B,IAAI,KAAK;AAC7C,MAAI,KAAK,GAAG;AACV,IAAG,yBAAe,GAAG,QAAQ,CAAC;AAC9B,IAAG,iBAAO,CAAC;AACX,IAAG,uBAAa;AAAA,EAClB;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc;AAChC,IAAG,sBAAY,mBAAmB,OAAO;AACzC,IAAG,oBAAU;AACb,IAAG,4BAAkB,OAAO,UAAU,OAAO,aAAa,OAAO,UAAU,KAAK,OAAO,cAAc,OAAO,WAAW,EAAE;AAAA,EAC3H;AACF;AACA,IAAM,8BAA8B;AAAA,EAClC,SAAS;AAAA,EACT,aAAa,WAAW,MAAM,YAAY;AAAA,EAC1C,OAAO;AACT;AAKA,IAAM,eAAN,MAAM,cAAa;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKX,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,IAAI,aAAa;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,YAAY,IAAI;AACd,SAAK,KAAK;AAAA,EACZ;AAAA,EACA,qBAAqB;AACnB,SAAK,UAAU,QAAQ,UAAQ;AAC7B,cAAQ,KAAK,QAAQ,GAAG;AAAA,QACtB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF;AACE,eAAK,eAAe,KAAK;AACzB;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,OAAO,OAAO;AACZ,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,UAAU,CAAC,KAAK;AACrB,WAAK,cAAc,KAAK,OAAO;AAC/B,WAAK,eAAe;AACpB,WAAK,SAAS,KAAK;AAAA,QACjB,eAAe;AAAA,QACf,SAAS,KAAK;AAAA,MAChB,CAAC;AACD,WAAK,GAAG,aAAa;AAAA,IACvB;AAAA,EACF;AAAA,EACA,UAAU,OAAO;AACf,YAAQ,MAAM,MAAM;AAAA,MAClB,KAAK;AACH,aAAK,OAAO,KAAK;AACjB,cAAM,eAAe;AACrB;AAAA,MACF,KAAK;AACH,aAAK,OAAO,KAAK;AACjB,cAAM,eAAe;AACrB;AAAA,IACJ;AAAA,EACF;AAAA,EACA,SAAS;AACP,SAAK,eAAe;AAAA,EACtB;AAAA,EACA,WAAW,OAAO;AAChB,SAAK,UAAU;AACf,SAAK,GAAG,aAAa;AAAA,EACvB;AAAA,EACA,iBAAiB,IAAI;AACnB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EACA,kBAAkB,IAAI;AACpB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EACA,iBAAiB,KAAK;AACpB,SAAK,WAAW;AAChB,SAAK,GAAG,aAAa;AAAA,EACvB;AAAA,EACA,IAAI,aAAa;AACf,WAAO,KAAK,WAAW,KAAK,QAAQ,SAAS;AAAA,EAC/C;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,KAAK,WAAW,KAAK,QAAQ,SAAS;AAAA,EAC/C;AAAA,EACA,OAAO,YAAO,SAAS,qBAAqB,GAAG;AAC7C,WAAO,KAAK,KAAK,eAAiB,4BAAqB,iBAAiB,CAAC;AAAA,EAC3E;AAAA,EACA,OAAO,YAAsB,gBAAG,4BAAkB;AAAA,IAChD,MAAM;AAAA,IACN,WAAW,CAAC,CAAC,gBAAgB,CAAC;AAAA,IAC9B,gBAAgB,SAAS,4BAA4B,IAAI,KAAK,UAAU;AACtE,UAAI,KAAK,GAAG;AACV,QAAG,yBAAe,UAAU,eAAe,CAAC;AAAA,MAC9C;AACA,UAAI,KAAK,GAAG;AACV,YAAI;AACJ,QAAG,yBAAe,KAAQ,sBAAY,CAAC,MAAM,IAAI,YAAY;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,WAAW,CAAC,GAAG,WAAW;AAAA,IAC1B,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,UAAU,CAAI,WAAa,4BAA4B,YAAY,YAAY,gBAAgB;AAAA,MAC/F,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,UAAU,CAAI,WAAa,4BAA4B,YAAY,YAAY,eAAe;AAAA,MAC9F,SAAS;AAAA,MACT,WAAW,CAAI,WAAa,4BAA4B,aAAa,aAAa,gBAAgB;AAAA,IACpG;AAAA,IACA,SAAS;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,UAAU,CAAI,6BAAmB,CAAC,2BAA2B,CAAC,GAAM,kCAAwB;AAAA,IAC5F,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ,CAAC,CAAC,QAAQ,UAAU,WAAW,IAAI,cAAc,IAAI,GAAG,SAAS,WAAW,WAAW,WAAW,WAAW,GAAG,CAAC,GAAG,SAAS,SAAS,GAAG,CAAC,SAAS,kBAAkB,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,oBAAoB,yBAAyB,GAAG,CAAC,GAAG,gBAAgB,CAAC;AAAA,IACtT,UAAU,SAAS,sBAAsB,IAAI,KAAK;AAChD,UAAI,KAAK,GAAG;AACV,QAAG,yBAAe,GAAG,OAAO,CAAC;AAC7B,QAAG,qBAAW,SAAS,SAAS,2CAA2C,QAAQ;AACjF,iBAAO,IAAI,OAAO,MAAM;AAAA,QAC1B,CAAC,EAAE,WAAW,SAAS,6CAA6C,QAAQ;AAC1E,iBAAO,IAAI,UAAU,MAAM;AAAA,QAC7B,CAAC;AACD,QAAG,qBAAW,GAAG,qCAAqC,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,qCAAqC,GAAG,CAAC,EAAE,GAAG,8BAA8B,GAAG,GAAG,QAAQ,CAAC;AACrK,QAAG,uBAAa;AAAA,MAClB;AACA,UAAI,KAAK,GAAG;AACV,QAAG,qBAAW,IAAI,UAAU;AAC5B,QAAG,qBAAW,WAAc,0BAAgB,IAAID,MAAK,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,cAAc,CAAC,IAAI,aAAa,IAAI,SAAS,IAAI,QAAQ,CAAC,EAAE,WAAW,IAAI,KAAK,EAAE,aAAa,IAAI,SAAS;AACnM,QAAG,sBAAY,YAAY,IAAI,WAAW,OAAO,IAAI,QAAQ,EAAE,gBAAgB,IAAI,OAAO,EAAE,mBAAmB,IAAI,cAAc,EAAE,cAAc,IAAI,SAAS,EAAE,gBAAgB,cAAc,EAAE,mBAAmB,MAAM;AACzN,QAAG,oBAAU;AACb,QAAG,wBAAc,GAAG,CAAC,IAAI,eAAe,IAAI,CAAC;AAC7C,QAAG,oBAAU,CAAC;AACd,QAAG,qBAAW,QAAQ,IAAI,WAAW,IAAI,QAAQ;AAAA,MACnD;AAAA,IACF;AAAA,IACA,cAAc,CAAI,SAAY,MAAS,kBAAqB,SAAY,QAAW,SAAS;AAAA,IAC5F,QAAQ,CAAC,u8GAAy8G;AAAA,IACl9G,iBAAiB;AAAA,EACnB,CAAC;AACH;AAAA,CACC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,cAAc,CAAC;AAAA,IACrF,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA+BV,WAAW,CAAC,2BAA2B;AAAA,MACvC,iBAAiB,wBAAwB;AAAA,MACzC,MAAM;AAAA,QACJ,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,CAAC,khEAAohE;AAAA,IAC/hE,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAS;AAAA,EACX,CAAC,GAAG;AAAA,IACF,SAAS,CAAC;AAAA,MACR,MAAM;AAAA,IACR,CAAC;AAAA,IACD,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,IACD,QAAQ,CAAC;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,IACD,SAAS,CAAC;AAAA,MACR,MAAM;AAAA,IACR,CAAC;AAAA,IACD,WAAW,CAAC;AAAA,MACV,MAAM;AAAA,IACR,CAAC;AAAA,IACD,gBAAgB,CAAC;AAAA,MACf,MAAM;AAAA,IACR,CAAC;AAAA,IACD,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,OAAO,CAAC;AAAA,MACN,MAAM;AAAA,IACR,CAAC;AAAA,IACD,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,IACR,CAAC;AAAA,IACD,SAAS,CAAC;AAAA,MACR,MAAM;AAAA,IACR,CAAC;AAAA,IACD,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,SAAS,CAAC;AAAA,MACR,MAAM;AAAA,IACR,CAAC;AAAA,IACD,WAAW,CAAC;AAAA,MACV,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,IACD,WAAW,CAAC;AAAA,MACV,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,IACtB,CAAC;AAAA,EACH,CAAC;AACH,GAAG;AACH,IAAM,qBAAN,MAAM,oBAAmB;AAAA,EACvB,OAAO,YAAO,SAAS,2BAA2B,GAAG;AACnD,WAAO,KAAK,KAAK,qBAAoB;AAAA,EACvC;AAAA,EACA,OAAO,YAAsB,gBAAG,2BAAiB;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,OAAO,YAAsB,gBAAG,2BAAiB;AAAA,IAC/C,SAAS,CAAC,cAAc,cAAc,cAAc,iBAAiB,YAAY;AAAA,EACnF,CAAC;AACH;AAAA,CACC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,oBAAoB,CAAC;AAAA,IAC3F,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,SAAS,CAAC,cAAc,cAAc,cAAc,eAAe;AAAA,MACnE,SAAS,CAAC,cAAc,YAAY;AAAA,MACpC,cAAc,CAAC,YAAY;AAAA,IAC7B,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,IAAI;AAChB,GAAG;;;AC5YG,IAAO,mBAAP,MAAO,iBAAe;EAP5B,cAAA;AAQW,SAAA,YAAY;AACX,SAAA,kBAAkB,IAAI,aAAY;;EAE5C,SAAM;AACJ,SAAK,YAAY,CAAC,KAAK;AACvB,SAAK,gBAAgB,KAAK,KAAK,SAAS;EAC1C;;;mBAPW,kBAAe;AAAA;iFAAf,kBAAe,WAAA,CAAA,CAAA,YAAA,CAAA,GAAA,QAAA,EAAA,WAAA,YAAA,GAAA,SAAA,EAAA,iBAAA,kBAAA,GAAA,YAAA,MAAA,UAAA,CAAA,6BAAA,GAAA,OAAA,GAAA,MAAA,GAAA,QAAA,CAAA,CAAA,GAAA,iBAAA,GAAA,OAAA,GAAA,CAAA,GAAA,aAAA,CAAA,GAAA,UAAA,SAAA,yBAAA,IAAA,KAAA;AAAA,MAAA,KAAA,GAAA;ACX5B,IAAA,yBAAA,GAAA,OAAA,CAAA;AAAsD,IAAA,qBAAA,SAAA,SAAA,gDAAA;AAAA,aAAS,IAAA,OAAA;IAAQ,CAAA;AACnE,IAAA,oBAAA,GAAA,OAAA,CAAA;AACJ,IAAA,uBAAA;;;AAF2B,IAAA,sBAAA,UAAA,IAAA,SAAA;;kBDOf,oBAAoB,WAAW,GAAA,QAAA,CAAA,suBAAA,EAAA,CAAA;AAIrC,IAAO,kBAAP;;6EAAO,iBAAe,EAAA,WAAA,mBAAA,UAAA,6CAAA,YAAA,GAAA,CAAA;AAAA,GAAA;;;AES5B,IAAAE,iBAAoB;;;AEdd,IAAO,kBAAP,MAAO,gBAAc;EAH3B,cAAA;AAIU,SAAA,aAAa,IAAI,gBAAyB,IAAI;AAC/C,SAAA,YAAY,KAAK,WAAW,aAAY;;EAE/C,SAAM;AACJ,SAAK,WAAW,KAAK,CAAC,KAAK,WAAW,KAAK;EAC7C;EAEA,QAAK;AACH,SAAK,WAAW,KAAK,KAAK;EAC5B;EAEA,OAAI;AACF,SAAK,WAAW,KAAK,IAAI;EAC3B;EAEA,qBAAkB;AAChB,WAAO,KAAK,WAAW;EACzB;;;mBAlBW,iBAAc;AAAA;mFAAd,iBAAc,SAAd,gBAAc,WAAA,YAFb,OAAM,CAAA;AAEd,IAAO,iBAAP;;;ACeN,SAAS,YAAY,OAAO;AACxB,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAChD;;;ACjBA,IAAI;AAMJ,IAAI;AACF,uBAAqB,OAAO,SAAS,eAAe,KAAK;AAC3D,QAAQ;AACN,uBAAqB;AACvB;AAKA,IAAM,YAAN,MAAM,UAAS;AAAA,EACb,YAAY,aAAa;AACvB,SAAK,cAAc;AAKnB,SAAK,YAAY,KAAK,cAAc,kBAAkB,KAAK,WAAW,IAAI,OAAO,aAAa,YAAY,CAAC,CAAC;AAE5G,SAAK,OAAO,KAAK,aAAa,UAAU,KAAK,UAAU,SAAS;AAEhE,SAAK,UAAU,KAAK,aAAa,kBAAkB,KAAK,UAAU,SAAS;AAG3E,SAAK,QAAQ,KAAK,aAAa,CAAC,EAAE,OAAO,UAAU,uBAAuB,OAAO,QAAQ,eAAe,CAAC,KAAK,QAAQ,CAAC,KAAK;AAI5H,SAAK,SAAS,KAAK,aAAa,eAAe,KAAK,UAAU,SAAS,KAAK,CAAC,KAAK,SAAS,CAAC,KAAK,QAAQ,CAAC,KAAK;AAE/G,SAAK,MAAM,KAAK,aAAa,mBAAmB,KAAK,UAAU,SAAS,KAAK,EAAE,cAAc;AAM7F,SAAK,UAAU,KAAK,aAAa,uBAAuB,KAAK,UAAU,SAAS;AAGhF,SAAK,UAAU,KAAK,aAAa,WAAW,KAAK,UAAU,SAAS,KAAK,CAAC,KAAK;AAK/E,SAAK,SAAS,KAAK,aAAa,UAAU,KAAK,UAAU,SAAS,KAAK,KAAK;AAAA,EAC9E;AAaF;AAXI,UAAK,YAAO,SAAS,iBAAiB,GAAG;AACvC,SAAO,KAAK,KAAK,WAAa,mBAAS,WAAW,CAAC;AACrD;AAGA,UAAK,aAAuB,gBAAG,6BAAmB;AAAA,EAChD,OAAO;AAAA,EACP,SAAS,UAAS;AAAA,EAClB,YAAY;AACd,CAAC;AA9CL,IAAM,WAAN;AAAA,CAiDC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,UAAU,CAAC;AAAA,IACjF,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,YAAY;AAAA,IACd,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,WAAW;AAAA,IACpB,CAAC;AAAA,EACH,CAAC,GAAG,IAAI;AACV,GAAG;AACH,IAAM,kBAAN,MAAM,gBAAe;AAcrB;AAZI,gBAAK,YAAO,SAAS,uBAAuB,GAAG;AAC7C,SAAO,KAAK,KAAK,iBAAgB;AACnC;AAGA,gBAAK,YAAsB,gBAAG,2BAAiB;AAAA,EAC7C,MAAM;AACR,CAAC;AAGD,gBAAK,YAAsB,gBAAG,2BAAiB,CAAC,CAAC;AAZrD,IAAM,iBAAN;AAAA,CAeC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,gBAAgB,CAAC;AAAA,IACvF,MAAM;AAAA,IACN,MAAM,CAAC,CAAC,CAAC;AAAA,EACX,CAAC,GAAG,MAAM,IAAI;AAChB,GAAG;AA6DH,IAAI;AAAA,CACH,SAAUC,oBAAmB;AAK5B,EAAAA,mBAAkBA,mBAAkB,QAAQ,IAAI,CAAC,IAAI;AAKrD,EAAAA,mBAAkBA,mBAAkB,SAAS,IAAI,CAAC,IAAI;AAKtD,EAAAA,mBAAkBA,mBAAkB,UAAU,IAAI,CAAC,IAAI;AACzD,GAAG,sBAAsB,oBAAoB,CAAC,EAAE;;;AChLhD,IAAM,gBAAN,MAAM,cAAa;AAcnB;AAZI,cAAK,YAAO,SAAS,qBAAqB,GAAG;AAC3C,SAAO,KAAK,KAAK,eAAc;AACjC;AAGA,cAAK,YAAsB,gBAAG,2BAAiB;AAAA,EAC7C,MAAM;AACR,CAAC;AAGD,cAAK,YAAsB,gBAAG,2BAAiB,CAAC,CAAC;AAZrD,IAAM,eAAN;AAAA,CAeC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,cAAc,CAAC;AAAA,IACrF,MAAM;AAAA,IACN,MAAM,CAAC,CAAC,CAAC;AAAA,EACX,CAAC,GAAG,MAAM,IAAI;AAChB,GAAG;AAGH,IAAM,qCAAqC,oBAAI,IAAI;AAEnD,IAAI;AAEJ,IAAM,gBAAN,MAAM,cAAa;AAAA,EACjB,YAAY,WAAW,QAAQ;AAC7B,SAAK,YAAY;AACjB,SAAK,SAAS;AACd,SAAK,cAAc,KAAK,UAAU,aAAa,OAAO;AAAA;AAAA;AAAA,MAGtD,OAAO,WAAW,KAAK,MAAM;AAAA,QAAI;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,OAAO;AAChB,QAAI,KAAK,UAAU,UAAU,KAAK,UAAU,OAAO;AACjD,2BAAqB,OAAO,KAAK,MAAM;AAAA,IACzC;AACA,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AAaF;AAXI,cAAK,YAAO,SAAS,qBAAqB,GAAG;AAC3C,SAAO,KAAK,KAAK,eAAiB,mBAAY,QAAQ,GAAM,mBAAS,WAAW,CAAC,CAAC;AACpF;AAGA,cAAK,aAAuB,gBAAG,6BAAmB;AAAA,EAChD,OAAO;AAAA,EACP,SAAS,cAAa;AAAA,EACtB,YAAY;AACd,CAAC;AA/BL,IAAM,eAAN;AAAA,CAkCC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,cAAc,CAAC;AAAA,IACrF,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,YAAY;AAAA,IACd,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAM;AAAA,IACN,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,IACR,GAAG;AAAA,MACD,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,IAClB,CAAC;AAAA,EACH,CAAC,GAAG,IAAI;AACV,GAAG;AAUH,SAAS,qBAAqB,OAAO,OAAO;AAC1C,MAAI,mCAAmC,IAAI,KAAK,GAAG;AACjD;AAAA,EACF;AACA,MAAI;AACF,QAAI,CAAC,qBAAqB;AACxB,4BAAsB,SAAS,cAAc,OAAO;AACpD,UAAI,OAAO;AACT,4BAAoB,QAAQ;AAAA,MAC9B;AACA,0BAAoB,aAAa,QAAQ,UAAU;AACnD,eAAS,KAAK,YAAY,mBAAmB;AAAA,IAC/C;AACA,QAAI,oBAAoB,OAAO;AAC7B,0BAAoB,MAAM,WAAW,UAAU,KAAK,cAAc,CAAC;AACnE,yCAAmC,IAAI,KAAK;AAAA,IAC9C;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,CAAC;AAAA,EACjB;AACF;AAEA,SAAS,eAAe,OAAO;AAG7B,SAAO;AAAA,IACL,SAAS,UAAU,SAAS,UAAU;AAAA,IACtC,OAAO;AAAA,IACP,aAAa,MAAM;AAAA,IAAC;AAAA,IACpB,gBAAgB,MAAM;AAAA,IAAC;AAAA,EACzB;AACF;AAGA,IAAM,sBAAN,MAAM,oBAAmB;AAAA,EACvB,YAAY,eAAe,OAAO;AAChC,SAAK,gBAAgB;AACrB,SAAK,QAAQ;AAEb,SAAK,WAAW,oBAAI,IAAI;AAExB,SAAK,kBAAkB,IAAI,QAAQ;AAAA,EACrC;AAAA;AAAA,EAEA,cAAc;AACZ,SAAK,gBAAgB,KAAK;AAC1B,SAAK,gBAAgB,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,OAAO;AACf,UAAM,UAAU,aAAa,YAAY,KAAK,CAAC;AAC/C,WAAO,QAAQ,KAAK,gBAAc,KAAK,eAAe,UAAU,EAAE,IAAI,OAAO;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,OAAO;AACb,UAAM,UAAU,aAAa,YAAY,KAAK,CAAC;AAC/C,UAAM,cAAc,QAAQ,IAAI,WAAS,KAAK,eAAe,KAAK,EAAE,UAAU;AAC9E,QAAI,kBAAkB,cAAc,WAAW;AAE/C,sBAAkB,OAAO,gBAAgB,KAAK,KAAK,CAAC,CAAC,GAAG,gBAAgB,KAAK,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;AACtG,WAAO,gBAAgB,KAAK,IAAI,sBAAoB;AAClD,YAAM,WAAW;AAAA,QACf,SAAS;AAAA,QACT,aAAa,CAAC;AAAA,MAChB;AACA,uBAAiB,QAAQ,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF,MAAM;AACJ,iBAAS,UAAU,SAAS,WAAW;AACvC,iBAAS,YAAY,KAAK,IAAI;AAAA,MAChC,CAAC;AACD,aAAO;AAAA,IACT,CAAC,CAAC;AAAA,EACJ;AAAA;AAAA,EAEA,eAAe,OAAO;AAEpB,QAAI,KAAK,SAAS,IAAI,KAAK,GAAG;AAC5B,aAAO,KAAK,SAAS,IAAI,KAAK;AAAA,IAChC;AACA,UAAM,MAAM,KAAK,cAAc,WAAW,KAAK;AAE/C,UAAM,kBAAkB,IAAI,WAAW,cAAY;AAMjD,YAAM,UAAU,OAAK,KAAK,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,CAAC;AAC1D,UAAI,YAAY,OAAO;AACvB,aAAO,MAAM;AACX,YAAI,eAAe,OAAO;AAAA,MAC5B;AAAA,IACF,CAAC,EAAE,KAAK,UAAU,GAAG,GAAG,IAAI,CAAC;AAAA,MAC3B;AAAA,IACF,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF,EAAE,GAAG,UAAU,KAAK,eAAe,CAAC;AAEpC,UAAM,SAAS;AAAA,MACb,YAAY;AAAA,MACZ;AAAA,IACF;AACA,SAAK,SAAS,IAAI,OAAO,MAAM;AAC/B,WAAO;AAAA,EACT;AAaF;AAXI,oBAAK,YAAO,SAAS,2BAA2B,GAAG;AACjD,SAAO,KAAK,KAAK,qBAAuB,mBAAS,YAAY,GAAM,mBAAY,MAAM,CAAC;AACxF;AAGA,oBAAK,aAAuB,gBAAG,6BAAmB;AAAA,EAChD,OAAO;AAAA,EACP,SAAS,oBAAmB;AAAA,EAC5B,YAAY;AACd,CAAC;AA7FL,IAAM,qBAAN;AAAA,CAgGC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,oBAAoB,CAAC;AAAA,IAC3F,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,YAAY;AAAA,IACd,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAM;AAAA,EACR,GAAG;AAAA,IACD,MAAS;AAAA,EACX,CAAC,GAAG,IAAI;AACV,GAAG;AAKH,SAAS,aAAa,SAAS;AAC7B,SAAO,QAAQ,IAAI,WAAS,MAAM,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC,EAAE,IAAI,WAAS,MAAM,KAAK,CAAC;AAC3G;;;;;;;;AJjOM,IAAA,yBAAA,GAAA,OAAA,EAAA;AAIE,IAAA,qBAAA,SAAA,SAAA,sDAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,aAAA,sBAAS,OAAA,YAAA,CAAa;IAAA,CAAA;AAJxB,IAAA,uBAAA;;;;;;AAiBE,IAAA,yBAAA,GAAA,eAAA,EAAA;AAOE,IAAA,qBAAA,gBAAA,SAAA,2FAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,aAAA,sBAAgB,OAAA,gBAAA,MAAA,CAAuB;IAAA,CAAA;AACxC,IAAA,uBAAA;;;;AANC,IAAA,qBAAA,aAAA,aAAA,EAA2B,eAAA,OAAA,WAAA,EACA,cAAA,OAAA,SAAA,EACH,eAAA,gBAAA,EACQ,cAAA,OAAA,aAAA;;;;;;AAIlC,IAAA,yBAAA,GAAA,OAAA,EAAA,EAGC,GAAA,iBAAA,EAAA;AAGG,IAAA,2BAAA,iBAAA,SAAA,sFAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,MAAA,6BAAA,OAAA,iBAAA,MAAA,MAAA,OAAA,kBAAA;AAAA,aAAA,sBAAA,MAAA;IAAA,CAAA;AAGA,IAAA,qBAAA,YAAA,SAAA,iFAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,aAAA,sBAAY,OAAA,yBAAA,MAAA,CAAgC;IAAA,CAAA;AAC7C,IAAA,uBAAA,EAAgB;;;;AALf,IAAA,oBAAA;AAAA,IAAA,qBAAA,WAAA,OAAA,WAAA;AACA,IAAA,2BAAA,WAAA,OAAA,eAAA;;;;;;AAMJ,IAAA,yBAAA,GAAA,eAAA,EAAA;AAaE,IAAA,qBAAA,gBAAA,SAAA,2FAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,aAAA,sBAAgB,OAAA,aAAA,MAAA,CAAoB;IAAA,CAAA;AACrC,IAAA,uBAAA;;;;AANC,IAAA,qBAAA,aAAA,UAAA,EAAwB,eAAA,OAAA,QAAA,EACA,cAAA,OAAA,MAAA,EACH,eAAA,aAAA,EACQ,cAAA,OAAA,cAAA,OAAA,aAAA;;;;;;AAI/B,IAAA,yBAAA,GAAA,OAAA,EAAA,EAQC,GAAA,iBAAA,EAAA;AAGG,IAAA,2BAAA,iBAAA,SAAA,sFAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,MAAA,6BAAA,OAAA,eAAA,MAAA,MAAA,OAAA,gBAAA;AAAA,aAAA,sBAAA,MAAA;IAAA,CAAA;AAGA,IAAA,qBAAA,YAAA,SAAA,iFAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,aAAA,sBAAY,OAAA,sBAAA,MAAA,CAA6B;IAAA,CAAA;AAC1C,IAAA,uBAAA,EAAgB;;;;AALf,IAAA,oBAAA;AAAA,IAAA,qBAAA,WAAA,OAAA,QAAA;AACA,IAAA,2BAAA,WAAA,OAAA,aAAA;;;;;;AAvDN,IAAA,kCAAA,CAAA;AACE,IAAA,yBAAA,GAAA,eAAA,EAAA;AAKE,IAAA,qBAAA,gBAAA,SAAA,6EAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,aAAA,sBAAgB,OAAA,cAAA,MAAA,CAAqB;IAAA,CAAA;AACtC,IAAA,uBAAA;AACD,IAAA,qBAAA,GAAA,wDAAA,GAAA,GAAA,eAAA,EAAA,EAQC,GAAA,gDAAA,GAAA,GAAA,OAAA,EAAA,EAIA,GAAA,wDAAA,GAAA,GAAA,eAAA,EAAA,EAuBA,GAAA,gDAAA,GAAA,GAAA,OAAA,EAAA;;;;;AAzCC,IAAA,oBAAA;AAAA,IAAA,qBAAA,eAAA,OAAA,SAAA,EAAyB,cAAA,OAAA,OAAA,EACH,eAAA,cAAA,EACQ,cAAA,OAAA,aAAA;AAK/B,IAAA,oBAAA;AAAA,IAAA,qBAAA,QAAA,CAAA,OAAA,iBAAA;AASA,IAAA,oBAAA;AAAA,IAAA,qBAAA,QAAA,OAAA,iBAAA;AAYE,IAAA,oBAAA;AAAA,IAAA,qBAAA,QAAA,EAAA,OAAA,iBAAA,sBAAA,OAAA,iBAAA,yBAAA,OAAA,iBAAA,4BAAA,OAAA,gBAAA;AAeA,IAAA,oBAAA;AAAA,IAAA,qBAAA,SAAA,OAAA,iBAAA,sBAAA,OAAA,iBAAA,yBAAA,OAAA,iBAAA,4BAAA,CAAA,OAAA,gBAAA;;;;;;AAkBH,IAAA,yBAAA,GAAA,OAAA,EAAA;AAGE,IAAA,qBAAA,SAAA,SAAA,+DAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,aAAA,sBAAS,OAAA,kBAAA,CAAmB;IAAA,CAAA;AAH9B,IAAA,uBAAA;;;ADtDF,IAAO,mBAAP,MAAO,iBAAe;EAuB1B,YACS,gBACC,aACA,eACA,eACA,UACA,oBACA,eACA,QACA,qBAA+C;AARhD,SAAA,iBAAA;AACC,SAAA,cAAA;AACA,SAAA,gBAAA;AACA,SAAA,gBAAA;AACA,SAAA,WAAA;AACA,SAAA,qBAAA;AACA,SAAA,gBAAA;AACA,SAAA,SAAA;AACA,SAAA,sBAAA;AA1BV,SAAA,kBAAiC,CAAA;AAKjC,SAAA,WAAoB;AACpB,SAAA,aAAsB;AACtB,SAAA,eAAwB;AACxB,SAAA,gBAAyB;AACzB,SAAA,mBAA4B;AAC5B,SAAA,oBAA6B;AAC7B,SAAA,qBAA8B;AAC9B,SAAA,kBAAiC;AACjC,SAAA,eAAuB;AACf,SAAA,gBAA8B,IAAI,aAAY;EAanD;EAEH,WAAQ;AACN,SAAK,mBACF,QAAQ,CAAC,oBAAoB,CAAC,EAC9B,UAAU,CAAC,UAA0B;AACpC,WAAK,WAAW,MAAM;AACtB,WAAK,eAAe,MAAM;AAC1B,WAAK,cAAc,gBAAgB,KAAK,MAAM,OAAO;IACvD,CAAC;AAEH,SAAK,cAAc,oBAAoB,UAAU,CAAC,YAAW;AAC3D,WAAK,eAAe;AACpB,WAAK,oBAAoB;AACzB,UAAI,KAAK,oBAAoB,QAAQ,mBAAmB,GAAG;AACzD,aAAK,mBACH,KAAK,oBAAoB,QAAQ,mBAAmB;AACtD,aAAK,oBAAoB,WAAW,mBAAmB;MACzD;AAAO,aAAK,mBAAmB;AAC/B,UACE,KAAK,iBAAiB,qBACtB,KAAK,iBAAiB,4BACtB,KAAK,iBAAiB,qBACtB,KAAK,iBAAiB,4BACtB,KAAK,iBAAiB,qBACtB;AACA,aAAK,aAAa;AAClB,aAAK,gBAAgB;AACrB,aAAK,cAAc,aAAY;AAC/B,aAAK,UAAU,aAAa,QAAQ,SAAS;AAC7C,YAAI,KAAK;AAAS,eAAK,cAAc,WAAW,KAAK,OAAO;AAC5D,aAAK,YAAY,aAAa,QAAQ,WAAW;AACjD,YAAI,KAAK;AAAW,eAAK,cAAc,aAAa,KAAK,SAAS;AAClE,aAAK,SAAS,aAAa,QAAQ,QAAQ;AAC3C,YAAI,KAAK;AAAQ,eAAK,cAAc,UAAU,KAAK,MAAM;MAC3D,WAAW,KAAK,iBAAiB,iBAAiB;AAChD,aAAK,UAAU;AACf,aAAK,YAAY;AACjB,aAAK,SAAS;AACd,aAAK,gBAAgB;AACrB,aAAK,aAAa;MACpB,OAAO;AACL,aAAK,gBAAgB;AACrB,aAAK,aAAa;AAClB,aAAK,UAAU,aAAa,QAAQ,SAAS;AAC7C,YAAI,KAAK;AAAS,eAAK,cAAc,WAAW,KAAK,OAAO;AAC5D,aAAK,YAAY,aAAa,QAAQ,WAAW;AACjD,YAAI,KAAK;AAAW,eAAK,cAAc,aAAa,KAAK,SAAS;AAClE,aAAK,SAAS,aAAa,QAAQ,QAAQ;AAC3C,YAAI,KAAK;AAAQ,eAAK,cAAc,UAAU,KAAK,MAAM;MAC3D;AACA,WAAK,cAAc,YAAY,KAAI;AACnC,UACE,KAAK,kBAAkB,qBACvB,KAAK,iBAAiB,oBACtB;AACA,aAAK,oBAAoB;MAC3B;IACF,CAAC;AACD,SAAK,UAAU,aAAa,QAAQ,SAAS;AAC7C,QAAI,KAAK;AAAS,WAAK,cAAc,WAAW,KAAK,OAAO;AAE5D,SAAK,YAAY,aAAa,QAAQ,WAAW;AACjD,QAAI,KAAK;AAAW,WAAK,cAAc,aAAa,KAAK,SAAS;AAClE,SAAK,SAAS,aAAa,QAAQ,QAAQ;AAC3C,QAAI,KAAK;AAAQ,WAAK,cAAc,UAAU,KAAK,MAAM;AAEzD,UAAM,cAAc,aAAa,QAAQ,eAAe;AACxD,QAAI,eAAe,eAAe,aAAa;AAC7C,WAAK,gBAAgB,KAAK,MAAM,WAAW;AAC3C,WAAK,cAAc,WAAW,KAAK,aAAa;IAClD;AACA,SAAK,qBAAqB,KAAK,cAAc,2BAA0B;AACvE,QAAI,KAAK;AAAoB,WAAK,cAAc,eAAe,IAAI;AACnE,SAAK,cAAc,gBAAgB,UAAU,CAAC,SAAQ;AACpD,WAAK,kBAAkB,OAAO,KAAK,eAAe,IAAI,IAAI;IAC5D,CAAC;AACD,SAAK,cAAc,IACjB,KAAK,cAAc,OAAO,UAAU,CAAC,WAAe;AAClD,WAAK,SAAS;AACd,YAAM,OAAO,KAAK,UAAU,KAAK,CAACC,UAASA,OAAM,OAAO,MAAM;AAC9D,YAAM,YAAY,OAAO,MAAM,YAAY;AAC3C,UAAI;AAAW,aAAK,oBAAoB,SAAS;IACnD,CAAC,CAAC;AAEJ,SAAK,cAAc,IACjB,KAAK,cAAc,UAAU,UAAU,CAAC,cAA4B;AAClE,WAAK,YAAY;AACjB,UAAI,KAAK;AAAW,aAAK,YAAW;AACpC,UAAI,KAAK;AAAS,aAAK,eAAc;IACvC,CAAC,CAAC;AAGJ,SAAK,cAAc,IACjB,KAAK,cAAc,QAAQ,UAAU,CAAC,YAA4B;AAChE,UAAI,SAAS;AACX,aAAK,gBAAgB;AACrB,qBAAa,QACX,iBACA,KAAK,UAAU,KAAK,aAAa,CAAC;MAEtC,OAAO;AACL,aAAK,gBAAgB,CAAA;MACvB;IACF,CAAC,CAAC;AAEJ,SAAK,iBAAiB,KAAK,OAAO,GAAG;AACrC,SAAK,OAAO,OACT,KAAK,OAAO,CAAC,UAAU,iBAAiB,aAAa,CAAC,EACtD,UAAU,CAAC,UAAc;AACxB,WAAK,iBAAiB,MAAM,iBAAiB;IAC/C,CAAC;AAEH,SAAK,aAAY;AACjB,QAAI,KAAK;AAAS,WAAK,eAAc;AACrC,QAAI,KAAK,WAAW;AAClB,WAAK,YAAW;IAClB,OAAO;AACL,UAAI,KAAK;AAAS,aAAK,mBAAkB;IAC3C;EACF;EAEQ,iBAAiB,KAAW;AAClC,QAAI,QAAQ,4BAA4B;AACtC,WAAK,mBAAmB;IAC1B,OAAO;AACL,WAAK,mBAAmB;IAC1B;AACA,QAAI,QAAQ,2BAA2B;AACrC,WAAK,oBAAoB;IAC3B,OAAO;AACL,WAAK,oBAAoB;IAC3B;EACF;EAEA,eAAY;AACV,UAAM,MAAM,eAAe;AAC3B,QAAI,SAAS,IAAI,WAAU,EAAG,IAAI,cAAc,CAAC,EAAE,IAAI,YAAY,CAAC;AACpE,SAAK,YACF,WAAW,KAAK,MAAM,EAAE,OAAM,CAAE,EAChC,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,YAAY,SAAS,KAAK,OAAO,CAAC,UAAe,MAAM,QAAQ;AACpE,qBAAa,QAAQ,aAAa,KAAK,UAAU,KAAK,SAAS,CAAC;MAClE,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,iBAAc;AACZ,UAAM,MAAM,GAAG,eAAe,sBAAsB,GAAG,KAAK,OAAO;AACnE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,cAAc,SAAS;AAC5B,YAAI,KAAK,aAAa,KAAK,mBAAmB;AAC5C,eAAK,YAAY,OAAO,KAAK,SAAS;AACtC,eAAK,kBAAkB,CAAA;AACvB,eAAK,UACF,MAAM,GAAG,EACT,IAAI,MAAM,EACV,QAAQ,CAAC,YAAmB;AAC3B,kBAAM,QAAQ,KAAK,YAAY,UAAU,CAAC,SAAQ;AAChD,qBAAO,KAAK,OAAO;YACrB,CAAC;AACD,gBAAI,UAAU,IAAI;AAChB,mBAAK,gBAAgB,KAAK,KAAK,YAAY,KAAK,CAAC;YACnD;UACF,CAAC;QACL;AACA,qBAAa,QAAQ,eAAe,KAAK,UAAU,KAAK,WAAW,CAAC;MACtE,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,cAAW;AACT,UAAM,MAAM,GAAG,eAAe,qBAAqB,GAAG,KAAK,SAAS;AACpE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,WAAW;AAChB,qBAAa,QAAQ,YAAY,KAAK,UAAU,KAAK,QAAQ,CAAC;MAChE,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EACA,gCAA6B;AAC3B,QAAI,aAAa;AACjB,QAAI,KAAK,iBAAiB;AACxB,WAAK,gBAAgB,QAAQ,CAAC,YAAW;AACvC,qBAAa,aAAa,GAAG,QAAQ,EAAE;MACzC,CAAC;AACD,mBAAa,WAAW,MAAM,GAAG,EAAE;IACrC;AACA,UAAM,MAAM,GAAG,eAAe,qBAAqB,GAAG,UAAU;AAChE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,WAAW;AAChB,qBAAa,QAAQ,YAAY,KAAK,UAAU,KAAK,QAAQ,CAAC;MAChE,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,eAAe,WAAkB;AAC/B,SAAK,qBAAqB;AAC1B,SAAK,cAAc,eAAe,SAAS;EAC7C;EAEA,cAAc,eAAwB;AACpC,SAAK,UAAU,cAAc;AAC7B,iBAAa,QAAQ,WAAW,KAAK,QAAQ,SAAQ,CAAE;AACvD,SAAK,cAAc,WAAW,KAAK,OAAO;AAC1C,SAAK,YAAY;AACjB,SAAK,SAAS;AACd,SAAK,gBAAgB,CAAA;AACrB,SAAK,cAAc,gBAAe;AAClC,SAAK,cAAc,aAAY;AAC/B,SAAK,cAAc,cAAa;AAChC,SAAK,cAAc,YAAY,KAAI;AACnC,SAAK,eAAc;AACnB,SAAK,mBAAkB;EACzB;EAEA,gBAAgB,iBAA4B;AAC1C,SAAK,YAAY,gBAAgB;AACjC,iBAAa,QAAQ,aAAa,KAAK,SAAS;AAChD,SAAK,cAAc,aAAa,KAAK,SAAS;AAC9C,SAAK,cAAc,aAAY;AAC/B,SAAK,cAAc,cAAa;AAChC,SAAK,cAAc,YAAY,KAAI;AACnC,QAAI,KAAK;AAAW,WAAK,YAAW;EACtC;EACA,yBAAyB,OAAU;AACjC,iBAAa,QACX,mBACA,KAAK,UAAU,KAAK,eAAe,CAAC;AAEtC,SAAK,cAAc,cAAc,KAAK,eAAe;AACrD,SAAK,cAAc,aAAY;AAC/B,SAAK,cAAc,cAAa;AAChC,SAAK,cAAc,YAAY,KAAI;AACnC,QAAI,KAAK,gBAAgB,QAAQ;AAC/B,WAAK,8BAA6B;IACpC,OACK;AACH,WAAK,YAAY;AACjB,WAAK,SAAS;AACd,WAAK,gBAAgB,CAAA;AACrB,WAAK,cAAc,gBAAe;AAClC,WAAK,cAAc,aAAY;AAC/B,WAAK,cAAc,cAAa;AAChC,WAAK,eAAc;AACnB,WAAK,mBAAkB;IAEzB;EACF;EAEA,aAAa,cAAsB;AACjC,SAAK,SAAS,aAAa;AAC3B,iBAAa,QAAQ,UAAU,KAAK,MAAM;AAC1C,SAAK,cAAc,UAAU,KAAK,MAAM;AACxC,SAAK,cAAc,YAAY,KAAI;AACnC,SAAK,oBAAoB,aAAa,SAAS;EACjD;EACA,sBAAsB,OAAU;AAC9B,iBAAa,QAAQ,iBAAiB,KAAK,UAAU,KAAK,aAAa,CAAC;AACxE,SAAK,cAAc,WAAW,KAAK,aAAa;AAChD,SAAK,cAAc,YAAY,KAAI;EACrC;EAEA,oBAAoB,WAAc;AAChC,UAAM,kBAAkB,KAAK,aAAa,KACxC,CAAC,YAAY,QAAQ,OAAO,SAAS;AAEvC,QAAI,iBAAiB;AACnB,WAAK,YAAY,gBAAgB;AACjC,mBAAa,QAAQ,aAAa,KAAK,SAAS;AAChD,WAAK,cAAc,aAAa,KAAK,SAAS;AAC9C,UAAI,KAAK;AAAW,aAAK,YAAW;IACtC;EACF;EAEA,kBAAe;AACb,SAAK,cAAc,iBAAgB;EACrC;EAEA,eAAe,UAAgB;AAC7B,WAAO,KAAK,SAAS,UAAU,UAAU,qBAAqB,KAAK;EACrE;EAEA,qBAAkB;AAChB,UAAM,MAAM,GAAG,eAAe,mBAAmB,GAAG,KAAK,OAAO;AAChE,SAAK,YACF,WAAW,GAAG,EACd,KAAK,CAAC,aAAY;AACjB,UAAI,UAAU;AACZ,aAAK,WAAW;AAChB,qBAAa,QAAQ,YAAY,KAAK,UAAU,KAAK,QAAQ,CAAC;MAChE,OAAO;AACL,gBAAQ,MAAM,kBAAkB;MAClC;IACF,CAAC,EACA,MAAM,CAAC,UAAS;AACf,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,gBAAa;AACX,SAAK,eAAe,OAAM;EAC5B;EAEA,oBAAiB;AACf,SAAK,MAAM,KAAK,cAAc,KAAK,4BAA4B;MAC7D,MAAM,EAAE,QAAQ,MAAK;MACrB,OAAO;MACP,YAAY,KAAK,eACb,4CACA;KACL;AACD,SAAK,IAAI,QAAQ,UAAU,CAAC,WAAU;AACpC,UAAI,WAAW;AAAW;AAC1B,UAAI,QAAQ;AACV,cAAM,WAAO,oBAAI,QAAQ,YAAY;AACrC,cAAM,oBAAgB,oBAAI,QAAQ,eAAe;AACjD,YAAI,MAAM,OAAO;AACf,eAAK,UAAU,MAAM,OAAO;AAC5B,uBAAa,QAAQ,WAAW,KAAK,QAAQ,SAAQ,CAAE;AACvD,eAAK,cAAc,WAAW,KAAK,OAAO;AAC1C,cAAI,MAAM,SAAS;AACjB,iBAAK,YAAY,MAAM,SAAS;AAChC,yBAAa,QAAQ,aAAa,KAAK,SAAS;AAChD,iBAAK,cAAc,aAAa,KAAK,SAAS;AAC9C,gBAAI,MAAM,MAAM;AACd,mBAAK,SAAS,MAAM,MAAM;AAC1B,2BAAa,QAAQ,UAAU,KAAK,MAAM;AAC1C,mBAAK,cAAc,UAAU,KAAK,MAAM;YAC1C,WAAW,eAAe,QAAQ;AAChC,mBAAK,gBAAgB;AACrB,2BAAa,QACX,iBACA,KAAK,UAAU,KAAK,aAAa,CAAC;AAEpC,mBAAK,cAAc,WAAW,KAAK,aAAa;YAClD,OAAO;AACL,mBAAK,cAAc,aAAY;AAC/B,mBAAK,cAAc,cAAa;YAClC;UACF,OAAO;AACL,yBAAa,WAAW,QAAQ;AAChC,yBAAa,WAAW,SAAS;AACjC,iBAAK,cAAc,gBAAe;AAClC,iBAAK,cAAc,aAAY;AAC/B,iBAAK,cAAc,cAAa;UAClC;AACA,eAAK,cAAc,YAAY,KAAI;QACrC,OAAO;AACL,eAAK,SAAQ;QACf;MACF,OAAO;AACL,aAAK,SAAQ;MACf;IACF,CAAC;EACH;EAEA,WAAQ;AACN,iBAAa,WAAW,WAAW;AACnC,iBAAa,WAAW,QAAQ;AAChC,iBAAa,WAAW,SAAS;AACjC,SAAK,cAAc,gBAAe;AAClC,SAAK,cAAc,aAAY;AAC/B,SAAK,cAAc,cAAa;AAChC,SAAK,cAAc,YAAY,KAAI;AACnC,SAAK,OAAO,SAAS,CAAC,yBAAyB,CAAC;EAClD;EAEA,cAAW;AACT,QAAI,KAAK,kBAAkB;AACzB,WAAK,oBAAoB,WAAW,mBAAmB;AACvD,WAAK,OAAO,SAAS,CAAC,KAAK,kBAAkB,KAAK,CAAC;IACrD;AAAO,WAAK,OAAO,SAAS,CAAC,wBAAwB,CAAC;EACxD;EAEA,cAAW;AACT,SAAK,cAAc,YAAW;AAC9B,QAAI,KAAK,kBAAkB;AACzB,WAAK,oBAAoB,QACvB,qBACA,KAAK,gBAAgB;IAEzB;EACF;;;mBA7bW,kBAAe,4BAAA,cAAA,GAAA,4BAAA,WAAA,GAAA,4BAAA,aAAA,GAAA,4BAAA,aAAA,GAAA,4BAAA,QAAA,GAAA,4BAAA,kBAAA,GAAA,4BAAA,aAAA,GAAA,4BAAA,MAAA,GAAA,4BAAA,0BAAA,CAAA;AAAA;iFAAf,kBAAe,WAAA,CAAA,CAAA,YAAA,CAAA,GAAA,YAAA,MAAA,UAAA,CAAA,6BAAA,GAAA,OAAA,IAAA,MAAA,IAAA,QAAA,CAAA,CAAA,eAAA,EAAA,GAAA,CAAA,GAAA,UAAA,SAAA,QAAA,GAAA,SAAA,GAAA,CAAA,GAAA,QAAA,mBAAA,gBAAA,QAAA,QAAA,YAAA,GAAA,SAAA,GAAA,CAAA,GAAA,gBAAA,GAAA,CAAA,GAAA,MAAA,WAAA,YAAA,kBAAA,GAAA,OAAA,GAAA,CAAA,GAAA,WAAA,QAAA,cAAA,GAAA,CAAA,SAAA,+BAAA,OAAA,gCAAA,GAAA,SAAA,GAAA,MAAA,GAAA,CAAA,GAAA,QAAA,gBAAA,SAAA,kBAAA,GAAA,CAAA,GAAA,QAAA,UAAA,GAAA,CAAA,GAAA,QAAA,gBAAA,SAAA,kBAAA,GAAA,CAAA,OAAA,kCAAA,OAAA,WAAA,GAAA,eAAA,GAAA,OAAA,GAAA,CAAA,GAAA,QAAA,iBAAA,GAAA,CAAA,GAAA,cAAA,GAAA,CAAA,GAAA,mBAAA,WAAA,GAAA,CAAA,GAAA,WAAA,GAAA,CAAA,OAAA,gCAAA,GAAA,kBAAA,gBAAA,GAAA,OAAA,GAAA,CAAA,GAAA,gBAAA,eAAA,cAAA,eAAA,YAAA,GAAA,CAAA,GAAA,aAAA,eAAA,cAAA,eAAA,cAAA,gBAAA,GAAA,MAAA,GAAA,CAAA,SAAA,wBAAA,GAAA,MAAA,GAAA,CAAA,GAAA,gBAAA,aAAA,eAAA,cAAA,eAAA,YAAA,GAAA,CAAA,GAAA,sBAAA,GAAA,CAAA,eAAA,eAAA,eAAA,kBAAA,GAAA,iBAAA,YAAA,WAAA,SAAA,GAAA,CAAA,eAAA,YAAA,eAAA,gBAAA,GAAA,iBAAA,YAAA,WAAA,SAAA,GAAA,CAAA,OAAA,4BAAA,GAAA,kBAAA,GAAA,OAAA,CAAA,GAAA,UAAA,SAAA,yBAAA,IAAA,KAAA;AAAA,MAAA,KAAA,GAAA;;ACnC5B,IAAA,yBAAA,GAAA,UAAA,CAAA;;AAIE,IAAA,yBAAA,GAAA,OAAA,CAAA;;AAME,IAAA,yBAAA,GAAA,OAAA,CAAA,EAA4B,GAAA,KAAA,CAAA;AAGxB,IAAA,qBAAA,SAAA,SAAA,8CAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,aAAA,sBAAS,IAAA,cAAA,CAAe;IAAA,CAAA;AACzB,IAAA,uBAAA,EAAI;AAEP,IAAA,yBAAA,GAAA,OAAA,CAAA;AACE,IAAA,qBAAA,GAAA,gCAAA,GAAA,GAAA,OAAA,CAAA;AAMA,IAAA,yBAAA,GAAA,GAAA;AAAG,IAAA,iBAAA,CAAA;AAAkB,IAAA,uBAAA,EAAI;AAE3B,IAAA,yBAAA,IAAA,OAAA,CAAA;AACE,IAAA,qBAAA,IAAA,0CAAA,GAAA,GAAA,gBAAA,CAAA,EAAkD,IAAA,yCAAA,GAAA,GAAA,eAAA,MAAA,GAAA,gCAAA;AAqElD,IAAA,yBAAA,IAAA,OAAA,CAAA,EAAsD,IAAA,OAAA,EAAA;AAKlD,IAAA,qBAAA,SAAA,SAAA,iDAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,aAAA,sBAAS,IAAA,gBAAA,CAAiB;IAAA,CAAA;AAJ5B,IAAA,uBAAA;AAMA,IAAA,yBAAA,IAAA,KAAA,EAAK,IAAA,OAAA,EAAA,EAC+B,IAAA,KAAA,EAAA;AACR,IAAA,iBAAA,IAAA,cAAA;AAAY,IAAA,uBAAA;AACpC,IAAA,yBAAA,IAAA,cAAA,EAAA;AACE,IAAA,2BAAA,mBAAA,SAAA,gEAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,MAAA,6BAAA,IAAA,oBAAA,MAAA,MAAA,IAAA,qBAAA;AAAA,aAAA,sBAAA,MAAA;IAAA,CAAA;AACA,IAAA,qBAAA,mBAAA,SAAA,gEAAA,QAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,aAAA,sBAAmB,IAAA,eAAA,MAAA,CAAsB;IAAA,CAAA;AAE3C,IAAA,uBAAA,EAAa;AAEf,IAAA,yBAAA,IAAA,KAAA,EAAA;AAAqB,IAAA,iBAAA,EAAA;AAAqB,IAAA,uBAAA,EAAI,EAC1C,EACF,EACF,EACF;;;;AAjHN,IAAA,qBAAA,WAAA,0BAAA,IAAAC,MAAA,sBAAA,GAAA,GAAA,IAAA,eAAA,SAAA,CAAA,CAAA;AAIE,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,WAAA,0BAAA,IAAAC,MAAA,sBAAA,GAAA,IAAA,IAAA,eAAA,SAAA,KAAA,IAAA,YAAA,CAAA;AAYK,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,IAAA,iBAAA;AAKA,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,IAAA,YAAA;AAGY,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,CAAA,IAAA,QAAA,EAAiB,YAAA,eAAA;AAgFxB,IAAA,oBAAA,CAAA;AAAA,IAAA,2BAAA,aAAA,IAAA,kBAAA;AAKiB,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,IAAA,eAAA;;;EDrF3B;EACA;EAAY;EAAA;EAAA;EACZ;EACA;EAAiB;EACjB;EAAW;EAAA;AAAA,GAAA,QAAA,CAAA,0pEAAA,EAAA,CAAA;AAKT,IAAO,kBAAP;;6EAAO,iBAAe,EAAA,WAAA,mBAAA,UAAA,6CAAA,YAAA,GAAA,CAAA;AAAA,GAAA;;;AMvB5B,IAAMC,OAAM,CAAC,GAAG;AAChB,IAAMC,OAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ;AAAA,EACvC,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,kBAAkB;AACpB;AACA,IAAMC,OAAM,CAAC,IAAI,QAAQ;AAAA,EACvB,WAAW;AAAA,EACX,YAAY;AACd;AACA,IAAM,MAAM,SAAO;AAAA,EACjB,OAAO;AAAA,EACP,QAAQ;AACV;AACA,SAAS,qDAAqD,IAAI,KAAK;AACrE,MAAI,KAAK,GAAG;AACV,IAAG,6BAAmB,CAAC;AAAA,EACzB;AACF;AACA,SAAS,sCAAsC,IAAI,KAAK;AACtD,MAAI,KAAK,GAAG;AACV,IAAG,kCAAwB,CAAC;AAC5B,IAAG,qBAAW,GAAG,sDAAsD,GAAG,GAAG,gBAAgB,CAAC;AAC9F,IAAG,gCAAsB;AAAA,EAC3B;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,oBAAU;AACb,IAAG,qBAAW,oBAAoB,OAAO,gBAAgB;AAAA,EAC3D;AACF;AACA,SAAS,oDAAoD,IAAI,KAAK;AACpE,MAAI,KAAK,GAAG;AACV,IAAG,6BAAmB,CAAC;AAAA,EACzB;AACF;AACA,SAAS,0DAA0D,IAAI,KAAK;AAC1E,MAAI,KAAK,GAAG;AACV,IAAG,oBAAU,GAAG,aAAa,EAAE;AAAA,EACjC;AACA,MAAI,KAAK,GAAG;AACV,IAAG,qBAAW,cAAc,sBAAsB;AAClD,IAAG,sBAAY,mBAAmB,WAAW;AAAA,EAC/C;AACF;AACA,SAAS,qEAAqE,IAAI,KAAK;AAAC;AACxF,SAAS,uDAAuD,IAAI,KAAK;AACvE,MAAI,KAAK,GAAG;AACV,IAAG,qBAAW,GAAG,sEAAsE,GAAG,GAAG,aAAa;AAAA,EAC5G;AACF;AACA,SAAS,qDAAqD,IAAI,KAAK;AACrE,MAAI,KAAK,GAAG;AACV,IAAG,yBAAe,GAAG,QAAQ,EAAE;AAC/B,IAAG,qBAAW,GAAG,wDAAwD,GAAG,GAAG,MAAM,CAAC;AACtF,IAAG,uBAAa;AAAA,EAClB;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,sBAAY,mBAAmB,WAAW;AAC7C,IAAG,oBAAU;AACb,IAAG,qBAAW,oBAAoB,OAAO,iBAAiB;AAAA,EAC5D;AACF;AACA,SAAS,8CAA8C,IAAI,KAAK;AAC9D,MAAI,KAAK,GAAG;AACV,UAAM,MAAS,2BAAiB;AAChC,IAAG,yBAAe,GAAG,UAAU,EAAE;AACjC,IAAG,qBAAW,SAAS,SAAS,sEAAsE,QAAQ;AAC5G,MAAG,wBAAc,GAAG;AACpB,YAAM,SAAY,wBAAc,CAAC;AACjC,aAAU,sBAAY,OAAO,MAAM,MAAM,CAAC;AAAA,IAC5C,CAAC,EAAE,iBAAiB,SAAS,8EAA8E,QAAQ;AACjH,MAAG,wBAAc,GAAG;AACpB,YAAM,SAAY,wBAAc,CAAC;AACjC,aAAU,sBAAY,OAAO,MAAM,MAAM,CAAC;AAAA,IAC5C,CAAC;AACD,IAAG,qBAAW,GAAG,2DAA2D,GAAG,GAAG,aAAa,EAAE,EAAE,GAAG,sDAAsD,GAAG,GAAG,QAAQ,EAAE;AAC5K,IAAG,uBAAa;AAAA,EAClB;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,sBAAY,cAAc,OAAO,cAAc,EAAE,mBAAmB,aAAa,EAAE,yBAAyB,eAAe;AAC9H,IAAG,oBAAU;AACb,IAAG,qBAAW,QAAQ,CAAC,OAAO,iBAAiB;AAC/C,IAAG,oBAAU;AACb,IAAG,qBAAW,QAAQ,OAAO,iBAAiB;AAAA,EAChD;AACF;AACA,SAAS,oDAAoD,IAAI,KAAK;AACpE,MAAI,KAAK,GAAG;AACV,IAAG,6BAAmB,CAAC;AAAA,EACzB;AACF;AACA,SAAS,mEAAmE,IAAI,KAAK;AACnF,MAAI,KAAK,GAAG;AACV,IAAG,6BAAmB,CAAC;AAAA,EACzB;AACF;AACA,SAAS,oDAAoD,IAAI,KAAK;AACpE,MAAI,KAAK,GAAG;AACV,IAAG,kCAAwB,CAAC;AAC5B,IAAG,yBAAe,GAAG,OAAO,EAAE;AAC9B,IAAG,qBAAW,GAAG,oEAAoE,GAAG,GAAG,gBAAgB,CAAC;AAC5G,IAAG,uBAAa;AAChB,IAAG,gCAAsB;AAAA,EAC3B;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,oBAAU;AACb,IAAG,sBAAY,mBAAmB,QAAQ;AAC1C,IAAG,oBAAU;AACb,IAAG,qBAAW,oBAAoB,OAAO,cAAc;AAAA,EACzD;AACF;AACA,SAAS,qCAAqC,IAAI,KAAK;AACrD,MAAI,KAAK,GAAG;AACV,IAAG,yBAAe,GAAG,OAAO,CAAC;AAC7B,IAAG,qBAAW,GAAG,qDAAqD,GAAG,GAAG,gBAAgB,CAAC,EAAE,GAAG,+CAA+C,GAAG,GAAG,UAAU,CAAC;AAClK,IAAG,uBAAa;AAChB,IAAG,yBAAe,GAAG,OAAO,CAAC;AAC7B,IAAG,uBAAa,CAAC;AACjB,IAAG,qBAAW,GAAG,qDAAqD,GAAG,GAAG,gBAAgB,CAAC;AAC7F,IAAG,uBAAa;AAChB,IAAG,qBAAW,GAAG,qDAAqD,GAAG,GAAG,gBAAgB,CAAC;AAAA,EAC/F;AACA,MAAI,KAAK,GAAG;AACV,UAAM,SAAY,wBAAc,CAAC;AACjC,IAAG,sBAAY,mBAAmB,QAAQ;AAC1C,IAAG,oBAAU;AACb,IAAG,qBAAW,oBAAoB,OAAO,cAAc;AACvD,IAAG,oBAAU;AACb,IAAG,qBAAW,QAAQ,OAAO,aAAa;AAC1C,IAAG,oBAAU;AACb,IAAG,sBAAY,mBAAmB,SAAS;AAC3C,IAAG,oBAAU,CAAC;AACd,IAAG,qBAAW,oBAAoB,OAAO,eAAe;AACxD,IAAG,oBAAU;AACb,IAAG,qBAAW,QAAQ,OAAO,cAAc;AAAA,EAC7C;AACF;AACA,SAAS,uBAAuB,IAAI,KAAK;AACvC,MAAI,KAAK,GAAG;AACV,UAAM,MAAS,2BAAiB;AAChC,IAAG,yBAAe,GAAG,OAAO,GAAG,CAAC;AAChC,IAAG,qBAAW,qBAAqB,SAAS,iEAAiE,QAAQ;AACnH,MAAG,wBAAc,GAAG;AACpB,YAAM,SAAY,wBAAc;AAChC,aAAU,sBAAY,OAAO,iBAAiB,MAAM,CAAC;AAAA,IACvD,CAAC,EAAE,oBAAoB,SAAS,gEAAgE,QAAQ;AACtG,MAAG,wBAAc,GAAG;AACpB,YAAM,SAAY,wBAAc;AAChC,aAAU,sBAAY,OAAO,eAAe,MAAM,CAAC;AAAA,IACrD,CAAC,EAAE,WAAW,SAAS,8CAA8C,QAAQ;AAC3E,MAAG,wBAAc,GAAG;AACpB,YAAM,SAAY,wBAAc;AAChC,aAAU,sBAAY,OAAO,UAAU,MAAM,CAAC;AAAA,IAChD,CAAC;AACD,IAAG,qBAAW,GAAG,uCAAuC,GAAG,GAAG,gBAAgB,CAAC,EAAE,GAAG,sCAAsC,GAAG,GAAG,eAAe,MAAM,GAAM,gCAAsB;AACjL,IAAG,uBAAa;AAAA,EAClB;AACA,MAAI,KAAK,GAAG;AACV,UAAM,iBAAoB,sBAAY,CAAC;AACvC,UAAM,SAAY,wBAAc;AAChC,IAAG,qBAAW,OAAO,UAAU;AAC/B,IAAG,qBAAW,WAAc,0BAAgB,GAAGD,MAAK,OAAO,SAAS,OAAO,aAAa,UAAU,CAAC,OAAO,YAAY,OAAO,aAAa,WAAW,CAAC,OAAO,YAAY,OAAO,aAAa,SAAS,CAAC,OAAO,YAAY,OAAO,aAAa,YAAY,CAAC,OAAO,YAAY,OAAO,UAAU,CAAC,EAAE,eAAkB,0BAAgB,IAAI,KAAQ,0BAAgB,IAAIC,MAAK,OAAO,kBAAkB,OAAO,iBAAiB,CAAC,CAAC,EAAE,WAAW,OAAO,KAAK;AACrb,IAAG,sBAAY,gBAAgB,SAAS,EAAE,mBAAmB,MAAM;AACnE,IAAG,oBAAU,CAAC;AACd,IAAG,qBAAW,QAAQ,OAAO,gBAAgB,EAAE,YAAY,cAAc;AAAA,EAC3E;AACF;AACA,IAAM,gBAAgB,UAAU,CAAC,MAAM;AAAA,EACrC,WAAW;AAAA,EACX,SAAS;AACX,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC;AAC9B,IAAM,gBAAgB,UAAU,CAAC,QAAQ,kBAAkB,MAAM;AAAA,EAC/D,WAAW;AAAA,EACX,SAAS;AACX,CAAC,CAAC,CAAC,CAAC;AAKJ,IAAM,UAAN,MAAM,SAAQ;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKb,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKb,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,QAAQ,KAAK;AACf,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,SAAS,OAAO;AAClB,SAAK,YAAY;AACjB,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,aAAK,mBAAmB;AACxB;AAAA,MACF,KAAK;AACH,aAAK,mBAAmB;AACxB;AAAA,MACF,KAAK;AACH,aAAK,mBAAmB;AACxB;AAAA,MACF,KAAK;AACH,aAAK,mBAAmB;AACxB;AAAA,IACJ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,WAAW,OAAO;AACpB,SAAK,cAAc;AACnB,QAAI;AAAO,WAAK,mBAAmB;AAAA,EACrC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,IAAI,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAK1B,SAAS,IAAI,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM1B,gBAAgB,IAAI,aAAa;AAAA,EACjC;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAYC,WAAU,IAAI,UAAU,IAAI,QAAQ;AAC9C,SAAK,WAAWA;AAChB,SAAK,KAAK;AACV,SAAK,WAAW;AAChB,SAAK,KAAK;AACV,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,kBAAkB;AAChB,SAAK,cAAc;AAAA,EACrB;AAAA,EACA,qBAAqB;AACnB,SAAK,WAAW,QAAQ,UAAQ;AAC9B,cAAQ,KAAK,QAAQ,GAAG;AAAA,QACtB,KAAK;AACH,eAAK,kBAAkB,KAAK;AAC5B;AAAA,QACF,KAAK;AACH,eAAK,iBAAiB,KAAK;AAC3B;AAAA,QACF,KAAK;AACH,eAAK,iBAAiB,KAAK;AAC3B;AAAA,QACF,KAAK;AACH,eAAK,oBAAoB,KAAK;AAC9B;AAAA,QACF,KAAK;AACH,eAAK,mBAAmB,KAAK;AAC7B;AAAA,QACF;AACE,eAAK,kBAAkB,KAAK;AAC5B;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,UAAU,OAAO;AACf,QAAI,MAAM,SAAS,UAAU;AAC3B,WAAK,KAAK,KAAK;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAO;AACL,QAAI,KAAK,YAAY;AACnB,kBAAY,IAAI,SAAS,KAAK,WAAW,KAAK,cAAc,KAAK,OAAO,OAAO,KAAK;AAAA,IACtF;AACA,QAAI,KAAK,OAAO;AACd,WAAK,eAAe;AAAA,IACtB;AACA,SAAK,OAAO,KAAK,CAAC,CAAC;AACnB,SAAK,cAAc,KAAK,IAAI;AAAA,EAC9B;AAAA,EACA,KAAK,OAAO,MAAM;AAChB,QAAI,MAAM;AACR,WAAK,OAAO,KAAK,CAAC,CAAC;AAAA,IACrB;AACA,QAAI,KAAK,OAAO;AACd,WAAK,gBAAgB;AAAA,IACvB;AAAA,EACF;AAAA,EACA,MAAM,OAAO;AACX,SAAK,KAAK;AACV,SAAK,cAAc,KAAK,KAAK;AAC7B,UAAM,eAAe;AAAA,EACvB;AAAA,EACA,iBAAiB;AACf,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,OAAO,KAAK,SAAS,cAAc,KAAK;AAC7C,WAAK,SAAS,SAAS,KAAK,MAAM,UAAU,OAAO,SAAS,KAAK,UAAU,MAAM,MAAM,IAAI,CAAC,CAAC;AAC7F,iBAAW,mBAAmB,KAAK,MAAM,kFAAkF;AAC3H,UAAI,KAAK,aAAa;AACpB,aAAK,oBAAoB,KAAK,SAAS,OAAO,KAAK,MAAM,SAAS,WAAS;AACzE,cAAI,KAAK,aAAa;AACpB,iBAAK,MAAM,KAAK;AAAA,UAClB;AAAA,QACF,CAAC;AAAA,MACH;AACA,WAAK,SAAS,YAAY,KAAK,SAAS,MAAM,KAAK,IAAI;AACvD,UAAI,KAAK,aAAa;AACpB,mBAAW,gBAAgB;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAAA,EACA,kBAAkB;AAChB,QAAI,KAAK,MAAM;AACb,iBAAW,SAAS,KAAK,MAAM,2BAA2B;AAC1D,WAAK,uBAAuB,KAAK,SAAS,OAAO,KAAK,MAAM,gBAAgB,KAAK,aAAa,KAAK,IAAI,CAAC;AAAA,IAC1G;AAAA,EACF;AAAA,EACA,eAAe;AACb,SAAK,wBAAwB;AAC7B,QAAI,KAAK,MAAM;AACb,WAAK,SAAS,YAAY,KAAK,SAAS,MAAM,KAAK,IAAI;AAAA,IACzD;AACA,QAAI,KAAK,aAAa;AACpB,iBAAW,kBAAkB;AAAA,IAC/B;AACA,SAAK,2BAA2B;AAChC,SAAK,OAAO;AAAA,EACd;AAAA,EACA,iBAAiB,OAAO;AACtB,YAAQ,MAAM,SAAS;AAAA,MACrB,KAAK;AACH,aAAK,YAAY,MAAM;AACvB,aAAK,gBAAgB;AACrB,aAAK,KAAK;AACV,YAAI,KAAK,eAAe;AACtB,eAAK,2BAA2B;AAAA,QAClC;AACA;AAAA,IACJ;AAAA,EACF;AAAA,EACA,eAAe,OAAO;AACpB,YAAQ,MAAM,SAAS;AAAA,MACrB,KAAK;AACH,aAAK,KAAK,KAAK;AACf,oBAAY,MAAM,KAAK,SAAS;AAChC,aAAK,sBAAsB;AAC3B;AAAA,IACJ;AAAA,EACF;AAAA,EACA,kBAAkB;AAChB,QAAI,KAAK,UAAU;AACjB,UAAI,KAAK,aAAa;AAAQ,aAAK,SAAS,YAAY,KAAK,SAAS,MAAM,KAAK,SAAS;AAAA;AAAO,mBAAW,YAAY,KAAK,WAAW,KAAK,QAAQ;AAAA,IACvJ;AAAA,EACF;AAAA,EACA,6BAA6B;AAC3B,UAAM,iBAAiB,KAAK,KAAK,KAAK,GAAG,cAAc,gBAAgB,KAAK;AAC5E,SAAK,yBAAyB,KAAK,SAAS,OAAO,gBAAgB,WAAW,WAAS;AACrF,UAAI,MAAM,SAAS,IAAI;AACrB,YAAI,SAAS,KAAK,UAAU,MAAM,MAAM,MAAM,YAAY,IAAI,KAAK,SAAS,GAAG;AAC7E,eAAK,MAAM,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,+BAA+B;AAC7B,QAAI,KAAK,wBAAwB;AAC/B,WAAK,uBAAuB;AAC5B,WAAK,yBAAyB;AAAA,IAChC;AAAA,EACF;AAAA,EACA,0BAA0B;AACxB,QAAI,KAAK,mBAAmB;AAC1B,WAAK,kBAAkB;AACvB,WAAK,oBAAoB;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,wBAAwB;AACtB,SAAK,wBAAwB;AAC7B,SAAK,6BAA6B;AAAA,EACpC;AAAA,EACA,6BAA6B;AAC3B,QAAI,KAAK,wBAAwB,KAAK,MAAM;AAC1C,WAAK,qBAAqB;AAC1B,WAAK,uBAAuB;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,cAAc;AACZ,SAAK,cAAc;AACnB,QAAI,KAAK,WAAW,KAAK,OAAO;AAC9B,WAAK,aAAa;AAAA,IACpB;AACA,QAAI,KAAK,YAAY,KAAK,WAAW;AACnC,WAAK,SAAS,YAAY,KAAK,GAAG,eAAe,KAAK,SAAS;AAAA,IACjE;AACA,QAAI,KAAK,aAAa,KAAK,YAAY;AACrC,kBAAY,MAAM,KAAK,SAAS;AAAA,IAClC;AACA,SAAK,YAAY;AACjB,SAAK,sBAAsB;AAC3B,SAAK,2BAA2B;AAAA,EAClC;AAAA,EACA,OAAO,YAAO,SAAS,gBAAgB,GAAG;AACxC,WAAO,KAAK,KAAK,UAAY,4BAAkB,QAAQ,GAAM,4BAAqB,UAAU,GAAM,4BAAqB,SAAS,GAAM,4BAAqB,iBAAiB,GAAM,4BAAqB,aAAa,CAAC;AAAA,EACvN;AAAA,EACA,OAAO,YAAsB,gBAAG,4BAAkB;AAAA,IAChD,MAAM;AAAA,IACN,WAAW,CAAC,CAAC,WAAW,CAAC;AAAA,IACzB,gBAAgB,SAAS,uBAAuB,IAAI,KAAK,UAAU;AACjE,UAAI,KAAK,GAAG;AACV,QAAG,yBAAe,UAAU,eAAe,CAAC;AAAA,MAC9C;AACA,UAAI,KAAK,GAAG;AACV,YAAI;AACJ,QAAG,yBAAe,KAAQ,sBAAY,CAAC,MAAM,IAAI,YAAY;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,WAAW,CAAC,GAAG,WAAW;AAAA,IAC1B,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,aAAa,CAAI,WAAa,4BAA4B,eAAe,eAAe,gBAAgB;AAAA,MACxG,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,YAAY,CAAI,WAAa,4BAA4B,cAAc,cAAc,gBAAgB;AAAA,MACrG,YAAY,CAAI,WAAa,4BAA4B,cAAc,cAAc,eAAe;AAAA,MACpG,OAAO,CAAI,WAAa,4BAA4B,SAAS,SAAS,gBAAgB;AAAA,MACtF,aAAa,CAAI,WAAa,4BAA4B,eAAe,eAAe,gBAAgB;AAAA,MACxG,eAAe,CAAI,WAAa,4BAA4B,iBAAiB,iBAAiB,gBAAgB;AAAA,MAC9G,eAAe,CAAI,WAAa,4BAA4B,iBAAiB,iBAAiB,gBAAgB;AAAA,MAC9G,mBAAmB;AAAA,MACnB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,IACd;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,eAAe;AAAA,IACjB;AAAA,IACA,UAAU,CAAI,kCAAwB;AAAA,IACtC,oBAAoBH;AAAA,IACpB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,QAAQ,iBAAiB,GAAG,WAAW,WAAW,SAAS,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,iBAAiB,GAAG,WAAW,WAAW,SAAS,GAAG,CAAC,GAAG,QAAQ,UAAU,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,QAAQ,UAAU,SAAS,yCAAyC,WAAW,IAAI,GAAG,SAAS,iBAAiB,GAAG,MAAM,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,UAAU,WAAW,IAAI,GAAG,mBAAmB,kBAAkB,UAAU,GAAG,SAAS,eAAe,GAAG,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,CAAC,SAAS,wBAAwB,GAAG,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAAA,IACvrB,UAAU,SAAS,iBAAiB,IAAI,KAAK;AAC3C,UAAI,KAAK,GAAG;AACV,QAAG,0BAAgB;AACnB,QAAG,qBAAW,GAAG,wBAAwB,GAAG,IAAI,OAAO,CAAC;AAAA,MAC1D;AACA,UAAI,KAAK,GAAG;AACV,QAAG,qBAAW,QAAQ,IAAI,OAAO;AAAA,MACnC;AAAA,IACF;AAAA,IACA,cAAc,MAAM,CAAI,SAAY,MAAS,kBAAqB,SAAY,QAAQ,SAAS;AAAA,IAC/F,QAAQ,CAAC,iuCAAiuC;AAAA,IAC1uC,eAAe;AAAA,IACf,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ,cAAc,CAAC,WAAW,mBAAmB,CAAC,aAAa,aAAa,CAAC,CAAC,GAAG,WAAW,mBAAmB,CAAC,aAAa,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,IACjK;AAAA,IACA,iBAAiB;AAAA,EACnB,CAAC;AACH;AAAA,CACC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,SAAS,CAAC;AAAA,IAChF,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA0DV,YAAY,CAAC,QAAQ,cAAc,CAAC,WAAW,mBAAmB,CAAC,aAAa,aAAa,CAAC,CAAC,GAAG,WAAW,mBAAmB,CAAC,aAAa,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,MAChK,iBAAiB,wBAAwB;AAAA,MACzC,eAAe,oBAAkB;AAAA,MACjC,MAAM;AAAA,QACJ,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,CAAC,iuCAAiuC;AAAA,IAC5uC,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,GAAG;AAAA,IACD,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAS;AAAA,EACX,CAAC,GAAG;AAAA,IACF,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,IACD,aAAa,CAAC;AAAA,MACZ,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,OAAO,CAAC;AAAA,MACN,MAAM;AAAA,IACR,CAAC;AAAA,IACD,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,IACR,CAAC;AAAA,IACD,gBAAgB,CAAC;AAAA,MACf,MAAM;AAAA,IACR,CAAC;AAAA,IACD,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,OAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,aAAa,CAAC;AAAA,MACZ,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,eAAe,CAAC;AAAA,MACd,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,eAAe,CAAC;AAAA,MACd,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,QACL,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,IACD,mBAAmB,CAAC;AAAA,MAClB,MAAM;AAAA,IACR,CAAC;AAAA,IACD,SAAS,CAAC;AAAA,MACR,MAAM;AAAA,IACR,CAAC;AAAA,IACD,UAAU,CAAC;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,IACD,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,IACR,CAAC;AAAA,IACD,WAAW,CAAC;AAAA,MACV,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,IACtB,CAAC;AAAA,IACD,QAAQ,CAAC;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,IACD,QAAQ,CAAC;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,IACD,eAAe,CAAC;AAAA,MACd,MAAM;AAAA,IACR,CAAC;AAAA,EACH,CAAC;AACH,GAAG;AACH,IAAM,gBAAN,MAAM,eAAc;AAAA,EAClB,OAAO,YAAO,SAAS,sBAAsB,GAAG;AAC9C,WAAO,KAAK,KAAK,gBAAe;AAAA,EAClC;AAAA,EACA,OAAO,YAAsB,gBAAG,2BAAiB;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,OAAO,YAAsB,gBAAG,2BAAiB;AAAA,IAC/C,SAAS,CAAC,cAAc,cAAc,cAAc,WAAW,YAAY;AAAA,EAC7E,CAAC;AACH;AAAA,CACC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,eAAe,CAAC;AAAA,IACtF,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,SAAS,CAAC,cAAc,cAAc,cAAc,SAAS;AAAA,MAC7D,SAAS,CAAC,SAAS,YAAY;AAAA,MAC/B,cAAc,CAAC,OAAO;AAAA,IACxB,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,IAAI;AAChB,GAAG;;;AC3uBG,IAAO,eAAP,MAAO,aAAW;EAItB,YACU,MACA,aACA,QACA,qBACA,aAAwB;AAJxB,SAAA,OAAA;AACA,SAAA,cAAA;AACA,SAAA,SAAA;AACA,SAAA,sBAAA;AACA,SAAA,cAAA;AAER,SAAK,eAAe,IAAI,gBACtB,KAAK,oBAAoB,QAAQ,aAAa,CAAC;AAEjD,SAAK,sBAAsB,IAAI,gBAC7B,aAAa,QAAQ,cAAc,CAAC;EAExC;EAEA,WAAQ;AACN,WAAO,KAAK,aAAa;EAC3B;EAEA,eAAY;AACV,UAAM,QAAQ,KAAK,oBAAoB;AACvC,WAAO,KACL,KAAK,YAAY,YAAY,eAAe,eAAe,EAAE,MAAK,CAAE,CAAC,EACrE,KACA,IAAI,CAAC,aAAiB;AACpB,YAAM,WAAW,SAAS,KAAK;AAC/B,WAAK,aAAa,KAAK,QAAQ;AAC/B,WAAK,oBAAoB,eAAe,QAAQ;IAClD,CAAC,CAAC;EAEN;EAEA,SAAM;AACJ,SAAK,aAAa,KAAK,IAAI;AAC3B,SAAK,oBAAoB,KAAK,IAAI;AAClC,SAAK,oBAAoB,kBAAiB;AAC1C,SAAK,YAAY,SAAS,eAAc;AACxC,iBAAa,WAAW,cAAc;AACtC,iBAAa,WAAW,YAAY;AACpC,iBAAa,WAAW,UAAU;AAClC,SAAK,OAAO,SAAS,CAAC,QAAQ,CAAC;EACjC;;;mBA7CW,cAAW,mBAAA,UAAA,GAAA,mBAAA,WAAA,GAAA,mBAAA,MAAA,GAAA,mBAAA,0BAAA,GAAA,mBAAA,WAAA,CAAA;AAAA;gFAAX,cAAW,SAAX,aAAW,WAAA,YAFV,OAAM,CAAA;AAEd,IAAO,cAAP;;;;;;;AEGE,IAAA,yBAAA,GAAA,OAAA,EAAA;AAGE,IAAA,qBAAA,SAAA,SAAA,uDAAA;AAAA,MAAA,wBAAA,GAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,aAAA,sBAAS,OAAA,iBAAA,CAAkB;IAAA,CAAA;AAH7B,IAAA,uBAAA;;;;;AA2BI,IAAA,oBAAA,GAAA,OAAA,EAAA;;;;AAEE,IAAA,qBAAA,OAAA,QAAA,WAAA,gCAAA,iCAAA,uBAAA;;;;;;AAUF,IAAA,yBAAA,GAAA,MAAA,EAAA;AAEE,IAAA,qBAAA,SAAA,SAAA,yEAAA;AAAA,YAAA,aAAA,wBAAA,GAAA,EAAA;AAAA,YAAA,SAAA,wBAAA,CAAA;AAAA,aAAA,sBAAS,OAAA,SAAA,WAAA,UAA2B,CAAC,CAAA,CAAE;IAAA,CAAA;AAMvC,IAAA,yBAAA,GAAA,KAAA,EAAA;AAAgB,IAAA,iBAAA,CAAA;AAAkB,IAAA,uBAAA,EAAI;;;;;AALtC,IAAA,qBAAA,WAAA,0BAAA,GAAAI,MAAA,OAAA,cAAA,WAAA,SAAA,CAAA,CAAA;AAKgB,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,WAAA,IAAA;;;;;AATpB,IAAA,yBAAA,GAAA,MAAA,EAAA;AACE,IAAA,qBAAA,GAAA,oDAAA,GAAA,GAAA,MAAA,EAAA;AAUF,IAAA,uBAAA;;;;AATwB,IAAA,oBAAA;AAAA,IAAA,qBAAA,WAAA,QAAA,QAAA;;;;;;AAjC1B,IAAA,kCAAA,CAAA;AACE,IAAA,yBAAA,GAAA,MAAA,EAAA;AACE,IAAA,qBAAA,SAAA,SAAA,+DAAA;AAAA,YAAA,UAAA,wBAAA,GAAA,EAAA;AAAA,YAAA,SAAA,wBAAA;AAAA,aAAA,sBAAA,QAAA,WACiC,OAAA,eAAA,OAAA,IAAuB,OAAA,SAAA,QAAA,UACzD,CAAC,CAAA,CACZ;IAAA,CAAA;AAKY,IAAA,oBAAA,GAAA,OAAA,EAAA;AASA,IAAA,yBAAA,GAAA,GAAA;AAAG,IAAA,iBAAA,CAAA;AAAe,IAAA,uBAAA;AAClB,IAAA,qBAAA,GAAA,gDAAA,GAAA,GAAA,OAAA,EAAA;AAUF,IAAA,uBAAA;AACA,IAAA,qBAAA,GAAA,+CAAA,GAAA,GAAA,MAAA,EAAA;;;;;;AA1BE,IAAA,oBAAA;AAAA,IAAA,qBAAA,WAAA,0BAAA,GAAAA,MAAA,OAAA,cAAA,QAAA,SAAA,CAAA,CAAA;AAWE,IAAA,oBAAA;AAAA,IAAA,gCAAA,OAAA,QAAA,IAAA;AALA,IAAA,qBAAA,OAAA,OAAA,cAAA,QAAA,SAAA,IAAA,QAAA,iBAAA,QAAA,UAAA,uBAAA;AAQC,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,QAAA,IAAA;AAEA,IAAA,oBAAA;AAAA,IAAA,qBAAA,QAAA,QAAA,QAAA;AAUA,IAAA,oBAAA;AAAA,IAAA,qBAAA,QAAA,QAAA,QAAA;;;AD9BT,IAAO,oBAAP,MAAO,kBAAgB;EAqL3B,YACU,QACD,gBACC,eACAC,eACA,aACA,aAAwB;AALxB,SAAA,SAAA;AACD,SAAA,iBAAA;AACC,SAAA,gBAAA;AACA,SAAA,eAAAA;AACA,SAAA,cAAA;AACA,SAAA,cAAA;AAxLV,SAAA,uBAAuB;AACvB,SAAA,eAAwB;AAExB,SAAA,iBAAsB,CAAA;AACtB,SAAA,sBAA2B;MACzB;QACE,MAAM;QACN,WAAW,CAAC,YAAY;QACxB,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,2BAA2B,0BAA0B;QACjE,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,2BAA2B;QACvC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW;UACT;UACA;;QAEF,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,4BAA4B;QACxC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,oBAAoB;QAChC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW;UACT;UACA;UACA;;QAEF,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,kBAAkB;QAC9B,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,wBAAwB;QACpC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,gBAAgB;QAC5B,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,mBAAmB;QAC/B,UAAU;QACV,gBAAgB;;;;;;;;MAQlB;QACE,MAAM;QACN,WAAW,CAAC,0BAA0B;QACtC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,kBAAkB;QAC9B,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,UAAU;QACV,gBAAgB;QAChB,UAAU;QACV,UAAU;UACR;YACE,MAAM;YACN,WAAW,CAAC,8BAA8B;YAC1C,UAAU;YACV,gBAAgB;;UAElB;YACE,MAAM;YACN,WAAW,CAAC,4BAA4B;YACxC,UAAU;YACV,gBAAgB;;UAElB;YACE,MAAM;YACN,WAAW,CAAC,gCAAgC;YAC5C,UAAU;YACV,gBAAgB;;;;;AAMxB,SAAA,qBAA0B;MACxB;QACE,MAAM;QACN,WAAW,CAAC,YAAY;QACxB,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,2BAA2B,0BAA0B;QACjE,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,2BAA2B;QACvC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW;UACT;UACA;;QAEF,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,4BAA4B;QACxC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW,CAAC,oBAAoB;QAChC,UAAU;QACV,gBAAgB;;MAElB;QACE,MAAM;QACN,WAAW;UACT;UACA;UACA;;QAEF,UAAU;QACV,gBAAgB;;;AAIpB,SAAA,WAA0B;AAUxB,SAAK,aAAY;AACjB,SAAK,gBAAe;AACpB,WAAO,iBAAiB,UAAU,KAAK,aAAa,KAAK,IAAI,CAAC;AAC9D,SAAK,cAAc,KAAK,OAAO;AAC/B,SAAK,OAAO,OACT,KACC,OACE,CAAC,UACC,iBAAiB,aAAa,CACjC,EAEF,UAAU,CAAC,UAAwB;AAClC,WAAK,cAAc,MAAM;AACzB,WAAK,4BAA2B;IAClC,CAAC;EACL;EAEA,WAAQ;AACN,UAAM,SAAS,aAAa,QAAQ,YAAY;AAChD,QAAI,UAAU,aAAa,OAAO;AAChC,WAAK,iBAAiB,KAAK;IAC7B;AAAO,WAAK,iBAAiB,KAAK;AAClC,SAAK,4BAA2B;AAChC,SAAK,WAAW,aAAa,QAAQ,UAAU;EACjD;EAEA,8BAA2B;AACzB,SAAK,eAAe,QAAQ,CAAC,SAAa;AACxC,UAAI,KAAK,UAAU;AACjB,aAAK,WAAW,KAAK,SAAS,KAAK,CAAC,YAClC,KAAK,cAAc,CAAC,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC;MAE9C;IACF,CAAC;EACH;EAEA,eAAe,MAAS;AACtB,SAAK,WAAW,CAAC,KAAK;EACxB;EAEA,oBAAoB,SAAgB;AAClC,QAAI,YAAY,KAAK,eAAe,mBAAkB,GAAI;AACxD,WAAK,eAAe,OAAM;IAC5B;EACF;EAEA,SAAS,WAAiB;AACxB,SAAK,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,MAAK;AAC1C,UAAI,KAAK,sBAAsB;AAC7B,aAAK,eAAe,MAAK;MAC3B;IACF,CAAC;EACH;EAEA,mBAAgB;AACd,SAAK,OAAO,SAAS,CAAC,YAAY,CAAC;EACrC;EAEA,eAAY;AACV,QAAI,OAAO,cAAc,MAAM;AAC7B,WAAK,eAAe,MAAK;IAC3B,OAAO;AACL,WAAK,eAAe,KAAI;IAC1B;EACF;EAEA,WAAQ;AACN,SAAK,MAAM,KAAK,cAAc,KAAK,4BAA4B;MAC7D,MAAM;QACJ,gBAAgB;QAChB,UAAU;;MAEZ,OAAO;MACP,YAAY,KAAK,eACb,4CACA;KACL;AACD,SAAK,sBAAsB,KAAK,IAAI,QAAQ,UAAU,CAAC,WAAU;AAC/D,UAAI,WAAW,aAAa;AAC1B,aAAK,qBAAoB;MAC3B;IACF,CAAC;EACH;EAEA,uBAAoB;AAClB,UAAM,MAAM,GAAG,eAAe,MAAM;AACpC,QAAI,SAAS,IAAI,WAAU;AAC3B,UAAM,QAAQ,aAAa,QAAQ,cAAc;AACjD,QAAI,OAAO;AACT,eAAS,OAAO,IAAI,gBAAgB,KAAK;IAC3C;AAEA,SAAK,YACF,WAAW,KAAK,MAAM,EAAE,OAAM,CAAE,EAChC,KAAK,CAAC,aAAY;AACjB,WAAK,YAAY,OAAM;AACvB,WAAK,MAAM,KAAK,cAAc,KAAK,uBAAuB;QACxD,MAAM;UACJ,gBAAgB;UAChB,gBAAgB;;QAElB,OAAO;QACP,YAAY,KAAK,eACb,4CACA;OACL;IACH,CAAC,EACA,MAAM,CAAC,UAAS;AACf,UAAG,MAAM,OAAO,OAAO,CAAC,GAAG,YAAY,qBAAqB;AAC1D,aAAK,YAAY,OAAM;MACzB;AACA,cAAQ,MAAM,uBAAuB,KAAK;IAC5C,CAAC;EACL;EAEA,cAAc,QAAgB;AAC5B,WAAO,QAAQ,SAAS,KAAK,WAAW;EAC1C;EAEA,mBAAgB;AACd,SAAK,eAAe,MAAK;EAC3B;EAEA,kBAAe;AACb,SAAK,eAAe,OAAO,aAAa;AACxC,SAAK,uBAAuB,OAAO,cAAc;EACnD;EAGA,WAAQ;AACN,SAAK,aAAY;AACjB,SAAK,gBAAe;EACtB;EAEA,cAAW;AACT,WAAO,oBAAoB,UAAU,KAAK,aAAa,KAAK,IAAI,CAAC;AACjE,QAAI,KAAK,qBAAqB;AAC5B,WAAK,qBAAqB,YAAW;IACvC;EACF;;;mBAxUW,mBAAgB,4BAAA,MAAA,GAAA,4BAAA,cAAA,GAAA,4BAAA,aAAA,GAAA,4BAAA,0BAAA,GAAA,4BAAA,WAAA,GAAA,4BAAA,WAAA,CAAA;AAAA;kFAAhB,mBAAgB,WAAA,CAAA,CAAA,aAAA,CAAA,GAAA,cAAA,SAAA,8BAAA,IAAA,KAAA;AAAA,MAAA,KAAA,GAAA;AAAhB,IAAA,qBAAA,UAAA,SAAA,6CAAA;AAAA,aAAA,IAAA,SAAA;IAAU,GAAA,OAAA,yBAAA;;;;ACxBvB,IAAA,yBAAA,GAAA,aAAA,CAAA;;AAEE,IAAA,qBAAA,iBAAA,SAAA,6DAAA,QAAA;AAAA,aAAiB,IAAA,oBAAA,MAAA;IAA2B,CAAA;AAK5C,IAAA,yBAAA,GAAA,OAAA,CAAA,EAAkC,GAAA,OAAA,CAAA,EACD,GAAA,OAAA,CAAA,EACN,GAAA,OAAA,CAAA;AAKnB,IAAA,qBAAA,SAAA,SAAA,iDAAA;AAAA,aAAS,IAAA,iBAAA;IAAkB,CAAA;AAJ7B,IAAA,uBAAA;AAMA,IAAA,qBAAA,GAAA,iCAAA,GAAA,GAAA,OAAA,CAAA;AAKF,IAAA,uBAAA;AACA,IAAA,yBAAA,GAAA,MAAA,CAAA;AACE,IAAA,qBAAA,GAAA,0CAAA,GAAA,GAAA,gBAAA,CAAA;AA4CF,IAAA,uBAAA,EAAK;AAEP,IAAA,yBAAA,GAAA,OAAA,CAAA,EAAqB,IAAA,OAAA,CAAA,EACsB,IAAA,OAAA,EAAA,EACrB,IAAA,KAAA,EAAA;AACU,IAAA,iBAAA,EAAA;AAAc,IAAA,uBAAA,EAAI;AAE9C,IAAA,yBAAA,IAAA,OAAA,EAAA;AAGE,IAAA,qBAAA,SAAA,SAAA,kDAAA;AAAA,aAAS,IAAA,SAAA;IAAU,CAAA;AAHrB,IAAA,uBAAA,EAIE,EACE,EACF,EACF;;;AAhFN,IAAA,qBAAA,WAAA,sBAAA,GAAA,GAAA,IAAA,eAAA,SAAA,CAAA,EAA+C,cAAA,GAAA,EAE3B,SAAA,KAAA,EACL,iBAAA,KAAA;AAaN,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,QAAA,IAAA,oBAAA;AAM4B,IAAA,oBAAA,CAAA;AAAA,IAAA,qBAAA,WAAA,IAAA,cAAA;AAiDH,IAAA,oBAAA,CAAA;AAAA,IAAA,4BAAA,IAAA,QAAA;AAG1B,IAAA,oBAAA;AAAA,IAAA,qBAAA,OAAA,iCAAA,uBAAA;;kBDvDE,eAAa,SAAE,cAAY,SAAA,SAAA,MAAA,SAAA,GAAA,QAAA,CAAA,usCAAA,EAAA,CAAA;AAIjC,IAAO,mBAAP;;6EAAO,kBAAgB,EAAA,WAAA,oBAAA,UAAA,+CAAA,YAAA,GAAA,CAAA;AAAA,GAAA;","names":["_c0","_c1","import_lodash","RtlScrollAxisType","line","_c0","_c1","_c0","_c1","_c2","document","_c0","localStorage"],"x_google_ignoreList":[2,8,9,10,11]}