@konce-pt/angular 0.7.9 → 0.7.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/fesm2022/konce-pt-angular-charts.mjs +8 -8
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -1
- package/fesm2022/konce-pt-angular.mjs +305 -247
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/context-menu/llms.txt +2 -2
- package/src/lib/megamenu/llms.txt +1 -1
- package/src/lib/menu/llms.txt +2 -2
- package/src/lib/menubar/llms.txt +2 -2
- package/src/lib/speed-dial/llms.txt +2 -2
- package/src/lib/split-button/llms.txt +2 -2
- package/types/konce-pt-angular.d.ts +52 -32
- package/types/konce-pt-angular.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"konce-pt-angular.mjs","sources":["../../src/lib/button/button.component.html","../../src/lib/button/button.component.ts","../../src/lib/icon-button/icon-button.component.ts","../../src/lib/button-group/button-group.component.ts","../../src/lib/fab/fab.component.ts","../../src/lib/icon/icons.ts","../../src/lib/icon/icon-registry.ts","../../src/lib/icon/icon.component.ts","../../src/lib/avatar/avatar.component.ts","../../src/lib/badge/badge.component.ts","../../src/lib/i18n/i18n.token.ts","../../src/lib/i18n/messages.ts","../../src/lib/i18n/i18n.service.ts","../../src/lib/split-button/split-button.component.ts","../../src/lib/breakpoint/breakpoints.generated.ts","../../src/lib/breakpoint/breakpoint.service.ts","../../src/lib/i18n/i18n.provider.ts","../../src/lib/chip/chip.component.ts","../../src/lib/spinner/spinner.component.ts","../../src/lib/progress/progress.component.ts","../../src/lib/skeleton/skeleton.component.ts","../../src/lib/form-field/form-field-control.ts","../../src/lib/form-field/form-field.component.html","../../src/lib/form-field/form-field.component.ts","../../src/lib/input/input.component.ts","../../src/lib/input/input.component.html","../../src/lib/checkbox/checkbox.component.ts","../../src/lib/switch/switch.component.ts","../../src/lib/switch-group/switch-group.component.ts","../../src/lib/radio-group/radio-group.component.ts","../../src/lib/select/select.component.html","../../src/lib/select/select.component.ts","../../src/lib/i18n/intl.ts","../../src/lib/datepicker/clock.component.ts","../../src/lib/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.component.ts","../../src/lib/textarea/textarea.component.ts","../../src/lib/tooltip/tooltip.directive.ts","../../src/lib/rich-text/rich-text.component.html","../../src/lib/rich-text/rich-text.component.ts","../../src/lib/slider/slider.component.ts","../../src/lib/rating/rating.component.ts","../../src/lib/file-upload/file-upload.component.ts","../../src/lib/color-picker/color-picker.component.ts","../../src/lib/date-range/date-range.component.html","../../src/lib/date-range/date-range.component.ts","../../src/lib/input-number/input-number.component.ts","../../src/lib/password/password.component.ts","../../src/lib/input-otp/input-otp.component.ts","../../src/lib/chips-input/chips-input.component.ts","../../src/lib/input-mask/input-mask.component.ts","../../src/lib/listbox/listbox.component.ts","../../src/lib/knob/knob.component.ts","../../src/lib/card/card.component.html","../../src/lib/card/card.component.ts","../../src/lib/divider/divider.component.ts","../../src/lib/toolbar/toolbar.component.ts","../../src/lib/sidenav/sidenav.component.ts","../../src/lib/app-shell/app-shell.component.ts","../../src/lib/app-shell/app-shell.component.html","../../src/lib/app-shell/shell-nav-toggle.directive.ts","../../src/lib/panel/panel.component.ts","../../src/lib/fieldset/fieldset.component.ts","../../src/lib/splitter/splitter.component.ts","../../src/lib/scroll-top/scroll-top.component.ts","../../src/lib/image/image.component.ts","../../src/lib/meter-group/meter-group.component.ts","../../src/lib/avatar-group/avatar-group.component.ts","../../src/lib/empty/empty.component.ts","../../src/lib/tabs/tab.component.ts","../../src/lib/tabs/tabs.component.ts","../../src/lib/accordion/accordion-panel.component.ts","../../src/lib/accordion/accordion.component.ts","../../src/lib/breadcrumb/breadcrumb.component.ts","../../src/lib/stepper/step.component.ts","../../src/lib/stepper/stepper.component.ts","../../src/lib/paginator/paginator.component.html","../../src/lib/paginator/paginator.component.ts","../../src/lib/data-table/cell.directive.ts","../../src/lib/data-table/cell-edit.directive.ts","../../src/lib/data-table/csv-export.ts","../../src/lib/data-table/row-detail.directive.ts","../../src/lib/data-table/summary.ts","../../src/lib/data-table/data-table.component.html","../../src/lib/data-table/data-table.component.ts","../../src/lib/tree/tree.component.ts","../../src/lib/timeline/timeline.component.ts","../../src/lib/carousel/carousel.component.ts","../../src/lib/data-view/data-view.component.ts","../../src/lib/pick-list/pick-list.component.ts","../../src/lib/order-list/order-list.component.ts","../../src/lib/galleria/galleria.component.ts","../../src/lib/alert/alert.component.ts","../../src/lib/dialog/dialog.component.ts","../../src/lib/toast/toast.service.ts","../../src/lib/toast/toast-container.component.ts","../../src/lib/menu/menu.component.ts","../../src/lib/popover/popover.component.ts","../../src/lib/autocomplete/autocomplete.component.ts","../../src/lib/drawer/drawer.component.ts","../../src/lib/context-menu/context-menu.component.ts","../../src/lib/menubar/menubar.component.ts","../../src/lib/megamenu/megamenu.component.ts","../../src/lib/confirm/confirm.service.ts","../../src/lib/confirm/confirm-container.component.ts","../../src/lib/bottom-sheet/bottom-sheet.component.ts","../../src/lib/speed-dial/speed-dial.component.ts","../../src/public-api.ts","../../src/konce-pt-angular.ts"],"sourcesContent":["<button\n class=\"kpt-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n [class.kpt-button--loading]=\"loading()\"\n [disabled]=\"isDisabled()\"\n>\n @if (loading()) {\n <span class=\"kpt-button__spinner\" aria-hidden=\"true\"></span>\n }\n <span class=\"kpt-button__content\"><ng-content /></span>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nexport type KptButtonVariant = 'filled' | 'tonal' | 'outline' | 'text' | 'danger';\nexport type KptButtonSize = 'sm' | 'md' | 'lg';\n\n/**\n * Przycisk Koncept UI. Renderuje natywny `<button>` (zachowana semantyka i submit\n * formularza). Wygląd sterowany tokenami `--kpt-button-*`.\n *\n * @example\n * <kpt-button variant=\"filled\" (click)=\"save()\">Zapisz</kpt-button>\n * <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"busy()\">Anuluj</kpt-button>\n */\n@Component({\n selector: 'kpt-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n class: 'kpt-button-host',\n '[class.kpt-button-host--full]': 'fullWidth()',\n },\n})\nexport class KptButton {\n /** Wariant wizualny. */\n readonly variant = input<KptButtonVariant>('filled');\n /** Rozmiar. */\n readonly size = input<KptButtonSize>('md');\n /** Typ natywnego przycisku (istotne w formularzach). */\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wyłączony. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Stan ładowania — pokazuje spinner i blokuje interakcję. */\n readonly loading = input(false, { transform: booleanAttribute });\n /** Rozciągnięcie na całą szerokość kontenera. */\n readonly fullWidth = input(false, { transform: booleanAttribute });\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport type { KptButtonVariant, KptButtonSize } from '../button/button.component';\n\n/**\n * Przycisk ikonowy (tylko ikona). Wymaga `ariaLabel` dla dostępności.\n *\n * @example\n * <kpt-icon-button ariaLabel=\"Ustawienia\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n * <kpt-icon-button variant=\"filled\" shape=\"square\" ariaLabel=\"Usuń\"><kpt-icon name=\"x\" /></kpt-icon-button>\n */\n@Component({\n selector: 'kpt-icon-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-icon-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n >\n @if (loading()) {\n <span class=\"kpt-icon-button__spinner\" aria-hidden=\"true\"></span>\n } @else {\n <ng-content />\n }\n </button>\n `,\n styleUrl: './icon-button.component.scss',\n host: { class: 'kpt-icon-button-host' },\n})\nexport class KptIconButton {\n readonly variant = input<KptButtonVariant>('text');\n readonly size = input<KptButtonSize>('md');\n readonly shape = input<'round' | 'square'>('round');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** Etykieta dostępności (wymagana — przycisk nie ma tekstu). */\n readonly ariaLabel = input.required<string>();\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Segmentowana grupa przycisków (toggle) — pojedynczy wybór z opcji. Signal Forms.\n *\n * @example\n * <kpt-button-group [(value)]=\"view\" [options]=\"[{label:'Lista',value:'list'},{label:'Siatka',value:'grid'}]\" />\n * <kpt-button-group [formField]=\"f.period\" [options]=\"periods\" />\n */\n@Component({\n selector: 'kpt-button-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-button-group\" role=\"group\" [attr.data-size]=\"size()\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"kpt-button-group__item\"\n [class.is-active]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n [attr.aria-pressed]=\"opt.value === value()\"\n (click)=\"select(opt)\"\n >{{ opt.label }}</button>\n }\n </div>\n `,\n styleUrl: './button-group.component.scss',\n host: { class: 'kpt-button-group-host' },\n})\nexport class KptButtonGroup<T = unknown> implements FormValueControl<T> {\n readonly options = input<KptOption<T>[]>([]);\n readonly value = model<T>(undefined as T);\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected select(opt: KptOption<T>): void {\n if (opt.disabled || this.disabled()) return;\n this.value.set(opt.value);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\n/**\n * Floating Action Button (FAB) — okrągły, wyniesiony przycisk akcji. Wariant `extended` = pigułka z tekstem.\n *\n * @example\n * <kpt-fab ariaLabel=\"Dodaj\"><kpt-icon name=\"plus\" /></kpt-fab>\n * <kpt-fab extended><kpt-icon name=\"plus\" /> Nowy</kpt-fab>\n */\n@Component({\n selector: 'kpt-fab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-fab\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-fab--extended]=\"extended()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"extended() ? null : ariaLabel()\"\n ><ng-content /></button>\n `,\n styleUrl: './fab.component.scss',\n host: { class: 'kpt-fab-host' },\n})\nexport class KptFab {\n readonly variant = input<'filled' | 'tonal'>('filled');\n readonly size = input<'md' | 'mini'>('md');\n readonly extended = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wymagane dla wariantu okrągłego (bez tekstu). */\n readonly ariaLabel = input('');\n}\n","// Ikony z zestawu Tabler Icons (MIT). Wyodrębnione inline (siatka 24x24, stroke 2px).\n// Źródło i licencja: https://github.com/tabler/tabler-icons (MIT). Zob. ICONS-LICENSE.\nexport type KptIconName = 'menu' | 'x' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'check' | 'search' | 'grip-vertical' | 'info' | 'alert-triangle' | 'circle-check' | 'circle-x' | 'calendar' | 'copy' | 'link' | 'code' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'list' | 'list-numbers' | 'clear-formatting' | 'star' | 'plus' | 'upload' | 'dots-vertical' | 'photo' | 'trash' | 'eye' | 'eye-off' | 'minus' | 'arrow-up' | 'arrow-down' | 'zoom-in' | 'info-circle' | 'phone' | 'map-pin' | 'world' | 'clock' | 'align-left' | 'align-center' | 'align-right' | 'align-justified' | 'palette' | 'highlight' | 'clipboard' | 'clipboard-text' | 'table' | 'pencil' | 'mail' | 'share' | 'external-link' | 'crosshair' | 'adjustments-horizontal';\n\nexport const KPT_ICONS: Record<KptIconName, string> = {\n 'menu': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l16 0\" /> <path d=\"M4 18l16 0\" />',\n 'x': '<path d=\"M18 6l-12 12\" /> <path d=\"M6 6l12 12\" />',\n 'chevron-up': '<path d=\"M6 15l6 -6l6 6\" />',\n 'chevron-down': '<path d=\"M6 9l6 6l6 -6\" />',\n 'chevron-left': '<path d=\"M15 6l-6 6l6 6\" />',\n 'chevron-right': '<path d=\"M9 6l6 6l-6 6\" />',\n 'check': '<path d=\"M5 12l5 5l10 -10\" />',\n 'search': '<path d=\"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\" /> <path d=\"M21 21l-6 -6\" />',\n 'grip-vertical': '<path d=\"M8 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M8 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M8 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" />',\n 'info': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 9h.01\" /> <path d=\"M11 12h1v4h1\" />',\n 'alert-triangle': '<path d=\"M12 9v4\" /> <path d=\"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0\" /> <path d=\"M12 16h.01\" />',\n 'circle-check': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /> <path d=\"M9 12l2 2l4 -4\" />',\n 'circle-x': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /> <path d=\"M10 10l4 4m0 -4l-4 4\" />',\n 'calendar': '<path d=\"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12\" /> <path d=\"M16 3v4\" /> <path d=\"M8 3v4\" /> <path d=\"M4 11h16\" /> <path d=\"M11 15h1\" /> <path d=\"M12 15v3\" />',\n 'copy': '<path d=\"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666\" /> <path d=\"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1\" />',\n 'link': '<path d=\"M9 15l6 -6\" /> <path d=\"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464\" /> <path d=\"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463\" />',\n 'code': '<path d=\"M7 8l-4 4l4 4\" /> <path d=\"M17 8l4 4l-4 4\" /> <path d=\"M14 4l-4 16\" />',\n 'bold': '<path d=\"M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7\" /> <path d=\"M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7\" />',\n 'italic': '<path d=\"M11 5l6 0\" /> <path d=\"M7 19l6 0\" /> <path d=\"M14 5l-4 14\" />',\n 'underline': '<path d=\"M7 5v5a5 5 0 0 0 10 0v-5\" /> <path d=\"M5 19h14\" />',\n 'strikethrough': '<path d=\"M5 12l14 0\" /> <path d=\"M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5\" />',\n 'list': '<path d=\"M9 6l11 0\" /> <path d=\"M9 12l11 0\" /> <path d=\"M9 18l11 0\" /> <path d=\"M5 6l0 .01\" /> <path d=\"M5 12l0 .01\" /> <path d=\"M5 18l0 .01\" />',\n 'list-numbers': '<path d=\"M11 6h9\" /> <path d=\"M11 12h9\" /> <path d=\"M12 18h8\" /> <path d=\"M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4\" /> <path d=\"M6 10v-6l-2 2\" />',\n 'clear-formatting': '<path d=\"M17 15l4 4m0 -4l-4 4\" /> <path d=\"M7 6v-1h11v1\" /> <path d=\"M7 19l4 0\" /> <path d=\"M13 5l-4 14\" />',\n 'star': '<path d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873l-6.158 -3.245\" />',\n 'plus': '<path d=\"M12 5l0 14\" /> <path d=\"M5 12l14 0\" />',\n 'upload': '<path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2\" /> <path d=\"M7 9l5 -5l5 5\" /> <path d=\"M12 4l0 12\" />',\n 'dots-vertical': '<path d=\"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" />',\n 'photo': '<path d=\"M15 8h.01\" /> <path d=\"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12\" /> <path d=\"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5\" /> <path d=\"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3\" />',\n 'trash': '<path d=\"M4 7l16 0\" /> <path d=\"M10 11l0 6\" /> <path d=\"M14 11l0 6\" /> <path d=\"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12\" /> <path d=\"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3\" />',\n 'pencil': '<path d=\"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" /> <path d=\"M13.5 6.5l4 4\" />',\n 'eye': '<path d=\"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /> <path d=\"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6\" />',\n 'eye-off': '<path d=\"M10.585 10.587a2 2 0 0 0 2.829 2.828\" /> <path d=\"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87\" /> <path d=\"M3 3l18 18\" />',\n 'minus': '<path d=\"M5 12l14 0\" />',\n 'arrow-up': '<path d=\"M12 5l0 14\" /> <path d=\"M18 11l-6 -6\" /> <path d=\"M6 11l6 -6\" />',\n 'arrow-down': '<path d=\"M12 5l0 14\" /> <path d=\"M18 13l-6 6\" /> <path d=\"M6 13l6 6\" />',\n 'zoom-in': '<path d=\"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\" /> <path d=\"M7 10l6 0\" /> <path d=\"M10 7l0 6\" /> <path d=\"M21 21l-6 -6\" />',\n 'info-circle': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 9h.01\" /> <path d=\"M11 12h1v4h1\" />',\n 'phone': '<path d=\"M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2\" />',\n 'map-pin': '<path d=\"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0\" /> <path d=\"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z\" />',\n 'world': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M3.6 9h16.8\" /> <path d=\"M3.6 15h16.8\" /> <path d=\"M11.5 3a17 17 0 0 0 0 18\" /> <path d=\"M12.5 3a17 17 0 0 1 0 18\" />',\n 'clock': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 7v5l3 3\" />',\n 'align-left': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l10 0\" /> <path d=\"M4 18l14 0\" />',\n 'align-center': '<path d=\"M4 6l16 0\" /> <path d=\"M8 12l8 0\" /> <path d=\"M6 18l12 0\" />',\n 'align-right': '<path d=\"M4 6l16 0\" /> <path d=\"M10 12l10 0\" /> <path d=\"M6 18l14 0\" />',\n 'align-justified': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l16 0\" /> <path d=\"M4 18l12 0\" />',\n 'palette': '<path d=\"M12 21a9 9 0 0 1 0 -18a9 8 0 0 1 9 8a4.5 4 0 0 1 -4.5 4h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25\" /> <path d=\"M8.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" /> <path d=\"M12.5 7.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" /> <path d=\"M16.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />',\n 'highlight': '<path d=\"M3 19h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" /> <path d=\"M12.5 5.5l4 4\" /> <path d=\"M4.5 13.5l4 4\" /> <path d=\"M21 15v4h-8\" />',\n 'clipboard': '<path d=\"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2\" /> <path d=\"M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z\" />',\n 'clipboard-text': '<path d=\"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2\" /> <path d=\"M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z\" /> <path d=\"M9 12h6\" /> <path d=\"M9 16h6\" />',\n 'table': '<path d=\"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z\" /> <path d=\"M3 10h18\" /> <path d=\"M10 3v18\" />',\n 'mail': '<path d=\"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z\" /> <path d=\"M3 7l9 6l9 -6\" />',\n 'share': '<path d=\"M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M8.7 10.7l6.6 -3.4\" /> <path d=\"M8.7 13.3l6.6 3.4\" />',\n 'external-link': '<path d=\"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6\" /> <path d=\"M11 13l9 -9\" /> <path d=\"M15 4h5v5\" />',\n 'crosshair': '<path d=\"M4 12h4\" /> <path d=\"M16 12h4\" /> <path d=\"M12 4v4\" /> <path d=\"M12 16v4\" /> <path d=\"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\" />',\n 'adjustments-horizontal': '<path d=\"M12 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 6l8 0\" /> <path d=\"M16 6l4 0\" /> <path d=\"M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 12l2 0\" /> <path d=\"M10 12l10 0\" /> <path d=\"M15 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 18l11 0\" /> <path d=\"M19 18l1 0\" />',\n};\n","import { Injectable, signal } from '@angular/core';\r\nimport { KPT_ICONS } from './icons';\r\n\r\n// Allowlist SVG dla treści przechodzącej przez `register()` — sam rejestr trafia bez sanitizera\r\n// wprost do `innerHTML` (`icon.component.ts`, markery mapy), więc runtime'owe wywołanie `register()`\r\n// z niezaufaną treścią (CMS/API/upload) byłoby DOM XSS. Wbudowany `KPT_ICONS` (build-time, zaufany)\r\n// nie przechodzi przez ten filtr. Zestaw tagów/atrybutów pokrywa 100% wbudowanych ikon i pełnego\r\n// zestawu Tabler (5130) — oba używają wyłącznie `<path d/fill/opacity/stroke>` — więc sanitizacja\r\n// jest dla nich no-opem.\r\nconst ALLOWED_SVG_TAGS = new Set([\r\n 'path', 'circle', 'rect', 'g', 'line', 'polygon', 'polyline', 'ellipse',\r\n]);\r\nconst ALLOWED_SVG_ATTRS = new Set([\r\n 'd', 'cx', 'cy', 'r', 'rx', 'ry', 'x', 'y', 'x1', 'y1', 'x2', 'y2', 'width', 'height', 'points',\r\n 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'opacity', 'transform',\r\n]);\r\n\r\n/**\r\n * Sanityzuje fragment SVG do allowlisty tagów/atrybutów geometrii — patrz komentarz wyżej.\r\n *\r\n * Fragment MUSI być parsowany owinięty w `<svg>` — parser HTML przełącza się w tryb „foreign\r\n * content\" dopiero po napotkaniu tagu `<svg>`, dopiero wtedy składnia samozamykająca (`<path .../>`)\r\n * jest respektowana. Bez wrappera `<path d=\"…\" />` zostaje w zwykłym trybie HTML, gdzie `path` nie\r\n * jest elementem pustym — kolejne rodzeństwo trafiłoby jako jego DZIECKO zamiast obok niego.\r\n */\r\nfunction sanitizeSvgFragment(svg: string): string {\r\n const tpl = document.createElement('template');\r\n tpl.innerHTML = `<svg>${svg}</svg>`;\r\n const root = tpl.content.firstElementChild;\r\n if (!root) return '';\r\n for (const el of Array.from(root.querySelectorAll('*'))) {\r\n if (!ALLOWED_SVG_TAGS.has(el.tagName.toLowerCase())) {\r\n el.remove();\r\n continue;\r\n }\r\n for (const attr of Array.from(el.attributes)) {\r\n if (!ALLOWED_SVG_ATTRS.has(attr.name.toLowerCase())) el.removeAttribute(attr.name);\r\n }\r\n }\r\n return root.innerHTML;\r\n}\r\n\r\n/**\r\n * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).\r\n * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`\r\n * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class KptIconRegistry {\r\n private readonly icons = new Map<string, string>(Object.entries(KPT_ICONS));\r\n private readonly _version = signal(0);\r\n /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */\r\n readonly version = this._version.asReadonly();\r\n\r\n /**\r\n * Rejestruje (lub nadpisuje) ikony: `{ nazwa: 'inner svg' }`.\r\n *\r\n * Treść jest sanityzowana do allowlisty geometrii SVG (`path`/`circle`/`rect`/`g`/`line`/\r\n * `polygon`/`polyline`/`ellipse` i ich atrybutów kształtu/stylu) — mimo to `register()` wolno\r\n * wołać wyłącznie z treścią kontrolowaną przez developera (build-time), nigdy bezpośrednio\r\n * z danych runtime/CMS/uploadu bez własnej walidacji domenowej wyżej w stosie.\r\n */\r\n register(icons: Record<string, string>): void {\r\n for (const [name, svg] of Object.entries(icons)) {\r\n this.icons.set(name, sanitizeSvgFragment(svg));\r\n }\r\n this._version.update((v) => v + 1);\r\n }\r\n\r\n /** Zwraca wewnętrzny SVG ikony lub undefined. */\r\n get(name: string): string | undefined {\r\n return this.icons.get(name);\r\n }\r\n\r\n has(name: string): boolean {\r\n return this.icons.has(name);\r\n }\r\n}\r\n\r\n/**\r\n * Składa pełny znacznik `<svg>` z wewnętrznego SVG z rejestru.\r\n *\r\n * Wydzielone z `kpt-icon`, bo tego samego stringa potrzebują znaczniki mapy —\r\n * ich HTML powstaje poza Angularem, w DOM zarządzanym przez silnik mapy.\r\n * Pusty `inner` daje pusty string, żeby wołający nie musiał tego sprawdzać.\r\n */\r\nexport function renderKptIconSvg(inner: string | undefined, cssClass = 'kpt-icon'): string {\r\n if (!inner) return '';\r\n return (\r\n `<svg class=\"${cssClass}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"` +\r\n ' stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\r\n inner +\r\n '</svg>'\r\n );\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, effect, inject, input } from '@angular/core';\r\nimport { KptIconRegistry, renderKptIconSvg } from './icon-registry';\r\n\r\n/**\r\n * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`\r\n * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze\r\n * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje\r\n * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.\r\n *\r\n * @example\r\n * <kpt-icon name=\"menu\" />\r\n * <kpt-icon name=\"check\" size=\"1.25rem\" />\r\n */\r\n@Component({\r\n selector: 'kpt-icon',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n styleUrl: './icon.component.scss',\r\n host: {\r\n class: 'kpt-icon-host',\r\n 'aria-hidden': 'true',\r\n '[style.font-size]': 'size() || null',\r\n },\r\n})\r\nexport class KptIcon {\r\n /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */\r\n readonly name = input.required<string>();\r\n /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */\r\n readonly size = input<string>('');\r\n\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly registry = inject(KptIconRegistry);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.registry.version(); // reaguj na późną rejestrację ikon\r\n // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.\r\n this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptAvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type KptAvatarShape = 'circle' | 'square';\n\n/**\n * Awatar — obraz, inicjały (z `name`) lub ikona.\n *\n * `name` trafia do natywnego `title` (podpowiedź spod kursora — inicjały same w sobie\n * nie mówią, kto to jest). Bez `src` awatar dostaje dodatkowo `role=\"img\"` i `aria-label`,\n * a same inicjały są `aria-hidden`, żeby czytnik nie przeczytał „AK\" litera po literze.\n * Przy `src` etykietę niesie już `alt` obrazu — nie dublujemy jej.\n *\n * @example\n * <kpt-avatar src=\"/u/anna.jpg\" />\n * <kpt-avatar name=\"Anna Kowalska\" size=\"lg\" />\n * <kpt-avatar icon=\"user\" shape=\"square\" />\n */\n@Component({\n selector: 'kpt-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span\n class=\"kpt-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.title]=\"name() || null\"\n [attr.role]=\"!src() && name() ? 'img' : null\"\n [attr.aria-label]=\"!src() && name() ? name() : null\"\n >\n @if (src()) {\n <img class=\"kpt-avatar__img\" [src]=\"src()\" [alt]=\"name() || ''\" />\n } @else if (name()) {\n <span class=\"kpt-avatar__initials\" aria-hidden=\"true\">{{ initials() }}</span>\n } @else if (icon()) {\n <kpt-icon [name]=\"icon()!\" />\n }\n </span>\n `,\n styleUrl: './avatar.component.scss',\n host: { class: 'kpt-avatar-host' },\n})\nexport class KptAvatar {\n readonly src = input<string | null>(null);\n readonly name = input<string>('');\n readonly icon = input<string | null>(null);\n readonly size = input<KptAvatarSize>('md');\n readonly shape = input<KptAvatarShape>('circle');\n\n protected readonly initials = computed(() =>\n this.name()\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? '')\n .join(''),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\nexport type KptBadgeSize = 'sm' | 'md' | 'lg';\n\n/**\n * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).\n *\n * @example\n * <kpt-badge [value]=\"3\" variant=\"danger\" />\n * <kpt-badge [value]=\"4\" size=\"sm\" variant=\"success\" />\n * <kpt-badge [value]=\"128\" overlay><kpt-icon name=\"menu\" /></kpt-badge>\n * <kpt-badge dot variant=\"success\" overlay><kpt-avatar name=\"AK\" /></kpt-badge>\n */\n@Component({\n selector: 'kpt-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content />\n <span\n class=\"kpt-badge\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-badge--overlay]=\"overlay()\"\n [class.kpt-badge--dot]=\"dot()\"\n >{{ dot() ? '' : display() }}</span>\n `,\n styleUrl: './badge.component.scss',\n host: { class: 'kpt-badge-host' },\n})\nexport class KptBadge {\n readonly value = input<string | number | null>(null);\n readonly variant = input<KptBadgeVariant>('primary');\n /** Rozmiar — `sm` mieści się w wierszu tekstu, `md` to domyślny licznik. */\n readonly size = input<KptBadgeSize>('md');\n readonly dot = input(false, { transform: booleanAttribute });\n readonly overlay = input(false, { transform: booleanAttribute });\n readonly max = input(99);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (typeof v === 'number' && v > this.max()) return `${this.max()}+`;\n return v ?? '';\n });\n}\n","import { InjectionToken } from '@angular/core';\nimport type { KptLocale, KptMessages } from './messages';\n\n/** Głęboko-opcjonalna wersja typu — dla nadpisań/częściowych słowników. */\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\n/** Konfiguracja i18n przekazywana do `provideKptI18n`. */\nexport interface KptI18nConfig {\n /** Język początkowy (domyślnie 'en'). */\n locale?: KptLocale;\n /**\n * Słowniki do zarejestrowania lub nadpisania, kluczowane kodem języka.\n * Może dodać nowy język (`{ de: {...} }`) lub nadpisać istniejący\n * (`{ en: { paginator: { rowsPerPage: 'Rows:' } } }`). Deep-merge z bazą EN/PL.\n */\n messages?: Record<string, DeepPartial<KptMessages>>;\n}\n\n/** Token konfiguracji i18n. Konsumowany przez `KptI18n`. */\nexport const KPT_I18N_CONFIG = new InjectionToken<KptI18nConfig>('KPT_I18N_CONFIG');\n","/*\n * Kontrakt tłumaczeń Koncept UI + słowniki bazowe (EN, PL).\n *\n * Plik jest celowo wolny od zależności Angulara — to czysty TypeScript/JSON.\n * Dzięki temu ten sam kontrakt (`KptMessages`) i te same słowniki przenoszą się\n * 1:1 do przyszłego portu React (Context + hook zamiast DI).\n *\n * Autor nowego języka wypełnia strukturę `KptMessages` (np. `de.json`) i podaje\n * ją przez `provideKptI18n({ locale: 'de', messages: { de } })`. Brakujące klucze\n * spadają na fallback EN.\n */\n\n/** Kod języka. Otwarty string — EN/PL mają podpowiedzi, ale dozwolony dowolny. */\nexport type KptLocale = 'en' | 'pl' | (string & {});\n\n/** Pełny słownik etykiet UI używanych przez komponenty biblioteki. */\nexport interface KptMessages {\n /** Etykiety współdzielone przez wiele komponentów (przyciski ikonowe itp.). */\n common: {\n close: string;\n remove: string;\n previous: string;\n next: string;\n clear: string;\n done: string;\n all: string;\n };\n paginator: {\n rowsPerPage: string;\n /** Interpolacja: {start}, {end}, {total}. */\n range: string;\n prevPage: string;\n nextPage: string;\n };\n select: {\n search: string;\n noResults: string;\n removeChip: string;\n };\n listbox: {\n search: string;\n empty: string;\n };\n dataView: {\n list: string;\n grid: string;\n empty: string;\n /** Interpolacja: {count}. */\n count: string;\n };\n roadmap: {\n empty: string;\n /** Prefiks numeru tygodnia na osi, np. „W\" w „W35\". */\n week: string;\n today: string;\n milestone: string;\n expandGroup: string;\n collapseGroup: string;\n };\n map: {\n /** Pozycja menu po kliknięciu mapy prawym przyciskiem. */\n addLocation: string;\n chooseCategory: string;\n myLocation: string;\n locateMe: string;\n locationDenied: string;\n locationUnavailable: string;\n zoomIn: string;\n zoomOut: string;\n legend: string;\n /** Interpolacja: {category}. */\n showCategory: string;\n /** Interpolacja: {category}. */\n hideCategory: string;\n /** Etykieta grupy znaczników dla czytnika ekranu. Interpolacja: {count}. */\n cluster: string;\n /** Nagłówek listy pokazywanej, gdy grupy nie da się rozbić zoomem. */\n clusterItems: string;\n /** Interpolacja: {label}. */\n fieldRequired: string;\n /** Notka w formularzu, gdy trwa geokodowanie wsteczne. */\n lookingUpAddress: string;\n /** Notka, gdy geokoder nie ustalił adresu dla klikniętego punktu. */\n addressNotFound: string;\n latitude: string;\n longitude: string;\n empty: string;\n save: string;\n cancel: string;\n /** Karta miejsca (`kpt-map-poi-card`). */\n poi: {\n /** Interpolacja: {distance}. */\n distanceAway: string;\n openNow: string;\n closedNow: string;\n /** Interpolacja: {time}. */\n opensAt: string;\n /** Interpolacja: {time}. */\n closesAt: string;\n alwaysOpen: string;\n openingHours: string;\n closedDay: string;\n call: string;\n sendEmail: string;\n openWebsite: string;\n coordinates: string;\n copy: string;\n copied: string;\n share: string;\n addFavourite: string;\n removeFavourite: string;\n noPhoto: string;\n };\n /** Wyszukiwarka adresów (`kpt-map-search`). */\n search: {\n /** Podpowiedź w pustym polu. */\n placeholder: string;\n /** Nazwa dostępna pola — nie ma przy nim widocznej etykiety. */\n label: string;\n /** Etykieta listy podpowiedzi dla czytnika ekranu. */\n results: string;\n clear: string;\n noResults: string;\n /** Fraza za krótka. Interpolacja: {count}. */\n minLength: string;\n searching: string;\n /** Liczba znalezionych podpowiedzi dla czytnika. Interpolacja: {count}. */\n found: string;\n };\n /** Pola formularza „dodaj lokalizację\" poza wspólnymi komunikatami. */\n field: {\n invalidEmail: string;\n invalidUrl: string;\n /** Interpolacja: {max}. */\n imageTooLarge: string;\n pickImage: string;\n orPasteUrl: string;\n removeImage: string;\n imagePreview: string;\n hoursClosed: string;\n hoursFrom: string;\n hoursTo: string;\n hoursSameAllWeek: string;\n hoursAddRange: string;\n hoursRemoveRange: string;\n /** Interpolacja: {day}. */\n hoursIncomplete: string;\n };\n };\n dataTable: {\n search: string;\n exportCsv: string;\n loading: string;\n empty: string;\n selectAll: string;\n selectRow: string;\n expandRow: string;\n /** Interpolacja: {column}. */\n filter: string;\n /** Interpolacja: {column}. */\n filterMin: string;\n /** Interpolacja: {column}. */\n filterMax: string;\n all: string;\n dateRange: string;\n min: string;\n max: string;\n /** Interpolacja: {column}. Aria-label edytowalnej komórki. */\n editCell: string;\n /** Domyślna etykieta wiersza podsumowania (input `summaryLabel` ma priorytet). */\n total: string;\n };\n confirm: {\n header: string;\n accept: string;\n reject: string;\n };\n fileUpload: {\n /** Może zawierać `<strong>…</strong>`. */\n hint: string;\n remove: string;\n };\n chipsInput: {\n placeholder: string;\n };\n dateRange: {\n placeholder: string;\n from: string;\n to: string;\n fromTime: string;\n toTime: string;\n };\n datepicker: {\n prevMonth: string;\n nextMonth: string;\n prevYear: string;\n nextYear: string;\n prevYears: string;\n nextYears: string;\n prevDecades: string;\n nextDecades: string;\n chooseMonth: string;\n chooseYear: string;\n chooseDecade: string;\n calendar: string;\n month: string;\n time: string;\n };\n pickList: {\n available: string;\n selected: string;\n moveAllRight: string;\n moveRight: string;\n moveLeft: string;\n moveAllLeft: string;\n };\n orderList: {\n up: string;\n down: string;\n };\n inputNumber: {\n decrement: string;\n increment: string;\n };\n password: {\n show: string;\n hide: string;\n /** Etykiety miernika siły (indeksy 0–4). */\n strength: [string, string, string, string, string];\n };\n spinner: {\n label: string;\n };\n speedDial: {\n actions: string;\n };\n scrollTop: {\n label: string;\n };\n splitButton: {\n more: string;\n };\n panel: {\n toggle: string;\n };\n appShell: {\n /** Etykieta przycisku otwierającego i zamykającego panel boczny. */\n toggleNavigation: string;\n /** Etykieta dostępności panelu bocznego. */\n navigation: string;\n };\n breadcrumb: {\n label: string;\n };\n galleria: {\n /** Interpolacja: {index}. */\n image: string;\n };\n carousel: {\n /** Interpolacja: {index}. */\n slide: string;\n };\n richText: {\n // Etykiety narzędzi paska (klucze = KptRichTool).\n copy: string;\n paste: string;\n pasteText: string;\n heading: string;\n bold: string;\n italic: string;\n underline: string;\n strike: string;\n ul: string;\n ol: string;\n foreColor: string;\n backColor: string;\n alignLeft: string;\n alignCenter: string;\n alignRight: string;\n alignJustify: string;\n link: string;\n table: string;\n clear: string;\n html: string;\n /** Styl bloku „Normalny\" (select). */\n styleNormal: string;\n /** Interpolacja: {level}. */\n styleHeading: string;\n linkPrompt: string;\n htmlSource: string;\n /** Etykieta „Własny…\" przy pickerze koloru. */\n paletteCustom: string;\n /** Menu kontekstowe tabeli. */\n menu: {\n column: string;\n row: string;\n cell: string;\n insertLeft: string;\n insertRight: string;\n headerColumn: string;\n deleteColumn: string;\n insertAbove: string;\n insertBelow: string;\n headerRow: string;\n deleteRow: string;\n cellBackground: string;\n alignLeft: string;\n alignCenter: string;\n alignRight: string;\n mergeCells: string;\n splitCell: string;\n border: string;\n deleteTable: string;\n };\n /** Popover obramowania. */\n border: {\n table: string;\n cell: string;\n none: string;\n thin: string;\n medium: string;\n thick: string;\n customColor: string;\n };\n };\n}\n\nexport const KPT_MESSAGES_EN: KptMessages = {\n common: {\n close: 'Close',\n remove: 'Remove',\n previous: 'Previous',\n next: 'Next',\n clear: 'Clear',\n done: 'Done',\n all: 'All',\n },\n paginator: {\n rowsPerPage: 'Rows:',\n range: '{start}–{end} of {total}',\n prevPage: 'Previous page',\n nextPage: 'Next page',\n },\n select: {\n search: 'Search…',\n noResults: 'No results',\n removeChip: 'Remove',\n },\n listbox: {\n search: 'Search…',\n empty: 'No items',\n },\n dataView: {\n list: 'List',\n grid: 'Grid',\n empty: 'No items',\n count: '{count} items',\n },\n roadmap: {\n empty: 'No items on the roadmap',\n week: 'W',\n today: 'Today',\n milestone: 'Milestone',\n expandGroup: 'Expand group',\n collapseGroup: 'Collapse group',\n },\n map: {\n addLocation: 'Add location',\n chooseCategory: 'Choose a category',\n myLocation: 'My location',\n locateMe: 'Centre on my location',\n locationDenied: 'Location access denied',\n locationUnavailable: 'Location unavailable',\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n legend: 'Legend',\n showCategory: 'Show {category}',\n hideCategory: 'Hide {category}',\n cluster: 'Group of {count} locations',\n clusterItems: 'Locations in this group',\n fieldRequired: '{label} is required',\n lookingUpAddress: 'Looking up the address…',\n addressNotFound: 'No address found for this point',\n latitude: 'Latitude',\n longitude: 'Longitude',\n empty: 'No locations',\n save: 'Save',\n cancel: 'Cancel',\n poi: {\n distanceAway: '{distance} away',\n openNow: 'Open',\n closedNow: 'Closed',\n opensAt: 'opens at {time}',\n closesAt: 'closes at {time}',\n alwaysOpen: 'Open 24/7',\n openingHours: 'Opening hours',\n closedDay: 'Closed',\n call: 'Call',\n sendEmail: 'Send an e-mail',\n openWebsite: 'Open the website',\n coordinates: 'Coordinates',\n copy: 'Copy',\n copied: 'Copied',\n share: 'Share',\n addFavourite: 'Add to favourites',\n removeFavourite: 'Remove from favourites',\n noPhoto: 'No photo',\n },\n search: {\n placeholder: 'Search for an address…',\n label: 'Search for an address',\n results: 'Address suggestions',\n clear: 'Clear the search',\n noResults: 'No matching places',\n minLength: 'Type at least {count} characters',\n searching: 'Searching…',\n found: '{count} suggestions',\n },\n field: {\n invalidEmail: 'Enter a valid e-mail address',\n invalidUrl: 'Enter an address starting with http:// or https://',\n imageTooLarge: 'The picture must be no larger than {max}',\n pickImage: 'Pick a picture',\n orPasteUrl: 'or paste a picture address',\n removeImage: 'Remove the picture',\n imagePreview: 'Picture preview',\n hoursClosed: 'Closed',\n hoursFrom: 'From',\n hoursTo: 'To',\n hoursSameAllWeek: 'Same all week',\n hoursAddRange: 'Add a second range',\n hoursRemoveRange: 'Remove the range',\n hoursIncomplete: 'Set both times for {day} or mark the day as closed',\n },\n },\n dataTable: {\n search: 'Search…',\n exportCsv: 'Export CSV',\n loading: 'Loading…',\n empty: 'No data',\n selectAll: 'Select all',\n selectRow: 'Select row',\n expandRow: 'Expand row',\n filter: 'Filter: {column}',\n filterMin: 'Filter min: {column}',\n filterMax: 'Filter max: {column}',\n all: 'All',\n dateRange: 'Date range',\n min: 'min',\n max: 'max',\n editCell: 'Edit: {column}',\n total: 'Total',\n },\n confirm: {\n header: 'Confirmation',\n accept: 'Confirm',\n reject: 'Cancel',\n },\n fileUpload: {\n hint: '<strong>Click</strong> or drag files here',\n remove: 'Remove',\n },\n chipsInput: {\n placeholder: 'Add and press Enter…',\n },\n dateRange: {\n placeholder: 'Select range',\n from: 'From',\n to: 'To',\n fromTime: 'From (time)',\n toTime: 'To (time)',\n },\n datepicker: {\n prevMonth: 'Previous month',\n nextMonth: 'Next month',\n prevYear: 'Previous year',\n nextYear: 'Next year',\n prevYears: 'Previous years',\n nextYears: 'Next years',\n prevDecades: 'Previous decades',\n nextDecades: 'Next decades',\n chooseMonth: 'Choose month',\n chooseYear: 'Choose year',\n chooseDecade: 'Choose decade',\n calendar: 'Calendar',\n month: 'Month',\n time: 'Time',\n },\n pickList: {\n available: 'Available',\n selected: 'Selected',\n moveAllRight: 'Move all right',\n moveRight: 'Move right',\n moveLeft: 'Move left',\n moveAllLeft: 'Move all left',\n },\n orderList: {\n up: 'Up',\n down: 'Down',\n },\n inputNumber: {\n decrement: 'Decrease',\n increment: 'Increase',\n },\n password: {\n show: 'Show password',\n hide: 'Hide password',\n strength: ['Very weak', 'Weak', 'Medium', 'Good', 'Strong'],\n },\n spinner: {\n label: 'Loading',\n },\n speedDial: {\n actions: 'Actions',\n },\n scrollTop: {\n label: 'Scroll to top',\n },\n splitButton: {\n more: 'More actions',\n },\n panel: {\n toggle: 'Collapse / expand',\n },\n appShell: {\n toggleNavigation: 'Toggle navigation',\n navigation: 'Main navigation',\n },\n breadcrumb: {\n label: 'breadcrumb',\n },\n galleria: {\n image: 'Image {index}',\n },\n carousel: {\n slide: 'Slide {index}',\n },\n richText: {\n copy: 'Copy',\n paste: 'Paste with formatting',\n pasteText: 'Paste without formatting',\n heading: 'Style',\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strike: 'Strikethrough',\n ul: 'Bulleted list',\n ol: 'Numbered list',\n foreColor: 'Text color',\n backColor: 'Text background color',\n alignLeft: 'Align left',\n alignCenter: 'Center',\n alignRight: 'Align right',\n alignJustify: 'Justify',\n link: 'Insert link',\n table: 'Table',\n clear: 'Clear formatting',\n html: 'HTML preview',\n styleNormal: 'Normal',\n styleHeading: 'Heading {level}',\n linkPrompt: 'URL:',\n htmlSource: 'HTML source',\n paletteCustom: 'Custom…',\n menu: {\n column: 'Column',\n row: 'Row',\n cell: 'Cell',\n insertLeft: 'Insert left',\n insertRight: 'Insert right',\n headerColumn: 'Header column',\n deleteColumn: 'Delete column',\n insertAbove: 'Insert above',\n insertBelow: 'Insert below',\n headerRow: 'Header row',\n deleteRow: 'Delete row',\n cellBackground: 'Background color',\n alignLeft: 'Left',\n alignCenter: 'Center',\n alignRight: 'Right',\n mergeCells: 'Merge cells',\n splitCell: 'Split cell',\n border: 'Border…',\n deleteTable: 'Delete table',\n },\n border: {\n table: 'Table',\n cell: 'Cell',\n none: 'None',\n thin: 'Thin',\n medium: 'Medium',\n thick: 'Thick',\n customColor: 'Color…',\n },\n },\n};\n\nexport const KPT_MESSAGES_PL: KptMessages = {\n common: {\n close: 'Zamknij',\n remove: 'Usuń',\n previous: 'Poprzedni',\n next: 'Następny',\n clear: 'Wyczyść',\n done: 'Gotowe',\n all: 'Wszystkie',\n },\n paginator: {\n rowsPerPage: 'Wierszy:',\n range: '{start}–{end} z {total}',\n prevPage: 'Poprzednia strona',\n nextPage: 'Następna strona',\n },\n select: {\n search: 'Szukaj…',\n noResults: 'Brak wyników',\n removeChip: 'Usuń',\n },\n listbox: {\n search: 'Szukaj…',\n empty: 'Brak pozycji',\n },\n dataView: {\n list: 'Lista',\n grid: 'Siatka',\n empty: 'Brak elementów',\n count: '{count} elementów',\n },\n roadmap: {\n empty: 'Brak elementów na roadmapie',\n week: 'T',\n today: 'Dziś',\n milestone: 'Kamień milowy',\n expandGroup: 'Rozwiń grupę',\n collapseGroup: 'Zwiń grupę',\n },\n map: {\n addLocation: 'Dodaj lokalizację',\n chooseCategory: 'Wybierz kategorię',\n myLocation: 'Moje położenie',\n locateMe: 'Wyśrodkuj na moim położeniu',\n locationDenied: 'Brak zgody na dostęp do lokalizacji',\n locationUnavailable: 'Położenie niedostępne',\n zoomIn: 'Przybliż',\n zoomOut: 'Oddal',\n legend: 'Legenda',\n showCategory: 'Pokaż: {category}',\n hideCategory: 'Ukryj: {category}',\n cluster: 'Grupa {count} lokalizacji',\n clusterItems: 'Lokalizacje w tej grupie',\n fieldRequired: 'Pole „{label}\" jest wymagane',\n lookingUpAddress: 'Szukam adresu…',\n addressNotFound: 'Nie znaleziono adresu dla tego punktu',\n latitude: 'Szerokość',\n longitude: 'Długość',\n empty: 'Brak lokalizacji',\n save: 'Zapisz',\n cancel: 'Anuluj',\n poi: {\n distanceAway: '{distance} od Ciebie',\n openNow: 'Otwarte',\n closedNow: 'Zamknięte',\n opensAt: 'otwarcie o {time}',\n closesAt: 'zamknięcie o {time}',\n alwaysOpen: 'Czynne całą dobę',\n openingHours: 'Godziny otwarcia',\n closedDay: 'Zamknięte',\n call: 'Zadzwoń',\n sendEmail: 'Napisz wiadomość',\n openWebsite: 'Otwórz stronę',\n coordinates: 'Współrzędne',\n copy: 'Kopiuj',\n copied: 'Skopiowano',\n share: 'Udostępnij',\n addFavourite: 'Dodaj do ulubionych',\n removeFavourite: 'Usuń z ulubionych',\n noPhoto: 'Brak zdjęcia',\n },\n search: {\n placeholder: 'Szukaj adresu…',\n label: 'Szukaj adresu',\n results: 'Podpowiedzi adresów',\n clear: 'Wyczyść wyszukiwanie',\n noResults: 'Brak pasujących miejsc',\n minLength: 'Wpisz więcej znaków (minimum: {count})',\n searching: 'Szukam…',\n found: 'Podpowiedzi: {count}',\n },\n field: {\n invalidEmail: 'Podaj poprawny adres e-mail',\n invalidUrl: 'Podaj adres zaczynający się od http:// albo https://',\n imageTooLarge: 'Zdjęcie może mieć najwyżej {max}',\n pickImage: 'Wybierz zdjęcie',\n orPasteUrl: 'albo wklej adres zdjęcia',\n removeImage: 'Usuń zdjęcie',\n imagePreview: 'Podgląd zdjęcia',\n hoursClosed: 'Zamknięte',\n hoursFrom: 'Od',\n hoursTo: 'Do',\n hoursSameAllWeek: 'Tak samo przez cały tydzień',\n hoursAddRange: 'Dodaj drugi przedział',\n hoursRemoveRange: 'Usuń przedział',\n hoursIncomplete: 'Podaj obie godziny dla dnia {day} albo oznacz go jako zamknięty',\n },\n },\n dataTable: {\n search: 'Szukaj…',\n exportCsv: 'Eksport CSV',\n loading: 'Ładowanie…',\n empty: 'Brak danych',\n selectAll: 'Zaznacz wszystkie',\n selectRow: 'Zaznacz wiersz',\n expandRow: 'Rozwiń wiersz',\n filter: 'Filtr: {column}',\n filterMin: 'Filtr min: {column}',\n filterMax: 'Filtr max: {column}',\n all: 'Wszystkie',\n dateRange: 'Zakres dat',\n min: 'min',\n max: 'max',\n editCell: 'Edytuj: {column}',\n total: 'Razem',\n },\n confirm: {\n header: 'Potwierdzenie',\n accept: 'Potwierdź',\n reject: 'Anuluj',\n },\n fileUpload: {\n hint: '<strong>Kliknij</strong> lub przeciągnij pliki tutaj',\n remove: 'Usuń',\n },\n chipsInput: {\n placeholder: 'Dodaj i naciśnij Enter…',\n },\n dateRange: {\n placeholder: 'Wybierz zakres',\n from: 'Od',\n to: 'Koniec',\n fromTime: 'Od (godzina)',\n toTime: 'Koniec (godzina)',\n },\n datepicker: {\n prevMonth: 'Poprzedni miesiąc',\n nextMonth: 'Następny miesiąc',\n prevYear: 'Poprzedni rok',\n nextYear: 'Następny rok',\n prevYears: 'Poprzednie lata',\n nextYears: 'Następne lata',\n prevDecades: 'Poprzednie dekady',\n nextDecades: 'Następne dekady',\n chooseMonth: 'Wybierz miesiąc',\n chooseYear: 'Wybierz rok',\n chooseDecade: 'Wybierz dekadę',\n calendar: 'Kalendarz',\n month: 'Miesiąc',\n time: 'Godzina',\n },\n pickList: {\n available: 'Dostępne',\n selected: 'Wybrane',\n moveAllRight: 'Przenieś wszystko w prawo',\n moveRight: 'Przenieś w prawo',\n moveLeft: 'Przenieś w lewo',\n moveAllLeft: 'Przenieś wszystko w lewo',\n },\n orderList: {\n up: 'W górę',\n down: 'W dół',\n },\n inputNumber: {\n decrement: 'Zmniejsz',\n increment: 'Zwiększ',\n },\n password: {\n show: 'Pokaż hasło',\n hide: 'Ukryj hasło',\n strength: ['Bardzo słabe', 'Słabe', 'Średnie', 'Dobre', 'Silne'],\n },\n spinner: {\n label: 'Ładowanie',\n },\n speedDial: {\n actions: 'Akcje',\n },\n scrollTop: {\n label: 'Przewiń do góry',\n },\n splitButton: {\n more: 'Więcej akcji',\n },\n panel: {\n toggle: 'Zwiń / rozwiń',\n },\n appShell: {\n toggleNavigation: 'Przełącz nawigację',\n navigation: 'Nawigacja główna',\n },\n breadcrumb: {\n label: 'breadcrumb',\n },\n galleria: {\n image: 'Obraz {index}',\n },\n carousel: {\n slide: 'Slajd {index}',\n },\n richText: {\n copy: 'Kopiuj',\n paste: 'Wklej z formatowaniem',\n pasteText: 'Wklej bez formatowania',\n heading: 'Styl',\n bold: 'Pogrubienie',\n italic: 'Kursywa',\n underline: 'Podkreślenie',\n strike: 'Przekreślenie',\n ul: 'Lista punktowana',\n ol: 'Lista numerowana',\n foreColor: 'Kolor tekstu',\n backColor: 'Kolor tła tekstu',\n alignLeft: 'Wyrównaj do lewej',\n alignCenter: 'Wyśrodkuj',\n alignRight: 'Wyrównaj do prawej',\n alignJustify: 'Wyjustuj',\n link: 'Wstaw link',\n table: 'Tabela',\n clear: 'Usuń formatowanie',\n html: 'Podgląd HTML',\n styleNormal: 'Normalny',\n styleHeading: 'Nagłówek {level}',\n linkPrompt: 'Adres URL:',\n htmlSource: 'Źródło HTML',\n paletteCustom: 'Własny…',\n menu: {\n column: 'Kolumna',\n row: 'Wiersz',\n cell: 'Komórka',\n insertLeft: 'Wstaw z lewej',\n insertRight: 'Wstaw z prawej',\n headerColumn: 'Nagłówek kolumny',\n deleteColumn: 'Usuń kolumnę',\n insertAbove: 'Wstaw powyżej',\n insertBelow: 'Wstaw poniżej',\n headerRow: 'Nagłówek wiersza',\n deleteRow: 'Usuń wiersz',\n cellBackground: 'Kolor tła',\n alignLeft: 'Do lewej',\n alignCenter: 'Wyśrodkuj',\n alignRight: 'Do prawej',\n mergeCells: 'Scal komórki',\n splitCell: 'Podziel komórkę',\n border: 'Obramowanie…',\n deleteTable: 'Usuń tabelę',\n },\n border: {\n table: 'Tabela',\n cell: 'Komórka',\n none: 'Bez',\n thin: 'Cienkie',\n medium: 'Średnie',\n thick: 'Grube',\n customColor: 'Kolor…',\n },\n },\n};\n","import { Injectable, computed, inject, signal } from '@angular/core';\nimport type { DeepPartial } from './i18n.token';\nimport { KPT_I18N_CONFIG } from './i18n.token';\nimport { KPT_MESSAGES_EN, KPT_MESSAGES_PL, type KptLocale, type KptMessages } from './messages';\n\ntype PlainObject = Record<string, unknown>;\n\n/** Deep-merge `patch` na kopię `base` (łączy tylko obiekty, wartości nadpisuje). */\nfunction deepMerge<T>(base: T, patch: DeepPartial<T>): T {\n const out: PlainObject = { ...(base as unknown as PlainObject) };\n for (const [key, value] of Object.entries(patch as PlainObject)) {\n const current = out[key];\n if (value && typeof value === 'object' && !Array.isArray(value) && current && typeof current === 'object') {\n out[key] = deepMerge(current, value as DeepPartial<unknown>);\n } else if (value !== undefined) {\n out[key] = value;\n }\n }\n return out as T;\n}\n\n/**\n * Serwis tłumaczeń Koncept UI. Trzyma rejestr słowników per język, bieżący locale\n * (sygnał) i funkcję `t()` z interpolacją. Skonfiguruj przez `provideKptI18n(...)`.\n *\n * Domyślnie EN. Języki bazowe: EN, PL. Dowolny inny język dodaje się jednym\n * słownikiem (`registerMessages` lub `provideKptI18n({ messages: { de } })`);\n * brakujące klucze spadają na EN.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptI18n {\n /** Rejestr słowników: język → pełny `KptMessages`. */\n private readonly registry = new Map<KptLocale, KptMessages>([\n ['en', KPT_MESSAGES_EN],\n ['pl', KPT_MESSAGES_PL],\n ]);\n\n private readonly _locale = signal<KptLocale>('en');\n /** Bieżący język (tylko do odczytu). */\n readonly locale = this._locale.asReadonly();\n\n /** Aktywny słownik (z fallbackiem na EN, gdy język nieznany). */\n readonly messages = computed<KptMessages>(() => this.registry.get(this._locale()) ?? KPT_MESSAGES_EN);\n\n constructor() {\n const config = inject(KPT_I18N_CONFIG, { optional: true });\n if (config?.messages) {\n for (const [locale, patch] of Object.entries(config.messages)) {\n this.registerMessages(locale, patch);\n }\n }\n if (config?.locale) this._locale.set(config.locale);\n }\n\n /** Ustawia bieżący język. Zmiana jest reaktywna dla wszystkich komponentów. */\n setLocale(locale: KptLocale): void {\n this._locale.set(locale);\n }\n\n /**\n * Rejestruje lub nadpisuje słownik języka. Częściowy słownik deep-merge'uje się\n * na istniejący (lub EN dla nowego języka) → brakujące klucze mają wartość EN.\n */\n registerMessages(locale: KptLocale, patch: DeepPartial<KptMessages>): void {\n const base = this.registry.get(locale) ?? KPT_MESSAGES_EN;\n this.registry.set(locale, deepMerge(base, patch));\n }\n\n /**\n * Tłumaczy klucz w notacji kropkowej (np. `'paginator.range'`), z opcjonalną\n * interpolacją `{name}`. Brakujący klucz spada na EN, a w ostateczności zwraca sam klucz.\n */\n t(key: string, params?: Record<string, string | number>): string {\n const raw = this.lookup(this.messages(), key) ?? this.lookup(KPT_MESSAGES_EN, key) ?? key;\n if (!params) return raw;\n return raw.replace(/\\{(\\w+)\\}/g, (_, name) => String(params[name] ?? `{${name}}`));\n }\n\n private lookup(dict: KptMessages, key: string): string | undefined {\n let node: unknown = dict;\n for (const part of key.split('.')) {\n if (node && typeof node === 'object' && part in node) {\n node = (node as PlainObject)[part];\n } else {\n return undefined;\n }\n }\n return typeof node === 'string' ? node : undefined;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport type { KptButtonVariant } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Przycisk dzielony (split button) — akcja główna + rozwijane menu dodatkowych akcji.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-split-button [items]=\"items\" (primaryClick)=\"save()\" (select)=\"onItem($event)\">Zapisz</kpt-split-button>\n */\n@Component({\n selector: 'kpt-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-split-button\" [attr.data-variant]=\"variant()\">\n <button class=\"kpt-split-button__main\" type=\"button\" [disabled]=\"disabled()\" (click)=\"primaryClick.emit()\">\n <ng-content />\n </button>\n <button\n class=\"kpt-split-button__toggle\"\n type=\"button\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [disabled]=\"disabled()\"\n (click)=\"open.set(!open())\"\n [attr.aria-label]=\"i18n.t('splitButton.more')\"\n ><kpt-icon name=\"chevron-down\" /></button>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"open.set(false)\"\n >\n <div class=\"kpt-split-button__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-split-button__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-split-button__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-split-button__text\">\n @if (item.label) { <span class=\"kpt-split-button__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-split-button__item\"\n [class.kpt-split-button__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-split-button__text\">\n <span class=\"kpt-split-button__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-split-button__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './split-button.component.scss',\n host: { class: 'kpt-split-button-host' },\n})\nexport class KptSplitButton<T = unknown> {\n readonly variant = input<KptButtonVariant>('filled');\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly primaryClick = output<void>();\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.select.emit(item);\n this.open.set(false);\n }\n}\n","// Do not edit directly — generated by scripts/gen-tokens.mjs\n// from @konce-pt/tokens (tokens/primitives/breakpoint.json).\n\n/** Nazwa breakpointa z tokenów `--kpt-breakpoint-*` (mobile-first). */\nexport type KptBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/** Progi breakpointów w pikselach — te same wartości, z których korzystają `@media` biblioteki. */\nexport const KPT_BREAKPOINTS: Record<KptBreakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, Injectable, PLATFORM_ID, type Signal, inject, signal } from '@angular/core';\nimport { KPT_BREAKPOINTS, type KptBreakpoint } from './breakpoints.generated';\n\n/**\n * Obserwator breakpointów oparty na `matchMedia`, spięty z tokenami `--kpt-breakpoint-*`.\n * Zwraca sygnały, więc czyta się go tak samo w `computed`, w szablonie i w `effect`.\n *\n * Zapytania są memoizowane per string: `up('lg')` wywołane w wielu komponentach dzieli\n * jeden `MediaQueryList` i jeden nasłuch.\n *\n * Poza przeglądarką (SSR, prerender) każdy sygnał to stałe `false`. Dlatego **układ**\n * komponentów biblioteki nigdy nie zależy od tego serwisu — o tym, jak wygląda strona,\n * decyduje CSS, żeby nic nie migotało przed hydracją. Serwis odpowiada za zachowania,\n * których CSS nie wyrazi (np. w którą stronę ma zadziałać przycisk).\n *\n * @example\n * private readonly breakpoints = inject(KptBreakpointObserver);\n * readonly isDesktop = this.breakpoints.up('lg');\n */\n@Injectable({ providedIn: 'root' })\nexport class KptBreakpointObserver {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly destroyRef = inject(DestroyRef);\n private readonly cache = new Map<string, Signal<boolean>>();\n\n /** Dowolne media query jako sygnał. */\n matches(query: string): Signal<boolean> {\n const cached = this.cache.get(query);\n if (cached) return cached;\n\n const result = this.isBrowser ? this.observe(query) : signal(false).asReadonly();\n this.cache.set(query, result);\n return result;\n }\n\n /** Czy viewport ma szerokość co najmniej danego breakpointa (mobile-first). */\n up(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(min-width: ${KPT_BREAKPOINTS[breakpoint]}px)`);\n }\n\n /**\n * Czy viewport jest węższy niż dany breakpoint. Próg schodzi o 0.02px, żeby pasma\n * `up`/`down` nie nakładały się na ułamkowych szerokościach okna (zoom, DPI).\n */\n down(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(max-width: ${KPT_BREAKPOINTS[breakpoint] - 0.02}px)`);\n }\n\n private observe(query: string): Signal<boolean> {\n const list = window.matchMedia(query);\n const state = signal(list.matches);\n const onChange = (event: MediaQueryListEvent): void => state.set(event.matches);\n\n list.addEventListener('change', onChange);\n this.destroyRef.onDestroy(() => list.removeEventListener('change', onChange));\n\n return state.asReadonly();\n }\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { KPT_I18N_CONFIG, type KptI18nConfig } from './i18n.token';\n\n/**\n * Konfiguruje i18n Koncept UI. Ustawia język początkowy i rejestruje/nadpisuje\n * słowniki. Języki bazowe (EN, PL) są dostępne bez konfiguracji.\n *\n * @example\n * // main.ts — polski interfejs\n * bootstrapApplication(App, {\n * providers: [provideKptI18n({ locale: 'pl' })],\n * });\n *\n * @example\n * // Własny język jednym plikiem JSON (brakujące klucze → EN)\n * import de from './i18n/de.json';\n * provideKptI18n({ locale: 'de', messages: { de } });\n *\n * @example\n * // Nadpisanie pojedynczych etykiet istniejącego języka\n * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });\n */\nexport function provideKptI18n(config: KptI18nConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptChipVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Chip / tag — etykieta, opcjonalnie usuwalna.\n *\n * @example\n * <kpt-chip>Angular</kpt-chip>\n * <kpt-chip variant=\"success\" removable (removed)=\"onRemove()\">UI</kpt-chip>\n */\n@Component({\n selector: 'kpt-chip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span class=\"kpt-chip\" [attr.data-variant]=\"variant()\" [class.kpt-chip--disabled]=\"disabled()\">\n <ng-content />\n @if (removable()) {\n <button\n type=\"button\"\n class=\"kpt-chip__remove\"\n [disabled]=\"disabled()\"\n (click)=\"removed.emit()\"\n [attr.aria-label]=\"i18n.t('common.remove')\"\n ><kpt-icon name=\"x\" /></button>\n }\n </span>\n `,\n styleUrl: './chip.component.scss',\n host: { class: 'kpt-chip-host' },\n})\nexport class KptChip {\n readonly variant = input<KptChipVariant>('neutral');\n readonly removable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly removed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Wskaźnik ładowania (spinner). Kolor z `currentColor`.\n *\n * @example\n * <kpt-spinner />\n * <kpt-spinner size=\"2rem\" label=\"Wczytywanie danych\" />\n */\n@Component({\n selector: 'kpt-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<span class=\"kpt-spinner\" role=\"status\" [attr.aria-label]=\"effectiveLabel()\" [style.width]=\"size()\" [style.height]=\"size()\"></span>`,\n styleUrl: './spinner.component.scss',\n host: { class: 'kpt-spinner-host' },\n})\nexport class KptSpinner {\n readonly size = input('1.5rem');\n /** Etykieta a11y; bez wartości używa i18n (`spinner.label`). */\n readonly label = input<string>();\n\n private readonly i18n = inject(KptI18n);\n protected readonly effectiveLabel = computed(() => this.label() ?? this.i18n.t('spinner.label'));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Wskaźnik postępu — liniowy lub kołowy, określony (0–100) lub nieokreślony (`value` = null).\n *\n * @example\n * <kpt-progress [value]=\"60\" />\n * <kpt-progress type=\"circular\" [value]=\"75\" variant=\"success\" />\n * <kpt-progress [value]=\"null\" /> <!-- indeterminate -->\n */\n@Component({\n selector: 'kpt-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (type() === 'circular') {\n <svg\n class=\"kpt-progress__circular\"\n [class.kpt-progress--indeterminate]=\"value() == null\"\n [attr.data-variant]=\"variant()\"\n [attr.width]=\"diameter()\"\n [attr.height]=\"diameter()\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value()\"\n >\n <circle class=\"kpt-progress__track\" cx=\"20\" cy=\"20\" r=\"16\" />\n <circle\n class=\"kpt-progress__bar\"\n cx=\"20\"\n cy=\"20\"\n r=\"16\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"offset()\"\n />\n </svg>\n } @else {\n <div class=\"kpt-progress__linear\" [attr.data-variant]=\"variant()\" role=\"progressbar\" [attr.aria-valuenow]=\"value()\">\n <div class=\"kpt-progress__bar\" [class.kpt-progress--indeterminate]=\"value() == null\" [style.width.%]=\"value() ?? 0\"></div>\n </div>\n }\n `,\n styleUrl: './progress.component.scss',\n host: { class: 'kpt-progress-host' },\n})\nexport class KptProgress {\n /** 0–100 lub null = nieokreślony. */\n readonly value = input<number | null>(null);\n readonly variant = input<KptProgressVariant>('primary');\n readonly type = input<'linear' | 'circular'>('linear');\n readonly diameter = input(40);\n\n protected readonly circumference = 2 * Math.PI * 16;\n protected readonly offset = computed(() => {\n const v = this.value();\n if (v == null) return this.circumference * 0.75;\n return this.circumference * (1 - Math.min(100, Math.max(0, v)) / 100);\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptSkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * Placeholder ładowania (skeleton) z animacją shimmer.\n *\n * @example\n * <kpt-skeleton variant=\"text\" [lines]=\"3\" />\n * <kpt-skeleton variant=\"circle\" width=\"3rem\" height=\"3rem\" />\n * <kpt-skeleton variant=\"rect\" width=\"100%\" height=\"8rem\" />\n */\n@Component({\n selector: 'kpt-skeleton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (variant() === 'text') {\n @for (line of lineArray(); track $index; let last = $last) {\n <span class=\"kpt-skeleton kpt-skeleton--text\" [style.width]=\"last ? '60%' : width()\"></span>\n }\n } @else {\n <span class=\"kpt-skeleton\" [attr.data-variant]=\"variant()\" [style.width]=\"width()\" [style.height]=\"height()\"></span>\n }\n `,\n styleUrl: './skeleton.component.scss',\n host: { class: 'kpt-skeleton-host', 'aria-hidden': 'true' },\n})\nexport class KptSkeleton {\n readonly variant = input<KptSkeletonVariant>('rect');\n readonly width = input('100%');\n readonly height = input('1rem');\n readonly lines = input(3);\n\n protected readonly lineArray = computed(() => Array.from({ length: this.lines() }));\n}\n","import { InjectionToken, type Signal } from '@angular/core';\n\n/**\n * Kontrakt kontrolki dla `kpt-form-field`. Wypełnienie pola (`filled`) steruje uniesieniem\n * etykiety w wariantach Float Label (`over`/`in`/`on`).\n *\n * Kontrolki oparte na natywnym `input`/`textarea` nie muszą nic dostarczać — `kpt-form-field`\n * odczytuje ich `value` bezpośrednio z DOM. Kontrolki bez natywnego pola (np. `kpt-select`,\n * którego panel żyje w overlayu) muszą dostarczyć ten token, inaczej etykieta zostanie\n * na wartości zamiast unieść się nad nią.\n *\n * @example\n * providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }]\n */\nexport interface KptFormFieldControl {\n /** Czy kontrolka ma wartość. Sygnał — `kpt-form-field` reaguje na zmiany bez zdarzeń DOM. */\n readonly filled: Signal<boolean>;\n}\n\n/** Token DI, przez który kontrolka zgłasza `kpt-form-field` swój stan wypełnienia. */\nexport const KPT_FORM_FIELD_CONTROL = new InjectionToken<KptFormFieldControl>('KPT_FORM_FIELD_CONTROL');\n","<div\n class=\"kpt-form-field\"\n [class]=\"'kpt-form-field--' + labelType()\"\n [class.kpt-form-field--float]=\"labelType() !== 'fixed'\"\n [class.kpt-form-field--invalid]=\"!!error()\"\n>\n <div class=\"kpt-form-field__box\" [class.is-filled]=\"filled()\">\n @if (label()) {\n <label class=\"kpt-form-field__label\" [attr.for]=\"controlId() || null\">\n {{ label() }}\n @if (required()) {\n <span class=\"kpt-form-field__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"kpt-form-field__control\">\n <ng-content />\n </div>\n </div>\n\n @if (error()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--error\" role=\"alert\">{{ error() }}</p>\n } @else if (hint()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--hint\">{{ hint() }}</p>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { KPT_FORM_FIELD_CONTROL } from './form-field-control';\n\n/**\n * Wrapper pola formularza: etykieta, podpowiedź i komunikat błędu wokół dowolnej\n * kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`\n * (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.\n *\n * Etykieta ma 4 warianty (`labelType`): `fixed` (domyślny, nad kontrolką) oraz trzy warianty\n * unoszącej się etykiety (Float Label) z animowanym przejściem: `over` (nad obramowaniem),\n * `in` (u góry wewnątrz pola) i `on` (na obramowaniu, notch). Uniesienie następuje przy focusie\n * (CSS `:focus-within`) lub gdy pole jest wypełnione (wykrywane po zdarzeniach `input`/`change`\n * oraz wartości początkowej) — bez wymogu placeholdera na kontrolce. Kontrolki bez natywnego\n * `input`/`textarea` (np. `kpt-select`) zgłaszają wypełnienie tokenem `KPT_FORM_FIELD_CONTROL`.\n *\n * @example\n * <kpt-form-field label=\"E-mail\" [error]=\"emailError()\" hint=\"Firmowy adres\">\n * <kpt-input [formField]=\"f.email\" type=\"email\" />\n * </kpt-form-field>\n *\n * @example\n * <kpt-form-field label=\"E-mail\" labelType=\"over\">\n * <kpt-input />\n * </kpt-form-field>\n */\n@Component({\n selector: 'kpt-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n host: {\n class: 'kpt-form-field-host',\n '(input)': 'updateFilled()',\n '(change)': 'updateFilled()',\n },\n})\nexport class KptFormField {\n /** Tekst etykiety. */\n readonly label = input<string>('');\n /** Podpowiedź pod kontrolką (ukrywana, gdy jest błąd). */\n readonly hint = input<string>('');\n /** Komunikat błędu — gdy niepusty, pole jest oznaczone jako nieprawidłowe. */\n readonly error = input<string | null>(null);\n /** Oznacz pole jako wymagane (gwiazdka przy etykiecie). */\n readonly required = input(false, { transform: booleanAttribute });\n /** Id kontrolki dla powiązania `label[for]`. */\n readonly controlId = input<string>('');\n /**\n * Wariant etykiety: `fixed` (domyślnie, statyczna nad kontrolką) lub Float Label —\n * `over` (nad obramowaniem), `in` (u góry wewnątrz pola), `on` (na obramowaniu, notch).\n * Uniesienie następuje przy focusie lub wypełnieniu pola.\n */\n readonly labelType = input<'fixed' | 'over' | 'in' | 'on'>('fixed');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Kontrolka bez natywnego `input`/`textarea` (np. `kpt-select`) zgłasza wypełnienie sama,\n * przez token `KPT_FORM_FIELD_CONTROL` — jej wartość nie da się odczytać z DOM.\n */\n private readonly control = contentChild(KPT_FORM_FIELD_CONTROL, { descendants: true });\n /** Wypełnienie odczytane z natywnej kontrolki (zdarzenia `input`/`change` + wartość początkowa). */\n private readonly nativeFilled = signal(false);\n\n /** Czy projektowana kontrolka ma wartość — steruje uniesieniem etykiety w wariantach float. */\n protected readonly filled = computed(() => this.control()?.filled() ?? this.nativeFilled());\n\n constructor() {\n // Wartość początkowa (np. pole prefill) — po pierwszym renderze projekcji.\n afterNextRender(() => this.updateFilled());\n }\n\n /** Odczytuje wartość projektowanego `input`/`textarea` i aktualizuje stan `filled`. */\n protected updateFilled(): void {\n const el = this.host.nativeElement.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n '.kpt-form-field__control input, .kpt-form-field__control textarea',\n );\n this.nativeFilled.set(!!el && el.value !== '');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type {\n FormValueControl,\n ValidationError,\n WithOptionalFieldTree,\n} from '@angular/forms/signals';\n\nexport type KptInputType =\n | 'text'\n | 'email'\n | 'password'\n | 'number'\n | 'search'\n | 'tel'\n | 'url'\n | 'time';\n\nlet nextUniqueId = 0;\n\n/**\n * Pole tekstowe Koncept UI zintegrowane z Angular Signal Forms.\n * Implementuje `FormValueControl<string>` — wiąż je dyrektywą `FormField`:\n *\n * <kpt-input [formField]=\"loginForm.email\" type=\"email\" />\n *\n * Stan pola (disabled/readonly/required/invalid/errors/touched) wiąże automatycznie\n * dyrektywa `FormField`. Bez `ControlValueAccessor`. Wygląd: tokeny `--kpt-form-field-*`.\n */\n@Component({\n selector: 'kpt-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n host: {\n class: 'kpt-input-host',\n // id należy wyłącznie do wewnętrznego <input> (powiązanie label[for]); host go nie nosi\n '[attr.id]': 'null',\n },\n})\nexport class KptInput implements FormValueControl<string> {\n /** Wartość pola (wymagane przez kontrakt FormValueControl). */\n readonly value = model<string>('');\n\n // ── Stan wiązany automatycznie przez dyrektywę FormField ──\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n readonly touched = input<boolean>(false);\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Emitowane na `blur` — oznacza pole jako dotknięte. */\n readonly touch = output<void>();\n\n // ── Wejścia prezentacyjne ──\n readonly type = input<KptInputType>('text');\n readonly placeholder = input<string>('');\n readonly id = input<string>(`kpt-input-${++nextUniqueId}`);\n readonly ariaLabel = input<string | null>(null);\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"kpt-input__field\"\n [id]=\"id()\"\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Pole wyboru (checkbox) zintegrowane z Signal Forms (`FormCheckboxControl`).\n * Wiąż dyrektywą `FormField`: `<kpt-checkbox [formField]=\"f.terms\" label=\"Akceptuję\" />`.\n */\n@Component({\n selector: 'kpt-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-checkbox\" [class.kpt-checkbox--disabled]=\"disabled()\">\n <input\n type=\"checkbox\"\n class=\"kpt-checkbox__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-checkbox__box\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" class=\"kpt-checkbox__check\"><path d=\"M13 4.5 6.5 11 3 7.5\" /></svg>\n </span>\n @if (label()) {\n <span class=\"kpt-checkbox__label\">{{ label() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './checkbox.component.scss',\n host: { class: 'kpt-checkbox-host' },\n})\nexport class KptCheckbox implements FormCheckboxControl {\n /** Zaznaczenie (wymagane przez kontrakt FormCheckboxControl). */\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Etykieta obok pola. */\n readonly label = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).\n * `<kpt-switch [formField]=\"f.notifications\" label=\"Powiadomienia\" />`\n *\n * Wariant z tekstem stanu: `onLabel`/`offLabel` — wyświetlany tekst zmienia się\n * przy przełączaniu (np. „Włączony”/„Wyłączony”).\n * `<kpt-switch [(checked)]=\"on\" onLabel=\"Włączony\" offLabel=\"Wyłączony\" />`\n */\n@Component({\n selector: 'kpt-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-switch\" [class.kpt-switch--disabled]=\"disabled()\">\n @if (label() && labelPosition() === 'start') {\n <span class=\"kpt-switch__label kpt-switch__label--start\">{{ label() }}</span>\n }\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"kpt-switch__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-switch__track\" aria-hidden=\"true\"><span class=\"kpt-switch__thumb\"></span></span>\n @if (label() && labelPosition() === 'end') {\n <span class=\"kpt-switch__label\">{{ label() }}</span>\n }\n @if (hasStateLabels()) {\n <span class=\"kpt-switch__state\" [class.kpt-switch__state--on]=\"checked()\">{{ stateLabel() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './switch.component.scss',\n host: { class: 'kpt-switch-host' },\n})\nexport class KptSwitch implements FormCheckboxControl {\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly label = input('');\n /** Pozycja etykiety `label` względem przełącznika: 'end' (prawo, domyślnie) lub 'start' (lewo). */\n readonly labelPosition = input<'start' | 'end'>('end');\n /** Tekst stanu włączonego (wyświetlany, gdy `checked`). */\n readonly onLabel = input('');\n /** Tekst stanu wyłączonego (wyświetlany, gdy nie `checked`). */\n readonly offLabel = input('');\n\n protected readonly hasStateLabels = computed(() => !!(this.onLabel() || this.offLabel()));\n /** Tekst zależny od stanu przełącznika. */\n protected readonly stateLabel = computed(() => (this.checked() ? this.onLabel() : this.offLabel()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\nimport { KptSwitch } from '../switch/switch.component';\n\n/**\n * Grupa przełączników. Domyślnie pojedynczy wybór (wzajemnie wykluczające się) —\n * włączenie jednego wyłącza pozostałe, a wartość to `value` wybranej opcji (lub `null`).\n * Z `multiple` przechodzi w tryb wielokrotny — wartość to tablica `T[]` zaznaczonych opcji.\n * Zintegrowana z Signal Forms (`FormValueControl<T | T[] | null>`).\n *\n * @example\n * <kpt-switch-group [(value)]=\"plan\" [options]=\"plans\" />\n * <kpt-switch-group multiple [(value)]=\"tags\" [options]=\"tagOptions\" />\n */\n@Component({\n selector: 'kpt-switch-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptSwitch],\n template: `\n <div\n class=\"kpt-switch-group\"\n [class.kpt-switch-group--horizontal]=\"orientation() === 'horizontal'\"\n role=\"group\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n >\n @for (opt of options(); track opt.value) {\n <kpt-switch\n class=\"kpt-switch-group__item\"\n [checked]=\"isChecked(opt.value)\"\n [label]=\"opt.label\"\n [disabled]=\"disabled() || opt.disabled\"\n (checkedChange)=\"onToggle(opt, $event)\"\n (touch)=\"touch.emit()\"\n />\n }\n </div>\n `,\n styleUrl: './switch-group.component.scss',\n host: { class: 'kpt-switch-group-host' },\n})\nexport class KptSwitchGroup<T = unknown> implements FormValueControl<unknown> {\n readonly value = model<unknown>(null);\n readonly options = input<KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Układ: 'vertical' (domyślnie) lub 'horizontal'. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n /** Tryb wielokrotnego wyboru — wartość to tablica `T[]` zaznaczonych opcji. Domyślnie false (pojedynczy wybór). */\n readonly multiple = input(false, { transform: booleanAttribute });\n /**\n * Czy ponowne kliknięcie aktywnej opcji ją odznacza (value = null). Dotyczy tylko trybu pojedynczego —\n * w trybie `multiple` odznaczanie jest zawsze dozwolone. Domyślnie tak.\n */\n readonly allowDeselect = input(true, { transform: booleanAttribute });\n\n /** Aktualna wartość jako tablica (tryb multiple) — normalizuje `null`/pojedynczą wartość. */\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return v as T[];\n return v == null ? [] : [v as T];\n });\n\n protected isChecked(optValue: T): boolean {\n if (this.multiple()) return this.selectedValues().includes(optValue);\n return optValue === this.value();\n }\n\n protected onToggle(opt: KptOption<T>, checked: boolean): void {\n if (this.multiple()) {\n const current = this.selectedValues();\n if (checked) {\n if (!current.includes(opt.value)) this.value.set([...current, opt.value]);\n } else {\n this.value.set(current.filter((v) => v !== opt.value));\n }\n return;\n }\n\n if (checked) {\n this.value.set(opt.value);\n return;\n }\n // Wyłączono aktywną opcję.\n if (this.allowDeselect()) {\n this.value.set(null);\n } else {\n // Odznaczanie niedozwolone — przywróć zaznaczenie (wymusza ponowne wypchnięcie [checked]).\n const current = opt.value;\n this.value.set(null);\n this.value.set(current);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\nlet nextGroupId = 0;\n\n/**\n * Grupa przycisków opcji (radio) zintegrowana z Signal Forms (`FormValueControl<T>`).\n * Opcje przez `options`. `<kpt-radio-group [formField]=\"f.plan\" [options]=\"plans\" />`\n */\n@Component({\n selector: 'kpt-radio-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-radio-group\" role=\"radiogroup\" [attr.aria-invalid]=\"showInvalid() ? 'true' : null\">\n @for (opt of options(); track opt.value) {\n <label class=\"kpt-radio\" [class.kpt-radio--disabled]=\"disabled() || opt.disabled\">\n <input\n type=\"radio\"\n class=\"kpt-radio__input\"\n [name]=\"name()\"\n [checked]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n (change)=\"value.set(opt.value)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-radio__dot\" aria-hidden=\"true\"></span>\n <span class=\"kpt-radio__label\">{{ opt.label }}</span>\n </label>\n }\n </div>\n `,\n styleUrl: './radio-group.component.scss',\n host: { class: 'kpt-radio-group-host' },\n})\nexport class KptRadioGroup<T = unknown> implements FormValueControl<T> {\n readonly value = model<T>(undefined as T);\n readonly options = input<KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly name = input<string>(`kpt-radio-${++nextGroupId}`);\n}\n","<div\n class=\"kpt-select\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n tabindex=\"0\"\n [class.kpt-select--open]=\"open()\"\n [class.kpt-select--disabled]=\"disabled()\"\n [class.kpt-select--invalid]=\"showInvalid()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (click)=\"toggleOpen()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"touch.emit()\"\n>\n <div class=\"kpt-select__value\">\n @if (multiple() && selectedOptions().length) {\n @for (opt of selectedOptions(); track opt.value) {\n <span class=\"kpt-select__chip\">\n {{ opt.label }}\n <button type=\"button\" class=\"kpt-select__chip-remove\" (click)=\"removeChip(opt, $event)\" [attr.aria-label]=\"i18n.t('select.removeChip')\">\n <kpt-icon name=\"x\" />\n </button>\n </span>\n }\n } @else if (!multiple() && filled()) {\n <span class=\"kpt-select__single\">{{ singleLabel() }}</span>\n } @else {\n <span class=\"kpt-select__placeholder\">{{ placeholder() }}</span>\n }\n </div>\n <kpt-icon class=\"kpt-select__chevron\" name=\"chevron-down\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-select__panel\" (keydown)=\"onPanelKeydown($event)\">\n @if (filter()) {\n <div class=\"kpt-select__search\">\n <kpt-icon name=\"search\" />\n <input\n type=\"text\"\n class=\"kpt-select__search-input\"\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n [attr.placeholder]=\"i18n.t('select.search')\"\n />\n </div>\n }\n <ul class=\"kpt-select__list\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @for (opt of filteredOptions(); track opt.value; let i = $index) {\n <li\n class=\"kpt-select__option\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [class.kpt-select__option--selected]=\"isSelected(opt)\"\n [class.kpt-select__option--active]=\"i === activeIndex()\"\n [class.kpt-select__option--disabled]=\"opt.disabled\"\n (click)=\"pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (multiple()) {\n <span class=\"kpt-select__check\" [class.is-on]=\"isSelected(opt)\"><kpt-icon name=\"check\" /></span>\n }\n <span class=\"kpt-select__option-label\">{{ opt.label }}</span>\n @if (!multiple() && isSelected(opt)) {\n <kpt-icon class=\"kpt-select__option-tick\" name=\"check\" />\n }\n </li>\n } @empty {\n <li class=\"kpt-select__empty\">{{ i18n.t('select.noResults') }}</li>\n }\n </ul>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KPT_FORM_FIELD_CONTROL, type KptFormFieldControl } from '../form-field/form-field-control';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (select) na własnym panelu (CDK Overlay), zintegrowana z Signal Forms.\n * Warianty: pojedynczy, z wyszukiwarką (`filter`) i wielokrotny (`multiple`, chipy).\n *\n * @example\n * <kpt-select [formField]=\"f.role\" [options]=\"roles\" placeholder=\"Wybierz…\" />\n * <kpt-select [formField]=\"f.city\" [options]=\"cities\" filter placeholder=\"Szukaj miasta…\" />\n * <kpt-select [formField]=\"f.tags\" [options]=\"tags\" multiple filter placeholder=\"Tagi…\" />\n */\n@Component({\n selector: 'kpt-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n host: { class: 'kpt-select-host' },\n providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }],\n})\nexport class KptSelect<T = unknown> implements FormValueControl<unknown>, KptFormFieldControl {\n readonly options = input<KptOption<T>[]>([]);\n readonly placeholder = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Wartość: pojedyncza (T) lub tablica (T[]) w trybie multiple. */\n readonly value = model<unknown>(null);\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n /**\n * Stan panelu (dwukierunkowy). Pozwala otworzyć listę z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n protected readonly filterText = signal('');\n protected readonly activeIndex = signal(-1);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Panel może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // filtr i aktywną pozycję resetujemy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.filterText.set('');\n this.activeIndex.set(-1);\n });\n });\n }\n\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (this.multiple()) return Array.isArray(v) ? (v as T[]) : [];\n return v == null ? [] : [v as T];\n });\n\n protected readonly selectedOptions = computed(() =>\n this.options().filter((o) => this.selectedValues().includes(o.value)),\n );\n\n protected readonly filteredOptions = computed(() => {\n const q = this.filterText().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.label.toLowerCase().includes(q)) : opts;\n });\n\n protected readonly singleLabel = computed(() => {\n const sel = this.selectedOptions();\n return this.multiple() ? '' : (sel[0]?.label ?? '');\n });\n\n /**\n * Czy wybrano jakąkolwiek opcję. Publiczne — `kpt-form-field` czyta to przez\n * `KPT_FORM_FIELD_CONTROL`, żeby unieść etykietę Float Label nad wybraną wartość.\n */\n readonly filled = computed(() => this.selectedOptions().length > 0);\n\n protected isSelected(opt: KptOption<T>): boolean {\n return this.selectedValues().includes(opt.value);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected pick(opt: KptOption<T>): void {\n if (opt.disabled) return;\n if (this.multiple()) {\n const cur = this.selectedValues();\n this.value.set(this.isSelected(opt) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value]);\n } else {\n this.value.set(opt.value);\n this.close();\n }\n }\n\n protected removeChip(opt: KptOption<T>, event: Event): void {\n event.stopPropagation();\n this.value.set(this.selectedValues().filter((v) => v !== opt.value));\n }\n\n protected onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.activeIndex.set(-1);\n }\n\n // ── Klawiatura ──\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!this.open()) this.toggleOpen();\n } else if (event.key === 'Escape') {\n this.close();\n }\n }\n\n protected onPanelKeydown(event: KeyboardEvent): void {\n const opts = this.filteredOptions();\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const opt = opts[this.activeIndex()];\n if (opt) this.pick(opt);\n }\n }\n}\n","/*\n * Pomocniki nazw dni/miesięcy wyliczane z `Intl` — sterowane bieżącym locale i18n.\n * Dzięki temu kalendarze (`kpt-datepicker`, `kpt-date-range`) nie trzymają\n * zaszytych tablic nazw i działają dla dowolnego języka.\n */\n\n/** Krótkie nazwy dni tygodnia, zaczynając od poniedziałku (Pn…Nd). */\nexport function weekdayNames(locale: string): string[] {\n const fmt = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n // 2024-01-01 (UTC) to poniedziałek.\n return Array.from({ length: 7 }, (_, i) => fmt.format(new Date(Date.UTC(2024, 0, 1 + i))));\n}\n\n/** Pełne nazwy miesięcy (styczeń…grudzień / January…December). */\nexport function monthNames(locale: string): string[] {\n const fmt = new Intl.DateTimeFormat(locale, { month: 'long' });\n return Array.from({ length: 12 }, (_, i) => fmt.format(new Date(Date.UTC(2024, i, 1))));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\n\ninterface ClockMark {\n label: string;\n hour24: number; // wartość docelowa (24h) dla godzin, minuta dla minut\n x: number; // % w obrębie tarczy\n y: number;\n inner: boolean;\n selected: boolean;\n}\n\nconst R_OUTER = 40;\nconst R_INNER = 26;\nconst pad = (n: number): string => String(n).padStart(2, '0');\n\n/**\n * Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.\n * Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.\n * Wartość `HH:mm` (zawsze 24h). Używana przez `kpt-datepicker` i `kpt-date-range`.\n *\n * @example\n * <kpt-clock [(value)]=\"time\" [hourFormat]=\"12\" [minuteStep]=\"5\" />\n */\n@Component({\n selector: 'kpt-clock',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-clock\">\n <div class=\"kpt-clock__time\">\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'hours'\" (click)=\"setPhase('hours')\">{{ hourLabel() }}</button>\n <span class=\"kpt-clock__colon\">:</span>\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'minutes'\" (click)=\"setPhase('minutes')\">{{ minuteLabel() }}</button>\n @if (hourFormat() === 12) {\n <div class=\"kpt-clock__ampm\">\n <button type=\"button\" [class.is-active]=\"ampm() === 'AM'\" (click)=\"setAmpm('AM')\">AM</button>\n <button type=\"button\" [class.is-active]=\"ampm() === 'PM'\" (click)=\"setAmpm('PM')\">PM</button>\n </div>\n }\n </div>\n <div\n class=\"kpt-clock__face\"\n #face\n (pointerdown)=\"onDialPointer($event, face)\"\n (pointermove)=\"onDialPointer($event, face)\"\n (pointerup)=\"onDialUp()\"\n >\n <span class=\"kpt-clock__center\"></span>\n <span\n class=\"kpt-clock__hand\"\n [class.kpt-clock__hand--inner]=\"handInner()\"\n [style.transform]=\"'rotate(' + handAngle() + 'deg)'\"\n ></span>\n @if (clockPhase() === 'hours') {\n @for (mark of hourMarks(); track mark.hour24) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--inner]=\"mark.inner\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickHour(mark)\"\n >{{ mark.label }}</button>\n }\n } @else {\n @for (mark of minuteMarks(); track mark.hour24) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickMinute(mark)\"\n >{{ mark.label }}</button>\n }\n }\n </div>\n </div>\n `,\n styleUrl: './clock.component.scss',\n host: { class: 'kpt-clock-host' },\n})\nexport class KptClock {\n readonly value = model<string>('');\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly hour = signal(0);\n protected readonly minute = signal(0);\n protected readonly clockPhase = signal<'hours' | 'minutes'>('hours');\n\n constructor() {\n // Synchronizacja wartości zewnętrznej → stan tarczy (zapis idempotentny, bez pętli).\n effect(() => {\n const t = this.parse(this.value());\n this.hour.set(t?.h ?? 0);\n this.minute.set(t?.m ?? 0);\n });\n }\n\n private parse(v: string): { h: number; m: number } | null {\n const m = /^(\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { h: +m[1], m: +m[2] } : null;\n }\n private emit(): void {\n this.value.set(`${pad(this.hour())}:${pad(this.minute())}`);\n }\n\n protected readonly ampm = computed<'AM' | 'PM'>(() => (this.hour() < 12 ? 'AM' : 'PM'));\n protected readonly hour12 = computed(() => {\n const h = this.hour() % 12;\n return h === 0 ? 12 : h;\n });\n protected readonly hourLabel = computed(() =>\n this.hourFormat() === 12 ? String(this.hour12()) : pad(this.hour()),\n );\n protected readonly minuteLabel = computed(() => pad(this.minute()));\n\n private from12h(h12: number, ap: 'AM' | 'PM'): number {\n const base = h12 % 12; // 12 → 0\n return ap === 'PM' ? base + 12 : base;\n }\n\n protected readonly hourMarks = computed<ClockMark[]>(() => {\n const marks: ClockMark[] = [];\n if (this.hourFormat() === 12) {\n const ap = this.ampm();\n const curH12 = this.hour12();\n for (let i = 0; i < 12; i++) {\n const theta = (i / 12) * 2 * Math.PI;\n const h12 = i === 0 ? 12 : i;\n marks.push({\n label: String(h12),\n hour24: this.from12h(h12, ap),\n x: 50 + R_OUTER * Math.sin(theta),\n y: 50 - R_OUTER * Math.cos(theta),\n inner: false,\n selected: curH12 === h12,\n });\n }\n return marks;\n }\n const cur = this.hour();\n for (let i = 0; i < 12; i++) {\n const theta = (i / 12) * 2 * Math.PI;\n const hour24 = i === 0 ? 12 : i;\n marks.push({\n label: i === 0 ? '12' : String(i),\n hour24,\n x: 50 + R_OUTER * Math.sin(theta),\n y: 50 - R_OUTER * Math.cos(theta),\n inner: false,\n selected: cur === hour24,\n });\n }\n for (let i = 0; i < 12; i++) {\n const theta = (i / 12) * 2 * Math.PI;\n const hour24 = i === 0 ? 0 : i + 12;\n marks.push({\n label: i === 0 ? '00' : String(i + 12),\n hour24,\n x: 50 + R_INNER * Math.sin(theta),\n y: 50 - R_INNER * Math.cos(theta),\n inner: true,\n selected: cur === hour24,\n });\n }\n return marks;\n });\n\n protected readonly minuteMarks = computed<ClockMark[]>(() => {\n const cur = this.minute();\n return Array.from({ length: 12 }, (_, i) => {\n const val = i * 5;\n const theta = (i / 12) * 2 * Math.PI;\n return {\n label: pad(val),\n hour24: val,\n x: 50 + R_OUTER * Math.sin(theta),\n y: 50 - R_OUTER * Math.cos(theta),\n inner: false,\n selected: cur === val,\n };\n });\n });\n\n protected readonly handAngle = computed(() =>\n this.clockPhase() === 'hours' ? (this.hour() % 12) * 30 : this.minute() * 6,\n );\n protected readonly handInner = computed(\n () => this.clockPhase() === 'hours' && this.hourFormat() === 24 && (this.hour() === 0 || this.hour() >= 13),\n );\n\n protected setPhase(phase: 'hours' | 'minutes'): void {\n this.clockPhase.set(phase);\n }\n protected setAmpm(target: 'AM' | 'PM'): void {\n this.hour.set(this.from12h(this.hour12(), target));\n this.emit();\n }\n protected pickHour(mark: ClockMark): void {\n this.hour.set(mark.hour24);\n this.clockPhase.set('minutes');\n this.emit();\n }\n protected pickMinute(mark: ClockMark): void {\n this.minute.set(mark.hour24);\n this.emit();\n }\n\n protected onDialPointer(event: PointerEvent, face: HTMLElement): void {\n if (event.type === 'pointerdown') face.setPointerCapture(event.pointerId);\n else if (!(event.buttons & 1)) return;\n const rect = face.getBoundingClientRect();\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n let deg = (Math.atan2(dx, -dy) * 180) / Math.PI;\n if (deg < 0) deg += 360;\n if (this.clockPhase() === 'hours') {\n const idx = Math.round(deg / 30) % 12;\n if (this.hourFormat() === 12) {\n const h12 = idx === 0 ? 12 : idx;\n this.hour.set(this.from12h(h12, this.ampm()));\n } else {\n const radius = Math.hypot(dx, dy) / (rect.width / 2);\n const inner = radius < (R_OUTER + R_INNER) / 2 / 50;\n this.hour.set(inner ? (idx === 0 ? 0 : idx + 12) : idx === 0 ? 12 : idx);\n }\n } else {\n const step = Math.max(1, this.minuteStep());\n const raw = Math.round(deg / 6) % 60;\n this.minute.set((Math.round(raw / step) * step) % 60);\n }\n this.emit();\n }\n\n protected onDialUp(): void {\n if (this.clockPhase() === 'hours') this.clockPhase.set('minutes');\n }\n}\n","<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"showClock()\" (keydown.escape)=\"close()\">\n @if (showClock()) {\n @if (selectionMode() === 'datetime') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n }\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <!-- Nagłówek wspólny dla czterech poziomów: różni je tylko treść tytułu. -->\n <div class=\"kpt-calendar__header\">\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageBack()\" (click)=\"pagePrev()\" [attr.aria-label]=\"navPrevLabel()\"><kpt-icon name=\"chevron-left\" /></button>\n }\n <span class=\"kpt-calendar__titles\">\n @switch (panelView()) {\n @case ('day') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('month')\" [attr.aria-label]=\"i18n.t('datepicker.chooseMonth')\">{{ monthName() }}</button>\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n @case ('month') {\n @if (selectionMode() === 'month') {\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n } @else {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n }\n @case ('year') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('decade')\" [attr.aria-label]=\"i18n.t('datepicker.chooseDecade')\">{{ yearRangeLabel() }}</button>\n }\n @case ('decade') {\n <span class=\"kpt-calendar__title\">{{ decadeRangeLabel() }}</span>\n }\n }\n </span>\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageForward()\" (click)=\"pageNext()\" [attr.aria-label]=\"navNextLabel()\"><kpt-icon name=\"chevron-right\" /></button>\n }\n </div>\n\n @switch (panelView()) {\n @case ('day') {\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\" [class.kpt-calendar__grid--decades]=\"panelView() === 'decade'\">\n @for (cell of levelCells(); track cell.label) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [class.kpt-calendar__cell--current]=\"cell.current\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n }\n\n @if (selectionMode() === 'datetime') {\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n }\n }\n @if (hasFooter()) {\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptButton } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptClock } from './clock.component';\n\ninterface DayCell {\n day: number;\n iso: string;\n inMonth: boolean;\n today: boolean;\n selected: boolean;\n disabled: boolean;\n}\n\n/** Komórka siatki miesięcy/lat/dekad — niesie cel nawigacji (rok + ewentualny miesiąc). */\ninterface GridCell {\n label: string;\n y: number;\n m: number;\n selected: boolean;\n /** Zawiera dzisiejszą datę — obrys jak „dziś\" w siatce dni. */\n current: boolean;\n disabled: boolean;\n}\n\n/** Granulacja wyboru. */\nexport type KptDatepickerMode = 'date' | 'monthYear' | 'year' | 'month' | 'datetime' | 'time';\n\n/** Poziom panelu: dni → miesiące → lata → dekady. */\nexport type KptDatepickerView = 'day' | 'month' | 'year' | 'decade';\n\n/** Kolejność poziomów panelu, od najdrobniejszego. Indeks = „wysokość\" widoku. */\nconst LEVELS = ['day', 'month', 'year', 'decade'] as const satisfies readonly KptDatepickerView[];\n\nconst pad = (n: number): string => String(n).padStart(2, '0');\nconst toIso = (d: Date): string => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;\n\n/**\n * Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.\n * Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.\n * Panel jest stosem widoków dekady → lata → miesiące → dni: klik w komórkę schodzi poziom niżej,\n * klik w tytuł wchodzi poziom wyżej. Poziom startowy ustawia `startView` (data urodzenia:\n * `startView=\"decade\"`); domyślnie startuje na poziomie, na którym tryb zatwierdza wartość.\n * Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.\n * Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'\n * / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-datepicker [formField]=\"f.birthDate\" startView=\"decade\" minDate=\"1900-01-01\" />\n * <kpt-datepicker selectionMode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"meetingAt\" />\n * <kpt-datepicker selectionMode=\"time\" [(value)]=\"alarm\" />\n */\n@Component({\n selector: 'kpt-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n host: { class: 'kpt-datepicker-host' },\n})\nexport class KptDatepicker implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly placeholder = input('');\n /** Nazwa dostępna, gdy pola nie opisuje `<label for>` (np. dwa pola w jednym wierszu). */\n readonly ariaLabel = input<string | null>(null);\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n /** Granulacja wyboru. */\n readonly selectionMode = input<KptDatepickerMode>('date');\n /**\n * Poziom, od którego otwiera się panel. `null` = poziom zatwierdzania danego trybu\n * (dni dla 'date'). Nie schodzi poniżej tego poziomu — `startView=\"day\"` w trybie 'year'\n * nie ma sensu i jest podnoszony do 'year'.\n */\n readonly startView = input<KptDatepickerView | null>(null);\n /** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */\n readonly monthDisplay = input<'long' | 'number'>('long');\n /** Format godziny: 24 lub 12 (z AM/PM). */\n readonly hourFormat = input(24, { transform: numberAttribute });\n /** Krok minut (snap na tarczy). */\n readonly minuteStep = input(1, { transform: numberAttribute });\n readonly minDate = input<string | null>(null);\n readonly maxDate = input<string | null>(null);\n\n protected readonly effectivePlaceholder = computed(() => {\n if (this.placeholder()) return this.placeholder();\n const iso = this.displayFormat() === 'iso';\n const time = this.hourFormat() === 12 ? '--:-- --' : '--:--';\n switch (this.selectionMode()) {\n case 'monthYear': return iso ? 'RRRR-MM' : 'MM.RRRR';\n case 'year': return 'RRRR';\n case 'month': return this.monthDisplay() === 'number' ? 'MM' : this.i18n.t('datepicker.month');\n case 'time': return time;\n case 'datetime': return `${iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR'} ${time}`;\n default: return iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR';\n }\n });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n /**\n * Stan kalendarza (dwukierunkowy). Pozwala otworzyć go z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n private readonly today = new Date();\n private readonly view = signal({ y: this.today.getFullYear(), m: this.today.getMonth() });\n /** Aktualny poziom stosu widoków panelu. */\n protected readonly panelView = signal<KptDatepickerView>('day');\n\n /** Poziom, na którym klik w komórkę zatwierdza wartość zamiast schodzić niżej. */\n protected readonly commitLevel = computed<KptDatepickerView>(() => {\n switch (this.selectionMode()) {\n case 'monthYear':\n case 'month':\n return 'month';\n case 'year':\n return 'year';\n default:\n return 'day';\n }\n });\n /** Tryb 'month' nie ma roku ani dekady — wartością jest samo 'MM'. */\n private readonly topLevel = computed<KptDatepickerView>(() =>\n this.selectionMode() === 'month' ? 'month' : 'decade',\n );\n private effectiveStartView(): KptDatepickerView {\n const commit = LEVELS.indexOf(this.commitLevel());\n const top = LEVELS.indexOf(this.topLevel());\n const wanted = this.startView();\n const idx = wanted ? LEVELS.indexOf(wanted) : commit;\n return LEVELS[Math.min(Math.max(idx, commit), top)];\n }\n\n // ── Stan czasu (bufor 'HH:mm', 24h) ──\n protected readonly timeStr = signal('');\n protected readonly dtView = signal<'calendar' | 'clock'>('calendar');\n private readonly pendingDate = signal('');\n /** Tarcza zamiast siatek: tryb 'time' zawsze, 'datetime' po wejściu w pasek czasu. */\n protected readonly showClock = computed(\n () => this.selectionMode() === 'time' || (this.selectionMode() === 'datetime' && this.dtView() === 'clock'),\n );\n protected readonly hasFooter = computed(\n () => this.selectionMode() === 'time' || this.selectionMode() === 'datetime',\n );\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Kalendarz może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // widok i bufor czasu ustawiamy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.view.set(this.initialView());\n this.panelView.set(this.effectiveStartView());\n this.syncTimeFromValue();\n this.dtView.set(this.selectionMode() === 'time' ? 'clock' : 'calendar');\n });\n });\n }\n\n protected readonly viewYear = computed(() => this.view().y);\n protected readonly monthName = computed(() => this.months()[this.view().m]);\n /** Początek dekady widocznej w siatce lat (1979 → 1970). */\n private readonly decadeStart = computed(() => Math.floor(this.view().y / 10) * 10);\n /** Początek strony dekad: 12 dekad, czyli 120 lat (1979 → 1920, strona 1920–2039). */\n private readonly centuryStart = computed(() => Math.floor(this.view().y / 120) * 120);\n protected readonly yearRangeLabel = computed(() => `${this.decadeStart()} – ${this.decadeStart() + 9}`);\n protected readonly decadeRangeLabel = computed(() => `${this.centuryStart()} – ${this.centuryStart() + 119}`);\n\n /** Tryb 'month' nie ma po czym nawigować — siatka miesięcy jest kompletna. */\n protected readonly hasNav = computed(() => this.selectionMode() !== 'month');\n protected readonly navPrevLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.prevYear');\n case 'year': return this.i18n.t('datepicker.prevYears');\n case 'decade': return this.i18n.t('datepicker.prevDecades');\n default: return this.i18n.t('datepicker.prevMonth');\n }\n });\n protected readonly navNextLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.nextYear');\n case 'year': return this.i18n.t('datepicker.nextYears');\n case 'decade': return this.i18n.t('datepicker.nextDecades');\n default: return this.i18n.t('datepicker.nextMonth');\n }\n });\n\n /** Strzałka wstecz gasnie, gdy cała poprzednia strona wypada przed `minDate`. */\n protected readonly canPageBack = computed(() => {\n const min = this.minDate();\n if (!min) return true;\n const { y, m } = this.view();\n switch (this.panelView()) {\n case 'month': return `${y - 1}-12` >= min.slice(0, 7);\n case 'year': return this.decadeStart() - 1 >= +min.slice(0, 4);\n case 'decade': return this.centuryStart() - 1 >= +min.slice(0, 4);\n default: return toIso(new Date(y, m, 0)) >= min; // ostatni dzień poprzedniego miesiąca\n }\n });\n protected readonly canPageForward = computed(() => {\n const max = this.maxDate();\n if (!max) return true;\n const { y, m } = this.view();\n switch (this.panelView()) {\n case 'month': return `${y + 1}-01` <= max.slice(0, 7);\n case 'year': return this.decadeStart() + 10 <= +max.slice(0, 4);\n case 'decade': return this.centuryStart() + 120 <= +max.slice(0, 4);\n default: return toIso(new Date(y, m + 1, 1)) <= max;\n }\n });\n\n // ── Prezentacja czasu ──\n private formatTime(h: number, m: number): string {\n if (this.hourFormat() === 12) {\n const h12 = h % 12 === 0 ? 12 : h % 12;\n return `${h12}:${pad(m)} ${h < 12 ? 'AM' : 'PM'}`;\n }\n return `${pad(h)}:${pad(m)}`;\n }\n\n /** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */\n protected readonly timeBarLabel = computed(() => {\n const t = this.parseTime(this.timeStr());\n return this.formatTime(t?.h ?? 0, t?.m ?? 0);\n });\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (!v) return '';\n const iso = this.displayFormat() === 'iso';\n switch (this.selectionMode()) {\n case 'monthYear': {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n return m ? (iso ? v : `${m[2]}.${m[1]}`) : '';\n }\n case 'year':\n return /^\\d{4}$/.test(v) ? v : '';\n case 'month': {\n const m = /^(\\d{2})$/.exec(v);\n if (!m) return '';\n return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');\n }\n case 'time': {\n const t = this.parseTime(v);\n return t ? this.formatTime(t.h, t.m) : '';\n }\n case 'datetime': {\n const dt = this.parseDateTime(v);\n if (!dt) return '';\n const datePart = iso ? dt.date : `${dt.date.slice(8, 10)}.${dt.date.slice(5, 7)}.${dt.date.slice(0, 4)}`;\n const sep = iso ? 'T' : ' ';\n return `${datePart}${sep}${this.formatTime(dt.h, dt.m)}`;\n }\n default: {\n const d = this.parseDate(v);\n if (!d) return '';\n return iso ? toIso(d) : `${pad(d.getDate())}.${pad(d.getMonth() + 1)}.${d.getFullYear()}`;\n }\n }\n });\n\n // ── Siatka dni (tryby 'date' / 'datetime') ──\n private readonly selectedDateIso = computed(() =>\n this.selectionMode() === 'datetime' ? this.pendingDate() : this.value(),\n );\n protected readonly weeks = computed<DayCell[][]>(() => {\n const { y, m } = this.view();\n const first = new Date(y, m, 1);\n const startOffset = (first.getDay() + 6) % 7; // poniedziałek = 0\n const start = new Date(y, m, 1 - startOffset);\n const sel = this.selectedDateIso();\n const min = this.minDate();\n const max = this.maxDate();\n const todayIso = toIso(this.today);\n\n const weeks: DayCell[][] = [];\n for (let w = 0; w < 6; w++) {\n const row: DayCell[] = [];\n for (let d = 0; d < 7; d++) {\n const date = new Date(start.getFullYear(), start.getMonth(), start.getDate() + w * 7 + d);\n const iso = toIso(date);\n row.push({\n day: date.getDate(),\n iso,\n inMonth: date.getMonth() === m,\n today: iso === todayIso,\n selected: iso === sel,\n disabled: (min != null && iso < min) || (max != null && iso > max),\n });\n }\n weeks.push(row);\n }\n return weeks;\n });\n\n /** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */\n private readonly selectedYM = computed<{ y: number | null; m: number | null }>(() => {\n const v = this.value();\n switch (this.selectionMode()) {\n case 'month': {\n const m = /^(\\d{2})$/.exec(v);\n return { y: null, m: m ? +m[1] - 1 : null };\n }\n case 'year':\n return { y: /^\\d{4}$/.test(v) ? +v : null, m: null };\n case 'monthYear': {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n return m ? { y: +m[1], m: +m[2] - 1 } : { y: null, m: null };\n }\n case 'time':\n return { y: null, m: null };\n default: {\n const d = this.parseDate(this.selectedDateIso());\n return d ? { y: d.getFullYear(), m: d.getMonth() } : { y: null, m: null };\n }\n }\n });\n\n // ── Siatka miesięcy ──\n protected readonly monthCells = computed<GridCell[]>(() => {\n const { y } = this.view();\n const sel = this.selectedYM();\n const isMonthOnly = this.selectionMode() === 'month';\n const numeric = this.monthDisplay() === 'number';\n const todayY = this.today.getFullYear();\n const todayM = this.today.getMonth();\n return this.months().map((name, i) => ({\n label: numeric ? pad(i + 1) : name,\n y,\n m: i,\n selected: sel.m === i && (isMonthOnly || sel.y === y),\n current: todayM === i && (isMonthOnly || todayY === y),\n disabled: isMonthOnly ? false : this.isMonthYearDisabled(y, i),\n }));\n });\n\n // ── Siatka lat (pełna dekada) ──\n protected readonly yearCells = computed<GridCell[]>(() => {\n const start = this.decadeStart();\n const sel = this.selectedYM();\n const todayY = this.today.getFullYear();\n return Array.from({ length: 10 }, (_, i) => {\n const year = start + i;\n return {\n label: String(year),\n y: year,\n m: 0,\n selected: sel.y === year,\n current: todayY === year,\n disabled: this.isYearDisabled(year),\n };\n });\n });\n\n // ── Siatka dekad (12 dekad = 120 lat) ──\n protected readonly decadeCells = computed<GridCell[]>(() => {\n const start = this.centuryStart();\n const sel = this.selectedYM();\n const todayY = this.today.getFullYear();\n return Array.from({ length: 12 }, (_, i) => {\n const from = start + i * 10;\n const to = from + 9;\n return {\n label: `${from} – ${to}`,\n y: from,\n m: 0,\n selected: sel.y != null && sel.y >= from && sel.y <= to,\n current: todayY >= from && todayY <= to,\n // Dekada wypada z zakresu dopiero, gdy poza nim są oba jej krańce.\n disabled: this.isYearDisabled(from) && this.isYearDisabled(to),\n };\n });\n });\n\n /** Komórki bieżącego poziomu — siatka miesięcy/lat/dekad ma jeden wspólny markup. */\n protected readonly levelCells = computed<GridCell[]>(() => {\n switch (this.panelView()) {\n case 'year':\n return this.yearCells();\n case 'decade':\n return this.decadeCells();\n default:\n return this.monthCells();\n }\n });\n\n // ── Parsowanie ──\n private parseDate(iso: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso ?? '');\n if (!match) return null;\n return new Date(+match[1], +match[2] - 1, +match[3]);\n }\n private parseTime(v: string): { h: number; m: number } | null {\n const m = /^(\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { h: +m[1], m: +m[2] } : null;\n }\n private parseDateTime(v: string): { date: string; h: number; m: number } | null {\n const m = /^(\\d{4}-\\d{2}-\\d{2})[T ](\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { date: m[1], h: +m[2], m: +m[3] } : null;\n }\n\n private isYearDisabled(year: number): boolean {\n const min = this.minDate();\n const max = this.maxDate();\n if (min && year < +min.slice(0, 4)) return true;\n if (max && year > +max.slice(0, 4)) return true;\n return false;\n }\n private isMonthYearDisabled(y: number, monthIndex: number): boolean {\n const ym = `${y}-${pad(monthIndex + 1)}`;\n const min = this.minDate();\n const max = this.maxDate();\n if (min && ym < min.slice(0, 7)) return true;\n if (max && ym > max.slice(0, 7)) return true;\n return false;\n }\n\n private initialView(): { y: number; m: number } {\n const v = this.value();\n switch (this.selectionMode()) {\n case 'monthYear': {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n return m ? { y: +m[1], m: +m[2] - 1 } : { y: this.today.getFullYear(), m: this.today.getMonth() };\n }\n case 'year':\n return { y: /^\\d{4}$/.test(v) ? +v : this.today.getFullYear(), m: 0 };\n case 'month':\n return { y: this.today.getFullYear(), m: 0 };\n case 'datetime': {\n const dt = this.parseDateTime(v);\n if (dt) {\n const d = this.parseDate(dt.date)!;\n return { y: d.getFullYear(), m: d.getMonth() };\n }\n return { y: this.today.getFullYear(), m: this.today.getMonth() };\n }\n default: {\n const d = this.parseDate(v) ?? this.today;\n return { y: d.getFullYear(), m: d.getMonth() };\n }\n }\n }\n\n private syncTimeFromValue(): void {\n const mode = this.selectionMode();\n if (mode === 'time') {\n const t = this.parseTime(this.value());\n this.timeStr.set(t ? `${pad(t.h)}:${pad(t.m)}` : '00:00');\n } else if (mode === 'datetime') {\n const dt = this.parseDateTime(this.value());\n this.timeStr.set(dt ? `${pad(dt.h)}:${pad(dt.m)}` : '00:00');\n this.pendingDate.set(dt?.date ?? '');\n }\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n // ── Wybór data/miesiąc/rok ──\n protected selectDay(cell: DayCell): void {\n if (cell.disabled) return;\n if (this.selectionMode() === 'datetime') {\n this.pendingDate.set(cell.iso);\n return; // czas jeszcze do wyboru\n }\n this.value.set(cell.iso);\n this.close();\n }\n /**\n * Klik w komórkę siatki: na poziomie zatwierdzania ustawia wartość i zamyka panel,\n * wyżej — przestawia widok i schodzi poziom niżej.\n */\n protected selectCell(cell: GridCell): void {\n if (cell.disabled) return;\n const level = this.panelView();\n if (level === this.commitLevel()) {\n this.value.set(level === 'year' ? String(cell.y) : this.monthValue(cell));\n this.close();\n return;\n }\n this.view.update(({ m }) => ({ y: cell.y, m: level === 'month' ? cell.m : m }));\n this.panelView.set(LEVELS[LEVELS.indexOf(level) - 1]);\n }\n\n private monthValue(cell: GridCell): string {\n const mm = pad(cell.m + 1);\n return this.selectionMode() === 'month' ? mm : `${cell.y}-${mm}`;\n }\n\n /** Klik w tytuł — wejście poziom wyżej w stosie widoków. */\n protected goTo(level: KptDatepickerView): void {\n this.panelView.set(level);\n }\n\n // ── Zegar (delegowany do kpt-clock przez timeStr) ──\n protected openClock(): void {\n this.dtView.set('clock');\n }\n protected backToCalendar(): void {\n this.dtView.set('calendar');\n }\n\n protected commit(): void {\n const time = this.timeStr() || '00:00';\n if (this.selectionMode() === 'time') {\n this.value.set(time);\n } else {\n const dt = this.parseDateTime(this.value());\n const date = this.pendingDate() || dt?.date || toIso(this.today);\n this.value.set(`${date}T${time}`);\n }\n this.close();\n }\n\n /** Strzałki ‹ › — krok zależny od poziomu: miesiąc, rok, dekada, strona dekad. */\n private page(dir: 1 | -1): void {\n const level = this.panelView();\n this.view.update(({ y, m }) => {\n switch (level) {\n case 'month':\n return { y: y + dir, m };\n case 'year':\n return { y: y + dir * 10, m };\n case 'decade':\n return { y: y + dir * 120, m };\n default: {\n const next = m + dir;\n if (next < 0) return { y: y - 1, m: 11 };\n if (next > 11) return { y: y + 1, m: 0 };\n return { y, m: next };\n }\n }\n });\n }\n protected pagePrev(): void {\n this.page(-1);\n }\n protected pageNext(): void {\n this.page(1);\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set('');\n this.pendingDate.set('');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole wieloliniowe (textarea) na Signal Forms, z opcjonalnym auto-resize.\n *\n * @example\n * <kpt-textarea [formField]=\"f.notes\" placeholder=\"Notatki…\" autoResize />\n */\n@Component({\n selector: 'kpt-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <textarea\n #ta\n class=\"kpt-textarea__field\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [rows]=\"rows()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n `,\n styleUrl: './textarea.component.scss',\n host: { class: 'kpt-textarea-host' },\n})\nexport class KptTextarea implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly rows = input(3);\n readonly autoResize = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n private readonly ta = viewChild<ElementRef<HTMLTextAreaElement>>('ta');\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) this.resize();\n });\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n if (this.autoResize()) this.resize();\n }\n\n private resize(): void {\n const el = this.ta()?.nativeElement;\n if (!el) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, booleanAttribute, inject, input } from '@angular/core';\n\nexport type KptTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Dymek podpowiedzi (tooltip) pokazywany na hover/focus hosta. Lekki — element dodawany\n * do `body` i pozycjonowany względem hosta (działa w trybie zoneless).\n *\n * @example\n * <kpt-button kptTooltip=\"Zapisz zmiany\" kptTooltipPosition=\"bottom\">Zapisz</kpt-button>\n *\n * @example Dymek tylko wtedy, gdy tekst nie mieści się w elemencie:\n * <span class=\"ellipsis\" [kptTooltip]=\"name\" kptTooltipOnlyWhenTruncated>{{ name }}</span>\n */\n@Directive({\n selector: '[kptTooltip]',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n },\n})\nexport class KptTooltip implements OnDestroy {\n readonly text = input.required<string>({ alias: 'kptTooltip' });\n readonly position = input<KptTooltipPosition>('top', { alias: 'kptTooltipPosition' });\n /**\n * Pokazuj dymek tylko wtedy, gdy treść nie mieści się w elemencie (jest ucięta\n * wielokropkiem). Dzięki temu podpowiedź nie powtarza tekstu, który i tak widać.\n */\n readonly onlyWhenTruncated = input(false, {\n alias: 'kptTooltipOnlyWhenTruncated',\n transform: booleanAttribute,\n });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private tip?: HTMLElement;\n /** Dymek żyje w `body`, więc przy przewinięciu hosta trzeba go przeliczyć. */\n private readonly follow = () => this.reposition();\n\n protected show(): void {\n if (this.tip || !this.text()) return;\n // Sprawdzamy dopiero teraz, a nie przy renderze: dzięki temu wynik jest zawsze\n // aktualny po zmianie szerokości czy powiększenia, bez żadnych obserwatorów.\n if (this.onlyWhenTruncated() && !this.isTruncated()) return;\n const tip = document.createElement('div');\n tip.className = 'kpt-tooltip';\n tip.setAttribute('role', 'tooltip');\n tip.textContent = this.text();\n tip.style.cssText =\n 'position:fixed;z-index:1400;max-width:16rem;padding:0.35rem 0.6rem;' +\n 'border-radius:var(--kpt-radius-sm,0.25rem);font-size:var(--kpt-font-size-xs,0.75rem);' +\n 'line-height:1.4;background:var(--kpt-color-on-surface);color:var(--kpt-color-surface);' +\n 'box-shadow:var(--kpt-elevation-2);pointer-events:none;opacity:0;transition:opacity 120ms;';\n document.body.appendChild(tip);\n this.tip = tip;\n this.reposition();\n // Faza przechwytywania łapie także przewijanie zagnieżdżonych kontenerów\n // (np. osi roadmapy), bo zdarzenie `scroll` elementu się nie propaguje.\n window.addEventListener('scroll', this.follow, true);\n window.addEventListener('resize', this.follow);\n requestAnimationFrame(() => {\n if (this.tip) this.tip.style.opacity = '1';\n });\n }\n\n protected hide(): void {\n window.removeEventListener('scroll', this.follow, true);\n window.removeEventListener('resize', this.follow);\n this.tip?.remove();\n this.tip = undefined;\n }\n\n /**\n * Czy treść jest przycięta? Sprawdzamy hosta oraz jego bezpośrednie dzieci, bo\n * `text-overflow: ellipsis` siedzi zwykle na wewnętrznym elemencie — a taki element\n * kurczy się do dostępnej szerokości i nie rozpycha rodzica, więc pomiar samego\n * hosta nie wykryłby niczego.\n */\n private isTruncated(): boolean {\n const root = this.host.nativeElement;\n const overflows = (el: Element): boolean =>\n // Tolerancja 1 px pochłania zaokrąglenia subpikselowe przy skalowaniu.\n el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;\n return overflows(root) || Array.from(root.children).some(overflows);\n }\n\n private reposition(): void {\n const tip = this.tip;\n if (!tip) return;\n const r = this.host.nativeElement.getBoundingClientRect();\n const t = tip.getBoundingClientRect();\n const gap = 8;\n let top: number;\n let left: number;\n switch (this.position()) {\n case 'bottom':\n top = r.bottom + gap;\n left = r.left + r.width / 2 - t.width / 2;\n break;\n case 'left':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.left - t.width - gap;\n break;\n case 'right':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.right + gap;\n break;\n default:\n top = r.top - t.height - gap;\n left = r.left + r.width / 2 - t.width / 2;\n }\n tip.style.top = `${Math.max(4, top)}px`;\n tip.style.left = `${Math.max(4, left)}px`;\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n}\n","<div class=\"kpt-rich-text\" [class.kpt-rich-text--invalid]=\"showInvalid()\" [class.kpt-rich-text--disabled]=\"disabled()\">\n <div class=\"kpt-rich-text__toolbar\" role=\"toolbar\">\n @for (section of sections(); track $index; let firstSection = $first) {\n @if (!firstSection) {\n <span class=\"kpt-rich-text__divider\" aria-hidden=\"true\"></span>\n }\n @for (item of section; track item) {\n @switch (item) {\n @case ('heading') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__style\"\n cdkOverlayOrigin\n #styleOrigin=\"cdkOverlayOrigin\"\n [class.is-open]=\"styleOpen()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-expanded]=\"styleOpen()\"\n [kptTooltip]=\"aria(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openStyle()\"\n >\n <span>{{ styleLabel() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-rich-text__style-caret\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"styleOrigin\"\n [cdkConnectedOverlayOpen]=\"styleOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeStyle()\"\n (detach)=\"closeStyle()\"\n >\n <ul class=\"kpt-rich-text__style-panel\" role=\"listbox\">\n @for (o of styleOptions(); track o.tag) {\n <li\n class=\"kpt-rich-text__style-opt\"\n [class]=\"'kpt-rich-text__style-opt kpt-rich-text__style-opt--' + o.tag\"\n role=\"option\"\n [attr.aria-selected]=\"currentBlock() === o.tag\"\n [class.is-selected]=\"currentBlock() === o.tag\"\n (click)=\"pickStyle(o.tag)\"\n >{{ o.label }}</li>\n }\n </ul>\n </ng-template>\n }\n @case ('foreColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #foreOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('foreColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"foreOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'foreColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('backColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #backOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('backColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"backOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'backColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('table') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n cdkOverlayOrigin\n #tableOrigin=\"cdkOverlayOrigin\"\n [class.is-active]=\"tableOpen()\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"tableOrigin\"\n [cdkConnectedOverlayOpen]=\"tableOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeTable()\"\n (detach)=\"closeTable()\"\n >\n <div class=\"kpt-rt-grid-pop\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-grid\" (mouseleave)=\"gridHover(0, 0)\">\n @for (r of gridRows; track r) {\n <div class=\"kpt-rt-grid__row\">\n @for (c of gridCols; track c) {\n <span\n class=\"kpt-rt-grid__cell\"\n [class.is-on]=\"r <= gridR() && c <= gridC()\"\n (mouseenter)=\"gridHover(r, c)\"\n (click)=\"insertTable(r, c)\"\n ></span>\n }\n </div>\n }\n </div>\n <div class=\"kpt-rt-grid__label\">{{ gridR() }} × {{ gridC() }}</div>\n </div>\n </ng-template>\n }\n @default {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n [class.is-active]=\"isActive(item)\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-pressed]=\"isActive(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n }\n }\n }\n }\n </div>\n @if (sourceView()) {\n <textarea\n class=\"kpt-rich-text__source\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n spellcheck=\"false\"\n [attr.aria-label]=\"i18n.t('richText.htmlSource')\"\n (input)=\"onSource($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n } @else {\n <div\n #editor\n class=\"kpt-rich-text__editor\"\n [attr.contenteditable]=\"disabled() ? 'false' : 'true'\"\n [attr.data-placeholder]=\"placeholder()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"textbox\"\n aria-multiline=\"true\"\n (input)=\"onInput()\"\n (paste)=\"onPaste($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (mousedown)=\"onEditorMouseDown($event)\"\n (mousemove)=\"onEditorMouseMove($event)\"\n (blur)=\"touch.emit()\"\n ></div>\n }\n\n <!-- Menu kontekstowe tabeli (origin punktowy = pozycja kursora) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"menuOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeMenu()\"\n (detach)=\"closeMenu()\"\n >\n <div class=\"kpt-rt-menu\" (contextmenu)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.column') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('left')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('right')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertRight') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderColumn()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerColumn') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteColumn()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteColumn') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.row') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('above')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertAbove') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('below')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertBelow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderRow()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerRow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteRow()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteRow') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.cell') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openCellBg()\"><kpt-icon name=\"palette\" /> {{ i18n.t('richText.menu.cellBackground') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('left')\"><kpt-icon name=\"align-left\" /> {{ i18n.t('richText.menu.alignLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('center')\"><kpt-icon name=\"align-center\" /> {{ i18n.t('richText.menu.alignCenter') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('right')\"><kpt-icon name=\"align-right\" /> {{ i18n.t('richText.menu.alignRight') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canMerge()\" (click)=\"mergeCells()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.mergeCells') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canSplit()\" (click)=\"splitCell()\"><kpt-icon name=\"grip-vertical\" /> {{ i18n.t('richText.menu.splitCell') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openBorder()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.border') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item kpt-rt-menu__item--danger\" (click)=\"deleteTable()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteTable') }}</button>\n </div>\n </ng-template>\n\n <!-- Popover obramowania (tabela / komórka) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"borderOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeBorder()\"\n (detach)=\"closeBorder()\"\n >\n <div class=\"kpt-rt-border\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-border__seg\">\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'table'\" (click)=\"borderTarget.set('table')\">{{ i18n.t('richText.border.table') }}</button>\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'cell'\" (click)=\"borderTarget.set('cell')\">{{ i18n.t('richText.border.cell') }}</button>\n </div>\n <div class=\"kpt-rt-border__widths\">\n <button type=\"button\" (click)=\"setBorderWidth('none')\">{{ i18n.t('richText.border.none') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thin')\">{{ i18n.t('richText.border.thin') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('medium')\">{{ i18n.t('richText.border.medium') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thick')\">{{ i18n.t('richText.border.thick') }}</button>\n </div>\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button type=\"button\" class=\"kpt-rich-text__swatch\" [style.background]=\"c\" [attr.aria-label]=\"c\" (click)=\"setBorderColor(c)\"></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.border.customColor') }}</span>\n <input type=\"color\" (input)=\"onBorderColorInput($event)\" />\n </label>\n </div>\n </ng-template>\n\n <!-- Popover koloru tła komórki (z menu kontekstowego) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'cellBg'\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n</div>\n\n<ng-template #paletteTpl>\n <div class=\"kpt-rich-text__palette\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button\n type=\"button\"\n class=\"kpt-rich-text__swatch\"\n [style.background]=\"c\"\n [attr.aria-label]=\"c\"\n (click)=\"applyColor(c)\"\n ></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.paletteCustom') }}</span>\n <input type=\"color\" (input)=\"onColorInput($event)\" />\n </label>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptTooltip } from '../tooltip/tooltip.directive';\n\nexport type KptRichTool =\n | 'copy' | 'paste' | 'pasteText'\n | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol'\n | 'foreColor' | 'backColor'\n | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify'\n | 'link' | 'table' | 'clear' | 'html';\n\n/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */\nexport type KptRichToolbar = KptRichTool[] | KptRichTool[][];\n\nconst ICON: Record<KptRichTool, KptIconName> = {\n copy: 'copy',\n paste: 'clipboard',\n pasteText: 'clipboard-text',\n heading: 'code', // nieużywane (heading renderuje select)\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikethrough',\n ul: 'list',\n ol: 'list-numbers',\n foreColor: 'palette',\n backColor: 'highlight',\n alignLeft: 'align-left',\n alignCenter: 'align-center',\n alignRight: 'align-right',\n alignJustify: 'align-justified',\n link: 'link',\n table: 'table',\n clear: 'clear-formatting',\n html: 'code',\n};\n\n/** Narzędzia zwykłe → komenda execCommand + nazwa queryCommandState (dla stanu aktywnego). */\nconst COMMAND: Partial<Record<KptRichTool, string>> = {\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikeThrough',\n ul: 'insertUnorderedList',\n ol: 'insertOrderedList',\n alignLeft: 'justifyLeft',\n alignCenter: 'justifyCenter',\n alignRight: 'justifyRight',\n alignJustify: 'justifyFull',\n clear: 'removeFormat',\n};\n\nconst SWATCHES = [\n '#000000', '#434343', '#666666', '#999999', '#b7b7b7', '#cccccc', '#ffffff',\n '#e11d48', '#ea580c', '#ca8a04', '#16a34a', '#0891b2', '#2563eb', '#7c3aed',\n];\n\nconst DEFAULT_TOOLBAR: KptRichTool[][] = [\n ['copy', 'paste', 'pasteText'],\n ['heading', 'bold', 'italic', 'underline', 'strike', 'ul', 'ol'],\n ['foreColor', 'backColor'],\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\n ['link', 'table', 'clear', 'html'],\n];\n\n// Allowlisty sanityzacji wklejanego HTML.\nconst ALLOWED_TAGS = new Set([\n 'P', 'BR', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'B', 'STRONG', 'I', 'EM', 'U', 'S', 'STRIKE',\n 'UL', 'OL', 'LI', 'A', 'SPAN', 'DIV', 'BLOCKQUOTE', 'FONT',\n 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR', 'TD', 'TH', 'COLGROUP', 'COL', 'CAPTION',\n]);\nconst ALLOWED_STYLES = new Set([\n 'color', 'background-color', 'text-align', 'font-weight', 'font-style', 'text-decoration',\n 'width', 'height', 'border', 'border-color', 'border-width', 'border-style', 'vertical-align',\n]);\nconst ALLOWED_ATTRS = new Set(['colspan', 'rowspan', 'span', 'width', 'class', 'target', 'rel', 'title']);\n// Schematy URL dopuszczone w `href` wstawianym narzędziem „link\" (blocklista jest obchodzalna).\nconst SAFE_URL_SCHEME = /^(https?:|mailto:|tel:)/i;\nconst HAS_URL_SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/**\n * Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem sekcji.\n * Narzędzia: schowek (kopiuj / wklej / wklej bez formatowania), styl (nagłówki H1–H6 / paragraf),\n * bold/italic/underline/strike/ul/ol, kolor tekstu i tła (popover), wyrównania, link, czyszczenie.\n * `toolbar` przyjmuje płaską listę lub grupy (sekcje). Wartość = HTML. Signal Forms.\n * Wymaga stylów overlay CDK (popover kolorów): `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-rich-text [formField]=\"f.body\" />\n * <kpt-rich-text [(value)]=\"v\" [toolbar]=\"[['bold','italic'],['ul','ol'],['link']]\" />\n */\n@Component({\n selector: 'kpt-rich-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon, CdkOverlayOrigin, CdkConnectedOverlay, NgTemplateOutlet, KptTooltip],\n templateUrl: './rich-text.component.html',\n styleUrl: './rich-text.component.scss',\n host: { class: 'kpt-rich-text-host' },\n})\nexport class KptRichText implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly toolbar = input<KptRichToolbar>(DEFAULT_TOOLBAR);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly swatches = SWATCHES;\n private readonly editor = viewChild<ElementRef<HTMLElement>>('editor');\n private savedRange: Range | null = null;\n\n protected readonly colorOpen = signal(false);\n protected readonly colorKind = signal<'foreColor' | 'backColor' | 'cellBg'>('foreColor');\n protected readonly sourceView = signal(false);\n protected readonly styleOpen = signal(false);\n\n // ── Tabele ──\n protected readonly tableOpen = signal(false); // popover siatki wstawiania\n protected readonly gridR = signal(0);\n protected readonly gridC = signal(0);\n protected readonly gridRows = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly gridCols = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly menuOpen = signal(false); // menu kontekstowe\n protected readonly menuPoint = signal<{ x: number; y: number }>({ x: 0, y: 0 });\n protected readonly borderOpen = signal(false);\n protected readonly borderTarget = signal<'table' | 'cell'>('table');\n private ctxCell: HTMLTableCellElement | null = null;\n private resize: { col: HTMLTableColElement; startX: number; startW: number } | null = null;\n // Zaznaczanie wielu komórek\n protected readonly selCount = signal(0);\n private selCells = new Set<HTMLTableCellElement>();\n private selAnchor: HTMLTableCellElement | null = null;\n private selecting = false;\n private canSplitCtx = false;\n\n protected readonly styleOptions = computed<{ tag: string; label: string }[]>(() => [\n { tag: 'p', label: this.i18n.t('richText.styleNormal') },\n { tag: 'h1', label: this.i18n.t('richText.styleHeading', { level: 1 }) },\n { tag: 'h2', label: this.i18n.t('richText.styleHeading', { level: 2 }) },\n { tag: 'h3', label: this.i18n.t('richText.styleHeading', { level: 3 }) },\n { tag: 'h4', label: this.i18n.t('richText.styleHeading', { level: 4 }) },\n { tag: 'h5', label: this.i18n.t('richText.styleHeading', { level: 5 }) },\n { tag: 'h6', label: this.i18n.t('richText.styleHeading', { level: 6 }) },\n ]);\n protected readonly styleLabel = computed(\n () => this.styleOptions().find((o) => o.tag === this.currentBlock())?.label ?? this.i18n.t('richText.styleNormal'),\n );\n protected readonly activeCmds = signal<Set<string>>(new Set());\n protected readonly currentBlock = signal<string>('p');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n /** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */\n protected readonly sections = computed<KptRichTool[][]>(() => {\n const t = this.toolbar();\n if (t.length === 0) return [];\n return Array.isArray(t[0]) ? (t as KptRichTool[][]) : [t as KptRichTool[]];\n });\n\n constructor() {\n // Synchronizuj tylko przy zmianie zewnętrznej (bez resetu kursora podczas pisania).\n // Porównanie `el.innerHTML !== v` działa na SUROWEJ wartości modelu (tej samej, którą ustawia\n // `onInput()`), więc pisanie w edytorze nadal nie odpala tej gałęzi — sanityzacja włącza się\n // wyłącznie przy zewnętrznym zapisie `value` (init, `[(value)]` z aplikacji, `onSource()`).\n effect(() => {\n const el = this.editor()?.nativeElement;\n const v = this.value();\n if (el && el.innerHTML !== v) el.innerHTML = this.sanitizeHtml(v);\n });\n\n // Odzwierciedlenie stanu aktywnego narzędzi na podstawie zaznaczenia.\n const onSel = () => this.refreshState();\n const onMove = (e: MouseEvent) => this.onResizeMove(e);\n const onUp = () => this.onResizeEnd();\n document.addEventListener('selectionchange', onSel);\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n inject(DestroyRef).onDestroy(() => {\n document.removeEventListener('selectionchange', onSel);\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n });\n }\n\n protected icon(item: KptRichTool): KptIconName {\n return ICON[item];\n }\n protected aria(item: KptRichTool): string {\n return this.i18n.t(`richText.${item}`);\n }\n protected isActive(item: KptRichTool): boolean {\n if (item === 'html') return this.sourceView();\n const cmd = COMMAND[item];\n return !!cmd && this.activeCmds().has(cmd);\n }\n\n private inEditor(): boolean {\n const el = this.editor()?.nativeElement;\n const sel = window.getSelection();\n return !!el && !!sel && sel.rangeCount > 0 && el.contains(sel.anchorNode);\n }\n\n private refreshState(): void {\n if (this.disabled() || !this.inEditor()) return;\n const active = new Set<string>();\n for (const cmd of Object.values(COMMAND)) {\n if (cmd && cmd !== 'removeFormat') {\n try {\n if (document.queryCommandState(cmd)) active.add(cmd);\n } catch {\n /* nieobsługiwana komenda */\n }\n }\n }\n this.activeCmds.set(active);\n // Bieżący blok (dla selecta stylu).\n const sel = window.getSelection();\n let node = sel?.anchorNode as HTMLElement | null;\n while (node && node !== this.editor()?.nativeElement) {\n const tag = node.tagName?.toLowerCase();\n if (tag && /^(h[1-6]|p|blockquote)$/.test(tag)) {\n this.currentBlock.set(tag);\n return;\n }\n node = node.parentElement;\n }\n this.currentBlock.set('p');\n }\n\n protected onInput(): void {\n const el = this.editor()?.nativeElement;\n if (el) this.value.set(el.innerHTML);\n }\n protected onSource(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n }\n\n private focusEditor(): void {\n this.editor()?.nativeElement.focus();\n }\n private saveSelection(): void {\n const sel = window.getSelection();\n this.savedRange = sel && sel.rangeCount > 0 ? sel.getRangeAt(0).cloneRange() : null;\n }\n private restoreSelection(): void {\n const sel = window.getSelection();\n if (this.savedRange && sel) {\n sel.removeAllRanges();\n sel.addRange(this.savedRange);\n }\n }\n\n protected exec(item: KptRichTool): void {\n if (this.disabled()) return;\n if (item === 'html') {\n this.sourceView.update((v) => !v);\n return;\n }\n if (item === 'table') {\n this.saveSelection();\n this.tableOpen.set(true);\n return;\n }\n this.focusEditor();\n switch (item) {\n case 'link': {\n const url = window.prompt(this.i18n.t('richText.linkPrompt'));\n if (url) {\n const safe = this.sanitizeUrl(url);\n if (safe) document.execCommand('createLink', false, safe);\n }\n break;\n }\n case 'copy':\n document.execCommand('copy');\n break;\n case 'paste':\n void this.pasteRich();\n return;\n case 'pasteText':\n void this.pastePlain();\n return;\n default: {\n const cmd = COMMAND[item];\n if (cmd) document.execCommand(cmd);\n }\n }\n this.onInput();\n this.refreshState();\n }\n\n // ── Styl bloku (dropdown w stylu kpt-select, z podglądem wielkości) ──\n protected openStyle(): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.styleOpen.set(true);\n }\n protected closeStyle(): void {\n this.styleOpen.set(false);\n }\n protected pickStyle(tag: string): void {\n this.styleOpen.set(false);\n this.focusEditor();\n this.restoreSelection();\n document.execCommand('formatBlock', false, `<${tag}>`);\n this.onInput();\n this.refreshState();\n }\n\n // ── Kolory ──\n protected openColor(kind: 'foreColor' | 'backColor'): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.colorKind.set(kind);\n this.colorOpen.set(true);\n }\n protected closeColor(): void {\n this.colorOpen.set(false);\n }\n protected applyColor(color: string): void {\n this.colorOpen.set(false);\n if (this.colorKind() === 'cellBg') {\n for (const cell of this.activeCells()) cell.style.backgroundColor = color;\n this.onInput();\n return;\n }\n this.focusEditor();\n this.restoreSelection();\n if (this.colorKind() === 'foreColor') {\n document.execCommand('foreColor', false, color);\n } else if (!document.execCommand('hiliteColor', false, color)) {\n document.execCommand('backColor', false, color);\n }\n this.onInput();\n }\n protected onColorInput(event: Event): void {\n this.applyColor((event.target as HTMLInputElement).value);\n }\n\n // ── Schowek ──\n private async pasteRich(): Promise<void> {\n try {\n const items = await navigator.clipboard.read();\n for (const it of items) {\n if (it.types.includes('text/html')) {\n const blob = await it.getType('text/html');\n const html = this.sanitizeHtml(await blob.text());\n this.focusEditor();\n document.execCommand('insertHTML', false, html);\n this.onInput();\n return;\n }\n }\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n document.execCommand('insertText', false, text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n private async pastePlain(): Promise<void> {\n try {\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n document.execCommand('insertText', false, text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n\n /** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */\n protected onPaste(event: ClipboardEvent): void {\n if (this.disabled()) return;\n const html = event.clipboardData?.getData('text/html');\n const text = event.clipboardData?.getData('text/plain') ?? '';\n event.preventDefault();\n if (html) {\n document.execCommand('insertHTML', false, this.sanitizeHtml(html));\n } else {\n document.execCommand('insertText', false, text);\n }\n this.onInput();\n }\n\n // ── Tabele: wstawianie ──\n protected closeTable(): void {\n this.tableOpen.set(false);\n this.gridR.set(0);\n this.gridC.set(0);\n }\n protected gridHover(r: number, c: number): void {\n this.gridR.set(r);\n this.gridC.set(c);\n }\n protected insertTable(rows: number, cols: number): void {\n this.closeTable();\n this.focusEditor();\n this.restoreSelection();\n const w = (100 / cols).toFixed(4);\n const colgroup = `<colgroup>${Array.from({ length: cols }, () => `<col style=\"width:${w}%\">`).join('')}</colgroup>`;\n const row = `<tr>${Array.from({ length: cols }, () => '<td><br></td>').join('')}</tr>`;\n const body = `<tbody>${Array.from({ length: rows }, () => row).join('')}</tbody>`;\n const table = `<table class=\"kpt-rt-table\">${colgroup}${body}</table>`;\n document.execCommand('insertHTML', false, `${table}<p><br></p>`);\n this.onInput();\n }\n\n // ── Tabele: menu kontekstowe ──\n protected onContextMenu(event: MouseEvent): void {\n if (this.disabled()) return;\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!cell || !editor?.contains(cell)) return; // poza tabelą → natywne menu\n event.preventDefault();\n this.ctxCell = cell;\n this.canSplitCtx = (cell.colSpan || 1) > 1 || (cell.rowSpan || 1) > 1;\n this.menuPoint.set({ x: event.clientX, y: event.clientY });\n this.menuOpen.set(true);\n }\n protected closeMenu(): void {\n this.menuOpen.set(false);\n }\n\n private ctxTable(): HTMLTableElement | null {\n return this.ctxCell?.closest('table') ?? null;\n }\n private afterTableOp(): void {\n this.menuOpen.set(false);\n this.onInput();\n }\n\n protected insertColumn(dir: 'left' | 'right'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex + (dir === 'right' ? 1 : 0);\n for (const tr of Array.from(table.rows)) {\n const td = document.createElement('td');\n td.innerHTML = '<br>';\n tr.insertBefore(td, tr.cells[idx] ?? null);\n }\n const colgroup = table.querySelector('colgroup');\n if (colgroup) {\n const col = document.createElement('col');\n colgroup.insertBefore(col, colgroup.children[idx] ?? null);\n this.normalizeColWidths(table);\n }\n this.afterTableOp();\n }\n protected deleteColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n if ((table.rows[0]?.cells.length ?? 0) <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n for (const tr of Array.from(table.rows)) tr.cells[idx]?.remove();\n table.querySelector('colgroup')?.children[idx]?.remove();\n this.normalizeColWidths(table);\n this.afterTableOp();\n }\n protected insertRow(dir: 'above' | 'below'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const cols = tr.cells.length;\n const newRow = document.createElement('tr');\n newRow.innerHTML = Array.from({ length: cols }, () => '<td><br></td>').join('');\n tr.parentElement?.insertBefore(newRow, dir === 'below' ? tr.nextSibling : tr);\n this.afterTableOp();\n }\n protected deleteRow(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n if (table.rows.length <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n (cell.parentElement as HTMLTableRowElement).remove();\n this.afterTableOp();\n }\n /** Zamień komórki wiersza między `<td>` a `<th>` (wiersz nagłówka). */\n protected toggleHeaderRow(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const toHeader = tr.cells[0]?.tagName !== 'TH';\n for (const c of Array.from(tr.cells)) this.swapCellTag(c, toHeader ? 'th' : 'td');\n this.ctxCell = null; // komórki zostały podmienione\n this.afterTableOp();\n }\n /** Zamień komórki kolumny między `<td>` a `<th>` (kolumna nagłówka). */\n protected toggleHeaderColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n const toHeader = cell.tagName !== 'TH';\n for (const tr of Array.from(table.rows)) {\n const c = tr.cells[idx];\n if (c) this.swapCellTag(c, toHeader ? 'th' : 'td');\n }\n this.ctxCell = null;\n this.afterTableOp();\n }\n private swapCellTag(cell: HTMLTableCellElement, tag: 'td' | 'th'): void {\n if (cell.tagName.toLowerCase() === tag) return;\n const el = document.createElement(tag);\n for (const a of Array.from(cell.attributes)) el.setAttribute(a.name, a.value);\n el.append(...Array.from(cell.childNodes));\n cell.replaceWith(el);\n }\n protected deleteTable(): void {\n this.ctxTable()?.remove();\n this.afterTableOp();\n }\n protected alignCell(a: 'left' | 'center' | 'right'): void {\n for (const cell of this.activeCells()) cell.style.textAlign = a;\n this.afterTableOp();\n }\n /** Komórki objęte operacją: zaznaczenie (jeśli jest) lub bieżąca komórka menu. */\n private activeCells(): HTMLTableCellElement[] {\n if (this.selCells.size) return [...this.selCells];\n return this.ctxCell ? [this.ctxCell] : [];\n }\n protected openCellBg(): void {\n this.menuOpen.set(false);\n this.colorKind.set('cellBg');\n this.colorOpen.set(true);\n }\n\n // ── Obramowanie (tabela / komórka) ──\n protected openBorder(): void {\n this.menuOpen.set(false);\n this.borderOpen.set(true);\n }\n protected closeBorder(): void {\n this.borderOpen.set(false);\n }\n private borderCells(): HTMLTableCellElement[] {\n if (this.borderTarget() === 'cell') return this.activeCells();\n const table = this.ctxTable();\n return table ? (Array.from(table.querySelectorAll('td, th')) as HTMLTableCellElement[]) : [];\n }\n protected setBorderWidth(w: 'none' | 'thin' | 'medium' | 'thick'): void {\n const px: Record<string, string> = { thin: '1px', medium: '2px', thick: '3px' };\n for (const cell of this.borderCells()) {\n if (w === 'none') {\n cell.style.borderStyle = 'none';\n cell.style.borderWidth = '';\n } else {\n cell.style.borderStyle = 'solid';\n cell.style.borderWidth = px[w];\n }\n }\n this.onInput();\n }\n protected setBorderColor(color: string): void {\n for (const cell of this.borderCells()) {\n cell.style.borderColor = color;\n if (!cell.style.borderStyle || cell.style.borderStyle === 'none') cell.style.borderStyle = 'solid';\n if (!cell.style.borderWidth) cell.style.borderWidth = '1px';\n }\n this.onInput();\n }\n protected onBorderColorInput(event: Event): void {\n this.setBorderColor((event.target as HTMLInputElement).value);\n }\n private normalizeColWidths(table: HTMLTableElement): void {\n const cols = Array.from(table.querySelectorAll('col'));\n const w = (100 / cols.length).toFixed(4);\n for (const col of cols) (col as HTMLElement).style.width = `${w}%`;\n }\n\n // ── Tabele: resize kolumn + zaznaczanie komórek ──\n protected onEditorMouseDown(event: MouseEvent): void {\n if (this.disabled() || event.button !== 0) return; // tylko lewy przycisk\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n if (!cell) {\n this.clearSelection();\n return;\n }\n const rect = cell.getBoundingClientRect();\n if (event.clientX >= rect.right - 6) {\n // Strefa przy prawej krawędzi → resize kolumny.\n const table = cell.closest('table');\n const col = table?.querySelectorAll('col')[cell.cellIndex] as HTMLTableColElement | undefined;\n if (col) {\n event.preventDefault();\n this.resize = { col, startX: event.clientX, startW: col.getBoundingClientRect().width };\n return;\n }\n }\n // Start zaznaczania (potwierdzone dopiero przy ruchu).\n this.clearSelection();\n this.selAnchor = cell;\n this.selecting = false;\n }\n protected onEditorMouseMove(event: MouseEvent): void {\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!editor) return;\n const near = !!cell && event.clientX >= cell.getBoundingClientRect().right - 6;\n editor.classList.toggle('is-col-resize', near || !!this.resize);\n }\n private onResizeMove(event: MouseEvent): void {\n if (this.resize) {\n const w = Math.max(32, this.resize.startW + (event.clientX - this.resize.startX));\n this.resize.col.style.width = `${w}px`;\n return;\n }\n // Przeciąganie zaznaczenia komórek.\n if (!this.selAnchor || !(event.buttons & 1)) return;\n const target = event.target;\n if (!(target instanceof Element)) return;\n const focus = target.closest('td, th') as HTMLTableCellElement | null;\n if (!focus || focus.closest('table') !== this.selAnchor.closest('table')) return;\n if (focus === this.selAnchor && !this.selecting) return;\n this.selecting = true;\n event.preventDefault();\n window.getSelection()?.removeAllRanges();\n this.selectRegion(this.selAnchor, focus);\n }\n private onResizeEnd(): void {\n if (this.resize) {\n this.resize = null;\n this.onInput();\n }\n if (this.selAnchor && !this.selecting) this.clearSelection(); // zwykły klik\n this.selAnchor = null;\n this.selecting = false;\n }\n\n // ── Macierz siatki (uwzględnia colspan/rowspan) ──\n private buildGrid(table: HTMLTableElement): {\n grid: HTMLTableCellElement[][];\n pos: Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>;\n } {\n const grid: HTMLTableCellElement[][] = [];\n const pos = new Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>();\n const rows = Array.from(table.rows);\n rows.forEach((tr, r) => {\n grid[r] ??= [];\n let c = 0;\n for (const cell of Array.from(tr.cells)) {\n while (grid[r][c]) c++; // pomiń zajęte przez rowspan wyżej\n const colspan = cell.colSpan || 1;\n const rowspan = cell.rowSpan || 1;\n pos.set(cell, { r, c, rowspan, colspan });\n for (let dr = 0; dr < rowspan; dr++) {\n grid[r + dr] ??= [];\n for (let dc = 0; dc < colspan; dc++) grid[r + dr][c + dc] = cell;\n }\n c += colspan;\n }\n });\n return { grid, pos };\n }\n\n private selectRegion(anchor: HTMLTableCellElement, focus: HTMLTableCellElement): void {\n const table = anchor.closest('table') as HTMLTableElement | null;\n if (!table) return;\n const { grid, pos } = this.buildGrid(table);\n const a = pos.get(anchor);\n const f = pos.get(focus);\n if (!a || !f) return;\n let r0 = Math.min(a.r, f.r);\n let c0 = Math.min(a.c, f.c);\n let r1 = Math.max(a.r + a.rowspan - 1, f.r + f.rowspan - 1);\n let c1 = Math.max(a.c + a.colspan - 1, f.c + f.colspan - 1);\n // Rozszerz region, by w pełni objąć scalone komórki na brzegach.\n for (let changed = true; changed; ) {\n changed = false;\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const cell = grid[r]?.[c];\n if (!cell) continue;\n const p = pos.get(cell)!;\n if (p.r < r0) { r0 = p.r; changed = true; }\n if (p.c < c0) { c0 = p.c; changed = true; }\n if (p.r + p.rowspan - 1 > r1) { r1 = p.r + p.rowspan - 1; changed = true; }\n if (p.c + p.colspan - 1 > c1) { c1 = p.c + p.colspan - 1; changed = true; }\n }\n }\n }\n const set = new Set<HTMLTableCellElement>();\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const cell = grid[r]?.[c];\n if (cell) set.add(cell);\n }\n }\n this.clearSelection();\n for (const cell of set) cell.classList.add('kpt-rt-cell-sel');\n this.selCells = set;\n this.selCount.set(set.size);\n }\n\n private clearSelection(): void {\n for (const cell of this.selCells) cell.classList.remove('kpt-rt-cell-sel');\n this.selCells = new Set();\n this.selCount.set(0);\n }\n\n // ── Scalanie / dzielenie ──\n protected mergeCells(): void {\n if (this.selCells.size < 2) return;\n const cells = [...this.selCells];\n const table = cells[0].closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n let r0 = Infinity, c0 = Infinity, r1 = -1, c1 = -1;\n for (const cell of cells) {\n const p = pos.get(cell)!;\n r0 = Math.min(r0, p.r); c0 = Math.min(c0, p.c);\n r1 = Math.max(r1, p.r + p.rowspan - 1); c1 = Math.max(c1, p.c + p.colspan - 1);\n }\n const topLeft = cells.find((cell) => { const p = pos.get(cell)!; return p.r === r0 && p.c === c0; }) ?? cells[0];\n // Przenieś niepustą treść pozostałych komórek do górnej-lewej.\n for (const cell of cells) {\n if (cell === topLeft) continue;\n const html = cell.innerHTML.trim();\n if (html && html !== '<br>') topLeft.innerHTML += ` ${html}`;\n cell.remove();\n }\n const colspan = c1 - c0 + 1;\n const rowspan = r1 - r0 + 1;\n if (colspan > 1) topLeft.colSpan = colspan; else topLeft.removeAttribute('colspan');\n if (rowspan > 1) topLeft.rowSpan = rowspan; else topLeft.removeAttribute('rowspan');\n this.clearSelection();\n this.menuOpen.set(false);\n this.onInput();\n }\n protected splitCell(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const table = cell.closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n const p = pos.get(cell);\n if (!p || (p.colspan <= 1 && p.rowspan <= 1)) return;\n const tag = cell.tagName.toLowerCase();\n cell.removeAttribute('colspan');\n cell.removeAttribute('rowspan');\n // Uzupełnij brakujące pozycje siatki pustymi komórkami (dla każdego pokrytego wiersza).\n for (let dr = 0; dr < p.rowspan; dr++) {\n const startCol = dr === 0 ? p.c + 1 : p.c; // origin zostaje w pierwszym wierszu\n const count = dr === 0 ? p.colspan - 1 : p.colspan;\n if (count <= 0) continue;\n const row = table.rows[p.r + dr];\n const before = this.cellBeforeGridCol(row, p.c, table);\n for (let i = 0; i < count; i++) {\n const el = document.createElement(tag);\n el.innerHTML = '<br>';\n row.insertBefore(el, before);\n }\n }\n this.menuOpen.set(false);\n this.onInput();\n }\n /** Komórka w wierszu, przed którą wstawić (pierwsza o origin-col > gridCol), lub null (na koniec). */\n private cellBeforeGridCol(row: HTMLTableRowElement, gridCol: number, table: HTMLTableElement): HTMLTableCellElement | null {\n const { pos } = this.buildGrid(table);\n for (const cell of Array.from(row.cells)) {\n const p = pos.get(cell);\n if (p && p.c > gridCol) return cell;\n }\n return null;\n }\n protected canMerge(): boolean {\n return this.selCells.size >= 2;\n }\n protected canSplit(): boolean {\n return this.canSplitCtx;\n }\n\n /**\n * Waliduje URL z narzędzia „link\" (blocklista jest obchodzalna, np. `javascript:`).\n * Brak schematu → dopisz `https://` (spójne z zachowaniem `normalizeUrl` w mapie); `#`/`/`\n * przechodzą bez zmian; schemat spoza `SAFE_URL_SCHEME` → `null` (link nie zostaje wstawiony).\n */\n private sanitizeUrl(url: string): string | null {\n const trimmed = url.trim().replace(/[\\x00-\\x1f]/g, '');\n if (!trimmed) return null;\n if (trimmed.startsWith('#') || trimmed.startsWith('/')) return trimmed;\n if (!HAS_URL_SCHEME.test(trimmed)) return `https://${trimmed}`;\n return SAFE_URL_SCHEME.test(trimmed) ? trimmed : null;\n }\n\n private sanitizeHtml(html: string): string {\n const tpl = document.createElement('template');\n tpl.innerHTML = html;\n const walk = (root: ParentNode): void => {\n for (const el of Array.from(root.querySelectorAll('*'))) {\n if (!ALLOWED_TAGS.has(el.tagName)) {\n el.replaceWith(...Array.from(el.childNodes));\n continue;\n }\n for (const attr of Array.from(el.attributes)) {\n const name = attr.name.toLowerCase();\n if (name.startsWith('on')) {\n el.removeAttribute(attr.name);\n } else if (name === 'href' || name === 'src') {\n // Usuń znaki kontrolne przed testem schematu — przeglądarka i tak je ignoruje przy\n // parsowaniu URL-a (WHATWG URL spec), więc `jav\\tascript:` obchodziłby sam blocklisting.\n if (/^\\s*javascript:/i.test(attr.value.replace(/[\\x00-\\x1f]/g, ''))) el.removeAttribute(attr.name);\n } else if (name === 'style') {\n const kept = attr.value\n .split(';')\n .map((s) => s.trim())\n .filter((s) => ALLOWED_STYLES.has(s.split(':')[0]?.trim().toLowerCase()));\n if (kept.length) el.setAttribute('style', kept.join('; '));\n else el.removeAttribute('style');\n } else if (!ALLOWED_ATTRS.has(name) && name !== 'color') {\n el.removeAttribute(attr.name);\n }\n }\n }\n };\n walk(tpl.content);\n return tpl.innerHTML;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */\nexport type KptSliderValue = number | [number, number];\n\n/**\n * Suwak wartości (slider) na Signal Forms.\n * W trybie `range` udostępnia dwa uchwyty, a wartość jest parą `[min, max]`.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.volume, 0)`,\n * `max(path.volume, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n * Tryb `range` (wartość `[number, number]`) łączy się więc tylko z `[(value)]`.\n *\n * @example\n * <kpt-slider [formField]=\"f.volume\" [step]=\"5\" showValue />\n * <kpt-slider [(value)]=\"volume\" [min]=\"0\" [max]=\"100\" [step]=\"5\" showValue />\n * <kpt-slider range [(value)]=\"zakres\" [min]=\"0\" [max]=\"100\" showValue />\n */\n@Component({\n selector: 'kpt-slider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (range()) {\n <div class=\"kpt-slider__range\">\n <div class=\"kpt-slider__rail\"></div>\n <div class=\"kpt-slider__fill\" [style.left.%]=\"lowPct()\" [style.right.%]=\"100 - highPct()\"></div>\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--low\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"low()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Minimum'\"\n (input)=\"setLow(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--high\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"high()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Maksimum'\"\n (input)=\"setHigh(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n </div>\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ low() }}–{{ high() }}</span>\n }\n } @else {\n <input\n class=\"kpt-slider__input\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"single()\"\n [disabled]=\"disabled()\"\n [style.--_pct.%]=\"highPct()\"\n (input)=\"value.set(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ single() }}</span>\n }\n }\n `,\n styleUrl: './slider.component.scss',\n host: { class: 'kpt-slider-host' },\n})\nexport class KptSlider implements FormValueControl<KptSliderValue> {\n readonly value = model<KptSliderValue>(0);\n /** Tryb zakresu: dwa uchwyty; wartość jako para `[min, max]`. */\n readonly range = input(false, { transform: booleanAttribute });\n // Typ zgodny z FormValueControl<KptSliderValue> (FormField może zsync-ować walidatory min/max).\n // W praktyce zawsze liczby — do matematyki/szablonu używamy skalarnych `minN`/`maxN`.\n readonly min = input<KptSliderValue | undefined>(0);\n readonly max = input<KptSliderValue | undefined>(100);\n readonly step = input(1);\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n // Skalarne granice do szablonu i obliczeń (min/max są typowane szeroko dla FormValueControl).\n private toNum(v: KptSliderValue | undefined, fallback: number): number {\n return typeof v === 'number' ? v : fallback;\n }\n protected readonly minN = computed(() => this.toNum(this.min(), 0));\n protected readonly maxN = computed(() => this.toNum(this.max(), 100));\n\n /** Bieżąca para `[low, high]` — również dla trybu pojedynczego (low = min). */\n private readonly pair = computed<[number, number]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return [v[0], v[1]];\n return [this.minN(), v];\n });\n protected readonly single = computed(() => {\n const v = this.value();\n return Array.isArray(v) ? v[1] : v;\n });\n protected readonly low = computed(() => this.pair()[0]);\n protected readonly high = computed(() => this.pair()[1]);\n\n protected setLow(v: number): void {\n const [, hi] = this.pair();\n this.value.set([Math.min(v, hi), hi]);\n }\n protected setHigh(v: number): void {\n const [lo] = this.pair();\n this.value.set([lo, Math.max(v, lo)]);\n }\n\n private pct(val: number): number {\n const mn = this.minN();\n const mx = this.maxN();\n const range = mx - mn;\n return range <= 0 ? 0 : ((val - mn) / range) * 100;\n }\n protected readonly lowPct = computed(() => this.pct(this.low()));\n protected readonly highPct = computed(() => this.pct(this.high()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Ocena gwiazdkami (rating) na Signal Forms.\n *\n * @example\n * <kpt-rating [formField]=\"f.score\" [count]=\"5\" />\n * <kpt-rating [value]=\"4\" readonly />\n */\n@Component({\n selector: 'kpt-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-rating\" role=\"slider\" [attr.aria-valuenow]=\"value()\" [attr.aria-valuemax]=\"count()\">\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n class=\"kpt-rating__star\"\n [class.is-filled]=\"star <= (hover() || value())\"\n [disabled]=\"readonly() || disabled()\"\n (click)=\"pick(star)\"\n (mouseenter)=\"hover.set(star)\"\n (mouseleave)=\"hover.set(0)\"\n [attr.aria-label]=\"star + ' z ' + count()\"\n ><kpt-icon name=\"star\" /></button>\n }\n </div>\n `,\n styleUrl: './rating.component.scss',\n host: { class: 'kpt-rating-host' },\n})\nexport class KptRating implements FormValueControl<number> {\n readonly value = model<number>(0);\n /** Liczba gwiazdek. */\n readonly count = input(5);\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly hover = signal(0);\n protected readonly stars = computed(() => Array.from({ length: this.count() }, (_, i) => i + 1));\n\n protected pick(star: number): void {\n if (this.readonly() || this.disabled()) return;\n this.value.set(this.value() === star ? 0 : star);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Wgrywanie plików (drag-drop + wybór). Wartość = File[]. Signal Forms.\n *\n * @example\n * <kpt-file-upload [formField]=\"f.files\" accept=\"image/*\" multiple />\n */\n@Component({\n selector: 'kpt-file-upload',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-file-upload__zone\"\n [class.is-dragover]=\"dragover()\"\n [class.is-disabled]=\"disabled()\"\n (click)=\"fileInput.click()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"dragover.set(false)\"\n (drop)=\"onDrop($event)\"\n >\n <input #fileInput type=\"file\" hidden [accept]=\"accept()\" [multiple]=\"multiple()\" (change)=\"onSelect($event)\" />\n <kpt-icon name=\"upload\" class=\"kpt-file-upload__icon\" />\n <div class=\"kpt-file-upload__text\" [innerHTML]=\"i18n.t('fileUpload.hint')\"></div>\n @if (accept()) { <div class=\"kpt-file-upload__hint\">{{ accept() }}</div> }\n </div>\n\n @if (value().length) {\n <ul class=\"kpt-file-upload__list\">\n @for (file of value(); track file.name) {\n <li class=\"kpt-file-upload__file\">\n <kpt-icon name=\"photo\" />\n <span class=\"kpt-file-upload__name\">{{ file.name }}</span>\n <span class=\"kpt-file-upload__size\">{{ size(file) }}</span>\n <button type=\"button\" class=\"kpt-file-upload__remove\" (click)=\"remove(file, $event)\" [attr.aria-label]=\"i18n.t('fileUpload.remove')\"><kpt-icon name=\"trash\" /></button>\n </li>\n }\n </ul>\n }\n `,\n styleUrl: './file-upload.component.scss',\n host: { class: 'kpt-file-upload-host' },\n})\nexport class KptFileUpload implements FormValueControl<File[]> {\n readonly value = model<File[]>([]);\n readonly accept = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly dragover = signal(false);\n\n protected onSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.addFiles(input.files);\n input.value = '';\n }\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled()) this.dragover.set(true);\n }\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragover.set(false);\n if (!this.disabled()) this.addFiles(event.dataTransfer?.files);\n }\n private addFiles(list: FileList | null | undefined): void {\n if (!list?.length) return;\n const arr = Array.from(list);\n this.value.set(this.multiple() ? [...this.value(), ...arr] : arr.slice(0, 1));\n this.touch.emit();\n }\n protected remove(file: File, event: Event): void {\n event.stopPropagation();\n this.value.set(this.value().filter((f) => f !== file));\n }\n protected size(file: File): string {\n const kb = file.size / 1024;\n return kb < 1024 ? `${kb.toFixed(0)} KB` : `${(kb / 1024).toFixed(1)} MB`;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Wybór koloru (swatch + hex + presety) na Signal Forms. Wartość = hex, np. '#3b82f6'.\n *\n * @example\n * <kpt-color-picker [formField]=\"f.brand\" />\n */\n@Component({\n selector: 'kpt-color-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-color-picker\">\n <label class=\"kpt-color-picker__swatch\" [style.background-color]=\"value()\">\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n </label>\n <input\n type=\"text\"\n class=\"kpt-color-picker__hex\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n maxlength=\"7\"\n (input)=\"onHex($event)\"\n (blur)=\"touch.emit()\"\n />\n <div class=\"kpt-color-picker__presets\">\n @for (color of presets(); track color) {\n <button\n type=\"button\"\n class=\"kpt-color-picker__preset\"\n [class.is-active]=\"color === value()\"\n [style.background-color]=\"color\"\n [disabled]=\"disabled()\"\n (click)=\"value.set(color)\"\n [attr.aria-label]=\"color\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './color-picker.component.scss',\n host: { class: 'kpt-color-picker-host' },\n})\nexport class KptColorPicker implements FormValueControl<string> {\n readonly value = model<string>('#3b82f6');\n readonly presets = input<string[]>([\n '#ef4444', '#f59e0b', '#10b981', '#3b82f6', '#8b5cf6', '#ec4899', '#111827', '#ffffff',\n ]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected onHex(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n class=\"kpt-calendar\"\n [class.kpt-calendar--clock]=\"mode() === 'time'\"\n [class.kpt-calendar--range]=\"mode() !== 'time'\"\n [class.kpt-calendar--multi]=\"multi() && mode() !== 'time'\"\n (keydown.escape)=\"close()\"\n >\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__panels\">\n @for (panel of panels(); track panel.key; let first = $first, last = $last) {\n <div class=\"kpt-calendar__panel\">\n <!-- Strzałki tylko na skrajnych panelach; puste sloty trzymają tytuł na środku. -->\n <div class=\"kpt-calendar__header\">\n @if (first) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n <span class=\"kpt-calendar__title\">{{ panel.label }}</span>\n @if (last) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of panel.weeks; track $index) {\n @for (cell of week; track cell.iso) {\n @if (cell.blank) {\n <span class=\"kpt-calendar__day kpt-calendar__day--blank\"></span>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--range-start]=\"cell.rangeStart\"\n [class.kpt-calendar__day--range-end]=\"cell.rangeEnd\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptButton } from '../button/button.component';\nimport { KptClock } from '../datepicker/clock.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptDateRangeValue {\n start: string;\n end: string;\n}\n\n/** Granulacja zakresu: same daty, daty z godziną, same godziny. */\nexport type KptDateRangeMode = 'date' | 'datetime' | 'time';\n\ninterface DayCell {\n day: number;\n iso: string;\n inMonth: boolean;\n today: boolean;\n isStart: boolean;\n isEnd: boolean;\n inRange: boolean;\n /** Pasmo zakresu wychodzi z tej komórki w prawo / dochodzi z lewej — do zaokrągleń kapsuły. */\n rangeStart: boolean;\n rangeEnd: boolean;\n /** Pusty slot siatki: dni sąsiednich miesięcy przy wielu panelach (patrz `panels`). */\n blank: boolean;\n disabled: boolean;\n}\n\n/** Jeden miesiąc panelu kalendarza. */\ninterface MonthPanel {\n key: string;\n label: string;\n weeks: DayCell[][];\n}\n\nconst pad = (n: number): string => String(n).padStart(2, '0');\nconst toIso = (d: Date): string => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;\n\n/**\n * Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.\n * `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).\n * `visibleMonths` pokazuje kilka miesięcy obok siebie (typowo 2) — zakres podświetla się\n * ciągłym pasmem przez wszystkie panele.\n * Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-date-range [formField]=\"f.period\" />\n * <kpt-date-range [visibleMonths]=\"2\" [(value)]=\"period\" />\n * <kpt-date-range mode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"span\" />\n * <kpt-date-range mode=\"time\" [(value)]=\"hours\" />\n */\n@Component({\n selector: 'kpt-date-range',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: { class: 'kpt-date-range-host' },\n})\nexport class KptDateRange implements FormValueControl<KptDateRangeValue> {\n readonly value = model<KptDateRangeValue>({ start: '', end: '' });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Placeholder; bez wartości używa i18n (`dateRange.placeholder`). */\n readonly placeholder = input<string>();\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n readonly mode = input<KptDateRangeMode>('date');\n /** Liczba miesięcy obok siebie (1–3; domyślnie 1). Ignorowana w trybie 'time'. */\n readonly visibleMonths = input(1, { transform: numberAttribute });\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('dateRange.placeholder'));\n protected readonly open = signal(false);\n private readonly today = new Date();\n private readonly view = signal({ y: this.today.getFullYear(), m: this.today.getMonth() });\n\n // ── Bufory czasu (tryby datetime/time) ──\n protected readonly startTime = signal('');\n protected readonly endTime = signal('');\n protected readonly timeEnd = signal<'start' | 'end'>('start'); // który koniec edytuje tarcza\n // Daty zakresu (część kalendarzowa dla datetime — bez czasu)\n private readonly startDate = signal('');\n private readonly endDate = signal('');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly panelCount = computed(() => {\n const n = Math.trunc(this.visibleMonths());\n return Number.isFinite(n) ? Math.min(3, Math.max(1, n)) : 1;\n });\n protected readonly multi = computed(() => this.panelCount() > 1);\n\n private datePart(v: string): string {\n return v ? v.slice(0, 10) : '';\n }\n private timePart(v: string): string {\n const m = /[T ](\\d{2}:\\d{2})$/.exec(v);\n return m ? m[1] : '';\n }\n private fmtDate(iso: string): string {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso);\n if (!m) return '';\n return this.displayFormat() === 'iso' ? `${m[1]}-${m[2]}-${m[3]}` : `${m[3]}.${m[2]}.${m[1]}`;\n }\n private fmtTime(hhmm: string): string {\n const m = /^(\\d{2}):(\\d{2})$/.exec(hhmm);\n if (!m) return '';\n if (this.hourFormat() === 12) {\n const h = +m[1];\n const h12 = h % 12 === 0 ? 12 : h % 12;\n return `${h12}:${m[2]} ${h < 12 ? 'AM' : 'PM'}`;\n }\n return hhmm;\n }\n\n protected readonly display = computed(() => {\n const { start, end } = this.value();\n if (!start) return '';\n const mode = this.mode();\n if (mode === 'time') {\n return end ? `${this.fmtTime(start)} – ${this.fmtTime(end)}` : `${this.fmtTime(start)} – …`;\n }\n if (mode === 'datetime') {\n const one = (v: string): string => {\n const d = this.fmtDate(this.datePart(v));\n const t = this.fmtTime(this.timePart(v));\n return t ? `${d} ${t}` : d;\n };\n return end ? `${one(start)} – ${one(end)}` : `${one(start)} – …`;\n }\n return end ? `${this.fmtDate(start)} – ${this.fmtDate(end)}` : `${this.fmtDate(start)} – …`;\n });\n\n /**\n * Panele miesięcy. Przy kilku panelach dni sąsiednich miesięcy są wygaszane do pustych slotów:\n * inaczej ta sama data byłaby klikalna dwa razy (jako „wyszarzona\" w jednym panelu i właściwa\n * w drugim) i pasmo zakresu malowałoby się w obu miejscach.\n */\n protected readonly panels = computed<MonthPanel[]>(() => {\n const { y, m } = this.view();\n return Array.from({ length: this.panelCount() }, (_, i) => {\n const first = new Date(y, m + i, 1);\n const py = first.getFullYear();\n const pm = first.getMonth();\n return {\n key: `${py}-${pad(pm + 1)}`,\n label: `${this.months()[pm]} ${py}`,\n weeks: this.buildWeeks(py, pm),\n };\n });\n });\n\n private buildWeeks(y: number, m: number): DayCell[][] {\n const datetime = this.mode() === 'datetime';\n const start = datetime ? this.startDate() : this.value().start;\n const end = datetime ? this.endDate() : this.value().end;\n const hasBand = !!start && !!end && start < end;\n const hideOutside = this.multi();\n const todayIso = toIso(this.today);\n const first = new Date(y, m, 1);\n const startOffset = (first.getDay() + 6) % 7;\n const gridStart = new Date(y, m, 1 - startOffset);\n\n const weeks: DayCell[][] = [];\n for (let w = 0; w < 6; w++) {\n const row: DayCell[] = [];\n for (let d = 0; d < 7; d++) {\n const date = new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + w * 7 + d);\n const iso = toIso(date);\n const inMonth = date.getMonth() === m;\n row.push({\n day: date.getDate(),\n iso,\n inMonth,\n today: iso === todayIso,\n isStart: iso === start,\n isEnd: iso === end,\n inRange: hasBand && iso > start && iso < end,\n rangeStart: hasBand && iso === start,\n rangeEnd: hasBand && iso === end,\n blank: hideOutside && !inMonth,\n disabled: false,\n });\n }\n weeks.push(row);\n }\n return weeks;\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n if (!this.open()) {\n const { start, end } = this.value();\n const base = this.datePart(start) || toIso(this.today);\n const d = new Date(base);\n this.view.set({ y: d.getFullYear(), m: d.getMonth() });\n if (this.mode() === 'datetime') {\n this.startDate.set(this.datePart(start));\n this.endDate.set(this.datePart(end));\n this.startTime.set(this.timePart(start) || '00:00');\n this.endTime.set(this.timePart(end) || '00:00');\n } else if (this.mode() === 'time') {\n this.startTime.set(/^\\d{2}:\\d{2}$/.test(start) ? start : '00:00');\n this.endTime.set(/^\\d{2}:\\d{2}$/.test(end) ? end : '00:00');\n }\n this.timeEnd.set('start');\n }\n this.open.update((o) => !o);\n }\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected selectDay(cell: DayCell): void {\n if (cell.blank || cell.disabled) return;\n if (this.mode() === 'datetime') {\n const start = this.startDate();\n const end = this.endDate();\n if (!start || (start && end)) {\n this.startDate.set(cell.iso);\n this.endDate.set('');\n } else if (cell.iso < start) {\n this.endDate.set(start);\n this.startDate.set(cell.iso);\n } else {\n this.endDate.set(cell.iso);\n }\n return; // czas do wyboru → zamknięcie przez „Gotowe\"\n }\n const { start, end } = this.value();\n if (!start || (start && end)) {\n this.value.set({ start: cell.iso, end: '' });\n } else {\n if (cell.iso < start) this.value.set({ start: cell.iso, end: start });\n else this.value.set({ start, end: cell.iso });\n this.close();\n }\n }\n\n protected commit(): void {\n if (this.mode() === 'time') {\n const s = this.startTime() || '00:00';\n const e = this.endTime() || '00:00';\n // Normalizacja kolejności (start ≤ end).\n this.value.set(s <= e ? { start: s, end: e } : { start: e, end: s });\n } else if (this.mode() === 'datetime') {\n const sd = this.startDate();\n const ed = this.endDate() || sd;\n if (!sd) {\n this.close();\n return;\n }\n const start = `${sd}T${this.startTime() || '00:00'}`;\n const end = `${ed}T${this.endTime() || '00:00'}`;\n this.value.set(start <= end ? { start, end } : { start: end, end: start });\n }\n this.close();\n }\n\n protected prevMonth(): void {\n this.view.update(({ y, m }) => (m === 0 ? { y: y - 1, m: 11 } : { y, m: m - 1 }));\n }\n protected nextMonth(): void {\n this.view.update(({ y, m }) => (m === 11 ? { y: y + 1, m: 0 } : { y, m: m + 1 }));\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set({ start: '', end: '' });\n this.startDate.set('');\n this.endDate.set('');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Pole liczbowe ze strzałkami krokowania na Signal Forms. Wartość = number | null.\n * `showButtons=\"false\"` chowa strzałki — wariant do zakresów „od–do\", gdzie krokowanie\n * nie ma sensu, a pole ma wyglądać jak zwykłe `kpt-input` obok.\n *\n * Pod `[formField]` granic NIE bindujemy w szablonie — `[min]`/`[max]` obok `[formField]`\n * to błąd kompilacji. Deklaruje je schemat (`min(path.qty, 0)`, `max(path.qty, 99)`),\n * a dyrektywa `FormField` sama wstrzykuje je w wejścia `min`/`max`.\n *\n * @example\n * <kpt-input-number [formField]=\"f.qty\" [step]=\"1\" />\n * <kpt-input-number [(value)]=\"qty\" [min]=\"0\" [max]=\"99\" suffix=\" szt.\" />\n * <kpt-input-number [formField]=\"f.priceFrom\" [showButtons]=\"false\" suffix=\" zł\" />\n */\n@Component({\n selector: 'kpt-input-number',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-input-number\"\n [class.kpt-input-number--disabled]=\"disabled()\"\n [class.kpt-input-number--invalid]=\"showInvalid()\"\n [class.kpt-input-number--plain]=\"!showButtons()\"\n >\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canDec()\" (click)=\"step_(-1)\" [attr.aria-label]=\"i18n.t('inputNumber.decrement')\"><kpt-icon name=\"minus\" /></button>\n }\n <input\n class=\"kpt-input-number__input\"\n type=\"text\"\n inputmode=\"decimal\"\n [value]=\"display()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canInc()\" (click)=\"step_(1)\" [attr.aria-label]=\"i18n.t('inputNumber.increment')\"><kpt-icon name=\"plus\" /></button>\n }\n </div>\n `,\n styleUrl: './input-number.component.scss',\n host: { class: 'kpt-input-number-host' },\n})\nexport class KptInputNumber implements FormValueControl<number | null> {\n readonly value = model<number | null>(null);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly step = input(1);\n readonly placeholder = input('');\n readonly suffix = input('');\n /** Pokaż przyciski krokowania. `false` daje samo pole — wariant do zakresów „od–do\". */\n readonly showButtons = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (v === null || v === undefined || Number.isNaN(v)) return '';\n return `${v}${this.suffix()}`;\n });\n protected readonly canInc = computed(() => {\n const mx = this.max();\n return mx === undefined || (this.value() ?? -Infinity) < mx;\n });\n protected readonly canDec = computed(() => {\n const mn = this.min();\n return mn === undefined || (this.value() ?? Infinity) > mn;\n });\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replace(this.suffix(), '').replace(',', '.').trim();\n if (raw === '') {\n this.value.set(null);\n return;\n }\n const n = Number(raw);\n if (!Number.isNaN(n)) this.value.set(this.clamp(n));\n }\n\n protected step_(dir: 1 | -1): void {\n const base = this.value() ?? this.min() ?? 0;\n this.value.set(this.clamp(base + dir * this.step()));\n this.touch.emit();\n }\n\n private clamp(n: number): number {\n const mn = this.min();\n const mx = this.max();\n if (mn !== undefined && n < mn) return mn;\n if (mx !== undefined && n > mx) return mx;\n return n;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\ninterface Strength {\n score: 0 | 1 | 2 | 3 | 4;\n label: string;\n}\n\n/**\n * Pole hasła z przełącznikiem widoczności i opcjonalnym miernikiem siły. Signal Forms.\n *\n * @example\n * <kpt-password [formField]=\"f.password\" feedback />\n */\n@Component({\n selector: 'kpt-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-password\" [class.kpt-password--disabled]=\"disabled()\" [class.kpt-password--invalid]=\"showInvalid()\">\n <input\n class=\"kpt-password__input\"\n [type]=\"visible() ? 'text' : 'password'\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n autocomplete=\"current-password\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n <button type=\"button\" class=\"kpt-password__toggle\" [disabled]=\"disabled()\" (click)=\"visible.set(!visible())\" [attr.aria-label]=\"visible() ? i18n.t('password.hide') : i18n.t('password.show')\">\n <kpt-icon [name]=\"visible() ? 'eye-off' : 'eye'\" />\n </button>\n </div>\n @if (feedback() && value()) {\n <div class=\"kpt-password__meter\" [attr.data-score]=\"strength().score\">\n <div class=\"kpt-password__bars\">\n @for (i of [0,1,2,3]; track i) {\n <span class=\"kpt-password__bar\" [class.is-on]=\"i < strength().score\"></span>\n }\n </div>\n <span class=\"kpt-password__hint\">{{ strength().label }}</span>\n </div>\n }\n `,\n styleUrl: './password.component.scss',\n host: { class: 'kpt-password-host' },\n})\nexport class KptPassword implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly feedback = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n\n protected readonly strength = computed<Strength>(() => {\n const v = this.value();\n let s = 0;\n if (v.length >= 8) s++;\n if (/[A-Z]/.test(v) && /[a-z]/.test(v)) s++;\n if (/\\d/.test(v)) s++;\n if (/[^A-Za-z0-9]/.test(v)) s++;\n const score = Math.min(s, 4) as Strength['score'];\n return { score, label: this.i18n.messages().password.strength[score] };\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole kodu jednorazowego (OTP/PIN) — N osobnych pól, autofocus i wklejanie. Signal Forms.\n * Wartość = string (sklejone znaki).\n *\n * @example\n * <kpt-input-otp [formField]=\"f.code\" [length]=\"6\" integerOnly />\n */\n@Component({\n selector: 'kpt-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-input-otp\" [class.kpt-input-otp--invalid]=\"showInvalid()\">\n @for (i of slots(); track i) {\n <input\n class=\"kpt-input-otp__cell\"\n type=\"text\"\n [attr.inputmode]=\"integerOnly() ? 'numeric' : 'text'\"\n maxlength=\"1\"\n [value]=\"charAt(i)\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(i, $event)\"\n (keydown)=\"onKeydown(i, $event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"$any($event.target).select()\"\n />\n }\n </div>\n `,\n styleUrl: './input-otp.component.scss',\n host: { class: 'kpt-input-otp-host' },\n})\nexport class KptInputOtp implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly length = input(6);\n readonly integerOnly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly slots = computed(() => Array.from({ length: this.length() }, (_, i) => i));\n\n protected charAt(i: number): string {\n return this.value()[i] ?? '';\n }\n\n protected onInput(i: number, event: Event): void {\n const el = event.target as HTMLInputElement;\n let ch = el.value.slice(-1);\n if (this.integerOnly() && !/\\d/.test(ch)) ch = '';\n this.setChar(i, ch);\n el.value = this.charAt(i); // sync DOM z modelem — kasuje odrzucony/znormalizowany znak\n if (ch) this.focusSibling(el, 1);\n }\n\n protected onKeydown(i: number, event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && !this.charAt(i)) {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowLeft') {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowRight') {\n this.focusSibling(el, 1);\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n let text = event.clipboardData?.getData('text') ?? '';\n if (this.integerOnly()) text = text.replace(/\\D/g, '');\n this.value.set(text.slice(0, this.length()));\n this.touch.emit();\n }\n\n private setChar(i: number, ch: string): void {\n const arr = this.value().padEnd(this.length(), ' ').split('');\n arr[i] = ch || ' ';\n this.value.set(arr.join('').replace(/ +$/, ''));\n }\n\n private focusSibling(el: HTMLInputElement, dir: 1 | -1): void {\n const target = dir === 1 ? el.nextElementSibling : el.previousElementSibling;\n (target as HTMLInputElement | null)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptChip } from '../chip/chip.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Pole tagów — dodawanie Enter/przecinkiem, usuwanie Backspace/×. Signal Forms.\n * Wartość = string[].\n *\n * @example\n * <kpt-chips-input [formField]=\"f.tags\" placeholder=\"Dodaj tag…\" />\n */\n@Component({\n selector: 'kpt-chips-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChip],\n template: `\n <div class=\"kpt-chips-input\" [class.kpt-chips-input--disabled]=\"disabled()\" [class.kpt-chips-input--invalid]=\"showInvalid()\">\n @for (chip of value(); track $index) {\n <kpt-chip variant=\"primary\" [removable]=\"!disabled()\" (removed)=\"removeAt($index)\">{{ chip }}</kpt-chip>\n }\n <input\n class=\"kpt-chips-input__field\"\n type=\"text\"\n [placeholder]=\"value().length ? '' : effectivePlaceholder()\"\n [disabled]=\"disabled()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"commit($any($event.target)); touch.emit()\"\n />\n </div>\n `,\n styleUrl: './chips-input.component.scss',\n host: { class: 'kpt-chips-input-host' },\n})\nexport class KptChipsInput implements FormValueControl<string[]> {\n readonly value = model<string[]>([]);\n /** Placeholder; bez wartości używa i18n (`chipsInput.placeholder`). */\n readonly placeholder = input<string>();\n readonly allowDuplicates = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('chipsInput.placeholder'));\n\n protected onKeydown(event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault();\n this.commit(el);\n } else if (event.key === 'Backspace' && el.value === '' && this.value().length) {\n this.removeAt(this.value().length - 1);\n }\n }\n\n protected commit(el: HTMLInputElement): void {\n const text = el.value.trim();\n if (!text) return;\n if (this.allowDuplicates() || !this.value().includes(text)) {\n this.value.set([...this.value(), text]);\n }\n el.value = '';\n }\n\n protected removeAt(index: number): void {\n this.value.set(this.value().filter((_, i) => i !== index));\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TOKENS: Record<string, RegExp> = {\n '9': /\\d/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n\n/**\n * Pole z maską znakową na Signal Forms. Tokeny maski: `9`=cyfra, `a`=litera, `*`=alfanumeryczny.\n * Pozostałe znaki maski to literały (np. spacje, nawiasy, myślniki).\n *\n * @example\n * <kpt-input-mask [formField]=\"f.phone\" mask=\"(999) 999-99-99\" />\n */\n@Component({\n selector: 'kpt-input-mask',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <input\n class=\"kpt-input-mask__input\"\n type=\"text\"\n [class.kpt-input-mask--invalid]=\"showInvalid()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder() || mask()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n `,\n styleUrl: './input-mask.component.scss',\n host: { class: 'kpt-input-mask-host' },\n})\nexport class KptInputMask implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly mask = input('');\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected onInput(event: Event): void {\n const el = event.target as HTMLInputElement;\n const formatted = this.applyMask(el.value);\n this.value.set(formatted);\n el.value = formatted;\n }\n\n private applyMask(raw: string): string {\n const mask = this.mask();\n if (!mask) return raw;\n // Zbierz same znaczące znaki z wejścia (pomiń literały maski).\n const chars = raw.split('');\n let ci = 0;\n let out = '';\n for (let mi = 0; mi < mask.length && ci < chars.length; ) {\n const token = mask[mi];\n const rule = TOKENS[token];\n if (rule) {\n // szukaj kolejnego pasującego znaku z wejścia\n while (ci < chars.length && !rule.test(chars[ci])) ci++;\n if (ci >= chars.length) break;\n out += chars[ci];\n ci++;\n mi++;\n } else {\n out += token;\n mi++;\n }\n }\n return out;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (listbox) na Signal Forms. Pojedynczy lub wielokrotny wybór, opcjonalny filtr.\n * Wartość: `T` (single) lub `T[]` (multiple).\n *\n * @example\n * <kpt-listbox [formField]=\"f.role\" [options]=\"roles\" filter />\n * <kpt-listbox [(value)]=\"tags\" [options]=\"tagOptions\" multiple />\n */\n@Component({\n selector: 'kpt-listbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-listbox\" [class.kpt-listbox--invalid]=\"showInvalid()\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @if (filter()) {\n <div class=\"kpt-listbox__filter\">\n <kpt-icon name=\"search\" />\n <input type=\"text\" [attr.placeholder]=\"i18n.t('listbox.search')\" [value]=\"query()\" (input)=\"query.set($any($event.target).value)\" />\n </div>\n }\n <div class=\"kpt-listbox__items\">\n @for (opt of visible(); track opt.value) {\n <button\n type=\"button\"\n role=\"option\"\n class=\"kpt-listbox__item\"\n [class.is-selected]=\"isSelected(opt.value)\"\n [attr.aria-selected]=\"isSelected(opt.value)\"\n [disabled]=\"disabled() || opt.disabled\"\n (click)=\"toggle(opt.value)\"\n >\n <span>{{ opt.label }}</span>\n @if (isSelected(opt.value)) { <kpt-icon name=\"check\" /> }\n </button>\n } @empty {\n <div class=\"kpt-listbox__empty\">{{ i18n.t('listbox.empty') }}</div>\n }\n </div>\n </div>\n `,\n styleUrl: './listbox.component.scss',\n host: { class: 'kpt-listbox-host' },\n})\nexport class KptListbox<T = unknown> implements FormValueControl<T | T[] | null> {\n readonly value = model<T | T[] | null>(null);\n readonly options = input<KptOption<T>[]>([]);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly query = signal('');\n protected readonly visible = computed(() => {\n const q = this.query().trim().toLowerCase();\n return q ? this.options().filter((o) => o.label.toLowerCase().includes(q)) : this.options();\n });\n\n protected isSelected(v: T): boolean {\n const cur = this.value();\n return this.multiple() ? Array.isArray(cur) && cur.includes(v) : cur === v;\n }\n\n protected toggle(v: T): void {\n if (this.multiple()) {\n const cur = (Array.isArray(this.value()) ? this.value() : []) as T[];\n this.value.set(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);\n } else {\n this.value.set(this.value() === v ? null : v);\n }\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TAU = Math.PI * 2;\nconst GAP = Math.PI / 4; // przerwa u dołu (kąt „otwarcia\" łuku)\n\n/**\n * Pokrętło (knob) — wybór wartości po łuku, myszką lub strzałkami. Signal Forms.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.level, 0)`,\n * `max(path.level, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n *\n * @example\n * <kpt-knob [formField]=\"f.level\" [step]=\"1\" />\n * <kpt-knob [(value)]=\"level\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n */\n@Component({\n selector: 'kpt-knob',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n class=\"kpt-knob\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <svg [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <path class=\"kpt-knob__range\" [attr.d]=\"rangePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n <path class=\"kpt-knob__value\" [attr.d]=\"valuePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n @if (showValue()) {\n <text class=\"kpt-knob__text\" [attr.x]=\"size() / 2\" [attr.y]=\"size() / 2\" text-anchor=\"middle\" dominant-baseline=\"central\">{{ value() }}{{ suffix() }}</text>\n }\n </svg>\n </div>\n `,\n styleUrl: './knob.component.scss',\n host: { class: 'kpt-knob-host' },\n})\nexport class KptKnob implements FormValueControl<number> {\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly value = model<number>(0);\n readonly min = input<number | undefined>(0);\n readonly max = input<number | undefined>(100);\n readonly step = input(1);\n readonly size = input(96);\n readonly stroke = input(10);\n readonly suffix = input('');\n readonly showValue = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n private readonly startAngle = Math.PI / 2 + GAP;\n private readonly sweep = TAU - GAP * 2;\n\n protected readonly rangePath = computed(() => this.arc(0, 1));\n protected readonly valuePath = computed(() => this.arc(0, this.ratio()));\n\n private ratio(): number {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const range = mx - mn;\n return range <= 0 ? 0 : (this.value() - mn) / range;\n }\n\n private arc(from: number, to: number): string {\n const s = this.size();\n const r = (s - this.stroke()) / 2;\n const cx = s / 2;\n const cy = s / 2;\n const a0 = this.startAngle + this.sweep * from;\n const a1 = this.startAngle + this.sweep * Math.max(from, to);\n const x0 = cx + r * Math.cos(a0);\n const y0 = cy + r * Math.sin(a0);\n const x1 = cx + r * Math.cos(a1);\n const y1 = cy + r * Math.sin(a1);\n const large = a1 - a0 > Math.PI ? 1 : 0;\n if (Math.abs(a1 - a0) < 1e-4) return `M ${x0} ${y0}`;\n return `M ${x0} ${y0} A ${r} ${r} 0 ${large} 1 ${x1} ${y1}`;\n }\n\n protected onPointer(event: PointerEvent): void {\n if (this.disabled()) return;\n const update = (e: PointerEvent) => this.setFromPoint(e.clientX, e.clientY);\n update(event);\n const move = (e: PointerEvent) => update(e);\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n this.touch.emit();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n private setFromPoint(clientX: number, clientY: number): void {\n const rect = (this.host.nativeElement.querySelector('svg') as SVGElement).getBoundingClientRect();\n const cx = rect.left + rect.width / 2;\n const cy = rect.top + rect.height / 2;\n let a = Math.atan2(clientY - cy, clientX - cx) - this.startAngle;\n a = ((a % TAU) + TAU) % TAU;\n if (a > this.sweep + GAP) a = a > this.sweep + GAP / 2 ? 0 : this.sweep;\n const ratio = Math.min(1, Math.max(0, a / this.sweep));\n this.applyRatio(ratio);\n }\n\n private applyRatio(ratio: number): void {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const step = this.step();\n const raw = mn + ratio * (mx - mn);\n const snapped = Math.round(raw / step) * step;\n this.value.set(Math.min(mx, Math.max(mn, snapped)));\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n let next = this.value();\n if (event.key === 'ArrowUp' || event.key === 'ArrowRight') next += this.step();\n else if (event.key === 'ArrowDown' || event.key === 'ArrowLeft') next -= this.step();\n else if (event.key === 'Home') next = mn;\n else if (event.key === 'End') next = mx;\n else return;\n event.preventDefault();\n this.value.set(Math.min(mx, Math.max(mn, next)));\n this.touch.emit();\n }\n}\n","@if (header()) {\n <div class=\"kpt-card__header\">{{ header() }}</div>\n}\n<div class=\"kpt-card__body\" [class.kpt-card__body--flush]=\"flush()\">\n <ng-content />\n</div>\n<ng-content select=\"[kptCardFooter]\" />\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptCardVariant = 'elevated' | 'outlined';\n\n/**\n * Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).\n * Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem\n * `kptCardFooter`. Dla bogatych układów (media/profil) ustaw `flush` (body bez paddingu)\n * i użyj reużywalnych klas: `kpt-card__media`, `__lead`, `__title`, `__subtitle`,\n * `__section`, `__tags`, `__meta`, `__avatar`, `__actions`.\n *\n * @example\n * <kpt-card header=\"Ustawienia\">\n * <p>Treść karty…</p>\n * <div kptCardFooter><kpt-button>Zapisz</kpt-button></div>\n * </kpt-card>\n */\n@Component({\n selector: 'kpt-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n class: 'kpt-card',\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class KptCard {\n /** Wariant wizualny. */\n readonly variant = input<KptCardVariant>('elevated');\n /** Opcjonalny tekst nagłówka. */\n readonly header = input<string>('');\n /** Body bez wewnętrznego paddingu — dla układów zarządzających własnymi sekcjami. */\n readonly flush = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptDividerOrientation = 'horizontal' | 'vertical';\n\n/**\n * Separator Koncept UI (linia pozioma lub pionowa). Kolor z `--kpt-color-border`.\n *\n * @example\n * <kpt-divider />\n * <kpt-divider orientation=\"vertical\" />\n * <kpt-divider inset />\n */\n@Component({\n selector: 'kpt-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: '',\n styleUrl: './divider.component.scss',\n host: {\n class: 'kpt-divider',\n role: 'separator',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class.kpt-divider--inset]': 'inset()',\n },\n})\nexport class KptDivider {\n /** Orientacja linii. */\n readonly orientation = input<KptDividerOrientation>('horizontal');\n /** Wcięcie (odstęp od krawędzi kontenera). */\n readonly inset = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\r\n\r\n/**\r\n * Górny pasek (toolbar) — pozioma belka na treść aplikacji (logo, akcje).\r\n * Elementowi z atrybutem `kptToolbarSpacer` nadaj elastyczny odstęp, aby rozepchnąć zawartość.\r\n * Poniżej breakpointa `sm` pasek sam zbiega się do niższej wysokości i węższych marginesów.\r\n *\r\n * @example\r\n * <kpt-toolbar elevated>\r\n * <strong>Koncept UI</strong>\r\n * <span kptToolbarSpacer></span>\r\n * <kpt-button variant=\"text\">Wyloguj</kpt-button>\r\n * </kpt-toolbar>\r\n */\r\n@Component({\r\n selector: 'kpt-toolbar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '<ng-content />',\r\n styleUrl: './toolbar.component.scss',\r\n host: {\r\n class: 'kpt-toolbar',\r\n '[class.kpt-toolbar--elevated]': 'elevated()',\r\n '[attr.data-wrap]': \"wrap() ? '' : null\",\r\n },\r\n})\r\nexport class KptToolbar {\r\n /** Dodaje cień (wyniesienie) pod paskiem. */\r\n readonly elevated = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Pozwala zawartości paska zawinąć się do kolejnych wierszy, gdy zabraknie miejsca.\r\n * Opcjonalne, bo zawijanie zmienia zachowanie `kptToolbarSpacer` — w jednowierszowym\r\n * pasku rozpycha on treść, a w zawijanym potrafi zepchnąć resztę do nowego wiersza.\r\n */\r\n readonly wrap = input(false, { transform: booleanAttribute });\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie\n * `kptShellSidenav` komponentu `kpt-app-shell`.\n *\n * Treść domyślna ląduje w obszarze przewijanym. Element opatrzony atrybutem `kptSidenavFooter`\n * trafia do stopki stojącej **poza** tym obszarem, więc zostaje przyklejony do dołu panelu\n * niezależnie od długości nawigacji (blok użytkownika, wersja aplikacji, przełącznik motywu).\n *\n * @example\n * <kpt-sidenav kptShellSidenav>\n * <a href=\"#\">Pulpit</a>\n * <a href=\"#\">Ustawienia</a>\n * <div kptSidenavFooter>\n * <kpt-avatar name=\"Anna Kowalska\" size=\"sm\" />\n * </div>\n * </kpt-sidenav>\n */\n@Component({\n selector: 'kpt-sidenav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // Catch-all `<ng-content />` ma w projekcji najniższy priorytet, więc element z atrybutem\n // `kptSidenavFooter` trafia do stopki mimo tego, że slot domyślny stoi wyżej w szablonie.\n template: '<div class=\"kpt-sidenav__scroll\"><ng-content /></div><ng-content select=\"[kptSidenavFooter]\" />',\n styleUrl: './sidenav.component.scss',\n host: { class: 'kpt-sidenav' },\n})\nexport class KptSidenav {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptBreakpointObserver } from '../breakpoint/breakpoint.service';\nimport type { KptBreakpoint } from '../breakpoint/breakpoints.generated';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Zachowanie panelu bocznego:\n * - `auto` — zależne od szerokości okna (domyślne),\n * - `side` — zawsze zadokowany, rozpycha treść,\n * - `over` — zawsze nakładka nad treścią.\n */\nexport type KptSidenavMode = 'side' | 'over' | 'auto';\n\n/**\n * Szkielet aplikacji: pasek u góry, panel boczny i treść. Sloty projekcji:\n * `[kptShellToolbar]`, `[kptShellSidenav]` oraz treść domyślna.\n *\n * Domyślny tryb `auto` jest responsywny bez konfiguracji: od `sidenavBreakpoint` w górę\n * panel jest zadokowany, poniżej zachowuje się jak nakładka ze scrimem i startuje zamknięty.\n * Opcjonalny `sidenavRailBreakpoint` wstawia między te pasma szynę ikon.\n *\n * O układzie decyduje wyłącznie CSS — nic nie migocze przed hydracją i nic nie zależy od\n * `matchMedia`. JavaScript odpowiada tylko za to, KTÓRY stan przełącza przycisk.\n *\n * Panel ma dwa niezależne stany otwarcia (`sidenavOpen` dla układu zadokowanego,\n * `sidenavCompactOpen` dla nakładki), więc intencja z desktopu przeżywa zwężenie\n * i ponowne rozszerzenie okna.\n *\n * @example\n * <kpt-app-shell [(sidenavOpen)]=\"navOpen\">\n * <kpt-toolbar kptShellToolbar>\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * </kpt-toolbar>\n * <kpt-sidenav kptShellSidenav>…</kpt-sidenav>\n * <router-outlet />\n * </kpt-app-shell>\n */\n@Component({\n selector: 'kpt-app-shell',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './app-shell.component.html',\n styleUrl: './app-shell.component.scss',\n host: {\n class: 'kpt-app-shell',\n '[attr.data-sidenav-mode]': 'sidenavMode()',\n '[attr.data-sidenav-breakpoint]': 'sidenavBreakpoint()',\n '[attr.data-sidenav-rail]': 'sidenavRailBreakpoint()',\n '[class.kpt-app-shell--nav-open]': 'sidenavOpen()',\n '[class.kpt-app-shell--nav-compact-open]': 'sidenavCompactOpen()',\n '(document:keydown.escape)': 'onEscape()',\n },\n})\nexport class KptAppShell {\n private static nextId = 0;\n\n private readonly breakpoints = inject(KptBreakpointObserver);\n private readonly i18n = inject(KptI18n);\n\n /** Czy panel jest otwarty w układzie zadokowanym (oraz w wymuszonym trybie `over`). */\n readonly sidenavOpen = model(true);\n\n /**\n * Czy nakładka jest wysunięta w trybie `auto` poniżej `sidenavBreakpoint`.\n *\n * Celowo osobny od `sidenavOpen`: gdyby oba układy dzieliły jeden model, wejście na wąski\n * ekran musiałoby nadpisać stan konsumenta, a powrót na szeroki nie miałby czego przywrócić.\n */\n readonly sidenavCompactOpen = model(false);\n\n /** `auto` przełącza układ na breakpoincie; `side`/`over` wymuszają go niezależnie od szerokości. */\n readonly sidenavMode = input<KptSidenavMode>('auto');\n\n /** Od tego breakpointa w górę tryb `auto` dokuje panel; poniżej robi z niego nakładkę. */\n readonly sidenavBreakpoint = input<KptBreakpoint>('lg');\n\n /**\n * Włącza szynę ikon w paśmie od `sidenavBreakpoint` do tego breakpointa: zamknięty panel\n * nie chowa się wtedy całkowicie, tylko zwęża do `--kpt-sidenav-rail-width`. Powyżej tego\n * progu zamknięcie znów chowa panel w całości. Wartość musi być wyższa niż `sidenavBreakpoint`.\n * `null` (domyślnie) wyłącza szynę.\n */\n readonly sidenavRailBreakpoint = input<KptBreakpoint | null>(null);\n\n /** Etykieta dostępności panelu; puste = `appShell.navigation` ze słownika. */\n readonly sidenavLabel = input('');\n\n /** Identyfikator panelu dla `aria-controls` przycisku przełączającego. */\n readonly sidenavId = `kpt-app-shell-nav-${KptAppShell.nextId++}`;\n\n /** Czy panel zachowuje się TERAZ jak nakładka nad treścią. */\n readonly isOverlay = computed(() => {\n const mode = this.sidenavMode();\n if (mode === 'over') return true;\n if (mode === 'side') return false;\n return !this.breakpoints.up(this.sidenavBreakpoint())();\n });\n\n /** Efektywny stan otwarcia — ten, który obowiązuje w bieżącym układzie. */\n readonly isSidenavOpen = computed(() =>\n this.usesCompactState() ? this.sidenavCompactOpen() : this.sidenavOpen(),\n );\n\n protected readonly navLabel = computed(() => this.sidenavLabel() || this.i18n.t('appShell.navigation'));\n\n /** Scrim blokuje wskaźnik, ale nie klawiaturę — treść pod nakładką nie może łapać fokusu. */\n protected readonly contentInert = computed(() => this.isOverlay() && this.isSidenavOpen());\n\n constructor() {\n // Wyjście z nakładki chowa ją na wejściu: inaczej wróciłaby otwarta przy kolejnym\n // zwężeniu okna, mimo że użytkownik jej wtedy nie otwierał.\n effect(() => {\n if (!this.isOverlay()) this.sidenavCompactOpen.set(false);\n });\n }\n\n /** Przełącza panel — trafia w stan właściwy dla bieżącego układu. */\n toggleSidenav(): void {\n this.setSidenavOpen(!this.isSidenavOpen());\n }\n\n /** Otwiera panel w bieżącym układzie. */\n openSidenav(): void {\n this.setSidenavOpen(true);\n }\n\n /** Zamyka panel w bieżącym układzie. */\n closeSidenav(): void {\n this.setSidenavOpen(false);\n }\n\n protected onScrimClick(): void {\n // Scrim jest klikalny tylko wtedy, gdy CSS uczynił go widocznym — nie trzeba sprawdzać trybu.\n this.closeSidenav();\n }\n\n protected onEscape(): void {\n if (this.isOverlay() && this.isSidenavOpen()) this.closeSidenav();\n }\n\n private usesCompactState(): boolean {\n return this.sidenavMode() === 'auto' && this.isOverlay();\n }\n\n private setSidenavOpen(open: boolean): void {\n if (this.usesCompactState()) this.sidenavCompactOpen.set(open);\n else this.sidenavOpen.set(open);\n }\n}\n","<ng-content select=\"[kptShellToolbar]\" />\n\n<div class=\"kpt-app-shell__body\">\n <aside\n class=\"kpt-app-shell__sidenav\"\n role=\"navigation\"\n tabindex=\"-1\"\n [id]=\"sidenavId\"\n [attr.aria-label]=\"navLabel()\"\n >\n <ng-content select=\"[kptShellSidenav]\" />\n </aside>\n\n <!--\n Scrim jest zawsze w DOM, a jego widocznością steruje wyłącznie CSS. Dzięki temu nakładka\n wygląda poprawnie już na pierwszej klatce — także przed hydracją i przy wyłączonym JS.\n -->\n <div class=\"kpt-app-shell__scrim\" aria-hidden=\"true\" (click)=\"onScrimClick()\"></div>\n\n <main class=\"kpt-app-shell__content\" [attr.inert]=\"contentInert() ? '' : null\">\n <ng-content />\n </main>\n</div>\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptAppShell } from './app-shell.component';\n\n/**\n * Przycisk przełączający panel boczny `kpt-app-shell`. Umieść go w slocie\n * `[kptShellToolbar]` — dyrektywa sama odnajdzie shell w drzewie deklaracji.\n *\n * Trafia w stan właściwy dla bieżącego układu (zadokowany albo nakładka), więc jeden\n * przycisk obsługuje desktop i wąski ekran. Bez tej dyrektywy aplikacja musiałaby sama\n * wstrzyknąć `KptBreakpointObserver` i rozstrzygnąć, który z dwóch modeli przełączyć.\n *\n * Atrybuty ARIA nakłada wyłącznie na natywny `<button>`/`<a>`. Na komponencie opakowującym\n * (np. `kpt-icon-button`) trafiłyby na zewnętrzny element bez roli, co jest naruszeniem\n * `aria-allowed-attr` — tam etykietę podaj samemu komponentowi.\n *\n * @example\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * <kpt-icon-button kptShellNavToggle ariaLabel=\"Menu\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n */\n@Directive({\n selector: '[kptShellNavToggle]',\n host: {\n '(click)': 'shell.toggleSidenav()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class KptShellNavToggle {\n /** Własna etykieta przycisku; puste = `appShell.toggleNavigation` ze słownika. */\n readonly label = input('', { alias: 'kptShellNavToggle' });\n\n protected readonly shell = inject(KptAppShell);\n\n private readonly i18n = inject(KptI18n);\n private readonly isNativeControl = /^(?:BUTTON|A)$/.test(\n (inject(ElementRef).nativeElement as HTMLElement).tagName,\n );\n\n protected readonly ariaExpanded = computed(() =>\n this.isNativeControl ? String(this.shell.isSidenavOpen()) : null,\n );\n\n protected readonly ariaControls = computed(() => (this.isNativeControl ? this.shell.sidenavId : null));\n\n protected readonly ariaLabel = computed(() =>\n this.isNativeControl ? this.label() || this.i18n.t('appShell.toggleNavigation') : null,\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.\n *\n * @example\n * <kpt-panel header=\"Ustawienia\" toggleable>Treść…</kpt-panel>\n */\n@Component({\n selector: 'kpt-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-panel\">\n <div class=\"kpt-panel__header\">\n <span class=\"kpt-panel__title\">{{ header() }}</span>\n <span class=\"kpt-panel__actions\"><ng-content select=\"[kptPanelActions]\" /></span>\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-panel__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\" [attr.aria-label]=\"i18n.t('panel.toggle')\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n </button>\n }\n </div>\n <div\n class=\"kpt-panel__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-panel__collapse-inner\">\n <div class=\"kpt-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './panel.component.scss',\n host: {\n 'class': 'kpt-panel-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptPanel {\n readonly header = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Grupa pól z legendą (fieldset), opcjonalnie zwijana.\n *\n * @example\n * <kpt-fieldset legend=\"Dane osobowe\" toggleable>…</kpt-fieldset>\n */\n@Component({\n selector: 'kpt-fieldset',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <fieldset class=\"kpt-fieldset\">\n <legend class=\"kpt-fieldset__legend\">\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-fieldset__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n <span>{{ legend() }}</span>\n </button>\n } @else {\n <span>{{ legend() }}</span>\n }\n </legend>\n <div\n class=\"kpt-fieldset__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-fieldset__collapse-inner\">\n <div class=\"kpt-fieldset__body\"><ng-content /></div>\n </div>\n </div>\n </fieldset>\n `,\n styleUrl: './fieldset.component.scss',\n host: {\n 'class': 'kpt-fieldset-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptFieldset {\n readonly legend = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, inject, input, model } from '@angular/core';\n\nexport type KptSplitterOrientation = 'horizontal' | 'vertical';\n\n/**\n * Splitter — dwa panele z przeciąganym uchwytem. Panele przez sloty `[kptSplitStart]` i `[kptSplitEnd]`.\n * `horizontal` = panele obok siebie, `vertical` = jeden pod drugim.\n *\n * @example\n * <kpt-splitter orientation=\"horizontal\" [(startSize)]=\"size\">\n * <div kptSplitStart>Lewy</div>\n * <div kptSplitEnd>Prawy</div>\n * </kpt-splitter>\n */\n@Component({\n selector: 'kpt-splitter',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-splitter\" [attr.data-orientation]=\"orientation()\">\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"startSize()\"><ng-content select=\"[kptSplitStart]\" /></div>\n <div\n class=\"kpt-splitter__gutter\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-valuenow]=\"startSize()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"endSize()\"><ng-content select=\"[kptSplitEnd]\" /></div>\n </div>\n `,\n styleUrl: './splitter.component.scss',\n host: { class: 'kpt-splitter-host' },\n})\nexport class KptSplitter {\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly orientation = input<KptSplitterOrientation>('horizontal');\n /** Rozmiar pierwszego panelu w procentach (0–100). */\n readonly startSize = model(50);\n readonly minSize = input(10);\n\n protected readonly endSize = computed(() => 100 - this.startSize());\n\n protected onPointer(event: PointerEvent): void {\n event.preventDefault();\n const container = this.host.nativeElement.querySelector('.kpt-splitter') as HTMLElement;\n const move = (e: PointerEvent) => {\n const rect = container.getBoundingClientRect();\n const pct =\n this.orientation() === 'horizontal'\n ? ((e.clientX - rect.left) / rect.width) * 100\n : ((e.clientY - rect.top) / rect.height) * 100;\n this.setSize(pct);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const dir = event.key === 'ArrowLeft' || event.key === 'ArrowUp' ? -2 : event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 2 : 0;\n if (!dir) return;\n event.preventDefault();\n this.setSize(this.startSize() + dir);\n }\n\n private setSize(pct: number): void {\n const min = this.minSize();\n this.startSize.set(Math.min(100 - min, Math.max(min, Math.round(pct))));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, afterNextRender, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Przycisk „do góry\" — pojawia się po przewinięciu ponad `threshold` px.\n * Domyślnie działa na oknie; `target` przyjmuje selektor przewijanego elementu.\n *\n * @example\n * <kpt-scroll-top [threshold]=\"300\" />\n */\n@Component({\n selector: 'kpt-scroll-top',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <button\n type=\"button\"\n class=\"kpt-scroll-top\"\n [class.is-visible]=\"visible()\"\n (click)=\"scrollUp()\"\n [attr.aria-label]=\"i18n.t('scrollTop.label')\"\n [attr.tabindex]=\"visible() ? 0 : -1\"\n ><kpt-icon name=\"arrow-up\" /></button>\n `,\n styleUrl: './scroll-top.component.scss',\n host: { class: 'kpt-scroll-top-host' },\n})\nexport class KptScrollTop {\n readonly threshold = input(300);\n readonly target = input<string | null>(null);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n private scroller: HTMLElement | Window = window;\n\n constructor() {\n afterNextRender(() => {\n const sel = this.target();\n this.scroller = sel ? document.querySelector<HTMLElement>(sel) ?? window : window;\n const onScroll = () => this.visible.set(this.currentTop() > this.threshold());\n this.scroller.addEventListener('scroll', onScroll, { passive: true });\n onScroll();\n });\n }\n\n private currentTop(): number {\n return this.scroller === window ? window.scrollY : (this.scroller as HTMLElement).scrollTop;\n }\n\n protected scrollUp(): void {\n if (this.scroller === window) window.scrollTo({ top: 0, behavior: 'smooth' });\n else (this.scroller as HTMLElement).scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Obraz z opcjonalnym podglądem pełnoekranowym (zoom).\n *\n * @example\n * <kpt-image src=\"/foto.jpg\" alt=\"Zdjęcie\" preview width=\"240px\" />\n */\n@Component({\n selector: 'kpt-image',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-image\" [class.kpt-image--preview]=\"preview()\" [style.width]=\"width()\" (click)=\"openPreview()\">\n <img class=\"kpt-image__img\" [src]=\"src()\" [alt]=\"alt()\" />\n @if (preview()) {\n <div class=\"kpt-image__mask\" aria-hidden=\"true\"><kpt-icon name=\"zoom-in\" /></div>\n }\n </div>\n\n @if (open()) {\n <div class=\"kpt-image__overlay\" (click)=\"close()\">\n <button type=\"button\" class=\"kpt-image__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n <img class=\"kpt-image__full\" [src]=\"src()\" [alt]=\"alt()\" (click)=\"$event.stopPropagation()\" />\n </div>\n }\n `,\n styleUrl: './image.component.scss',\n host: { class: 'kpt-image-host' },\n})\nexport class KptImage {\n readonly src = input.required<string>();\n readonly alt = input('');\n readonly width = input<string | null>(null);\n readonly preview = input(false, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n\n protected openPreview(): void {\n if (this.preview()) this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport interface KptMeterItem {\n label: string;\n value: number;\n color?: string;\n}\n\n/**\n * Wielosegmentowy miernik (meter group) z opcjonalną legendą.\n *\n * @example\n * <kpt-meter-group [values]=\"[{label:'Użyte', value:70}, {label:'Wolne', value:30}]\" />\n */\n@Component({\n selector: 'kpt-meter-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-meter-group\">\n <div class=\"kpt-meter-group__track\" role=\"meter\" [attr.aria-valuenow]=\"sum()\" [attr.aria-valuemax]=\"max()\">\n @for (item of values(); track $index; let i = $index) {\n <span\n class=\"kpt-meter-group__segment\"\n [style.width.%]=\"percent(item)\"\n [style.background-color]=\"item.color || fallback(i)\"\n [attr.title]=\"item.label\"\n ></span>\n }\n </div>\n @if (showLegend()) {\n <ul class=\"kpt-meter-group__legend\">\n @for (item of values(); track $index; let i = $index) {\n <li class=\"kpt-meter-group__legend-item\">\n <span class=\"kpt-meter-group__dot\" [style.background-color]=\"item.color || fallback(i)\"></span>\n <span>{{ item.label }}</span>\n <span class=\"kpt-meter-group__val\">{{ round(percent(item)) }}%</span>\n </li>\n }\n </ul>\n }\n </div>\n `,\n styleUrl: './meter-group.component.scss',\n host: { class: 'kpt-meter-group-host' },\n})\nexport class KptMeterGroup {\n readonly values = input<KptMeterItem[]>([]);\n /** Suma odniesienia; domyślnie suma wartości (100%). */\n readonly max = input<number | undefined>(undefined);\n readonly showLegend = input(true, { transform: booleanAttribute });\n\n private readonly palette = ['var(--kpt-color-primary)', 'var(--kpt-color-info)', 'var(--kpt-color-success)', 'var(--kpt-color-warning)', 'var(--kpt-color-danger)'];\n\n protected readonly sum = computed(() => this.values().reduce((a, v) => a + v.value, 0));\n\n protected total(): number {\n return this.max() ?? (this.sum() || 1);\n }\n protected percent(item: KptMeterItem): number {\n return (item.value / this.total()) * 100;\n }\n protected fallback(i: number): string {\n return this.palette[i % this.palette.length];\n }\n protected round(n: number): number {\n return Math.round(n);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptAvatar, type KptAvatarSize } from '../avatar/avatar.component';\n\nexport interface KptAvatarItem {\n name?: string;\n src?: string;\n icon?: string;\n}\n\n/**\n * Grupa nakładających się awatarów z licznikiem „+N\". Buduje na `kpt-avatar`.\n *\n * @example\n * <kpt-avatar-group [avatars]=\"team\" [max]=\"4\" />\n */\n@Component({\n selector: 'kpt-avatar-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar],\n template: `\n <div class=\"kpt-avatar-group\" [attr.data-size]=\"size()\">\n @for (a of shown(); track $index) {\n <span class=\"kpt-avatar-group__item\">\n <kpt-avatar [name]=\"a.name || ''\" [src]=\"a.src || null\" [icon]=\"a.icon || null\" [size]=\"size()\" />\n </span>\n }\n @if (overflow() > 0) {\n <span class=\"kpt-avatar-group__item kpt-avatar-group__more\" [attr.data-size]=\"size()\">+{{ overflow() }}</span>\n }\n </div>\n `,\n styleUrl: './avatar-group.component.scss',\n host: { class: 'kpt-avatar-group-host' },\n})\nexport class KptAvatarGroup {\n readonly avatars = input<KptAvatarItem[]>([]);\n readonly max = input(4);\n readonly size = input<KptAvatarSize>('md');\n\n protected readonly shown = computed(() => this.avatars().slice(0, this.max()));\n protected readonly overflow = computed(() => Math.max(0, this.avatars().length - this.max()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Stan pusty (empty state) — ikona, tytuł, opis i opcjonalne akcje (projekcja).\n *\n * @example\n * <kpt-empty icon=\"search\" title=\"Brak wyników\" description=\"Zmień kryteria wyszukiwania.\">\n * <kpt-button>Wyczyść filtry</kpt-button>\n * </kpt-empty>\n */\n@Component({\n selector: 'kpt-empty',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-empty\">\n @if (icon()) { <div class=\"kpt-empty__icon\"><kpt-icon [name]=\"icon()!\" /></div> }\n @if (title()) { <p class=\"kpt-empty__title\">{{ title() }}</p> }\n @if (description()) { <p class=\"kpt-empty__desc\">{{ description() }}</p> }\n <div class=\"kpt-empty__actions\"><ng-content /></div>\n </div>\n `,\n styleUrl: './empty.component.scss',\n host: { class: 'kpt-empty-host' },\n})\nexport class KptEmpty {\n readonly icon = input<string | null>('info-circle');\n readonly title = input('');\n readonly description = input('');\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, input, viewChild } from '@angular/core';\n\n/**\n * Pojedyncza zakładka. Umieszczaj w `kpt-tabs`. Treść renderowana leniwie (gdy aktywna).\n *\n * @example\n * <kpt-tab label=\"Ogólne\">…treść…</kpt-tab>\n */\n@Component({\n selector: 'kpt-tab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptTab {\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { KptTab } from './tab.component';\n\n/**\n * Zakładki (tabs) — przełączanie widoków. Treść zakładek renderowana leniwie.\n *\n * @example\n * <kpt-tabs [(activeIndex)]=\"tab\">\n * <kpt-tab label=\"Ogólne\">…</kpt-tab>\n * <kpt-tab label=\"Zaawansowane\">…</kpt-tab>\n * </kpt-tabs>\n */\n@Component({\n selector: 'kpt-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet],\n template: `\n <div class=\"kpt-tabs__header\" role=\"tablist\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n #tabBtn\n type=\"button\"\n class=\"kpt-tabs__tab\"\n role=\"tab\"\n [class.is-active]=\"i === activeIndex()\"\n [disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"i === activeIndex()\"\n (click)=\"select(i)\"\n >{{ tab.label() }}</button>\n }\n <span class=\"kpt-tabs__ink\" [style.width.px]=\"inkW()\" [style.transform]=\"'translateX(' + inkX() + 'px)'\"></span>\n </div>\n <div class=\"kpt-tabs__body\" role=\"tabpanel\">\n @for (tab of activePanels(); track activeIndex()) {\n <div class=\"kpt-tabs__panel\"><ng-container [ngTemplateOutlet]=\"tab.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './tabs.component.scss',\n host: {\n 'class': 'kpt-tabs-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n '(window:resize)': 'measureInk()',\n },\n})\nexport class KptTabs {\n protected readonly tabs = contentChildren(KptTab);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n private readonly tabBtns = viewChildren<ElementRef<HTMLButtonElement>>('tabBtn');\n protected readonly inkX = signal(0);\n protected readonly inkW = signal(0);\n protected readonly direction = signal(1);\n\n protected readonly activeTab = computed(() => this.tabs()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const tab = this.activeTab();\n return tab ? [tab] : [];\n });\n\n constructor() {\n afterRenderEffect(() => this.measureInk());\n }\n\n protected measureInk(): void {\n const btn = this.tabBtns()[this.activeIndex()]?.nativeElement;\n if (!btn) return;\n this.inkX.set(btn.offsetLeft);\n this.inkW.set(btn.offsetWidth);\n }\n\n protected select(index: number): void {\n if (this.tabs()[index]?.disabled()) return;\n this.direction.set(index >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptAccordion } from './accordion.component';\n\n/**\n * Panel akordeonu. Umieszczaj w `kpt-accordion`. Stan `expanded` jest dwukierunkowy.\n */\n@Component({\n selector: 'kpt-accordion-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-accordion-panel\" [class.is-open]=\"expanded()\">\n <button\n type=\"button\"\n class=\"kpt-accordion-panel__header\"\n [attr.aria-expanded]=\"expanded()\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n >\n <span class=\"kpt-accordion-panel__title\">{{ title() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-accordion-panel__chevron\" [class.is-open]=\"expanded()\" />\n </button>\n <div\n class=\"kpt-accordion-panel__collapse\"\n [class.is-open]=\"expanded()\"\n [attr.inert]=\"expanded() ? null : ''\"\n [attr.aria-hidden]=\"!expanded()\"\n >\n <div class=\"kpt-accordion-panel__collapse-inner\">\n <div class=\"kpt-accordion-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './accordion-panel.component.scss',\n host: {\n 'class': 'kpt-accordion-panel-host',\n '[style.--kpt-anim-duration]': 'animMs()',\n },\n})\nexport class KptAccordionPanel {\n readonly title = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly expanded = model(false);\n\n private readonly accordion = inject(KptAccordion, { optional: true });\n\n protected readonly animMs = computed(() => {\n const on = this.accordion?.animated() ?? true;\n const d = this.accordion?.animationDuration() ?? 500;\n return (on ? d : 0) + 'ms';\n });\n\n protected toggle(): void {\n if (this.disabled()) return;\n const willOpen = !this.expanded();\n this.expanded.set(willOpen);\n if (willOpen) this.accordion?.onOpen(this);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, contentChildren, input } from '@angular/core';\nimport { KptAccordionPanel } from './accordion-panel.component';\n\n/**\n * Akordeon — grupa rozwijanych paneli. `multi` pozwala otworzyć wiele naraz.\n *\n * @example\n * <kpt-accordion>\n * <kpt-accordion-panel title=\"Sekcja 1\">…</kpt-accordion-panel>\n * <kpt-accordion-panel title=\"Sekcja 2\">…</kpt-accordion-panel>\n * </kpt-accordion>\n */\n@Component({\n selector: 'kpt-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-content />`,\n styleUrl: './accordion.component.scss',\n host: { class: 'kpt-accordion-host' },\n})\nexport class KptAccordion {\n readonly multi = input(false, { transform: booleanAttribute });\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n private readonly panels = contentChildren(KptAccordionPanel);\n\n /** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */\n onOpen(opened: KptAccordionPanel): void {\n if (this.multi()) return;\n for (const panel of this.panels()) {\n if (panel !== opened) panel.expanded.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptBreadcrumbItem {\n label: string;\n url?: string;\n}\n\n/**\n * Ścieżka nawigacji (breadcrumbs).\n *\n * @example\n * <kpt-breadcrumb [items]=\"[{label:'Start',url:'/'},{label:'Ustawienia'}]\" />\n */\n@Component({\n selector: 'kpt-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <nav class=\"kpt-breadcrumb\" [attr.aria-label]=\"i18n.t('breadcrumb.label')\">\n @for (item of items(); track $index; let last = $last) {\n @if (item.url && !last) {\n <a class=\"kpt-breadcrumb__link\" [href]=\"item.url\">{{ item.label }}</a>\n } @else {\n <span class=\"kpt-breadcrumb__current\" [attr.aria-current]=\"last ? 'page' : null\">{{ item.label }}</span>\n }\n @if (!last) {\n <kpt-icon name=\"chevron-right\" class=\"kpt-breadcrumb__sep\" />\n }\n }\n </nav>\n `,\n styleUrl: './breadcrumb.component.scss',\n host: { class: 'kpt-breadcrumb-host' },\n})\nexport class KptBreadcrumb {\n readonly items = input<KptBreadcrumbItem[]>([]);\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input, viewChild } from '@angular/core';\n\n/**\n * Krok w `kpt-stepper`. Treść renderowana leniwie (gdy krok aktywny).\n *\n * @example\n * <kpt-step label=\"Konto\">…</kpt-step>\n */\n@Component({\n selector: 'kpt-step',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptStep {\n readonly label = input.required<string>();\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptStep } from './step.component';\n\n/**\n * Kreator kroków (stepper). Nagłówek z numerowanymi krokami + aktywna treść.\n * Metody `next()`/`prev()`/`goTo()` do sterowania (np. z przycisków).\n *\n * @example\n * <kpt-stepper #s [(activeIndex)]=\"step\">\n * <kpt-step label=\"Konto\">…<kpt-button (click)=\"s.next()\">Dalej</kpt-button></kpt-step>\n * <kpt-step label=\"Profil\">…</kpt-step>\n * </kpt-stepper>\n */\n@Component({\n selector: 'kpt-stepper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ol class=\"kpt-stepper__header\">\n @for (step of steps(); track $index; let i = $index, last = $last) {\n <li class=\"kpt-stepper__step\" [class.is-active]=\"i === activeIndex()\" [class.is-done]=\"i < activeIndex()\">\n <button type=\"button\" class=\"kpt-stepper__marker\" (click)=\"goTo(i)\" [attr.aria-current]=\"i === activeIndex() ? 'step' : null\">\n @if (i < activeIndex()) { <kpt-icon name=\"check\" /> } @else { {{ i + 1 }} }\n </button>\n <span class=\"kpt-stepper__label\">{{ step.label() }}</span>\n @if (!last) { <span class=\"kpt-stepper__connector\"></span> }\n </li>\n }\n </ol>\n <div class=\"kpt-stepper__body\">\n @for (step of activePanels(); track activeIndex()) {\n <div class=\"kpt-stepper__panel\"><ng-container [ngTemplateOutlet]=\"step.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './stepper.component.scss',\n host: {\n 'class': 'kpt-stepper-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n },\n})\nexport class KptStepper {\n protected readonly steps = contentChildren(KptStep);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly direction = signal(1);\n protected readonly activeStep = computed(() => this.steps()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const step = this.activeStep();\n return step ? [step] : [];\n });\n\n goTo(index: number): void {\n const next = Math.max(0, Math.min(index, this.steps().length - 1));\n this.direction.set(next >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(next);\n }\n next(): void {\n this.direction.set(1);\n this.activeIndex.update((i) => Math.min(i + 1, this.steps().length - 1));\n }\n prev(): void {\n this.direction.set(-1);\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","<div class=\"kpt-paginator__size\">\n <label>\n {{ i18n.t('paginator.rowsPerPage') }}\n <select class=\"kpt-paginator__select\" [value]=\"pageSize()\" (change)=\"onSizeChange($event)\">\n @for (opt of pageSizeOptions(); track opt) {\n <option [value]=\"opt\" [selected]=\"opt === pageSize()\">{{ opt }}</option>\n }\n </select>\n </label>\n</div>\n\n<span class=\"kpt-paginator__range\">{{ rangeLabel() }}</span>\n\n<div class=\"kpt-paginator__nav\">\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canPrev()\" (click)=\"prev()\" [attr.aria-label]=\"i18n.t('paginator.prevPage')\"><kpt-icon name=\"chevron-left\" /></kpt-button>\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canNext()\" (click)=\"next()\" [attr.aria-label]=\"i18n.t('paginator.nextPage')\"><kpt-icon name=\"chevron-right\" /></kpt-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Paginator Koncept UI. Sterowany sygnałami; `pageIndex` i `pageSize` są dwukierunkowe.\n *\n * @example\n * <kpt-paginator [length]=\"total()\" [(pageIndex)]=\"page\" [(pageSize)]=\"size\" />\n */\n@Component({\n selector: 'kpt-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptButton, KptIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n host: { class: 'kpt-paginator' },\n})\nexport class KptPaginator {\n /** Łączna liczba elementów. */\n readonly length = input.required<number>();\n /** Rozmiar strony (dwukierunkowe). */\n readonly pageSize = model<number>(10);\n /** Indeks strony od 0 (dwukierunkowe). */\n readonly pageIndex = model<number>(0);\n /** Dostępne rozmiary strony. */\n readonly pageSizeOptions = input<number[]>([5, 10, 20, 50]);\n\n protected readonly i18n = inject(KptI18n);\n\n readonly totalPages = computed(() => Math.max(1, Math.ceil(this.length() / this.pageSize())));\n readonly rangeStart = computed(() => (this.length() === 0 ? 0 : this.pageIndex() * this.pageSize() + 1));\n readonly rangeEnd = computed(() => Math.min(this.length(), (this.pageIndex() + 1) * this.pageSize()));\n protected readonly rangeLabel = computed(() =>\n this.i18n.t('paginator.range', { start: this.rangeStart(), end: this.rangeEnd(), total: this.length() }),\n );\n readonly canPrev = computed(() => this.pageIndex() > 0);\n readonly canNext = computed(() => this.pageIndex() < this.totalPages() - 1);\n\n constructor() {\n // Utrzymuj poprawny indeks, gdy zmieni się długość lub rozmiar strony.\n effect(() => {\n const max = this.totalPages() - 1;\n if (this.pageIndex() > max) {\n this.pageIndex.set(max);\n }\n });\n }\n\n prev(): void {\n if (this.canPrev()) this.pageIndex.update((i) => i - 1);\n }\n next(): void {\n if (this.canNext()) this.pageIndex.update((i) => i + 1);\n }\n onSizeChange(event: Event): void {\n this.pageSize.set(+(event.target as HTMLSelectElement).value);\n this.pageIndex.set(0);\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon komórki dla kolumny `kpt-data-table`. Kontekst: `$implicit` = wiersz,\n * `value` = wartość pola.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCell]',\n})\nexport class KptCellDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon. */\n readonly kptCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon edytora komórki dla kolumny `kpt-data-table` (gdy wbudowane typy\n * `KptColumnEdit.type` nie wystarczają). Kontekst: `$implicit` = bieżąca wartość edycji,\n * `row` = wiersz, `commit(value)` = zatwierdź wartość i zamknij edytor, `cancel()` = odrzuć.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCellEdit=\"team\" let-value let-commit=\"commit\">\n * <my-custom-picker [value]=\"value\" (valueChange)=\"commit($event)\" />\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCellEdit]',\n})\nexport class KptCellEditDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon edytora. */\n readonly kptCellEdit = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","/*\n * Escapowanie komórek CSV dla `exportCsv()` — pure TS, wydzielone żeby dało się\n * testować `node --test` bez ciągnięcia Angulara.\n */\n\n// Znak startowy, który arkusz kalkulacyjny czyta jako początek formuły (CWE-1236).\nconst FORMULA_PREFIX = /^[=+\\-@\\t\\r]/;\n\nfunction stringifyCsvValue(value: unknown): string {\n switch (typeof value) {\n case 'undefined':\n return '';\n case 'string':\n return value;\n case 'number':\n case 'boolean':\n case 'bigint':\n return String(value);\n default:\n if (value === null) return '';\n if (value instanceof Date) return value.toISOString();\n return JSON.stringify(value);\n }\n}\n\n/** Escapuje pojedynczą wartość komórki/nagłówka do bezpiecznego pola CSV (separator `;`). */\nexport function escapeCsvCell(value: unknown): string {\n let text = stringifyCsvValue(value);\n // Wiodący `'` każe arkuszowi traktować komórkę jako tekst — sam znak nie jest wyświetlany.\n if (FORMULA_PREFIX.test(text)) text = `'${text}`;\n return /[\",\\n;]/.test(text) ? `\"${text.replaceAll('\"', '\"\"')}\"` : text;\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/**\n * Szablon rozwijanego wiersza (row detail) dla `kpt-data-table`. Renderowany pod\n * wierszem po rozwinięciu. Kontekst: `$implicit` = wiersz. Wymaga `expandable`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" expandable>\n * <ng-template kptRowDetail let-row>\n * <div class=\"szczegoly\">{{ row.opis }}</div>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptRowDetail]',\n})\nexport class KptRowDetailDef {\n readonly template = inject(TemplateRef);\n}\n","/*\n * Agregacje wiersza podsumowania (`<tfoot>`) — pure TS, wydzielone żeby dało się\n * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).\n */\n\n/** Wbudowana agregacja kolumny w wierszu podsumowania. */\nexport type KptSummaryFn = 'sum' | 'avg' | 'min' | 'max' | 'count';\n\nexport interface KptColumnSummary {\n /**\n * Agregacja wbudowana albo własna funkcja liczona na całym zbiorze wierszy\n * (po filtrach, ze wszystkich stron).\n */\n fn: KptSummaryFn | ((rows: readonly Record<string, unknown>[]) => unknown);\n /** Formatowanie wyniku (np. waluta). Bez niego wartość renderowana jest surowo. */\n format?: (value: unknown) => string;\n}\n\n/**\n * Sumowanie liczb zmiennoprzecinkowych daje ogony (`0.1 + 0.2` → `0.30000000000000004`),\n * które bez tego przycięcia wyciekłyby wprost do komórki podsumowania.\n */\nfunction trimFloat(value: number): number {\n return Math.round(value * 1e10) / 1e10;\n}\n\n/** Liczba z komórki: `number` bez zmian, string przez `parseFloat`, reszta → `NaN` (pomijana). */\nexport function toNumber(value: unknown): number {\n if (typeof value === 'number') return value;\n if (typeof value === 'string' && value.trim() !== '') return parseFloat(value);\n return NaN;\n}\n\n/**\n * Agreguje jedno pole po wierszach. `count` liczy wiersze; pozostałe funkcje pomijają\n * wartości nieliczbowe. Pusty zbiór liczb: `sum` → 0, `avg`/`min`/`max` → `null`\n * (komórka renderuje się wtedy pusta).\n */\nexport function aggregate(\n rows: readonly Record<string, unknown>[],\n field: string,\n fn: KptSummaryFn,\n): number | null {\n if (fn === 'count') return rows.length;\n const nums: number[] = [];\n for (const row of rows) {\n const num = toNumber(row[field]);\n if (!Number.isNaN(num)) nums.push(num);\n }\n switch (fn) {\n case 'sum':\n return trimFloat(nums.reduce((acc, n) => acc + n, 0));\n case 'avg':\n return nums.length === 0 ? null : trimFloat(nums.reduce((acc, n) => acc + n, 0) / nums.length);\n case 'min':\n return nums.length === 0 ? null : Math.min(...nums);\n case 'max':\n return nums.length === 0 ? null : Math.max(...nums);\n default:\n return null;\n }\n}\n","@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n @if (hasSummary() && !loading() && displayCount() > 0) {\n <tfoot>\n <tr class=\"kpt-data-table__summary\">\n @if (summaryLabelSpan() > 0) {\n <th\n class=\"kpt-data-table__summary-label\"\n [attr.colspan]=\"summaryLabelSpan()\"\n [class.kpt-data-table__cell--frozen]=\"hasFrozen()\"\n [style.left.px]=\"hasFrozen() ? 0 : null\"\n >\n {{ summaryLabelText() }}\n </th>\n }\n @for (col of visibleOrderedColumns(); track col.field; let i = $index) {\n @if (i >= summaryStartIndex()) {\n <td\n [attr.data-align]=\"col.align ?? 'end'\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n {{ summaryText(col.field) }}\n </td>\n }\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDateRange, type KptDateRangeValue } from '../date-range/date-range.component';\nimport { KptDatepicker } from '../datepicker/datepicker.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptInput } from '../input/input.component';\nimport { KptInputNumber } from '../input-number/input-number.component';\nimport { KptPaginator } from '../paginator/paginator.component';\nimport { KptSelect } from '../select/select.component';\nimport { KptSlider } from '../slider/slider.component';\nimport type { KptOption } from '../shared/types';\nimport { KptCellDef } from './cell.directive';\nimport { KptCellEditDef } from './cell-edit.directive';\nimport { escapeCsvCell } from './csv-export';\nimport { KptRowDetailDef } from './row-detail.directive';\nimport { aggregate, type KptColumnSummary, type KptSummaryFn } from './summary';\n\nexport type { KptColumnSummary, KptSummaryFn } from './summary';\n\n/** Rodzaj kontrolki filtra w nagłówku kolumny. */\nexport type KptColumnFilterType = 'text' | 'number' | 'select' | 'dateRange' | 'numberRange' | 'slider';\n\nexport interface KptColumnFilter {\n type: KptColumnFilterType;\n /** Opcje dla `type: 'select'`. */\n options?: KptOption<unknown>[];\n /** Wielokrotny wybór dla `type: 'select'`. */\n multiple?: boolean;\n /** Placeholder kontrolki. */\n placeholder?: string;\n /** Dolna granica dla `type: 'slider'` (domyślnie 0). */\n min?: number;\n /** Górna granica dla `type: 'slider'` (domyślnie 100). */\n max?: number;\n /** Krok dla `type: 'slider'` (domyślnie 1). */\n step?: number;\n}\n\n/** Rodzaj kontrolki edycji inline komórki. */\nexport type KptColumnEditType = 'text' | 'number' | 'date' | 'select' | 'multiselect';\n\nexport interface KptColumnEdit {\n type: KptColumnEditType;\n /** Opcje dla `type: 'select'` / `'multiselect'`. */\n options?: KptOption<unknown>[];\n placeholder?: string;\n /** Dla `type: 'number'`. */\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport interface KptColumn {\n /** Nazwa pola w wierszu. */\n field: string;\n /** Nagłówek kolumny. */\n header: string;\n /** Czy kolumna jest sortowalna. */\n sortable?: boolean;\n /** Wyrównanie zawartości. */\n align?: 'start' | 'center' | 'end';\n /** Szerokość kolumny (np. '10rem', '20%'). Wymagane dla kolumn zamrożonych. */\n width?: string;\n /** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */\n frozen?: boolean;\n /** Filtr kolumny w wierszu nagłówka (input/number/select/zakres dat). */\n filter?: KptColumnFilter;\n /** Włącza edycję inline (klik w komórkę zamienia wartość na kontrolkę tego typu). */\n edit?: KptColumnEdit;\n /** Włącza agregację tej kolumny w wierszu podsumowania (`<tfoot>`, nad paginatorem). */\n summary?: KptColumnSummary;\n}\n\n/** Zdarzenie po zatwierdzeniu edycji komórki. */\nexport interface KptCellEditEvent<T> {\n /** Wiersz sprzed zmiany. */\n row: T;\n field: string;\n /** Nowa wartość. */\n value: unknown;\n /** Wiersz po scaleniu ze zmienioną wartością — gotowe body PUT/PATCH. */\n updatedRow: T;\n}\n\nconst REM_PX = 16;\nconst CHECKBOX_FROZEN_W = 3; // rem\nconst EXPANDER_FROZEN_W = 2.5; // rem\n\n/** Edytory renderujące panel w CDK Overlay — otwierane od razu i zatwierdzane na zamknięciu panelu. */\nconst OVERLAY_EDITORS: readonly KptColumnEditType[] = ['date', 'select', 'multiselect'];\n\n/** Tablice (multiselect) porównujemy po zawartości, resztę po referencji. */\nfunction sameEditValue(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((v, i) => v === b[i]);\n }\n return false;\n}\n\ntype SortDir = 'asc' | 'desc' | null;\n\n/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */\nexport interface KptTableLazyState {\n pageIndex: number;\n pageSize: number;\n sortField: string | null;\n sortDir: SortDir;\n filter: string;\n /** Wartości filtrów per kolumna (pole → wartość kontrolki). */\n columnFilters: Record<string, unknown>;\n}\n\n/**\n * Flagowa tabela danych Koncept UI: kolumny konfiguracją, sortowanie,\n * filtr globalny, paginacja, zaznaczanie wierszy i własne szablony komórek (`kptCell`).\n * Sygnałowa, OnPush. Stylowanie tokenami `--kpt-table-*`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" filterable [pageSize]=\"10\"\n * selectable=\"multiple\" rowKey=\"id\" [(selection)]=\"picked\">\n * <ng-template kptCell=\"status\" let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Component({\n selector: 'kpt-data-table',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n KptButton,\n KptIcon,\n KptPaginator,\n KptSelect,\n KptDateRange,\n KptSlider,\n KptInput,\n KptInputNumber,\n KptDatepicker,\n ],\n templateUrl: './data-table.component.html',\n styleUrl: './data-table.component.scss',\n host: {\n 'class': 'kpt-data-table',\n '[style.--kpt-thead-offset]': \"theadOffset() + 'px'\",\n },\n})\nexport class KptDataTable<T = Record<string, unknown>> {\n // ── Wejścia ──\n readonly columns = input.required<readonly KptColumn[]>();\n readonly data = input<readonly T[]>([]);\n readonly filterable = input(false, { transform: booleanAttribute });\n /** Pozycja wiersza filtrów kolumn względem etykiet: nad ('top') lub pod ('bottom'). */\n readonly filterRowPosition = input<'top' | 'bottom'>('bottom');\n /** Rozmiar strony; 0 wyłącza paginację. */\n readonly pageSize = input(0);\n readonly pageSizeOptions = input<number[]>([5, 10, 20, 50]);\n readonly selectable = input<'none' | 'single' | 'multiple'>('none');\n readonly loading = input(false, { transform: booleanAttribute });\n /** Komunikat pustej tabeli; bez wartości używa i18n (`dataTable.empty`). */\n readonly emptyMessage = input<string>();\n /** Pole identyfikujące wiersz (dla zaznaczania). Bez niego — porównanie po referencji. */\n readonly rowKey = input<string | null>(null);\n /** Wysokość przewijalnego obszaru (np. '400px'); sticky header pozostaje widoczny. */\n readonly scrollHeight = input<string | null>(null);\n /** Wirtualizacja wierszy dla dużych zbiorów (renderuje tylko widoczne). Wymaga `scrollHeight`. */\n readonly virtualScroll = input(false, { transform: booleanAttribute });\n /** Wysokość wiersza w px (stała, wymagana przy virtualScroll). */\n readonly rowHeight = input(41);\n /** Umożliwia przestawianie kolumn metodą przeciągnij-i-upuść. */\n readonly reorderable = input(false, { transform: booleanAttribute });\n /** Pokazuje przycisk eksportu do CSV. */\n readonly exportable = input(false, { transform: booleanAttribute });\n /** Nazwa pliku eksportu CSV. */\n readonly exportFilename = input('export.csv');\n /** Tryb serwerowy: bez filtrowania/sortowania/paginacji po stronie klienta. */\n readonly lazy = input(false, { transform: booleanAttribute });\n /** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */\n readonly totalRecords = input<number | null>(null);\n /** Rozwijane wiersze: dodaje kolumnę z przełącznikiem i renderuje szablon `kptRowDetail`. */\n readonly expandable = input(false, { transform: booleanAttribute });\n /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */\n readonly multiExpand = input(true, { transform: booleanAttribute });\n /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */\n readonly summaryLabel = input<string>();\n /**\n * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,\n * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).\n */\n readonly summaryValues = input<Record<string, unknown> | null>(null);\n\n // ── Model / zdarzenia ──\n readonly selection = model<T[]>([]);\n /** Rozwinięte wiersze (dwukierunkowo). */\n readonly expandedRows = model<T[]>([]);\n /**\n * Pola (`KptColumn.field`) aktualnie ukrytych kolumn (dwukierunkowo). Sam komponent nie\n * dostarcza UI do zarządzania tym stanem — to hak do podpięcia zewnętrznego przełącznika\n * kolumn (patrz przykład „Dostosowywanie kolumn\" w playground).\n */\n readonly hiddenFields = model<readonly string[]>([]);\n readonly rowClick = output<T>();\n /** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */\n readonly lazyLoad = output<KptTableLazyState>();\n /** Emitowane po zatwierdzeniu edycji komórki (tylko gdy wartość faktycznie się zmieniła). */\n readonly cellEdit = output<KptCellEditEvent<T>>();\n\n protected readonly i18n = inject(KptI18n);\n /** Komunikat pustej tabeli (input albo domyślny z i18n). */\n protected readonly emptyText = computed(() => this.emptyMessage() ?? this.i18n.t('dataTable.empty'));\n\n /** Kolumny w bieżącej kolejności (po ewentualnym przestawieniu). */\n protected readonly orderedColumns = linkedSignal<readonly KptColumn[]>(() => this.columns());\n /** Kolumny w bieżącej kolejności, bez tych ukrytych przez `hiddenFields` — do renderowania i eksportu. */\n protected readonly visibleOrderedColumns = computed(() =>\n this.orderedColumns().filter((c) => !this.hiddenFields().includes(c.field)),\n );\n\n // ── Wirtualizacja (ręczne okno wierszy) ──\n private readonly scrollEl = viewChild<ElementRef<HTMLElement>>('scrollEl');\n protected readonly scrollTop = signal(0);\n protected readonly viewportHeight = signal(400);\n private readonly buffer = 6;\n\n // ── Sticky offset drugiego wiersza nagłówka (etykiety + filtry) ──\n private readonly theadEl = viewChild<ElementRef<HTMLTableSectionElement>>('theadEl');\n protected readonly theadOffset = signal(0);\n\n // ── Edycja inline komórek ──\n protected readonly editingCell = signal<{ row: T; field: string } | null>(null);\n protected readonly editingValue = signal<unknown>(null);\n /** Czy panel edytora overlayowego (date/select/multiselect) jest otwarty. */\n protected readonly editorPanelOpen = signal(false);\n private readonly editorHost = viewChild<ElementRef<HTMLElement>>('editorHost');\n\n constructor() {\n // Tryb lazy: przy każdej zmianie stanu poproś rodzica o dane.\n effect(() => {\n if (!this.lazy()) return;\n this.lazyLoad.emit({\n pageIndex: this.pageIndex(),\n pageSize: this.pageSizeState(),\n sortField: this.sortField(),\n sortDir: this.sortDir(),\n filter: this.filterText(),\n columnFilters: this.columnFilters(),\n });\n });\n\n // Zmierz wysokość viewportu dla wirtualizacji.\n afterNextRender(() => {\n const el = this.scrollEl()?.nativeElement;\n if (el) this.viewportHeight.set(el.clientHeight);\n });\n\n // Zmierz wysokość pierwszego wiersza nagłówka → offset sticky drugiego wiersza.\n afterRenderEffect(() => {\n this.filterRowPosition();\n this.hasColumnFilters();\n this.visibleOrderedColumns();\n const first = this.theadEl()?.nativeElement?.rows?.[0];\n if (first) this.theadOffset.set(first.offsetHeight);\n });\n\n // Wejście w edycję komórki → przenieś fokus na jej edytor.\n afterRenderEffect(() => {\n if (!this.editingCell()) return;\n this.editorHost()\n ?.nativeElement.querySelector<HTMLElement>('input, .kpt-select, [tabindex]')\n ?.focus();\n });\n }\n\n protected onScroll(event: Event): void {\n if (!this.virtualScroll()) return;\n const el = event.target as HTMLElement;\n this.scrollTop.set(el.scrollTop);\n this.viewportHeight.set(el.clientHeight);\n }\n\n protected readonly virtualStart = computed(() =>\n Math.max(0, Math.floor(this.scrollTop() / this.rowHeight()) - this.buffer),\n );\n protected readonly virtualEnd = computed(() => {\n const total = this.sorted().length;\n const count = Math.ceil(this.viewportHeight() / this.rowHeight()) + this.buffer * 2;\n return Math.min(total, this.virtualStart() + count);\n });\n protected readonly virtualRows = computed(() => this.sorted().slice(this.virtualStart(), this.virtualEnd()));\n protected readonly topPad = computed(() => this.virtualStart() * this.rowHeight());\n protected readonly bottomPad = computed(() => (this.sorted().length - this.virtualEnd()) * this.rowHeight());\n\n // ── Przestawianie kolumn (natywny HTML5 drag-and-drop; działa w trybie zoneless) ──\n /**\n * Pole przeciąganej kolumny (nie indeks — przy ukrytych kolumnach `$index` z pętli\n * `visibleOrderedColumns()` nie odpowiada pozycji w pełnej `orderedColumns()`).\n */\n protected readonly dragField = signal<string | null>(null);\n\n /** Kolumna przeciągalna tylko gdy `reorderable` i nie jest zamrożona (frozen musi zostać wiodąca). */\n protected isColDraggable(col: KptColumn): boolean {\n return this.reorderable() && !col.frozen;\n }\n /** Liczba wiodących widocznych kolumn zamrożonych — poza nie wolno upuszczać ani ich przesuwać. */\n private frozenLeadCount(): number {\n let n = 0;\n for (const col of this.visibleOrderedColumns()) {\n if (col.frozen) n++;\n else break;\n }\n return n;\n }\n\n protected onColDragStart(field: string, event: DragEvent): void {\n const col = this.orderedColumns().find((c) => c.field === field);\n if (col?.frozen) return; // frozen nieprzeciągalne\n this.dragField.set(field);\n event.dataTransfer?.setData('text/plain', field);\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n protected onColDragOver(field: string, event: DragEvent): void {\n // Zezwól na upuszczenie tylko poza obszarem kolumn zamrożonych.\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (this.dragField() !== null && visIndex >= this.frozenLeadCount()) event.preventDefault();\n }\n protected onColDrop(field: string, event: DragEvent): void {\n event.preventDefault();\n const from = this.dragField();\n if (from === null || from === field) return;\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (visIndex < this.frozenLeadCount()) return; // nie wsuwaj przed/pomiędzy kolumny zamrożone\n const cols = [...this.orderedColumns()];\n const fromIdx = cols.findIndex((c) => c.field === from);\n const toIdx = cols.findIndex((c) => c.field === field);\n if (fromIdx === -1 || toIdx === -1) return;\n const [moved] = cols.splice(fromIdx, 1);\n cols.splice(toIdx, 0, moved);\n this.orderedColumns.set(cols);\n this.dragField.set(null);\n }\n protected onColDragEnd(): void {\n this.dragField.set(null);\n }\n\n exportCsv(): void {\n const cols = this.visibleOrderedColumns();\n const rows = this.lazy() ? this.data() : this.sorted();\n const header = cols.map((c) => escapeCsvCell(c.header)).join(';');\n const body = rows\n .map((row) => cols.map((c) => escapeCsvCell((row as Record<string, unknown>)[c.field])).join(';'))\n .join('\\n');\n // BOM () — poprawne polskie znaki w Excelu.\n const csv = `${header}\\n${body}`;\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = this.exportFilename();\n link.click();\n URL.revokeObjectURL(url);\n }\n\n // ── Szablony komórek ──\n private readonly cellDefs = contentChildren(KptCellDef);\n private readonly cellMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) map.set(def.kptCell(), def.template);\n return map;\n });\n protected cellTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellMap().get(field) ?? null;\n }\n\n // ── Własne edytory komórek (furtka poza wbudowane typy `column.edit.type`) ──\n private readonly cellEditDefs = contentChildren(KptCellEditDef);\n private readonly cellEditMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellEditDefs()) map.set(def.kptCellEdit(), def.template);\n return map;\n });\n protected cellEditTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellEditMap().get(field) ?? null;\n }\n\n // ── Edycja inline komórek ──\n protected isEditable(col: KptColumn): boolean {\n return !!col.edit || !!this.cellEditTemplate(col.field);\n }\n protected isEditingCell(row: T, field: string): boolean {\n const e = this.editingCell();\n return !!e && e.field === field && this.sameRow(e.row, row);\n }\n protected startEdit(row: T, col: KptColumn, event: Event): void {\n event.stopPropagation();\n if (!this.isEditable(col) || this.isEditingCell(row, col.field)) return;\n this.editingCell.set({ row, field: col.field });\n this.editingValue.set(this.getValue(row, col.field));\n // Edytory na overlayu otwieramy od razu. To nie kosmetyka: backdrop CDK sprawia, że każdy klik\n // poza edytorem zamyka panel, a więc zatwierdza i zamyka edycję — bez tego edytor z zamkniętym\n // panelem potrafiłby zostać otwarty w nieskończoność.\n const type = col.edit?.type;\n this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.includes(type));\n }\n /**\n * Panel edytora zamknięty (wybór, klik poza, Esc) → zatwierdź. Celowo NIE wieszamy tego na\n * `touch`: ten leci też z blur triggera, czyli już przy naciśnięciu myszy na opcji w panelu —\n * edytor ginąłby, zanim kliknięcie zdąży wybrać wartość.\n */\n protected onEditorPanelToggle(open: boolean): void {\n this.editorPanelOpen.set(open);\n if (!open) this.commitEdit();\n }\n /**\n * Edytory bez overlaya (text/number, własne `kptCellEdit`) zatwierdza dopiero wyjście fokusu\n * **poza cały edytor**. Nie wystarczy `touch`/blur samej kontrolki: `kpt-input-number` ma\n * fokusowalne strzałki `+`/`-` obok pola (i dodatkowo emituje `touch` w `step_()`), więc każde\n * kliknięcie strzałki zamykałoby edycję, zanim zdąży zmienić wartość.\n */\n protected onEditorFocusOut(event: FocusEvent): void {\n if (this.editorPanelOpen()) return; // edytory overlayowe zatwierdza zamknięcie panelu\n const host = this.editorHost()?.nativeElement;\n const next = event.relatedTarget as Node | null;\n if (host && next && host.contains(next)) return; // fokus został w edytorze (np. strzałki +/-)\n this.commitEdit();\n }\n /** Zatwierdza bieżącą edycję — emituje `cellEdit` tylko gdy wartość faktycznie się zmieniła. */\n protected commitEdit(): void {\n const editing = this.editingCell();\n if (!editing) return;\n const { row, field } = editing;\n const value = this.editingValue();\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n if (sameEditValue(value, this.getValue(row, field))) return;\n const updatedRow = { ...(row as Record<string, unknown>), [field]: value } as T;\n this.cellEdit.emit({ row, field, value, updatedRow });\n }\n /** Dla własnych szablonów (`kptCellEdit`): ustaw wartość i od razu zatwierdź. */\n protected readonly commitEditValue = (value: unknown): void => {\n this.editingValue.set(value);\n this.commitEdit();\n };\n protected cancelEdit(): void {\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n }\n\n // ── Rozwijane wiersze ──\n private readonly rowDetailDef = contentChild(KptRowDetailDef);\n protected readonly rowDetailTpl = computed(() => this.rowDetailDef()?.template ?? null);\n /** Kolumna z przełącznikiem widoczna, gdy włączono `expandable` i podano szablon `kptRowDetail`. */\n protected readonly hasRowDetail = computed(() => this.expandable() && !!this.rowDetailDef());\n protected isExpanded(row: T): boolean {\n return this.expandedRows().some((r) => this.sameRow(r, row));\n }\n protected toggleExpand(row: T): void {\n if (this.isExpanded(row)) {\n this.expandedRows.set(this.expandedRows().filter((r) => !this.sameRow(r, row)));\n } else {\n this.expandedRows.set(this.multiExpand() ? [...this.expandedRows(), row] : [row]);\n }\n }\n\n // ── Stan ──\n protected readonly filterText = signal('');\n protected readonly columnFilters = signal<Record<string, unknown>>({});\n protected readonly sortField = signal<string | null>(null);\n protected readonly sortDir = signal<SortDir>(null);\n protected readonly pageIndex = signal(0);\n protected readonly pageSizeState = linkedSignal(() => this.pageSize() || 10);\n\n protected readonly hasColumnFilters = computed(() => this.columns().some((c) => c.filter));\n\n // ── Filtry kolumn ──\n protected setColumnFilter(field: string, value: unknown): void {\n this.columnFilters.update((cur) => ({ ...cur, [field]: value }));\n this.pageIndex.set(0);\n }\n /** Input liczbowy — pozostaw tylko cyfry i zsynchronizuj DOM z wartością. */\n protected onNumberFilter(field: string, event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, digits);\n }\n /** Bieżąca wartość filtra zakresu liczbowego (min/max) dla kolumny. */\n protected rangeVal(field: string): { min: string; max: string } {\n const v = this.columnFilters()[field] as { min?: string; max?: string } | undefined;\n return { min: v?.min ?? '', max: v?.max ?? '' };\n }\n /** Aktualizuj jedną granicę zakresu (min/max), pozostawiając tylko cyfry. */\n protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, { ...this.rangeVal(field), [bound]: digits });\n }\n /** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */\n protected sliderVal(col: KptColumn): [number, number] {\n const mn = col.filter?.min ?? 0;\n const mx = col.filter?.max ?? 100;\n const v = this.columnFilters()[col.field] as [number, number] | undefined;\n return v ?? [mn, mx];\n }\n\n private static toIso(value: unknown): string {\n if (value instanceof Date) {\n const p = (n: number) => String(n).padStart(2, '0');\n return `${value.getFullYear()}-${p(value.getMonth() + 1)}-${p(value.getDate())}`;\n }\n return String(value ?? '');\n }\n\n private matchesColumnFilters(row: T): boolean {\n const filters = this.columnFilters();\n return this.columns().every((col) => {\n const f = col.filter;\n if (!f) return true;\n const fv = filters[col.field];\n if (fv == null || fv === '' || (Array.isArray(fv) && fv.length === 0)) return true;\n const cell = (row as Record<string, unknown>)[col.field];\n switch (f.type) {\n case 'text':\n return String(cell ?? '').toLowerCase().includes(String(fv).toLowerCase());\n case 'number':\n return String(cell ?? '').includes(String(fv));\n case 'select': {\n const vals = Array.isArray(fv) ? fv : [fv];\n // Komórka-tablica (np. lista tagów/członków) → dopasuj, gdy zawiera dowolną z wybranych wartości.\n if (Array.isArray(cell)) return cell.some((c) => vals.includes(c));\n return vals.includes(cell);\n }\n case 'numberRange': {\n const { min, max } = (fv as { min?: string; max?: string }) ?? {};\n const hasMin = min != null && min !== '';\n const hasMax = max != null && max !== '';\n if (!hasMin && !hasMax) return true;\n const num = typeof cell === 'number' ? cell : parseFloat(String(cell ?? ''));\n if (Number.isNaN(num)) return false;\n if (hasMin && num < parseFloat(min!)) return false;\n if (hasMax && num > parseFloat(max!)) return false;\n return true;\n }\n case 'slider': {\n const [lo, hi] = fv as [number, number];\n const num = typeof cell === 'number' ? cell : parseFloat(String(cell ?? ''));\n if (Number.isNaN(num)) return false;\n return num >= lo && num <= hi;\n }\n case 'dateRange': {\n const { start, end } = (fv as KptDateRangeValue) ?? { start: '', end: '' };\n if (!start && !end) return true;\n const iso = KptDataTable.toIso(cell);\n if (start && iso < start) return false;\n if (end && iso > end) return false;\n return true;\n }\n default:\n return true;\n }\n });\n }\n\n // ── Potok przetwarzania danych ──\n private readonly filtered = computed(() => {\n const query = this.filterText().trim().toLowerCase();\n const cols = this.columns();\n let rows = this.data();\n if (query) {\n rows = rows.filter((row) =>\n cols.some((col) => String((row as Record<string, unknown>)[col.field] ?? '').toLowerCase().includes(query)),\n );\n }\n if (this.hasColumnFilters()) {\n rows = rows.filter((row) => this.matchesColumnFilters(row));\n }\n return rows;\n });\n\n private readonly sorted = computed(() => {\n const field = this.sortField();\n const dir = this.sortDir();\n const rows = this.filtered();\n if (!field || !dir) return rows;\n const sign = dir === 'asc' ? 1 : -1;\n return [...rows].sort((a, b) => {\n const av = (a as Record<string, unknown>)[field];\n const bv = (b as Record<string, unknown>)[field];\n if (av == null) return 1;\n if (bv == null) return -1;\n if (typeof av === 'number' && typeof bv === 'number') return (av - bv) * sign;\n return String(av).localeCompare(String(bv)) * sign;\n });\n });\n\n protected readonly filteredCount = computed(() =>\n this.lazy() ? (this.totalRecords() ?? this.data().length) : this.filtered().length,\n );\n\n protected readonly paged = computed(() => {\n if (this.lazy()) return this.data();\n const rows = this.sorted();\n if (this.pageSize() <= 0) return rows;\n const size = this.pageSizeState();\n const start = this.pageIndex() * size;\n return rows.slice(start, start + size);\n });\n\n /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */\n private readonly leadingCells = computed(\n () => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0),\n );\n protected readonly colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells());\n protected readonly displayCount = computed(() =>\n this.virtualScroll() ? this.sorted().length : this.paged().length,\n );\n\n // ── Wiersz podsumowania (tfoot) ──\n /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */\n protected readonly summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'));\n /**\n * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`\n * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic\n * sama — jedynym źródłem jest wtedy `summaryValues`.\n */\n private readonly summarySource = computed(() =>\n this.lazy() ? [] : (this.filtered() as readonly Record<string, unknown>[]),\n );\n /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */\n private readonly summaryFields = computed(() => {\n const cols = this.visibleOrderedColumns();\n const overrides = this.summaryValues() ?? {};\n return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);\n });\n protected readonly hasSummary = computed(() => this.summaryFields().length > 0);\n /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */\n protected readonly summaryStartIndex = computed(() => {\n const first = this.summaryFields()[0];\n return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);\n });\n /**\n * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.\n * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie\n * renderuje się wcale.\n */\n protected readonly summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex());\n /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */\n private readonly summaryTexts = computed(() => {\n const rows = this.summarySource();\n const overrides = this.summaryValues() ?? {};\n const map = new Map<string, string>();\n for (const col of this.visibleOrderedColumns()) {\n if (!col.summary && !(col.field in overrides)) continue;\n const raw =\n col.field in overrides\n ? overrides[col.field]\n : typeof col.summary!.fn === 'function'\n ? col.summary!.fn(rows)\n : aggregate(rows, col.field, col.summary!.fn as KptSummaryFn);\n const format = col.summary?.format;\n map.set(col.field, format ? format(raw) : raw == null ? '' : String(raw));\n }\n return map;\n });\n protected summaryText(field: string): string {\n return this.summaryTexts().get(field) ?? '';\n }\n\n // ── Kolumny zamrożone (sticky, wiodące) ──\n private parseWidthPx(width?: string): number {\n if (!width) return 8 * REM_PX;\n const n = parseFloat(width);\n if (Number.isNaN(n)) return 8 * REM_PX;\n return width.trim().endsWith('px') ? n : n * REM_PX;\n }\n /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */\n /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */\n private readonly leadingStickyWidth = computed(() => {\n let acc = 0;\n if (this.hasRowDetail()) acc += EXPANDER_FROZEN_W * REM_PX;\n if (this.selectable() !== 'none') acc += CHECKBOX_FROZEN_W * REM_PX;\n return acc;\n });\n private readonly frozenOffsets = computed(() => {\n const map = new Map<string, number>();\n let acc = this.leadingStickyWidth();\n for (const col of this.visibleOrderedColumns()) {\n if (!col.frozen) break; // tylko wiodące, sąsiadujące\n map.set(col.field, acc);\n acc += this.parseWidthPx(col.width);\n }\n return map;\n });\n protected readonly hasFrozen = computed(() => this.frozenOffsets().size > 0);\n /** Sticky-left kolumny rozwijania (px) — 0, gdy tabela ma kolumny zamrożone. */\n protected readonly expanderStickyLeft = computed(() => (this.hasFrozen() ? 0 : null));\n /** Sticky-left kolumny zaznaczania (px) — za kolumną rozwijania, jeśli obecna. */\n protected readonly checkboxStickyLeft = computed(() => {\n if (!this.hasFrozen()) return null;\n return this.hasRowDetail() ? EXPANDER_FROZEN_W * REM_PX : 0;\n });\n protected frozenLeft(field: string): number | null {\n return this.frozenOffsets().get(field) ?? null;\n }\n protected isFrozen(field: string): boolean {\n return this.frozenOffsets().has(field);\n }\n\n // ── Sortowanie ──\n protected toggleSort(col: KptColumn): void {\n if (!col.sortable) return;\n if (this.sortField() !== col.field) {\n this.sortField.set(col.field);\n this.sortDir.set('asc');\n return;\n }\n const dir = this.sortDir();\n if (dir === 'asc') this.sortDir.set('desc');\n else if (dir === 'desc') {\n this.sortField.set(null);\n this.sortDir.set(null);\n } else this.sortDir.set('asc');\n }\n protected sortIconName(col: KptColumn): KptIconName {\n return this.sortField() === col.field && this.sortDir() === 'asc' ? 'chevron-up' : 'chevron-down';\n }\n protected ariaSort(col: KptColumn): 'ascending' | 'descending' | 'none' {\n if (this.sortField() !== col.field || !this.sortDir()) return 'none';\n return this.sortDir() === 'asc' ? 'ascending' : 'descending';\n }\n\n // ── Filtrowanie ──\n protected onFilter(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.pageIndex.set(0);\n }\n\n // ── Zaznaczanie ──\n private sameRow(a: T, b: T): boolean {\n const key = this.rowKey();\n if (key) return (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key];\n return a === b;\n }\n protected isSelected(row: T): boolean {\n return this.selection().some((r) => this.sameRow(r, row));\n }\n protected toggleRow(row: T): void {\n const mode = this.selectable();\n if (mode === 'none') return;\n if (mode === 'single') {\n this.selection.set(this.isSelected(row) ? [] : [row]);\n return;\n }\n const current = this.selection();\n this.selection.set(\n this.isSelected(row) ? current.filter((r) => !this.sameRow(r, row)) : [...current, row],\n );\n }\n protected readonly pageAllSelected = computed(() => {\n const page = this.paged();\n return page.length > 0 && page.every((r) => this.isSelected(r));\n });\n protected readonly pageSomeSelected = computed(() => {\n const page = this.paged();\n return page.some((r) => this.isSelected(r)) && !this.pageAllSelected();\n });\n protected toggleAllOnPage(): void {\n const page = this.paged();\n if (this.pageAllSelected()) {\n this.selection.set(this.selection().filter((r) => !page.some((pr) => this.sameRow(pr, r))));\n } else {\n const toAdd = page.filter((r) => !this.isSelected(r));\n this.selection.set([...this.selection(), ...toAdd]);\n }\n }\n\n // ── Wiersze ──\n protected onRowClick(row: T): void {\n this.rowClick.emit(row);\n }\n protected getValue(row: T, field: string): unknown {\n return (row as Record<string, unknown>)[field];\n }\n protected trackRow = (row: T): unknown => {\n const key = this.rowKey();\n return key ? (row as Record<string, unknown>)[key] : row;\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTreeNode<T = unknown> {\n label: string;\n value?: T;\n icon?: string;\n children?: KptTreeNode<T>[];\n expanded?: boolean;\n disabled?: boolean;\n}\n\n/**\n * Drzewo hierarchiczne (rozwijanie, zaznaczanie, ikony). Dane przez `nodes`.\n *\n * @example\n * <kpt-tree [nodes]=\"tree\" selectable [(selected)]=\"node\" (nodeClick)=\"open($event)\" />\n */\n@Component({\n selector: 'kpt-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ul class=\"kpt-tree\" role=\"tree\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: nodes(), level: 0 }\" />\n </ul>\n\n <ng-template #nodeTpl let-list let-level=\"level\">\n @for (node of list; track node) {\n <li class=\"kpt-tree__node\" role=\"treeitem\" [attr.aria-expanded]=\"has(node) ? isOpen(node) : null\">\n <div\n class=\"kpt-tree__row\"\n [class.is-selected]=\"isSelected(node)\"\n [class.is-disabled]=\"node.disabled\"\n [style.padding-inline-start.rem]=\"0.5 + level * 1.1\"\n (click)=\"onRow(node)\"\n >\n @if (has(node)) {\n <button type=\"button\" class=\"kpt-tree__toggle\" (click)=\"toggle(node, $event)\" [attr.aria-label]=\"isOpen(node) ? 'Zwiń' : 'Rozwiń'\">\n <kpt-icon name=\"chevron-right\" class=\"kpt-tree__chevron\" [class.is-open]=\"isOpen(node)\" />\n </button>\n } @else {\n <span class=\"kpt-tree__spacer\"></span>\n }\n @if (node.icon) { <kpt-icon [name]=\"node.icon\" class=\"kpt-tree__icon\" /> }\n <span class=\"kpt-tree__label\">{{ node.label }}</span>\n </div>\n @if (has(node) && isOpen(node)) {\n <ul role=\"group\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: node.children, level: level + 1 }\" />\n </ul>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: './tree.component.scss',\n host: { class: 'kpt-tree-host' },\n})\nexport class KptTree<T = unknown> {\n readonly nodes = input<KptTreeNode<T>[]>([]);\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly selected = model<KptTreeNode<T> | null>(null);\n readonly nodeClick = output<KptTreeNode<T>>();\n\n private readonly version = signal(0);\n\n protected has(node: KptTreeNode<T>): boolean {\n return !!node.children?.length;\n }\n protected isOpen(node: KptTreeNode<T>): boolean {\n this.version();\n return !!node.expanded;\n }\n protected isSelected(node: KptTreeNode<T>): boolean {\n return this.selected() === node;\n }\n protected toggle(node: KptTreeNode<T>, event: Event): void {\n event.stopPropagation();\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n protected onRow(node: KptTreeNode<T>): void {\n if (node.disabled) return;\n if (this.selectable()) this.selected.set(node);\n else if (this.has(node)) {\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n this.nodeClick.emit(node);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTimelineItem {\n title: string;\n description?: string;\n time?: string;\n icon?: string;\n variant?: 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n}\n\n/**\n * Oś czasu (timeline) — pionowa lista zdarzeń z markerami.\n *\n * @example\n * <kpt-timeline [items]=\"[{title:'Utworzono', time:'10:00', variant:'success', icon:'check'}]\" />\n */\n@Component({\n selector: 'kpt-timeline',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <ol class=\"kpt-timeline\">\n @for (item of items(); track $index) {\n <li class=\"kpt-timeline__item\">\n <div class=\"kpt-timeline__marker\" [attr.data-variant]=\"item.variant ?? 'primary'\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n </div>\n <div class=\"kpt-timeline__content\">\n <div class=\"kpt-timeline__header\">\n <span class=\"kpt-timeline__title\">{{ item.title }}</span>\n @if (item.time) { <span class=\"kpt-timeline__time\">{{ item.time }}</span> }\n </div>\n @if (item.description) { <p class=\"kpt-timeline__desc\">{{ item.description }}</p> }\n </div>\n </li>\n }\n </ol>\n `,\n styleUrl: './timeline.component.scss',\n host: { class: 'kpt-timeline-host' },\n})\nexport class KptTimeline {\n readonly items = input<KptTimelineItem[]>([]);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Karuzela slajdów. Dane przez `items`, szablon slajdu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-carousel [items]=\"photos\">\n * <ng-template let-photo><img [src]=\"photo\" style=\"width:100%\" /></ng-template>\n * </kpt-carousel>\n */\n@Component({\n selector: 'kpt-carousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-carousel\">\n <div class=\"kpt-carousel__viewport\">\n <div class=\"kpt-carousel__track\" [style.transform]=\"'translateX(-' + activeIndex() * 100 + '%)'\">\n @for (item of items(); track $index) {\n <div class=\"kpt-carousel__slide\">\n <ng-container [ngTemplateOutlet]=\"slideTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n }\n </div>\n </div>\n\n <button class=\"kpt-carousel__nav kpt-carousel__nav--prev\" type=\"button\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\">\n <kpt-icon name=\"chevron-left\" />\n </button>\n <button class=\"kpt-carousel__nav kpt-carousel__nav--next\" type=\"button\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\">\n <kpt-icon name=\"chevron-right\" />\n </button>\n\n <div class=\"kpt-carousel__dots\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-carousel__dot\"\n [class.is-active]=\"i === activeIndex()\"\n (click)=\"goTo(i)\"\n [attr.aria-label]=\"i18n.t('carousel.slide', { index: i + 1 })\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './carousel.component.scss',\n host: { class: 'kpt-carousel-host' },\n})\nexport class KptCarousel<T = unknown> {\n readonly items = input<T[]>([]);\n readonly activeIndex = model(0);\n protected readonly i18n = inject(KptI18n);\n protected readonly slideTpl = contentChild.required(TemplateRef);\n\n next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n goTo(index: number): void {\n this.activeIndex.set(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, booleanAttribute, computed, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptPaginator } from '../paginator/paginator.component';\n\n/**\n * DataView — prezentacja listy elementów w układzie lista/siatka, z opcjonalną paginacją.\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-data-view [items]=\"products\" [pageSize]=\"6\">\n * <ng-template let-p><div>{{ p.name }}</div></ng-template>\n * </kpt-data-view>\n */\n@Component({\n selector: 'kpt-data-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon, KptPaginator],\n template: `\n <div class=\"kpt-data-view\">\n <div class=\"kpt-data-view__toolbar\">\n <div class=\"kpt-data-view__count\">{{ i18n.t('dataView.count', { count: items().length }) }}</div>\n <div class=\"kpt-data-view__switch\">\n <button type=\"button\" [class.is-active]=\"layout() === 'list'\" (click)=\"layout.set('list')\" [attr.aria-label]=\"i18n.t('dataView.list')\"><kpt-icon name=\"list\" /></button>\n <button type=\"button\" [class.is-active]=\"layout() === 'grid'\" (click)=\"layout.set('grid')\" [attr.aria-label]=\"i18n.t('dataView.grid')\"><kpt-icon name=\"menu\" /></button>\n </div>\n </div>\n\n <div class=\"kpt-data-view__content\" [attr.data-layout]=\"layout()\">\n @for (item of pageItems(); track $index) {\n <div class=\"kpt-data-view__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n } @empty {\n <div class=\"kpt-data-view__empty\">{{ i18n.t('dataView.empty') }}</div>\n }\n </div>\n\n @if (showPager()) {\n <kpt-paginator [length]=\"items().length\" [(pageIndex)]=\"pageIndex\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"[pageSize()]\" />\n }\n </div>\n `,\n styleUrl: './data-view.component.scss',\n host: { class: 'kpt-data-view-host' },\n})\nexport class KptDataView<T = unknown> {\n readonly items = input<T[]>([]);\n readonly layout = model<'list' | 'grid'>('grid');\n readonly pageSize = input(0);\n readonly paginated = input(true, { transform: booleanAttribute });\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly pageIndex = model(0);\n\n protected readonly showPager = computed(() => this.paginated() && this.pageSize() > 0 && this.items().length > this.pageSize());\n protected readonly pageItems = computed(() => {\n const size = this.pageSize();\n if (!this.paginated() || size <= 0) return this.items();\n const start = this.pageIndex() * size;\n return this.items().slice(start, start + size);\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * PickList — transfer elementów między dwiema listami (źródło ↔ cel).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-pick-list [(source)]=\"available\" [(target)]=\"selected\" sourceHeader=\"Dostępne\" targetHeader=\"Wybrane\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-pick-list>\n */\n@Component({\n selector: 'kpt-pick-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-pick-list\">\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveSourceHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of source(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selSource().has(item)\" (click)=\"toggle('source', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n\n <div class=\"kpt-pick-list__controls\">\n <button type=\"button\" (click)=\"move('source', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllRight')\"><kpt-icon name=\"chevron-right\" /><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('source', false)\" [attr.aria-label]=\"i18n.t('pickList.moveRight')\"><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('target', false)\" [attr.aria-label]=\"i18n.t('pickList.moveLeft')\"><kpt-icon name=\"chevron-left\" /></button>\n <button type=\"button\" (click)=\"move('target', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllLeft')\"><kpt-icon name=\"chevron-left\" /><kpt-icon name=\"chevron-left\" /></button>\n </div>\n\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveTargetHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of target(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selTarget().has(item)\" (click)=\"toggle('target', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './pick-list.component.scss',\n host: { class: 'kpt-pick-list-host' },\n})\nexport class KptPickList<T = unknown> {\n readonly source = model<T[]>([]);\n readonly target = model<T[]>([]);\n /** Nagłówek listy źródłowej; bez wartości używa i18n (`pickList.available`). */\n readonly sourceHeader = input<string>();\n /** Nagłówek listy docelowej; bez wartości używa i18n (`pickList.selected`). */\n readonly targetHeader = input<string>();\n protected readonly itemTpl = contentChild.required(TemplateRef);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveSourceHeader = computed(() => this.sourceHeader() ?? this.i18n.t('pickList.available'));\n protected readonly effectiveTargetHeader = computed(() => this.targetHeader() ?? this.i18n.t('pickList.selected'));\n protected readonly selSource = signal<Set<T>>(new Set());\n protected readonly selTarget = signal<Set<T>>(new Set());\n\n protected toggle(side: 'source' | 'target', item: T): void {\n const sig = side === 'source' ? this.selSource : this.selTarget;\n const next = new Set(sig());\n if (next.has(item)) next.delete(item);\n else next.add(item);\n sig.set(next);\n }\n\n protected move(from: 'source' | 'target', all: boolean): void {\n const fromModel = from === 'source' ? this.source : this.target;\n const toModel = from === 'source' ? this.target : this.source;\n const sel = from === 'source' ? this.selSource : this.selTarget;\n const moving = all ? fromModel() : fromModel().filter((i) => sel().has(i));\n if (!moving.length) return;\n fromModel.set(fromModel().filter((i) => !moving.includes(i)));\n toModel.set([...toModel(), ...moving]);\n sel.set(new Set());\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * OrderList — lista z ręcznym porządkowaniem elementów (w górę/dół).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-order-list [(items)]=\"tasks\" header=\"Kolejność\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-order-list>\n */\n@Component({\n selector: 'kpt-order-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-order-list\">\n <div class=\"kpt-order-list__controls\">\n <button type=\"button\" (click)=\"moveSelected(-1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.up')\"><kpt-icon name=\"arrow-up\" /></button>\n <button type=\"button\" (click)=\"moveSelected(1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.down')\"><kpt-icon name=\"arrow-down\" /></button>\n </div>\n <div class=\"kpt-order-list__panel\">\n @if (header()) { <div class=\"kpt-order-list__header\">{{ header() }}</div> }\n <ul class=\"kpt-order-list__items\">\n @for (item of items(); track $index; let i = $index) {\n <li class=\"kpt-order-list__item\" [class.is-selected]=\"selected() === i\" (click)=\"selected.set(i)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './order-list.component.scss',\n host: { class: 'kpt-order-list-host' },\n})\nexport class KptOrderList<T = unknown> {\n readonly items = model<T[]>([]);\n readonly header = input('');\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly selected = signal<number | null>(null);\n\n protected moveSelected(dir: -1 | 1): void {\n const i = this.selected();\n if (i === null) return;\n const j = i + dir;\n const arr = [...this.items()];\n if (j < 0 || j >= arr.length) return;\n [arr[i], arr[j]] = [arr[j], arr[i]];\n this.items.set(arr);\n this.selected.set(j);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptGalleriaItem {\n src: string;\n thumbnail?: string;\n alt?: string;\n}\n\n/**\n * Galleria — duży podgląd obrazu z paskiem miniatur i nawigacją.\n *\n * @example\n * <kpt-galleria [items]=\"photos\" [(activeIndex)]=\"idx\" />\n */\n@Component({\n selector: 'kpt-galleria',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-galleria\">\n <div class=\"kpt-galleria__stage\">\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--prev\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\"><kpt-icon name=\"chevron-left\" /></button>\n @if (current(); as item) {\n <img class=\"kpt-galleria__image\" [src]=\"item.src\" [alt]=\"item.alt || ''\" />\n }\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--next\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n\n @if (showThumbnails()) {\n <div class=\"kpt-galleria__thumbs\">\n @for (item of items(); track $index; let i = $index) {\n <button type=\"button\" class=\"kpt-galleria__thumb\" [class.is-active]=\"i === activeIndex()\" (click)=\"activeIndex.set(i)\" [attr.aria-label]=\"i18n.t('galleria.image', { index: i + 1 })\">\n <img [src]=\"item.thumbnail || item.src\" [alt]=\"item.alt || ''\" />\n </button>\n }\n </div>\n }\n </div>\n `,\n styleUrl: './galleria.component.scss',\n host: { class: 'kpt-galleria-host' },\n})\nexport class KptGalleria {\n readonly items = input<KptGalleriaItem[]>([]);\n readonly activeIndex = model(0);\n readonly showThumbnails = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly current = computed(() => this.items()[this.activeIndex()] ?? null);\n\n protected next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n protected prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\n\nexport type KptAlertVariant = 'info' | 'success' | 'warning' | 'danger';\n\n/**\n * Komunikat inline (alert). Warianty info/success/warning/danger, opcjonalny tytuł i zamykanie.\n *\n * @example\n * <kpt-alert variant=\"success\" title=\"Zapisano\">Zmiany zostały zapisane.</kpt-alert>\n */\n@Component({\n selector: 'kpt-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-alert\" [attr.data-variant]=\"variant()\" role=\"alert\">\n <kpt-icon class=\"kpt-alert__icon\" [name]=\"iconName()\" />\n <div class=\"kpt-alert__content\">\n @if (title()) {\n <div class=\"kpt-alert__title\">{{ title() }}</div>\n }\n <div class=\"kpt-alert__message\"><ng-content /></div>\n </div>\n @if (dismissible()) {\n <button class=\"kpt-alert__close\" type=\"button\" (click)=\"dismiss()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n `,\n styleUrl: './alert.component.scss',\n host: { class: 'kpt-alert-host', '[hidden]': '!visible()' },\n})\nexport class KptAlert {\n readonly variant = input<KptAlertVariant>('info');\n readonly title = input('');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(true);\n\n protected iconName(): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n this.variant()\n ] as KptIconName;\n }\n protected dismiss(): void {\n this.visible.set(false);\n this.closed.emit();\n }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Okno modalne na natywnym `<dialog>` (focus trap, ESC, backdrop w standardzie).\n * Sterowane sygnałem `open` (dwukierunkowe). Stopkę wstaw z atrybutem `kptDialogFooter`.\n *\n * @example\n * <kpt-dialog [(open)]=\"confirmOpen\" header=\"Usunąć?\">\n * Tej operacji nie można cofnąć.\n * <div kptDialogFooter>\n * <kpt-button variant=\"text\" (click)=\"confirmOpen.set(false)\">Anuluj</kpt-button>\n * <kpt-button variant=\"danger\" (click)=\"remove()\">Usuń</kpt-button>\n * </div>\n * </kpt-dialog>\n */\n@Component({\n selector: 'kpt-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <dialog #dlg class=\"kpt-dialog\" (close)=\"open.set(false)\" (cancel)=\"onCancel($event)\">\n @if (header()) {\n <div class=\"kpt-dialog__header\">\n <h2 class=\"kpt-dialog__title\">{{ header() }}</h2>\n @if (dismissible()) {\n <button class=\"kpt-dialog__close\" type=\"button\" (click)=\"open.set(false)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-dialog__body\"><ng-content /></div>\n <ng-content select=\"[kptDialogFooter]\" />\n </dialog>\n `,\n styleUrl: './dialog.component.scss',\n host: { class: 'kpt-dialog-host' },\n})\nexport class KptDialog {\n /** Otwarcie okna (dwukierunkowe). */\n readonly open = model(false);\n readonly header = input('');\n /** Pozwala zamknąć klawiszem Esc / przyciskiem ×. */\n readonly dismissible = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n private readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dlg');\n private readonly overlayContainer = inject(OverlayContainer);\n\n /** Miejsce, z którego zabraliśmy kontener overlayów — żeby go tam oddać. */\n private overlayHome: HTMLElement | null = null;\n\n constructor() {\n effect(() => {\n const el = this.dialogRef()?.nativeElement;\n if (!el) return;\n if (this.open() && !el.open) {\n el.showModal();\n this.adoptOverlayContainer(el);\n } else if (!this.open() && el.open) {\n el.close();\n this.releaseOverlayContainer();\n }\n });\n\n // Zamknięcie przez `close`/`cancel` też przechodzi tędy, ale zniszczenie komponentu\n // z otwartym oknem już nie — kontener musi wrócić na miejsce niezależnie od drogi.\n inject(DestroyRef).onDestroy(() => this.releaseOverlayContainer());\n }\n\n /**\n * Przenosi kontener CDK Overlay do wnętrza `<dialog>` na czas, gdy okno jest otwarte.\n *\n * `showModal()` wynosi okno do **warstwy szczytowej** przeglądarki, a ta jest ponad\n * całym drzewem dokumentu — żaden `z-index` tego nie przebije. Kontener overlayów\n * wisi na `<body>`, więc panele `kpt-select`, `kpt-datepicker`, `kpt-autocomplete`\n * czy `kpt-menu` otwierałyby się NIEWIDOCZNE, schowane za tłem okna.\n */\n private adoptOverlayContainer(dialog: HTMLDialogElement): void {\n const container = this.overlayContainer.getContainerElement();\n if (container.parentElement === dialog) return;\n this.overlayHome = container.parentElement;\n dialog.appendChild(container);\n }\n\n private releaseOverlayContainer(): void {\n if (!this.overlayHome) return;\n // `getContainerElement()` nie tworzy nowego kontenera — zwraca ten sam, który zabraliśmy.\n this.overlayHome.appendChild(this.overlayContainer.getContainerElement());\n this.overlayHome = null;\n }\n\n protected onCancel(event: Event): void {\n if (!this.dismissible()) {\n event.preventDefault();\n return;\n }\n this.open.set(false);\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport type { KptAlertVariant } from '../alert/alert.component';\n\nexport interface KptToast {\n id: number;\n message: string;\n title?: string;\n variant: KptAlertVariant;\n /** Czas życia w ms; 0 = bez auto-zamykania. */\n duration: number;\n}\n\nexport type KptToastOptions = Partial<Omit<KptToast, 'id' | 'message'>>;\n\n/**\n * Serwis powiadomień (toastów). Wstrzyknij i wywołuj `show`/`success`/`error`/...;\n * umieść `<kpt-toast-container />` raz w aplikacji, aby je renderować.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptToastService {\n private readonly _toasts = signal<KptToast[]>([]);\n readonly toasts = this._toasts.asReadonly();\n private seq = 0;\n\n show(message: string, options: KptToastOptions = {}): number {\n const id = ++this.seq;\n const toast: KptToast = { id, message, variant: 'info', duration: 4000, ...options };\n this._toasts.update((list) => [...list, toast]);\n if (toast.duration > 0) {\n setTimeout(() => this.dismiss(id), toast.duration);\n }\n return id;\n }\n\n info(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'info' });\n }\n success(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'success' });\n }\n warning(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'warning' });\n }\n error(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'danger' });\n }\n\n dismiss(id: number): void {\n this._toasts.update((list) => list.filter((t) => t.id !== id));\n }\n clear(): void {\n this._toasts.set([]);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport type { KptAlertVariant } from '../alert/alert.component';\nimport { KptToastService } from './toast.service';\n\n/**\n * Kontener renderujący toasty z `KptToastService`. Umieść raz w aplikacji\n * (np. w komponencie głównym): `<kpt-toast-container />`.\n */\n@Component({\n selector: 'kpt-toast-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-toast-container\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toasts(); track toast.id) {\n <div class=\"kpt-toast\" [attr.data-variant]=\"toast.variant\" role=\"status\">\n <kpt-icon class=\"kpt-toast__icon\" [name]=\"icon(toast.variant)\" />\n <div class=\"kpt-toast__content\">\n @if (toast.title) {\n <div class=\"kpt-toast__title\">{{ toast.title }}</div>\n }\n <div class=\"kpt-toast__message\">{{ toast.message }}</div>\n </div>\n <button class=\"kpt-toast__close\" type=\"button\" (click)=\"dismiss(toast.id)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n </div>\n }\n </div>\n `,\n styleUrl: './toast-container.component.scss',\n host: { class: 'kpt-toast-container-host' },\n})\nexport class KptToastContainer {\n private readonly service = inject(KptToastService);\n protected readonly i18n = inject(KptI18n);\n protected readonly toasts = this.service.toasts;\n\n protected dismiss(id: number): void {\n this.service.dismiss(id);\n }\n protected icon(variant: KptAlertVariant): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n variant\n ] as KptIconName;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge, type KptBadgeVariant } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\n\n/** Awatar wiersza nagłówkowego — te same dane, które przyjmuje `kpt-avatar`. */\nexport interface KptMenuItemAvatar {\n src?: string;\n name?: string;\n icon?: string;\n}\n\nexport interface KptMenuItem<T = unknown> {\n label?: string;\n value?: T;\n icon?: string;\n /** Druga linia tekstu: e-mail, rola, opis akcji. */\n description?: string;\n /** Odznaka po prawej stronie pozycji (licznik lub krótka etykieta). */\n badge?: string | number;\n /** Wariant odznaki — domyślnie `primary`. */\n badgeVariant?: KptBadgeVariant;\n /** Awatar po lewej — typowo w wierszu nagłówka menu użytkownika. */\n avatar?: KptMenuItemAvatar;\n /**\n * Wiersz nagłówkowy: nieklikalny blok tekstu zamiast pozycji menu. Mieści dane zalogowanego\n * użytkownika (`avatar` + `label` + `description`) albo opis funkcji menu.\n */\n header?: boolean;\n disabled?: boolean;\n danger?: boolean;\n separator?: boolean;\n /** Pozycje podrzędne (menubar / megamenu). */\n items?: KptMenuItem<T>[];\n /** Adres odnośnika (menubar / megamenu). */\n url?: string;\n}\n\n/**\n * Menu rozwijane (dropdown) na CDK Overlay. Trigger przez projekcję, pozycje przez `items`.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menu [items]=\"items\" (select)=\"onSelect($event)\">\n * <kpt-button variant=\"outline\">Opcje</kpt-button>\n * </kpt-menu>\n */\n@Component({\n selector: 'kpt-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <span class=\"kpt-menu__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-menu__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-menu__text\">\n @if (item.label) { <span class=\"kpt-menu__label\">{{ item.label }}</span> }\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menu__item\"\n role=\"menuitem\"\n [class.kpt-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-menu__text\">\n <span class=\"kpt-menu__label\">{{ item.label }}</span>\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge class=\"kpt-menu__badge\" [value]=\"item.badge\" [variant]=\"item.badgeVariant ?? 'primary'\" />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './menu.component.scss',\n host: { class: 'kpt-menu-host' },\n})\nexport class KptMenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.select.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, signal } from '@angular/core';\n\n/**\n * Popover — dowolna treść w dymku na CDK Overlay (bogatszy niż tooltip). Slot triggera:\n * atrybut `kptPopoverTrigger`; reszta treści trafia do panelu.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-popover>\n * <kpt-button kptPopoverTrigger variant=\"outline\">Szczegóły</kpt-button>\n * <div>Bogata treść popovera…</div>\n * </kpt-popover>\n */\n@Component({\n selector: 'kpt-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <span class=\"kpt-popover__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content select=\"[kptPopoverTrigger]\" />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-popover__panel\" role=\"dialog\">\n <ng-content />\n </div>\n </ng-template>\n `,\n styleUrl: './popover.component.scss',\n host: { class: 'kpt-popover-host' },\n})\nexport class KptPopover {\n readonly placement = input<'bottom' | 'top'>('bottom');\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 6 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -6 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole z podpowiedziami (autocomplete) na CDK Overlay, Signal Forms. Wartość = wpisany tekst.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-autocomplete [formField]=\"f.city\" [options]=\"cities\" placeholder=\"Miasto…\" />\n */\n@Component({\n selector: 'kpt-autocomplete',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <input\n class=\"kpt-autocomplete__input\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n type=\"text\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open() && filtered().length > 0\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n >\n <ul class=\"kpt-autocomplete__panel\" role=\"listbox\">\n @for (opt of filtered(); track opt; let i = $index) {\n <li\n class=\"kpt-autocomplete__option\"\n role=\"option\"\n [class.is-active]=\"i === activeIndex()\"\n (mousedown)=\"$event.preventDefault(); pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >{{ opt }}</li>\n }\n </ul>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n host: { class: 'kpt-autocomplete-host' },\n})\nexport class KptAutocomplete implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly options = input<string[]>([]);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly open = signal(false);\n protected readonly activeIndex = signal(-1);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly filtered = computed(() => {\n const q = this.value().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.toLowerCase().includes(q)) : opts;\n });\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n this.open.set(true);\n this.activeIndex.set(-1);\n }\n protected onFocus(): void {\n this.open.set(true);\n }\n protected onBlur(): void {\n this.open.set(false);\n this.touch.emit();\n }\n protected pick(opt: string): void {\n this.value.set(opt);\n this.open.set(false);\n }\n protected onKeydown(event: KeyboardEvent): void {\n const opts = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open.set(true);\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n const opt = opts[this.activeIndex()];\n if (opt) {\n event.preventDefault();\n this.pick(opt);\n }\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n/**\n * Panel wysuwany (drawer / off-canvas) sterowany sygnałem `open`. Niezależny od app-shell.\n *\n * @example\n * <kpt-drawer [(open)]=\"menuOpen\" position=\"right\" header=\"Filtry\">\n * Treść panelu…\n * </kpt-drawer>\n */\n@Component({\n selector: 'kpt-drawer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-drawer__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <aside\n class=\"kpt-drawer__panel\"\n [attr.data-position]=\"position()\"\n [class.is-open]=\"open()\"\n role=\"dialog\"\n aria-modal=\"true\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n >\n @if (header() || dismissible()) {\n <div class=\"kpt-drawer__header\">\n <span class=\"kpt-drawer__title\">{{ header() }}</span>\n @if (dismissible()) {\n <button type=\"button\" class=\"kpt-drawer__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-drawer__body\"><ng-content /></div>\n </aside>\n `,\n styleUrl: './drawer.component.scss',\n host: { class: 'kpt-drawer-host' },\n})\nexport class KptDrawer {\n readonly open = model(false);\n readonly position = input<KptDrawerPosition>('left');\n readonly header = input('');\n readonly dismissible = input(true, { transform: booleanAttribute });\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.\n *\n * @example\n * <kpt-context-menu [items]=\"items\" (select)=\"onSelect($event)\">\n * <div class=\"obszar\">Kliknij prawym przyciskiem</div>\n * </kpt-context-menu>\n */\n@Component({\n selector: 'kpt-context-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-context-menu__area\" (contextmenu)=\"onContext($event)\">\n <ng-content />\n </div>\n\n @if (open()) {\n <div class=\"kpt-context-menu__backdrop\" (click)=\"close()\" (contextmenu)=\"$event.preventDefault(); close()\"></div>\n <div class=\"kpt-context-menu__panel\" role=\"menu\" [style.left.px]=\"x()\" [style.top.px]=\"y()\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-context-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-context-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-context-menu__text\">\n @if (item.label) { <span class=\"kpt-context-menu__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-context-menu__item\"\n role=\"menuitem\"\n [class.kpt-context-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-context-menu__text\">\n <span class=\"kpt-context-menu__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-context-menu__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n }\n `,\n styleUrl: './context-menu.component.scss',\n host: { class: 'kpt-context-menu-host' },\n})\nexport class KptContextMenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly x = signal(0);\n protected readonly y = signal(0);\n\n protected onContext(event: MouseEvent): void {\n event.preventDefault();\n this.x.set(event.clientX);\n this.y.set(event.clientY);\n this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.select.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.\n * Pod-menu renderowane przez CDK Overlay (doczepiane do `body`), więc nie są przycinane\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menubar [items]=\"items\" (select)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-menubar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-menubar\" role=\"menubar\">\n @for (item of items(); track $index; let i = $index) {\n <div class=\"kpt-menubar__group\">\n <button\n type=\"button\"\n class=\"kpt-menubar__top\"\n role=\"menuitem\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [class.is-open]=\"openIndex() === i\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(i, item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n @if (item.items?.length) { <kpt-icon name=\"chevron-down\" class=\"kpt-menubar__caret\" /> }\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() === i && !!item.items?.length\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-menubar__dropdown\" role=\"menu\">\n @for (sub of item.items; track $index) {\n @if (sub.separator) {\n <div class=\"kpt-menubar__separator\" role=\"separator\"></div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menubar__item\"\n role=\"menuitem\"\n [class.kpt-menubar__item--danger]=\"sub.danger\"\n [disabled]=\"sub.disabled\"\n (click)=\"pick(sub)\"\n >\n @if (sub.icon) { <kpt-icon [name]=\"sub.icon\" /> }\n <span>{{ sub.label }}</span>\n </button>\n }\n }\n </div>\n </ng-template>\n </div>\n }\n </nav>\n `,\n styleUrl: './menubar.component.scss',\n host: { class: 'kpt-menubar-host' },\n})\nexport class KptMenubar<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(i: number, item: KptMenuItem<T>): void {\n if (item.disabled) return;\n if (item.items?.length) {\n this.openIndex.update((cur) => (cur === i ? null : i));\n } else {\n this.select.emit(item);\n this.closeAll();\n }\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.select.emit(item);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.\n * Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).\n * Panel renderowany przez CDK Overlay (doczepiony do `body`), więc nie jest przycinany\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-megamenu [items]=\"items\" (select)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-megamenu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-megamenu\" role=\"menubar\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-megamenu__top\"\n role=\"menuitem\"\n [class.is-open]=\"openIndex() === i\"\n (click)=\"toggle(i)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-megamenu__caret\" />\n </button>\n }\n </nav>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() !== null\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-megamenu__panel\" role=\"menu\">\n @for (col of activeColumns(); track $index) {\n <div class=\"kpt-megamenu__column\">\n @if (col.label) { <div class=\"kpt-megamenu__col-title\">{{ col.label }}</div> }\n @for (link of col.items ?? []; track $index) {\n <button type=\"button\" class=\"kpt-megamenu__link\" [disabled]=\"link.disabled\" (click)=\"pick(link)\">\n @if (link.icon) { <kpt-icon [name]=\"link.icon\" /> }\n <span>{{ link.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n `,\n styleUrl: './megamenu.component.scss',\n host: { class: 'kpt-megamenu-host' },\n})\nexport class KptMegamenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected activeColumns(): KptMenuItem<T>[] {\n const i = this.openIndex();\n return i === null ? [] : this.items()[i]?.items ?? [];\n }\n\n protected toggle(i: number): void {\n this.openIndex.update((cur) => (cur === i ? null : i));\n }\n protected pick(link: KptMenuItem<T>): void {\n if (link.disabled) return;\n this.select.emit(link);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface KptConfirmOptions {\n message: string;\n header?: string;\n acceptLabel?: string;\n rejectLabel?: string;\n /** Wariant przycisku akceptacji. */\n variant?: 'filled' | 'danger';\n icon?: string;\n}\n\nexport interface KptConfirmRequest extends KptConfirmOptions {\n id: number;\n resolve: (accepted: boolean) => void;\n}\n\n/**\n * Serwis potwierdzeń. Wstrzyknij i wywołaj `confirm(...)` (zwraca Promise<boolean>);\n * umieść `<kpt-confirm-container />` raz w aplikacji.\n *\n * @example\n * if (await confirm.confirm({ message: 'Usunąć rekord?', variant: 'danger' })) { ... }\n */\n@Injectable({ providedIn: 'root' })\nexport class KptConfirmService {\n private readonly _current = signal<KptConfirmRequest | null>(null);\n readonly current = this._current.asReadonly();\n private seq = 0;\n\n confirm(options: KptConfirmOptions): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this._current.set({ id: ++this.seq, ...options, resolve });\n });\n }\n\n accept(): void {\n this._current()?.resolve(true);\n this._current.set(null);\n }\n reject(): void {\n this._current()?.resolve(false);\n this._current.set(null);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDialog } from '../dialog/dialog.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptConfirmService } from './confirm.service';\n\n/**\n * Kontener potwierdzeń — renderuje aktywne żądanie z `KptConfirmService` na `kpt-dialog`.\n * Umieść raz w aplikacji (np. obok `<kpt-toast-container />`).\n */\n@Component({\n selector: 'kpt-confirm-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptDialog, KptButton, KptIcon],\n template: `\n <kpt-dialog [open]=\"isOpen()\" (openChange)=\"onOpenChange($event)\" [header]=\"req()?.header ?? i18n.t('confirm.header')\">\n <div class=\"kpt-confirm__body\">\n @if (req()?.icon) { <kpt-icon [name]=\"req()!.icon!\" class=\"kpt-confirm__icon\" [attr.data-variant]=\"req()?.variant ?? 'filled'\" /> }\n <p class=\"kpt-confirm__message\">{{ req()?.message }}</p>\n </div>\n <div kptDialogFooter>\n <kpt-button variant=\"text\" (click)=\"service.reject()\">{{ req()?.rejectLabel ?? i18n.t('confirm.reject') }}</kpt-button>\n <kpt-button [variant]=\"req()?.variant ?? 'filled'\" (click)=\"service.accept()\">{{ req()?.acceptLabel ?? i18n.t('confirm.accept') }}</kpt-button>\n </div>\n </kpt-dialog>\n `,\n styleUrl: './confirm-container.component.scss',\n host: { class: 'kpt-confirm-container-host' },\n})\nexport class KptConfirmContainer {\n protected readonly i18n = inject(KptI18n);\n protected readonly service = inject(KptConfirmService);\n protected readonly req = this.service.current;\n protected readonly isOpen = computed(() => this.req() !== null);\n\n protected onOpenChange(open: boolean): void {\n if (!open) this.service.reject();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Arkusz wysuwany z dołu ekranu (bottom sheet). Sterowany sygnałem `open`.\n *\n * @example\n * <kpt-bottom-sheet [(open)]=\"sheetOpen\" header=\"Udostępnij\">\n * Treść arkusza…\n * </kpt-bottom-sheet>\n */\n@Component({\n selector: 'kpt-bottom-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-bottom-sheet__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <div class=\"kpt-bottom-sheet__panel\" [class.is-open]=\"open()\" role=\"dialog\" aria-modal=\"true\" (keydown.escape)=\"close()\" tabindex=\"-1\">\n <button type=\"button\" class=\"kpt-bottom-sheet__handle\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"></button>\n @if (header()) { <div class=\"kpt-bottom-sheet__header\">{{ header() }}</div> }\n <div class=\"kpt-bottom-sheet__body\"><ng-content /></div>\n </div>\n `,\n styleUrl: './bottom-sheet.component.scss',\n host: { class: 'kpt-bottom-sheet-host' },\n})\nexport class KptBottomSheet {\n readonly open = model(false);\n readonly header = input('');\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input, output, signal } from '@angular/core';\nimport { KptFab } from '../fab/fab.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\nexport type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';\n\n/**\n * Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.\n *\n * @example\n * <kpt-speed-dial [items]=\"actions\" direction=\"up\" (select)=\"onAction($event)\" />\n */\n@Component({\n selector: 'kpt-speed-dial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptFab, KptIcon],\n template: `\n <div class=\"kpt-speed-dial\" [attr.data-direction]=\"direction()\" [class.is-open]=\"open()\">\n <div class=\"kpt-speed-dial__actions\">\n @for (item of items(); track $index) {\n <button type=\"button\" class=\"kpt-speed-dial__action\" [disabled]=\"item.disabled\" (click)=\"pick(item)\" [attr.aria-label]=\"item.label\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n @if (item.label) { <span class=\"kpt-speed-dial__label\">{{ item.label }}</span> }\n </button>\n }\n </div>\n <kpt-fab [ariaLabel]=\"open() ? i18n.t('common.close') : effectiveAriaLabel()\" (click)=\"toggle()\">\n <span class=\"kpt-speed-dial__trigger-icon\"><kpt-icon [name]=\"icon()\" /></span>\n </kpt-fab>\n </div>\n @if (open()) { <div class=\"kpt-speed-dial__backdrop\" (click)=\"close()\"></div> }\n `,\n styleUrl: './speed-dial.component.scss',\n host: { class: 'kpt-speed-dial-host' },\n})\nexport class KptSpeedDial<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly direction = input<KptSpeedDialDirection>('up');\n readonly icon = input('plus');\n /** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */\n readonly ariaLabel = input<string>();\n readonly select = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.t('speedDial.actions'));\n protected readonly open = signal(false);\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.select.emit(item);\n this.close();\n }\n}\n","/*\n * Public API — @konce-pt/angular\n * Komponenty Koncept UI dla Angular 22 (sygnały, Signal Forms).\n */\nexport { KptButton } from './lib/button/button.component';\nexport type { KptButtonVariant, KptButtonSize } from './lib/button/button.component';\nexport { KptIconButton } from './lib/icon-button/icon-button.component';\nexport { KptButtonGroup } from './lib/button-group/button-group.component';\nexport { KptFab } from './lib/fab/fab.component';\nexport { KptSplitButton } from './lib/split-button/split-button.component';\n\nexport { KptIcon } from './lib/icon/icon.component';\nexport { KptIconRegistry, renderKptIconSvg } from './lib/icon/icon-registry';\nexport type { KptIconName } from './lib/icon/icons';\n\n// Breakpointy\nexport { KptBreakpointObserver } from './lib/breakpoint/breakpoint.service';\nexport { KPT_BREAKPOINTS } from './lib/breakpoint/breakpoints.generated';\nexport type { KptBreakpoint } from './lib/breakpoint/breakpoints.generated';\n\n// i18n\nexport { provideKptI18n } from './lib/i18n/i18n.provider';\nexport { KptI18n } from './lib/i18n/i18n.service';\nexport type { KptI18nConfig, DeepPartial } from './lib/i18n/i18n.token';\nexport { KPT_I18N_CONFIG } from './lib/i18n/i18n.token';\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from './lib/i18n/messages';\nexport type { KptMessages, KptLocale } from './lib/i18n/messages';\n\n// Wyświetlanie / statusy\nexport { KptBadge } from './lib/badge/badge.component';\nexport type { KptBadgeSize, KptBadgeVariant } from './lib/badge/badge.component';\nexport { KptChip } from './lib/chip/chip.component';\nexport type { KptChipVariant } from './lib/chip/chip.component';\nexport { KptAvatar } from './lib/avatar/avatar.component';\nexport type { KptAvatarSize, KptAvatarShape } from './lib/avatar/avatar.component';\nexport { KptSpinner } from './lib/spinner/spinner.component';\nexport { KptProgress } from './lib/progress/progress.component';\nexport type { KptProgressVariant } from './lib/progress/progress.component';\nexport { KptSkeleton } from './lib/skeleton/skeleton.component';\nexport type { KptSkeletonVariant } from './lib/skeleton/skeleton.component';\n\nexport { KptFormField } from './lib/form-field/form-field.component';\nexport { KPT_FORM_FIELD_CONTROL } from './lib/form-field/form-field-control';\nexport type { KptFormFieldControl } from './lib/form-field/form-field-control';\n\nexport { KptInput } from './lib/input/input.component';\nexport type { KptInputType } from './lib/input/input.component';\n\nexport { KptCheckbox } from './lib/checkbox/checkbox.component';\nexport { KptSwitch } from './lib/switch/switch.component';\nexport { KptSwitchGroup } from './lib/switch-group/switch-group.component';\nexport { KptRadioGroup } from './lib/radio-group/radio-group.component';\nexport { KptSelect } from './lib/select/select.component';\nexport { KptDatepicker } from './lib/datepicker/datepicker.component';\nexport type { KptDatepickerMode, KptDatepickerView } from './lib/datepicker/datepicker.component';\nexport { KptClock } from './lib/datepicker/clock.component';\nexport { KptTextarea } from './lib/textarea/textarea.component';\nexport { KptRichText } from './lib/rich-text/rich-text.component';\nexport type { KptRichTool, KptRichToolbar } from './lib/rich-text/rich-text.component';\nexport { KptSlider, type KptSliderValue } from './lib/slider/slider.component';\nexport { KptRating } from './lib/rating/rating.component';\nexport { KptFileUpload } from './lib/file-upload/file-upload.component';\nexport { KptColorPicker } from './lib/color-picker/color-picker.component';\nexport { KptDateRange } from './lib/date-range/date-range.component';\nexport type { KptDateRangeValue } from './lib/date-range/date-range.component';\nexport { KptInputNumber } from './lib/input-number/input-number.component';\nexport { KptPassword } from './lib/password/password.component';\nexport { KptInputOtp } from './lib/input-otp/input-otp.component';\nexport { KptChipsInput } from './lib/chips-input/chips-input.component';\nexport { KptInputMask } from './lib/input-mask/input-mask.component';\nexport { KptListbox } from './lib/listbox/listbox.component';\nexport { KptKnob } from './lib/knob/knob.component';\nexport type { KptOption } from './lib/shared/types';\n\n// Layout\nexport { KptCard } from './lib/card/card.component';\nexport type { KptCardVariant } from './lib/card/card.component';\nexport { KptDivider } from './lib/divider/divider.component';\nexport type { KptDividerOrientation } from './lib/divider/divider.component';\nexport { KptToolbar } from './lib/toolbar/toolbar.component';\nexport { KptSidenav } from './lib/sidenav/sidenav.component';\nexport { KptAppShell } from './lib/app-shell/app-shell.component';\nexport type { KptSidenavMode } from './lib/app-shell/app-shell.component';\nexport { KptShellNavToggle } from './lib/app-shell/shell-nav-toggle.directive';\nexport { KptPanel } from './lib/panel/panel.component';\nexport { KptFieldset } from './lib/fieldset/fieldset.component';\nexport { KptSplitter } from './lib/splitter/splitter.component';\nexport type { KptSplitterOrientation } from './lib/splitter/splitter.component';\nexport { KptScrollTop } from './lib/scroll-top/scroll-top.component';\nexport { KptImage } from './lib/image/image.component';\nexport { KptMeterGroup } from './lib/meter-group/meter-group.component';\nexport type { KptMeterItem } from './lib/meter-group/meter-group.component';\nexport { KptAvatarGroup } from './lib/avatar-group/avatar-group.component';\nexport type { KptAvatarItem } from './lib/avatar-group/avatar-group.component';\nexport { KptEmpty } from './lib/empty/empty.component';\n\n// Nawigacja\nexport { KptTabs } from './lib/tabs/tabs.component';\nexport { KptTab } from './lib/tabs/tab.component';\nexport { KptAccordion } from './lib/accordion/accordion.component';\nexport { KptAccordionPanel } from './lib/accordion/accordion-panel.component';\nexport { KptBreadcrumb } from './lib/breadcrumb/breadcrumb.component';\nexport type { KptBreadcrumbItem } from './lib/breadcrumb/breadcrumb.component';\nexport { KptStepper } from './lib/stepper/stepper.component';\nexport { KptStep } from './lib/stepper/step.component';\n\n// Dane\nexport { KptPaginator } from './lib/paginator/paginator.component';\nexport { KptDataTable } from './lib/data-table/data-table.component';\nexport type {\n KptColumn,\n KptTableLazyState,\n KptColumnEdit,\n KptColumnEditType,\n KptCellEditEvent,\n KptColumnSummary,\n KptSummaryFn,\n} from './lib/data-table/data-table.component';\nexport { KptCellDef } from './lib/data-table/cell.directive';\nexport { KptCellEditDef } from './lib/data-table/cell-edit.directive';\nexport { KptRowDetailDef } from './lib/data-table/row-detail.directive';\nexport { KptTree } from './lib/tree/tree.component';\nexport type { KptTreeNode } from './lib/tree/tree.component';\nexport { KptTimeline } from './lib/timeline/timeline.component';\nexport type { KptTimelineItem } from './lib/timeline/timeline.component';\nexport { KptCarousel } from './lib/carousel/carousel.component';\nexport { KptDataView } from './lib/data-view/data-view.component';\nexport { KptPickList } from './lib/pick-list/pick-list.component';\nexport { KptOrderList } from './lib/order-list/order-list.component';\nexport { KptGalleria } from './lib/galleria/galleria.component';\nexport type { KptGalleriaItem } from './lib/galleria/galleria.component';\n\n// Feedback\nexport { KptAlert } from './lib/alert/alert.component';\nexport type { KptAlertVariant } from './lib/alert/alert.component';\nexport { KptDialog } from './lib/dialog/dialog.component';\nexport { KptToastService } from './lib/toast/toast.service';\nexport type { KptToast, KptToastOptions } from './lib/toast/toast.service';\nexport { KptToastContainer } from './lib/toast/toast-container.component';\nexport { KptTooltip } from './lib/tooltip/tooltip.directive';\nexport type { KptTooltipPosition } from './lib/tooltip/tooltip.directive';\nexport { KptMenu } from './lib/menu/menu.component';\nexport type { KptMenuItem } from './lib/menu/menu.component';\nexport { KptPopover } from './lib/popover/popover.component';\nexport { KptAutocomplete } from './lib/autocomplete/autocomplete.component';\nexport { KptDrawer } from './lib/drawer/drawer.component';\nexport type { KptDrawerPosition } from './lib/drawer/drawer.component';\nexport { KptContextMenu } from './lib/context-menu/context-menu.component';\nexport { KptMenubar } from './lib/menubar/menubar.component';\nexport { KptMegamenu } from './lib/megamenu/megamenu.component';\nexport { KptConfirmService } from './lib/confirm/confirm.service';\nexport type { KptConfirmOptions, KptConfirmRequest } from './lib/confirm/confirm.service';\nexport { KptConfirmContainer } from './lib/confirm/confirm-container.component';\nexport { KptBottomSheet } from './lib/bottom-sheet/bottom-sheet.component';\nexport { KptSpeedDial } from './lib/speed-dial/speed-dial.component';\nexport type { KptSpeedDialDirection } from './lib/speed-dial/speed-dial.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_forTrack0","pad","_forTrack1","toIso","_c1","_c2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"konce-pt-angular.mjs","sources":["../../src/lib/button/button.component.html","../../src/lib/button/button.component.ts","../../src/lib/icon-button/icon-button.component.ts","../../src/lib/button-group/button-group.component.ts","../../src/lib/fab/fab.component.ts","../../src/lib/icon/icons.ts","../../src/lib/icon/icon-registry.ts","../../src/lib/icon/icon.component.ts","../../src/lib/avatar/avatar.component.ts","../../src/lib/badge/badge.component.ts","../../src/lib/i18n/i18n.token.ts","../../src/lib/i18n/messages.ts","../../src/lib/i18n/i18n.service.ts","../../src/lib/split-button/split-button.component.ts","../../src/lib/breakpoint/breakpoints.generated.ts","../../src/lib/breakpoint/breakpoint.service.ts","../../src/lib/i18n/i18n.provider.ts","../../src/lib/chip/chip.component.ts","../../src/lib/spinner/spinner.component.ts","../../src/lib/progress/progress.component.ts","../../src/lib/skeleton/skeleton.component.ts","../../src/lib/form-field/form-field-control.ts","../../src/lib/form-field/form-field.component.html","../../src/lib/form-field/form-field.component.ts","../../src/lib/input/input.component.ts","../../src/lib/input/input.component.html","../../src/lib/checkbox/checkbox.component.ts","../../src/lib/switch/switch.component.ts","../../src/lib/switch-group/switch-group.component.ts","../../src/lib/radio-group/radio-group.component.ts","../../src/lib/select/select.component.html","../../src/lib/select/select.component.ts","../../src/lib/i18n/intl.ts","../../src/lib/datepicker/clock.component.ts","../../src/lib/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.component.ts","../../src/lib/textarea/textarea.component.ts","../../src/lib/tooltip/tooltip.directive.ts","../../src/lib/rich-text/rich-text.component.html","../../src/lib/rich-text/rich-text.component.ts","../../src/lib/slider/slider.component.ts","../../src/lib/rating/rating.component.ts","../../src/lib/file-upload/file-upload.component.ts","../../src/lib/color-picker/color-picker.component.ts","../../src/lib/date-range/date-range.component.html","../../src/lib/date-range/date-range.component.ts","../../src/lib/input-number/input-number.component.ts","../../src/lib/password/password.component.ts","../../src/lib/input-otp/input-otp.component.ts","../../src/lib/chips-input/chips-input.component.ts","../../src/lib/input-mask/input-mask.component.ts","../../src/lib/listbox/listbox.component.ts","../../src/lib/knob/knob.component.ts","../../src/lib/card/card.component.html","../../src/lib/card/card.component.ts","../../src/lib/divider/divider.component.ts","../../src/lib/toolbar/toolbar.component.ts","../../src/lib/sidenav/sidenav.component.ts","../../src/lib/app-shell/app-shell.component.ts","../../src/lib/app-shell/app-shell.component.html","../../src/lib/app-shell/shell-nav-toggle.directive.ts","../../src/lib/panel/panel.component.ts","../../src/lib/fieldset/fieldset.component.ts","../../src/lib/splitter/splitter.component.ts","../../src/lib/scroll-top/scroll-top.component.ts","../../src/lib/image/image.component.ts","../../src/lib/meter-group/meter-group.component.ts","../../src/lib/avatar-group/avatar-group.component.ts","../../src/lib/empty/empty.component.ts","../../src/lib/tabs/tab.component.ts","../../src/lib/tabs/tabs.component.ts","../../src/lib/accordion/accordion-panel.component.ts","../../src/lib/accordion/accordion.component.ts","../../src/lib/breadcrumb/breadcrumb.component.ts","../../src/lib/stepper/step.component.ts","../../src/lib/stepper/stepper.component.ts","../../src/lib/paginator/paginator.component.html","../../src/lib/paginator/paginator.component.ts","../../src/lib/data-table/cell.directive.ts","../../src/lib/data-table/cell-edit.directive.ts","../../src/lib/data-table/cell-text.ts","../../src/lib/data-table/summary.ts","../../src/lib/data-table/column-filter.ts","../../src/lib/data-table/csv-export.ts","../../src/lib/data-table/row-detail.directive.ts","../../src/lib/data-table/data-table.component.html","../../src/lib/data-table/data-table.component.ts","../../src/lib/tree/tree.component.ts","../../src/lib/timeline/timeline.component.ts","../../src/lib/carousel/carousel.component.ts","../../src/lib/data-view/data-view.component.ts","../../src/lib/pick-list/pick-list.component.ts","../../src/lib/order-list/order-list.component.ts","../../src/lib/galleria/galleria.component.ts","../../src/lib/alert/alert.component.ts","../../src/lib/dialog/dialog.component.ts","../../src/lib/toast/toast.service.ts","../../src/lib/toast/toast-container.component.ts","../../src/lib/menu/menu.component.ts","../../src/lib/popover/popover.component.ts","../../src/lib/autocomplete/autocomplete.component.ts","../../src/lib/drawer/drawer.component.ts","../../src/lib/context-menu/context-menu.component.ts","../../src/lib/menubar/menubar.component.ts","../../src/lib/megamenu/megamenu.component.ts","../../src/lib/confirm/confirm.service.ts","../../src/lib/confirm/confirm-container.component.ts","../../src/lib/bottom-sheet/bottom-sheet.component.ts","../../src/lib/speed-dial/speed-dial.component.ts","../../src/public-api.ts","../../src/konce-pt-angular.ts"],"sourcesContent":["<button\n class=\"kpt-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n [class.kpt-button--loading]=\"loading()\"\n [disabled]=\"isDisabled()\"\n>\n @if (loading()) {\n <span class=\"kpt-button__spinner\" aria-hidden=\"true\"></span>\n }\n <span class=\"kpt-button__content\"><ng-content /></span>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nexport type KptButtonVariant = 'filled' | 'tonal' | 'outline' | 'text' | 'danger';\nexport type KptButtonSize = 'sm' | 'md' | 'lg';\n\n/**\n * Przycisk Koncept UI. Renderuje natywny `<button>` (zachowana semantyka i submit\n * formularza). Wygląd sterowany tokenami `--kpt-button-*`.\n *\n * @example\n * <kpt-button variant=\"filled\" (click)=\"save()\">Zapisz</kpt-button>\n * <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"busy()\">Anuluj</kpt-button>\n */\n@Component({\n selector: 'kpt-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n class: 'kpt-button-host',\n '[class.kpt-button-host--full]': 'fullWidth()',\n },\n})\nexport class KptButton {\n /** Wariant wizualny. */\n readonly variant = input<KptButtonVariant>('filled');\n /** Rozmiar. */\n readonly size = input<KptButtonSize>('md');\n /** Typ natywnego przycisku (istotne w formularzach). */\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wyłączony. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Stan ładowania — pokazuje spinner i blokuje interakcję. */\n readonly loading = input(false, { transform: booleanAttribute });\n /** Rozciągnięcie na całą szerokość kontenera. */\n readonly fullWidth = input(false, { transform: booleanAttribute });\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport type { KptButtonVariant, KptButtonSize } from '../button/button.component';\n\n/**\n * Przycisk ikonowy (tylko ikona). Wymaga `ariaLabel` dla dostępności.\n *\n * @example\n * <kpt-icon-button ariaLabel=\"Ustawienia\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n * <kpt-icon-button variant=\"filled\" shape=\"square\" ariaLabel=\"Usuń\"><kpt-icon name=\"x\" /></kpt-icon-button>\n */\n@Component({\n selector: 'kpt-icon-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-icon-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n >\n @if (loading()) {\n <span class=\"kpt-icon-button__spinner\" aria-hidden=\"true\"></span>\n } @else {\n <ng-content />\n }\n </button>\n `,\n styleUrl: './icon-button.component.scss',\n host: { class: 'kpt-icon-button-host' },\n})\nexport class KptIconButton {\n readonly variant = input<KptButtonVariant>('text');\n readonly size = input<KptButtonSize>('md');\n readonly shape = input<'round' | 'square'>('round');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** Etykieta dostępności (wymagana — przycisk nie ma tekstu). */\n readonly ariaLabel = input.required<string>();\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Segmentowana grupa przycisków (toggle) — pojedynczy wybór z opcji. Signal Forms.\n *\n * @example\n * <kpt-button-group [(value)]=\"view\" [options]=\"[{label:'Lista',value:'list'},{label:'Siatka',value:'grid'}]\" />\n * <kpt-button-group [formField]=\"f.period\" [options]=\"periods\" />\n */\n@Component({\n selector: 'kpt-button-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-button-group\" role=\"group\" [attr.data-size]=\"size()\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"kpt-button-group__item\"\n [class.is-active]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n [attr.aria-pressed]=\"opt.value === value()\"\n (click)=\"select(opt)\"\n >{{ opt.label }}</button>\n }\n </div>\n `,\n styleUrl: './button-group.component.scss',\n host: { class: 'kpt-button-group-host' },\n})\nexport class KptButtonGroup<T = unknown> implements FormValueControl<T> {\n readonly options = input<KptOption<T>[]>([]);\n readonly value = model<T>(undefined as T);\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected select(opt: KptOption<T>): void {\n if (opt.disabled || this.disabled()) return;\n this.value.set(opt.value);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\n/**\n * Floating Action Button (FAB) — okrągły, wyniesiony przycisk akcji. Wariant `extended` = pigułka z tekstem.\n *\n * @example\n * <kpt-fab ariaLabel=\"Dodaj\"><kpt-icon name=\"plus\" /></kpt-fab>\n * <kpt-fab extended><kpt-icon name=\"plus\" /> Nowy</kpt-fab>\n */\n@Component({\n selector: 'kpt-fab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-fab\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-fab--extended]=\"extended()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"extended() ? null : ariaLabel()\"\n ><ng-content /></button>\n `,\n styleUrl: './fab.component.scss',\n host: { class: 'kpt-fab-host' },\n})\nexport class KptFab {\n readonly variant = input<'filled' | 'tonal'>('filled');\n readonly size = input<'md' | 'mini'>('md');\n readonly extended = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wymagane dla wariantu okrągłego (bez tekstu). */\n readonly ariaLabel = input('');\n}\n","// Ikony z zestawu Tabler Icons (MIT). Wyodrębnione inline (siatka 24x24, stroke 2px).\n// Źródło i licencja: https://github.com/tabler/tabler-icons (MIT). Zob. ICONS-LICENSE.\nexport type KptIconName = 'menu' | 'x' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'check' | 'search' | 'grip-vertical' | 'info' | 'alert-triangle' | 'circle-check' | 'circle-x' | 'calendar' | 'copy' | 'link' | 'code' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'list' | 'list-numbers' | 'clear-formatting' | 'star' | 'plus' | 'upload' | 'dots-vertical' | 'photo' | 'trash' | 'eye' | 'eye-off' | 'minus' | 'arrow-up' | 'arrow-down' | 'zoom-in' | 'info-circle' | 'phone' | 'map-pin' | 'world' | 'clock' | 'align-left' | 'align-center' | 'align-right' | 'align-justified' | 'palette' | 'highlight' | 'clipboard' | 'clipboard-text' | 'table' | 'pencil' | 'mail' | 'share' | 'external-link' | 'crosshair' | 'adjustments-horizontal';\n\nexport const KPT_ICONS: Record<KptIconName, string> = {\n 'menu': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l16 0\" /> <path d=\"M4 18l16 0\" />',\n 'x': '<path d=\"M18 6l-12 12\" /> <path d=\"M6 6l12 12\" />',\n 'chevron-up': '<path d=\"M6 15l6 -6l6 6\" />',\n 'chevron-down': '<path d=\"M6 9l6 6l6 -6\" />',\n 'chevron-left': '<path d=\"M15 6l-6 6l6 6\" />',\n 'chevron-right': '<path d=\"M9 6l6 6l-6 6\" />',\n 'check': '<path d=\"M5 12l5 5l10 -10\" />',\n 'search': '<path d=\"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\" /> <path d=\"M21 21l-6 -6\" />',\n 'grip-vertical': '<path d=\"M8 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M8 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M8 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M14 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" />',\n 'info': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 9h.01\" /> <path d=\"M11 12h1v4h1\" />',\n 'alert-triangle': '<path d=\"M12 9v4\" /> <path d=\"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0\" /> <path d=\"M12 16h.01\" />',\n 'circle-check': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /> <path d=\"M9 12l2 2l4 -4\" />',\n 'circle-x': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /> <path d=\"M10 10l4 4m0 -4l-4 4\" />',\n 'calendar': '<path d=\"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12\" /> <path d=\"M16 3v4\" /> <path d=\"M8 3v4\" /> <path d=\"M4 11h16\" /> <path d=\"M11 15h1\" /> <path d=\"M12 15v3\" />',\n 'copy': '<path d=\"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666\" /> <path d=\"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1\" />',\n 'link': '<path d=\"M9 15l6 -6\" /> <path d=\"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464\" /> <path d=\"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463\" />',\n 'code': '<path d=\"M7 8l-4 4l4 4\" /> <path d=\"M17 8l4 4l-4 4\" /> <path d=\"M14 4l-4 16\" />',\n 'bold': '<path d=\"M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7\" /> <path d=\"M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7\" />',\n 'italic': '<path d=\"M11 5l6 0\" /> <path d=\"M7 19l6 0\" /> <path d=\"M14 5l-4 14\" />',\n 'underline': '<path d=\"M7 5v5a5 5 0 0 0 10 0v-5\" /> <path d=\"M5 19h14\" />',\n 'strikethrough': '<path d=\"M5 12l14 0\" /> <path d=\"M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5\" />',\n 'list': '<path d=\"M9 6l11 0\" /> <path d=\"M9 12l11 0\" /> <path d=\"M9 18l11 0\" /> <path d=\"M5 6l0 .01\" /> <path d=\"M5 12l0 .01\" /> <path d=\"M5 18l0 .01\" />',\n 'list-numbers': '<path d=\"M11 6h9\" /> <path d=\"M11 12h9\" /> <path d=\"M12 18h8\" /> <path d=\"M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4\" /> <path d=\"M6 10v-6l-2 2\" />',\n 'clear-formatting': '<path d=\"M17 15l4 4m0 -4l-4 4\" /> <path d=\"M7 6v-1h11v1\" /> <path d=\"M7 19l4 0\" /> <path d=\"M13 5l-4 14\" />',\n 'star': '<path d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873l-6.158 -3.245\" />',\n 'plus': '<path d=\"M12 5l0 14\" /> <path d=\"M5 12l14 0\" />',\n 'upload': '<path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2\" /> <path d=\"M7 9l5 -5l5 5\" /> <path d=\"M12 4l0 12\" />',\n 'dots-vertical': '<path d=\"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" /> <path d=\"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\" />',\n 'photo': '<path d=\"M15 8h.01\" /> <path d=\"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12\" /> <path d=\"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5\" /> <path d=\"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3\" />',\n 'trash': '<path d=\"M4 7l16 0\" /> <path d=\"M10 11l0 6\" /> <path d=\"M14 11l0 6\" /> <path d=\"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12\" /> <path d=\"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3\" />',\n 'pencil': '<path d=\"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" /> <path d=\"M13.5 6.5l4 4\" />',\n 'eye': '<path d=\"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /> <path d=\"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6\" />',\n 'eye-off': '<path d=\"M10.585 10.587a2 2 0 0 0 2.829 2.828\" /> <path d=\"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87\" /> <path d=\"M3 3l18 18\" />',\n 'minus': '<path d=\"M5 12l14 0\" />',\n 'arrow-up': '<path d=\"M12 5l0 14\" /> <path d=\"M18 11l-6 -6\" /> <path d=\"M6 11l6 -6\" />',\n 'arrow-down': '<path d=\"M12 5l0 14\" /> <path d=\"M18 13l-6 6\" /> <path d=\"M6 13l6 6\" />',\n 'zoom-in': '<path d=\"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\" /> <path d=\"M7 10l6 0\" /> <path d=\"M10 7l0 6\" /> <path d=\"M21 21l-6 -6\" />',\n 'info-circle': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 9h.01\" /> <path d=\"M11 12h1v4h1\" />',\n 'phone': '<path d=\"M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2\" />',\n 'map-pin': '<path d=\"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0\" /> <path d=\"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z\" />',\n 'world': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M3.6 9h16.8\" /> <path d=\"M3.6 15h16.8\" /> <path d=\"M11.5 3a17 17 0 0 0 0 18\" /> <path d=\"M12.5 3a17 17 0 0 1 0 18\" />',\n 'clock': '<path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" /> <path d=\"M12 7v5l3 3\" />',\n 'align-left': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l10 0\" /> <path d=\"M4 18l14 0\" />',\n 'align-center': '<path d=\"M4 6l16 0\" /> <path d=\"M8 12l8 0\" /> <path d=\"M6 18l12 0\" />',\n 'align-right': '<path d=\"M4 6l16 0\" /> <path d=\"M10 12l10 0\" /> <path d=\"M6 18l14 0\" />',\n 'align-justified': '<path d=\"M4 6l16 0\" /> <path d=\"M4 12l16 0\" /> <path d=\"M4 18l12 0\" />',\n 'palette': '<path d=\"M12 21a9 9 0 0 1 0 -18a9 8 0 0 1 9 8a4.5 4 0 0 1 -4.5 4h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25\" /> <path d=\"M8.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" /> <path d=\"M12.5 7.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" /> <path d=\"M16.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />',\n 'highlight': '<path d=\"M3 19h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" /> <path d=\"M12.5 5.5l4 4\" /> <path d=\"M4.5 13.5l4 4\" /> <path d=\"M21 15v4h-8\" />',\n 'clipboard': '<path d=\"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2\" /> <path d=\"M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z\" />',\n 'clipboard-text': '<path d=\"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2\" /> <path d=\"M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z\" /> <path d=\"M9 12h6\" /> <path d=\"M9 16h6\" />',\n 'table': '<path d=\"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z\" /> <path d=\"M3 10h18\" /> <path d=\"M10 3v18\" />',\n 'mail': '<path d=\"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z\" /> <path d=\"M3 7l9 6l9 -6\" />',\n 'share': '<path d=\"M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\" /> <path d=\"M8.7 10.7l6.6 -3.4\" /> <path d=\"M8.7 13.3l6.6 3.4\" />',\n 'external-link': '<path d=\"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6\" /> <path d=\"M11 13l9 -9\" /> <path d=\"M15 4h5v5\" />',\n 'crosshair': '<path d=\"M4 12h4\" /> <path d=\"M16 12h4\" /> <path d=\"M12 4v4\" /> <path d=\"M12 16v4\" /> <path d=\"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\" />',\n 'adjustments-horizontal': '<path d=\"M12 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 6l8 0\" /> <path d=\"M16 6l4 0\" /> <path d=\"M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 12l2 0\" /> <path d=\"M10 12l10 0\" /> <path d=\"M15 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /> <path d=\"M4 18l11 0\" /> <path d=\"M19 18l1 0\" />',\n};\n","import { Injectable, signal } from '@angular/core';\r\nimport { KPT_ICONS } from './icons';\r\n\r\n// Allowlist SVG dla treści przechodzącej przez `register()` — sam rejestr trafia bez sanitizera\r\n// wprost do `innerHTML` (`icon.component.ts`, markery mapy), więc runtime'owe wywołanie `register()`\r\n// z niezaufaną treścią (CMS/API/upload) byłoby DOM XSS. Wbudowany `KPT_ICONS` (build-time, zaufany)\r\n// nie przechodzi przez ten filtr. Zestaw tagów/atrybutów pokrywa 100% wbudowanych ikon i pełnego\r\n// zestawu Tabler (5130) — oba używają wyłącznie `<path d/fill/opacity/stroke>` — więc sanitizacja\r\n// jest dla nich no-opem.\r\nconst ALLOWED_SVG_TAGS = new Set([\r\n 'path', 'circle', 'rect', 'g', 'line', 'polygon', 'polyline', 'ellipse',\r\n]);\r\nconst ALLOWED_SVG_ATTRS = new Set([\r\n 'd', 'cx', 'cy', 'r', 'rx', 'ry', 'x', 'y', 'x1', 'y1', 'x2', 'y2', 'width', 'height', 'points',\r\n 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'opacity', 'transform',\r\n]);\r\n\r\n/**\r\n * Sanityzuje fragment SVG do allowlisty tagów/atrybutów geometrii — patrz komentarz wyżej.\r\n *\r\n * Fragment MUSI być parsowany owinięty w `<svg>` — parser HTML przełącza się w tryb „foreign\r\n * content\" dopiero po napotkaniu tagu `<svg>`, dopiero wtedy składnia samozamykająca (`<path .../>`)\r\n * jest respektowana. Bez wrappera `<path d=\"…\" />` zostaje w zwykłym trybie HTML, gdzie `path` nie\r\n * jest elementem pustym — kolejne rodzeństwo trafiłoby jako jego DZIECKO zamiast obok niego.\r\n */\r\nfunction sanitizeSvgFragment(svg: string): string {\r\n const tpl = document.createElement('template');\r\n tpl.innerHTML = `<svg>${svg}</svg>`;\r\n const root = tpl.content.firstElementChild;\r\n if (!root) return '';\r\n for (const el of Array.from(root.querySelectorAll('*'))) {\r\n if (!ALLOWED_SVG_TAGS.has(el.tagName.toLowerCase())) {\r\n el.remove();\r\n continue;\r\n }\r\n for (const attr of Array.from(el.attributes)) {\r\n if (!ALLOWED_SVG_ATTRS.has(attr.name.toLowerCase())) el.removeAttribute(attr.name);\r\n }\r\n }\r\n return root.innerHTML;\r\n}\r\n\r\n/**\r\n * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).\r\n * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`\r\n * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class KptIconRegistry {\r\n private readonly icons = new Map<string, string>(Object.entries(KPT_ICONS));\r\n private readonly _version = signal(0);\r\n /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */\r\n readonly version = this._version.asReadonly();\r\n\r\n /**\r\n * Rejestruje (lub nadpisuje) ikony: `{ nazwa: 'inner svg' }`.\r\n *\r\n * Treść jest sanityzowana do allowlisty geometrii SVG (`path`/`circle`/`rect`/`g`/`line`/\r\n * `polygon`/`polyline`/`ellipse` i ich atrybutów kształtu/stylu) — mimo to `register()` wolno\r\n * wołać wyłącznie z treścią kontrolowaną przez developera (build-time), nigdy bezpośrednio\r\n * z danych runtime/CMS/uploadu bez własnej walidacji domenowej wyżej w stosie.\r\n */\r\n register(icons: Record<string, string>): void {\r\n for (const [name, svg] of Object.entries(icons)) {\r\n this.icons.set(name, sanitizeSvgFragment(svg));\r\n }\r\n this._version.update((v) => v + 1);\r\n }\r\n\r\n /** Zwraca wewnętrzny SVG ikony lub undefined. */\r\n get(name: string): string | undefined {\r\n return this.icons.get(name);\r\n }\r\n\r\n has(name: string): boolean {\r\n return this.icons.has(name);\r\n }\r\n}\r\n\r\n/**\r\n * Składa pełny znacznik `<svg>` z wewnętrznego SVG z rejestru.\r\n *\r\n * Wydzielone z `kpt-icon`, bo tego samego stringa potrzebują znaczniki mapy —\r\n * ich HTML powstaje poza Angularem, w DOM zarządzanym przez silnik mapy.\r\n * Pusty `inner` daje pusty string, żeby wołający nie musiał tego sprawdzać.\r\n */\r\nexport function renderKptIconSvg(inner: string | undefined, cssClass = 'kpt-icon'): string {\r\n if (!inner) return '';\r\n return (\r\n `<svg class=\"${cssClass}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"` +\r\n ' stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\r\n inner +\r\n '</svg>'\r\n );\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, effect, inject, input } from '@angular/core';\r\nimport { KptIconRegistry, renderKptIconSvg } from './icon-registry';\r\n\r\n/**\r\n * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`\r\n * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze\r\n * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje\r\n * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.\r\n *\r\n * @example\r\n * <kpt-icon name=\"menu\" />\r\n * <kpt-icon name=\"check\" size=\"1.25rem\" />\r\n */\r\n@Component({\r\n selector: 'kpt-icon',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n styleUrl: './icon.component.scss',\r\n host: {\r\n class: 'kpt-icon-host',\r\n 'aria-hidden': 'true',\r\n '[style.font-size]': 'size() || null',\r\n },\r\n})\r\nexport class KptIcon {\r\n /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */\r\n readonly name = input.required<string>();\r\n /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */\r\n readonly size = input<string>('');\r\n\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly registry = inject(KptIconRegistry);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.registry.version(); // reaguj na późną rejestrację ikon\r\n // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.\r\n this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptAvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type KptAvatarShape = 'circle' | 'square';\n\n/**\n * Awatar — obraz, inicjały (z `name`) lub ikona.\n *\n * `name` trafia do natywnego `title` (podpowiedź spod kursora — inicjały same w sobie\n * nie mówią, kto to jest). Bez `src` awatar dostaje dodatkowo `role=\"img\"` i `aria-label`,\n * a same inicjały są `aria-hidden`, żeby czytnik nie przeczytał „AK\" litera po literze.\n * Przy `src` etykietę niesie już `alt` obrazu — nie dublujemy jej.\n *\n * @example\n * <kpt-avatar src=\"/u/anna.jpg\" />\n * <kpt-avatar name=\"Anna Kowalska\" size=\"lg\" />\n * <kpt-avatar icon=\"user\" shape=\"square\" />\n */\n@Component({\n selector: 'kpt-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span\n class=\"kpt-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.title]=\"name() || null\"\n [attr.role]=\"!src() && name() ? 'img' : null\"\n [attr.aria-label]=\"!src() && name() ? name() : null\"\n >\n @if (src()) {\n <img class=\"kpt-avatar__img\" [src]=\"src()\" [alt]=\"name() || ''\" />\n } @else if (name()) {\n <span class=\"kpt-avatar__initials\" aria-hidden=\"true\">{{ initials() }}</span>\n } @else if (icon()) {\n <kpt-icon [name]=\"icon()!\" />\n }\n </span>\n `,\n styleUrl: './avatar.component.scss',\n host: { class: 'kpt-avatar-host' },\n})\nexport class KptAvatar {\n readonly src = input<string | null>(null);\n readonly name = input<string>('');\n readonly icon = input<string | null>(null);\n readonly size = input<KptAvatarSize>('md');\n readonly shape = input<KptAvatarShape>('circle');\n\n protected readonly initials = computed(() =>\n this.name()\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? '')\n .join(''),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\nexport type KptBadgeSize = 'sm' | 'md' | 'lg';\n\n/**\n * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).\n *\n * @example\n * <kpt-badge [value]=\"3\" variant=\"danger\" />\n * <kpt-badge [value]=\"4\" size=\"sm\" variant=\"success\" />\n * <kpt-badge [value]=\"128\" overlay><kpt-icon name=\"menu\" /></kpt-badge>\n * <kpt-badge dot variant=\"success\" overlay><kpt-avatar name=\"AK\" /></kpt-badge>\n */\n@Component({\n selector: 'kpt-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content />\n <span\n class=\"kpt-badge\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-badge--overlay]=\"overlay()\"\n [class.kpt-badge--dot]=\"dot()\"\n >{{ dot() ? '' : display() }}</span>\n `,\n styleUrl: './badge.component.scss',\n host: { class: 'kpt-badge-host' },\n})\nexport class KptBadge {\n readonly value = input<string | number | null>(null);\n readonly variant = input<KptBadgeVariant>('primary');\n /** Rozmiar — `sm` mieści się w wierszu tekstu, `md` to domyślny licznik. */\n readonly size = input<KptBadgeSize>('md');\n readonly dot = input(false, { transform: booleanAttribute });\n readonly overlay = input(false, { transform: booleanAttribute });\n readonly max = input(99);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (typeof v === 'number' && v > this.max()) return `${this.max()}+`;\n return v ?? '';\n });\n}\n","import { InjectionToken } from '@angular/core';\nimport type { KptLocale, KptMessages } from './messages';\n\n/** Głęboko-opcjonalna wersja typu — dla nadpisań/częściowych słowników. */\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\n/** Konfiguracja i18n przekazywana do `provideKptI18n`. */\nexport interface KptI18nConfig {\n /** Język początkowy (domyślnie 'en'). */\n locale?: KptLocale;\n /**\n * Słowniki do zarejestrowania lub nadpisania, kluczowane kodem języka.\n * Może dodać nowy język (`{ de: {...} }`) lub nadpisać istniejący\n * (`{ en: { paginator: { rowsPerPage: 'Rows:' } } }`). Deep-merge z bazą EN/PL.\n */\n messages?: Record<string, DeepPartial<KptMessages>>;\n}\n\n/** Token konfiguracji i18n. Konsumowany przez `KptI18n`. */\nexport const KPT_I18N_CONFIG = new InjectionToken<KptI18nConfig>('KPT_I18N_CONFIG');\n","/*\n * Kontrakt tłumaczeń Koncept UI + słowniki bazowe (EN, PL).\n *\n * Plik jest celowo wolny od zależności Angulara — to czysty TypeScript/JSON.\n * Dzięki temu ten sam kontrakt (`KptMessages`) i te same słowniki przenoszą się\n * 1:1 do przyszłego portu React (Context + hook zamiast DI).\n *\n * Autor nowego języka wypełnia strukturę `KptMessages` (np. `de.json`) i podaje\n * ją przez `provideKptI18n({ locale: 'de', messages: { de } })`. Brakujące klucze\n * spadają na fallback EN.\n */\n\n/** Kod języka. Otwarty string — EN/PL mają podpowiedzi, ale dozwolony dowolny. */\nexport type KptLocale = 'en' | 'pl' | (string & {});\n\n/** Pełny słownik etykiet UI używanych przez komponenty biblioteki. */\nexport interface KptMessages {\n /** Etykiety współdzielone przez wiele komponentów (przyciski ikonowe itp.). */\n common: {\n close: string;\n remove: string;\n previous: string;\n next: string;\n clear: string;\n done: string;\n all: string;\n };\n paginator: {\n rowsPerPage: string;\n /** Interpolacja: {start}, {end}, {total}. */\n range: string;\n prevPage: string;\n nextPage: string;\n };\n select: {\n search: string;\n noResults: string;\n removeChip: string;\n };\n listbox: {\n search: string;\n empty: string;\n };\n dataView: {\n list: string;\n grid: string;\n empty: string;\n /** Interpolacja: {count}. */\n count: string;\n };\n roadmap: {\n empty: string;\n /** Prefiks numeru tygodnia na osi, np. „W\" w „W35\". */\n week: string;\n today: string;\n milestone: string;\n expandGroup: string;\n collapseGroup: string;\n };\n map: {\n /** Pozycja menu po kliknięciu mapy prawym przyciskiem. */\n addLocation: string;\n chooseCategory: string;\n myLocation: string;\n locateMe: string;\n locationDenied: string;\n locationUnavailable: string;\n zoomIn: string;\n zoomOut: string;\n legend: string;\n /** Interpolacja: {category}. */\n showCategory: string;\n /** Interpolacja: {category}. */\n hideCategory: string;\n /** Etykieta grupy znaczników dla czytnika ekranu. Interpolacja: {count}. */\n cluster: string;\n /** Nagłówek listy pokazywanej, gdy grupy nie da się rozbić zoomem. */\n clusterItems: string;\n /** Interpolacja: {label}. */\n fieldRequired: string;\n /** Notka w formularzu, gdy trwa geokodowanie wsteczne. */\n lookingUpAddress: string;\n /** Notka, gdy geokoder nie ustalił adresu dla klikniętego punktu. */\n addressNotFound: string;\n latitude: string;\n longitude: string;\n empty: string;\n save: string;\n cancel: string;\n /** Karta miejsca (`kpt-map-poi-card`). */\n poi: {\n /** Interpolacja: {distance}. */\n distanceAway: string;\n openNow: string;\n closedNow: string;\n /** Interpolacja: {time}. */\n opensAt: string;\n /** Interpolacja: {time}. */\n closesAt: string;\n alwaysOpen: string;\n openingHours: string;\n closedDay: string;\n call: string;\n sendEmail: string;\n openWebsite: string;\n coordinates: string;\n copy: string;\n copied: string;\n share: string;\n addFavourite: string;\n removeFavourite: string;\n noPhoto: string;\n };\n /** Wyszukiwarka adresów (`kpt-map-search`). */\n search: {\n /** Podpowiedź w pustym polu. */\n placeholder: string;\n /** Nazwa dostępna pola — nie ma przy nim widocznej etykiety. */\n label: string;\n /** Etykieta listy podpowiedzi dla czytnika ekranu. */\n results: string;\n clear: string;\n noResults: string;\n /** Fraza za krótka. Interpolacja: {count}. */\n minLength: string;\n searching: string;\n /** Liczba znalezionych podpowiedzi dla czytnika. Interpolacja: {count}. */\n found: string;\n };\n /** Pola formularza „dodaj lokalizację\" poza wspólnymi komunikatami. */\n field: {\n invalidEmail: string;\n invalidUrl: string;\n /** Interpolacja: {max}. */\n imageTooLarge: string;\n pickImage: string;\n orPasteUrl: string;\n removeImage: string;\n imagePreview: string;\n hoursClosed: string;\n hoursFrom: string;\n hoursTo: string;\n hoursSameAllWeek: string;\n hoursAddRange: string;\n hoursRemoveRange: string;\n /** Interpolacja: {day}. */\n hoursIncomplete: string;\n };\n };\n dataTable: {\n search: string;\n exportCsv: string;\n loading: string;\n empty: string;\n selectAll: string;\n selectRow: string;\n expandRow: string;\n /** Interpolacja: {column}. */\n filter: string;\n /** Interpolacja: {column}. */\n filterMin: string;\n /** Interpolacja: {column}. */\n filterMax: string;\n all: string;\n dateRange: string;\n min: string;\n max: string;\n /** Interpolacja: {column}. Aria-label edytowalnej komórki. */\n editCell: string;\n /** Domyślna etykieta wiersza podsumowania (input `summaryLabel` ma priorytet). */\n total: string;\n };\n confirm: {\n header: string;\n accept: string;\n reject: string;\n };\n fileUpload: {\n /** Może zawierać `<strong>…</strong>`. */\n hint: string;\n remove: string;\n };\n chipsInput: {\n placeholder: string;\n };\n dateRange: {\n placeholder: string;\n from: string;\n to: string;\n fromTime: string;\n toTime: string;\n };\n datepicker: {\n prevMonth: string;\n nextMonth: string;\n prevYear: string;\n nextYear: string;\n prevYears: string;\n nextYears: string;\n prevDecades: string;\n nextDecades: string;\n chooseMonth: string;\n chooseYear: string;\n chooseDecade: string;\n calendar: string;\n month: string;\n time: string;\n };\n pickList: {\n available: string;\n selected: string;\n moveAllRight: string;\n moveRight: string;\n moveLeft: string;\n moveAllLeft: string;\n };\n orderList: {\n up: string;\n down: string;\n };\n inputNumber: {\n decrement: string;\n increment: string;\n };\n password: {\n show: string;\n hide: string;\n /** Etykiety miernika siły (indeksy 0–4). */\n strength: [string, string, string, string, string];\n };\n spinner: {\n label: string;\n };\n speedDial: {\n actions: string;\n };\n scrollTop: {\n label: string;\n };\n splitButton: {\n more: string;\n };\n panel: {\n toggle: string;\n };\n appShell: {\n /** Etykieta przycisku otwierającego i zamykającego panel boczny. */\n toggleNavigation: string;\n /** Etykieta dostępności panelu bocznego. */\n navigation: string;\n };\n breadcrumb: {\n label: string;\n };\n galleria: {\n /** Interpolacja: {index}. */\n image: string;\n };\n carousel: {\n /** Interpolacja: {index}. */\n slide: string;\n };\n richText: {\n // Etykiety narzędzi paska (klucze = KptRichTool).\n copy: string;\n paste: string;\n pasteText: string;\n heading: string;\n bold: string;\n italic: string;\n underline: string;\n strike: string;\n ul: string;\n ol: string;\n foreColor: string;\n backColor: string;\n alignLeft: string;\n alignCenter: string;\n alignRight: string;\n alignJustify: string;\n link: string;\n table: string;\n clear: string;\n html: string;\n /** Styl bloku „Normalny\" (select). */\n styleNormal: string;\n /** Interpolacja: {level}. */\n styleHeading: string;\n linkPrompt: string;\n htmlSource: string;\n /** Etykieta „Własny…\" przy pickerze koloru. */\n paletteCustom: string;\n /** Menu kontekstowe tabeli. */\n menu: {\n column: string;\n row: string;\n cell: string;\n insertLeft: string;\n insertRight: string;\n headerColumn: string;\n deleteColumn: string;\n insertAbove: string;\n insertBelow: string;\n headerRow: string;\n deleteRow: string;\n cellBackground: string;\n alignLeft: string;\n alignCenter: string;\n alignRight: string;\n mergeCells: string;\n splitCell: string;\n border: string;\n deleteTable: string;\n };\n /** Popover obramowania. */\n border: {\n table: string;\n cell: string;\n none: string;\n thin: string;\n medium: string;\n thick: string;\n customColor: string;\n };\n };\n}\n\nexport const KPT_MESSAGES_EN: KptMessages = {\n common: {\n close: 'Close',\n remove: 'Remove',\n previous: 'Previous',\n next: 'Next',\n clear: 'Clear',\n done: 'Done',\n all: 'All',\n },\n paginator: {\n rowsPerPage: 'Rows:',\n range: '{start}–{end} of {total}',\n prevPage: 'Previous page',\n nextPage: 'Next page',\n },\n select: {\n search: 'Search…',\n noResults: 'No results',\n removeChip: 'Remove',\n },\n listbox: {\n search: 'Search…',\n empty: 'No items',\n },\n dataView: {\n list: 'List',\n grid: 'Grid',\n empty: 'No items',\n count: '{count} items',\n },\n roadmap: {\n empty: 'No items on the roadmap',\n week: 'W',\n today: 'Today',\n milestone: 'Milestone',\n expandGroup: 'Expand group',\n collapseGroup: 'Collapse group',\n },\n map: {\n addLocation: 'Add location',\n chooseCategory: 'Choose a category',\n myLocation: 'My location',\n locateMe: 'Centre on my location',\n locationDenied: 'Location access denied',\n locationUnavailable: 'Location unavailable',\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n legend: 'Legend',\n showCategory: 'Show {category}',\n hideCategory: 'Hide {category}',\n cluster: 'Group of {count} locations',\n clusterItems: 'Locations in this group',\n fieldRequired: '{label} is required',\n lookingUpAddress: 'Looking up the address…',\n addressNotFound: 'No address found for this point',\n latitude: 'Latitude',\n longitude: 'Longitude',\n empty: 'No locations',\n save: 'Save',\n cancel: 'Cancel',\n poi: {\n distanceAway: '{distance} away',\n openNow: 'Open',\n closedNow: 'Closed',\n opensAt: 'opens at {time}',\n closesAt: 'closes at {time}',\n alwaysOpen: 'Open 24/7',\n openingHours: 'Opening hours',\n closedDay: 'Closed',\n call: 'Call',\n sendEmail: 'Send an e-mail',\n openWebsite: 'Open the website',\n coordinates: 'Coordinates',\n copy: 'Copy',\n copied: 'Copied',\n share: 'Share',\n addFavourite: 'Add to favourites',\n removeFavourite: 'Remove from favourites',\n noPhoto: 'No photo',\n },\n search: {\n placeholder: 'Search for an address…',\n label: 'Search for an address',\n results: 'Address suggestions',\n clear: 'Clear the search',\n noResults: 'No matching places',\n minLength: 'Type at least {count} characters',\n searching: 'Searching…',\n found: '{count} suggestions',\n },\n field: {\n invalidEmail: 'Enter a valid e-mail address',\n invalidUrl: 'Enter an address starting with http:// or https://',\n imageTooLarge: 'The picture must be no larger than {max}',\n pickImage: 'Pick a picture',\n orPasteUrl: 'or paste a picture address',\n removeImage: 'Remove the picture',\n imagePreview: 'Picture preview',\n hoursClosed: 'Closed',\n hoursFrom: 'From',\n hoursTo: 'To',\n hoursSameAllWeek: 'Same all week',\n hoursAddRange: 'Add a second range',\n hoursRemoveRange: 'Remove the range',\n hoursIncomplete: 'Set both times for {day} or mark the day as closed',\n },\n },\n dataTable: {\n search: 'Search…',\n exportCsv: 'Export CSV',\n loading: 'Loading…',\n empty: 'No data',\n selectAll: 'Select all',\n selectRow: 'Select row',\n expandRow: 'Expand row',\n filter: 'Filter: {column}',\n filterMin: 'Filter min: {column}',\n filterMax: 'Filter max: {column}',\n all: 'All',\n dateRange: 'Date range',\n min: 'min',\n max: 'max',\n editCell: 'Edit: {column}',\n total: 'Total',\n },\n confirm: {\n header: 'Confirmation',\n accept: 'Confirm',\n reject: 'Cancel',\n },\n fileUpload: {\n hint: '<strong>Click</strong> or drag files here',\n remove: 'Remove',\n },\n chipsInput: {\n placeholder: 'Add and press Enter…',\n },\n dateRange: {\n placeholder: 'Select range',\n from: 'From',\n to: 'To',\n fromTime: 'From (time)',\n toTime: 'To (time)',\n },\n datepicker: {\n prevMonth: 'Previous month',\n nextMonth: 'Next month',\n prevYear: 'Previous year',\n nextYear: 'Next year',\n prevYears: 'Previous years',\n nextYears: 'Next years',\n prevDecades: 'Previous decades',\n nextDecades: 'Next decades',\n chooseMonth: 'Choose month',\n chooseYear: 'Choose year',\n chooseDecade: 'Choose decade',\n calendar: 'Calendar',\n month: 'Month',\n time: 'Time',\n },\n pickList: {\n available: 'Available',\n selected: 'Selected',\n moveAllRight: 'Move all right',\n moveRight: 'Move right',\n moveLeft: 'Move left',\n moveAllLeft: 'Move all left',\n },\n orderList: {\n up: 'Up',\n down: 'Down',\n },\n inputNumber: {\n decrement: 'Decrease',\n increment: 'Increase',\n },\n password: {\n show: 'Show password',\n hide: 'Hide password',\n strength: ['Very weak', 'Weak', 'Medium', 'Good', 'Strong'],\n },\n spinner: {\n label: 'Loading',\n },\n speedDial: {\n actions: 'Actions',\n },\n scrollTop: {\n label: 'Scroll to top',\n },\n splitButton: {\n more: 'More actions',\n },\n panel: {\n toggle: 'Collapse / expand',\n },\n appShell: {\n toggleNavigation: 'Toggle navigation',\n navigation: 'Main navigation',\n },\n breadcrumb: {\n label: 'breadcrumb',\n },\n galleria: {\n image: 'Image {index}',\n },\n carousel: {\n slide: 'Slide {index}',\n },\n richText: {\n copy: 'Copy',\n paste: 'Paste with formatting',\n pasteText: 'Paste without formatting',\n heading: 'Style',\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strike: 'Strikethrough',\n ul: 'Bulleted list',\n ol: 'Numbered list',\n foreColor: 'Text color',\n backColor: 'Text background color',\n alignLeft: 'Align left',\n alignCenter: 'Center',\n alignRight: 'Align right',\n alignJustify: 'Justify',\n link: 'Insert link',\n table: 'Table',\n clear: 'Clear formatting',\n html: 'HTML preview',\n styleNormal: 'Normal',\n styleHeading: 'Heading {level}',\n linkPrompt: 'URL:',\n htmlSource: 'HTML source',\n paletteCustom: 'Custom…',\n menu: {\n column: 'Column',\n row: 'Row',\n cell: 'Cell',\n insertLeft: 'Insert left',\n insertRight: 'Insert right',\n headerColumn: 'Header column',\n deleteColumn: 'Delete column',\n insertAbove: 'Insert above',\n insertBelow: 'Insert below',\n headerRow: 'Header row',\n deleteRow: 'Delete row',\n cellBackground: 'Background color',\n alignLeft: 'Left',\n alignCenter: 'Center',\n alignRight: 'Right',\n mergeCells: 'Merge cells',\n splitCell: 'Split cell',\n border: 'Border…',\n deleteTable: 'Delete table',\n },\n border: {\n table: 'Table',\n cell: 'Cell',\n none: 'None',\n thin: 'Thin',\n medium: 'Medium',\n thick: 'Thick',\n customColor: 'Color…',\n },\n },\n};\n\nexport const KPT_MESSAGES_PL: KptMessages = {\n common: {\n close: 'Zamknij',\n remove: 'Usuń',\n previous: 'Poprzedni',\n next: 'Następny',\n clear: 'Wyczyść',\n done: 'Gotowe',\n all: 'Wszystkie',\n },\n paginator: {\n rowsPerPage: 'Wierszy:',\n range: '{start}–{end} z {total}',\n prevPage: 'Poprzednia strona',\n nextPage: 'Następna strona',\n },\n select: {\n search: 'Szukaj…',\n noResults: 'Brak wyników',\n removeChip: 'Usuń',\n },\n listbox: {\n search: 'Szukaj…',\n empty: 'Brak pozycji',\n },\n dataView: {\n list: 'Lista',\n grid: 'Siatka',\n empty: 'Brak elementów',\n count: '{count} elementów',\n },\n roadmap: {\n empty: 'Brak elementów na roadmapie',\n week: 'T',\n today: 'Dziś',\n milestone: 'Kamień milowy',\n expandGroup: 'Rozwiń grupę',\n collapseGroup: 'Zwiń grupę',\n },\n map: {\n addLocation: 'Dodaj lokalizację',\n chooseCategory: 'Wybierz kategorię',\n myLocation: 'Moje położenie',\n locateMe: 'Wyśrodkuj na moim położeniu',\n locationDenied: 'Brak zgody na dostęp do lokalizacji',\n locationUnavailable: 'Położenie niedostępne',\n zoomIn: 'Przybliż',\n zoomOut: 'Oddal',\n legend: 'Legenda',\n showCategory: 'Pokaż: {category}',\n hideCategory: 'Ukryj: {category}',\n cluster: 'Grupa {count} lokalizacji',\n clusterItems: 'Lokalizacje w tej grupie',\n fieldRequired: 'Pole „{label}\" jest wymagane',\n lookingUpAddress: 'Szukam adresu…',\n addressNotFound: 'Nie znaleziono adresu dla tego punktu',\n latitude: 'Szerokość',\n longitude: 'Długość',\n empty: 'Brak lokalizacji',\n save: 'Zapisz',\n cancel: 'Anuluj',\n poi: {\n distanceAway: '{distance} od Ciebie',\n openNow: 'Otwarte',\n closedNow: 'Zamknięte',\n opensAt: 'otwarcie o {time}',\n closesAt: 'zamknięcie o {time}',\n alwaysOpen: 'Czynne całą dobę',\n openingHours: 'Godziny otwarcia',\n closedDay: 'Zamknięte',\n call: 'Zadzwoń',\n sendEmail: 'Napisz wiadomość',\n openWebsite: 'Otwórz stronę',\n coordinates: 'Współrzędne',\n copy: 'Kopiuj',\n copied: 'Skopiowano',\n share: 'Udostępnij',\n addFavourite: 'Dodaj do ulubionych',\n removeFavourite: 'Usuń z ulubionych',\n noPhoto: 'Brak zdjęcia',\n },\n search: {\n placeholder: 'Szukaj adresu…',\n label: 'Szukaj adresu',\n results: 'Podpowiedzi adresów',\n clear: 'Wyczyść wyszukiwanie',\n noResults: 'Brak pasujących miejsc',\n minLength: 'Wpisz więcej znaków (minimum: {count})',\n searching: 'Szukam…',\n found: 'Podpowiedzi: {count}',\n },\n field: {\n invalidEmail: 'Podaj poprawny adres e-mail',\n invalidUrl: 'Podaj adres zaczynający się od http:// albo https://',\n imageTooLarge: 'Zdjęcie może mieć najwyżej {max}',\n pickImage: 'Wybierz zdjęcie',\n orPasteUrl: 'albo wklej adres zdjęcia',\n removeImage: 'Usuń zdjęcie',\n imagePreview: 'Podgląd zdjęcia',\n hoursClosed: 'Zamknięte',\n hoursFrom: 'Od',\n hoursTo: 'Do',\n hoursSameAllWeek: 'Tak samo przez cały tydzień',\n hoursAddRange: 'Dodaj drugi przedział',\n hoursRemoveRange: 'Usuń przedział',\n hoursIncomplete: 'Podaj obie godziny dla dnia {day} albo oznacz go jako zamknięty',\n },\n },\n dataTable: {\n search: 'Szukaj…',\n exportCsv: 'Eksport CSV',\n loading: 'Ładowanie…',\n empty: 'Brak danych',\n selectAll: 'Zaznacz wszystkie',\n selectRow: 'Zaznacz wiersz',\n expandRow: 'Rozwiń wiersz',\n filter: 'Filtr: {column}',\n filterMin: 'Filtr min: {column}',\n filterMax: 'Filtr max: {column}',\n all: 'Wszystkie',\n dateRange: 'Zakres dat',\n min: 'min',\n max: 'max',\n editCell: 'Edytuj: {column}',\n total: 'Razem',\n },\n confirm: {\n header: 'Potwierdzenie',\n accept: 'Potwierdź',\n reject: 'Anuluj',\n },\n fileUpload: {\n hint: '<strong>Kliknij</strong> lub przeciągnij pliki tutaj',\n remove: 'Usuń',\n },\n chipsInput: {\n placeholder: 'Dodaj i naciśnij Enter…',\n },\n dateRange: {\n placeholder: 'Wybierz zakres',\n from: 'Od',\n to: 'Koniec',\n fromTime: 'Od (godzina)',\n toTime: 'Koniec (godzina)',\n },\n datepicker: {\n prevMonth: 'Poprzedni miesiąc',\n nextMonth: 'Następny miesiąc',\n prevYear: 'Poprzedni rok',\n nextYear: 'Następny rok',\n prevYears: 'Poprzednie lata',\n nextYears: 'Następne lata',\n prevDecades: 'Poprzednie dekady',\n nextDecades: 'Następne dekady',\n chooseMonth: 'Wybierz miesiąc',\n chooseYear: 'Wybierz rok',\n chooseDecade: 'Wybierz dekadę',\n calendar: 'Kalendarz',\n month: 'Miesiąc',\n time: 'Godzina',\n },\n pickList: {\n available: 'Dostępne',\n selected: 'Wybrane',\n moveAllRight: 'Przenieś wszystko w prawo',\n moveRight: 'Przenieś w prawo',\n moveLeft: 'Przenieś w lewo',\n moveAllLeft: 'Przenieś wszystko w lewo',\n },\n orderList: {\n up: 'W górę',\n down: 'W dół',\n },\n inputNumber: {\n decrement: 'Zmniejsz',\n increment: 'Zwiększ',\n },\n password: {\n show: 'Pokaż hasło',\n hide: 'Ukryj hasło',\n strength: ['Bardzo słabe', 'Słabe', 'Średnie', 'Dobre', 'Silne'],\n },\n spinner: {\n label: 'Ładowanie',\n },\n speedDial: {\n actions: 'Akcje',\n },\n scrollTop: {\n label: 'Przewiń do góry',\n },\n splitButton: {\n more: 'Więcej akcji',\n },\n panel: {\n toggle: 'Zwiń / rozwiń',\n },\n appShell: {\n toggleNavigation: 'Przełącz nawigację',\n navigation: 'Nawigacja główna',\n },\n breadcrumb: {\n label: 'breadcrumb',\n },\n galleria: {\n image: 'Obraz {index}',\n },\n carousel: {\n slide: 'Slajd {index}',\n },\n richText: {\n copy: 'Kopiuj',\n paste: 'Wklej z formatowaniem',\n pasteText: 'Wklej bez formatowania',\n heading: 'Styl',\n bold: 'Pogrubienie',\n italic: 'Kursywa',\n underline: 'Podkreślenie',\n strike: 'Przekreślenie',\n ul: 'Lista punktowana',\n ol: 'Lista numerowana',\n foreColor: 'Kolor tekstu',\n backColor: 'Kolor tła tekstu',\n alignLeft: 'Wyrównaj do lewej',\n alignCenter: 'Wyśrodkuj',\n alignRight: 'Wyrównaj do prawej',\n alignJustify: 'Wyjustuj',\n link: 'Wstaw link',\n table: 'Tabela',\n clear: 'Usuń formatowanie',\n html: 'Podgląd HTML',\n styleNormal: 'Normalny',\n styleHeading: 'Nagłówek {level}',\n linkPrompt: 'Adres URL:',\n htmlSource: 'Źródło HTML',\n paletteCustom: 'Własny…',\n menu: {\n column: 'Kolumna',\n row: 'Wiersz',\n cell: 'Komórka',\n insertLeft: 'Wstaw z lewej',\n insertRight: 'Wstaw z prawej',\n headerColumn: 'Nagłówek kolumny',\n deleteColumn: 'Usuń kolumnę',\n insertAbove: 'Wstaw powyżej',\n insertBelow: 'Wstaw poniżej',\n headerRow: 'Nagłówek wiersza',\n deleteRow: 'Usuń wiersz',\n cellBackground: 'Kolor tła',\n alignLeft: 'Do lewej',\n alignCenter: 'Wyśrodkuj',\n alignRight: 'Do prawej',\n mergeCells: 'Scal komórki',\n splitCell: 'Podziel komórkę',\n border: 'Obramowanie…',\n deleteTable: 'Usuń tabelę',\n },\n border: {\n table: 'Tabela',\n cell: 'Komórka',\n none: 'Bez',\n thin: 'Cienkie',\n medium: 'Średnie',\n thick: 'Grube',\n customColor: 'Kolor…',\n },\n },\n};\n","import { Injectable, computed, inject, signal } from '@angular/core';\nimport type { DeepPartial } from './i18n.token';\nimport { KPT_I18N_CONFIG } from './i18n.token';\nimport { KPT_MESSAGES_EN, KPT_MESSAGES_PL, type KptLocale, type KptMessages } from './messages';\n\ntype PlainObject = Record<string, unknown>;\n\n/** Deep-merge `patch` na kopię `base` (łączy tylko obiekty, wartości nadpisuje). */\nfunction deepMerge<T>(base: T, patch: DeepPartial<T>): T {\n const out: PlainObject = { ...(base as unknown as PlainObject) };\n for (const [key, value] of Object.entries(patch as PlainObject)) {\n const current = out[key];\n if (value && typeof value === 'object' && !Array.isArray(value) && current && typeof current === 'object') {\n out[key] = deepMerge(current, value as DeepPartial<unknown>);\n } else if (value !== undefined) {\n out[key] = value;\n }\n }\n return out as T;\n}\n\n/**\n * Serwis tłumaczeń Koncept UI. Trzyma rejestr słowników per język, bieżący locale\n * (sygnał) i funkcję `t()` z interpolacją. Skonfiguruj przez `provideKptI18n(...)`.\n *\n * Domyślnie EN. Języki bazowe: EN, PL. Dowolny inny język dodaje się jednym\n * słownikiem (`registerMessages` lub `provideKptI18n({ messages: { de } })`);\n * brakujące klucze spadają na EN.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptI18n {\n /** Rejestr słowników: język → pełny `KptMessages`. */\n private readonly registry = new Map<KptLocale, KptMessages>([\n ['en', KPT_MESSAGES_EN],\n ['pl', KPT_MESSAGES_PL],\n ]);\n\n private readonly _locale = signal<KptLocale>('en');\n /** Bieżący język (tylko do odczytu). */\n readonly locale = this._locale.asReadonly();\n\n /** Aktywny słownik (z fallbackiem na EN, gdy język nieznany). */\n readonly messages = computed<KptMessages>(() => this.registry.get(this._locale()) ?? KPT_MESSAGES_EN);\n\n constructor() {\n const config = inject(KPT_I18N_CONFIG, { optional: true });\n if (config?.messages) {\n for (const [locale, patch] of Object.entries(config.messages)) {\n this.registerMessages(locale, patch);\n }\n }\n if (config?.locale) this._locale.set(config.locale);\n }\n\n /** Ustawia bieżący język. Zmiana jest reaktywna dla wszystkich komponentów. */\n setLocale(locale: KptLocale): void {\n this._locale.set(locale);\n }\n\n /**\n * Rejestruje lub nadpisuje słownik języka. Częściowy słownik deep-merge'uje się\n * na istniejący (lub EN dla nowego języka) → brakujące klucze mają wartość EN.\n */\n registerMessages(locale: KptLocale, patch: DeepPartial<KptMessages>): void {\n const base = this.registry.get(locale) ?? KPT_MESSAGES_EN;\n this.registry.set(locale, deepMerge(base, patch));\n }\n\n /**\n * Tłumaczy klucz w notacji kropkowej (np. `'paginator.range'`), z opcjonalną\n * interpolacją `{name}`. Brakujący klucz spada na EN, a w ostateczności zwraca sam klucz.\n */\n t(key: string, params?: Record<string, string | number>): string {\n const raw = this.lookup(this.messages(), key) ?? this.lookup(KPT_MESSAGES_EN, key) ?? key;\n if (!params) return raw;\n return raw.replace(/\\{(\\w+)\\}/g, (_, name) => String(params[name] ?? `{${name}}`));\n }\n\n private lookup(dict: KptMessages, key: string): string | undefined {\n let node: unknown = dict;\n for (const part of key.split('.')) {\n if (node && typeof node === 'object' && part in node) {\n node = (node as PlainObject)[part];\n } else {\n return undefined;\n }\n }\n return typeof node === 'string' ? node : undefined;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport type { KptButtonVariant } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Przycisk dzielony (split button) — akcja główna + rozwijane menu dodatkowych akcji.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-split-button [items]=\"items\" (primaryClick)=\"save()\" (selected)=\"onItem($event)\">Zapisz</kpt-split-button>\n */\n@Component({\n selector: 'kpt-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-split-button\" [attr.data-variant]=\"variant()\">\n <button class=\"kpt-split-button__main\" type=\"button\" [disabled]=\"disabled()\" (click)=\"primaryClick.emit()\">\n <ng-content />\n </button>\n <button\n class=\"kpt-split-button__toggle\"\n type=\"button\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [disabled]=\"disabled()\"\n (click)=\"open.set(!open())\"\n [attr.aria-label]=\"i18n.t('splitButton.more')\"\n ><kpt-icon name=\"chevron-down\" /></button>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"open.set(false)\"\n >\n <div class=\"kpt-split-button__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-split-button__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-split-button__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-split-button__text\">\n @if (item.label) { <span class=\"kpt-split-button__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-split-button__item\"\n [class.kpt-split-button__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-split-button__text\">\n <span class=\"kpt-split-button__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-split-button__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './split-button.component.scss',\n host: { class: 'kpt-split-button-host' },\n})\nexport class KptSplitButton<T = unknown> {\n readonly variant = input<KptButtonVariant>('filled');\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly primaryClick = output<void>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.open.set(false);\n }\n}\n","// Do not edit directly — generated by scripts/gen-tokens.mjs\n// from @konce-pt/tokens (tokens/primitives/breakpoint.json).\n\n/** Nazwa breakpointa z tokenów `--kpt-breakpoint-*` (mobile-first). */\nexport type KptBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/** Progi breakpointów w pikselach — te same wartości, z których korzystają `@media` biblioteki. */\nexport const KPT_BREAKPOINTS: Record<KptBreakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, Injectable, PLATFORM_ID, type Signal, inject, signal } from '@angular/core';\nimport { KPT_BREAKPOINTS, type KptBreakpoint } from './breakpoints.generated';\n\n/**\n * Obserwator breakpointów oparty na `matchMedia`, spięty z tokenami `--kpt-breakpoint-*`.\n * Zwraca sygnały, więc czyta się go tak samo w `computed`, w szablonie i w `effect`.\n *\n * Zapytania są memoizowane per string: `up('lg')` wywołane w wielu komponentach dzieli\n * jeden `MediaQueryList` i jeden nasłuch.\n *\n * Poza przeglądarką (SSR, prerender) każdy sygnał to stałe `false`. Dlatego **układ**\n * komponentów biblioteki nigdy nie zależy od tego serwisu — o tym, jak wygląda strona,\n * decyduje CSS, żeby nic nie migotało przed hydracją. Serwis odpowiada za zachowania,\n * których CSS nie wyrazi (np. w którą stronę ma zadziałać przycisk).\n *\n * @example\n * private readonly breakpoints = inject(KptBreakpointObserver);\n * readonly isDesktop = this.breakpoints.up('lg');\n */\n@Injectable({ providedIn: 'root' })\nexport class KptBreakpointObserver {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly destroyRef = inject(DestroyRef);\n private readonly cache = new Map<string, Signal<boolean>>();\n\n /** Dowolne media query jako sygnał. */\n matches(query: string): Signal<boolean> {\n const cached = this.cache.get(query);\n if (cached) return cached;\n\n const result = this.isBrowser ? this.observe(query) : signal(false).asReadonly();\n this.cache.set(query, result);\n return result;\n }\n\n /** Czy viewport ma szerokość co najmniej danego breakpointa (mobile-first). */\n up(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(min-width: ${KPT_BREAKPOINTS[breakpoint]}px)`);\n }\n\n /**\n * Czy viewport jest węższy niż dany breakpoint. Próg schodzi o 0.02px, żeby pasma\n * `up`/`down` nie nakładały się na ułamkowych szerokościach okna (zoom, DPI).\n */\n down(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(max-width: ${KPT_BREAKPOINTS[breakpoint] - 0.02}px)`);\n }\n\n private observe(query: string): Signal<boolean> {\n const list = window.matchMedia(query);\n const state = signal(list.matches);\n const onChange = (event: MediaQueryListEvent): void => state.set(event.matches);\n\n list.addEventListener('change', onChange);\n this.destroyRef.onDestroy(() => list.removeEventListener('change', onChange));\n\n return state.asReadonly();\n }\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { KPT_I18N_CONFIG, type KptI18nConfig } from './i18n.token';\n\n/**\n * Konfiguruje i18n Koncept UI. Ustawia język początkowy i rejestruje/nadpisuje\n * słowniki. Języki bazowe (EN, PL) są dostępne bez konfiguracji.\n *\n * @example\n * // main.ts — polski interfejs\n * bootstrapApplication(App, {\n * providers: [provideKptI18n({ locale: 'pl' })],\n * });\n *\n * @example\n * // Własny język jednym plikiem JSON (brakujące klucze → EN)\n * import de from './i18n/de.json';\n * provideKptI18n({ locale: 'de', messages: { de } });\n *\n * @example\n * // Nadpisanie pojedynczych etykiet istniejącego języka\n * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });\n */\nexport function provideKptI18n(config: KptI18nConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptChipVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Chip / tag — etykieta, opcjonalnie usuwalna.\n *\n * @example\n * <kpt-chip>Angular</kpt-chip>\n * <kpt-chip variant=\"success\" removable (removed)=\"onRemove()\">UI</kpt-chip>\n */\n@Component({\n selector: 'kpt-chip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span class=\"kpt-chip\" [attr.data-variant]=\"variant()\" [class.kpt-chip--disabled]=\"disabled()\">\n <ng-content />\n @if (removable()) {\n <button\n type=\"button\"\n class=\"kpt-chip__remove\"\n [disabled]=\"disabled()\"\n (click)=\"removed.emit()\"\n [attr.aria-label]=\"i18n.t('common.remove')\"\n ><kpt-icon name=\"x\" /></button>\n }\n </span>\n `,\n styleUrl: './chip.component.scss',\n host: { class: 'kpt-chip-host' },\n})\nexport class KptChip {\n readonly variant = input<KptChipVariant>('neutral');\n readonly removable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly removed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Wskaźnik ładowania (spinner). Kolor z `currentColor`.\n *\n * @example\n * <kpt-spinner />\n * <kpt-spinner size=\"2rem\" label=\"Wczytywanie danych\" />\n */\n@Component({\n selector: 'kpt-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<span class=\"kpt-spinner\" role=\"status\" [attr.aria-label]=\"effectiveLabel()\" [style.width]=\"size()\" [style.height]=\"size()\"></span>`,\n styleUrl: './spinner.component.scss',\n host: { class: 'kpt-spinner-host' },\n})\nexport class KptSpinner {\n readonly size = input('1.5rem');\n /** Etykieta a11y; bez wartości używa i18n (`spinner.label`). */\n readonly label = input<string>();\n\n private readonly i18n = inject(KptI18n);\n protected readonly effectiveLabel = computed(() => this.label() ?? this.i18n.t('spinner.label'));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Wskaźnik postępu — liniowy lub kołowy, określony (0–100) lub nieokreślony (`value` = null).\n *\n * @example\n * <kpt-progress [value]=\"60\" />\n * <kpt-progress type=\"circular\" [value]=\"75\" variant=\"success\" />\n * <kpt-progress [value]=\"null\" /> <!-- indeterminate -->\n */\n@Component({\n selector: 'kpt-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (type() === 'circular') {\n <svg\n class=\"kpt-progress__circular\"\n [class.kpt-progress--indeterminate]=\"value() == null\"\n [attr.data-variant]=\"variant()\"\n [attr.width]=\"diameter()\"\n [attr.height]=\"diameter()\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value()\"\n >\n <circle class=\"kpt-progress__track\" cx=\"20\" cy=\"20\" r=\"16\" />\n <circle\n class=\"kpt-progress__bar\"\n cx=\"20\"\n cy=\"20\"\n r=\"16\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"offset()\"\n />\n </svg>\n } @else {\n <div class=\"kpt-progress__linear\" [attr.data-variant]=\"variant()\" role=\"progressbar\" [attr.aria-valuenow]=\"value()\">\n <div class=\"kpt-progress__bar\" [class.kpt-progress--indeterminate]=\"value() == null\" [style.width.%]=\"value() ?? 0\"></div>\n </div>\n }\n `,\n styleUrl: './progress.component.scss',\n host: { class: 'kpt-progress-host' },\n})\nexport class KptProgress {\n /** 0–100 lub null = nieokreślony. */\n readonly value = input<number | null>(null);\n readonly variant = input<KptProgressVariant>('primary');\n readonly type = input<'linear' | 'circular'>('linear');\n readonly diameter = input(40);\n\n protected readonly circumference = 2 * Math.PI * 16;\n protected readonly offset = computed(() => {\n const v = this.value();\n if (v == null) return this.circumference * 0.75;\n return this.circumference * (1 - Math.min(100, Math.max(0, v)) / 100);\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptSkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * Placeholder ładowania (skeleton) z animacją shimmer.\n *\n * @example\n * <kpt-skeleton variant=\"text\" [lines]=\"3\" />\n * <kpt-skeleton variant=\"circle\" width=\"3rem\" height=\"3rem\" />\n * <kpt-skeleton variant=\"rect\" width=\"100%\" height=\"8rem\" />\n */\n@Component({\n selector: 'kpt-skeleton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (variant() === 'text') {\n @for (line of lineArray(); track $index; let last = $last) {\n <span class=\"kpt-skeleton kpt-skeleton--text\" [style.width]=\"last ? '60%' : width()\"></span>\n }\n } @else {\n <span class=\"kpt-skeleton\" [attr.data-variant]=\"variant()\" [style.width]=\"width()\" [style.height]=\"height()\"></span>\n }\n `,\n styleUrl: './skeleton.component.scss',\n host: { class: 'kpt-skeleton-host', 'aria-hidden': 'true' },\n})\nexport class KptSkeleton {\n readonly variant = input<KptSkeletonVariant>('rect');\n readonly width = input('100%');\n readonly height = input('1rem');\n readonly lines = input(3);\n\n protected readonly lineArray = computed(() => Array.from({ length: this.lines() }));\n}\n","import { InjectionToken, type Signal } from '@angular/core';\n\n/**\n * Kontrakt kontrolki dla `kpt-form-field`. Wypełnienie pola (`filled`) steruje uniesieniem\n * etykiety w wariantach Float Label (`over`/`in`/`on`).\n *\n * Kontrolki oparte na natywnym `input`/`textarea` nie muszą nic dostarczać — `kpt-form-field`\n * odczytuje ich `value` bezpośrednio z DOM. Kontrolki bez natywnego pola (np. `kpt-select`,\n * którego panel żyje w overlayu) muszą dostarczyć ten token, inaczej etykieta zostanie\n * na wartości zamiast unieść się nad nią.\n *\n * @example\n * providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }]\n */\nexport interface KptFormFieldControl {\n /** Czy kontrolka ma wartość. Sygnał — `kpt-form-field` reaguje na zmiany bez zdarzeń DOM. */\n readonly filled: Signal<boolean>;\n}\n\n/** Token DI, przez który kontrolka zgłasza `kpt-form-field` swój stan wypełnienia. */\nexport const KPT_FORM_FIELD_CONTROL = new InjectionToken<KptFormFieldControl>('KPT_FORM_FIELD_CONTROL');\n","<div\n class=\"kpt-form-field\"\n [class]=\"'kpt-form-field--' + labelType()\"\n [class.kpt-form-field--float]=\"labelType() !== 'fixed'\"\n [class.kpt-form-field--invalid]=\"!!error()\"\n>\n <div class=\"kpt-form-field__box\" [class.is-filled]=\"filled()\">\n @if (label()) {\n <label class=\"kpt-form-field__label\" [attr.for]=\"controlId() || null\">\n {{ label() }}\n @if (required()) {\n <span class=\"kpt-form-field__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"kpt-form-field__control\">\n <ng-content />\n </div>\n </div>\n\n @if (error()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--error\" role=\"alert\">{{ error() }}</p>\n } @else if (hint()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--hint\">{{ hint() }}</p>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { KPT_FORM_FIELD_CONTROL } from './form-field-control';\n\n/**\n * Wrapper pola formularza: etykieta, podpowiedź i komunikat błędu wokół dowolnej\n * kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`\n * (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.\n *\n * Etykieta ma 4 warianty (`labelType`): `fixed` (domyślny, nad kontrolką) oraz trzy warianty\n * unoszącej się etykiety (Float Label) z animowanym przejściem: `over` (nad obramowaniem),\n * `in` (u góry wewnątrz pola) i `on` (na obramowaniu, notch). Uniesienie następuje przy focusie\n * (CSS `:focus-within`) lub gdy pole jest wypełnione (wykrywane po zdarzeniach `input`/`change`\n * oraz wartości początkowej) — bez wymogu placeholdera na kontrolce. Kontrolki bez natywnego\n * `input`/`textarea` (np. `kpt-select`) zgłaszają wypełnienie tokenem `KPT_FORM_FIELD_CONTROL`.\n *\n * @example\n * <kpt-form-field label=\"E-mail\" [error]=\"emailError()\" hint=\"Firmowy adres\">\n * <kpt-input [formField]=\"f.email\" type=\"email\" />\n * </kpt-form-field>\n *\n * @example\n * <kpt-form-field label=\"E-mail\" labelType=\"over\">\n * <kpt-input />\n * </kpt-form-field>\n */\n@Component({\n selector: 'kpt-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n host: {\n class: 'kpt-form-field-host',\n '(input)': 'updateFilled()',\n '(change)': 'updateFilled()',\n },\n})\nexport class KptFormField {\n /** Tekst etykiety. */\n readonly label = input<string>('');\n /** Podpowiedź pod kontrolką (ukrywana, gdy jest błąd). */\n readonly hint = input<string>('');\n /** Komunikat błędu — gdy niepusty, pole jest oznaczone jako nieprawidłowe. */\n readonly error = input<string | null>(null);\n /** Oznacz pole jako wymagane (gwiazdka przy etykiecie). */\n readonly required = input(false, { transform: booleanAttribute });\n /** Id kontrolki dla powiązania `label[for]`. */\n readonly controlId = input<string>('');\n /**\n * Wariant etykiety: `fixed` (domyślnie, statyczna nad kontrolką) lub Float Label —\n * `over` (nad obramowaniem), `in` (u góry wewnątrz pola), `on` (na obramowaniu, notch).\n * Uniesienie następuje przy focusie lub wypełnieniu pola.\n */\n readonly labelType = input<'fixed' | 'over' | 'in' | 'on'>('fixed');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Kontrolka bez natywnego `input`/`textarea` (np. `kpt-select`) zgłasza wypełnienie sama,\n * przez token `KPT_FORM_FIELD_CONTROL` — jej wartość nie da się odczytać z DOM.\n */\n private readonly control = contentChild(KPT_FORM_FIELD_CONTROL, { descendants: true });\n /** Wypełnienie odczytane z natywnej kontrolki (zdarzenia `input`/`change` + wartość początkowa). */\n private readonly nativeFilled = signal(false);\n\n /** Czy projektowana kontrolka ma wartość — steruje uniesieniem etykiety w wariantach float. */\n protected readonly filled = computed(() => this.control()?.filled() ?? this.nativeFilled());\n\n constructor() {\n // Wartość początkowa (np. pole prefill) — po pierwszym renderze projekcji.\n afterNextRender(() => this.updateFilled());\n }\n\n /** Odczytuje wartość projektowanego `input`/`textarea` i aktualizuje stan `filled`. */\n protected updateFilled(): void {\n const el = this.host.nativeElement.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n '.kpt-form-field__control input, .kpt-form-field__control textarea',\n );\n this.nativeFilled.set(!!el && el.value !== '');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type {\n FormValueControl,\n ValidationError,\n WithOptionalFieldTree,\n} from '@angular/forms/signals';\n\nexport type KptInputType =\n | 'text'\n | 'email'\n | 'password'\n | 'number'\n | 'search'\n | 'tel'\n | 'url'\n | 'time';\n\nlet nextUniqueId = 0;\n\n/**\n * Pole tekstowe Koncept UI zintegrowane z Angular Signal Forms.\n * Implementuje `FormValueControl<string>` — wiąż je dyrektywą `FormField`:\n *\n * <kpt-input [formField]=\"loginForm.email\" type=\"email\" />\n *\n * Stan pola (disabled/readonly/required/invalid/errors/touched) wiąże automatycznie\n * dyrektywa `FormField`. Bez `ControlValueAccessor`. Wygląd: tokeny `--kpt-form-field-*`.\n */\n@Component({\n selector: 'kpt-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n host: {\n class: 'kpt-input-host',\n // id należy wyłącznie do wewnętrznego <input> (powiązanie label[for]); host go nie nosi\n '[attr.id]': 'null',\n },\n})\nexport class KptInput implements FormValueControl<string> {\n /** Wartość pola (wymagane przez kontrakt FormValueControl). */\n readonly value = model<string>('');\n\n // ── Stan wiązany automatycznie przez dyrektywę FormField ──\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n readonly touched = input<boolean>(false);\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Emitowane na `blur` — oznacza pole jako dotknięte. */\n readonly touch = output<void>();\n\n // ── Wejścia prezentacyjne ──\n readonly type = input<KptInputType>('text');\n readonly placeholder = input<string>('');\n readonly id = input<string>(`kpt-input-${++nextUniqueId}`);\n readonly ariaLabel = input<string | null>(null);\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"kpt-input__field\"\n [id]=\"id()\"\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Pole wyboru (checkbox) zintegrowane z Signal Forms (`FormCheckboxControl`).\n * Wiąż dyrektywą `FormField`: `<kpt-checkbox [formField]=\"f.terms\" label=\"Akceptuję\" />`.\n */\n@Component({\n selector: 'kpt-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-checkbox\" [class.kpt-checkbox--disabled]=\"disabled()\">\n <input\n type=\"checkbox\"\n class=\"kpt-checkbox__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-checkbox__box\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" class=\"kpt-checkbox__check\"><path d=\"M13 4.5 6.5 11 3 7.5\" /></svg>\n </span>\n @if (label()) {\n <span class=\"kpt-checkbox__label\">{{ label() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './checkbox.component.scss',\n host: { class: 'kpt-checkbox-host' },\n})\nexport class KptCheckbox implements FormCheckboxControl {\n /** Zaznaczenie (wymagane przez kontrakt FormCheckboxControl). */\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Etykieta obok pola. */\n readonly label = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).\n * `<kpt-switch [formField]=\"f.notifications\" label=\"Powiadomienia\" />`\n *\n * Wariant z tekstem stanu: `onLabel`/`offLabel` — wyświetlany tekst zmienia się\n * przy przełączaniu (np. „Włączony”/„Wyłączony”).\n * `<kpt-switch [(checked)]=\"on\" onLabel=\"Włączony\" offLabel=\"Wyłączony\" />`\n */\n@Component({\n selector: 'kpt-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-switch\" [class.kpt-switch--disabled]=\"disabled()\">\n @if (label() && labelPosition() === 'start') {\n <span class=\"kpt-switch__label kpt-switch__label--start\">{{ label() }}</span>\n }\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"kpt-switch__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-switch__track\" aria-hidden=\"true\"><span class=\"kpt-switch__thumb\"></span></span>\n @if (label() && labelPosition() === 'end') {\n <span class=\"kpt-switch__label\">{{ label() }}</span>\n }\n @if (hasStateLabels()) {\n <span class=\"kpt-switch__state\" [class.kpt-switch__state--on]=\"checked()\">{{ stateLabel() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './switch.component.scss',\n host: { class: 'kpt-switch-host' },\n})\nexport class KptSwitch implements FormCheckboxControl {\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly label = input('');\n /** Pozycja etykiety `label` względem przełącznika: 'end' (prawo, domyślnie) lub 'start' (lewo). */\n readonly labelPosition = input<'start' | 'end'>('end');\n /** Tekst stanu włączonego (wyświetlany, gdy `checked`). */\n readonly onLabel = input('');\n /** Tekst stanu wyłączonego (wyświetlany, gdy nie `checked`). */\n readonly offLabel = input('');\n\n protected readonly hasStateLabels = computed(() => !!(this.onLabel() || this.offLabel()));\n /** Tekst zależny od stanu przełącznika. */\n protected readonly stateLabel = computed(() => (this.checked() ? this.onLabel() : this.offLabel()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\nimport { KptSwitch } from '../switch/switch.component';\n\n/**\n * Grupa przełączników. Domyślnie pojedynczy wybór (wzajemnie wykluczające się) —\n * włączenie jednego wyłącza pozostałe, a wartość to `value` wybranej opcji (lub `null`).\n * Z `multiple` przechodzi w tryb wielokrotny — wartość to tablica `T[]` zaznaczonych opcji.\n * Zintegrowana z Signal Forms (`FormValueControl<T | T[] | null>`).\n *\n * @example\n * <kpt-switch-group [(value)]=\"plan\" [options]=\"plans\" />\n * <kpt-switch-group multiple [(value)]=\"tags\" [options]=\"tagOptions\" />\n */\n@Component({\n selector: 'kpt-switch-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptSwitch],\n template: `\n <div\n class=\"kpt-switch-group\"\n [class.kpt-switch-group--horizontal]=\"orientation() === 'horizontal'\"\n role=\"group\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n >\n @for (opt of options(); track opt.value) {\n <kpt-switch\n class=\"kpt-switch-group__item\"\n [checked]=\"isChecked(opt.value)\"\n [label]=\"opt.label\"\n [disabled]=\"disabled() || opt.disabled\"\n (checkedChange)=\"onToggle(opt, $event)\"\n (touch)=\"touch.emit()\"\n />\n }\n </div>\n `,\n styleUrl: './switch-group.component.scss',\n host: { class: 'kpt-switch-group-host' },\n})\nexport class KptSwitchGroup<T = unknown> implements FormValueControl<unknown> {\n readonly value = model<unknown>(null);\n readonly options = input<KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Układ: 'vertical' (domyślnie) lub 'horizontal'. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n /** Tryb wielokrotnego wyboru — wartość to tablica `T[]` zaznaczonych opcji. Domyślnie false (pojedynczy wybór). */\n readonly multiple = input(false, { transform: booleanAttribute });\n /**\n * Czy ponowne kliknięcie aktywnej opcji ją odznacza (value = null). Dotyczy tylko trybu pojedynczego —\n * w trybie `multiple` odznaczanie jest zawsze dozwolone. Domyślnie tak.\n */\n readonly allowDeselect = input(true, { transform: booleanAttribute });\n\n /** Aktualna wartość jako tablica (tryb multiple) — normalizuje `null`/pojedynczą wartość. */\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return v as T[];\n return v == null ? [] : [v as T];\n });\n\n protected isChecked(optValue: T): boolean {\n if (this.multiple()) return this.selectedValues().includes(optValue);\n return optValue === this.value();\n }\n\n protected onToggle(opt: KptOption<T>, checked: boolean): void {\n if (this.multiple()) {\n const current = this.selectedValues();\n if (checked) {\n if (!current.includes(opt.value)) this.value.set([...current, opt.value]);\n } else {\n this.value.set(current.filter((v) => v !== opt.value));\n }\n return;\n }\n\n if (checked) {\n this.value.set(opt.value);\n return;\n }\n // Wyłączono aktywną opcję.\n if (this.allowDeselect()) {\n this.value.set(null);\n } else {\n // Odznaczanie niedozwolone — przywróć zaznaczenie (wymusza ponowne wypchnięcie [checked]).\n const current = opt.value;\n this.value.set(null);\n this.value.set(current);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\nlet nextGroupId = 0;\n\n/**\n * Grupa przycisków opcji (radio) zintegrowana z Signal Forms (`FormValueControl<T>`).\n * Opcje przez `options`. `<kpt-radio-group [formField]=\"f.plan\" [options]=\"plans\" />`\n */\n@Component({\n selector: 'kpt-radio-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-radio-group\" role=\"radiogroup\" [attr.aria-invalid]=\"showInvalid() ? 'true' : null\">\n @for (opt of options(); track opt.value) {\n <label class=\"kpt-radio\" [class.kpt-radio--disabled]=\"disabled() || opt.disabled\">\n <input\n type=\"radio\"\n class=\"kpt-radio__input\"\n [name]=\"name()\"\n [checked]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n (change)=\"value.set(opt.value)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-radio__dot\" aria-hidden=\"true\"></span>\n <span class=\"kpt-radio__label\">{{ opt.label }}</span>\n </label>\n }\n </div>\n `,\n styleUrl: './radio-group.component.scss',\n host: { class: 'kpt-radio-group-host' },\n})\nexport class KptRadioGroup<T = unknown> implements FormValueControl<T> {\n readonly value = model<T>(undefined as T);\n readonly options = input<KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly name = input<string>(`kpt-radio-${++nextGroupId}`);\n}\n","<div\n class=\"kpt-select\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n tabindex=\"0\"\n [class.kpt-select--open]=\"open()\"\n [class.kpt-select--disabled]=\"disabled()\"\n [class.kpt-select--invalid]=\"showInvalid()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (click)=\"toggleOpen()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"touch.emit()\"\n>\n <div class=\"kpt-select__value\">\n @if (multiple() && selectedOptions().length) {\n @for (opt of selectedOptions(); track opt.value) {\n <span class=\"kpt-select__chip\">\n {{ opt.label }}\n <button type=\"button\" class=\"kpt-select__chip-remove\" (click)=\"removeChip(opt, $event)\" [attr.aria-label]=\"i18n.t('select.removeChip')\">\n <kpt-icon name=\"x\" />\n </button>\n </span>\n }\n } @else if (!multiple() && filled()) {\n <span class=\"kpt-select__single\">{{ singleLabel() }}</span>\n } @else {\n <span class=\"kpt-select__placeholder\">{{ placeholder() }}</span>\n }\n </div>\n <kpt-icon class=\"kpt-select__chevron\" name=\"chevron-down\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-select__panel\" (keydown)=\"onPanelKeydown($event)\">\n @if (filter()) {\n <div class=\"kpt-select__search\">\n <kpt-icon name=\"search\" />\n <input\n type=\"text\"\n class=\"kpt-select__search-input\"\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n [attr.placeholder]=\"i18n.t('select.search')\"\n />\n </div>\n }\n <ul class=\"kpt-select__list\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @for (opt of filteredOptions(); track opt.value; let i = $index) {\n <li\n class=\"kpt-select__option\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [class.kpt-select__option--selected]=\"isSelected(opt)\"\n [class.kpt-select__option--active]=\"i === activeIndex()\"\n [class.kpt-select__option--disabled]=\"opt.disabled\"\n (click)=\"pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (multiple()) {\n <span class=\"kpt-select__check\" [class.is-on]=\"isSelected(opt)\"><kpt-icon name=\"check\" /></span>\n }\n <span class=\"kpt-select__option-label\">{{ opt.label }}</span>\n @if (!multiple() && isSelected(opt)) {\n <kpt-icon class=\"kpt-select__option-tick\" name=\"check\" />\n }\n </li>\n } @empty {\n <li class=\"kpt-select__empty\">{{ i18n.t('select.noResults') }}</li>\n }\n </ul>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KPT_FORM_FIELD_CONTROL, type KptFormFieldControl } from '../form-field/form-field-control';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (select) na własnym panelu (CDK Overlay), zintegrowana z Signal Forms.\n * Warianty: pojedynczy, z wyszukiwarką (`filter`) i wielokrotny (`multiple`, chipy).\n *\n * @example\n * <kpt-select [formField]=\"f.role\" [options]=\"roles\" placeholder=\"Wybierz…\" />\n * <kpt-select [formField]=\"f.city\" [options]=\"cities\" filter placeholder=\"Szukaj miasta…\" />\n * <kpt-select [formField]=\"f.tags\" [options]=\"tags\" multiple filter placeholder=\"Tagi…\" />\n */\n@Component({\n selector: 'kpt-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n host: { class: 'kpt-select-host' },\n providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }],\n})\nexport class KptSelect<T = unknown> implements FormValueControl<unknown>, KptFormFieldControl {\n readonly options = input<KptOption<T>[]>([]);\n readonly placeholder = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Wartość: pojedyncza (T) lub tablica (T[]) w trybie multiple. */\n readonly value = model<unknown>(null);\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n /**\n * Stan panelu (dwukierunkowy). Pozwala otworzyć listę z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n protected readonly filterText = signal('');\n protected readonly activeIndex = signal(-1);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Panel może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // filtr i aktywną pozycję resetujemy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.filterText.set('');\n this.activeIndex.set(-1);\n });\n });\n }\n\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (this.multiple()) return Array.isArray(v) ? (v as T[]) : [];\n return v == null ? [] : [v as T];\n });\n\n protected readonly selectedOptions = computed(() =>\n this.options().filter((o) => this.selectedValues().includes(o.value)),\n );\n\n protected readonly filteredOptions = computed(() => {\n const q = this.filterText().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.label.toLowerCase().includes(q)) : opts;\n });\n\n protected readonly singleLabel = computed(() => {\n const sel = this.selectedOptions();\n return this.multiple() ? '' : (sel[0]?.label ?? '');\n });\n\n /**\n * Czy wybrano jakąkolwiek opcję. Publiczne — `kpt-form-field` czyta to przez\n * `KPT_FORM_FIELD_CONTROL`, żeby unieść etykietę Float Label nad wybraną wartość.\n */\n readonly filled = computed(() => this.selectedOptions().length > 0);\n\n protected isSelected(opt: KptOption<T>): boolean {\n return this.selectedValues().includes(opt.value);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected pick(opt: KptOption<T>): void {\n if (opt.disabled) return;\n if (this.multiple()) {\n const cur = this.selectedValues();\n this.value.set(this.isSelected(opt) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value]);\n } else {\n this.value.set(opt.value);\n this.close();\n }\n }\n\n protected removeChip(opt: KptOption<T>, event: Event): void {\n event.stopPropagation();\n this.value.set(this.selectedValues().filter((v) => v !== opt.value));\n }\n\n protected onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.activeIndex.set(-1);\n }\n\n // ── Klawiatura ──\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!this.open()) this.toggleOpen();\n } else if (event.key === 'Escape') {\n this.close();\n }\n }\n\n protected onPanelKeydown(event: KeyboardEvent): void {\n const opts = this.filteredOptions();\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const opt = opts[this.activeIndex()];\n if (opt) this.pick(opt);\n }\n }\n}\n","/*\n * Pomocniki nazw dni/miesięcy wyliczane z `Intl` — sterowane bieżącym locale i18n.\n * Dzięki temu kalendarze (`kpt-datepicker`, `kpt-date-range`) nie trzymają\n * zaszytych tablic nazw i działają dla dowolnego języka.\n */\n\n/** Krótkie nazwy dni tygodnia, zaczynając od poniedziałku (Pn…Nd). */\nexport function weekdayNames(locale: string): string[] {\n const fmt = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n // 2024-01-01 (UTC) to poniedziałek.\n return Array.from({ length: 7 }, (_, i) => fmt.format(new Date(Date.UTC(2024, 0, 1 + i))));\n}\n\n/** Pełne nazwy miesięcy (styczeń…grudzień / January…December). */\nexport function monthNames(locale: string): string[] {\n const fmt = new Intl.DateTimeFormat(locale, { month: 'long' });\n return Array.from({ length: 12 }, (_, i) => fmt.format(new Date(Date.UTC(2024, i, 1))));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\n\ninterface ClockMark {\n label: string;\n hour24: number; // wartość docelowa (24h) dla godzin, minuta dla minut\n x: number; // % w obrębie tarczy\n y: number;\n inner: boolean;\n selected: boolean;\n}\n\nconst R_OUTER = 40;\nconst R_INNER = 26;\nconst pad = (n: number): string => String(n).padStart(2, '0');\n\n/** Pozycja znacznika (% tarczy) na pierścieniu o promieniu `radius`: 12 na górze, zegarowo. */\nfunction markPos(index: number, radius: number): { x: number; y: number } {\n const theta = (index / 12) * 2 * Math.PI;\n return { x: 50 + radius * Math.sin(theta), y: 50 - radius * Math.cos(theta) };\n}\n\n/**\n * Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.\n * Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.\n * Wartość `HH:mm` (zawsze 24h). Używana przez `kpt-datepicker` i `kpt-date-range`.\n *\n * @example\n * <kpt-clock [(value)]=\"time\" [hourFormat]=\"12\" [minuteStep]=\"5\" />\n */\n@Component({\n selector: 'kpt-clock',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-clock\">\n <div class=\"kpt-clock__time\">\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'hours'\" (click)=\"setPhase('hours')\">{{ hourLabel() }}</button>\n <span class=\"kpt-clock__colon\">:</span>\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'minutes'\" (click)=\"setPhase('minutes')\">{{ minuteLabel() }}</button>\n @if (hourFormat() === 12) {\n <div class=\"kpt-clock__ampm\">\n <button type=\"button\" [class.is-active]=\"ampm() === 'AM'\" (click)=\"setAmpm('AM')\">AM</button>\n <button type=\"button\" [class.is-active]=\"ampm() === 'PM'\" (click)=\"setAmpm('PM')\">PM</button>\n </div>\n }\n </div>\n <div\n class=\"kpt-clock__face\"\n #face\n (pointerdown)=\"onDialPointer($event, face)\"\n (pointermove)=\"onDialPointer($event, face)\"\n (pointerup)=\"onDialUp()\"\n >\n <span class=\"kpt-clock__center\"></span>\n <span\n class=\"kpt-clock__hand\"\n [class.kpt-clock__hand--inner]=\"handInner()\"\n [style.transform]=\"'rotate(' + handAngle() + 'deg)'\"\n ></span>\n @if (clockPhase() === 'hours') {\n @for (mark of hourMarks(); track mark.hour24) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--inner]=\"mark.inner\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickHour(mark)\"\n >{{ mark.label }}</button>\n }\n } @else {\n @for (mark of minuteMarks(); track mark.hour24) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickMinute(mark)\"\n >{{ mark.label }}</button>\n }\n }\n </div>\n </div>\n `,\n styleUrl: './clock.component.scss',\n host: { class: 'kpt-clock-host' },\n})\nexport class KptClock {\n readonly value = model<string>('');\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly hour = signal(0);\n protected readonly minute = signal(0);\n protected readonly clockPhase = signal<'hours' | 'minutes'>('hours');\n\n constructor() {\n // Synchronizacja wartości zewnętrznej → stan tarczy (zapis idempotentny, bez pętli).\n effect(() => {\n const t = this.parse(this.value());\n this.hour.set(t?.h ?? 0);\n this.minute.set(t?.m ?? 0);\n });\n }\n\n private parse(v: string): { h: number; m: number } | null {\n const m = /^(\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { h: +m[1], m: +m[2] } : null;\n }\n private emit(): void {\n this.value.set(`${pad(this.hour())}:${pad(this.minute())}`);\n }\n\n protected readonly ampm = computed<'AM' | 'PM'>(() => (this.hour() < 12 ? 'AM' : 'PM'));\n protected readonly hour12 = computed(() => {\n const h = this.hour() % 12;\n return h === 0 ? 12 : h;\n });\n protected readonly hourLabel = computed(() =>\n this.hourFormat() === 12 ? String(this.hour12()) : pad(this.hour()),\n );\n protected readonly minuteLabel = computed(() => pad(this.minute()));\n\n private from12h(h12: number, ap: 'AM' | 'PM'): number {\n const base = h12 % 12; // 12 → 0\n return ap === 'PM' ? base + 12 : base;\n }\n\n /** W 12h jeden pierścień; w 24h zewnętrzny (12, 1–11) i wewnętrzny (00, 13–23). */\n protected readonly hourMarks = computed<ClockMark[]>(() =>\n this.hourFormat() === 12 ? this.marks12h() : [...this.marks24hOuter(), ...this.marks24hInner()],\n );\n\n private marks12h(): ClockMark[] {\n const ap = this.ampm();\n const cur = this.hour();\n return Array.from({ length: 12 }, (_, i) => {\n const h12 = i === 0 ? 12 : i;\n // Wartość docelowa bierze bieżące AM/PM — tarcza pokazuje tylko jedną połowę doby.\n const hour24 = this.from12h(h12, ap);\n return { label: String(h12), hour24, ...markPos(i, R_OUTER), inner: false, selected: cur === hour24 };\n });\n }\n\n private marks24hOuter(): ClockMark[] {\n const cur = this.hour();\n return Array.from({ length: 12 }, (_, i) => {\n const hour24 = i === 0 ? 12 : i;\n return { label: String(hour24), hour24, ...markPos(i, R_OUTER), inner: false, selected: cur === hour24 };\n });\n }\n\n private marks24hInner(): ClockMark[] {\n const cur = this.hour();\n return Array.from({ length: 12 }, (_, i) => {\n const hour24 = i === 0 ? 0 : i + 12;\n // `pad` daje '00' dla północy; 13–23 są już dwucyfrowe.\n return { label: pad(hour24), hour24, ...markPos(i, R_INNER), inner: true, selected: cur === hour24 };\n });\n }\n\n protected readonly minuteMarks = computed<ClockMark[]>(() => {\n const cur = this.minute();\n return Array.from({ length: 12 }, (_, i) => {\n const val = i * 5;\n return { label: pad(val), hour24: val, ...markPos(i, R_OUTER), inner: false, selected: cur === val };\n });\n });\n\n protected readonly handAngle = computed(() =>\n this.clockPhase() === 'hours' ? (this.hour() % 12) * 30 : this.minute() * 6,\n );\n protected readonly handInner = computed(\n () => this.clockPhase() === 'hours' && this.hourFormat() === 24 && (this.hour() === 0 || this.hour() >= 13),\n );\n\n protected setPhase(phase: 'hours' | 'minutes'): void {\n this.clockPhase.set(phase);\n }\n protected setAmpm(target: 'AM' | 'PM'): void {\n this.hour.set(this.from12h(this.hour12(), target));\n this.emit();\n }\n protected pickHour(mark: ClockMark): void {\n this.hour.set(mark.hour24);\n this.clockPhase.set('minutes');\n this.emit();\n }\n protected pickMinute(mark: ClockMark): void {\n this.minute.set(mark.hour24);\n this.emit();\n }\n\n protected onDialPointer(event: PointerEvent, face: HTMLElement): void {\n if (event.type === 'pointerdown') face.setPointerCapture(event.pointerId);\n else if (!(event.buttons & 1)) return;\n const rect = face.getBoundingClientRect();\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n let deg = (Math.atan2(dx, -dy) * 180) / Math.PI;\n if (deg < 0) deg += 360;\n if (this.clockPhase() === 'hours') {\n this.setHourFromAngle(deg, Math.hypot(dx, dy) / (rect.width / 2));\n } else {\n this.setMinuteFromAngle(deg);\n }\n this.emit();\n }\n\n /** Godzina z kąta; w 24h o pierścieniu (a więc o 12–23 vs 0–11) decyduje promień kliknięcia. */\n private setHourFromAngle(deg: number, radius: number): void {\n const idx = Math.round(deg / 30) % 12;\n if (this.hourFormat() === 12) {\n this.hour.set(this.from12h(idx === 0 ? 12 : idx, this.ampm()));\n return;\n }\n const inner = radius < (R_OUTER + R_INNER) / 2 / 50;\n if (inner) this.hour.set(idx === 0 ? 0 : idx + 12);\n else this.hour.set(idx === 0 ? 12 : idx);\n }\n\n /** Minuta z kąta, dociągnięta do `minuteStep`. */\n private setMinuteFromAngle(deg: number): void {\n const step = Math.max(1, this.minuteStep());\n const raw = Math.round(deg / 6) % 60;\n this.minute.set((Math.round(raw / step) * step) % 60);\n }\n\n protected onDialUp(): void {\n if (this.clockPhase() === 'hours') this.clockPhase.set('minutes');\n }\n}\n","<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"showClock()\" (keydown.escape)=\"close()\">\n @if (showClock()) {\n @if (selectionMode() === 'datetime') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n }\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <!-- Nagłówek wspólny dla czterech poziomów: różni je tylko treść tytułu. -->\n <div class=\"kpt-calendar__header\">\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageBack()\" (click)=\"pagePrev()\" [attr.aria-label]=\"navPrevLabel()\"><kpt-icon name=\"chevron-left\" /></button>\n }\n <span class=\"kpt-calendar__titles\">\n @switch (panelView()) {\n @case ('day') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('month')\" [attr.aria-label]=\"i18n.t('datepicker.chooseMonth')\">{{ monthName() }}</button>\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n @case ('month') {\n @if (selectionMode() === 'month') {\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n } @else {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n }\n @case ('year') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('decade')\" [attr.aria-label]=\"i18n.t('datepicker.chooseDecade')\">{{ yearRangeLabel() }}</button>\n }\n @case ('decade') {\n <span class=\"kpt-calendar__title\">{{ decadeRangeLabel() }}</span>\n }\n }\n </span>\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageForward()\" (click)=\"pageNext()\" [attr.aria-label]=\"navNextLabel()\"><kpt-icon name=\"chevron-right\" /></button>\n }\n </div>\n\n @switch (panelView()) {\n @case ('day') {\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\" [class.kpt-calendar__grid--decades]=\"panelView() === 'decade'\">\n @for (cell of levelCells(); track cell.label) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [class.kpt-calendar__cell--current]=\"cell.current\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n }\n\n @if (selectionMode() === 'datetime') {\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n }\n }\n @if (hasFooter()) {\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptButton } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptClock } from './clock.component';\n\ninterface DayCell {\n day: number;\n iso: string;\n inMonth: boolean;\n today: boolean;\n selected: boolean;\n disabled: boolean;\n}\n\n/** Komórka siatki miesięcy/lat/dekad — niesie cel nawigacji (rok + ewentualny miesiąc). */\ninterface GridCell {\n label: string;\n y: number;\n m: number;\n selected: boolean;\n /** Zawiera dzisiejszą datę — obrys jak „dziś\" w siatce dni. */\n current: boolean;\n disabled: boolean;\n}\n\n/** Granulacja wyboru. */\nexport type KptDatepickerMode = 'date' | 'monthYear' | 'year' | 'month' | 'datetime' | 'time';\n\n/** Poziom panelu: dni → miesiące → lata → dekady. */\nexport type KptDatepickerView = 'day' | 'month' | 'year' | 'decade';\n\n/** Kolejność poziomów panelu, od najdrobniejszego. Indeks = „wysokość\" widoku. */\nconst LEVELS = ['day', 'month', 'year', 'decade'] as const satisfies readonly KptDatepickerView[];\n\nconst pad = (n: number): string => String(n).padStart(2, '0');\nconst toIso = (d: Date): string => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;\n\n/**\n * Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.\n * Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.\n * Panel jest stosem widoków dekady → lata → miesiące → dni: klik w komórkę schodzi poziom niżej,\n * klik w tytuł wchodzi poziom wyżej. Poziom startowy ustawia `startView` (data urodzenia:\n * `startView=\"decade\"`); domyślnie startuje na poziomie, na którym tryb zatwierdza wartość.\n * Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.\n * Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'\n * / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-datepicker [formField]=\"f.birthDate\" startView=\"decade\" minDate=\"1900-01-01\" />\n * <kpt-datepicker selectionMode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"meetingAt\" />\n * <kpt-datepicker selectionMode=\"time\" [(value)]=\"alarm\" />\n */\n@Component({\n selector: 'kpt-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n host: { class: 'kpt-datepicker-host' },\n})\nexport class KptDatepicker implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly placeholder = input('');\n /** Nazwa dostępna, gdy pola nie opisuje `<label for>` (np. dwa pola w jednym wierszu). */\n readonly ariaLabel = input<string | null>(null);\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n /** Granulacja wyboru. */\n readonly selectionMode = input<KptDatepickerMode>('date');\n /**\n * Poziom, od którego otwiera się panel. `null` = poziom zatwierdzania danego trybu\n * (dni dla 'date'). Nie schodzi poniżej tego poziomu — `startView=\"day\"` w trybie 'year'\n * nie ma sensu i jest podnoszony do 'year'.\n */\n readonly startView = input<KptDatepickerView | null>(null);\n /** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */\n readonly monthDisplay = input<'long' | 'number'>('long');\n /** Format godziny: 24 lub 12 (z AM/PM). */\n readonly hourFormat = input(24, { transform: numberAttribute });\n /** Krok minut (snap na tarczy). */\n readonly minuteStep = input(1, { transform: numberAttribute });\n readonly minDate = input<string | null>(null);\n readonly maxDate = input<string | null>(null);\n\n protected readonly effectivePlaceholder = computed(() => {\n if (this.placeholder()) return this.placeholder();\n const iso = this.displayFormat() === 'iso';\n const time = this.hourFormat() === 12 ? '--:-- --' : '--:--';\n switch (this.selectionMode()) {\n case 'monthYear': return iso ? 'RRRR-MM' : 'MM.RRRR';\n case 'year': return 'RRRR';\n case 'month': return this.monthDisplay() === 'number' ? 'MM' : this.i18n.t('datepicker.month');\n case 'time': return time;\n case 'datetime': return `${iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR'} ${time}`;\n default: return iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR';\n }\n });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n /**\n * Stan kalendarza (dwukierunkowy). Pozwala otworzyć go z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n private readonly today = new Date();\n private readonly view = signal({ y: this.today.getFullYear(), m: this.today.getMonth() });\n /** Aktualny poziom stosu widoków panelu. */\n protected readonly panelView = signal<KptDatepickerView>('day');\n\n /** Poziom, na którym klik w komórkę zatwierdza wartość zamiast schodzić niżej. */\n protected readonly commitLevel = computed<KptDatepickerView>(() => {\n switch (this.selectionMode()) {\n case 'monthYear':\n case 'month':\n return 'month';\n case 'year':\n return 'year';\n default:\n return 'day';\n }\n });\n /** Tryb 'month' nie ma roku ani dekady — wartością jest samo 'MM'. */\n private readonly topLevel = computed<KptDatepickerView>(() =>\n this.selectionMode() === 'month' ? 'month' : 'decade',\n );\n private effectiveStartView(): KptDatepickerView {\n const commit = LEVELS.indexOf(this.commitLevel());\n const top = LEVELS.indexOf(this.topLevel());\n const wanted = this.startView();\n const idx = wanted ? LEVELS.indexOf(wanted) : commit;\n return LEVELS[Math.min(Math.max(idx, commit), top)];\n }\n\n // ── Stan czasu (bufor 'HH:mm', 24h) ──\n protected readonly timeStr = signal('');\n protected readonly dtView = signal<'calendar' | 'clock'>('calendar');\n private readonly pendingDate = signal('');\n /** Tarcza zamiast siatek: tryb 'time' zawsze, 'datetime' po wejściu w pasek czasu. */\n protected readonly showClock = computed(\n () => this.selectionMode() === 'time' || (this.selectionMode() === 'datetime' && this.dtView() === 'clock'),\n );\n protected readonly hasFooter = computed(\n () => this.selectionMode() === 'time' || this.selectionMode() === 'datetime',\n );\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Kalendarz może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // widok i bufor czasu ustawiamy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.view.set(this.initialView());\n this.panelView.set(this.effectiveStartView());\n this.syncTimeFromValue();\n this.dtView.set(this.selectionMode() === 'time' ? 'clock' : 'calendar');\n });\n });\n }\n\n protected readonly viewYear = computed(() => this.view().y);\n protected readonly monthName = computed(() => this.months()[this.view().m]);\n /** Początek dekady widocznej w siatce lat (1979 → 1970). */\n private readonly decadeStart = computed(() => Math.floor(this.view().y / 10) * 10);\n /** Początek strony dekad: 12 dekad, czyli 120 lat (1979 → 1920, strona 1920–2039). */\n private readonly centuryStart = computed(() => Math.floor(this.view().y / 120) * 120);\n protected readonly yearRangeLabel = computed(() => `${this.decadeStart()} – ${this.decadeStart() + 9}`);\n protected readonly decadeRangeLabel = computed(() => `${this.centuryStart()} – ${this.centuryStart() + 119}`);\n\n /** Tryb 'month' nie ma po czym nawigować — siatka miesięcy jest kompletna. */\n protected readonly hasNav = computed(() => this.selectionMode() !== 'month');\n protected readonly navPrevLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.prevYear');\n case 'year': return this.i18n.t('datepicker.prevYears');\n case 'decade': return this.i18n.t('datepicker.prevDecades');\n default: return this.i18n.t('datepicker.prevMonth');\n }\n });\n protected readonly navNextLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.nextYear');\n case 'year': return this.i18n.t('datepicker.nextYears');\n case 'decade': return this.i18n.t('datepicker.nextDecades');\n default: return this.i18n.t('datepicker.nextMonth');\n }\n });\n\n /** Strzałka wstecz gasnie, gdy cała poprzednia strona wypada przed `minDate`. */\n protected readonly canPageBack = computed(() => {\n const min = this.minDate();\n if (!min) return true;\n const { y, m } = this.view();\n switch (this.panelView()) {\n case 'month': return `${y - 1}-12` >= min.slice(0, 7);\n case 'year': return this.decadeStart() - 1 >= +min.slice(0, 4);\n case 'decade': return this.centuryStart() - 1 >= +min.slice(0, 4);\n default: return toIso(new Date(y, m, 0)) >= min; // ostatni dzień poprzedniego miesiąca\n }\n });\n protected readonly canPageForward = computed(() => {\n const max = this.maxDate();\n if (!max) return true;\n const { y, m } = this.view();\n switch (this.panelView()) {\n case 'month': return `${y + 1}-01` <= max.slice(0, 7);\n case 'year': return this.decadeStart() + 10 <= +max.slice(0, 4);\n case 'decade': return this.centuryStart() + 120 <= +max.slice(0, 4);\n default: return toIso(new Date(y, m + 1, 1)) <= max;\n }\n });\n\n // ── Prezentacja czasu ──\n private formatTime(h: number, m: number): string {\n if (this.hourFormat() === 12) {\n const h12 = h % 12 === 0 ? 12 : h % 12;\n return `${h12}:${pad(m)} ${h < 12 ? 'AM' : 'PM'}`;\n }\n return `${pad(h)}:${pad(m)}`;\n }\n\n /** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */\n protected readonly timeBarLabel = computed(() => {\n const t = this.parseTime(this.timeStr());\n return this.formatTime(t?.h ?? 0, t?.m ?? 0);\n });\n\n /**\n * Tekst w triggerze. Każdy tryb ma własny format wartości, więc `display` tylko rozdziela\n * robotę — formatowanie siedzi w metodach `display*` niżej. Wartość niepasująca do formatu\n * trybu daje pusty string (trigger nie pokazuje śmieci, np. po ręcznej podmianie modelu).\n */\n protected readonly display = computed(() => {\n const v = this.value();\n if (!v) return '';\n const iso = this.displayFormat() === 'iso';\n switch (this.selectionMode()) {\n case 'monthYear':\n return this.displayMonthYear(v, iso);\n case 'year':\n return /^\\d{4}$/.test(v) ? v : '';\n case 'month':\n return this.displayMonth(v);\n case 'time':\n return this.displayTime(v);\n case 'datetime':\n return this.displayDateTime(v, iso);\n default:\n return this.displayDate(v, iso);\n }\n });\n\n private displayMonthYear(v: string, iso: boolean): string {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n if (!m) return '';\n return iso ? v : `${m[2]}.${m[1]}`;\n }\n private displayMonth(v: string): string {\n const m = /^(\\d{2})$/.exec(v);\n if (!m) return '';\n return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');\n }\n private displayTime(v: string): string {\n const t = this.parseTime(v);\n return t ? this.formatTime(t.h, t.m) : '';\n }\n private displayDateTime(v: string, iso: boolean): string {\n const dt = this.parseDateTime(v);\n if (!dt) return '';\n const datePart = iso ? dt.date : `${dt.date.slice(8, 10)}.${dt.date.slice(5, 7)}.${dt.date.slice(0, 4)}`;\n const sep = iso ? 'T' : ' ';\n return `${datePart}${sep}${this.formatTime(dt.h, dt.m)}`;\n }\n private displayDate(v: string, iso: boolean): string {\n const d = this.parseDate(v);\n if (!d) return '';\n return iso ? toIso(d) : `${pad(d.getDate())}.${pad(d.getMonth() + 1)}.${d.getFullYear()}`;\n }\n\n // ── Siatka dni (tryby 'date' / 'datetime') ──\n private readonly selectedDateIso = computed(() =>\n this.selectionMode() === 'datetime' ? this.pendingDate() : this.value(),\n );\n protected readonly weeks = computed<DayCell[][]>(() => {\n const { y, m } = this.view();\n const first = new Date(y, m, 1);\n const startOffset = (first.getDay() + 6) % 7; // poniedziałek = 0\n const start = new Date(y, m, 1 - startOffset);\n const sel = this.selectedDateIso();\n const min = this.minDate();\n const max = this.maxDate();\n const todayIso = toIso(this.today);\n\n const weeks: DayCell[][] = [];\n for (let w = 0; w < 6; w++) {\n const row: DayCell[] = [];\n for (let d = 0; d < 7; d++) {\n const date = new Date(start.getFullYear(), start.getMonth(), start.getDate() + w * 7 + d);\n const iso = toIso(date);\n row.push({\n day: date.getDate(),\n iso,\n inMonth: date.getMonth() === m,\n today: iso === todayIso,\n selected: iso === sel,\n disabled: (min != null && iso < min) || (max != null && iso > max),\n });\n }\n weeks.push(row);\n }\n return weeks;\n });\n\n /** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */\n private readonly selectedYM = computed<{ y: number | null; m: number | null }>(() => {\n const v = this.value();\n switch (this.selectionMode()) {\n case 'month': {\n const m = /^(\\d{2})$/.exec(v);\n return { y: null, m: m ? +m[1] - 1 : null };\n }\n case 'year':\n return { y: /^\\d{4}$/.test(v) ? +v : null, m: null };\n case 'monthYear': {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n return m ? { y: +m[1], m: +m[2] - 1 } : { y: null, m: null };\n }\n case 'time':\n return { y: null, m: null };\n default: {\n const d = this.parseDate(this.selectedDateIso());\n return d ? { y: d.getFullYear(), m: d.getMonth() } : { y: null, m: null };\n }\n }\n });\n\n // ── Siatka miesięcy ──\n protected readonly monthCells = computed<GridCell[]>(() => {\n const { y } = this.view();\n const sel = this.selectedYM();\n const isMonthOnly = this.selectionMode() === 'month';\n const numeric = this.monthDisplay() === 'number';\n const todayY = this.today.getFullYear();\n const todayM = this.today.getMonth();\n return this.months().map((name, i) => ({\n label: numeric ? pad(i + 1) : name,\n y,\n m: i,\n selected: sel.m === i && (isMonthOnly || sel.y === y),\n current: todayM === i && (isMonthOnly || todayY === y),\n disabled: isMonthOnly ? false : this.isMonthYearDisabled(y, i),\n }));\n });\n\n // ── Siatka lat (pełna dekada) ──\n protected readonly yearCells = computed<GridCell[]>(() => {\n const start = this.decadeStart();\n const sel = this.selectedYM();\n const todayY = this.today.getFullYear();\n return Array.from({ length: 10 }, (_, i) => {\n const year = start + i;\n return {\n label: String(year),\n y: year,\n m: 0,\n selected: sel.y === year,\n current: todayY === year,\n disabled: this.isYearDisabled(year),\n };\n });\n });\n\n // ── Siatka dekad (12 dekad = 120 lat) ──\n protected readonly decadeCells = computed<GridCell[]>(() => {\n const start = this.centuryStart();\n const sel = this.selectedYM();\n const todayY = this.today.getFullYear();\n return Array.from({ length: 12 }, (_, i) => {\n const from = start + i * 10;\n const to = from + 9;\n return {\n label: `${from} – ${to}`,\n y: from,\n m: 0,\n selected: sel.y != null && sel.y >= from && sel.y <= to,\n current: todayY >= from && todayY <= to,\n // Dekada wypada z zakresu dopiero, gdy poza nim są oba jej krańce.\n disabled: this.isYearDisabled(from) && this.isYearDisabled(to),\n };\n });\n });\n\n /** Komórki bieżącego poziomu — siatka miesięcy/lat/dekad ma jeden wspólny markup. */\n protected readonly levelCells = computed<GridCell[]>(() => {\n switch (this.panelView()) {\n case 'year':\n return this.yearCells();\n case 'decade':\n return this.decadeCells();\n default:\n return this.monthCells();\n }\n });\n\n // ── Parsowanie ──\n private parseDate(iso: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso ?? '');\n if (!match) return null;\n return new Date(+match[1], +match[2] - 1, +match[3]);\n }\n private parseTime(v: string): { h: number; m: number } | null {\n const m = /^(\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { h: +m[1], m: +m[2] } : null;\n }\n private parseDateTime(v: string): { date: string; h: number; m: number } | null {\n const m = /^(\\d{4}-\\d{2}-\\d{2})[T ](\\d{2}):(\\d{2})$/.exec(v ?? '');\n return m ? { date: m[1], h: +m[2], m: +m[3] } : null;\n }\n\n private isYearDisabled(year: number): boolean {\n const min = this.minDate();\n const max = this.maxDate();\n if (min && year < +min.slice(0, 4)) return true;\n if (max && year > +max.slice(0, 4)) return true;\n return false;\n }\n private isMonthYearDisabled(y: number, monthIndex: number): boolean {\n const ym = `${y}-${pad(monthIndex + 1)}`;\n const min = this.minDate();\n const max = this.maxDate();\n if (min && ym < min.slice(0, 7)) return true;\n if (max && ym > max.slice(0, 7)) return true;\n return false;\n }\n\n private initialView(): { y: number; m: number } {\n const v = this.value();\n switch (this.selectionMode()) {\n case 'monthYear': {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n return m ? { y: +m[1], m: +m[2] - 1 } : { y: this.today.getFullYear(), m: this.today.getMonth() };\n }\n case 'year':\n return { y: /^\\d{4}$/.test(v) ? +v : this.today.getFullYear(), m: 0 };\n case 'month':\n return { y: this.today.getFullYear(), m: 0 };\n case 'datetime': {\n const dt = this.parseDateTime(v);\n if (dt) {\n const d = this.parseDate(dt.date)!;\n return { y: d.getFullYear(), m: d.getMonth() };\n }\n return { y: this.today.getFullYear(), m: this.today.getMonth() };\n }\n default: {\n const d = this.parseDate(v) ?? this.today;\n return { y: d.getFullYear(), m: d.getMonth() };\n }\n }\n }\n\n private syncTimeFromValue(): void {\n const mode = this.selectionMode();\n if (mode === 'time') {\n const t = this.parseTime(this.value());\n this.timeStr.set(t ? `${pad(t.h)}:${pad(t.m)}` : '00:00');\n } else if (mode === 'datetime') {\n const dt = this.parseDateTime(this.value());\n this.timeStr.set(dt ? `${pad(dt.h)}:${pad(dt.m)}` : '00:00');\n this.pendingDate.set(dt?.date ?? '');\n }\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n // ── Wybór data/miesiąc/rok ──\n protected selectDay(cell: DayCell): void {\n if (cell.disabled) return;\n if (this.selectionMode() === 'datetime') {\n this.pendingDate.set(cell.iso);\n return; // czas jeszcze do wyboru\n }\n this.value.set(cell.iso);\n this.close();\n }\n /**\n * Klik w komórkę siatki: na poziomie zatwierdzania ustawia wartość i zamyka panel,\n * wyżej — przestawia widok i schodzi poziom niżej.\n */\n protected selectCell(cell: GridCell): void {\n if (cell.disabled) return;\n const level = this.panelView();\n if (level === this.commitLevel()) {\n this.value.set(level === 'year' ? String(cell.y) : this.monthValue(cell));\n this.close();\n return;\n }\n this.view.update(({ m }) => ({ y: cell.y, m: level === 'month' ? cell.m : m }));\n this.panelView.set(LEVELS[LEVELS.indexOf(level) - 1]);\n }\n\n private monthValue(cell: GridCell): string {\n const mm = pad(cell.m + 1);\n return this.selectionMode() === 'month' ? mm : `${cell.y}-${mm}`;\n }\n\n /** Klik w tytuł — wejście poziom wyżej w stosie widoków. */\n protected goTo(level: KptDatepickerView): void {\n this.panelView.set(level);\n }\n\n // ── Zegar (delegowany do kpt-clock przez timeStr) ──\n protected openClock(): void {\n this.dtView.set('clock');\n }\n protected backToCalendar(): void {\n this.dtView.set('calendar');\n }\n\n protected commit(): void {\n const time = this.timeStr() || '00:00';\n if (this.selectionMode() === 'time') {\n this.value.set(time);\n } else {\n const dt = this.parseDateTime(this.value());\n const date = this.pendingDate() || dt?.date || toIso(this.today);\n this.value.set(`${date}T${time}`);\n }\n this.close();\n }\n\n /** Strzałki ‹ › — krok zależny od poziomu: miesiąc, rok, dekada, strona dekad. */\n private page(dir: 1 | -1): void {\n const level = this.panelView();\n this.view.update(({ y, m }) => {\n switch (level) {\n case 'month':\n return { y: y + dir, m };\n case 'year':\n return { y: y + dir * 10, m };\n case 'decade':\n return { y: y + dir * 120, m };\n default: {\n const next = m + dir;\n if (next < 0) return { y: y - 1, m: 11 };\n if (next > 11) return { y: y + 1, m: 0 };\n return { y, m: next };\n }\n }\n });\n }\n protected pagePrev(): void {\n this.page(-1);\n }\n protected pageNext(): void {\n this.page(1);\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set('');\n this.pendingDate.set('');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole wieloliniowe (textarea) na Signal Forms, z opcjonalnym auto-resize.\n *\n * @example\n * <kpt-textarea [formField]=\"f.notes\" placeholder=\"Notatki…\" autoResize />\n */\n@Component({\n selector: 'kpt-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <textarea\n #ta\n class=\"kpt-textarea__field\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [rows]=\"rows()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n `,\n styleUrl: './textarea.component.scss',\n host: { class: 'kpt-textarea-host' },\n})\nexport class KptTextarea implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly rows = input(3);\n readonly autoResize = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n private readonly ta = viewChild<ElementRef<HTMLTextAreaElement>>('ta');\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) this.resize();\n });\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n if (this.autoResize()) this.resize();\n }\n\n private resize(): void {\n const el = this.ta()?.nativeElement;\n if (!el) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, booleanAttribute, inject, input } from '@angular/core';\n\nexport type KptTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Dymek podpowiedzi (tooltip) pokazywany na hover/focus hosta. Lekki — element dodawany\n * do `body` i pozycjonowany względem hosta (działa w trybie zoneless).\n *\n * @example\n * <kpt-button kptTooltip=\"Zapisz zmiany\" kptTooltipPosition=\"bottom\">Zapisz</kpt-button>\n *\n * @example Dymek tylko wtedy, gdy tekst nie mieści się w elemencie:\n * <span class=\"ellipsis\" [kptTooltip]=\"name\" kptTooltipOnlyWhenTruncated>{{ name }}</span>\n */\n@Directive({\n selector: '[kptTooltip]',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n },\n})\nexport class KptTooltip implements OnDestroy {\n readonly text = input.required<string>({ alias: 'kptTooltip' });\n readonly position = input<KptTooltipPosition>('top', { alias: 'kptTooltipPosition' });\n /**\n * Pokazuj dymek tylko wtedy, gdy treść nie mieści się w elemencie (jest ucięta\n * wielokropkiem). Dzięki temu podpowiedź nie powtarza tekstu, który i tak widać.\n */\n readonly onlyWhenTruncated = input(false, {\n alias: 'kptTooltipOnlyWhenTruncated',\n transform: booleanAttribute,\n });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private tip?: HTMLElement;\n /** Dymek żyje w `body`, więc przy przewinięciu hosta trzeba go przeliczyć. */\n private readonly follow = () => this.reposition();\n\n protected show(): void {\n if (this.tip || !this.text()) return;\n // Sprawdzamy dopiero teraz, a nie przy renderze: dzięki temu wynik jest zawsze\n // aktualny po zmianie szerokości czy powiększenia, bez żadnych obserwatorów.\n if (this.onlyWhenTruncated() && !this.isTruncated()) return;\n const tip = document.createElement('div');\n tip.className = 'kpt-tooltip';\n tip.setAttribute('role', 'tooltip');\n tip.textContent = this.text();\n tip.style.cssText =\n 'position:fixed;z-index:1400;max-width:16rem;padding:0.35rem 0.6rem;' +\n 'border-radius:var(--kpt-radius-sm,0.25rem);font-size:var(--kpt-font-size-xs,0.75rem);' +\n 'line-height:1.4;background:var(--kpt-color-on-surface);color:var(--kpt-color-surface);' +\n 'box-shadow:var(--kpt-elevation-2);pointer-events:none;opacity:0;transition:opacity 120ms;';\n document.body.appendChild(tip);\n this.tip = tip;\n this.reposition();\n // Faza przechwytywania łapie także przewijanie zagnieżdżonych kontenerów\n // (np. osi roadmapy), bo zdarzenie `scroll` elementu się nie propaguje.\n window.addEventListener('scroll', this.follow, true);\n window.addEventListener('resize', this.follow);\n requestAnimationFrame(() => {\n if (this.tip) this.tip.style.opacity = '1';\n });\n }\n\n protected hide(): void {\n window.removeEventListener('scroll', this.follow, true);\n window.removeEventListener('resize', this.follow);\n this.tip?.remove();\n this.tip = undefined;\n }\n\n /**\n * Czy treść jest przycięta? Sprawdzamy hosta oraz jego bezpośrednie dzieci, bo\n * `text-overflow: ellipsis` siedzi zwykle na wewnętrznym elemencie — a taki element\n * kurczy się do dostępnej szerokości i nie rozpycha rodzica, więc pomiar samego\n * hosta nie wykryłby niczego.\n */\n private isTruncated(): boolean {\n const root = this.host.nativeElement;\n const overflows = (el: Element): boolean =>\n // Tolerancja 1 px pochłania zaokrąglenia subpikselowe przy skalowaniu.\n el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;\n return overflows(root) || Array.from(root.children).some(overflows);\n }\n\n private reposition(): void {\n const tip = this.tip;\n if (!tip) return;\n const r = this.host.nativeElement.getBoundingClientRect();\n const t = tip.getBoundingClientRect();\n const gap = 8;\n let top: number;\n let left: number;\n switch (this.position()) {\n case 'bottom':\n top = r.bottom + gap;\n left = r.left + r.width / 2 - t.width / 2;\n break;\n case 'left':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.left - t.width - gap;\n break;\n case 'right':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.right + gap;\n break;\n default:\n top = r.top - t.height - gap;\n left = r.left + r.width / 2 - t.width / 2;\n }\n tip.style.top = `${Math.max(4, top)}px`;\n tip.style.left = `${Math.max(4, left)}px`;\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n}\n","<div class=\"kpt-rich-text\" [class.kpt-rich-text--invalid]=\"showInvalid()\" [class.kpt-rich-text--disabled]=\"disabled()\">\n <div class=\"kpt-rich-text__toolbar\" role=\"toolbar\">\n @for (section of sections(); track $index; let firstSection = $first) {\n @if (!firstSection) {\n <span class=\"kpt-rich-text__divider\" aria-hidden=\"true\"></span>\n }\n @for (item of section; track item) {\n @switch (item) {\n @case ('heading') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__style\"\n cdkOverlayOrigin\n #styleOrigin=\"cdkOverlayOrigin\"\n [class.is-open]=\"styleOpen()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-expanded]=\"styleOpen()\"\n [kptTooltip]=\"aria(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openStyle()\"\n >\n <span>{{ styleLabel() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-rich-text__style-caret\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"styleOrigin\"\n [cdkConnectedOverlayOpen]=\"styleOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeStyle()\"\n (detach)=\"closeStyle()\"\n >\n <ul class=\"kpt-rich-text__style-panel\" role=\"listbox\">\n @for (o of styleOptions(); track o.tag) {\n <li\n class=\"kpt-rich-text__style-opt\"\n [class]=\"'kpt-rich-text__style-opt kpt-rich-text__style-opt--' + o.tag\"\n role=\"option\"\n [attr.aria-selected]=\"currentBlock() === o.tag\"\n [class.is-selected]=\"currentBlock() === o.tag\"\n (click)=\"pickStyle(o.tag)\"\n >{{ o.label }}</li>\n }\n </ul>\n </ng-template>\n }\n @case ('foreColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #foreOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('foreColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"foreOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'foreColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('backColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #backOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('backColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"backOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'backColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('table') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n cdkOverlayOrigin\n #tableOrigin=\"cdkOverlayOrigin\"\n [class.is-active]=\"tableOpen()\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"tableOrigin\"\n [cdkConnectedOverlayOpen]=\"tableOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeTable()\"\n (detach)=\"closeTable()\"\n >\n <div class=\"kpt-rt-grid-pop\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-grid\" (mouseleave)=\"gridHover(0, 0)\">\n @for (r of gridRows; track r) {\n <div class=\"kpt-rt-grid__row\">\n @for (c of gridCols; track c) {\n <span\n class=\"kpt-rt-grid__cell\"\n [class.is-on]=\"r <= gridR() && c <= gridC()\"\n (mouseenter)=\"gridHover(r, c)\"\n (click)=\"insertTable(r, c)\"\n ></span>\n }\n </div>\n }\n </div>\n <div class=\"kpt-rt-grid__label\">{{ gridR() }} × {{ gridC() }}</div>\n </div>\n </ng-template>\n }\n @default {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n [class.is-active]=\"isActive(item)\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-pressed]=\"isActive(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n }\n }\n }\n }\n </div>\n @if (sourceView()) {\n <textarea\n class=\"kpt-rich-text__source\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n spellcheck=\"false\"\n [attr.aria-label]=\"i18n.t('richText.htmlSource')\"\n (input)=\"onSource($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n } @else {\n <div\n #editor\n class=\"kpt-rich-text__editor\"\n [attr.contenteditable]=\"disabled() ? 'false' : 'true'\"\n [attr.data-placeholder]=\"placeholder()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"textbox\"\n aria-multiline=\"true\"\n (input)=\"onInput()\"\n (paste)=\"onPaste($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (mousedown)=\"onEditorMouseDown($event)\"\n (mousemove)=\"onEditorMouseMove($event)\"\n (blur)=\"touch.emit()\"\n ></div>\n }\n\n <!-- Menu kontekstowe tabeli (origin punktowy = pozycja kursora) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"menuOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeMenu()\"\n (detach)=\"closeMenu()\"\n >\n <div class=\"kpt-rt-menu\" (contextmenu)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.column') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('left')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('right')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertRight') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderColumn()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerColumn') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteColumn()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteColumn') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.row') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('above')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertAbove') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('below')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertBelow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderRow()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerRow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteRow()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteRow') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.cell') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openCellBg()\"><kpt-icon name=\"palette\" /> {{ i18n.t('richText.menu.cellBackground') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('left')\"><kpt-icon name=\"align-left\" /> {{ i18n.t('richText.menu.alignLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('center')\"><kpt-icon name=\"align-center\" /> {{ i18n.t('richText.menu.alignCenter') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('right')\"><kpt-icon name=\"align-right\" /> {{ i18n.t('richText.menu.alignRight') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canMerge()\" (click)=\"mergeCells()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.mergeCells') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canSplit()\" (click)=\"splitCell()\"><kpt-icon name=\"grip-vertical\" /> {{ i18n.t('richText.menu.splitCell') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openBorder()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.border') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item kpt-rt-menu__item--danger\" (click)=\"deleteTable()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteTable') }}</button>\n </div>\n </ng-template>\n\n <!-- Popover obramowania (tabela / komórka) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"borderOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeBorder()\"\n (detach)=\"closeBorder()\"\n >\n <div class=\"kpt-rt-border\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-border__seg\">\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'table'\" (click)=\"borderTarget.set('table')\">{{ i18n.t('richText.border.table') }}</button>\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'cell'\" (click)=\"borderTarget.set('cell')\">{{ i18n.t('richText.border.cell') }}</button>\n </div>\n <div class=\"kpt-rt-border__widths\">\n <button type=\"button\" (click)=\"setBorderWidth('none')\">{{ i18n.t('richText.border.none') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thin')\">{{ i18n.t('richText.border.thin') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('medium')\">{{ i18n.t('richText.border.medium') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thick')\">{{ i18n.t('richText.border.thick') }}</button>\n </div>\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button type=\"button\" class=\"kpt-rich-text__swatch\" [style.background]=\"c\" [attr.aria-label]=\"c\" (click)=\"setBorderColor(c)\"></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.border.customColor') }}</span>\n <input type=\"color\" (input)=\"onBorderColorInput($event)\" />\n </label>\n </div>\n </ng-template>\n\n <!-- Popover koloru tła komórki (z menu kontekstowego) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'cellBg'\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n</div>\n\n<ng-template #paletteTpl>\n <div class=\"kpt-rich-text__palette\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button\n type=\"button\"\n class=\"kpt-rich-text__swatch\"\n [style.background]=\"c\"\n [attr.aria-label]=\"c\"\n (click)=\"applyColor(c)\"\n ></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.paletteCustom') }}</span>\n <input type=\"color\" (input)=\"onColorInput($event)\" />\n </label>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptTooltip } from '../tooltip/tooltip.directive';\n\nexport type KptRichTool =\n | 'copy' | 'paste' | 'pasteText'\n | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol'\n | 'foreColor' | 'backColor'\n | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify'\n | 'link' | 'table' | 'clear' | 'html';\n\n/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */\nexport type KptRichToolbar = KptRichTool[] | KptRichTool[][];\n\nconst ICON: Record<KptRichTool, KptIconName> = {\n copy: 'copy',\n paste: 'clipboard',\n pasteText: 'clipboard-text',\n heading: 'code', // nieużywane (heading renderuje select)\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikethrough',\n ul: 'list',\n ol: 'list-numbers',\n foreColor: 'palette',\n backColor: 'highlight',\n alignLeft: 'align-left',\n alignCenter: 'align-center',\n alignRight: 'align-right',\n alignJustify: 'align-justified',\n link: 'link',\n table: 'table',\n clear: 'clear-formatting',\n html: 'code',\n};\n\n/** Narzędzia zwykłe → komenda execCommand + nazwa queryCommandState (dla stanu aktywnego). */\nconst COMMAND: Partial<Record<KptRichTool, string>> = {\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikeThrough',\n ul: 'insertUnorderedList',\n ol: 'insertOrderedList',\n alignLeft: 'justifyLeft',\n alignCenter: 'justifyCenter',\n alignRight: 'justifyRight',\n alignJustify: 'justifyFull',\n clear: 'removeFormat',\n};\n\nconst SWATCHES = [\n '#000000', '#434343', '#666666', '#999999', '#b7b7b7', '#cccccc', '#ffffff',\n '#e11d48', '#ea580c', '#ca8a04', '#16a34a', '#0891b2', '#2563eb', '#7c3aed',\n];\n\nconst DEFAULT_TOOLBAR: KptRichTool[][] = [\n ['copy', 'paste', 'pasteText'],\n ['heading', 'bold', 'italic', 'underline', 'strike', 'ul', 'ol'],\n ['foreColor', 'backColor'],\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\n ['link', 'table', 'clear', 'html'],\n];\n\n// Allowlisty sanityzacji wklejanego HTML.\nconst ALLOWED_TAGS = new Set([\n 'P', 'BR', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'B', 'STRONG', 'I', 'EM', 'U', 'S', 'STRIKE',\n 'UL', 'OL', 'LI', 'A', 'SPAN', 'DIV', 'BLOCKQUOTE', 'FONT',\n 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR', 'TD', 'TH', 'COLGROUP', 'COL', 'CAPTION',\n]);\nconst ALLOWED_STYLES = new Set([\n 'color', 'background-color', 'text-align', 'font-weight', 'font-style', 'text-decoration',\n 'width', 'height', 'border', 'border-color', 'border-width', 'border-style', 'vertical-align',\n]);\nconst ALLOWED_ATTRS = new Set(['colspan', 'rowspan', 'span', 'width', 'class', 'target', 'rel', 'title']);\n// Schematy URL dopuszczone w `href` wstawianym narzędziem „link\" (blocklista jest obchodzalna).\nconst SAFE_URL_SCHEME = /^(https?:|mailto:|tel:)/i;\nconst HAS_URL_SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/**\n * Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem sekcji.\n * Narzędzia: schowek (kopiuj / wklej / wklej bez formatowania), styl (nagłówki H1–H6 / paragraf),\n * bold/italic/underline/strike/ul/ol, kolor tekstu i tła (popover), wyrównania, link, czyszczenie.\n * `toolbar` przyjmuje płaską listę lub grupy (sekcje). Wartość = HTML. Signal Forms.\n * Wymaga stylów overlay CDK (popover kolorów): `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-rich-text [formField]=\"f.body\" />\n * <kpt-rich-text [(value)]=\"v\" [toolbar]=\"[['bold','italic'],['ul','ol'],['link']]\" />\n */\n@Component({\n selector: 'kpt-rich-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon, CdkOverlayOrigin, CdkConnectedOverlay, NgTemplateOutlet, KptTooltip],\n templateUrl: './rich-text.component.html',\n styleUrl: './rich-text.component.scss',\n host: { class: 'kpt-rich-text-host' },\n})\nexport class KptRichText implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly toolbar = input<KptRichToolbar>(DEFAULT_TOOLBAR);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly swatches = SWATCHES;\n private readonly editor = viewChild<ElementRef<HTMLElement>>('editor');\n private savedRange: Range | null = null;\n\n protected readonly colorOpen = signal(false);\n protected readonly colorKind = signal<'foreColor' | 'backColor' | 'cellBg'>('foreColor');\n protected readonly sourceView = signal(false);\n protected readonly styleOpen = signal(false);\n\n // ── Tabele ──\n protected readonly tableOpen = signal(false); // popover siatki wstawiania\n protected readonly gridR = signal(0);\n protected readonly gridC = signal(0);\n protected readonly gridRows = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly gridCols = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly menuOpen = signal(false); // menu kontekstowe\n protected readonly menuPoint = signal<{ x: number; y: number }>({ x: 0, y: 0 });\n protected readonly borderOpen = signal(false);\n protected readonly borderTarget = signal<'table' | 'cell'>('table');\n private ctxCell: HTMLTableCellElement | null = null;\n private resize: { col: HTMLTableColElement; startX: number; startW: number } | null = null;\n // Zaznaczanie wielu komórek\n protected readonly selCount = signal(0);\n private selCells = new Set<HTMLTableCellElement>();\n private selAnchor: HTMLTableCellElement | null = null;\n private selecting = false;\n private canSplitCtx = false;\n\n protected readonly styleOptions = computed<{ tag: string; label: string }[]>(() => [\n { tag: 'p', label: this.i18n.t('richText.styleNormal') },\n { tag: 'h1', label: this.i18n.t('richText.styleHeading', { level: 1 }) },\n { tag: 'h2', label: this.i18n.t('richText.styleHeading', { level: 2 }) },\n { tag: 'h3', label: this.i18n.t('richText.styleHeading', { level: 3 }) },\n { tag: 'h4', label: this.i18n.t('richText.styleHeading', { level: 4 }) },\n { tag: 'h5', label: this.i18n.t('richText.styleHeading', { level: 5 }) },\n { tag: 'h6', label: this.i18n.t('richText.styleHeading', { level: 6 }) },\n ]);\n protected readonly styleLabel = computed(\n () => this.styleOptions().find((o) => o.tag === this.currentBlock())?.label ?? this.i18n.t('richText.styleNormal'),\n );\n protected readonly activeCmds = signal<Set<string>>(new Set());\n protected readonly currentBlock = signal<string>('p');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n /** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */\n protected readonly sections = computed<KptRichTool[][]>(() => {\n const t = this.toolbar();\n if (t.length === 0) return [];\n return Array.isArray(t[0]) ? (t as KptRichTool[][]) : [t as KptRichTool[]];\n });\n\n constructor() {\n // Synchronizuj tylko przy zmianie zewnętrznej (bez resetu kursora podczas pisania).\n // Porównanie `el.innerHTML !== v` działa na SUROWEJ wartości modelu (tej samej, którą ustawia\n // `onInput()`), więc pisanie w edytorze nadal nie odpala tej gałęzi — sanityzacja włącza się\n // wyłącznie przy zewnętrznym zapisie `value` (init, `[(value)]` z aplikacji, `onSource()`).\n effect(() => {\n const el = this.editor()?.nativeElement;\n const v = this.value();\n if (el && el.innerHTML !== v) el.innerHTML = this.sanitizeHtml(v);\n });\n\n // Odzwierciedlenie stanu aktywnego narzędzi na podstawie zaznaczenia.\n const onSel = () => this.refreshState();\n const onMove = (e: MouseEvent) => this.onResizeMove(e);\n const onUp = () => this.onResizeEnd();\n document.addEventListener('selectionchange', onSel);\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n inject(DestroyRef).onDestroy(() => {\n document.removeEventListener('selectionchange', onSel);\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n });\n }\n\n protected icon(item: KptRichTool): KptIconName {\n return ICON[item];\n }\n protected aria(item: KptRichTool): string {\n return this.i18n.t(`richText.${item}`);\n }\n protected isActive(item: KptRichTool): boolean {\n if (item === 'html') return this.sourceView();\n const cmd = COMMAND[item];\n return !!cmd && this.activeCmds().has(cmd);\n }\n\n private inEditor(): boolean {\n const el = this.editor()?.nativeElement;\n const sel = window.getSelection();\n return !!el && !!sel && sel.rangeCount > 0 && el.contains(sel.anchorNode);\n }\n\n private refreshState(): void {\n if (this.disabled() || !this.inEditor()) return;\n const active = new Set<string>();\n for (const cmd of Object.values(COMMAND)) {\n if (cmd && cmd !== 'removeFormat') {\n try {\n if (document.queryCommandState(cmd)) active.add(cmd);\n } catch {\n /* nieobsługiwana komenda */\n }\n }\n }\n this.activeCmds.set(active);\n // Bieżący blok (dla selecta stylu).\n const sel = window.getSelection();\n let node = sel?.anchorNode as HTMLElement | null;\n while (node && node !== this.editor()?.nativeElement) {\n const tag = node.tagName?.toLowerCase();\n if (tag && /^(h[1-6]|p|blockquote)$/.test(tag)) {\n this.currentBlock.set(tag);\n return;\n }\n node = node.parentElement;\n }\n this.currentBlock.set('p');\n }\n\n protected onInput(): void {\n const el = this.editor()?.nativeElement;\n if (el) this.value.set(el.innerHTML);\n }\n protected onSource(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n }\n\n private focusEditor(): void {\n this.editor()?.nativeElement.focus();\n }\n private saveSelection(): void {\n const sel = window.getSelection();\n this.savedRange = sel && sel.rangeCount > 0 ? sel.getRangeAt(0).cloneRange() : null;\n }\n private restoreSelection(): void {\n const sel = window.getSelection();\n if (this.savedRange && sel) {\n sel.removeAllRanges();\n sel.addRange(this.savedRange);\n }\n }\n\n protected exec(item: KptRichTool): void {\n if (this.disabled()) return;\n if (item === 'html') {\n this.sourceView.update((v) => !v);\n return;\n }\n if (item === 'table') {\n this.saveSelection();\n this.tableOpen.set(true);\n return;\n }\n this.focusEditor();\n switch (item) {\n case 'link': {\n const url = window.prompt(this.i18n.t('richText.linkPrompt'));\n if (url) {\n const safe = this.sanitizeUrl(url);\n if (safe) document.execCommand('createLink', false, safe);\n }\n break;\n }\n case 'copy':\n document.execCommand('copy');\n break;\n case 'paste':\n void this.pasteRich();\n return;\n case 'pasteText':\n void this.pastePlain();\n return;\n default: {\n const cmd = COMMAND[item];\n if (cmd) document.execCommand(cmd);\n }\n }\n this.onInput();\n this.refreshState();\n }\n\n // ── Styl bloku (dropdown w stylu kpt-select, z podglądem wielkości) ──\n protected openStyle(): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.styleOpen.set(true);\n }\n protected closeStyle(): void {\n this.styleOpen.set(false);\n }\n protected pickStyle(tag: string): void {\n this.styleOpen.set(false);\n this.focusEditor();\n this.restoreSelection();\n document.execCommand('formatBlock', false, `<${tag}>`);\n this.onInput();\n this.refreshState();\n }\n\n // ── Kolory ──\n protected openColor(kind: 'foreColor' | 'backColor'): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.colorKind.set(kind);\n this.colorOpen.set(true);\n }\n protected closeColor(): void {\n this.colorOpen.set(false);\n }\n protected applyColor(color: string): void {\n this.colorOpen.set(false);\n if (this.colorKind() === 'cellBg') {\n for (const cell of this.activeCells()) cell.style.backgroundColor = color;\n this.onInput();\n return;\n }\n this.focusEditor();\n this.restoreSelection();\n if (this.colorKind() === 'foreColor') {\n document.execCommand('foreColor', false, color);\n } else if (!document.execCommand('hiliteColor', false, color)) {\n document.execCommand('backColor', false, color);\n }\n this.onInput();\n }\n protected onColorInput(event: Event): void {\n this.applyColor((event.target as HTMLInputElement).value);\n }\n\n // ── Schowek ──\n private async pasteRich(): Promise<void> {\n try {\n const items = await navigator.clipboard.read();\n for (const it of items) {\n if (it.types.includes('text/html')) {\n const blob = await it.getType('text/html');\n const html = this.sanitizeHtml(await blob.text());\n this.focusEditor();\n document.execCommand('insertHTML', false, html);\n this.onInput();\n return;\n }\n }\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n document.execCommand('insertText', false, text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n private async pastePlain(): Promise<void> {\n try {\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n document.execCommand('insertText', false, text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n\n /** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */\n protected onPaste(event: ClipboardEvent): void {\n if (this.disabled()) return;\n const html = event.clipboardData?.getData('text/html');\n const text = event.clipboardData?.getData('text/plain') ?? '';\n event.preventDefault();\n if (html) {\n document.execCommand('insertHTML', false, this.sanitizeHtml(html));\n } else {\n document.execCommand('insertText', false, text);\n }\n this.onInput();\n }\n\n // ── Tabele: wstawianie ──\n protected closeTable(): void {\n this.tableOpen.set(false);\n this.gridR.set(0);\n this.gridC.set(0);\n }\n protected gridHover(r: number, c: number): void {\n this.gridR.set(r);\n this.gridC.set(c);\n }\n protected insertTable(rows: number, cols: number): void {\n this.closeTable();\n this.focusEditor();\n this.restoreSelection();\n const w = (100 / cols).toFixed(4);\n const colgroup = `<colgroup>${Array.from({ length: cols }, () => `<col style=\"width:${w}%\">`).join('')}</colgroup>`;\n const row = `<tr>${Array.from({ length: cols }, () => '<td><br></td>').join('')}</tr>`;\n const body = `<tbody>${Array.from({ length: rows }, () => row).join('')}</tbody>`;\n const table = `<table class=\"kpt-rt-table\">${colgroup}${body}</table>`;\n document.execCommand('insertHTML', false, `${table}<p><br></p>`);\n this.onInput();\n }\n\n // ── Tabele: menu kontekstowe ──\n protected onContextMenu(event: MouseEvent): void {\n if (this.disabled()) return;\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!cell || !editor?.contains(cell)) return; // poza tabelą → natywne menu\n event.preventDefault();\n this.ctxCell = cell;\n this.canSplitCtx = (cell.colSpan || 1) > 1 || (cell.rowSpan || 1) > 1;\n this.menuPoint.set({ x: event.clientX, y: event.clientY });\n this.menuOpen.set(true);\n }\n protected closeMenu(): void {\n this.menuOpen.set(false);\n }\n\n private ctxTable(): HTMLTableElement | null {\n return this.ctxCell?.closest('table') ?? null;\n }\n private afterTableOp(): void {\n this.menuOpen.set(false);\n this.onInput();\n }\n\n protected insertColumn(dir: 'left' | 'right'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex + (dir === 'right' ? 1 : 0);\n for (const tr of Array.from(table.rows)) {\n const td = document.createElement('td');\n td.innerHTML = '<br>';\n tr.insertBefore(td, tr.cells[idx] ?? null);\n }\n const colgroup = table.querySelector('colgroup');\n if (colgroup) {\n const col = document.createElement('col');\n colgroup.insertBefore(col, colgroup.children[idx] ?? null);\n this.normalizeColWidths(table);\n }\n this.afterTableOp();\n }\n protected deleteColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n if ((table.rows[0]?.cells.length ?? 0) <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n for (const tr of Array.from(table.rows)) tr.cells[idx]?.remove();\n table.querySelector('colgroup')?.children[idx]?.remove();\n this.normalizeColWidths(table);\n this.afterTableOp();\n }\n protected insertRow(dir: 'above' | 'below'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const cols = tr.cells.length;\n const newRow = document.createElement('tr');\n newRow.innerHTML = Array.from({ length: cols }, () => '<td><br></td>').join('');\n tr.parentElement?.insertBefore(newRow, dir === 'below' ? tr.nextSibling : tr);\n this.afterTableOp();\n }\n protected deleteRow(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n if (table.rows.length <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n (cell.parentElement as HTMLTableRowElement).remove();\n this.afterTableOp();\n }\n /** Zamień komórki wiersza między `<td>` a `<th>` (wiersz nagłówka). */\n protected toggleHeaderRow(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const toHeader = tr.cells[0]?.tagName !== 'TH';\n for (const c of Array.from(tr.cells)) this.swapCellTag(c, toHeader ? 'th' : 'td');\n this.ctxCell = null; // komórki zostały podmienione\n this.afterTableOp();\n }\n /** Zamień komórki kolumny między `<td>` a `<th>` (kolumna nagłówka). */\n protected toggleHeaderColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n const toHeader = cell.tagName !== 'TH';\n for (const tr of Array.from(table.rows)) {\n const c = tr.cells[idx];\n if (c) this.swapCellTag(c, toHeader ? 'th' : 'td');\n }\n this.ctxCell = null;\n this.afterTableOp();\n }\n private swapCellTag(cell: HTMLTableCellElement, tag: 'td' | 'th'): void {\n if (cell.tagName.toLowerCase() === tag) return;\n const el = document.createElement(tag);\n for (const a of Array.from(cell.attributes)) el.setAttribute(a.name, a.value);\n el.append(...Array.from(cell.childNodes));\n cell.replaceWith(el);\n }\n protected deleteTable(): void {\n this.ctxTable()?.remove();\n this.afterTableOp();\n }\n protected alignCell(a: 'left' | 'center' | 'right'): void {\n for (const cell of this.activeCells()) cell.style.textAlign = a;\n this.afterTableOp();\n }\n /** Komórki objęte operacją: zaznaczenie (jeśli jest) lub bieżąca komórka menu. */\n private activeCells(): HTMLTableCellElement[] {\n if (this.selCells.size) return [...this.selCells];\n return this.ctxCell ? [this.ctxCell] : [];\n }\n protected openCellBg(): void {\n this.menuOpen.set(false);\n this.colorKind.set('cellBg');\n this.colorOpen.set(true);\n }\n\n // ── Obramowanie (tabela / komórka) ──\n protected openBorder(): void {\n this.menuOpen.set(false);\n this.borderOpen.set(true);\n }\n protected closeBorder(): void {\n this.borderOpen.set(false);\n }\n private borderCells(): HTMLTableCellElement[] {\n if (this.borderTarget() === 'cell') return this.activeCells();\n const table = this.ctxTable();\n return table ? (Array.from(table.querySelectorAll('td, th')) as HTMLTableCellElement[]) : [];\n }\n protected setBorderWidth(w: 'none' | 'thin' | 'medium' | 'thick'): void {\n const px: Record<string, string> = { thin: '1px', medium: '2px', thick: '3px' };\n for (const cell of this.borderCells()) {\n if (w === 'none') {\n cell.style.borderStyle = 'none';\n cell.style.borderWidth = '';\n } else {\n cell.style.borderStyle = 'solid';\n cell.style.borderWidth = px[w];\n }\n }\n this.onInput();\n }\n protected setBorderColor(color: string): void {\n for (const cell of this.borderCells()) {\n cell.style.borderColor = color;\n if (!cell.style.borderStyle || cell.style.borderStyle === 'none') cell.style.borderStyle = 'solid';\n if (!cell.style.borderWidth) cell.style.borderWidth = '1px';\n }\n this.onInput();\n }\n protected onBorderColorInput(event: Event): void {\n this.setBorderColor((event.target as HTMLInputElement).value);\n }\n private normalizeColWidths(table: HTMLTableElement): void {\n const cols = Array.from(table.querySelectorAll('col'));\n const w = (100 / cols.length).toFixed(4);\n for (const col of cols) (col as HTMLElement).style.width = `${w}%`;\n }\n\n // ── Tabele: resize kolumn + zaznaczanie komórek ──\n protected onEditorMouseDown(event: MouseEvent): void {\n if (this.disabled() || event.button !== 0) return; // tylko lewy przycisk\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n if (!cell) {\n this.clearSelection();\n return;\n }\n const rect = cell.getBoundingClientRect();\n if (event.clientX >= rect.right - 6) {\n // Strefa przy prawej krawędzi → resize kolumny.\n const table = cell.closest('table');\n const col = table?.querySelectorAll('col')[cell.cellIndex] as HTMLTableColElement | undefined;\n if (col) {\n event.preventDefault();\n this.resize = { col, startX: event.clientX, startW: col.getBoundingClientRect().width };\n return;\n }\n }\n // Start zaznaczania (potwierdzone dopiero przy ruchu).\n this.clearSelection();\n this.selAnchor = cell;\n this.selecting = false;\n }\n protected onEditorMouseMove(event: MouseEvent): void {\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!editor) return;\n const near = !!cell && event.clientX >= cell.getBoundingClientRect().right - 6;\n editor.classList.toggle('is-col-resize', near || !!this.resize);\n }\n private onResizeMove(event: MouseEvent): void {\n if (this.resize) {\n const w = Math.max(32, this.resize.startW + (event.clientX - this.resize.startX));\n this.resize.col.style.width = `${w}px`;\n return;\n }\n // Przeciąganie zaznaczenia komórek.\n if (!this.selAnchor || !(event.buttons & 1)) return;\n const target = event.target;\n if (!(target instanceof Element)) return;\n const focus = target.closest('td, th') as HTMLTableCellElement | null;\n if (!focus || focus.closest('table') !== this.selAnchor.closest('table')) return;\n if (focus === this.selAnchor && !this.selecting) return;\n this.selecting = true;\n event.preventDefault();\n window.getSelection()?.removeAllRanges();\n this.selectRegion(this.selAnchor, focus);\n }\n private onResizeEnd(): void {\n if (this.resize) {\n this.resize = null;\n this.onInput();\n }\n if (this.selAnchor && !this.selecting) this.clearSelection(); // zwykły klik\n this.selAnchor = null;\n this.selecting = false;\n }\n\n // ── Macierz siatki (uwzględnia colspan/rowspan) ──\n private buildGrid(table: HTMLTableElement): {\n grid: HTMLTableCellElement[][];\n pos: Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>;\n } {\n const grid: HTMLTableCellElement[][] = [];\n const pos = new Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>();\n const rows = Array.from(table.rows);\n rows.forEach((tr, r) => {\n grid[r] ??= [];\n let c = 0;\n for (const cell of Array.from(tr.cells)) {\n while (grid[r][c]) c++; // pomiń zajęte przez rowspan wyżej\n const colspan = cell.colSpan || 1;\n const rowspan = cell.rowSpan || 1;\n pos.set(cell, { r, c, rowspan, colspan });\n for (let dr = 0; dr < rowspan; dr++) {\n grid[r + dr] ??= [];\n for (let dc = 0; dc < colspan; dc++) grid[r + dr][c + dc] = cell;\n }\n c += colspan;\n }\n });\n return { grid, pos };\n }\n\n private selectRegion(anchor: HTMLTableCellElement, focus: HTMLTableCellElement): void {\n const table = anchor.closest('table') as HTMLTableElement | null;\n if (!table) return;\n const { grid, pos } = this.buildGrid(table);\n const a = pos.get(anchor);\n const f = pos.get(focus);\n if (!a || !f) return;\n let r0 = Math.min(a.r, f.r);\n let c0 = Math.min(a.c, f.c);\n let r1 = Math.max(a.r + a.rowspan - 1, f.r + f.rowspan - 1);\n let c1 = Math.max(a.c + a.colspan - 1, f.c + f.colspan - 1);\n // Rozszerz region, by w pełni objąć scalone komórki na brzegach.\n for (let changed = true; changed; ) {\n changed = false;\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const cell = grid[r]?.[c];\n if (!cell) continue;\n const p = pos.get(cell)!;\n if (p.r < r0) { r0 = p.r; changed = true; }\n if (p.c < c0) { c0 = p.c; changed = true; }\n if (p.r + p.rowspan - 1 > r1) { r1 = p.r + p.rowspan - 1; changed = true; }\n if (p.c + p.colspan - 1 > c1) { c1 = p.c + p.colspan - 1; changed = true; }\n }\n }\n }\n const set = new Set<HTMLTableCellElement>();\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const cell = grid[r]?.[c];\n if (cell) set.add(cell);\n }\n }\n this.clearSelection();\n for (const cell of set) cell.classList.add('kpt-rt-cell-sel');\n this.selCells = set;\n this.selCount.set(set.size);\n }\n\n private clearSelection(): void {\n for (const cell of this.selCells) cell.classList.remove('kpt-rt-cell-sel');\n this.selCells = new Set();\n this.selCount.set(0);\n }\n\n // ── Scalanie / dzielenie ──\n protected mergeCells(): void {\n if (this.selCells.size < 2) return;\n const cells = [...this.selCells];\n const table = cells[0].closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n let r0 = Infinity, c0 = Infinity, r1 = -1, c1 = -1;\n for (const cell of cells) {\n const p = pos.get(cell)!;\n r0 = Math.min(r0, p.r); c0 = Math.min(c0, p.c);\n r1 = Math.max(r1, p.r + p.rowspan - 1); c1 = Math.max(c1, p.c + p.colspan - 1);\n }\n const topLeft = cells.find((cell) => { const p = pos.get(cell)!; return p.r === r0 && p.c === c0; }) ?? cells[0];\n // Przenieś niepustą treść pozostałych komórek do górnej-lewej.\n for (const cell of cells) {\n if (cell === topLeft) continue;\n const html = cell.innerHTML.trim();\n if (html && html !== '<br>') topLeft.innerHTML += ` ${html}`;\n cell.remove();\n }\n const colspan = c1 - c0 + 1;\n const rowspan = r1 - r0 + 1;\n if (colspan > 1) topLeft.colSpan = colspan; else topLeft.removeAttribute('colspan');\n if (rowspan > 1) topLeft.rowSpan = rowspan; else topLeft.removeAttribute('rowspan');\n this.clearSelection();\n this.menuOpen.set(false);\n this.onInput();\n }\n protected splitCell(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const table = cell.closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n const p = pos.get(cell);\n if (!p || (p.colspan <= 1 && p.rowspan <= 1)) return;\n const tag = cell.tagName.toLowerCase();\n cell.removeAttribute('colspan');\n cell.removeAttribute('rowspan');\n // Uzupełnij brakujące pozycje siatki pustymi komórkami (dla każdego pokrytego wiersza).\n for (let dr = 0; dr < p.rowspan; dr++) {\n const startCol = dr === 0 ? p.c + 1 : p.c; // origin zostaje w pierwszym wierszu\n const count = dr === 0 ? p.colspan - 1 : p.colspan;\n if (count <= 0) continue;\n const row = table.rows[p.r + dr];\n const before = this.cellBeforeGridCol(row, p.c, table);\n for (let i = 0; i < count; i++) {\n const el = document.createElement(tag);\n el.innerHTML = '<br>';\n row.insertBefore(el, before);\n }\n }\n this.menuOpen.set(false);\n this.onInput();\n }\n /** Komórka w wierszu, przed którą wstawić (pierwsza o origin-col > gridCol), lub null (na koniec). */\n private cellBeforeGridCol(row: HTMLTableRowElement, gridCol: number, table: HTMLTableElement): HTMLTableCellElement | null {\n const { pos } = this.buildGrid(table);\n for (const cell of Array.from(row.cells)) {\n const p = pos.get(cell);\n if (p && p.c > gridCol) return cell;\n }\n return null;\n }\n protected canMerge(): boolean {\n return this.selCells.size >= 2;\n }\n protected canSplit(): boolean {\n return this.canSplitCtx;\n }\n\n /**\n * Waliduje URL z narzędzia „link\" (blocklista jest obchodzalna, np. `javascript:`).\n * Brak schematu → dopisz `https://` (spójne z zachowaniem `normalizeUrl` w mapie); `#`/`/`\n * przechodzą bez zmian; schemat spoza `SAFE_URL_SCHEME` → `null` (link nie zostaje wstawiony).\n */\n private sanitizeUrl(url: string): string | null {\n const trimmed = url.trim().replace(/[\\x00-\\x1f]/g, '');\n if (!trimmed) return null;\n if (trimmed.startsWith('#') || trimmed.startsWith('/')) return trimmed;\n if (!HAS_URL_SCHEME.test(trimmed)) return `https://${trimmed}`;\n return SAFE_URL_SCHEME.test(trimmed) ? trimmed : null;\n }\n\n private sanitizeHtml(html: string): string {\n const tpl = document.createElement('template');\n tpl.innerHTML = html;\n const walk = (root: ParentNode): void => {\n for (const el of Array.from(root.querySelectorAll('*'))) {\n if (!ALLOWED_TAGS.has(el.tagName)) {\n el.replaceWith(...Array.from(el.childNodes));\n continue;\n }\n for (const attr of Array.from(el.attributes)) {\n const name = attr.name.toLowerCase();\n if (name.startsWith('on')) {\n el.removeAttribute(attr.name);\n } else if (name === 'href' || name === 'src') {\n // Usuń znaki kontrolne przed testem schematu — przeglądarka i tak je ignoruje przy\n // parsowaniu URL-a (WHATWG URL spec), więc `jav\\tascript:` obchodziłby sam blocklisting.\n if (/^\\s*javascript:/i.test(attr.value.replace(/[\\x00-\\x1f]/g, ''))) el.removeAttribute(attr.name);\n } else if (name === 'style') {\n const kept = attr.value\n .split(';')\n .map((s) => s.trim())\n .filter((s) => ALLOWED_STYLES.has(s.split(':')[0]?.trim().toLowerCase()));\n if (kept.length) el.setAttribute('style', kept.join('; '));\n else el.removeAttribute('style');\n } else if (!ALLOWED_ATTRS.has(name) && name !== 'color') {\n el.removeAttribute(attr.name);\n }\n }\n }\n };\n walk(tpl.content);\n return tpl.innerHTML;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */\nexport type KptSliderValue = number | [number, number];\n\n/**\n * Suwak wartości (slider) na Signal Forms.\n * W trybie `range` udostępnia dwa uchwyty, a wartość jest parą `[min, max]`.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.volume, 0)`,\n * `max(path.volume, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n * Tryb `range` (wartość `[number, number]`) łączy się więc tylko z `[(value)]`.\n *\n * @example\n * <kpt-slider [formField]=\"f.volume\" [step]=\"5\" showValue />\n * <kpt-slider [(value)]=\"volume\" [min]=\"0\" [max]=\"100\" [step]=\"5\" showValue />\n * <kpt-slider range [(value)]=\"zakres\" [min]=\"0\" [max]=\"100\" showValue />\n */\n@Component({\n selector: 'kpt-slider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (range()) {\n <div class=\"kpt-slider__range\">\n <div class=\"kpt-slider__rail\"></div>\n <div class=\"kpt-slider__fill\" [style.left.%]=\"lowPct()\" [style.right.%]=\"100 - highPct()\"></div>\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--low\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"low()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Minimum'\"\n (input)=\"setLow(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--high\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"high()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Maksimum'\"\n (input)=\"setHigh(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n </div>\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ low() }}–{{ high() }}</span>\n }\n } @else {\n <input\n class=\"kpt-slider__input\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"single()\"\n [disabled]=\"disabled()\"\n [style.--_pct.%]=\"highPct()\"\n (input)=\"value.set(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ single() }}</span>\n }\n }\n `,\n styleUrl: './slider.component.scss',\n host: { class: 'kpt-slider-host' },\n})\nexport class KptSlider implements FormValueControl<KptSliderValue> {\n readonly value = model<KptSliderValue>(0);\n /** Tryb zakresu: dwa uchwyty; wartość jako para `[min, max]`. */\n readonly range = input(false, { transform: booleanAttribute });\n // Typ zgodny z FormValueControl<KptSliderValue> (FormField może zsync-ować walidatory min/max).\n // W praktyce zawsze liczby — do matematyki/szablonu używamy skalarnych `minN`/`maxN`.\n readonly min = input<KptSliderValue | undefined>(0);\n readonly max = input<KptSliderValue | undefined>(100);\n readonly step = input(1);\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n // Skalarne granice do szablonu i obliczeń (min/max są typowane szeroko dla FormValueControl).\n private toNum(v: KptSliderValue | undefined, fallback: number): number {\n return typeof v === 'number' ? v : fallback;\n }\n protected readonly minN = computed(() => this.toNum(this.min(), 0));\n protected readonly maxN = computed(() => this.toNum(this.max(), 100));\n\n /** Bieżąca para `[low, high]` — również dla trybu pojedynczego (low = min). */\n private readonly pair = computed<[number, number]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return [v[0], v[1]];\n return [this.minN(), v];\n });\n protected readonly single = computed(() => {\n const v = this.value();\n return Array.isArray(v) ? v[1] : v;\n });\n protected readonly low = computed(() => this.pair()[0]);\n protected readonly high = computed(() => this.pair()[1]);\n\n protected setLow(v: number): void {\n const [, hi] = this.pair();\n this.value.set([Math.min(v, hi), hi]);\n }\n protected setHigh(v: number): void {\n const [lo] = this.pair();\n this.value.set([lo, Math.max(v, lo)]);\n }\n\n private pct(val: number): number {\n const mn = this.minN();\n const mx = this.maxN();\n const range = mx - mn;\n return range <= 0 ? 0 : ((val - mn) / range) * 100;\n }\n protected readonly lowPct = computed(() => this.pct(this.low()));\n protected readonly highPct = computed(() => this.pct(this.high()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Ocena gwiazdkami (rating) na Signal Forms.\n *\n * @example\n * <kpt-rating [formField]=\"f.score\" [count]=\"5\" />\n * <kpt-rating [value]=\"4\" readonly />\n */\n@Component({\n selector: 'kpt-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-rating\" role=\"slider\" [attr.aria-valuenow]=\"value()\" [attr.aria-valuemax]=\"count()\">\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n class=\"kpt-rating__star\"\n [class.is-filled]=\"star <= (hover() || value())\"\n [disabled]=\"readonly() || disabled()\"\n (click)=\"pick(star)\"\n (mouseenter)=\"hover.set(star)\"\n (mouseleave)=\"hover.set(0)\"\n [attr.aria-label]=\"star + ' z ' + count()\"\n ><kpt-icon name=\"star\" /></button>\n }\n </div>\n `,\n styleUrl: './rating.component.scss',\n host: { class: 'kpt-rating-host' },\n})\nexport class KptRating implements FormValueControl<number> {\n readonly value = model<number>(0);\n /** Liczba gwiazdek. */\n readonly count = input(5);\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly hover = signal(0);\n protected readonly stars = computed(() => Array.from({ length: this.count() }, (_, i) => i + 1));\n\n protected pick(star: number): void {\n if (this.readonly() || this.disabled()) return;\n this.value.set(this.value() === star ? 0 : star);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Wgrywanie plików (drag-drop + wybór). Wartość = File[]. Signal Forms.\n *\n * @example\n * <kpt-file-upload [formField]=\"f.files\" accept=\"image/*\" multiple />\n */\n@Component({\n selector: 'kpt-file-upload',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-file-upload__zone\"\n [class.is-dragover]=\"dragover()\"\n [class.is-disabled]=\"disabled()\"\n (click)=\"fileInput.click()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"dragover.set(false)\"\n (drop)=\"onDrop($event)\"\n >\n <input #fileInput type=\"file\" hidden [accept]=\"accept()\" [multiple]=\"multiple()\" (change)=\"onSelect($event)\" />\n <kpt-icon name=\"upload\" class=\"kpt-file-upload__icon\" />\n <div class=\"kpt-file-upload__text\" [innerHTML]=\"i18n.t('fileUpload.hint')\"></div>\n @if (accept()) { <div class=\"kpt-file-upload__hint\">{{ accept() }}</div> }\n </div>\n\n @if (value().length) {\n <ul class=\"kpt-file-upload__list\">\n @for (file of value(); track file.name) {\n <li class=\"kpt-file-upload__file\">\n <kpt-icon name=\"photo\" />\n <span class=\"kpt-file-upload__name\">{{ file.name }}</span>\n <span class=\"kpt-file-upload__size\">{{ size(file) }}</span>\n <button type=\"button\" class=\"kpt-file-upload__remove\" (click)=\"remove(file, $event)\" [attr.aria-label]=\"i18n.t('fileUpload.remove')\"><kpt-icon name=\"trash\" /></button>\n </li>\n }\n </ul>\n }\n `,\n styleUrl: './file-upload.component.scss',\n host: { class: 'kpt-file-upload-host' },\n})\nexport class KptFileUpload implements FormValueControl<File[]> {\n readonly value = model<File[]>([]);\n readonly accept = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly dragover = signal(false);\n\n protected onSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.addFiles(input.files);\n input.value = '';\n }\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled()) this.dragover.set(true);\n }\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragover.set(false);\n if (!this.disabled()) this.addFiles(event.dataTransfer?.files);\n }\n private addFiles(list: FileList | null | undefined): void {\n if (!list?.length) return;\n const arr = Array.from(list);\n this.value.set(this.multiple() ? [...this.value(), ...arr] : arr.slice(0, 1));\n this.touch.emit();\n }\n protected remove(file: File, event: Event): void {\n event.stopPropagation();\n this.value.set(this.value().filter((f) => f !== file));\n }\n protected size(file: File): string {\n const kb = file.size / 1024;\n return kb < 1024 ? `${kb.toFixed(0)} KB` : `${(kb / 1024).toFixed(1)} MB`;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Wybór koloru (swatch + hex + presety) na Signal Forms. Wartość = hex, np. '#3b82f6'.\n *\n * @example\n * <kpt-color-picker [formField]=\"f.brand\" />\n */\n@Component({\n selector: 'kpt-color-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-color-picker\">\n <label class=\"kpt-color-picker__swatch\" [style.background-color]=\"value()\">\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n </label>\n <input\n type=\"text\"\n class=\"kpt-color-picker__hex\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n maxlength=\"7\"\n (input)=\"onHex($event)\"\n (blur)=\"touch.emit()\"\n />\n <div class=\"kpt-color-picker__presets\">\n @for (color of presets(); track color) {\n <button\n type=\"button\"\n class=\"kpt-color-picker__preset\"\n [class.is-active]=\"color === value()\"\n [style.background-color]=\"color\"\n [disabled]=\"disabled()\"\n (click)=\"value.set(color)\"\n [attr.aria-label]=\"color\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './color-picker.component.scss',\n host: { class: 'kpt-color-picker-host' },\n})\nexport class KptColorPicker implements FormValueControl<string> {\n readonly value = model<string>('#3b82f6');\n readonly presets = input<string[]>([\n '#ef4444', '#f59e0b', '#10b981', '#3b82f6', '#8b5cf6', '#ec4899', '#111827', '#ffffff',\n ]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected onHex(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n class=\"kpt-calendar\"\n [class.kpt-calendar--clock]=\"mode() === 'time'\"\n [class.kpt-calendar--range]=\"mode() !== 'time'\"\n [class.kpt-calendar--multi]=\"multi() && mode() !== 'time'\"\n (keydown.escape)=\"close()\"\n >\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__panels\">\n @for (panel of panels(); track panel.key; let first = $first, last = $last) {\n <div class=\"kpt-calendar__panel\">\n <!-- Strzałki tylko na skrajnych panelach; puste sloty trzymają tytuł na środku. -->\n <div class=\"kpt-calendar__header\">\n @if (first) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n <span class=\"kpt-calendar__title\">{{ panel.label }}</span>\n @if (last) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of panel.weeks; track $index) {\n @for (cell of week; track cell.iso) {\n @if (cell.blank) {\n <span class=\"kpt-calendar__day kpt-calendar__day--blank\"></span>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--range-start]=\"cell.rangeStart\"\n [class.kpt-calendar__day--range-end]=\"cell.rangeEnd\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptButton } from '../button/button.component';\nimport { KptClock } from '../datepicker/clock.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptDateRangeValue {\n start: string;\n end: string;\n}\n\n/** Granulacja zakresu: same daty, daty z godziną, same godziny. */\nexport type KptDateRangeMode = 'date' | 'datetime' | 'time';\n\ninterface DayCell {\n day: number;\n iso: string;\n inMonth: boolean;\n today: boolean;\n isStart: boolean;\n isEnd: boolean;\n inRange: boolean;\n /** Pasmo zakresu wychodzi z tej komórki w prawo / dochodzi z lewej — do zaokrągleń kapsuły. */\n rangeStart: boolean;\n rangeEnd: boolean;\n /** Pusty slot siatki: dni sąsiednich miesięcy przy wielu panelach (patrz `panels`). */\n blank: boolean;\n disabled: boolean;\n}\n\n/** Jeden miesiąc panelu kalendarza. */\ninterface MonthPanel {\n key: string;\n label: string;\n weeks: DayCell[][];\n}\n\nconst pad = (n: number): string => String(n).padStart(2, '0');\nconst toIso = (d: Date): string => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;\n\n/**\n * Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.\n * `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).\n * `visibleMonths` pokazuje kilka miesięcy obok siebie (typowo 2) — zakres podświetla się\n * ciągłym pasmem przez wszystkie panele.\n * Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-date-range [formField]=\"f.period\" />\n * <kpt-date-range [visibleMonths]=\"2\" [(value)]=\"period\" />\n * <kpt-date-range mode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"span\" />\n * <kpt-date-range mode=\"time\" [(value)]=\"hours\" />\n */\n@Component({\n selector: 'kpt-date-range',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: { class: 'kpt-date-range-host' },\n})\nexport class KptDateRange implements FormValueControl<KptDateRangeValue> {\n readonly value = model<KptDateRangeValue>({ start: '', end: '' });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Placeholder; bez wartości używa i18n (`dateRange.placeholder`). */\n readonly placeholder = input<string>();\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n readonly mode = input<KptDateRangeMode>('date');\n /** Liczba miesięcy obok siebie (1–3; domyślnie 1). Ignorowana w trybie 'time'. */\n readonly visibleMonths = input(1, { transform: numberAttribute });\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('dateRange.placeholder'));\n protected readonly open = signal(false);\n private readonly today = new Date();\n private readonly view = signal({ y: this.today.getFullYear(), m: this.today.getMonth() });\n\n // ── Bufory czasu (tryby datetime/time) ──\n protected readonly startTime = signal('');\n protected readonly endTime = signal('');\n protected readonly timeEnd = signal<'start' | 'end'>('start'); // który koniec edytuje tarcza\n // Daty zakresu (część kalendarzowa dla datetime — bez czasu)\n private readonly startDate = signal('');\n private readonly endDate = signal('');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly panelCount = computed(() => {\n const n = Math.trunc(this.visibleMonths());\n return Number.isFinite(n) ? Math.min(3, Math.max(1, n)) : 1;\n });\n protected readonly multi = computed(() => this.panelCount() > 1);\n\n private datePart(v: string): string {\n return v ? v.slice(0, 10) : '';\n }\n private timePart(v: string): string {\n const m = /[T ](\\d{2}:\\d{2})$/.exec(v);\n return m ? m[1] : '';\n }\n private fmtDate(iso: string): string {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso);\n if (!m) return '';\n return this.displayFormat() === 'iso' ? `${m[1]}-${m[2]}-${m[3]}` : `${m[3]}.${m[2]}.${m[1]}`;\n }\n private fmtTime(hhmm: string): string {\n const m = /^(\\d{2}):(\\d{2})$/.exec(hhmm);\n if (!m) return '';\n if (this.hourFormat() === 12) {\n const h = +m[1];\n const h12 = h % 12 === 0 ? 12 : h % 12;\n return `${h12}:${m[2]} ${h < 12 ? 'AM' : 'PM'}`;\n }\n return hhmm;\n }\n\n protected readonly display = computed(() => {\n const { start, end } = this.value();\n if (!start) return '';\n const mode = this.mode();\n if (mode === 'time') {\n return end ? `${this.fmtTime(start)} – ${this.fmtTime(end)}` : `${this.fmtTime(start)} – …`;\n }\n if (mode === 'datetime') {\n const one = (v: string): string => {\n const d = this.fmtDate(this.datePart(v));\n const t = this.fmtTime(this.timePart(v));\n return t ? `${d} ${t}` : d;\n };\n return end ? `${one(start)} – ${one(end)}` : `${one(start)} – …`;\n }\n return end ? `${this.fmtDate(start)} – ${this.fmtDate(end)}` : `${this.fmtDate(start)} – …`;\n });\n\n /**\n * Panele miesięcy. Przy kilku panelach dni sąsiednich miesięcy są wygaszane do pustych slotów:\n * inaczej ta sama data byłaby klikalna dwa razy (jako „wyszarzona\" w jednym panelu i właściwa\n * w drugim) i pasmo zakresu malowałoby się w obu miejscach.\n */\n protected readonly panels = computed<MonthPanel[]>(() => {\n const { y, m } = this.view();\n return Array.from({ length: this.panelCount() }, (_, i) => {\n const first = new Date(y, m + i, 1);\n const py = first.getFullYear();\n const pm = first.getMonth();\n return {\n key: `${py}-${pad(pm + 1)}`,\n label: `${this.months()[pm]} ${py}`,\n weeks: this.buildWeeks(py, pm),\n };\n });\n });\n\n private buildWeeks(y: number, m: number): DayCell[][] {\n const datetime = this.mode() === 'datetime';\n const start = datetime ? this.startDate() : this.value().start;\n const end = datetime ? this.endDate() : this.value().end;\n const hasBand = !!start && !!end && start < end;\n const hideOutside = this.multi();\n const todayIso = toIso(this.today);\n const first = new Date(y, m, 1);\n const startOffset = (first.getDay() + 6) % 7;\n const gridStart = new Date(y, m, 1 - startOffset);\n\n const weeks: DayCell[][] = [];\n for (let w = 0; w < 6; w++) {\n const row: DayCell[] = [];\n for (let d = 0; d < 7; d++) {\n const date = new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + w * 7 + d);\n const iso = toIso(date);\n const inMonth = date.getMonth() === m;\n row.push({\n day: date.getDate(),\n iso,\n inMonth,\n today: iso === todayIso,\n isStart: iso === start,\n isEnd: iso === end,\n inRange: hasBand && iso > start && iso < end,\n rangeStart: hasBand && iso === start,\n rangeEnd: hasBand && iso === end,\n blank: hideOutside && !inMonth,\n disabled: false,\n });\n }\n weeks.push(row);\n }\n return weeks;\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n if (!this.open()) {\n const { start, end } = this.value();\n const base = this.datePart(start) || toIso(this.today);\n const d = new Date(base);\n this.view.set({ y: d.getFullYear(), m: d.getMonth() });\n if (this.mode() === 'datetime') {\n this.startDate.set(this.datePart(start));\n this.endDate.set(this.datePart(end));\n this.startTime.set(this.timePart(start) || '00:00');\n this.endTime.set(this.timePart(end) || '00:00');\n } else if (this.mode() === 'time') {\n this.startTime.set(/^\\d{2}:\\d{2}$/.test(start) ? start : '00:00');\n this.endTime.set(/^\\d{2}:\\d{2}$/.test(end) ? end : '00:00');\n }\n this.timeEnd.set('start');\n }\n this.open.update((o) => !o);\n }\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected selectDay(cell: DayCell): void {\n if (cell.blank || cell.disabled) return;\n if (this.mode() === 'datetime') {\n const start = this.startDate();\n const end = this.endDate();\n if (!start || (start && end)) {\n this.startDate.set(cell.iso);\n this.endDate.set('');\n } else if (cell.iso < start) {\n this.endDate.set(start);\n this.startDate.set(cell.iso);\n } else {\n this.endDate.set(cell.iso);\n }\n return; // czas do wyboru → zamknięcie przez „Gotowe\"\n }\n const { start, end } = this.value();\n if (!start || (start && end)) {\n this.value.set({ start: cell.iso, end: '' });\n } else {\n if (cell.iso < start) this.value.set({ start: cell.iso, end: start });\n else this.value.set({ start, end: cell.iso });\n this.close();\n }\n }\n\n protected commit(): void {\n if (this.mode() === 'time') {\n const s = this.startTime() || '00:00';\n const e = this.endTime() || '00:00';\n // Normalizacja kolejności (start ≤ end).\n this.value.set(s <= e ? { start: s, end: e } : { start: e, end: s });\n } else if (this.mode() === 'datetime') {\n const sd = this.startDate();\n const ed = this.endDate() || sd;\n if (!sd) {\n this.close();\n return;\n }\n const start = `${sd}T${this.startTime() || '00:00'}`;\n const end = `${ed}T${this.endTime() || '00:00'}`;\n this.value.set(start <= end ? { start, end } : { start: end, end: start });\n }\n this.close();\n }\n\n protected prevMonth(): void {\n this.view.update(({ y, m }) => (m === 0 ? { y: y - 1, m: 11 } : { y, m: m - 1 }));\n }\n protected nextMonth(): void {\n this.view.update(({ y, m }) => (m === 11 ? { y: y + 1, m: 0 } : { y, m: m + 1 }));\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set({ start: '', end: '' });\n this.startDate.set('');\n this.endDate.set('');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Pole liczbowe ze strzałkami krokowania na Signal Forms. Wartość = number | null.\n * `showButtons=\"false\"` chowa strzałki — wariant do zakresów „od–do\", gdzie krokowanie\n * nie ma sensu, a pole ma wyglądać jak zwykłe `kpt-input` obok.\n *\n * Pod `[formField]` granic NIE bindujemy w szablonie — `[min]`/`[max]` obok `[formField]`\n * to błąd kompilacji. Deklaruje je schemat (`min(path.qty, 0)`, `max(path.qty, 99)`),\n * a dyrektywa `FormField` sama wstrzykuje je w wejścia `min`/`max`.\n *\n * @example\n * <kpt-input-number [formField]=\"f.qty\" [step]=\"1\" />\n * <kpt-input-number [(value)]=\"qty\" [min]=\"0\" [max]=\"99\" suffix=\" szt.\" />\n * <kpt-input-number [formField]=\"f.priceFrom\" [showButtons]=\"false\" suffix=\" zł\" />\n */\n@Component({\n selector: 'kpt-input-number',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-input-number\"\n [class.kpt-input-number--disabled]=\"disabled()\"\n [class.kpt-input-number--invalid]=\"showInvalid()\"\n [class.kpt-input-number--plain]=\"!showButtons()\"\n >\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canDec()\" (click)=\"step_(-1)\" [attr.aria-label]=\"i18n.t('inputNumber.decrement')\"><kpt-icon name=\"minus\" /></button>\n }\n <input\n class=\"kpt-input-number__input\"\n type=\"text\"\n inputmode=\"decimal\"\n [value]=\"display()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canInc()\" (click)=\"step_(1)\" [attr.aria-label]=\"i18n.t('inputNumber.increment')\"><kpt-icon name=\"plus\" /></button>\n }\n </div>\n `,\n styleUrl: './input-number.component.scss',\n host: { class: 'kpt-input-number-host' },\n})\nexport class KptInputNumber implements FormValueControl<number | null> {\n readonly value = model<number | null>(null);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly step = input(1);\n readonly placeholder = input('');\n readonly suffix = input('');\n /** Pokaż przyciski krokowania. `false` daje samo pole — wariant do zakresów „od–do\". */\n readonly showButtons = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (v === null || v === undefined || Number.isNaN(v)) return '';\n return `${v}${this.suffix()}`;\n });\n protected readonly canInc = computed(() => {\n const mx = this.max();\n return mx === undefined || (this.value() ?? -Infinity) < mx;\n });\n protected readonly canDec = computed(() => {\n const mn = this.min();\n return mn === undefined || (this.value() ?? Infinity) > mn;\n });\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replace(this.suffix(), '').replace(',', '.').trim();\n if (raw === '') {\n this.value.set(null);\n return;\n }\n const n = Number(raw);\n if (!Number.isNaN(n)) this.value.set(this.clamp(n));\n }\n\n protected step_(dir: 1 | -1): void {\n const base = this.value() ?? this.min() ?? 0;\n this.value.set(this.clamp(base + dir * this.step()));\n this.touch.emit();\n }\n\n private clamp(n: number): number {\n const mn = this.min();\n const mx = this.max();\n if (mn !== undefined && n < mn) return mn;\n if (mx !== undefined && n > mx) return mx;\n return n;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\ninterface Strength {\n score: 0 | 1 | 2 | 3 | 4;\n label: string;\n}\n\n/**\n * Pole hasła z przełącznikiem widoczności i opcjonalnym miernikiem siły. Signal Forms.\n *\n * @example\n * <kpt-password [formField]=\"f.password\" feedback />\n */\n@Component({\n selector: 'kpt-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-password\" [class.kpt-password--disabled]=\"disabled()\" [class.kpt-password--invalid]=\"showInvalid()\">\n <input\n class=\"kpt-password__input\"\n [type]=\"visible() ? 'text' : 'password'\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n autocomplete=\"current-password\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n <button type=\"button\" class=\"kpt-password__toggle\" [disabled]=\"disabled()\" (click)=\"visible.set(!visible())\" [attr.aria-label]=\"visible() ? i18n.t('password.hide') : i18n.t('password.show')\">\n <kpt-icon [name]=\"visible() ? 'eye-off' : 'eye'\" />\n </button>\n </div>\n @if (feedback() && value()) {\n <div class=\"kpt-password__meter\" [attr.data-score]=\"strength().score\">\n <div class=\"kpt-password__bars\">\n @for (i of [0,1,2,3]; track i) {\n <span class=\"kpt-password__bar\" [class.is-on]=\"i < strength().score\"></span>\n }\n </div>\n <span class=\"kpt-password__hint\">{{ strength().label }}</span>\n </div>\n }\n `,\n styleUrl: './password.component.scss',\n host: { class: 'kpt-password-host' },\n})\nexport class KptPassword implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly feedback = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n\n protected readonly strength = computed<Strength>(() => {\n const v = this.value();\n let s = 0;\n if (v.length >= 8) s++;\n if (/[A-Z]/.test(v) && /[a-z]/.test(v)) s++;\n if (/\\d/.test(v)) s++;\n if (/[^A-Za-z0-9]/.test(v)) s++;\n const score = Math.min(s, 4) as Strength['score'];\n return { score, label: this.i18n.messages().password.strength[score] };\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole kodu jednorazowego (OTP/PIN) — N osobnych pól, autofocus i wklejanie. Signal Forms.\n * Wartość = string (sklejone znaki).\n *\n * @example\n * <kpt-input-otp [formField]=\"f.code\" [length]=\"6\" integerOnly />\n */\n@Component({\n selector: 'kpt-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-input-otp\" [class.kpt-input-otp--invalid]=\"showInvalid()\">\n @for (i of slots(); track i) {\n <input\n class=\"kpt-input-otp__cell\"\n type=\"text\"\n [attr.inputmode]=\"integerOnly() ? 'numeric' : 'text'\"\n maxlength=\"1\"\n [value]=\"charAt(i)\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(i, $event)\"\n (keydown)=\"onKeydown(i, $event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"$any($event.target).select()\"\n />\n }\n </div>\n `,\n styleUrl: './input-otp.component.scss',\n host: { class: 'kpt-input-otp-host' },\n})\nexport class KptInputOtp implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly length = input(6);\n readonly integerOnly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly slots = computed(() => Array.from({ length: this.length() }, (_, i) => i));\n\n protected charAt(i: number): string {\n return this.value()[i] ?? '';\n }\n\n protected onInput(i: number, event: Event): void {\n const el = event.target as HTMLInputElement;\n let ch = el.value.slice(-1);\n if (this.integerOnly() && !/\\d/.test(ch)) ch = '';\n this.setChar(i, ch);\n el.value = this.charAt(i); // sync DOM z modelem — kasuje odrzucony/znormalizowany znak\n if (ch) this.focusSibling(el, 1);\n }\n\n protected onKeydown(i: number, event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && !this.charAt(i)) {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowLeft') {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowRight') {\n this.focusSibling(el, 1);\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n let text = event.clipboardData?.getData('text') ?? '';\n if (this.integerOnly()) text = text.replace(/\\D/g, '');\n this.value.set(text.slice(0, this.length()));\n this.touch.emit();\n }\n\n private setChar(i: number, ch: string): void {\n const arr = this.value().padEnd(this.length(), ' ').split('');\n arr[i] = ch || ' ';\n this.value.set(arr.join('').replace(/ +$/, ''));\n }\n\n private focusSibling(el: HTMLInputElement, dir: 1 | -1): void {\n const target = dir === 1 ? el.nextElementSibling : el.previousElementSibling;\n (target as HTMLInputElement | null)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptChip } from '../chip/chip.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Pole tagów — dodawanie Enter/przecinkiem, usuwanie Backspace/×. Signal Forms.\n * Wartość = string[].\n *\n * @example\n * <kpt-chips-input [formField]=\"f.tags\" placeholder=\"Dodaj tag…\" />\n */\n@Component({\n selector: 'kpt-chips-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChip],\n template: `\n <div class=\"kpt-chips-input\" [class.kpt-chips-input--disabled]=\"disabled()\" [class.kpt-chips-input--invalid]=\"showInvalid()\">\n @for (chip of value(); track $index) {\n <kpt-chip variant=\"primary\" [removable]=\"!disabled()\" (removed)=\"removeAt($index)\">{{ chip }}</kpt-chip>\n }\n <input\n class=\"kpt-chips-input__field\"\n type=\"text\"\n [placeholder]=\"value().length ? '' : effectivePlaceholder()\"\n [disabled]=\"disabled()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"commit($any($event.target)); touch.emit()\"\n />\n </div>\n `,\n styleUrl: './chips-input.component.scss',\n host: { class: 'kpt-chips-input-host' },\n})\nexport class KptChipsInput implements FormValueControl<string[]> {\n readonly value = model<string[]>([]);\n /** Placeholder; bez wartości używa i18n (`chipsInput.placeholder`). */\n readonly placeholder = input<string>();\n readonly allowDuplicates = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('chipsInput.placeholder'));\n\n protected onKeydown(event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault();\n this.commit(el);\n } else if (event.key === 'Backspace' && el.value === '' && this.value().length) {\n this.removeAt(this.value().length - 1);\n }\n }\n\n protected commit(el: HTMLInputElement): void {\n const text = el.value.trim();\n if (!text) return;\n if (this.allowDuplicates() || !this.value().includes(text)) {\n this.value.set([...this.value(), text]);\n }\n el.value = '';\n }\n\n protected removeAt(index: number): void {\n this.value.set(this.value().filter((_, i) => i !== index));\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TOKENS: Record<string, RegExp> = {\n '9': /\\d/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n\n/**\n * Pole z maską znakową na Signal Forms. Tokeny maski: `9`=cyfra, `a`=litera, `*`=alfanumeryczny.\n * Pozostałe znaki maski to literały (np. spacje, nawiasy, myślniki).\n *\n * @example\n * <kpt-input-mask [formField]=\"f.phone\" mask=\"(999) 999-99-99\" />\n */\n@Component({\n selector: 'kpt-input-mask',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <input\n class=\"kpt-input-mask__input\"\n type=\"text\"\n [class.kpt-input-mask--invalid]=\"showInvalid()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder() || mask()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n `,\n styleUrl: './input-mask.component.scss',\n host: { class: 'kpt-input-mask-host' },\n})\nexport class KptInputMask implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly mask = input('');\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected onInput(event: Event): void {\n const el = event.target as HTMLInputElement;\n const formatted = this.applyMask(el.value);\n this.value.set(formatted);\n el.value = formatted;\n }\n\n private applyMask(raw: string): string {\n const mask = this.mask();\n if (!mask) return raw;\n // Zbierz same znaczące znaki z wejścia (pomiń literały maski).\n const chars = raw.split('');\n let ci = 0;\n let out = '';\n for (let mi = 0; mi < mask.length && ci < chars.length; ) {\n const token = mask[mi];\n const rule = TOKENS[token];\n if (rule) {\n // szukaj kolejnego pasującego znaku z wejścia\n while (ci < chars.length && !rule.test(chars[ci])) ci++;\n if (ci >= chars.length) break;\n out += chars[ci];\n ci++;\n mi++;\n } else {\n out += token;\n mi++;\n }\n }\n return out;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (listbox) na Signal Forms. Pojedynczy lub wielokrotny wybór, opcjonalny filtr.\n * Wartość: `T` (single) lub `T[]` (multiple).\n *\n * @example\n * <kpt-listbox [formField]=\"f.role\" [options]=\"roles\" filter />\n * <kpt-listbox [(value)]=\"tags\" [options]=\"tagOptions\" multiple />\n */\n@Component({\n selector: 'kpt-listbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-listbox\" [class.kpt-listbox--invalid]=\"showInvalid()\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @if (filter()) {\n <div class=\"kpt-listbox__filter\">\n <kpt-icon name=\"search\" />\n <input type=\"text\" [attr.placeholder]=\"i18n.t('listbox.search')\" [value]=\"query()\" (input)=\"query.set($any($event.target).value)\" />\n </div>\n }\n <div class=\"kpt-listbox__items\">\n @for (opt of visible(); track opt.value) {\n <button\n type=\"button\"\n role=\"option\"\n class=\"kpt-listbox__item\"\n [class.is-selected]=\"isSelected(opt.value)\"\n [attr.aria-selected]=\"isSelected(opt.value)\"\n [disabled]=\"disabled() || opt.disabled\"\n (click)=\"toggle(opt.value)\"\n >\n <span>{{ opt.label }}</span>\n @if (isSelected(opt.value)) { <kpt-icon name=\"check\" /> }\n </button>\n } @empty {\n <div class=\"kpt-listbox__empty\">{{ i18n.t('listbox.empty') }}</div>\n }\n </div>\n </div>\n `,\n styleUrl: './listbox.component.scss',\n host: { class: 'kpt-listbox-host' },\n})\nexport class KptListbox<T = unknown> implements FormValueControl<T | T[] | null> {\n readonly value = model<T | T[] | null>(null);\n readonly options = input<KptOption<T>[]>([]);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly query = signal('');\n protected readonly visible = computed(() => {\n const q = this.query().trim().toLowerCase();\n return q ? this.options().filter((o) => o.label.toLowerCase().includes(q)) : this.options();\n });\n\n protected isSelected(v: T): boolean {\n const cur = this.value();\n return this.multiple() ? Array.isArray(cur) && cur.includes(v) : cur === v;\n }\n\n protected toggle(v: T): void {\n if (this.multiple()) {\n const cur = (Array.isArray(this.value()) ? this.value() : []) as T[];\n this.value.set(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);\n } else {\n this.value.set(this.value() === v ? null : v);\n }\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TAU = Math.PI * 2;\nconst GAP = Math.PI / 4; // przerwa u dołu (kąt „otwarcia\" łuku)\n\n/**\n * Pokrętło (knob) — wybór wartości po łuku, myszką lub strzałkami. Signal Forms.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.level, 0)`,\n * `max(path.level, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n *\n * @example\n * <kpt-knob [formField]=\"f.level\" [step]=\"1\" />\n * <kpt-knob [(value)]=\"level\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n */\n@Component({\n selector: 'kpt-knob',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n class=\"kpt-knob\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <svg [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <path class=\"kpt-knob__range\" [attr.d]=\"rangePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n <path class=\"kpt-knob__value\" [attr.d]=\"valuePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n @if (showValue()) {\n <text class=\"kpt-knob__text\" [attr.x]=\"size() / 2\" [attr.y]=\"size() / 2\" text-anchor=\"middle\" dominant-baseline=\"central\">{{ value() }}{{ suffix() }}</text>\n }\n </svg>\n </div>\n `,\n styleUrl: './knob.component.scss',\n host: { class: 'kpt-knob-host' },\n})\nexport class KptKnob implements FormValueControl<number> {\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly value = model<number>(0);\n readonly min = input<number | undefined>(0);\n readonly max = input<number | undefined>(100);\n readonly step = input(1);\n readonly size = input(96);\n readonly stroke = input(10);\n readonly suffix = input('');\n readonly showValue = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n private readonly startAngle = Math.PI / 2 + GAP;\n private readonly sweep = TAU - GAP * 2;\n\n protected readonly rangePath = computed(() => this.arc(0, 1));\n protected readonly valuePath = computed(() => this.arc(0, this.ratio()));\n\n private ratio(): number {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const range = mx - mn;\n return range <= 0 ? 0 : (this.value() - mn) / range;\n }\n\n private arc(from: number, to: number): string {\n const s = this.size();\n const r = (s - this.stroke()) / 2;\n const cx = s / 2;\n const cy = s / 2;\n const a0 = this.startAngle + this.sweep * from;\n const a1 = this.startAngle + this.sweep * Math.max(from, to);\n const x0 = cx + r * Math.cos(a0);\n const y0 = cy + r * Math.sin(a0);\n const x1 = cx + r * Math.cos(a1);\n const y1 = cy + r * Math.sin(a1);\n const large = a1 - a0 > Math.PI ? 1 : 0;\n if (Math.abs(a1 - a0) < 1e-4) return `M ${x0} ${y0}`;\n return `M ${x0} ${y0} A ${r} ${r} 0 ${large} 1 ${x1} ${y1}`;\n }\n\n protected onPointer(event: PointerEvent): void {\n if (this.disabled()) return;\n const update = (e: PointerEvent) => this.setFromPoint(e.clientX, e.clientY);\n update(event);\n const move = (e: PointerEvent) => update(e);\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n this.touch.emit();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n private setFromPoint(clientX: number, clientY: number): void {\n const rect = (this.host.nativeElement.querySelector('svg') as SVGElement).getBoundingClientRect();\n const cx = rect.left + rect.width / 2;\n const cy = rect.top + rect.height / 2;\n let a = Math.atan2(clientY - cy, clientX - cx) - this.startAngle;\n a = ((a % TAU) + TAU) % TAU;\n if (a > this.sweep + GAP) a = a > this.sweep + GAP / 2 ? 0 : this.sweep;\n const ratio = Math.min(1, Math.max(0, a / this.sweep));\n this.applyRatio(ratio);\n }\n\n private applyRatio(ratio: number): void {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const step = this.step();\n const raw = mn + ratio * (mx - mn);\n const snapped = Math.round(raw / step) * step;\n this.value.set(Math.min(mx, Math.max(mn, snapped)));\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n let next = this.value();\n if (event.key === 'ArrowUp' || event.key === 'ArrowRight') next += this.step();\n else if (event.key === 'ArrowDown' || event.key === 'ArrowLeft') next -= this.step();\n else if (event.key === 'Home') next = mn;\n else if (event.key === 'End') next = mx;\n else return;\n event.preventDefault();\n this.value.set(Math.min(mx, Math.max(mn, next)));\n this.touch.emit();\n }\n}\n","@if (header()) {\n <div class=\"kpt-card__header\">{{ header() }}</div>\n}\n<div class=\"kpt-card__body\" [class.kpt-card__body--flush]=\"flush()\">\n <ng-content />\n</div>\n<ng-content select=\"[kptCardFooter]\" />\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptCardVariant = 'elevated' | 'outlined';\n\n/**\n * Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).\n * Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem\n * `kptCardFooter`. Dla bogatych układów (media/profil) ustaw `flush` (body bez paddingu)\n * i użyj reużywalnych klas: `kpt-card__media`, `__lead`, `__title`, `__subtitle`,\n * `__section`, `__tags`, `__meta`, `__avatar`, `__actions`.\n *\n * @example\n * <kpt-card header=\"Ustawienia\">\n * <p>Treść karty…</p>\n * <div kptCardFooter><kpt-button>Zapisz</kpt-button></div>\n * </kpt-card>\n */\n@Component({\n selector: 'kpt-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n class: 'kpt-card',\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class KptCard {\n /** Wariant wizualny. */\n readonly variant = input<KptCardVariant>('elevated');\n /** Opcjonalny tekst nagłówka. */\n readonly header = input<string>('');\n /** Body bez wewnętrznego paddingu — dla układów zarządzających własnymi sekcjami. */\n readonly flush = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptDividerOrientation = 'horizontal' | 'vertical';\n\n/**\n * Separator Koncept UI (linia pozioma lub pionowa). Kolor z `--kpt-color-border`.\n *\n * @example\n * <kpt-divider />\n * <kpt-divider orientation=\"vertical\" />\n * <kpt-divider inset />\n */\n@Component({\n selector: 'kpt-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: '',\n styleUrl: './divider.component.scss',\n host: {\n class: 'kpt-divider',\n role: 'separator',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class.kpt-divider--inset]': 'inset()',\n },\n})\nexport class KptDivider {\n /** Orientacja linii. */\n readonly orientation = input<KptDividerOrientation>('horizontal');\n /** Wcięcie (odstęp od krawędzi kontenera). */\n readonly inset = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\r\n\r\n/**\r\n * Górny pasek (toolbar) — pozioma belka na treść aplikacji (logo, akcje).\r\n * Elementowi z atrybutem `kptToolbarSpacer` nadaj elastyczny odstęp, aby rozepchnąć zawartość.\r\n * Poniżej breakpointa `sm` pasek sam zbiega się do niższej wysokości i węższych marginesów.\r\n *\r\n * @example\r\n * <kpt-toolbar elevated>\r\n * <strong>Koncept UI</strong>\r\n * <span kptToolbarSpacer></span>\r\n * <kpt-button variant=\"text\">Wyloguj</kpt-button>\r\n * </kpt-toolbar>\r\n */\r\n@Component({\r\n selector: 'kpt-toolbar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '<ng-content />',\r\n styleUrl: './toolbar.component.scss',\r\n host: {\r\n class: 'kpt-toolbar',\r\n '[class.kpt-toolbar--elevated]': 'elevated()',\r\n '[attr.data-wrap]': \"wrap() ? '' : null\",\r\n },\r\n})\r\nexport class KptToolbar {\r\n /** Dodaje cień (wyniesienie) pod paskiem. */\r\n readonly elevated = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Pozwala zawartości paska zawinąć się do kolejnych wierszy, gdy zabraknie miejsca.\r\n * Opcjonalne, bo zawijanie zmienia zachowanie `kptToolbarSpacer` — w jednowierszowym\r\n * pasku rozpycha on treść, a w zawijanym potrafi zepchnąć resztę do nowego wiersza.\r\n */\r\n readonly wrap = input(false, { transform: booleanAttribute });\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie\n * `kptShellSidenav` komponentu `kpt-app-shell`.\n *\n * Treść domyślna ląduje w obszarze przewijanym. Element opatrzony atrybutem `kptSidenavFooter`\n * trafia do stopki stojącej **poza** tym obszarem, więc zostaje przyklejony do dołu panelu\n * niezależnie od długości nawigacji (blok użytkownika, wersja aplikacji, przełącznik motywu).\n *\n * @example\n * <kpt-sidenav kptShellSidenav>\n * <a href=\"#\">Pulpit</a>\n * <a href=\"#\">Ustawienia</a>\n * <div kptSidenavFooter>\n * <kpt-avatar name=\"Anna Kowalska\" size=\"sm\" />\n * </div>\n * </kpt-sidenav>\n */\n@Component({\n selector: 'kpt-sidenav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // Catch-all `<ng-content />` ma w projekcji najniższy priorytet, więc element z atrybutem\n // `kptSidenavFooter` trafia do stopki mimo tego, że slot domyślny stoi wyżej w szablonie.\n template: '<div class=\"kpt-sidenav__scroll\"><ng-content /></div><ng-content select=\"[kptSidenavFooter]\" />',\n styleUrl: './sidenav.component.scss',\n host: { class: 'kpt-sidenav' },\n})\nexport class KptSidenav {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptBreakpointObserver } from '../breakpoint/breakpoint.service';\nimport type { KptBreakpoint } from '../breakpoint/breakpoints.generated';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Zachowanie panelu bocznego:\n * - `auto` — zależne od szerokości okna (domyślne),\n * - `side` — zawsze zadokowany, rozpycha treść,\n * - `over` — zawsze nakładka nad treścią.\n */\nexport type KptSidenavMode = 'side' | 'over' | 'auto';\n\n/**\n * Szkielet aplikacji: pasek u góry, panel boczny i treść. Sloty projekcji:\n * `[kptShellToolbar]`, `[kptShellSidenav]` oraz treść domyślna.\n *\n * Domyślny tryb `auto` jest responsywny bez konfiguracji: od `sidenavBreakpoint` w górę\n * panel jest zadokowany, poniżej zachowuje się jak nakładka ze scrimem i startuje zamknięty.\n * Opcjonalny `sidenavRailBreakpoint` wstawia między te pasma szynę ikon.\n *\n * O układzie decyduje wyłącznie CSS — nic nie migocze przed hydracją i nic nie zależy od\n * `matchMedia`. JavaScript odpowiada tylko za to, KTÓRY stan przełącza przycisk.\n *\n * Panel ma dwa niezależne stany otwarcia (`sidenavOpen` dla układu zadokowanego,\n * `sidenavCompactOpen` dla nakładki), więc intencja z desktopu przeżywa zwężenie\n * i ponowne rozszerzenie okna.\n *\n * @example\n * <kpt-app-shell [(sidenavOpen)]=\"navOpen\">\n * <kpt-toolbar kptShellToolbar>\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * </kpt-toolbar>\n * <kpt-sidenav kptShellSidenav>…</kpt-sidenav>\n * <router-outlet />\n * </kpt-app-shell>\n */\n@Component({\n selector: 'kpt-app-shell',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './app-shell.component.html',\n styleUrl: './app-shell.component.scss',\n host: {\n class: 'kpt-app-shell',\n '[attr.data-sidenav-mode]': 'sidenavMode()',\n '[attr.data-sidenav-breakpoint]': 'sidenavBreakpoint()',\n '[attr.data-sidenav-rail]': 'sidenavRailBreakpoint()',\n '[class.kpt-app-shell--nav-open]': 'sidenavOpen()',\n '[class.kpt-app-shell--nav-compact-open]': 'sidenavCompactOpen()',\n '(document:keydown.escape)': 'onEscape()',\n },\n})\nexport class KptAppShell {\n private static nextId = 0;\n\n private readonly breakpoints = inject(KptBreakpointObserver);\n private readonly i18n = inject(KptI18n);\n\n /** Czy panel jest otwarty w układzie zadokowanym (oraz w wymuszonym trybie `over`). */\n readonly sidenavOpen = model(true);\n\n /**\n * Czy nakładka jest wysunięta w trybie `auto` poniżej `sidenavBreakpoint`.\n *\n * Celowo osobny od `sidenavOpen`: gdyby oba układy dzieliły jeden model, wejście na wąski\n * ekran musiałoby nadpisać stan konsumenta, a powrót na szeroki nie miałby czego przywrócić.\n */\n readonly sidenavCompactOpen = model(false);\n\n /** `auto` przełącza układ na breakpoincie; `side`/`over` wymuszają go niezależnie od szerokości. */\n readonly sidenavMode = input<KptSidenavMode>('auto');\n\n /** Od tego breakpointa w górę tryb `auto` dokuje panel; poniżej robi z niego nakładkę. */\n readonly sidenavBreakpoint = input<KptBreakpoint>('lg');\n\n /**\n * Włącza szynę ikon w paśmie od `sidenavBreakpoint` do tego breakpointa: zamknięty panel\n * nie chowa się wtedy całkowicie, tylko zwęża do `--kpt-sidenav-rail-width`. Powyżej tego\n * progu zamknięcie znów chowa panel w całości. Wartość musi być wyższa niż `sidenavBreakpoint`.\n * `null` (domyślnie) wyłącza szynę.\n */\n readonly sidenavRailBreakpoint = input<KptBreakpoint | null>(null);\n\n /** Etykieta dostępności panelu; puste = `appShell.navigation` ze słownika. */\n readonly sidenavLabel = input('');\n\n /** Identyfikator panelu dla `aria-controls` przycisku przełączającego. */\n readonly sidenavId = `kpt-app-shell-nav-${KptAppShell.nextId++}`;\n\n /** Czy panel zachowuje się TERAZ jak nakładka nad treścią. */\n readonly isOverlay = computed(() => {\n const mode = this.sidenavMode();\n if (mode === 'over') return true;\n if (mode === 'side') return false;\n return !this.breakpoints.up(this.sidenavBreakpoint())();\n });\n\n /** Efektywny stan otwarcia — ten, który obowiązuje w bieżącym układzie. */\n readonly isSidenavOpen = computed(() =>\n this.usesCompactState() ? this.sidenavCompactOpen() : this.sidenavOpen(),\n );\n\n protected readonly navLabel = computed(() => this.sidenavLabel() || this.i18n.t('appShell.navigation'));\n\n /** Scrim blokuje wskaźnik, ale nie klawiaturę — treść pod nakładką nie może łapać fokusu. */\n protected readonly contentInert = computed(() => this.isOverlay() && this.isSidenavOpen());\n\n constructor() {\n // Wyjście z nakładki chowa ją na wejściu: inaczej wróciłaby otwarta przy kolejnym\n // zwężeniu okna, mimo że użytkownik jej wtedy nie otwierał.\n effect(() => {\n if (!this.isOverlay()) this.sidenavCompactOpen.set(false);\n });\n }\n\n /** Przełącza panel — trafia w stan właściwy dla bieżącego układu. */\n toggleSidenav(): void {\n this.setSidenavOpen(!this.isSidenavOpen());\n }\n\n /** Otwiera panel w bieżącym układzie. */\n openSidenav(): void {\n this.setSidenavOpen(true);\n }\n\n /** Zamyka panel w bieżącym układzie. */\n closeSidenav(): void {\n this.setSidenavOpen(false);\n }\n\n protected onScrimClick(): void {\n // Scrim jest klikalny tylko wtedy, gdy CSS uczynił go widocznym — nie trzeba sprawdzać trybu.\n this.closeSidenav();\n }\n\n protected onEscape(): void {\n if (this.isOverlay() && this.isSidenavOpen()) this.closeSidenav();\n }\n\n private usesCompactState(): boolean {\n return this.sidenavMode() === 'auto' && this.isOverlay();\n }\n\n private setSidenavOpen(open: boolean): void {\n if (this.usesCompactState()) this.sidenavCompactOpen.set(open);\n else this.sidenavOpen.set(open);\n }\n}\n","<ng-content select=\"[kptShellToolbar]\" />\n\n<div class=\"kpt-app-shell__body\">\n <aside\n class=\"kpt-app-shell__sidenav\"\n role=\"navigation\"\n tabindex=\"-1\"\n [id]=\"sidenavId\"\n [attr.aria-label]=\"navLabel()\"\n >\n <ng-content select=\"[kptShellSidenav]\" />\n </aside>\n\n <!--\n Scrim jest zawsze w DOM, a jego widocznością steruje wyłącznie CSS. Dzięki temu nakładka\n wygląda poprawnie już na pierwszej klatce — także przed hydracją i przy wyłączonym JS.\n -->\n <div class=\"kpt-app-shell__scrim\" aria-hidden=\"true\" (click)=\"onScrimClick()\"></div>\n\n <main class=\"kpt-app-shell__content\" [attr.inert]=\"contentInert() ? '' : null\">\n <ng-content />\n </main>\n</div>\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptAppShell } from './app-shell.component';\n\n/**\n * Przycisk przełączający panel boczny `kpt-app-shell`. Umieść go w slocie\n * `[kptShellToolbar]` — dyrektywa sama odnajdzie shell w drzewie deklaracji.\n *\n * Trafia w stan właściwy dla bieżącego układu (zadokowany albo nakładka), więc jeden\n * przycisk obsługuje desktop i wąski ekran. Bez tej dyrektywy aplikacja musiałaby sama\n * wstrzyknąć `KptBreakpointObserver` i rozstrzygnąć, który z dwóch modeli przełączyć.\n *\n * Atrybuty ARIA nakłada wyłącznie na natywny `<button>`/`<a>`. Na komponencie opakowującym\n * (np. `kpt-icon-button`) trafiłyby na zewnętrzny element bez roli, co jest naruszeniem\n * `aria-allowed-attr` — tam etykietę podaj samemu komponentowi.\n *\n * @example\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * <kpt-icon-button kptShellNavToggle ariaLabel=\"Menu\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n */\n@Directive({\n selector: '[kptShellNavToggle]',\n host: {\n '(click)': 'shell.toggleSidenav()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class KptShellNavToggle {\n /** Własna etykieta przycisku; puste = `appShell.toggleNavigation` ze słownika. */\n readonly label = input('', { alias: 'kptShellNavToggle' });\n\n protected readonly shell = inject(KptAppShell);\n\n private readonly i18n = inject(KptI18n);\n private readonly isNativeControl = /^(?:BUTTON|A)$/.test(\n (inject(ElementRef).nativeElement as HTMLElement).tagName,\n );\n\n protected readonly ariaExpanded = computed(() =>\n this.isNativeControl ? String(this.shell.isSidenavOpen()) : null,\n );\n\n protected readonly ariaControls = computed(() => (this.isNativeControl ? this.shell.sidenavId : null));\n\n protected readonly ariaLabel = computed(() =>\n this.isNativeControl ? this.label() || this.i18n.t('appShell.toggleNavigation') : null,\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.\n *\n * @example\n * <kpt-panel header=\"Ustawienia\" toggleable>Treść…</kpt-panel>\n */\n@Component({\n selector: 'kpt-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-panel\">\n <div class=\"kpt-panel__header\">\n <span class=\"kpt-panel__title\">{{ header() }}</span>\n <span class=\"kpt-panel__actions\"><ng-content select=\"[kptPanelActions]\" /></span>\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-panel__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\" [attr.aria-label]=\"i18n.t('panel.toggle')\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n </button>\n }\n </div>\n <div\n class=\"kpt-panel__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-panel__collapse-inner\">\n <div class=\"kpt-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './panel.component.scss',\n host: {\n 'class': 'kpt-panel-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptPanel {\n readonly header = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Grupa pól z legendą (fieldset), opcjonalnie zwijana.\n *\n * @example\n * <kpt-fieldset legend=\"Dane osobowe\" toggleable>…</kpt-fieldset>\n */\n@Component({\n selector: 'kpt-fieldset',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <fieldset class=\"kpt-fieldset\">\n <legend class=\"kpt-fieldset__legend\">\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-fieldset__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n <span>{{ legend() }}</span>\n </button>\n } @else {\n <span>{{ legend() }}</span>\n }\n </legend>\n <div\n class=\"kpt-fieldset__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-fieldset__collapse-inner\">\n <div class=\"kpt-fieldset__body\"><ng-content /></div>\n </div>\n </div>\n </fieldset>\n `,\n styleUrl: './fieldset.component.scss',\n host: {\n 'class': 'kpt-fieldset-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptFieldset {\n readonly legend = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, inject, input, model } from '@angular/core';\n\nexport type KptSplitterOrientation = 'horizontal' | 'vertical';\n\n/**\n * Splitter — dwa panele z przeciąganym uchwytem. Panele przez sloty `[kptSplitStart]` i `[kptSplitEnd]`.\n * `horizontal` = panele obok siebie, `vertical` = jeden pod drugim.\n *\n * @example\n * <kpt-splitter orientation=\"horizontal\" [(startSize)]=\"size\">\n * <div kptSplitStart>Lewy</div>\n * <div kptSplitEnd>Prawy</div>\n * </kpt-splitter>\n */\n@Component({\n selector: 'kpt-splitter',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-splitter\" [attr.data-orientation]=\"orientation()\">\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"startSize()\"><ng-content select=\"[kptSplitStart]\" /></div>\n <div\n class=\"kpt-splitter__gutter\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-valuenow]=\"startSize()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"endSize()\"><ng-content select=\"[kptSplitEnd]\" /></div>\n </div>\n `,\n styleUrl: './splitter.component.scss',\n host: { class: 'kpt-splitter-host' },\n})\nexport class KptSplitter {\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly orientation = input<KptSplitterOrientation>('horizontal');\n /** Rozmiar pierwszego panelu w procentach (0–100). */\n readonly startSize = model(50);\n readonly minSize = input(10);\n\n protected readonly endSize = computed(() => 100 - this.startSize());\n\n protected onPointer(event: PointerEvent): void {\n event.preventDefault();\n const container = this.host.nativeElement.querySelector('.kpt-splitter') as HTMLElement;\n const move = (e: PointerEvent) => {\n const rect = container.getBoundingClientRect();\n const pct =\n this.orientation() === 'horizontal'\n ? ((e.clientX - rect.left) / rect.width) * 100\n : ((e.clientY - rect.top) / rect.height) * 100;\n this.setSize(pct);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const dir = event.key === 'ArrowLeft' || event.key === 'ArrowUp' ? -2 : event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 2 : 0;\n if (!dir) return;\n event.preventDefault();\n this.setSize(this.startSize() + dir);\n }\n\n private setSize(pct: number): void {\n const min = this.minSize();\n this.startSize.set(Math.min(100 - min, Math.max(min, Math.round(pct))));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, afterNextRender, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Przycisk „do góry\" — pojawia się po przewinięciu ponad `threshold` px.\n * Domyślnie działa na oknie; `target` przyjmuje selektor przewijanego elementu.\n *\n * @example\n * <kpt-scroll-top [threshold]=\"300\" />\n */\n@Component({\n selector: 'kpt-scroll-top',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <button\n type=\"button\"\n class=\"kpt-scroll-top\"\n [class.is-visible]=\"visible()\"\n (click)=\"scrollUp()\"\n [attr.aria-label]=\"i18n.t('scrollTop.label')\"\n [attr.tabindex]=\"visible() ? 0 : -1\"\n ><kpt-icon name=\"arrow-up\" /></button>\n `,\n styleUrl: './scroll-top.component.scss',\n host: { class: 'kpt-scroll-top-host' },\n})\nexport class KptScrollTop {\n readonly threshold = input(300);\n readonly target = input<string | null>(null);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n private scroller: HTMLElement | Window = window;\n\n constructor() {\n afterNextRender(() => {\n const sel = this.target();\n this.scroller = sel ? document.querySelector<HTMLElement>(sel) ?? window : window;\n const onScroll = () => this.visible.set(this.currentTop() > this.threshold());\n this.scroller.addEventListener('scroll', onScroll, { passive: true });\n onScroll();\n });\n }\n\n private currentTop(): number {\n return this.scroller === window ? window.scrollY : (this.scroller as HTMLElement).scrollTop;\n }\n\n protected scrollUp(): void {\n if (this.scroller === window) window.scrollTo({ top: 0, behavior: 'smooth' });\n else (this.scroller as HTMLElement).scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Obraz z opcjonalnym podglądem pełnoekranowym (zoom).\n *\n * @example\n * <kpt-image src=\"/foto.jpg\" alt=\"Zdjęcie\" preview width=\"240px\" />\n */\n@Component({\n selector: 'kpt-image',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-image\" [class.kpt-image--preview]=\"preview()\" [style.width]=\"width()\" (click)=\"openPreview()\">\n <img class=\"kpt-image__img\" [src]=\"src()\" [alt]=\"alt()\" />\n @if (preview()) {\n <div class=\"kpt-image__mask\" aria-hidden=\"true\"><kpt-icon name=\"zoom-in\" /></div>\n }\n </div>\n\n @if (open()) {\n <div class=\"kpt-image__overlay\" (click)=\"close()\">\n <button type=\"button\" class=\"kpt-image__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n <img class=\"kpt-image__full\" [src]=\"src()\" [alt]=\"alt()\" (click)=\"$event.stopPropagation()\" />\n </div>\n }\n `,\n styleUrl: './image.component.scss',\n host: { class: 'kpt-image-host' },\n})\nexport class KptImage {\n readonly src = input.required<string>();\n readonly alt = input('');\n readonly width = input<string | null>(null);\n readonly preview = input(false, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n\n protected openPreview(): void {\n if (this.preview()) this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport interface KptMeterItem {\n label: string;\n value: number;\n color?: string;\n}\n\n/**\n * Wielosegmentowy miernik (meter group) z opcjonalną legendą.\n *\n * @example\n * <kpt-meter-group [values]=\"[{label:'Użyte', value:70}, {label:'Wolne', value:30}]\" />\n */\n@Component({\n selector: 'kpt-meter-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-meter-group\">\n <div class=\"kpt-meter-group__track\" role=\"meter\" [attr.aria-valuenow]=\"sum()\" [attr.aria-valuemax]=\"max()\">\n @for (item of values(); track $index; let i = $index) {\n <span\n class=\"kpt-meter-group__segment\"\n [style.width.%]=\"percent(item)\"\n [style.background-color]=\"item.color || fallback(i)\"\n [attr.title]=\"item.label\"\n ></span>\n }\n </div>\n @if (showLegend()) {\n <ul class=\"kpt-meter-group__legend\">\n @for (item of values(); track $index; let i = $index) {\n <li class=\"kpt-meter-group__legend-item\">\n <span class=\"kpt-meter-group__dot\" [style.background-color]=\"item.color || fallback(i)\"></span>\n <span>{{ item.label }}</span>\n <span class=\"kpt-meter-group__val\">{{ round(percent(item)) }}%</span>\n </li>\n }\n </ul>\n }\n </div>\n `,\n styleUrl: './meter-group.component.scss',\n host: { class: 'kpt-meter-group-host' },\n})\nexport class KptMeterGroup {\n readonly values = input<KptMeterItem[]>([]);\n /** Suma odniesienia; domyślnie suma wartości (100%). */\n readonly max = input<number | undefined>(undefined);\n readonly showLegend = input(true, { transform: booleanAttribute });\n\n private readonly palette = ['var(--kpt-color-primary)', 'var(--kpt-color-info)', 'var(--kpt-color-success)', 'var(--kpt-color-warning)', 'var(--kpt-color-danger)'];\n\n protected readonly sum = computed(() => this.values().reduce((a, v) => a + v.value, 0));\n\n protected total(): number {\n return this.max() ?? (this.sum() || 1);\n }\n protected percent(item: KptMeterItem): number {\n return (item.value / this.total()) * 100;\n }\n protected fallback(i: number): string {\n return this.palette[i % this.palette.length];\n }\n protected round(n: number): number {\n return Math.round(n);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptAvatar, type KptAvatarSize } from '../avatar/avatar.component';\n\nexport interface KptAvatarItem {\n name?: string;\n src?: string;\n icon?: string;\n}\n\n/**\n * Grupa nakładających się awatarów z licznikiem „+N\". Buduje na `kpt-avatar`.\n *\n * @example\n * <kpt-avatar-group [avatars]=\"team\" [max]=\"4\" />\n */\n@Component({\n selector: 'kpt-avatar-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar],\n template: `\n <div class=\"kpt-avatar-group\" [attr.data-size]=\"size()\">\n @for (a of shown(); track $index) {\n <span class=\"kpt-avatar-group__item\">\n <kpt-avatar [name]=\"a.name || ''\" [src]=\"a.src || null\" [icon]=\"a.icon || null\" [size]=\"size()\" />\n </span>\n }\n @if (overflow() > 0) {\n <span class=\"kpt-avatar-group__item kpt-avatar-group__more\" [attr.data-size]=\"size()\">+{{ overflow() }}</span>\n }\n </div>\n `,\n styleUrl: './avatar-group.component.scss',\n host: { class: 'kpt-avatar-group-host' },\n})\nexport class KptAvatarGroup {\n readonly avatars = input<KptAvatarItem[]>([]);\n readonly max = input(4);\n readonly size = input<KptAvatarSize>('md');\n\n protected readonly shown = computed(() => this.avatars().slice(0, this.max()));\n protected readonly overflow = computed(() => Math.max(0, this.avatars().length - this.max()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Stan pusty (empty state) — ikona, tytuł, opis i opcjonalne akcje (projekcja).\n *\n * @example\n * <kpt-empty icon=\"search\" title=\"Brak wyników\" description=\"Zmień kryteria wyszukiwania.\">\n * <kpt-button>Wyczyść filtry</kpt-button>\n * </kpt-empty>\n */\n@Component({\n selector: 'kpt-empty',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-empty\">\n @if (icon()) { <div class=\"kpt-empty__icon\"><kpt-icon [name]=\"icon()!\" /></div> }\n @if (title()) { <p class=\"kpt-empty__title\">{{ title() }}</p> }\n @if (description()) { <p class=\"kpt-empty__desc\">{{ description() }}</p> }\n <div class=\"kpt-empty__actions\"><ng-content /></div>\n </div>\n `,\n styleUrl: './empty.component.scss',\n host: { class: 'kpt-empty-host' },\n})\nexport class KptEmpty {\n readonly icon = input<string | null>('info-circle');\n readonly title = input('');\n readonly description = input('');\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, input, viewChild } from '@angular/core';\n\n/**\n * Pojedyncza zakładka. Umieszczaj w `kpt-tabs`. Treść renderowana leniwie (gdy aktywna).\n *\n * @example\n * <kpt-tab label=\"Ogólne\">…treść…</kpt-tab>\n */\n@Component({\n selector: 'kpt-tab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptTab {\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { KptTab } from './tab.component';\n\n/**\n * Zakładki (tabs) — przełączanie widoków. Treść zakładek renderowana leniwie.\n *\n * @example\n * <kpt-tabs [(activeIndex)]=\"tab\">\n * <kpt-tab label=\"Ogólne\">…</kpt-tab>\n * <kpt-tab label=\"Zaawansowane\">…</kpt-tab>\n * </kpt-tabs>\n */\n@Component({\n selector: 'kpt-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet],\n template: `\n <div class=\"kpt-tabs__header\" role=\"tablist\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n #tabBtn\n type=\"button\"\n class=\"kpt-tabs__tab\"\n role=\"tab\"\n [class.is-active]=\"i === activeIndex()\"\n [disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"i === activeIndex()\"\n (click)=\"select(i)\"\n >{{ tab.label() }}</button>\n }\n <span class=\"kpt-tabs__ink\" [style.width.px]=\"inkW()\" [style.transform]=\"'translateX(' + inkX() + 'px)'\"></span>\n </div>\n <div class=\"kpt-tabs__body\" role=\"tabpanel\">\n @for (tab of activePanels(); track activeIndex()) {\n <div class=\"kpt-tabs__panel\"><ng-container [ngTemplateOutlet]=\"tab.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './tabs.component.scss',\n host: {\n 'class': 'kpt-tabs-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n '(window:resize)': 'measureInk()',\n },\n})\nexport class KptTabs {\n protected readonly tabs = contentChildren(KptTab);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n private readonly tabBtns = viewChildren<ElementRef<HTMLButtonElement>>('tabBtn');\n protected readonly inkX = signal(0);\n protected readonly inkW = signal(0);\n protected readonly direction = signal(1);\n\n protected readonly activeTab = computed(() => this.tabs()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const tab = this.activeTab();\n return tab ? [tab] : [];\n });\n\n constructor() {\n afterRenderEffect(() => this.measureInk());\n }\n\n protected measureInk(): void {\n const btn = this.tabBtns()[this.activeIndex()]?.nativeElement;\n if (!btn) return;\n this.inkX.set(btn.offsetLeft);\n this.inkW.set(btn.offsetWidth);\n }\n\n protected select(index: number): void {\n if (this.tabs()[index]?.disabled()) return;\n this.direction.set(index >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptAccordion } from './accordion.component';\n\n/**\n * Panel akordeonu. Umieszczaj w `kpt-accordion`. Stan `expanded` jest dwukierunkowy.\n */\n@Component({\n selector: 'kpt-accordion-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-accordion-panel\" [class.is-open]=\"expanded()\">\n <button\n type=\"button\"\n class=\"kpt-accordion-panel__header\"\n [attr.aria-expanded]=\"expanded()\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n >\n <span class=\"kpt-accordion-panel__title\">{{ title() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-accordion-panel__chevron\" [class.is-open]=\"expanded()\" />\n </button>\n <div\n class=\"kpt-accordion-panel__collapse\"\n [class.is-open]=\"expanded()\"\n [attr.inert]=\"expanded() ? null : ''\"\n [attr.aria-hidden]=\"!expanded()\"\n >\n <div class=\"kpt-accordion-panel__collapse-inner\">\n <div class=\"kpt-accordion-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './accordion-panel.component.scss',\n host: {\n 'class': 'kpt-accordion-panel-host',\n '[style.--kpt-anim-duration]': 'animMs()',\n },\n})\nexport class KptAccordionPanel {\n readonly title = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly expanded = model(false);\n\n private readonly accordion = inject(KptAccordion, { optional: true });\n\n protected readonly animMs = computed(() => {\n const on = this.accordion?.animated() ?? true;\n const d = this.accordion?.animationDuration() ?? 500;\n return (on ? d : 0) + 'ms';\n });\n\n protected toggle(): void {\n if (this.disabled()) return;\n const willOpen = !this.expanded();\n this.expanded.set(willOpen);\n if (willOpen) this.accordion?.onOpen(this);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, contentChildren, input } from '@angular/core';\nimport { KptAccordionPanel } from './accordion-panel.component';\n\n/**\n * Akordeon — grupa rozwijanych paneli. `multi` pozwala otworzyć wiele naraz.\n *\n * @example\n * <kpt-accordion>\n * <kpt-accordion-panel title=\"Sekcja 1\">…</kpt-accordion-panel>\n * <kpt-accordion-panel title=\"Sekcja 2\">…</kpt-accordion-panel>\n * </kpt-accordion>\n */\n@Component({\n selector: 'kpt-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-content />`,\n styleUrl: './accordion.component.scss',\n host: { class: 'kpt-accordion-host' },\n})\nexport class KptAccordion {\n readonly multi = input(false, { transform: booleanAttribute });\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n private readonly panels = contentChildren(KptAccordionPanel);\n\n /** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */\n onOpen(opened: KptAccordionPanel): void {\n if (this.multi()) return;\n for (const panel of this.panels()) {\n if (panel !== opened) panel.expanded.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptBreadcrumbItem {\n label: string;\n url?: string;\n}\n\n/**\n * Ścieżka nawigacji (breadcrumbs).\n *\n * @example\n * <kpt-breadcrumb [items]=\"[{label:'Start',url:'/'},{label:'Ustawienia'}]\" />\n */\n@Component({\n selector: 'kpt-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <nav class=\"kpt-breadcrumb\" [attr.aria-label]=\"i18n.t('breadcrumb.label')\">\n @for (item of items(); track $index; let last = $last) {\n @if (item.url && !last) {\n <a class=\"kpt-breadcrumb__link\" [href]=\"item.url\">{{ item.label }}</a>\n } @else {\n <span class=\"kpt-breadcrumb__current\" [attr.aria-current]=\"last ? 'page' : null\">{{ item.label }}</span>\n }\n @if (!last) {\n <kpt-icon name=\"chevron-right\" class=\"kpt-breadcrumb__sep\" />\n }\n }\n </nav>\n `,\n styleUrl: './breadcrumb.component.scss',\n host: { class: 'kpt-breadcrumb-host' },\n})\nexport class KptBreadcrumb {\n readonly items = input<KptBreadcrumbItem[]>([]);\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input, viewChild } from '@angular/core';\n\n/**\n * Krok w `kpt-stepper`. Treść renderowana leniwie (gdy krok aktywny).\n *\n * @example\n * <kpt-step label=\"Konto\">…</kpt-step>\n */\n@Component({\n selector: 'kpt-step',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptStep {\n readonly label = input.required<string>();\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptStep } from './step.component';\n\n/**\n * Kreator kroków (stepper). Nagłówek z numerowanymi krokami + aktywna treść.\n * Metody `next()`/`prev()`/`goTo()` do sterowania (np. z przycisków).\n *\n * @example\n * <kpt-stepper #s [(activeIndex)]=\"step\">\n * <kpt-step label=\"Konto\">…<kpt-button (click)=\"s.next()\">Dalej</kpt-button></kpt-step>\n * <kpt-step label=\"Profil\">…</kpt-step>\n * </kpt-stepper>\n */\n@Component({\n selector: 'kpt-stepper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ol class=\"kpt-stepper__header\">\n @for (step of steps(); track $index; let i = $index, last = $last) {\n <li class=\"kpt-stepper__step\" [class.is-active]=\"i === activeIndex()\" [class.is-done]=\"i < activeIndex()\">\n <button type=\"button\" class=\"kpt-stepper__marker\" (click)=\"goTo(i)\" [attr.aria-current]=\"i === activeIndex() ? 'step' : null\">\n @if (i < activeIndex()) { <kpt-icon name=\"check\" /> } @else { {{ i + 1 }} }\n </button>\n <span class=\"kpt-stepper__label\">{{ step.label() }}</span>\n @if (!last) { <span class=\"kpt-stepper__connector\"></span> }\n </li>\n }\n </ol>\n <div class=\"kpt-stepper__body\">\n @for (step of activePanels(); track activeIndex()) {\n <div class=\"kpt-stepper__panel\"><ng-container [ngTemplateOutlet]=\"step.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './stepper.component.scss',\n host: {\n 'class': 'kpt-stepper-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n },\n})\nexport class KptStepper {\n protected readonly steps = contentChildren(KptStep);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly direction = signal(1);\n protected readonly activeStep = computed(() => this.steps()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const step = this.activeStep();\n return step ? [step] : [];\n });\n\n goTo(index: number): void {\n const next = Math.max(0, Math.min(index, this.steps().length - 1));\n this.direction.set(next >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(next);\n }\n next(): void {\n this.direction.set(1);\n this.activeIndex.update((i) => Math.min(i + 1, this.steps().length - 1));\n }\n prev(): void {\n this.direction.set(-1);\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","<div class=\"kpt-paginator__size\">\n <label>\n {{ i18n.t('paginator.rowsPerPage') }}\n <select class=\"kpt-paginator__select\" [value]=\"pageSize()\" (change)=\"onSizeChange($event)\">\n @for (opt of pageSizeOptions(); track opt) {\n <option [value]=\"opt\" [selected]=\"opt === pageSize()\">{{ opt }}</option>\n }\n </select>\n </label>\n</div>\n\n<span class=\"kpt-paginator__range\">{{ rangeLabel() }}</span>\n\n<div class=\"kpt-paginator__nav\">\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canPrev()\" (click)=\"prev()\" [attr.aria-label]=\"i18n.t('paginator.prevPage')\"><kpt-icon name=\"chevron-left\" /></kpt-button>\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canNext()\" (click)=\"next()\" [attr.aria-label]=\"i18n.t('paginator.nextPage')\"><kpt-icon name=\"chevron-right\" /></kpt-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Paginator Koncept UI. Sterowany sygnałami; `pageIndex` i `pageSize` są dwukierunkowe.\n *\n * @example\n * <kpt-paginator [length]=\"total()\" [(pageIndex)]=\"page\" [(pageSize)]=\"size\" />\n */\n@Component({\n selector: 'kpt-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptButton, KptIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n host: { class: 'kpt-paginator' },\n})\nexport class KptPaginator {\n /** Łączna liczba elementów. */\n readonly length = input.required<number>();\n /** Rozmiar strony (dwukierunkowe). */\n readonly pageSize = model<number>(10);\n /** Indeks strony od 0 (dwukierunkowe). */\n readonly pageIndex = model<number>(0);\n /** Dostępne rozmiary strony. */\n readonly pageSizeOptions = input<number[]>([5, 10, 20, 50]);\n\n protected readonly i18n = inject(KptI18n);\n\n readonly totalPages = computed(() => Math.max(1, Math.ceil(this.length() / this.pageSize())));\n readonly rangeStart = computed(() => (this.length() === 0 ? 0 : this.pageIndex() * this.pageSize() + 1));\n readonly rangeEnd = computed(() => Math.min(this.length(), (this.pageIndex() + 1) * this.pageSize()));\n protected readonly rangeLabel = computed(() =>\n this.i18n.t('paginator.range', { start: this.rangeStart(), end: this.rangeEnd(), total: this.length() }),\n );\n readonly canPrev = computed(() => this.pageIndex() > 0);\n readonly canNext = computed(() => this.pageIndex() < this.totalPages() - 1);\n\n constructor() {\n // Utrzymuj poprawny indeks, gdy zmieni się długość lub rozmiar strony.\n effect(() => {\n const max = this.totalPages() - 1;\n if (this.pageIndex() > max) {\n this.pageIndex.set(max);\n }\n });\n }\n\n prev(): void {\n if (this.canPrev()) this.pageIndex.update((i) => i - 1);\n }\n next(): void {\n if (this.canNext()) this.pageIndex.update((i) => i + 1);\n }\n onSizeChange(event: Event): void {\n this.pageSize.set(+(event.target as HTMLSelectElement).value);\n this.pageIndex.set(0);\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon komórki dla kolumny `kpt-data-table`. Kontekst: `$implicit` = wiersz,\n * `value` = wartość pola.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCell]',\n})\nexport class KptCellDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon. */\n readonly kptCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon edytora komórki dla kolumny `kpt-data-table` (gdy wbudowane typy\n * `KptColumnEdit.type` nie wystarczają). Kontekst: `$implicit` = bieżąca wartość edycji,\n * `row` = wiersz, `commit(value)` = zatwierdź wartość i zamknij edytor, `cancel()` = odrzuć.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCellEdit=\"team\" let-value let-commit=\"commit\">\n * <my-custom-picker [value]=\"value\" (valueChange)=\"commit($event)\" />\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCellEdit]',\n})\nexport class KptCellEditDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon edytora. */\n readonly kptCellEdit = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","/*\n * Zamiana wartości komórki na tekst dla filtrowania, sortowania i podsumowań — pure TS,\n * wydzielone żeby dało się testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).\n */\n\n/**\n * Tekst z dowolnej wartości komórki. Prymitywy, `Date` i tablice zachowują się jak `String()`,\n * natomiast zwykły obiekt daje **pusty string**, nie `'[object Object]'`: ten drugi udawałby\n * sensowną zawartość — filtr tekstowy „obj\" dopasowywałby każdy wiersz z obiektem w komórce,\n * a sortowanie uznawało je wszystkie za równe.\n */\nexport function toText(value: unknown): string {\n switch (typeof value) {\n case 'string':\n return value;\n case 'number':\n case 'boolean':\n case 'bigint':\n return String(value);\n case 'object':\n if (value === null) return '';\n if (value instanceof Date) return value.toString();\n if (Array.isArray(value)) return value.map(toText).join(',');\n return '';\n default:\n return '';\n }\n}\n","/*\n * Agregacje wiersza podsumowania (`<tfoot>`) — pure TS, wydzielone żeby dało się\n * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).\n */\n\n/** Wbudowana agregacja kolumny w wierszu podsumowania. */\nexport type KptSummaryFn = 'sum' | 'avg' | 'min' | 'max' | 'count';\n\nexport interface KptColumnSummary {\n /**\n * Agregacja wbudowana albo własna funkcja liczona na całym zbiorze wierszy\n * (po filtrach, ze wszystkich stron).\n */\n fn: KptSummaryFn | ((rows: readonly Record<string, unknown>[]) => unknown);\n /** Formatowanie wyniku (np. waluta). Bez niego wartość renderowana jest surowo. */\n format?: (value: unknown) => string;\n}\n\n/**\n * Sumowanie liczb zmiennoprzecinkowych daje ogony (`0.1 + 0.2` → `0.30000000000000004`),\n * które bez tego przycięcia wyciekłyby wprost do komórki podsumowania.\n */\nfunction trimFloat(value: number): number {\n return Math.round(value * 1e10) / 1e10;\n}\n\n/** Liczba z komórki: `number` bez zmian, string przez `parseFloat`, reszta → `NaN` (pomijana). */\nexport function toNumber(value: unknown): number {\n if (typeof value === 'number') return value;\n if (typeof value === 'string' && value.trim() !== '') return Number.parseFloat(value);\n return Number.NaN;\n}\n\n/**\n * Agreguje jedno pole po wierszach. `count` liczy wiersze; pozostałe funkcje pomijają\n * wartości nieliczbowe. Pusty zbiór liczb: `sum` → 0, `avg`/`min`/`max` → `null`\n * (komórka renderuje się wtedy pusta).\n */\nexport function aggregate(\n rows: readonly Record<string, unknown>[],\n field: string,\n fn: KptSummaryFn,\n): number | null {\n if (fn === 'count') return rows.length;\n const nums: number[] = [];\n for (const row of rows) {\n const num = toNumber(row[field]);\n if (!Number.isNaN(num)) nums.push(num);\n }\n switch (fn) {\n case 'sum':\n return trimFloat(nums.reduce((acc, n) => acc + n, 0));\n case 'avg':\n return nums.length === 0 ? null : trimFloat(nums.reduce((acc, n) => acc + n, 0) / nums.length);\n case 'min':\n return nums.length === 0 ? null : Math.min(...nums);\n case 'max':\n return nums.length === 0 ? null : Math.max(...nums);\n default:\n return null;\n }\n}\n","/*\n * Dopasowanie wiersza do filtrów kolumn tabeli — pure TS, wydzielone żeby dało się\n * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts` i `summary.ts`).\n * Komponent trzyma tylko stan filtrów; cała semantyka „czy komórka pasuje\" jest tutaj.\n */\n\nimport type { KptOption } from '../shared/types';\nimport { toText } from './cell-text';\nimport { toNumber } from './summary';\n\n/** Rodzaj kontrolki filtra w nagłówku kolumny. */\nexport type KptColumnFilterType = 'text' | 'number' | 'select' | 'dateRange' | 'numberRange' | 'slider';\n\nexport interface KptColumnFilter {\n type: KptColumnFilterType;\n /** Opcje dla `type: 'select'`. */\n options?: KptOption<unknown>[];\n /** Wielokrotny wybór dla `type: 'select'`. */\n multiple?: boolean;\n /** Placeholder kontrolki. */\n placeholder?: string;\n /** Dolna granica dla `type: 'slider'` (domyślnie 0). */\n min?: number;\n /** Górna granica dla `type: 'slider'` (domyślnie 100). */\n max?: number;\n /** Krok dla `type: 'slider'` (domyślnie 1). */\n step?: number;\n}\n\n/** Data komórki w formacie `YYYY-MM-DD` — do porównań leksykograficznych z granicami zakresu. */\nfunction toIsoDate(value: unknown): string {\n if (value instanceof Date) {\n const p = (n: number) => String(n).padStart(2, '0');\n return `${value.getFullYear()}-${p(value.getMonth() + 1)}-${p(value.getDate())}`;\n }\n return toText(value);\n}\n\n/** Filtr „pusty\" (nie wybrano nic) przepuszcza każdy wiersz. */\nexport function isEmptyFilterValue(value: unknown): boolean {\n return value == null || value === '' || (Array.isArray(value) && value.length === 0);\n}\n\ntype FilterMatcher = (cell: unknown, value: unknown) => boolean;\n\nconst matchesText: FilterMatcher = (cell, value) =>\n toText(cell).toLowerCase().includes(toText(value).toLowerCase());\n\nconst matchesNumber: FilterMatcher = (cell, value) => toText(cell).includes(toText(value));\n\nconst matchesSelect: FilterMatcher = (cell, value) => {\n const picked = Array.isArray(value) ? value : [value];\n // Komórka-tablica (np. lista tagów/członków) → dopasuj, gdy zawiera dowolną z wybranych wartości.\n if (Array.isArray(cell)) return cell.some((c) => picked.includes(c));\n return picked.includes(cell);\n};\n\nconst matchesNumberRange: FilterMatcher = (cell, value) => {\n const { min, max } = (value as { min?: string; max?: string }) ?? {};\n const lo = min == null || min === '' ? null : Number.parseFloat(min);\n const hi = max == null || max === '' ? null : Number.parseFloat(max);\n if (lo === null && hi === null) return true;\n const num = toNumber(cell);\n if (Number.isNaN(num)) return false;\n if (lo !== null && num < lo) return false;\n if (hi !== null && num > hi) return false;\n return true;\n};\n\nconst matchesSlider: FilterMatcher = (cell, value) => {\n const [lo, hi] = value as [number, number];\n const num = toNumber(cell);\n if (Number.isNaN(num)) return false;\n return num >= lo && num <= hi;\n};\n\nconst matchesDateRange: FilterMatcher = (cell, value) => {\n const { start, end } = (value as { start?: string; end?: string }) ?? {};\n if (!start && !end) return true;\n const iso = toIsoDate(cell);\n if (start && iso < start) return false;\n if (end && iso > end) return false;\n return true;\n};\n\n/** Mapa zamiast `switch` — `Record` po unii typów wymusza komplet, więc nie ma martwego `default`. */\nconst MATCHERS: Record<KptColumnFilterType, FilterMatcher> = {\n text: matchesText,\n number: matchesNumber,\n select: matchesSelect,\n numberRange: matchesNumberRange,\n slider: matchesSlider,\n dateRange: matchesDateRange,\n};\n\n/** Czy komórka przechodzi filtr kolumny. Wartości pustych filtrów odsiewa `isEmptyFilterValue`. */\nexport function matchesColumnFilter(filter: KptColumnFilter, cell: unknown, value: unknown): boolean {\n return MATCHERS[filter.type](cell, value);\n}\n","/*\n * Escapowanie komórek CSV dla `exportCsv()` — pure TS, wydzielone żeby dało się\n * testować `node --test` bez ciągnięcia Angulara.\n */\n\n// Znak startowy, który arkusz kalkulacyjny czyta jako początek formuły (CWE-1236).\nconst FORMULA_PREFIX = /^[=+\\-@\\t\\r]/;\n\nfunction stringifyCsvValue(value: unknown): string {\n switch (typeof value) {\n case 'undefined':\n return '';\n case 'string':\n return value;\n case 'number':\n case 'boolean':\n case 'bigint':\n return String(value);\n default:\n if (value === null) return '';\n if (value instanceof Date) return value.toISOString();\n return JSON.stringify(value);\n }\n}\n\n/** Escapuje pojedynczą wartość komórki/nagłówka do bezpiecznego pola CSV (separator `;`). */\nexport function escapeCsvCell(value: unknown): string {\n let text = stringifyCsvValue(value);\n // Wiodący `'` każe arkuszowi traktować komórkę jako tekst — sam znak nie jest wyświetlany.\n if (FORMULA_PREFIX.test(text)) text = `'${text}`;\n return /[\",\\n;]/.test(text) ? `\"${text.replaceAll('\"', '\"\"')}\"` : text;\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/**\n * Szablon rozwijanego wiersza (row detail) dla `kpt-data-table`. Renderowany pod\n * wierszem po rozwinięciu. Kontekst: `$implicit` = wiersz. Wymaga `expandable`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" expandable>\n * <ng-template kptRowDetail let-row>\n * <div class=\"szczegoly\">{{ row.opis }}</div>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptRowDetail]',\n})\nexport class KptRowDetailDef {\n readonly template = inject(TemplateRef);\n}\n","@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n @if (hasSummary() && !loading() && displayCount() > 0) {\n <tfoot>\n <tr class=\"kpt-data-table__summary\">\n @if (summaryLabelSpan() > 0) {\n <th\n class=\"kpt-data-table__summary-label\"\n [attr.colspan]=\"summaryLabelSpan()\"\n [class.kpt-data-table__cell--frozen]=\"hasFrozen()\"\n [style.left.px]=\"hasFrozen() ? 0 : null\"\n >\n {{ summaryLabelText() }}\n </th>\n }\n @for (col of visibleOrderedColumns(); track col.field; let i = $index) {\n @if (i >= summaryStartIndex()) {\n <td\n [attr.data-align]=\"col.align ?? 'end'\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n {{ summaryText(col.field) }}\n </td>\n }\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDateRange } from '../date-range/date-range.component';\nimport { KptDatepicker } from '../datepicker/datepicker.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptInput } from '../input/input.component';\nimport { KptInputNumber } from '../input-number/input-number.component';\nimport { KptPaginator } from '../paginator/paginator.component';\nimport { KptSelect } from '../select/select.component';\nimport { KptSlider } from '../slider/slider.component';\nimport type { KptOption } from '../shared/types';\nimport { KptCellDef } from './cell.directive';\nimport { KptCellEditDef } from './cell-edit.directive';\nimport { toText } from './cell-text';\nimport { isEmptyFilterValue, matchesColumnFilter, type KptColumnFilter } from './column-filter';\nimport { escapeCsvCell } from './csv-export';\nimport { KptRowDetailDef } from './row-detail.directive';\nimport { aggregate, type KptColumnSummary } from './summary';\n\nexport type { KptColumnSummary, KptSummaryFn } from './summary';\nexport type { KptColumnFilter, KptColumnFilterType } from './column-filter';\n\n/** Rodzaj kontrolki edycji inline komórki. */\nexport type KptColumnEditType = 'text' | 'number' | 'date' | 'select' | 'multiselect';\n\nexport interface KptColumnEdit {\n type: KptColumnEditType;\n /** Opcje dla `type: 'select'` / `'multiselect'`. */\n options?: KptOption<unknown>[];\n placeholder?: string;\n /** Dla `type: 'number'`. */\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport interface KptColumn {\n /** Nazwa pola w wierszu. */\n field: string;\n /** Nagłówek kolumny. */\n header: string;\n /** Czy kolumna jest sortowalna. */\n sortable?: boolean;\n /** Wyrównanie zawartości. */\n align?: 'start' | 'center' | 'end';\n /** Szerokość kolumny (np. '10rem', '20%'). Wymagane dla kolumn zamrożonych. */\n width?: string;\n /** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */\n frozen?: boolean;\n /** Filtr kolumny w wierszu nagłówka (input/number/select/zakres dat). */\n filter?: KptColumnFilter;\n /** Włącza edycję inline (klik w komórkę zamienia wartość na kontrolkę tego typu). */\n edit?: KptColumnEdit;\n /** Włącza agregację tej kolumny w wierszu podsumowania (`<tfoot>`, nad paginatorem). */\n summary?: KptColumnSummary;\n}\n\n/** Zdarzenie po zatwierdzeniu edycji komórki. */\nexport interface KptCellEditEvent<T> {\n /** Wiersz sprzed zmiany. */\n row: T;\n field: string;\n /** Nowa wartość. */\n value: unknown;\n /** Wiersz po scaleniu ze zmienioną wartością — gotowe body PUT/PATCH. */\n updatedRow: T;\n}\n\nconst REM_PX = 16;\nconst CHECKBOX_FROZEN_W = 3; // rem\nconst EXPANDER_FROZEN_W = 2.5; // rem\n\n/** Edytory renderujące panel w CDK Overlay — otwierane od razu i zatwierdzane na zamknięciu panelu. */\nconst OVERLAY_EDITORS: ReadonlySet<KptColumnEditType> = new Set(['date', 'select', 'multiselect']);\n\n/** Tablice (multiselect) porównujemy po zawartości, resztę po referencji. */\nfunction sameEditValue(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((v, i) => v === b[i]);\n }\n return false;\n}\n\ntype SortDir = 'asc' | 'desc' | null;\n\n/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */\nexport interface KptTableLazyState {\n pageIndex: number;\n pageSize: number;\n sortField: string | null;\n sortDir: SortDir;\n filter: string;\n /** Wartości filtrów per kolumna (pole → wartość kontrolki). */\n columnFilters: Record<string, unknown>;\n}\n\n/**\n * Flagowa tabela danych Koncept UI: kolumny konfiguracją, sortowanie,\n * filtr globalny, paginacja, zaznaczanie wierszy i własne szablony komórek (`kptCell`).\n * Sygnałowa, OnPush. Stylowanie tokenami `--kpt-table-*`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" filterable [pageSize]=\"10\"\n * selectable=\"multiple\" rowKey=\"id\" [(selection)]=\"picked\">\n * <ng-template kptCell=\"status\" let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Component({\n selector: 'kpt-data-table',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n KptButton,\n KptIcon,\n KptPaginator,\n KptSelect,\n KptDateRange,\n KptSlider,\n KptInput,\n KptInputNumber,\n KptDatepicker,\n ],\n templateUrl: './data-table.component.html',\n styleUrl: './data-table.component.scss',\n host: {\n 'class': 'kpt-data-table',\n '[style.--kpt-thead-offset]': \"theadOffset() + 'px'\",\n },\n})\nexport class KptDataTable<T = Record<string, unknown>> {\n // ── Wejścia ──\n readonly columns = input.required<readonly KptColumn[]>();\n readonly data = input<readonly T[]>([]);\n readonly filterable = input(false, { transform: booleanAttribute });\n /** Pozycja wiersza filtrów kolumn względem etykiet: nad ('top') lub pod ('bottom'). */\n readonly filterRowPosition = input<'top' | 'bottom'>('bottom');\n /** Rozmiar strony; 0 wyłącza paginację. */\n readonly pageSize = input(0);\n readonly pageSizeOptions = input<number[]>([5, 10, 20, 50]);\n readonly selectable = input<'none' | 'single' | 'multiple'>('none');\n readonly loading = input(false, { transform: booleanAttribute });\n /** Komunikat pustej tabeli; bez wartości używa i18n (`dataTable.empty`). */\n readonly emptyMessage = input<string>();\n /** Pole identyfikujące wiersz (dla zaznaczania). Bez niego — porównanie po referencji. */\n readonly rowKey = input<string | null>(null);\n /** Wysokość przewijalnego obszaru (np. '400px'); sticky header pozostaje widoczny. */\n readonly scrollHeight = input<string | null>(null);\n /** Wirtualizacja wierszy dla dużych zbiorów (renderuje tylko widoczne). Wymaga `scrollHeight`. */\n readonly virtualScroll = input(false, { transform: booleanAttribute });\n /** Wysokość wiersza w px (stała, wymagana przy virtualScroll). */\n readonly rowHeight = input(41);\n /** Umożliwia przestawianie kolumn metodą przeciągnij-i-upuść. */\n readonly reorderable = input(false, { transform: booleanAttribute });\n /** Pokazuje przycisk eksportu do CSV. */\n readonly exportable = input(false, { transform: booleanAttribute });\n /** Nazwa pliku eksportu CSV. */\n readonly exportFilename = input('export.csv');\n /** Tryb serwerowy: bez filtrowania/sortowania/paginacji po stronie klienta. */\n readonly lazy = input(false, { transform: booleanAttribute });\n /** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */\n readonly totalRecords = input<number | null>(null);\n /** Rozwijane wiersze: dodaje kolumnę z przełącznikiem i renderuje szablon `kptRowDetail`. */\n readonly expandable = input(false, { transform: booleanAttribute });\n /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */\n readonly multiExpand = input(true, { transform: booleanAttribute });\n /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */\n readonly summaryLabel = input<string>();\n /**\n * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,\n * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).\n */\n readonly summaryValues = input<Record<string, unknown> | null>(null);\n\n // ── Model / zdarzenia ──\n readonly selection = model<T[]>([]);\n /** Rozwinięte wiersze (dwukierunkowo). */\n readonly expandedRows = model<T[]>([]);\n /**\n * Pola (`KptColumn.field`) aktualnie ukrytych kolumn (dwukierunkowo). Sam komponent nie\n * dostarcza UI do zarządzania tym stanem — to hak do podpięcia zewnętrznego przełącznika\n * kolumn (patrz przykład „Dostosowywanie kolumn\" w playground).\n */\n readonly hiddenFields = model<readonly string[]>([]);\n readonly rowClick = output<T>();\n /** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */\n readonly lazyLoad = output<KptTableLazyState>();\n /** Emitowane po zatwierdzeniu edycji komórki (tylko gdy wartość faktycznie się zmieniła). */\n readonly cellEdit = output<KptCellEditEvent<T>>();\n\n protected readonly i18n = inject(KptI18n);\n /** Komunikat pustej tabeli (input albo domyślny z i18n). */\n protected readonly emptyText = computed(() => this.emptyMessage() ?? this.i18n.t('dataTable.empty'));\n\n /** Kolumny w bieżącej kolejności (po ewentualnym przestawieniu). */\n protected readonly orderedColumns = linkedSignal<readonly KptColumn[]>(() => this.columns());\n /** Kolumny w bieżącej kolejności, bez tych ukrytych przez `hiddenFields` — do renderowania i eksportu. */\n protected readonly visibleOrderedColumns = computed(() =>\n this.orderedColumns().filter((c) => !this.hiddenFields().includes(c.field)),\n );\n\n // ── Wirtualizacja (ręczne okno wierszy) ──\n private readonly scrollEl = viewChild<ElementRef<HTMLElement>>('scrollEl');\n protected readonly scrollTop = signal(0);\n protected readonly viewportHeight = signal(400);\n private readonly buffer = 6;\n\n // ── Sticky offset drugiego wiersza nagłówka (etykiety + filtry) ──\n private readonly theadEl = viewChild<ElementRef<HTMLTableSectionElement>>('theadEl');\n protected readonly theadOffset = signal(0);\n\n // ── Edycja inline komórek ──\n protected readonly editingCell = signal<{ row: T; field: string } | null>(null);\n protected readonly editingValue = signal<unknown>(null);\n /** Czy panel edytora overlayowego (date/select/multiselect) jest otwarty. */\n protected readonly editorPanelOpen = signal(false);\n private readonly editorHost = viewChild<ElementRef<HTMLElement>>('editorHost');\n\n constructor() {\n // Tryb lazy: przy każdej zmianie stanu poproś rodzica o dane.\n effect(() => {\n if (!this.lazy()) return;\n this.lazyLoad.emit({\n pageIndex: this.pageIndex(),\n pageSize: this.pageSizeState(),\n sortField: this.sortField(),\n sortDir: this.sortDir(),\n filter: this.filterText(),\n columnFilters: this.columnFilters(),\n });\n });\n\n // Zmierz wysokość viewportu dla wirtualizacji.\n afterNextRender(() => {\n const el = this.scrollEl()?.nativeElement;\n if (el) this.viewportHeight.set(el.clientHeight);\n });\n\n // Zmierz wysokość pierwszego wiersza nagłówka → offset sticky drugiego wiersza.\n afterRenderEffect(() => {\n this.filterRowPosition();\n this.hasColumnFilters();\n this.visibleOrderedColumns();\n const first = this.theadEl()?.nativeElement?.rows?.[0];\n if (first) this.theadOffset.set(first.offsetHeight);\n });\n\n // Wejście w edycję komórki → przenieś fokus na jej edytor.\n afterRenderEffect(() => {\n if (!this.editingCell()) return;\n this.editorHost()\n ?.nativeElement.querySelector<HTMLElement>('input, .kpt-select, [tabindex]')\n ?.focus();\n });\n }\n\n protected onScroll(event: Event): void {\n if (!this.virtualScroll()) return;\n const el = event.target as HTMLElement;\n this.scrollTop.set(el.scrollTop);\n this.viewportHeight.set(el.clientHeight);\n }\n\n protected readonly virtualStart = computed(() =>\n Math.max(0, Math.floor(this.scrollTop() / this.rowHeight()) - this.buffer),\n );\n protected readonly virtualEnd = computed(() => {\n const total = this.sorted().length;\n const count = Math.ceil(this.viewportHeight() / this.rowHeight()) + this.buffer * 2;\n return Math.min(total, this.virtualStart() + count);\n });\n protected readonly virtualRows = computed(() => this.sorted().slice(this.virtualStart(), this.virtualEnd()));\n protected readonly topPad = computed(() => this.virtualStart() * this.rowHeight());\n protected readonly bottomPad = computed(() => (this.sorted().length - this.virtualEnd()) * this.rowHeight());\n\n // ── Przestawianie kolumn (natywny HTML5 drag-and-drop; działa w trybie zoneless) ──\n /**\n * Pole przeciąganej kolumny (nie indeks — przy ukrytych kolumnach `$index` z pętli\n * `visibleOrderedColumns()` nie odpowiada pozycji w pełnej `orderedColumns()`).\n */\n protected readonly dragField = signal<string | null>(null);\n\n /** Kolumna przeciągalna tylko gdy `reorderable` i nie jest zamrożona (frozen musi zostać wiodąca). */\n protected isColDraggable(col: KptColumn): boolean {\n return this.reorderable() && !col.frozen;\n }\n /** Liczba wiodących widocznych kolumn zamrożonych — poza nie wolno upuszczać ani ich przesuwać. */\n private frozenLeadCount(): number {\n let n = 0;\n for (const col of this.visibleOrderedColumns()) {\n if (col.frozen) n++;\n else break;\n }\n return n;\n }\n\n protected onColDragStart(field: string, event: DragEvent): void {\n const col = this.orderedColumns().find((c) => c.field === field);\n if (col?.frozen) return; // frozen nieprzeciągalne\n this.dragField.set(field);\n event.dataTransfer?.setData('text/plain', field);\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n protected onColDragOver(field: string, event: DragEvent): void {\n // Zezwól na upuszczenie tylko poza obszarem kolumn zamrożonych.\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (this.dragField() !== null && visIndex >= this.frozenLeadCount()) event.preventDefault();\n }\n protected onColDrop(field: string, event: DragEvent): void {\n event.preventDefault();\n const from = this.dragField();\n if (from === null || from === field) return;\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (visIndex < this.frozenLeadCount()) return; // nie wsuwaj przed/pomiędzy kolumny zamrożone\n const cols = [...this.orderedColumns()];\n const fromIdx = cols.findIndex((c) => c.field === from);\n const toIdx = cols.findIndex((c) => c.field === field);\n if (fromIdx === -1 || toIdx === -1) return;\n const [moved] = cols.splice(fromIdx, 1);\n cols.splice(toIdx, 0, moved);\n this.orderedColumns.set(cols);\n this.dragField.set(null);\n }\n protected onColDragEnd(): void {\n this.dragField.set(null);\n }\n\n exportCsv(): void {\n const cols = this.visibleOrderedColumns();\n const rows = this.lazy() ? this.data() : this.sorted();\n const header = cols.map((c) => escapeCsvCell(c.header)).join(';');\n const body = rows\n .map((row) => cols.map((c) => escapeCsvCell((row as Record<string, unknown>)[c.field])).join(';'))\n .join('\\n');\n // BOM () — poprawne polskie znaki w Excelu.\n const csv = `${header}\\n${body}`;\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = this.exportFilename();\n link.click();\n URL.revokeObjectURL(url);\n }\n\n // ── Szablony komórek ──\n private readonly cellDefs = contentChildren(KptCellDef);\n private readonly cellMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) map.set(def.kptCell(), def.template);\n return map;\n });\n protected cellTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellMap().get(field) ?? null;\n }\n\n // ── Własne edytory komórek (furtka poza wbudowane typy `column.edit.type`) ──\n private readonly cellEditDefs = contentChildren(KptCellEditDef);\n private readonly cellEditMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellEditDefs()) map.set(def.kptCellEdit(), def.template);\n return map;\n });\n protected cellEditTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellEditMap().get(field) ?? null;\n }\n\n // ── Edycja inline komórek ──\n protected isEditable(col: KptColumn): boolean {\n return !!col.edit || !!this.cellEditTemplate(col.field);\n }\n protected isEditingCell(row: T, field: string): boolean {\n const e = this.editingCell();\n return !!e && e.field === field && this.sameRow(e.row, row);\n }\n protected startEdit(row: T, col: KptColumn, event: Event): void {\n event.stopPropagation();\n if (!this.isEditable(col) || this.isEditingCell(row, col.field)) return;\n this.editingCell.set({ row, field: col.field });\n this.editingValue.set(this.getValue(row, col.field));\n // Edytory na overlayu otwieramy od razu. To nie kosmetyka: backdrop CDK sprawia, że każdy klik\n // poza edytorem zamyka panel, a więc zatwierdza i zamyka edycję — bez tego edytor z zamkniętym\n // panelem potrafiłby zostać otwarty w nieskończoność.\n const type = col.edit?.type;\n this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.has(type));\n }\n /**\n * Panel edytora zamknięty (wybór, klik poza, Esc) → zatwierdź. Celowo NIE wieszamy tego na\n * `touch`: ten leci też z blur triggera, czyli już przy naciśnięciu myszy na opcji w panelu —\n * edytor ginąłby, zanim kliknięcie zdąży wybrać wartość.\n */\n protected onEditorPanelToggle(open: boolean): void {\n this.editorPanelOpen.set(open);\n if (!open) this.commitEdit();\n }\n /**\n * Edytory bez overlaya (text/number, własne `kptCellEdit`) zatwierdza dopiero wyjście fokusu\n * **poza cały edytor**. Nie wystarczy `touch`/blur samej kontrolki: `kpt-input-number` ma\n * fokusowalne strzałki `+`/`-` obok pola (i dodatkowo emituje `touch` w `step_()`), więc każde\n * kliknięcie strzałki zamykałoby edycję, zanim zdąży zmienić wartość.\n */\n protected onEditorFocusOut(event: FocusEvent): void {\n if (this.editorPanelOpen()) return; // edytory overlayowe zatwierdza zamknięcie panelu\n const host = this.editorHost()?.nativeElement;\n const next = event.relatedTarget as Node | null;\n if (host && next && host.contains(next)) return; // fokus został w edytorze (np. strzałki +/-)\n this.commitEdit();\n }\n /** Zatwierdza bieżącą edycję — emituje `cellEdit` tylko gdy wartość faktycznie się zmieniła. */\n protected commitEdit(): void {\n const editing = this.editingCell();\n if (!editing) return;\n const { row, field } = editing;\n const value = this.editingValue();\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n if (sameEditValue(value, this.getValue(row, field))) return;\n const updatedRow = { ...(row as Record<string, unknown>), [field]: value } as T;\n this.cellEdit.emit({ row, field, value, updatedRow });\n }\n /** Dla własnych szablonów (`kptCellEdit`): ustaw wartość i od razu zatwierdź. */\n protected readonly commitEditValue = (value: unknown): void => {\n this.editingValue.set(value);\n this.commitEdit();\n };\n protected cancelEdit(): void {\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n }\n\n // ── Rozwijane wiersze ──\n private readonly rowDetailDef = contentChild(KptRowDetailDef);\n protected readonly rowDetailTpl = computed(() => this.rowDetailDef()?.template ?? null);\n /** Kolumna z przełącznikiem widoczna, gdy włączono `expandable` i podano szablon `kptRowDetail`. */\n protected readonly hasRowDetail = computed(() => this.expandable() && !!this.rowDetailDef());\n protected isExpanded(row: T): boolean {\n return this.expandedRows().some((r) => this.sameRow(r, row));\n }\n protected toggleExpand(row: T): void {\n if (this.isExpanded(row)) {\n this.expandedRows.set(this.expandedRows().filter((r) => !this.sameRow(r, row)));\n } else {\n this.expandedRows.set(this.multiExpand() ? [...this.expandedRows(), row] : [row]);\n }\n }\n\n // ── Stan ──\n protected readonly filterText = signal('');\n protected readonly columnFilters = signal<Record<string, unknown>>({});\n protected readonly sortField = signal<string | null>(null);\n protected readonly sortDir = signal<SortDir>(null);\n protected readonly pageIndex = signal(0);\n protected readonly pageSizeState = linkedSignal(() => this.pageSize() || 10);\n\n protected readonly hasColumnFilters = computed(() => this.columns().some((c) => c.filter));\n\n // ── Filtry kolumn ──\n protected setColumnFilter(field: string, value: unknown): void {\n this.columnFilters.update((cur) => ({ ...cur, [field]: value }));\n this.pageIndex.set(0);\n }\n /** Input liczbowy — pozostaw tylko cyfry i zsynchronizuj DOM z wartością. */\n protected onNumberFilter(field: string, event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, digits);\n }\n /** Bieżąca wartość filtra zakresu liczbowego (min/max) dla kolumny. */\n protected rangeVal(field: string): { min: string; max: string } {\n const v = this.columnFilters()[field] as { min?: string; max?: string } | undefined;\n return { min: v?.min ?? '', max: v?.max ?? '' };\n }\n /** Aktualizuj jedną granicę zakresu (min/max), pozostawiając tylko cyfry. */\n protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, { ...this.rangeVal(field), [bound]: digits });\n }\n /** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */\n protected sliderVal(col: KptColumn): [number, number] {\n const mn = col.filter?.min ?? 0;\n const mx = col.filter?.max ?? 100;\n const v = this.columnFilters()[col.field] as [number, number] | undefined;\n return v ?? [mn, mx];\n }\n\n /** Semantyka dopasowania siedzi w `./column-filter` — tu zostaje tylko spięcie ze stanem. */\n private matchesColumnFilters(row: T): boolean {\n const filters = this.columnFilters();\n const cells = row as Record<string, unknown>;\n return this.columns().every((col) => {\n const filter = col.filter;\n if (!filter) return true;\n const value = filters[col.field];\n if (isEmptyFilterValue(value)) return true;\n return matchesColumnFilter(filter, cells[col.field], value);\n });\n }\n\n // ── Potok przetwarzania danych ──\n private readonly filtered = computed(() => {\n const query = this.filterText().trim().toLowerCase();\n const cols = this.columns();\n let rows = this.data();\n if (query) {\n rows = rows.filter((row) =>\n cols.some((col) => toText((row as Record<string, unknown>)[col.field]).toLowerCase().includes(query)),\n );\n }\n if (this.hasColumnFilters()) {\n rows = rows.filter((row) => this.matchesColumnFilters(row));\n }\n return rows;\n });\n\n private readonly sorted = computed(() => {\n const field = this.sortField();\n const dir = this.sortDir();\n const rows = this.filtered();\n if (!field || !dir) return rows;\n const sign = dir === 'asc' ? 1 : -1;\n return [...rows].sort((a, b) => {\n const av = (a as Record<string, unknown>)[field];\n const bv = (b as Record<string, unknown>)[field];\n if (av == null) return 1;\n if (bv == null) return -1;\n if (typeof av === 'number' && typeof bv === 'number') return (av - bv) * sign;\n return toText(av).localeCompare(toText(bv)) * sign;\n });\n });\n\n protected readonly filteredCount = computed(() =>\n this.lazy() ? (this.totalRecords() ?? this.data().length) : this.filtered().length,\n );\n\n protected readonly paged = computed(() => {\n if (this.lazy()) return this.data();\n const rows = this.sorted();\n if (this.pageSize() <= 0) return rows;\n const size = this.pageSizeState();\n const start = this.pageIndex() * size;\n return rows.slice(start, start + size);\n });\n\n /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */\n private readonly leadingCells = computed(\n () => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0),\n );\n protected readonly colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells());\n protected readonly displayCount = computed(() =>\n this.virtualScroll() ? this.sorted().length : this.paged().length,\n );\n\n // ── Wiersz podsumowania (tfoot) ──\n /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */\n protected readonly summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'));\n /**\n * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`\n * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic\n * sama — jedynym źródłem jest wtedy `summaryValues`.\n */\n private readonly summarySource = computed(() =>\n this.lazy() ? [] : (this.filtered() as readonly Record<string, unknown>[]),\n );\n /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */\n private readonly summaryFields = computed(() => {\n const cols = this.visibleOrderedColumns();\n const overrides = this.summaryValues() ?? {};\n return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);\n });\n protected readonly hasSummary = computed(() => this.summaryFields().length > 0);\n /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */\n protected readonly summaryStartIndex = computed(() => {\n const first = this.summaryFields()[0];\n return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);\n });\n /**\n * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.\n * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie\n * renderuje się wcale.\n */\n protected readonly summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex());\n /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */\n private readonly summaryTexts = computed(() => {\n const rows = this.summarySource();\n const overrides = this.summaryValues() ?? {};\n const map = new Map<string, string>();\n for (const col of this.visibleOrderedColumns()) {\n const summary = col.summary;\n // Gotowa wartość z `summaryValues` wygrywa z wyliczeniem — i wystarcza sama w sobie.\n if (col.field in overrides) {\n map.set(col.field, this.formatSummary(overrides[col.field], summary?.format));\n continue;\n }\n if (!summary) continue;\n const raw =\n typeof summary.fn === 'function' ? summary.fn(rows) : aggregate(rows, col.field, summary.fn);\n map.set(col.field, this.formatSummary(raw, summary.format));\n }\n return map;\n });\n private formatSummary(raw: unknown, format?: KptColumnSummary['format']): string {\n return format ? format(raw) : toText(raw);\n }\n protected summaryText(field: string): string {\n return this.summaryTexts().get(field) ?? '';\n }\n\n // ── Kolumny zamrożone (sticky, wiodące) ──\n private parseWidthPx(width?: string): number {\n if (!width) return 8 * REM_PX;\n const n = Number.parseFloat(width);\n if (Number.isNaN(n)) return 8 * REM_PX;\n return width.trim().endsWith('px') ? n : n * REM_PX;\n }\n /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */\n /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */\n private readonly leadingStickyWidth = computed(() => {\n let acc = 0;\n if (this.hasRowDetail()) acc += EXPANDER_FROZEN_W * REM_PX;\n if (this.selectable() !== 'none') acc += CHECKBOX_FROZEN_W * REM_PX;\n return acc;\n });\n private readonly frozenOffsets = computed(() => {\n const map = new Map<string, number>();\n let acc = this.leadingStickyWidth();\n for (const col of this.visibleOrderedColumns()) {\n if (!col.frozen) break; // tylko wiodące, sąsiadujące\n map.set(col.field, acc);\n acc += this.parseWidthPx(col.width);\n }\n return map;\n });\n protected readonly hasFrozen = computed(() => this.frozenOffsets().size > 0);\n /** Sticky-left kolumny rozwijania (px) — 0, gdy tabela ma kolumny zamrożone. */\n protected readonly expanderStickyLeft = computed(() => (this.hasFrozen() ? 0 : null));\n /** Sticky-left kolumny zaznaczania (px) — za kolumną rozwijania, jeśli obecna. */\n protected readonly checkboxStickyLeft = computed(() => {\n if (!this.hasFrozen()) return null;\n return this.hasRowDetail() ? EXPANDER_FROZEN_W * REM_PX : 0;\n });\n protected frozenLeft(field: string): number | null {\n return this.frozenOffsets().get(field) ?? null;\n }\n protected isFrozen(field: string): boolean {\n return this.frozenOffsets().has(field);\n }\n\n // ── Sortowanie ──\n protected toggleSort(col: KptColumn): void {\n if (!col.sortable) return;\n if (this.sortField() !== col.field) {\n this.sortField.set(col.field);\n this.sortDir.set('asc');\n return;\n }\n const dir = this.sortDir();\n if (dir === 'asc') this.sortDir.set('desc');\n else if (dir === 'desc') {\n this.sortField.set(null);\n this.sortDir.set(null);\n } else this.sortDir.set('asc');\n }\n protected sortIconName(col: KptColumn): KptIconName {\n return this.sortField() === col.field && this.sortDir() === 'asc' ? 'chevron-up' : 'chevron-down';\n }\n protected ariaSort(col: KptColumn): 'ascending' | 'descending' | 'none' {\n if (this.sortField() !== col.field || !this.sortDir()) return 'none';\n return this.sortDir() === 'asc' ? 'ascending' : 'descending';\n }\n\n // ── Filtrowanie ──\n protected onFilter(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.pageIndex.set(0);\n }\n\n // ── Zaznaczanie ──\n private sameRow(a: T, b: T): boolean {\n const key = this.rowKey();\n if (key) return (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key];\n return a === b;\n }\n protected isSelected(row: T): boolean {\n return this.selection().some((r) => this.sameRow(r, row));\n }\n protected toggleRow(row: T): void {\n const mode = this.selectable();\n if (mode === 'none') return;\n if (mode === 'single') {\n this.selection.set(this.isSelected(row) ? [] : [row]);\n return;\n }\n const current = this.selection();\n this.selection.set(\n this.isSelected(row) ? current.filter((r) => !this.sameRow(r, row)) : [...current, row],\n );\n }\n protected readonly pageAllSelected = computed(() => {\n const page = this.paged();\n return page.length > 0 && page.every((r) => this.isSelected(r));\n });\n protected readonly pageSomeSelected = computed(() => {\n const page = this.paged();\n return page.some((r) => this.isSelected(r)) && !this.pageAllSelected();\n });\n protected toggleAllOnPage(): void {\n const page = this.paged();\n if (this.pageAllSelected()) {\n this.selection.set(this.selection().filter((r) => !page.some((pr) => this.sameRow(pr, r))));\n } else {\n const toAdd = page.filter((r) => !this.isSelected(r));\n this.selection.set([...this.selection(), ...toAdd]);\n }\n }\n\n // ── Wiersze ──\n protected onRowClick(row: T): void {\n this.rowClick.emit(row);\n }\n protected getValue(row: T, field: string): unknown {\n return (row as Record<string, unknown>)[field];\n }\n protected trackRow = (row: T): unknown => {\n const key = this.rowKey();\n return key ? (row as Record<string, unknown>)[key] : row;\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTreeNode<T = unknown> {\n label: string;\n value?: T;\n icon?: string;\n children?: KptTreeNode<T>[];\n expanded?: boolean;\n disabled?: boolean;\n}\n\n/**\n * Drzewo hierarchiczne (rozwijanie, zaznaczanie, ikony). Dane przez `nodes`.\n *\n * @example\n * <kpt-tree [nodes]=\"tree\" selectable [(selected)]=\"node\" (nodeClick)=\"open($event)\" />\n */\n@Component({\n selector: 'kpt-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ul class=\"kpt-tree\" role=\"tree\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: nodes(), level: 0 }\" />\n </ul>\n\n <ng-template #nodeTpl let-list let-level=\"level\">\n @for (node of list; track node) {\n <li class=\"kpt-tree__node\" role=\"treeitem\" [attr.aria-expanded]=\"has(node) ? isOpen(node) : null\">\n <div\n class=\"kpt-tree__row\"\n [class.is-selected]=\"isSelected(node)\"\n [class.is-disabled]=\"node.disabled\"\n [style.padding-inline-start.rem]=\"0.5 + level * 1.1\"\n (click)=\"onRow(node)\"\n >\n @if (has(node)) {\n <button type=\"button\" class=\"kpt-tree__toggle\" (click)=\"toggle(node, $event)\" [attr.aria-label]=\"isOpen(node) ? 'Zwiń' : 'Rozwiń'\">\n <kpt-icon name=\"chevron-right\" class=\"kpt-tree__chevron\" [class.is-open]=\"isOpen(node)\" />\n </button>\n } @else {\n <span class=\"kpt-tree__spacer\"></span>\n }\n @if (node.icon) { <kpt-icon [name]=\"node.icon\" class=\"kpt-tree__icon\" /> }\n <span class=\"kpt-tree__label\">{{ node.label }}</span>\n </div>\n @if (has(node) && isOpen(node)) {\n <ul role=\"group\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: node.children, level: level + 1 }\" />\n </ul>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: './tree.component.scss',\n host: { class: 'kpt-tree-host' },\n})\nexport class KptTree<T = unknown> {\n readonly nodes = input<KptTreeNode<T>[]>([]);\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly selected = model<KptTreeNode<T> | null>(null);\n readonly nodeClick = output<KptTreeNode<T>>();\n\n private readonly version = signal(0);\n\n protected has(node: KptTreeNode<T>): boolean {\n return !!node.children?.length;\n }\n protected isOpen(node: KptTreeNode<T>): boolean {\n this.version();\n return !!node.expanded;\n }\n protected isSelected(node: KptTreeNode<T>): boolean {\n return this.selected() === node;\n }\n protected toggle(node: KptTreeNode<T>, event: Event): void {\n event.stopPropagation();\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n protected onRow(node: KptTreeNode<T>): void {\n if (node.disabled) return;\n if (this.selectable()) this.selected.set(node);\n else if (this.has(node)) {\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n this.nodeClick.emit(node);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTimelineItem {\n title: string;\n description?: string;\n time?: string;\n icon?: string;\n variant?: 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n}\n\n/**\n * Oś czasu (timeline) — pionowa lista zdarzeń z markerami.\n *\n * @example\n * <kpt-timeline [items]=\"[{title:'Utworzono', time:'10:00', variant:'success', icon:'check'}]\" />\n */\n@Component({\n selector: 'kpt-timeline',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <ol class=\"kpt-timeline\">\n @for (item of items(); track $index) {\n <li class=\"kpt-timeline__item\">\n <div class=\"kpt-timeline__marker\" [attr.data-variant]=\"item.variant ?? 'primary'\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n </div>\n <div class=\"kpt-timeline__content\">\n <div class=\"kpt-timeline__header\">\n <span class=\"kpt-timeline__title\">{{ item.title }}</span>\n @if (item.time) { <span class=\"kpt-timeline__time\">{{ item.time }}</span> }\n </div>\n @if (item.description) { <p class=\"kpt-timeline__desc\">{{ item.description }}</p> }\n </div>\n </li>\n }\n </ol>\n `,\n styleUrl: './timeline.component.scss',\n host: { class: 'kpt-timeline-host' },\n})\nexport class KptTimeline {\n readonly items = input<KptTimelineItem[]>([]);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Karuzela slajdów. Dane przez `items`, szablon slajdu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-carousel [items]=\"photos\">\n * <ng-template let-photo><img [src]=\"photo\" style=\"width:100%\" /></ng-template>\n * </kpt-carousel>\n */\n@Component({\n selector: 'kpt-carousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-carousel\">\n <div class=\"kpt-carousel__viewport\">\n <div class=\"kpt-carousel__track\" [style.transform]=\"'translateX(-' + activeIndex() * 100 + '%)'\">\n @for (item of items(); track $index) {\n <div class=\"kpt-carousel__slide\">\n <ng-container [ngTemplateOutlet]=\"slideTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n }\n </div>\n </div>\n\n <button class=\"kpt-carousel__nav kpt-carousel__nav--prev\" type=\"button\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\">\n <kpt-icon name=\"chevron-left\" />\n </button>\n <button class=\"kpt-carousel__nav kpt-carousel__nav--next\" type=\"button\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\">\n <kpt-icon name=\"chevron-right\" />\n </button>\n\n <div class=\"kpt-carousel__dots\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-carousel__dot\"\n [class.is-active]=\"i === activeIndex()\"\n (click)=\"goTo(i)\"\n [attr.aria-label]=\"i18n.t('carousel.slide', { index: i + 1 })\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './carousel.component.scss',\n host: { class: 'kpt-carousel-host' },\n})\nexport class KptCarousel<T = unknown> {\n readonly items = input<T[]>([]);\n readonly activeIndex = model(0);\n protected readonly i18n = inject(KptI18n);\n protected readonly slideTpl = contentChild.required(TemplateRef);\n\n next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n goTo(index: number): void {\n this.activeIndex.set(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, booleanAttribute, computed, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptPaginator } from '../paginator/paginator.component';\n\n/**\n * DataView — prezentacja listy elementów w układzie lista/siatka, z opcjonalną paginacją.\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-data-view [items]=\"products\" [pageSize]=\"6\">\n * <ng-template let-p><div>{{ p.name }}</div></ng-template>\n * </kpt-data-view>\n */\n@Component({\n selector: 'kpt-data-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon, KptPaginator],\n template: `\n <div class=\"kpt-data-view\">\n <div class=\"kpt-data-view__toolbar\">\n <div class=\"kpt-data-view__count\">{{ i18n.t('dataView.count', { count: items().length }) }}</div>\n <div class=\"kpt-data-view__switch\">\n <button type=\"button\" [class.is-active]=\"layout() === 'list'\" (click)=\"layout.set('list')\" [attr.aria-label]=\"i18n.t('dataView.list')\"><kpt-icon name=\"list\" /></button>\n <button type=\"button\" [class.is-active]=\"layout() === 'grid'\" (click)=\"layout.set('grid')\" [attr.aria-label]=\"i18n.t('dataView.grid')\"><kpt-icon name=\"menu\" /></button>\n </div>\n </div>\n\n <div class=\"kpt-data-view__content\" [attr.data-layout]=\"layout()\">\n @for (item of pageItems(); track $index) {\n <div class=\"kpt-data-view__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n } @empty {\n <div class=\"kpt-data-view__empty\">{{ i18n.t('dataView.empty') }}</div>\n }\n </div>\n\n @if (showPager()) {\n <kpt-paginator [length]=\"items().length\" [(pageIndex)]=\"pageIndex\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"[pageSize()]\" />\n }\n </div>\n `,\n styleUrl: './data-view.component.scss',\n host: { class: 'kpt-data-view-host' },\n})\nexport class KptDataView<T = unknown> {\n readonly items = input<T[]>([]);\n readonly layout = model<'list' | 'grid'>('grid');\n readonly pageSize = input(0);\n readonly paginated = input(true, { transform: booleanAttribute });\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly pageIndex = model(0);\n\n protected readonly showPager = computed(() => this.paginated() && this.pageSize() > 0 && this.items().length > this.pageSize());\n protected readonly pageItems = computed(() => {\n const size = this.pageSize();\n if (!this.paginated() || size <= 0) return this.items();\n const start = this.pageIndex() * size;\n return this.items().slice(start, start + size);\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * PickList — transfer elementów między dwiema listami (źródło ↔ cel).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-pick-list [(source)]=\"available\" [(target)]=\"selected\" sourceHeader=\"Dostępne\" targetHeader=\"Wybrane\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-pick-list>\n */\n@Component({\n selector: 'kpt-pick-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-pick-list\">\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveSourceHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of source(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selSource().has(item)\" (click)=\"toggle('source', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n\n <div class=\"kpt-pick-list__controls\">\n <button type=\"button\" (click)=\"move('source', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllRight')\"><kpt-icon name=\"chevron-right\" /><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('source', false)\" [attr.aria-label]=\"i18n.t('pickList.moveRight')\"><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('target', false)\" [attr.aria-label]=\"i18n.t('pickList.moveLeft')\"><kpt-icon name=\"chevron-left\" /></button>\n <button type=\"button\" (click)=\"move('target', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllLeft')\"><kpt-icon name=\"chevron-left\" /><kpt-icon name=\"chevron-left\" /></button>\n </div>\n\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveTargetHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of target(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selTarget().has(item)\" (click)=\"toggle('target', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './pick-list.component.scss',\n host: { class: 'kpt-pick-list-host' },\n})\nexport class KptPickList<T = unknown> {\n readonly source = model<T[]>([]);\n readonly target = model<T[]>([]);\n /** Nagłówek listy źródłowej; bez wartości używa i18n (`pickList.available`). */\n readonly sourceHeader = input<string>();\n /** Nagłówek listy docelowej; bez wartości używa i18n (`pickList.selected`). */\n readonly targetHeader = input<string>();\n protected readonly itemTpl = contentChild.required(TemplateRef);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveSourceHeader = computed(() => this.sourceHeader() ?? this.i18n.t('pickList.available'));\n protected readonly effectiveTargetHeader = computed(() => this.targetHeader() ?? this.i18n.t('pickList.selected'));\n protected readonly selSource = signal<Set<T>>(new Set());\n protected readonly selTarget = signal<Set<T>>(new Set());\n\n protected toggle(side: 'source' | 'target', item: T): void {\n const sig = side === 'source' ? this.selSource : this.selTarget;\n const next = new Set(sig());\n if (next.has(item)) next.delete(item);\n else next.add(item);\n sig.set(next);\n }\n\n protected move(from: 'source' | 'target', all: boolean): void {\n const fromModel = from === 'source' ? this.source : this.target;\n const toModel = from === 'source' ? this.target : this.source;\n const sel = from === 'source' ? this.selSource : this.selTarget;\n const moving = all ? fromModel() : fromModel().filter((i) => sel().has(i));\n if (!moving.length) return;\n fromModel.set(fromModel().filter((i) => !moving.includes(i)));\n toModel.set([...toModel(), ...moving]);\n sel.set(new Set());\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * OrderList — lista z ręcznym porządkowaniem elementów (w górę/dół).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-order-list [(items)]=\"tasks\" header=\"Kolejność\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-order-list>\n */\n@Component({\n selector: 'kpt-order-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-order-list\">\n <div class=\"kpt-order-list__controls\">\n <button type=\"button\" (click)=\"moveSelected(-1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.up')\"><kpt-icon name=\"arrow-up\" /></button>\n <button type=\"button\" (click)=\"moveSelected(1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.down')\"><kpt-icon name=\"arrow-down\" /></button>\n </div>\n <div class=\"kpt-order-list__panel\">\n @if (header()) { <div class=\"kpt-order-list__header\">{{ header() }}</div> }\n <ul class=\"kpt-order-list__items\">\n @for (item of items(); track $index; let i = $index) {\n <li class=\"kpt-order-list__item\" [class.is-selected]=\"selected() === i\" (click)=\"selected.set(i)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './order-list.component.scss',\n host: { class: 'kpt-order-list-host' },\n})\nexport class KptOrderList<T = unknown> {\n readonly items = model<T[]>([]);\n readonly header = input('');\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly selected = signal<number | null>(null);\n\n protected moveSelected(dir: -1 | 1): void {\n const i = this.selected();\n if (i === null) return;\n const j = i + dir;\n const arr = [...this.items()];\n if (j < 0 || j >= arr.length) return;\n [arr[i], arr[j]] = [arr[j], arr[i]];\n this.items.set(arr);\n this.selected.set(j);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptGalleriaItem {\n src: string;\n thumbnail?: string;\n alt?: string;\n}\n\n/**\n * Galleria — duży podgląd obrazu z paskiem miniatur i nawigacją.\n *\n * @example\n * <kpt-galleria [items]=\"photos\" [(activeIndex)]=\"idx\" />\n */\n@Component({\n selector: 'kpt-galleria',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-galleria\">\n <div class=\"kpt-galleria__stage\">\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--prev\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\"><kpt-icon name=\"chevron-left\" /></button>\n @if (current(); as item) {\n <img class=\"kpt-galleria__image\" [src]=\"item.src\" [alt]=\"item.alt || ''\" />\n }\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--next\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n\n @if (showThumbnails()) {\n <div class=\"kpt-galleria__thumbs\">\n @for (item of items(); track $index; let i = $index) {\n <button type=\"button\" class=\"kpt-galleria__thumb\" [class.is-active]=\"i === activeIndex()\" (click)=\"activeIndex.set(i)\" [attr.aria-label]=\"i18n.t('galleria.image', { index: i + 1 })\">\n <img [src]=\"item.thumbnail || item.src\" [alt]=\"item.alt || ''\" />\n </button>\n }\n </div>\n }\n </div>\n `,\n styleUrl: './galleria.component.scss',\n host: { class: 'kpt-galleria-host' },\n})\nexport class KptGalleria {\n readonly items = input<KptGalleriaItem[]>([]);\n readonly activeIndex = model(0);\n readonly showThumbnails = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly current = computed(() => this.items()[this.activeIndex()] ?? null);\n\n protected next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n protected prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\n\nexport type KptAlertVariant = 'info' | 'success' | 'warning' | 'danger';\n\n/**\n * Komunikat inline (alert). Warianty info/success/warning/danger, opcjonalny tytuł i zamykanie.\n *\n * @example\n * <kpt-alert variant=\"success\" title=\"Zapisano\">Zmiany zostały zapisane.</kpt-alert>\n */\n@Component({\n selector: 'kpt-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-alert\" [attr.data-variant]=\"variant()\" role=\"alert\">\n <kpt-icon class=\"kpt-alert__icon\" [name]=\"iconName()\" />\n <div class=\"kpt-alert__content\">\n @if (title()) {\n <div class=\"kpt-alert__title\">{{ title() }}</div>\n }\n <div class=\"kpt-alert__message\"><ng-content /></div>\n </div>\n @if (dismissible()) {\n <button class=\"kpt-alert__close\" type=\"button\" (click)=\"dismiss()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n `,\n styleUrl: './alert.component.scss',\n host: { class: 'kpt-alert-host', '[hidden]': '!visible()' },\n})\nexport class KptAlert {\n readonly variant = input<KptAlertVariant>('info');\n readonly title = input('');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(true);\n\n protected iconName(): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n this.variant()\n ] as KptIconName;\n }\n protected dismiss(): void {\n this.visible.set(false);\n this.closed.emit();\n }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Okno modalne na natywnym `<dialog>` (focus trap, ESC, backdrop w standardzie).\n * Sterowane sygnałem `open` (dwukierunkowe). Stopkę wstaw z atrybutem `kptDialogFooter`.\n *\n * @example\n * <kpt-dialog [(open)]=\"confirmOpen\" header=\"Usunąć?\">\n * Tej operacji nie można cofnąć.\n * <div kptDialogFooter>\n * <kpt-button variant=\"text\" (click)=\"confirmOpen.set(false)\">Anuluj</kpt-button>\n * <kpt-button variant=\"danger\" (click)=\"remove()\">Usuń</kpt-button>\n * </div>\n * </kpt-dialog>\n */\n@Component({\n selector: 'kpt-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <dialog #dlg class=\"kpt-dialog\" (close)=\"open.set(false)\" (cancel)=\"onCancel($event)\">\n @if (header()) {\n <div class=\"kpt-dialog__header\">\n <h2 class=\"kpt-dialog__title\">{{ header() }}</h2>\n @if (dismissible()) {\n <button class=\"kpt-dialog__close\" type=\"button\" (click)=\"open.set(false)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-dialog__body\"><ng-content /></div>\n <ng-content select=\"[kptDialogFooter]\" />\n </dialog>\n `,\n styleUrl: './dialog.component.scss',\n host: { class: 'kpt-dialog-host' },\n})\nexport class KptDialog {\n /** Otwarcie okna (dwukierunkowe). */\n readonly open = model(false);\n readonly header = input('');\n /** Pozwala zamknąć klawiszem Esc / przyciskiem ×. */\n readonly dismissible = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n private readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dlg');\n private readonly overlayContainer = inject(OverlayContainer);\n\n /** Miejsce, z którego zabraliśmy kontener overlayów — żeby go tam oddać. */\n private overlayHome: HTMLElement | null = null;\n\n constructor() {\n effect(() => {\n const el = this.dialogRef()?.nativeElement;\n if (!el) return;\n if (this.open() && !el.open) {\n el.showModal();\n this.adoptOverlayContainer(el);\n } else if (!this.open() && el.open) {\n el.close();\n this.releaseOverlayContainer();\n }\n });\n\n // Zamknięcie przez `close`/`cancel` też przechodzi tędy, ale zniszczenie komponentu\n // z otwartym oknem już nie — kontener musi wrócić na miejsce niezależnie od drogi.\n inject(DestroyRef).onDestroy(() => this.releaseOverlayContainer());\n }\n\n /**\n * Przenosi kontener CDK Overlay do wnętrza `<dialog>` na czas, gdy okno jest otwarte.\n *\n * `showModal()` wynosi okno do **warstwy szczytowej** przeglądarki, a ta jest ponad\n * całym drzewem dokumentu — żaden `z-index` tego nie przebije. Kontener overlayów\n * wisi na `<body>`, więc panele `kpt-select`, `kpt-datepicker`, `kpt-autocomplete`\n * czy `kpt-menu` otwierałyby się NIEWIDOCZNE, schowane za tłem okna.\n */\n private adoptOverlayContainer(dialog: HTMLDialogElement): void {\n const container = this.overlayContainer.getContainerElement();\n if (container.parentElement === dialog) return;\n this.overlayHome = container.parentElement;\n dialog.appendChild(container);\n }\n\n private releaseOverlayContainer(): void {\n if (!this.overlayHome) return;\n // `getContainerElement()` nie tworzy nowego kontenera — zwraca ten sam, który zabraliśmy.\n this.overlayHome.appendChild(this.overlayContainer.getContainerElement());\n this.overlayHome = null;\n }\n\n protected onCancel(event: Event): void {\n if (!this.dismissible()) {\n event.preventDefault();\n return;\n }\n this.open.set(false);\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport type { KptAlertVariant } from '../alert/alert.component';\n\nexport interface KptToast {\n id: number;\n message: string;\n title?: string;\n variant: KptAlertVariant;\n /** Czas życia w ms; 0 = bez auto-zamykania. */\n duration: number;\n}\n\nexport type KptToastOptions = Partial<Omit<KptToast, 'id' | 'message'>>;\n\n/**\n * Serwis powiadomień (toastów). Wstrzyknij i wywołuj `show`/`success`/`error`/...;\n * umieść `<kpt-toast-container />` raz w aplikacji, aby je renderować.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptToastService {\n private readonly _toasts = signal<KptToast[]>([]);\n readonly toasts = this._toasts.asReadonly();\n private seq = 0;\n\n show(message: string, options: KptToastOptions = {}): number {\n const id = ++this.seq;\n const toast: KptToast = { id, message, variant: 'info', duration: 4000, ...options };\n this._toasts.update((list) => [...list, toast]);\n if (toast.duration > 0) {\n setTimeout(() => this.dismiss(id), toast.duration);\n }\n return id;\n }\n\n info(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'info' });\n }\n success(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'success' });\n }\n warning(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'warning' });\n }\n error(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'danger' });\n }\n\n dismiss(id: number): void {\n this._toasts.update((list) => list.filter((t) => t.id !== id));\n }\n clear(): void {\n this._toasts.set([]);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport type { KptAlertVariant } from '../alert/alert.component';\nimport { KptToastService } from './toast.service';\n\n/**\n * Kontener renderujący toasty z `KptToastService`. Umieść raz w aplikacji\n * (np. w komponencie głównym): `<kpt-toast-container />`.\n */\n@Component({\n selector: 'kpt-toast-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-toast-container\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toasts(); track toast.id) {\n <div class=\"kpt-toast\" [attr.data-variant]=\"toast.variant\" role=\"status\">\n <kpt-icon class=\"kpt-toast__icon\" [name]=\"icon(toast.variant)\" />\n <div class=\"kpt-toast__content\">\n @if (toast.title) {\n <div class=\"kpt-toast__title\">{{ toast.title }}</div>\n }\n <div class=\"kpt-toast__message\">{{ toast.message }}</div>\n </div>\n <button class=\"kpt-toast__close\" type=\"button\" (click)=\"dismiss(toast.id)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n </div>\n }\n </div>\n `,\n styleUrl: './toast-container.component.scss',\n host: { class: 'kpt-toast-container-host' },\n})\nexport class KptToastContainer {\n private readonly service = inject(KptToastService);\n protected readonly i18n = inject(KptI18n);\n protected readonly toasts = this.service.toasts;\n\n protected dismiss(id: number): void {\n this.service.dismiss(id);\n }\n protected icon(variant: KptAlertVariant): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n variant\n ] as KptIconName;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge, type KptBadgeVariant } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\n\n/** Awatar wiersza nagłówkowego — te same dane, które przyjmuje `kpt-avatar`. */\nexport interface KptMenuItemAvatar {\n src?: string;\n name?: string;\n icon?: string;\n}\n\nexport interface KptMenuItem<T = unknown> {\n label?: string;\n value?: T;\n icon?: string;\n /** Druga linia tekstu: e-mail, rola, opis akcji. */\n description?: string;\n /** Odznaka po prawej stronie pozycji (licznik lub krótka etykieta). */\n badge?: string | number;\n /** Wariant odznaki — domyślnie `primary`. */\n badgeVariant?: KptBadgeVariant;\n /** Awatar po lewej — typowo w wierszu nagłówka menu użytkownika. */\n avatar?: KptMenuItemAvatar;\n /**\n * Wiersz nagłówkowy: nieklikalny blok tekstu zamiast pozycji menu. Mieści dane zalogowanego\n * użytkownika (`avatar` + `label` + `description`) albo opis funkcji menu.\n */\n header?: boolean;\n disabled?: boolean;\n danger?: boolean;\n separator?: boolean;\n /** Pozycje podrzędne (menubar / megamenu). */\n items?: KptMenuItem<T>[];\n /** Adres odnośnika (menubar / megamenu). */\n url?: string;\n}\n\n/**\n * Menu rozwijane (dropdown) na CDK Overlay. Trigger przez projekcję, pozycje przez `items`.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <kpt-button variant=\"outline\">Opcje</kpt-button>\n * </kpt-menu>\n */\n@Component({\n selector: 'kpt-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <span class=\"kpt-menu__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-menu__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-menu__text\">\n @if (item.label) { <span class=\"kpt-menu__label\">{{ item.label }}</span> }\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menu__item\"\n role=\"menuitem\"\n [class.kpt-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-menu__text\">\n <span class=\"kpt-menu__label\">{{ item.label }}</span>\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge class=\"kpt-menu__badge\" [value]=\"item.badge\" [variant]=\"item.badgeVariant ?? 'primary'\" />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './menu.component.scss',\n host: { class: 'kpt-menu-host' },\n})\nexport class KptMenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, signal } from '@angular/core';\n\n/**\n * Popover — dowolna treść w dymku na CDK Overlay (bogatszy niż tooltip). Slot triggera:\n * atrybut `kptPopoverTrigger`; reszta treści trafia do panelu.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-popover>\n * <kpt-button kptPopoverTrigger variant=\"outline\">Szczegóły</kpt-button>\n * <div>Bogata treść popovera…</div>\n * </kpt-popover>\n */\n@Component({\n selector: 'kpt-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <span class=\"kpt-popover__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content select=\"[kptPopoverTrigger]\" />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-popover__panel\" role=\"dialog\">\n <ng-content />\n </div>\n </ng-template>\n `,\n styleUrl: './popover.component.scss',\n host: { class: 'kpt-popover-host' },\n})\nexport class KptPopover {\n readonly placement = input<'bottom' | 'top'>('bottom');\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 6 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -6 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole z podpowiedziami (autocomplete) na CDK Overlay, Signal Forms. Wartość = wpisany tekst.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-autocomplete [formField]=\"f.city\" [options]=\"cities\" placeholder=\"Miasto…\" />\n */\n@Component({\n selector: 'kpt-autocomplete',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <input\n class=\"kpt-autocomplete__input\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n type=\"text\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open() && filtered().length > 0\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n >\n <ul class=\"kpt-autocomplete__panel\" role=\"listbox\">\n @for (opt of filtered(); track opt; let i = $index) {\n <li\n class=\"kpt-autocomplete__option\"\n role=\"option\"\n [class.is-active]=\"i === activeIndex()\"\n (mousedown)=\"$event.preventDefault(); pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >{{ opt }}</li>\n }\n </ul>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n host: { class: 'kpt-autocomplete-host' },\n})\nexport class KptAutocomplete implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly options = input<string[]>([]);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly open = signal(false);\n protected readonly activeIndex = signal(-1);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly filtered = computed(() => {\n const q = this.value().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.toLowerCase().includes(q)) : opts;\n });\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n this.open.set(true);\n this.activeIndex.set(-1);\n }\n protected onFocus(): void {\n this.open.set(true);\n }\n protected onBlur(): void {\n this.open.set(false);\n this.touch.emit();\n }\n protected pick(opt: string): void {\n this.value.set(opt);\n this.open.set(false);\n }\n protected onKeydown(event: KeyboardEvent): void {\n const opts = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open.set(true);\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n const opt = opts[this.activeIndex()];\n if (opt) {\n event.preventDefault();\n this.pick(opt);\n }\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n/**\n * Panel wysuwany (drawer / off-canvas) sterowany sygnałem `open`. Niezależny od app-shell.\n *\n * @example\n * <kpt-drawer [(open)]=\"menuOpen\" position=\"right\" header=\"Filtry\">\n * Treść panelu…\n * </kpt-drawer>\n */\n@Component({\n selector: 'kpt-drawer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-drawer__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <aside\n class=\"kpt-drawer__panel\"\n [attr.data-position]=\"position()\"\n [class.is-open]=\"open()\"\n role=\"dialog\"\n aria-modal=\"true\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n >\n @if (header() || dismissible()) {\n <div class=\"kpt-drawer__header\">\n <span class=\"kpt-drawer__title\">{{ header() }}</span>\n @if (dismissible()) {\n <button type=\"button\" class=\"kpt-drawer__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-drawer__body\"><ng-content /></div>\n </aside>\n `,\n styleUrl: './drawer.component.scss',\n host: { class: 'kpt-drawer-host' },\n})\nexport class KptDrawer {\n readonly open = model(false);\n readonly position = input<KptDrawerPosition>('left');\n readonly header = input('');\n readonly dismissible = input(true, { transform: booleanAttribute });\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.\n *\n * @example\n * <kpt-context-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <div class=\"obszar\">Kliknij prawym przyciskiem</div>\n * </kpt-context-menu>\n */\n@Component({\n selector: 'kpt-context-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-context-menu__area\" (contextmenu)=\"onContext($event)\">\n <ng-content />\n </div>\n\n @if (open()) {\n <div class=\"kpt-context-menu__backdrop\" (click)=\"close()\" (contextmenu)=\"$event.preventDefault(); close()\"></div>\n <div class=\"kpt-context-menu__panel\" role=\"menu\" [style.left.px]=\"x()\" [style.top.px]=\"y()\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-context-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-context-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-context-menu__text\">\n @if (item.label) { <span class=\"kpt-context-menu__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-context-menu__item\"\n role=\"menuitem\"\n [class.kpt-context-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-context-menu__text\">\n <span class=\"kpt-context-menu__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-context-menu__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n }\n `,\n styleUrl: './context-menu.component.scss',\n host: { class: 'kpt-context-menu-host' },\n})\nexport class KptContextMenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly x = signal(0);\n protected readonly y = signal(0);\n\n protected onContext(event: MouseEvent): void {\n event.preventDefault();\n this.x.set(event.clientX);\n this.y.set(event.clientY);\n this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.\n * Pod-menu renderowane przez CDK Overlay (doczepiane do `body`), więc nie są przycinane\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menubar [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-menubar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-menubar\" role=\"menubar\">\n @for (item of items(); track $index; let i = $index) {\n <div class=\"kpt-menubar__group\">\n <button\n type=\"button\"\n class=\"kpt-menubar__top\"\n role=\"menuitem\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [class.is-open]=\"openIndex() === i\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(i, item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n @if (item.items?.length) { <kpt-icon name=\"chevron-down\" class=\"kpt-menubar__caret\" /> }\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() === i && !!item.items?.length\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-menubar__dropdown\" role=\"menu\">\n @for (sub of item.items; track $index) {\n @if (sub.separator) {\n <div class=\"kpt-menubar__separator\" role=\"separator\"></div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menubar__item\"\n role=\"menuitem\"\n [class.kpt-menubar__item--danger]=\"sub.danger\"\n [disabled]=\"sub.disabled\"\n (click)=\"pick(sub)\"\n >\n @if (sub.icon) { <kpt-icon [name]=\"sub.icon\" /> }\n <span>{{ sub.label }}</span>\n </button>\n }\n }\n </div>\n </ng-template>\n </div>\n }\n </nav>\n `,\n styleUrl: './menubar.component.scss',\n host: { class: 'kpt-menubar-host' },\n})\nexport class KptMenubar<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(i: number, item: KptMenuItem<T>): void {\n if (item.disabled) return;\n if (item.items?.length) {\n this.openIndex.update((cur) => (cur === i ? null : i));\n } else {\n this.selected.emit(item);\n this.closeAll();\n }\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.\n * Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).\n * Panel renderowany przez CDK Overlay (doczepiony do `body`), więc nie jest przycinany\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-megamenu [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-megamenu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-megamenu\" role=\"menubar\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-megamenu__top\"\n role=\"menuitem\"\n [class.is-open]=\"openIndex() === i\"\n (click)=\"toggle(i)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-megamenu__caret\" />\n </button>\n }\n </nav>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() !== null\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-megamenu__panel\" role=\"menu\">\n @for (col of activeColumns(); track $index) {\n <div class=\"kpt-megamenu__column\">\n @if (col.label) { <div class=\"kpt-megamenu__col-title\">{{ col.label }}</div> }\n @for (link of col.items ?? []; track $index) {\n <button type=\"button\" class=\"kpt-megamenu__link\" [disabled]=\"link.disabled\" (click)=\"pick(link)\">\n @if (link.icon) { <kpt-icon [name]=\"link.icon\" /> }\n <span>{{ link.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n `,\n styleUrl: './megamenu.component.scss',\n host: { class: 'kpt-megamenu-host' },\n})\nexport class KptMegamenu<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected activeColumns(): KptMenuItem<T>[] {\n const i = this.openIndex();\n return i === null ? [] : this.items()[i]?.items ?? [];\n }\n\n protected toggle(i: number): void {\n this.openIndex.update((cur) => (cur === i ? null : i));\n }\n protected pick(link: KptMenuItem<T>): void {\n if (link.disabled) return;\n this.selected.emit(link);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface KptConfirmOptions {\n message: string;\n header?: string;\n acceptLabel?: string;\n rejectLabel?: string;\n /** Wariant przycisku akceptacji. */\n variant?: 'filled' | 'danger';\n icon?: string;\n}\n\nexport interface KptConfirmRequest extends KptConfirmOptions {\n id: number;\n resolve: (accepted: boolean) => void;\n}\n\n/**\n * Serwis potwierdzeń. Wstrzyknij i wywołaj `confirm(...)` (zwraca Promise<boolean>);\n * umieść `<kpt-confirm-container />` raz w aplikacji.\n *\n * @example\n * if (await confirm.confirm({ message: 'Usunąć rekord?', variant: 'danger' })) { ... }\n */\n@Injectable({ providedIn: 'root' })\nexport class KptConfirmService {\n private readonly _current = signal<KptConfirmRequest | null>(null);\n readonly current = this._current.asReadonly();\n private seq = 0;\n\n confirm(options: KptConfirmOptions): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this._current.set({ id: ++this.seq, ...options, resolve });\n });\n }\n\n accept(): void {\n this._current()?.resolve(true);\n this._current.set(null);\n }\n reject(): void {\n this._current()?.resolve(false);\n this._current.set(null);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDialog } from '../dialog/dialog.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptConfirmService } from './confirm.service';\n\n/**\n * Kontener potwierdzeń — renderuje aktywne żądanie z `KptConfirmService` na `kpt-dialog`.\n * Umieść raz w aplikacji (np. obok `<kpt-toast-container />`).\n */\n@Component({\n selector: 'kpt-confirm-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptDialog, KptButton, KptIcon],\n template: `\n <kpt-dialog [open]=\"isOpen()\" (openChange)=\"onOpenChange($event)\" [header]=\"req()?.header ?? i18n.t('confirm.header')\">\n <div class=\"kpt-confirm__body\">\n @if (req()?.icon) { <kpt-icon [name]=\"req()!.icon!\" class=\"kpt-confirm__icon\" [attr.data-variant]=\"req()?.variant ?? 'filled'\" /> }\n <p class=\"kpt-confirm__message\">{{ req()?.message }}</p>\n </div>\n <div kptDialogFooter>\n <kpt-button variant=\"text\" (click)=\"service.reject()\">{{ req()?.rejectLabel ?? i18n.t('confirm.reject') }}</kpt-button>\n <kpt-button [variant]=\"req()?.variant ?? 'filled'\" (click)=\"service.accept()\">{{ req()?.acceptLabel ?? i18n.t('confirm.accept') }}</kpt-button>\n </div>\n </kpt-dialog>\n `,\n styleUrl: './confirm-container.component.scss',\n host: { class: 'kpt-confirm-container-host' },\n})\nexport class KptConfirmContainer {\n protected readonly i18n = inject(KptI18n);\n protected readonly service = inject(KptConfirmService);\n protected readonly req = this.service.current;\n protected readonly isOpen = computed(() => this.req() !== null);\n\n protected onOpenChange(open: boolean): void {\n if (!open) this.service.reject();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Arkusz wysuwany z dołu ekranu (bottom sheet). Sterowany sygnałem `open`.\n *\n * @example\n * <kpt-bottom-sheet [(open)]=\"sheetOpen\" header=\"Udostępnij\">\n * Treść arkusza…\n * </kpt-bottom-sheet>\n */\n@Component({\n selector: 'kpt-bottom-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-bottom-sheet__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <div class=\"kpt-bottom-sheet__panel\" [class.is-open]=\"open()\" role=\"dialog\" aria-modal=\"true\" (keydown.escape)=\"close()\" tabindex=\"-1\">\n <button type=\"button\" class=\"kpt-bottom-sheet__handle\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"></button>\n @if (header()) { <div class=\"kpt-bottom-sheet__header\">{{ header() }}</div> }\n <div class=\"kpt-bottom-sheet__body\"><ng-content /></div>\n </div>\n `,\n styleUrl: './bottom-sheet.component.scss',\n host: { class: 'kpt-bottom-sheet-host' },\n})\nexport class KptBottomSheet {\n readonly open = model(false);\n readonly header = input('');\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input, output, signal } from '@angular/core';\nimport { KptFab } from '../fab/fab.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\nexport type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';\n\n/**\n * Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.\n *\n * @example\n * <kpt-speed-dial [items]=\"actions\" direction=\"up\" (selected)=\"onAction($event)\" />\n */\n@Component({\n selector: 'kpt-speed-dial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptFab, KptIcon],\n template: `\n <div class=\"kpt-speed-dial\" [attr.data-direction]=\"direction()\" [class.is-open]=\"open()\">\n <div class=\"kpt-speed-dial__actions\">\n @for (item of items(); track $index) {\n <button type=\"button\" class=\"kpt-speed-dial__action\" [disabled]=\"item.disabled\" (click)=\"pick(item)\" [attr.aria-label]=\"item.label\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n @if (item.label) { <span class=\"kpt-speed-dial__label\">{{ item.label }}</span> }\n </button>\n }\n </div>\n <kpt-fab [ariaLabel]=\"open() ? i18n.t('common.close') : effectiveAriaLabel()\" (click)=\"toggle()\">\n <span class=\"kpt-speed-dial__trigger-icon\"><kpt-icon [name]=\"icon()\" /></span>\n </kpt-fab>\n </div>\n @if (open()) { <div class=\"kpt-speed-dial__backdrop\" (click)=\"close()\"></div> }\n `,\n styleUrl: './speed-dial.component.scss',\n host: { class: 'kpt-speed-dial-host' },\n})\nexport class KptSpeedDial<T = unknown> {\n readonly items = input<KptMenuItem<T>[]>([]);\n readonly direction = input<KptSpeedDialDirection>('up');\n readonly icon = input('plus');\n /** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */\n readonly ariaLabel = input<string>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.t('speedDial.actions'));\n protected readonly open = signal(false);\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","/*\n * Public API — @konce-pt/angular\n * Komponenty Koncept UI dla Angular 22 (sygnały, Signal Forms).\n */\nexport { KptButton } from './lib/button/button.component';\nexport type { KptButtonVariant, KptButtonSize } from './lib/button/button.component';\nexport { KptIconButton } from './lib/icon-button/icon-button.component';\nexport { KptButtonGroup } from './lib/button-group/button-group.component';\nexport { KptFab } from './lib/fab/fab.component';\nexport { KptSplitButton } from './lib/split-button/split-button.component';\n\nexport { KptIcon } from './lib/icon/icon.component';\nexport { KptIconRegistry, renderKptIconSvg } from './lib/icon/icon-registry';\nexport type { KptIconName } from './lib/icon/icons';\n\n// Breakpointy\nexport { KptBreakpointObserver } from './lib/breakpoint/breakpoint.service';\nexport { KPT_BREAKPOINTS } from './lib/breakpoint/breakpoints.generated';\nexport type { KptBreakpoint } from './lib/breakpoint/breakpoints.generated';\n\n// i18n\nexport { provideKptI18n } from './lib/i18n/i18n.provider';\nexport { KptI18n } from './lib/i18n/i18n.service';\nexport type { KptI18nConfig, DeepPartial } from './lib/i18n/i18n.token';\nexport { KPT_I18N_CONFIG } from './lib/i18n/i18n.token';\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from './lib/i18n/messages';\nexport type { KptMessages, KptLocale } from './lib/i18n/messages';\n\n// Wyświetlanie / statusy\nexport { KptBadge } from './lib/badge/badge.component';\nexport type { KptBadgeSize, KptBadgeVariant } from './lib/badge/badge.component';\nexport { KptChip } from './lib/chip/chip.component';\nexport type { KptChipVariant } from './lib/chip/chip.component';\nexport { KptAvatar } from './lib/avatar/avatar.component';\nexport type { KptAvatarSize, KptAvatarShape } from './lib/avatar/avatar.component';\nexport { KptSpinner } from './lib/spinner/spinner.component';\nexport { KptProgress } from './lib/progress/progress.component';\nexport type { KptProgressVariant } from './lib/progress/progress.component';\nexport { KptSkeleton } from './lib/skeleton/skeleton.component';\nexport type { KptSkeletonVariant } from './lib/skeleton/skeleton.component';\n\nexport { KptFormField } from './lib/form-field/form-field.component';\nexport { KPT_FORM_FIELD_CONTROL } from './lib/form-field/form-field-control';\nexport type { KptFormFieldControl } from './lib/form-field/form-field-control';\n\nexport { KptInput } from './lib/input/input.component';\nexport type { KptInputType } from './lib/input/input.component';\n\nexport { KptCheckbox } from './lib/checkbox/checkbox.component';\nexport { KptSwitch } from './lib/switch/switch.component';\nexport { KptSwitchGroup } from './lib/switch-group/switch-group.component';\nexport { KptRadioGroup } from './lib/radio-group/radio-group.component';\nexport { KptSelect } from './lib/select/select.component';\nexport { KptDatepicker } from './lib/datepicker/datepicker.component';\nexport type { KptDatepickerMode, KptDatepickerView } from './lib/datepicker/datepicker.component';\nexport { KptClock } from './lib/datepicker/clock.component';\nexport { KptTextarea } from './lib/textarea/textarea.component';\nexport { KptRichText } from './lib/rich-text/rich-text.component';\nexport type { KptRichTool, KptRichToolbar } from './lib/rich-text/rich-text.component';\nexport { KptSlider, type KptSliderValue } from './lib/slider/slider.component';\nexport { KptRating } from './lib/rating/rating.component';\nexport { KptFileUpload } from './lib/file-upload/file-upload.component';\nexport { KptColorPicker } from './lib/color-picker/color-picker.component';\nexport { KptDateRange } from './lib/date-range/date-range.component';\nexport type { KptDateRangeValue } from './lib/date-range/date-range.component';\nexport { KptInputNumber } from './lib/input-number/input-number.component';\nexport { KptPassword } from './lib/password/password.component';\nexport { KptInputOtp } from './lib/input-otp/input-otp.component';\nexport { KptChipsInput } from './lib/chips-input/chips-input.component';\nexport { KptInputMask } from './lib/input-mask/input-mask.component';\nexport { KptListbox } from './lib/listbox/listbox.component';\nexport { KptKnob } from './lib/knob/knob.component';\nexport type { KptOption } from './lib/shared/types';\n\n// Layout\nexport { KptCard } from './lib/card/card.component';\nexport type { KptCardVariant } from './lib/card/card.component';\nexport { KptDivider } from './lib/divider/divider.component';\nexport type { KptDividerOrientation } from './lib/divider/divider.component';\nexport { KptToolbar } from './lib/toolbar/toolbar.component';\nexport { KptSidenav } from './lib/sidenav/sidenav.component';\nexport { KptAppShell } from './lib/app-shell/app-shell.component';\nexport type { KptSidenavMode } from './lib/app-shell/app-shell.component';\nexport { KptShellNavToggle } from './lib/app-shell/shell-nav-toggle.directive';\nexport { KptPanel } from './lib/panel/panel.component';\nexport { KptFieldset } from './lib/fieldset/fieldset.component';\nexport { KptSplitter } from './lib/splitter/splitter.component';\nexport type { KptSplitterOrientation } from './lib/splitter/splitter.component';\nexport { KptScrollTop } from './lib/scroll-top/scroll-top.component';\nexport { KptImage } from './lib/image/image.component';\nexport { KptMeterGroup } from './lib/meter-group/meter-group.component';\nexport type { KptMeterItem } from './lib/meter-group/meter-group.component';\nexport { KptAvatarGroup } from './lib/avatar-group/avatar-group.component';\nexport type { KptAvatarItem } from './lib/avatar-group/avatar-group.component';\nexport { KptEmpty } from './lib/empty/empty.component';\n\n// Nawigacja\nexport { KptTabs } from './lib/tabs/tabs.component';\nexport { KptTab } from './lib/tabs/tab.component';\nexport { KptAccordion } from './lib/accordion/accordion.component';\nexport { KptAccordionPanel } from './lib/accordion/accordion-panel.component';\nexport { KptBreadcrumb } from './lib/breadcrumb/breadcrumb.component';\nexport type { KptBreadcrumbItem } from './lib/breadcrumb/breadcrumb.component';\nexport { KptStepper } from './lib/stepper/stepper.component';\nexport { KptStep } from './lib/stepper/step.component';\n\n// Dane\nexport { KptPaginator } from './lib/paginator/paginator.component';\nexport { KptDataTable } from './lib/data-table/data-table.component';\nexport type {\n KptColumn,\n KptTableLazyState,\n KptColumnFilter,\n KptColumnFilterType,\n KptColumnEdit,\n KptColumnEditType,\n KptCellEditEvent,\n KptColumnSummary,\n KptSummaryFn,\n} from './lib/data-table/data-table.component';\nexport { KptCellDef } from './lib/data-table/cell.directive';\nexport { KptCellEditDef } from './lib/data-table/cell-edit.directive';\nexport { KptRowDetailDef } from './lib/data-table/row-detail.directive';\nexport { KptTree } from './lib/tree/tree.component';\nexport type { KptTreeNode } from './lib/tree/tree.component';\nexport { KptTimeline } from './lib/timeline/timeline.component';\nexport type { KptTimelineItem } from './lib/timeline/timeline.component';\nexport { KptCarousel } from './lib/carousel/carousel.component';\nexport { KptDataView } from './lib/data-view/data-view.component';\nexport { KptPickList } from './lib/pick-list/pick-list.component';\nexport { KptOrderList } from './lib/order-list/order-list.component';\nexport { KptGalleria } from './lib/galleria/galleria.component';\nexport type { KptGalleriaItem } from './lib/galleria/galleria.component';\n\n// Feedback\nexport { KptAlert } from './lib/alert/alert.component';\nexport type { KptAlertVariant } from './lib/alert/alert.component';\nexport { KptDialog } from './lib/dialog/dialog.component';\nexport { KptToastService } from './lib/toast/toast.service';\nexport type { KptToast, KptToastOptions } from './lib/toast/toast.service';\nexport { KptToastContainer } from './lib/toast/toast-container.component';\nexport { KptTooltip } from './lib/tooltip/tooltip.directive';\nexport type { KptTooltipPosition } from './lib/tooltip/tooltip.directive';\nexport { KptMenu } from './lib/menu/menu.component';\nexport type { KptMenuItem } from './lib/menu/menu.component';\nexport { KptPopover } from './lib/popover/popover.component';\nexport { KptAutocomplete } from './lib/autocomplete/autocomplete.component';\nexport { KptDrawer } from './lib/drawer/drawer.component';\nexport type { KptDrawerPosition } from './lib/drawer/drawer.component';\nexport { KptContextMenu } from './lib/context-menu/context-menu.component';\nexport { KptMenubar } from './lib/menubar/menubar.component';\nexport { KptMegamenu } from './lib/megamenu/megamenu.component';\nexport { KptConfirmService } from './lib/confirm/confirm.service';\nexport type { KptConfirmOptions, KptConfirmRequest } from './lib/confirm/confirm.service';\nexport { KptConfirmContainer } from './lib/confirm/confirm-container.component';\nexport { KptBottomSheet } from './lib/bottom-sheet/bottom-sheet.component';\nexport { KptSpeedDial } from './lib/speed-dial/speed-dial.component';\nexport type { KptSpeedDialDirection } from './lib/speed-dial/speed-dial.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_forTrack0","pad","_forTrack1","toIso","_c1","_c2"],"mappings":";;;;;;;IAUI,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4D;;ACEhE;;;;;;;AAOG;MAYU,SAAS,CAAA;AAXtB,IAAA,WAAA,GAAA;;QAaW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,QAAQ;oFAAC;;QAE3C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;;QAEjC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ;iFAAC;;QAErD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAExD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAEvD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/C,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;uFAAC;AAClF,IAAA;0GAfY,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAT,YAAA,EAAA,CAAA,WAAA,CAAA,uBAAA,EAAA,eAAW,CAAF;;;YD/BtB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQC;YACC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiB;YAGjB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAkC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAClD,YADkD,oBAAO,EAChD;;YAPP,EAAA,CAAA,WAAA,CAAA,qBAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAAuC;AACvC,YALA,oCAAe,CAAA,UAAA,EAAA,GAAA,CAAA,UAAA,EAAA,CAKU;;YAEzB,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;iFCoBU,SAAS,EAAA,CAAA;cAXrB,SAAS;2BACE,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAG/B;AACJ,oBAAA,KAAK,EAAE,iBAAiB;AACxB,oBAAA,+BAA+B,EAAE,aAAa;AAC/C,iBAAA,EAAA,QAAA,EAAA,qaAAA,EAAA,MAAA,EAAA,CAAA,+4FAAA,CAAA,EAAA;;kFAEU,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICLd,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiE;;;IAEjE,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;;AAzBtB;;;;;;AAMG;MA0BU,aAAa,CAAA;AAzB1B,IAAA,WAAA,GAAA;QA0BW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,MAAM;oFAAC;QACzC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;QACjC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,OAAO;kFAAC;QAC1C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ;iFAAC;QACrD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAEvD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ;sFAAU;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;uFAAC;AAClF,IAAA;8GAXY,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,0BAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YApBtB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CASC;AAGG,YAFF,gFAAiB,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,CAER;YAGX,EAAA,CAAA,eAAA,EAAS;;AATP,YAJA,oCAAe,CAAA,UAAA,EAAA,GAAA,CAAA,UAAA,EAAA,CAIU;;YAIzB,EAAA,CAAA,SAAA,EAIC;YAJD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAIC;;;iFAMM,aAAa,EAAA,CAAA;cAzBzB,SAAS;2BACE,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,MAAA,EAAA,CAAA,8zDAAA,CAAA,EAAA;;kFAE5B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICTlB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAOC;AADC,IAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IACtB,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,eAAA,EAAS;;;;IAJvB,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,KAAA,KAAA,MAAA,CAAA,KAAA,EAAA,CAAyC;IACzC,EAAA,CAAA,aAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,CAAuC;;IAGxC,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;;AArBxB;;;;;;AAMG;MAsBU,cAAc,CAAA;AArB3B,IAAA,WAAA,GAAA;QAsBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE;oFAAC;QACnC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAI,SAAc;kFAAC;QAChC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,IAAI;iFAAC;QACtC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAOhC,IAAA;AALW,IAAA,MAAM,CAAC,GAAiB,EAAA;AAChC,QAAA,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;+GAbW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAhBvB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqE;YACnE,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAAC,YAAA,CASC;YACH,EAAA,CAAA,eAAA,EAAM;;;YAVJ,EAAA,CAAA,SAAA,EASC;AATD,YAAA,EAAA,CAAA,UAAA,CAAA,aAAS,CASR;;;iFAMM,cAAc,EAAA,CAAA;cArB1B,SAAS;2BACE,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,gvCAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ACtC3B;;;;;;AAMG;MAmBU,MAAM,CAAA;AAlBnB,IAAA,WAAA,GAAA;QAmBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,QAAQ;oFAAC;QAC7C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;QACjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ;iFAAC;;QAErD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE;sFAAC;AAC/B,IAAA;uGARY,MAAM,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAN,MAAM,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,EAAA,kBAAA,EAAAD,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAbf,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAAA,EAAA,CAAA,eAAA,EAAS;;YAHtB,EAAA,CAAA,WAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAsC;AACtC,YAJA,oCAAe,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAIQ;;;;iFAOhB,MAAM,EAAA,CAAA;cAlBlB,SAAS;2BACE,SAAS,EAAA,eAAA,EACF,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAA,MAAA,EAAA,CAAA,6hDAAA,CAAA,EAAA;;kFAEpB,MAAM,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACvBZ,MAAM,SAAS,GAAgC;AACpD,IAAA,MAAM,EAAE,wEAAwE;AAChF,IAAA,GAAG,EAAE,mDAAmD;AACxD,IAAA,YAAY,EAAE,6BAA6B;AAC3C,IAAA,cAAc,EAAE,4BAA4B;AAC5C,IAAA,cAAc,EAAE,6BAA6B;AAC7C,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,OAAO,EAAE,+BAA+B;AACxC,IAAA,QAAQ,EAAE,6EAA6E;AACvF,IAAA,eAAe,EAAE,kSAAkS;AACnT,IAAA,MAAM,EAAE,oGAAoG;AAC5G,IAAA,gBAAgB,EAAE,oMAAoM;AACtN,IAAA,cAAc,EAAE,+EAA+E;AAC/F,IAAA,UAAU,EAAE,qFAAqF;AACjG,IAAA,UAAU,EAAE,wMAAwM;AACpN,IAAA,MAAM,EAAE,0RAA0R;AAClS,IAAA,MAAM,EAAE,wLAAwL;AAChM,IAAA,MAAM,EAAE,iFAAiF;AACzF,IAAA,MAAM,EAAE,6FAA6F;AACrG,IAAA,QAAQ,EAAE,wEAAwE;AAClF,IAAA,WAAW,EAAE,6DAA6D;AAC1E,IAAA,eAAe,EAAE,gIAAgI;AACjJ,IAAA,MAAM,EAAE,kJAAkJ;AAC1J,IAAA,cAAc,EAAE,2JAA2J;AAC3K,IAAA,kBAAkB,EAAE,6GAA6G;AACjI,IAAA,MAAM,EAAE,qIAAqI;AAC7I,IAAA,MAAM,EAAE,iDAAiD;AACzD,IAAA,QAAQ,EAAE,4GAA4G;AACtH,IAAA,eAAe,EAAE,mJAAmJ;AACpK,IAAA,OAAO,EAAE,mOAAmO;AAC5O,IAAA,OAAO,EAAE,0LAA0L;AACnM,IAAA,QAAQ,EAAE,iGAAiG;AAC3G,IAAA,KAAK,EAAE,iJAAiJ;AACxJ,IAAA,SAAS,EAAE,4RAA4R;AACvS,IAAA,OAAO,EAAE,yBAAyB;AAClC,IAAA,UAAU,EAAE,2EAA2E;AACvF,IAAA,YAAY,EAAE,yEAAyE;AACvF,IAAA,SAAS,EAAE,2HAA2H;AACtI,IAAA,aAAa,EAAE,oGAAoG;AACnH,IAAA,OAAO,EAAE,mHAAmH;AAC5H,IAAA,SAAS,EAAE,+IAA+I;AAC1J,IAAA,OAAO,EAAE,kLAAkL;AAC3L,IAAA,OAAO,EAAE,4EAA4E;AACrF,IAAA,YAAY,EAAE,wEAAwE;AACtF,IAAA,cAAc,EAAE,uEAAuE;AACvF,IAAA,aAAa,EAAE,yEAAyE;AACxF,IAAA,iBAAiB,EAAE,wEAAwE;AAC3F,IAAA,SAAS,EAAE,gRAAgR;AAC3R,IAAA,WAAW,EAAE,qJAAqJ;AAClK,IAAA,WAAW,EAAE,yLAAyL;AACtM,IAAA,gBAAgB,EAAE,mOAAmO;AACrP,IAAA,OAAO,EAAE,0IAA0I;AACnJ,IAAA,MAAM,EAAE,yHAAyH;AACjI,IAAA,OAAO,EAAE,gOAAgO;AACzO,IAAA,eAAe,EAAE,4HAA4H;AAC7I,IAAA,WAAW,EAAE,6IAA6I;AAC1J,IAAA,wBAAwB,EAAE,+RAA+R;CAC1T;;AC1DD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;AAC/B,IAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;AACxE,CAAA,CAAC;AACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC/F,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW;AAC9F,CAAA,CAAC;AAEF;;;;;;;AAOG;AACH,SAAS,mBAAmB,CAAC,GAAW,EAAA;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AAC9C,IAAA,GAAG,CAAC,SAAS,GAAG,CAAA,KAAA,EAAQ,GAAG,QAAQ;AACnC,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB;AAC1C,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AACpB,IAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AACvD,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE;YACnD,EAAE,CAAC,MAAM,EAAE;YACX;QACF;AACA,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAAE,gBAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACpF;IACF;IACA,OAAO,IAAI,CAAC,SAAS;AACvB;AAEA;;;;AAIG;MAEU,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;QAEmB,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,CAAiB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,CAAC;qFAAC;;AAE5B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAyB9C,IAAA;AAvBC;;;;;;;AAOG;AACH,IAAA,QAAQ,CAAC,KAA6B,EAAA;AACpC,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC;;AAGA,IAAA,GAAG,CAAC,IAAY,EAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B;AAEA,IAAA,GAAG,CAAC,IAAY,EAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B;gHA5BW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAf,eAAe,EAAA,OAAA,EAAf,eAAe,CAAA,IAAA,EAAA,UAAA,EADF,MAAM,EAAA,CAAA,CAAA;;iFACnB,eAAe,EAAA,CAAA;cAD3B,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AAgClC;;;;;;AAMG;SACa,gBAAgB,CAAC,KAAyB,EAAE,QAAQ,GAAG,UAAU,EAAA;AAC/E,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;IACrB,QACE,CAAA,YAAA,EAAe,QAAQ,CAAA,uDAAA,CAAyD;QAChF,mEAAmE;QACnE,KAAK;AACL,QAAA,QAAQ;AAEZ;;AC3FA;;;;;;;;;AASG;MAaU,OAAO,CAAA;AASlB,IAAA,WAAA,GAAA;;QAPS,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAU;;QAE/B,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE;iFAAC;AAEhB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;QAGjD,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;;YAExB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACtF,QAAA,CAAC,CAAC;IACJ;wGAfW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAAP,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,EAAM,IAAI,IACpB,CADiB;;;iFAAP,OAAO,EAAA,CAAA;cAZnB,SAAS;2BACE,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,EAAE,EAAA,IAAA,EAEN;AACJ,oBAAA,KAAK,EAAE,eAAe;AACtB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,mBAAmB,EAAE,gBAAgB;AACtC,iBAAA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA;;kFAEU,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICSZ,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkE;;;AAAvB,IAAd,oDAAa,CAAA,KAAA,EAAA,MAAA,CAAA,IAAA,EAAA,IAAA,EAAA,CAAqB;;;IAE/D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAgB;;;IAEtE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA6B;;;IAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CAAgB;;AAhClC;;;;;;;;;;;;AAYG;MA2BU,SAAS,CAAA;AA1BtB,IAAA,WAAA,GAAA;QA2BW,IAAA,CAAA,GAAG,GAAG,KAAK,CAAgB,IAAI;gFAAC;QAChC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE;iFAAC;QACxB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;QACjC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;QACjC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,QAAQ;kFAAC;QAE7B,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MACrC,IAAI,CAAC,IAAI;AACN,aAAA,IAAI;aACJ,KAAK,CAAC,KAAK;AACX,aAAA,KAAK,CAAC,CAAC,EAAE,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;aACpC,IAAI,CAAC,EAAE,CAAC;qFACZ;AACF,IAAA;0GAfY,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YApBlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAOC;YACC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAa,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAEQ,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAEA;YAGvB,EAAA,CAAA,YAAA,EAAO;;;YAPL,EAAA,CAAA,SAAA,EAMC;YAND,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,GAAA,EAAA,GAAA,CAAA,GAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;4BAhBK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,2yBAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAsBN,SAAS,EAAA,CAAA;cA1BrB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,uvBAAA,CAAA,EAAA;;kFAEvB,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ACxCtB;;;;;;;;AAQG;MAkBU,QAAQ,CAAA;AAjBrB,IAAA,WAAA,GAAA;QAkBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAyB,IAAI;kFAAC;QAC3C,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkB,SAAS;oFAAC;;QAE3C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,IAAI;iFAAC;QAChC,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,KAAK,2EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACnD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,EAAE;gFAAC;AAEL,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AAAE,gBAAA,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG;YACpE,OAAO,CAAC,IAAI,EAAE;QAChB,CAAC;oFAAC;AACH,IAAA;yGAdY,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAZjB,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YACd,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAMC;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA4B;YAAA,EAAA,CAAA,eAAA,EAAO;;YAFlC,EAAA,CAAA,SAAA,EAAsC;AACtC,YADA,mDAAsC,CAAA,gBAAA,EAAA,GAAA,CAAA,GAAA,EAAA,CACR;;YAC/B,EAAA,CAAA,SAAA,EAA4B;YAA5B,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,CAAA,OAAA,EAAA,CAA4B;;;iFAKpB,QAAQ,EAAA,CAAA;cAjBpB,SAAS;2BACE,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;AAST,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,MAAA,EAAA,CAAA,g8CAAA,CAAA,EAAA;;kFAEtB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACXrB;MACa,eAAe,GAAG,IAAI,cAAc,CAAgB,iBAAiB;;ACrBlF;;;;;;;;;;AAUG;AA6TI,MAAM,eAAe,GAAgB;AAC1C,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,GAAG,EAAE,KAAK;AACX,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,KAAK,EAAE,0BAA0B;AACjC,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,WAAW;AACtB,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,UAAU,EAAE,QAAQ;AACrB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,UAAU;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,aAAa,EAAE,gBAAgB;AAChC,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,QAAQ,EAAE,uBAAuB;AACjC,QAAA,cAAc,EAAE,wBAAwB;AACxC,QAAA,mBAAmB,EAAE,sBAAsB;AAC3C,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,OAAO,EAAE,4BAA4B;AACrC,QAAA,YAAY,EAAE,yBAAyB;AACvC,QAAA,aAAa,EAAE,qBAAqB;AACpC,QAAA,gBAAgB,EAAE,yBAAyB;AAC3C,QAAA,eAAe,EAAE,iCAAiC;AAClD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,GAAG,EAAE;AACH,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,eAAe,EAAE,wBAAwB;AACzC,YAAA,OAAO,EAAE,UAAU;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,KAAK,EAAE,kBAAkB;AACzB,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,SAAS,EAAE,kCAAkC;AAC7C,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,qBAAqB;AAC7B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,YAAY,EAAE,8BAA8B;AAC5C,YAAA,UAAU,EAAE,oDAAoD;AAChE,YAAA,aAAa,EAAE,0CAA0C;AACzD,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,UAAU,EAAE,4BAA4B;AACxC,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,gBAAgB,EAAE,eAAe;AACjC,YAAA,aAAa,EAAE,oBAAoB;AACnC,YAAA,gBAAgB,EAAE,kBAAkB;AACpC,YAAA,eAAe,EAAE,oDAAoD;AACtE,SAAA;AACF,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,KAAK,EAAE,OAAO;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,QAAQ;AACjB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE,2CAA2C;AACjD,QAAA,MAAM,EAAE,QAAQ;AACjB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,WAAW,EAAE,sBAAsB;AACpC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,YAAY,EAAE,gBAAgB;AAC9B,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,WAAW,EAAE,eAAe;AAC7B,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,SAAS,EAAE,UAAU;AACtB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC5D,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,cAAc;AACrB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,MAAM,EAAE,mBAAmB;AAC5B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,gBAAgB,EAAE,mBAAmB;AACrC,QAAA,UAAU,EAAE,iBAAiB;AAC9B,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,KAAK,EAAE,YAAY;AACpB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,EAAE,EAAE,eAAe;AACnB,QAAA,EAAE,EAAE,eAAe;AACnB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,WAAW,EAAE,cAAc;AAC5B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,QAAQ;AACtB,SAAA;AACF,KAAA;;AAGI,MAAM,eAAe,GAAgB;AAC1C,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,GAAG,EAAE,WAAW;AACjB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,QAAQ,EAAE,iBAAiB;AAC5B,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,UAAU,EAAE,MAAM;AACnB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,cAAc;AACtB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,KAAK,EAAE,mBAAmB;AAC3B,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,6BAA6B;AACpC,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,aAAa,EAAE,YAAY;AAC5B,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,QAAQ,EAAE,6BAA6B;AACvC,QAAA,cAAc,EAAE,qCAAqC;AACrD,QAAA,mBAAmB,EAAE,uBAAuB;AAC5C,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,OAAO,EAAE,2BAA2B;AACpC,QAAA,YAAY,EAAE,0BAA0B;AACxC,QAAA,aAAa,EAAE,8BAA8B;AAC7C,QAAA,gBAAgB,EAAE,gBAAgB;AAClC,QAAA,eAAe,EAAE,uCAAuC;AACxD,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,GAAG,EAAE;AACH,YAAA,YAAY,EAAE,sBAAsB;AACpC,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,SAAS,EAAE,kBAAkB;AAC7B,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,YAAY,EAAE,qBAAqB;AACnC,YAAA,eAAe,EAAE,mBAAmB;AACpC,YAAA,OAAO,EAAE,cAAc;AACxB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,SAAS,EAAE,wBAAwB;AACnC,YAAA,SAAS,EAAE,wCAAwC;AACnD,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,sBAAsB;AAC9B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,YAAY,EAAE,6BAA6B;AAC3C,YAAA,UAAU,EAAE,sDAAsD;AAClE,YAAA,aAAa,EAAE,kCAAkC;AACjD,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,UAAU,EAAE,0BAA0B;AACtC,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,gBAAgB,EAAE,6BAA6B;AAC/C,YAAA,aAAa,EAAE,uBAAuB;AACtC,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,eAAe,EAAE,iEAAiE;AACnF,SAAA;AACF,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,GAAG,EAAE,WAAW;AAChB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,KAAK,EAAE,OAAO;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,QAAQ;AACjB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE,sDAAsD;AAC5D,QAAA,MAAM,EAAE,MAAM;AACf,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,WAAW,EAAE,yBAAyB;AACvC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,MAAM,EAAE,kBAAkB;AAC3B,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,YAAY,EAAE,gBAAgB;AAC9B,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,YAAY,EAAE,2BAA2B;AACzC,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,WAAW,EAAE,0BAA0B;AACxC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,IAAI,EAAE,OAAO;AACd,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,SAAS,EAAE,SAAS;AACrB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;AACjE,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,WAAW;AACnB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,OAAO;AACjB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,iBAAiB;AACzB,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,cAAc;AACrB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,MAAM,EAAE,eAAe;AACxB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,UAAU,EAAE,kBAAkB;AAC/B,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,KAAK,EAAE,YAAY;AACpB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,EAAE,EAAE,kBAAkB;AACtB,QAAA,EAAE,EAAE,kBAAkB;AACtB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,SAAS,EAAE,kBAAkB;AAC7B,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,WAAW,EAAE,aAAa;AAC3B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,QAAQ;AACtB,SAAA;AACF,KAAA;;;ACv1BH;AACA,SAAS,SAAS,CAAI,IAAO,EAAE,KAAqB,EAAA;AAClD,IAAA,MAAM,GAAG,GAAgB,EAAE,GAAI,IAA+B,EAAE;AAChE,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAoB,CAAC,EAAE;AAC/D,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACzG,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,KAA6B,CAAC;QAC9D;AAAO,aAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;QAClB;IACF;AACA,IAAA,OAAO,GAAQ;AACjB;AAEA;;;;;;;AAOG;MAEU,OAAO,CAAA;AAclB,IAAA,WAAA,GAAA;;QAZiB,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,CAAyB;YAC1D,CAAC,IAAI,EAAE,eAAe,CAAC;YACvB,CAAC,IAAI,EAAE,eAAe,CAAC;AACxB,SAAA,CAAC;QAEe,IAAA,CAAA,OAAO,GAAG,MAAM,CAAY,IAAI;oFAAC;;AAEzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;;AAGlC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAc,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,eAAe;qFAAC;AAGnG,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1D,QAAA,IAAI,MAAM,EAAE,QAAQ,EAAE;AACpB,YAAA,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC7D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;YACtC;QACF;QACA,IAAI,MAAM,EAAE,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IACrD;;AAGA,IAAA,SAAS,CAAC,MAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;IAC1B;AAEA;;;AAGG;IACH,gBAAgB,CAAC,MAAiB,EAAE,KAA+B,EAAA;AACjE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,eAAe;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD;AAEA;;;AAGG;IACH,CAAC,CAAC,GAAW,EAAE,MAAwC,EAAA;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,GAAG;AACzF,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,GAAG;QACvB,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC;IACpF;IAEQ,MAAM,CAAC,IAAiB,EAAE,GAAW,EAAA;QAC3C,IAAI,IAAI,GAAY,IAAI;QACxB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;AACpD,gBAAA,IAAI,GAAI,IAAoB,CAAC,IAAI,CAAC;YACpC;iBAAO;AACL,gBAAA,OAAO,SAAS;YAClB;QACF;AACA,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,SAAS;IACpD;wGA1DW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAP,OAAO,EAAA,OAAA,EAAP,OAAO,CAAA,IAAA,EAAA,UAAA,EADM,MAAM,EAAA,CAAA,CAAA;;iFACnB,OAAO,EAAA,CAAA;cADnB,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;ICoBtB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgE;;;IAI5D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAKE;;;IAJA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,OAAA,CAAA,MAAA,CAAA,GAAA,IAAA,IAAA,CAA+B,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,IAAA,CACE;;;IAInC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAGT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAEvE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAdxE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0D;AAQtD,IAPF,0HAAmB,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAOK;IAGxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAqC;IACnC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkB;IAClB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;AAI5B,IADE,iBAAO,EACH;;;IAhBJ,EAAA,CAAA,SAAA,EASC;IATD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;IAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkF;IAAlF,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAkF;IAClF,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAWe,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAI1C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAIpE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAIE;;;AADA,IADA,qCAAoB,CAAA,SAAA,EAAA,OAAA,CAAA,YAAA,IAAA,SAAA,CACsB;;;;IAlBhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAMC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAEpB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAiB;AAEf,IADF,gCAAqC,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CACG;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;IAG1B,EAAA,CAAA,YAAA,EAAO;IACP,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAuD;IAOzD,EAAA,CAAA,YAAA,EAAS;;;IAlBP,EAAA,CAAA,WAAA,CAAA,gCAAA,EAAA,OAAA,CAAA,MAAA,CAAoD;IACpD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;IAG1B,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAEX,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IACtD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAEH,EAAA,CAAA,SAAA,EAMC;IAND,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,KAAA,SAAA,IAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;;;IA1CL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsB,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAEI,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAmBjB;;;IArBT,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,SAAA,GAAA,CAAA,GAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CA4CC;;;IA9CL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiD;IAC/C,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CA8CC;IACH,EAAA,CAAA,YAAA,EAAM;;;IA/CJ,EAAA,CAAA,SAAA,EA8CC;AA9CD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CA8CN;;AApFT;;;;;;AAMG;MAqFU,cAAc,CAAA;AApF3B,IAAA,WAAA,GAAA;QAqFW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,QAAQ;oFAAC;QAC3C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,YAAY,GAAG,MAAM,EAAQ;QAC7B,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;AAEzB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AACpB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACnF,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACrF;AAOF,IAAA;AALW,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;+GAlBW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,gCAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AA7ErB,YADF,8BAA8D,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAC+C;AAA9B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAS,uBAAmB,CAAA,CAAA,CAAA,CAAC;YACxG,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAQC;YAFC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAU,GAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA,CAAA,CAAC;YAE5B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;AACnC,YADmC,iBAAS,EACtC;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAQC;YADC,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,IAAA,CAAA,GAAA,CAAS,KAAK,CAAC,CAAA,CAAA,CAAA,CAAC;;;;YArBoB,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAuB;YAQ1E,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAuB;;YAQzB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;AAGpC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACF,+CACQ,CAAA,gCAAA,EAAA,IAAA,CACH;AAtBjC,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,qwGAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAgFlE,cAAc,EAAA,CAAA;cApF1B,SAAS;2BACE,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAA,QAAA,EACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ET,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,imGAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACpG3B;AACA;AAKA;AACO,MAAM,eAAe,GAAkC;AAC5D,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,IAAI;;;ACRb;;;;;;;;;;;;;;;AAeG;MAEU,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;QAEmB,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAA2B;AAmC5D,IAAA;;AAhCC,IAAA,OAAO,CAAC,KAAa,EAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,MAAM;AAAE,YAAA,OAAO,MAAM;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;QAChF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC7B,QAAA,OAAO,MAAM;IACf;;AAGA,IAAA,EAAE,CAAC,UAAyB,EAAA;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,eAAe,CAAC,UAAU,CAAC,CAAA,GAAA,CAAK,CAAC;IACtE;AAEA;;;AAGG;AACH,IAAA,IAAI,CAAC,UAAyB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA,GAAA,CAAK,CAAC;IAC7E;AAEQ,IAAA,OAAO,CAAC,KAAa,EAAA;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;kFAAC;AAClC,QAAA,MAAM,QAAQ,GAAG,CAAC,KAA0B,KAAW,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAE/E,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE7E,QAAA,OAAO,KAAK,CAAC,UAAU,EAAE;IAC3B;sHArCW,qBAAqB,GAAA,CAAA,CAAA,CAAA,CAAA;uEAArB,qBAAqB,EAAA,OAAA,EAArB,qBAAqB,CAAA,IAAA,EAAA,UAAA,EADR,MAAM,EAAA,CAAA,CAAA;;iFACnB,qBAAqB,EAAA,CAAA;cADjC,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACjBlC;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,cAAc,CAAC,MAAA,GAAwB,EAAE,EAAA;AACvD,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF;;;;;ICFQ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAMC;AAFC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAEzB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAH7B,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAuB;;;AAnBjC;;;;;;AAMG;MAuBU,OAAO,CAAA;AAtBpB,IAAA,WAAA,GAAA;QAuBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,SAAS;oFAAC;QAC1C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACzD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,MAAM,EAAQ;AAEd,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1C,IAAA;wGAPY,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAhBhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+F;YAC7F,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YACd,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAmB;YASrB,EAAA,CAAA,YAAA,EAAO;;YAXgD,EAAA,CAAA,WAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAuC;;YAE5F,EAAA,CAAA,SAAA,CAAA,CAAA,CAQC;YARD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAQC;4BAZK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,q+CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAkBN,OAAO,EAAA,CAAA;cAtBnB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,eAAe,EAAE,EAAA,MAAA,EAAA,CAAA,62CAAA,CAAA,EAAA;;kFAErB,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AChCpB;;;;;;AAMG;MASU,UAAU,CAAA;AARvB,IAAA,WAAA,GAAA;QASW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAC;;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEf,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACpB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;2FAAC;AACjG,IAAA;2GAPY,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAJV,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmI;;AAA/B,YAAvB,mCAAsB,CAAA,QAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;;;;iFAI3H,UAAU,EAAA,CAAA;cARtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,qIAAqI,EAAA,IAAA,EAEzI,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAA,MAAA,EAAA,CAAA,+ZAAA,CAAA,EAAA;;kFAExB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICAjB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CASC;AAEC,IADA,+BAA6D,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQ3D;IACJ,EAAA,CAAA,eAAA,EAAM;;;IAjBJ,EAAA,CAAA,WAAA,CAAA,6BAAA,EAAA,MAAA,CAAA,KAAA,EAAA,IAAA,IAAA,CAAqD;;IAcnD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAwC;AACxC,IADA,wDAAwC,CAAA,mBAAA,EAAA,MAAA,CAAA,MAAA,EAAA,CACJ;;;IAIxC,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoH;IAClH,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0H;IAC5H,EAAA,CAAA,eAAA,EAAM;;;;IADiF,EAAA,CAAA,SAAA,EAA8B;IAA9B,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,EAAA,IAAA,CAAA,EAAA,GAAA,CAA8B;IAApF,EAAA,CAAA,WAAA,CAAA,6BAAA,EAAA,MAAA,CAAA,KAAA,EAAA,IAAA,IAAA,CAAqD;;AApC5F;;;;;;;AAOG;MAoCU,WAAW,CAAA;AAnCxB,IAAA,WAAA,GAAA;;QAqCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI;kFAAC;QAClC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,SAAS;oFAAC;QAC9C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAwB,QAAQ;iFAAC;QAC7C,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,EAAE;qFAAC;QAEV,IAAA,CAAA,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE;AAChC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,IAAI;AAAE,gBAAA,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI;YAC/C,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvE,CAAC;mFAAC;AACH,IAAA;4GAbY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,GAAA,EAAA,IAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,GAAA,EAAA,IAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AATlB,YArBF,mFAA6B,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAqBpB;;YArBT,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,UAAA,GAAA,CAAA,GAAA,CAAA,CAyBC;;;iFAKQ,WAAW,EAAA,CAAA;cAnCvB,SAAS;2BACE,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,ukDAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;IC5BhB,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4F;;;;;IAA9C,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,YAAA,KAAA,YAAA,GAAA,CAAA,GAAA,KAAA,GAAA,MAAA,CAAA,KAAA,EAAA,CAAsC;;;IADtF,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;;;AAFD,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAW,CAEV;;;IAED,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoH;;;AAAjC,IAAxB,uCAAuB,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,EAAA,CAA0B;;;AAlBlH;;;;;;;AAOG;MAiBU,WAAW,CAAA;AAhBxB,IAAA,WAAA,GAAA;QAiBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,MAAM;oFAAC;QAC3C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,MAAM;kFAAC;QACrB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,MAAM;mFAAC;QACtB,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,CAAC;kFAAC;AAEN,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;sFAAC;AACpF,IAAA;4GAPY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAPlB,YAJF,mEAA4B,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAInB;;YAJT,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,KAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAMC;;;iFAKQ,WAAW,EAAA,CAAA;cAhBvB,SAAS;2BACE,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;GAQT,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA,MAAA,EAAA,CAAA,8sBAAA,CAAA,EAAA;;kFAEhD,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACTxB;MACa,sBAAsB,GAAG,IAAI,cAAc,CAAsB,wBAAwB;;;;ICT5F,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA0D;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,CAAC;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAHtE,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAsE;IACpE,EAAA,CAAA,MAAA,CAAA,CAAA,CACA;IAAA,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAkB;IAGpB,EAAA,CAAA,eAAA,EAAQ;;;;IAJN,EAAA,CAAA,SAAA,EACA;IADA,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA,EAAA,EAAA,GAAA,CACA;IAAA,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,QAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAUL,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA+E;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,eAAA,EAAI;;;IAAjB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;;IAE5F,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAiE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,eAAA,EAAI;;;IAAhB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAY;;ACTjF;;;;;;;;;;;;;;;;;;;;;AAqBG;MAaU,YAAY,CAAA;AA+BvB,IAAA,WAAA,GAAA;;QA7BS,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;;QAEzB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE;iFAAC;;QAExB,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI;kFAAC;;QAElC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAExD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE;sFAAC;AACtC;;;;AAIG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAiC,OAAO;sFAAC;AAElD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEnE;;;AAGG;QACc,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,sBAAsB,+EAAI,WAAW,EAAE,IAAI,EAAA,CAAG;;QAErE,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK;yFAAC;;AAG1B,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;mFAAC;;QAIzF,eAAe,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5C;;IAGU,YAAY,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9C,mEAAmE,CACpE;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;IAChD;6GA1CW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2DAwBiB,sBAAsB,EAAA,CAAA,CAAA;;;;AAxBnD,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qCAAA,GAAA,EAAA,OAAA,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,CAAA,CAAF,CAAA,QAAA,EAAA,SAAA,sCAAA,GAAA,EAAA,OAAZ,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,CAAA,CAAF;;;AD3CvB,YANF,iCAKC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAC+D;YAC5D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAe;YASf,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqC;YACnC,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAElB,YADE,oBAAM,EACF;AAIJ,YAFF,4EAAe,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAEM;YAGvB,EAAA,CAAA,eAAA,EAAM;;YAxBJ,EAAA,CAAA,UAAA,CAAA,kBAAA,GAAA,GAAA,CAAA,SAAA,EAAA,CAA0C;AAE1C,YADA,oEAAuD,CAAA,yBAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,EAAA,CACZ;YAEV,EAAA,CAAA,SAAA,EAA4B;YAA5B,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,MAAA,EAAA,CAA4B;YAC3D,EAAA,CAAA,SAAA,EAOC;YAPD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAOC;YAOH,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;YAJD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAIC;;;iFCwBU,YAAY,EAAA,CAAA;cAZxB,SAAS;2BACE,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAG/B;AACJ,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,SAAS,EAAE,gBAAgB;AAC3B,oBAAA,UAAU,EAAE,gBAAgB;AAC7B,iBAAA,EAAA,QAAA,EAAA,k3BAAA,EAAA,MAAA,EAAA,CAAA,6/EAAA,CAAA,EAAA;AA0BuC,KAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,sBAAsB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAxB1E,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACxBzB,IAAI,YAAY,GAAG,CAAC;AAEpB;;;;;;;;AAQG;MAaU,QAAQ,CAAA;AAZrB,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;;QAGzB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK;qFAAC;QAChC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK;qFAAC;QAChC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK;qFAAC;QAChC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK;oFAAC;QAC/B,IAAA,CAAA,MAAM,GAAG,KAAK,CAAoD,EAAE;mFAAC;QACrE,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK;oFAAC;;AAGrB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;;QAGxE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;QAGtB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,MAAM;iFAAC;QAClC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE;wFAAC;AAC/B,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,CAAA,UAAA,EAAa,EAAE,YAAY,CAAA,CAAE;+EAAC;QACjD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI;sFAAC;AAKhD,IAAA;AAHW,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IAC1D;yGA1BW,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;iCAAR,IAAI,CAAA;;YChDjB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAaE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,wCAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,uCAAA,GAAA,EAAA,OACjB,gBAAY,CAAA,CAAA,CAAA,CAAC;YAZvB,EAAA,CAAA,eAAA,EAaE;;YAXA,gCAAW,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACI,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CACE,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACY,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACN,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACA;;;;iFDyCZ,QAAQ,EAAA,CAAA;cAZpB,SAAS;2BACE,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAG/B;AACJ,oBAAA,KAAK,EAAE,gBAAgB;;AAEvB,oBAAA,WAAW,EAAE,MAAM;AACpB,iBAAA,EAAA,QAAA,EAAA,qZAAA,EAAA,MAAA,EAAA,CAAA,4yCAAA,CAAA,EAAA;;kFAEU,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IEbb,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAApB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;AAvBvD;;;AAGG;MA4BU,WAAW,CAAA;AA3BxB,IAAA,WAAA,GAAA;;QA6BW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK;oFAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;QAEtB,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE;kFAAC;AAC3B,IAAA;4GAbY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,GAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AArBlB,YADF,mCAAwE,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CASpE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,QAAA,EAAA,SAAA,4CAAA,CAAA,MAAA,EAAA,EAAA,OAAU,GAAA,CAAA,OAAA,CAAA,GAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAwC,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,0CAAA,GAAA,EAAA,OAC3C,gBAAY,CAAA,CAAA,CAAA,CAAC;YAPvB,EAAA,CAAA,eAAA,EAQE;YACF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmD;;YACjD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;AACxF,YADwF,oBAAM,EACvF;YACP,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAe;YAGf,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,eAAA,EAAQ;;YAjBoB,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA2C;YAInE,EAAA,CAAA,SAAA,EAAqB;AACrB,YADA,0CAAqB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACE;;YAQzB,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;iFAOM,WAAW,EAAA,CAAA;cA3BvB,SAAS;2BACE,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,m/CAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IChBhB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAyD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAApB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;;IActE,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAApB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;;IAG7C,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA0E;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkB;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAAnE,EAAA,CAAA,WAAA,CAAA,uBAAA,EAAA,MAAA,CAAA,OAAA,EAAA,CAAyC;IAAC,EAAA,CAAA,SAAA,EAAkB;IAAlB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,EAAA,CAAkB;;AAhCpG;;;;;;;AAOG;MAiCU,SAAS,CAAA;AAhCtB,IAAA,WAAA,GAAA;QAiCW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK;oFAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QACtB,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE;kFAAC;;QAEjB,IAAA,CAAA,aAAa,GAAG,KAAK,CAAkB,KAAK;0FAAC;;QAE7C,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,EAAE;oFAAC;;QAEnB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,EAAE;qFAAC;AAEV,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;2FAAC;;QAEtE,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;uFAAC;AACpG,IAAA;0GArBY,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YA3BlB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAoE;YAClE,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA8C;YAG9C,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CASE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,QAAA,EAAA,SAAA,0CAAA,CAAA,MAAA,EAAA,EAAA,OAAU,GAAA,CAAA,OAAA,CAAA,GAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAwC,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,wCAAA,GAAA,EAAA,OAC3C,gBAAY,CAAA,CAAA,CAAA,CAAC;YARvB,EAAA,CAAA,eAAA,EASE;YACF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmD;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAuC;YAAA,EAAA,CAAA,eAAA,EAAO;YACjG,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4C;YAG5C,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAwB;YAGxB,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,eAAA,EAAQ;;YAtBkB,EAAA,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAyC;YACjE,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,IAAA,GAAA,CAAA,aAAA,EAAA,KAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAKC,EAAA,CAAA,SAAA,EAAqB;AACrB,YADA,0CAAqB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACE;;YAMzB,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,IAAA,GAAA,CAAA,aAAA,EAAA,KAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YACD,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,cAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;iFAOM,SAAS,EAAA,CAAA;cAhCrB,SAAS;2BACE,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,imDAAA,CAAA,EAAA;;kFAEvB,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICfd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAOE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC9B,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IANxB,EAAA,CAAA,YAAA,EAOE;;;;IALA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAgC,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CACb,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,CACoB;;AA3BjD;;;;;;;;;AASG;MA4BU,cAAc,CAAA;AA3B3B,IAAA,WAAA,GAAA;QA4BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,IAAI;kFAAC;QAC5B,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE;oFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;QAEtB,IAAA,CAAA,WAAW,GAAG,KAAK,CAA4B,UAAU;wFAAC;;QAE1D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjE;;;AAGG;QACM,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAM,MAAK;AACnD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,CAAQ;AACrC,YAAA,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAM,CAAC;QAClC,CAAC;2FAAC;AAgCH,IAAA;AA9BW,IAAA,SAAS,CAAC,QAAW,EAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACpE,QAAA,OAAO,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;IAClC;IAEU,QAAQ,CAAC,GAAiB,EAAE,OAAgB,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;YACrC,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAAE,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3E;iBAAO;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YACxD;YACA;QACF;QAEA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB;aAAO;;AAEL,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB;IACF;+GAzDW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YArBvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKC;YACC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAAC,YAAA,CASC;YACH,EAAA,CAAA,YAAA,EAAM;;YAdJ,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,GAAA,CAAA,WAAA,EAAA,KAAA,YAAA,CAAqE;;YAIrE,EAAA,CAAA,SAAA,EASC;AATD,YAAA,EAAA,CAAA,UAAA,CAAA,aAAS,CASR;4BAjBK,SAAS,CAAA,EAAA,MAAA,EAAA,CAAA,mNAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAuBR,cAAc,EAAA,CAAA;cA3B1B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,SAAS,CAAC,EAAA,QAAA,EACV;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,2MAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ACxBjB,IADF,mCAAkF,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAS9E;AADA,IADA,EAAA,CAAA,aAAA,CAAA,QAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAU,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,MAAA,CAAA,KAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACvB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAPvB,EAAA,CAAA,eAAA,EAQE;IACF,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;AAChD,IADgD,oBAAO,EAC/C;;;;IAZiB,EAAA,CAAA,WAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,CAAwD;IAI7E,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,aAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CAAe,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,KAAA,MAAA,CAAA,KAAA,EAAA,CACkB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,CACM;IAKV,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;;AAxBxD,IAAI,WAAW,GAAG,CAAC;AAEnB;;;AAGG;MA2BU,aAAa,CAAA;AA1B1B,IAAA,WAAA,GAAA;QA2BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAI,SAAc;kFAAC;QAChC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE;oFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AACtB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,CAAA,UAAA,EAAa,EAAE,WAAW,CAAA,CAAE;iFAAC;AAC5D,IAAA;8GAZY,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,YAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YArBtB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmG;YACjG,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAAA,YAAA,CAcC;YACH,EAAA,CAAA,eAAA,EAAM;;;YAfJ,EAAA,CAAA,SAAA,EAcC;AAdD,YAAA,EAAA,CAAA,UAAA,CAAA,aAAS,CAcR;;;iFAMM,aAAa,EAAA,CAAA;cA1BzB,SAAS;2BACE,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,MAAA,EAAA,CAAA,2xCAAA,CAAA,EAAA;;kFAE5B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;IC3BlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+B;IAC7B,EAAA,CAAA,MAAA,CAAA,CAAA,CACA;IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAwI;AAAlF,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,iCAAuB,CAAA,CAAA,CAAA,CAAA,CAAC;IACrF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;AAEzB,IADE,iBAAS,EACJ;;;;IAJL,EAAA,CAAA,SAAA,EACA;IADA,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA,EAAA,GAAA,CACA;IAAwF,EAAA,CAAA,SAAA,EAA+C;;;;IAH3I,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAAA,YAAA,CAOC;;;AAPD,IAAA,EAAA,CAAA,UAAA,CAAA,wBAAiB,CAOhB;;;IAED,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA1B,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,EAAA,CAAmB;;;IAEpD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA1B,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,EAAA,CAAmB;;;;IAmBzD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAC9B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA0B;IAC1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAME;AAFA,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,4BAAqB,CAAA,CAAA,CAAA,CAAA,CAAC;AAGnC,IAPE,iBAME,EACE;;;IAJF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAsB;IAAtB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAsB;;;;IAmBpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAgE;IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAhE,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,CAA+B;;;IAI/D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAyD;;;;IAf7D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAA,MAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,MAAA,aAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACL,qCAAkB,CAAA,CAAA,CAAA,CAAA,CAAC;IAEjC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkB;IAGlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAuC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAsC;IAGxC,EAAA,CAAA,YAAA,EAAK;;;;;IAbH,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,CAAsD,CAAA,4BAAA,EAAA,aAAA,KAAA,MAAA,CAAA,WAAA,EAAA,CACE,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CACL;;IAInD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,QAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACsC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;IACtD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,CAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAGH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAArC,EAAA,CAAA,SAAA,EAAgC;IAAhC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAgC;;;;IAlCpE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAkE;AAAnC,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAW,6BAAsB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC/D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAgB;IAYhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAqF;IACnF,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAAA,YAAA,EAAA,KAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAqBC;AAEL,IADE,iBAAK,EACD;;;IApCJ,EAAA,CAAA,SAAA,EAWC;IAXD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAWC;IAC2C,EAAA,CAAA,SAAA,EAAwC;;IAClF,EAAA,CAAA,SAAA,EAqBC;AArBD,IAAA,EAAA,CAAA,UAAA,CAAA,wBAAiB,CAqBhB;;AC1DP;;;;;;;;AAQG;MAWU,SAAS,CAAA;AA8BpB,IAAA,WAAA,GAAA;QA7BS,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE;oFAAC;QACnC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACtD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;;QAGxE,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,IAAI;kFAAC;QAC5B,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACzC;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK;iFAAC;QACT,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,EAAE;uFAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;wFAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAegB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAM,MAAK;AACnD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAI,CAAS,GAAG,EAAE;AAC9D,YAAA,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAM,CAAC;QAClC,CAAC;2FAAC;AAEiB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAC5C,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4FACtE;AAEkB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAChD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;QACzE,CAAC;4FAAC;AAEiB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;YAClC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACrD,CAAC;wFAAC;AAEF;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC;mFAAC;;;QAnCjE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;YAC1B,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,MAAM;oBAAE;AACb,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AA6BU,IAAA,UAAU,CAAC,GAAiB,EAAA;QACpC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAClD;IAEU,UAAU,GAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IAEU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AAEU,IAAA,IAAI,CAAC,GAAiB,EAAA;QAC9B,IAAI,GAAG,CAAC,QAAQ;YAAE;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACjG;aAAO;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEU,UAAU,CAAC,GAAiB,EAAE,KAAY,EAAA;QAClD,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtE;AAEU,IAAA,aAAa,CAAC,KAAY,EAAA;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B;;AAGU,IAAA,gBAAgB,CAAC,KAAoB,EAAA;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC3E,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,UAAU,EAAE;QACrC;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE;QACd;IACF;AAEU,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AACnC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QACd;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACpC,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzE;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAClC,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAChC,KAAK,CAAC,cAAc,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpC,YAAA,IAAI,GAAG;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB;IACF;0GArIW,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,SAAS,uZAFT,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,8BAAA,EAAA,4BAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDvC5F,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAcC;YAHC,mFAAS,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,gFACX,GAAA,CAAA,gBAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,sCAAA,GAAA,EAAA,OAC5B,GAAA,CAAA,KAAA,CAAA,IAAA,EAAY,CAAA,CAAA,CAAA,CAAC;YAErB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B;YAC7B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,CAA8C,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CASR,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAE7B;YAGX,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4D;YAC9D,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAUC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,OACf,WAAO,CAAA,CAAA,CAAA,CAAC;;;YArClB,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAiC,CAAA,sBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACQ,CAAA,qBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACE;;YAQzC,EAAA,CAAA,SAAA,CAAA,CAAA,CAaC;YAbD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,QAAA,EAAA,IAAA,GAAA,CAAA,eAAA,EAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,QAAA,EAAA,IAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAaC;YAOH,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqC;AAKrC,YALA,sDAAqC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACH,CAAA,8BAAA,EAAA,GAAA,CAAA,SAAA,CACQ,wCACH,CAAA,0BAAA,EAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,WAAA,CAEkC;4BCN/D,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,+/HAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAM7C,SAAS,EAAA,CAAA;cAVrB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,mBACL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAC,QAGnD,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,SAAA,EACvB,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAK,SAAU,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,4mGAAA,EAAA,MAAA,EAAA,CAAA,mzHAAA,CAAA,EAAA;;kFAE/E,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACzCtB;;;;AAIG;AAEH;AACM,SAAU,YAAY,CAAC,MAAc,EAAA;AACzC,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;;AAEjE,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F;AAEA;AACM,SAAU,UAAU,CAAC,MAAc,EAAA;AACvC,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF;;;;;ACkCY,IADF,iCAA6B,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACuD;IAAxB,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,CAAE;IAAA,EAAA,CAAA,eAAA,EAAS;IAC7F,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAkF;IAAxB,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,CAAE;AACtF,IADsF,oBAAS,EACzF;;;IAFkB,EAAA,CAAA,SAAA,EAAmC;IAAnC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,EAAA,KAAA,IAAA,CAAmC;IACnC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmC;IAAnC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,EAAA,KAAA,IAAA,CAAmC;;;;IAmBzD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAQC;AADC,IAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,wBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IACzB,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,eAAA,EAAS;;;AAFxB,IADA,sCAAuB,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,GAAA,CACD;AAFtB,IADA,sDAA0C,CAAA,0BAAA,EAAA,OAAA,CAAA,QAAA,CACM;IAIjD,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IATnB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAAA,YAAA,CAUC;;;AAVD,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAW,CAUV;;;;IAGC,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAOC;AADC,IAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC3B,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,eAAA,EAAS;;;AAFxB,IADA,sCAAuB,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,GAAA,CACD;IAFtB,EAAA,CAAA,WAAA,CAAA,0BAAA,EAAA,OAAA,CAAA,QAAA,CAAgD;IAIjD,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IARnB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAAA,YAAA,CASC;;;AATD,IAAA,EAAA,CAAA,UAAA,CAAA,oBAAa,CASZ;;AAtEX,MAAM,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,GAAG,EAAE;AAClB,MAAMC,KAAG,GAAG,CAAC,CAAS,KAAa,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAE7D;AACA,SAAS,OAAO,CAAC,KAAa,EAAE,MAAc,EAAA;AAC5C,IAAA,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;IACxC,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC/E;AAEA;;;;;;;AAOG;MA6DU,QAAQ,CAAA;AASnB,IAAA,WAAA,GAAA;QARS,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QACtD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QAE3C,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC;iFAAC;QAChB,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,CAAC;mFAAC;QAClB,IAAA,CAAA,UAAU,GAAG,MAAM,CAAsB,OAAO;uFAAC;QAmBjD,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAc,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;iFAAC;AACpE,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;QACzB,CAAC;mFAAC;AACiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAGA,KAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;sFACpE;AACkB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAMA,KAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wFAAC;;AAQhD,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAc,MACnD,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;sFAChG;AA8BkB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAc,MAAK;AAC1D,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,gBAAA,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;AACjB,gBAAA,OAAO,EAAE,KAAK,EAAEA,KAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,EAAE;AACtG,YAAA,CAAC,CAAC;QACJ,CAAC;wFAAC;AAEiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,UAAU,EAAE,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;sFAC5E;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;sFAC5G;;QA5EC,MAAM,CAAC,MAAK;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,KAAK,CAAC,CAAS,EAAA;QACrB,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAC1C;IACQ,IAAI,GAAA;QACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAGA,KAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA,CAAE,CAAC;IAC7D;IAYQ,OAAO,CAAC,GAAW,EAAE,EAAe,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;AACtB,QAAA,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI;IACvC;IAOQ,QAAQ,GAAA;AACd,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,YAAA,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;;YAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACpC,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,EAAE;AACvG,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,YAAA,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,EAAE;AAC1G,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,YAAA,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;;AAEnC,YAAA,OAAO,EAAE,KAAK,EAAEA,KAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,EAAE;AACtG,QAAA,CAAC,CAAC;IACJ;AAiBU,IAAA,QAAQ,CAAC,KAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;AACU,IAAA,OAAO,CAAC,MAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE;IACb;AACU,IAAA,QAAQ,CAAC,IAAe,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE;IACb;AACU,IAAA,UAAU,CAAC,IAAe,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE;IACb;IAEU,aAAa,CAAC,KAAmB,EAAE,IAAiB,EAAA;AAC5D,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;AAAE,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;AACpE,aAAA,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACzC,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACvD,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,QAAA,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE;QAC/C,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,IAAI,GAAG;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACnE;aAAO;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAC9B;QACA,IAAI,CAAC,IAAI,EAAE;IACb;;IAGQ,gBAAgB,CAAC,GAAW,EAAE,MAAc,EAAA;AAClD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D;QACF;AACA,QAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE;AACnD,QAAA,IAAI,KAAK;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;;AAC7C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAC1C;;AAGQ,IAAA,kBAAkB,CAAC,GAAW,EAAA;AACpC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACvD;IAEU,QAAQ,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,OAAO;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;IACnE;yGA/IW,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAvDjB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACQ,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAC2F;YAA5B,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,yCAAA,GAAA,EAAA,OAAS,GAAA,CAAA,QAAA,CAAS,OAAO,CAAC,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;YAAA,EAAA,CAAA,eAAA,EAAS;YAChJ,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+B;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,CAAC;YAAA,EAAA,CAAA,eAAA,EAAO;YACvC,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA0H;YAA9B,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,yCAAA,GAAA,EAAA,OAAS,GAAA,CAAA,QAAA,CAAS,SAAS,CAAC,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;YAAA,EAAA,CAAA,eAAA,EAAS;YACtJ,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B;YAM7B,EAAA,CAAA,eAAA,EAAM;YACN,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAMC;YAHC,iLAAe,GAAA,CAAA,aAAA,CAAA,MAAA,EAAA,OAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAC,iKAC5B,GAAA,CAAA,aAAA,CAAA,MAAA,EAAA,OAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,WAAA,EAAA,SAAA,0CAAA,GAAA,EAAA,OAC9B,GAAA,CAAA,QAAA,EAAU,CAAA,CAAA,CAAA,CAAC;AAGxB,YADA,8BAAuC,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAK/B;AAaN,YAZF,kEAAgC,CAAA,EAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,CAYvB;AAab,YADE,oBAAM,EACF;;YAhD2C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA4C;YAA5C,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,UAAA,EAAA,KAAA,OAAA,CAA4C;YAA6B,EAAA,CAAA,SAAA,EAAiB;YAAjB,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,CAAiB;YAE1F,EAAA,CAAA,SAAA,CAAA,CAAA,CAA8C;YAA9C,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,UAAA,EAAA,KAAA,SAAA,CAA8C;YAA+B,EAAA,CAAA,SAAA,EAAmB;YAAnB,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,WAAA,EAAA,CAAmB;YAC7I,EAAA,CAAA,SAAA,EAKC;YALD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAKC;YAaC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoD;YAApD,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,SAAA,GAAA,GAAA,CAAA,SAAA,EAAA,GAAA,MAAA,CAAoD;YADpD,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,SAAA,EAAA,CAA4C;YAG9C,EAAA,CAAA,SAAA,EAuBC;YAvBD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,KAAA,OAAA,GAAA,EAAA,GAAA,EAAA,CAuBC;;;iFAOI,QAAQ,EAAA,CAAA;cA5DpB,SAAS;2BACE,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,MAAA,EAAA,CAAA,mmFAAA,CAAA,EAAA;;kFAEtB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICnFjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAtB,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,OAAA,EAAA,CAAe;;;IAEnD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA0C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA4B;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAnC,EAAA,CAAA,SAAA,EAA4B;IAA5B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,oBAAA,EAAA,CAA4B;;;;IAItE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuH;AAAnE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAa,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;;AAsB/I,IADF,+BAAkC,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAC6F;AAA7E,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAmD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAS;IACtK,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA+B;AACnE,IADmE,iBAAO,EACpE;;;IAFuE,EAAA,CAAA,SAAA,EAAiD;;IAC1F,EAAA,CAAA,SAAA,CAAA,CAAA,CAA+B;IAA/B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,CAA+B;;;;IAHrE,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAsC;IAMtC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAyF;IAA9E,EAAA,CAAA,gBAAA,CAAA,aAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;IAA9B,EAAA,CAAA,YAAA,EAAyF;;;IANzF,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,aAAA,EAAA,KAAA,UAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAKC;IACU,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,gBAAA,CAAA,OAAA,EAAA,MAAA,CAAA,OAAA,CAAmB;AAA6B,IAA5B,gDAA2B,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAA4B;;;;IAKlF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAoI;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,iBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAAoC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAA7H,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,CAAA,MAAA,CAAA,WAAA,EAAA,CAA2B;;;;;IAKvE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAmI;IAA7E,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAK,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAsD,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;IAAA,EAAA,CAAA,YAAA,EAAS;IAC7J,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAiI;IAA3E,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAqD,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IADvB,EAAA,CAAA,SAAA,EAAiB;IAAjB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,CAAiB;IACvE,EAAA,CAAA,SAAA,EAAmD;;IAAC,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAgB;;;IAI/I,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvC,EAAA,CAAA,SAAA,EAAgC;IAAhC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAgC;;;;IAElE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAiI;IAA3E,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAqD,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IAAzB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAgB;;;AADjJ,IAFF,oHAAmC,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAE1B;;;IAFT,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,aAAA,EAAA,KAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAIC;;;;IAGD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAqI;IAA/E,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAuD,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IAA/B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,cAAA,EAAA,CAAsB;;;IAG3J,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAwB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA/B,EAAA,CAAA,SAAA,EAAwB;IAAxB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,gBAAA,EAAA,CAAwB;;;;IAK9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAuI;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,iBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAAoC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAiC;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAAjI,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,CAAA,MAAA,CAAA,cAAA,EAAA,CAA8B;;;;IAQ1E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAQ;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAf,EAAA,CAAA,SAAA,EAAQ;IAAR,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAQ;;;;IAM1C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CASC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAe,CAAA,CAAA,CAAA,CAAA,CAAC;IAC1B,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAS;;;IANtB,EAAA,CAAA,WAAA,CAAA,0BAAA,EAAA,CAAA,QAAA,CAAA,OAAA,CAAgD,CAAA,0BAAA,EAAA,QAAA,CAAA,KAAA,CACH,CAAA,6BAAA,EAAA,QAAA,CAAA,QAAA,CACM;IACnD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,QAAA,CAAA,QAAA,CAA0B;;IAG3B,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAc;;;IAVjB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,qEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAAD,YAAA,CAWC;;;IAXD,EAAA,CAAA,UAAA,CAAA,QAAA,CAWC;;;IAlBL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IAClC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAC9B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAaC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAnBJ,EAAA,CAAA,SAAA,EAEC;AAFD,IAAA,EAAA,CAAA,UAAA,CAAA,iBAAU,CAET;IAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAaC;AAbD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CAaN;;;;IAMC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAQC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC3B,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAS;;;AAJxB,IADA,iEAAoD,CAAA,6BAAA,EAAA,QAAA,CAAA,OAAA,CACF;IAClD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,QAAA,CAAA,QAAA,CAA0B;;IAG3B,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,KAAA,CAAgB;;;IAVrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAyH;IACvH,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAAE,YAAA,CAUC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAZoD,EAAA,CAAA,WAAA,CAAA,6BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,QAAA,CAA8D;IACtH,EAAA,CAAA,SAAA,EAUC;AAVD,IAAA,EAAA,CAAA,UAAA,CAAA,mBAAY,CAUX;;;;IAML,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA0E;AAAtB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IACvE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IACzB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoB;AAC5B,IAD4B,iBAAO,EAC1B;;;IADD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoB;IAApB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,YAAA,EAAA,CAAoB;;;IA1E9B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAkC;IAChC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAgB;IAGhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAmC;AAgB/B,IAdA,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,CAAe,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,CAIE,kFAOD,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAGE;IAItB,EAAA,CAAA,YAAA,EAAO;IACP,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAgB;IAGlB,EAAA,CAAA,YAAA,EAAM;AA0BJ,IAvBA,0FAAe,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAuBL;IAiBZ,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,iEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAsC;;;;;IAtEpC,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAkBC;AAlBD,IAAA,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,SAAA,EAAA,MAAA,KAAK,GAAA,CAAA,GAAA,OAAA,KAAL,OAAO,mBAAP,MAAM,GAAA,CAAA,GAAA,OAAA,KAAN,QAAQ,GAAA,CAAA,GAAA,CAAA,CAAA,CAkBP;IAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAGH,EAAA,CAAA,SAAA,EAuCC;AAvCD,IAAA,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,SAAA,EAAA,MAAA,KAAK,GAAA,CAAA,GAAA,CAAA,CAuCJ;IAED,EAAA,CAAA,SAAA,CAAA,CAAA,CAKC;IALD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,aAAA,EAAA,KAAA,UAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAKC;;;;AAIC,IADF,+BAAkC,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CACS;AAAnB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,eAAQ,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAA2B;AACtE,IADsE,iBAAa,EAC7E;;;IADqC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAA2B;;;;IA3F1E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA+F;AAA3B,IAAA,EAAA,CAAA,UAAA,CAAA,gBAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAkB,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;AAS1F,IARF,mFAAmB,CAAA,CAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,CAAA,CAQV;IAgFT,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmB;IAKrB,EAAA,CAAA,YAAA,EAAM;;;IA9FoB,EAAA,CAAA,WAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAyC;IACjE,EAAA,CAAA,SAAA,EAuFC;IAvFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAuFC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;IAJD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAIC;;ACpFL;AACA,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAiD;AAEjG,MAAMD,KAAG,GAAG,CAAC,CAAS,KAAa,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7D,MAAME,OAAK,GAAG,CAAC,CAAO,KAAa,CAAA,EAAG,CAAC,CAAC,WAAW,EAAE,IAAIF,KAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAEpG;;;;;;;;;;;;;;;AAeG;MAUU,aAAa,CAAA;IA0EhB,kBAAkB,GAAA;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM;AACpD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD;AAmBA,IAAA,WAAA,GAAA;QAlGS,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QACtB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;;QAEvB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI;sFAAC;QACtC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAe,IAAI;0FAAC;;QAEzC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAoB,MAAM;0FAAC;AACzD;;;;AAIG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAA2B,IAAI;sFAAC;;QAEjD,IAAA,CAAA,YAAY,GAAG,KAAK,CAAoB,MAAM;yFAAC;;QAE/C,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;;QAEtD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QACrD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,IAAI;oFAAC;QACpC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,IAAI;oFAAC;AAE1B,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;YACtD,IAAI,IAAI,CAAC,WAAW,EAAE;AAAE,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK;AAC1C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,UAAU,GAAG,OAAO;AAC5D,YAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,gBAAA,KAAK,WAAW,EAAE,OAAO,GAAG,GAAG,SAAS,GAAG,SAAS;AACpD,gBAAA,KAAK,MAAM,EAAE,OAAO,MAAM;gBAC1B,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC9F,gBAAA,KAAK,MAAM,EAAE,OAAO,IAAI;AACxB,gBAAA,KAAK,UAAU,EAAE,OAAO,CAAA,EAAG,GAAG,GAAG,YAAY,GAAG,YAAY,CAAA,CAAA,EAAI,IAAI,EAAE;AACtE,gBAAA,SAAS,OAAO,GAAG,GAAG,YAAY,GAAG,YAAY;;QAErD,CAAC;iGAAC;AAEiB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;qFAAC;AAC7D,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;mFAAC;AACxE;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK;iFAAC;AACX,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,EAAE;QAClB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;iFAAC;;QAEtE,IAAA,CAAA,SAAS,GAAG,MAAM,CAAoB,KAAK;sFAAC;;AAG5C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAoB,MAAK;AAChE,YAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,gBAAA,KAAK,WAAW;AAChB,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,OAAO;AAChB,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,MAAM;AACf,gBAAA;AACE,oBAAA,OAAO,KAAK;;QAElB,CAAC;wFAAC;;AAEe,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAoB,MACtD,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ;qFACtD;;QAUkB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,EAAE;oFAAC;QACpB,IAAA,CAAA,MAAM,GAAG,MAAM,CAAuB,UAAU;mFAAC;QACnD,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,EAAE;wFAAC;;QAEtB,IAAA,CAAA,SAAS,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,OAAO,CAAC;sFAC5G;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU;sFAC7E;AAEkB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;QAiBkB,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;qFAAC;AACxC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;sFAAC;;QAE1D,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;wFAAC;;QAEjE,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;yFAAC;AAClE,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA,CAAE;2FAAC;AACpF,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAA,CAAE;6FAAC;;QAG1F,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO;mFAAC;AACzD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACvD,gBAAA,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACvD,gBAAA,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;gBAC3D,SAAS,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;;QAEvD,CAAC;yFAAC;AACiB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACvD,gBAAA,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACvD,gBAAA,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;gBAC3D,SAAS,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;;QAEvD,CAAC;yFAAC;;AAGiB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI;YACrB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,OAAO,EAAE,OAAO,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrD,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9D,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,gBAAA,SAAS,OAAOE,OAAK,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;;QAEpD,CAAC;wFAAC;AACiB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI;YACrB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,OAAO,EAAE,OAAO,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrD,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/D,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,gBAAA,SAAS,OAAOA,OAAK,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG;;QAEvD,CAAC;2FAAC;;AAYiB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACxC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;yFAAC;AAEF;;;;AAIG;AACgB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,OAAO,EAAE;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK;AAC1C,YAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,gBAAA,KAAK,WAAW;oBACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AACtC,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACnC,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5B,gBAAA,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;AACrC,gBAAA;oBACE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC;;QAErC,CAAC;oFAAC;;QA8Be,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;4FACxE;AACkB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAc,MAAK;YACpD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAA,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAA,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;AAC7C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;AAClC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;YAC1B,MAAM,QAAQ,GAAGA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAElC,MAAM,KAAK,GAAgB,EAAE;AAC7B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAc,EAAE;AACzB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzF,oBAAA,MAAM,GAAG,GAAGA,OAAK,CAAC,IAAI,CAAC;oBACvB,GAAG,CAAC,IAAI,CAAC;AACP,wBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;wBACnB,GAAG;AACH,wBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;wBAC9B,KAAK,EAAE,GAAG,KAAK,QAAQ;wBACvB,QAAQ,EAAE,GAAG,KAAK,GAAG;AACrB,wBAAA,QAAQ,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AACnE,qBAAA,CAAC;gBACJ;AACA,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB;AACA,YAAA,OAAO,KAAK;QACd,CAAC;kFAAC;;AAGe,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAyC,MAAK;AAClF,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;gBAC1B,KAAK,OAAO,EAAE;oBACZ,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE;gBAC7C;AACA,gBAAA,KAAK,MAAM;oBACT,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;gBACtD,KAAK,WAAW,EAAE;oBAChB,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,oBAAA,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC9D;AACA,gBAAA,KAAK,MAAM;oBACT,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC7B,SAAS;oBACP,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAChD,oBAAA,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC3E;;QAEJ,CAAC;uFAAC;;AAGiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAa,MAAK;YACxD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACzB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,QAAQ;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM;AACrC,gBAAA,KAAK,EAAE,OAAO,GAAGF,KAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBAClC,CAAC;AACD,gBAAA,CAAC,EAAE,CAAC;AACJ,gBAAA,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrD,OAAO,EAAE,MAAM,KAAK,CAAC,KAAK,WAAW,IAAI,MAAM,KAAK,CAAC,CAAC;AACtD,gBAAA,QAAQ,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,aAAA,CAAC,CAAC;QACL,CAAC;uFAAC;;AAGiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAa,MAAK;AACvD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACvC,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,gBAAA,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;gBACtB,OAAO;AACL,oBAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;AACnB,oBAAA,CAAC,EAAE,IAAI;AACP,oBAAA,CAAC,EAAE,CAAC;AACJ,oBAAA,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI;oBACxB,OAAO,EAAE,MAAM,KAAK,IAAI;AACxB,oBAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBACpC;AACH,YAAA,CAAC,CAAC;QACJ,CAAC;sFAAC;;AAGiB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAa,MAAK;AACzD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACvC,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzC,gBAAA,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;AAC3B,gBAAA,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC;gBACnB,OAAO;AACL,oBAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,CAAE;AACxB,oBAAA,CAAC,EAAE,IAAI;AACP,oBAAA,CAAC,EAAE,CAAC;AACJ,oBAAA,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;AACvD,oBAAA,OAAO,EAAE,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE;;AAEvC,oBAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;iBAC/D;AACH,YAAA,CAAC,CAAC;QACJ,CAAC;wFAAC;;AAGiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAa,MAAK;AACxD,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,SAAS,EAAE;AACzB,gBAAA,KAAK,QAAQ;AACX,oBAAA,OAAO,IAAI,CAAC,WAAW,EAAE;AAC3B,gBAAA;AACE,oBAAA,OAAO,IAAI,CAAC,UAAU,EAAE;;QAE9B,CAAC;uFAAC;;;QA9PA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;YAC1B,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,MAAM;oBAAE;gBACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACzE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;;IAuDQ,UAAU,CAAC,CAAS,EAAE,CAAS,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;AAC5B,YAAA,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;YACtC,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAIA,KAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE;QACnD;QACA,OAAO,CAAA,EAAGA,KAAG,CAAC,CAAC,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,CAAC,CAAC,CAAA,CAAE;IAC9B;IAiCQ,gBAAgB,CAAC,CAAS,EAAE,GAAY,EAAA;QAC9C,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,OAAO,GAAG,GAAG,CAAC,GAAG,CAAA,EAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,EAAE;IACpC;AACQ,IAAA,YAAY,CAAC,CAAS,EAAA;QAC5B,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF;AACQ,IAAA,WAAW,CAAC,CAAS,EAAA;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;IAC3C;IACQ,eAAe,CAAC,CAAS,EAAE,GAAY,EAAA;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,EAAE;QAClB,MAAM,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,CAAA,EAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAA,EAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;QACxG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC3B,QAAA,OAAO,GAAG,QAAQ,CAAA,EAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;IAC1D;IACQ,WAAW,CAAC,CAAS,EAAE,GAAY,EAAA;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,OAAO,GAAG,GAAGE,OAAK,CAAC,CAAC,CAAC,GAAG,CAAA,EAAGF,KAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAIA,KAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;IAC3F;;AAgIQ,IAAA,SAAS,CAAC,GAAW,EAAA;QAC3B,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACvB,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD;AACQ,IAAA,SAAS,CAAC,CAAS,EAAA;QACzB,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAC1C;AACQ,IAAA,aAAa,CAAC,CAAS,EAAA;QAC7B,MAAM,CAAC,GAAG,0CAA0C,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,QAAA,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IACtD;AAEQ,IAAA,cAAc,CAAC,IAAY,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;AAC/C,QAAA,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;AAC/C,QAAA,OAAO,KAAK;IACd;IACQ,mBAAmB,CAAC,CAAS,EAAE,UAAkB,EAAA;AACvD,QAAA,MAAM,EAAE,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA,CAAE;AACxC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;QAC5C,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;AAC5C,QAAA,OAAO,KAAK;IACd;IAEQ,WAAW,GAAA;AACjB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;YAC1B,KAAK,WAAW,EAAE;gBAChB,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YACnG;AACA,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AACvE,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;YAC9C,KAAK,UAAU,EAAE;gBACf,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChC,IAAI,EAAE,EAAE;oBACN,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAE;AAClC,oBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChD;AACA,gBAAA,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YAClE;YACA,SAAS;AACP,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK;AACzC,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChD;;IAEJ;IAEQ,iBAAiB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA,EAAGA,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,OAAO,CAAC;QAC3D;AAAO,aAAA,IAAI,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAA,EAAGA,KAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,EAAIA,KAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,OAAO,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QACtC;IACF;IAEU,UAAU,GAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IAEU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;;AAGU,IAAA,SAAS,CAAC,IAAa,EAAA;QAC/B,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,YAAA,OAAO;QACT;QACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;IACd;AACA;;;AAGG;AACO,IAAA,UAAU,CAAC,IAAc,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,EAAE;YACZ;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD;AAEQ,IAAA,UAAU,CAAC,IAAc,EAAA;QAC/B,MAAM,EAAE,GAAGA,KAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA,CAAA,EAAI,EAAE,EAAE;IAClE;;AAGU,IAAA,IAAI,CAAC,KAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;;IAGU,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B;IACU,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAC7B;IAEU,MAAM,GAAA;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO;AACtC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB;aAAO;YACL,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,IAAIE,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;QACnC;QACA,IAAI,CAAC,KAAK,EAAE;IACd;;AAGQ,IAAA,IAAI,CAAC,GAAW,EAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAI;YAC5B,QAAQ,KAAK;AACX,gBAAA,KAAK,OAAO;oBACV,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AAC1B,gBAAA,KAAK,MAAM;oBACT,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC/B,gBAAA,KAAK,QAAQ;oBACX,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE;gBAChC,SAAS;AACP,oBAAA,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG;oBACpB,IAAI,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;oBACxC,IAAI,IAAI,GAAG,EAAE;wBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,oBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;gBACvB;;AAEJ,QAAA,CAAC,CAAC;IACJ;IACU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf;IACU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd;AACU,IAAA,KAAK,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B;8GA5gBW,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,8BAAA,EAAA,6BAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDhF1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAcC;YAHC,uFAAS,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,0FACL,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,0CAAA,GAAA,EAAA,OACtB,GAAA,CAAA,KAAA,CAAA,IAAA,EAAY,CAAA,CAAA,CAAA,CAAC;AAInB,YAFF,gFAAiB,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAER;YAGT,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4C;YAC5C,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAiB;YAGjB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAGE;YACJ,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OACf,WAAO,CAAA,CAAA,CAAA,CAAC;;;YAhClB,EAAA,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAqC,CAAA,0BAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACQ,CAAA,yBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACE;;YAO/C,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;YAJD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAIC;YAED,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAGC,EAAA,CAAA,SAAA,EAA0D;YAA1D,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,aAAA,EAAA,KAAA,MAAA,GAAA,OAAA,GAAA,UAAA,CAA0D;YAM5D,EAAA,CAAA,SAAA,EAAqC;AAGrC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,WAAA,CAAqC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACH,+CACQ,CAAA,gCAAA,EAAA,IAAA,CACH;ACwC7B,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAA,EAAA,MAAA,EAAA,CAAA,6rKAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAKlE,aAAa,EAAA,CAAA;cATzB,SAAS;2BACE,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAA,IAAA,EAGxE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,QAAA,EAAA,o9LAAA,EAAA,MAAA,EAAA,CAAA,y7JAAA,CAAA,EAAA;;kFAE3B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ACjE1B;;;;;AAKG;MAsBU,WAAW,CAAA;AAiBtB,IAAA,WAAA,GAAA;QAhBS,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,CAAC;iFAAC;QACf,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QAEd,IAAA,CAAA,EAAE,GAAG,SAAS,CAAkC,IAAI;+EAAC;QAGpE,eAAe,CAAC,MAAK;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE;AACtC,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC;QAC3D,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,MAAM,EAAE;IACtC;IAEQ,MAAM,GAAA;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa;AACnC,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QACxB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAA,EAAA,CAAI;IAC1C;4GAjCW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;YAhBpB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAWC;AADC,YADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OACjB,gBAAY,CAAA,CAAA,CAAA,CAAC;YACtB,EAAA,CAAA,eAAA,EAAW;;AAJV,YAJA,sCAAiB,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACY,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACN,4BACA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACR;;;;iFASR,WAAW,EAAA,CAAA;cArBvB,SAAS;2BACE,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,mjCAAA,CAAA,EAAA;y4BAiB6B,IAAI,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAf1D,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACtCxB;;;;;;;;;AASG;MAUU,UAAU,CAAA;AATvB,IAAA,WAAA,GAAA;QAUW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,2EAAW,KAAK,EAAE,YAAY,EAAA,CAAG;QACtD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,KAAK,gFAAI,KAAK,EAAE,oBAAoB,EAAA,CAAG;AACrF;;;AAGG;AACM,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,CAAA,EACtC,KAAK,EAAE,6BAA6B;YACpC,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEe,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;;QAGlD,IAAA,CAAA,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE;AAiFlD,IAAA;IA/EW,IAAI,GAAA;QACZ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;;;QAG9B,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,QAAA,GAAG,CAAC,SAAS,GAAG,aAAa;AAC7B,QAAA,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;AACnC,QAAA,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,OAAO;YACf,qEAAqE;gBACrE,uFAAuF;gBACvF,wFAAwF;AACxF,gBAAA,2FAA2F;AAC7F,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;QACd,IAAI,CAAC,UAAU,EAAE;;;QAGjB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAC9C,qBAAqB,CAAC,MAAK;YACzB,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC5C,QAAA,CAAC,CAAC;IACJ;IAEU,IAAI,GAAA;QACZ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QACvD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;AACjD,QAAA,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;AAClB,QAAA,IAAI,CAAC,GAAG,GAAG,SAAS;IACtB;AAEA;;;;;AAKG;IACK,WAAW,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa;AACpC,QAAA,MAAM,SAAS,GAAG,CAAC,EAAW;;AAE5B,QAAA,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,CAAC;AAC9E,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACrE;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACzD,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,qBAAqB,EAAE;QACrC,MAAM,GAAG,GAAG,CAAC;AACb,QAAA,IAAI,GAAW;AACf,QAAA,IAAI,IAAY;AAChB,QAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACrB,YAAA,KAAK,QAAQ;AACX,gBAAA,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;AACpB,gBAAA,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBACzC;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;gBACzC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG;gBAC7B;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AACzC,gBAAA,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG;gBACpB;AACF,YAAA;gBACE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;AAC5B,gBAAA,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;;AAE7C,QAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI;AACvC,QAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI;IAC3C;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,EAAE;IACb;2GA/FW,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAAV,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,wCAAA,GAAA,EAAA,OAAA,GAAA,CAAA,IAAA,EAAM,CAAA,CAAA,CAAA,CAAI,CAAA,YAAA,EAAA,SAAA,wCAAA,GAAA,EAAA,OAAV,GAAA,CAAA,IAAA,EAAM,CAAA,CAAA,CAAA,CAAI,kEAAV,GAAA,CAAA,IAAA,EAAM,CAAA,CAAA,CAAA,CAAI,CAAA,MAAA,EAAA,SAAA,kCAAA,GAAA,EAAA,OAAV,GAAA,CAAA,IAAA,EAAM,CAAA,CAAA,CAAA,CAAI;;;iFAAV,UAAU,EAAA,CAAA;cATtB,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,cAAc;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACF,aAAA;;;;;;IClBO,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA+D;;;;IAiCrD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAOC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+EAAA,GAAA,EAAA,MAAA,IAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC3B,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,YAAA,EAAK;;;;IALjB,EAAA,CAAA,UAAA,CAAA,qDAAA,GAAA,IAAA,CAAA,GAAA,CAAuE;IAGvE,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,MAAA,CAAA,YAAA,EAAA,KAAA,IAAA,CAAA,GAAA,CAA8C;;IAE/C,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,KAAA,CAAa;;;IATlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAsD;IACpD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAAH,YAAA,CASC;IACH,EAAA,CAAA,YAAA,EAAK;;;IAVH,EAAA,CAAA,SAAA,EASC;AATD,IAAA,EAAA,CAAA,UAAA,CAAA,qBAAc,CASb;;;;IApCL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAYC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC5B,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAErB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC/B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAmE;IACrE,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACpB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;;;;;IAnBvB,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAA6B;AAI7B,IAHA,4CAAuB,CAAA,YAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAGE;;IAInB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkB;IAAlB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,EAAA,CAAkB;IAKxB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;AAGzC,IAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,cAAA,CAAyC,CAAA,yBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CACF,kDACG,CAAA,gCAAA,EAAA,IAAA,CACH;;;IA2CvC,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAgD;;;;IAAlC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,aAAA,CAA+B;;;;IAvB/C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAUC;AADC,IADA,yHAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,CAAA,CAAC,wKAC5B,MAAA,CAAA,SAAA,CAAU,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAEhC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAClC,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACpB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;;;;;AAdvB,IADA,iDAAyB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACF;;IAIb,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;IAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAmB;IAI7B,EAAA,CAAA,SAAA,EAAwC;AAGxC,IAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,aAAA,CAAwC,CAAA,yBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,IAAA,MAAA,CAAA,SAAA,EAAA,KAAA,WAAA,CAC8B,kDAC5B,CAAA,gCAAA,EAAA,IAAA,CACH;;;IAgCvC,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAgD;;;;IAAlC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,aAAA,CAA+B;;;;IAvB/C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAUC;AADC,IADA,yHAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,CAAA,CAAC,yKAC5B,MAAA,CAAA,SAAA,CAAU,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAEhC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAClC,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACpB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;;;;;AAdvB,IADA,iDAAyB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACF;;IAIb,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;IAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAmB;IAI7B,EAAA,CAAA,SAAA,EAAwC;AAGxC,IAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,cAAA,CAAwC,CAAA,yBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,IAAA,MAAA,CAAA,SAAA,EAAA,KAAA,WAAA,CAC8B,kDAC5B,CAAA,gCAAA,EAAA,IAAA,CACH;;;;IAsC7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAKC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,4FAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAc,MAAA,CAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACrB,gCAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC5B,EAAA,CAAA,YAAA,EAAO;;;;;IAHN,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,KAAA,IAAA,MAAA,CAAA,KAAA,EAAA,IAAA,KAAA,IAAA,MAAA,CAAA,KAAA,EAAA,CAA4C;;;IAJlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA8B;IAC5B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,iEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAOC;IACH,EAAA,CAAA,YAAA,EAAM;;;IARJ,EAAA,CAAA,SAAA,EAOC;IAPD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAOC;;;;IAXT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmE;AAAtC,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,8EAAA,CAAA,MAAA,EAAA,EAAA,OAAa,uBAAuB,CAAA,CAAA,CAAA,CAAC;IAChE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAwD;AAA/B,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,+EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAc,MAAA,CAAA,SAAA,CAAU,CAAC,EAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IACrD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAWC;IACH,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA6B;AAC/D,IAD+D,iBAAM,EAC/D;;;IAdF,EAAA,CAAA,SAAA,CAAA,CAAA,CAWC;IAXD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAWC;IAE6B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6B;IAA7B,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,KAAA,EAAA,EAAA,UAAA,EAAA,MAAA,CAAA,KAAA,EAAA,CAA6B;;;;IAvCjE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAWC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC5B,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAEpB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAClC,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACpB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;;;;;IAjBvB,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAA+B;AAG/B,IADA,iDAAyB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACF;;IAIb,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;IAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAmB;IAI7B,EAAA,CAAA,SAAA,EAAyC;AAGzC,IAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,eAAA,CAAyC,CAAA,yBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CACF,kDACG,CAAA,gCAAA,EAAA,IAAA,CACH;;;;IAyBzC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAUC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC5B,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAEpB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAClC,EAAA,CAAA,YAAA,EAAS;;;;IATP,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAAkC;AAIlC,IADA,iDAAyB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACF;;IAIb,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAmB;;;AAZjC,IA3IA,yEAAmB,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,CAyCE,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,CA2BA,mDA2BJ,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CA4CP;;;;AA5IZ,IAAA,EAAA,CAAA,aAAA,CAAA,CAAA,QAAA,GAAA,OAAA,MAAA,SAAS,GAAA,CAAA,GAAA,QAAA,KAAT,WAAW,oBAAX,WAAW,GAAA,CAAA,GAAA,QAAA,KAAX,OAAO,GAAA,CAAA,GAAA,CAAA,CA2JN;;;IA/JH,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAqB;IAGrB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,CA6JC;;;;IAhKD,EAAA,CAAA,aAAA,CAAA,EAAA,aAAA,KAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACD,EAAA,CAAA,SAAA,EA6JC;IA7JD,EAAA,CAAA,UAAA,CAAA,WAAA,CA6JC;;;;IAIH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAQC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,QAAA,CAAA,MAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClB,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IACtB,EAAA,CAAA,YAAA,EAAW;;;AALV,IADA,sCAAiB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACM;;;;;IAOzB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,CAcC;IANC,6KAAS,MAAA,CAAA,OAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAC,sKACV,MAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAC,kLACV,MAAA,CAAA,aAAA,CAAA,MAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAC,8KACxB,MAAA,CAAA,iBAAA,CAAA,MAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAC,8KAC1B,MAAA,CAAA,iBAAA,CAAA,MAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC/B,MAAA,CAAA,KAAA,CAAA,IAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IACtB,EAAA,CAAA,YAAA,EAAM;;;;;;;IAaP,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAiE;AAAxC,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,6DAAA,CAAA,MAAA,EAAA,EAAA,OAAe,uBAAuB,CAAA,CAAA,CAAA,CAAC;IAC9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,YAAA,EAAM;IAC1E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA+E;IAA/B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAa,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAwB;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAwC;IAAA,EAAA,CAAA,YAAA,EAAS;IACzJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAgF;IAAhC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAa,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAwB;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAyC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC3J,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA+E;AAA/B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAoB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAA0C;IAAA,EAAA,CAAA,YAAA,EAAS;IAC5J,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAyE;AAAzB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAA0C;IAAA,EAAA,CAAA,YAAA,EAAS;IACtJ,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IACpC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAiC;IAAA,EAAA,CAAA,YAAA,EAAM;IACvE,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA6E;IAA7B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAU,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAwB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAyC;IAAA,EAAA,CAAA,YAAA,EAAS;IACxJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA6E;IAA7B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAU,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAwB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAyC;IAAA,EAAA,CAAA,YAAA,EAAS;IACxJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA4E;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,wBAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAuC;IAAA,EAAA,CAAA,YAAA,EAAS;IACtJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAsE;AAAtB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAuC;IAAA,EAAA,CAAA,YAAA,EAAS;IAChJ,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IACpC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAkC;IAAA,EAAA,CAAA,YAAA,EAAM;IACxE,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAuE;AAAvB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAA2B;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAA4C;IAAA,EAAA,CAAA,YAAA,EAAS;IACxJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA4E;IAA5B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAA8B;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAuC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC3J,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA8E;IAA9B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAU,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAyC;IAAA,EAAA,CAAA,YAAA,EAAS;IACjK,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAA6E;IAA7B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAU,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAA+B;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAwC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC9J,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IACpC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAyG;AAAvB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAwC;IAAA,EAAA,CAAA,YAAA,EAAS;IACpL,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAwG;AAAtB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAiC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAuC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC1L,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IACpC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAuE;AAAvB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC9I,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IACpC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAkG;AAAxB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAa,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAyC;AACvK,IADuK,iBAAS,EAC1K;;;IAxB4B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;IAApC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAoC;IACoC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAwC;IAAxC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAwC;IACvC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;IAAzC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAyC;IACzC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0C;IAA1C,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAA0C;IAChD,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0C;IAA1C,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,CAA0C;IAE7G,EAAA,CAAA,SAAA,CAAA,CAAA,CAAiC;IAAjC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAiC;IACqC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;IAAzC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAyC;IACzC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;IAAzC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAyC;IACzC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;IAAvC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAuC;IAC7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;IAAvC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAuC;IAEvG,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkC;IAAlC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAkC;IACiC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA4C;IAA5C,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,8BAAA,CAAA,CAA4C;IACpC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;IAAvC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAuC;IACnC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;IAAzC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAyC;IAC3C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAwC;IAAxC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAwC;IAErG,EAAA,CAAA,SAAA,CAAA,CAAA,CAAiC;IAAjC,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAiC;IAAkD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAwC;IAAxC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,0BAAA,CAAA,CAAwC;IAC3H,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAiC;IAAyD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;IAAvC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,yBAAA,CAAA,CAAuC;IAEhF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;IAApC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAoC;IAET,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;IAAzC,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,2BAAA,CAAA,CAAyC;;;;IA2BjK,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA6H;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,4BAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,YAAA,EAAS;;;IAAlF,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,KAAA,CAAsB;;;;;IAbhF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAiE;AAAtC,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,OAAa,uBAAuB,CAAA,CAAA,CAAA,CAAC;AAE5D,IADF,+BAAgC,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAC2E;IAApC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAA,GAAA,CAAiB,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAqC;IAAA,EAAA,CAAA,YAAA,EAAS;IACvJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAuG;IAAnC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAA,GAAA,CAAiB,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoC;AAC7I,IAD6I,iBAAS,EAChJ;AAEJ,IADF,+BAAmC,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CACsB;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,cAAA,CAAe,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,YAAA,EAAS;IACpG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAuD;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,cAAA,CAAe,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,YAAA,EAAS;IACpG,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAyD;IAAnC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,cAAA,CAAe,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAsC;IAAA,EAAA,CAAA,YAAA,EAAS;IACxG,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAwD;IAAlC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,cAAA,CAAe,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,CAAqC;AAC/F,IAD+F,iBAAS,EAClG;IACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAqC;IACnC,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAM;AAEJ,IADF,kCAAqC,CAAA,EAAA,EAAA,MAAA,CAC7B;IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAA2C;IAAA,EAAA,CAAA,YAAA,EAAO;IACxD,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAA2D;AAAvC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,iCAA0B,CAAA,CAAA,CAAA,CAAA,CAAC;IAAxD,EAAA,CAAA,YAAA,EAA2D,EACrD,EACJ;;;IAlBoB,EAAA,CAAA,SAAA,CAAA,CAAA,CAA8C;IAA9C,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,EAAA,KAAA,OAAA,CAA8C;IAAqC,EAAA,CAAA,SAAA,EAAqC;IAArC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAqC;IACxH,EAAA,CAAA,SAAA,EAA6C;IAA7C,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,EAAA,KAAA,MAAA,CAA6C;IAAoC,EAAA,CAAA,SAAA,EAAoC;IAApC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAoC;IAGpF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;IAApC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAoC;IACpC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;IAApC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBAAA,CAAA,CAAoC;IAClC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAsC;IAAtC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAsC;IACvC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqC;IAArC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,CAAqC;IAG7F,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAEC;IAGK,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2C;IAA3C,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,6BAAA,CAAA,CAA2C;;;IAgBrD,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAgD;;;;IAAlC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,aAAA,CAA+B;;;;IAQzC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAMC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,wBAAa,CAAA,CAAA,CAAA,CAAA,CAAC;IACxB,EAAA,CAAA,YAAA,EAAS;;;IAHR,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,KAAA,CAAsB;;;;;IAN9B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA0E;AAAtC,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,OAAa,uBAAuB,CAAA,CAAA,CAAA,CAAC;IACvE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAqC;IACnC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAQC;IACH,EAAA,CAAA,YAAA,EAAM;AAEJ,IADF,iCAAqC,CAAA,CAAA,EAAA,MAAA,CAC7B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,YAAA,EAAO;IACnD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAqD;AAAjC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAoB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAlD,EAAA,CAAA,YAAA,EAAqD,EAC/C,EACJ;;;IAdF,EAAA,CAAA,SAAA,CAAA,CAAA,CAQC;IARD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAQC;IAGK,EAAA,CAAA,SAAA,CAAA,CAAA,CAAsC;IAAtC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,CAAsC;;ACnQlD,MAAM,IAAI,GAAqC;AAC7C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,MAAM;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,EAAE,EAAE,MAAM;AACV,IAAA,EAAE,EAAE,cAAc;AAClB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,IAAI,EAAE,MAAM;CACb;AAED;AACA,MAAM,OAAO,GAAyC;AACpD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,mBAAmB;AACvB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,KAAK,EAAE,cAAc;CACtB;AAED,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAC3E,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAC5E;AAED,MAAM,eAAe,GAAoB;AACvC,IAAA,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;IAChE,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1B,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;AAC1D,IAAA,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;CACnC;AAED;AACA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;AAC3F,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM;AAC1D,IAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;AACnF,CAAA,CAAC;AACF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB;IACzF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB;AAC9F,CAAA,CAAC;AACF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzG;AACA,MAAM,eAAe,GAAG,0BAA0B;AAClD,MAAM,cAAc,GAAG,sBAAsB;AAE7C;;;;;;;;;;AAUG;MAUU,WAAW,CAAA;AAqEtB,IAAA,WAAA,GAAA;QApES,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,eAAe;oFAAC;QAChD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,QAAQ;QACrB,IAAA,CAAA,MAAM,GAAG,SAAS,CAA0B,QAAQ;mFAAC;QAC9D,IAAA,CAAA,UAAU,GAAiB,IAAI;QAEpB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK;sFAAC;QACzB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAuC,WAAW;sFAAC;QACrE,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK;uFAAC;QAC1B,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK;sFAAC;;QAGzB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;QAC1B,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC;kFAAC;QACjB,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC;kFAAC;QACjB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;QACzB,IAAA,CAAA,SAAS,GAAG,MAAM,CAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;sFAAC;QAC5D,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK;uFAAC;QAC1B,IAAA,CAAA,YAAY,GAAG,MAAM,CAAmB,OAAO;yFAAC;QAC3D,IAAA,CAAA,OAAO,GAAgC,IAAI;QAC3C,IAAA,CAAA,MAAM,GAAwE,IAAI;;QAEvE,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,CAAC;qFAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAwB;QAC1C,IAAA,CAAA,SAAS,GAAgC,IAAI;QAC7C,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK;AAER,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAmC,MAAM;AACjF,YAAA,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE;YACxD,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;AACzE,SAAA;yFAAC;AACiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;uFACnH;AACkB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE;uFAAC;QAC3C,IAAA,CAAA,YAAY,GAAG,MAAM,CAAS,GAAG;yFAAC;AAElC,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;;AAGkB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAkB,MAAK;AAC3D,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,OAAO,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,CAAqB,GAAG,CAAC,CAAkB,CAAC;QAC5E,CAAC;qFAAC;;;;;QAOA,MAAM,CAAC,MAAK;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;AACvC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,CAAC;gBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,QAAA,CAAC,CAAC;;QAGF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;AACvC,QAAA,MAAM,MAAM,GAAG,CAAC,CAAa,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AACrC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACnD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;AAC9C,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC;AAC1C,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAChC,YAAA,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACtD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC;AAC/C,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,IAAI,CAAC,IAAiB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB;AACU,IAAA,IAAI,CAAC,IAAiB,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE,CAAC;IACxC;AACU,IAAA,QAAQ,CAAC,IAAiB,EAAA;QAClC,IAAI,IAAI,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE;AAC7C,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C;IAEQ,QAAQ,GAAA;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;AACvC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE;QACjC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;IAC3E;IAEQ,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;AACzC,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU;QAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACxC,YAAA,IAAI,GAAG,IAAI,GAAG,KAAK,cAAc,EAAE;AACjC,gBAAA,IAAI;AACF,oBAAA,IAAI,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAAE,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBACtD;AAAE,gBAAA,MAAM;;gBAER;YACF;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;;AAE3B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE;AACjC,QAAA,IAAI,IAAI,GAAG,GAAG,EAAE,UAAgC;QAChD,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;YACvC,IAAI,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC1B;YACF;AACA,YAAA,IAAI,GAAG,IAAI,CAAC,aAAa;QAC3B;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5B;IAEU,OAAO,GAAA;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;AACvC,QAAA,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;IACtC;AACU,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC;IAC7D;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;IACtC;IACQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE;QACjC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,IAAI;IACrF;IACQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE;AACjC,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;YAC1B,GAAG,CAAC,eAAe,EAAE;AACrB,YAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B;IACF;AAEU,IAAA,IAAI,CAAC,IAAiB,EAAA;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC;QACF;AACA,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB;QACF;QACA,IAAI,CAAC,WAAW,EAAE;QAClB,QAAQ,IAAI;YACV,KAAK,MAAM,EAAE;AACX,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,IAAI,GAAG,EAAE;oBACP,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAClC,oBAAA,IAAI,IAAI;wBAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;gBAC3D;gBACA;YACF;AACA,YAAA,KAAK,MAAM;AACT,gBAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC5B;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrB;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,KAAK,IAAI,CAAC,UAAU,EAAE;gBACtB;YACF,SAAS;AACP,gBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,gBAAA,IAAI,GAAG;AAAE,oBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;YACpC;;QAEF,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,YAAY,EAAE;IACrB;;IAGU,SAAS,GAAA;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;IACU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;AACU,IAAA,SAAS,CAAC,GAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,gBAAgB,EAAE;QACvB,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,YAAY,EAAE;IACrB;;AAGU,IAAA,SAAS,CAAC,IAA+B,EAAA;QACjD,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;IACU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;AACU,IAAA,UAAU,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;AACjC,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK;YACzE,IAAI,CAAC,OAAO,EAAE;YACd;QACF;QACA,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,WAAW,EAAE;YACpC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;QACjD;AAAO,aAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;YAC7D,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;QACjD;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;AACU,IAAA,YAAY,CAAC,KAAY,EAAA;QACjC,IAAI,CAAC,UAAU,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IAC3D;;AAGQ,IAAA,MAAM,SAAS,GAAA;AACrB,QAAA,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE;AAC9C,YAAA,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE;gBACtB,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAClC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;AAC1C,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjD,IAAI,CAAC,WAAW,EAAE;oBAClB,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;oBAC/C,IAAI,CAAC,OAAO,EAAE;oBACd;gBACF;YACF;YACA,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE;YAClB,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE;QAChB;AAAE,QAAA,MAAM;;QAER;IACF;AACQ,IAAA,MAAM,UAAU,GAAA;AACtB,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE;YAClB,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE;QAChB;AAAE,QAAA,MAAM;;QAER;IACF;;AAGU,IAAA,OAAO,CAAC,KAAqB,EAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;AACtD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;QAC7D,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,IAAI,EAAE;AACR,YAAA,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpE;aAAO;YACL,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;QACjD;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;;IAGU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB;IACU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB;IACU,WAAW,CAAC,IAAY,EAAE,IAAY,EAAA;QAC9C,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAA,UAAA,EAAa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAA,kBAAA,EAAqB,CAAC,CAAA,GAAA,CAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,WAAA,CAAa;QACnH,MAAM,GAAG,GAAG,CAAA,IAAA,EAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,KAAA,CAAO;QACtF,MAAM,IAAI,GAAG,CAAA,OAAA,EAAU,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,QAAA,CAAU;AACjF,QAAA,MAAM,KAAK,GAAG,CAAA,4BAAA,EAA+B,QAAQ,CAAA,EAAG,IAAI,UAAU;QACtE,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,WAAA,CAAa,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE;IAChB;;AAGU,IAAA,aAAa,CAAC,KAAiB,EAAA;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,MAAM,IAAI,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAAgC;QAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;QAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO;QAC7C,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;IACU,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B;IAEQ,QAAQ,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;IAC/C;IACQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE;IAChB;AAEU,IAAA,YAAY,CAAC,GAAqB,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC,YAAA,EAAE,CAAC,SAAS,GAAG,MAAM;AACrB,YAAA,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC5C;QACA,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;QAChD,IAAI,QAAQ,EAAE;YACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,YAAA,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC1D,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAChC;QACA,IAAI,CAAC,YAAY,EAAE;IACrB;IACU,YAAY,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3C,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,YAAY,EAAE;YACnB;QACF;QACA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE;AAChE,QAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE;AACxD,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE;IACrB;AACU,IAAA,SAAS,CAAC,GAAsB,EAAA;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAoC;AACpD,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;QAC3C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE;IACrB;IACU,SAAS,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;QACrB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,YAAY,EAAE;YACnB;QACF;AACC,QAAA,IAAI,CAAC,aAAqC,CAAC,MAAM,EAAE;QACpD,IAAI,CAAC,YAAY,EAAE;IACrB;;IAEU,eAAe,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAoC;AACpD,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AACjF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE;IACrB;;IAEU,kBAAkB,GAAA;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI;AACtC,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AACvB,YAAA,IAAI,CAAC;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;QACpD;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,YAAY,EAAE;IACrB;IACQ,WAAW,CAAC,IAA0B,EAAE,GAAgB,EAAA;AAC9D,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG;YAAE;QACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AAC7E,QAAA,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IACtB;IACU,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE;QACzB,IAAI,CAAC,YAAY,EAAE;IACrB;AACU,IAAA,SAAS,CAAC,CAA8B,EAAA;AAChD,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE;IACrB;;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;AAAE,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;IAC3C;IACU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;;IAGU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B;IACU,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;IACQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;AAC7D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK,GAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAA4B,GAAG,EAAE;IAC9F;AACU,IAAA,cAAc,CAAC,CAAuC,EAAA;AAC9D,QAAA,MAAM,EAAE,GAA2B,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC/E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,MAAM,EAAE;AAChB,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM;AAC/B,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE;YAC7B;iBAAO;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO;gBAChC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC;QACF;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;AACU,IAAA,cAAc,CAAC,KAAa,EAAA;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO;AAClG,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK;QAC7D;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;AACU,IAAA,kBAAkB,CAAC,KAAY,EAAA;QACvC,IAAI,CAAC,cAAc,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IAC/D;AACQ,IAAA,kBAAkB,CAAC,KAAuB,EAAA;AAChD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI;YAAG,GAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,CAAC,GAAG;IACpE;;AAGU,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO;QAClD,MAAM,IAAI,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAAgC;QAC3F,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,cAAc,EAAE;YACrB;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;QACzC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;;YAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACnC,YAAA,MAAM,GAAG,GAAG,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAoC;YAC7F,IAAI,GAAG,EAAE;gBACP,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE;gBACvF;YACF;QACF;;QAEA,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;AACU,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC3C,MAAM,IAAI,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAAgC;QAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;AAC3C,QAAA,IAAI,CAAC,MAAM;YAAE;AACb,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC9E,QAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE;AACQ,IAAA,YAAY,CAAC,KAAiB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI;YACtC;QACF;;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAAE;AAC7C,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,QAAA,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC;YAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAgC;AACrE,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE;QAC1E,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AACjD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1C;IACQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YAClB,IAAI,CAAC,OAAO,EAAE;QAChB;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,IAAI,CAAC,cAAc,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;;AAGQ,IAAA,SAAS,CAAC,KAAuB,EAAA;QAIvC,MAAM,IAAI,GAA6B,EAAE;AACzC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoF;QACvG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;AACrB,YAAA,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,CAAC,EAAE,CAAC;AACvB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC;AACjC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC;AACjC,gBAAA,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACzC,gBAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE;AACnC,oBAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;oBACnB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;AAAE,wBAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;gBAClE;gBACA,CAAC,IAAI,OAAO;YACd;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IACtB;IAEQ,YAAY,CAAC,MAA4B,EAAE,KAA2B,EAAA;QAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAA4B;AAChE,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE;AACd,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;;AAE3D,QAAA,KAAK,IAAI,OAAO,GAAG,IAAI,EAAE,OAAO,GAAI;YAClC,OAAO,GAAG,KAAK;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC7B,gBAAA,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,oBAAA,IAAI,CAAC,IAAI;wBAAE;oBACX,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE;AACxB,oBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;AAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAE,OAAO,GAAG,IAAI;oBAAE;AAC1C,oBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;AAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAE,OAAO,GAAG,IAAI;oBAAE;AAC1C,oBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;wBAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;wBAAE,OAAO,GAAG,IAAI;oBAAE;AAC1E,oBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;wBAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;wBAAE,OAAO,GAAG,IAAI;oBAAE;gBAC5E;YACF;QACF;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB;AAC3C,QAAA,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC7B,YAAA,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,gBAAA,IAAI,IAAI;AAAE,oBAAA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB;QACF;QACA,IAAI,CAAC,cAAc,EAAE;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B;IAEQ,cAAc,GAAA;AACpB,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC1E,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB;;IAGU,UAAU,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;YAAE;QAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAqB;QAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE;YACxB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAA,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AAAE,YAAA,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChF;AACA,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI,EAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;;AAEhH,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,IAAI,KAAK,OAAO;gBAAE;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAClC,YAAA,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,CAAC,SAAS,IAAI,CAAA,CAAA,EAAI,IAAI,EAAE;YAC5D,IAAI,CAAC,MAAM,EAAE;QACf;AACA,QAAA,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,QAAA,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC;AAAE,YAAA,OAAO,CAAC,OAAO,GAAG,OAAO;;AAAO,YAAA,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;QACnF,IAAI,OAAO,GAAG,CAAC;AAAE,YAAA,OAAO,CAAC,OAAO,GAAG,OAAO;;AAAO,YAAA,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE;IAChB;IACU,SAAS,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAqB;QACvD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;;AAE/B,QAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1C,YAAA,MAAM,KAAK,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO;YAClD,IAAI,KAAK,IAAI,CAAC;gBAAE;AAChB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAChC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACtD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,gBAAA,EAAE,CAAC,SAAS,GAAG,MAAM;AACrB,gBAAA,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC;YAC9B;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE;IAChB;;AAEQ,IAAA,iBAAiB,CAAC,GAAwB,EAAE,OAAe,EAAE,KAAuB,EAAA;QAC1F,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrC,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;AAAE,gBAAA,OAAO,IAAI;QACrC;AACA,QAAA,OAAO,IAAI;IACb;IACU,QAAQ,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAChC;IACU,QAAQ,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;AAIG;AACK,IAAA,WAAW,CAAC,GAAW,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,OAAO;AACtE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE;AAC9D,QAAA,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI;IACvD;AAEQ,IAAA,YAAY,CAAC,IAAY,EAAA;QAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AAC9C,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI;AACpB,QAAA,MAAM,IAAI,GAAG,CAAC,IAAgB,KAAU;AACtC,YAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;AACjC,oBAAA,EAAE,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;oBAC5C;gBACF;AACA,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACpC,oBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACzB,wBAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC/B;yBAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;;;AAG5C,wBAAA,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAAE,4BAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpG;AAAO,yBAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AAC3B,wBAAA,MAAM,IAAI,GAAG,IAAI,CAAC;6BACf,KAAK,CAAC,GAAG;6BACT,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;6BACnB,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;wBAC3E,IAAI,IAAI,CAAC,MAAM;AAAE,4BAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AACrD,4BAAA,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;oBAClC;AAAO,yBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE;AACvD,wBAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC/B;gBACF;YACF;AACF,QAAA,CAAC;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACjB,OAAO,GAAG,CAAC,SAAS;IACtB;4GAjuBW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;ADvHtB,YADF,8BAAuH,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAClE;YACjD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAkKC;YACH,EAAA,CAAA,YAAA,EAAM;AAWJ,YAVF,kFAAoB,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAUX;YAmBT,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,aAAA,EAAA,EAAA,CAQC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,SAAA,EAAW,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OACnB,eAAW,CAAA,CAAA,CAAA,CAAC;YA+BxB,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,aAAA,EAAA,EAAA,CAQC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,WAAA,EAAa,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OACrB,iBAAa,CAAA,CAAA,CAAA,CAAC;YA0B1B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAQC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OACpB,gBAAY,CAAA,CAAA,CAAA,CAAC;YAI3B,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAyB;;AAvRiD,YAA/C,2DAA8C,CAAA,yBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA6C;YAElH,EAAA,CAAA,SAAA,CAAA,CAAA,CAkKC;AAlKD,YAAA,EAAA,CAAA,UAAA,CAAA,cAAU,CAkKT;YAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CA0BC;YA1BD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CA0BC;YAKC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;YAAzC,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,GAAA,CAAA,SAAA,EAAA,CAAyC,CAAA,yBAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACH,CAAA,gCAAA,EAAA,IAAA,CACC;YAoCvC,EAAA,CAAA,SAAA,EAAyC;YAAzC,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,GAAA,CAAA,SAAA,EAAA,CAAyC,CAAA,yBAAA,EAAA,GAAA,CAAA,UAAA,EAAA,CACD,CAAA,gCAAA,EAAA,IAAA,CACD;YA+BvC,EAAA,CAAA,SAAA,EAAyC;YAAzC,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,GAAA,CAAA,SAAA,EAAA,CAAyC,CAAA,yBAAA,EAAA,GAAA,CAAA,SAAA,EAAA,IAAA,GAAA,CAAA,SAAA,EAAA,KAAA,QAAA,CAC0B,CAAA,gCAAA,EAAA,IAAA,CAC5B;AC3J/B,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,CAAA,EAAA,MAAA,EAAA,CAAA,i0TAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAK3E,WAAW,EAAA,CAAA;cATvB,SAAS;2BACE,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAA,IAAA,EAGjF,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,QAAA,EAAA,+gdAAA,EAAA,MAAA,EAAA,CAAA,i1SAAA,CAAA,EAAA;+sBAiBwB,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAf1D,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICzDhB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAwB;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAA/B,EAAA,CAAA,SAAA,EAAwB;IAAxB,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CAAwB;;;;IA7B1D,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B;AAE7B,IADA,4BAAoC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAC4D;IAChG,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAWE;AADA,IADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClC,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAVzB,EAAA,CAAA,eAAA,EAWE;IACF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAWE;AADA,IADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACnC,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;AAE3B,IAZE,oBAWE,EACE;IACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmB;;;IA1Ba,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyB;AAAC,IAA1B,4CAAyB,CAAA,OAAA,EAAA,GAAA,GAAA,MAAA,CAAA,OAAA,EAAA,EAAA,GAAA,CAAkC;IAIvF,EAAA,CAAA,SAAA,EAAc;AAId,IAJA,sCAAc,CAAA,KAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACC,uBACA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACQ;;IAQvB,EAAA,CAAA,SAAA,EAAc;AAId,IAJA,sCAAc,CAAA,KAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACC,wBACC,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACO;;IAM3B,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAeC,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,eAAA,EAAO;;;IAArB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;;;IAbhD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAWE;AADA,IADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAqC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACrC,mBAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAVzB,EAAA,CAAA,eAAA,EAWE;IACF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmB;;;IAJjB,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,MAAA,CAAA,OAAA,EAAA,EAAA,GAAA,CAA4B;AAD5B,IAJA,sCAAc,CAAA,KAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CACC,0BACG,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACK;IAKzB,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;AAjEP;;;;;;;;;;;;AAYG;MA2DU,SAAS,CAAA;AA1DtB,IAAA,WAAA,GAAA;QA2DW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,CAAC;kFAAC;;QAEhC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;;QAGrD,IAAA,CAAA,GAAG,GAAG,KAAK,CAA6B,CAAC;gFAAC;QAC1C,IAAA,CAAA,GAAG,GAAG,KAAK,CAA6B,GAAG;gFAAC;QAC5C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,CAAC;iFAAC;QACf,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACzD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAMZ,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iFAAC;AAChD,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;iFAAC;;AAGpD,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAmB,MAAK;AACtD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,CAAC;iFAAC;AACiB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,CAAC;mFAAC;AACiB,QAAA,IAAA,CAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gFAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iFAAC;AAiBrC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;mFAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oFAAC;AACnE,IAAA;;IApCS,KAAK,CAAC,CAA6B,EAAE,QAAgB,EAAA;AAC3D,QAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,QAAQ;IAC7C;AAiBU,IAAA,MAAM,CAAC,CAAS,EAAA;QACxB,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC;AACU,IAAA,OAAO,CAAC,CAAS,EAAA;QACzB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC;AAEQ,IAAA,GAAG,CAAC,GAAW,EAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE;QACrB,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,KAAK,IAAI,GAAG;IACpD;0GAjDW,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AArBhB,YAhCF,kEAAe,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,CAgCN;;YAhCT,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAgDC;;;iFAKQ,SAAS,EAAA,CAAA;cA1DrB,SAAS;2BACE,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,uhGAAA,CAAA,EAAA;;kFAEvB,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICzDd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CASC;IAJC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAA,OAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACN,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,OAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAChB,MAAA,CAAA,KAAA,CAAA,GAAA,CAAU,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAE5B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAwB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IANhC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,OAAA,KAAA,MAAA,CAAA,KAAA,EAAA,IAAA,MAAA,CAAA,KAAA,EAAA,CAAA,CAAgD;IAChD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,EAAA,CAAqC;;;AAnB/C;;;;;;AAMG;MAyBU,SAAS,CAAA;AAxBtB,IAAA,WAAA,GAAA;QAyBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,CAAC;kFAAC;;QAExB,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,CAAC;kFAAC;QAChB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QAEZ,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC;kFAAC;AACjB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;kFAAC;AAOjG,IAAA;AALW,IAAA,IAAI,CAAC,IAAY,EAAA;QACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;0GAhBW,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAlBlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoG;YAClG,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAWC;YACH,EAAA,CAAA,YAAA,EAAM;;;YAZJ,EAAA,CAAA,SAAA,EAWC;AAXD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAWN;4BAdK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,6fAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAoBN,SAAS,EAAA,CAAA;cAxBrB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,6eAAA,CAAA,EAAA;;kFAEvB,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IChBC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAApB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;;;IAM9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAyB;IACzB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;IAC1D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC3D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAqI;AAA/E,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,8BAAoB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAiD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAyB;AAChK,IADgK,iBAAS,EACpK;;;;IAHiC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,IAAA,CAAe;IACf,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAgB;IACiC,EAAA,CAAA,SAAA,EAA+C;;;;IAN1I,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAAA,YAAA,CAOC;IACH,EAAA,CAAA,YAAA,EAAK;;;IARH,EAAA,CAAA,SAAA,EAOC;AAPD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CAON;;AApCT;;;;;AAKG;MAsCU,aAAa,CAAA;AArC1B,IAAA,WAAA,GAAA;QAsCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK;qFAAC;AA8B5C,IAAA;AA5BW,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE;IAClB;AACU,IAAA,UAAU,CAAC,KAAgB,EAAA;QACnC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/C;AACU,IAAA,MAAM,CAAC,KAAgB,EAAA;QAC/B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;IAChE;AACQ,IAAA,QAAQ,CAAC,IAAiC,EAAA;QAChD,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IACU,MAAM,CAAC,IAAU,EAAE,KAAY,EAAA;QACvC,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACxD;AACU,IAAA,IAAI,CAAC,IAAU,EAAA;AACvB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;AAC3B,QAAA,OAAO,EAAE,GAAG,IAAI,GAAG,CAAA,EAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK,GAAG,CAAA,EAAG,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;IAC3E;8GAvCW,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,WAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YA/BtB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAQC;AADC,YAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,YAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,YAAA,CAAA,KAAA,EAAiB,KAAC,CAAA,UAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OACf,GAAA,CAAA,UAAA,CAAA,MAAA,CAAkB,CAAA,CAAA,CAAA,CAAC,CAAA,WAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAClB,iBAAa,KAAK,CAAC,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,0CAAA,CAAA,MAAA,EAAA,EAAA,OACzB,kBAAc,CAAA,CAAA,CAAA,CAAC;YAEvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAA+G;AAA9B,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAU,oBAAgB,CAAA,CAAA,CAAA,CAAC;YAA5G,EAAA,CAAA,YAAA,EAA+G;AAE/G,YADA,8BAAwD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACyB;YACjF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAClB,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAsB;;AAZpB,YADA,6CAAgC,CAAA,aAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACA;YAMK,EAAA,CAAA,SAAA,EAAmB;AAAC,YAApB,qCAAmB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAwB;YAE7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;YAAvC,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,cAAA,CAAuC;YAC1E,EAAA,CAAA,SAAA,EAA0E;YAA1E,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA0E;YAG5E,EAAA,CAAA,SAAA,EAWC;YAXD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAWC;4BA5BO,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,0/DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAiCN,aAAa,EAAA,CAAA;cArCzB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,MAAA,EAAA,CAAA,k5DAAA,CAAA,EAAA;;kFAE5B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICbhB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQC;AAFC,IAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAE3B,EAAA,CAAA,eAAA,EAAS;;;;IAJR,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,QAAA,CAAgC;IADhC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,QAAA,KAAA,MAAA,CAAA,KAAA,EAAA,CAAqC;IAErC,EAAA,CAAA,aAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAuB;;;AArCnC;;;;;AAKG;MA2CU,cAAc,CAAA;AA1C3B,IAAA,WAAA,GAAA;QA2CW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS;kFAAC;QAChC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW;AACjC,YAAA,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AACvF,SAAA;oFAAC;QACO,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAKhC,IAAA;AAHW,IAAA,KAAK,CAAC,KAAY,EAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IAC1D;+GAZW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,GAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YArCvB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAC+C,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAOvE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,KAAA,CAAA,GAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAoC,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OACtC,gBAAY,CAAA,CAAA,CAAA,CAAC;AAEzB,YAPE,oBAME,EACI;YACR,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAQE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,KAAA,CAAA,MAAA,CAAa,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OACf,gBAAY,CAAA,CAAA,CAAA,CAAC;YAPvB,EAAA,CAAA,eAAA,EAQE;YACF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuC;YACrC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAUC;AAEL,YADE,oBAAM,EACF;;YA/BoC,EAAA,CAAA,SAAA,EAAkC;YAAlC,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAkC;YAGtE,EAAA,CAAA,SAAA,EAAiB;AACjB,YADA,sCAAiB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACM;YAQzB,EAAA,CAAA,SAAA,EAAiB;AACjB,YADA,sCAAiB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACM;YAMvB,EAAA,CAAA,SAAA,CAAA,CAAA,CAUC;AAVD,YAAA,EAAA,CAAA,UAAA,CAAA,aAAS,CAUR;;;iFAOI,cAAc,EAAA,CAAA;cA1C1B,SAAS;2BACE,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,w9CAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICrCvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAtB,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,OAAA,EAAA,CAAe;;;IAEnD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA0C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA4B;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAnC,EAAA,CAAA,SAAA,EAA4B;IAA5B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,oBAAA,EAAA,CAA4B;;;;IAItE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuH;AAAnE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAa,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;;IA4BjJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAiI;AAAhG,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,gGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,4BAAqB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAtE,EAAA,CAAA,YAAA,EAAiI;;;IAAtH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAqB,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAkE,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAA4B;;;;IAE9H,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAA6H;AAA9F,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,gGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,0BAAmB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAlE,EAAA,CAAA,YAAA,EAA6H;;;IAAlH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,OAAA,EAAA,CAAmB,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAgE,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAA4B;;;;AAN1H,IADF,+BAA4B,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CACqE;IAA/B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,GAAA,CAAY,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,YAAA,EAAS;IACtI,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA2F;IAA7B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,GAAA,CAAY,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAA4B;AACzH,IADyH,iBAAS,EAC5H;AAGJ,IAFF,iHAA6B,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAEpB;AAIP,IADF,+BAAkC,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CACS;AAAnB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,eAAQ,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAA2B;AACtE,IADsE,iBAAa,EAC7E;;;IAVkB,EAAA,CAAA,SAAA,EAAyC;IAAzC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,OAAA,EAAA,KAAA,OAAA,CAAyC;IAAgC,EAAA,CAAA,SAAA,EAA8B;IAA9B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAA8B;IACvG,EAAA,CAAA,SAAA,EAAuC;IAAvC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,OAAA,EAAA,KAAA,KAAA,CAAuC;IAA8B,EAAA,CAAA,SAAA,EAA4B;IAA5B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAA4B;IAEzH,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,OAAA,EAAA,KAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAIC;IAE0C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAA2B;;;;IAS5D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAyH;AAAzE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAAoD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;IAElK,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;;;;IAI5C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAyH;AAAzE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAAoD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAiC;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;IAEnK,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;;;IAK5C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAQ;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAf,EAAA,CAAA,SAAA,EAAQ;IAAR,EAAA,CAAA,iBAAA,CAAA,KAAA,CAAQ;;;IAOxC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAgE;;;;IAEhE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAUC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0GAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAe,CAAA,CAAA,CAAA,CAAA,CAAC;IAC1B,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAPtB,6DAAgD,CAAA,0BAAA,EAAA,QAAA,CAAA,KAAA,CACH,CAAA,0BAAA,EAAA,QAAA,CAAA,OAAA,CACE,CAAA,gCAAA,EAAA,QAAA,CAAA,UAAA,CACS,CAAA,8BAAA,EAAA,QAAA,CAAA,QAAA,CACJ,CAAA,6BAAA,EAAA,QAAA,CAAA,OAAA,IAAA,QAAA,CAAA,KAAA,CACY;IAEjE,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAc;;;AAXf,IAFF,+HAAkB,CAAA,CAAA,EAAA,kFAAA,EAAA,CAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAET;;;IAFT,EAAA,CAAA,aAAA,CAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAcC;;;IAfH,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,oEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAAE,YAAA,CAgBC;;;IAhBD,EAAA,CAAA,UAAA,CAAA,QAAA,CAgBC;;;AApCL,IAFF,+BAAiC,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAEG;AAG9B,IAFF,oHAAa,CAAA,CAAA,EAAA,qEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAEJ;IAGT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;IAAA,EAAA,CAAA,YAAA,EAAO;AAGxD,IAFF,oHAAY,CAAA,CAAA,EAAA,qEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAEH;IAGX,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAoC;IAClC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,yBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAgC;IAC9B,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAkBC;AAEL,IADE,iBAAM,EACF;;;;;;IAtCF,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;IAJD,EAAA,CAAA,aAAA,CAAA,cAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAIC;IACiC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAiB;IAAjB,EAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,KAAA,CAAiB;IACnD,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,cAAA,KAAA,cAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAIC;IAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;AAFD,IAAA,EAAA,CAAA,UAAA,CAAA,iBAAU,CAET;IAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAkBC;IAlBD,EAAA,CAAA,UAAA,CAAA,SAAA,CAAA,KAAA,CAkBC;;;;IAYL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAiI;AAAhG,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,8GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,4BAAqB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAtE,EAAA,CAAA,YAAA,EAAiI;;;IAAtH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAqB,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAkE,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAA4B;;;;IAE9H,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAA6H;AAA9F,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,8GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,0BAAmB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAlE,EAAA,CAAA,YAAA,EAA6H;;;IAAlH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,OAAA,EAAA,CAAmB,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAgE,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAA4B;;;;AAN1H,IADF,+BAA4B,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CACqE;IAA/B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,GAAA,CAAY,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkC;IAAA,EAAA,CAAA,YAAA,EAAS;IAC1I,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA2F;IAA7B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,GAAA,CAAY,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgC;AAC7H,IAD6H,iBAAS,EAChI;AAGJ,IAFF,+HAA6B,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAEpB;AAIP,IADF,+BAAkC,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CACS;AAAnB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,eAAQ,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAA2B;AACtE,IADsE,iBAAa,EAC7E;;;IAVkB,EAAA,CAAA,SAAA,EAAyC;IAAzC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,OAAA,EAAA,KAAA,OAAA,CAAyC;IAAgC,EAAA,CAAA,SAAA,EAAkC;IAAlC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAkC;IAC3G,EAAA,CAAA,SAAA,EAAuC;IAAvC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,OAAA,EAAA,KAAA,KAAA,CAAuC;IAA8B,EAAA,CAAA,SAAA,EAAgC;IAAhC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAgC;IAE7H,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,OAAA,EAAA,KAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAIC;IAE0C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CAA2B;;;IA1DxE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAkC;IAChC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAAF,YAAA,CA2CC;IACH,EAAA,CAAA,YAAA,EAAM;IAEN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,EAAA,EAAA,CAAA,CAA6B;;;IA9C3B,EAAA,CAAA,SAAA,EA2CC;AA3CD,IAAA,EAAA,CAAA,UAAA,CAAA,eAAQ,CA2CP;IAGH,EAAA,CAAA,SAAA,CAAA,CAAA,CAaC;IAbD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,IAAA,EAAA,KAAA,UAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;;;;IAjFL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAMC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,gBAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAkB,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;AAexB,IAbF,mFAAyB,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,CAahB;IA+DX,EAAA,CAAA,YAAA,EAAM;;;IAjFJ,EAAA,CAAA,WAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,IAAA,EAAA,KAAA,MAAA,CAA+C,CAAA,qBAAA,EAAA,MAAA,CAAA,IAAA,EAAA,KAAA,MAAA,CACA,CAAA,qBAAA,EAAA,MAAA,CAAA,KAAA,EAAA,IAAA,MAAA,CAAA,IAAA,EAAA,KAAA,MAAA,CACW;IAG1D,EAAA,CAAA,SAAA,EA2EC;IA3ED,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,IAAA,EAAA,KAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CA2EC;;ACjEL,MAAM,GAAG,GAAG,CAAC,CAAS,KAAa,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7D,MAAM,KAAK,GAAG,CAAC,CAAO,KAAa,CAAA,EAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAEpG;;;;;;;;;;;;;AAaG;MAUU,YAAY,CAAA;AATzB,IAAA,WAAA,GAAA;QAUW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;kFAAC;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK;mGAAU;QAC7B,IAAA,CAAA,aAAa,GAAG,KAAK,CAAe,IAAI;0FAAC;QACzC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,MAAM;iFAAC;;QAEtC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,CAAC,qFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QACxD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QACtD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAE3C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;qFAAC;AAC7D,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;mFAAC;AACrD,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;iGAAC;QACjG,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AACtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,EAAE;QAClB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;iFAAC;;QAGtE,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,EAAE;sFAAC;QACtB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,EAAE;oFAAC;QACpB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAkB,OAAO;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;;QAE7C,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,EAAE;sFAAC;QACtB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,EAAE;oFAAC;AAElB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAEkB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1C,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,CAAC;uFAAC;QACiB,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;kFAAC;AAyB7C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;YACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,EAAE;AACrB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,gBAAA,OAAO,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;YAC7F;AACA,YAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,gBAAA,MAAM,GAAG,GAAG,CAAC,CAAS,KAAY;AAChC,oBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,oBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,oBAAA,OAAO,CAAC,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,GAAG,CAAC;AAC5B,gBAAA,CAAC;gBACD,OAAO,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,KAAK,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,GAAG,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,GAAG,CAAC,KAAK,CAAC,CAAA,IAAA,CAAM;YAClE;AACA,YAAA,OAAO,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;QAC7F,CAAC;oFAAC;AAEF;;;;AAIG;AACgB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAe,MAAK;YACtD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACxD,gBAAA,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,gBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE;AAC9B,gBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE;gBAC3B,OAAO;oBACL,GAAG,EAAE,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA,CAAE;oBAC3B,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE;oBACnC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;iBAC/B;AACH,YAAA,CAAC,CAAC;QACJ,CAAC;mFAAC;AA2HH,IAAA;AArLS,IAAA,QAAQ,CAAC,CAAS,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;IAChC;AACQ,IAAA,QAAQ,CAAC,CAAS,EAAA;QACxB,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;IACtB;AACQ,IAAA,OAAO,CAAC,GAAW,EAAA;QACzB,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;QACjB,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,CAAA,EAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,EAAE;IAC/F;AACQ,IAAA,OAAO,CAAC,IAAY,EAAA;QAC1B,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;AAC5B,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,YAAA,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;YACtC,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE;QACjD;AACA,QAAA,OAAO,IAAI;IACb;IAuCQ,UAAU,CAAC,CAAS,EAAE,CAAS,EAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;AAC3C,QAAA,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK;AAC9D,QAAA,MAAM,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG;AACxD,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;QAEjD,MAAM,KAAK,GAAgB,EAAE;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAc,EAAE;AACzB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrG,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;gBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;oBACnB,GAAG;oBACH,OAAO;oBACP,KAAK,EAAE,GAAG,KAAK,QAAQ;oBACvB,OAAO,EAAE,GAAG,KAAK,KAAK;oBACtB,KAAK,EAAE,GAAG,KAAK,GAAG;oBAClB,OAAO,EAAE,OAAO,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG;AAC5C,oBAAA,UAAU,EAAE,OAAO,IAAI,GAAG,KAAK,KAAK;AACpC,oBAAA,QAAQ,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG;AAChC,oBAAA,KAAK,EAAE,WAAW,IAAI,CAAC,OAAO;AAC9B,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA,CAAC;YACJ;AACA,YAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB;AACA,QAAA,OAAO,KAAK;IACd;IAEU,UAAU,GAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AACnC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD,YAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;AACtD,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;AAC9B,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpC,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AACnD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;YACjD;AAAO,iBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC;YAC7D;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3B;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AAEU,IAAA,SAAS,CAAC,IAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE;AACjC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;AAC9B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB;AAAO,iBAAA,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B;iBAAO;gBACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5B;AACA,YAAA,OAAO;QACT;QACA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;QACnC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC9C;aAAO;AACL,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;AAChE,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEU,MAAM,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO;YACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO;;AAEnC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACtE;AAAO,aAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;AACrC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,IAAI,CAAC,EAAE,EAAE;gBACP,IAAI,CAAC,KAAK,EAAE;gBACZ;YACF;AACA,YAAA,MAAM,KAAK,GAAG,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAA,CAAE;AACpD,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAA,CAAE;AAChD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC5E;QACA,IAAI,CAAC,KAAK,EAAE;IACd;IAEU,SAAS,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnF;IACU,SAAS,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnF;AACU,IAAA,KAAK,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACtB;6GAlOW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YD9EzB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAYC;YAHC,sFAAS,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,yFACL,GAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,yCAAA,GAAA,EAAA,OACtB,GAAA,CAAA,KAAA,CAAA,IAAA,EAAY,CAAA,CAAA,CAAA,CAAC;AAInB,YAFF,+EAAiB,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAER;YAGT,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4C;YAC5C,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAiB;YAGjB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAyD;YAC3D,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,mDAAA,GAAA,EAAA,OACf,WAAO,CAAA,CAAA,CAAA,CAAC;;;YA3BlB,EAAA,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAqC,CAAA,0BAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACQ,CAAA,yBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACE;YAK/C,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;YAJD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAIC;YAED,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAMD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqC;AAGrC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,WAAA,CAAqC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACH,+CACQ,CAAA,gCAAA,EAAA,IAAA,CACH;AC2C7B,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAA,EAAA,MAAA,EAAA,CAAA,g5KAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAKlE,YAAY,EAAA,CAAA;cATxB,SAAS;2BACE,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAA,IAAA,EAGxE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,QAAA,EAAA,0nLAAA,EAAA,MAAA,EAAA,CAAA,4nKAAA,CAAA,EAAA;;kFAE3B,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IC9CjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAiK;IAAxE,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,KAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAqD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAA/I,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAoC;;;;;IAaxF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAgK;IAAvE,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAAqD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAwB;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAA7I,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAoC;;;AAxChG;;;;;;;;;;;;;AAaG;MAkCU,cAAc,CAAA;AAjC3B,IAAA,WAAA,GAAA;QAkCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI;kFAAC;QAClC,IAAA,CAAA,GAAG,GAAG,KAAK,CAAqB,SAAS;gFAAC;QAC1C,IAAA,CAAA,GAAG,GAAG,KAAK,CAAqB,SAAS;gFAAC;QAC1C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,CAAC;iFAAC;QACf,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;;QAElB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAEtB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,EAAE;YAC/D,OAAO,CAAA,EAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,EAAE,EAAE;QAC/B,CAAC;oFAAC;AACiB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,OAAO,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7D,CAAC;mFAAC;AACiB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,OAAO,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,QAAQ,IAAI,EAAE;QAC5D,CAAC;mFAAC;AAyBH,IAAA;AAvBW,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,MAAM,GAAG,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACxG,QAAA,IAAI,GAAG,KAAK,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB;QACF;AACA,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD;AAEU,IAAA,KAAK,CAAC,GAAW,EAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AAEQ,IAAA,KAAK,CAAC,CAAS,EAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACrB,QAAA,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,GAAG,EAAE;AAAE,YAAA,OAAO,EAAE;AACzC,QAAA,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,GAAG,EAAE;AAAE,YAAA,OAAO,EAAE;AACzC,QAAA,OAAO,CAAC;IACV;+GAxDW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YA3BvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKC;YACC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqB;YAGrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CASE;AADA,YADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OACjB,gBAAY,CAAA,CAAA,CAAA,CAAC;YARvB,EAAA,CAAA,YAAA,EASE;YACF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqB;YAGvB,EAAA,CAAA,YAAA,EAAM;;YApBJ,EAAA,CAAA,WAAA,CAAA,4BAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA+C,CAAA,2BAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACE,CAAA,yBAAA,EAAA,CAAA,GAAA,CAAA,WAAA,EAAA,CACD;YAEhD,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAKC,EAAA,CAAA,SAAA,EAAmB;YAAnB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAAmB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACI,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACM;YAI/B,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;4BAvBK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,+9CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA6BN,cAAc,EAAA,CAAA;cAjC1B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,m6CAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACZhB,MAAAD,KAAA,GAAA,MAAA,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA;;IACN,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4E;;;;IAA5C,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,IAAA,GAAA,MAAA,CAAA,QAAA,EAAA,CAAA,KAAA,CAAoC;;;AAFxE,IADF,8BAAsE,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACpC;IAC9B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;AACzD,IADyD,iBAAO,EAC1D;;;;IALF,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,CAAA,CAEC;IAE8B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAA,KAAA,CAAsB;;AAlC/D;;;;;AAKG;MAoCU,WAAW,CAAA;AAnCxB,IAAA,WAAA,GAAA;QAoCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK;oFAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAW,MAAK;AACpD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,CAAC,EAAE;AACtB,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,gBAAA,CAAC,EAAE;AAC3C,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,gBAAA,CAAC,EAAE;AACrB,YAAA,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,gBAAA,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAsB;AACjD,YAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACxE,CAAC;qFAAC;AACH,IAAA;4GA1BY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AA5BlB,YADF,8BAAoH,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAUhH;AADA,YADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,KAAA,CAAA,GAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAoC,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,0CAAA,GAAA,EAAA,OACtC,gBAAY,CAAA,CAAA,CAAA,CAAC;YARvB,EAAA,CAAA,YAAA,EASE;YACF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA+L;YAApH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAa,GAAA,CAAA,OAAA,EAAS,CAAC,CAAA,CAAA,CAAA,CAAC;YAC1G,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAmD;AAEvD,YADE,iBAAS,EACL;YACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6B;;AAfyC,YAA5C,wDAA2C,CAAA,uBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CAA8C;YAG/G,EAAA,CAAA,SAAA,EAAwC;AAGxC,YAHA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,EAAA,GAAA,MAAA,GAAA,UAAA,CAAwC,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CACvB,4BACM,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACM;YAKoB,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAuB;;YAC9D,EAAA,CAAA,SAAA,EAAsC;YAAtC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,EAAA,GAAA,SAAA,GAAA,KAAA,CAAsC;YAGpD,EAAA,CAAA,SAAA,EASC;YATD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,QAAA,EAAA,IAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;4BA1BO,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,4hEAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+BN,WAAW,EAAA,CAAA;cAnCvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,47DAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IClChB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAWE;AADA,IAHA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,MAAA,IAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,OAAA,CAAA,IAAA,EAAA,MAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,SAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,MAAA,IAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACjB,MAAA,CAAA,SAAA,CAAA,IAAA,EAAA,MAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACvB,MAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,OAChB,sBAA4B,CAAA,CAAA,CAAA,CAAC;IAVxC,EAAA,CAAA,eAAA,EAWE;;;;AALA,IADA,8CAAmB,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CACI;;;AApBjC;;;;;;AAMG;MA0BU,WAAW,CAAA;AAzBxB,IAAA,WAAA,GAAA;QA0BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,CAAC;mFAAC;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC3D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QAEZ,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;kFAAC;AA4C9F,IAAA;AA1CW,IAAA,MAAM,CAAC,CAAS,EAAA;QACxB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;IAC9B;IAEU,OAAO,CAAC,CAAS,EAAE,KAAY,EAAA;AACvC,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;QAC3C,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,EAAE,GAAG,EAAE;AACjD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;QACnB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC;IAEU,SAAS,CAAC,CAAS,EAAE,KAAoB,EAAA;AACjD,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;AAC3C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAChD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3B;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3B;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B;IACF;AAEU,IAAA,OAAO,CAAC,KAAqB,EAAA;QACrC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QACrD,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEQ,OAAO,CAAC,CAAS,EAAE,EAAU,EAAA;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7D,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjD;IAEQ,YAAY,CAAC,EAAoB,EAAE,GAAW,EAAA;AACpD,QAAA,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,sBAAsB;QAC3E,MAAkC,EAAE,KAAK,EAAE;IAC9C;4GAxDW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,GAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,GAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YApBpB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0E;YACxE,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAaC;YACH,EAAA,CAAA,eAAA,EAAM;;YAfqB,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CAA8C;YACvE,EAAA,CAAA,SAAA,EAaC;AAbD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAaN;;;iFAMM,WAAW,EAAA,CAAA;cAzBvB,SAAS;2BACE,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,MAAA,EAAA,CAAA,21BAAA,CAAA,EAAA;;kFAE1B,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICfhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAmF;AAA7B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,MAAA,SAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAW,0BAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAU;IAAA,EAAA,CAAA,YAAA,EAAW;;;;IAA5E,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAyB;IAA8B,EAAA,CAAA,SAAA,EAAU;IAAV,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAU;;AAfrG;;;;;;AAMG;MAwBU,aAAa,CAAA;AAvB1B,IAAA,WAAA,GAAA;QAwBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAW,EAAE;kFAAC;;AAE3B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK;mGAAU;QAC7B,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC/D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;iGAAC;AAyBtH,IAAA;AAvBW,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;AAC3C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC;IACF;AAEU,IAAA,MAAM,CAAC,EAAoB,EAAA;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;AAC5B,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC;AACA,QAAA,EAAE,CAAC,KAAK,GAAG,EAAE;IACf;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;8GAvCW,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAjBtB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6H;YAC3H,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;YACD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAOE;AADA,YADA,mGAAW,GAAA,CAAA,SAAA,CAAA,MAAA,CAAiB,CAAA,CAAA,CAAA,CAAC,yEACrB,GAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAA2B,CAAA,CAAA,OAAE,gBAAY,CAAA,CAAA,CAAA,CAAC;AAEtD,YARE,iBAOE,EACE;;AAZsE,YAA/C,2DAA8C,CAAA,0BAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CAAiD;YAC1H,EAAA,CAAA,SAAA,EAEC;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAEN;YAIC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA4D;AAC5D,YADA,kFAA4D,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACrC;4BAVnB,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,wlCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAmBN,aAAa,EAAA,CAAA;cAvBzB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,MAAA,EAAA,CAAA,giCAAA,CAAA,EAAA;;kFAE5B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AChC1B,MAAM,MAAM,GAA2B;AACrC,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,CAAC,EAAE,UAAU;AACb,IAAA,GAAG,EAAE,aAAa;CACnB;AAED;;;;;;AAMG;MAoBU,YAAY,CAAA;AAnBzB,IAAA,WAAA,GAAA;QAoBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,EAAE;iFAAC;QAChB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAiChC,IAAA;AA/BW,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACzB,QAAA,EAAE,CAAC,KAAK,GAAG,SAAS;IACtB;AAEQ,IAAA,SAAS,CAAC,GAAW,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,GAAG;;QAErB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC;QACV,IAAI,GAAG,GAAG,EAAE;AACZ,QAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,GAAI;AACxD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;AACtB,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,IAAI,EAAE;;AAER,gBAAA,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAAE,oBAAA,EAAE,EAAE;AACvD,gBAAA,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM;oBAAE;AACxB,gBAAA,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;AAChB,gBAAA,EAAE,EAAE;AACJ,gBAAA,EAAE,EAAE;YACN;iBAAO;gBACL,GAAG,IAAI,KAAK;AACZ,gBAAA,EAAE,EAAE;YACN;QACF;AACA,QAAA,OAAO,GAAG;IACZ;6GA3CW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAdrB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CASE;AADA,YADA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,2CAAA,GAAA,EAAA,OACjB,gBAAY,CAAA,CAAA,CAAA,CAAC;YARvB,EAAA,CAAA,eAAA,EASE;;YANA,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CAA+C;YAC/C,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAiB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACM,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,IAAA,GAAA,CAAA,IAAA,EAAA,CACgB;;;iFAQhC,YAAY,EAAA,CAAA;cAnBxB,SAAS;2BACE,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,MAAA,EAAA,CAAA,g2BAAA,CAAA,EAAA;;kFAE3B,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICbjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiC;IAC/B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA0B;IAC1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAoI;AAAjD,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qCAAoC,CAAA,CAAA,CAAA,CAAA,CAAC;AACnI,IADE,iBAAoI,EAChI;;;IAD6D,EAAA,CAAA,SAAA,CAAA,CAAA,CAAiB;IAAjB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,EAAA,CAAiB;;;;IAelD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAyB;;;;IAVzD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAE3B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;IAC5B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA6B;IAC/B,EAAA,CAAA,YAAA,EAAS;;;;IAPP,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAA2C;IAE3C,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,IAAA,MAAA,CAAA,QAAA,CAAuC;;IAGjC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;IACrB,EAAA,CAAA,SAAA,EAAyD;IAAzD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAyD;;;IAG3D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA6B;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAAnC,EAAA,CAAA,SAAA,EAA6B;IAA7B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAA6B;;AApCvE;;;;;;;AAOG;MAqCU,UAAU,CAAA;AApCvB,IAAA,WAAA,GAAA;QAqCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,IAAI;kFAAC;QACnC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE;oFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACtD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;AAEZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE;kFAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3C,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;QAC7F,CAAC;oFAAC;AAgBH,IAAA;AAdW,IAAA,UAAU,CAAC,CAAI,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IAC5E;AAEU,IAAA,MAAM,CAAC,CAAI,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAQ;AACpE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5E;aAAO;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC/C;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;2GAlCW,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YA9BnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8H;YAC5H,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAMhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;YAC9B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAAC,YAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAeC;AAEL,YADE,iBAAM,EACF;;YAzBmB,EAAA,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CAA4C;;YACnE,EAAA,CAAA,SAAA,EAKC;YALD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAKC;YAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAeC;AAfD,YAAA,EAAA,CAAA,UAAA,CAAA,aAAS,CAeR;4BAzBG,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,2vDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAgCN,UAAU,EAAA,CAAA;cApCtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAA,MAAA,EAAA,CAAA,+oDAAA,CAAA,EAAA;;kFAExB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICdb,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA0H;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA2B;IAAA,EAAA,CAAA,eAAA,EAAO;;;;IAAlC,EAAA,CAAA,SAAA,EAA2B;IAA3B,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,KAAA,EAAA,EAAA,EAAA,EAAA,MAAA,CAAA,MAAA,EAAA,CAA2B;;AAjC/J,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACvB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAExB;;;;;;;;;AASG;MA6BU,OAAO,CAAA;AA5BpB,IAAA,WAAA,GAAA;AA6BmB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,EAAC,UAAuB,EAAC;QAE9C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,CAAC;kFAAC;QACxB,IAAA,CAAA,GAAG,GAAG,KAAK,CAAqB,CAAC;gFAAC;QAClC,IAAA,CAAA,GAAG,GAAG,KAAK,CAAqB,GAAG;gFAAC;QACpC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,CAAC;iFAAC;QACf,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,EAAE;iFAAC;QAChB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QAEd,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG;AAC9B,QAAA,IAAA,CAAA,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;sFAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;sFAAC;AAyEzE,IAAA;IAvES,KAAK,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG;AAC5B,QAAA,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE;QACrB,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,KAAK;IACrD;IAEQ,GAAG,CAAC,IAAY,EAAE,EAAU,EAAA;AAClC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACrB,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACjC,QAAA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;AAChB,QAAA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AAC9C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5D,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;AAAE,YAAA,OAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,EAAE,EAAE;AACpD,QAAA,OAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,EAAE,MAAM,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,GAAA,EAAM,KAAK,CAAA,GAAA,EAAM,EAAE,CAAA,CAAA,EAAI,EAAE,EAAE;IAC7D;AAEU,IAAA,SAAS,CAAC,KAAmB,EAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,MAAM,MAAM,GAAG,CAAC,CAAe,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC;QACb,MAAM,IAAI,GAAG,CAAC,CAAe,KAAK,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,MAAK;AACd,YAAA,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC/C,YAAA,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACnB,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC5C,QAAA,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;IAC1C;IAEQ,YAAY,CAAC,OAAe,EAAE,OAAe,EAAA;AACnD,QAAA,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC,qBAAqB,EAAE;QACjG,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AAChE,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG;AAC3B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG;YAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACxB;AAEQ,IAAA,UAAU,CAAC,KAAa,EAAA;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG;AAC5B,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACvB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;AAAE,YAAA,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;aACzE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;AAAE,YAAA,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/E,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,EAAE;AACnC,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,IAAI,GAAG,EAAE;;YAClC;QACL,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;wGA5FW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAvBhB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAUC;AADC,YADA,EAAA,CAAA,aAAA,CAAA,aAAA,EAAA,SAAA,2CAAA,CAAA,MAAA,EAAA,EAAA,OAAe,GAAA,CAAA,SAAA,CAAA,MAAA,CAAiB,CAAA,CAAA,CAAA,CAAC,CAAA,SAAA,EAAA,SAAA,uCAAA,CAAA,MAAA,EAAA,EAAA,OACtB,qBAAiB,CAAA,CAAA,CAAA,CAAC;;YAE7B,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,CAA0G;AAExG,YADA,6BAAyH,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACA;YACzH,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAmB;AAIvB,YADE,oBAAM,EACF;;;YAPiD,EAAA,CAAA,SAAA,EAAyB;AAAC,YAA1B,yCAAyB,CAAA,QAAA,EAAA,GAAA,CAAA,IAAA,EAAA,EAAA,IAAA,CAA2B;;YACzE,EAAA,CAAA,SAAA,EAAsB;;YACtB,EAAA,CAAA,SAAA,EAAsB;;YACpD,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;iFAOI,OAAO,EAAA,CAAA;cA5BnB,SAAS;2BACE,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,eAAe,EAAE,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA;;kFAErB,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;IC3ClB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,eAAA,EAAM;;;IAApB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;ACG9C;;;;;;;;;;;;AAYG;MAYU,OAAO,CAAA;AAXpB,IAAA,WAAA,GAAA;;QAaW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,UAAU;oFAAC;;QAE3C,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE;mFAAC;;QAE1B,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC/D,IAAA;wGAPY,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2CAAP,GAAA,CAAA,OAAA,EAAS,CAAA;;;YD5BtB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAGhB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoE;YAClE,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,eAAA,EAAM;YACN,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAuC;;YANvC,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAC2B,EAAA,CAAA,SAAA,EAAuC;YAAvC,EAAA,CAAA,WAAA,CAAA,uBAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAuC;;;iFCyBtD,OAAO,EAAA,CAAA;cAXnB,SAAS;2BACE,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAG/B;AACJ,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,qBAAqB,EAAE,WAAW;AACnC,iBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,+tDAAA,CAAA,EAAA;;kFAEU,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACxBpB;;;;;;;AAOG;MAeU,UAAU,CAAA;AAdvB,IAAA,WAAA,GAAA;;QAgBW,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,YAAY;wFAAC;;QAExD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC/D,IAAA;2GALY,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAV,YAAA,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,WAAA,EACb,sBADa,GAAA,CAAA,WAAA,EACb,CAAA;AADa,YAAA,EAAA,CAAA,WAAA,CAAA,oBAAA,EAAA,WAAO,CAAG;;;iFAAV,UAAU,EAAA,CAAA;cAdtB,SAAS;2BACE,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,EAAE,EAAA,IAAA,EAEN;AACJ,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,yBAAyB,EAAE,eAAe;AAC1C,oBAAA,yBAAyB,EAAE,eAAe;AAC1C,oBAAA,4BAA4B,EAAE,SAAS;AACxC,iBAAA,EAAA,MAAA,EAAA,CAAA,8gBAAA,CAAA,EAAA;;kFAEU,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ACxBvB;;;;;;;;;;;AAWG;MAaU,UAAU,CAAA;AAZvB,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjE;;;;AAIG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9D,IAAA;2GAVY,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAAV,GAAA,CAAA,IAAA,EAAM,GAAG,EAAE,GACxB,IAAI,CAAA;AADS,YAAA,EAAA,CAAA,WAAA,CAAA,uBAAA,EAAA,cAAU,CAAA;;;YARV,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;;;iFAQd,UAAU,EAAA,CAAA;cAZtB,SAAS;2BACE,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,gBAAgB,EAAA,IAAA,EAEpB;AACJ,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,+BAA+B,EAAE,YAAY;AAC7C,oBAAA,kBAAkB,EAAE,oBAAoB;AACzC,iBAAA,EAAA,MAAA,EAAA,CAAA,q7BAAA,CAAA,EAAA;;kFAEU,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ACxBvB;;;;;;;;;;;;;;;;AAgBG;MAWU,UAAU,CAAA;2GAAV,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,kBAAA,EAAAI,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAJV,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAAA,EAAA,CAAA,eAAA,EAAM;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAA0C;;;iFAI/F,UAAU,EAAA,CAAA;cAVtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAG3B,iGAAiG,EAAA,IAAA,EAErG,EAAE,KAAK,EAAE,aAAa,EAAE,EAAA,MAAA,EAAA,CAAA,w6BAAA,CAAA,EAAA;;kFAEnB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ACPvB;;;;;;;;;;;;;;;;;;;;;;;AAuBG;MAiBU,WAAW,CAAA;aACP,IAAA,CAAA,MAAM,GAAG,CAAH,CAAK;AAsD1B,IAAA,WAAA,GAAA;AApDiB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC3C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;;QAG9B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI;wFAAC;AAElC;;;;;AAKG;QACM,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,KAAK;+FAAC;;QAGjC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiB,MAAM;wFAAC;;QAG3C,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAgB,IAAI;8FAAC;AAEvD;;;;;AAKG;QACM,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAuB,IAAI;kGAAC;;QAGzD,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,EAAE;yFAAC;;AAGxB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAA,kBAAA,EAAqB,WAAW,CAAC,MAAM,EAAE,EAAE;;AAGvD,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,IAAI;YAChC,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,KAAK;AACjC,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE;QACzD,CAAC;sFAAC;;QAGO,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAChC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;0FACzE;AAEkB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;qFAAC;;AAGpF,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;yFAAC;;;QAKxF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAAE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3D,QAAA,CAAC,CAAC;IACJ;;IAGA,aAAa,GAAA;QACX,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5C;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAC3B;;IAGA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC5B;IAEU,YAAY,GAAA;;QAEpB,IAAI,CAAC,YAAY,EAAE;IACrB;IAEU,QAAQ,GAAA;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,IAAI,CAAC,YAAY,EAAE;IACnE;IAEQ,gBAAgB,GAAA;QACtB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;IAC1D;AAEQ,IAAA,cAAc,CAAC,IAAa,EAAA;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;;AACzD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC;4GA9FW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAX,YAAA,EAAA,CAAA,UAAA,CAAA,gBAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAA,cAAU,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAC;;gDAAX,GAAA,CAAA,WAAA,EAAa,CAAA,CAAA,yBAAA,EAAb,GAAA,CAAA,iBAAA,EACR,CAAA,CAAA,mBAAA,EADQ,GAAA,CAAA,qBAAA,EACJ,CAAA;AADI,YAAA,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,GAAA,CAAA,WAAA,EAAa,CAAF,CAAA,iCAAA,EAAX,GAAA,CAAA,kBAAA,EACP,CADkB;;;YC9DxB,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyC;AAGvC,YADF,iCAAiC,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAO9B;YACC,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAyC;YAC3C,EAAA,CAAA,eAAA,EAAQ;YAMR,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8E;AAAzB,YAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,yCAAA,GAAA,EAAA,OAAS,kBAAc,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,eAAA,EAAM;YAEpF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+E;YAC7E,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAc;AAElB,YADE,oBAAO,EACH;;YAfF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;YAAhB,EAAA,CAAA,aAAA,CAAA,IAAA,EAAA,GAAA,CAAA,SAAA,CAAgB;;YAYmB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyC;;;;iFD2CnE,WAAW,EAAA,CAAA;cAhBvB,SAAS;2BACE,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAG/B;AACJ,oBAAA,KAAK,EAAE,eAAe;AACtB,oBAAA,0BAA0B,EAAE,eAAe;AAC3C,oBAAA,gCAAgC,EAAE,qBAAqB;AACvD,oBAAA,0BAA0B,EAAE,yBAAyB;AACrD,oBAAA,iCAAiC,EAAE,eAAe;AAClD,oBAAA,yCAAyC,EAAE,sBAAsB;AACjE,oBAAA,2BAA2B,EAAE,YAAY;AAC1C,iBAAA,EAAA,QAAA,EAAA,8xBAAA,EAAA,MAAA,EAAA,CAAA,+klBAAA,CAAA,EAAA;;kFAEU,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1DxB;;;;;;;;;;;;;;;AAeG;MAUU,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;;QAWW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE,6EAAI,KAAK,EAAE,mBAAmB,EAAA,CAAG;AAEvC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;AAE7B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,eAAe,GAAG,gBAAgB,CAAC,IAAI,CACrD,MAAM,CAAC,UAAU,CAAC,CAAC,aAA6B,CAAC,OAAO,CAC1D;QAEkB,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI;yFACjE;QAEkB,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;yFAAC;AAEnF,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,IAAI;sFACvF;AACF,IAAA;kHApBY,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAjB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0CAAA,GAAA,EAAA,OAAA,yBACZ,CAAA,CAAA,CAAA,CAD6B;;4CAAjB,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,eAAA,EAAd,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,YAAA,EAAd,GAAA,CAAA,SAAA,EAAW,CAAA;;;iFAAX,iBAAiB,EAAA,CAAA;cAT7B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,uBAAuB;AAClC,oBAAA,sBAAsB,EAAE,gBAAgB;AACxC,oBAAA,sBAAsB,EAAE,gBAAgB;AACxC,oBAAA,mBAAmB,EAAE,aAAa;AACnC,iBAAA;AACF,aAAA;;;;;;;ICPS,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqK;IAArH,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAe,MAAA,CAAA,SAAA,EAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IACnF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiE;IACnE,EAAA,CAAA,YAAA,EAAS;;;;IADG,EAAA,CAAA,SAAA,EAAoD;IAApD,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,EAAA,GAAA,cAAA,GAAA,YAAA,CAAoD;;AAlB1E;;;;;AAKG;MAmCU,QAAQ,CAAA;AAlCrB,IAAA,WAAA,GAAA;QAmCW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK;sFAAC;QACxB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG;8FAAC;AAEpB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1C,IAAA;yGARY,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAR,YAAA,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,CAAC,cACd,GAAG,GAAA,CAAA,iBAAA,EAAmB,GAAG,CAAC,IAAI,IAC3B,CAFkB;;;YA5BjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACU,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACE;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;YAAA,EAAA,CAAA,YAAA,EAAO;YACpD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyC;YAAA,EAAA,CAAA,YAAA,EAAO;YACjF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAoB;YAKtB,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACwC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACR;YAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,CAAA,CAAc;AAGjD,YAHiD,EAAA,CAAA,YAAA,EAAM,EAC7C,EACF,EACF;;YAlB6B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;YAAd,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,MAAA,EAAA,CAAc;YAE7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;YAJD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAIC;YAID,EAAA,CAAA,SAAA,EAA8B;YAA9B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,CAAA,GAAA,CAAA,SAAA,EAAA,CAA8B;;4BAd1B,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,syCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA8BN,QAAQ,EAAA,CAAA;cAlCpB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAAA,IAAA,EAEK;AACJ,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,6BAA6B,EAAE,+CAA+C;AAC/E,iBAAA,EAAA,MAAA,EAAA,CAAA,kuCAAA,CAAA,EAAA;;kFAEU,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;IC1BX,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA6H;IAA1E,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAe,MAAA,CAAA,SAAA,EAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IACtF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiE;IACjE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;AACtB,IADsB,iBAAO,EACpB;;;;IAFG,EAAA,CAAA,SAAA,EAAoD;IAApD,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,EAAA,GAAA,cAAA,GAAA,YAAA,CAAoD;IACxD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;;IAGtB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAArB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;AApB9B;;;;;AAKG;MAoCU,WAAW,CAAA;AAnCxB,IAAA,WAAA,GAAA;QAoCW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK;sFAAC;QACxB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG;8FAAC;AACxC,IAAA;4GANY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAX,YAAA,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,CAAC,cAAU,GACxB,GAAA,CAAA,iBAAA,EAAmB,GAAG,CAAC,IAAI,IAC3B,CAFwB;;;AA5BlB,YADF,mCAA+B,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACQ;AAMjC,YALF,gFAAoB,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAKX;YAGX,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAC2C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACR;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAGpD,YAHoD,EAAA,CAAA,YAAA,EAAM,EAChD,EACF,EACG;;YAnBP,EAAA,CAAA,SAAA,CAAA,CAAA,CAOC;YAPD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAOC;YAID,EAAA,CAAA,SAAA,CAAA,CAAA,CAA8B;YAA9B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,CAAA,GAAA,CAAA,SAAA,EAAA,CAA8B;;4BAf1B,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,uiCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+BN,WAAW,EAAA,CAAA;cAnCvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;GAuBT,EAAA,IAAA,EAEK;AACJ,oBAAA,OAAO,EAAE,mBAAmB;AAC5B,oBAAA,6BAA6B,EAAE,+CAA+C;AAC/E,iBAAA,EAAA,MAAA,EAAA,CAAA,u/BAAA,CAAA,EAAA;;kFAEU,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ACxCxB;;;;;;;;;AASG;MAuBU,WAAW,CAAA;AAtBxB,IAAA,WAAA,GAAA;AAuBmB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,EAAC,UAAuB,EAAC;QAC9C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAyB,YAAY;wFAAC;;QAEzD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE;sFAAC;QACrB,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,EAAE;oFAAC;QAET,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;oFAAC;AAgCpE,IAAA;AA9BW,IAAA,SAAS,CAAC,KAAmB,EAAA;QACrC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAgB;AACvF,QAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE;AAC9C,YAAA,MAAM,GAAG,GACP,IAAI,CAAC,WAAW,EAAE,KAAK;AACrB,kBAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI;AAC3C,kBAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;AAClD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACnB,QAAA,CAAC;QACD,MAAM,EAAE,GAAG,MAAK;AACd,YAAA,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC/C,YAAA,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;AAC7C,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC5C,QAAA,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;IAC1C;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC;AACvI,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC;IACtC;AAEQ,IAAA,OAAO,CAAC,GAAW,EAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE;4GAtCW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AAhBlB,YADF,iCAAkE,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACG;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAuC;YAAA,EAAA,CAAA,eAAA,EAAM;YAChH,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAQC;AADC,YADA,EAAA,CAAA,aAAA,CAAA,aAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,OAAe,GAAA,CAAA,SAAA,CAAA,MAAA,CAAiB,CAAA,CAAA,CAAA,CAAC,CAAA,SAAA,EAAA,SAAA,2CAAA,CAAA,MAAA,EAAA,EAAA,OACtB,qBAAiB,CAAA,CAAA,CAAA,CAAC;YAC9B,EAAA,CAAA,eAAA,EAAM;YACP,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiE;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAqC;AACxG,YADwG,oBAAM,EACxG;;;YAX4B,EAAA,CAAA,SAAA,EAAkC;YAAlC,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,SAAA,EAAA,EAAA,GAAA,CAAkC;YAKhE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;;YAKT,EAAA,CAAA,SAAA,EAAgC;YAAhC,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,OAAA,EAAA,EAAA,GAAA,CAAgC;;;iFAMzD,WAAW,EAAA,CAAA;cAtBvB,SAAS;2BACE,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,2wBAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AChCxB;;;;;;AAMG;MAmBU,YAAY,CAAA;AAQvB,IAAA,WAAA,GAAA;QAPS,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,GAAG;sFAAC;QACtB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgB,IAAI;mFAAC;AAEzB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK;oFAAC;QAClC,IAAA,CAAA,QAAQ,GAAyB,MAAM;QAG7C,eAAe,CAAC,MAAK;AACnB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAc,GAAG,CAAC,IAAI,MAAM,GAAG,MAAM;YACjF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7E,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrE,YAAA,QAAQ,EAAE;AACZ,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,MAAM,CAAC,OAAO,GAAI,IAAI,CAAC,QAAwB,CAAC,SAAS;IAC7F;IAEU,QAAQ,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM;AAAE,YAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;AACvE,YAAA,IAAI,CAAC,QAAwB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC9E;6GAzBW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAZrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAOC;AAHC,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,cAAU,CAAA,CAAA,CAAA,CAAC;YAGrB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4B;YAAA,EAAA,CAAA,YAAA,EAAS;;YAJpC,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAA8B;;4BALxB,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,kuBAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAcN,YAAY,EAAA,CAAA;cAlBxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;AAST,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,MAAA,EAAA,CAAA,ksBAAA,CAAA,EAAA;;kFAE3B,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICVjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgD;IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA2B;IAAA,EAAA,CAAA,YAAA,EAAM;;;;IAKnF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkD;AAAlB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAC/C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA4G;AAA7D,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;IAC1I,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8F;AAArC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,OAAS,wBAAwB,CAAA,CAAA,CAAA,CAAC;AAC7F,IADE,iBAA8F,EAC1F;;;IAF6D,EAAA,CAAA,SAAA,EAA0C;;IAC9E,EAAA,CAAA,SAAA,CAAA,CAAA,CAAa;AAAC,IAAd,oDAAa,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,EAAA,CAAc;;AAtBhE;;;;;AAKG;MAwBU,QAAQ,CAAA;AAvBrB,IAAA,WAAA,GAAA;QAwBW,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ;gFAAU;QAC9B,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,EAAE;gFAAC;QACf,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI;kFAAC;QAClC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AAQxC,IAAA;IANW,WAAW,GAAA;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACzC;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;yGAdW,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAjBjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8G;AAAxB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sCAAA,GAAA,EAAA,OAAS,iBAAa,CAAA,CAAA,CAAA,CAAC;YAC3G,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0D;YAC1D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiB;YAGnB,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAc;;YAPgD,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAuB;YAA9D,EAAA,CAAA,WAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAAsC;YAC/B,EAAA,CAAA,SAAA,EAAa;AAAC,YAAd,iDAAa,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,EAAA,CAAc;YACvD,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAGH,EAAA,CAAA,SAAA,EAKC;YALD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAKC;4BAdO,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,6vCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAmBN,QAAQ,EAAA,CAAA;cAvBpB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,MAAA,EAAA,CAAA,iuCAAA,CAAA,EAAA;;kFAEtB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICXX,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAKQ;;;;;AAFN,IADA,qDAA+B,CAAA,kBAAA,EAAA,OAAA,CAAA,KAAA,IAAA,MAAA,CAAA,QAAA,CAAA,YAAA,CAAA,CACqB;;;;IAQpD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAyC;IACvC,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA+F;IAC/F,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,eAAA,EAAO;IAC7B,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA2B;AAChE,IADgE,oBAAO,EAClE;;;;;IAHgC,EAAA,CAAA,SAAA,EAAoD;IAApD,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,KAAA,IAAA,MAAA,CAAA,QAAA,CAAA,aAAA,CAAA,CAAoD;IACjF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IACa,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,KAAA,CAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,EAAA,GAAA,CAA2B;;;IALpE,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAoC;IAClC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAMC;IACH,EAAA,CAAA,eAAA,EAAK;;;IAPH,EAAA,CAAA,SAAA,EAMC;AAND,IAAA,EAAA,CAAA,UAAA,CAAA,eAAQ,CAMP;;AA9BX;;;;;AAKG;MAiCU,aAAa,CAAA;AAhC1B,IAAA,WAAA,GAAA;QAiCW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAiB,EAAE;mFAAC;;QAElC,IAAA,CAAA,GAAG,GAAG,KAAK,CAAqB,SAAS;gFAAC;QAC1C,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjD,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,0BAA0B,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,yBAAyB,CAAC;QAEhJ,IAAA,CAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gFAAC;AAcxF,IAAA;IAZW,KAAK,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC;AACU,IAAA,OAAO,CAAC,IAAkB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG;IAC1C;AACU,IAAA,QAAQ,CAAC,CAAS,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC9C;AACU,IAAA,KAAK,CAAC,CAAS,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtB;8GArBW,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AA1BpB,YADF,iCAA6B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACgF;YACzG,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAOC;YACH,EAAA,CAAA,eAAA,EAAM;YACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAoB;YAWtB,EAAA,CAAA,eAAA,EAAM;;YArB6C,EAAA,CAAA,SAAA,EAA4B;;YAC3E,EAAA,CAAA,SAAA,EAOC;AAPD,YAAA,EAAA,CAAA,UAAA,CAAA,YAAQ,CAOP;YAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAUC;YAVD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAUC;;;iFAMM,aAAa,EAAA,CAAA;cAhCzB,SAAS;2BACE,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,MAAA,EAAA,CAAA,qtBAAA,CAAA,EAAA;;kFAE5B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICvBlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAqC;IACnC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAkG;IACpG,EAAA,CAAA,YAAA,EAAO;;;;IADO,EAAA,CAAA,SAAA,EAAqB;AAA+C,IAApE,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,IAAA,CAAA,IAAA,IAAA,EAAA,CAAqB,CAAA,KAAA,EAAA,IAAA,CAAA,GAAA,IAAA,IAAA,CAAsB,2BAAwB,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CAAgB;;;IAIjG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsF;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAxB,EAAA,CAAA,SAAA,EAAiB;IAAjB,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAiB;;AAnB/G;;;;;AAKG;MAqBU,cAAc,CAAA;AApB3B,IAAA,WAAA,GAAA;QAqBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkB,EAAE;oFAAC;QACpC,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,CAAC;gFAAC;QACd,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,IAAI;iFAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;kFAAC;QAC3D,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;qFAAC;AAC9F,IAAA;+GAPY,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAdvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwD;YACtD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;YACD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsB;YAGxB,EAAA,CAAA,YAAA,EAAM;;;YARJ,EAAA,CAAA,SAAA,EAIC;AAJD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAIN;YACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,QAAA,EAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;4BAVK,SAAS,CAAA,EAAA,MAAA,EAAA,CAAA,+zBAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAgBR,cAAc,EAAA,CAAA;cApB1B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,SAAS,CAAC,EAAA,QAAA,EACV;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,uyBAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICjBN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6B;IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA6B;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAAzB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,EAAA,CAAgB;;;IACtD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA4B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,YAAA,EAAI;;;IAAjB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;;IACnC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA2B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;IAAA,EAAA,CAAA,YAAA,EAAI;;;IAAvB,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,EAAA,CAAmB;;AAjB1E;;;;;;;AAOG;MAiBU,QAAQ,CAAA;AAhBrB,IAAA,WAAA,GAAA;QAiBW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgB,aAAa;iFAAC;QAC1C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE;kFAAC;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;AACjC,IAAA;yGAJY,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,EAAA,kBAAA,EAAAL,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAVjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuB;YACrB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAc;YACd,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAe;YACf,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAqB;YACrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAChD,YADgD,iBAAM,EAChD;;YAJJ,EAAA,CAAA,SAAA,EAAiF;YAAjF,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAiF;YACjF,EAAA,CAAA,SAAA,EAA+D;YAA/D,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA+D;YAC/D,EAAA,CAAA,SAAA,EAA0E;YAA1E,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA0E;4BALpE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAYN,QAAQ,EAAA,CAAA;cAhBpB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;AAOT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,MAAA,EAAA,CAAA,w1BAAA,CAAA,EAAA;;kFAEtB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IChBK,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;;AATxC;;;;;AAKG;MAMU,MAAM,CAAA;AALnB,IAAA,WAAA,GAAA;QAMW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAU;QAChC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW;oFAAC;AACnD,IAAA;uGAJY,MAAM,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAN,MAAM,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,YAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;8CAGqB,WAAW,EAAA,CAAA,CAAA;;;;;YALtC,EAAA,CAAA,aAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,CAAa;;;iFAEb,MAAM,EAAA,CAAA;cALlB,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,SAAS;gBACnB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,gBAAA,QAAQ,EAAE,CAAA,yCAAA,CAA2C;AACtD,aAAA;oQAIuC,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAHtC,MAAM,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;OCmCb,IAAA,CAAA,WAAA,EAAa,CAAA,CAAA;;;IAdX,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CASC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,MAAA,YAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IACpB,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;IAJzB,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,YAAA,KAAA,MAAA,CAAA,WAAA,EAAA,CAAuC;IACvC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAA2B;;IAG5B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAiB;IAAjB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAiB;;;IAMlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6B;IAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAmD;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAA3C,EAAA,CAAA,SAAA,EAAkC;IAAlC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,OAAA,EAAA,CAAkC;;AAhCrF;;;;;;;;AAQG;MAoCU,OAAO,CAAA;AAiBlB,IAAA,WAAA,GAAA;QAhBmB,IAAA,CAAA,IAAI,GAAG,eAAe,CAAC,MAAM;iFAAC;QACxC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,CAAC;wFAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG;8FAAC;QAEtB,IAAA,CAAA,OAAO,GAAG,YAAY,CAAgC,QAAQ;oFAAC;QAC7D,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC;iFAAC;QAChB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC;iFAAC;QAChB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC;sFAAC;AAErB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;sFAAC;AAC3D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5B,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;QACzB,CAAC;yFAAC;QAGA,iBAAiB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5C;IAEU,UAAU,GAAA;AAClB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;AAC7D,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;IAChC;AAEU,IAAA,MAAM,CAAC,KAAa,EAAA;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE;YAAE;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;wGAhCW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wDACwB,MAAM,EAAA,CAAA,CAAA;;;;;;;;AADrC,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,iCAAA,GAAA,EAAA,OAAA,gBACX,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,eAAA,CADkB;;YAAP,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,CAAC,GAAA,CAAA,QAAA,EACb,GAAG,GAAA,CAAA,iBAAA,EAAmB,GAAG,CAAC,IAAI,IAAI,CADf,CAAA,oBAAA,EAAP,GAAA,CAAA,SAAA,EACZ,CADmB;;YA7BhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6C;YAC3C,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAWC;YACD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAgH;YAClH,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4C;YAC1C,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAAC,YAAA,EAAA,IAAA,CAEC;YACH,EAAA,CAAA,YAAA,EAAM;;YAlBJ,EAAA,CAAA,SAAA,EAWC;AAXD,YAAA,EAAA,CAAA,UAAA,CAAA,UAAM,CAWL;YAC2B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyB;AAAC,YAA1B,yCAAyB,CAAA,WAAA,EAAA,aAAA,GAAA,GAAA,CAAA,IAAA,EAAA,GAAA,KAAA,CAAmD;YAGxG,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,kBAAc,CAEb;4BApBK,gBAAgB,CAAA,EAAA,MAAA,EAAA,CAAA,07CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+Bf,OAAO,EAAA,CAAA;cAnCnB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB;;;;;;;;;;;;;;;;;;;;;GAqBT,EAAA,IAAA,EAEK;AACJ,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,6BAA6B,EAAE,+CAA+C;AAC9E,oBAAA,wBAAwB,EAAE,aAAa;AACvC,oBAAA,iBAAiB,EAAE,cAAc;AAClC,iBAAA,EAAA,MAAA,EAAA,CAAA,k3CAAA,CAAA,EAAA;AAGyC,KAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,MAAM,+aAKuB,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFANpE,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;AChDpB;;AAEG;MAoCU,iBAAiB,CAAA;AAnC9B,IAAA,WAAA,GAAA;QAoCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAU;QAChC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;qFAAC;QAEf,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAElD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;YACxC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,GAAG;AACpD,YAAA,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;QAC5B,CAAC;mFAAC;AAQH,IAAA;IANW,MAAM,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAI,QAAQ;AAAE,YAAA,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;IAC5C;kHAlBW,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAjB,YAAA,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,YAAQ,CAAS;;;AA5BxB,YADF,8BAA8D,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAO3D;AADC,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OAAS,YAAQ,CAAA,CAAA,CAAA,CAAC;YAElB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAyC;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;YAAA,EAAA,CAAA,YAAA,EAAO;YAC7D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAkG;YACpG,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACkD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACR;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAG3D,YAH2D,EAAA,CAAA,YAAA,EAAM,EACvD,EACF,EACF;;YArB2B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA4B;YAKzD,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAuB;;YAGkB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAa;YAAb,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,KAAA,EAAA,CAAa;YACa,EAAA,CAAA,SAAA,EAA4B;YAA5B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA4B;YAI/F,EAAA,CAAA,SAAA,EAA4B;YAA5B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAA4B;;4BAfxB,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,+jDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+BN,iBAAiB,EAAA,CAAA;cAnC7B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,eAAA,EACd,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;;;GAuBT,EAAA,IAAA,EAEK;AACJ,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,6BAA6B,EAAE,UAAU;AAC1C,iBAAA,EAAA,MAAA,EAAA,CAAA,u/CAAA,CAAA,EAAA;;kFAEU,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;AChD9B;;;;;;;;AAQG;MASU,YAAY,CAAA;AARzB,IAAA,WAAA,GAAA;QASW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACrD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG;8FAAC;QACtB,IAAA,CAAA,MAAM,GAAG,eAAe,CAAC,iBAAiB;mFAAC;AAS7D,IAAA;;AANC,IAAA,MAAM,CAAC,MAAyB,EAAA;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjC,IAAI,KAAK,KAAK,MAAM;AAAE,gBAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD;IACF;6GAZW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;0DAImB,iBAAiB,EAAA,CAAA,CAAA;;;;;YARhD,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;;;iFAId,YAAY,EAAA,CAAA;cARxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,gBAAgB,EAAA,IAAA,EAEpB,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,MAAA,EAAA,CAAA,+LAAA,CAAA,EAAA;4XAMK,iBAAiB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAJhD,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICIf,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAkD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAI;;;IAAtC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAiB;IAAC,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAElE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiF;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;;;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAGjG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA6D;;;AAJ7D,IAFF,mFAAyB,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAEhB;IAGT,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAa;;;;;IALb,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,IAAA,EAAA,YAAA,KAAA,YAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAIC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,aAAA,CAAA,EAAA,YAAA,KAAA,YAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;AArBT;;;;;AAKG;MAuBU,aAAa,CAAA;AAtB1B,IAAA,WAAA,GAAA;QAuBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,EAAE;kFAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1C,IAAA;8GAHY,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAhBtB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2E;YACzE,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CASC;YACH,EAAA,CAAA,YAAA,EAAM;;;YAVJ,EAAA,CAAA,SAAA,EASC;AATD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CASN;4BAZK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,ojBAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAkBN,aAAa,EAAA,CAAA;cAtBzB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,MAAA,EAAA,CAAA,4hBAAA,CAAA,EAAA;;kFAE3B,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IC1BA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;;AATxC;;;;;AAKG;MAMU,OAAO,CAAA;AALpB,IAAA,WAAA,GAAA;QAMW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAU;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW;oFAAC;AACnD,IAAA;wGAHY,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,aAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;8CAEoB,WAAW,EAAA,CAAA,CAAA;;;;;YAJtC,EAAA,CAAA,aAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,CAAa;;;iFAEb,OAAO,EAAA,CAAA;cALnB,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,UAAU;gBACpB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,gBAAA,QAAQ,EAAE,CAAA,yCAAA,CAA2C;AACtD,aAAA;oKAGuC,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAFtC,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;OC8Bd,IAAA,CAAA,WAAA,EAAa,CAAA,CAAA;;IARmB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAyB;;;IAAW,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;;;IAAZ,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,YAAA,GAAA,CAAA,EAAA,GAAA,CAAY;;;IAG9D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA4C;;;;AAJ1D,IADF,6BAA0G,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACsB;AAA5E,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,MAAA,YAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,yBAAO,CAAA,CAAA,CAAA,CAAA,CAAC;AACX,IAAtD,uFAAyB,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,CAAoC;IAC/D,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC1D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAa;IACf,EAAA,CAAA,YAAA,EAAK;;;;;;AANiE,IAAxC,kEAAuC,CAAA,SAAA,EAAA,YAAA,GAAA,MAAA,CAAA,WAAA,EAAA,CAAoC;IACnC,EAAA,CAAA,SAAA,EAAyD;;IAC3H,EAAA,CAAA,SAAA,EAA2E;IAA3E,EAAA,CAAA,aAAA,CAAA,YAAA,GAAA,MAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAA2E;IAE5C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkB;IAAlB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,EAAA,CAAkB;IACnD,EAAA,CAAA,SAAA,EAA4D;IAA5D,EAAA,CAAA,aAAA,CAAA,EAAA,YAAA,KAAA,YAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA4D;;;IAM9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAoD;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAA5C,EAAA,CAAA,SAAA,EAAmC;IAAnC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,OAAA,EAAA,CAAmC;;AA7BzF;;;;;;;;;AASG;MA+BU,UAAU,CAAA;AA9BvB,IAAA,WAAA,GAAA;QA+BqB,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,OAAO;kFAAC;QAC1C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,CAAC;wFAAC;QACtB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG;8FAAC;QAEpB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC;sFAAC;AACrB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;uFAAC;AAC7D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;YAC9B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;QAC3B,CAAC;yFAAC;AAeH,IAAA;AAbC,IAAA,IAAI,CAAC,KAAa,EAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5B;IACA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E;IACA,IAAI,GAAA;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD;2GAzBW,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;yDACsB,OAAO,EAAA,CAAA,CAAA;;;;YADvC,EAAA,CAAA,WAAA,CAAA,yBAAA,EAAA,CAAC,GAAA,CAAA,QAAA,EAAU,GACvB,GAAA,CAAA,iBAAA,EAAmB,GAAG,CAAC,IAAI,IAAI,CADT,CAAA,oBAAA,EAAV,GAAA,CAAA,SAAA,EAAW,CAAD;;YAxBnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAgC;YAC9B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAQC;YACH,EAAA,CAAA,YAAA,EAAK;YACL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B;YAC7B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAAA,YAAA,EAAA,IAAA,CAEC;YACH,EAAA,CAAA,YAAA,EAAM;;YAdJ,EAAA,CAAA,SAAA,EAQC;AARD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAQN;YAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,kBAAc,CAEb;AAhBK,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,20DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA0BxB,UAAU,EAAA,CAAA;cA9BtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B;;;;;;;;;;;;;;;;;GAiBT,EAAA,IAAA,EAEK;AACJ,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,6BAA6B,EAAE,+CAA+C;AAC9E,oBAAA,wBAAwB,EAAE,aAAa;AACxC,iBAAA,EAAA,MAAA,EAAA,CAAA,mvDAAA,CAAA,EAAA;+EAG0C,OAAO,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFADvC,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;IClDf,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAsD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAS;IAAA,EAAA,CAAA,YAAA,EAAS;;;;AAAlD,IAAd,8BAAa,CAAA,UAAA,EAAA,MAAA,KAAA,MAAA,CAAA,QAAA,EAAA,CAAgC;IAAC,EAAA,CAAA,SAAA,EAAS;IAAT,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAS;;ACSvE;;;;;AAKG;MAUU,YAAY,CAAA;AAqBvB,IAAA,WAAA,GAAA;;QAnBS,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ;mFAAU;;QAEjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE;qFAAC;;QAE5B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,CAAC;sFAAC;;QAE5B,IAAA,CAAA,eAAe,GAAG,KAAK,CAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;4FAAC;AAExC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAEhC,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;uFAAC;AACpF,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;uFAAC;AAC/F,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;qFAAC;AAClF,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;uFACzG;QACQ,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;oFAAC;AAC9C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;oFAAC;;QAIzE,MAAM,CAAC,MAAK;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;AACjC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,EAAE;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD;IACA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD;AACA,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAE,KAAK,CAAC,MAA4B,CAAC,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;6GAxCW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AD5BvB,YADF,8BAAiC,CAAA,CAAA,EAAA,OAAA,CACxB;YACL,EAAA,CAAA,MAAA,CAAA,CAAA,CACA;YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA2F;AAAhC,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,8CAAA,CAAA,MAAA,EAAA,EAAA,OAAU,wBAAoB,CAAA,CAAA,CAAA,CAAC;YACxF,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAEC;YACH,EAAA,CAAA,YAAA,EAAS,EACH,EACJ;YAEN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmC;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkB;YAAA,EAAA,CAAA,YAAA,EAAO;AAG1D,YADF,8BAAgC,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CACoG;AAAlE,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YAAkD,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,YAAA,EAAa;YAC/K,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,YAAA,EAAA,CAAA,CAAkI;AAAlE,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YAAkD,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAiC;AACrK,YADqK,iBAAa,EAC5K;;YAdF,EAAA,CAAA,SAAA,CAAA,CAAA,CACA;YADA,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,uBAAA,CAAA,EAAA,GAAA,CACA;YAAsC,EAAA,CAAA,SAAA,EAAoB;YAApB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAoB;YACxD,EAAA,CAAA,SAAA,EAEC;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,qBAAiB,CAEhB;YAK4B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkB;YAAlB,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,UAAA,EAAA,CAAkB;YAGX,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,CAAA,GAAA,CAAA,OAAA,EAAA,CAAuB;;YACvB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,CAAA,GAAA,CAAA,OAAA,EAAA,CAAuB;;ACSrD,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,SAAS,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,g1BAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAKjB,YAAY,EAAA,CAAA;cATxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBACR,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA,IAAA,EAGvB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAA,QAAA,EAAA,y2BAAA,EAAA,MAAA,EAAA,CAAA,wxBAAA,CAAA,EAAA;;kFAErB,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC3BzB;;;;;;;;;;AAUG;MAIU,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;;QAKW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ;oFAAU;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AACxC,IAAA;2GAJY,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,EAAA,SAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;iFAAV,UAAU,EAAA,CAAA;cAHtB,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,sBAAsB;AACjC,aAAA;;;ACbD;;;;;;;;;;;AAWG;MAIU,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;;QAKW,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ;wFAAU;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AACxC,IAAA;+GAJY,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;iFAAd,cAAc,EAAA,CAAA;cAH1B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,0BAA0B;AACrC,aAAA;;;AChBD;;;AAGG;AAEH;;;;;AAKG;AACG,SAAU,MAAM,CAAC,KAAc,EAAA;IACnC,QAAQ,OAAO,KAAK;AAClB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,KAAK;AACd,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,QAAA,KAAK,QAAQ;YACX,IAAI,KAAK,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE;YAC7B,IAAI,KAAK,YAAY,IAAI;AAAE,gBAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;AAClD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D,YAAA,OAAO,EAAE;AACX,QAAA;AACE,YAAA,OAAO,EAAE;;AAEf;;AC3BA;;;AAGG;AAeH;;;AAGG;AACH,SAAS,SAAS,CAAC,KAAa,EAAA;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI;AACxC;AAEA;AACM,SAAU,QAAQ,CAAC,KAAc,EAAA;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,KAAK;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;AAAE,QAAA,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;IACrF,OAAO,MAAM,CAAC,GAAG;AACnB;AAEA;;;;AAIG;SACa,SAAS,CACvB,IAAwC,EACxC,KAAa,EACb,EAAgB,EAAA;IAEhB,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,MAAM;IACtC,MAAM,IAAI,GAAa,EAAE;AACzB,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC;IACA,QAAQ,EAAE;AACR,QAAA,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAChG,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrD,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrD,QAAA;AACE,YAAA,OAAO,IAAI;;AAEjB;;AC7DA;;;;AAIG;AAyBH;AACA,SAAS,SAAS,CAAC,KAAc,EAAA;AAC/B,IAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,QAAA,MAAM,CAAC,GAAG,CAAC,CAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACnD,OAAO,CAAA,EAAG,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA,CAAE;IAClF;AACA,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB;AAEA;AACM,SAAU,kBAAkB,CAAC,KAAc,EAAA;IAC/C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AACtF;AAIA,MAAM,WAAW,GAAkB,CAAC,IAAI,EAAE,KAAK,KAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAElE,MAAM,aAAa,GAAkB,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE1F,MAAM,aAAa,GAAkB,CAAC,IAAI,EAAE,KAAK,KAAI;AACnD,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;;AAErD,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpE,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,kBAAkB,GAAkB,CAAC,IAAI,EAAE,KAAK,KAAI;IACxD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAI,KAAwC,IAAI,EAAE;IACpE,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IACpE,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AACpE,IAAA,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI;AAC3C,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,KAAK;AACnC,IAAA,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE;AAAE,QAAA,OAAO,KAAK;AACzC,IAAA,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE;AAAE,QAAA,OAAO,KAAK;AACzC,IAAA,OAAO,IAAI;AACb,CAAC;AAED,MAAM,aAAa,GAAkB,CAAC,IAAI,EAAE,KAAK,KAAI;AACnD,IAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAyB;AAC1C,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,KAAK;AACnC,IAAA,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;AAC/B,CAAC;AAED,MAAM,gBAAgB,GAAkB,CAAC,IAAI,EAAE,KAAK,KAAI;IACtD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAI,KAA0C,IAAI,EAAE;AACxE,IAAA,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AAC/B,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC;AAC3B,IAAA,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK;AAAE,QAAA,OAAO,KAAK;AACtC,IAAA,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG;AAAE,QAAA,OAAO,KAAK;AAClC,IAAA,OAAO,IAAI;AACb,CAAC;AAED;AACA,MAAM,QAAQ,GAA+C;AAC3D,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,SAAS,EAAE,gBAAgB;CAC5B;AAED;SACgB,mBAAmB,CAAC,MAAuB,EAAE,IAAa,EAAE,KAAc,EAAA;IACxF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3C;;AClGA;;;AAGG;AAEH;AACA,MAAM,cAAc,GAAG,cAAc;AAErC,SAAS,iBAAiB,CAAC,KAAc,EAAA;IACvC,QAAQ,OAAO,KAAK;AAClB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,EAAE;AACX,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,KAAK;AACd,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,QAAA;YACE,IAAI,KAAK,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE;YAC7B,IAAI,KAAK,YAAY,IAAI;AAAE,gBAAA,OAAO,KAAK,CAAC,WAAW,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAElC;AAEA;AACM,SAAU,aAAa,CAAC,KAAc,EAAA;AAC1C,IAAA,IAAI,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC;;AAEnC,IAAA,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAAE,QAAA,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;IAChD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACxE;;AC7BA;;;;;;;;;;AAUG;MAIU,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AACxC,IAAA;gHAFY,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;iFAAf,eAAe,EAAA,CAAA;cAH3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,2BAA2B;AACtC,aAAA;;;;;;;;;;;;;;;;OCyEO,IAAA,CAAA,QAAA,CAAA,KAAA,CAAa,CAAA,CAAA;;;IArFf,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAME;AADA,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;IAL5B,EAAA,CAAA,YAAA,EAME;;;IAFA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAsB;;;;;IAKxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAA8D;AAAtB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmC;IAAA,EAAA,CAAA,YAAA,EAAa;;;IAAhD,EAAA,CAAA,SAAA,EAAmC;IAAnC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,CAAmC;;;IAXrG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqC;IACnC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAoB;IASpB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAAoB;IAGtB,EAAA,CAAA,YAAA,EAAM;;;IAZJ,EAAA,CAAA,SAAA,EAQC;IARD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAQC;IACD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAYG,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAkD;;;;IAApC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,eAAA,CAAiC;;;IAI7C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAoI;;;IAA5C,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;;;;AAIrF,IADF,8BAA+H,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAO3H;AAFA,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAU,wBAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;AAGhC,IAPE,iBAME,EACC;;;IARmF,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;IAGnF,EAAA,CAAA,SAAA,EAA6B;AAC7B,IADA,kDAA6B,CAAA,eAAA,EAAA,MAAA,CAAA,gBAAA,EAAA,CACO;;;;IAMxC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAoI;;;IAA5C,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;;;IAoBnF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA8D;;;IAI9D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAIE;;;;IAFA,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,KAAA,MAAA,CAA+D;IAC/D,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,YAAA,CAAA,MAAA,CAAA,CAA0B;;;;IAxBhC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAeC;IAHC,EAFA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,UAAA,CAAA,MAAA,CAAe,KAAC,CAAA,WAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACZ,MAAA,CAAA,cAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,UAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACnC,MAAA,CAAA,WAAA,EAAa,GAAG,0CAAgC,GAAG,IAAI,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC5D,MAAA,CAAA,WAAA,EAAa,GAAG,MAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAA4B,GAAG,IAAI,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,SAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACjD,MAAA,CAAA,YAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAE1B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA2B;IAG3B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAoB;IAOtB,EAAA,CAAA,YAAA,EAAK;;;;AAxBH,IADA,qCAAyB,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,CAAA,EAAA,IAAA,CACc;AAKvC,IAHA,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAA0D,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CACP,gEACQ,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,IAAA,IAAA,MAAA,CAAA,SAAA,EAAA,KAAA,MAAA,CAAA,KAAA,IAAA,CAAA,MAAA,CAAA,MAAA,CAC4C;;IAQvG,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACK,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,CAAgB;IACtB,EAAA,CAAA,SAAA,EAMC;IAND,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,QAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;;;IAKL,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAkD;;;;IAApC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,eAAA,CAAiC;;;AAK3C,IAAJ,0BAAI,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA6D;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiC;AAAK,IAAL,iBAAK,EAAK;;;IAAtE,EAAA,CAAA,SAAA,EAA0B;;IAAC,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,mBAAA,CAAA,CAAiC;;;AAE9F,IAAJ,0BAAI,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA6D;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;AAAK,IAAL,iBAAK,EAAK;;;IAAtD,EAAA,CAAA,SAAA,EAA0B;;IAAC,EAAA,CAAA,SAAA,EAAiB;IAAjB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,CAAiB;;;IAGhF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAsD;IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,CAAiE;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAAvC,EAAA,CAAA,SAAA,EAA4B;IAA5B,EAAA,CAAA,WAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,EAAA,EAAA,IAAA,CAA4B;;;;IAGjH,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA2F;;;;;AAAjD,IAA5B,4CAA2B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAA+C;;;IAGxF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAsD;IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,CAAoE;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAA1C,EAAA,CAAA,SAAA,EAA+B;IAA/B,EAAA,CAAA,WAAA,CAAA,QAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,IAAA,CAA+B;;;;IAPtH,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAoB;IAGpB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,EAAA,UAAA,EAAA,IAAA,CAEC;IACD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAuB;;;IANvB,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACD,EAAA,CAAA,SAAA,EAEC;AAFD,IAAA,EAAA,CAAA,UAAA,CAAA,oBAAa,CAEZ;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAGC,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA2F;;;;;AAAjD,IAA5B,4CAA2B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,OAAA,CAAA,CAA+C;;;IAD1F,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,EAAA,UAAA,EAAA,IAAA,CAEC;;;AAFD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CAEN;;;IAOG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAKC;IACC,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAHH,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,IAAA,EAAA,IAAA,CAAwC;IADxC,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;;IAGlD,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,CACF;;;IAIE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAKC;IACC,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAK;;;;AAJH,IADA,sCAAyB,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA,IAAA,CACc;IACvC,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAA0D;;IAE1D,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,WAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA,GAAA,CACF;;;IARF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAgC;;;;IAAhC,EAAA,CAAA,aAAA,CAAA,cAAA,IAAA,MAAA,CAAA,iBAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;;;AArBL,IADF,6BAAO,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAC+B;IAClC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA8B;IAU9B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,YAAA,CAWC;AAEL,IADE,iBAAK,EACC;;;IAvBJ,EAAA,CAAA,SAAA,CAAA,CAAA,CASC;IATD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;IACD,EAAA,CAAA,SAAA,EAWC;AAXD,IAAA,EAAA,CAAA,UAAA,CAAA,8BAAuB,CAWtB;;;;AAgBH,IADF,8BAA+H,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAQ5H;IADC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAS,MAAA,CAAA,eAAA,EAAwB,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAE,MAAA,CAAA,YAAA,CAAA,OAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAErD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAiC;AAErC,IADE,iBAAS,EACN;;;;IAXmF,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;IAInF,EAAA,CAAA,SAAA,EAA4D;IAA5D,EAAA,CAAA,WAAA,CAAA,oCAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CAA4D;;;;;AAW9D,IADF,8BAA+H,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAO3H;AAFA,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,OAAS,MAAA,CAAA,eAAA,EAAwB,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACxB,yBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;AAG7B,IAPE,iBAME,EACC;;;;IARmF,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;IAGnF,EAAA,CAAA,SAAA,EAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CAA2B;;;;IA0BvB,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAGE;;;;AADA,IADA,sCAAyB,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,OAAA,EAAA,MAAA,CAAA,eAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CACkF;;;;IAKzG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAME;IAHA,iPAAe,MAAA,CAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,kOACvB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,gBAAA,EAAA,SAAA,iHAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACZ,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IALjC,EAAA,CAAA,YAAA,EAME;;;;AAJA,IADA,mDAAoC,CAAA,aAAA,EAAA,OAAA,CAAA,IAAA,CAAA,WAAA,IAAA,EAAA,CACM;;;;IAO5C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,EAAA,CAQE;IAHA,wPAAe,MAAA,CAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,yOACvB,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,gBAAA,EAAA,SAAA,wHAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACZ,MAAA,CAAA,UAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAC;IAPjC,EAAA,CAAA,YAAA,EAQE;;;;AAJA,IAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,YAAA,EAAA,CAA8B,CAAA,KAAA,EAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CACV,yBACA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAA,IAAA,IAAA,CAAA,CACO;;;;IAO7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAKE;AADA,IAFA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,mHAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,MAAA,CAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,kHAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAE1B,kCAA2B,CAAA,CAAA,CAAA,CAAA,CAAC;IAJ5C,EAAA,CAAA,YAAA,EAKE;;;AAFA,IAFA,mDAAoC,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,EAAA,CAEV;;;;IAK5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAOE;AADA,IAFA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,+GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,MAAA,CAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,8GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAE1B,kCAA2B,CAAA,CAAA,CAAA,CAAA,CAAC;IAN5C,EAAA,CAAA,YAAA,EAOE;;;;AAFA,IAJA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,OAAA,CAAA,IAAA,CAAA,OAAA,IAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAkC,CAAA,aAAA,EAAA,OAAA,CAAA,IAAA,CAAA,WAAA,IAAA,EAAA,CACQ,gCAClB,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,EAAA,CAEE;;;;IAK5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CASE;AADA,IAFA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,+GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,MAAA,CAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,8GAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAE1B,kCAA2B,CAAA,CAAA,CAAA,CAAA,CAAC;IAR5C,EAAA,CAAA,YAAA,EASE;;;;AAFA,IAJA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,OAAA,CAAA,IAAA,CAAA,OAAA,IAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAkC,CAAA,aAAA,EAAA,OAAA,CAAA,IAAA,CAAA,WAAA,IAAA,EAAA,CACQ,gCAClB,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,EAAA,CAEE;;;AAR9B,IAtCA,+HAAgB,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,EAAA,CASE,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAWF,0GAQE,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAUK;;;;IAvCzB,EAAA,CAAA,aAAA,CAAA,CAAA,QAAA,GAAA,OAAA,CAAA,IAAA,EAAA,IAAA,MAAA,MAAM,oBAAN,QAAQ,GAAA,CAAA,GAAA,QAAA,KAAR,MAAM,GAAA,CAAA,GAAA,QAAA,KAAN,QAAQ,GAAA,CAAA,GAAA,QAAA,KAAR,aAAa,GAAA,CAAA,GAAA,CAAA,CAAA,CAmDZ;;;;IA/DL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,CAKC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6EAAA,CAAA,MAAA,EAAA,EAAA,OAAS,MAAA,CAAA,eAAA,EAAwB,CAAA,CAAA,CAAA,CAAC,CAAA,UAAA,EAAA,SAAA,gFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACtB,+BAAwB,CAAA,CAAA,CAAA,CAAA,CAAC;AAOnC,IALF,2HAA4C,CAAA,CAAA,EAAA,sEAAA,EAAA,CAAA,EAAA,CAAA,CAKnC;IAsDX,EAAA,CAAA,YAAA,EAAM;;;;;IA3DJ,EAAA,CAAA,SAAA,CAAA,CAAA,CA0DC;IA1DD,EAAA,CAAA,aAAA,CAAA,CAAA,QAAA,GAAA,MAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,QAAA,CA0DC;;;IAGH,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAGE;;;;;AADA,IADA,sCAAwB,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,OAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CACuD;;;IAGjF,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;;;;;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,EAAA,GAAA,CACF;;;;IApFF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,UAAA,CAAA,OAAA,CAAe,GAAG,MAAA,CAAA,SAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAA2B,GAAG,IAAI,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,eAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC7C,MAAA,CAAA,UAAA,CAAA,OAAA,CAAe,KAAK,MAAA,CAAA,aAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAA6B,GAAG,MAAA,CAAA,SAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAA2B,GAAG,IAAI,CAAA,CAAA,CAAA,CAAA,CAAC;IAExG,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAqC,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,CAmES,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,CAKrC;IAGX,EAAA,CAAA,YAAA,EAAK;;;;;;IAnFH,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA,IAAA,CAAuC;AAEvC,IADA,8EAA0D,CAAA,gCAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAA,aAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CACgC;;IAM1F,EAAA,CAAA,SAAA,EA0EC;IA1ED,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,aAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,QAAA,GAAA,MAAA,CAAA,YAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,QAAA,CA0EC;;;AAMH,IADF,8BAAuC,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CACyB;IAC5D,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAmG;AAEvG,IADE,iBAAK,EACF;;;;IAHgC,EAAA,CAAA,SAAA,EAA0B;;IAC7C,EAAA,CAAA,SAAA,EAAmC;AAAC,IAApC,wDAAmC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,OAAA,CAAA,CAA+C;;;;IA3HtG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAKC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAe,CAAA,CAAA,CAAA,CAAA,CAAC;IAEzB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAsB;IActB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA+B;IAW/B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAAA,YAAA,CAuFC;IACH,EAAA,CAAA,YAAA,EAAK;IACL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA6D;;;;IArH3D,EAAA,CAAA,WAAA,CAAA,QAAA,EAAA,MAAA,CAAA,aAAA,EAAA,GAAA,MAAA,CAAA,SAAA,EAAA,GAAA,IAAA,EAAA,IAAA,CAAwD;AADxD,IADA,2EAAuD,CAAA,+BAAA,EAAA,MAAA,CAAA,YAAA,EAAA,IAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CACkB;IAIzE,EAAA,CAAA,SAAA,EAaC;IAbD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,YAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;IACD,EAAA,CAAA,SAAA,EAUC;IAVD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,EAAA,KAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAUC;IACD,EAAA,CAAA,SAAA,EAuFC;AAvFD,IAAA,EAAA,CAAA,UAAA,CAAA,8BAAuB,CAuFtB;IAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAMC;IAND,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,YAAA,EAAA,IAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAA,aAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;;;IAMG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAoI;;;IAA5C,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;;;IAGvF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAoI;;;IAA5C,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,EAAA,IAAA,CAAsC;IAAzF,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAkD;;;;IAWjF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAQE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,eAAA,CAAA,OAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAqD,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,OACtD,wBAAwB,CAAA,CAAA,CAAA,CAAC;IAPpC,EAAA,CAAA,YAAA,EAQE;;;;IAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,EAAA,CAAgD;;;;;IAMlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CASE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,cAAA,CAAA,OAAA,CAAA,KAAA,EAAA,MAAA,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,OAClC,wBAAwB,CAAA,CAAA,CAAA,CAAC;IARpC,EAAA,CAAA,YAAA,EASE;;;;IAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,EAAA,CAAgD;;;;;IAMlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAOE;AADA,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,6CAAkC,CAAA,CAAA,CAAA,CAAA,CAAC;IANpD,EAAA,CAAA,YAAA,EAOE;;;;AAFA,IAJA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,OAAA,CAAA,MAAA,CAAA,OAAA,IAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAoC,CAAA,UAAA,EAAA,CAAA,CAAA,OAAA,CAAA,MAAA,CAAA,QAAA,CACF,6EAE+B,CAAA,OAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,IAAA,CACrB;;;;AAM5C,IADF,+BAAoC,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAUhC;AADA,IADA,mPAAS,MAAA,CAAA,cAAA,CAAA,OAAA,CAAA,KAAA,EAA0B,KAAK,SAAS,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,OACzC,wBAAwB,CAAA,CAAA,CAAA,CAAC;IARpC,EAAA,CAAA,YAAA,EASE;IACF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CASE;AADA,IADA,mPAAS,MAAA,CAAA,cAAA,CAAA,OAAA,CAAA,KAAA,EAA0B,KAAK,SAAS,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,OACzC,wBAAwB,CAAA,CAAA,CAAA,CAAC;AAEtC,IAVE,iBASE,EACE;;;;IAdF,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,GAAA,CAAiC;;IAUjC,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,GAAA,CAAiC;;;;;IAOrC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAwE;AAAnC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,OAAS,wBAAwB,CAAA,CAAA,CAAA,CAAC;IACrE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAQE;AAFA,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,6CAAkC,CAAA,CAAA,CAAA,CAAA,CAAC;AAGtD,IATE,iBAQE,EACE;;;;IAPF,EAAA,CAAA,SAAA,EAA2B;AAG3B,IAHA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,OAAA,CAAA,MAAA,CAAA,GAAA,IAAA,CAAA,CAA2B,CAAA,KAAA,EAAA,OAAA,CAAA,MAAA,CAAA,GAAA,IAAA,GAAA,CACE,kCACA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CACL;;;;IAO5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAIE;AADA,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,uFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,6CAAkC,CAAA,CAAA,CAAA,CAAA,CAAC;IAHpD,EAAA,CAAA,YAAA,EAIE;;;;AAFA,IADA,gGAAuE,CAAA,OAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CACH;;;IAhF5E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAKC;IAEG,+FAAgB,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAWE,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAYA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAUK,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAwBL,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAaG;IAQzB,EAAA,CAAA,YAAA,EAAK;;;;;AAnFH,IADA,sCAAyB,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA,IAAA,CACc;IAEvC,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAA0D;;IAE1D,EAAA,CAAA,SAAA,EA8EC;IA9ED,EAAA,CAAA,aAAA,CAAA,CAAA,QAAA,GAAA,OAAA,CAAA,MAAA,EAAA,IAAA,MAAA,MAAM,GAAA,CAAA,GAAA,QAAA,KAAN,QAAQ,GAAA,CAAA,GAAA,QAAA,KAAR,QAAQ,GAAA,CAAA,GAAA,QAAA,KAAR,aAAa,GAAA,CAAA,GAAA,QAAA,KAAb,QAAQ,GAAA,CAAA,GAAA,QAAA,KAAR,WAAW,GAAA,CAAA,GAAA,CAAA,CAAA,CA8EV;;;IA5FP,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAuC;IACrC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAsB;IAGtB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAA+B;IAG/B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAAA,YAAA,CAuFC;IACH,EAAA,CAAA,YAAA,EAAK;;;IA9FH,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,YAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,EAAA,KAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACD,EAAA,CAAA,SAAA,EAuFC;AAvFD,IAAA,EAAA,CAAA,UAAA,CAAA,8BAAuB,CAuFtB;;;;IAKH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmC;IACjC,EAAA,CAAA,YAAA,CAAA,CAAA,CAA6C;IAC7C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAOE;AAFA,IAFA,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,6EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAmB,MAAA,CAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,gBAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAEvB,gCAAyB,CAAA,CAAA,CAAA,CAAA,CAAC;AAGhD,IARE,iBAOE,EACE;;;IAPF,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0B;AAK1B,IALA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAA0B,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CACD,oCAEG,CAAA,iBAAA,EAAA,MAAA,CAAA,eAAA,EAAA,CAES;;ACtR3C,MAAM,MAAM,GAAG,EAAE;AACjB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;AACA,MAAM,eAAe,GAAmC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAElG;AACA,SAAS,aAAa,CAAC,CAAU,EAAE,CAAU,EAAA;IAC3C,IAAI,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AACxB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D;AACA,IAAA,OAAO,KAAK;AACd;AAeA;;;;;;;;;;;;AAYG;MAwBU,YAAY,CAAA;AAwFvB,IAAA,WAAA,GAAA;;QAtFS,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ;oFAAwB;QAChD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,EAAE;iFAAC;QAC9B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAE1D,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAmB,QAAQ;8FAAC;;QAErD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,CAAC;qFAAC;QACnB,IAAA,CAAA,eAAe,GAAG,KAAK,CAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;4FAAC;QAClD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAiC,MAAM;uFAAC;QAC1D,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAEvD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;;QAE9B,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgB,IAAI;mFAAC;;QAEnC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAgB,IAAI;yFAAC;;QAEzC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAE7D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE;sFAAC;;QAErB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAE3D,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAE1D,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,YAAY;2FAAC;;QAEpC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAEpD,IAAA,CAAA,YAAY,GAAG,KAAK,CAAgB,IAAI;yFAAC;;QAEzC,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAE1D,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAE1D,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;AACvC;;;AAGG;QACM,IAAA,CAAA,aAAa,GAAG,KAAK,CAAiC,IAAI;0FAAC;;QAG3D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAM,EAAE;sFAAC;;QAE1B,IAAA,CAAA,YAAY,GAAG,KAAK,CAAM,EAAE;yFAAC;AACtC;;;;AAIG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAoB,EAAE;yFAAC;QAC3C,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAK;;QAEtB,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAqB;;QAEtC,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAuB;AAE9B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;;AAEtB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;sFAAC;;QAGjF,IAAA,CAAA,cAAc,GAAG,YAAY,CAAuB,MAAM,IAAI,CAAC,OAAO,EAAE;2FAAC;;AAEzE,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAClD,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;kGAC5E;;QAGgB,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA0B,UAAU;qFAAC;QACvD,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC;sFAAC;QACrB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,GAAG;2FAAC;QAC9B,IAAA,CAAA,MAAM,GAAG,CAAC;;QAGV,IAAA,CAAA,OAAO,GAAG,SAAS,CAAsC,SAAS;oFAAC;QACjE,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC;wFAAC;;QAGvB,IAAA,CAAA,WAAW,GAAG,MAAM,CAAmC,IAAI;wFAAC;QAC5D,IAAA,CAAA,YAAY,GAAG,MAAM,CAAU,IAAI;yFAAC;;QAEpC,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK;4FAAC;QACjC,IAAA,CAAA,UAAU,GAAG,SAAS,CAA0B,YAAY;uFAAC;AA+C3D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;yFAC3E;AACkB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AACnF,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC;QACrD,CAAC;uFAAC;QACiB,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;wFAAC;AACzF,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;mFAAC;QAC/D,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;sFAAC;;AAG5G;;;AAGG;QACgB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI;sFAAC;;QAkEzC,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,UAAU;qFAAC;AACtC,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC;AACnD,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC;AACvE,YAAA,OAAO,GAAG;QACZ,CAAC;oFAAC;;QAMe,IAAA,CAAA,YAAY,GAAG,eAAe,CAAC,cAAc;yFAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC;AACnD,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC;AAC/E,YAAA,OAAO,GAAG;QACZ,CAAC;wFAAC;;AA2DiB,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAc,KAAU;AAC5D,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC;;QAOgB,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,eAAe;yFAAC;AAC1C,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,IAAI,IAAI;yFAAC;;AAEpE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;yFAAC;;QAazE,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,EAAE;uFAAC;QACvB,IAAA,CAAA,aAAa,GAAG,MAAM,CAA0B,EAAE;0FAAC;QACnD,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI;sFAAC;QACvC,IAAA,CAAA,OAAO,GAAG,MAAM,CAAU,IAAI;oFAAC;QAC/B,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC;sFAAC;QACrB,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;0FAAC;QAEzD,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;6FAAC;;AAgDzE,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACpD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACtB,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KACrB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAE,GAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACtG;YACH;AACA,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7D;AACA,YAAA,OAAO,IAAI;QACb,CAAC;qFAAC;AAEe,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACtC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI;AAC/B,YAAA,MAAM,IAAI,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC7B,gBAAA,MAAM,EAAE,GAAI,CAA6B,CAAC,KAAK,CAAC;AAChD,gBAAA,MAAM,EAAE,GAAI,CAA6B,CAAC,KAAK,CAAC;gBAChD,IAAI,EAAE,IAAI,IAAI;AAAE,oBAAA,OAAO,CAAC;gBACxB,IAAI,EAAE,IAAI,IAAI;oBAAE,OAAO,CAAC,CAAC;gBACzB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ;AAAE,oBAAA,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI;AAC7E,gBAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;AACpD,YAAA,CAAC,CAAC;QACJ,CAAC;mFAAC;AAEiB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;0FACnF;AAEkB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;YACvC,IAAI,IAAI,CAAC,IAAI,EAAE;AAAE,gBAAA,OAAO,IAAI,CAAC,IAAI,EAAE;AACnC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAAE,gBAAA,OAAO,IAAI;AACrC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI;YACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACxC,CAAC;kFAAC;;AAGe,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACtC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;yFAC7E;AACkB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;oFAAC;QACnF,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM;yFAClE;;;AAIkB,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;6FAAC;AAC3G;;;;AAIG;QACc,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MACxC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAI,IAAI,CAAC,QAAQ,EAAyC;0FAC3E;;AAEgB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAClF,CAAC;0FAAC;AACiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;uFAAC;;AAE5D,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACrC,YAAA,OAAO,KAAK,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;QACpG,CAAC;8FAAC;AACF;;;;AAIG;AACgB,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;6FAAC;;AAEnF,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC5C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;AAC5C,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9C,gBAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO;;AAE3B,gBAAA,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE;oBAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7E;gBACF;AACA,gBAAA,IAAI,CAAC,OAAO;oBAAE;AACd,gBAAA,MAAM,GAAG,GACP,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;AAC9F,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7D;AACA,YAAA,OAAO,GAAG;QACZ,CAAC;yFAAC;;;AAiBe,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;YAClD,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,gBAAA,GAAG,IAAI,iBAAiB,GAAG,MAAM;AAC1D,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,MAAM;AAAE,gBAAA,GAAG,IAAI,iBAAiB,GAAG,MAAM;AACnE,YAAA,OAAO,GAAG;QACZ,CAAC;+FAAC;AACe,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB;AACrC,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;YACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;gBAC9C,IAAI,CAAC,GAAG,CAAC,MAAM;AAAE,oBAAA,MAAM;gBACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;gBACvB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YACrC;AACA,YAAA,OAAO,GAAG;QACZ,CAAC;0FAAC;AACiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,GAAG,CAAC;sFAAC;;AAEzD,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;+FAAC;;AAElE,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACpD,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAAE,gBAAA,OAAO,IAAI;AAClC,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAiB,GAAG,MAAM,GAAG,CAAC;QAC7D,CAAC;+FAAC;AA0DiB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;YACzB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;4FAAC;AACiB,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAClD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QACxE,CAAC;6FAAC;AAkBQ,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,GAAM,KAAa;AACvC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,OAAO,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,GAAG,GAAG;AAC1D,QAAA,CAAC;;QA5fC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,gBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE;AAC9B,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;AACzB,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACpC,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,eAAe,CAAC,MAAK;YACnB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa;AACzC,YAAA,IAAI,EAAE;gBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;AAClD,QAAA,CAAC,CAAC;;QAGF,iBAAiB,CAAC,MAAK;YACrB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC;AACtD,YAAA,IAAI,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;AACrD,QAAA,CAAC,CAAC;;QAGF,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE;YACzB,IAAI,CAAC,UAAU;AACb,kBAAE,aAAa,CAAC,aAAa,CAAc,gCAAgC;kBACzE,KAAK,EAAE;AACb,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE;AAC3B,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAAqB;QACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;IAC1C;;AAsBU,IAAA,cAAc,CAAC,GAAc,EAAA;QACrC,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;IAC1C;;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,GAAG,CAAC;QACT,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAC9C,IAAI,GAAG,CAAC,MAAM;AAAE,gBAAA,CAAC,EAAE;;gBACd;QACP;AACA,QAAA,OAAO,CAAC;IACV;IAEU,cAAc,CAAC,KAAa,EAAE,KAAgB,EAAA;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;QAChE,IAAI,GAAG,EAAE,MAAM;AAAE,YAAA,OAAO;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC;QAChD,IAAI,KAAK,CAAC,YAAY;AAAE,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM;IACnE;IACU,aAAa,CAAC,KAAa,EAAE,KAAgB,EAAA;;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AACjF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,KAAK,CAAC,cAAc,EAAE;IAC7F;IACU,SAAS,CAAC,KAAa,EAAE,KAAgB,EAAA;QACjD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK;YAAE;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AACjF,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,OAAO;QAC9C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;QACtD,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE;AACpC,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;IACU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;IAEA,SAAS,GAAA;AACP,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACjE,MAAM,IAAI,GAAG;AACV,aAAA,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAE,GAA+B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aAChG,IAAI,CAAC,IAAI,CAAC;;AAEb,QAAA,MAAM,GAAG,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,EAAA,EAAK,IAAI,EAAE;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;IAC1B;AASU,IAAA,YAAY,CAAC,KAAa,EAAA;QAClC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;IAC1C;AASU,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;IAC9C;;AAGU,IAAA,UAAU,CAAC,GAAc,EAAA;AACjC,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;IACzD;IACU,aAAa,CAAC,GAAM,EAAE,KAAa,EAAA;AAC3C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;QAC5B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;IAC7D;AACU,IAAA,SAAS,CAAC,GAAM,EAAE,GAAc,EAAE,KAAY,EAAA;QACtD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;YAAE;AACjE,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;;;;AAIpD,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/D;AACA;;;;AAIG;AACO,IAAA,mBAAmB,CAAC,IAAa,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,EAAE;IAC9B;AACA;;;;;AAKG;AACO,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAC1C,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,OAAO;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;AAC7C,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAA4B;QAC/C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO;QAChD,IAAI,CAAC,UAAU,EAAE;IACnB;;IAEU,UAAU,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,QAAA,IAAI,CAAC,OAAO;YAAE;AACd,QAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAAE;AACrD,QAAA,MAAM,UAAU,GAAG,EAAE,GAAI,GAA+B,EAAE,CAAC,KAAK,GAAG,KAAK,EAAO;AAC/E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACvD;IAMU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;IACjC;AAOU,IAAA,UAAU,CAAC,GAAM,EAAA;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D;AACU,IAAA,YAAY,CAAC,GAAM,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjF;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnF;IACF;;IAaU,eAAe,CAAC,KAAa,EAAE,KAAc,EAAA;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;;IAEU,cAAc,CAAC,KAAa,EAAE,KAAY,EAAA;AAClD,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;AAC3C,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC1C,QAAA,EAAE,CAAC,KAAK,GAAG,MAAM;AACjB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;IACrC;;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAA+C;AACnF,QAAA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE;IACjD;;AAEU,IAAA,cAAc,CAAC,KAAa,EAAE,KAAoB,EAAE,KAAY,EAAA;AACxE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B;AAC3C,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC1C,QAAA,EAAE,CAAC,KAAK,GAAG,MAAM;QACjB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;IAC3E;;AAEU,IAAA,SAAS,CAAC,GAAc,EAAA;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,CAAiC;AACzE,QAAA,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IACtB;;AAGQ,IAAA,oBAAoB,CAAC,GAAM,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;QACpC,MAAM,KAAK,GAAG,GAA8B;QAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAI;AAClC,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM;AACzB,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAChC,IAAI,kBAAkB,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI;AAC1C,YAAA,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;AAC7D,QAAA,CAAC,CAAC;IACJ;IAwGQ,aAAa,CAAC,GAAY,EAAE,MAAmC,EAAA;AACrE,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3C;AACU,IAAA,WAAW,CAAC,KAAa,EAAA;QACjC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;IAC7C;;AAGQ,IAAA,YAAY,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,MAAM;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,MAAM;AACtC,QAAA,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM;IACrD;AA2BU,IAAA,UAAU,CAAC,KAAa,EAAA;QAChC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;IAChD;AACU,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC;;AAGU,IAAA,UAAU,CAAC,GAAc,EAAA;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACvB;QACF;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,GAAG,KAAK,KAAK;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC,aAAA,IAAI,GAAG,KAAK,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB;;AAAO,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAChC;AACU,IAAA,YAAY,CAAC,GAAc,EAAA;QACnC,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,cAAc;IACnG;AACU,IAAA,QAAQ,CAAC,GAAc,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,MAAM;AACpE,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;IAC9D;;AAGU,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;;IAGQ,OAAO,CAAC,CAAI,EAAE,CAAI,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,QAAA,IAAI,GAAG;YAAE,OAAQ,CAA6B,CAAC,GAAG,CAAC,KAAM,CAA6B,CAAC,GAAG,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC;IAChB;AACU,IAAA,UAAU,CAAC,GAAM,EAAA;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D;AACU,IAAA,SAAS,CAAC,GAAM,EAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAC9B,IAAI,IAAI,KAAK,MAAM;YAAE;AACrB,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACrD;QACF;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CACxF;IACH;IASU,eAAe,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F;aAAO;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QACrD;IACF;;AAGU,IAAA,UAAU,CAAC,GAAM,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IACzB;IACU,QAAQ,CAAC,GAAM,EAAE,KAAa,EAAA;AACtC,QAAA,OAAQ,GAA+B,CAAC,KAAK,CAAC;IAChD;6GAllBW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;4DAwNqB,UAAU,EAAA,CAAA,CAAA,CAAA,QAAA,EAAA,GAAA,CAAA,YAAA,EAWN,cAAc,EAAA,CAAA,CAAA,CAAA,QAAA,EAAA,GAAA,CAAA,YAAA,EA0EjB,eAAe,EAAA,CAAA,CAAA;;;;;;;;YA7SjD,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,WAAA,EAAa,GAAG,IAAI,CAAR;;;YD5JzB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoC;YAiBpC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAA8G;AAA5B,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,2CAAA,CAAA,MAAA,EAAA,EAAA,OAAU,oBAAgB,CAAA,CAAA,CAAA,CAAC;AAMzG,YALF,gCAIC,CAAA,CAAA,EAAA,OAAA,EAAA,IAAA,EAAA,CAAA,CACiB;YACd,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAA2D;YAG3D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAI;YACF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAsB;AAapB,YAVF,8EAAmC,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAUK;YAGxC,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAAA,YAAA,CA6BC;YACH,EAAA,CAAA,YAAA,EAAK;YACL,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAA8D;YAGhE,EAAA,CAAA,YAAA,EAAQ;YACR,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,OAAA,CAAO;AAeH,YAdF,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAAiB,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAEkB,gDAEL,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,CAUrB;YAKX,EAAA,CAAA,YAAA,EAAQ;YACR,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,CAAwD;AA6B5D,YADE,iBAAQ,EACJ;AAoIN,YAlIA,gHAA6B,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAkIF;YAmG3B,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA0C;;YAxW1C,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,IAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAeC;YAE6C,EAAA,CAAA,SAAA,EAAmC;YAAnC,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,YAAA,EAAA,CAAmC;YAG7E,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmD;AACnD,YADA,gEAAmD,CAAA,gCAAA,EAAA,GAAA,CAAA,aAAA,EAAA,CACK;YAGtD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,gBAAA,EAAA,IAAA,GAAA,CAAA,iBAAA,EAAA,KAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,YAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YACD,EAAA,CAAA,SAAA,EAYC;YAZD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,KAAA,UAAA,GAAA,CAAA,GAAA,GAAA,CAAA,UAAA,EAAA,KAAA,QAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAYC;YACD,EAAA,CAAA,SAAA,CAAA,CAAA,CA6BC;AA7BD,YAAA,EAAA,CAAA,UAAA,CAAA,2BAAuB,CA6BtB;YAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,gBAAA,EAAA,IAAA,GAAA,CAAA,iBAAA,EAAA,KAAA,QAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAEC;YAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAkBC;YAlBD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,EAAA,GAAA,EAAA,GAAA,GAAA,CAAA,YAAA,EAAA,KAAA,CAAA,GAAA,EAAA,GAAA,GAAA,CAAA,aAAA,EAAA,GAAA,EAAA,GAAA,EAAA,CAkBC;YAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CA2BC;YA3BD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,IAAA,CAAA,GAAA,CAAA,OAAA,EAAA,IAAA,GAAA,CAAA,YAAA,EAAA,GAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CA2BC;YAyOL,EAAA,CAAA,SAAA,CAAA,CAAA,CAYC;YAZD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,QAAA,EAAA,GAAA,CAAA,IAAA,CAAA,GAAA,CAAA,aAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAYC;4BC1OG,gBAAgB;YAChB,SAAS;YACT,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,cAAc;YACd,aAAa,CAAA,EAAA,MAAA,EAAA,CAAA,usUAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFASJ,YAAY,EAAA,CAAA;cAvBxB,SAAS;2BACE,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;oBACP,gBAAgB;oBAChB,SAAS;oBACT,OAAO;oBACP,YAAY;oBACZ,SAAS;oBACT,YAAY;oBACZ,SAAS;oBACT,QAAQ;oBACR,cAAc;oBACd,aAAa;iBACd,EAAA,IAAA,EAGK;AACJ,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,4BAA4B,EAAE,sBAAsB;AACrD,iBAAA,EAAA,QAAA,EAAA,uqfAAA,EAAA,MAAA,EAAA,CAAA,myTAAA,CAAA,EAAA;w0FA0E8D,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAMC,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAQlB,YAAY,4FAkIjC,UAAU,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAWN,cAAc,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MA0EjB,eAAe,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFA7SjD,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;;ICpHX,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAmI;AAApF,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,8BAAoB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC3E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAA0F;IAC5F,EAAA,CAAA,YAAA,EAAS;;;;;IADkD,EAAA,CAAA,SAAA,EAA8B;IAA9B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAA8B;;;IAGzF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsC;;;IAEtB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAsD;;;IAA5C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAI9C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAiB;IACf,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAwH;IAC1H,EAAA,CAAA,YAAA,EAAK;;;;;;IADW,EAAA,CAAA,SAAA,EAA4B;AAAC,IAA7B,6CAA4B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAI,KAAA,EAAA,OAAA,CAAA,QAAA,EAAA,QAAA,GAAA,CAAA,CAAA,CAA2E;;;;AAnBzH,IADF,6BAAkG,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAO/F;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAW,CAAA,CAAA,CAAA,CAAA,CAAC;AAMnB,IAJF,gGAAiB,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAIR;IAGT,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;AAChD,IADgD,iBAAO,EACjD;IACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAiC;IAKnC,EAAA,CAAA,YAAA,EAAK;;;;;;IAlBD,EAAA,CAAA,SAAA,EAAoD;IAApD,EAAA,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,GAAA,QAAA,GAAA,GAAA,EAAA,KAAA,CAAoD;AADpD,IADA,yDAAsC,CAAA,aAAA,EAAA,OAAA,CAAA,QAAA,CACH;IAInC,EAAA,CAAA,SAAA,EAMC;IAND,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,OAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAMC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0E;IAA1E,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA0E;IAC5C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IAEhD,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,OAAA,CAAA,IAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAIC;;;IAvBL,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAyBC;;;IAzBD,EAAA,CAAA,UAAA,CAAA,OAAA,CAyBC;;AA1CP;;;;;AAKG;MA2CU,OAAO,CAAA;AA1CpB,IAAA,WAAA,GAAA;QA2CW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,IAAI;qFAAC;QAC7C,IAAA,CAAA,SAAS,GAAG,MAAM,EAAkB;QAE5B,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,CAAC;oFAAC;AA0BrC,IAAA;AAxBW,IAAA,GAAG,CAAC,IAAoB,EAAA;AAChC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM;IAChC;AACU,IAAA,MAAM,CAAC,IAAoB,EAAA;QACnC,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ;IACxB;AACU,IAAA,UAAU,CAAC,IAAoB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI;IACjC;IACU,MAAM,CAAC,IAAoB,EAAE,KAAY,EAAA;QACjD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC;AACU,IAAA,KAAK,CAAC,IAAoB,EAAA;QAClC,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACzC,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;wGA/BW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YApChB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAiC;YAC/B,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAA0G;YAC5G,EAAA,CAAA,YAAA,EAAK;YAEL,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAiD;;;YAHjC,EAAA,CAAA,SAAA,EAA4B;AAAC,YAA7B,6CAA4B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAL,KAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAA,CAA6D;AAHjG,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,mtCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAsCxB,OAAO,EAAA,CAAA;cA1CnB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,eAAe,EAAE,EAAA,MAAA,EAAA,CAAA,uqCAAA,CAAA,EAAA;;kFAErB,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;IClCU,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAK1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAtB,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,IAAA,CAAe;;;IAE3C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAI;;;IAA1B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;AAR/E,IADF,6BAA+B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACqD;IAChF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACnB,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACC,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IACzD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiB;IACnB,EAAA,CAAA,YAAA,EAAM;IACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAwB;AAE5B,IADE,iBAAM,EACH;;;IAV+B,EAAA,CAAA,SAAA,EAA+C;;IAC/E,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAIf,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IAClD,EAAA,CAAA,SAAA,EAA2E;IAA3E,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA2E;IAE7E,EAAA,CAAA,SAAA,EAAmF;IAAnF,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmF;;AAvB/F;;;;;AAKG;MA2BU,WAAW,CAAA;AA1BxB,IAAA,WAAA,GAAA;QA2BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE;kFAAC;AAC9C,IAAA;4GAFY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YApBpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAyB;YACvB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAaC;YACH,EAAA,CAAA,YAAA,EAAK;;YAdH,EAAA,CAAA,SAAA,EAaC;AAbD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAaN;4BAhBK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,wvDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAsBN,WAAW,EAAA,CAAA;cA1BvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,opDAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICpBZ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiC;IAC/B,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA+G;IACjH,EAAA,CAAA,YAAA,EAAM;;;;;IADU,EAAA,CAAA,SAAA,EAA+B;AAAC,IAAhC,oDAA+B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAA+D;;;;IAehH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAMC;AAFC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mDAAA,GAAA,EAAA,MAAA,aAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,0BAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAElB,EAAA,CAAA,YAAA,EAAS;;;;IAHR,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,aAAA,KAAA,MAAA,CAAA,WAAA,EAAA,CAAuC;;;AArCnD;;;;;;;AAOG;MAyCU,WAAW,CAAA;AAxCxB,IAAA,WAAA,GAAA;QAyCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,EAAE;kFAAC;QACtB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,CAAC;wFAAC;AACZ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW;qFAAC;AAWjE,IAAA;IATC,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E;IACA,IAAI,GAAA;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD;AACA,IAAA,IAAI,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;4GAdW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;4DAI8B,WAAW,EAAA,CAAA,CAAA;;;;YAtC7D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACY,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAC+D;YAC/F,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;AAEL,YADE,iBAAM,EACF;YAEN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAwK;AAAhG,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YACtF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;YAClC,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAoL;AAA5G,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YACtF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiC;YACnC,EAAA,CAAA,YAAA,EAAS;YAET,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;YAC9B,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAQC;AAEL,YADE,iBAAM,EACF;;YA3B+B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA+D;YAA/D,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,cAAA,GAAA,GAAA,CAAA,WAAA,EAAA,GAAA,GAAA,GAAA,IAAA,CAA+D;YAC9F,EAAA,CAAA,SAAA,EAIC;AAJD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAIN;YAIoF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgC;YAAhC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,WAAA,EAAA,KAAA,CAAA,CAAgC;;YAGhC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgD;YAAhD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,WAAA,EAAA,IAAA,GAAA,CAAA,KAAA,EAAA,CAAA,MAAA,GAAA,CAAA,CAAgD;;YAKvI,EAAA,CAAA,SAAA,CAAA,CAAA,CAQC;AARD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAQN;AA7BG,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,8yCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAoCxB,WAAW,EAAA,CAAA;cAxCvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,0wCAAA,CAAA,EAAA;iUAMgB,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAJpD,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;;ICrBd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiC;IAC/B,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA8G;IAChH,EAAA,CAAA,YAAA,EAAM;;;;;IADU,EAAA,CAAA,SAAA,EAA8B;AAAC,IAA/B,mDAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAK,KAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAA+D;;;IAG7G,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAApC,EAAA,CAAA,SAAA,EAA8B;IAA9B,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAA8B;;;;IAKlE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAA8H;IAArF,EAAA,CAAA,gBAAA,CAAA,iBAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAyB;IAAlE,EAAA,CAAA,YAAA,EAA8H;;;IAA/G,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,KAAA,EAAA,CAAA,MAAA,CAAyB;IAAC,EAAA,CAAA,gBAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAyB;AAAyB,IAAxB,4CAAuB,CAAA,iBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAA,CAAiC;;AAnCnI;;;;;;;;AAQG;MAkCU,WAAW,CAAA;AAjCxB,IAAA,WAAA,GAAA;QAkCW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,EAAE;kFAAC;QACtB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAkB,MAAM;mFAAC;QACvC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,CAAC;qFAAC;QACnB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW;oFAAC;QAC5C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,CAAC;sFAAC;AAEpB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;sFAAC;AAC5G,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC,KAAK,EAAE;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI;AACrC,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QAChD,CAAC;sFAAC;AACH,IAAA;4GAhBY,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2DAM6B,WAAW,EAAA,CAAA,CAAA;;;;YAjC5D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACW,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACA;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAyD;YAAA,EAAA,CAAA,YAAA,EAAM;AAE/F,YADF,8BAAmC,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACsG;YAAzE,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,MAAA,CAAA,GAAA,CAAW,MAAM,CAAC,CAAA,CAAA,CAAA,CAAC;YAA6C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAwB;YAAA,EAAA,CAAA,YAAA,EAAS;YACxK,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuI;YAAzE,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,MAAA,CAAA,GAAA,CAAW,MAAM,CAAC,CAAA,CAAA,CAAA,CAAC;YAA6C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAwB;YAAA,EAAA,CAAA,YAAA,EAAS,EACpK,EACF;YAEN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkE;YAChE,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,KAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAMC;YACH,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAmB;YAGrB,EAAA,CAAA,YAAA,EAAM;;YApBgC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyD;YAAzD,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAN,KAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAyD;YAEnE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;YAAvC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,MAAA,EAAA,KAAA,MAAA,CAAuC;;YACvC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuC;YAAvC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,MAAA,EAAA,KAAA,MAAA,CAAuC;;YAI7B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6B;;YAC/D,EAAA,CAAA,SAAA,EAMC;AAND,YAAA,EAAA,CAAA,UAAA,CAAA,eAAW,CAMV;YAGH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAEC;4BAvBK,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAA,EAAA,MAAA,EAAA,CAAA,sgDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA6BtC,WAAW,EAAA,CAAA;cAjCvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBACR,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,EAAA,QAAA,EACxC;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,MAAA,EAAA,CAAA,s7CAAA,CAAA,EAAA;mfAQc,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFANnD,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICvBZ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAA6G;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,MAAA,CAAO,QAAQ,EAAA,OAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAC1G,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA+F;IACjG,EAAA,CAAA,YAAA,EAAK;;;;IAF2B,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAA2C;IAC3D,EAAA,CAAA,SAAA,EAA8B;AAAC,IAA/B,mDAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,OAAA,CAAA,CAAgD;;;;IAiB9F,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAA6G;IAAjC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,MAAA,CAAO,QAAQ,EAAA,OAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAC1G,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAA+F;IACjG,EAAA,CAAA,YAAA,EAAK;;;;IAF2B,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAA2C;IAC3D,EAAA,CAAA,SAAA,EAA8B;AAAC,IAA/B,mDAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,OAAA,CAAA,CAAgD;;AAvC1G;;;;;;;;AAQG;MAyCU,WAAW,CAAA;AAxCxB,IAAA,WAAA,GAAA;QAyCW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAM,EAAE;mFAAC;QACvB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAM,EAAE;mFAAC;;AAEvB,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;;AAE9B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;AACpB,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW;oFAAC;AAE5C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;kGAAC;AAChG,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;kGAAC;AAC/F,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAS,IAAI,GAAG,EAAE;sFAAC;AACrC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAS,IAAI,GAAG,EAAE;sFAAC;AAoBzD,IAAA;IAlBW,MAAM,CAAC,IAAyB,EAAE,IAAO,EAAA;AACjD,QAAA,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;AAChC,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IACf;IAEU,IAAI,CAAC,IAAyB,EAAE,GAAY,EAAA;AACpD,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/D,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC7D,QAAA,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC/D,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE;QACpB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;AACtC,QAAA,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACpB;4GAhCW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2DAO6B,WAAW,EAAA,CAAA,CAAA;;;;YAzC5D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACO,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACK;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA6B;YAAA,EAAA,CAAA,YAAA,EAAM;YACtE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAiC;YAC/B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;AAEL,YADE,iBAAK,EACD;AAGJ,YADF,8BAAqC,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACsE;AAAnF,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,IAAA,CAAK,QAAQ,EAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAC;AAAsF,YAAjC,8BAAiC,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAiC;YAAA,EAAA,CAAA,YAAA,EAAS;YACpL,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAuG;AAAjF,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,IAAA,CAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,CAAA,CAAA,CAAC;YAAkD,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAiC;YAAA,EAAA,CAAA,YAAA,EAAS;YACjJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAsG;AAAhF,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,IAAA,CAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,CAAA,CAAA,CAAC;YAAiD,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,YAAA,EAAS;YAC/I,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAwG;AAAlF,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,IAAA,CAAK,QAAQ,EAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAC;AAAoF,YAAhC,+BAAgC,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;AAC1K,YAD0K,iBAAS,EAC7K;AAGJ,YADF,+BAAgC,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CACK;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAA6B;YAAA,EAAA,CAAA,YAAA,EAAM;YACtE,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAiC;YAC/B,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;YACH,EAAA,CAAA,YAAA,EAAK,EACD,EACF;;YA3BiC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6B;YAA7B,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,qBAAA,EAAA,CAA6B;YAE9D,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;AAJD,YAAA,EAAA,CAAA,UAAA,CAAA,YAAQ,CAIP;YAKkD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmD;;YAClD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgD;;YAChD,EAAA,CAAA,SAAA,CAAA,CAAA,CAA+C;;YAChD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkD;;YAIpE,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6B;YAA7B,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,qBAAA,EAAA,CAA6B;YAE9D,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;AAJD,YAAA,EAAA,CAAA,UAAA,CAAA,YAAQ,CAIP;AA5BC,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,+zDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAoCxB,WAAW,EAAA,CAAA;cAxCvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,MAAA,EAAA,CAAA,utDAAA,CAAA,EAAA;gjBASc,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAPnD,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IC5BC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAApB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;;;IAG/D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAkG;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,MAAA,aAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kCAAe,CAAA,CAAA,CAAA,CAAA,CAAC;IAC/F,EAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAyG;IAC3G,EAAA,CAAA,YAAA,EAAK;;;;;IAF4B,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,MAAA,CAAA,QAAA,EAAA,KAAA,aAAA,CAAsC;IACvD,EAAA,CAAA,SAAA,EAA8B;AAAC,IAA/B,mDAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,CAA0D;;AAzBpH;;;;;;;;AAQG;MA2BU,YAAY,CAAA;AA1BzB,IAAA,WAAA,GAAA;QA2BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,EAAE;kFAAC;QACtB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;AACR,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW;oFAAC;QAC5C,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI;qFAAC;AAY1D,IAAA;AAVW,IAAA,YAAY,CAAC,GAAW,EAAA;AAChC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QACzB,IAAI,CAAC,KAAK,IAAI;YAAE;AAChB,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;QACjB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM;YAAE;QAC9B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB;6GAhBW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2DAI4B,WAAW,EAAA,CAAA,CAAA;;;;YAxB5D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACY,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACyF;YAAvG,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,YAAA,CAAA,CAAc,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;YAA6E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4B;YAAA,EAAA,CAAA,YAAA,EAAS;YAClK,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA8H;YAAxG,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAS,GAAA,CAAA,YAAA,CAAa,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;YAA+E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA8B;AAC9J,YAD8J,iBAAS,EACjK;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmC;YACjC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAChB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAkC;YAChC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;YACH,EAAA,CAAA,YAAA,EAAK,EACD,EACF;;YAb+C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgC;YAAhC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,KAAA,IAAA,CAAgC;;YACjC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgC;YAAhC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,KAAA,IAAA,CAAgC;;YAGhF,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2E;YAA3E,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA2E;YAEzE,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;AAJD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAIN;AAdC,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,4wDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAsBxB,YAAY,EAAA,CAAA;cA1BxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,MAAA,EAAA,CAAA,oqDAAA,CAAA,EAAA;gTAMa,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFAJnD,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICdf,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2E;;;AAAzB,IAAjB,mDAAgB,CAAA,KAAA,EAAA,OAAA,CAAA,GAAA,IAAA,EAAA,CAAuB;;;;IAQtE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAsL;AAA5F,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,MAAA,aAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qCAAkB,CAAA,CAAA,CAAA,CAAA,CAAC;IACpH,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAiE;IACnE,EAAA,CAAA,YAAA,EAAS;;;;;IAFyC,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,aAAA,KAAA,MAAA,CAAA,WAAA,EAAA,CAAuC;;IAClF,EAAA,CAAA,SAAA,EAAkC;AAAC,IAAnC,wEAAkC,CAAA,KAAA,EAAA,OAAA,CAAA,GAAA,IAAA,EAAA,CAAuB;;;IAHpE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIC;IACH,EAAA,CAAA,YAAA,EAAM;;;IALJ,EAAA,CAAA,SAAA,EAIC;AAJD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CAIN;;AA3BX;;;;;AAKG;MA8BU,WAAW,CAAA;AA7BxB,IAAA,WAAA,GAAA;QA8BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE;kFAAC;QACpC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,CAAC;wFAAC;QACtB,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,IAAI,sFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEnD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI;oFAAC;AAQtF,IAAA;IANW,IAAI,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E;IACU,IAAI,GAAA;QACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD;4GAbW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAvBpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACS,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACyI;AAAhG,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YAAgF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,YAAA,EAAS;YACjN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0B;YAG1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAoL;AAA5G,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,UAAM,CAAA,CAAA,CAAA,CAAC;YAA4F,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiC;AACvN,YADuN,iBAAS,EAC1N;YAEN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwB;YAS1B,EAAA,CAAA,YAAA,EAAM;;;YAhBuF,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgC;YAAhC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,WAAA,EAAA,KAAA,CAAA,CAAgC;;YACzH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,GAAA,CAAA,OAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAEC;YACwF,EAAA,CAAA,SAAA,EAAgD;YAAhD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,WAAA,EAAA,IAAA,GAAA,CAAA,KAAA,EAAA,CAAA,MAAA,GAAA,CAAA,CAAgD;;YAG3I,EAAA,CAAA,SAAA,CAAA,CAAA,CAQC;YARD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,cAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAQC;4BAnBK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,+7CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAyBN,WAAW,EAAA,CAAA;cA7BvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EACP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,25CAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICbd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAAnB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAa;;;;IAK7C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA8G;AAA/D,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;AArBpJ;;;;;AAKG;MAuBU,QAAQ,CAAA;AAtBrB,IAAA,WAAA,GAAA;QAuBW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkB,MAAM;oFAAC;QACxC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE;kFAAC;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC3D,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;AAEb,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACtB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,IAAI;oFAAC;AAW1C,IAAA;IATW,QAAQ,GAAA;QAChB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAC7F,IAAI,CAAC,OAAO,EAAE,CACA;IAClB;IACU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;yGAjBW,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAR,YAAA,EAAA,CAAA,aAAA,CAAA,QAAA,EAAA,CAAC,aAAS,CAAF;;;YAhBjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoE;YAClE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAwD;YACxD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;YAC9B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAe;YAGf,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAChD,YADgD,iBAAM,EAChD;YACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqB;YAGvB,EAAA,CAAA,YAAA,EAAM;;;YAV8B,EAAA,CAAA,SAAA,EAAmB;YAAnB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CAAmB;YAEnD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAGH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;4BAZK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,2sCAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAkBN,QAAQ,EAAA,CAAA;cAtBpB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;GAaT,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,EAAA,MAAA,EAAA,CAAA,+mCAAA,CAAA,EAAA;;kFAEhD,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;;;ICHT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqH;IAArE,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,IAAA,CAAA,GAAA,CAAS,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;AAFrJ,IADF,8BAAgC,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CACA;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAK;IACjD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqB;IAGvB,EAAA,CAAA,YAAA,EAAM;;;IAJ0B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;IAC5C,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;AAzBX;;;;;;;;;;;;AAYG;MAuBU,SAAS,CAAA;AAcpB,IAAA,WAAA,GAAA;;QAZS,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK;iFAAC;QACnB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;;QAElB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEhD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,IAAA,CAAA,SAAS,GAAG,SAAS,CAAgC,KAAK;sFAAC;AAC3D,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;QAGpD,IAAA,CAAA,WAAW,GAAuB,IAAI;QAG5C,MAAM,CAAC,MAAK;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa;AAC1C,YAAA,IAAI,CAAC,EAAE;gBAAE;YACT,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;gBAC3B,EAAE,CAAC,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAChC;iBAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;gBAClC,EAAE,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,uBAAuB,EAAE;YAChC;AACF,QAAA,CAAC,CAAC;;;AAIF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACpE;AAEA;;;;;;;AAOG;AACK,IAAA,qBAAqB,CAAC,MAAyB,EAAA;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;AAC7D,QAAA,IAAI,SAAS,CAAC,aAAa,KAAK,MAAM;YAAE;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa;AAC1C,QAAA,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;IAC/B;IAEQ,uBAAuB,GAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;;AAEvB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;AAEU,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;0GA5DW,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;YAhBlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAsF;AAA5B,YAA1B,sFAAS,GAAA,CAAA,IAAA,CAAA,GAAA,CAAS,KAAK,CAAC,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,2CAAA,CAAA,MAAA,EAAA,EAAA,OAAW,oBAAgB,CAAA,CAAA,CAAA,CAAC;YACnF,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAQhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAAA,EAAA,CAAA,YAAA,EAAM;YAClD,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAyC;YAC3C,EAAA,CAAA,YAAA,EAAS;;YAVP,EAAA,CAAA,SAAA,CAAA,CAAA,CAOC;YAPD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAOC;4BAVK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,0gDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAkBN,SAAS,EAAA,CAAA;cAtBrB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,86CAAA,CAAA,EAAA;kYAUoC,KAAK,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;kFARhE,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACtCtB;;;AAGG;MAEU,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;QAEmB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAa,EAAE;oFAAC;AACxC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACnC,IAAA,CAAA,GAAG,GAAG,CAAC;AA+BhB,IAAA;AA7BC,IAAA,IAAI,CAAC,OAAe,EAAE,OAAA,GAA2B,EAAE,EAAA;AACjD,QAAA,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG;AACrB,QAAA,MAAM,KAAK,GAAa,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE;AACpF,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;AACtB,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QACpD;AACA,QAAA,OAAO,EAAE;IACX;IAEA,IAAI,CAAC,OAAe,EAAE,OAAyB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC5D;IACA,OAAO,CAAC,OAAe,EAAE,OAAyB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC/D;IACA,OAAO,CAAC,OAAe,EAAE,OAAyB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC/D;IACA,KAAK,CAAC,OAAe,EAAE,OAAyB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC9D;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE;IACA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACtB;gHAjCW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAf,eAAe,EAAA,OAAA,EAAf,eAAe,CAAA,IAAA,EAAA,UAAA,EADF,MAAM,EAAA,CAAA,CAAA;;iFACnB,eAAe,EAAA,CAAA;cAD3B,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;ICKpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAiB;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAAvB,EAAA,CAAA,SAAA,EAAiB;IAAjB,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,KAAA,CAAiB;;;;IAJrD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyE;IACvE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiE;IACjE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;IAC9B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmB;IAGnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;AACrD,IADqD,iBAAM,EACrD;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAsH;AAAvE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;AAC7I,IAD6I,iBAAS,EAChJ;;;;;IAR8B,EAAA,CAAA,SAAA,EAA4B;IAA5B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAA4B;IAE5D,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,aAAA,CAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAC+B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;IAAnB,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,OAAA,CAAmB;IAEsB,EAAA,CAAA,SAAA,EAA0C;;;AApB/H;;;AAGG;MAyBU,iBAAiB,CAAA;AAxB9B,IAAA,WAAA,GAAA;AAyBmB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAUhD,IAAA;AARW,IAAA,OAAO,CAAC,EAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1B;AACU,IAAA,IAAI,CAAC,OAAwB,EAAA;QACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAC7F,OAAO,CACO;IAClB;kHAZW,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,WAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAlB1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwE;YACtE,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,UAAA,CAWC;YACH,EAAA,CAAA,YAAA,EAAM;;YAZJ,EAAA,CAAA,SAAA,EAWC;AAXD,YAAA,EAAA,CAAA,UAAA,CAAA,YAAQ,CAWP;4BAdK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,ouDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAoBN,iBAAiB,EAAA,CAAA;cAxB7B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,eAAA,EACd,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAA,MAAA,EAAA,CAAA,gnDAAA,CAAA,EAAA;;kFAEhC,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICoClB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwD;;;IAIpD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAKE;;;IAJA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,OAAA,CAAA,MAAA,CAAA,GAAA,IAAA,IAAA,CAA+B,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,IAAA,CACE;;;IAInC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAGT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA8B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IACxC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAbvF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkD;AAQ9C,IAPF,kHAAmB,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAOK;IAGxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA6B;IAC3B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAkB;IAClB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;AAE5B,IADE,iBAAO,EACH;;;IAdJ,EAAA,CAAA,SAAA,EASC;IATD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;IAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0E;IAA1E,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA0E;IAC1E,EAAA,CAAA,SAAA,EAA4F;IAA5F,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA4F;;;IAY5E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAGnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAGnF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAqG;;;AAA7C,IAArB,qCAAoB,CAAA,SAAA,EAAA,OAAA,CAAA,YAAA,IAAA,SAAA,CAA2C;;;;IAdtG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAOC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAEpB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;AAEf,IADF,+BAA6B,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CACG;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IACrD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;IAC1B,EAAA,CAAA,YAAA,EAAO;IACP,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAuD;IAGzD,EAAA,CAAA,YAAA,EAAS;;;IAZP,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,OAAA,CAAA,MAAA,CAA4C;IAC5C,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;IAG1B,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAEnB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IAC9C,EAAA,CAAA,SAAA,EAA4F;IAA5F,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA4F;IAE9F,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,KAAA,SAAA,IAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAnCL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsB,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAEI,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAiBjB;;;IAnBT,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,SAAA,GAAA,CAAA,GAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAqCC;;;IAvCL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyC;IACvC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAuCC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAxCJ,EAAA,CAAA,SAAA,EAuCC;AAvCD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CAuCN;;AArET;;;;;;;;AAQG;MAoEU,OAAO,CAAA;AAnEpB,IAAA,WAAA,GAAA;QAoEW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;QAEzB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AACpB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;AACvF,YAAA,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACnF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAaF,IAAA;IAXW,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AACU,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;IACd;wGArBW,OAAO,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAP,OAAO,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YA7DhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAA+F;AAAnB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sCAAA,GAAA,EAAA,OAAS,YAAQ,CAAA,CAAA,CAAA,CAAC;YAC5F,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,YAAA,EAAO;YAEP,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,OACf,WAAO,CAAA,CAAA,CAAA,CAAC;;;YANlB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;AAGpC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACF,+CACQ,CAAA,gCAAA,EAAA,IAAA,CACH;AAXjC,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,2uDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+DlE,OAAO,EAAA,CAAA;cAnEnB,SAAS;2BACE,UAAU,EAAA,eAAA,EACH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAA,QAAA,EACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,eAAe,EAAE,EAAA,MAAA,EAAA,CAAA,2pDAAA,CAAA,EAAA;;kFAErB,OAAO,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICjFd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8C;IAC5C,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAc;IAChB,EAAA,CAAA,YAAA,EAAM;;AAjCZ;;;;;;;;;;AAUG;MA6BU,UAAU,CAAA;AA5BvB,IAAA,WAAA,GAAA;QA6BW,IAAA,CAAA,SAAS,GAAG,KAAK,CAAmB,QAAQ;sFAAC;QAEnC,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AACpB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAQF,IAAA;IANW,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;2GAdW,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAtBnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAkG;AAAnB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yCAAA,GAAA,EAAA,OAAS,YAAQ,CAAA,CAAA,CAAA,CAAC;YAC/F,EAAA,CAAA,YAAA,CAAA,CAAA,CAA2C;YAC7C,EAAA,CAAA,YAAA,EAAO;YAEP,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,OACf,WAAO,CAAA,CAAA,CAAA,CAAC;;;YANlB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;AAGpC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CACF,+CACQ,CAAA,gCAAA,EAAA,IAAA,CACH;AAXjC,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,MAAA,EAAA,CAAA,0eAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAwBpC,UAAU,EAAA,CAAA;cA5BtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EACtC;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAA,MAAA,EAAA,CAAA,0cAAA,CAAA,EAAA;;kFAExB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICWb,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAMC;AADC,IADA,uMAAa,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAE,mBAAS,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,YAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,MAAA,YAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClC,oCAAkB,CAAA,CAAA,CAAA,CAAA,CAAC;IAClC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAS;IAAA,EAAA,CAAA,YAAA,EAAK;;;;;IAHb,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,YAAA,KAAA,MAAA,CAAA,WAAA,EAAA,CAAuC;IAGxC,EAAA,CAAA,SAAA,EAAS;IAAT,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAS;;;IARd,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAmD;IACjD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAQC;IACH,EAAA,CAAA,YAAA,EAAK;;;IATH,EAAA,CAAA,SAAA,EAQC;AARD,IAAA,EAAA,CAAA,UAAA,CAAA,iBAAU,CAQT;;AA9CT;;;;;;AAMG;MA+CU,eAAe,CAAA;AA9C5B,IAAA,WAAA,GAAA;QA+CW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW,EAAE;oFAAC;QAC7B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;wFAAC;QAExE,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;QAEZ,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AACpB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;wFAAC;AACxB,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAEkB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;YAC3B,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;QACnE,CAAC;qFAAC;AAqCH,IAAA;AAnCW,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B;IACU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;IACU,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AACU,IAAA,IAAI,CAAC,GAAW,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AACU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzE;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAClC,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,GAAG,EAAE;gBACP,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAChB;QACF;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;gHA5DW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,WAAA,EAAA,YAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAxCxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAeE;AADA,YAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,OAAS,GAAA,CAAA,OAAA,CAAA,MAAA,CAAe,CAAA,CAAA,CAAA,CAAC,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAChB,GAAA,CAAA,OAAA,EAAS,CAAA,CAAA,CAAA,CAAC,CAAA,MAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,OACX,GAAA,CAAA,MAAA,EAAQ,CAAA,CAAA,CAAA,CAAC,CAAA,SAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,OACN,qBAAiB,CAAA,CAAA,CAAA,CAAC;YAd/B,EAAA,CAAA,YAAA,EAeE;YAEF,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAMC;;;YAlBC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,EAAA,CAAiB,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,EAAA,CACY,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,EAAA,CACN;;YAYvB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;AAGpC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,GAAA,CAAA,IAAA,EAAA,IAAA,GAAA,CAAA,QAAA,EAAA,CAAA,MAAA,GAAA,CAAA,CACuB,+CACjB,CAAA,0BAAA,EAAA,SAAA,CAAA,UAAA,CAAA,aAAA,CAAA,WAAA,CAC8B;AAxBlE,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,MAAA,EAAA,CAAA,onDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA0CpC,eAAe,EAAA,CAAA;cA9C3B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,4hDAAA,CAAA,EAAA;;kFAE7B,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;;ICjChB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA6G;AAA7D,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAA4C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAS;;;;;;AAF7I,IADF,8BAAgC,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAO;IACrD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAqB;IAGvB,EAAA,CAAA,YAAA,EAAM;;;IAJ4B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;IAC9C,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;AA7BX;;;;;;;AAOG;MA+BU,SAAS,CAAA;AA9BtB,IAAA,WAAA,GAAA;QA+BW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK;iFAAC;QACnB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,MAAM;qFAAC;QAC3C,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,IAAI,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAQ1C,IAAA;IANW,UAAU,GAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,IAAI,CAAC,KAAK,EAAE;IAC1C;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;0GAdW,SAAS,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAT,SAAS,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,IAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAxBlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkF;AAAvB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uCAAA,GAAA,EAAA,OAAS,gBAAY,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,YAAA,EAAM;YACxF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAQC;AAFC,YAAA,EAAA,CAAA,UAAA,CAAA,gBAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OAAkB,WAAO,CAAA,CAAA,CAAA,CAAC;YAG1B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiC;YAQjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AAC9C,YAD8C,iBAAM,EAC5C;;YAnB0B,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;YAIxD,EAAA,CAAA,SAAA,EAAwB;YAAxB,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;;YAMxB,EAAA,CAAA,SAAA,EAOC;YAPD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,IAAA,GAAA,CAAA,WAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAOC;4BAnBK,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,k2DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA0BN,SAAS,EAAA,CAAA;cA9BrB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAA,MAAA,EAAA,CAAA,kyDAAA,CAAA,EAAA;;kFAEvB,SAAS,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICfV,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgE;;;IAI5D,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAKE;;;IAJA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,OAAA,CAAA,MAAA,CAAA,GAAA,IAAA,IAAA,CAA+B,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,EAAA,CACA,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,IAAA,IAAA,IAAA,CACE;;;IAInC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAGT,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAEvE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAdxE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0D;AAQtD,IAPF,yHAAmB,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAOK;IAGxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAqC;IACnC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAkB;IAClB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;AAI5B,IADE,iBAAO,EACH;;;IAhBJ,EAAA,CAAA,SAAA,EASC;IATD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;IAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkF;IAAlF,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAkF;IAClF,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;IAYe,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAI1C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA4C;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAsB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAA7B,EAAA,CAAA,SAAA,EAAsB;IAAtB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,WAAA,CAAsB;;;IAIpE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAIE;;;AADA,IADA,qCAAoB,CAAA,SAAA,EAAA,OAAA,CAAA,YAAA,IAAA,SAAA,CACsB;;;;IAnBhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAOC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAEpB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;AAEf,IADF,+BAAqC,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACG;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwB;IAG1B,EAAA,CAAA,YAAA,EAAO;IACP,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAuD;IAOzD,EAAA,CAAA,YAAA,EAAS;;;IAlBP,EAAA,CAAA,WAAA,CAAA,gCAAA,EAAA,OAAA,CAAA,MAAA,CAAoD;IACpD,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;IAG1B,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAEX,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IACtD,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,WAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAEH,EAAA,CAAA,SAAA,EAMC;IAND,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,KAAA,SAAA,IAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;;;IA3CL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsB,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAEI,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAmBjB;;;IArBT,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,SAAA,GAAA,CAAA,GAAA,OAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CA6CC;;;;IAhDL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2G;AAAjD,IAAlB,+KAAS,MAAA,CAAA,KAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAC,8JAAgB,MAAA,CAAA,cAAA,EAAuB,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAE,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,YAAA,EAAM;IACjH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4F;IAC1F,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CA+CC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAjD2C,EAAA,CAAA,SAAA,EAAqB;AAAC,IAAtB,wCAAqB,CAAA,KAAA,EAAA,MAAA,CAAA,CAAA,EAAA,EAAA,IAAA,CAAqB;IACzF,EAAA,CAAA,SAAA,EA+CC;AA/CD,IAAA,EAAA,CAAA,UAAA,CAAA,cAAO,CA+CN;;AApET;;;;;;;AAOG;MAoEU,cAAc,CAAA;AAnE3B,IAAA,WAAA,GAAA;QAoEW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;QAEzB,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;QACpB,IAAA,CAAA,CAAC,GAAG,MAAM,CAAC,CAAC;8EAAC;QACb,IAAA,CAAA,CAAC,GAAG,MAAM,CAAC,CAAC;8EAAC;AAgBjC,IAAA;AAdW,IAAA,SAAS,CAAC,KAAiB,EAAA;QACnC,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AACU,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;IACd;+GArBW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,gCAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YA7DvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsE;AAAlC,YAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,OAAe,qBAAiB,CAAA,CAAA,CAAA,CAAC;YACnE,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;YAChB,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,CAAc;;YAAd,EAAA,CAAA,SAAA,CAAA,CAAA,CAoDC;YApDD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAoDC;4BA1DO,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,m+DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA+D3B,cAAc,EAAA,CAAA;cAnE1B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBACX,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAA,QAAA,EAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,23DAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;IChDG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAEnB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA2D;;;IAgBhF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2D;;;IAUxC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA8B;;;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAiB;;;;IAR9C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAOC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,mBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAEnB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAgB;IAChB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;AACvB,IADuB,iBAAO,EACrB;;;IANP,EAAA,CAAA,WAAA,CAAA,2BAAA,EAAA,MAAA,CAAA,MAAA,CAA8C;IAC9C,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAyB;IAGzB,EAAA,CAAA,SAAA,EAAiD;IAAjD,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAiD;IAC3C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;;;AAVvB,IAFF,sGAAqB,CAAA,CAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAEZ;;;IAFT,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,SAAA,GAAA,CAAA,GAAA,CAAA,CAcC;;;IAhBL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+C;IAC7C,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAgBC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAjBJ,EAAA,CAAA,SAAA,EAgBC;IAhBD,EAAA,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAgBC;;;;AA1CL,IADF,8BAAgC,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAU7B;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,MAAA,CAAA,SAAA,CAAA,CAAA,MAAA,YAAA,GAAA,MAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oCAAe,CAAA,CAAA,CAAA,CAAA,CAAC;IAEzB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA0B;IAC5B,EAAA,CAAA,YAAA,EAAS;IAET,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,IADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,MAAA,CAAA,QAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClB,iBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAsBzB,EAAA,CAAA,YAAA,EAAM;;;;;;IAvCF,EAAA,CAAA,SAAA,EAAmC;IAAnC,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,YAAA,CAAmC;IACnC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;IAG1B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAC7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;IACtB,EAAA,CAAA,SAAA,EAAwF;IAAxF,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,EAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAwF;IAKxF,EAAA,CAAA,SAAA,EAAoC;AAGpC,IAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,YAAA,IAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,MAAA,CACiC,kDAC3B,CAAA,gCAAA,EAAA,IAAA,CACH;;AAtCnD;;;;;;;;AAQG;MA8DU,UAAU,CAAA;AA7DvB,IAAA,WAAA,GAAA;QA8DW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;QAEzB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI;sFAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAmBF,IAAA;IAjBW,MAAM,CAAC,CAAS,EAAE,IAAoB,EAAA;QAC9C,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QACxD;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AACU,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE;IACjB;IACU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;2GA1BW,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAvDnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwC;YACtC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAgDC;YACH,EAAA,CAAA,YAAA,EAAM;;YAjDJ,EAAA,CAAA,SAAA,EAgDC;AAhDD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAgDN;4BAnDK,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,y0DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAyD7C,UAAU,EAAA,CAAA;cA7DtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,mBACN,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAA,MAAA,EAAA,CAAA,qtDAAA,CAAA,EAAA;;kFAExB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;IC7CK,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;;IAPhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAMC;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,MAAA,YAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2BAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAEnB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC7B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4D;IAC9D,EAAA,CAAA,YAAA,EAAS;;;;;IANP,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,YAAA,CAAmC;IAGnC,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAC7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAmBF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAM;;;IAArB,EAAA,CAAA,SAAA,EAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;;;IAGhD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;;IADhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAiG;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sEAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAC9F,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;AACxB,IADwB,iBAAO,EACtB;;;IAHwC,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;IACzE,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IAC7C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;IAL5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAKC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAPJ,EAAA,CAAA,SAAA,EAA8E;IAA9E,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA8E;IAC9E,EAAA,CAAA,SAAA,EAKC;IALD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,IAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,CAAA,CAKC;;;IATP,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6C;IAC3C,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAUC;IACH,EAAA,CAAA,YAAA,EAAM;;;IAXJ,EAAA,CAAA,SAAA,EAUC;AAVD,IAAA,EAAA,CAAA,UAAA,CAAA,sBAAe,CAUd;;AArDT;;;;;;;;;AASG;MAmDU,WAAW,CAAA;AAlDxB,IAAA,WAAA,GAAA;QAmDW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;QAEzB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI;sFAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB;AAClD,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;SACzF;AAkBF,IAAA;IAhBW,aAAa,GAAA;AACrB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;QAC1B,OAAO,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;IACvD;AAEU,IAAA,MAAM,CAAC,CAAS,EAAA;QACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACxD;AACU,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE;IACjB;IACU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;4GAzBW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,kCAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YA5CpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAqF;YACnF,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAYC;YACH,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CASC;AADC,YADA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,OAAiB,GAAA,CAAA,QAAA,EAAU,CAAA,CAAA,CAAA,CAAC,CAAA,QAAA,EAAA,SAAA,kDAAA,GAAA,EAAA,OAClB,cAAU,CAAA,CAAA,CAAA,CAAC;;;YAvBrB,EAAA,CAAA,SAAA,CAAA,CAAA,CAYC;AAZD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAYN;YAKD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoC;AAGpC,YAHA,EAAA,CAAA,UAAA,CAAA,2BAAA,EAAA,SAAA,CAAoC,CAAA,yBAAA,EAAA,GAAA,CAAA,SAAA,EAAA,KAAA,IAAA,CACY,+CACN,CAAA,gCAAA,EAAA,IAAA,CACH;4BAvBjC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,m4DAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFA8C7C,WAAW,EAAA,CAAA;cAlDvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBACP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAA,MAAA,EAAA,CAAA,2wDAAA,CAAA,EAAA;;kFAEzB,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AChDxB;;;;;;AAMG;MAEU,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAEmB,IAAA,CAAA,QAAQ,GAAG,MAAM,CAA2B,IAAI;qFAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QACrC,IAAA,CAAA,GAAG,GAAG,CAAC;AAgBhB,IAAA;AAdC,IAAA,OAAO,CAAC,OAA0B,EAAA;AAChC,QAAA,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAC5D,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;IACA,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;kHAlBW,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAjB,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EADJ,MAAM,EAAA,CAAA,CAAA;;iFACnB,iBAAiB,EAAA,CAAA;cAD7B,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;ICLN,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA6G;;;IAAnG,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAqB;;;AAZ3D;;;AAGG;MAqBU,mBAAmB,CAAA;AApBhC,IAAA,WAAA,GAAA;AAqBqB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACnC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QAC1B,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI;mFAAC;AAKhE,IAAA;AAHW,IAAA,YAAY,CAAC,IAAa,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IAClC;oHARW,mBAAmB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,4BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAd5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAuH;AAAzF,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,6DAAA,CAAA,MAAA,EAAA,EAAA,OAAc,wBAAoB,CAAA,CAAA,CAAA,CAAC;YAC/D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B;YAC7B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAmB;YACnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAgC;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoB;AACtD,YADsD,iBAAI,EACpD;AAEJ,YADF,8BAAqB,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CACmC;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,OAAS,oBAAgB,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoD;YAAA,EAAA,CAAA,YAAA,EAAa;YACvH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAA8E;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,OAAS,oBAAgB,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,MAAA,CAAA,CAAA,CAAoD;YAAA,EAAA,CAAA,YAAA,EAAa,EAC3I,EACK;;AATqD,YAAtD,mCAAiB,CAAA,QAAA,EAAA,GAAA,CAAA,GAAA,EAAA,EAAA,MAAA,IAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAyF;YAElH,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmI;YAAnI,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,GAAA,EAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmI;YACnG,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoB;YAApB,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,GAAA,EAAA,EAAA,OAAA,CAAoB;YAGE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoD;YAApD,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,GAAA,EAAA,EAAA,WAAA,IAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAoD;YAC9F,EAAA,CAAA,SAAA,EAAsC;YAAtC,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,GAAA,EAAA,EAAA,OAAA,IAAA,QAAA,CAAsC;YAA4B,EAAA,CAAA,SAAA,EAAoD;YAApD,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,GAAA,EAAA,EAAA,WAAA,IAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAoD;4BAT9H,SAAS,EAAE,SAAS,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,gbAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAgB5B,mBAAmB,EAAA,CAAA;cApB/B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAChB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAA,QAAA,EAC9B;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA;;kFAElC,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;;ICZT,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,eAAA,EAAM;;;IAApB,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,EAAA,CAAc;;AAhB3E;;;;;;;AAOG;MAgBU,cAAc,CAAA;AAf3B,IAAA,WAAA,GAAA;QAgBW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK;iFAAC;QACnB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE;mFAAC;QAClB,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,IAAI,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AAQ1C,IAAA;IANW,UAAU,GAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,IAAI,CAAC,KAAK,EAAE;IAC1C;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;+GAZW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,IAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAVvB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwF;AAAvB,YAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAS,gBAAY,CAAA,CAAA,CAAA,CAAC;YAAC,EAAA,CAAA,eAAA,EAAM;YAC9F,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuI;AAAzC,YAAA,EAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAkB,WAAO,CAAA,CAAA,CAAA,CAAC;YACtH,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAoH;AAA7D,YAAA,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAS,WAAO,CAAA,CAAA,CAAA,CAAC;YAA4C,EAAA,CAAA,eAAA,EAAS;YAC7H,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgB;YAChB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoC;YAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAc;AACpD,YADoD,oBAAM,EACpD;;YALkC,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;YAC3B,EAAA,CAAA,SAAA,EAAwB;YAAxB,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;YACc,EAAA,CAAA,SAAA,EAA0C;;YACnH,EAAA,CAAA,SAAA,EAA6E;YAA7E,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA6E;;;iFAOtE,cAAc,EAAA,CAAA;cAf1B,SAAS;2BACE,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B;;;;;;;AAOT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,MAAA,EAAA,CAAA,g/CAAA,CAAA,EAAA;;kFAE7B,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICFG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA+B;;;IAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAkB;;;IAC3B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAO;;;IAAvB,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,KAAA,CAAgB;;;;IAFzE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAoI;AAApD,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,oBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;IAClG,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAiB;IACjB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAkB;IACpB,EAAA,CAAA,YAAA,EAAS;;;IAH4C,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAA0B;;IAC7E,EAAA,CAAA,SAAA,EAAmD;IAAnD,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAmD;IACnD,EAAA,CAAA,SAAA,EAAgF;IAAhF,EAAA,CAAA,aAAA,CAAA,OAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAgF;;;;IAQzE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwD;AAAlB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,YAAA,EAAM;;AAzBjF;;;;;AAKG;MAyBU,YAAY,CAAA;AAxBzB,IAAA,WAAA,GAAA;QAyBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE;kFAAC;QACnC,IAAA,CAAA,SAAS,GAAG,KAAK,CAAwB,IAAI;sFAAC;QAC9C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,MAAM;iFAAC;;AAEpB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK;iGAAU;QAC3B,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;AAEzB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;+FAAC;QACzF,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK;iFAAC;AAaxC,IAAA;IAXW,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B;IACU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AACU,IAAA,IAAI,CAAC,IAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;IACd;6GAtBW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAjBnB,YADF,8BAAyF,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAClD;YACnC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAKC;YACH,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAiG;AAAnB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,OAAS,YAAQ,CAAA,CAAA,CAAA,CAAC;YAC9F,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA2C;YAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4B;YAAA,EAAA,CAAA,YAAA,EAAO,EACtE,EACN;YACN,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAc;;YAbkD,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAwB;;YAEpF,EAAA,CAAA,SAAA,CAAA,CAAA,CAKC;AALD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAKN;YAEM,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoE;YAApE,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,EAAA,GAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,kBAAA,EAAA,CAAoE;YACtB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAe;YAGxE,EAAA,CAAA,SAAA,EAA+E;YAA/E,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAA+E;AAfvE,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,MAAM,EAAE,OAAO,CAAA,EAAA,MAAA,EAAA,CAAA,4vDAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAoBd,YAAY,EAAA,CAAA;cAxBxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA,QAAA,EAChB;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,MAAA,EAAA,CAAA,otDAAA,CAAA,EAAA;;kFAE3B,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACtCzB;;;AAGG;;ACHH;;AAEG;;;;"}
|