zc-lowcode 0.0.1 → 0.0.3
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/README.md +430 -3
- package/designer.d.ts +5 -0
- package/dist/assets/code-editor.css +1 -0
- package/dist/assets/designer.css +1 -0
- package/dist/assets/materials.css +1 -0
- package/dist/assets/runtime-definitions.css +1 -0
- package/dist/assets/runtime.css +1 -0
- package/dist/assets/sortable.css +1 -0
- package/dist/code-editor-DJwwp3uU.js +9 -0
- package/dist/code-editor-DJwwp3uU.js.map +1 -0
- package/dist/code-editor.vue_vue_type_script_setup_true_lang-aA043pnA.js +40176 -0
- package/dist/code-editor.vue_vue_type_script_setup_true_lang-aA043pnA.js.map +1 -0
- package/dist/core/index.d.ts +560 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core.js +881 -0
- package/dist/core.js.map +1 -0
- package/dist/designer/canvas/draggable-list.vue.d.ts +15 -0
- package/dist/designer/canvas/draggable-list.vue.d.ts.map +1 -0
- package/dist/designer/canvas/widget-node.vue.d.ts +11 -0
- package/dist/designer/canvas/widget-node.vue.d.ts.map +1 -0
- package/dist/designer/canvas/workspace.vue.d.ts +3 -0
- package/dist/designer/canvas/workspace.vue.d.ts.map +1 -0
- package/dist/designer/datasource/data-editor.vue.d.ts +13 -0
- package/dist/designer/datasource/data-editor.vue.d.ts.map +1 -0
- package/dist/designer/datasource/datasource-help.d.ts +9 -0
- package/dist/designer/datasource/datasource-help.d.ts.map +1 -0
- package/dist/designer/datasource/panel.vue.d.ts +3 -0
- package/dist/designer/datasource/panel.vue.d.ts.map +1 -0
- package/dist/designer/designer.d.ts +119 -0
- package/dist/designer/designer.d.ts.map +1 -0
- package/dist/designer/designer.vue.d.ts +40 -0
- package/dist/designer/designer.vue.d.ts.map +1 -0
- package/dist/designer/index.d.ts +13 -0
- package/dist/designer/index.d.ts.map +1 -0
- package/dist/designer/material-registry.d.ts +19 -0
- package/dist/designer/material-registry.d.ts.map +1 -0
- package/dist/designer/materials/widget-library.vue.d.ts +3 -0
- package/dist/designer/materials/widget-library.vue.d.ts.map +1 -0
- package/dist/designer/methods/api-method-params-list.vue.d.ts +14 -0
- package/dist/designer/methods/api-method-params-list.vue.d.ts.map +1 -0
- package/dist/designer/methods/api-param-bind-button.vue.d.ts +17 -0
- package/dist/designer/methods/api-param-bind-button.vue.d.ts.map +1 -0
- package/dist/designer/methods/api-param-list.vue.d.ts +19 -0
- package/dist/designer/methods/api-param-list.vue.d.ts.map +1 -0
- package/dist/designer/methods/api-result-rules-list.vue.d.ts +16 -0
- package/dist/designer/methods/api-result-rules-list.vue.d.ts.map +1 -0
- package/dist/designer/methods/method-api-config-form.vue.d.ts +15 -0
- package/dist/designer/methods/method-api-config-form.vue.d.ts.map +1 -0
- package/dist/designer/methods/page-method-api.d.ts +37 -0
- package/dist/designer/methods/page-method-api.d.ts.map +1 -0
- package/dist/designer/methods/page-method-editor-modal.vue.d.ts +30 -0
- package/dist/designer/methods/page-method-editor-modal.vue.d.ts.map +1 -0
- package/dist/designer/methods/page-method-simulate-args-modal.vue.d.ts +18 -0
- package/dist/designer/methods/page-method-simulate-args-modal.vue.d.ts.map +1 -0
- package/dist/designer/methods/page-methods.vue.d.ts +3 -0
- package/dist/designer/methods/page-methods.vue.d.ts.map +1 -0
- package/dist/designer/methods/use-page-methods-editor.d.ts +163 -0
- package/dist/designer/methods/use-page-methods-editor.d.ts.map +1 -0
- package/dist/designer/outline/panel.vue.d.ts +5 -0
- package/dist/designer/outline/panel.vue.d.ts.map +1 -0
- package/dist/designer/properties/panel.vue.d.ts +18 -0
- package/dist/designer/properties/panel.vue.d.ts.map +1 -0
- package/dist/designer/shared/code-editor-page-context-completion.d.ts +39 -0
- package/dist/designer/shared/code-editor-page-context-completion.d.ts.map +1 -0
- package/dist/designer/shared/code-editor.vue.d.ts +93 -0
- package/dist/designer/shared/code-editor.vue.d.ts.map +1 -0
- package/dist/designer/use-designer-shortcuts.d.ts +21 -0
- package/dist/designer/use-designer-shortcuts.d.ts.map +1 -0
- package/dist/designer-style.js +4 -0
- package/dist/designer.js +3215 -0
- package/dist/designer.js.map +1 -0
- package/dist/materials/definitions.d.ts +3 -0
- package/dist/materials/definitions.d.ts.map +1 -0
- package/dist/materials/index.d.ts +11 -0
- package/dist/materials/index.d.ts.map +1 -0
- package/dist/materials/packages/button/index.d.ts +4 -0
- package/dist/materials/packages/button/index.d.ts.map +1 -0
- package/dist/materials/packages/button/options.d.ts +45 -0
- package/dist/materials/packages/button/options.d.ts.map +1 -0
- package/dist/materials/packages/button/setter.vue.d.ts +7 -0
- package/dist/materials/packages/button/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/button/view.vue.d.ts +11 -0
- package/dist/materials/packages/button/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/card/index.d.ts +4 -0
- package/dist/materials/packages/card/index.d.ts.map +1 -0
- package/dist/materials/packages/card/options.d.ts +24 -0
- package/dist/materials/packages/card/options.d.ts.map +1 -0
- package/dist/materials/packages/card/setter.vue.d.ts +7 -0
- package/dist/materials/packages/card/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/card/view.vue.d.ts +28 -0
- package/dist/materials/packages/card/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/carousel/carousel-slide/options.d.ts +12 -0
- package/dist/materials/packages/carousel/carousel-slide/options.d.ts.map +1 -0
- package/dist/materials/packages/carousel/carousel-slide/setter.vue.d.ts +7 -0
- package/dist/materials/packages/carousel/carousel-slide/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/carousel/carousel-slide/view.vue.d.ts +24 -0
- package/dist/materials/packages/carousel/carousel-slide/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/carousel/designer.vue.d.ts +30 -0
- package/dist/materials/packages/carousel/designer.vue.d.ts.map +1 -0
- package/dist/materials/packages/carousel/index.d.ts +5 -0
- package/dist/materials/packages/carousel/index.d.ts.map +1 -0
- package/dist/materials/packages/carousel/options.d.ts +65 -0
- package/dist/materials/packages/carousel/options.d.ts.map +1 -0
- package/dist/materials/packages/carousel/setter.vue.d.ts +7 -0
- package/dist/materials/packages/carousel/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/carousel/view.vue.d.ts +41 -0
- package/dist/materials/packages/carousel/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/divider/index.d.ts +4 -0
- package/dist/materials/packages/divider/index.d.ts.map +1 -0
- package/dist/materials/packages/divider/options.d.ts +39 -0
- package/dist/materials/packages/divider/options.d.ts.map +1 -0
- package/dist/materials/packages/divider/setter.vue.d.ts +7 -0
- package/dist/materials/packages/divider/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/divider/view.vue.d.ts +11 -0
- package/dist/materials/packages/divider/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/grid/designer.vue.d.ts +160 -0
- package/dist/materials/packages/grid/designer.vue.d.ts.map +1 -0
- package/dist/materials/packages/grid/index.d.ts +4 -0
- package/dist/materials/packages/grid/index.d.ts.map +1 -0
- package/dist/materials/packages/grid/options.d.ts +41 -0
- package/dist/materials/packages/grid/options.d.ts.map +1 -0
- package/dist/materials/packages/grid/setter.vue.d.ts +7 -0
- package/dist/materials/packages/grid/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/grid/split.d.ts +18 -0
- package/dist/materials/packages/grid/split.d.ts.map +1 -0
- package/dist/materials/packages/grid/view.vue.d.ts +35 -0
- package/dist/materials/packages/grid/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/image/index.d.ts +4 -0
- package/dist/materials/packages/image/index.d.ts.map +1 -0
- package/dist/materials/packages/image/options.d.ts +31 -0
- package/dist/materials/packages/image/options.d.ts.map +1 -0
- package/dist/materials/packages/image/setter.vue.d.ts +7 -0
- package/dist/materials/packages/image/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/image/view.vue.d.ts +11 -0
- package/dist/materials/packages/image/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/list/designer.vue.d.ts +29 -0
- package/dist/materials/packages/list/designer.vue.d.ts.map +1 -0
- package/dist/materials/packages/list/index.d.ts +4 -0
- package/dist/materials/packages/list/index.d.ts.map +1 -0
- package/dist/materials/packages/list/options.d.ts +60 -0
- package/dist/materials/packages/list/options.d.ts.map +1 -0
- package/dist/materials/packages/list/setter.vue.d.ts +7 -0
- package/dist/materials/packages/list/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/list/view.vue.d.ts +31 -0
- package/dist/materials/packages/list/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/tab/designer.vue.d.ts +30 -0
- package/dist/materials/packages/tab/designer.vue.d.ts.map +1 -0
- package/dist/materials/packages/tab/index.d.ts +5 -0
- package/dist/materials/packages/tab/index.d.ts.map +1 -0
- package/dist/materials/packages/tab/options.d.ts +48 -0
- package/dist/materials/packages/tab/options.d.ts.map +1 -0
- package/dist/materials/packages/tab/setter.vue.d.ts +7 -0
- package/dist/materials/packages/tab/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/tab/tab-pane/options.d.ts +13 -0
- package/dist/materials/packages/tab/tab-pane/options.d.ts.map +1 -0
- package/dist/materials/packages/tab/tab-pane/setter.vue.d.ts +7 -0
- package/dist/materials/packages/tab/tab-pane/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/tab/tab-pane/view.vue.d.ts +24 -0
- package/dist/materials/packages/tab/tab-pane/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/tab/view.vue.d.ts +34 -0
- package/dist/materials/packages/tab/view.vue.d.ts.map +1 -0
- package/dist/materials/packages/text/index.d.ts +4 -0
- package/dist/materials/packages/text/index.d.ts.map +1 -0
- package/dist/materials/packages/text/options.d.ts +29 -0
- package/dist/materials/packages/text/options.d.ts.map +1 -0
- package/dist/materials/packages/text/setter.vue.d.ts +7 -0
- package/dist/materials/packages/text/setter.vue.d.ts.map +1 -0
- package/dist/materials/packages/text/view.vue.d.ts +11 -0
- package/dist/materials/packages/text/view.vue.d.ts.map +1 -0
- package/dist/materials/page/index.d.ts +4 -0
- package/dist/materials/page/index.d.ts.map +1 -0
- package/dist/materials/page/lifecycle-panel.vue.d.ts +13 -0
- package/dist/materials/page/lifecycle-panel.vue.d.ts.map +1 -0
- package/dist/materials/page/setter-slots.d.ts +7 -0
- package/dist/materials/page/setter-slots.d.ts.map +1 -0
- package/dist/materials/page/setter.vue.d.ts +25 -0
- package/dist/materials/page/setter.vue.d.ts.map +1 -0
- package/dist/materials/page/view.vue.d.ts +26 -0
- package/dist/materials/page/view.vue.d.ts.map +1 -0
- package/dist/materials/runtime-definitions.d.ts +10 -0
- package/dist/materials/runtime-definitions.d.ts.map +1 -0
- package/dist/materials/shared/designer/container-children.vue.d.ts +24 -0
- package/dist/materials/shared/designer/container-children.vue.d.ts.map +1 -0
- package/dist/materials/shared/designer/helpers.d.ts +68 -0
- package/dist/materials/shared/designer/helpers.d.ts.map +1 -0
- package/dist/materials/shared/designer/icon.vue.d.ts +8 -0
- package/dist/materials/shared/designer/icon.vue.d.ts.map +1 -0
- package/dist/materials/shared/designer/selection-chrome.vue.d.ts +31 -0
- package/dist/materials/shared/designer/selection-chrome.vue.d.ts.map +1 -0
- package/dist/materials/shared/designer/use-keyed-slot-sync.d.ts +15 -0
- package/dist/materials/shared/designer/use-keyed-slot-sync.d.ts.map +1 -0
- package/dist/materials/shared/designer/use-widget-size-resize.d.ts +16 -0
- package/dist/materials/shared/designer/use-widget-size-resize.d.ts.map +1 -0
- package/dist/materials/shared/envelopes/internal-pane-view.vue.d.ts +29 -0
- package/dist/materials/shared/envelopes/internal-pane-view.vue.d.ts.map +1 -0
- package/dist/materials/shared/envelopes/item-scope-provider.vue.d.ts +22 -0
- package/dist/materials/shared/envelopes/item-scope-provider.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/binding-form-item.vue.d.ts +40 -0
- package/dist/materials/shared/setter/components/binding-form-item.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/binding-picker/binding-scope-tree.d.ts +83 -0
- package/dist/materials/shared/setter/components/binding-picker/binding-scope-tree.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/binding-picker/binding-utils.d.ts +105 -0
- package/dist/materials/shared/setter/components/binding-picker/binding-utils.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/binding-picker/index.vue.d.ts +30 -0
- package/dist/materials/shared/setter/components/binding-picker/index.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/box-model.vue.d.ts +11 -0
- package/dist/materials/shared/setter/components/box-model.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/color-input.vue.d.ts +14 -0
- package/dist/materials/shared/setter/components/color-input.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/image-upload.vue.d.ts +25 -0
- package/dist/materials/shared/setter/components/image-upload.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/keyed-slot-child-list.vue.d.ts +17 -0
- package/dist/materials/shared/setter/components/keyed-slot-child-list.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/offset-box.vue.d.ts +11 -0
- package/dist/materials/shared/setter/components/offset-box.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/percent-input.vue.d.ts +19 -0
- package/dist/materials/shared/setter/components/percent-input.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/components/style-property-input.vue.d.ts +92 -0
- package/dist/materials/shared/setter/components/style-property-input.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/composables/use-page-data-field-options.d.ts +15 -0
- package/dist/materials/shared/setter/composables/use-page-data-field-options.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/animation-panel.vue.d.ts +7 -0
- package/dist/materials/shared/setter/panels/animation-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/background-panel.vue.d.ts +11 -0
- package/dist/materials/shared/setter/panels/background-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/border-panel.vue.d.ts +11 -0
- package/dist/materials/shared/setter/panels/border-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/event-panel.vue.d.ts +14 -0
- package/dist/materials/shared/setter/panels/event-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/layout-panel.vue.d.ts +25 -0
- package/dist/materials/shared/setter/panels/layout-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/position-panel.vue.d.ts +16 -0
- package/dist/materials/shared/setter/panels/position-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/typography-panel.vue.d.ts +11 -0
- package/dist/materials/shared/setter/panels/typography-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/panels/widget-style-panel.vue.d.ts +30 -0
- package/dist/materials/shared/setter/panels/widget-style-panel.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/shell.vue.d.ts +21 -0
- package/dist/materials/shared/setter/shell.vue.d.ts.map +1 -0
- package/dist/materials/shared/setter/use-widget-setter.d.ts +35 -0
- package/dist/materials/shared/setter/use-widget-setter.d.ts.map +1 -0
- package/dist/materials-style.js +3 -0
- package/dist/materials.js +14703 -0
- package/dist/materials.js.map +1 -0
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/page-renderer.vue.d.ts +4 -0
- package/dist/runtime/page-renderer.vue.d.ts.map +1 -0
- package/dist/runtime/runtime.d.ts +585 -0
- package/dist/runtime/runtime.d.ts.map +1 -0
- package/dist/runtime/scoped-style-block.vue.d.ts +7 -0
- package/dist/runtime/scoped-style-block.vue.d.ts.map +1 -0
- package/dist/runtime/widget-node.vue.d.ts +9 -0
- package/dist/runtime/widget-node.vue.d.ts.map +1 -0
- package/dist/runtime-definitions-BGShdDBK.js +1984 -0
- package/dist/runtime-definitions-BGShdDBK.js.map +1 -0
- package/dist/runtime-style.js +3 -0
- package/dist/runtime.js +262 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sortable.esm-DbutZcEr.js +18104 -0
- package/dist/sortable.esm-DbutZcEr.js.map +1 -0
- package/dist/style.js +3 -0
- package/package.json +73 -41
- package/runtime.d.ts +5 -0
- package/dist/lowcode-editor.es.js +0 -79541
- package/dist/lowcode-editor.umd.js +0 -79542
- package/dist/style.css +0 -154
- package/dist/type.d.ts +0 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materials.js","sources":["../node_modules/lodash-es/_arrayAggregator.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseAggregator.js","../node_modules/lodash-es/_createAggregator.js","../node_modules/lodash-es/_baseSet.js","../node_modules/lodash-es/_basePickBy.js","../node_modules/lodash-es/partition.js","../node_modules/lodash-es/_basePick.js","../node_modules/lodash-es/pick.js","../node_modules/ant-design-vue/es/auto-complete/Option.js","../node_modules/ant-design-vue/es/auto-complete/OptGroup.js","../node_modules/ant-design-vue/es/auto-complete/index.js","../node_modules/ant-design-vue/es/tabs/src/hooks/useRaf.js","../node_modules/ant-design-vue/es/tabs/src/TabNavList/TabNode.js","../node_modules/ant-design-vue/es/tabs/src/hooks/useOffsets.js","../node_modules/ant-design-vue/es/tabs/src/TabNavList/AddButton.js","../node_modules/ant-design-vue/es/tabs/src/TabNavList/OperationNode.js","../node_modules/ant-design-vue/es/tabs/src/TabContext.js","../node_modules/ant-design-vue/es/tabs/src/hooks/useTouchMove.js","../node_modules/ant-design-vue/es/tabs/src/hooks/useSyncState.js","../node_modules/ant-design-vue/es/_util/hooks/useRefs.js","../node_modules/ant-design-vue/es/tabs/src/TabNavList/index.js","../node_modules/ant-design-vue/es/tabs/src/TabPanelList/index.js","../node_modules/ant-design-vue/es/tabs/style/motion.js","../node_modules/ant-design-vue/es/tabs/style/index.js","../node_modules/ant-design-vue/es/tabs/src/Tabs.js","../node_modules/ant-design-vue/es/tabs/src/TabPanelList/TabPane.js","../node_modules/ant-design-vue/es/tabs/index.js","../node_modules/ant-design-vue/es/col/index.js","../node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/RotateLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/RotateRightOutlined.js","../node_modules/ant-design-vue/es/progress/props.js","../node_modules/ant-design-vue/es/progress/utils.js","../node_modules/ant-design-vue/es/progress/Line.js","../node_modules/ant-design-vue/es/vc-progress/src/common.js","../node_modules/ant-design-vue/es/vc-progress/src/types.js","../node_modules/ant-design-vue/es/vc-progress/src/Circle.js","../node_modules/ant-design-vue/es/progress/Circle.js","../node_modules/ant-design-vue/es/progress/Steps.js","../node_modules/ant-design-vue/es/progress/style/index.js","../node_modules/ant-design-vue/es/progress/progress.js","../node_modules/ant-design-vue/es/progress/index.js","../node_modules/ant-design-vue/es/row/index.js","../node_modules/ant-design-vue/es/vc-slider/src/common/Track.js","../node_modules/ant-design-vue/es/vc-slider/src/common/Steps.js","../node_modules/ant-design-vue/es/vc-slider/src/common/Marks.js","../node_modules/ant-design-vue/es/vc-slider/src/Handle.js","../node_modules/ant-design-vue/es/vc-slider/src/utils.js","../node_modules/ant-design-vue/es/vc-slider/src/common/createSlider.js","../node_modules/ant-design-vue/es/vc-slider/src/Slider.js","../node_modules/ant-design-vue/es/vc-slider/src/Range.js","../node_modules/ant-design-vue/es/slider/SliderTooltip.js","../node_modules/ant-design-vue/es/slider/style/index.js","../node_modules/ant-design-vue/es/slider/index.js","../node_modules/ant-design-vue/es/vc-upload/request.js","../node_modules/ant-design-vue/es/vc-upload/uid.js","../node_modules/ant-design-vue/es/vc-upload/attr-accept.js","../node_modules/ant-design-vue/es/vc-upload/traverseFileTree.js","../node_modules/ant-design-vue/es/vc-upload/interface.js","../node_modules/ant-design-vue/es/vc-upload/AjaxUploader.js","../node_modules/ant-design-vue/es/vc-upload/Upload.js","../node_modules/@ant-design/icons-svg/es/asn/PaperClipOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PictureTwoTone.js","../node_modules/@ant-design/icons-vue/es/icons/PictureTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/FileTwoTone.js","../node_modules/@ant-design/icons-vue/es/icons/FileTwoTone.js","../node_modules/ant-design-vue/es/upload/interface.js","../node_modules/ant-design-vue/es/upload/utils.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js","../node_modules/ant-design-vue/es/upload/UploadList/ListItem.js","../node_modules/ant-design-vue/es/upload/UploadList/index.js","../node_modules/ant-design-vue/es/upload/style/dragger.js","../node_modules/ant-design-vue/es/upload/style/list.js","../node_modules/ant-design-vue/es/upload/style/motion.js","../node_modules/ant-design-vue/es/upload/style/picture.js","../node_modules/ant-design-vue/es/upload/style/rtl.js","../node_modules/ant-design-vue/es/upload/style/index.js","../node_modules/ant-design-vue/es/upload/Upload.js","../node_modules/ant-design-vue/es/upload/Dragger.js","../node_modules/ant-design-vue/es/upload/index.js","../node_modules/ant-design-vue/es/segmented/style/index.js","../node_modules/ant-design-vue/es/segmented/src/MotionThumb.js","../node_modules/ant-design-vue/es/segmented/src/segmented.js","../node_modules/ant-design-vue/es/segmented/index.js","../node_modules/@ant-design/icons-svg/es/asn/AlignCenterOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/AlignCenterOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/AlignLeftOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/AlignLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/AlignRightOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/AlignRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BgColorsOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BgColorsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderBottomOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderBottomOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderLeftOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderOuterOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderOuterOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderRightOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BorderTopOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderTopOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ColumnWidthOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/ColumnWidthOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExpandOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/ExpandOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/HolderOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LinkOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LinkOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/MenuOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MergeCellsOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/MergeCellsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/NodeCollapseOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/NodeCollapseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/NodeExpandOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/NodeExpandOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PicLeftOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/PicLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PictureOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ScissorOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/ScissorOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SplitCellsOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/SplitCellsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ThunderboltOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/ThunderboltOutlined.js","../node_modules/ant-design-vue/es/flex/utils.js","../node_modules/ant-design-vue/es/flex/style/index.js","../node_modules/ant-design-vue/es/_util/gapSize.js","../node_modules/ant-design-vue/es/flex/interface.js","../node_modules/ant-design-vue/es/flex/index.js","../src/materials/shared/setter/panels/event-panel.vue","../src/materials/shared/setter/panels/animation-panel.vue","../src/materials/shared/setter/components/color-input.vue","../src/materials/shared/setter/components/image-upload.vue","../src/materials/shared/setter/components/percent-input.vue","../src/materials/shared/setter/use-widget-setter.ts","../src/materials/shared/setter/panels/background-panel.vue","../src/materials/shared/setter/components/style-property-input.vue","../src/materials/shared/setter/panels/border-panel.vue","../src/materials/shared/setter/components/box-model.vue","../src/materials/shared/setter/panels/layout-panel.vue","../src/materials/shared/setter/components/offset-box.vue","../src/materials/shared/setter/panels/position-panel.vue","../src/materials/shared/setter/panels/typography-panel.vue","../src/materials/shared/setter/panels/widget-style-panel.vue","../src/materials/shared/setter/components/binding-picker/binding-utils.ts","../src/materials/shared/setter/components/binding-picker/binding-scope-tree.ts","../src/materials/shared/setter/components/binding-picker/index.vue","../src/materials/shared/setter/components/binding-form-item.vue","../src/materials/shared/setter/shell.vue","../src/materials/packages/button/setter.vue","../src/materials/packages/button/icon.svg","../src/materials/packages/button/index.ts","../src/materials/packages/image/setter.vue","../src/materials/packages/image/icon.svg","../src/materials/packages/image/index.ts","../src/materials/packages/text/setter.vue","../src/materials/packages/text/icon.svg","../src/materials/packages/text/index.ts","../src/materials/packages/divider/setter.vue","../src/materials/packages/divider/icon.svg","../src/materials/packages/divider/index.ts","../src/materials/packages/card/setter.vue","../src/materials/packages/card/icon.svg","../src/materials/packages/card/index.ts","../node_modules/vuedraggable/src/util/htmlHelper.js","../node_modules/vuedraggable/src/util/console.js","../node_modules/vuedraggable/src/util/string.js","../node_modules/vuedraggable/src/core/sortableEvents.js","../node_modules/vuedraggable/src/util/tags.js","../node_modules/vuedraggable/src/core/componentBuilderHelper.js","../node_modules/vuedraggable/src/core/componentStructure.js","../node_modules/vuedraggable/src/core/renderHelper.js","../node_modules/vuedraggable/src/vuedraggable.js","../src/materials/shared/setter/components/keyed-slot-child-list.vue","../src/materials/packages/carousel/setter.vue","../src/materials/shared/designer/use-keyed-slot-sync.ts","../src/materials/packages/carousel/designer.vue","../src/materials/packages/carousel/carousel-slide/setter.vue","../src/materials/packages/carousel/icon.svg","../src/materials/packages/carousel/index.ts","../src/materials/packages/grid/setter.vue","../src/materials/packages/grid/split.ts","../src/materials/shared/designer/use-widget-size-resize.ts","../src/materials/packages/grid/designer.vue","../src/materials/packages/grid/icon.svg","../src/materials/packages/grid/index.ts","../src/materials/packages/tab/setter.vue","../src/materials/packages/tab/designer.vue","../src/materials/packages/tab/tab-pane/setter.vue","../src/materials/packages/tab/icon.svg","../src/materials/packages/tab/index.ts","../src/materials/packages/list/setter.vue","../src/materials/packages/list/designer.vue","../src/materials/packages/list/icon.svg","../src/materials/packages/list/index.ts","../src/materials/page/lifecycle-panel.vue","../src/materials/page/setter.vue","../src/materials/page/icon.svg","../src/materials/page/index.ts","../src/materials/definitions.ts","../src/materials/index.ts"],"sourcesContent":["/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","const Option = () => null;\nOption.isSelectOption = true;\nOption.displayName = 'AAutoCompleteOption';\nexport default Option;","const OptGroup = () => null;\nOptGroup.isSelectOptGroup = true;\nOptGroup.displayName = 'AAutoCompleteOptGroup';\nexport default OptGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { defineComponent, ref } from 'vue';\nimport Select, { selectProps } from '../select';\nimport { isValidElement, flattenChildren } from '../_util/props-util';\nimport warning from '../_util/warning';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport omit from '../_util/omit';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nfunction isSelectOptionOrSelectOptGroup(child) {\n var _a, _b;\n return ((_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.isSelectOption) || ((_b = child === null || child === void 0 ? void 0 : child.type) === null || _b === void 0 ? void 0 : _b.isSelectOptGroup);\n}\nexport const autoCompleteProps = () => _extends(_extends({}, omit(selectProps(), ['loading', 'mode', 'optionLabelProp', 'labelInValue'])), {\n dataSource: Array,\n dropdownMenuStyle: {\n type: Object,\n default: undefined\n },\n // optionLabelProp: String,\n dropdownMatchSelectWidth: {\n type: [Number, Boolean],\n default: true\n },\n prefixCls: String,\n showSearch: {\n type: Boolean,\n default: undefined\n },\n transitionName: String,\n choiceTransitionName: {\n type: String,\n default: 'zoom'\n },\n autofocus: {\n type: Boolean,\n default: undefined\n },\n backfill: {\n type: Boolean,\n default: undefined\n },\n // optionLabelProp: PropTypes.string.def('children'),\n filterOption: {\n type: [Boolean, Function],\n default: false\n },\n defaultActiveFirstOption: {\n type: Boolean,\n default: true\n },\n status: String\n});\nexport const AutoCompleteOption = Option;\nexport const AutoCompleteOptGroup = OptGroup;\nconst AutoComplete = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AAutoComplete',\n inheritAttrs: false,\n props: autoCompleteProps(),\n // emits: ['change', 'select', 'focus', 'blur'],\n slots: Object,\n setup(props, _ref) {\n let {\n slots,\n attrs,\n expose\n } = _ref;\n warning(!('dataSource' in slots), 'AutoComplete', '`dataSource` slot is deprecated, please use props `options` instead.');\n warning(!('options' in slots), 'AutoComplete', '`options` slot is deprecated, please use props `options` instead.');\n warning(!props.dropdownClassName, 'AutoComplete', '`dropdownClassName` is deprecated, please use `popupClassName` instead.');\n const selectRef = ref();\n const getInputElement = () => {\n var _a;\n const children = flattenChildren((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots));\n const element = children.length ? children[0] : undefined;\n return element;\n };\n const focus = () => {\n var _a;\n (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n };\n const blur = () => {\n var _a;\n (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n };\n expose({\n focus,\n blur\n });\n const {\n prefixCls\n } = useConfigInject('select', props);\n return () => {\n var _a, _b, _c;\n const {\n size,\n dataSource,\n notFoundContent = (_a = slots.notFoundContent) === null || _a === void 0 ? void 0 : _a.call(slots)\n } = props;\n let optionChildren;\n const {\n class: className\n } = attrs;\n const cls = {\n [className]: !!className,\n [`${prefixCls.value}-lg`]: size === 'large',\n [`${prefixCls.value}-sm`]: size === 'small',\n [`${prefixCls.value}-show-search`]: true,\n [`${prefixCls.value}-auto-complete`]: true\n };\n if (props.options === undefined) {\n const childArray = ((_b = slots.dataSource) === null || _b === void 0 ? void 0 : _b.call(slots)) || ((_c = slots.options) === null || _c === void 0 ? void 0 : _c.call(slots)) || [];\n if (childArray.length && isSelectOptionOrSelectOptGroup(childArray[0])) {\n optionChildren = childArray;\n } else {\n optionChildren = dataSource ? dataSource.map(item => {\n if (isValidElement(item)) {\n return item;\n }\n switch (typeof item) {\n case 'string':\n return _createVNode(Option, {\n \"key\": item,\n \"value\": item\n }, {\n default: () => [item]\n });\n case 'object':\n return _createVNode(Option, {\n \"key\": item.value,\n \"value\": item.value\n }, {\n default: () => [item.text]\n });\n default:\n throw new Error('AutoComplete[dataSource] only supports type `string[] | Object[]`.');\n }\n }) : [];\n }\n }\n const selectProps = omit(_extends(_extends(_extends({}, props), attrs), {\n mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE,\n // optionLabelProp,\n getInputElement,\n notFoundContent,\n // placeholder: '',\n class: cls,\n popupClassName: props.popupClassName || props.dropdownClassName,\n ref: selectRef\n }), ['dataSource', 'loading']);\n return _createVNode(Select, selectProps, _objectSpread({\n default: () => [optionChildren]\n }, omit(slots, ['default', 'dataSource', 'options'])));\n };\n }\n});\n/* istanbul ignore next */\nexport default _extends(AutoComplete, {\n Option,\n OptGroup,\n install(app) {\n app.component(AutoComplete.name, AutoComplete);\n app.component(Option.displayName, Option);\n app.component(OptGroup.displayName, OptGroup);\n return app;\n }\n});","import { shallowRef, onBeforeUnmount } from 'vue';\nimport raf from '../../../_util/raf';\nexport default function useRaf(callback) {\n const rafRef = shallowRef();\n const removedRef = shallowRef(false);\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!removedRef.value) {\n raf.cancel(rafRef.value);\n rafRef.value = raf(() => {\n callback(...args);\n });\n }\n }\n onBeforeUnmount(() => {\n removedRef.value = true;\n raf.cancel(rafRef.value);\n });\n return trigger;\n}\nexport function useRafState(defaultState) {\n const batchRef = shallowRef([]);\n const state = shallowRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n const flushUpdate = useRaf(() => {\n let value = state.value;\n batchRef.value.forEach(callback => {\n value = callback(value);\n });\n batchRef.value = [];\n state.value = value;\n });\n function updater(callback) {\n batchRef.value.push(callback);\n flushUpdate();\n }\n return [state, updater];\n}","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, computed, ref } from 'vue';\nimport KeyCode from '../../../_util/KeyCode';\nimport classNames from '../../../_util/classNames';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'TabNode',\n props: {\n id: {\n type: String\n },\n prefixCls: {\n type: String\n },\n tab: {\n type: Object\n },\n active: {\n type: Boolean\n },\n closable: {\n type: Boolean\n },\n editable: {\n type: Object\n },\n onClick: {\n type: Function\n },\n onResize: {\n type: Function\n },\n renderWrapper: {\n type: Function\n },\n removeAriaLabel: {\n type: String\n },\n // onRemove: { type: Function as PropType<() => void> },\n onFocus: {\n type: Function\n }\n },\n emits: ['click', 'resize', 'remove', 'focus'],\n setup(props, _ref) {\n let {\n expose,\n attrs\n } = _ref;\n const domRef = ref();\n function onInternalClick(e) {\n var _a;\n if ((_a = props.tab) === null || _a === void 0 ? void 0 : _a.disabled) {\n return;\n }\n props.onClick(e);\n }\n expose({\n domRef\n });\n // onBeforeUnmount(() => {\n // props.onRemove();\n // });\n function onRemoveTab(event) {\n var _a;\n event.preventDefault();\n event.stopPropagation();\n props.editable.onEdit('remove', {\n key: (_a = props.tab) === null || _a === void 0 ? void 0 : _a.key,\n event\n });\n }\n const removable = computed(() => {\n var _a;\n return props.editable && props.closable !== false && !((_a = props.tab) === null || _a === void 0 ? void 0 : _a.disabled);\n });\n return () => {\n var _a;\n const {\n prefixCls,\n id,\n active,\n tab: {\n key,\n tab,\n disabled,\n closeIcon\n },\n renderWrapper,\n removeAriaLabel,\n editable,\n onFocus\n } = props;\n const tabPrefix = `${prefixCls}-tab`;\n const node = _createVNode(\"div\", {\n \"key\": key,\n \"ref\": domRef,\n \"class\": classNames(tabPrefix, {\n [`${tabPrefix}-with-remove`]: removable.value,\n [`${tabPrefix}-active`]: active,\n [`${tabPrefix}-disabled`]: disabled\n }),\n \"style\": attrs.style,\n \"onClick\": onInternalClick\n }, [_createVNode(\"div\", {\n \"role\": \"tab\",\n \"aria-selected\": active,\n \"id\": id && `${id}-tab-${key}`,\n \"class\": `${tabPrefix}-btn`,\n \"aria-controls\": id && `${id}-panel-${key}`,\n \"aria-disabled\": disabled,\n \"tabindex\": disabled ? null : 0,\n \"onClick\": e => {\n e.stopPropagation();\n onInternalClick(e);\n },\n \"onKeydown\": e => {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n \"onFocus\": onFocus\n }, [typeof tab === 'function' ? tab() : tab]), removable.value && _createVNode(\"button\", {\n \"type\": \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n \"tabindex\": 0,\n \"class\": `${tabPrefix}-remove`,\n \"onClick\": e => {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, [(closeIcon === null || closeIcon === void 0 ? void 0 : closeIcon()) || ((_a = editable.removeIcon) === null || _a === void 0 ? void 0 : _a.call(editable)) || '×'])]);\n return renderWrapper ? renderWrapper(node) : node;\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ref, watchEffect } from 'vue';\nconst DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes) {\n const offsetMap = ref(new Map());\n watchEffect(() => {\n var _a, _b;\n const map = new Map();\n const tabsValue = tabs.value;\n const lastOffset = tabSizes.value.get((_a = tabsValue[0]) === null || _a === void 0 ? void 0 : _a.key) || DEFAULT_SIZE;\n const rightOffset = lastOffset.left + lastOffset.width;\n for (let i = 0; i < tabsValue.length; i += 1) {\n const {\n key\n } = tabsValue[i];\n let data = tabSizes.value.get(key);\n // Reuse last one when not exist yet\n if (!data) {\n data = tabSizes.value.get((_b = tabsValue[i - 1]) === null || _b === void 0 ? void 0 : _b.key) || DEFAULT_SIZE;\n }\n const entity = map.get(key) || _extends({}, data);\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n // Update entity\n map.set(key, entity);\n }\n offsetMap.value = new Map(map);\n });\n return offsetMap;\n}","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, ref } from 'vue';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AddButton',\n inheritAttrs: false,\n props: {\n prefixCls: String,\n editable: {\n type: Object\n },\n locale: {\n type: Object,\n default: undefined\n }\n },\n setup(props, _ref) {\n let {\n expose,\n attrs\n } = _ref;\n const domRef = ref();\n expose({\n domRef\n });\n return () => {\n const {\n prefixCls,\n editable,\n locale\n } = props;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return _createVNode(\"button\", {\n \"ref\": domRef,\n \"type\": \"button\",\n \"class\": `${prefixCls}-nav-add`,\n \"style\": attrs.style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n \"onClick\": event => {\n editable.onEdit('add', {\n event\n });\n }\n }, [editable.addIcon ? editable.addIcon() : '+']);\n };\n }\n});","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport Menu, { MenuItem } from '../../../menu';\nimport Dropdown from '../../../vc-dropdown';\nimport AddButton from './AddButton';\nimport { functionType } from '../../../_util/type';\nimport KeyCode from '../../../_util/KeyCode';\nimport classNames from '../../../_util/classNames';\nimport { defineComponent, watch, computed, onMounted } from 'vue';\nimport PropTypes from '../../../_util/vue-types';\nimport useState from '../../../_util/hooks/useState';\nimport EllipsisOutlined from \"@ant-design/icons-vue/es/icons/EllipsisOutlined\";\nimport { useProvideOverride } from '../../../menu/src/OverrideContext';\nexport const operationNodeProps = {\n prefixCls: {\n type: String\n },\n id: {\n type: String\n },\n tabs: {\n type: Object\n },\n rtl: {\n type: Boolean\n },\n tabBarGutter: {\n type: Number\n },\n activeKey: {\n type: [String, Number]\n },\n mobile: {\n type: Boolean\n },\n moreIcon: PropTypes.any,\n moreTransitionName: {\n type: String\n },\n editable: {\n type: Object\n },\n locale: {\n type: Object,\n default: undefined\n },\n removeAriaLabel: String,\n onTabClick: {\n type: Function\n },\n popupClassName: String,\n getPopupContainer: functionType()\n};\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'OperationNode',\n inheritAttrs: false,\n props: operationNodeProps,\n emits: ['tabClick'],\n slots: Object,\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n // ======================== Dropdown ========================\n const [open, setOpen] = useState(false);\n const [selectedKey, setSelectedKey] = useState(null);\n const selectOffset = offset => {\n const enabledTabs = props.tabs.filter(tab => !tab.disabled);\n let selectedIndex = enabledTabs.findIndex(tab => tab.key === selectedKey.value) || 0;\n const len = enabledTabs.length;\n for (let i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n const tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n };\n const onKeyDown = e => {\n const {\n which\n } = e;\n if (!open.value) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey.value !== null) props.onTabClick(selectedKey.value, e);\n break;\n }\n };\n const popupId = computed(() => `${props.id}-more-popup`);\n const selectedItemId = computed(() => selectedKey.value !== null ? `${popupId.value}-${selectedKey.value}` : null);\n const onRemoveTab = (event, key) => {\n event.preventDefault();\n event.stopPropagation();\n props.editable.onEdit('remove', {\n key,\n event\n });\n };\n onMounted(() => {\n watch(selectedKey, () => {\n const ele = document.getElementById(selectedItemId.value);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, {\n flush: 'post',\n immediate: true\n });\n });\n watch(open, () => {\n if (!open.value) {\n setSelectedKey(null);\n }\n });\n useProvideOverride({});\n return () => {\n var _a;\n const {\n prefixCls,\n id,\n tabs,\n locale,\n mobile,\n moreIcon = ((_a = slots.moreIcon) === null || _a === void 0 ? void 0 : _a.call(slots)) || _createVNode(EllipsisOutlined, null, null),\n moreTransitionName,\n editable,\n tabBarGutter,\n rtl,\n onTabClick,\n popupClassName\n } = props;\n if (!tabs.length) return null;\n const dropdownPrefix = `${prefixCls}-dropdown`;\n const dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n // ========================= Render =========================\n const moreStyle = {\n [rtl ? 'marginRight' : 'marginLeft']: tabBarGutter\n };\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n const overlayClassName = classNames({\n [`${dropdownPrefix}-rtl`]: rtl,\n [`${popupClassName}`]: true\n });\n const moreNode = mobile ? null : _createVNode(Dropdown, {\n \"prefixCls\": dropdownPrefix,\n \"trigger\": ['hover'],\n \"visible\": open.value,\n \"transitionName\": moreTransitionName,\n \"onVisibleChange\": setOpen,\n \"overlayClassName\": overlayClassName,\n \"mouseEnterDelay\": 0.1,\n \"mouseLeaveDelay\": 0.1,\n \"getPopupContainer\": props.getPopupContainer\n }, {\n overlay: () => _createVNode(Menu, {\n \"onClick\": _ref2 => {\n let {\n key,\n domEvent\n } = _ref2;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n \"id\": popupId.value,\n \"tabindex\": -1,\n \"role\": \"listbox\",\n \"aria-activedescendant\": selectedItemId.value,\n \"selectedKeys\": [selectedKey.value],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, {\n default: () => [tabs.map(tab => {\n var _a, _b;\n const removable = editable && tab.closable !== false && !tab.disabled;\n return _createVNode(MenuItem, {\n \"key\": tab.key,\n \"id\": `${popupId.value}-${tab.key}`,\n \"role\": \"option\",\n \"aria-controls\": id && `${id}-panel-${tab.key}`,\n \"disabled\": tab.disabled\n }, {\n default: () => [_createVNode(\"span\", null, [typeof tab.tab === 'function' ? tab.tab() : tab.tab]), removable && _createVNode(\"button\", {\n \"type\": \"button\",\n \"aria-label\": props.removeAriaLabel || 'remove',\n \"tabindex\": 0,\n \"class\": `${dropdownPrefix}-menu-item-remove`,\n \"onClick\": e => {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, [((_a = tab.closeIcon) === null || _a === void 0 ? void 0 : _a.call(tab)) || ((_b = editable.removeIcon) === null || _b === void 0 ? void 0 : _b.call(editable)) || '×'])]\n });\n })]\n }),\n default: () => _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": `${prefixCls}-nav-more`,\n \"style\": moreStyle,\n \"tabindex\": -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId.value,\n \"id\": `${id}-more`,\n \"aria-expanded\": open.value,\n \"onKeydown\": onKeyDown\n }, [moreIcon])\n });\n return _createVNode(\"div\", {\n \"class\": classNames(`${prefixCls}-nav-operations`, attrs.class),\n \"style\": attrs.style\n }, [moreNode, _createVNode(AddButton, {\n \"prefixCls\": prefixCls,\n \"locale\": locale,\n \"editable\": editable\n }, null)]);\n };\n }\n});","import { provide, inject, defineComponent, toRefs, ref } from 'vue';\nconst TabsContextKey = Symbol('tabsContextKey');\nexport const useProvideTabs = props => {\n provide(TabsContextKey, props);\n};\nexport const useInjectTabs = () => {\n return inject(TabsContextKey, {\n tabs: ref([]),\n prefixCls: ref()\n });\n};\nconst TabsContextProvider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'TabsContextProvider',\n inheritAttrs: false,\n props: {\n tabs: {\n type: Object,\n default: undefined\n },\n prefixCls: {\n type: String,\n default: undefined\n }\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useProvideTabs(toRefs(props));\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\nexport default TabsContextProvider;","import { ref, onBeforeUnmount, onMounted } from 'vue';\nimport useState from '../../../_util/hooks/useState';\nconst MIN_SWIPE_DISTANCE = 0.1;\nconst STOP_SWIPE_DISTANCE = 0.01;\nconst REFRESH_INTERVAL = 20;\nconst SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n// ================================= Hook =================================\nexport default function useTouchMove(domRef, onOffset) {\n const [touchPosition, setTouchPosition] = useState();\n const [lastTimestamp, setLastTimestamp] = useState(0);\n const [lastTimeDiff, setLastTimeDiff] = useState(0);\n const [lastOffset, setLastOffset] = useState();\n const motionInterval = ref();\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n const {\n screenX,\n screenY\n } = e.touches[0];\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n clearInterval(motionInterval.value);\n }\n function onTouchMove(e) {\n if (!touchPosition.value) return;\n e.preventDefault();\n const {\n screenX,\n screenY\n } = e.touches[0];\n const offsetX = screenX - touchPosition.value.x;\n const offsetY = screenY - touchPosition.value.y;\n onOffset(offsetX, offsetY);\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n const now = Date.now();\n setLastTimeDiff(now - lastTimestamp.value);\n setLastTimestamp(now);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition.value) return;\n const lastOffsetValue = lastOffset.value;\n setTouchPosition(null);\n setLastOffset(null);\n // Swipe if needed\n if (lastOffsetValue) {\n const distanceX = lastOffsetValue.x / lastTimeDiff.value;\n const distanceY = lastOffsetValue.y / lastTimeDiff.value;\n const absX = Math.abs(distanceX);\n const absY = Math.abs(distanceY);\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n let currentX = distanceX;\n let currentY = distanceY;\n motionInterval.value = setInterval(() => {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n clearInterval(motionInterval.value);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n // >>> Wheel event\n const lastWheelDirectionRef = ref();\n function onWheel(e) {\n const {\n deltaX,\n deltaY\n } = e;\n // Convert both to x & y since wheel only happened on PC\n let mixed = 0;\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.value === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.value = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.value = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n // ========================= Effect =========================\n const touchEventsRef = ref({\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n onWheel\n });\n function onProxyTouchStart(e) {\n touchEventsRef.value.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.value.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.value.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.value.onWheel(e);\n }\n onMounted(() => {\n var _a, _b;\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n // No need to clean up since element removed\n (_a = domRef.value) === null || _a === void 0 ? void 0 : _a.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n (_b = domRef.value) === null || _b === void 0 ? void 0 : _b.addEventListener('wheel', onProxyWheel, {\n passive: false\n });\n });\n onBeforeUnmount(() => {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n });\n}","import { ref } from 'vue';\nexport default function useSyncState(defaultState, onChange) {\n const stateRef = ref(defaultState);\n function setState(updater) {\n const newValue = typeof updater === 'function' ? updater(stateRef.value) : updater;\n if (newValue !== stateRef.value) {\n onChange(newValue, stateRef.value);\n }\n stateRef.value = newValue;\n }\n return [stateRef, setState];\n}","import { onBeforeUpdate, ref } from 'vue';\nconst useRefs = () => {\n const refs = ref(new Map());\n const setRef = key => el => {\n refs.value.set(key, el);\n };\n onBeforeUpdate(() => {\n refs.value = new Map();\n });\n return [setRef, refs];\n};\nexport default useRefs;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { useRafState } from '../hooks/useRaf';\nimport TabNode from './TabNode';\nimport useOffsets from '../hooks/useOffsets';\nimport OperationNode from './OperationNode';\nimport { useInjectTabs } from '../TabContext';\nimport useTouchMove from '../hooks/useTouchMove';\nimport AddButton from './AddButton';\nimport { objectType, functionType } from '../../../_util/type';\nimport { shallowRef, onBeforeUnmount, defineComponent, watch, watchEffect, computed } from 'vue';\nimport PropTypes from '../../../_util/vue-types';\nimport useSyncState from '../hooks/useSyncState';\nimport useState from '../../../_util/hooks/useState';\nimport raf from '../../../_util/raf';\nimport classNames from '../../../_util/classNames';\nimport ResizeObserver from '../../../vc-resize-observer';\nimport { toPx } from '../../../_util/util';\nimport useRefs from '../../../_util/hooks/useRefs';\nimport pick from 'lodash-es/pick';\nconst DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport const tabNavListProps = () => {\n return {\n id: {\n type: String\n },\n tabPosition: {\n type: String\n },\n activeKey: {\n type: [String, Number]\n },\n rtl: {\n type: Boolean\n },\n animated: objectType(),\n editable: objectType(),\n moreIcon: PropTypes.any,\n moreTransitionName: {\n type: String\n },\n mobile: {\n type: Boolean\n },\n tabBarGutter: {\n type: Number\n },\n renderTabBar: {\n type: Function\n },\n locale: objectType(),\n popupClassName: String,\n getPopupContainer: functionType(),\n onTabClick: {\n type: Function\n },\n onTabScroll: {\n type: Function\n }\n };\n};\nconst getTabSize = (tab, containerRect) => {\n // tabListRef\n const {\n offsetWidth,\n offsetHeight,\n offsetTop,\n offsetLeft\n } = tab;\n const {\n width,\n height,\n x,\n y\n } = tab.getBoundingClientRect();\n // Use getBoundingClientRect to avoid decimal inaccuracy\n if (Math.abs(width - offsetWidth) < 1) {\n return [width, height, x - containerRect.x, y - containerRect.y];\n }\n return [offsetWidth, offsetHeight, offsetLeft, offsetTop];\n};\n// const getSize = (refObj: ShallowRef<HTMLElement>) => {\n// const { offsetWidth = 0, offsetHeight = 0 } = refObj.value || {};\n// // Use getBoundingClientRect to avoid decimal inaccuracy\n// if (refObj.value) {\n// const { width, height } = refObj.value.getBoundingClientRect();\n// if (Math.abs(width - offsetWidth) < 1) {\n// return [width, height];\n// }\n// }\n// return [offsetWidth, offsetHeight];\n// };\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'TabNavList',\n inheritAttrs: false,\n props: tabNavListProps(),\n slots: Object,\n emits: ['tabClick', 'tabScroll'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n tabs,\n prefixCls\n } = useInjectTabs();\n const tabsWrapperRef = shallowRef();\n const tabListRef = shallowRef();\n const operationsRef = shallowRef();\n const innerAddButtonRef = shallowRef();\n const [setRef, btnRefs] = useRefs();\n const tabPositionTopOrBottom = computed(() => props.tabPosition === 'top' || props.tabPosition === 'bottom');\n const [transformLeft, setTransformLeft] = useSyncState(0, (next, prev) => {\n if (tabPositionTopOrBottom.value && props.onTabScroll) {\n props.onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n });\n const [transformTop, setTransformTop] = useSyncState(0, (next, prev) => {\n if (!tabPositionTopOrBottom.value && props.onTabScroll) {\n props.onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n });\n const [wrapperScrollWidth, setWrapperScrollWidth] = useState(0);\n const [wrapperScrollHeight, setWrapperScrollHeight] = useState(0);\n const [wrapperWidth, setWrapperWidth] = useState(null);\n const [wrapperHeight, setWrapperHeight] = useState(null);\n const [addWidth, setAddWidth] = useState(0);\n const [addHeight, setAddHeight] = useState(0);\n const [tabSizes, setTabSizes] = useRafState(new Map());\n const tabOffsets = useOffsets(tabs, tabSizes);\n // ========================== Util =========================\n const operationsHiddenClassName = computed(() => `${prefixCls.value}-nav-operations-hidden`);\n const transformMin = shallowRef(0);\n const transformMax = shallowRef(0);\n watchEffect(() => {\n if (!tabPositionTopOrBottom.value) {\n transformMin.value = Math.min(0, wrapperHeight.value - wrapperScrollHeight.value);\n transformMax.value = 0;\n } else if (props.rtl) {\n transformMin.value = 0;\n transformMax.value = Math.max(0, wrapperScrollWidth.value - wrapperWidth.value);\n } else {\n transformMin.value = Math.min(0, wrapperWidth.value - wrapperScrollWidth.value);\n transformMax.value = 0;\n }\n });\n const alignInRange = value => {\n if (value < transformMin.value) {\n return transformMin.value;\n }\n if (value > transformMax.value) {\n return transformMax.value;\n }\n return value;\n };\n // ========================= Mobile ========================\n const touchMovingRef = shallowRef();\n const [lockAnimation, setLockAnimation] = useState();\n const doLockAnimation = () => {\n setLockAnimation(Date.now());\n };\n const clearTouchMoving = () => {\n clearTimeout(touchMovingRef.value);\n };\n const doMove = (setState, offset) => {\n setState(value => {\n const newValue = alignInRange(value + offset);\n return newValue;\n });\n };\n useTouchMove(tabsWrapperRef, (offsetX, offsetY) => {\n if (tabPositionTopOrBottom.value) {\n // Skip scroll if place is enough\n if (wrapperWidth.value >= wrapperScrollWidth.value) {\n return false;\n }\n doMove(setTransformLeft, offsetX);\n } else {\n if (wrapperHeight.value >= wrapperScrollHeight.value) {\n return false;\n }\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n watch(lockAnimation, () => {\n clearTouchMoving();\n if (lockAnimation.value) {\n touchMovingRef.value = setTimeout(() => {\n setLockAnimation(0);\n }, 100);\n }\n });\n // ========================= Scroll ========================\n const scrollToTab = function () {\n let key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activeKey;\n const tabOffset = tabOffsets.value.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom.value) {\n // ============ Align with top & bottom ============\n let newTransform = transformLeft.value;\n // RTL\n if (props.rtl) {\n if (tabOffset.right < transformLeft.value) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft.value + wrapperWidth.value) {\n newTransform = tabOffset.right + tabOffset.width - wrapperWidth.value;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft.value) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft.value + wrapperWidth.value) {\n newTransform = -(tabOffset.left + tabOffset.width - wrapperWidth.value);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n let newTransform = transformTop.value;\n if (tabOffset.top < -transformTop.value) {\n newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop.value + wrapperHeight.value) {\n newTransform = -(tabOffset.top + tabOffset.height - wrapperHeight.value);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(newTransform));\n }\n };\n const visibleStart = shallowRef(0);\n const visibleEnd = shallowRef(0);\n watchEffect(() => {\n let unit;\n let position;\n let transformSize;\n let basicSize;\n let tabContentSize;\n let addSize;\n const tabOffsetsValue = tabOffsets.value;\n if (['top', 'bottom'].includes(props.tabPosition)) {\n unit = 'width';\n basicSize = wrapperWidth.value;\n tabContentSize = wrapperScrollWidth.value;\n addSize = addWidth.value;\n position = props.rtl ? 'right' : 'left';\n transformSize = Math.abs(transformLeft.value);\n } else {\n unit = 'height';\n basicSize = wrapperHeight.value;\n tabContentSize = wrapperScrollWidth.value;\n addSize = addHeight.value;\n position = 'top';\n transformSize = -transformTop.value;\n }\n let mergedBasicSize = basicSize;\n if (tabContentSize + addSize > basicSize && tabContentSize < basicSize) {\n mergedBasicSize = basicSize - addSize;\n }\n const tabsVal = tabs.value;\n if (!tabsVal.length) {\n return [visibleStart.value, visibleEnd.value] = [0, 0];\n }\n const len = tabsVal.length;\n let endIndex = len;\n for (let i = 0; i < len; i += 1) {\n const offset = tabOffsetsValue.get(tabsVal[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[unit] > transformSize + mergedBasicSize) {\n endIndex = i - 1;\n break;\n }\n }\n let startIndex = 0;\n for (let i = len - 1; i >= 0; i -= 1) {\n const offset = tabOffsetsValue.get(tabsVal[i].key) || DEFAULT_SIZE;\n if (offset[position] < transformSize) {\n startIndex = i + 1;\n break;\n }\n }\n return [visibleStart.value, visibleEnd.value] = [startIndex, endIndex];\n });\n const updateTabSizes = () => {\n setTabSizes(() => {\n var _a;\n const newSizes = new Map();\n const listRect = (_a = tabListRef.value) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n tabs.value.forEach(_ref2 => {\n let {\n key\n } = _ref2;\n const btnRef = btnRefs.value.get(key);\n const btnNode = (btnRef === null || btnRef === void 0 ? void 0 : btnRef.$el) || btnRef;\n if (btnNode) {\n const [width, height, left, top] = getTabSize(btnNode, listRect);\n newSizes.set(key, {\n width,\n height,\n left,\n top\n });\n }\n });\n return newSizes;\n });\n };\n watch(() => tabs.value.map(tab => tab.key).join('%%'), () => {\n updateTabSizes();\n }, {\n flush: 'post'\n });\n const onListHolderResize = () => {\n var _a, _b, _c, _d, _e;\n // Update wrapper records\n const offsetWidth = ((_a = tabsWrapperRef.value) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0;\n const offsetHeight = ((_b = tabsWrapperRef.value) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n const addDom = ((_c = innerAddButtonRef.value) === null || _c === void 0 ? void 0 : _c.$el) || {};\n const newAddWidth = addDom.offsetWidth || 0;\n const newAddHeight = addDom.offsetHeight || 0;\n setWrapperWidth(offsetWidth);\n setWrapperHeight(offsetHeight);\n setAddWidth(newAddWidth);\n setAddHeight(newAddHeight);\n const newWrapperScrollWidth = (((_d = tabListRef.value) === null || _d === void 0 ? void 0 : _d.offsetWidth) || 0) - newAddWidth;\n const newWrapperScrollHeight = (((_e = tabListRef.value) === null || _e === void 0 ? void 0 : _e.offsetHeight) || 0) - newAddHeight;\n setWrapperScrollWidth(newWrapperScrollWidth);\n setWrapperScrollHeight(newWrapperScrollHeight);\n // Update buttons records\n updateTabSizes();\n };\n // ======================== Dropdown =======================\n const hiddenTabs = computed(() => [...tabs.value.slice(0, visibleStart.value), ...tabs.value.slice(visibleEnd.value + 1)]);\n // =================== Link & Operations ===================\n const [inkStyle, setInkStyle] = useState();\n const activeTabOffset = computed(() => tabOffsets.value.get(props.activeKey));\n // Delay set ink style to avoid remove tab blink\n const inkBarRafRef = shallowRef();\n const cleanInkBarRaf = () => {\n raf.cancel(inkBarRafRef.value);\n };\n watch([activeTabOffset, tabPositionTopOrBottom, () => props.rtl], () => {\n const newInkStyle = {};\n if (activeTabOffset.value) {\n if (tabPositionTopOrBottom.value) {\n if (props.rtl) {\n newInkStyle.right = toPx(activeTabOffset.value.right);\n } else {\n newInkStyle.left = toPx(activeTabOffset.value.left);\n }\n newInkStyle.width = toPx(activeTabOffset.value.width);\n } else {\n newInkStyle.top = toPx(activeTabOffset.value.top);\n newInkStyle.height = toPx(activeTabOffset.value.height);\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.value = raf(() => {\n setInkStyle(newInkStyle);\n });\n });\n watch([() => props.activeKey, activeTabOffset, tabOffsets, tabPositionTopOrBottom], () => {\n scrollToTab();\n }, {\n flush: 'post'\n });\n watch([() => props.rtl, () => props.tabBarGutter, () => props.activeKey, () => tabs.value], () => {\n onListHolderResize();\n }, {\n flush: 'post'\n });\n const ExtraContent = _ref3 => {\n let {\n position,\n prefixCls,\n extra\n } = _ref3;\n if (!extra) return null;\n const content = extra === null || extra === void 0 ? void 0 : extra({\n position\n });\n return content ? _createVNode(\"div\", {\n \"class\": `${prefixCls}-extra-content`\n }, [content]) : null;\n };\n onBeforeUnmount(() => {\n clearTouchMoving();\n cleanInkBarRaf();\n });\n return () => {\n const {\n id,\n animated,\n activeKey,\n rtl,\n editable,\n locale,\n tabPosition,\n tabBarGutter,\n onTabClick\n } = props;\n const {\n class: className,\n style\n } = attrs;\n const pre = prefixCls.value;\n // ========================= Render ========================\n const hasDropdown = !!hiddenTabs.value.length;\n const wrapPrefix = `${pre}-nav-wrap`;\n let pingLeft;\n let pingRight;\n let pingTop;\n let pingBottom;\n if (tabPositionTopOrBottom.value) {\n if (rtl) {\n pingRight = transformLeft.value > 0;\n pingLeft = transformLeft.value + wrapperWidth.value < wrapperScrollWidth.value;\n } else {\n pingLeft = transformLeft.value < 0;\n pingRight = -transformLeft.value + wrapperWidth.value < wrapperScrollWidth.value;\n }\n } else {\n pingTop = transformTop.value < 0;\n pingBottom = -transformTop.value + wrapperHeight.value < wrapperScrollHeight.value;\n }\n const tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = typeof tabBarGutter === 'number' ? `${tabBarGutter}px` : tabBarGutter;\n } else {\n tabNodeStyle.marginTop = typeof tabBarGutter === 'number' ? `${tabBarGutter}px` : tabBarGutter;\n }\n const tabNodes = tabs.value.map((tab, i) => {\n const {\n key\n } = tab;\n return _createVNode(TabNode, {\n \"id\": id,\n \"prefixCls\": pre,\n \"key\": key,\n \"tab\": tab,\n \"style\": i === 0 ? undefined : tabNodeStyle,\n \"closable\": tab.closable,\n \"editable\": editable,\n \"active\": key === activeKey,\n \"removeAriaLabel\": locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n \"ref\": setRef(key),\n \"onClick\": e => {\n onTabClick(key, e);\n },\n \"onFocus\": () => {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.value) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.value.scrollLeft = 0;\n }\n tabsWrapperRef.value.scrollTop = 0;\n }\n }, slots);\n });\n return _createVNode(\"div\", {\n \"role\": \"tablist\",\n \"class\": classNames(`${pre}-nav`, className),\n \"style\": style,\n \"onKeydown\": () => {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, [_createVNode(ExtraContent, {\n \"position\": \"left\",\n \"prefixCls\": pre,\n \"extra\": slots.leftExtra\n }, null), _createVNode(ResizeObserver, {\n \"onResize\": onListHolderResize\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": classNames(wrapPrefix, {\n [`${wrapPrefix}-ping-left`]: pingLeft,\n [`${wrapPrefix}-ping-right`]: pingRight,\n [`${wrapPrefix}-ping-top`]: pingTop,\n [`${wrapPrefix}-ping-bottom`]: pingBottom\n }),\n \"ref\": tabsWrapperRef\n }, [_createVNode(ResizeObserver, {\n \"onResize\": onListHolderResize\n }, {\n default: () => [_createVNode(\"div\", {\n \"ref\": tabListRef,\n \"class\": `${pre}-nav-list`,\n \"style\": {\n transform: `translate(${transformLeft.value}px, ${transformTop.value}px)`,\n transition: lockAnimation.value ? 'none' : undefined\n }\n }, [tabNodes, _createVNode(AddButton, {\n \"ref\": innerAddButtonRef,\n \"prefixCls\": pre,\n \"locale\": locale,\n \"editable\": editable,\n \"style\": _extends(_extends({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {\n visibility: hasDropdown ? 'hidden' : null\n })\n }, null), _createVNode(\"div\", {\n \"class\": classNames(`${pre}-ink-bar`, {\n [`${pre}-ink-bar-animated`]: animated.inkBar\n }),\n \"style\": inkStyle.value\n }, null)])]\n })])]\n }), _createVNode(OperationNode, _objectSpread(_objectSpread({}, props), {}, {\n \"removeAriaLabel\": locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n \"ref\": operationsRef,\n \"prefixCls\": pre,\n \"tabs\": hiddenTabs.value,\n \"class\": !hasDropdown && operationsHiddenClassName.value\n }), pick(slots, ['moreIcon'])), _createVNode(ExtraContent, {\n \"position\": \"right\",\n \"prefixCls\": pre,\n \"extra\": slots.rightExtra\n }, null), _createVNode(ExtraContent, {\n \"position\": \"right\",\n \"prefixCls\": pre,\n \"extra\": slots.tabBarExtraContent\n }, null)]);\n };\n }\n});","import { createVNode as _createVNode } from \"vue\";\nimport { useInjectTabs } from '../TabContext';\nimport { defineComponent } from 'vue';\nimport { cloneElement } from '../../../_util/vnode';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'TabPanelList',\n inheritAttrs: false,\n props: {\n activeKey: {\n type: [String, Number]\n },\n id: {\n type: String\n },\n rtl: {\n type: Boolean\n },\n animated: {\n type: Object,\n default: undefined\n },\n tabPosition: {\n type: String\n },\n destroyInactiveTabPane: {\n type: Boolean\n }\n },\n setup(props) {\n const {\n tabs,\n prefixCls\n } = useInjectTabs();\n return () => {\n const {\n id,\n activeKey,\n animated,\n tabPosition,\n rtl,\n destroyInactiveTabPane\n } = props;\n const tabPaneAnimated = animated.tabPane;\n const pre = prefixCls.value;\n const activeIndex = tabs.value.findIndex(tab => tab.key === activeKey);\n return _createVNode(\"div\", {\n \"class\": `${pre}-content-holder`\n }, [_createVNode(\"div\", {\n \"class\": [`${pre}-content`, `${pre}-content-${tabPosition}`, {\n [`${pre}-content-animated`]: tabPaneAnimated\n }],\n \"style\": activeIndex && tabPaneAnimated ? {\n [rtl ? 'marginRight' : 'marginLeft']: `-${activeIndex}00%`\n } : null\n }, [tabs.value.map(tab => {\n return cloneElement(tab.node, {\n key: tab.key,\n prefixCls: pre,\n tabKey: tab.key,\n id,\n animated: tabPaneAnimated,\n active: tab.key === activeKey,\n destroyInactiveTabPane\n });\n })])]);\n };\n }\n});","import { initSlideMotion } from '../../style/motion';\nconst genMotionStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return [{\n [componentCls]: {\n [`${componentCls}-switch`]: {\n '&-appear, &-enter': {\n transition: 'none',\n '&-start': {\n opacity: 0\n },\n '&-active': {\n opacity: 1,\n transition: `opacity ${motionDurationSlow}`\n }\n },\n '&-leave': {\n position: 'absolute',\n transition: 'none',\n inset: 0,\n '&-start': {\n opacity: 1\n },\n '&-active': {\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`\n }\n }\n }\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')]];\n};\nexport default genMotionStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusStyle, resetComponent, textEllipsis } from '../../style';\nimport genMotionStyle from './motion';\nconst genCardStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeadBackground,\n tabsCardGutter,\n colorSplit\n } = token;\n return {\n [`${componentCls}-card`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: 0,\n padding: tabsCardHorizontalPadding,\n background: tabsCardHeadBackground,\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`${componentCls}-tab-active`]: {\n color: token.colorPrimary,\n background: token.colorBgContainer\n },\n [`${componentCls}-ink-bar`]: {\n visibility: 'hidden'\n }\n },\n // ========================== Top & Bottom ==========================\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n }\n }\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n },\n [`${componentCls}-tab-active`]: {\n borderBottomColor: token.colorBgContainer\n }\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-tab-active`]: {\n borderTopColor: token.colorBgContainer\n }\n }\n },\n // ========================== Left & Right ==========================\n [`&${componentCls}-left, &${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginTop: `${tabsCardGutter}px`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderRightColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderLeftColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n }\n }\n };\n};\nconst genDropdownStyle = token => {\n const {\n componentCls,\n tabsHoverColor,\n dropdownEdgeChildVerticalPadding\n } = token;\n return {\n [`${componentCls}-dropdown`]: _extends(_extends({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: token.zIndexPopup,\n display: 'block',\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.tabsDropdownHeight,\n margin: 0,\n padding: `${dropdownEdgeChildVerticalPadding}px 0`,\n overflowX: 'hidden',\n overflowY: 'auto',\n textAlign: {\n _skip_check_: true,\n value: 'left'\n },\n listStyleType: 'none',\n backgroundColor: token.colorBgContainer,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n '&-item': _extends(_extends({}, textEllipsis), {\n display: 'flex',\n alignItems: 'center',\n minWidth: token.tabsDropdownWidth,\n margin: 0,\n padding: `${token.paddingXXS}px ${token.paddingSM}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '> span': {\n flex: 1,\n whiteSpace: 'nowrap'\n },\n '&-remove': {\n flex: 'none',\n marginLeft: {\n _skip_check_: true,\n value: token.marginSM\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n '&:hover': {\n color: tabsHoverColor\n }\n },\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n '&, &:hover': {\n color: token.colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n })\n }\n })\n };\n};\nconst genPositionStyle = token => {\n const {\n componentCls,\n margin,\n colorSplit\n } = token;\n return {\n // ========================== Top & Bottom ==========================\n [`${componentCls}-top, ${componentCls}-bottom`]: {\n flexDirection: 'column',\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n margin: `0 0 ${margin}px 0`,\n '&::before': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n borderBottom: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n content: \"''\"\n },\n [`${componentCls}-ink-bar`]: {\n height: token.lineWidthBold,\n '&-animated': {\n transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow},\n right ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-wrap`]: {\n '&::before, &::after': {\n top: 0,\n bottom: 0,\n width: token.controlHeight\n },\n '&::before': {\n left: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowLeft\n },\n '&::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowRight\n },\n [`&${componentCls}-nav-wrap-ping-left::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-right::after`]: {\n opacity: 1\n }\n }\n }\n },\n [`${componentCls}-top`]: {\n [`> ${componentCls}-nav,\n > div > ${componentCls}-nav`]: {\n '&::before': {\n bottom: 0\n },\n [`${componentCls}-ink-bar`]: {\n bottom: 0\n }\n }\n },\n [`${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n marginTop: `${margin}px`,\n marginBottom: 0,\n '&::before': {\n top: 0\n },\n [`${componentCls}-ink-bar`]: {\n top: 0\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n // ========================== Left & Right ==========================\n [`${componentCls}-left, ${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n flexDirection: 'column',\n minWidth: token.controlHeight * 1.25,\n // >>>>>>>>>>> Tab\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${token.paddingLG}px`,\n textAlign: 'center'\n },\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n margin: `${token.margin}px 0 0 0`\n },\n // >>>>>>>>>>> Nav\n [`${componentCls}-nav-wrap`]: {\n flexDirection: 'column',\n '&::before, &::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeight\n },\n '&::before': {\n top: 0,\n boxShadow: token.boxShadowTabsOverflowTop\n },\n '&::after': {\n bottom: 0,\n boxShadow: token.boxShadowTabsOverflowBottom\n },\n [`&${componentCls}-nav-wrap-ping-top::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-bottom::after`]: {\n opacity: 1\n }\n },\n // >>>>>>>>>>> Ink Bar\n [`${componentCls}-ink-bar`]: {\n width: token.lineWidthBold,\n '&-animated': {\n transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: {\n flex: '1 0 auto',\n flexDirection: 'column'\n }\n }\n },\n [`${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-ink-bar`]: {\n right: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n marginLeft: {\n _skip_check_: true,\n value: `-${token.lineWidth}px`\n },\n borderLeft: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingLeft: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n },\n [`${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n [`${componentCls}-ink-bar`]: {\n left: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0,\n marginRight: {\n _skip_check_: true,\n value: -token.lineWidth\n },\n borderRight: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingRight: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n padding\n } = token;\n return {\n [componentCls]: {\n '&-small': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px 0`,\n fontSize: token.fontSize\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${padding}px 0`,\n fontSize: token.fontSizeLG\n }\n }\n }\n },\n [`${componentCls}-card`]: {\n [`&${componentCls}-small`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXXS * 1.5}px ${padding}px`\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px`\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0`\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadius}px ${token.borderRadius}px 0`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadius}px 0 0 ${token.borderRadius}px`\n }\n }\n }\n },\n [`&${componentCls}-large`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${padding}px ${token.paddingXXS * 1.5}px`\n }\n }\n }\n }\n };\n};\nconst genTabStyle = token => {\n const {\n componentCls,\n tabsActiveColor,\n tabsHoverColor,\n iconCls,\n tabsHorizontalGutter\n } = token;\n const tabCls = `${componentCls}-tab`;\n return {\n [tabCls]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n padding: `${token.paddingSM}px 0`,\n fontSize: `${token.fontSize}px`,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&-btn, &-remove': _extends({\n '&:focus:not(:focus-visible), &:active': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token)),\n '&-btn': {\n outline: 'none',\n transition: 'all 0.3s'\n },\n '&-remove': {\n flex: 'none',\n marginRight: {\n _skip_check_: true,\n value: -token.marginXXS\n },\n marginLeft: {\n _skip_check_: true,\n value: token.marginXS\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n '&:hover': {\n color: tabsHoverColor\n },\n [`&${tabCls}-active ${tabCls}-btn`]: {\n color: token.colorPrimary,\n textShadow: token.tabsActiveTextShadow\n },\n [`&${tabCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: {\n '&:focus, &:active': {\n color: token.colorTextDisabled\n }\n },\n [`& ${tabCls}-remove ${iconCls}`]: {\n margin: 0\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: token.marginSM\n }\n }\n },\n [`${tabCls} + ${tabCls}`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n }\n }\n };\n};\nconst genRtlStyle = token => {\n const {\n componentCls,\n tabsHorizontalGutter,\n iconCls,\n tabsCardGutter\n } = token;\n const rtlCls = `${componentCls}-rtl`;\n return {\n [rtlCls]: {\n direction: 'rtl',\n [`${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n },\n [`${componentCls}-tab:last-of-type`]: {\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: 0\n },\n marginLeft: {\n _skip_check_: true,\n value: `${token.marginSM}px`\n }\n },\n [`${componentCls}-tab-remove`]: {\n marginRight: {\n _skip_check_: true,\n value: `${token.marginXS}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: `-${token.marginXXS}px`\n },\n [iconCls]: {\n margin: 0\n }\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav`]: {\n order: 1\n },\n [`> ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav`]: {\n order: 0\n },\n [`> ${componentCls}-content-holder`]: {\n order: 1\n }\n },\n // ====================== Card ======================\n [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginRight: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n }\n }\n }\n },\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-menu-item`]: {\n [`${componentCls}-dropdown-rtl`]: {\n textAlign: {\n _skip_check_: true,\n value: 'right'\n }\n }\n }\n };\n};\nconst genTabsStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeight,\n tabsCardGutter,\n tabsHoverColor,\n tabsActiveColor,\n colorSplit\n } = token;\n return {\n [componentCls]: _extends(_extends(_extends(_extends({}, resetComponent(token)), {\n display: 'flex',\n // ========================== Navigation ==========================\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n [`${componentCls}-nav-wrap`]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n alignSelf: 'stretch',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transform: 'translate(0)',\n // >>>>> Ping shadow\n '&::before, &::after': {\n position: 'absolute',\n zIndex: 1,\n opacity: 0,\n transition: `opacity ${token.motionDurationSlow}`,\n content: \"''\",\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-nav-list`]: {\n position: 'relative',\n display: 'flex',\n transition: `opacity ${token.motionDurationSlow}`\n },\n // >>>>>>>> Operations\n [`${componentCls}-nav-operations`]: {\n display: 'flex',\n alignSelf: 'stretch'\n },\n [`${componentCls}-nav-operations-hidden`]: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n [`${componentCls}-nav-more`]: {\n position: 'relative',\n padding: tabsCardHorizontalPadding,\n background: 'transparent',\n border: 0,\n '&::after': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeightLG / 8,\n transform: 'translateY(100%)',\n content: \"''\"\n }\n },\n [`${componentCls}-nav-add`]: _extends({\n minWidth: `${tabsCardHeight}px`,\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n padding: `0 ${token.paddingXS}px`,\n background: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n outline: 'none',\n cursor: 'pointer',\n color: token.colorText,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&:hover': {\n color: tabsHoverColor\n },\n '&:active, &:focus:not(:focus-visible)': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token))\n },\n [`${componentCls}-extra-content`]: {\n flex: 'none'\n },\n // ============================ InkBar ============================\n [`${componentCls}-ink-bar`]: {\n position: 'absolute',\n background: token.colorPrimary,\n pointerEvents: 'none'\n }\n }), genTabStyle(token)), {\n // =========================== TabPanes ===========================\n [`${componentCls}-content`]: {\n position: 'relative',\n display: 'flex',\n width: '100%',\n ['&-animated']: {\n transition: 'margin 0.3s'\n }\n },\n [`${componentCls}-content-holder`]: {\n flex: 'auto',\n minWidth: 0,\n minHeight: 0\n },\n [`${componentCls}-tabpane`]: {\n outline: 'none',\n flex: 'none',\n width: '100%'\n }\n }),\n [`${componentCls}-centered`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-nav-wrap`]: {\n [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: {\n justifyContent: 'center'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tabs', token => {\n const tabsCardHeight = token.controlHeightLG;\n const tabsToken = mergeToken(token, {\n tabsHoverColor: token.colorPrimaryHover,\n tabsActiveColor: token.colorPrimaryActive,\n tabsCardHorizontalPadding: `${(tabsCardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`,\n tabsCardHeight,\n tabsCardGutter: token.marginXXS / 2,\n tabsHorizontalGutter: 32,\n tabsCardHeadBackground: token.colorFillAlter,\n dropdownEdgeChildVerticalPadding: token.paddingXXS,\n tabsActiveTextShadow: '0 0 0.25px currentcolor',\n tabsDropdownHeight: 200,\n tabsDropdownWidth: 120\n });\n return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), genMotionStyle(tabsToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\nimport { defineComponent, computed, onMounted, watchEffect } from 'vue';\nimport { camelize, flattenChildren, initDefaultProps, isValidElement } from '../../_util/props-util';\nimport useConfigInject from '../../config-provider/hooks/useConfigInject';\nimport useState from '../../_util/hooks/useState';\nimport isMobile from '../../vc-util/isMobile';\nimport useMergedState from '../../_util/hooks/useMergedState';\nimport classNames from '../../_util/classNames';\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport PlusOutlined from \"@ant-design/icons-vue/es/icons/PlusOutlined\";\nimport devWarning from '../../vc-util/devWarning';\nimport { useProvideTabs } from './TabContext';\nimport { arrayType, stringType, someType, functionType, objectType, booleanType } from '../../_util/type';\nimport pick from 'lodash-es/pick';\nimport PropTypes from '../../_util/vue-types';\nimport omit from '../../_util/omit';\nimport useStyle from '../style';\n// Used for accessibility\nlet uuid = 0;\nexport const tabsProps = () => {\n return {\n prefixCls: {\n type: String\n },\n id: {\n type: String\n },\n popupClassName: String,\n getPopupContainer: functionType(),\n activeKey: {\n type: [String, Number]\n },\n defaultActiveKey: {\n type: [String, Number]\n },\n direction: stringType(),\n animated: someType([Boolean, Object]),\n renderTabBar: functionType(),\n tabBarGutter: {\n type: Number\n },\n tabBarStyle: objectType(),\n tabPosition: stringType(),\n destroyInactiveTabPane: booleanType(),\n hideAdd: Boolean,\n type: stringType(),\n size: stringType(),\n centered: Boolean,\n onEdit: functionType(),\n onChange: functionType(),\n onTabClick: functionType(),\n onTabScroll: functionType(),\n 'onUpdate:activeKey': functionType(),\n // Accessibility\n locale: objectType(),\n onPrevClick: functionType(),\n onNextClick: functionType(),\n tabBarExtraContent: PropTypes.any\n };\n};\nfunction parseTabList(children) {\n return children.map(node => {\n if (isValidElement(node)) {\n const props = _extends({}, node.props || {});\n for (const [k, v] of Object.entries(props)) {\n delete props[k];\n props[camelize(k)] = v;\n }\n const slots = node.children || {};\n const key = node.key !== undefined ? node.key : undefined;\n const {\n tab = slots.tab,\n disabled,\n forceRender,\n closable,\n animated,\n active,\n destroyInactiveTabPane\n } = props;\n return _extends(_extends({\n key\n }, props), {\n node,\n closeIcon: slots.closeIcon,\n tab,\n disabled: disabled === '' || disabled,\n forceRender: forceRender === '' || forceRender,\n closable: closable === '' || closable,\n animated: animated === '' || animated,\n active: active === '' || active,\n destroyInactiveTabPane: destroyInactiveTabPane === '' || destroyInactiveTabPane\n });\n }\n return null;\n }).filter(tab => tab);\n}\nconst InternalTabs = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'InternalTabs',\n inheritAttrs: false,\n props: _extends(_extends({}, initDefaultProps(tabsProps(), {\n tabPosition: 'top',\n animated: {\n inkBar: true,\n tabPane: false\n }\n })), {\n tabs: arrayType()\n }),\n slots: Object,\n // emits: ['tabClick', 'tabScroll', 'change', 'update:activeKey'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n devWarning(!(props.onPrevClick !== undefined) && !(props.onNextClick !== undefined), 'Tabs', '`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead.');\n devWarning(!(props.tabBarExtraContent !== undefined), 'Tabs', '`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead.');\n devWarning(!(slots.tabBarExtraContent !== undefined), 'Tabs', '`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.');\n const {\n prefixCls,\n direction,\n size,\n rootPrefixCls,\n getPopupContainer\n } = useConfigInject('tabs', props);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rtl = computed(() => direction.value === 'rtl');\n const mergedAnimated = computed(() => {\n const {\n animated,\n tabPosition\n } = props;\n if (animated === false || ['left', 'right'].includes(tabPosition)) {\n return {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n return {\n inkBar: true,\n tabPane: true\n };\n } else {\n return _extends({\n inkBar: true,\n tabPane: false\n }, typeof animated === 'object' ? animated : {});\n }\n });\n // ======================== Mobile ========================\n const [mobile, setMobile] = useState(false);\n onMounted(() => {\n // Only update on the client side\n setMobile(isMobile());\n });\n // ====================== Active Key ======================\n const [mergedActiveKey, setMergedActiveKey] = useMergedState(() => {\n var _a;\n return (_a = props.tabs[0]) === null || _a === void 0 ? void 0 : _a.key;\n }, {\n value: computed(() => props.activeKey),\n defaultValue: props.defaultActiveKey\n });\n const [activeIndex, setActiveIndex] = useState(() => props.tabs.findIndex(tab => tab.key === mergedActiveKey.value));\n watchEffect(() => {\n var _a;\n let newActiveIndex = props.tabs.findIndex(tab => tab.key === mergedActiveKey.value);\n if (newActiveIndex === -1) {\n newActiveIndex = Math.max(0, Math.min(activeIndex.value, props.tabs.length - 1));\n setMergedActiveKey((_a = props.tabs[newActiveIndex]) === null || _a === void 0 ? void 0 : _a.key);\n }\n setActiveIndex(newActiveIndex);\n });\n // ===================== Accessibility ====================\n const [mergedId, setMergedId] = useMergedState(null, {\n value: computed(() => props.id)\n });\n const mergedTabPosition = computed(() => {\n if (mobile.value && !['left', 'right'].includes(props.tabPosition)) {\n return 'top';\n } else {\n return props.tabPosition;\n }\n });\n onMounted(() => {\n if (!props.id) {\n setMergedId(`rc-tabs-${process.env.NODE_ENV === 'test' ? 'test' : uuid}`);\n uuid += 1;\n }\n });\n // ======================== Events ========================\n const onInternalTabClick = (key, e) => {\n var _a, _b;\n (_a = props.onTabClick) === null || _a === void 0 ? void 0 : _a.call(props, key, e);\n const isActiveChanged = key !== mergedActiveKey.value;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, key);\n }\n };\n useProvideTabs({\n tabs: computed(() => props.tabs),\n prefixCls\n });\n return () => {\n const {\n id,\n type,\n tabBarGutter,\n tabBarStyle,\n locale,\n destroyInactiveTabPane,\n renderTabBar = slots.renderTabBar,\n onTabScroll,\n hideAdd,\n centered\n } = props;\n // ======================== Render ========================\n const sharedProps = {\n id: mergedId.value,\n activeKey: mergedActiveKey.value,\n animated: mergedAnimated.value,\n tabPosition: mergedTabPosition.value,\n rtl: rtl.value,\n mobile: mobile.value\n };\n let editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: (editType, _ref2) => {\n let {\n key,\n event\n } = _ref2;\n var _a;\n (_a = props.onEdit) === null || _a === void 0 ? void 0 : _a.call(props, editType === 'add' ? event : key, editType);\n },\n removeIcon: () => _createVNode(CloseOutlined, null, null),\n addIcon: slots.addIcon ? slots.addIcon : () => _createVNode(PlusOutlined, null, null),\n showAdd: hideAdd !== true\n };\n }\n let tabNavBar;\n const tabNavBarProps = _extends(_extends({}, sharedProps), {\n moreTransitionName: `${rootPrefixCls.value}-slide-up`,\n editable,\n locale,\n tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll,\n style: tabBarStyle,\n getPopupContainer: getPopupContainer.value,\n popupClassName: classNames(props.popupClassName, hashId.value)\n });\n if (renderTabBar) {\n tabNavBar = renderTabBar(_extends(_extends({}, tabNavBarProps), {\n DefaultTabBar: TabNavList\n }));\n } else {\n tabNavBar = _createVNode(TabNavList, tabNavBarProps, pick(slots, ['moreIcon', 'leftExtra', 'rightExtra', 'tabBarExtraContent']));\n }\n const pre = prefixCls.value;\n return wrapSSR(_createVNode(\"div\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"id\": id,\n \"class\": classNames(pre, `${pre}-${mergedTabPosition.value}`, {\n [hashId.value]: true,\n [`${pre}-${size.value}`]: size.value,\n [`${pre}-card`]: ['card', 'editable-card'].includes(type),\n [`${pre}-editable-card`]: type === 'editable-card',\n [`${pre}-centered`]: centered,\n [`${pre}-mobile`]: mobile.value,\n [`${pre}-editable`]: type === 'editable-card',\n [`${pre}-rtl`]: rtl.value\n }, attrs.class)\n }), [tabNavBar, _createVNode(TabPanelList, _objectSpread(_objectSpread({\n \"destroyInactiveTabPane\": destroyInactiveTabPane\n }, sharedProps), {}, {\n \"animated\": mergedAnimated.value\n }), null)]));\n };\n }\n});\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ATabs',\n inheritAttrs: false,\n props: initDefaultProps(tabsProps(), {\n tabPosition: 'top',\n animated: {\n inkBar: true,\n tabPane: false\n }\n }),\n slots: Object,\n // emits: ['tabClick', 'tabScroll', 'change', 'update:activeKey'],\n setup(props, _ref3) {\n let {\n attrs,\n slots,\n emit\n } = _ref3;\n const handleChange = key => {\n emit('update:activeKey', key);\n emit('change', key);\n };\n return () => {\n var _a;\n const tabs = parseTabList(flattenChildren((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)));\n return _createVNode(InternalTabs, _objectSpread(_objectSpread(_objectSpread({}, omit(props, ['onUpdate:activeKey'])), attrs), {}, {\n \"onChange\": handleChange,\n \"tabs\": tabs\n }), slots);\n };\n }\n});","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, ref, watch, computed } from 'vue';\nimport PropTypes from '../../../_util/vue-types';\nconst tabPaneProps = () => ({\n tab: PropTypes.any,\n disabled: {\n type: Boolean\n },\n forceRender: {\n type: Boolean\n },\n closable: {\n type: Boolean\n },\n animated: {\n type: Boolean\n },\n active: {\n type: Boolean\n },\n destroyInactiveTabPane: {\n type: Boolean\n },\n // Pass by TabPaneList\n prefixCls: {\n type: String\n },\n tabKey: {\n type: [String, Number]\n },\n id: {\n type: String\n }\n // closeIcon: PropTypes.any,\n});\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ATabPane',\n inheritAttrs: false,\n __ANT_TAB_PANE: true,\n props: tabPaneProps(),\n slots: Object,\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const visited = ref(props.forceRender);\n watch([() => props.active, () => props.destroyInactiveTabPane], () => {\n if (props.active) {\n visited.value = true;\n } else if (props.destroyInactiveTabPane) {\n visited.value = false;\n }\n }, {\n immediate: true\n });\n const mergedStyle = computed(() => {\n if (!props.active) {\n if (props.animated) {\n return {\n visibility: 'hidden',\n height: 0,\n overflowY: 'hidden'\n };\n } else {\n return {\n display: 'none'\n };\n }\n }\n return {};\n });\n return () => {\n var _a;\n const {\n prefixCls,\n forceRender,\n id,\n active,\n tabKey\n } = props;\n return _createVNode(\"div\", {\n \"id\": id && `${id}-panel-${tabKey}`,\n \"role\": \"tabpanel\",\n \"tabindex\": active ? 0 : -1,\n \"aria-labelledby\": id && `${id}-tab-${tabKey}`,\n \"aria-hidden\": !active,\n \"style\": [mergedStyle.value, attrs.style],\n \"class\": [`${prefixCls}-tabpane`, active && `${prefixCls}-tabpane-active`, attrs.class]\n }, [(active || visited.value || forceRender) && ((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots))]);\n };\n }\n});","import Tabs, { TabPane } from './src';\nTabs.TabPane = TabPane;\n/* istanbul ignore next */\nTabs.install = function (app) {\n app.component(Tabs.name, Tabs);\n app.component(TabPane.name, TabPane);\n return app;\n};\nexport default Tabs;\nexport { TabPane };","import { Col } from '../grid';\nimport { withInstall } from '../_util/type';\nexport default withInstall(Col);","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RotateLeftOutlined = function RotateLeftOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": RotateLeftOutlinedSvg\n }), null);\n};\n\nRotateLeftOutlined.displayName = 'RotateLeftOutlined';\nRotateLeftOutlined.inheritAttrs = false;\nexport default RotateLeftOutlined;","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RotateRightOutlined = function RotateRightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": RotateRightOutlinedSvg\n }), null);\n};\n\nRotateRightOutlined.displayName = 'RotateRightOutlined';\nRotateRightOutlined.inheritAttrs = false;\nexport default RotateRightOutlined;","import { booleanType, someType, functionType, stringType, anyType, objectType } from '../_util/type';\nexport const progressStatuses = ['normal', 'exception', 'active', 'success'];\nconst ProgressType = ['line', 'circle', 'dashboard'];\nconst ProgressSize = ['default', 'small'];\nexport const progressProps = () => ({\n prefixCls: String,\n type: stringType(),\n percent: Number,\n format: functionType(),\n status: stringType(),\n showInfo: booleanType(),\n strokeWidth: Number,\n strokeLinecap: stringType(),\n strokeColor: anyType(),\n trailColor: String,\n /** @deprecated Use `size` instead */\n width: Number,\n success: objectType(),\n gapDegree: Number,\n gapPosition: stringType(),\n size: someType([String, Number, Array]),\n steps: Number,\n /** @deprecated Use `success` instead */\n successPercent: Number,\n title: String,\n progressStatus: stringType()\n});","import { presetPrimaryColors } from '@ant-design/colors';\nimport devWarning from '../vc-util/devWarning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n let {\n success,\n successPercent\n } = _ref;\n let percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n devWarning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.');\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}\nexport function getPercentage(_ref2) {\n let {\n percent,\n success,\n successPercent\n } = _ref2;\n const realSuccessPercent = validProgress(getSuccessPercent({\n success,\n successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n}\nexport function getStrokeColor(_ref3) {\n let {\n success = {},\n strokeColor\n } = _ref3;\n const {\n strokeColor: successColor\n } = success;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n}\nexport const getSize = (size, type, extra) => {\n var _a, _b, _c, _d;\n let width = -1;\n let height = -1;\n if (type === 'step') {\n const steps = extra.steps;\n const strokeWidth = extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n width = size === 'small' ? 2 : 14;\n height = strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 8;\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = 14, height = 8] = size;\n }\n width *= steps;\n } else if (type === 'line') {\n const strokeWidth = extra === null || extra === void 0 ? void 0 : extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n height = strokeWidth || (size === 'small' ? 6 : 8);\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = -1, height = 8] = size;\n }\n } else if (type === 'circle' || type === 'dashboard') {\n if (typeof size === 'string' || typeof size === 'undefined') {\n [width, height] = size === 'small' ? [60, 60] : [120, 120];\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n if (process.env.NODE_ENV !== 'production') {\n devWarning(false, 'Progress', 'Type \"circle\" and \"dashboard\" do not accept array as `size`, please use number or preset size instead.');\n }\n width = (_b = (_a = size[0]) !== null && _a !== void 0 ? _a : size[1]) !== null && _b !== void 0 ? _b : 120;\n height = (_d = (_c = size[0]) !== null && _c !== void 0 ? _c : size[1]) !== null && _d !== void 0 ? _d : 120;\n }\n }\n return {\n width,\n height\n };\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport { computed, defineComponent } from 'vue';\nimport { progressProps } from './props';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\nimport devWarning from '../vc-util/devWarning';\nimport { anyType, stringType } from '../_util/type';\nexport const lineProps = () => _extends(_extends({}, progressProps()), {\n strokeColor: anyType(),\n direction: stringType()\n});\n/**\n * {\n * '0%': '#afc163',\n * '75%': '#009900',\n * '50%': 'green', ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * '25%': '#66FF00',\n * '100%': '#ffffff'\n * }\n */\nexport const sortGradient = gradients => {\n let tempArr = [];\n Object.keys(gradients).forEach(key => {\n const formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort((a, b) => a.key - b.key);\n return tempArr.map(_ref => {\n let {\n key,\n value\n } = _ref;\n return `${value} ${key}%`;\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const handleGradient = (strokeColor, directionConfig) => {\n const {\n from = presetPrimaryColors.blue,\n to = presetPrimaryColors.blue,\n direction = directionConfig === 'rtl' ? 'to left' : 'to right'\n } = strokeColor,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n const sortedGradients = sortGradient(rest);\n return {\n backgroundImage: `linear-gradient(${direction}, ${sortedGradients})`\n };\n }\n return {\n backgroundImage: `linear-gradient(${direction}, ${from}, ${to})`\n };\n};\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ProgressLine',\n inheritAttrs: false,\n props: lineProps(),\n setup(props, _ref2) {\n let {\n slots,\n attrs\n } = _ref2;\n const backgroundProps = computed(() => {\n const {\n strokeColor,\n direction\n } = props;\n return strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, direction) : {\n backgroundColor: strokeColor\n };\n });\n const borderRadius = computed(() => props.strokeLinecap === 'square' || props.strokeLinecap === 'butt' ? 0 : undefined);\n const trailStyle = computed(() => props.trailColor ? {\n backgroundColor: props.trailColor\n } : undefined);\n const mergedSize = computed(() => {\n var _a;\n return (_a = props.size) !== null && _a !== void 0 ? _a : [-1, props.strokeWidth || (props.size === 'small' ? 6 : 8)];\n });\n const sizeRef = computed(() => getSize(mergedSize.value, 'line', {\n strokeWidth: props.strokeWidth\n }));\n if (process.env.NODE_ENV !== 'production') {\n devWarning('strokeWidth' in props, 'Progress', '`strokeWidth` is deprecated. Please use `size` instead.');\n }\n const percentStyle = computed(() => {\n const {\n percent\n } = props;\n return _extends({\n width: `${validProgress(percent)}%`,\n height: `${sizeRef.value.height}px`,\n borderRadius: borderRadius.value\n }, backgroundProps.value);\n });\n const successPercent = computed(() => {\n return getSuccessPercent(props);\n });\n const successPercentStyle = computed(() => {\n const {\n success\n } = props;\n return {\n width: `${validProgress(successPercent.value)}%`,\n height: `${sizeRef.value.height}px`,\n borderRadius: borderRadius.value,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n });\n const outerStyle = {\n width: sizeRef.value.width < 0 ? '100%' : sizeRef.value.width,\n height: `${sizeRef.value.height}px`\n };\n return () => {\n var _a;\n return _createVNode(_Fragment, null, [_createVNode(\"div\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": [`${props.prefixCls}-outer`, attrs.class],\n \"style\": [attrs.style, outerStyle]\n }), [_createVNode(\"div\", {\n \"class\": `${props.prefixCls}-inner`,\n \"style\": trailStyle.value\n }, [_createVNode(\"div\", {\n \"class\": `${props.prefixCls}-bg`,\n \"style\": percentStyle.value\n }, null), successPercent.value !== undefined ? _createVNode(\"div\", {\n \"class\": `${props.prefixCls}-success-bg`,\n \"style\": successPercentStyle.value\n }, null) : null])]), (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]);\n };\n }\n});","import { ref, onUpdated } from 'vue';\nexport const defaultProps = {\n percent: 0,\n prefixCls: 'vc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n trailColor: '#D9D9D9',\n trailWidth: 1\n};\nexport const useTransitionDuration = paths => {\n const prevTimeStamp = ref(null);\n onUpdated(() => {\n const now = Date.now();\n let updated = false;\n paths.value.forEach(val => {\n const path = (val === null || val === void 0 ? void 0 : val.$el) || val;\n if (!path) {\n return;\n }\n updated = true;\n const pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.value && now - prevTimeStamp.value < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.value = Date.now();\n }\n });\n return paths;\n};","export const propTypes = {\n gapDegree: Number,\n gapPosition: {\n type: String\n },\n percent: {\n type: [Array, Number]\n },\n prefixCls: String,\n strokeColor: {\n type: [Object, String, Array]\n },\n strokeLinecap: {\n type: String\n },\n strokeWidth: Number,\n trailColor: String,\n trailWidth: Number,\n transition: String\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useTransitionDuration, defaultProps } from './common';\nimport { propTypes } from './types';\nimport { computed, defineComponent, ref } from 'vue';\nimport initDefaultProps from '../../_util/props-util/initDefaultProps';\nimport useRefs from '../../_util/hooks/useRefs';\nlet gradientSeed = 0;\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nfunction getPathStyles(offset, percent, strokeColor, strokeWidth) {\n let gapDegree = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n let gapPosition = arguments.length > 5 ? arguments[5] : undefined;\n const radius = 50 - strokeWidth / 2;\n let beginPositionX = 0;\n let beginPositionY = -radius;\n let endPositionX = 0;\n let endPositionY = -2 * radius;\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = 2 * radius;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = -2 * radius;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = 2 * radius;\n break;\n default:\n }\n const pathString = `M 50,50 m ${beginPositionX},${beginPositionY}\n a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY}\n a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`;\n const len = Math.PI * 2 * radius;\n const pathStyle = {\n stroke: strokeColor,\n strokeDasharray: `${percent / 100 * (len - gapDegree)}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2 + offset / 100 * (len - gapDegree)}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s' // eslint-disable-line\n };\n return {\n pathString,\n pathStyle\n };\n}\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'VCCircle',\n props: initDefaultProps(propTypes, defaultProps),\n setup(props) {\n gradientSeed += 1;\n const gradientId = ref(gradientSeed);\n const percentList = computed(() => toArray(props.percent));\n const strokeColorList = computed(() => toArray(props.strokeColor));\n const [setRef, paths] = useRefs();\n useTransitionDuration(paths);\n const getStokeList = () => {\n const {\n prefixCls,\n strokeWidth,\n strokeLinecap,\n gapDegree,\n gapPosition\n } = props;\n let stackPtg = 0;\n return percentList.value.map((ptg, index) => {\n const color = strokeColorList.value[index] || strokeColorList.value[strokeColorList.value.length - 1];\n const stroke = Object.prototype.toString.call(color) === '[object Object]' ? `url(#${prefixCls}-gradient-${gradientId.value})` : '';\n const {\n pathString,\n pathStyle\n } = getPathStyles(stackPtg, ptg, color, strokeWidth, gapDegree, gapPosition);\n stackPtg += ptg;\n const pathProps = {\n key: index,\n d: pathString,\n stroke,\n 'stroke-linecap': strokeLinecap,\n 'stroke-width': strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n 'fill-opacity': '0',\n class: `${prefixCls}-circle-path`,\n style: pathStyle\n };\n return _createVNode(\"path\", _objectSpread({\n \"ref\": setRef(index)\n }, pathProps), null);\n });\n };\n return () => {\n const {\n prefixCls,\n strokeWidth,\n trailWidth,\n gapDegree,\n gapPosition,\n trailColor,\n strokeLinecap,\n strokeColor\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"strokeColor\"]);\n const {\n pathString,\n pathStyle\n } = getPathStyles(0, 100, trailColor, strokeWidth, gapDegree, gapPosition);\n delete restProps.percent;\n const gradient = strokeColorList.value.find(color => Object.prototype.toString.call(color) === '[object Object]');\n const pathFirst = {\n d: pathString,\n stroke: trailColor,\n 'stroke-linecap': strokeLinecap,\n 'stroke-width': trailWidth || strokeWidth,\n 'fill-opacity': '0',\n class: `${prefixCls}-circle-trail`,\n style: pathStyle\n };\n return _createVNode(\"svg\", _objectSpread({\n \"class\": `${prefixCls}-circle`,\n \"viewBox\": \"0 0 100 100\"\n }, restProps), [gradient && _createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": `${prefixCls}-gradient-${gradientId.value}`,\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"0%\",\n \"y2\": \"0%\"\n }, [Object.keys(gradient).sort((a, b) => stripPercentToNumber(a) - stripPercentToNumber(b)).map((key, index) => _createVNode(\"stop\", {\n \"key\": index,\n \"offset\": key,\n \"stop-color\": gradient[key]\n }, null))])]), _createVNode(\"path\", pathFirst, null), getStokeList().reverse()]);\n };\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { Fragment as _Fragment, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from 'vue';\nimport { Circle as VCCircle } from '../vc-progress';\nimport { getPercentage, getSize, getStrokeColor } from './utils';\nimport { progressProps } from './props';\nimport { initDefaultProps } from '../_util/props-util';\nimport Tooltip from '../tooltip';\nimport { anyType } from '../_util/type';\nexport const circleProps = () => _extends(_extends({}, progressProps()), {\n strokeColor: anyType()\n});\nconst CIRCLE_MIN_STROKE_WIDTH = 3;\nconst getMinPercent = width => CIRCLE_MIN_STROKE_WIDTH / width * 100;\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ProgressCircle',\n inheritAttrs: false,\n props: initDefaultProps(circleProps(), {\n trailColor: null\n }),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const originWidth = computed(() => {\n var _a;\n return (_a = props.width) !== null && _a !== void 0 ? _a : 120;\n });\n const mergedSize = computed(() => {\n var _a;\n return (_a = props.size) !== null && _a !== void 0 ? _a : [originWidth.value, originWidth.value];\n });\n const sizeRef = computed(() => getSize(mergedSize.value, 'circle'));\n const gapDeg = computed(() => {\n // Support gapDeg = 0 when type = 'dashboard'\n if (props.gapDegree || props.gapDegree === 0) {\n return props.gapDegree;\n }\n if (props.type === 'dashboard') {\n return 75;\n }\n return undefined;\n });\n const circleStyle = computed(() => {\n return {\n width: `${sizeRef.value.width}px`,\n height: `${sizeRef.value.height}px`,\n fontSize: `${sizeRef.value.width * 0.15 + 6}px`\n };\n });\n const circleWidth = computed(() => {\n var _a;\n return (_a = props.strokeWidth) !== null && _a !== void 0 ? _a : Math.max(getMinPercent(sizeRef.value.width), 6);\n });\n const gapPos = computed(() => props.gapPosition || props.type === 'dashboard' && 'bottom' || undefined);\n // using className to style stroke color\n const percent = computed(() => getPercentage(props));\n const isGradient = computed(() => Object.prototype.toString.call(props.strokeColor) === '[object Object]');\n const strokeColor = computed(() => getStrokeColor({\n success: props.success,\n strokeColor: props.strokeColor\n }));\n const wrapperClassName = computed(() => ({\n [`${props.prefixCls}-inner`]: true,\n [`${props.prefixCls}-circle-gradient`]: isGradient.value\n }));\n return () => {\n var _a;\n const circleContent = _createVNode(VCCircle, {\n \"percent\": percent.value,\n \"strokeWidth\": circleWidth.value,\n \"trailWidth\": circleWidth.value,\n \"strokeColor\": strokeColor.value,\n \"strokeLinecap\": props.strokeLinecap,\n \"trailColor\": props.trailColor,\n \"prefixCls\": props.prefixCls,\n \"gapDegree\": gapDeg.value,\n \"gapPosition\": gapPos.value\n }, null);\n return _createVNode(\"div\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": [wrapperClassName.value, attrs.class],\n \"style\": [attrs.style, circleStyle.value]\n }), [sizeRef.value.width <= 20 ? _createVNode(Tooltip, null, {\n default: () => [_createVNode(\"span\", null, [circleContent])],\n title: slots.default\n }) : _createVNode(_Fragment, null, [circleContent, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]);\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from 'vue';\nimport { someType } from '../_util/type';\nimport { progressProps } from './props';\nimport { getSize } from './utils';\nexport const stepsProps = () => _extends(_extends({}, progressProps()), {\n steps: Number,\n strokeColor: someType(),\n trailColor: String\n});\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'Steps',\n props: stepsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const current = computed(() => Math.round(props.steps * ((props.percent || 0) / 100)));\n const mergedSize = computed(() => {\n var _a;\n return (_a = props.size) !== null && _a !== void 0 ? _a : [props.size === 'small' ? 2 : 14, props.strokeWidth || 8];\n });\n const sizeRef = computed(() => getSize(mergedSize.value, 'step', {\n steps: props.steps,\n strokeWidth: props.strokeWidth || 8\n }));\n const styledSteps = computed(() => {\n const {\n steps,\n strokeColor,\n trailColor,\n prefixCls\n } = props;\n const temp = [];\n for (let i = 0; i < steps; i += 1) {\n const color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n const cls = {\n [`${prefixCls}-steps-item`]: true,\n [`${prefixCls}-steps-item-active`]: i <= current.value - 1\n };\n temp.push(_createVNode(\"div\", {\n \"key\": i,\n \"class\": cls,\n \"style\": {\n backgroundColor: i <= current.value - 1 ? color : trailColor,\n width: `${sizeRef.value.width / steps}px`,\n height: `${sizeRef.value.height}px`\n }\n }, null));\n }\n return temp;\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": `${props.prefixCls}-steps-outer`\n }, [styledSteps.value, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]);\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { Keyframes } from '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst antProgressActive = new Keyframes('antProgressActive', {\n '0%': {\n transform: 'translateX(-100%) scaleX(0)',\n opacity: 0.1\n },\n '20%': {\n transform: 'translateX(-100%) scaleX(0)',\n opacity: 0.5\n },\n to: {\n transform: 'translateX(0) scaleX(1)',\n opacity: 0\n }\n});\nconst genBaseStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: _extends(_extends({}, resetComponent(token)), {\n display: 'inline-block',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-line': {\n position: 'relative',\n width: '100%',\n fontSize: token.fontSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS\n },\n [`${progressCls}-outer`]: {\n display: 'inline-block',\n width: '100%'\n },\n [`&${progressCls}-show-info`]: {\n [`${progressCls}-outer`]: {\n marginInlineEnd: `calc(-2em - ${token.marginXS}px)`,\n paddingInlineEnd: `calc(2em + ${token.paddingXS}px)`\n }\n },\n [`${progressCls}-inner`]: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n overflow: 'hidden',\n verticalAlign: 'middle',\n backgroundColor: token.progressRemainingColor,\n borderRadius: token.progressLineRadius\n },\n [`${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorInfo\n }\n },\n [`${progressCls}-success-bg, ${progressCls}-bg`]: {\n position: 'relative',\n backgroundColor: token.colorInfo,\n borderRadius: token.progressLineRadius,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`\n },\n [`${progressCls}-success-bg`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n display: 'inline-block',\n width: '2em',\n marginInlineStart: token.marginXS,\n color: token.progressInfoTextColor,\n lineHeight: 1,\n whiteSpace: 'nowrap',\n textAlign: 'start',\n verticalAlign: 'middle',\n wordBreak: 'normal',\n [iconPrefixCls]: {\n fontSize: token.fontSize\n }\n },\n [`&${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n position: 'absolute',\n inset: 0,\n backgroundColor: token.colorBgContainer,\n borderRadius: token.progressLineRadius,\n opacity: 0,\n animationName: antProgressActive,\n animationDuration: token.progressActiveMotionDuration,\n animationTimingFunction: token.motionEaseOutQuint,\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n },\n [`&${progressCls}-status-exception`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorError\n },\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`&${progressCls}-status-exception ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorError\n }\n },\n [`&${progressCls}-status-success`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n },\n [`&${progressCls}-status-success ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorSuccess\n }\n }\n })\n };\n};\nconst genCircleStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-circle-trail`]: {\n stroke: token.progressRemainingColor\n },\n [`&${progressCls}-circle ${progressCls}-inner`]: {\n position: 'relative',\n lineHeight: 1,\n backgroundColor: 'transparent'\n },\n [`&${progressCls}-circle ${progressCls}-text`]: {\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: 0,\n width: '100%',\n margin: 0,\n padding: 0,\n color: token.colorText,\n lineHeight: 1,\n whiteSpace: 'normal',\n textAlign: 'center',\n transform: 'translateY(-50%)',\n [iconPrefixCls]: {\n fontSize: `${token.fontSize / token.fontSizeSM}em`\n }\n },\n [`${progressCls}-circle&-status-exception`]: {\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`${progressCls}-circle&-status-success`]: {\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n }\n },\n [`${progressCls}-inline-circle`]: {\n lineHeight: 1,\n [`${progressCls}-inner`]: {\n verticalAlign: 'bottom'\n }\n }\n };\n};\nconst genStepStyle = token => {\n const {\n componentCls: progressCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-steps`]: {\n display: 'inline-block',\n '&-outer': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n '&-item': {\n flexShrink: 0,\n minWidth: token.progressStepMinWidth,\n marginInlineEnd: token.progressStepMarginInlineEnd,\n backgroundColor: token.progressRemainingColor,\n transition: `all ${token.motionDurationSlow}`,\n '&-active': {\n backgroundColor: token.colorInfo\n }\n }\n }\n }\n };\n};\nconst genSmallLine = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-small&-line, ${progressCls}-small&-line ${progressCls}-text ${iconPrefixCls}`]: {\n fontSize: token.fontSizeSM\n }\n }\n };\n};\nexport default genComponentStyleHook('Progress', token => {\n const progressStepMarginInlineEnd = token.marginXXS / 2;\n const progressToken = mergeToken(token, {\n progressLineRadius: 100,\n progressInfoTextColor: token.colorText,\n progressDefaultColor: token.colorInfo,\n progressRemainingColor: token.colorFillSecondary,\n progressStepMarginInlineEnd,\n progressStepMinWidth: progressStepMarginInlineEnd,\n progressActiveMotionDuration: '2.4s'\n });\n return [genBaseStyle(progressToken), genCircleStyle(progressToken), genStepStyle(progressToken), genSmallLine(progressToken)];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { computed, defineComponent } from 'vue';\nimport initDefaultProps from '../_util/props-util/initDefaultProps';\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport CheckOutlined from \"@ant-design/icons-vue/es/icons/CheckOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport Line from './Line';\nimport Circle from './Circle';\nimport Steps from './Steps';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport devWarning from '../vc-util/devWarning';\nimport { progressProps, progressStatuses } from './props';\nimport useStyle from './style';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AProgress',\n inheritAttrs: false,\n props: initDefaultProps(progressProps(), {\n type: 'line',\n percent: 0,\n showInfo: true,\n // null for different theme definition\n trailColor: null,\n size: 'default',\n strokeLinecap: 'round'\n }),\n slots: Object,\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n prefixCls,\n direction\n } = useConfigInject('progress', props);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n if (process.env.NODE_ENV !== 'production') {\n devWarning('successPercent' in props, 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.');\n devWarning('width' in props, 'Progress', '`width` is deprecated. Please use `size` instead.');\n }\n const strokeColorNotArray = computed(() => Array.isArray(props.strokeColor) ? props.strokeColor[0] : props.strokeColor);\n const percentNumber = computed(() => {\n const {\n percent = 0\n } = props;\n const successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n });\n const progressStatus = computed(() => {\n const {\n status\n } = props;\n if (!progressStatuses.includes(status) && percentNumber.value >= 100) {\n return 'success';\n }\n return status || 'normal';\n });\n const classString = computed(() => {\n const {\n type,\n showInfo,\n size\n } = props;\n const pre = prefixCls.value;\n return {\n [pre]: true,\n [`${pre}-inline-circle`]: type === 'circle' && getSize(size, 'circle').width <= 20,\n [`${pre}-${type === 'dashboard' && 'circle' || type}`]: true,\n [`${pre}-status-${progressStatus.value}`]: true,\n [`${pre}-show-info`]: showInfo,\n [`${pre}-${size}`]: size,\n [`${pre}-rtl`]: direction.value === 'rtl',\n [hashId.value]: true\n };\n });\n const strokeColorNotGradient = computed(() => typeof props.strokeColor === 'string' || Array.isArray(props.strokeColor) ? props.strokeColor : undefined);\n const renderProcessInfo = () => {\n const {\n showInfo,\n format,\n type,\n percent,\n title\n } = props;\n const successPercent = getSuccessPercent(props);\n if (!showInfo) return null;\n let text;\n const textFormatter = format || (slots === null || slots === void 0 ? void 0 : slots.format) || (val => `${val}%`);\n const isLineType = type === 'line';\n if (format || (slots === null || slots === void 0 ? void 0 : slots.format) || progressStatus.value !== 'exception' && progressStatus.value !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus.value === 'exception') {\n text = isLineType ? _createVNode(CloseCircleFilled, null, null) : _createVNode(CloseOutlined, null, null);\n } else if (progressStatus.value === 'success') {\n text = isLineType ? _createVNode(CheckCircleFilled, null, null) : _createVNode(CheckOutlined, null, null);\n }\n return _createVNode(\"span\", {\n \"class\": `${prefixCls.value}-text`,\n \"title\": title === undefined && typeof text === 'string' ? text : undefined\n }, [text]);\n };\n return () => {\n const {\n type,\n steps,\n title\n } = props;\n const {\n class: cls\n } = attrs,\n restAttrs = __rest(attrs, [\"class\"]);\n const progressInfo = renderProcessInfo();\n let progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? _createVNode(Steps, _objectSpread(_objectSpread({}, props), {}, {\n \"strokeColor\": strokeColorNotGradient.value,\n \"prefixCls\": prefixCls.value,\n \"steps\": steps\n }), {\n default: () => [progressInfo]\n }) : _createVNode(Line, _objectSpread(_objectSpread({}, props), {}, {\n \"strokeColor\": strokeColorNotArray.value,\n \"prefixCls\": prefixCls.value,\n \"direction\": direction.value\n }), {\n default: () => [progressInfo]\n });\n } else if (type === 'circle' || type === 'dashboard') {\n progress = _createVNode(Circle, _objectSpread(_objectSpread({}, props), {}, {\n \"prefixCls\": prefixCls.value,\n \"strokeColor\": strokeColorNotArray.value,\n \"progressStatus\": progressStatus.value\n }), {\n default: () => [progressInfo]\n });\n }\n return wrapSSR(_createVNode(\"div\", _objectSpread(_objectSpread({\n \"role\": \"progressbar\"\n }, restAttrs), {}, {\n \"class\": [classString.value, cls],\n \"title\": title\n }), [progress]));\n };\n }\n});","import Progress from './progress';\nimport { withInstall } from '../_util/type';\nexport default withInstall(Progress);","import { Row } from '../grid';\nimport { withInstall } from '../_util/type';\nexport default withInstall(Row);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n/* eslint-disable */\nconst Track = (_, _ref) => {\n let {\n attrs\n } = _ref;\n const {\n included,\n vertical,\n style,\n class: className\n } = attrs;\n let {\n length,\n offset,\n reverse\n } = attrs;\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n const positionStyle = vertical ? {\n [reverse ? 'top' : 'bottom']: `${offset}%`,\n [reverse ? 'bottom' : 'top']: 'auto',\n height: `${length}%`\n } : {\n [reverse ? 'right' : 'left']: `${offset}%`,\n [reverse ? 'left' : 'right']: 'auto',\n width: `${length}%`\n };\n const elStyle = _extends(_extends({}, style), positionStyle);\n return included ? _createVNode(\"div\", {\n \"class\": className,\n \"style\": elStyle\n }, null) : null;\n};\nTrack.inheritAttrs = false;\nexport default Track;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport classNames from '../../../_util/classNames';\nimport warning from '../../../_util/warning';\nconst calcPoints = (_vertical, marks, dots, step, min, max) => {\n warning(dots ? step > 0 : true, 'Slider', '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n const points = Object.keys(marks).map(parseFloat).sort((a, b) => a - b);\n if (dots && step) {\n for (let i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n return points;\n};\nconst Steps = (_, _ref) => {\n let {\n attrs\n } = _ref;\n const {\n prefixCls,\n vertical,\n reverse,\n marks,\n dots,\n step,\n included,\n lowerBound,\n upperBound,\n max,\n min,\n dotStyle,\n activeDotStyle\n } = attrs;\n const range = max - min;\n const elements = calcPoints(vertical, marks, dots, step, min, max).map(point => {\n const offset = `${Math.abs(point - min) / range * 100}%`;\n const isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n let style = vertical ? _extends(_extends({}, dotStyle), {\n [reverse ? 'top' : 'bottom']: offset\n }) : _extends(_extends({}, dotStyle), {\n [reverse ? 'right' : 'left']: offset\n });\n if (isActived) {\n style = _extends(_extends({}, style), activeDotStyle);\n }\n const pointClassName = classNames({\n [`${prefixCls}-dot`]: true,\n [`${prefixCls}-dot-active`]: isActived,\n [`${prefixCls}-dot-reverse`]: reverse\n });\n return _createVNode(\"span\", {\n \"class\": pointClassName,\n \"style\": style,\n \"key\": point\n }, null);\n });\n return _createVNode(\"div\", {\n \"class\": `${prefixCls}-step`\n }, [elements]);\n};\nSteps.inheritAttrs = false;\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport supportsPassive from '../../../_util/supportsPassive';\nimport classNames from '../../../_util/classNames';\nimport { isValidElement } from '../../../_util/props-util';\nconst Marks = (_, _ref) => {\n let {\n attrs,\n slots\n } = _ref;\n const {\n class: className,\n vertical,\n reverse,\n marks,\n included,\n upperBound,\n lowerBound,\n max,\n min,\n onClickLabel\n } = attrs;\n const marksKeys = Object.keys(marks);\n const customMark = slots.mark;\n const range = max - min;\n const elements = marksKeys.map(parseFloat).sort((a, b) => a - b).map(point => {\n const markPoint = typeof marks[point] === 'function' ? marks[point]() : marks[point];\n const markPointIsObject = typeof markPoint === 'object' && !isValidElement(markPoint);\n let markLabel = markPointIsObject ? markPoint.label : markPoint;\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n if (customMark) {\n markLabel = customMark({\n point,\n label: markLabel\n });\n }\n const isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n const markClassName = classNames({\n [`${className}-text`]: true,\n [`${className}-text-active`]: isActive\n });\n const bottomStyle = {\n marginBottom: '-50%',\n [reverse ? 'top' : 'bottom']: `${(point - min) / range * 100}%`\n };\n const leftStyle = {\n transform: `translateX(${reverse ? `50%` : `-50%`})`,\n msTransform: `translateX(${reverse ? `50%` : `-50%`})`,\n [reverse ? 'right' : 'left']: `${(point - min) / range * 100}%`\n };\n const style = vertical ? bottomStyle : leftStyle;\n const markStyle = markPointIsObject ? _extends(_extends({}, style), markPoint.style) : style;\n const touchEvents = {\n [supportsPassive ? 'onTouchstartPassive' : 'onTouchstart']: e => onClickLabel(e, point)\n };\n return _createVNode(\"span\", _objectSpread({\n \"class\": markClassName,\n \"style\": markStyle,\n \"key\": point,\n \"onMousedown\": e => onClickLabel(e, point)\n }, touchEvents), [markLabel]);\n });\n return _createVNode(\"div\", {\n \"class\": className\n }, [elements]);\n};\nMarks.inheritAttrs = false;\nexport default Marks;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent, shallowRef, onMounted, onBeforeUnmount } from 'vue';\nimport classNames from '../../_util/classNames';\nimport PropTypes from '../../_util/vue-types';\nimport addEventListener from '../../vc-util/Dom/addEventListener';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'Handle',\n inheritAttrs: false,\n props: {\n prefixCls: String,\n vertical: {\n type: Boolean,\n default: undefined\n },\n offset: Number,\n disabled: {\n type: Boolean,\n default: undefined\n },\n min: Number,\n max: Number,\n value: Number,\n tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n reverse: {\n type: Boolean,\n default: undefined\n },\n ariaLabel: String,\n ariaLabelledBy: String,\n ariaValueTextFormatter: Function,\n onMouseenter: {\n type: Function\n },\n onMouseleave: {\n type: Function\n },\n onMousedown: {\n type: Function\n }\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n expose\n } = _ref;\n const clickFocused = shallowRef(false);\n const handle = shallowRef();\n const handleMouseUp = () => {\n if (document.activeElement === handle.value) {\n clickFocused.value = true;\n }\n };\n const handleBlur = e => {\n clickFocused.value = false;\n emit('blur', e);\n };\n const handleKeyDown = () => {\n clickFocused.value = false;\n };\n const focus = () => {\n var _a;\n (_a = handle.value) === null || _a === void 0 ? void 0 : _a.focus();\n };\n const blur = () => {\n var _a;\n (_a = handle.value) === null || _a === void 0 ? void 0 : _a.blur();\n };\n const clickFocus = () => {\n clickFocused.value = true;\n focus();\n };\n // when click can not focus in vue, use mousedown trigger focus\n const handleMousedown = e => {\n e.preventDefault();\n focus();\n emit('mousedown', e);\n };\n expose({\n focus,\n blur,\n clickFocus,\n ref: handle\n });\n let onMouseUpListener = null;\n onMounted(() => {\n onMouseUpListener = addEventListener(document, 'mouseup', handleMouseUp);\n });\n onBeforeUnmount(() => {\n onMouseUpListener === null || onMouseUpListener === void 0 ? void 0 : onMouseUpListener.remove();\n });\n const positionStyle = computed(() => {\n const {\n vertical,\n offset,\n reverse\n } = props;\n return vertical ? {\n [reverse ? 'top' : 'bottom']: `${offset}%`,\n [reverse ? 'bottom' : 'top']: 'auto',\n transform: reverse ? null : `translateY(+50%)`\n } : {\n [reverse ? 'right' : 'left']: `${offset}%`,\n [reverse ? 'left' : 'right']: 'auto',\n transform: `translateX(${reverse ? '+' : '-'}50%)`\n };\n });\n return () => {\n const {\n prefixCls,\n disabled,\n min,\n max,\n value,\n tabindex,\n ariaLabel,\n ariaLabelledBy,\n ariaValueTextFormatter,\n onMouseenter,\n onMouseleave\n } = props;\n const className = classNames(attrs.class, {\n [`${prefixCls}-handle-click-focused`]: clickFocused.value\n });\n const ariaProps = {\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': !!disabled\n };\n const elStyle = [attrs.style, positionStyle.value];\n let mergedTabIndex = tabindex || 0;\n if (disabled || tabindex === null) {\n mergedTabIndex = null;\n }\n let ariaValueText;\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n const handleProps = _extends(_extends(_extends(_extends({}, attrs), {\n role: 'slider',\n tabindex: mergedTabIndex\n }), ariaProps), {\n class: className,\n onBlur: handleBlur,\n onKeydown: handleKeyDown,\n onMousedown: handleMousedown,\n onMouseenter,\n onMouseleave,\n ref: handle,\n style: elStyle\n });\n return _createVNode(\"div\", _objectSpread(_objectSpread({}, handleProps), {}, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }), null);\n };\n }\n});","import keyCode from '../../_util/KeyCode';\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(key => e.target === handles[key].ref);\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n let {\n min,\n max\n } = _ref;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n let {\n marks,\n step,\n min,\n max\n } = _ref2;\n const points = Object.keys(marks).map(parseFloat);\n if (step !== null) {\n const baseNum = Math.pow(10, getPrecision(step));\n const maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n const steps = Math.min((val - min) / step, maxSteps);\n const closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n const diffs = points.map(point => Math.abs(val - point));\n return points[diffs.indexOf(Math.min(...diffs))];\n}\nexport function getPrecision(step) {\n const stepString = step.toString();\n let precision = 0;\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n let zoom = 1;\n if (window.visualViewport) {\n zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n }\n return (vertical ? e.clientY : e.pageX) / zoom;\n}\nexport function getTouchPosition(vertical, e) {\n let zoom = 1;\n if (window.visualViewport) {\n zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n }\n return (vertical ? e.touches[0].clientY : e.touches[0].pageX) / zoom;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n const coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.scrollX + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n let {\n max,\n min\n } = _ref3;\n if (val <= min) {\n return min;\n }\n if (val >= max) {\n return max;\n }\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n const {\n step\n } = props;\n const closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n const operations = {\n increase: (a, b) => a + b,\n decrease: (a, b) => a - b\n };\n const indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n const keyToGet = Object.keys(props.marks)[indexToGet];\n if (props.step) {\n return operations[func](value, props.step);\n }\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n const increase = 'increase';\n const decrease = 'decrease';\n let method = increase;\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n case keyCode.END:\n return (_value, props) => props.max;\n case keyCode.HOME:\n return (_value, props) => props.min;\n case keyCode.PAGE_UP:\n return (value, props) => value + props.step * 2;\n case keyCode.PAGE_DOWN:\n return (value, props) => value - props.step * 2;\n default:\n return undefined;\n }\n return (value, props) => calculateNextValue(method, value, props);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { defineComponent } from 'vue';\nimport classNames from '../../../_util/classNames';\nimport PropTypes from '../../../_util/vue-types';\nimport addEventListener from '../../../vc-util/Dom/addEventListener';\nimport warning from '../../../_util/warning';\nimport { initDefaultProps, getSlot } from '../../../_util/props-util';\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport supportsPassive from '../../../_util/supportsPassive';\nfunction noop() {}\nexport default function createSlider(Component) {\n // const displayName = `ComponentEnhancer(${Component.displayName})`\n const propTypes = {\n id: String,\n min: Number,\n max: Number,\n step: Number,\n marks: PropTypes.object,\n included: {\n type: Boolean,\n default: undefined\n },\n prefixCls: String,\n disabled: {\n type: Boolean,\n default: undefined\n },\n handle: Function,\n dots: {\n type: Boolean,\n default: undefined\n },\n vertical: {\n type: Boolean,\n default: undefined\n },\n reverse: {\n type: Boolean,\n default: undefined\n },\n minimumTrackStyle: PropTypes.object,\n maximumTrackStyle: PropTypes.object,\n handleStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n railStyle: PropTypes.object,\n dotStyle: PropTypes.object,\n activeDotStyle: PropTypes.object,\n autofocus: {\n type: Boolean,\n default: undefined\n },\n draggableTrack: {\n type: Boolean,\n default: undefined\n }\n };\n return defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'CreateSlider',\n mixins: [BaseMixin, Component],\n inheritAttrs: false,\n props: initDefaultProps(propTypes, {\n prefixCls: 'rc-slider',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }),\n emits: ['change', 'blur', 'focus'],\n data() {\n const {\n step,\n max,\n min\n } = this;\n const isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, `Slider[max] - Slider[min] (${max - min}) should be a multiple of Slider[step] (${step})`);\n this.handlesRefs = {};\n return {};\n },\n mounted() {\n this.$nextTick(() => {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n // this.setHandleRefs()\n const {\n autofocus,\n disabled\n } = this;\n if (autofocus && !disabled) {\n this.focus();\n }\n });\n },\n beforeUnmount() {\n this.$nextTick(() => {\n // if (super.componentWillUnmount) super.componentWillUnmount()\n this.removeDocumentEvents();\n });\n },\n methods: {\n defaultHandle(_a) {\n var {\n index,\n directives,\n className,\n style\n } = _a,\n restProps = __rest(_a, [\"index\", \"directives\", \"className\", \"style\"]);\n delete restProps.dragging;\n if (restProps.value === null) {\n return null;\n }\n const handleProps = _extends(_extends({}, restProps), {\n class: className,\n style,\n key: index\n });\n return _createVNode(Handle, handleProps, null);\n },\n onDown(e, position) {\n let p = position;\n const {\n draggableTrack,\n vertical: isVertical\n } = this.$props;\n const {\n bounds\n } = this.$data;\n const value = draggableTrack && this.positionGetValue ? this.positionGetValue(p) || [] : [];\n const inPoint = utils.isEventFromHandle(e, this.handlesRefs);\n this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map((n, i) => {\n const v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(c => !c);\n if (this.dragTrack) {\n this.dragOffset = p;\n this.startBounds = [...bounds];\n } else {\n if (!inPoint) {\n this.dragOffset = 0;\n } else {\n const handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n this.onStart(p);\n }\n },\n onMouseDown(e) {\n if (e.button !== 0) {\n return;\n }\n this.removeDocumentEvents();\n const isVertical = this.$props.vertical;\n const position = utils.getMousePosition(isVertical, e);\n this.onDown(e, position);\n this.addDocumentMouseEvents();\n },\n onTouchStart(e) {\n if (utils.isNotTouchEvent(e)) return;\n const isVertical = this.vertical;\n const position = utils.getTouchPosition(isVertical, e);\n this.onDown(e, position);\n this.addDocumentTouchEvents();\n utils.pauseEvent(e);\n },\n onFocus(e) {\n const {\n vertical\n } = this;\n if (utils.isEventFromHandle(e, this.handlesRefs) && !this.dragTrack) {\n const handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n this.dragOffset = 0;\n this.onStart(handlePosition);\n utils.pauseEvent(e);\n this.$emit('focus', e);\n }\n },\n onBlur(e) {\n if (!this.dragTrack) {\n this.onEnd();\n }\n this.$emit('blur', e);\n },\n onMouseUp() {\n if (this.handlesRefs[this.prevMovedHandleIndex]) {\n this.handlesRefs[this.prevMovedHandleIndex].clickFocus();\n }\n },\n onMouseMove(e) {\n if (!this.sliderRef) {\n this.onEnd();\n return;\n }\n const position = utils.getMousePosition(this.vertical, e);\n this.onMove(e, position - this.dragOffset, this.dragTrack, this.startBounds);\n },\n onTouchMove(e) {\n if (utils.isNotTouchEvent(e) || !this.sliderRef) {\n this.onEnd();\n return;\n }\n const position = utils.getTouchPosition(this.vertical, e);\n this.onMove(e, position - this.dragOffset, this.dragTrack, this.startBounds);\n },\n onKeyDown(e) {\n if (this.sliderRef && utils.isEventFromHandle(e, this.handlesRefs)) {\n this.onKeyboard(e);\n }\n },\n onClickMarkLabel(e, value) {\n e.stopPropagation();\n this.onChange({\n sValue: value\n });\n this.setState({\n sValue: value\n }, () => this.onEnd(true));\n },\n getSliderStart() {\n const slider = this.sliderRef;\n const {\n vertical,\n reverse\n } = this;\n const rect = slider.getBoundingClientRect();\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n return window.scrollX + (reverse ? rect.right : rect.left);\n },\n getSliderLength() {\n const slider = this.sliderRef;\n if (!slider) {\n return 0;\n }\n const coords = slider.getBoundingClientRect();\n return this.vertical ? coords.height : coords.width;\n },\n addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n },\n addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n },\n removeDocumentEvents() {\n /* eslint-disable no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n },\n focus() {\n var _a;\n if (this.$props.disabled) {\n return;\n }\n (_a = this.handlesRefs[0]) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur() {\n if (this.$props.disabled) {\n return;\n }\n Object.keys(this.handlesRefs).forEach(key => {\n var _a, _b;\n (_b = (_a = this.handlesRefs[key]) === null || _a === void 0 ? void 0 : _a.blur) === null || _b === void 0 ? void 0 : _b.call(_a);\n });\n },\n calcValue(offset) {\n const {\n vertical,\n min,\n max\n } = this;\n const ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n const value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n },\n calcValueByPos(position) {\n const sign = this.reverse ? -1 : +1;\n const pixelOffset = sign * (position - this.getSliderStart());\n const nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n },\n calcOffset(value) {\n const {\n min,\n max\n } = this;\n const ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n },\n saveSlider(slider) {\n this.sliderRef = slider;\n },\n saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n },\n render() {\n const {\n prefixCls,\n marks,\n dots,\n step,\n included,\n disabled,\n vertical,\n reverse,\n min,\n max,\n maximumTrackStyle,\n railStyle,\n dotStyle,\n activeDotStyle,\n id\n } = this;\n const {\n class: className,\n style\n } = this.$attrs;\n const {\n tracks,\n handles\n } = this.renderSlider();\n const sliderClassName = classNames(prefixCls, className, {\n [`${prefixCls}-with-marks`]: Object.keys(marks).length,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-vertical`]: vertical,\n [`${prefixCls}-horizontal`]: !vertical\n });\n const markProps = {\n vertical,\n marks,\n included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max,\n min,\n reverse,\n class: `${prefixCls}-mark`,\n onClickLabel: disabled ? noop : this.onClickMarkLabel\n };\n const touchEvents = {\n [supportsPassive ? 'onTouchstartPassive' : 'onTouchstart']: disabled ? noop : this.onTouchStart\n };\n return _createVNode(\"div\", _objectSpread(_objectSpread({\n \"id\": id,\n \"ref\": this.saveSlider,\n \"tabindex\": \"-1\",\n \"class\": sliderClassName\n }, touchEvents), {}, {\n \"onMousedown\": disabled ? noop : this.onMouseDown,\n \"onMouseup\": disabled ? noop : this.onMouseUp,\n \"onKeydown\": disabled ? noop : this.onKeyDown,\n \"onFocus\": disabled ? noop : this.onFocus,\n \"onBlur\": disabled ? noop : this.onBlur,\n \"style\": style\n }), [_createVNode(\"div\", {\n \"class\": `${prefixCls}-rail`,\n \"style\": _extends(_extends({}, maximumTrackStyle), railStyle)\n }, null), tracks, _createVNode(Steps, {\n \"prefixCls\": prefixCls,\n \"vertical\": vertical,\n \"reverse\": reverse,\n \"marks\": marks,\n \"dots\": dots,\n \"step\": step,\n \"included\": included,\n \"lowerBound\": this.getLowerBound(),\n \"upperBound\": this.getUpperBound(),\n \"max\": max,\n \"min\": min,\n \"dotStyle\": dotStyle,\n \"activeDotStyle\": activeDotStyle\n }, null), handles, _createVNode(Marks, markProps, {\n mark: this.$slots.mark\n }), getSlot(this)]);\n }\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\nimport { defineComponent } from 'vue';\nconst Slider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'Slider',\n mixins: [BaseMixin],\n inheritAttrs: false,\n props: {\n defaultValue: Number,\n value: Number,\n disabled: {\n type: Boolean,\n default: undefined\n },\n autofocus: {\n type: Boolean,\n default: undefined\n },\n tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n reverse: {\n type: Boolean,\n default: undefined\n },\n min: Number,\n max: Number,\n ariaLabelForHandle: String,\n ariaLabelledByForHandle: String,\n ariaValueTextFormatterForHandle: String,\n startPoint: Number\n },\n emits: ['beforeChange', 'afterChange', 'change'],\n data() {\n const defaultValue = this.defaultValue !== undefined ? this.defaultValue : this.min;\n const value = this.value !== undefined ? this.value : defaultValue;\n return {\n sValue: this.trimAlignValue(value),\n dragging: false\n };\n },\n watch: {\n value: {\n handler(val) {\n this.setChangeValue(val);\n },\n deep: true\n },\n min() {\n const {\n sValue\n } = this;\n this.setChangeValue(sValue);\n },\n max() {\n const {\n sValue\n } = this;\n this.setChangeValue(sValue);\n }\n },\n methods: {\n setChangeValue(value) {\n const newValue = value !== undefined ? value : this.sValue;\n const nextValue = this.trimAlignValue(newValue, this.$props);\n if (nextValue === this.sValue) return;\n this.setState({\n sValue: nextValue\n });\n if (utils.isValueOutOfRange(newValue, this.$props)) {\n this.$emit('change', nextValue);\n }\n },\n onChange(state) {\n const isNotControlled = !hasProp(this, 'value');\n const nextState = state.sValue > this.max ? _extends(_extends({}, state), {\n sValue: this.max\n }) : state;\n if (isNotControlled) {\n this.setState(nextState);\n }\n const changedValue = nextState.sValue;\n this.$emit('change', changedValue);\n },\n onStart(position) {\n this.setState({\n dragging: true\n });\n const {\n sValue\n } = this;\n this.$emit('beforeChange', sValue);\n const value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === sValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n sValue: value\n });\n },\n onEnd(force) {\n const {\n dragging\n } = this;\n this.removeDocumentEvents();\n if (dragging || force) {\n this.$emit('afterChange', this.sValue);\n }\n this.setState({\n dragging: false\n });\n },\n onMove(e, position) {\n utils.pauseEvent(e);\n const {\n sValue\n } = this;\n const value = this.calcValueByPos(position);\n if (value === sValue) return;\n this.onChange({\n sValue: value\n });\n },\n onKeyboard(e) {\n const {\n reverse,\n vertical\n } = this.$props;\n const valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n if (valueMutator) {\n utils.pauseEvent(e);\n const {\n sValue\n } = this;\n const mutatedValue = valueMutator(sValue, this.$props);\n const value = this.trimAlignValue(mutatedValue);\n if (value === sValue) return;\n this.onChange({\n sValue: value\n });\n this.$emit('afterChange', value);\n this.onEnd();\n }\n },\n getLowerBound() {\n const minPoint = this.$props.startPoint || this.$props.min;\n return this.$data.sValue > minPoint ? minPoint : this.$data.sValue;\n },\n getUpperBound() {\n if (this.$data.sValue < this.$props.startPoint) {\n return this.$props.startPoint;\n }\n return this.$data.sValue;\n },\n trimAlignValue(v) {\n let nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (v === null) {\n return null;\n }\n const mergedProps = _extends(_extends({}, this.$props), nextProps);\n const val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n },\n getTrack(_ref) {\n let {\n prefixCls,\n reverse,\n vertical,\n included,\n minimumTrackStyle,\n mergedTrackStyle,\n length,\n offset\n } = _ref;\n return _createVNode(Track, {\n \"class\": `${prefixCls}-track`,\n \"vertical\": vertical,\n \"included\": included,\n \"offset\": offset,\n \"reverse\": reverse,\n \"length\": length,\n \"style\": _extends(_extends({}, minimumTrackStyle), mergedTrackStyle)\n }, null);\n },\n renderSlider() {\n const {\n prefixCls,\n vertical,\n included,\n disabled,\n minimumTrackStyle,\n trackStyle,\n handleStyle,\n tabindex,\n ariaLabelForHandle,\n ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle,\n min,\n max,\n startPoint,\n reverse,\n handle,\n defaultHandle\n } = this;\n const handleGenerator = handle || defaultHandle;\n const {\n sValue,\n dragging\n } = this;\n const offset = this.calcOffset(sValue);\n const handles = handleGenerator({\n class: `${prefixCls}-handle`,\n prefixCls,\n vertical,\n offset,\n value: sValue,\n dragging,\n disabled,\n min,\n max,\n reverse,\n index: 0,\n tabindex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: h => this.saveHandle(0, h),\n onFocus: this.onFocus,\n onBlur: this.onBlur\n });\n const trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n const mergedTrackStyle = trackStyle[0] || trackStyle;\n return {\n tracks: this.getTrack({\n prefixCls,\n reverse,\n vertical,\n included,\n offset: trackOffset,\n minimumTrackStyle,\n mergedTrackStyle,\n length: offset - trackOffset\n }),\n handles\n };\n }\n }\n});\nexport default createSlider(Slider);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport classNames from '../../_util/classNames';\nimport PropTypes, { withUndefined } from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\nimport initDefaultProps from '../../_util/props-util/initDefaultProps';\nimport { defineComponent } from 'vue';\nconst trimAlignValue = _ref => {\n let {\n value,\n handle,\n bounds,\n props\n } = _ref;\n const {\n allowCross,\n pushable\n } = props;\n const thershold = Number(pushable);\n const valInRange = utils.ensureValueInRange(value, props);\n let valNotConflict = valInRange;\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n return utils.ensureValuePrecision(valNotConflict, props);\n};\nconst rangeProps = {\n defaultValue: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.arrayOf(PropTypes.number),\n count: Number,\n pushable: withUndefined(PropTypes.oneOfType([PropTypes.looseBool, PropTypes.number])),\n allowCross: {\n type: Boolean,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n reverse: {\n type: Boolean,\n default: undefined\n },\n tabindex: PropTypes.arrayOf(PropTypes.number),\n prefixCls: String,\n min: Number,\n max: Number,\n autofocus: {\n type: Boolean,\n default: undefined\n },\n ariaLabelGroupForHandles: Array,\n ariaLabelledByGroupForHandles: Array,\n ariaValueTextFormatterGroupForHandles: Array,\n draggableTrack: {\n type: Boolean,\n default: undefined\n }\n};\nconst Range = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'Range',\n mixins: [BaseMixin],\n inheritAttrs: false,\n props: initDefaultProps(rangeProps, {\n count: 1,\n allowCross: true,\n pushable: false,\n tabindex: [],\n draggableTrack: false,\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n }),\n emits: ['beforeChange', 'afterChange', 'change'],\n displayName: 'Range',\n data() {\n const {\n count,\n min,\n max\n } = this;\n const initialValue = Array(...Array(count + 1)).map(() => min);\n const defaultValue = hasProp(this, 'defaultValue') ? this.defaultValue : initialValue;\n let {\n value\n } = this;\n if (value === undefined) {\n value = defaultValue;\n }\n const bounds = value.map((v, i) => trimAlignValue({\n value: v,\n handle: i,\n props: this.$props\n }));\n const recent = bounds[0] === max ? 0 : bounds.length - 1;\n return {\n sHandle: null,\n recent,\n bounds\n };\n },\n watch: {\n value: {\n handler(val) {\n const {\n bounds\n } = this;\n this.setChangeValue(val || bounds);\n },\n deep: true\n },\n min() {\n const {\n value\n } = this;\n this.setChangeValue(value || this.bounds);\n },\n max() {\n const {\n value\n } = this;\n this.setChangeValue(value || this.bounds);\n }\n },\n methods: {\n setChangeValue(value) {\n const {\n bounds\n } = this;\n let nextBounds = value.map((v, i) => trimAlignValue({\n value: v,\n handle: i,\n bounds,\n props: this.$props\n }));\n if (bounds.length === nextBounds.length) {\n if (nextBounds.every((v, i) => v === bounds[i])) {\n return null;\n }\n } else {\n nextBounds = value.map((v, i) => trimAlignValue({\n value: v,\n handle: i,\n props: this.$props\n }));\n }\n this.setState({\n bounds: nextBounds\n });\n if (value.some(v => utils.isValueOutOfRange(v, this.$props))) {\n const newValues = value.map(v => {\n return utils.ensureValueInRange(v, this.$props);\n });\n this.$emit('change', newValues);\n }\n },\n onChange(state) {\n const isNotControlled = !hasProp(this, 'value');\n if (isNotControlled) {\n this.setState(state);\n } else {\n const controlledState = {};\n ['sHandle', 'recent'].forEach(item => {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n const data = _extends(_extends({}, this.$data), state);\n const changedValue = data.bounds;\n this.$emit('change', changedValue);\n },\n positionGetValue(position) {\n const bounds = this.getValue();\n const value = this.calcValueByPos(position);\n const closestBound = this.getClosestBound(value);\n const index = this.getBoundNeedMoving(value, closestBound);\n const prevValue = bounds[index];\n if (value === prevValue) return null;\n const nextBounds = [...bounds];\n nextBounds[index] = value;\n return nextBounds;\n },\n onStart(position) {\n const {\n bounds\n } = this;\n this.$emit('beforeChange', bounds);\n const value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n const closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n sHandle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n const prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n const nextBounds = [...bounds];\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n },\n onEnd(force) {\n const {\n sHandle\n } = this;\n this.removeDocumentEvents();\n if (!sHandle) {\n this.dragTrack = false;\n }\n if (sHandle !== null || force) {\n this.$emit('afterChange', this.bounds);\n }\n this.setState({\n sHandle: null\n });\n },\n onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n const {\n $data: state,\n $props: props\n } = this;\n const maxValue = props.max || 100;\n const minValue = props.min || 0;\n if (dragTrack) {\n let pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n const max = maxValue - Math.max(...startBounds);\n const min = minValue - Math.min(...startBounds);\n const ratio = Math.min(Math.max(pos / (this.getSliderLength() / 100), min), max);\n const nextBounds = startBounds.map(v => Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue)));\n if (state.bounds.map((c, i) => c === nextBounds[i]).some(c => !c)) {\n this.onChange({\n bounds: nextBounds\n });\n }\n return;\n }\n const {\n bounds,\n sHandle\n } = this;\n const value = this.calcValueByPos(position);\n const oldValue = bounds[sHandle];\n if (value === oldValue) return;\n this.moveTo(value);\n },\n onKeyboard(e) {\n const {\n reverse,\n vertical\n } = this.$props;\n const valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n if (valueMutator) {\n utils.pauseEvent(e);\n const {\n bounds,\n sHandle\n } = this;\n const oldValue = bounds[sHandle === null ? this.recent : sHandle];\n const mutatedValue = valueMutator(oldValue, this.$props);\n const value = trimAlignValue({\n value: mutatedValue,\n handle: sHandle,\n bounds,\n props: this.$props\n });\n if (value === oldValue) return;\n const isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n },\n getClosestBound(value) {\n const {\n bounds\n } = this;\n let closestBound = 0;\n for (let i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n return closestBound;\n },\n getBoundNeedMoving(value, closestBound) {\n const {\n bounds,\n recent\n } = this;\n let boundNeedMoving = closestBound;\n const isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n return boundNeedMoving;\n },\n getLowerBound() {\n return this.bounds[0];\n },\n getUpperBound() {\n const {\n bounds\n } = this;\n return bounds[bounds.length - 1];\n },\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n getPoints() {\n const {\n marks,\n step,\n min,\n max\n } = this;\n const cache = this.internalPointsCache;\n if (!cache || cache.marks !== marks || cache.step !== step) {\n const pointsObject = _extends({}, marks);\n if (step !== null) {\n for (let point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n const points = Object.keys(pointsObject).map(parseFloat);\n points.sort((a, b) => a - b);\n this.internalPointsCache = {\n marks,\n step,\n points\n };\n }\n return this.internalPointsCache.points;\n },\n moveTo(value, isFromKeyboardEvent) {\n const nextBounds = [...this.bounds];\n const {\n sHandle,\n recent\n } = this;\n const handle = sHandle === null ? recent : sHandle;\n nextBounds[handle] = value;\n let nextHandle = handle;\n if (this.$props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (this.$props.allowCross) {\n nextBounds.sort((a, b) => a - b);\n nextHandle = nextBounds.indexOf(value);\n }\n this.onChange({\n recent: nextHandle,\n sHandle: nextHandle,\n bounds: nextBounds\n });\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.$emit('afterChange', nextBounds);\n this.setState({}, () => {\n this.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n },\n pushSurroundingHandles(bounds, handle) {\n const value = bounds[handle];\n const {\n pushable\n } = this;\n const threshold = Number(pushable);\n let direction = 0;\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n if (direction === 0) {\n return;\n }\n const nextHandle = handle + direction;\n const diffToNext = direction * (bounds[nextHandle] - value);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n },\n pushHandle(bounds, handle, direction, amount) {\n const originalValue = bounds[handle];\n let currentValue = bounds[handle];\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n bounds[handle] = originalValue;\n return false;\n }\n currentValue = bounds[handle];\n }\n // the handle was pushed enough to create the needed `amount` gap\n return true;\n },\n pushHandleOnePoint(bounds, handle, direction) {\n const points = this.getPoints();\n const pointIndex = points.indexOf(bounds[handle]);\n const nextPointIndex = pointIndex + direction;\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n const nextHandle = handle + direction;\n const nextValue = points[nextPointIndex];\n const {\n pushable\n } = this;\n const threshold = Number(pushable);\n const diffToNext = direction * (bounds[nextHandle] - nextValue);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n }\n // push the handle\n bounds[handle] = nextValue;\n return true;\n },\n trimAlignValue(value) {\n const {\n sHandle,\n bounds\n } = this;\n return trimAlignValue({\n value,\n handle: sHandle,\n bounds,\n props: this.$props\n });\n },\n ensureValueNotConflict(handle, val, _ref2) {\n let {\n allowCross,\n pushable: thershold\n } = _ref2;\n const state = this.$data || {};\n const {\n bounds\n } = state;\n handle = handle === undefined ? state.sHandle : handle;\n thershold = Number(thershold);\n /* eslint-disable eqeqeq */\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && val <= bounds[handle - 1] + thershold) {\n return bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && val >= bounds[handle + 1] - thershold) {\n return bounds[handle + 1] - thershold;\n }\n }\n /* eslint-enable eqeqeq */\n return val;\n },\n getTrack(_ref3) {\n let {\n bounds,\n prefixCls,\n reverse,\n vertical,\n included,\n offsets,\n trackStyle\n } = _ref3;\n return bounds.slice(0, -1).map((_, index) => {\n const i = index + 1;\n const trackClassName = classNames({\n [`${prefixCls}-track`]: true,\n [`${prefixCls}-track-${i}`]: true\n });\n return _createVNode(Track, {\n \"class\": trackClassName,\n \"vertical\": vertical,\n \"reverse\": reverse,\n \"included\": included,\n \"offset\": offsets[i - 1],\n \"length\": offsets[i] - offsets[i - 1],\n \"style\": trackStyle[index],\n \"key\": i\n }, null);\n });\n },\n renderSlider() {\n const {\n sHandle,\n bounds,\n prefixCls,\n vertical,\n included,\n disabled,\n min,\n max,\n reverse,\n handle,\n defaultHandle,\n trackStyle,\n handleStyle,\n tabindex,\n ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles\n } = this;\n const handleGenerator = handle || defaultHandle;\n const offsets = bounds.map(v => this.calcOffset(v));\n const handleClassName = `${prefixCls}-handle`;\n const handles = bounds.map((v, i) => {\n let mergedTabIndex = tabindex[i] || 0;\n if (disabled || tabindex[i] === null) {\n mergedTabIndex = null;\n }\n const dragging = sHandle === i;\n return handleGenerator({\n class: classNames({\n [handleClassName]: true,\n [`${handleClassName}-${i + 1}`]: true,\n [`${handleClassName}-dragging`]: dragging\n }),\n prefixCls,\n vertical,\n dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabindex: mergedTabIndex,\n min,\n max,\n reverse,\n disabled,\n style: handleStyle[i],\n ref: h => this.saveHandle(i, h),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n return {\n tracks: this.getTrack({\n bounds,\n prefixCls,\n reverse,\n vertical,\n included,\n offsets,\n trackStyle\n }),\n handles\n };\n }\n }\n});\nexport default createSlider(Range);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nimport { onBeforeUnmount, watch, onActivated, defineComponent, ref } from 'vue';\nimport Tooltip, { tooltipProps } from '../tooltip';\nimport raf from '../_util/raf';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'SliderTooltip',\n inheritAttrs: false,\n props: tooltipProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const innerRef = ref(null);\n const rafRef = ref(null);\n function cancelKeepAlign() {\n raf.cancel(rafRef.value);\n rafRef.value = null;\n }\n function keepAlign() {\n rafRef.value = raf(() => {\n var _a;\n (_a = innerRef.value) === null || _a === void 0 ? void 0 : _a.forcePopupAlign();\n rafRef.value = null;\n });\n }\n const align = () => {\n cancelKeepAlign();\n if (props.open) {\n keepAlign();\n }\n };\n watch([() => props.open, () => props.title], () => {\n align();\n }, {\n flush: 'post',\n immediate: true\n });\n onActivated(() => {\n align();\n });\n onBeforeUnmount(() => {\n cancelKeepAlign();\n });\n return () => {\n return _createVNode(Tooltip, _objectSpread(_objectSpread({\n \"ref\": innerRef\n }, props), attrs), slots);\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n controlSize,\n dotSize,\n marginFull,\n marginPart,\n colorFillContentHover\n } = token;\n return {\n [componentCls]: _extends(_extends({}, resetComponent(token)), {\n position: 'relative',\n height: controlSize,\n margin: `${marginPart}px ${marginFull}px`,\n padding: 0,\n cursor: 'pointer',\n touchAction: 'none',\n [`&-vertical`]: {\n margin: `${marginFull}px ${marginPart}px`\n },\n [`${componentCls}-rail`]: {\n position: 'absolute',\n backgroundColor: token.colorFillTertiary,\n borderRadius: token.borderRadiusXS,\n transition: `background-color ${token.motionDurationMid}`\n },\n [`${componentCls}-track`]: {\n position: 'absolute',\n backgroundColor: token.colorPrimaryBorder,\n borderRadius: token.borderRadiusXS,\n transition: `background-color ${token.motionDurationMid}`\n },\n '&:hover': {\n [`${componentCls}-rail`]: {\n backgroundColor: token.colorFillSecondary\n },\n [`${componentCls}-track`]: {\n backgroundColor: token.colorPrimaryBorderHover\n },\n [`${componentCls}-dot`]: {\n borderColor: colorFillContentHover\n },\n [`${componentCls}-handle::after`]: {\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${token.colorPrimaryBorderHover}`\n },\n [`${componentCls}-dot-active`]: {\n borderColor: token.colorPrimary\n }\n },\n [`${componentCls}-handle`]: {\n position: 'absolute',\n width: token.handleSize,\n height: token.handleSize,\n outline: 'none',\n [`${componentCls}-dragging`]: {\n zIndex: 1\n },\n // 扩大选区\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n insetInlineStart: -token.handleLineWidth,\n insetBlockStart: -token.handleLineWidth,\n width: token.handleSize + token.handleLineWidth * 2,\n height: token.handleSize + token.handleLineWidth * 2,\n backgroundColor: 'transparent'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: token.handleSize,\n height: token.handleSize,\n backgroundColor: token.colorBgElevated,\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${token.colorPrimaryBorder}`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `\n inset-inline-start ${token.motionDurationMid},\n inset-block-start ${token.motionDurationMid},\n width ${token.motionDurationMid},\n height ${token.motionDurationMid},\n box-shadow ${token.motionDurationMid}\n `\n },\n '&:hover, &:active, &:focus': {\n '&::before': {\n insetInlineStart: -((token.handleSizeHover - token.handleSize) / 2 + token.handleLineWidthHover),\n insetBlockStart: -((token.handleSizeHover - token.handleSize) / 2 + token.handleLineWidthHover),\n width: token.handleSizeHover + token.handleLineWidthHover * 2,\n height: token.handleSizeHover + token.handleLineWidthHover * 2\n },\n '&::after': {\n boxShadow: `0 0 0 ${token.handleLineWidthHover}px ${token.colorPrimary}`,\n width: token.handleSizeHover,\n height: token.handleSizeHover,\n insetInlineStart: (token.handleSize - token.handleSizeHover) / 2,\n insetBlockStart: (token.handleSize - token.handleSizeHover) / 2\n }\n }\n },\n [`${componentCls}-mark`]: {\n position: 'absolute',\n fontSize: token.fontSize\n },\n [`${componentCls}-mark-text`]: {\n position: 'absolute',\n display: 'inline-block',\n color: token.colorTextDescription,\n textAlign: 'center',\n wordBreak: 'keep-all',\n cursor: 'pointer',\n userSelect: 'none',\n '&-active': {\n color: token.colorText\n }\n },\n [`${componentCls}-step`]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none'\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n width: dotSize,\n height: dotSize,\n backgroundColor: token.colorBgElevated,\n border: `${token.handleLineWidth}px solid ${token.colorBorderSecondary}`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n '&-active': {\n borderColor: token.colorPrimaryBorder\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-rail`]: {\n backgroundColor: `${token.colorFillSecondary} !important`\n },\n [`${componentCls}-track`]: {\n backgroundColor: `${token.colorTextDisabled} !important`\n },\n [`\n ${componentCls}-dot\n `]: {\n backgroundColor: token.colorBgElevated,\n borderColor: token.colorTextDisabled,\n boxShadow: 'none',\n cursor: 'not-allowed'\n },\n [`${componentCls}-handle::after`]: {\n backgroundColor: token.colorBgElevated,\n cursor: 'not-allowed',\n width: token.handleSize,\n height: token.handleSize,\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${new TinyColor(token.colorTextDisabled).onBackground(token.colorBgContainer).toHexString()}`,\n insetInlineStart: 0,\n insetBlockStart: 0\n },\n [`\n ${componentCls}-mark-text,\n ${componentCls}-dot\n `]: {\n cursor: `not-allowed !important`\n }\n }\n })\n };\n};\n// ============================ Horizontal ============================\nconst genDirectionStyle = (token, horizontal) => {\n const {\n componentCls,\n railSize,\n handleSize,\n dotSize\n } = token;\n const railPadding = horizontal ? 'paddingBlock' : 'paddingInline';\n const full = horizontal ? 'width' : 'height';\n const part = horizontal ? 'height' : 'width';\n const handlePos = horizontal ? 'insetBlockStart' : 'insetInlineStart';\n const markInset = horizontal ? 'top' : 'insetInlineStart';\n return {\n [railPadding]: railSize,\n [part]: railSize * 3,\n [`${componentCls}-rail`]: {\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-track`]: {\n [part]: railSize\n },\n [`${componentCls}-handle`]: {\n [handlePos]: (railSize * 3 - handleSize) / 2\n },\n [`${componentCls}-mark`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n [markInset]: handleSize,\n [full]: '100%'\n },\n [`${componentCls}-step`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n [markInset]: railSize,\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n [handlePos]: (railSize - dotSize) / 2\n }\n };\n};\n// ============================ Horizontal ============================\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n marginPartWithMark\n } = token;\n return {\n [`${componentCls}-horizontal`]: _extends(_extends({}, genDirectionStyle(token, true)), {\n [`&${componentCls}-with-marks`]: {\n marginBottom: marginPartWithMark\n }\n })\n };\n};\n// ============================= Vertical =============================\nconst genVerticalStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-vertical`]: _extends(_extends({}, genDirectionStyle(token, false)), {\n height: '100%'\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Slider', token => {\n const sliderToken = mergeToken(token, {\n marginPart: (token.controlHeight - token.controlSize) / 2,\n marginFull: token.controlSize / 2,\n marginPartWithMark: token.controlHeightLG - token.controlSize\n });\n return [genBaseStyle(sliderToken), genHorizontalStyle(sliderToken), genVerticalStyle(sliderToken)];\n}, token => {\n // Handle line width is always width-er 1px\n const increaseHandleWidth = 1;\n const controlSize = token.controlHeightLG / 4;\n const controlSizeHover = token.controlHeightSM / 2;\n const handleLineWidth = token.lineWidth + increaseHandleWidth;\n const handleLineWidthHover = token.lineWidth + increaseHandleWidth * 3;\n return {\n controlSize,\n railSize: 4,\n handleSize: controlSize,\n handleSizeHover: controlSizeHover,\n dotSize: 8,\n handleLineWidth,\n handleLineWidthHover\n };\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { computed, ref, defineComponent } from 'vue';\nimport VcSlider from '../vc-slider/src/Slider';\nimport VcRange from '../vc-slider/src/Range';\nimport VcHandle from '../vc-slider/src/Handle';\nimport { stringType, booleanType, someType, objectType, withInstall, functionType } from '../_util/type';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport SliderTooltip from './SliderTooltip';\nimport classNames from '../_util/classNames';\nimport { useInjectFormItemContext } from '../form/FormItemContext';\n// CSSINJS\nimport useStyle from './style';\nimport devWarning from '../vc-util/devWarning';\nconst defaultTipFormatter = value => typeof value === 'number' ? value.toString() : '';\nexport const sliderProps = () => ({\n id: String,\n prefixCls: String,\n tooltipPrefixCls: String,\n range: someType([Boolean, Object]),\n reverse: booleanType(),\n min: Number,\n max: Number,\n step: someType([Object, Number]),\n marks: objectType(),\n dots: booleanType(),\n value: someType([Array, Number]),\n defaultValue: someType([Array, Number]),\n included: booleanType(),\n disabled: booleanType(),\n vertical: booleanType(),\n tipFormatter: someType([Function, Object], () => defaultTipFormatter),\n tooltipOpen: booleanType(),\n /** @deprecated `tooltipVisible` is deprecated. Please use `tooltipOpen` instead. */\n tooltipVisible: booleanType(),\n tooltipPlacement: stringType(),\n getTooltipPopupContainer: functionType(),\n autofocus: booleanType(),\n handleStyle: someType([Array, Object]),\n trackStyle: someType([Array, Object]),\n onChange: functionType(),\n onAfterChange: functionType(),\n onFocus: functionType(),\n onBlur: functionType(),\n 'onUpdate:value': functionType()\n});\nconst Slider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ASlider',\n inheritAttrs: false,\n props: sliderProps(),\n // emits: ['update:value', 'change', 'afterChange', 'blur'],\n slots: Object,\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit,\n expose\n } = _ref;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['tooltipVisible', 'tooltipOpen']].forEach(_ref2 => {\n let [deprecatedName, newName] = _ref2;\n devWarning(props.tooltipVisible === undefined, 'Slider', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`);\n });\n }\n const {\n prefixCls,\n rootPrefixCls,\n direction,\n getPopupContainer,\n configProvider\n } = useConfigInject('slider', props);\n // style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const formItemContext = useInjectFormItemContext();\n const sliderRef = ref();\n const visibles = ref({});\n const toggleTooltipOpen = (index, visible) => {\n visibles.value[index] = visible;\n };\n const tooltipPlacement = computed(() => {\n if (props.tooltipPlacement) {\n return props.tooltipPlacement;\n }\n if (!props.vertical) {\n return 'top';\n }\n return direction.value === 'rtl' ? 'left' : 'right';\n });\n const focus = () => {\n var _a;\n (_a = sliderRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n };\n const blur = () => {\n var _a;\n (_a = sliderRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n };\n const handleChange = val => {\n emit('update:value', val);\n emit('change', val);\n formItemContext.onFieldChange();\n };\n const handleBlur = e => {\n emit('blur', e);\n };\n expose({\n focus,\n blur\n });\n const handleWithTooltip = _a => {\n var {\n tooltipPrefixCls\n } = _a,\n _b = _a.info,\n {\n value,\n dragging,\n index\n } = _b,\n restProps = __rest(_b, [\"value\", \"dragging\", \"index\"]);\n const {\n tipFormatter,\n tooltipOpen = props.tooltipVisible,\n getTooltipPopupContainer\n } = props;\n const isTipFormatter = tipFormatter ? visibles.value[index] || dragging : false;\n const open = tooltipOpen || tooltipOpen === undefined && isTipFormatter;\n return _createVNode(SliderTooltip, {\n \"prefixCls\": tooltipPrefixCls,\n \"title\": tipFormatter ? tipFormatter(value) : '',\n \"open\": open,\n \"placement\": tooltipPlacement.value,\n \"transitionName\": `${rootPrefixCls.value}-zoom-down`,\n \"key\": index,\n \"overlayClassName\": `${prefixCls.value}-tooltip`,\n \"getPopupContainer\": getTooltipPopupContainer || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.value)\n }, {\n default: () => [_createVNode(VcHandle, _objectSpread(_objectSpread({}, restProps), {}, {\n \"value\": value,\n \"onMouseenter\": () => toggleTooltipOpen(index, true),\n \"onMouseleave\": () => toggleTooltipOpen(index, false)\n }), null)]\n });\n };\n return () => {\n const {\n tooltipPrefixCls: customizeTooltipPrefixCls,\n range,\n id = formItemContext.id.value\n } = props,\n restProps = __rest(props, [\"tooltipPrefixCls\", \"range\", \"id\"]);\n const tooltipPrefixCls = configProvider.getPrefixCls('tooltip', customizeTooltipPrefixCls);\n const cls = classNames(attrs.class, {\n [`${prefixCls.value}-rtl`]: direction.value === 'rtl'\n }, hashId.value);\n // make reverse default on rtl direction\n if (direction.value === 'rtl' && !restProps.vertical) {\n restProps.reverse = !restProps.reverse;\n }\n // extrack draggableTrack from range={{ ... }}\n let draggableTrack;\n if (typeof range === 'object') {\n draggableTrack = range.draggableTrack;\n }\n if (range) {\n return wrapSSR(_createVNode(VcRange, _objectSpread(_objectSpread(_objectSpread({}, attrs), restProps), {}, {\n \"step\": restProps.step,\n \"draggableTrack\": draggableTrack,\n \"class\": cls,\n \"ref\": sliderRef,\n \"handle\": info => handleWithTooltip({\n tooltipPrefixCls,\n prefixCls: prefixCls.value,\n info\n }),\n \"prefixCls\": prefixCls.value,\n \"onChange\": handleChange,\n \"onBlur\": handleBlur\n }), {\n mark: slots.mark\n }));\n }\n return wrapSSR(_createVNode(VcSlider, _objectSpread(_objectSpread(_objectSpread({}, attrs), restProps), {}, {\n \"id\": id,\n \"step\": restProps.step,\n \"class\": cls,\n \"ref\": sliderRef,\n \"handle\": info => handleWithTooltip({\n tooltipPrefixCls,\n prefixCls: prefixCls.value,\n info\n }),\n \"prefixCls\": prefixCls.value,\n \"onChange\": handleChange,\n \"onBlur\": handleBlur\n }), {\n mark: slots.mark\n }));\n };\n }\n});\nexport default withInstall(Slider);","function getError(option, xhr) {\n const msg = `cannot ${option.method} ${option.action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n const xhr = new XMLHttpRequest();\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n // eslint-disable-next-line no-undef\n const formData = new FormData();\n if (option.data) {\n Object.keys(option.data).forEach(key => {\n const value = option.data[key];\n // support key-value array data\n if (Array.isArray(value)) {\n value.forEach(item => {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(`${key}[]`, item);\n });\n return;\n }\n formData.append(key, value);\n });\n }\n // eslint-disable-next-line no-undef\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n return option.onSuccess(getBody(xhr), xhr);\n };\n xhr.open(option.method, option.action, true);\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n const headers = option.headers || {};\n // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n Object.keys(headers).forEach(h => {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort() {\n xhr.abort();\n }\n };\n}","const now = +new Date();\nlet index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return `vc-upload-${now}-${++index}`;\n}","import { warning } from '../vc-util/warning';\nexport default ((file, acceptedFiles) => {\n if (file && acceptedFiles) {\n const acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n const fileName = file.name || '';\n const mimeType = file.type || '';\n const baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(type => {\n const validType = type.trim();\n // This is something like */*,* allow all files\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n }\n // like .jpg, .png\n if (validType.charAt(0) === '.') {\n const lowerFileName = fileName.toLowerCase();\n const lowerType = validType.toLowerCase();\n let affixList = [lowerType];\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n return affixList.some(affix => lowerFileName.endsWith(affix));\n }\n // This is something like a image/* mime type\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n // Full match\n if (mimeType === validType) {\n return true;\n }\n // Invalidate type should skip\n if (/^\\w+$/.test(validType)) {\n warning(false, `Upload takes an invalidate 'accept' type '${validType}'.Skip for check.`);\n return true;\n }\n return false;\n });\n }\n return true;\n});","function loopFiles(item, callback) {\n const dirReader = item.createReader();\n let fileList = [];\n function sequence() {\n dirReader.readEntries(entries => {\n const entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList);\n // Check if all the file has been viewed\n const isFinished = !entryList.length;\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n sequence();\n}\nconst traverseFileTree = (files, callback, isAccepted) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const _traverseFileTree = (item, path) => {\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n if (item.isFile) {\n item.file(file => {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n });\n // eslint-disable-next-line no-param-reassign\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, entries => {\n entries.forEach(entryItem => {\n _traverseFileTree(entryItem, `${path}${item.name}/`);\n });\n });\n }\n };\n files.forEach(file => {\n _traverseFileTree(file.webkitGetAsEntry());\n });\n};\nexport default traverseFileTree;","export const uploadProps = () => {\n return {\n capture: [Boolean, String],\n multipart: {\n type: Boolean,\n default: undefined\n },\n name: String,\n disabled: {\n type: Boolean,\n default: undefined\n },\n componentTag: String,\n action: [String, Function],\n method: String,\n directory: {\n type: Boolean,\n default: undefined\n },\n data: [Object, Function],\n headers: Object,\n accept: String,\n multiple: {\n type: Boolean,\n default: undefined\n },\n onBatchStart: Function,\n onReject: Function,\n onStart: Function,\n onError: Function,\n onSuccess: Function,\n onProgress: Function,\n beforeUpload: Function,\n customRequest: Function,\n withCredentials: {\n type: Boolean,\n default: undefined\n },\n openFileDialogOnClick: {\n type: Boolean,\n default: undefined\n },\n prefixCls: String,\n id: String,\n onMouseenter: Function,\n onMouseleave: Function,\n onClick: Function\n };\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\nimport { uploadProps } from './interface';\nimport { defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport pickAttrs from '../_util/pickAttrs';\nimport partition from 'lodash-es/partition';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AjaxUploader',\n inheritAttrs: false,\n props: uploadProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs,\n expose\n } = _ref;\n const uid = ref(getUid());\n const reqs = {};\n const fileInput = ref();\n let isMounted = false;\n /**\n * Process file before upload. When all the file is ready, we start upload.\n */\n const processFile = (file, fileList) => __awaiter(this, void 0, void 0, function* () {\n const {\n beforeUpload\n } = props;\n let transformedFile = file;\n if (beforeUpload) {\n try {\n transformedFile = yield beforeUpload(file, fileList);\n } catch (e) {\n // Rejection will also trade as false\n transformedFile = false;\n }\n if (transformedFile === false) {\n return {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n };\n }\n }\n // Get latest action\n const {\n action\n } = props;\n let mergedAction;\n if (typeof action === 'function') {\n mergedAction = yield action(file);\n } else {\n mergedAction = action;\n }\n // Get latest data\n const {\n data\n } = props;\n let mergedData;\n if (typeof data === 'function') {\n mergedData = yield data(file);\n } else {\n mergedData = data;\n }\n const parsedData =\n // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (typeof transformedFile === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n let parsedFile;\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n const mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n };\n });\n const post = _ref2 => {\n let {\n data,\n origin,\n action,\n parsedFile\n } = _ref2;\n if (!isMounted) {\n return;\n }\n const {\n onStart,\n customRequest,\n name,\n headers,\n withCredentials,\n method\n } = props;\n const {\n uid\n } = origin;\n const request = customRequest || defaultRequest;\n const requestOption = {\n action,\n filename: name,\n data,\n file: parsedFile,\n headers,\n withCredentials,\n method: method || 'post',\n onProgress: e => {\n const {\n onProgress\n } = props;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(e, parsedFile);\n },\n onSuccess: (ret, xhr) => {\n const {\n onSuccess\n } = props;\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ret, parsedFile, xhr);\n delete reqs[uid];\n },\n onError: (err, ret) => {\n const {\n onError\n } = props;\n onError === null || onError === void 0 ? void 0 : onError(err, ret, parsedFile);\n delete reqs[uid];\n }\n };\n onStart(origin);\n reqs[uid] = request(requestOption);\n };\n const reset = () => {\n uid.value = getUid();\n };\n const abort = file => {\n if (file) {\n const uid = file.uid ? file.uid : file;\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(uid => {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n });\n }\n };\n onMounted(() => {\n isMounted = true;\n });\n onBeforeUnmount(() => {\n isMounted = false;\n abort();\n });\n const uploadFiles = files => {\n const originFiles = [...files];\n const postFiles = originFiles.map(file => {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return processFile(file, originFiles);\n });\n // Batch upload files\n Promise.all(postFiles).then(fileList => {\n const {\n onBatchStart\n } = props;\n onBatchStart === null || onBatchStart === void 0 ? void 0 : onBatchStart(fileList.map(_ref3 => {\n let {\n origin,\n parsedFile\n } = _ref3;\n return {\n file: origin,\n parsedFile\n };\n }));\n fileList.filter(file => file.parsedFile !== null).forEach(file => {\n post(file);\n });\n });\n };\n const onChange = e => {\n const {\n accept,\n directory\n } = props;\n const {\n files\n } = e.target;\n const acceptedFiles = [...files].filter(file => !directory || attrAccept(file, accept));\n uploadFiles(acceptedFiles);\n reset();\n };\n const onClick = e => {\n const el = fileInput.value;\n if (!el) {\n return;\n }\n const {\n onClick\n } = props;\n // TODO\n // if (children && (children as any).type === 'button') {\n // const parent = el.parentNode as HTMLInputElement;\n // parent.focus();\n // parent.querySelector('button').blur();\n // }\n el.click();\n if (onClick) {\n onClick(e);\n }\n };\n const onKeyDown = e => {\n if (e.key === 'Enter') {\n onClick(e);\n }\n };\n const onFileDrop = e => {\n const {\n multiple\n } = props;\n e.preventDefault();\n if (e.type === 'dragover') {\n return;\n }\n if (props.directory) {\n traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), uploadFiles, _file => attrAccept(_file, props.accept));\n } else {\n const files = partition(Array.prototype.slice.call(e.dataTransfer.files), file => attrAccept(file, props.accept));\n let successFiles = files[0];\n const errorFiles = files[1];\n if (multiple === false) {\n successFiles = successFiles.slice(0, 1);\n }\n uploadFiles(successFiles);\n if (errorFiles.length && props.onReject) props.onReject(errorFiles);\n }\n };\n expose({\n abort\n });\n return () => {\n var _a;\n const {\n componentTag: Tag,\n prefixCls,\n disabled,\n id,\n multiple,\n accept,\n capture,\n directory,\n openFileDialogOnClick,\n onMouseenter,\n onMouseleave\n } = props,\n otherProps = __rest(props, [\"componentTag\", \"prefixCls\", \"disabled\", \"id\", \"multiple\", \"accept\", \"capture\", \"directory\", \"openFileDialogOnClick\", \"onMouseenter\", \"onMouseleave\"]);\n const cls = {\n [prefixCls]: true,\n [`${prefixCls}-disabled`]: disabled,\n [attrs.class]: !!attrs.class\n };\n // because input don't have directory/webkitdirectory type declaration\n const dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n const events = disabled ? {} : {\n onClick: openFileDialogOnClick ? onClick : () => {},\n onKeydown: openFileDialogOnClick ? onKeyDown : () => {},\n onMouseenter,\n onMouseleave,\n onDrop: onFileDrop,\n onDragover: onFileDrop,\n tabindex: '0'\n };\n return _createVNode(Tag, _objectSpread(_objectSpread({}, events), {}, {\n \"class\": cls,\n \"role\": \"button\",\n \"style\": attrs.style\n }), {\n default: () => [_createVNode(\"input\", _objectSpread(_objectSpread(_objectSpread({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n })), {}, {\n \"id\": id,\n \"type\": \"file\",\n \"ref\": fileInput,\n \"onClick\": e => e.stopPropagation(),\n \"onCancel\": e => e.stopPropagation(),\n \"key\": uid.value,\n \"style\": {\n display: 'none'\n },\n \"accept\": accept\n }, dirProps), {}, {\n \"multiple\": multiple,\n \"onChange\": onChange\n }, capture != null ? {\n capture\n } : {}), null), (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]\n });\n };\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nimport { defineComponent, ref } from 'vue';\nimport { initDefaultProps } from '../_util/props-util';\nimport AjaxUpload from './AjaxUploader';\nimport { uploadProps } from './interface';\nfunction empty() {}\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'Upload',\n inheritAttrs: false,\n props: initDefaultProps(uploadProps(), {\n componentTag: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true\n }),\n setup(props, _ref) {\n let {\n slots,\n attrs,\n expose\n } = _ref;\n const uploader = ref();\n const abort = file => {\n var _a;\n (_a = uploader.value) === null || _a === void 0 ? void 0 : _a.abort(file);\n };\n expose({\n abort\n });\n return () => {\n return _createVNode(AjaxUpload, _objectSpread(_objectSpread(_objectSpread({}, props), attrs), {}, {\n \"ref\": uploader\n }), slots);\n };\n }\n});","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PaperClipOutlined = function PaperClipOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PaperClipOutlinedSvg\n }), null);\n};\n\nPaperClipOutlined.displayName = 'PaperClipOutlined';\nPaperClipOutlined.inheritAttrs = false;\nexport default PaperClipOutlined;","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PictureTwoTone = function PictureTwoTone(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PictureTwoToneSvg\n }), null);\n};\n\nPictureTwoTone.displayName = 'PictureTwoTone';\nPictureTwoTone.inheritAttrs = false;\nexport default PictureTwoTone;","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FileTwoTone = function FileTwoTone(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FileTwoToneSvg\n }), null);\n};\n\nFileTwoTone.displayName = 'FileTwoTone';\nFileTwoTone.inheritAttrs = false;\nexport default FileTwoTone;","import { booleanType, stringType, functionType, arrayType, objectType, someType } from '../_util/type';\nfunction uploadProps() {\n return {\n capture: someType([Boolean, String]),\n type: stringType(),\n name: String,\n defaultFileList: arrayType(),\n fileList: arrayType(),\n action: someType([String, Function]),\n directory: booleanType(),\n data: someType([Object, Function]),\n method: stringType(),\n headers: objectType(),\n showUploadList: someType([Boolean, Object]),\n multiple: booleanType(),\n accept: String,\n beforeUpload: functionType(),\n onChange: functionType(),\n 'onUpdate:fileList': functionType(),\n onDrop: functionType(),\n listType: stringType(),\n onPreview: functionType(),\n onDownload: functionType(),\n onReject: functionType(),\n onRemove: functionType(),\n /** @deprecated Please use `onRemove` directly */\n remove: functionType(),\n supportServerRender: booleanType(),\n disabled: booleanType(),\n prefixCls: String,\n customRequest: functionType(),\n withCredentials: booleanType(),\n openFileDialogOnClick: booleanType(),\n locale: objectType(),\n id: String,\n previewFile: functionType(),\n /** @deprecated Please use `beforeUpload` directly */\n transformFile: functionType(),\n iconRender: functionType(),\n isImageUrl: functionType(),\n progress: objectType(),\n itemRender: functionType(),\n /** Config max count of `fileList`. Will replace current one when `maxCount` is 1 */\n maxCount: Number,\n height: someType([Number, String]),\n removeIcon: functionType(),\n downloadIcon: functionType(),\n previewIcon: functionType()\n };\n}\nfunction uploadListProps() {\n return {\n listType: stringType(),\n onPreview: functionType(),\n onDownload: functionType(),\n onRemove: functionType(),\n items: arrayType(),\n progress: objectType(),\n prefixCls: stringType(),\n showRemoveIcon: booleanType(),\n showDownloadIcon: booleanType(),\n showPreviewIcon: booleanType(),\n removeIcon: functionType(),\n downloadIcon: functionType(),\n previewIcon: functionType(),\n locale: objectType(undefined),\n previewFile: functionType(),\n iconRender: functionType(),\n isImageUrl: functionType(),\n appendAction: functionType(),\n appendActionVisible: booleanType(),\n itemRender: functionType()\n };\n}\nexport { uploadProps, uploadListProps };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function file2Obj(file) {\n return _extends(_extends({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n const nextFileList = [...fileList];\n const fileIndex = nextFileList.findIndex(_ref => {\n let {\n uid\n } = _ref;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(item => item[matchKey] === file[matchKey])[0];\n}\nexport function removeFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nconst extname = function () {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const temp = url.split('/');\n const filename = temp[temp.length - 1];\n const filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nconst isImageFileType = type => type.indexOf('image/') === 0;\nexport const isImageUrl = file => {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n const url = file.thumbUrl || file.url || '';\n const extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nconst MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(resolve => {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n const canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = `position: fixed; left: 0; top: 0; width: ${MEASURE_SIZE}px; height: ${MEASURE_SIZE}px; z-index: 9999; display: none;`;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n const {\n width,\n height\n } = img;\n let drawWidth = MEASURE_SIZE;\n let drawHeight = MEASURE_SIZE;\n let offsetX = 0;\n let offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n const dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n if (reader.result) img.src = reader.result;\n });\n reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DownloadOutlined = function DownloadOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": DownloadOutlinedSvg\n }), null);\n};\n\nDownloadOutlined.displayName = 'DownloadOutlined';\nDownloadOutlined.inheritAttrs = false;\nexport default DownloadOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent, onBeforeUnmount, onMounted, shallowRef, watch, Transition } from 'vue';\nimport EyeOutlined from \"@ant-design/icons-vue/es/icons/EyeOutlined\";\nimport DeleteOutlined from \"@ant-design/icons-vue/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons-vue/es/icons/DownloadOutlined\";\nimport Tooltip from '../../tooltip';\nimport Progress from '../../progress';\nimport useConfigInject from '../../config-provider/hooks/useConfigInject';\nimport { getTransitionProps } from '../../_util/transition';\nimport { booleanType, stringType, functionType, arrayType, objectType } from '../../_util/type';\nexport const listItemProps = () => {\n return {\n prefixCls: String,\n locale: objectType(undefined),\n file: objectType(),\n items: arrayType(),\n listType: stringType(),\n isImgUrl: functionType(),\n showRemoveIcon: booleanType(),\n showDownloadIcon: booleanType(),\n showPreviewIcon: booleanType(),\n removeIcon: functionType(),\n downloadIcon: functionType(),\n previewIcon: functionType(),\n iconRender: functionType(),\n actionIconRender: functionType(),\n itemRender: functionType(),\n onPreview: functionType(),\n onClose: functionType(),\n onDownload: functionType(),\n progress: objectType()\n };\n};\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ListItem',\n inheritAttrs: false,\n props: listItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n var _a;\n const showProgress = shallowRef(false);\n const progressRafRef = shallowRef();\n onMounted(() => {\n progressRafRef.value = setTimeout(() => {\n showProgress.value = true;\n }, 300);\n });\n onBeforeUnmount(() => {\n clearTimeout(progressRafRef.value);\n });\n const mergedStatus = shallowRef((_a = props.file) === null || _a === void 0 ? void 0 : _a.status);\n watch(() => {\n var _a;\n return (_a = props.file) === null || _a === void 0 ? void 0 : _a.status;\n }, status => {\n if (status !== 'removed') {\n mergedStatus.value = status;\n }\n });\n const {\n rootPrefixCls\n } = useConfigInject('upload', props);\n const transitionProps = computed(() => getTransitionProps(`${rootPrefixCls.value}-fade`));\n return () => {\n var _a, _b;\n const {\n prefixCls,\n locale,\n listType,\n file,\n items,\n progress: progressProps,\n iconRender = slots.iconRender,\n actionIconRender = slots.actionIconRender,\n itemRender = slots.itemRender,\n isImgUrl,\n showPreviewIcon,\n showRemoveIcon,\n showDownloadIcon,\n previewIcon: customPreviewIcon = slots.previewIcon,\n removeIcon: customRemoveIcon = slots.removeIcon,\n downloadIcon: customDownloadIcon = slots.downloadIcon,\n onPreview,\n onDownload,\n onClose\n } = props;\n const {\n class: className,\n style\n } = attrs;\n // This is used for legacy span make scrollHeight the wrong value.\n // We will force these to be `display: block` with non `picture-card`\n const iconNode = iconRender({\n file\n });\n let icon = _createVNode(\"div\", {\n \"class\": `${prefixCls}-text-icon`\n }, [iconNode]);\n if (listType === 'picture' || listType === 'picture-card') {\n if (mergedStatus.value === 'uploading' || !file.thumbUrl && !file.url) {\n const uploadingClassName = {\n [`${prefixCls}-list-item-thumbnail`]: true,\n [`${prefixCls}-list-item-file`]: mergedStatus.value !== 'uploading'\n };\n icon = _createVNode(\"div\", {\n \"class\": uploadingClassName\n }, [iconNode]);\n } else {\n const thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? _createVNode(\"img\", {\n \"src\": file.thumbUrl || file.url,\n \"alt\": file.name,\n \"class\": `${prefixCls}-list-item-image`,\n \"crossorigin\": file.crossOrigin\n }, null) : iconNode;\n const aClassName = {\n [`${prefixCls}-list-item-thumbnail`]: true,\n [`${prefixCls}-list-item-file`]: isImgUrl && !isImgUrl(file)\n };\n icon = _createVNode(\"a\", {\n \"class\": aClassName,\n \"onClick\": e => onPreview(file, e),\n \"href\": file.url || file.thumbUrl,\n \"target\": \"_blank\",\n \"rel\": \"noopener noreferrer\"\n }, [thumbnail]);\n }\n }\n const infoUploadingClass = {\n [`${prefixCls}-list-item`]: true,\n [`${prefixCls}-list-item-${mergedStatus.value}`]: true\n };\n const linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n const removeIcon = showRemoveIcon ? actionIconRender({\n customIcon: customRemoveIcon ? customRemoveIcon({\n file\n }) : _createVNode(DeleteOutlined, null, null),\n callback: () => onClose(file),\n prefixCls,\n title: locale.removeFile\n }) : null;\n const downloadIcon = showDownloadIcon && mergedStatus.value === 'done' ? actionIconRender({\n customIcon: customDownloadIcon ? customDownloadIcon({\n file\n }) : _createVNode(DownloadOutlined, null, null),\n callback: () => onDownload(file),\n prefixCls,\n title: locale.downloadFile\n }) : null;\n const downloadOrDelete = listType !== 'picture-card' && _createVNode(\"span\", {\n \"key\": \"download-delete\",\n \"class\": [`${prefixCls}-list-item-actions`, {\n picture: listType === 'picture'\n }]\n }, [downloadIcon, removeIcon]);\n const listItemNameClass = `${prefixCls}-list-item-name`;\n const fileName = file.url ? [_createVNode(\"a\", _objectSpread(_objectSpread({\n \"key\": \"view\",\n \"target\": \"_blank\",\n \"rel\": \"noopener noreferrer\",\n \"class\": listItemNameClass,\n \"title\": file.name\n }, linkProps), {}, {\n \"href\": file.url,\n \"onClick\": e => onPreview(file, e)\n }), [file.name]), downloadOrDelete] : [_createVNode(\"span\", {\n \"key\": \"view\",\n \"class\": listItemNameClass,\n \"onClick\": e => onPreview(file, e),\n \"title\": file.name\n }, [file.name]), downloadOrDelete];\n const previewStyle = {\n pointerEvents: 'none',\n opacity: 0.5\n };\n const previewIcon = showPreviewIcon ? _createVNode(\"a\", {\n \"href\": file.url || file.thumbUrl,\n \"target\": \"_blank\",\n \"rel\": \"noopener noreferrer\",\n \"style\": file.url || file.thumbUrl ? undefined : previewStyle,\n \"onClick\": e => onPreview(file, e),\n \"title\": locale.previewFile\n }, [customPreviewIcon ? customPreviewIcon({\n file\n }) : _createVNode(EyeOutlined, null, null)]) : null;\n const pictureCardActions = listType === 'picture-card' && mergedStatus.value !== 'uploading' && _createVNode(\"span\", {\n \"class\": `${prefixCls}-list-item-actions`\n }, [previewIcon, mergedStatus.value === 'done' && downloadIcon, removeIcon]);\n const dom = _createVNode(\"div\", {\n \"class\": infoUploadingClass\n }, [icon, fileName, pictureCardActions, showProgress.value && _createVNode(Transition, transitionProps.value, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": `${prefixCls}-list-item-progress`\n }, ['percent' in file ? _createVNode(Progress, _objectSpread(_objectSpread({}, progressProps), {}, {\n \"type\": \"line\",\n \"percent\": file.percent\n }), null) : null]), [[_vShow, mergedStatus.value === 'uploading']])]\n })]);\n const listContainerNameClass = {\n [`${prefixCls}-list-item-container`]: true,\n [`${className}`]: !!className\n };\n const message = file.response && typeof file.response === 'string' ? file.response : ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n const item = mergedStatus.value === 'error' ? _createVNode(Tooltip, {\n \"title\": message,\n \"getPopupContainer\": node => node.parentNode\n }, {\n default: () => [dom]\n }) : dom;\n return _createVNode(\"div\", {\n \"class\": listContainerNameClass,\n \"style\": style\n }, [itemRender ? itemRender({\n originNode: item,\n file,\n fileList: items,\n actions: {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }\n }) : item]);\n };\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withDirectives as _withDirectives, vShow as _vShow, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons-vue/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons-vue/es/icons/PictureTwoTone\";\nimport FileTwoTone from \"@ant-design/icons-vue/es/icons/FileTwoTone\";\nimport { uploadListProps } from '../interface';\nimport { previewImage, isImageUrl } from '../utils';\nimport Button from '../../button';\nimport ListItem from './ListItem';\nimport { triggerRef, watch, computed, defineComponent, onMounted, shallowRef, watchEffect, TransitionGroup } from 'vue';\nimport { filterEmpty, initDefaultProps, isValidElement } from '../../_util/props-util';\nimport useConfigInject from '../../config-provider/hooks/useConfigInject';\nimport { getTransitionGroupProps } from '../../_util/transition';\nimport collapseMotion from '../../_util/collapseMotion';\nconst HackSlot = (_, _ref) => {\n let {\n slots\n } = _ref;\n var _a;\n return filterEmpty((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots))[0];\n};\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AUploadList',\n props: initDefaultProps(uploadListProps(), {\n listType: 'text',\n progress: {\n strokeWidth: 2,\n showInfo: false\n },\n showRemoveIcon: true,\n showDownloadIcon: false,\n showPreviewIcon: true,\n previewFile: previewImage,\n isImageUrl,\n items: [],\n appendActionVisible: true\n }),\n setup(props, _ref2) {\n let {\n slots,\n expose\n } = _ref2;\n const motionAppear = shallowRef(false);\n onMounted(() => {\n motionAppear.value == true;\n });\n const mergedItems = shallowRef([]);\n watch(() => props.items, function () {\n let val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n mergedItems.value = val.slice();\n }, {\n immediate: true,\n deep: true\n });\n watchEffect(() => {\n if (props.listType !== 'picture' && props.listType !== 'picture-card') {\n return;\n }\n let hasUpdate = false;\n (props.items || []).forEach((file, index) => {\n if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n if (props.previewFile) {\n props.previewFile(file.originFileObj).then(previewDataUrl => {\n // Need append '' to avoid dead loop\n const thumbUrl = previewDataUrl || '';\n if (thumbUrl !== file.thumbUrl) {\n mergedItems.value[index].thumbUrl = thumbUrl;\n hasUpdate = true;\n }\n });\n }\n });\n if (hasUpdate) {\n triggerRef(mergedItems);\n }\n });\n // ============================= Events =============================\n const onInternalPreview = (file, e) => {\n if (!props.onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return props.onPreview(file);\n };\n const onInternalDownload = file => {\n if (typeof props.onDownload === 'function') {\n props.onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n const onInternalClose = file => {\n var _a;\n (_a = props.onRemove) === null || _a === void 0 ? void 0 : _a.call(props, file);\n };\n const internalIconRender = _ref3 => {\n let {\n file\n } = _ref3;\n const iconRender = props.iconRender || slots.iconRender;\n if (iconRender) {\n return iconRender({\n file,\n listType: props.listType\n });\n }\n const isLoading = file.status === 'uploading';\n const fileIcon = props.isImageUrl && props.isImageUrl(file) ? _createVNode(PictureTwoTone, null, null) : _createVNode(FileTwoTone, null, null);\n let icon = isLoading ? _createVNode(LoadingOutlined, null, null) : _createVNode(PaperClipOutlined, null, null);\n if (props.listType === 'picture') {\n icon = isLoading ? _createVNode(LoadingOutlined, null, null) : fileIcon;\n } else if (props.listType === 'picture-card') {\n icon = isLoading ? props.locale.uploading : fileIcon;\n }\n return icon;\n };\n const actionIconRender = opt => {\n const {\n customIcon,\n callback,\n prefixCls,\n title\n } = opt;\n const btnProps = {\n type: 'text',\n size: 'small',\n title,\n onClick: () => {\n callback();\n },\n class: `${prefixCls}-list-item-action`\n };\n if (isValidElement(customIcon)) {\n return _createVNode(Button, btnProps, {\n icon: () => customIcon\n });\n }\n return _createVNode(Button, btnProps, {\n default: () => [_createVNode(\"span\", null, [customIcon])]\n });\n };\n expose({\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n });\n const {\n prefixCls,\n rootPrefixCls\n } = useConfigInject('upload', props);\n const listClassNames = computed(() => ({\n [`${prefixCls.value}-list`]: true,\n [`${prefixCls.value}-list-${props.listType}`]: true\n }));\n const transitionGroupProps = computed(() => {\n const motion = _extends({}, collapseMotion(`${rootPrefixCls.value}-motion-collapse`));\n delete motion.onAfterAppear;\n delete motion.onAfterEnter;\n delete motion.onAfterLeave;\n const motionConfig = _extends(_extends({}, getTransitionGroupProps(`${prefixCls.value}-${props.listType === 'picture-card' ? 'animate-inline' : 'animate'}`)), {\n class: listClassNames.value,\n appear: motionAppear.value\n });\n return props.listType !== 'picture-card' ? _extends(_extends({}, motion), motionConfig) : motionConfig;\n });\n return () => {\n const {\n listType,\n locale,\n isImageUrl: isImgUrl,\n showPreviewIcon,\n showRemoveIcon,\n showDownloadIcon,\n removeIcon,\n previewIcon,\n downloadIcon,\n progress,\n appendAction,\n itemRender,\n appendActionVisible\n } = props;\n const appendActionDom = appendAction === null || appendAction === void 0 ? void 0 : appendAction();\n const items = mergedItems.value;\n return _createVNode(TransitionGroup, _objectSpread(_objectSpread({}, transitionGroupProps.value), {}, {\n \"tag\": \"div\"\n }), {\n default: () => [items.map(file => {\n const {\n uid: key\n } = file;\n return _createVNode(ListItem, {\n \"key\": key,\n \"locale\": locale,\n \"prefixCls\": prefixCls.value,\n \"file\": file,\n \"items\": items,\n \"progress\": progress,\n \"listType\": listType,\n \"isImgUrl\": isImgUrl,\n \"showPreviewIcon\": showPreviewIcon,\n \"showRemoveIcon\": showRemoveIcon,\n \"showDownloadIcon\": showDownloadIcon,\n \"onPreview\": onInternalPreview,\n \"onDownload\": onInternalDownload,\n \"onClose\": onInternalClose,\n \"removeIcon\": removeIcon,\n \"previewIcon\": previewIcon,\n \"downloadIcon\": downloadIcon,\n \"itemRender\": itemRender\n }, _extends(_extends({}, slots), {\n iconRender: internalIconRender,\n actionIconRender\n }));\n }), appendAction ? _withDirectives(_createVNode(HackSlot, {\n \"key\": \"__ant_upload_appendAction\"\n }, {\n default: () => appendActionDom\n }), [[_vShow, !!appendActionVisible]]) : null]\n });\n };\n }\n});","const genDraggerStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-drag`]: {\n position: 'relative',\n width: '100%',\n height: '100%',\n textAlign: 'center',\n background: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [componentCls]: {\n padding: `${token.padding}px 0`\n },\n [`${componentCls}-btn`]: {\n display: 'table',\n width: '100%',\n height: '100%',\n outline: 'none'\n },\n [`${componentCls}-drag-container`]: {\n display: 'table-cell',\n verticalAlign: 'middle'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimaryHover\n },\n [`p${componentCls}-drag-icon`]: {\n marginBottom: token.margin,\n [iconCls]: {\n color: token.colorPrimary,\n fontSize: token.uploadThumbnailSize\n }\n },\n [`p${componentCls}-text`]: {\n margin: `0 0 ${token.marginXXS}px`,\n color: token.colorTextHeading,\n fontSize: token.fontSizeLG\n },\n [`p${componentCls}-hint`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n },\n // ===================== Disabled =====================\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`p${componentCls}-drag-icon ${iconCls},\n p${componentCls}-text,\n p${componentCls}-hint\n `]: {\n color: token.colorTextDisabled\n }\n }\n }\n }\n };\n};\nexport default genDraggerStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { clearFix, textEllipsis } from '../../style';\nconst genListStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSize,\n lineHeight\n } = token;\n const itemCls = `${componentCls}-list-item`;\n const actionsCls = `${itemCls}-actions`;\n const actionCls = `${itemCls}-action`;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-list`]: _extends(_extends({}, clearFix()), {\n lineHeight: token.lineHeight,\n [itemCls]: {\n position: 'relative',\n height: token.lineHeight * fontSize,\n marginTop: token.marginXS,\n fontSize,\n display: 'flex',\n alignItems: 'center',\n transition: `background-color ${token.motionDurationSlow}`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`${itemCls}-name`]: _extends(_extends({}, textEllipsis), {\n padding: `0 ${token.paddingXS}px`,\n lineHeight,\n flex: 'auto',\n transition: `all ${token.motionDurationSlow}`\n }),\n [actionsCls]: {\n [actionCls]: {\n opacity: 0\n },\n [`${actionCls}${antCls}-btn-sm`]: {\n height: listItemHeightSM,\n border: 0,\n lineHeight: 1,\n // FIXME: should not override small button\n '> span': {\n transform: 'scale(1)'\n }\n },\n [`\n ${actionCls}:focus,\n &.picture ${actionCls}\n `]: {\n opacity: 1\n },\n [iconCls]: {\n color: token.colorTextDescription,\n transition: `all ${token.motionDurationSlow}`\n },\n [`&:hover ${iconCls}`]: {\n color: token.colorText\n }\n },\n [`${componentCls}-icon ${iconCls}`]: {\n color: token.colorTextDescription,\n fontSize\n },\n [`${itemCls}-progress`]: {\n position: 'absolute',\n bottom: -token.uploadProgressOffset,\n width: '100%',\n paddingInlineStart: fontSize + token.paddingXS,\n fontSize,\n lineHeight: 0,\n pointerEvents: 'none',\n '> div': {\n margin: 0\n }\n }\n },\n [`${itemCls}:hover ${actionCls}`]: {\n opacity: 1,\n color: token.colorText\n },\n [`${itemCls}-error`]: {\n color: token.colorError,\n [`${itemCls}-name, ${componentCls}-icon ${iconCls}`]: {\n color: token.colorError\n },\n [actionsCls]: {\n [`${iconCls}, ${iconCls}:hover`]: {\n color: token.colorError\n },\n [actionCls]: {\n opacity: 1\n }\n }\n },\n [`${componentCls}-list-item-container`]: {\n transition: `opacity ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n // For smooth removing animation\n '&::before': {\n display: 'table',\n width: 0,\n height: 0,\n content: '\"\"'\n }\n }\n })\n }\n };\n};\nexport default genListStyle;","import { Keyframes } from '../../_util/cssinjs';\nconst uploadAnimateInlineIn = new Keyframes('uploadAnimateInlineIn', {\n from: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\nconst uploadAnimateInlineOut = new Keyframes('uploadAnimateInlineOut', {\n to: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\n// =========================== Motion ===========================\nconst genMotionStyle = token => {\n const {\n componentCls\n } = token;\n const inlineCls = `${componentCls}-animate-inline`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${inlineCls}-appear, ${inlineCls}-enter, ${inlineCls}-leave`]: {\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseInOutCirc,\n animationFillMode: 'forwards'\n },\n [`${inlineCls}-appear, ${inlineCls}-enter`]: {\n animationName: uploadAnimateInlineIn\n },\n [`${inlineCls}-leave`]: {\n animationName: uploadAnimateInlineOut\n }\n }\n }, uploadAnimateInlineIn, uploadAnimateInlineOut];\n};\nexport default genMotionStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, textEllipsis } from '../../style';\nconst genPictureStyle = token => {\n const {\n componentCls,\n iconCls,\n uploadThumbnailSize,\n uploadProgressOffset\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n return {\n [`${componentCls}-wrapper`]: {\n // ${listCls} 增加优先级\n [`${listCls}${listCls}-picture, ${listCls}${listCls}-picture-card`]: {\n [itemCls]: {\n position: 'relative',\n height: uploadThumbnailSize + token.lineWidth * 2 + token.paddingXS * 2,\n padding: token.paddingXS,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&:hover': {\n background: 'transparent'\n },\n [`${itemCls}-thumbnail`]: _extends(_extends({}, textEllipsis), {\n width: uploadThumbnailSize,\n height: uploadThumbnailSize,\n lineHeight: `${uploadThumbnailSize + token.paddingSM}px`,\n textAlign: 'center',\n flex: 'none',\n [iconCls]: {\n fontSize: token.fontSizeHeading2,\n color: token.colorPrimary\n },\n img: {\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n }),\n [`${itemCls}-progress`]: {\n bottom: uploadProgressOffset,\n width: `calc(100% - ${token.paddingSM * 2}px)`,\n marginTop: 0,\n paddingInlineStart: uploadThumbnailSize + token.paddingXS\n }\n },\n [`${itemCls}-error`]: {\n borderColor: token.colorError,\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n [`${itemCls}-thumbnail ${iconCls}`]: {\n [`svg path[fill='#e6f7ff']`]: {\n fill: token.colorErrorBg\n },\n [`svg path[fill='#1890ff']`]: {\n fill: token.colorError\n }\n }\n },\n [`${itemCls}-uploading`]: {\n borderStyle: 'dashed',\n [`${itemCls}-name`]: {\n marginBottom: uploadProgressOffset\n }\n }\n }\n }\n };\n};\nconst genPictureCardStyle = token => {\n const {\n componentCls,\n iconCls,\n fontSizeLG,\n colorTextLightSolid\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n const uploadPictureCardSize = token.uploadPicCardSize;\n return {\n [`${componentCls}-wrapper${componentCls}-picture-card-wrapper`]: _extends(_extends({}, clearFix()), {\n display: 'inline-block',\n width: '100%',\n [`${componentCls}${componentCls}-select`]: {\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS,\n textAlign: 'center',\n verticalAlign: 'top',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [`> ${componentCls}`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textAlign: 'center'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimary\n }\n },\n // list\n [`${listCls}${listCls}-picture-card`]: {\n [`${listCls}-item-container`]: {\n display: 'inline-block',\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginBlock: `0 ${token.marginXS}px`,\n marginInline: `0 ${token.marginXS}px`,\n verticalAlign: 'top'\n },\n '&::after': {\n display: 'none'\n },\n [itemCls]: {\n height: '100%',\n margin: 0,\n '&::before': {\n position: 'absolute',\n zIndex: 1,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n height: `calc(100% - ${token.paddingXS * 2}px)`,\n backgroundColor: token.colorBgMask,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\" \"'\n }\n },\n [`${itemCls}:hover`]: {\n [`&::before, ${itemCls}-actions`]: {\n opacity: 1\n }\n },\n [`${itemCls}-actions`]: {\n position: 'absolute',\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n zIndex: 10,\n width: fontSizeLG,\n margin: `0 ${token.marginXXS}px`,\n fontSize: fontSizeLG,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`\n }\n },\n [`${itemCls}-actions, ${itemCls}-actions:hover`]: {\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString(),\n '&:hover': {\n color: colorTextLightSolid\n }\n }\n },\n [`${itemCls}-thumbnail, ${itemCls}-thumbnail img`]: {\n position: 'static',\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'contain'\n },\n [`${itemCls}-name`]: {\n display: 'none',\n textAlign: 'center'\n },\n [`${itemCls}-file + ${itemCls}-name`]: {\n position: 'absolute',\n bottom: token.margin,\n display: 'block',\n width: `calc(100% - ${token.paddingXS * 2}px)`\n },\n [`${itemCls}-uploading`]: {\n [`&${itemCls}`]: {\n backgroundColor: token.colorFillAlter\n },\n [`&::before, ${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n display: 'none'\n }\n },\n [`${itemCls}-progress`]: {\n bottom: token.marginXL,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n paddingInlineStart: 0\n }\n }\n })\n };\n};\nexport { genPictureStyle, genPictureCardStyle };","// =========================== Motion ===========================\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nexport default genRtlStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genDraggerStyle from './dragger';\nimport genListStyle from './list';\nimport genMotionStyle from './motion';\nimport { genPictureCardStyle, genPictureStyle } from './picture';\nimport genRtlStyle from './rtl';\nimport { resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorTextDisabled\n } = token;\n return {\n [`${componentCls}-wrapper`]: _extends(_extends({}, resetComponent(token)), {\n [componentCls]: {\n outline: 0,\n \"input[type='file']\": {\n cursor: 'pointer'\n }\n },\n [`${componentCls}-select`]: {\n display: 'inline-block'\n },\n [`${componentCls}-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Upload', token => {\n const {\n fontSizeHeading3,\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightLG\n } = token;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n const uploadToken = mergeToken(token, {\n uploadThumbnailSize: fontSizeHeading3 * 2,\n uploadProgressOffset: listItemHeightSM / 2 + lineWidth,\n uploadPicCardSize: controlHeightLG * 2.55\n });\n return [genBaseStyle(uploadToken), genDraggerStyle(uploadToken), genPictureStyle(uploadToken), genPictureCardStyle(uploadToken), genListStyle(uploadToken), genMotionStyle(uploadToken), genRtlStyle(uploadToken), genCollapseMotion(uploadToken)];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport VcUpload from '../vc-upload';\nimport UploadList from './UploadList';\nimport { uploadProps } from './interface';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nimport { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/en_US';\nimport { computed, defineComponent, onMounted, ref, toRef } from 'vue';\nimport { flattenChildren, initDefaultProps } from '../_util/props-util';\nimport useMergedState from '../_util/hooks/useMergedState';\nimport devWarning from '../vc-util/devWarning';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport classNames from '../_util/classNames';\nimport { useInjectFormItemContext } from '../form';\n// CSSINJS\nimport useStyle from './style';\nimport { useInjectDisabled } from '../config-provider/DisabledContext';\nexport const LIST_IGNORE = `__LIST_IGNORE_${Date.now()}__`;\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AUpload',\n inheritAttrs: false,\n props: initDefaultProps(uploadProps(), {\n type: 'select',\n multiple: false,\n action: '',\n data: {},\n accept: '',\n showUploadList: true,\n listType: 'text',\n supportServerRender: true\n }),\n setup(props, _ref) {\n let {\n slots,\n attrs,\n expose\n } = _ref;\n const formItemContext = useInjectFormItemContext();\n const {\n prefixCls,\n direction,\n disabled\n } = useConfigInject('upload', props);\n // style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const disabledContext = useInjectDisabled();\n const mergedDisabled = computed(() => {\n var _a;\n return (_a = disabled.value) !== null && _a !== void 0 ? _a : disabledContext.value;\n });\n const [mergedFileList, setMergedFileList] = useMergedState(props.defaultFileList || [], {\n value: toRef(props, 'fileList'),\n postState: list => {\n const timestamp = Date.now();\n return (list !== null && list !== void 0 ? list : []).map((file, index) => {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = `__AUTO__${timestamp}_${index}__`;\n }\n return file;\n });\n }\n });\n const dragState = ref('drop');\n const upload = ref(null);\n onMounted(() => {\n devWarning(props.fileList !== undefined || attrs.value === undefined, 'Upload', '`value` is not a valid prop, do you mean `fileList`?');\n devWarning(props.transformFile === undefined, 'Upload', '`transformFile` is deprecated. Please use `beforeUpload` directly.');\n devWarning(props.remove === undefined, 'Upload', '`remove` props is deprecated. Please use `remove` event.');\n });\n const onInternalChange = (file, changedFileList, event) => {\n var _a, _b;\n let cloneList = [...changedFileList];\n // Cut to match count\n if (props.maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (props.maxCount) {\n cloneList = cloneList.slice(0, props.maxCount);\n }\n setMergedFileList(cloneList);\n const changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n (_a = props['onUpdate:fileList']) === null || _a === void 0 ? void 0 : _a.call(props, changeInfo.fileList);\n (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, changeInfo);\n formItemContext.onFieldChange();\n };\n const mergedBeforeUpload = (file, fileListArgs) => __awaiter(this, void 0, void 0, function* () {\n const {\n beforeUpload,\n transformFile\n } = props;\n let parsedFile = file;\n if (beforeUpload) {\n const result = yield beforeUpload(file, fileListArgs);\n if (result === false) {\n return false;\n }\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (result === LIST_IGNORE) {\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return false;\n }\n if (typeof result === 'object' && result) {\n parsedFile = result;\n }\n }\n if (transformFile) {\n parsedFile = yield transformFile(parsedFile);\n }\n return parsedFile;\n });\n const onBatchStart = batchFileInfoList => {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n const filteredFileInfoList = batchFileInfoList.filter(info => !info.file[LIST_IGNORE]);\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n const objectFileList = filteredFileInfoList.map(info => file2Obj(info.file));\n // Concat new files with prev files\n let newFileList = [...mergedFileList.value];\n objectFileList.forEach(fileObj => {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach((fileObj, index) => {\n // Repeat trigger `onChange` event for compatible\n let triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n const {\n originFileObj\n } = fileObj;\n let clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (e) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n const onSuccess = (response, file, xhr) => {\n try {\n if (typeof response === 'string') {\n response = JSON.parse(response);\n }\n } catch (e) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList.value)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n const nextFileList = updateFileList(targetItem, mergedFileList.value);\n onInternalChange(targetItem, nextFileList);\n };\n const onProgress = (e, file) => {\n // removed\n if (!getFileItem(file, mergedFileList.value)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n const nextFileList = updateFileList(targetItem, mergedFileList.value);\n onInternalChange(targetItem, nextFileList, e);\n };\n const onError = (error, response, file) => {\n // removed\n if (!getFileItem(file, mergedFileList.value)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n const nextFileList = updateFileList(targetItem, mergedFileList.value);\n onInternalChange(targetItem, nextFileList);\n };\n const handleRemove = file => {\n let currentFile;\n const mergedRemove = props.onRemove || props.remove;\n Promise.resolve(typeof mergedRemove === 'function' ? mergedRemove(file) : mergedRemove).then(ret => {\n var _a, _b;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n const removedFileList = removeFileItem(file, mergedFileList.value);\n if (removedFileList) {\n currentFile = _extends(_extends({}, file), {\n status: 'removed'\n });\n (_a = mergedFileList.value) === null || _a === void 0 ? void 0 : _a.forEach(item => {\n const matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_b = upload.value) === null || _b === void 0 ? void 0 : _b.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n const onFileDrop = e => {\n var _a;\n dragState.value = e.type;\n if (e.type === 'drop') {\n (_a = props.onDrop) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n };\n expose({\n onBatchStart,\n onSuccess,\n onProgress,\n onError,\n fileList: mergedFileList,\n upload\n });\n const [locale] = useLocaleReceiver('Upload', defaultLocale.Upload, computed(() => props.locale));\n const renderUploadList = (button, buttonVisible) => {\n const {\n removeIcon,\n previewIcon,\n downloadIcon,\n previewFile,\n onPreview,\n onDownload,\n isImageUrl,\n progress,\n itemRender,\n iconRender,\n showUploadList\n } = props;\n const {\n showDownloadIcon,\n showPreviewIcon,\n showRemoveIcon\n } = typeof showUploadList === 'boolean' ? {} : showUploadList;\n return showUploadList ? _createVNode(UploadList, {\n \"prefixCls\": prefixCls.value,\n \"listType\": props.listType,\n \"items\": mergedFileList.value,\n \"previewFile\": previewFile,\n \"onPreview\": onPreview,\n \"onDownload\": onDownload,\n \"onRemove\": handleRemove,\n \"showRemoveIcon\": !mergedDisabled.value && showRemoveIcon,\n \"showPreviewIcon\": showPreviewIcon,\n \"showDownloadIcon\": showDownloadIcon,\n \"removeIcon\": removeIcon,\n \"previewIcon\": previewIcon,\n \"downloadIcon\": downloadIcon,\n \"iconRender\": iconRender,\n \"locale\": locale.value,\n \"isImageUrl\": isImageUrl,\n \"progress\": progress,\n \"itemRender\": itemRender,\n \"appendActionVisible\": buttonVisible,\n \"appendAction\": button\n }, _extends({}, slots)) : button === null || button === void 0 ? void 0 : button();\n };\n return () => {\n var _a, _b, _c;\n const {\n listType,\n type\n } = props;\n const {\n class: className,\n style: styleName\n } = attrs,\n transAttrs = __rest(attrs, [\"class\", \"style\"]);\n const rcUploadProps = _extends(_extends(_extends({\n onBatchStart,\n onError,\n onProgress,\n onSuccess\n }, transAttrs), props), {\n id: (_a = props.id) !== null && _a !== void 0 ? _a : formItemContext.id.value,\n prefixCls: prefixCls.value,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined,\n disabled: mergedDisabled.value\n });\n delete rcUploadProps.remove;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!slots.default || mergedDisabled.value) {\n delete rcUploadProps.id;\n }\n const rtlCls = {\n [`${prefixCls.value}-rtl`]: direction.value === 'rtl'\n };\n if (type === 'drag') {\n const dragCls = classNames(prefixCls.value, {\n [`${prefixCls.value}-drag`]: true,\n [`${prefixCls.value}-drag-uploading`]: mergedFileList.value.some(file => file.status === 'uploading'),\n [`${prefixCls.value}-drag-hover`]: dragState.value === 'dragover',\n [`${prefixCls.value}-disabled`]: mergedDisabled.value,\n [`${prefixCls.value}-rtl`]: direction.value === 'rtl'\n }, attrs.class, hashId.value);\n return wrapSSR(_createVNode(\"span\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": classNames(`${prefixCls.value}-wrapper`, rtlCls, className, hashId.value)\n }), [_createVNode(\"div\", {\n \"class\": dragCls,\n \"onDrop\": onFileDrop,\n \"onDragover\": onFileDrop,\n \"onDragleave\": onFileDrop,\n \"style\": attrs.style\n }, [_createVNode(VcUpload, _objectSpread(_objectSpread({}, rcUploadProps), {}, {\n \"ref\": upload,\n \"class\": `${prefixCls.value}-btn`\n }), _objectSpread({\n default: () => [_createVNode(\"div\", {\n \"class\": `${prefixCls.value}-drag-container`\n }, [(_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)])]\n }, slots))]), renderUploadList()]));\n }\n const uploadButtonCls = classNames(prefixCls.value, {\n [`${prefixCls.value}-select`]: true,\n [`${prefixCls.value}-select-${listType}`]: true,\n [`${prefixCls.value}-disabled`]: mergedDisabled.value,\n [`${prefixCls.value}-rtl`]: direction.value === 'rtl'\n });\n const children = flattenChildren((_c = slots.default) === null || _c === void 0 ? void 0 : _c.call(slots));\n const renderUploadButton = uploadButtonStyle => _createVNode(\"div\", {\n \"class\": uploadButtonCls,\n \"style\": uploadButtonStyle\n }, [_createVNode(VcUpload, _objectSpread(_objectSpread({}, rcUploadProps), {}, {\n \"ref\": upload\n }), slots)]);\n if (listType === 'picture-card') {\n return wrapSSR(_createVNode(\"span\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": classNames(`${prefixCls.value}-wrapper`, `${prefixCls.value}-picture-card-wrapper`, rtlCls, attrs.class, hashId.value)\n }), [renderUploadList(renderUploadButton, !!(children && children.length))]));\n }\n return wrapSSR(_createVNode(\"span\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": classNames(`${prefixCls.value}-wrapper`, rtlCls, attrs.class, hashId.value)\n }), [renderUploadButton(children && children.length ? undefined : {\n display: 'none'\n }), renderUploadList()]));\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { defineComponent } from 'vue';\nimport Upload from './Upload';\nimport { uploadProps } from './interface';\nexport default defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AUploadDragger',\n inheritAttrs: false,\n props: uploadProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n return () => {\n const {\n height\n } = props,\n restProps = __rest(props, [\"height\"]);\n const {\n style\n } = attrs,\n restAttrs = __rest(attrs, [\"style\"]);\n const draggerProps = _extends(_extends(_extends({}, restProps), restAttrs), {\n type: 'drag',\n style: _extends(_extends({}, style), {\n height: typeof height === 'number' ? `${height}px` : height\n })\n });\n return _createVNode(Upload, draggerProps, slots);\n };\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Upload, { LIST_IGNORE } from './Upload';\nimport Dragger from './Dragger';\n/* istanbul ignore next */\nexport const UploadDragger = Dragger;\nexport default _extends(Upload, {\n Dragger,\n LIST_IGNORE,\n install(app) {\n app.component(Upload.name, Upload);\n app.component(Dragger.name, Dragger);\n return app;\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent, textEllipsis } from '../../style';\n// ============================== Mixins ==============================\nfunction getItemDisabledStyle(cls, token) {\n return {\n [`${cls}, ${cls}:hover, ${cls}:focus`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n };\n}\nfunction getItemSelectedStyle(token) {\n return {\n backgroundColor: token.bgColorSelected,\n boxShadow: token.boxShadow\n };\n}\nconst segmentedTextEllipsisCss = _extends({\n overflow: 'hidden'\n}, textEllipsis);\n// ============================== Styles ==============================\nconst genSegmentedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: _extends(_extends(_extends(_extends(_extends({}, resetComponent(token)), {\n display: 'inline-block',\n padding: token.segmentedContainerPadding,\n color: token.labelColor,\n backgroundColor: token.bgColor,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n [`${componentCls}-group`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n justifyItems: 'flex-start',\n width: '100%'\n },\n // RTL styles\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n // block styles\n [`&${componentCls}-block`]: {\n display: 'flex'\n },\n [`&${componentCls}-block ${componentCls}-item`]: {\n flex: 1,\n minWidth: 0\n },\n // item styles\n [`${componentCls}-item`]: {\n position: 'relative',\n textAlign: 'center',\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid} ${token.motionEaseInOut}`,\n borderRadius: token.borderRadiusSM,\n '&-selected': _extends(_extends({}, getItemSelectedStyle(token)), {\n color: token.labelColorHover\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n insetInlineStart: 0,\n borderRadius: 'inherit',\n transition: `background-color ${token.motionDurationMid}`,\n pointerEvents: 'none'\n },\n [`&:hover:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.labelColorHover,\n '&::after': {\n backgroundColor: token.bgColorHover\n }\n },\n '&-label': _extends({\n minHeight: token.controlHeight - token.segmentedContainerPadding * 2,\n lineHeight: `${token.controlHeight - token.segmentedContainerPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`\n }, segmentedTextEllipsisCss),\n // syntactic sugar to add `icon` for Segmented Item\n '&-icon + *': {\n marginInlineStart: token.marginSM / 2\n },\n '&-input': {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n }\n },\n // thumb styles\n [`${componentCls}-thumb`]: _extends(_extends({}, getItemSelectedStyle(token)), {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: '100%',\n padding: `${token.paddingXXS}px 0`,\n borderRadius: token.borderRadiusSM,\n [`& ~ ${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)::after`]: {\n backgroundColor: 'transparent'\n }\n }),\n // size styles\n [`&${componentCls}-lg`]: {\n borderRadius: token.borderRadiusLG,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightLG - token.segmentedContainerPadding * 2,\n lineHeight: `${token.controlHeightLG - token.segmentedContainerPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`,\n fontSize: token.fontSizeLG\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadius\n }\n },\n [`&${componentCls}-sm`]: {\n borderRadius: token.borderRadiusSM,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightSM - token.segmentedContainerPadding * 2,\n lineHeight: `${token.controlHeightSM - token.segmentedContainerPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontalSM}px`\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadiusXS\n }\n }\n }), getItemDisabledStyle(`&-disabled ${componentCls}-item`, token)), getItemDisabledStyle(`${componentCls}-item-disabled`, token)), {\n // transition effect when `appear-active`\n [`${componentCls}-thumb-motion-appear-active`]: {\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOut}, width ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n willChange: 'transform, width'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Segmented', token => {\n const {\n lineWidthBold,\n lineWidth,\n colorTextLabel,\n colorText,\n colorFillSecondary,\n colorBgLayout,\n colorBgElevated\n } = token;\n const segmentedToken = mergeToken(token, {\n segmentedPaddingHorizontal: token.controlPaddingHorizontal - lineWidth,\n segmentedPaddingHorizontalSM: token.controlPaddingHorizontalSM - lineWidth,\n segmentedContainerPadding: lineWidthBold,\n labelColor: colorTextLabel,\n labelColorHover: colorText,\n bgColor: colorBgLayout,\n bgColorHover: colorFillSecondary,\n bgColorSelected: colorBgElevated\n });\n return [genSegmentedStyle(segmentedToken)];\n});","import { createVNode as _createVNode } from \"vue\";\nimport { addClass, removeClass } from '../../vc-util/Dom/class';\nimport { onBeforeUnmount, nextTick, Transition, watch, defineComponent, computed, ref } from 'vue';\nimport { anyType } from '../../_util/type';\nconst calcThumbStyle = targetElement => targetElement ? {\n left: targetElement.offsetLeft,\n right: targetElement.parentElement.clientWidth - targetElement.clientWidth - targetElement.offsetLeft,\n width: targetElement.clientWidth\n} : null;\nconst toPX = value => value !== undefined ? `${value}px` : undefined;\nconst MotionThumb = defineComponent({\n props: {\n value: anyType(),\n getValueIndex: anyType(),\n prefixCls: anyType(),\n motionName: anyType(),\n onMotionStart: anyType(),\n onMotionEnd: anyType(),\n direction: anyType(),\n containerRef: anyType()\n },\n emits: ['motionStart', 'motionEnd'],\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const thumbRef = ref();\n // =========================== Effect ===========================\n const findValueElement = val => {\n var _a;\n const index = props.getValueIndex(val);\n const ele = (_a = props.containerRef.value) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`.${props.prefixCls}-item`)[index];\n return (ele === null || ele === void 0 ? void 0 : ele.offsetParent) && ele;\n };\n const prevStyle = ref(null);\n const nextStyle = ref(null);\n watch(() => props.value, (value, prevValue) => {\n const prev = findValueElement(prevValue);\n const next = findValueElement(value);\n const calcPrevStyle = calcThumbStyle(prev);\n const calcNextStyle = calcThumbStyle(next);\n prevStyle.value = calcPrevStyle;\n nextStyle.value = calcNextStyle;\n if (prev && next) {\n emit('motionStart');\n } else {\n emit('motionEnd');\n }\n }, {\n flush: 'post'\n });\n const thumbStart = computed(() => {\n var _a, _b;\n return props.direction === 'rtl' ? toPX(-((_a = prevStyle.value) === null || _a === void 0 ? void 0 : _a.right)) : toPX((_b = prevStyle.value) === null || _b === void 0 ? void 0 : _b.left);\n });\n const thumbActive = computed(() => {\n var _a, _b;\n return props.direction === 'rtl' ? toPX(-((_a = nextStyle.value) === null || _a === void 0 ? void 0 : _a.right)) : toPX((_b = nextStyle.value) === null || _b === void 0 ? void 0 : _b.left);\n });\n // =========================== Motion ===========================\n let timeid;\n const onAppearStart = el => {\n clearTimeout(timeid);\n nextTick(() => {\n if (el) {\n el.style.transform = `translateX(var(--thumb-start-left))`;\n el.style.width = `var(--thumb-start-width)`;\n }\n });\n };\n const onAppearActive = el => {\n timeid = setTimeout(() => {\n if (el) {\n addClass(el, `${props.motionName}-appear-active`);\n el.style.transform = `translateX(var(--thumb-active-left))`;\n el.style.width = `var(--thumb-active-width)`;\n }\n });\n };\n const onAppearEnd = el => {\n prevStyle.value = null;\n nextStyle.value = null;\n if (el) {\n el.style.transform = null;\n el.style.width = null;\n removeClass(el, `${props.motionName}-appear-active`);\n }\n emit('motionEnd');\n };\n const mergedStyle = computed(() => {\n var _a, _b;\n return {\n '--thumb-start-left': thumbStart.value,\n '--thumb-start-width': toPX((_a = prevStyle.value) === null || _a === void 0 ? void 0 : _a.width),\n '--thumb-active-left': thumbActive.value,\n '--thumb-active-width': toPX((_b = nextStyle.value) === null || _b === void 0 ? void 0 : _b.width)\n };\n });\n onBeforeUnmount(() => {\n clearTimeout(timeid);\n });\n return () => {\n // It's little ugly which should be refactor when @umi/test update to latest jsdom\n const motionProps = {\n ref: thumbRef,\n style: mergedStyle.value,\n class: [`${props.prefixCls}-thumb`]\n };\n if (process.env.NODE_ENV === 'test') {\n motionProps['data-test-style'] = JSON.stringify(mergedStyle.value);\n }\n return _createVNode(Transition, {\n \"appear\": true,\n \"onBeforeEnter\": onAppearStart,\n \"onEnter\": onAppearActive,\n \"onAfterEnter\": onAppearEnd\n }, {\n default: () => [!prevStyle.value || !nextStyle.value ? null : _createVNode(\"div\", motionProps, null)]\n });\n };\n }\n});\nexport default MotionThumb;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { defineComponent, shallowRef, computed } from 'vue';\nimport classNames from '../../_util/classNames';\nimport useConfigInject from '../../config-provider/hooks/useConfigInject';\nimport { initDefaultProps } from '../../_util/props-util';\nimport useStyle from '../style';\nimport { functionType, someType, arrayType, booleanType, stringType } from '../../_util/type';\nimport MotionThumb from './MotionThumb';\nfunction normalizeOptions(options) {\n return options.map(option => {\n if (typeof option === 'object' && option !== null) {\n return option;\n }\n return {\n label: option === null || option === void 0 ? void 0 : option.toString(),\n title: option === null || option === void 0 ? void 0 : option.toString(),\n value: option\n };\n });\n}\nexport const segmentedProps = () => {\n return {\n prefixCls: String,\n options: arrayType(),\n block: booleanType(),\n disabled: booleanType(),\n size: stringType(),\n value: _extends(_extends({}, someType([String, Number])), {\n required: true\n }),\n motionName: String,\n onChange: functionType(),\n 'onUpdate:value': functionType()\n };\n};\nconst SegmentedOption = (props, _ref) => {\n let {\n slots,\n emit\n } = _ref;\n const {\n value,\n disabled,\n payload,\n title,\n prefixCls,\n label = slots.label,\n checked,\n className\n } = props;\n const handleChange = event => {\n if (disabled) {\n return;\n }\n emit('change', event, value);\n };\n return _createVNode(\"label\", {\n \"class\": classNames({\n [`${prefixCls}-item-disabled`]: disabled\n }, className)\n }, [_createVNode(\"input\", {\n \"class\": `${prefixCls}-item-input`,\n \"type\": \"radio\",\n \"disabled\": disabled,\n \"checked\": checked,\n \"onChange\": handleChange\n }, null), _createVNode(\"div\", {\n \"class\": `${prefixCls}-item-label`,\n \"title\": typeof title === 'string' ? title : ''\n }, [typeof label === 'function' ? label({\n value,\n disabled,\n payload,\n title\n }) : label !== null && label !== void 0 ? label : value])]);\n};\nSegmentedOption.inheritAttrs = false;\nexport default defineComponent({\n name: 'ASegmented',\n inheritAttrs: false,\n props: initDefaultProps(segmentedProps(), {\n options: [],\n motionName: 'thumb-motion'\n }),\n slots: Object,\n setup(props, _ref2) {\n let {\n emit,\n slots,\n attrs\n } = _ref2;\n const {\n prefixCls,\n direction,\n size\n } = useConfigInject('segmented', props);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rootRef = shallowRef();\n const thumbShow = shallowRef(false);\n const segmentedOptions = computed(() => normalizeOptions(props.options));\n const handleChange = (_event, val) => {\n if (props.disabled) {\n return;\n }\n emit('update:value', val);\n emit('change', val);\n };\n return () => {\n const pre = prefixCls.value;\n return wrapSSR(_createVNode(\"div\", _objectSpread(_objectSpread({}, attrs), {}, {\n \"class\": classNames(pre, {\n [hashId.value]: true,\n [`${pre}-block`]: props.block,\n [`${pre}-disabled`]: props.disabled,\n [`${pre}-lg`]: size.value == 'large',\n [`${pre}-sm`]: size.value == 'small',\n [`${pre}-rtl`]: direction.value === 'rtl'\n }, attrs.class),\n \"ref\": rootRef\n }), [_createVNode(\"div\", {\n \"class\": `${pre}-group`\n }, [_createVNode(MotionThumb, {\n \"containerRef\": rootRef,\n \"prefixCls\": pre,\n \"value\": props.value,\n \"motionName\": `${pre}-${props.motionName}`,\n \"direction\": direction.value,\n \"getValueIndex\": val => segmentedOptions.value.findIndex(n => n.value === val),\n \"onMotionStart\": () => {\n thumbShow.value = true;\n },\n \"onMotionEnd\": () => {\n thumbShow.value = false;\n }\n }, null), segmentedOptions.value.map(segmentedOption => _createVNode(SegmentedOption, _objectSpread(_objectSpread({\n \"key\": segmentedOption.value,\n \"prefixCls\": pre,\n \"checked\": segmentedOption.value === props.value,\n \"onChange\": handleChange\n }, segmentedOption), {}, {\n \"className\": classNames(segmentedOption.className, `${pre}-item`, {\n [`${pre}-item-selected`]: segmentedOption.value === props.value && !thumbShow.value\n }),\n \"disabled\": !!props.disabled || !!segmentedOption.disabled\n }), slots))])]));\n };\n }\n});","import Segmented from './src';\nimport { withInstall } from '../_util/type';\nexport default withInstall(Segmented);","// This icon file is generated automatically.\nvar AlignCenterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"align-center\", \"theme\": \"outlined\" };\nexport default AlignCenterOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport AlignCenterOutlinedSvg from \"@ant-design/icons-svg/es/asn/AlignCenterOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar AlignCenterOutlined = function AlignCenterOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": AlignCenterOutlinedSvg\n }), null);\n};\n\nAlignCenterOutlined.displayName = 'AlignCenterOutlined';\nAlignCenterOutlined.inheritAttrs = false;\nexport default AlignCenterOutlined;","// This icon file is generated automatically.\nvar AlignLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"align-left\", \"theme\": \"outlined\" };\nexport default AlignLeftOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport AlignLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/AlignLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar AlignLeftOutlined = function AlignLeftOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": AlignLeftOutlinedSvg\n }), null);\n};\n\nAlignLeftOutlined.displayName = 'AlignLeftOutlined';\nAlignLeftOutlined.inheritAttrs = false;\nexport default AlignLeftOutlined;","// This icon file is generated automatically.\nvar AlignRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"align-right\", \"theme\": \"outlined\" };\nexport default AlignRightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport AlignRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/AlignRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar AlignRightOutlined = function AlignRightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": AlignRightOutlinedSvg\n }), null);\n};\n\nAlignRightOutlined.displayName = 'AlignRightOutlined';\nAlignRightOutlined.inheritAttrs = false;\nexport default AlignRightOutlined;","// This icon file is generated automatically.\nvar BgColorsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"bg-colors\", \"theme\": \"outlined\" };\nexport default BgColorsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BgColorsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BgColorsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BgColorsOutlined = function BgColorsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BgColorsOutlinedSvg\n }), null);\n};\n\nBgColorsOutlined.displayName = 'BgColorsOutlined';\nBgColorsOutlined.inheritAttrs = false;\nexport default BgColorsOutlined;","// This icon file is generated automatically.\nvar BorderBottomOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"border-bottom\", \"theme\": \"outlined\" };\nexport default BorderBottomOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderBottomOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderBottomOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderBottomOutlined = function BorderBottomOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderBottomOutlinedSvg\n }), null);\n};\n\nBorderBottomOutlined.displayName = 'BorderBottomOutlined';\nBorderBottomOutlined.inheritAttrs = false;\nexport default BorderBottomOutlined;","// This icon file is generated automatically.\nvar BorderLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"border-left\", \"theme\": \"outlined\" };\nexport default BorderLeftOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderLeftOutlined = function BorderLeftOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderLeftOutlinedSvg\n }), null);\n};\n\nBorderLeftOutlined.displayName = 'BorderLeftOutlined';\nBorderLeftOutlined.inheritAttrs = false;\nexport default BorderLeftOutlined;","// This icon file is generated automatically.\nvar BorderOuterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"border-outer\", \"theme\": \"outlined\" };\nexport default BorderOuterOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderOuterOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderOuterOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderOuterOutlined = function BorderOuterOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderOuterOutlinedSvg\n }), null);\n};\n\nBorderOuterOutlined.displayName = 'BorderOuterOutlined';\nBorderOuterOutlined.inheritAttrs = false;\nexport default BorderOuterOutlined;","// This icon file is generated automatically.\nvar BorderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"border\", \"theme\": \"outlined\" };\nexport default BorderOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderOutlined = function BorderOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderOutlinedSvg\n }), null);\n};\n\nBorderOutlined.displayName = 'BorderOutlined';\nBorderOutlined.inheritAttrs = false;\nexport default BorderOutlined;","// This icon file is generated automatically.\nvar BorderRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"border-right\", \"theme\": \"outlined\" };\nexport default BorderRightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderRightOutlined = function BorderRightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderRightOutlinedSvg\n }), null);\n};\n\nBorderRightOutlined.displayName = 'BorderRightOutlined';\nBorderRightOutlined.inheritAttrs = false;\nexport default BorderRightOutlined;","// This icon file is generated automatically.\nvar BorderTopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"border-top\", \"theme\": \"outlined\" };\nexport default BorderTopOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderTopOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderTopOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderTopOutlined = function BorderTopOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderTopOutlinedSvg\n }), null);\n};\n\nBorderTopOutlined.displayName = 'BorderTopOutlined';\nBorderTopOutlined.inheritAttrs = false;\nexport default BorderTopOutlined;","// This icon file is generated automatically.\nvar ColumnWidthOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 00-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z\" } }] }, \"name\": \"column-width\", \"theme\": \"outlined\" };\nexport default ColumnWidthOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ColumnWidthOutlinedSvg from \"@ant-design/icons-svg/es/asn/ColumnWidthOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ColumnWidthOutlined = function ColumnWidthOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ColumnWidthOutlinedSvg\n }), null);\n};\n\nColumnWidthOutlined.displayName = 'ColumnWidthOutlined';\nColumnWidthOutlined.inheritAttrs = false;\nexport default ColumnWidthOutlined;","// This icon file is generated automatically.\nvar ExpandOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M342 88H120c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V168h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm578 576h-48c-8.8 0-16 7.2-16 16v176H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V680c0-8.8-7.2-16-16-16zM342 856H168V680c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM904 88H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V120c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"expand\", \"theme\": \"outlined\" };\nexport default ExpandOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ExpandOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExpandOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExpandOutlined = function ExpandOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ExpandOutlinedSvg\n }), null);\n};\n\nExpandOutlined.displayName = 'ExpandOutlined';\nExpandOutlined.inheritAttrs = false;\nexport default ExpandOutlined;","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar HolderOutlined = function HolderOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": HolderOutlinedSvg\n }), null);\n};\n\nHolderOutlined.displayName = 'HolderOutlined';\nHolderOutlined.inheritAttrs = false;\nexport default HolderOutlined;","// This icon file is generated automatically.\nvar LinkOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" } }] }, \"name\": \"link\", \"theme\": \"outlined\" };\nexport default LinkOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LinkOutlinedSvg from \"@ant-design/icons-svg/es/asn/LinkOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LinkOutlined = function LinkOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LinkOutlinedSvg\n }), null);\n};\n\nLinkOutlined.displayName = 'LinkOutlined';\nLinkOutlined.inheritAttrs = false;\nexport default LinkOutlined;","// This icon file is generated automatically.\nvar MenuOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"menu\", \"theme\": \"outlined\" };\nexport default MenuOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport MenuOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MenuOutlined = function MenuOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": MenuOutlinedSvg\n }), null);\n};\n\nMenuOutlined.displayName = 'MenuOutlined';\nMenuOutlined.inheritAttrs = false;\nexport default MenuOutlined;","// This icon file is generated automatically.\nvar MergeCellsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482.2 508.4L331.3 389c-3-2.4-7.3-.2-7.3 3.6V478H184V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H144c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H184V546h140v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM880 116H596c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H700v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h140v294H636V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z\" } }] }, \"name\": \"merge-cells\", \"theme\": \"outlined\" };\nexport default MergeCellsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport MergeCellsOutlinedSvg from \"@ant-design/icons-svg/es/asn/MergeCellsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MergeCellsOutlined = function MergeCellsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": MergeCellsOutlinedSvg\n }), null);\n};\n\nMergeCellsOutlined.displayName = 'MergeCellsOutlined';\nMergeCellsOutlined.inheritAttrs = false;\nexport default MergeCellsOutlined;","// This icon file is generated automatically.\nvar NodeCollapseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM451.7 313.7l172.5 136.2c6.3 5.1 15.8.5 15.8-7.7V344h264c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H640v-98.2c0-8.1-9.4-12.8-15.8-7.7L451.7 298.3a9.9 9.9 0 000 15.4z\" } }] }, \"name\": \"node-collapse\", \"theme\": \"outlined\" };\nexport default NodeCollapseOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport NodeCollapseOutlinedSvg from \"@ant-design/icons-svg/es/asn/NodeCollapseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar NodeCollapseOutlined = function NodeCollapseOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": NodeCollapseOutlinedSvg\n }), null);\n};\n\nNodeCollapseOutlined.displayName = 'NodeCollapseOutlined';\nNodeCollapseOutlined.inheritAttrs = false;\nexport default NodeCollapseOutlined;","// This icon file is generated automatically.\nvar NodeExpandOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM456 344h264v98.2c0 8.1 9.5 12.8 15.8 7.7l172.5-136.2c5-3.9 5-11.4 0-15.3L735.8 162.1c-6.4-5.1-15.8-.5-15.8 7.7V268H456c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"node-expand\", \"theme\": \"outlined\" };\nexport default NodeExpandOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport NodeExpandOutlinedSvg from \"@ant-design/icons-svg/es/asn/NodeExpandOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar NodeExpandOutlined = function NodeExpandOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": NodeExpandOutlinedSvg\n }), null);\n};\n\nNodeExpandOutlined.displayName = 'NodeExpandOutlined';\nNodeExpandOutlined.inheritAttrs = false;\nexport default NodeExpandOutlined;","// This icon file is generated automatically.\nvar PicLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"pic-left\", \"theme\": \"outlined\" };\nexport default PicLeftOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PicLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/PicLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PicLeftOutlined = function PicLeftOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PicLeftOutlinedSvg\n }), null);\n};\n\nPicLeftOutlined.displayName = 'PicLeftOutlined';\nPicLeftOutlined.inheritAttrs = false;\nexport default PicLeftOutlined;","// This icon file is generated automatically.\nvar PictureOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\" } }] }, \"name\": \"picture\", \"theme\": \"outlined\" };\nexport default PictureOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PictureOutlinedSvg from \"@ant-design/icons-svg/es/asn/PictureOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PictureOutlined = function PictureOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PictureOutlinedSvg\n }), null);\n};\n\nPictureOutlined.displayName = 'PictureOutlined';\nPictureOutlined.inheritAttrs = false;\nexport default PictureOutlined;","// This icon file is generated automatically.\nvar ScissorOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 00288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\" } }] }, \"name\": \"scissor\", \"theme\": \"outlined\" };\nexport default ScissorOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ScissorOutlinedSvg from \"@ant-design/icons-svg/es/asn/ScissorOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ScissorOutlined = function ScissorOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ScissorOutlinedSvg\n }), null);\n};\n\nScissorOutlined.displayName = 'ScissorOutlined';\nScissorOutlined.inheritAttrs = false;\nexport default ScissorOutlined;","// This icon file is generated automatically.\nvar SplitCellsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M938.2 508.4L787.3 389c-3-2.4-7.3-.2-7.3 3.6V478H636V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H596c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H636V546h144v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM428 116H144c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H244v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h144v294H184V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z\" } }] }, \"name\": \"split-cells\", \"theme\": \"outlined\" };\nexport default SplitCellsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SplitCellsOutlinedSvg from \"@ant-design/icons-svg/es/asn/SplitCellsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SplitCellsOutlined = function SplitCellsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SplitCellsOutlinedSvg\n }), null);\n};\n\nSplitCellsOutlined.displayName = 'SplitCellsOutlined';\nSplitCellsOutlined.inheritAttrs = false;\nexport default SplitCellsOutlined;","// This icon file is generated automatically.\nvar ThunderboltOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z\" } }] }, \"name\": \"thunderbolt\", \"theme\": \"outlined\" };\nexport default ThunderboltOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ThunderboltOutlinedSvg from \"@ant-design/icons-svg/es/asn/ThunderboltOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ThunderboltOutlined = function ThunderboltOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ThunderboltOutlinedSvg\n }), null);\n};\n\nThunderboltOutlined.displayName = 'ThunderboltOutlined';\nThunderboltOutlined.inheritAttrs = false;\nexport default ThunderboltOutlined;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from '../_util/classNames';\nexport const flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];\nexport const justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];\nexport const alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];\nconst genClsWrap = (prefixCls, props) => {\n const wrapCls = {};\n flexWrapValues.forEach(cssKey => {\n wrapCls[`${prefixCls}-wrap-${cssKey}`] = props.wrap === cssKey;\n });\n return wrapCls;\n};\nconst genClsAlign = (prefixCls, props) => {\n const alignCls = {};\n alignItemsValues.forEach(cssKey => {\n alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey;\n });\n alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical;\n return alignCls;\n};\nconst genClsJustify = (prefixCls, props) => {\n const justifyCls = {};\n justifyContentValues.forEach(cssKey => {\n justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey;\n });\n return justifyCls;\n};\nfunction createFlexClassNames(prefixCls, props) {\n return classNames(_extends(_extends(_extends({}, genClsWrap(prefixCls, props)), genClsAlign(prefixCls, props)), genClsJustify(prefixCls, props)));\n}\nexport default createFlexClassNames;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { alignItemsValues, flexWrapValues, justifyContentValues } from '../utils';\nconst genFlexStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'flex',\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-rtl': {\n direction: 'rtl'\n },\n '&:empty': {\n display: 'none'\n }\n }\n };\n};\nconst genFlexGapStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n '&-gap-small': {\n gap: token.flexGapSM\n },\n '&-gap-middle': {\n gap: token.flexGap\n },\n '&-gap-large': {\n gap: token.flexGapLG\n }\n }\n };\n};\nconst genFlexWrapStyle = token => {\n const {\n componentCls\n } = token;\n const wrapStyle = {};\n flexWrapValues.forEach(value => {\n wrapStyle[`${componentCls}-wrap-${value}`] = {\n flexWrap: value\n };\n });\n return wrapStyle;\n};\nconst genAlignItemsStyle = token => {\n const {\n componentCls\n } = token;\n const alignStyle = {};\n alignItemsValues.forEach(value => {\n alignStyle[`${componentCls}-align-${value}`] = {\n alignItems: value\n };\n });\n return alignStyle;\n};\nconst genJustifyContentStyle = token => {\n const {\n componentCls\n } = token;\n const justifyStyle = {};\n justifyContentValues.forEach(value => {\n justifyStyle[`${componentCls}-justify-${value}`] = {\n justifyContent: value\n };\n });\n return justifyStyle;\n};\nexport default genComponentStyleHook('Flex', token => {\n const flexToken = mergeToken(token, {\n flexGapSM: token.paddingXS,\n flexGap: token.padding,\n flexGapLG: token.paddingLG\n });\n return [genFlexStyle(flexToken), genFlexGapStyle(flexToken), genFlexWrapStyle(flexToken), genAlignItemsStyle(flexToken), genJustifyContentStyle(flexToken)];\n});","export function isPresetSize(size) {\n return ['small', 'middle', 'large'].includes(size);\n}\nexport function isValidGapNumber(size) {\n if (!size) {\n // The case of size = 0 is deliberately excluded here, because the default value of the gap attribute in CSS is 0, so if the user passes 0 in, we can directly ignore it.\n return false;\n }\n return typeof size === 'number' && !Number.isNaN(size);\n}","import { anyType, booleanType, someType, stringType } from '../_util/type';\nexport const flexProps = () => ({\n prefixCls: stringType(),\n vertical: booleanType(),\n wrap: stringType(),\n justify: stringType(),\n align: stringType(),\n flex: someType([Number, String]),\n gap: someType([Number, String]),\n component: anyType()\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { computed, defineComponent } from 'vue';\nimport { useConfigContextInject } from '../config-provider/context';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport useStyle from './style';\nimport { isPresetSize } from '../_util/gapSize';\nimport omit from '../_util/omit';\nimport { withInstall } from '../_util/type';\nimport { flexProps } from './interface';\nimport createFlexClassNames from './utils';\nconst AFlex = defineComponent({\n name: 'AFlex',\n inheritAttrs: false,\n props: flexProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n flex: ctxFlex,\n direction: ctxDirection\n } = useConfigContextInject();\n const {\n prefixCls\n } = useConfigInject('flex', props);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedCls = computed(() => {\n var _a;\n return [prefixCls.value, hashId.value, createFlexClassNames(prefixCls.value, props), {\n [`${prefixCls.value}-rtl`]: ctxDirection.value === 'rtl',\n [`${prefixCls.value}-gap-${props.gap}`]: isPresetSize(props.gap),\n [`${prefixCls.value}-vertical`]: (_a = props.vertical) !== null && _a !== void 0 ? _a : ctxFlex === null || ctxFlex === void 0 ? void 0 : ctxFlex.value.vertical\n }];\n });\n return () => {\n var _a;\n const {\n flex,\n gap,\n component: Component = 'div'\n } = props,\n othersProps = __rest(props, [\"flex\", \"gap\", \"component\"]);\n const mergedStyle = {};\n if (flex) {\n mergedStyle.flex = flex;\n }\n if (gap && !isPresetSize(gap)) {\n mergedStyle.gap = `${gap}px`;\n }\n return wrapSSR(_createVNode(Component, _objectSpread({\n \"class\": [attrs.class, mergedCls.value],\n \"style\": [attrs.style, mergedStyle]\n }, omit(othersProps, ['justify', 'wrap', 'align', 'vertical'])), {\n default: () => [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]\n }));\n };\n }\n});\nexport default withInstall(AFlex);","<script setup lang=\"ts\">\nimport type { Page, WidgetEventItem, WidgetEventPreset, WidgetEvents } from '../../../../core/index.ts'\nimport {\n DEFAULT_WIDGET_EVENT_HANDLER,\n createWidgetEventItem,\n dedupeWidgetEvents,\n findPresetHint,\n formatWidgetEventBindingPreview,\n hasWidgetEventBinding,\n isEventNameUsed,\n isValidPageScriptHandler\n} from '../../../../runtime/runtime.ts'\nimport { DeleteOutlined, EditOutlined, InfoCircleOutlined, ThunderboltOutlined } from '@ant-design/icons-vue'\nimport message from 'ant-design-vue/es/message'\nimport { computed, ref } from 'vue'\nimport { CodeEditor } from '../../../../designer/shared/code-editor.vue'\nimport { buildEventBindingCompletionScope, buildPageContextCompletion } from '../../../../designer/shared/code-editor-page-context-completion.ts'\nimport { useInjectDesigner } from '../../../../designer/material-registry.ts'\n\ndefineOptions({ name: 'LowcodeEventPanel' })\n\ntype EventBindingPreset = {\n key: string\n label: string\n hint: string\n example: string\n paramHint?: string\n}\n\nconst INVALID_HANDLER_MESSAGE = '须为带 {} 的完整函数写法,如 (event, widgetCtx) => { ... }'\n\nconst EVENT_BINDING_PRESETS: EventBindingPreset[] = [\n {\n key: 'callMethod',\n label: '调用页面函数',\n hint: '在事件触发时调用同页自定义函数,可传 event / widgetCtx 给目标函数',\n example: `async (event, widgetCtx) => {\n await context.methods.loadProductList()\n}`,\n paramHint: 'context.methods 与「函数」面板定义的方法一致'\n },\n {\n key: 'updateData',\n label: '更新页面数据',\n hint: '根据当前组件或事件对象写入 context.data',\n example: `(event, widgetCtx) => {\n context.data.lastClickedId = widgetCtx.widget.id\n}`,\n paramHint: 'widgetCtx.widget 含 id / type / name / options'\n },\n {\n key: 'listItem',\n label: '列表行事件',\n hint: '列表项内事件可读取 item、index(由列表运行时注入 widgetCtx)',\n example: `(event, widgetCtx) => {\n context.data.selectedItemId = widgetCtx.item?.id\n context.data.selectedIndex = widgetCtx.index\n}`,\n paramHint: '仅列表行内组件事件可用 widgetCtx.item / widgetCtx.index'\n },\n {\n key: 'customLogic',\n label: '组合逻辑',\n hint: '可在同一 handler 内组合多次方法调用、条件判断等自定义逻辑',\n example: `async (event, widgetCtx) => {\n if (context.data.loading) return\n context.data.pageIndex = 1\n await context.methods.loadProductList()\n}`,\n paramHint: '页面环境通过闭包 context 访问,不占形参'\n }\n]\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: WidgetEvents\n presets: WidgetEventPreset[]\n }>(),\n {\n modelValue: () => []\n }\n)\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: WidgetEvents]\n}>()\n\nconst eventList = computed<WidgetEvents>({\n get: () => (Array.isArray(props.modelValue) ? props.modelValue : []),\n set: value => emit('update:modelValue', dedupeWidgetEvents(value))\n})\n\nconst editorVisible = ref(false)\nconst editingKey = ref<number | null>(null)\nconst editingHandler = ref('')\n\nconst designer = useInjectDesigner()\n\nconst pageContextCompletion = computed(() => {\n const page = designer?.page as Page | undefined\n const selectedWidget = designer?.selectedWidget\n const eventName = editingItem.value?.name?.trim()\n\n return buildPageContextCompletion({\n pageData: page?.data,\n methods: page?.methods,\n handler: editingHandler.value,\n eventBinding: buildEventBindingCompletionScope({\n page,\n selectedWidget: selectedWidget ?? undefined,\n eventName\n })\n })\n})\n\nconst editingItem = computed(() => {\n if (editingKey.value === null) return null\n return eventList.value.find(item => item.key === editingKey.value) ?? null\n})\n\nconst editingEventLabel = computed(() => {\n const item = editingItem.value\n if (!item) return ''\n const preset = findPresetHint(props.presets, item.name)\n return preset ? `${preset.label}(${item.name})` : item.name\n})\n\nconst editingPresetHint = computed(() => {\n const item = editingItem.value\n if (!item) return ''\n return findPresetHint(props.presets, item.name)?.hint ?? ''\n})\n\nconst editingHandlerInvalid = computed(() => {\n const handler = editingHandler.value.trim()\n return handler.length > 0 && !isValidPageScriptHandler(handler)\n})\n\nconst canSaveEditor = computed(() => {\n const handler = editingHandler.value.trim()\n return handler.length > 0 && isValidPageScriptHandler(handler)\n})\n\nfunction getSelectOptions(currentKey: number) {\n return props.presets\n .filter(preset => !isEventNameUsed(eventList.value, preset.name, currentKey))\n .map(preset => ({\n value: preset.name,\n label: preset.label\n }))\n}\n\nfunction updateItem(key: number, patch: Partial<Pick<WidgetEventItem, 'name' | 'handler'>>) {\n if (patch.name !== undefined) {\n const name = patch.name.trim()\n if (name && isEventNameUsed(eventList.value, name, key)) return\n }\n\n eventList.value = eventList.value.map(item => (item.key === key ? { ...item, ...patch } : item))\n}\n\nfunction removeItem(key: number) {\n eventList.value = eventList.value.filter(item => item.key !== key)\n}\n\nfunction handleAddItem() {\n const usedNames = new Set(eventList.value.map(item => item.name.trim()).filter(Boolean))\n const preset = props.presets.find(item => !usedNames.has(item.name))\n if (!preset) return\n\n eventList.value = [...eventList.value, createWidgetEventItem({ name: preset.name })]\n}\n\nconst canAddItem = computed(() => {\n const usedNames = new Set(eventList.value.map(item => item.name.trim()).filter(Boolean))\n return props.presets.some(item => !usedNames.has(item.name))\n})\n\nfunction openEditor(item: WidgetEventItem) {\n editingKey.value = item.key\n editingHandler.value = item.handler?.trim() ? item.handler : DEFAULT_WIDGET_EVENT_HANDLER\n editorVisible.value = true\n}\n\nfunction handleEditorSave() {\n if (editingKey.value === null) return\n\n const handler = editingHandler.value.trim()\n if (!handler) {\n message.warning('请先编写事件处理函数')\n return\n }\n\n if (!isValidPageScriptHandler(handler)) {\n message.warning(INVALID_HANDLER_MESSAGE)\n return\n }\n\n updateItem(editingKey.value, { handler: editingHandler.value })\n handleEditorCancel()\n}\n\nfunction handleEditorCancel() {\n editorVisible.value = false\n editingKey.value = null\n editingHandler.value = ''\n}\n\nfunction getBindingPreview(item: WidgetEventItem) {\n return formatWidgetEventBindingPreview(item.handler)\n}\n\nfunction insertExample(example: string) {\n editingHandler.value = example\n}\n</script>\n\n<template>\n <div class=\"p-4\">\n <div class=\"flex flex-col gap-2\">\n <div v-for=\"item in eventList\" :key=\"item.key\">\n <a-row :gutter=\"8\" align=\"middle\">\n <a-col flex=\"auto\">\n <a-select :value=\"item.name || undefined\" :options=\"getSelectOptions(item.key)\" placeholder=\"请选择事件\" class=\"w-full\" @update:value=\"updateItem(item.key, { name: String($event ?? '') })\" />\n </a-col>\n <a-col flex=\"none\">\n <a-button type=\"text\" size=\"small\" title=\"编辑事件处理\" @click=\"openEditor(item)\">\n <template #icon><EditOutlined /></template>\n </a-button>\n </a-col>\n <a-col flex=\"none\">\n <a-button type=\"text\" size=\"small\" danger title=\"删除事件\" @click=\"removeItem(item.key)\">\n <template #icon><DeleteOutlined /></template>\n </a-button>\n </a-col>\n </a-row>\n\n <a-tag v-if=\"hasWidgetEventBinding(item)\" class=\"mt-1 max-w-full font-mono text-[10px]\" :title=\"item.handler.trim()\">\n <template #icon><ThunderboltOutlined /></template>\n <span class=\"truncate\">{{ getBindingPreview(item) }}</span>\n </a-tag>\n </div>\n </div>\n\n <a-empty v-if=\"eventList.length === 0\" description=\"请先添加事件\">\n <a-button type=\"link\" size=\"small\" class=\"mt-2\" :disabled=\"!canAddItem\" @click=\"handleAddItem\">添加事件</a-button>\n </a-empty>\n <a-button v-else type=\"link\" size=\"small\" class=\"mt-2\" :disabled=\"!canAddItem\" @click=\"handleAddItem\">添加事件</a-button>\n </div>\n\n <a-modal\n v-model:open=\"editorVisible\"\n :title=\"`事件绑定 · ${editingEventLabel}`\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n width=\"640px\"\n destroy-on-close\n :ok-button-props=\"{ disabled: !canSaveEditor }\"\n @ok=\"handleEditorSave\"\n @cancel=\"handleEditorCancel\"\n >\n <div v-if=\"editingPresetHint\" class=\"mb-2 text-[11px] leading-snug text-[var(--colorTextQuaternary)]\">{{ editingPresetHint }}</div>\n\n <CodeEditor v-model=\"editingHandler\" language=\"javascript\" :placeholder=\"DEFAULT_WIDGET_EVENT_HANDLER\" :height=\"220\" :page-context-completion=\"pageContextCompletion\" />\n\n <div v-if=\"editingHandlerInvalid\" class=\"mt-1 text-[11px] text-[var(--colorError)]\">{{ INVALID_HANDLER_MESSAGE }}</div>\n\n <a-collapse :bordered=\"false\" expand-icon-position=\"end\" :default-active-key=\"[]\" class=\"mt-2\">\n <a-collapse-panel v-for=\"item in EVENT_BINDING_PRESETS\" :key=\"item.key\" :header=\"item.label\">\n <div class=\"mb-2 flex items-center justify-between gap-2\">\n <div class=\"flex min-w-0 flex-1 items-center gap-1 text-[11px] text-[var(--colorTextQuaternary)]\">\n <InfoCircleOutlined class=\"shrink-0 text-[10px] opacity-80\" />\n <span>{{ item.hint }}</span>\n </div>\n <a-button type=\"link\" size=\"small\" class=\"shrink-0 px-0\" @click=\"insertExample(item.example)\">插入示例</a-button>\n </div>\n <pre class=\"overflow-x-auto rounded-sm bg-[color-mix(in_srgb,var(--colorText)_4%,var(--colorBgContainer))] px-2 py-1.5 font-mono text-[10px] leading-[1.45] text-[var(--colorTextSecondary)]\">{{ item.example }}</pre>\n <div v-if=\"item.paramHint\" class=\"mt-2 text-[11px] leading-[1.4] text-[var(--colorTextQuaternary)]\">{{ item.paramHint }}</div>\n </a-collapse-panel>\n </a-collapse>\n\n <div class=\"mt-2 text-[11px] leading-[1.4] text-[var(--colorTextQuaternary)]\">\n 形参 <span class=\"font-mono\">event</span>、<span class=\"font-mono\">widgetCtx</span> 由事件触发时传入;<span class=\"font-mono\">context.data</span> / <span class=\"font-mono\">context.methods</span> 通过闭包访问,可直接编写任意调用与逻辑。\n </div>\n </a-modal>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport type { Widget, WidgetAnimationConfig, WidgetAnimationKeyframeStep, WidgetAnimationPreset, WidgetAnimationTrigger, WidgetMotionStyles, WidgetTransitionConfig } from '../../../../core/index.ts'\nimport {\n WIDGET_ANIMATION_PRESET_LABELS,\n WIDGET_ANIMATION_PRESETS,\n WIDGET_ANIMATION_TRIGGER_LABELS,\n WIDGET_ANIMATION_TRIGGERS,\n ensureWidgetMotion,\n ensureWidgetStyles,\n isWidgetAnimationEnabled,\n isWidgetTransitionEnabled\n} from '../../../../core/index.ts'\nimport { TRANSITION_PROPERTY_OPTIONS, TRANSITION_TIMING_OPTIONS, cleanWidgetMotion, cleanWidgetStyles } from '../../../../runtime/runtime.ts'\nimport { CodeEditor } from '../../../../designer/shared/code-editor.vue'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst presetOptions = WIDGET_ANIMATION_PRESETS.map(value => ({\n label: WIDGET_ANIMATION_PRESET_LABELS[value],\n value\n}))\n\nconst triggerOptions = WIDGET_ANIMATION_TRIGGERS.map(value => ({\n label: WIDGET_ANIMATION_TRIGGER_LABELS[value],\n value\n}))\n\nconst fillModeOptions = [\n { label: 'both', value: 'both' },\n { label: 'forwards', value: 'forwards' },\n { label: 'backwards', value: 'backwards' },\n { label: 'none', value: 'none' }\n] as const\n\nfunction commitMotion(next: WidgetMotionStyles) {\n ensureWidgetStyles(props.widget)\n const cleaned = cleanWidgetMotion(next)\n if (cleaned) {\n props.widget.styles!.motion = cleaned\n } else {\n delete props.widget.styles!.motion\n }\n const nextStyles = cleanWidgetStyles(props.widget.styles ?? {})\n if (nextStyles) {\n props.widget.styles = nextStyles\n } else {\n delete props.widget.styles\n }\n}\n\nconst motion = computed({\n get: () => ensureWidgetMotion(ensureWidgetStyles(props.widget)),\n set: value => commitMotion(value)\n})\n\nconst transitionEnabled = computed({\n get: () => isWidgetTransitionEnabled(motion.value.transition) || motion.value.transition?.enabled === true,\n set: enabled => {\n const next = { ...motion.value }\n if (!enabled) {\n delete next.transition\n } else {\n next.transition = {\n enabled: true,\n property: next.transition?.property ?? 'all',\n duration: next.transition?.duration ?? '200ms',\n timingFunction: next.transition?.timingFunction ?? 'ease'\n }\n }\n motion.value = next\n }\n})\n\nfunction patchTransition(patch: Partial<WidgetTransitionConfig>) {\n const next = { ...motion.value }\n next.transition = { enabled: true, ...next.transition, ...patch }\n motion.value = next\n}\n\nconst transitionProperty = computed({\n get: () => motion.value.transition?.property ?? 'all',\n set: value => patchTransition({ property: value || 'all' })\n})\n\nconst transitionDuration = computed({\n get: () => {\n const raw = motion.value.transition?.duration ?? '200ms'\n const match = raw.match(/^(\\d*\\.?\\d+)/)\n return match ? Number(match[1]) : 200\n },\n set: value => patchTransition({ duration: `${Math.max(0, value ?? 0)}ms` })\n})\n\nconst transitionTiming = computed({\n get: () => motion.value.transition?.timingFunction ?? 'ease',\n set: value => patchTransition({ timingFunction: value ?? 'ease' })\n})\n\nconst transitionDelay = computed({\n get: () => {\n const raw = motion.value.transition?.delay ?? '0ms'\n const match = raw.match(/^(\\d*\\.?\\d+)/)\n return match ? Number(match[1]) : 0\n },\n set: value => patchTransition({ delay: value ? `${Math.max(0, value)}ms` : undefined })\n})\n\nconst animationEnabled = computed({\n get: () => isWidgetAnimationEnabled(motion.value.animation),\n set: enabled => {\n const next = { ...motion.value }\n if (!enabled) {\n delete next.animation\n } else {\n next.animation = {\n enabled: true,\n preset: next.animation?.preset ?? 'fadeIn',\n trigger: next.animation?.trigger ?? 'mount',\n duration: next.animation?.duration ?? '600ms',\n fillMode: next.animation?.fillMode ?? 'both'\n }\n }\n motion.value = next\n }\n})\n\nfunction patchAnimation(patch: Partial<WidgetAnimationConfig>) {\n const current = motion.value.animation\n const next = { ...motion.value }\n next.animation = {\n enabled: true,\n preset: current?.preset ?? 'fadeIn',\n trigger: current?.trigger ?? 'mount',\n duration: current?.duration ?? '600ms',\n fillMode: current?.fillMode ?? 'both',\n ...current,\n ...patch\n }\n if (next.animation.preset !== 'custom') {\n delete next.animation.keyframes\n }\n motion.value = next\n}\n\nconst animationPreset = computed({\n get: () => motion.value.animation?.preset ?? 'fadeIn',\n set: value => patchAnimation({ preset: value as WidgetAnimationPreset })\n})\n\nconst animationTrigger = computed({\n get: () => motion.value.animation?.trigger ?? 'mount',\n set: value => patchAnimation({ trigger: value as WidgetAnimationTrigger })\n})\n\nconst animationDuration = computed({\n get: () => {\n const raw = motion.value.animation?.duration ?? '600ms'\n const match = raw.match(/^(\\d*\\.?\\d+)/)\n return match ? Number(match[1]) : 600\n },\n set: value => patchAnimation({ duration: `${Math.max(0, value ?? 0)}ms` })\n})\n\nconst animationDelay = computed({\n get: () => {\n const raw = motion.value.animation?.delay ?? '0ms'\n const match = raw.match(/^(\\d*\\.?\\d+)/)\n return match ? Number(match[1]) : 0\n },\n set: value => patchAnimation({ delay: value ? `${Math.max(0, value)}ms` : undefined })\n})\n\nconst animationTiming = computed({\n get: () => motion.value.animation?.timingFunction ?? 'ease',\n set: value => patchAnimation({ timingFunction: value ?? 'ease' })\n})\n\nconst animationIteration = computed({\n get: () => motion.value.animation?.iterationCount ?? '1',\n set: value => patchAnimation({ iterationCount: value || '1' })\n})\n\nconst animationFillMode = computed({\n get: () => motion.value.animation?.fillMode ?? 'both',\n set: value => patchAnimation({ fillMode: value })\n})\n\nconst inViewOnce = computed({\n get: () => motion.value.animation?.once !== false,\n set: value => patchAnimation({ once: value })\n})\n\nconst inViewThreshold = computed({\n get: () => Math.round((motion.value.animation?.threshold ?? 0.2) * 100),\n set: value => patchAnimation({ threshold: Math.min(100, Math.max(0, value ?? 20)) / 100 })\n})\n\nconst defaultCustomKeyframes: WidgetAnimationKeyframeStep[] = [\n { offset: 'from', styles: { opacity: '0', transform: 'translateY(16px)' } },\n { offset: 'to', styles: { opacity: '1', transform: 'translateY(0)' } }\n]\n\nconst customKeyframesJson = computed({\n get: () => JSON.stringify(motion.value.animation?.keyframes ?? defaultCustomKeyframes, null, 2),\n set: value => {\n try {\n const parsed = JSON.parse(value) as WidgetAnimationKeyframeStep[]\n if (!Array.isArray(parsed)) return\n patchAnimation({ keyframes: parsed })\n } catch {\n // 编辑中允许无效 JSON\n }\n }\n})\n\nconst showInViewOptions = computed(() => animationEnabled.value && animationTrigger.value === 'inView')\nconst showCustomKeyframes = computed(() => animationEnabled.value && animationPreset.value === 'custom')\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-divider orientation=\"left\" class=\"!my-2 !text-xs !text-[var(--colorTextSecondary)]\">过渡</a-divider>\n <a-form-item label=\"启用过渡\">\n <a-switch v-model:checked=\"transitionEnabled\" />\n </a-form-item>\n <template v-if=\"transitionEnabled\">\n <a-form-item label=\"过渡属性\">\n <a-select v-model:value=\"transitionProperty\" :options=\"[...TRANSITION_PROPERTY_OPTIONS]\" />\n </a-form-item>\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"时长\" :colon=\"false\">\n <a-input-number v-model:value=\"transitionDuration\" class=\"w-full\" :min=\"0\" :controls=\"false\" addon-after=\"ms\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"延迟\" :colon=\"false\">\n <a-input-number v-model:value=\"transitionDelay\" class=\"w-full\" :min=\"0\" :controls=\"false\" addon-after=\"ms\" />\n </a-form-item>\n </a-col>\n </a-row>\n <a-form-item label=\"缓动\">\n <a-select v-model:value=\"transitionTiming\" :options=\"[...TRANSITION_TIMING_OPTIONS]\" />\n </a-form-item>\n <p class=\"mb-0 text-[11px] leading-relaxed text-[var(--colorTextTertiary)]\">过渡写在默认态;悬停 / 按下 / 聚焦时的样式变化请在上方状态分段器中配置。</p>\n </template>\n\n <a-divider orientation=\"left\" class=\"!my-2 !text-xs !text-[var(--colorTextSecondary)]\">关键帧动画</a-divider>\n <a-form-item label=\"启用动画\">\n <a-switch v-model:checked=\"animationEnabled\" />\n </a-form-item>\n <template v-if=\"animationEnabled\">\n <a-form-item label=\"预设\">\n <a-select v-model:value=\"animationPreset\" :options=\"presetOptions\" />\n </a-form-item>\n <a-form-item label=\"触发方式\">\n <a-select v-model:value=\"animationTrigger\" :options=\"triggerOptions\" />\n </a-form-item>\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"时长\" :colon=\"false\">\n <a-input-number v-model:value=\"animationDuration\" class=\"w-full\" :min=\"0\" :controls=\"false\" addon-after=\"ms\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"延迟\" :colon=\"false\">\n <a-input-number v-model:value=\"animationDelay\" class=\"w-full\" :min=\"0\" :controls=\"false\" addon-after=\"ms\" />\n </a-form-item>\n </a-col>\n </a-row>\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"缓动\" :colon=\"false\">\n <a-select v-model:value=\"animationTiming\" :options=\"[...TRANSITION_TIMING_OPTIONS]\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"次数\" :colon=\"false\">\n <a-auto-complete\n v-model:value=\"animationIteration\"\n class=\"w-full\"\n :options=\"[\n { value: '1' },\n { value: '2' },\n { value: '3' },\n { value: 'infinite' }\n ]\"\n placeholder=\"1\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n <a-form-item label=\"填充模式\">\n <a-select v-model:value=\"animationFillMode\" :options=\"[...fillModeOptions]\" />\n </a-form-item>\n\n <template v-if=\"showInViewOptions\">\n <a-form-item label=\"仅播放一次\">\n <a-switch v-model:checked=\"inViewOnce\" />\n </a-form-item>\n <a-form-item label=\"可见阈值\">\n <a-slider v-model:value=\"inViewThreshold\" :min=\"0\" :max=\"100\" :tip-formatter=\"(v: number) => `${v}%`\" />\n </a-form-item>\n </template>\n\n <template v-if=\"showCustomKeyframes\">\n <a-form-item label=\"自定义关键帧 (JSON)\">\n <CodeEditor v-model=\"customKeyframesJson\" language=\"json\" :height=\"160\" />\n </a-form-item>\n </template>\n </template>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { formatHex, formatRgba, parseColor } from '../../../../runtime/runtime.ts'\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string\n allowClear?: boolean\n }>(),\n {\n modelValue: '',\n allowClear: true\n }\n)\n\nconst emit = defineEmits<{ 'update:modelValue': [value: string] }>()\n\nconst parsed = computed(() => parseColor(props.modelValue))\n\nconst hexValue = computed({\n get: () => formatHex(parsed.value),\n set: value => {\n const next = parseColor(value)\n next.a = parsed.value.a\n emit('update:modelValue', formatRgba(next))\n }\n})\n\nconst textValue = computed({\n get: () => props.modelValue,\n set: value => emit('update:modelValue', value)\n})\n\nfunction handleClear() {\n emit('update:modelValue', '')\n}\n</script>\n\n<template>\n <a-flex gap=\"small\" align=\"center\" class=\"style-color-input\">\n <input v-model=\"hexValue\" type=\"color\" class=\"style-color-input__picker\" />\n <a-input v-model:value=\"textValue\" placeholder=\"rgba(0, 0, 0, 1)\" allow-clear @clear=\"handleClear\" />\n </a-flex>\n</template>\n\n<style scoped>\n.style-color-input {\n width: 100%;\n}\n\n.style-color-input__picker {\n width: 32px;\n height: 32px;\n flex-shrink: 0;\n padding: 0;\n border: 1px solid var(--colorBorder);\n border-radius: 6px;\n cursor: pointer;\n background: transparent;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { PlusOutlined, LoadingOutlined } from '@ant-design/icons-vue'\nimport message from 'ant-design-vue/es/message'\nimport type { UploadFile } from 'ant-design-vue/es/upload/interface'\nimport { computed, inject, ref, watch } from 'vue'\nimport { hasBindingExpression, LOWCODE_UPLOAD_KEY } from '../../../../runtime/runtime.ts'\n\nconst model = defineModel<string>({ default: '' })\n\nconst props = withDefaults(\n defineProps<{\n accept?: string\n maxCount?: number\n /** 0:私有,1:公开,2:商品(未传 directory 时映射存储目录) */\n type?: number\n directory?: string\n size?: string\n disabled?: boolean\n }>(),\n { accept: 'image/*', maxCount: 1, type: 1, size: '80px', disabled: false }\n)\n\nfunction directoryFromType(t: number) {\n switch (t) {\n case 0:\n return 'private'\n case 1:\n return 'public'\n case 2:\n return 'products'\n default:\n return 'uploads'\n }\n}\n\nconst loading = ref(false)\nconst fileList = ref<UploadFile[]>([])\nconst uploadHandler = inject(LOWCODE_UPLOAD_KEY, null)\n\nconst uploadDirectory = computed(() => {\n const dir = (props.directory ?? '').trim() || directoryFromType(props.type ?? 1)\n return dir || undefined\n})\n\nfunction beforeUpload(file: File) {\n const sizeMb = file.size / 1024 / 1024\n if (sizeMb > 200) {\n message.error('file must smaller than 200MB!')\n return false\n }\n return true\n}\n\nasync function customRequest(options: { file: File | Blob | string; onSuccess?: (body: unknown) => void; onError?: (error: Error) => void }) {\n if (!uploadHandler) {\n message.error('未配置 uploadHandler')\n options.onError?.(new Error('LOWCODE_UPLOAD_KEY not provided'))\n return\n }\n\n const file = options.file\n if (!(file instanceof File)) {\n options.onError?.(new Error('invalid file'))\n return\n }\n\n loading.value = true\n try {\n const url = await uploadHandler({\n file,\n directory: uploadDirectory.value\n })\n\n model.value = url\n options.onSuccess?.({ url })\n } catch (error) {\n const msg = error instanceof Error ? error.message : 'upload error'\n message.error(msg)\n options.onError?.(error instanceof Error ? error : new Error(msg))\n } finally {\n loading.value = false\n }\n}\n\nconst previewUrl = computed(() => {\n const value = model.value?.trim()\n if (!value || hasBindingExpression(value)) return ''\n return value\n})\n\nwatch(\n () => previewUrl.value,\n value => {\n fileList.value = value ? [{ uid: '-1', name: 'image', status: 'done', url: value }] : []\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <a-upload v-model:file-list=\"fileList\" :disabled=\"disabled || !uploadHandler\" :show-upload-list=\"false\" :max-count=\"maxCount\" :accept=\"accept\" :before-upload=\"beforeUpload\" :custom-request=\"customRequest\">\n <img v-if=\"previewUrl\" :src=\"previewUrl\" class=\"cursor-pointer rounded object-cover\" :style=\"{ width: size, height: size }\" alt=\"\" />\n <div v-else class=\"flex-center cursor-pointer bg-[var(--colorBgLayout)] hover:bg-[var(--colorFillSecondary)]\" :style=\"{ width: size, height: size }\">\n <LoadingOutlined v-if=\"loading\" />\n <PlusOutlined v-else />\n </div>\n </a-upload>\n</template>\n","<script setup lang=\"ts\">\nconst props = withDefaults(\n defineProps<{\n min?: number\n max?: number\n step?: number\n }>(),\n {\n min: 0,\n max: 100,\n step: 1\n }\n)\n\nconst model = defineModel<number>({ default: 100 })\n</script>\n\n<template>\n <div class=\"style-percent-input\">\n <a-slider v-model:value=\"model\" class=\"style-percent-input__slider\" :min=\"props.min\" :max=\"props.max\" :step=\"props.step\" />\n <a-input-number\n v-model:value=\"model\"\n class=\"style-percent-input__number\"\n :min=\"props.min\"\n :max=\"props.max\"\n :step=\"props.step\"\n :controls=\"false\"\n addon-after=\"%\"\n />\n </div>\n</template>\n\n<style scoped>\n.style-percent-input {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 96px;\n gap: 12px;\n align-items: center;\n width: 100%;\n}\n\n.style-percent-input__slider {\n min-width: 0;\n margin: 0;\n}\n\n.style-percent-input__number {\n width: 100%;\n}\n</style>\n","import type { Widget, WidgetOptions, WidgetStyles } from '../../../core/index.ts'\nimport type { WidgetEvents } from '../../../core/index.ts'\nimport { canMutateWidgetContent, ensureWidgetStyles, getWidgetDefaultStyle } from '../../../core/index.ts'\nimport type { CssStyle, CssStyleValue, ResponsiveStyleValue, StyleBreakpoint } from '../../../runtime/runtime.ts'\nimport { cleanEmptyStyle, cleanWidgetStyles, isResponsiveStyleValue, readStyleValue, resolveResponsiveValue, STYLE_BREAKPOINTS } from '../../../runtime/runtime.ts'\nimport { computed, watch, type ComputedRef, type MaybeRefOrGetter, type Ref, toValue } from 'vue'\n\nfunction stylePropertyKey(key: MaybeRefOrGetter<string>) {\n return computed(() => toValue(key))\n}\nimport { useInjectDesigner, useInjectMaterialRegistry } from '../../../designer/material-registry.ts'\n\nexport function useCssStyle(model: Ref<CssStyle | undefined>) {\n const style = computed({\n get: () => model.value ?? {},\n set: value => {\n model.value = cleanEmptyStyle(value)\n }\n })\n\n function get(key: string, fallback = '') {\n const raw = style.value[key]\n if (typeof raw === 'string') return raw || fallback\n if (isResponsiveStyleValue(raw)) return resolveResponsiveValue(raw, 'xs') || fallback\n return fallback\n }\n\n /** 写入普通单值;会覆盖该属性的响应式配置 */\n function set(key: string, value?: string | null) {\n const next = { ...style.value }\n if (value === undefined || value === null || value === '') {\n delete next[key]\n } else {\n next[key] = value\n }\n style.value = next\n }\n\n function patch(nextStyle: CssStyle) {\n style.value = nextStyle\n }\n\n return { style, get, set, patch }\n}\n\nfunction pruneResponsiveValue(value: ResponsiveStyleValue): ResponsiveStyleValue {\n const pruned: ResponsiveStyleValue = {}\n for (const breakpoint of STYLE_BREAKPOINTS) {\n const item = value[breakpoint]\n if (typeof item === 'string' && item.trim()) {\n pruned[breakpoint] = item.trim()\n }\n }\n return pruned\n}\n\n/** 单个样式属性的响应式读写(由属性项自行开关响应式) */\nexport function useStyleProperty(model: Ref<CssStyle | undefined>, key: MaybeRefOrGetter<string>) {\n const propertyKey = stylePropertyKey(key)\n\n const style = computed(() => model.value ?? {})\n\n const isResponsive = computed(() => isResponsiveStyleValue(style.value[propertyKey.value]))\n\n /** Setter 专用提交:保留响应式对象,避免 cleanResponsiveValue 把单断点折叠成字符串 */\n function commitStyle(next: CssStyle) {\n const cleaned: CssStyle = {}\n Object.entries(next).forEach(([entryKey, value]) => {\n if (value === undefined || value === null || value === '') return\n if (isResponsiveStyleValue(value)) {\n const pruned = pruneResponsiveValue(value)\n cleaned[entryKey] = Object.keys(pruned).length > 0 ? pruned : {}\n return\n }\n cleaned[entryKey] = value\n })\n model.value = cleaned\n }\n\n function writeProperty(value: CssStyleValue | undefined) {\n const next = { ...style.value }\n const currentKey = propertyKey.value\n if (value === undefined) delete next[currentKey]\n else next[currentKey] = value\n commitStyle(next)\n }\n\n const flatValue = computed({\n get: () => {\n const raw = style.value[propertyKey.value]\n if (typeof raw === 'string') return raw\n if (typeof raw === 'number' && !Number.isNaN(raw)) return String(raw)\n if (isResponsiveStyleValue(raw)) return resolveResponsiveValue(raw, 'xs')\n return ''\n },\n set: value => {\n if (isResponsive.value) return\n const text = typeof value === 'string' ? value.trim() : value == null || value === '' ? '' : String(value).trim()\n writeProperty(text || undefined)\n }\n })\n\n function getAt(breakpoint: StyleBreakpoint): string {\n return readStyleValue(style.value, propertyKey.value, breakpoint)\n }\n\n function setAt(breakpoint: StyleBreakpoint, value?: string | null) {\n const currentKey = propertyKey.value\n const raw = style.value[currentKey]\n const responsive: ResponsiveStyleValue = isResponsiveStyleValue(raw) ? { ...raw } : {}\n if (typeof raw === 'string' && raw.trim() && !isResponsiveStyleValue(raw)) {\n responsive.xs = raw.trim()\n }\n\n const normalized = typeof value === 'string' ? value.trim() : value == null ? '' : String(value).trim()\n if (!normalized) delete responsive[breakpoint]\n else responsive[breakpoint] = normalized\n\n const pruned = pruneResponsiveValue(responsive)\n writeProperty(Object.keys(pruned).length > 0 ? pruned : {})\n }\n\n function toggleResponsive() {\n const raw = style.value[propertyKey.value]\n if (isResponsiveStyleValue(raw)) {\n let collapsed = ''\n for (const breakpoint of [...STYLE_BREAKPOINTS].reverse()) {\n const value = resolveResponsiveValue(raw, breakpoint)\n if (value) {\n collapsed = value\n break\n }\n }\n writeProperty(collapsed || undefined)\n return\n }\n\n const responsive: ResponsiveStyleValue = {}\n if (typeof raw === 'string' && raw.trim()) {\n responsive.xs = raw.trim()\n }\n writeProperty(Object.keys(responsive).length > 0 ? responsive : {})\n }\n\n return { isResponsive, flatValue, getAt, setAt, toggleResponsive }\n}\n\nexport type UseWidgetSetterOptions<TOptions extends WidgetOptions = WidgetOptions> = {\n widget: MaybeRefOrGetter<Widget>\n ensureOptions: (widget: Widget) => void\n /** 未传时按 widget.type 从物料注册表读取 */\n eventPresetsType?: string\n}\n\nexport function useWidgetSetter<TOptions extends WidgetOptions = WidgetOptions>(options: UseWidgetSetterOptions<TOptions>) {\n const designer = useInjectDesigner()\n const materialRegistry = useInjectMaterialRegistry()\n\n const currentWidget = computed((): Widget => {\n const propWidget = toValue(options.widget)\n return (designer?.selectedWidget ?? propWidget)!\n })\n\n const isReadonly = computed(() => {\n if (!designer?.page) return false\n return !canMutateWidgetContent(designer.page, currentWidget.value)\n })\n\n const widgetOptions = computed({\n get: () => currentWidget.value.options as TOptions,\n set: value => {\n if (isReadonly.value) return\n currentWidget.value.options = value\n }\n })\n\n const widgetTitle = computed({\n get: () => currentWidget.value.title ?? '',\n set: value => {\n if (isReadonly.value) return\n currentWidget.value.title = value\n }\n })\n\n watch(\n currentWidget,\n current => {\n const run = () => {\n if (!current.options) {\n current.options = {}\n }\n options.ensureOptions(current)\n }\n if (designer) {\n designer.runWithoutHistoryRecording(run)\n } else {\n run()\n }\n },\n { immediate: true, deep: true }\n )\n\n function useWidgetDefaultStyle(): ComputedRef<CssStyle> {\n return computed({\n get: () => getWidgetDefaultStyle(currentWidget.value),\n set: value => {\n if (isReadonly.value) return\n ensureWidgetStyles(currentWidget.value)\n const cleaned = cleanEmptyStyle(value)\n if (Object.keys(cleaned).length === 0) {\n delete currentWidget.value.styles!.default\n } else {\n currentWidget.value.styles!.default = cleaned\n }\n currentWidget.value.styles = cleanWidgetStyles(currentWidget.value.styles ?? {}) ?? {}\n }\n })\n }\n\n function useWidgetStyles(): ComputedRef<WidgetStyles> {\n return computed({\n get: () => currentWidget.value.styles ?? {},\n set: value => {\n if (isReadonly.value) return\n currentWidget.value.styles = cleanWidgetStyles(value) ?? {}\n }\n })\n }\n\n function useWidgetEventsBinding(): ComputedRef<WidgetEvents> {\n return computed({\n get: () => currentWidget.value.events ?? [],\n set: value => {\n if (isReadonly.value) return\n currentWidget.value.events = value\n }\n })\n }\n\n const eventPresets = computed(() => {\n const type = options.eventPresetsType ?? toValue(options.widget).type\n return materialRegistry.getEventPresets(type)\n })\n\n return {\n designer,\n currentWidget,\n isReadonly,\n widgetOptions,\n widgetTitle,\n eventPresets,\n useWidgetDefaultStyle,\n useWidgetStyles,\n useWidgetEventsBinding\n }\n}\n","<script setup lang=\"ts\">\nimport { BgColorsOutlined, PictureOutlined } from '@ant-design/icons-vue'\nimport type { SelectValue } from 'ant-design-vue/es/select'\nimport { computed, ref, watch } from 'vue'\nimport StyleColorInput from '../components/color-input.vue'\nimport ImageUpload from '../components/image-upload.vue'\nimport StylePercentInput from '../components/percent-input.vue'\nimport { clampAlpha, formatRgba, parseColor } from '../../../../runtime/runtime.ts'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { style, get, set, patch } = useCssStyle(model)\n\nconst backgroundType = ref<'color' | 'image'>('color')\n\nwatch(\n () => style.value.backgroundImage,\n value => {\n backgroundType.value = value ? 'image' : 'color'\n },\n { immediate: true }\n)\n\nconst backgroundTypeOptions = [\n { value: 'color', icon: BgColorsOutlined, title: '纯色' },\n { value: 'image', icon: PictureOutlined, title: '图片' }\n] as const\n\nfunction toSelectString(value: SelectValue): string | undefined {\n if (value == null) return undefined\n if (Array.isArray(value)) {\n const first = value[0]\n if (first == null) return undefined\n return typeof first === 'object' ? String(first.value) : String(first)\n }\n if (typeof value === 'object') return String(value.value)\n return String(value)\n}\n\nfunction updateBackgroundType(value: SelectValue) {\n const type = toSelectString(value)\n if (type !== 'color' && type !== 'image') return\n if (backgroundType.value === type) return\n\n backgroundType.value = type\n\n if (type === 'color') {\n const next = { ...style.value }\n delete next.backgroundImage\n delete next.backgroundSize\n delete next.backgroundRepeat\n delete next.backgroundPosition\n patch(next)\n return\n }\n\n patch({\n ...style.value,\n backgroundImage: get('backgroundImage') || 'url(\"\")',\n backgroundSize: get('backgroundSize') || 'cover',\n backgroundRepeat: get('backgroundRepeat') || 'no-repeat'\n })\n}\n\nconst backgroundColor = computed({\n get: () => get('backgroundColor'),\n set: value => set('backgroundColor', value)\n})\n\nconst backgroundImage = computed({\n get: () => {\n const value = get('backgroundImage')\n if (!value) return ''\n const match = value.match(/^url\\([\"']?(.*?)[\"']?\\)$/)\n return match?.[1] ?? ''\n },\n set: value => {\n const trimmed = value?.trim()\n if (!trimmed) {\n set('backgroundImage', 'url(\"\")')\n return\n }\n patch({\n ...style.value,\n backgroundImage: `url(\"${trimmed}\")`,\n backgroundSize: get('backgroundSize') || 'cover',\n backgroundRepeat: get('backgroundRepeat') || 'no-repeat'\n })\n }\n})\n\nconst backgroundOpacity = computed({\n get: () => {\n const color = parseColor(get('backgroundColor') || 'rgba(255, 255, 255, 1)')\n return Math.round(color.a * 100)\n },\n set: value => {\n const percent = clampAlpha(value)\n const current = parseColor(get('backgroundColor') || 'rgb(255, 255, 255)')\n current.a = percent / 100\n set('backgroundColor', formatRgba(current))\n }\n})\n\nfunction updateBackgroundSize(value: SelectValue) {\n const next = toSelectString(value)\n set('backgroundSize', next == null ? undefined : next)\n}\n\nfunction updateBackgroundRepeat(value: SelectValue) {\n const next = toSelectString(value)\n if (next == null) {\n set('backgroundRepeat', undefined)\n return\n }\n set('backgroundRepeat', next)\n if (next !== 'no-repeat' && (get('backgroundSize') || 'cover') === 'cover') {\n set('backgroundSize', 'auto')\n }\n}\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-form-item label=\"背景类型\">\n <a-radio-group :value=\"backgroundType\" @update:value=\"updateBackgroundType\">\n <a-radio-button v-for=\"item in backgroundTypeOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <template v-if=\"backgroundType === 'color'\">\n <a-form-item label=\"背景色\">\n <StyleColorInput v-model=\"backgroundColor\" />\n </a-form-item>\n <a-form-item label=\"透明度\">\n <StylePercentInput v-model=\"backgroundOpacity\" />\n </a-form-item>\n </template>\n\n <template v-else>\n <a-form-item label=\"图片地址\">\n <div class=\"flex items-start gap-3\">\n <ImageUpload v-model=\"backgroundImage\" accept=\"image/*\" :type=\"1\" :max-count=\"1\" size=\"80px\" />\n <a-input v-model:value=\"backgroundImage\" class=\"min-w-0 flex-1\" placeholder=\"图片地址,支持上传或粘贴 URL\" allow-clear />\n </div>\n </a-form-item>\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"尺寸\">\n <a-select\n :value=\"get('backgroundSize') || 'cover'\"\n allow-clear\n placeholder=\"cover\"\n :options=\"[\n { label: 'cover', value: 'cover' },\n { label: 'contain', value: 'contain' },\n { label: 'auto', value: 'auto' }\n ]\"\n @update:value=\"updateBackgroundSize\"\n />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"重复\">\n <a-select\n :value=\"get('backgroundRepeat') || 'no-repeat'\"\n allow-clear\n placeholder=\"no-repeat\"\n :options=\"[\n { label: 'no-repeat', value: 'no-repeat' },\n { label: 'repeat', value: 'repeat' },\n { label: 'repeat-x', value: 'repeat-x' },\n { label: 'repeat-y', value: 'repeat-y' }\n ]\"\n @update:value=\"updateBackgroundRepeat\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n </template>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { MobileOutlined } from '@ant-design/icons-vue'\nimport { computed, reactive, ref, toRef } from 'vue'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { STYLE_BREAKPOINT_META, STYLE_BREAKPOINTS, formatSize, parseSize } from '../../../../runtime/runtime.ts'\nimport { useStyleProperty } from '../use-widget-setter.ts'\n\ndefineOptions({ inheritAttrs: false })\n\ntype StyleValueInputMode = 'number' | 'text'\n\ntype StyleValueFormatter = (value: any, unit?: string) => string\n\ntype StylePresetConfig = {\n inputMode?: StyleValueInputMode\n showUnit?: boolean\n units?: readonly string[]\n defaultUnit?: string\n fixedUnit?: string\n allowAuto?: boolean\n allowUnitless?: boolean\n placeholder?: string\n responsive?: boolean\n format?: StyleValueFormatter\n}\n\ntype FormatStyleValueOptions = {\n showUnit?: boolean\n fixedUnit?: string\n format?: StyleValueFormatter\n}\n\nconst STYLE_INPUT_PRESETS = {\n size: {\n inputMode: 'number',\n showUnit: true,\n units: ['px', '%', 'em', 'rem', 'vw', 'vh', 'auto'],\n allowAuto: true,\n responsive: true\n },\n gap: {\n inputMode: 'number',\n units: ['px', 'rem', 'em'],\n placeholder: '0',\n responsive: true\n },\n fontSize: {\n inputMode: 'number',\n units: ['px', 'em', 'rem'],\n responsive: true\n },\n lineHeight: {\n inputMode: 'number',\n units: ['px', 'em', 'rem', '%'],\n allowUnitless: true,\n responsive: true\n },\n borderRadius: {\n inputMode: 'number',\n units: ['px', '%'],\n responsive: true\n },\n borderWidth: {\n inputMode: 'number',\n units: ['px'],\n responsive: true\n },\n plainNumber: {\n inputMode: 'number',\n showUnit: false,\n placeholder: 'auto',\n responsive: false\n },\n orientationMargin: {\n inputMode: 'number',\n units: ['px', '%', 'em', 'rem'],\n placeholder: '0',\n responsive: false\n },\n carouselHeight: {\n inputMode: 'number',\n showUnit: true,\n units: ['px', '%', 'em', 'rem', 'vw', 'vh', 'auto'],\n allowAuto: true,\n placeholder: 'auto',\n responsive: false\n },\n inset: {\n inputMode: 'text',\n showUnit: false,\n placeholder: 'auto',\n responsive: false\n },\n cssExpression: {\n inputMode: 'text',\n showUnit: false,\n responsive: true\n },\n lengthPx: {\n inputMode: 'number',\n showUnit: false,\n fixedUnit: 'px',\n responsive: false\n }\n} as const satisfies Record<string, StylePresetConfig>\n\ntype StyleInputPresetKey = keyof typeof STYLE_INPUT_PRESETS\n\ntype ResolvedStyleInputConfig = Required<Pick<StylePresetConfig, 'inputMode' | 'placeholder'>> & StylePresetConfig\n\nfunction resolvePreset(preset: StyleInputPresetKey): ResolvedStyleInputConfig {\n const presetConfig: StylePresetConfig = STYLE_INPUT_PRESETS[preset]\n const inputMode = presetConfig.inputMode ?? 'number'\n const units = presetConfig.units\n const showUnit = presetConfig.showUnit ?? (inputMode === 'number' && !presetConfig.fixedUnit && (units?.length ?? 0) > 0)\n\n return {\n inputMode,\n showUnit,\n units,\n defaultUnit: presetConfig.defaultUnit ?? units?.[0] ?? 'px',\n fixedUnit: presetConfig.fixedUnit,\n allowAuto: presetConfig.allowAuto ?? false,\n allowUnitless: presetConfig.allowUnitless ?? false,\n placeholder: presetConfig.placeholder ?? (inputMode === 'text' ? '' : '0'),\n responsive: presetConfig.responsive ?? false,\n format: presetConfig.format\n }\n}\n\nfunction normalizeModelValue(input: unknown): string {\n if (input == null) return ''\n if (typeof input === 'string') return input\n if (typeof input === 'number' && !Number.isNaN(input)) return String(input)\n return ''\n}\n\nfunction parseStyleValue(input: unknown, options: { allowUnitless?: boolean; defaultUnit?: string; showUnit?: boolean }) {\n const normalized = normalizeModelValue(input)\n if (!normalized.trim()) {\n return { value: null, unit: options.showUnit === false ? '' : (options.defaultUnit ?? 'px'), raw: '' }\n }\n if (normalized.trim() === 'auto') {\n return { value: null, unit: 'auto', raw: 'auto' }\n }\n\n const trimmed = normalized.trim()\n if (options.showUnit === false || options.allowUnitless) {\n const unitlessMatch = trimmed.match(/^(-?\\d+(?:\\.\\d+)?)$/)\n if (unitlessMatch) {\n return { value: Number(unitlessMatch[1]), unit: '', raw: trimmed }\n }\n }\n\n if (options.showUnit === false) {\n const withUnitMatch = trimmed.match(/^(-?\\d+(?:\\.\\d+)?)(px|%|em|rem|vw|vh)?$/)\n if (withUnitMatch) {\n return { value: Number(withUnitMatch[1]), unit: '', raw: withUnitMatch[1] }\n }\n }\n\n const parsed = parseSize(trimmed)\n if (parsed.raw === trimmed && parsed.value == null && parsed.unit === 'px' && !trimmed.match(/^(-?\\d+(?:\\.\\d+)?)(px|%|em|rem|vw|vh)?$/)) {\n return { value: null, unit: options.showUnit === false ? '' : (options.defaultUnit ?? 'px'), raw: trimmed }\n }\n return parsed\n}\n\nfunction formatStyleValue(value: number | null | undefined, unit: string, options: FormatStyleValueOptions = {}) {\n if (unit === 'auto') return 'auto'\n if (value === null || value === undefined || Number.isNaN(value)) return ''\n\n if (options.format) {\n return options.format(value, unit)\n }\n\n if (options.showUnit === false) {\n return String(value)\n }\n\n if (options.fixedUnit) {\n return `${value}${options.fixedUnit}`\n }\n\n if (unit === '') {\n return String(value)\n }\n\n return formatSize(value, unit)\n}\n\nconst props = defineProps<{\n preset: StyleInputPresetKey\n property?: string\n disabled?: boolean\n format?: StyleValueFormatter\n}>()\n\nconst presetRef = toRef(props, 'preset')\nconst config = computed(() => resolvePreset(presetRef.value))\nconst valueFormatter = computed(() => props.format ?? config.value.format)\n\nfunction formatOutputValue(value: number | null | undefined, unit: string) {\n const cfg = config.value\n return formatStyleValue(value, unit, {\n showUnit: cfg.showUnit,\n fixedUnit: cfg.fixedUnit,\n format: valueFormatter.value\n })\n}\n\nconst showUnitSelect = computed(() => {\n const cfg = config.value\n if (cfg.inputMode !== 'number') return false\n if (cfg.fixedUnit) return false\n if (cfg.showUnit === false) return false\n return (cfg.units?.length ?? 0) > 0 || cfg.showUnit === true\n})\n\nconst fixedUnitLabel = computed(() => (config.value.inputMode === 'number' && !config.value.showUnit ? config.value.fixedUnit : undefined))\n\nconst unitOptions = computed(() => {\n const cfg = config.value\n const units = [...(cfg.units ?? [])]\n if (cfg.allowAuto && !units.includes('auto')) units.push('auto')\n if (cfg.allowUnitless && !units.includes('')) units.unshift('')\n return units\n})\n\nconst numberBind = computed(() => ({\n class: 'min-w-0 flex-1',\n placeholder: config.value.placeholder,\n disabled: props.disabled,\n bordered: true,\n controls: false,\n ...(fixedUnitLabel.value ? { addonAfter: fixedUnitLabel.value } : {})\n}))\n\nconst model = defineModel<CssStyle | string>({ default: () => ({}) })\n\nconst isStyleBinding = computed(() => props.property != null && props.property !== '')\n\nconst styleModel = computed({\n get: () => (isStyleBinding.value && typeof model.value === 'object' && model.value != null ? model.value : {}) as CssStyle,\n set: value => {\n model.value = value\n }\n})\n\nconst responsiveEnabled = computed(() => isStyleBinding.value && config.value.responsive === true)\n\nconst { isResponsive, flatValue, getAt, setAt, toggleResponsive } = useStyleProperty(\n styleModel,\n computed(() => props.property ?? '')\n)\n\nconst popoverOpen = ref(false)\n\nfunction createValueModel(getValue: () => string, setValue: (value: string) => void) {\n const parsed = computed(() => {\n const modelValue = normalizeModelValue(getValue())\n if (config.value.inputMode === 'text') {\n return { value: null, unit: '', raw: modelValue }\n }\n return parseStyleValue(modelValue, {\n allowUnitless: config.value.allowUnitless,\n defaultUnit: config.value.defaultUnit,\n showUnit: config.value.showUnit\n })\n })\n\n const isAuto = computed(() => parsed.value.unit === 'auto')\n\n const textValue = computed({\n get: () => normalizeModelValue(getValue()),\n set: value => setValue(normalizeModelValue(value).trim())\n })\n\n const numericValue = computed({\n get: () => parsed.value.value ?? undefined,\n set: value => {\n if (value === null || value === undefined) {\n setValue('')\n return\n }\n const cfg = config.value\n const unit = cfg.showUnit === false ? '' : parsed.value.unit === 'auto' ? (cfg.defaultUnit ?? 'px') : parsed.value.unit || cfg.defaultUnit || 'px'\n setValue(formatOutputValue(value, unit))\n }\n })\n\n const unitValue = computed({\n get: () => {\n const cfg = config.value\n if (cfg.allowUnitless && parsed.value.unit === '') return ''\n return parsed.value.unit || cfg.defaultUnit || 'px'\n },\n set: unit => {\n if (unit === 'auto') {\n setValue('auto')\n return\n }\n setValue(formatOutputValue(parsed.value.value, unit))\n }\n })\n\n return { parsed, isAuto, textValue, numericValue, unitValue }\n}\n\nconst primaryValue = computed({\n get: () => {\n if (!isStyleBinding.value) return typeof model.value === 'string' ? model.value : ''\n if (isResponsive.value) return getAt('xs')\n return flatValue.value\n },\n set: value => {\n if (!isStyleBinding.value) {\n model.value = value\n return\n }\n if (isResponsive.value) {\n setAt('xs', value)\n return\n }\n flatValue.value = value\n }\n})\n\nconst primaryBinding = createValueModel(\n () => primaryValue.value,\n v => {\n primaryValue.value = v\n }\n)\n\nconst primaryIsAuto = primaryBinding.isAuto\nconst primaryNumericValue = primaryBinding.numericValue\nconst primaryUnitValue = primaryBinding.unitValue\nconst primaryTextValue = primaryBinding.textValue\n\nconst breakpointRows = reactive(\n STYLE_BREAKPOINTS.map(breakpoint => ({\n breakpoint,\n label: STYLE_BREAKPOINT_META[breakpoint].label,\n ...createValueModel(\n () => getAt(breakpoint),\n v => setAt(breakpoint, v)\n )\n }))\n)\n\nfunction getUnitSelectPopupContainer(triggerNode: HTMLElement) {\n return triggerNode.closest('.lowcode-theme-scope') ?? document.body\n}\n\nfunction handlePopoverOpen(open: boolean) {\n popoverOpen.value = open\n if (open && !isResponsive.value) toggleResponsive()\n}\n\nfunction disableResponsive() {\n if (isResponsive.value) toggleResponsive()\n popoverOpen.value = false\n}\n\nfunction unitLabel(unit: string) {\n return unit === '' ? '—' : unit\n}\n</script>\n\n<template>\n <div class=\"flex w-full min-w-0 items-center gap-1\">\n <a-input v-if=\"config.inputMode === 'text'\" v-model:value=\"primaryTextValue\" class=\"min-w-0 flex-1\" :placeholder=\"config.placeholder\" :disabled=\"disabled\" />\n\n <a-input-group v-else-if=\"showUnitSelect\" compact class=\"style-property-input__group !flex min-w-0 flex-1\">\n <a-input-number v-if=\"!primaryIsAuto\" v-model:value=\"primaryNumericValue\" v-bind=\"numberBind\" />\n <a-input v-else class=\"min-w-0 flex-1\" disabled value=\"auto\" />\n <a-select v-model:value=\"primaryUnitValue\" show-arrow class=\"style-property-input__unit shrink-0\" :disabled=\"disabled\" :get-popup-container=\"getUnitSelectPopupContainer\" :options=\"unitOptions.map(item => ({ label: unitLabel(item), value: item }))\" />\n </a-input-group>\n\n <template v-else>\n <a-input-number v-if=\"!primaryIsAuto\" v-model:value=\"primaryNumericValue\" v-bind=\"numberBind\" class=\"min-w-0 flex-1\" />\n <a-input v-else class=\"min-w-0 flex-1\" disabled value=\"auto\" />\n </template>\n\n <a-popover v-if=\"isStyleBinding && responsiveEnabled\" v-model:open=\"popoverOpen\" trigger=\"click\" placement=\"bottomRight\" @open-change=\"handlePopoverOpen\">\n <template #title>按断点设置</template>\n <template #content>\n <div class=\"flex w-72 flex-col gap-2\">\n <div v-for=\"row in breakpointRows\" :key=\"row.breakpoint\" class=\"flex min-w-0 items-center gap-2\">\n <span class=\"w-10 shrink-0 text-xs text-[var(--colorTextSecondary)]\">{{ row.label }}</span>\n <a-input-group v-if=\"showUnitSelect\" compact class=\"style-property-input__group !flex min-w-0 flex-1\">\n <a-input-number v-if=\"!row.isAuto\" v-model:value=\"row.numericValue\" v-bind=\"numberBind\" />\n <a-input v-else class=\"min-w-0 flex-1\" disabled value=\"auto\" />\n <a-select v-model:value=\"row.unitValue\" show-arrow class=\"style-property-input__unit shrink-0\" :disabled=\"disabled\" :get-popup-container=\"getUnitSelectPopupContainer\" :options=\"unitOptions.map(item => ({ label: unitLabel(item), value: item }))\" />\n </a-input-group>\n <a-input-number v-else v-model:value=\"row.numericValue\" v-bind=\"numberBind\" class=\"min-w-0 flex-1\" />\n </div>\n <a-button v-if=\"isResponsive\" type=\"link\" size=\"small\" class=\"h-auto self-start px-0\" @click=\"disableResponsive\">恢复单值</a-button>\n </div>\n </template>\n\n <MobileOutlined class=\"shrink-0 !p-1\" :class=\"isResponsive ? 'text-red-500' : 'text-default'\" />\n </a-popover>\n </div>\n</template>\n\n<style scoped>\n.style-property-input__group :deep(.style-property-input__unit) {\n width: 84px;\n min-width: 84px;\n flex: 0 0 84px;\n}\n\n.style-property-input__group :deep(.style-property-input__unit .ant-select-selector) {\n padding-inline-end: 24px !important;\n}\n\n.style-property-input__group :deep(.style-property-input__unit .ant-select-arrow) {\n display: flex;\n inset-inline-end: 8px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ExpandOutlined, BorderOutlined, BorderTopOutlined, BorderRightOutlined, BorderBottomOutlined, BorderLeftOutlined } from '@ant-design/icons-vue'\nimport type { SelectValue } from 'ant-design-vue/es/select'\nimport { computed, ref, watch } from 'vue'\nimport StyleColorInput from '../components/color-input.vue'\nimport StylePropertyInput from '../components/style-property-input.vue'\nimport { formatShadow, getBorderRadius, getBorderValue, parseShadow, readStyleValue, setBorderRadius, setBorderValue, splitShorthand, type BorderSide, type CssStyle } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { style, get, set, patch } = useCssStyle(model)\n\nconst radiusMode = ref<'uniform' | 'individual'>('uniform')\nconst activeBorderSide = ref<BorderSide>('all')\nconst shadowType = ref<'outer' | 'inner'>('outer')\n\nconst radiusModeOptions = [\n { value: 'uniform', icon: BorderOutlined, title: '统一圆角' },\n { value: 'individual', icon: ExpandOutlined, title: '独立圆角' }\n] as const\n\nconst shadowTypeOptions = [\n { value: 'outer', title: '外阴影' },\n { value: 'inner', title: '内阴影' }\n] as const\n\nfunction isUniformRadius(cssStyle: CssStyle) {\n if (cssStyle.borderTopLeftRadius || cssStyle.borderTopRightRadius || cssStyle.borderBottomRightRadius || cssStyle.borderBottomLeftRadius) {\n return false\n }\n const borderRadius = readStyleValue(cssStyle, 'borderRadius')\n if (!borderRadius.trim()) return true\n const [topLeft, topRight, bottomRight, bottomLeft] = splitShorthand(borderRadius)\n return topLeft === topRight && topRight === bottomRight && bottomRight === bottomLeft\n}\n\nwatch(\n () => [style.value.borderRadius, style.value.borderTopLeftRadius, style.value.borderTopRightRadius, style.value.borderBottomRightRadius, style.value.borderBottomLeftRadius],\n () => {\n if (!isUniformRadius(style.value)) {\n radiusMode.value = 'individual'\n }\n },\n { immediate: true }\n)\n\nfunction toSelectString(value: SelectValue): string | undefined {\n if (value == null) return undefined\n if (Array.isArray(value)) {\n const first = value[0]\n if (first == null) return undefined\n return typeof first === 'object' ? String(first.value) : String(first)\n }\n if (typeof value === 'object') return String(value.value)\n return String(value)\n}\n\nfunction updateRadiusMode(value: SelectValue) {\n const mode = toSelectString(value)\n if (mode !== 'uniform' && mode !== 'individual') return\n if (radiusMode.value === mode) return\n\n radiusMode.value = mode\n const corners = getBorderRadius(style.value)\n\n if (mode === 'uniform') {\n const value = corners.topLeft || corners.topRight || corners.bottomRight || corners.bottomLeft\n patch(\n setBorderRadius(\n style.value,\n {\n topLeft: value,\n topRight: value,\n bottomRight: value,\n bottomLeft: value\n },\n true\n )\n )\n return\n }\n\n patch(setBorderRadius(style.value, corners, false))\n}\n\nconst radiusCorners = computed(() => getBorderRadius(style.value))\n\nconst cornerRadius = (key: 'topLeft' | 'topRight' | 'bottomRight' | 'bottomLeft') =>\n computed({\n get: () => radiusCorners.value[key],\n set: value => {\n patch(\n setBorderRadius(\n style.value,\n {\n ...radiusCorners.value,\n [key]: value\n },\n false\n )\n )\n }\n })\n\nconst topLeftRadius = cornerRadius('topLeft')\nconst topRightRadius = cornerRadius('topRight')\nconst bottomRightRadius = cornerRadius('bottomRight')\nconst bottomLeftRadius = cornerRadius('bottomLeft')\n\nconst borderSideOptions: Array<{ value: BorderSide; icon: object; title: string; gridClass: string }> = [\n { value: 'top', icon: BorderTopOutlined, title: '上', gridClass: 'col-start-2 row-start-1' },\n { value: 'right', icon: BorderRightOutlined, title: '右', gridClass: 'col-start-3 row-start-2' },\n { value: 'bottom', icon: BorderBottomOutlined, title: '下', gridClass: 'col-start-2 row-start-3' },\n { value: 'left', icon: BorderLeftOutlined, title: '左', gridClass: 'col-start-1 row-start-2' },\n { value: 'all', icon: BorderOutlined, title: '全部', gridClass: 'col-start-2 row-start-2' }\n]\n\nconst borderWidthKey = computed(() => {\n if (activeBorderSide.value === 'all') return 'borderWidth'\n const side = activeBorderSide.value.charAt(0).toUpperCase() + activeBorderSide.value.slice(1)\n return `border${side}Width`\n})\n\nconst borderStyle = computed({\n get: () => getBorderValue(style.value, activeBorderSide.value, 'Style') || undefined,\n set: value => patch(setBorderValue(style.value, activeBorderSide.value, 'Style', value ?? ''))\n})\n\nconst borderColor = computed({\n get: () => getBorderValue(style.value, activeBorderSide.value, 'Color'),\n set: value => patch(setBorderValue(style.value, activeBorderSide.value, 'Color', value))\n})\n\nconst parsedShadow = computed(() => parseShadow(get('boxShadow')))\n\nconst DEFAULT_OUTER_SHADOW = '0px 0px 0px 0px rgba(0, 0, 0, 0.25)'\n\nfunction updateShadow(patchValue: Partial<ReturnType<typeof parseShadow>>) {\n const next = { ...parsedShadow.value, ...patchValue }\n const formatted = formatShadow(next)\n set('boxShadow', formatted === DEFAULT_OUTER_SHADOW ? undefined : formatted)\n}\n\nconst shadowColor = computed({\n get: () => parsedShadow.value.color,\n set: value => updateShadow({ color: value })\n})\n\nconst shadowX = computed({\n get: () => parsedShadow.value.x,\n set: value => updateShadow({ x: value ?? 0 })\n})\n\nconst shadowY = computed({\n get: () => parsedShadow.value.y,\n set: value => updateShadow({ y: value ?? 0 })\n})\n\nconst shadowBlur = computed({\n get: () => parsedShadow.value.blur,\n set: value => updateShadow({ blur: value ?? 0 })\n})\n\nconst shadowSpread = computed({\n get: () => parsedShadow.value.spread,\n set: value => updateShadow({ spread: value ?? 0 })\n})\n\nwatch(\n () => style.value.boxShadow,\n () => {\n shadowType.value = parseShadow(get('boxShadow')).inset ? 'inner' : 'outer'\n },\n { immediate: true }\n)\n\nfunction updateShadowType(value: SelectValue) {\n const mode = toSelectString(value)\n if (mode !== 'outer' && mode !== 'inner') return\n if (shadowType.value === mode) return\n\n shadowType.value = mode\n updateShadow({ inset: mode === 'inner' })\n}\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-form-item label=\"圆角\">\n <a-radio-group class=\"mb-3\" :value=\"radiusMode\" @update:value=\"updateRadiusMode\">\n <a-radio-button v-for=\"item in radiusModeOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n {{ item.title }}\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n\n <StylePropertyInput v-if=\"radiusMode === 'uniform'\" v-model=\"model\" property=\"borderRadius\" preset=\"borderRadius\" />\n <a-row v-else :gutter=\"8\">\n <a-col :span=\"12\"><StylePropertyInput v-model=\"topLeftRadius\" preset=\"borderRadius\" /></a-col>\n <a-col :span=\"12\"><StylePropertyInput v-model=\"topRightRadius\" preset=\"borderRadius\" /></a-col>\n <a-col :span=\"12\" class=\"mt-2\"><StylePropertyInput v-model=\"bottomLeftRadius\" preset=\"borderRadius\" /></a-col>\n <a-col :span=\"12\" class=\"mt-2\"><StylePropertyInput v-model=\"bottomRightRadius\" preset=\"borderRadius\" /></a-col>\n </a-row>\n </a-form-item>\n\n <a-form-item label=\"边框\">\n <div class=\"mb-3 m-auto grid w-fit grid-cols-3 grid-rows-3 gap-0.5\">\n <button v-for=\"item in borderSideOptions\" :key=\"item.value\" type=\"button\" class=\"inline-flex h-6 w-6 cursor-pointer items-center justify-center border-0 bg-transparent p-0 text-lg leading-none\" :class=\"[item.gridClass, activeBorderSide === item.value ? 'text-[var(--colorPrimary)]' : 'text-[var(--colorTextSecondary)] hover:text-[var(--colorPrimary)]']\" :title=\"item.title\" @click=\"activeBorderSide = item.value\">\n <component :is=\"item.icon\" />\n </button>\n </div>\n\n <a-form-item label=\"边框宽度\" :colon=\"false\">\n <StylePropertyInput v-model=\"model\" :property=\"borderWidthKey\" preset=\"borderWidth\" />\n </a-form-item>\n\n <a-form-item label=\"边框样式\" :colon=\"false\">\n <a-select\n v-model:value=\"borderStyle\"\n allow-clear\n placeholder=\"solid\"\n :options=\"[\n { label: 'solid', value: 'solid' },\n { label: 'dashed', value: 'dashed' },\n { label: 'dotted', value: 'dotted' },\n { label: 'none', value: 'none' }\n ]\"\n />\n </a-form-item>\n\n <a-form-item label=\"边框颜色\" :colon=\"false\">\n <StyleColorInput v-model=\"borderColor\" />\n </a-form-item>\n </a-form-item>\n\n <a-form-item label=\"阴影\">\n <a-radio-group class=\"mb-3\" :value=\"shadowType\" @update:value=\"updateShadowType\">\n <a-radio-button v-for=\"item in shadowTypeOptions\" :key=\"item.value\" :value=\"item.value\">\n {{ item.title }}\n </a-radio-button>\n </a-radio-group>\n\n <a-form-item label=\"阴影颜色\" :colon=\"false\" class=\"mb-3\">\n <StyleColorInput v-model=\"shadowColor\" />\n </a-form-item>\n\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"阴影 X 偏移\" :colon=\"false\">\n <a-input-number v-model:value=\"shadowX\" class=\"w-full\" :controls=\"false\" addon-after=\"px\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"阴影 Y 偏移\" :colon=\"false\">\n <a-input-number v-model:value=\"shadowY\" class=\"w-full\" :controls=\"false\" addon-after=\"px\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"阴影模糊\" :colon=\"false\">\n <a-input-number v-model:value=\"shadowBlur\" class=\"w-full\" :controls=\"false\" addon-after=\"px\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"阴影扩展\" :colon=\"false\">\n <a-input-number v-model:value=\"shadowSpread\" class=\"w-full\" :controls=\"false\" addon-after=\"px\" />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form-item>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport type { BoxSides, CssStyle } from '../../../../runtime/runtime.ts'\nimport { getBoxSides, normalizeBoxSideValue, setBoxSides } from '../../../../runtime/runtime.ts'\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\n\nconst marginSides = computed(() => getBoxSides(model.value, 'margin'))\nconst paddingSides = computed(() => getBoxSides(model.value, 'padding'))\n\nfunction updateSides(prefix: 'margin' | 'padding', key: keyof BoxSides, raw: string) {\n const current = prefix === 'margin' ? marginSides.value : paddingSides.value\n const nextSides = { ...current, [key]: normalizeBoxSideValue(raw) }\n model.value = setBoxSides(model.value, prefix, nextSides)\n}\n\nfunction updateUniformSides(prefix: 'margin' | 'padding', raw: string) {\n const value = normalizeBoxSideValue(raw)\n model.value = setBoxSides(model.value, prefix, {\n top: value,\n right: value,\n bottom: value,\n left: value\n })\n}\n\nfunction sideNumber(prefix: 'margin' | 'padding', key: keyof BoxSides) {\n const source = prefix === 'margin' ? marginSides : paddingSides\n return computed({\n get: () => {\n const value = source.value[key]\n if (!value) return undefined\n const num = Number.parseFloat(value)\n return Number.isNaN(num) ? undefined : num\n },\n set: val => {\n if (val === null || val === undefined) {\n updateSides(prefix, key, '')\n return\n }\n updateSides(prefix, key, `${val}px`)\n }\n })\n}\n\nconst marginTop = sideNumber('margin', 'top')\nconst marginRight = sideNumber('margin', 'right')\nconst marginBottom = sideNumber('margin', 'bottom')\nconst marginLeft = sideNumber('margin', 'left')\nconst paddingTop = sideNumber('padding', 'top')\nconst paddingRight = sideNumber('padding', 'right')\nconst paddingBottom = sideNumber('padding', 'bottom')\nconst paddingLeft = sideNumber('padding', 'left')\n\nfunction uniformNumber(prefix: 'margin' | 'padding') {\n const source = prefix === 'margin' ? marginSides : paddingSides\n return computed({\n get: () => {\n const { top, right, bottom, left } = source.value\n const normalized = [top, right, bottom, left].map(value => normalizeBoxSideValue(value) || '0')\n if (!normalized.every(value => value === normalized[0])) return undefined\n const num = Number.parseFloat(normalized[0])\n return Number.isNaN(num) ? undefined : num\n },\n set: val => {\n if (val === null || val === undefined) {\n updateUniformSides(prefix, '')\n return\n }\n updateUniformSides(prefix, `${val}px`)\n }\n })\n}\n\nconst marginUniform = uniformNumber('margin')\nconst paddingUniform = uniformNumber('padding')\n</script>\n\n<template>\n <div class=\"layout-box-container\">\n <div class=\"margin-top-div\">\n <a-input-number v-model:value=\"marginTop\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"margin-right-div\">\n <a-input-number v-model:value=\"marginRight\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"margin-bottom-div\">\n <span class=\"help-txt\">MARGIN</span>\n <a-input-number v-model:value=\"marginBottom\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"margin-left-div\">\n <a-input-number v-model:value=\"marginLeft\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n\n <div class=\"padding-top-div\">\n <a-input-number v-model:value=\"paddingTop\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"padding-right-div\">\n <a-input-number v-model:value=\"paddingRight\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"padding-bottom-div\">\n <span class=\"help-txt\">PADDING</span>\n <a-input-number v-model:value=\"paddingBottom\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"padding-left-div\">\n <a-input-number v-model:value=\"paddingLeft\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n\n <div class=\"center-uniform\">\n <div class=\"uniform-item\">\n <span class=\"uniform-label\">MARGIN</span>\n <a-input-number v-model:value=\"marginUniform\" class=\"uniform-input\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n <div class=\"uniform-item\">\n <span class=\"uniform-label\">PADDING</span>\n <a-input-number v-model:value=\"paddingUniform\" class=\"uniform-input\" :bordered=\"false\" :controls=\"false\" placeholder=\"0\" />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.layout-box-container {\n position: relative;\n width: 100%;\n height: 150px;\n background: var(--colorBgContainer);\n}\n\n.layout-box-container :deep(.ant-input-number) {\n min-width: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n}\n\n.layout-box-container :deep(.ant-input-number-input) {\n color: var(--colorTextSecondary);\n font-size: 12px;\n}\n\n.layout-box-container :deep(.ant-input-number-input::placeholder) {\n color: var(--colorTextSecondary);\n}\n\n.help-txt {\n position: absolute;\n left: 10px;\n bottom: -17px;\n z-index: 1;\n transform: scale(0.75);\n transform-origin: left bottom;\n font-size: 12px;\n color: var(--colorTextQuaternary);\n letter-spacing: 0.04em;\n pointer-events: none;\n user-select: none;\n}\n\n.margin-top-div,\n.margin-right-div,\n.margin-bottom-div,\n.margin-left-div,\n.padding-top-div,\n.padding-right-div,\n.padding-bottom-div,\n.padding-left-div {\n position: absolute;\n transition: all 0.3s ease;\n box-sizing: content-box;\n overflow: visible;\n}\n\n.margin-top-div,\n.margin-bottom-div,\n.padding-top-div,\n.padding-bottom-div {\n height: 0;\n}\n\n.margin-right-div,\n.margin-left-div,\n.padding-right-div,\n.padding-left-div {\n width: 0;\n}\n\n.margin-top-div {\n top: 0;\n left: 0;\n right: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-top: 20px solid #d6e4ff;\n}\n\n.margin-top-div:hover {\n border-top: 20px solid #bfd4fb;\n}\n\n.margin-top-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n top: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.margin-top-div :deep(.ant-input-number-input) {\n text-align: center;\n line-height: 20px;\n height: 20px;\n padding: 0;\n}\n\n.margin-right-div {\n top: 5px;\n bottom: 5px;\n right: 0;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-right: 20px solid #d6e4ff;\n}\n\n.margin-right-div:hover {\n border-right: 20px solid #bfd4fb;\n}\n\n.margin-right-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n right: -20px;\n width: 20px;\n margin: auto;\n}\n\n.margin-right-div :deep(.ant-input-number-input) {\n position: absolute;\n top: 0;\n bottom: 0;\n left: -20px;\n margin: auto;\n width: 60px;\n height: 20px;\n line-height: 20px;\n text-align: center;\n padding: 0 8px;\n}\n\n.margin-bottom-div {\n bottom: 0;\n left: 0;\n right: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 20px solid #d6e4ff;\n}\n\n.margin-bottom-div:hover {\n border-bottom: 20px solid #bfd4fb;\n}\n\n.margin-bottom-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n bottom: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.margin-bottom-div :deep(.ant-input-number-input) {\n text-align: center;\n line-height: 20px;\n height: 20px;\n padding: 0;\n}\n\n.margin-left-div {\n top: 5px;\n bottom: 5px;\n left: 0;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-left: 20px solid #d6e4ff;\n}\n\n.margin-left-div:hover {\n border-left: 20px solid #bfd4fb;\n}\n\n.margin-left-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n left: -20px;\n width: 20px;\n margin: auto;\n}\n\n.margin-left-div :deep(.ant-input-number-input) {\n position: absolute;\n top: 0;\n bottom: 0;\n right: -20px;\n margin: auto;\n width: 60px;\n height: 20px;\n line-height: 20px;\n text-align: center;\n padding: 0 8px;\n}\n\n.padding-top-div {\n top: 25px;\n left: 25px;\n right: 25px;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-top: 20px solid #d6e4ff;\n}\n\n.padding-top-div:hover {\n border-top: 20px solid #bfd4fb;\n}\n\n.padding-top-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n top: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.padding-top-div :deep(.ant-input-number-input) {\n text-align: center;\n line-height: 20px;\n height: 20px;\n padding: 0;\n}\n\n.padding-bottom-div {\n bottom: 25px;\n left: 25px;\n right: 25px;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 20px solid #d6e4ff;\n}\n\n.padding-bottom-div:hover {\n border-bottom: 20px solid #bfd4fb;\n}\n\n.padding-bottom-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n bottom: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.padding-bottom-div :deep(.ant-input-number-input) {\n text-align: center;\n line-height: 20px;\n height: 20px;\n padding: 0;\n}\n\n.padding-right-div {\n top: 30px;\n bottom: 30px;\n right: 25px;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-right: 20px solid #d6e4ff;\n}\n\n.padding-right-div:hover {\n border-right: 20px solid #bfd4fb;\n}\n\n.padding-right-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n right: -25px;\n width: 20px;\n margin: auto;\n}\n\n.padding-right-div :deep(.ant-input-number-input) {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 30px;\n height: 20px;\n line-height: 20px;\n text-align: center;\n padding: 0 5px;\n}\n\n.padding-left-div {\n top: 30px;\n bottom: 30px;\n left: 25px;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-left: 20px solid #d6e4ff;\n}\n\n.padding-left-div:hover {\n border-left: 20px solid #bfd4fb;\n}\n\n.padding-left-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n left: -25px;\n width: 20px;\n margin: auto;\n}\n\n.padding-left-div :deep(.ant-input-number-input) {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n width: 30px;\n height: 20px;\n line-height: 20px;\n text-align: center;\n padding: 0 5px;\n}\n\n.center-uniform {\n position: absolute;\n top: 45px;\n right: 45px;\n bottom: 45px;\n left: 45px;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n}\n\n.uniform-item {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n max-width: 72px;\n}\n\n.uniform-label {\n font-size: 9px;\n line-height: 1;\n color: var(--colorTextQuaternary);\n letter-spacing: 0.04em;\n transform: scale(0.75);\n}\n\n.uniform-input:deep(.ant-input-number) {\n width: 100% !important;\n height: 24px !important;\n border: 1px solid var(--colorBorderSecondary) !important;\n border-radius: 4px;\n background: var(--colorBgContainer);\n box-shadow: none;\n}\n\n.uniform-input:deep(.ant-input-number-input) {\n height: 22px !important;\n line-height: 22px;\n text-align: center;\n padding: 0 4px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { AppstoreOutlined, BorderOuterOutlined, EyeInvisibleOutlined, ColumnWidthOutlined, PicLeftOutlined, SplitCellsOutlined } from '@ant-design/icons-vue'\nimport { computed, defineComponent, h, watch } from 'vue'\nimport BoxModel from '../components/box-model.vue'\nimport StylePropertyInput from '../components/style-property-input.vue'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst FLEX_KEYS = ['flexDirection', 'justifyContent', 'alignItems', 'flexWrap', 'gap'] as const\ntype FlexDefaultKey = (typeof FLEX_KEYS)[number]\n\nconst GRID_KEYS = ['gridTemplateColumns', 'gap'] as const\n\nconst GRID_UNUSED_KEYS = ['gridTemplateRows', 'justifyItems', 'alignItems', 'justifyContent', 'alignContent', 'gridAutoFlow'] as const\n\nconst FLEX_BUILTIN_DEFAULTS: Record<FlexDefaultKey, string> = {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'stretch',\n flexWrap: 'nowrap',\n gap: ''\n}\n\nconst props = withDefaults(\n defineProps<{\n /** 覆盖弹性布局各属性的默认值(如 grid 容器默认 column) */\n flexDefaults?: Partial<Record<FlexDefaultKey, string>>\n /** 网格布局默认列数 */\n gridColumnDefault?: number\n /** 布局模式默认值(如 grid 容器为 flex,普通组件为 block) */\n displayDefault?: string\n }>(),\n { flexDefaults: () => ({}), gridColumnDefault: 3, displayDefault: 'block' }\n)\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { style, get, set, patch } = useCssStyle(model)\n\nfunction getFlexDefault(key: FlexDefaultKey): string {\n return props.flexDefaults[key] ?? FLEX_BUILTIN_DEFAULTS[key]\n}\n\nfunction formatGridTemplateColumns(count: number): string {\n return `repeat(${Math.max(1, count)}, 1fr)`\n}\n\nfunction parseGridColumnCount(value: string | undefined, fallback: number): number {\n const normalized = value?.trim()\n if (!normalized) return fallback\n const repeatMatch = normalized.match(/^repeat\\(\\s*(\\d+)\\s*,/i)\n if (repeatMatch) return Math.max(1, Number(repeatMatch[1]))\n const parts = normalized.split(/\\s+/).filter(Boolean)\n return Math.max(1, parts.length || fallback)\n}\n\nconst displayModes = [\n { value: 'inline', icon: ColumnWidthOutlined, title: '行内' },\n { value: 'flex', icon: SplitCellsOutlined, title: '弹性' },\n { value: 'grid', icon: AppstoreOutlined, title: '网格' },\n { value: 'block', icon: BorderOuterOutlined, title: '块级' },\n { value: 'inline-block', icon: PicLeftOutlined, title: '行内块' },\n { value: 'none', icon: EyeInvisibleOutlined, title: '隐藏' }\n]\n\nconst display = computed({\n get: () => get('display', props.displayDefault),\n set: value => {\n // 仅在与声明默认值相同时省略写入;block 对 grid(默认 flex)等场景须显式持久化\n set('display', value === props.displayDefault ? undefined : value)\n }\n})\n\nconst isFlex = computed(() => display.value === 'flex')\nconst isGrid = computed(() => display.value === 'grid')\n\nwatch(\n () => get('display', props.displayDefault),\n (value, previous) => {\n let next = { ...style.value }\n let changed = false\n\n if (previous === 'flex' && value !== 'flex') {\n FLEX_KEYS.forEach(key => {\n if (key in next) {\n delete next[key]\n changed = true\n }\n })\n }\n if (previous === 'grid' && value !== 'grid') {\n GRID_KEYS.forEach(key => {\n if (key in next) {\n delete next[key]\n changed = true\n }\n })\n }\n if (value === 'grid' && previous !== 'grid') {\n GRID_UNUSED_KEYS.forEach(key => {\n if (key in next) {\n delete next[key]\n changed = true\n }\n })\n if (next.gridTemplateColumns == null || next.gridTemplateColumns === '') {\n next.gridTemplateColumns = formatGridTemplateColumns(props.gridColumnDefault)\n changed = true\n }\n }\n if (changed) patch(next)\n }\n)\n\nfunction createFlexPropComputed(key: FlexDefaultKey) {\n return computed({\n get: () => get(key, getFlexDefault(key)),\n set: value => {\n const defaultValue = getFlexDefault(key)\n const resolved = value || defaultValue\n // 弹性模式下始终写入显式值,避免与外部默认值补全逻辑互相覆盖(如 grid 默认 column)\n if (isFlex.value) {\n set(key, resolved)\n return\n }\n set(key, resolved === defaultValue ? undefined : resolved)\n }\n })\n}\n\nconst flexDirection = createFlexPropComputed('flexDirection')\nconst flexJustifyContent = createFlexPropComputed('justifyContent')\nconst flexAlignItems = createFlexPropComputed('alignItems')\nconst flexWrap = createFlexPropComputed('flexWrap')\n\nconst gridColumnCount = computed({\n get: () => parseGridColumnCount(get('gridTemplateColumns'), props.gridColumnDefault),\n set: value => {\n const count = Math.max(1, Math.round(value ?? props.gridColumnDefault))\n const columns = formatGridTemplateColumns(count)\n if (isGrid.value) {\n set('gridTemplateColumns', columns)\n return\n }\n set('gridTemplateColumns', count === props.gridColumnDefault ? undefined : columns)\n }\n})\n\nconst flexDirectionOptions = [\n { value: 'row', icon: 'direction-row', title: '横向(row)' },\n { value: 'row-reverse', icon: 'direction-row-reverse', title: '横向反向(row-reverse)' },\n { value: 'column', icon: 'direction-column', title: '纵向(column)' },\n { value: 'column-reverse', icon: 'direction-column-reverse', title: '纵向反向(column-reverse)' }\n] as const\n\nconst justifyContentOptions = [\n { value: 'flex-start', icon: 'justify-flex-start', title: '起点对齐(flex-start)' },\n { value: 'flex-end', icon: 'justify-flex-end', title: '终点对齐(flex-end)' },\n { value: 'center', icon: 'justify-center', title: '居中(center)' },\n { value: 'space-between', icon: 'justify-space-between', title: '两端对齐(space-between)' },\n { value: 'space-around', icon: 'justify-space-around', title: '环绕间距(space-around)' }\n] as const\n\nconst alignItemsOptions = [\n { value: 'flex-start', icon: 'align-flex-start', title: '起点对齐(flex-start)' },\n { value: 'flex-end', icon: 'align-flex-end', title: '终点对齐(flex-end)' },\n { value: 'center', icon: 'align-center', title: '居中(center)' },\n { value: 'baseline', icon: 'align-baseline', title: '基线对齐(baseline)' },\n { value: 'stretch', icon: 'align-stretch', title: '拉伸(stretch)' }\n] as const\n\nconst flexWrapOptions = [\n { value: 'nowrap', label: '不换行' },\n { value: 'wrap', label: '正换行' },\n { value: 'wrap-reverse', label: '逆换行' }\n] as const\n\nconst flexRadioGroupClass = 'w-full [&_.ant-radio-button-wrapper]:inline-flex [&_.ant-radio-button-wrapper]:items-center [&_.ant-radio-button-wrapper]:justify-center [&_.ant-radio-button-wrapper]:h-28px [&_.ant-radio-button-wrapper]:min-w-28px [&_.ant-radio-button-wrapper]:px-2 [&_.ant-radio-button-wrapper]:leading-none [&_.ant-radio-button-wrapper-checked]:text-[var(--colorPrimary)]'\nconst flexIconWrapClass = 'flex-center inline-flex'\n\nconst FlexLayoutIcon = defineComponent({\n name: 'FlexLayoutIcon',\n props: {\n name: { type: String, required: true }\n },\n setup(props) {\n return () =>\n h(\n 'svg',\n {\n class: 'block h-16px w-16px',\n viewBox: '0 0 20 20',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n 'aria-hidden': 'true'\n },\n flexLayoutIconNodes(props.name)\n )\n }\n})\n\nfunction flexLayoutIconNodes(name: string) {\n switch (name) {\n case 'direction-row':\n return [\n h('rect', { x: '3', y: '5', width: '3', height: '10', rx: '0.5', fill: 'currentColor' }),\n h('rect', { x: '8', y: '5', width: '3', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('path', {\n d: 'M14 10h4M16.5 8.5L18 10l-1.5 1.5',\n stroke: 'currentColor',\n 'stroke-width': '1.2',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n })\n ]\n case 'direction-row-reverse':\n return [\n h('rect', { x: '14', y: '5', width: '3', height: '10', rx: '0.5', fill: 'currentColor' }),\n h('rect', { x: '9', y: '5', width: '3', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('path', {\n d: 'M2 10h4M3.5 8.5L2 10l1.5 1.5',\n stroke: 'currentColor',\n 'stroke-width': '1.2',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n })\n ]\n case 'direction-column':\n return [\n h('rect', { x: '5', y: '3', width: '10', height: '3', rx: '0.5', fill: 'currentColor' }),\n h('rect', { x: '5', y: '8', width: '10', height: '3', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('path', {\n d: 'M10 14v4M8.5 15.5L10 17l1.5-1.5',\n stroke: 'currentColor',\n 'stroke-width': '1.2',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n })\n ]\n case 'direction-column-reverse':\n return [\n h('rect', { x: '5', y: '14', width: '10', height: '3', rx: '0.5', fill: 'currentColor' }),\n h('rect', { x: '5', y: '9', width: '10', height: '3', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('path', {\n d: 'M10 2v4M8.5 3.5L10 2l1.5 1.5',\n stroke: 'currentColor',\n 'stroke-width': '1.2',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n })\n ]\n case 'justify-flex-start':\n return [h('rect', { x: '2', y: '4', width: '2.5', height: '12', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '6', y: '6', width: '2.5', height: '8', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '10', y: '5', width: '2.5', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '2', y1: '2', x2: '2', y2: '18', stroke: 'currentColor', 'stroke-width': '1.2' })]\n case 'justify-flex-end':\n return [h('rect', { x: '15.5', y: '4', width: '2.5', height: '12', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '11.5', y: '6', width: '2.5', height: '8', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '7.5', y: '5', width: '2.5', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '18', y1: '2', x2: '18', y2: '18', stroke: 'currentColor', 'stroke-width': '1.2' })]\n case 'justify-center':\n return [h('rect', { x: '4.5', y: '6', width: '2.5', height: '8', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '8.75', y: '4', width: '2.5', height: '12', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '13', y: '5', width: '2.5', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' })]\n case 'justify-space-between':\n return [h('rect', { x: '2', y: '5', width: '2.5', height: '10', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '8.75', y: '4', width: '2.5', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '15.5', y: '6', width: '2.5', height: '8', rx: '0.5', fill: 'currentColor' })]\n case 'justify-space-around':\n return [h('rect', { x: '3.5', y: '5', width: '2', height: '10', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '9', y: '4', width: '2', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '14.5', y: '6', width: '2', height: '8', rx: '0.5', fill: 'currentColor' }), h('line', { x1: '2', y1: '2', x2: '2', y2: '18', stroke: 'currentColor', 'stroke-width': '0.8', opacity: '0.5' }), h('line', { x1: '18', y1: '2', x2: '18', y2: '18', stroke: 'currentColor', 'stroke-width': '0.8', opacity: '0.5' })]\n case 'align-flex-start':\n return [h('rect', { x: '4', y: '4', width: '3', height: '8', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '8.5', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '13', y: '4', width: '3', height: '6', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '2', y1: '4', x2: '18', y2: '4', stroke: 'currentColor', 'stroke-width': '1.2' })]\n case 'align-flex-end':\n return [h('rect', { x: '4', y: '8', width: '3', height: '8', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '8.5', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '13', y: '10', width: '3', height: '6', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '2', y1: '16', x2: '18', y2: '16', stroke: 'currentColor', 'stroke-width': '1.2' })]\n case 'align-center':\n return [h('rect', { x: '4', y: '6', width: '3', height: '8', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '8.5', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '13', y: '7', width: '3', height: '6', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '2', y1: '10', x2: '18', y2: '10', stroke: 'currentColor', 'stroke-width': '1.2' })]\n case 'align-baseline':\n return [\n h('rect', { x: '4', y: '5', width: '3', height: '6', rx: '0.5', fill: 'currentColor' }),\n h('rect', { x: '8.5', y: '3', width: '3', height: '10', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('rect', { x: '13', y: '7', width: '3', height: '4', rx: '0.5', fill: 'currentColor', opacity: '0.45' }),\n h('line', {\n x1: '2',\n y1: '13',\n x2: '18',\n y2: '13',\n stroke: 'currentColor',\n 'stroke-width': '1.2',\n 'stroke-dasharray': '2 1.5'\n })\n ]\n case 'align-stretch':\n return [h('rect', { x: '4', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor' }), h('rect', { x: '8.5', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('rect', { x: '13', y: '4', width: '3', height: '12', rx: '0.5', fill: 'currentColor', opacity: '0.45' }), h('line', { x1: '2', y1: '4', x2: '18', y2: '4', stroke: 'currentColor', 'stroke-width': '1.2' }), h('line', { x1: '2', y1: '16', x2: '18', y2: '16', stroke: 'currentColor', 'stroke-width': '1.2' })]\n default:\n return []\n }\n}\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-form-item label=\"布局模式\">\n <a-radio-group v-model:value=\"display\">\n <a-radio-button v-for=\"item in displayModes\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <template v-if=\"isFlex\">\n <a-form-item label=\"主轴方向\">\n <a-radio-group v-model:value=\"flexDirection\" size=\"small\" :class=\"flexRadioGroupClass\">\n <a-radio-button v-for=\"item in flexDirectionOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <span :class=\"flexIconWrapClass\">\n <FlexLayoutIcon :name=\"item.icon\" />\n </span>\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"主轴对齐\">\n <a-radio-group v-model:value=\"flexJustifyContent\" size=\"small\" :class=\"flexRadioGroupClass\">\n <a-radio-button v-for=\"item in justifyContentOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <span :class=\"flexIconWrapClass\">\n <FlexLayoutIcon :name=\"item.icon\" />\n </span>\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"辅轴对齐\">\n <a-radio-group v-model:value=\"flexAlignItems\" size=\"small\" :class=\"flexRadioGroupClass\">\n <a-radio-button v-for=\"item in alignItemsOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <span :class=\"flexIconWrapClass\">\n <FlexLayoutIcon :name=\"item.icon\" />\n </span>\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"换行\">\n <a-radio-group v-model:value=\"flexWrap\" size=\"small\" :class=\"flexRadioGroupClass\">\n <a-radio-button v-for=\"item in flexWrapOptions\" :key=\"item.value\" :value=\"item.value\">\n {{ item.label }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"间距\">\n <StylePropertyInput v-model=\"model\" property=\"gap\" preset=\"gap\" />\n </a-form-item>\n </template>\n\n <template v-if=\"isGrid\">\n <a-form-item label=\"列数\">\n <StylePropertyInput v-model=\"model\" property=\"gridTemplateColumns\" preset=\"cssExpression\" :format=\"formatGridTemplateColumns\" />\n </a-form-item>\n\n <a-form-item label=\"间距\">\n <StylePropertyInput v-model=\"model\" property=\"gap\" preset=\"gap\" />\n </a-form-item>\n </template>\n\n <a-form-item label=\"边距\">\n <BoxModel v-model=\"model\" />\n </a-form-item>\n\n <a-form-item label=\"宽度\">\n <StylePropertyInput v-model=\"model\" property=\"width\" preset=\"size\" />\n </a-form-item>\n\n <a-form-item label=\"高度\">\n <StylePropertyInput v-model=\"model\" property=\"height\" preset=\"size\" />\n </a-form-item>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, watchEffect } from 'vue'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { normalizeBoxSideValue, parseSize } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { get, set } = useCssStyle(model)\n\ntype OffsetKey = 'top' | 'right' | 'bottom' | 'left'\n\nconst OFFSET_KEYS: OffsetKey[] = ['top', 'right', 'bottom', 'left']\n\nwatchEffect(() => {\n for (const key of OFFSET_KEYS) {\n const raw = get(key)\n if (!raw) continue\n const normalized = normalizeBoxSideValue(raw)\n if (normalized && normalized !== raw) {\n set(key, normalized)\n }\n }\n})\n\nfunction createOffsetProp(key: OffsetKey) {\n return computed({\n get: () => {\n const value = get(key)\n if (!value) return undefined\n const parsed = parseSize(value)\n if (parsed.unit === 'auto') return undefined\n if (parsed.value == null) return undefined\n return parsed.value\n },\n set: val => {\n if (val === null || val === undefined) {\n set(key, undefined)\n return\n }\n set(key, `${val}px`)\n }\n })\n}\n\nconst top = createOffsetProp('top')\nconst right = createOffsetProp('right')\nconst bottom = createOffsetProp('bottom')\nconst left = createOffsetProp('left')\n</script>\n\n<template>\n <div class=\"offset-box-container\">\n <div class=\"offset-top-div\">\n <a-input-number v-model:value=\"top\" :bordered=\"false\" :controls=\"false\" placeholder=\"auto\" />\n </div>\n <div class=\"offset-right-div\">\n <a-input-number v-model:value=\"right\" :bordered=\"false\" :controls=\"false\" placeholder=\"auto\" />\n </div>\n <div class=\"offset-bottom-div\">\n <a-input-number v-model:value=\"bottom\" :bordered=\"false\" :controls=\"false\" placeholder=\"auto\" />\n </div>\n <div class=\"offset-left-div\">\n <a-input-number v-model:value=\"left\" :bordered=\"false\" :controls=\"false\" placeholder=\"auto\" />\n </div>\n <div class=\"offset-center\" />\n </div>\n</template>\n\n<style scoped>\n.offset-box-container {\n position: relative;\n width: 100%;\n height: 120px;\n background: var(--colorBgContainer);\n}\n\n.offset-box-container :deep(.ant-input-number) {\n min-width: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n}\n\n.offset-box-container :deep(.ant-input-number-input) {\n color: var(--colorTextSecondary);\n font-size: 12px;\n text-align: center;\n padding: 0;\n}\n\n.offset-box-container :deep(.ant-input-number-input::placeholder) {\n color: var(--colorTextQuaternary);\n}\n\n.offset-top-div,\n.offset-right-div,\n.offset-bottom-div,\n.offset-left-div {\n position: absolute;\n transition: all 0.3s ease;\n box-sizing: content-box;\n overflow: visible;\n}\n\n.offset-top-div,\n.offset-bottom-div {\n height: 0;\n}\n\n.offset-right-div,\n.offset-left-div {\n width: 0;\n}\n\n.offset-top-div {\n top: 0;\n left: 0;\n right: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-top: 20px solid #d6e4ff;\n}\n\n.offset-top-div:hover {\n border-top-color: #bfd4fb;\n}\n\n.offset-top-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n top: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.offset-top-div :deep(.ant-input-number-input) {\n height: 20px;\n line-height: 20px;\n}\n\n.offset-right-div {\n top: 5px;\n bottom: 5px;\n right: 0;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-right: 20px solid #d6e4ff;\n}\n\n.offset-right-div:hover {\n border-right-color: #bfd4fb;\n}\n\n.offset-right-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n right: -20px;\n width: 20px;\n margin: auto;\n height: 20px !important;\n}\n\n.offset-right-div :deep(.ant-input-number-input) {\n height: 20px;\n line-height: 20px;\n}\n\n.offset-bottom-div {\n bottom: 0;\n left: 0;\n right: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 20px solid #d6e4ff;\n}\n\n.offset-bottom-div:hover {\n border-bottom-color: #bfd4fb;\n}\n\n.offset-bottom-div :deep(.ant-input-number) {\n position: absolute;\n left: 0;\n right: 0;\n bottom: -20px;\n height: 20px !important;\n width: 100%;\n}\n\n.offset-bottom-div :deep(.ant-input-number-input) {\n height: 20px;\n line-height: 20px;\n}\n\n.offset-left-div {\n top: 5px;\n bottom: 5px;\n left: 0;\n border-top: 20px solid transparent;\n border-bottom: 20px solid transparent;\n border-left: 20px solid #d6e4ff;\n}\n\n.offset-left-div:hover {\n border-left-color: #bfd4fb;\n}\n\n.offset-left-div :deep(.ant-input-number) {\n position: absolute;\n top: 0;\n bottom: 0;\n left: -20px;\n width: 20px;\n margin: auto;\n height: 20px !important;\n}\n\n.offset-left-div :deep(.ant-input-number-input) {\n height: 20px;\n line-height: 20px;\n}\n\n.offset-center {\n position: absolute;\n top: 25px;\n right: 25px;\n bottom: 25px;\n left: 25px;\n z-index: 1;\n background: var(--colorBgContainer);\n pointer-events: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ExpandOutlined, NodeCollapseOutlined, NodeExpandOutlined, RotateLeftOutlined, RotateRightOutlined, MergeCellsOutlined } from '@ant-design/icons-vue'\nimport { computed, watch } from 'vue'\nimport OffsetBox from '../components/offset-box.vue'\nimport StylePropertyInput from '../components/style-property-input.vue'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst OFFSET_KEYS = ['top', 'right', 'bottom', 'left'] as const\n\nconst props = withDefaults(\n defineProps<{\n positionDefault?: string\n }>(),\n { positionDefault: 'static' }\n)\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { style, get, set, patch } = useCssStyle(model)\n\nconst positionOptions = [\n { label: 'static', value: 'static' },\n { label: 'relative', value: 'relative' },\n { label: 'absolute', value: 'absolute' },\n { label: 'fixed', value: 'fixed' },\n { label: 'sticky', value: 'sticky' }\n]\n\nconst position = computed({\n get: () => get('position', props.positionDefault),\n set: value => {\n set('position', value === props.positionDefault ? undefined : value)\n }\n})\n\nconst isPositioned = computed(() => position.value !== 'static')\n\nwatch(\n () => get('position', props.positionDefault),\n value => {\n if (value !== 'static') return\n const next = { ...style.value }\n let changed = false\n OFFSET_KEYS.forEach(key => {\n if (key in next) {\n delete next[key]\n changed = true\n }\n })\n if (next.zIndex) {\n delete next.zIndex\n changed = true\n }\n if (changed) patch(next)\n }\n)\n\nfunction createEnumProp(key: 'float' | 'clear', noneValue = 'none') {\n return computed({\n get: () => get(key, noneValue),\n set: value => set(key, value === noneValue ? undefined : value)\n })\n}\n\nconst floatValue = createEnumProp('float')\nconst clearValue = createEnumProp('clear')\n\nconst floatOptions = [\n { value: 'none', icon: ExpandOutlined, title: '无(none)' },\n { value: 'left', icon: NodeCollapseOutlined, title: '左浮动(left)' },\n { value: 'right', icon: NodeExpandOutlined, title: '右浮动(right)' }\n] as const\n\nconst clearOptions = [\n { value: 'none', icon: ExpandOutlined, title: '无(none)' },\n { value: 'left', icon: RotateLeftOutlined, title: '清除左浮动(left)' },\n { value: 'right', icon: RotateRightOutlined, title: '清除右浮动(right)' },\n { value: 'both', icon: MergeCellsOutlined, title: '清除两侧(both)' }\n] as const\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-form-item label=\"定位\">\n <a-select v-model:value=\"position\" :options=\"positionOptions\" />\n </a-form-item>\n\n <a-form-item v-if=\"isPositioned\" label=\"偏移\">\n <OffsetBox v-model=\"model\" />\n </a-form-item>\n\n <a-form-item v-if=\"isPositioned\" label=\"zIndex\">\n <StylePropertyInput v-model=\"model\" property=\"zIndex\" preset=\"plainNumber\" />\n </a-form-item>\n\n <a-form-item label=\"浮动方向\">\n <a-radio-group v-model:value=\"floatValue\">\n <a-radio-button v-for=\"item in floatOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"清除\">\n <a-radio-group v-model:value=\"clearValue\">\n <a-radio-button v-for=\"item in clearOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { AlignCenterOutlined, AlignLeftOutlined, AlignRightOutlined, MenuOutlined } from '@ant-design/icons-vue'\nimport { computed } from 'vue'\nimport StyleColorInput from '../components/color-input.vue'\nimport StylePercentInput from '../components/percent-input.vue'\nimport StylePropertyInput from '../components/style-property-input.vue'\nimport { FONT_FAMILY_OPTIONS, FONT_WEIGHT_OPTIONS, clampAlpha } from '../../../../runtime/runtime.ts'\nimport type { CssStyle } from '../../../../runtime/runtime.ts'\nimport { useCssStyle } from '../use-widget-setter.ts'\n\nconst model = defineModel<CssStyle>({ default: () => ({}) })\nconst { get, set } = useCssStyle(model)\n\nconst fontWeight = computed({\n get: () => get('fontWeight') || undefined,\n set: value => set('fontWeight', value)\n})\n\nconst fontFamily = computed({\n get: () => get('fontFamily') || undefined,\n set: value => set('fontFamily', value === 'inherit' ? undefined : value)\n})\n\nconst color = computed({\n get: () => get('color'),\n set: value => set('color', value)\n})\n\nconst textAlign = computed({\n get: () => get('textAlign', 'left'),\n set: value => set('textAlign', value === 'left' ? undefined : value)\n})\n\nconst alignOptions = [\n { value: 'left', icon: AlignLeftOutlined, title: '左对齐' },\n { value: 'center', icon: AlignCenterOutlined, title: '居中' },\n { value: 'right', icon: AlignRightOutlined, title: '右对齐' },\n { value: 'justify', icon: MenuOutlined, title: '两端对齐' }\n]\n\nconst opacityPercent = computed({\n get: () => {\n const value = get('opacity')\n if (!value) return 100\n const num = Number.parseFloat(value)\n return Number.isNaN(num) ? 100 : Math.round(num * 100)\n },\n set: value => {\n const percent = clampAlpha(value)\n set('opacity', percent >= 100 ? undefined : String(Number((percent / 100).toFixed(2))))\n }\n})\n</script>\n\n<template>\n <a-form layout=\"vertical\">\n <a-form-item label=\"字号\">\n <StylePropertyInput v-model=\"model\" property=\"fontSize\" preset=\"fontSize\" />\n </a-form-item>\n\n <a-form-item label=\"行高\">\n <StylePropertyInput v-model=\"model\" property=\"lineHeight\" preset=\"lineHeight\" />\n </a-form-item>\n\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"字重\">\n <a-select v-model:value=\"fontWeight\" allow-clear placeholder=\"请选择\" :options=\"FONT_WEIGHT_OPTIONS\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"字体\">\n <a-select v-model:value=\"fontFamily\" allow-clear placeholder=\"请选择\" :options=\"FONT_FAMILY_OPTIONS\" />\n </a-form-item>\n </a-col>\n </a-row>\n\n <a-form-item label=\"文字颜色\">\n <StyleColorInput v-model=\"color\" />\n </a-form-item>\n\n <a-form-item label=\"对齐\">\n <a-radio-group v-model:value=\"textAlign\">\n <a-radio-button v-for=\"item in alignOptions\" :key=\"item.value\" :value=\"item.value\">\n <a-tooltip :title=\"item.title\">\n <component :is=\"item.icon\" />\n </a-tooltip>\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n\n <a-form-item label=\"透明度\">\n <StylePercentInput v-model=\"opacityPercent\" />\n </a-form-item>\n </a-form>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, ref, watch } from 'vue'\nimport StyleAnimationPanel from './animation-panel.vue'\nimport StyleBackgroundPanel from './background-panel.vue'\nimport StyleBorderPanel from './border-panel.vue'\nimport StyleLayoutPanel from './layout-panel.vue'\nimport StylePositionPanel from './position-panel.vue'\nimport StyleTypographyPanel from './typography-panel.vue'\nimport type { Widget, WidgetAnimationTrigger, WidgetPseudoStyleState, WidgetStyleState } from '../../../../core/index.ts'\nimport {\n WIDGET_PSEUDO_STYLE_STATES,\n WIDGET_STYLE_STATE_LABELS,\n ensureWidgetStyles,\n hasWidgetAnimationForTrigger,\n hasWidgetTransition,\n isNonEmptyCssStyle\n} from '../../../../core/index.ts'\nimport { cleanEmptyStyle, cleanWidgetStyles, type CssStyle } from '../../../../runtime/runtime.ts'\nimport { CodeEditor } from '../../../../designer/shared/code-editor.vue'\nimport { useInjectDesigner } from '../../../../designer/material-registry.ts'\n\nconst STYLE_STATE_STORAGE_KEY = 'lowcode-style-edit-state'\n\nconst FLEX_KEYS = ['flexDirection', 'justifyContent', 'alignItems', 'flexWrap', 'gap'] as const\ntype FlexDefaultKey = (typeof FLEX_KEYS)[number]\n\nconst props = withDefaults(\n defineProps<{\n widget: Widget\n flexDefaults?: Partial<Record<FlexDefaultKey, string>>\n displayDefault?: string\n showLayout?: boolean\n showPosition?: boolean\n showTypography?: boolean\n showBackground?: boolean\n showBorder?: boolean\n showAnimation?: boolean\n positionDefault?: string\n defaultActiveKey?: string[]\n }>(),\n {\n flexDefaults: () => ({}),\n displayDefault: 'block',\n showLayout: true,\n showPosition: true,\n showTypography: true,\n showBackground: true,\n showBorder: true,\n showAnimation: true,\n positionDefault: 'static',\n defaultActiveKey: () => ['layout']\n }\n)\n\nconst designer = useInjectDesigner()\nconst editState = ref<WidgetStyleState>('default')\n\nonMounted(() => {\n const saved = localStorage.getItem(STYLE_STATE_STORAGE_KEY)\n if (saved === 'default' || saved === 'hover' || saved === 'active' || saved === 'focus') {\n editState.value = saved\n }\n})\n\nwatch(editState, value => {\n localStorage.setItem(STYLE_STATE_STORAGE_KEY, value)\n})\n\nconst isPseudoState = computed(() => editState.value !== 'default')\n\nconst showLayoutPanel = computed(() => props.showLayout && !isPseudoState.value)\nconst showPositionPanel = computed(() => props.showPosition && !isPseudoState.value)\n\nconst activeKeys = computed(() =>\n props.defaultActiveKey.filter(key => {\n if (key === 'layout') return showLayoutPanel.value\n if (key === 'position') return showPositionPanel.value\n if (key === 'typography') return props.showTypography\n if (key === 'background') return props.showBackground\n if (key === 'border') return props.showBorder\n if (key === 'animation') return props.showAnimation\n return true\n })\n)\n\nconst styleSegments = computed(() =>\n (['default', ...WIDGET_PSEUDO_STYLE_STATES] as WidgetStyleState[]).map(value => {\n const styles = props.widget.styles\n const hasDot =\n value === 'default'\n ? hasWidgetTransition(styles) || hasWidgetAnimationForTrigger(styles, 'mount')\n : isNonEmptyCssStyle(styles?.[value as WidgetPseudoStyleState]) ||\n hasWidgetAnimationForTrigger(styles, value as WidgetAnimationTrigger)\n return {\n value,\n label: WIDGET_STYLE_STATE_LABELS[value],\n dot: hasDot\n }\n })\n)\n\nconst activeStyleModel = computed<CssStyle>({\n get: () => {\n ensureWidgetStyles(props.widget)\n if (editState.value === 'default') {\n return props.widget.styles!.default ?? {}\n }\n return props.widget.styles![editState.value] ?? {}\n },\n set: value => {\n ensureWidgetStyles(props.widget)\n const cleaned = cleanEmptyStyle(value)\n if (Object.keys(cleaned).length === 0) {\n delete props.widget.styles![editState.value]\n } else {\n props.widget.styles![editState.value] = cleaned\n }\n const nextStyles = cleanWidgetStyles(props.widget.styles ?? {})\n if (nextStyles) {\n props.widget.styles = nextStyles\n } else {\n delete props.widget.styles\n }\n }\n})\n\nconst styleJson = computed(() => JSON.stringify(activeStyleModel.value ?? {}, null, 2))\n\nfunction syncStylePreview() {\n if (!designer) return\n if (editState.value === 'default') {\n designer.clearStylePreview()\n return\n }\n designer.setStylePreview(props.widget.id, editState.value)\n}\n\nwatch([editState, () => props.widget.id], syncStylePreview, { immediate: true })\n</script>\n\n<template>\n <div class=\"p-2\">\n <a-segmented class=\"mb-1\" v-model:value=\"editState\" block :options=\"styleSegments.map(item => ({ value: item.value, label: item.label }))\" />\n <CodeEditor :model-value=\"styleJson\" language=\"json\" read-only :height=\"200\" />\n </div>\n <a-collapse ghost expand-icon-position=\"end\" :default-active-key=\"activeKeys\">\n <a-collapse-panel v-if=\"showLayoutPanel\" key=\"layout\" header=\"布局\">\n <StyleLayoutPanel v-model=\"activeStyleModel\" :flex-defaults=\"flexDefaults\" :display-default=\"displayDefault\" />\n </a-collapse-panel>\n <a-collapse-panel v-if=\"showPositionPanel\" key=\"position\" header=\"位置\">\n <StylePositionPanel v-model=\"activeStyleModel\" :position-default=\"positionDefault\" />\n </a-collapse-panel>\n <a-collapse-panel v-if=\"showTypography\" key=\"typography\" header=\"文字\">\n <StyleTypographyPanel v-model=\"activeStyleModel\" />\n </a-collapse-panel>\n <a-collapse-panel v-if=\"showBackground\" key=\"background\" header=\"背景\">\n <StyleBackgroundPanel v-model=\"activeStyleModel\" />\n </a-collapse-panel>\n <a-collapse-panel v-if=\"showBorder\" key=\"border\" header=\"边框\">\n <StyleBorderPanel v-model=\"activeStyleModel\" />\n </a-collapse-panel>\n <a-collapse-panel v-if=\"showAnimation\" key=\"animation\" header=\"动画\">\n <StyleAnimationPanel :widget=\"widget\" />\n </a-collapse-panel>\n </a-collapse>\n</template>\n","/** 绑定路径中的单段:字段名、数字下标或动态 index 占位 */\nexport type BindingPathSegment = string | number | 'index'\n\n/** 绑定根作用域:页面 data、列表行 item、或行下标 index */\nexport type BindingPath = {\n root: 'data' | 'item' | 'index'\n segments: BindingPathSegment[]\n}\n\n/** 模板绑定中的片段:纯文本或引用路径 */\nexport type BindingSegment = { kind: 'text'; value: string } | { kind: 'ref'; path: BindingPath }\n\n/** 解析后的绑定描述:字面量、单引用或混合模板 */\nexport type BindingDescriptor = { kind: 'literal'; value: string } | { kind: 'ref'; path: BindingPath } | { kind: 'template'; segments: BindingSegment[] }\n\n/** 绑定目标值的类型约束 */\nexport type BindingValueType = 'scalar' | 'array' | 'object' | 'any'\n\n/** 绑定选择器的字段约束 */\nexport type BindingConstraint = {\n /** 允许绑定的值类型,默认 any */\n valueType?: BindingValueType\n /** 是否允许 {{ }} 模板混合文本 */\n allowTemplate?: boolean\n /** 是否展示数组 [index] 动态下标节点 */\n allowIndexPlaceholder?: boolean\n}\n\n/** 字符串属性绑定的默认约束:允许 {{ }} 模板混合文本 */\nexport const DEFAULT_BINDING_CONSTRAINT: BindingConstraint = { allowTemplate: true }\n\nconst INDEX_SEGMENT = 'index' as const\nconst WHOLE_BINDING_RE = /^\\{\\{([^}]+)\\}\\}$/\nconst BINDING_SEGMENT_RE = /\\{\\{([^}]+)\\}\\}/g\nconst METHOD_CALL_RE = /^[a-zA-Z_$][\\w]*\\s*\\(/\nconst PATH_SEGMENT_RE = /([^.\\[\\]]+)|\\[index\\]|\\[(\\d+)\\]/g\n\n/**\n * 构造绑定路径。\n * @param root 根作用域\n * @param segments 根下的路径段,默认空数组\n */\nexport function createPath(root: BindingPath['root'], segments: BindingPathSegment[] = []): BindingPath {\n return { root, segments }\n}\n\n/**\n * 将路径段序列化为表达式(不含 {{ }})。\n * @param segments 路径段列表\n */\nexport function joinPathSegments(segments: BindingPathSegment[]): string {\n let result = ''\n for (const segment of segments) {\n if (segment === INDEX_SEGMENT) {\n result += '[index]'\n continue\n }\n if (typeof segment === 'number') {\n result += `[${segment}]`\n continue\n }\n result = result ? `${result}.${segment}` : segment\n }\n return result\n}\n\n/**\n * 将 BindingPath 转为运行时表达式(不含 {{ }} 包裹)。\n * @param path 绑定路径\n */\nexport function bindingPathToExpression(path: BindingPath): string {\n if (path.root === 'index') return 'index'\n const joined = joinPathSegments(path.segments)\n return path.root === 'item' ? (joined ? `item.${joined}` : 'item') : joined\n}\n\n/**\n * 解析点号/下标形式的路径字符串为段列表。\n * @param raw 如 `foo.bar[0][index]`\n */\nexport function parsePathSegments(raw: string): BindingPathSegment[] {\n const segments: BindingPathSegment[] = []\n let match: RegExpExecArray | null\n\n PATH_SEGMENT_RE.lastIndex = 0\n while ((match = PATH_SEGMENT_RE.exec(raw)) !== null) {\n if (match[0] === '[index]') {\n segments.push(INDEX_SEGMENT)\n } else if (match[2] !== undefined) {\n segments.push(Number(match[2]))\n } else if (match[1]) {\n segments.push(match[1])\n }\n }\n\n return segments\n}\n\n/**\n * 按根作用域解析路径字符串。\n * @param root data 或 item\n * @param raw 去掉前缀后的路径体\n */\nfunction parsePathWithRoot(root: 'data' | 'item', raw: string): BindingPath | null {\n const segments = parsePathSegments(raw)\n if (!segments.length && root === 'item') return null\n return createPath(root, segments)\n}\n\n/**\n * 将绑定表达式解析为 BindingPath。\n * @param expr 如 `data.user.name`、`item.title`、`index`\n */\nexport function parseExpressionToPath(expr: string): BindingPath | null {\n const trimmed = expr.trim()\n if (!trimmed) return null\n if (trimmed === 'index') return createPath('index')\n if (trimmed.startsWith('item.')) return parsePathWithRoot('item', trimmed.slice(5))\n if (trimmed.startsWith('data.')) return parsePathWithRoot('data', trimmed.slice(5))\n return parsePathWithRoot('data', trimmed)\n}\n\n/** 判断字符串是否包含 {{ }} 绑定片段 */\nfunction hasBindingSyntax(value: string): boolean {\n return value.includes('{{')\n}\n\n/**\n * 解析任意绑定值为结构化描述。\n * @param raw 组件 option 中的原始值\n */\nexport function parseBinding(raw: unknown): BindingDescriptor {\n if (typeof raw !== 'string') return { kind: 'literal', value: '' }\n\n const trimmed = raw.trim()\n if (!trimmed) return { kind: 'literal', value: '' }\n\n const whole = trimmed.match(WHOLE_BINDING_RE)\n if (whole) {\n const expr = whole[1].trim()\n if (METHOD_CALL_RE.test(expr)) return { kind: 'literal', value: trimmed }\n const path = parseExpressionToPath(expr)\n return path ? { kind: 'ref', path } : { kind: 'literal', value: trimmed }\n }\n\n if (!hasBindingSyntax(trimmed)) return { kind: 'literal', value: raw }\n\n return parseTemplateBinding(trimmed)\n}\n\n/**\n * 解析含多个 {{ }} 片段的模板绑定。\n * @param trimmed 已 trim 的原始字符串\n */\nfunction parseTemplateBinding(trimmed: string): BindingDescriptor {\n const segments: BindingSegment[] = []\n let lastIndex = 0\n let match: RegExpExecArray | null\n\n BINDING_SEGMENT_RE.lastIndex = 0\n while ((match = BINDING_SEGMENT_RE.exec(trimmed)) !== null) {\n if (match.index > lastIndex) {\n segments.push({ kind: 'text', value: trimmed.slice(lastIndex, match.index) })\n }\n\n const expr = match[1].trim()\n const path = parseExpressionToPath(expr)\n if (path && !METHOD_CALL_RE.test(expr)) {\n segments.push({ kind: 'ref', path })\n } else {\n segments.push({ kind: 'text', value: match[0] })\n }\n\n lastIndex = match.index + match[0].length\n }\n\n if (lastIndex < trimmed.length) {\n segments.push({ kind: 'text', value: trimmed.slice(lastIndex) })\n }\n\n if (segments.length === 1 && segments[0].kind === 'ref') {\n return { kind: 'ref', path: segments[0].path }\n }\n\n return { kind: 'template', segments }\n}\n\n/**\n * 解析列表 dataSource 绑定(裸字段名也会自动包裹 {{ }})。\n * @param raw dataSource 原始值\n */\nexport function parseListDataSourceBinding(raw: unknown): BindingDescriptor {\n const descriptor = parseBinding(raw)\n if (descriptor.kind !== 'literal') return descriptor\n\n const key = descriptor.value.trim()\n if (!key || hasBindingSyntax(key)) return descriptor\n\n const path = parseExpressionToPath(key.startsWith('data.') ? key.slice(5) : key)\n return path ? { kind: 'ref', path } : descriptor\n}\n\n/** 用 {{ }} 包裹表达式 */\nexport function wrapBindingExpression(expr: string): string {\n return `{{${expr}}}`\n}\n\n/** 序列化模板中的单个片段 */\nfunction serializeTemplateSegment(segment: BindingSegment): string {\n return segment.kind === 'text' ? segment.value : wrapBindingExpression(bindingPathToExpression(segment.path))\n}\n\n/**\n * 将绑定描述序列化为存储字符串。\n * @param descriptor 解析后的绑定描述\n */\nexport function serializeBinding(descriptor: BindingDescriptor): string {\n switch (descriptor.kind) {\n case 'literal':\n return descriptor.value\n case 'ref':\n return wrapBindingExpression(bindingPathToExpression(descriptor.path))\n case 'template':\n return descriptor.segments.map(serializeTemplateSegment).join('')\n default:\n return ''\n }\n}\n\n/**\n * 序列化列表 dataSource 绑定。\n * @param descriptor 绑定描述\n */\nexport function serializeListDataSourceBinding(descriptor: BindingDescriptor): string {\n if (descriptor.kind === 'ref') return serializeBinding(descriptor)\n if (descriptor.kind === 'literal') {\n const key = descriptor.value.trim()\n if (!key) return ''\n return hasBindingSyntax(key) ? key : wrapBindingExpression(key)\n }\n return serializeBinding(descriptor)\n}\n\n/**\n * 判断运行时值类型是否满足绑定约束。\n * @param constraintValueType 约束类型,undefined 视为 any\n * @param valueType 实际推断类型\n */\nexport function bindingValueTypeMatches(\n constraintValueType: BindingValueType | undefined,\n valueType: 'string' | 'number' | 'boolean' | 'null' | 'object' | 'array'\n): boolean {\n const expected = constraintValueType ?? 'any'\n if (expected === 'any') return true\n if (expected === 'array') return valueType === 'array'\n if (expected === 'object') return valueType === 'object'\n if (expected === 'scalar') {\n return valueType === 'string' || valueType === 'number' || valueType === 'boolean' || valueType === 'null'\n }\n return true\n}\n\n/**\n * 生成路径的唯一键,用于树节点 key。\n * @param path 绑定路径\n */\nexport function makePathKey(path: BindingPath): string {\n return `${path.root}:${bindingPathToExpression(path)}`\n}\n\n/**\n * 在已有路径末尾追加一段。\n * @param basePath 基础路径\n * @param segment 追加的段\n */\nexport function appendPathSegment(basePath: BindingPath, segment: BindingPathSegment): BindingPath {\n return { root: basePath.root, segments: [...basePath.segments, segment] }\n}\n","import type { Page, Widget } from '../../../../../core/index.ts'\nimport { findParentListWidgets, resolveListItemSample } from '../../../../packages/list/options.ts'\nimport { getPageDataValueSummary, inferPageDataValueType } from '../../../../../runtime/runtime.ts'\nimport { toRaw } from 'vue'\nimport {\n appendPathSegment,\n bindingValueTypeMatches,\n createPath,\n makePathKey,\n type BindingConstraint,\n type BindingPath\n} from './binding-utils.ts'\n\n/** 数据作用域树节点类型 */\nexport type DataScopeNodeKind = 'group' | 'field' | 'api' | 'runtime' | 'item' | 'index' | 'array-index' | 'array-sample'\n\n/** 绑定选择器展示用的数据作用域树节点 */\nexport type DataScopeTreeNode = {\n key: string\n title: string\n kind: DataScopeNodeKind\n typeLabel: string\n summary?: string\n path?: BindingPath\n selectable: boolean\n disabled?: boolean\n children?: DataScopeTreeNode[]\n}\n\n/** buildDataScopeTree 的入参 */\nexport type BuildDataScopeTreeOptions = {\n /** 当前页面设计态配置 */\n page?: Page | null\n /** 运行时 pageData 快照(已合并设计态默认值) */\n runtimeRecord?: Record<string, unknown>\n /** 字段类型约束 */\n constraint?: BindingConstraint\n /** 是否包含列表 item 作用域 */\n includeItemScope?: boolean\n /** 是否包含 index 下标节点 */\n includeIndexScope?: boolean\n /** 列表行样本对象,用于展开 item.* 子树 */\n itemSample?: Record<string, unknown> | null\n}\n\nconst MAX_TREE_DEPTH = 6\n\n/**\n * 安全读取运行时 pageData 为普通对象。\n * @param runtime inject 得到的 lifecycle runtime\n */\nexport function readRuntimeRecord(runtime: unknown): Record<string, unknown> {\n if (!runtime) return {}\n try {\n return { ...(toRaw(runtime) as Record<string, unknown>) }\n } catch {\n return {}\n }\n}\n\n/**\n * 将设计态 page.data 默认值合并进运行时记录(仅补缺失字段)。\n * @param page 页面配置\n * @param runtimeRecord 运行时数据\n */\nexport function mergePageDesignData(page: Page | null | undefined, runtimeRecord: Record<string, unknown>): Record<string, unknown> {\n const merged = { ...runtimeRecord }\n for (const item of page?.data ?? []) {\n const name = item.name.trim()\n if (name && merged[name] === undefined) {\n merged[name] = item.value\n }\n }\n return merged\n}\n\n/**\n * 查找组件在页面 widget 树中的祖先链(含自身)。\n * @param page 页面配置\n * @param widgetId 目标组件 id\n */\nexport function getWidgetTreePath(page: Page | null | undefined, widgetId: number | undefined): Widget[] {\n if (!page || widgetId == null) return []\n\n const paths: Widget[] = []\n\n function walk(tree: Widget[] | undefined): boolean {\n if (!tree) return false\n for (const node of tree) {\n paths.push(node)\n if (node.id === widgetId) return true\n if (node.children && walk(node.children)) return true\n paths.pop()\n }\n return false\n }\n\n walk([page])\n return paths\n}\n\n/**\n * 判断组件是否位于 list 组件内部。\n * @param ancestors 祖先链(含自身)\n */\nexport function isWidgetInsideList(ancestors: Widget[]): boolean {\n return ancestors.some(widget => widget.type === 'list')\n}\n\n/**\n * 查找最近的 list 祖先(不含自身)。\n * @param ancestors 祖先链(含自身)\n */\nexport function findNearestListAncestor(ancestors: Widget[]): Widget | null {\n for (let i = ancestors.length - 2; i >= 0; i--) {\n if (ancestors[i].type === 'list') return ancestors[i]\n }\n return null\n}\n\n/**\n * 推断绑定选择器中「当前行」应对应的 list 组件。\n * 编辑 list.dataSource 时使用外层 list 的行;其余情况使用最近一层 list 的行。\n * @param ancestors 祖先链(含自身)\n * @param listDataSource 是否为 list 的 dataSource 绑定场景\n */\nexport function resolveItemScopeTargetList(ancestors: Widget[], listDataSource?: boolean): Widget | null {\n if (!ancestors.length) return null\n const self = ancestors[ancestors.length - 1]\n\n if (listDataSource && self.type === 'list') {\n return findNearestListAncestor(ancestors)\n }\n\n if (self.type === 'list') {\n return self\n }\n\n return findNearestListAncestor(ancestors)\n}\n\n/**\n * 推断 list 行样本,支持多层 list 嵌套(沿外层 list 链解析 dataSource)。\n * @param ancestors 当前组件祖先链(含自身)\n * @param pageData 合并后的页面数据\n * @param listDataSource 是否为 list 的 dataSource 绑定场景\n */\nexport function inferListItemSample(\n ancestors: Widget[],\n pageData: Record<string, unknown>,\n listDataSource?: boolean\n): Record<string, unknown> | null {\n const listWidget = resolveItemScopeTargetList(ancestors, listDataSource)\n if (!listWidget) return null\n\n const parentLists = findParentListWidgets(ancestors, listWidget)\n return resolveListItemSample(listWidget, pageData, parentLists)\n}\n\n/** 优先使用运行时值,空值回退到设计态默认值 */\nfunction resolveDisplayValue(runtimeValue: unknown | undefined, designValue: unknown): unknown {\n if (runtimeValue === undefined || runtimeValue === null || runtimeValue === '') return designValue\n return runtimeValue\n}\n\n/** 创建可选中的叶子/中间树节点 */\nfunction createSelectableNode(input: {\n key: string\n title: string\n kind: DataScopeNodeKind\n path: BindingPath\n value: unknown\n constraint?: BindingConstraint\n}): DataScopeTreeNode {\n const typeLabel = inferPageDataValueType(input.value)\n const selectable = bindingValueTypeMatches(input.constraint?.valueType, typeLabel)\n\n return {\n key: input.key,\n title: input.title,\n kind: input.kind,\n typeLabel,\n summary: getPageDataValueSummary(input.value),\n path: input.path,\n selectable,\n disabled: !selectable\n }\n}\n\n/**\n * 递归展开 object/array 值为子树节点。\n * @param value 当前值\n * @param basePath 当前绑定路径\n * @param depth 当前深度\n * @param constraint 类型约束\n * @param allowIndexPlaceholder 是否允许 [index] 节点\n */\nfunction buildValueChildren(\n value: unknown,\n basePath: BindingPath,\n depth: number,\n constraint?: BindingConstraint,\n allowIndexPlaceholder?: boolean\n): DataScopeTreeNode[] {\n if (depth >= MAX_TREE_DEPTH) return []\n\n const type = inferPageDataValueType(value)\n\n if (type === 'object' && value && typeof value === 'object' && !Array.isArray(value)) {\n return Object.entries(value as Record<string, unknown>).map(([key, childValue]) => {\n const path = appendPathSegment(basePath, key)\n const node = createSelectableNode({\n key: makePathKey(path),\n title: key,\n kind: basePath.root === 'item' ? 'item' : 'field',\n path,\n value: childValue,\n constraint\n })\n const children = buildValueChildren(childValue, path, depth + 1, constraint, allowIndexPlaceholder)\n return children.length ? { ...node, children } : node\n })\n }\n\n if (type === 'array' && Array.isArray(value)) {\n return buildArrayChildren(value, basePath, depth, constraint, allowIndexPlaceholder)\n }\n\n return []\n}\n\n/** 构建数组类型的子节点(含 [index] 与 [0] 样本) */\nfunction buildArrayChildren(\n value: unknown[],\n basePath: BindingPath,\n depth: number,\n constraint?: BindingConstraint,\n allowIndexPlaceholder?: boolean\n): DataScopeTreeNode[] {\n const nodes: DataScopeTreeNode[] = []\n const matchesArray = bindingValueTypeMatches(constraint?.valueType, 'array')\n\n if (allowIndexPlaceholder) {\n const dynamicPath = appendPathSegment(basePath, 'index')\n nodes.push({\n key: `${makePathKey(basePath)}:[index]`,\n title: '[index]',\n kind: 'array-index',\n typeLabel: 'dynamic',\n summary: '当前外层列表行下标',\n path: dynamicPath,\n selectable: matchesArray,\n disabled: !matchesArray\n })\n }\n\n const sample = value[0]\n if (sample === undefined) return nodes\n\n const samplePath = appendPathSegment(basePath, 0)\n const sampleType = inferPageDataValueType(sample)\n const sampleNode: DataScopeTreeNode = {\n key: `${makePathKey(basePath)}:[0]`,\n title: '[0]',\n kind: 'array-sample',\n typeLabel: sampleType,\n summary: getPageDataValueSummary(sample),\n path: samplePath,\n selectable: bindingValueTypeMatches(constraint?.valueType, sampleType),\n disabled: !bindingValueTypeMatches(constraint?.valueType, sampleType)\n }\n\n const children = buildValueChildren(sample, samplePath, depth + 1, constraint, allowIndexPlaceholder)\n if (children.length) sampleNode.children = children\n nodes.push(sampleNode)\n\n return nodes\n}\n\n/** 构建页面 data 作用域字段列表 */\nfunction buildDataFieldNodes(\n page: Page | null | undefined,\n runtimeRecord: Record<string, unknown>,\n constraint?: BindingConstraint,\n allowIndexPlaceholder?: boolean\n): DataScopeTreeNode[] {\n const rows: DataScopeTreeNode[] = []\n const seen = new Set<string>()\n\n const pushField = (name: string, kind: DataScopeNodeKind, designValue: unknown, runtimeValue?: unknown) => {\n const trimmed = name.trim()\n if (!trimmed || seen.has(trimmed)) return\n seen.add(trimmed)\n\n const displayValue = resolveDisplayValue(runtimeValue, designValue)\n const path = createPath('data', [trimmed])\n const node = createSelectableNode({ key: makePathKey(path), title: trimmed, kind, path, value: displayValue, constraint })\n const children = buildValueChildren(displayValue, path, 0, constraint, allowIndexPlaceholder)\n if (children.length) node.children = children\n rows.push(node)\n }\n\n for (const item of page?.data ?? []) {\n pushField(item.name, 'field', item.value, runtimeRecord[item.name.trim()])\n }\n\n for (const [name, value] of Object.entries(runtimeRecord)) {\n if (!seen.has(name)) pushField(name, 'runtime', value, value)\n }\n\n return rows\n}\n\n/** 构建 list item 作用域子树 */\nfunction buildItemScopeNodes(\n itemSample: Record<string, unknown> | null | undefined,\n constraint?: BindingConstraint,\n allowIndexPlaceholder?: boolean\n): DataScopeTreeNode[] {\n if (!itemSample) return []\n\n return Object.entries(itemSample).map(([key, value]) => {\n const title = key === 'value' && Object.keys(itemSample).length === 1 ? 'value(当前项)' : key\n const path = createPath('item', [key])\n const node = createSelectableNode({ key: makePathKey(path), title, kind: 'item', path, value, constraint })\n const children = buildValueChildren(value, path, 0, constraint, allowIndexPlaceholder)\n return children.length ? { ...node, children } : node\n })\n}\n\n/**\n * 构建绑定选择器的数据作用域树。\n * @param options 页面、运行时数据与作用域开关\n */\nexport function buildDataScopeTree(options: BuildDataScopeTreeOptions): DataScopeTreeNode[] {\n const { constraint, page, runtimeRecord = {}, includeItemScope, includeIndexScope, itemSample } = options\n const allowIndexPlaceholder = constraint?.allowIndexPlaceholder === true\n const dataChildren = buildDataFieldNodes(page, runtimeRecord, constraint, allowIndexPlaceholder)\n const roots: DataScopeTreeNode[] = []\n\n if (dataChildren.length) {\n roots.push({\n key: 'group:data',\n title: '页面数据',\n kind: 'group',\n typeLabel: 'data',\n selectable: false,\n children: dataChildren\n })\n }\n\n if (includeItemScope) {\n const itemChildren = buildItemScopeNodes(itemSample, constraint, allowIndexPlaceholder)\n if (itemChildren.length) {\n roots.push({\n key: 'group:item',\n title: '当前行',\n kind: 'group',\n typeLabel: 'item',\n selectable: false,\n children: itemChildren\n })\n }\n }\n\n if (includeIndexScope) {\n const matchesNumber = bindingValueTypeMatches(constraint?.valueType, 'number')\n roots.push({\n key: 'scope:index',\n title: 'index',\n kind: 'index',\n typeLabel: 'number',\n summary: '当前列表行下标',\n path: createPath('index'),\n selectable: matchesNumber,\n disabled: !matchesNumber\n })\n }\n\n return roots\n}\n\n/**\n * 收集所有可展开节点的 key,用于默认展开树。\n * @param nodes 树根列表\n */\nexport function collectExpandableKeys(nodes: DataScopeTreeNode[]): string[] {\n const keys: string[] = []\n for (const node of nodes) {\n if (node.children?.length) {\n keys.push(node.key, ...collectExpandableKeys(node.children))\n }\n }\n return keys\n}\n","<script setup lang=\"ts\">\nimport { ApiOutlined, DatabaseOutlined, LinkOutlined } from '@ant-design/icons-vue'\nimport { LIFECYCLE_KEY } from '../../../../../runtime/runtime.ts'\nimport { computed, inject, ref, watch } from 'vue'\nimport { useInjectDesigner } from '../../../../../designer/material-registry.ts'\nimport {\n buildDataScopeTree,\n collectExpandableKeys,\n getWidgetTreePath,\n inferListItemSample,\n isWidgetInsideList,\n mergePageDesignData,\n readRuntimeRecord,\n resolveItemScopeTargetList,\n type DataScopeTreeNode\n} from './binding-scope-tree.ts'\nimport {\n bindingPathToExpression,\n serializeListDataSourceBinding,\n wrapBindingExpression,\n type BindingConstraint,\n type BindingPath\n} from './binding-utils.ts'\n\ndefineOptions({ name: 'BindingPicker' })\n\nconst props = withDefaults(\n defineProps<{\n /** v-model:当前绑定值字符串 */\n modelValue?: string\n /** 可选字段类型与模板约束 */\n constraint?: BindingConstraint\n /** 为 true 时按列表 dataSource 规则解析/序列化 */\n listDataSource?: boolean\n /** 当前编辑组件 id,用于推断 list 作用域 */\n widgetId?: number\n /** 为 true 时在现有内容后追加绑定片段,否则替换整个值 */\n append?: boolean\n /** 禁用触发器 */\n disabled?: boolean\n /** 触发器 tooltip 文案 */\n title?: string\n }>(),\n {\n modelValue: '',\n listDataSource: false,\n append: false,\n disabled: false,\n title: '绑定数据字段'\n }\n)\n\nconst emit = defineEmits<{ 'update:modelValue': [value: string] }>()\n\nconst designer = useInjectDesigner()\nconst lifecycleRuntime = inject(LIFECYCLE_KEY, null)\n/** 运行时 pageData 变更计数,用于触发 computed 刷新 */\nconst runtimeVersion = ref(0)\nconst popoverOpen = ref(false)\nconst expandedKeys = ref<string[]>(['group:data'])\n\nwatch(\n () => lifecycleRuntime?.pageData,\n () => {\n runtimeVersion.value++\n },\n { deep: true }\n)\n\n/** 当前组件在 widget 树中的祖先链(含自身) */\nconst ancestors = computed(() => {\n const id = props.widgetId ?? designer?.selectedWidget?.id\n return getWidgetTreePath(designer?.page ?? null, id)\n})\n\n/** 是否处于 list 内部,决定是否展示 item/index 作用域 */\nconst insideList = computed(() => isWidgetInsideList(ancestors.value))\n\n/** 「当前行」对应的 list,嵌套时区分 dataSource 绑定与普通字段绑定 */\nconst itemScopeTargetList = computed(() => resolveItemScopeTargetList(ancestors.value, props.listDataSource))\n\n/** 合并设计态默认值后的运行时 pageData */\nconst runtimeRecord = computed(() => {\n runtimeVersion.value\n const record = readRuntimeRecord(lifecycleRuntime?.pageData)\n return mergePageDesignData(designer?.page ?? null, record)\n})\n\n/** 列表首行样本,用于展开 item.* 子树 */\nconst itemSample = computed(() => {\n runtimeVersion.value\n if (!itemScopeTargetList.value) return null\n return inferListItemSample(ancestors.value, runtimeRecord.value, props.listDataSource)\n})\n\n/** 绑定选择器展示的数据作用域树 */\nconst tree = computed(() =>\n buildDataScopeTree({\n page: designer?.page ?? null,\n runtimeRecord: runtimeRecord.value,\n constraint: props.constraint,\n includeItemScope: insideList.value,\n includeIndexScope: insideList.value,\n itemSample: itemSample.value\n })\n)\n\nwatch(\n tree,\n nodes => {\n const keys = collectExpandableKeys(nodes)\n expandedKeys.value = keys.length ? keys : ['group:data']\n },\n { immediate: true }\n)\n\n/**\n * 根据节点类型返回图标组件。\n * @param node 树节点\n */\nfunction nodeIcon(node: DataScopeTreeNode) {\n if (node.kind === 'api') return ApiOutlined\n if (node.kind === 'group') return DatabaseOutlined\n return LinkOutlined\n}\n\n/**\n * 根据节点类型返回图标样式类。\n * @param node 树节点\n */\nfunction iconClass(node: DataScopeTreeNode) {\n if (node.kind === 'api') {\n return 'text-[var(--colorTextTertiary)] bg-[color-mix(in_srgb,var(--colorText)_8%,transparent)]'\n }\n if (node.kind === 'item' || node.kind === 'index') {\n return 'text-[var(--colorSuccess)] bg-[color-mix(in_srgb,var(--colorSuccess)_12%,transparent)]'\n }\n return 'text-[var(--colorPrimary)] bg-[color-mix(in_srgb,var(--colorPrimary)_12%,transparent)]'\n}\n\n/**\n * 树组件 select 事件:选中可绑定节点。\n * @param _keys 选中的 key(未使用)\n * @param event 含完整节点信息\n */\nfunction onTreeSelect(_keys: string[], event: { node: DataScopeTreeNode }) {\n const node = event.node\n if (!node?.selectable || !node.path || node.disabled) return\n selectPath(node.path)\n}\n\n/**\n * 将选中路径写入 v-model 并关闭弹层。\n * @param path 用户选中的绑定路径\n */\nfunction selectPath(path: BindingPath) {\n const expr = props.listDataSource\n ? serializeListDataSourceBinding({ kind: 'ref', path })\n : wrapBindingExpression(bindingPathToExpression(path))\n\n emit('update:modelValue', props.append ? `${props.modelValue ?? ''}${expr}` : expr)\n popoverOpen.value = false\n}\n</script>\n\n<template>\n <a-tooltip :title=\"title\">\n <a-popover title=\"选择绑定数据字段\" v-model:open=\"popoverOpen\" trigger=\"click\" placement=\"bottomLeft\">\n <template #content>\n <div class=\"h-[600px] w-[500px] scrollbar overflow-auto\">\n <a-tree\n v-if=\"tree.length\"\n :tree-data=\"tree\"\n :field-names=\"{ title: 'title', key: 'key', children: 'children' }\"\n :expanded-keys=\"expandedKeys\"\n block-node\n @update:expanded-keys=\"expandedKeys = $event\"\n @select=\"onTreeSelect\"\n >\n <template #title=\"node\">\n <div\n class=\"flex min-w-0 items-start gap-1.5 py-0.5\"\n :class=\"node.selectable && !node.disabled ? 'cursor-pointer' : node.disabled ? 'opacity-45' : ''\"\n @click.stop=\"node.selectable && !node.disabled && node.path && selectPath(node.path)\"\n >\n <span\n v-if=\"node.kind !== 'group'\"\n class=\"mt-0.5 inline-flex shrink-0 items-center justify-center rounded-sm p-0.5 text-[10px] leading-none\"\n :class=\"iconClass(node)\"\n >\n <component :is=\"nodeIcon(node)\" />\n </span>\n <div class=\"min-w-0 flex-1\">\n <div class=\"flex flex-wrap items-center gap-1 text-sm leading-tight\">\n <span class=\"truncate font-mono\">{{ node.title }}</span>\n <a-tag v-if=\"node.typeLabel\" :bordered=\"false\" class=\"mr-0 px-1 py-0 text-[10px] leading-4\">\n {{ node.typeLabel }}\n </a-tag>\n </div>\n <div v-if=\"node.summary\" class=\"truncate font-mono text-[11px] text-[var(--colorTextQuaternary)]\">\n {{ node.summary }}\n </div>\n </div>\n </div>\n </template>\n </a-tree>\n <a-empty v-else>\n <template #description>\n <div>暂无可用数据字段,请先在「数据」面板添加</div>\n </template>\n </a-empty>\n </div>\n </template>\n <a class=\"cursor-pointer hover:text-[var(--colorPrimary)] line-height-1\" @click=\"popoverOpen = false\">\n <svg viewBox=\"0 0 1024 1024\" version=\"1.1\" width=\"14\" height=\"14\">\n <path\n d=\"M158.165333 499.498667A42.496 42.496 0 0 0 170.666667 469.333333V256a42.666667 42.666667 0 0 1 42.666666-42.666667 42.666667 42.666667 0 0 0 0-85.333333C142.762667 128 85.333333 185.429333 85.333333 256v195.669333l-30.165333 30.165334a42.666667 42.666667 0 0 0 0 60.330666l30.165333 30.165334V768c0 70.570667 57.429333 128 128 128a42.666667 42.666667 0 0 0 0-85.333333 42.666667 42.666667 0 0 1-42.666666-42.666667v-213.333333a42.496 42.496 0 0 0-12.501334-30.165334L145.664 512l12.501333-12.501333zM978.090667 495.658667a42.709333 42.709333 0 0 0-9.258667-13.824L938.666667 451.669333V256c0-70.570667-57.429333-128-128-128a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 1 42.666666 42.666667v213.333333a42.581333 42.581333 0 0 0 12.501334 30.165334l12.501333 12.501333-12.501333 12.501333A42.496 42.496 0 0 0 853.333333 554.666667v213.333333a42.666667 42.666667 0 0 1-42.666666 42.666667 42.666667 42.666667 0 1 0 0 85.333333c70.570667 0 128-57.429333 128-128v-195.669333l30.165333-30.165334a42.709333 42.709333 0 0 0 9.258667-46.506666zM669.738667 225.450667a42.752 42.752 0 0 0-69.546667 14.762666l-255.829333 512a42.624 42.624 0 0 0 23.893333 55.424 42.922667 42.922667 0 0 0 55.552-23.765333l255.786667-512a42.538667 42.538667 0 0 0-9.813334-46.421333z\"\n p-id=\"7989\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </a>\n </a-popover>\n </a-tooltip>\n</template>\n","<script setup lang=\"ts\">\nimport BindingPicker from './binding-picker/index.vue'\nimport { DEFAULT_BINDING_CONSTRAINT, type BindingConstraint } from './binding-picker/binding-utils.ts'\n\ndefineOptions({ name: 'BindingFormItem' })\n\nconst props = withDefaults(\n defineProps<{\n /** 表单项标签 */\n label?: string\n /** 当前编辑组件 id,用于推断 list 等作用域 */\n widgetId?: number\n /** 绑定约束,默认允许模板混合 */\n constraint?: BindingConstraint\n /** 为 true 时按列表 dataSource 规则序列化 */\n listDataSource?: boolean\n /** 为 false 时不展示绑定按钮(如组件名称等设计态字段) */\n bindable?: boolean\n }>(),\n {\n bindable: true\n }\n)\n\n/** 与 BindingPicker、输入控件共享的 v-model */\nconst model = defineModel<string>({ default: '' })\n</script>\n\n<template>\n <a-form-item>\n <template v-if=\"label\" #label>\n <span class=\"flex-1\">{{ label }}</span>\n <BindingPicker\n v-if=\"bindable\"\n v-model=\"model\"\n :widget-id=\"widgetId\"\n :constraint=\"constraint ?? DEFAULT_BINDING_CONSTRAINT\"\n :list-data-source=\"listDataSource\"\n />\n </template>\n <slot />\n </a-form-item>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, ref, useSlots, watch } from 'vue'\n\ndefineOptions({ name: 'SetterShell' })\n\nconst activeTab = ref<string>('basic')\n\n// 记住当前选中的 tab\nwatch(activeTab, newVal => {\n localStorage.setItem('lowcode-setter-active-tab', newVal)\n})\n\nonMounted(() => {\n // 并且组件有对应 slot 时,才设置默认选中\n const savedTab = localStorage.getItem('lowcode-setter-active-tab') ?? 'basic'\n if (savedTab && useSlots()[savedTab as keyof ReturnType<typeof useSlots>]) {\n activeTab.value = savedTab as 'basic' | 'style' | 'event' | 'advanced'\n }\n})\n</script>\n\n<template>\n <a-tabs v-model:activeKey=\"activeTab\" animated class=\"setter-shell [&_.ant-tabs-nav]:mb-0 [&_.ant-tabs-nav]:w-full [&_.ant-tabs-nav-list]:w-full [&_.ant-tabs-tab]:m-0 [&_.ant-tabs-tab]:flex-1 [&_.ant-tabs-tab]:justify-center\">\n <a-tab-pane key=\"basic\" tab=\"属性\" v-if=\"$slots.basic\">\n <slot name=\"basic\" />\n </a-tab-pane>\n <a-tab-pane key=\"style\" tab=\"样式\" v-if=\"$slots.style\">\n <slot name=\"style\" />\n </a-tab-pane>\n <a-tab-pane key=\"event\" tab=\"事件\" v-if=\"$slots.event\">\n <slot name=\"event\" />\n </a-tab-pane>\n <a-tab-pane key=\"advanced\" tab=\"高级\" v-if=\"$slots.advanced\">\n <slot name=\"advanced\" />\n </a-tab-pane>\n </a-tabs>\n</template>\n\n<style scoped>\n.setter-shell {\n & :deep(.ant-form-item-label label) {\n font-size: 12px;\n color: var(--colorTextSecondary);\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport type { ButtonOptions } from './options.ts'\nimport { BUTTON_SHAPE_OPTIONS, BUTTON_SIZE_OPTIONS, BUTTON_TYPE_OPTIONS, ensureButtonOptions } from './options.ts'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<ButtonOptions>({\n widget: () => props.widget,\n ensureOptions: ensureButtonOptions\n})\n\nconst buttonEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <BindingFormItem v-model=\"widgetOptions.text\" label=\"文字\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"widgetOptions.text\" placeholder=\"按钮文字\" allow-clear />\n </BindingFormItem>\n <a-form-item label=\"类型\">\n <a-radio-group v-model:value=\"widgetOptions.type\" size=\"small\">\n <a-radio-button v-for=\"item in BUTTON_TYPE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-row :gutter=\"12\">\n <a-col :span=\"12\">\n <a-form-item label=\"尺寸\">\n <a-radio-group v-model:value=\"widgetOptions.size\" size=\"small\">\n <a-radio-button v-for=\"item in BUTTON_SIZE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item label=\"形状\">\n <a-radio-group v-model:value=\"widgetOptions.shape\" size=\"small\">\n <a-radio-button v-for=\"item in BUTTON_SHAPE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n </a-col>\n </a-row>\n <a-row :gutter=\"12\">\n <a-col :span=\"6\">\n <a-form-item label=\"禁用\">\n <a-switch v-model:checked=\"widgetOptions.disabled\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"块级宽度\">\n <a-switch v-model:checked=\"widgetOptions.block\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"危险按钮\">\n <a-switch v-model:checked=\"widgetOptions.danger\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"幽灵\">\n <a-switch v-model:checked=\"widgetOptions.ghost\" />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"buttonEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"48\",\n height: \"48\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M368 518.4c-3.2-6.4-6.4-9.6-12.8-16-3.2-3.2-9.6-6.4-12.8-9.6 3.2-3.2 6.4-3.2 6.4-6.4 3.2-3.2 3.2-6.4 6.4-9.6 0-3.2 3.2-6.4 3.2-12.8v-12.8c0-9.6-3.2-19.2-6.4-28.8s-9.6-16-12.8-22.4c-6.4-6.4-12.8-9.6-19.2-12.8s-16-3.2-22.4-3.2H224v252.8h80c9.6 0 19.2-3.2 28.8-6.4s16-9.6 22.4-16 12.8-16 16-25.6 6.4-19.2 6.4-32c0-6.4 0-16-3.2-22.4s-3.2-12.8-6.4-16m-96-89.6h16c6.4 0 12.8 3.2 16 6.4 6.4 3.2 6.4 9.6 6.4 19.2s-3.2 16-6.4 19.2c-3.2 6.4-9.6 6.4-16 6.4h-16zm54.4 144c-3.2 3.2-3.2 6.4-6.4 9.6s-6.4 3.2-9.6 6.4c-3.2 0-6.4 3.2-12.8 3.2H272v-64h25.6c9.6 0 16 3.2 22.4 9.6s9.6 12.8 9.6 25.6c0 0-3.2 6.4-3.2 9.6M748.8 480v48c-6.4-6.4-9.6-16-16-25.6s-12.8-16-19.2-22.4L640 384h-41.6v252.8h51.2v-160l19.2 28.8c6.4 9.6 12.8 19.2 22.4 28.8l83.2 108.8H800v-256h-51.2z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M896 224H128c-35.2 0-64 28.8-64 64v448c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V288c0-35.2-28.8-64-64-64m0 480c0 19.2-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V320c0-19.2 12.8-32 32-32h704c19.2 0 32 12.8 32 32z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M393.6 432h64v204.8H512V432h64v-48H393.6z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'button',\n name: '按钮',\n title: '按钮',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n eventPresets: [\n ...COMMON_CONTAINER_EVENT_PRESETS,\n { name: 'focus', label: '获得焦点' },\n { name: 'blur', label: '失去焦点' }\n ],\n children: [],\n options: {\n hidden: false,\n text: '按钮',\n type: 'default',\n size: 'middle',\n shape: 'default',\n disabled: false,\n block: false,\n danger: false,\n ghost: false\n },\n styles: {\n default: {\n display: 'inline-block'\n }\n },\n events: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport ImageUpload from '../../shared/setter/components/image-upload.vue'\nimport type { ImageOptions } from './options.ts'\nimport { IMAGE_FIT_OPTIONS, ensureImageOptions } from './options.ts'\nimport { computed } from 'vue'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<ImageOptions>({\n widget: () => props.widget,\n ensureOptions: ensureImageOptions\n})\n\nconst imageSrc = computed({\n get: () => widgetOptions.value.src ?? '',\n set: value => {\n widgetOptions.value.src = value\n }\n})\n\nconst imageEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <BindingFormItem v-model=\"imageSrc\" label=\"图片\" :widget-id=\"currentWidget.id\">\n <div class=\"flex items-start gap-3\">\n <ImageUpload v-model=\"imageSrc\" :type=\"1\" size=\"80px\" />\n <a-input v-model:value=\"imageSrc\" class=\"min-w-0 flex-1\" placeholder=\"图片地址\" allow-clear />\n </div>\n <div class=\"mt-1 text-[11px] leading-snug text-[var(--colorTextQuaternary)]\">\n 可上传静态图片,或从树形数据中选择 URL 字段(如 <code v-pre>{{ item.cover }}</code>)。\n </div>\n </BindingFormItem>\n <BindingFormItem v-model=\"widgetOptions.alt\" label=\"替代文本\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"widgetOptions.alt\" placeholder=\"无障碍描述,留空则不设置\" allow-clear />\n </BindingFormItem>\n <a-form-item label=\"填充方式\">\n <a-radio-group v-model:value=\"widgetOptions.fit\" size=\"small\">\n <a-radio-button v-for=\"item in IMAGE_FIT_OPTIONS\" :key=\"item.value\" :value=\"item.value\">\n {{ item.label }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"imageEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M896 1024H128C57.312 1024 0 966.688 0 896V128C0 57.312 57.312 0 128 0h768c70.688 0 128 57.312 128 128v768c0 70.688-57.312 128-128 128m0-64c35.328 0 64-28.672 64-64V639.968l-192-192L494.816 721.12 730.624 960zM64 896c0 35.328 28.672 64 64 64h512.032L318.24 638.208 64 865.952zm896-768c0-35.328-28.672-64-64-64H128c-35.328 0-64 28.672-64 64v650.752L320 544l129.856 131.552L768 352l192 196.096zM256 384c-70.688 0-128-57.312-128-128s57.312-128 128-128 128 57.312 128 128-57.312 128-128 128m0-192c-35.328 0-64 28.672-64 64s28.672 64 64 64 64-28.672 64-64-28.672-64-64-64\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'image',\n name: '图片',\n title: '图片',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n eventPresets: [\n ...COMMON_CONTAINER_EVENT_PRESETS,\n { name: 'load', label: '加载完成', hint: '图片加载成功时触发' },\n { name: 'error', label: '加载失败', hint: '图片加载失败时触发' }\n ],\n children: [],\n options: {\n hidden: false,\n src: '',\n alt: '',\n fit: 'cover'\n },\n styles: {\n default: {\n display: 'block',\n width: '100%',\n height: '100%'\n }\n },\n events: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport type { TextOptions } from './options.ts'\nimport { ensureTextOptions, TEXT_DISPLAY_DEFAULT } from './options.ts'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<TextOptions>({\n widget: () => props.widget,\n ensureOptions: ensureTextOptions\n})\n\nconst textEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <BindingFormItem v-model=\"widgetOptions.text\" label=\"文本\" :widget-id=\"currentWidget.id\">\n <a-textarea v-model:value=\"widgetOptions.text\" class=\"min-w-0 flex-1\" placeholder=\"文本内容\" :auto-size=\"{ minRows: 3, maxRows: 8 }\" allow-clear />\n </BindingFormItem>\n <a-row :gutter=\"12\">\n <a-col :span=\"8\">\n <a-form-item label=\"删除线\">\n <a-switch v-model:checked=\"widgetOptions.strikethrough\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"8\">\n <a-form-item label=\"下划线\">\n <a-switch v-model:checked=\"widgetOptions.underline\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"8\">\n <a-form-item label=\"高亮标记\">\n <a-switch v-model:checked=\"widgetOptions.mark\" />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" :display-default=\"TEXT_DISPLAY_DEFAULT\" />\n </template>\n <template #event>\n <EventPanel v-model=\"textEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M213.333 160c-4.821 0-9.472.64-13.824 1.792a32 32 0 0 1-16.554-61.824C192.683 97.408 202.88 96 213.333 96h33.195a32 32 0 0 1 0 64zm133.931-32a32 32 0 0 1 32-32h66.347a32 32 0 1 1 0 64h-66.304a32 32 0 0 1-32-32zm199.125 0a32 32 0 0 1 32-32h66.347a32 32 0 0 1 0 64h-66.347a32 32 0 0 1-32-32m199.083 0a32 32 0 0 1 32-32h33.195c10.453 0 20.65 1.365 30.378 3.968a32 32 0 1 1-16.554 61.867A53.4 53.4 0 0 0 810.667 160h-33.195a32 32 0 0 1-32-32m-606.293 32.341a32 32 0 0 1 22.613 39.168A53.5 53.5 0 0 0 160 213.333v33.195a32 32 0 0 1-64 0v-33.195c0-10.453 1.365-20.65 3.968-30.378a32 32 0 0 1 39.168-22.614zm745.685 0a32 32 0 0 1 39.168 22.614c2.56 9.728 3.968 19.925 3.968 30.378v33.195a32 32 0 0 1-64 0v-33.195c0-4.821-.64-9.472-1.792-13.824a32 32 0 0 1 22.613-39.168zM128 347.221a32 32 0 0 1 32 32v66.39a32 32 0 1 1-64 0v-66.304a32 32 0 0 1 32-32zm768 0a32 32 0 0 1 32 32v66.39a32 32 0 1 1-64 0v-66.304a32 32 0 0 1 32-32zM128 546.432a32 32 0 0 1 32 32v66.347a32 32 0 0 1-64 0v-66.347a32 32 0 0 1 32-32m768 0a32 32 0 0 1 32 32v66.347a32 32 0 0 1-64 0v-66.347a32 32 0 0 1 32-32m0 199.083a32 32 0 0 1 32 32v33.152c0 10.453-1.365 20.65-3.968 30.378a32 32 0 1 1-61.867-16.554c1.195-4.352 1.835-8.96 1.835-13.824v-33.195a32 32 0 0 1 32-32zm-768 0a32 32 0 0 1 32 32v33.152c0 4.821.64 9.472 1.792 13.824a32 32 0 0 1-61.824 16.512A117.5 117.5 0 0 1 96 810.667v-33.195a32 32 0 0 1 32-32zm32.341 139.392a32 32 0 0 1 39.168-22.656 53.8 53.8 0 0 0 13.824 1.792h33.195a32 32 0 0 1 0 64h-33.195c-10.453 0-20.65-1.366-30.378-3.968a32 32 0 0 1-22.614-39.168m703.318 0a32 32 0 0 1-22.614 39.168c-9.728 2.56-19.925 3.968-30.378 3.968h-33.195a32 32 0 0 1 0-64h33.195c4.821 0 9.472-.64 13.824-1.792a32 32 0 0 1 39.168 22.613zM347.307 896a32 32 0 0 1 32-32h66.346a32 32 0 1 1 0 64h-66.346a32 32 0 0 1-32-32m199.125 0a32 32 0 0 1 32-32h66.347a32 32 0 0 1 0 64h-66.347a32 32 0 0 1-32-32M341.333 352a32 32 0 0 0 0 64H480v266.667a32 32 0 0 0 64 0V416h138.667a32 32 0 0 0 0-64z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\nimport { TEXT_DISPLAY_DEFAULT } from './options.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'text',\n name: '文本',\n title: '文本',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n children: [],\n styles: {\n default: {\n display: TEXT_DISPLAY_DEFAULT\n }\n },\n events: [],\n options: {\n hidden: false,\n text: '文本内容',\n strikethrough: false,\n underline: false,\n mark: false\n }\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport StylePropertyInput from '../../shared/setter/components/style-property-input.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { DIVIDER_ORIENTATION_OPTIONS, DIVIDER_TYPE_OPTIONS, ensureDividerOptions, formatOrientationMarginInput, isDividerHorizontal, isDividerOrientationMarginApplicable, normalizeOrientationMargin, type DividerOptions } from './options.ts'\nimport { computed, watch } from 'vue'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<DividerOptions>({\n widget: () => props.widget,\n ensureOptions: ensureDividerOptions\n})\n\nwatch(\n () => currentWidget.value.options?.orientation,\n () => ensureDividerOptions(currentWidget.value)\n)\n\nwatch(\n () => currentWidget.value.options?.type,\n () => ensureDividerOptions(currentWidget.value)\n)\n\nconst isHorizontal = computed(() => isDividerHorizontal(widgetOptions.value.type))\n\nconst showOrientationMargin = computed(() => isHorizontal.value && isDividerOrientationMarginApplicable(widgetOptions.value.orientation))\n\nconst dividerEvents = useWidgetEventsBinding()\n\nconst orientationMarginInput = computed({\n get: () => formatOrientationMarginInput(widgetOptions.value.orientationMargin),\n set: (value: string) => {\n const normalized = normalizeOrientationMargin(value)\n const options = widgetOptions.value\n if (normalized === undefined) {\n delete options.orientationMargin\n } else {\n options.orientationMargin = normalized\n }\n }\n})\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <a-form-item label=\"方向\">\n <a-radio-group v-model:value=\"widgetOptions.type\">\n <a-radio-button v-for=\"item in DIVIDER_TYPE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">\n {{ item.label }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item label=\"虚线\">\n <a-switch v-model:checked=\"widgetOptions.dashed\" />\n </a-form-item>\n <template v-if=\"isHorizontal\">\n <BindingFormItem v-model=\"widgetOptions.text\" label=\"文案\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"widgetOptions.text\" placeholder=\"分割线文案,留空则不显示\" allow-clear />\n </BindingFormItem>\n <a-form-item label=\"文案位置\">\n <a-radio-group v-model:value=\"widgetOptions.orientation\">\n <a-radio-button v-for=\"item in DIVIDER_ORIENTATION_OPTIONS\" :key=\"item.value\" :value=\"item.value\">\n {{ item.label }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item v-if=\"showOrientationMargin\" label=\"文案边距\">\n <StylePropertyInput v-model=\"orientationMarginInput\" preset=\"orientationMargin\" />\n </a-form-item>\n </template>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" :show-typography=\"isHorizontal\" :default-active-key=\"['layout', 'typography', 'border']\" />\n </template>\n <template #event>\n <EventPanel v-model=\"dividerEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M62.5 491.773h899v74.918h-899z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'divider',\n name: '分割线',\n title: '分割线',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n children: [],\n options: {\n hidden: false,\n text: '',\n dashed: false,\n orientation: 'center',\n type: 'horizontal'\n },\n styles: {\n default: {\n display: 'block',\n width: '100%'\n }\n },\n events: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { CARD_SIZE_OPTIONS, ensureCardOptions, type CardOptions } from './options.ts'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<CardOptions>({\n widget: () => props.widget,\n ensureOptions: ensureCardOptions\n})\n\nconst cardEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <BindingFormItem v-model=\"widgetOptions.cardTitle\" label=\"卡片标题\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"widgetOptions.cardTitle\" placeholder=\"卡片标题\" allow-clear />\n </BindingFormItem>\n <a-form-item label=\"尺寸\">\n <a-radio-group v-model:value=\"widgetOptions.size\">\n <a-radio-button v-for=\"item in CARD_SIZE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"cardEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"300\",\n height: \"300\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M858.656 864H165.344C109.472 864 64 818.56 64 762.688V261.312C64 205.44 109.472 160 165.344 160h693.312C914.528 160 960 205.44 960 261.312v501.376C960 818.56 914.528 864 858.656 864M165.344 224C144.736 224 128 240.736 128 261.312v501.376C128 783.264 144.736 800 165.344 800h693.312C879.264 800 896 783.264 896 762.688V261.312C896 240.736 879.264 224 858.656 224zM800 416H224c-17.664 0-32-14.336-32-32s14.336-32 32-32h576c17.696 0 32 14.336 32 32s-14.304 32-32 32M320 736h-96c-17.664 0-32-14.304-32-32s14.336-32 32-32h96c17.664 0 32 14.304 32 32s-14.336 32-32 32\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'card',\n isContainer: true,\n name: '卡片',\n title: '卡片',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n children: [],\n options: {\n hidden: false,\n cardTitle: '卡片标题',\n size: 'default'\n },\n styles: {\n default: {\n display: 'block',\n height: 'auto'\n }\n },\n events: []\n}\n\nexport default widget\n","function removeNode(node) {\r\n if (node.parentElement !== null) {\r\n node.parentElement.removeChild(node);\r\n }\r\n}\r\n\r\nfunction insertNodeAt(fatherNode, node, position) {\r\n const refNode =\r\n position === 0\r\n ? fatherNode.children[0]\r\n : fatherNode.children[position - 1].nextSibling;\r\n fatherNode.insertBefore(node, refNode);\r\n}\r\n\r\nexport { insertNodeAt, removeNode };\r\n","function getConsole() {\r\n if (typeof window !== \"undefined\") {\r\n return window.console;\r\n }\r\n return global.console;\r\n}\r\nconst console = getConsole();\r\n\r\nexport { console };\r\n","function cached(fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn(str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\n\r\nconst regex = /-(\\w)/g;\r\nconst camelize = cached(str => str.replace(regex, (_, c) => c.toUpperCase()));\r\n\r\nexport { camelize };\r\n","const manageAndEmit = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\r\nconst emit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\r\nconst manage = [\"Move\"];\r\nconst eventHandlerNames = [manage, manageAndEmit, emit]\r\n .flatMap(events => events)\r\n .map(evt => `on${evt}`);\r\n\r\nconst events = {\r\n manage,\r\n manageAndEmit,\r\n emit\r\n};\r\n\r\nfunction isReadOnly(eventName) {\r\n return eventHandlerNames.indexOf(eventName) !== -1;\r\n}\r\n\r\nexport { events, isReadOnly };\r\n","const tags = [\r\n \"a\",\r\n \"abbr\",\r\n \"address\",\r\n \"area\",\r\n \"article\",\r\n \"aside\",\r\n \"audio\",\r\n \"b\",\r\n \"base\",\r\n \"bdi\",\r\n \"bdo\",\r\n \"blockquote\",\r\n \"body\",\r\n \"br\",\r\n \"button\",\r\n \"canvas\",\r\n \"caption\",\r\n \"cite\",\r\n \"code\",\r\n \"col\",\r\n \"colgroup\",\r\n \"data\",\r\n \"datalist\",\r\n \"dd\",\r\n \"del\",\r\n \"details\",\r\n \"dfn\",\r\n \"dialog\",\r\n \"div\",\r\n \"dl\",\r\n \"dt\",\r\n \"em\",\r\n \"embed\",\r\n \"fieldset\",\r\n \"figcaption\",\r\n \"figure\",\r\n \"footer\",\r\n \"form\",\r\n \"h1\",\r\n \"h2\",\r\n \"h3\",\r\n \"h4\",\r\n \"h5\",\r\n \"h6\",\r\n \"head\",\r\n \"header\",\r\n \"hgroup\",\r\n \"hr\",\r\n \"html\",\r\n \"i\",\r\n \"iframe\",\r\n \"img\",\r\n \"input\",\r\n \"ins\",\r\n \"kbd\",\r\n \"label\",\r\n \"legend\",\r\n \"li\",\r\n \"link\",\r\n \"main\",\r\n \"map\",\r\n \"mark\",\r\n \"math\",\r\n \"menu\",\r\n \"menuitem\",\r\n \"meta\",\r\n \"meter\",\r\n \"nav\",\r\n \"noscript\",\r\n \"object\",\r\n \"ol\",\r\n \"optgroup\",\r\n \"option\",\r\n \"output\",\r\n \"p\",\r\n \"param\",\r\n \"picture\",\r\n \"pre\",\r\n \"progress\",\r\n \"q\",\r\n \"rb\",\r\n \"rp\",\r\n \"rt\",\r\n \"rtc\",\r\n \"ruby\",\r\n \"s\",\r\n \"samp\",\r\n \"script\",\r\n \"section\",\r\n \"select\",\r\n \"slot\",\r\n \"small\",\r\n \"source\",\r\n \"span\",\r\n \"strong\",\r\n \"style\",\r\n \"sub\",\r\n \"summary\",\r\n \"sup\",\r\n \"svg\",\r\n \"table\",\r\n \"tbody\",\r\n \"td\",\r\n \"template\",\r\n \"textarea\",\r\n \"tfoot\",\r\n \"th\",\r\n \"thead\",\r\n \"time\",\r\n \"title\",\r\n \"tr\",\r\n \"track\",\r\n \"u\",\r\n \"ul\",\r\n \"var\",\r\n \"video\",\r\n \"wbr\"\r\n];\r\n\r\nfunction isHtmlTag(name) {\r\n return tags.includes(name);\r\n}\r\n\r\nfunction isTransition(name) {\r\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\r\n}\r\n\r\nfunction isHtmlAttribute(value) {\r\n return (\r\n [\"id\", \"class\", \"role\", \"style\"].includes(value) ||\r\n value.startsWith(\"data-\") ||\r\n value.startsWith(\"aria-\") ||\r\n value.startsWith(\"on\")\r\n );\r\n}\r\n\r\nexport { isHtmlTag, isHtmlAttribute, isTransition };\r\n","import { camelize } from \"../util/string\";\r\nimport { events, isReadOnly } from \"./sortableEvents\";\r\nimport { isHtmlAttribute } from \"../util/tags\";\r\n\r\nfunction project(entries) {\r\n return entries.reduce((res, [key, value]) => {\r\n res[key] = value;\r\n return res;\r\n }, {});\r\n}\r\n\r\nfunction getComponentAttributes({ $attrs, componentData = {} }) {\r\n const attributes = project(\r\n Object.entries($attrs).filter(([key, _]) => isHtmlAttribute(key))\r\n );\r\n return {\r\n ...attributes,\r\n ...componentData\r\n };\r\n}\r\n\r\nfunction createSortableOption({ $attrs, callBackBuilder }) {\r\n const options = project(getValidSortableEntries($attrs));\r\n Object.entries(callBackBuilder).forEach(([eventType, eventBuilder]) => {\r\n events[eventType].forEach(event => {\r\n options[`on${event}`] = eventBuilder(event);\r\n });\r\n });\r\n const draggable = `[data-draggable]${options.draggable || \"\"}`;\r\n return {\r\n ...options,\r\n draggable\r\n };\r\n}\r\n\r\nfunction getValidSortableEntries(value) {\r\n return Object.entries(value)\r\n .filter(([key, _]) => !isHtmlAttribute(key))\r\n .map(([key, value]) => [camelize(key), value])\r\n .filter(([key, _]) => !isReadOnly(key));\r\n}\r\n\r\nexport {\r\n getComponentAttributes,\r\n createSortableOption,\r\n getValidSortableEntries\r\n};\r\n","const getHtmlElementFromNode = ({ el }) => el;\r\nconst addContext = (domElement, context) =>\r\n (domElement.__draggable_context = context);\r\nconst getContext = domElement => domElement.__draggable_context;\r\n\r\nclass ComponentStructure {\r\n constructor({\r\n nodes: { header, default: defaultNodes, footer },\r\n root,\r\n realList\r\n }) {\r\n this.defaultNodes = defaultNodes;\r\n this.children = [...header, ...defaultNodes, ...footer];\r\n this.externalComponent = root.externalComponent;\r\n this.rootTransition = root.transition;\r\n this.tag = root.tag;\r\n this.realList = realList;\r\n }\r\n\r\n get _isRootComponent() {\r\n return this.externalComponent || this.rootTransition;\r\n }\r\n\r\n render(h, attributes) {\r\n const { tag, children, _isRootComponent } = this;\r\n const option = !_isRootComponent ? children : { default: () => children };\r\n return h(tag, attributes, option);\r\n }\r\n\r\n updated() {\r\n const { defaultNodes, realList } = this;\r\n defaultNodes.forEach((node, index) => {\r\n addContext(getHtmlElementFromNode(node), {\r\n element: realList[index],\r\n index\r\n });\r\n });\r\n }\r\n\r\n getUnderlyingVm(domElement) {\r\n return getContext(domElement);\r\n }\r\n\r\n getVmIndexFromDomIndex(domIndex, element) {\r\n const { defaultNodes } = this;\r\n const { length } = defaultNodes;\r\n const domChildren = element.children;\r\n const domElement = domChildren.item(domIndex);\r\n\r\n if (domElement === null) {\r\n return length;\r\n }\r\n const context = getContext(domElement);\r\n if (context) {\r\n return context.index;\r\n }\r\n\r\n if (length === 0) {\r\n return 0;\r\n }\r\n const firstDomListElement = getHtmlElementFromNode(defaultNodes[0]);\r\n const indexFirstDomListElement = [...domChildren].findIndex(\r\n element => element === firstDomListElement\r\n );\r\n return domIndex < indexFirstDomListElement ? 0 : length;\r\n }\r\n}\r\n\r\nexport { ComponentStructure };\r\n","import { ComponentStructure } from \"./componentStructure\";\r\nimport { isHtmlTag, isTransition } from \"../util/tags\";\r\nimport { resolveComponent, TransitionGroup } from \"vue\";\r\n\r\nfunction getSlot(slots, key) {\r\n const slotValue = slots[key];\r\n return slotValue ? slotValue() : [];\r\n}\r\n\r\nfunction computeNodes({ $slots, realList, getKey }) {\r\n const normalizedList = realList || [];\r\n const [header, footer] = [\"header\", \"footer\"].map(name =>\r\n getSlot($slots, name)\r\n );\r\n const { item } = $slots;\r\n if (!item) {\r\n throw new Error(\"draggable element must have an item slot\");\r\n }\r\n const defaultNodes = normalizedList.flatMap((element, index) =>\r\n item({ element, index }).map(node => {\r\n node.key = getKey(element);\r\n node.props = { ...(node.props || {}), \"data-draggable\": true };\r\n return node;\r\n })\r\n );\r\n if (defaultNodes.length !== normalizedList.length) {\r\n throw new Error(\"Item slot must have only one child\");\r\n }\r\n return {\r\n header,\r\n footer,\r\n default: defaultNodes\r\n };\r\n}\r\n\r\nfunction getRootInformation(tag) {\r\n const transition = isTransition(tag);\r\n const externalComponent = !isHtmlTag(tag) && !transition;\r\n return {\r\n transition,\r\n externalComponent,\r\n tag: externalComponent\r\n ? resolveComponent(tag)\r\n : transition\r\n ? TransitionGroup\r\n : tag\r\n };\r\n}\r\n\r\nfunction computeComponentStructure({ $slots, tag, realList, getKey }) {\r\n const nodes = computeNodes({ $slots, realList, getKey });\r\n const root = getRootInformation(tag);\r\n return new ComponentStructure({ nodes, root, realList });\r\n}\r\n\r\nexport { computeComponentStructure };\r\n","import Sortable from \"sortablejs\";\r\nimport { insertNodeAt, removeNode } from \"./util/htmlHelper\";\r\nimport { console } from \"./util/console\";\r\nimport {\r\n getComponentAttributes,\r\n createSortableOption,\r\n getValidSortableEntries\r\n} from \"./core/componentBuilderHelper\";\r\nimport { computeComponentStructure } from \"./core/renderHelper\";\r\nimport { events } from \"./core/sortableEvents\";\r\nimport { h, defineComponent, nextTick } from \"vue\";\r\n\r\nfunction emit(evtName, evtData) {\r\n nextTick(() => this.$emit(evtName.toLowerCase(), evtData));\r\n}\r\n\r\nfunction manage(evtName) {\r\n return (evtData, originalElement) => {\r\n if (this.realList !== null) {\r\n return this[`onDrag${evtName}`](evtData, originalElement);\r\n }\r\n };\r\n}\r\n\r\nfunction manageAndEmit(evtName) {\r\n const delegateCallBack = manage.call(this, evtName);\r\n return (evtData, originalElement) => {\r\n delegateCallBack.call(this, evtData, originalElement);\r\n emit.call(this, evtName, evtData);\r\n };\r\n}\r\n\r\nlet draggingElement = null;\r\n\r\nconst props = {\r\n list: {\r\n type: Array,\r\n required: false,\r\n default: null\r\n },\r\n modelValue: {\r\n type: Array,\r\n required: false,\r\n default: null\r\n },\r\n itemKey: {\r\n type: [String, Function],\r\n required: true\r\n },\r\n clone: {\r\n type: Function,\r\n default: original => {\r\n return original;\r\n }\r\n },\r\n tag: {\r\n type: String,\r\n default: \"div\"\r\n },\r\n move: {\r\n type: Function,\r\n default: null\r\n },\r\n componentData: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n }\r\n};\r\n\r\nconst emits = [\r\n \"update:modelValue\",\r\n \"change\",\r\n ...[...events.manageAndEmit, ...events.emit].map(evt => evt.toLowerCase())\r\n];\r\n\r\nconst draggableComponent = defineComponent({\r\n name: \"draggable\",\r\n\r\n inheritAttrs: false,\r\n\r\n props,\r\n\r\n emits,\r\n\r\n data() {\r\n return {\r\n error: false\r\n };\r\n },\r\n\r\n render() {\r\n try {\r\n this.error = false;\r\n const { $slots, $attrs, tag, componentData, realList, getKey } = this;\r\n const componentStructure = computeComponentStructure({\r\n $slots,\r\n tag,\r\n realList,\r\n getKey\r\n });\r\n this.componentStructure = componentStructure;\r\n const attributes = getComponentAttributes({ $attrs, componentData });\r\n return componentStructure.render(h, attributes);\r\n } catch (err) {\r\n this.error = true;\r\n return h(\"pre\", { style: { color: \"red\" } }, err.stack);\r\n }\r\n },\r\n\r\n created() {\r\n if (this.list !== null && this.modelValue !== null) {\r\n console.error(\r\n \"modelValue and list props are mutually exclusive! Please set one or another.\"\r\n );\r\n }\r\n },\r\n\r\n mounted() {\r\n if (this.error) {\r\n return;\r\n }\r\n\r\n const { $attrs, $el, componentStructure } = this;\r\n componentStructure.updated();\r\n\r\n const sortableOptions = createSortableOption({\r\n $attrs,\r\n callBackBuilder: {\r\n manageAndEmit: event => manageAndEmit.call(this, event),\r\n emit: event => emit.bind(this, event),\r\n manage: event => manage.call(this, event)\r\n }\r\n });\r\n const targetDomElement = $el.nodeType === 1 ? $el : $el.parentElement;\r\n this._sortable = new Sortable(targetDomElement, sortableOptions);\r\n this.targetDomElement = targetDomElement;\r\n targetDomElement.__draggable_component__ = this;\r\n },\r\n\r\n updated() {\r\n this.componentStructure.updated();\r\n },\r\n\r\n beforeUnmount() {\r\n if (this._sortable !== undefined) this._sortable.destroy();\r\n },\r\n\r\n computed: {\r\n realList() {\r\n const { list } = this;\r\n return list ? list : this.modelValue;\r\n },\r\n\r\n getKey() {\r\n const { itemKey } = this;\r\n if (typeof itemKey === \"function\") {\r\n return itemKey;\r\n }\r\n return element => element[itemKey];\r\n }\r\n },\r\n\r\n watch: {\r\n $attrs: {\r\n handler(newOptionValue) {\r\n const { _sortable } = this;\r\n if (!_sortable) return;\r\n getValidSortableEntries(newOptionValue).forEach(([key, value]) => {\r\n _sortable.option(key, value);\r\n });\r\n },\r\n deep: true\r\n }\r\n },\r\n\r\n methods: {\r\n getUnderlyingVm(domElement) {\r\n return this.componentStructure.getUnderlyingVm(domElement) || null;\r\n },\r\n\r\n getUnderlyingPotencialDraggableComponent(htmElement) {\r\n //TODO check case where you need to see component children\r\n return htmElement.__draggable_component__;\r\n },\r\n\r\n emitChanges(evt) {\r\n nextTick(() => this.$emit(\"change\", evt));\r\n },\r\n\r\n alterList(onList) {\r\n if (this.list) {\r\n onList(this.list);\r\n return;\r\n }\r\n const newList = [...this.modelValue];\r\n onList(newList);\r\n this.$emit(\"update:modelValue\", newList);\r\n },\r\n\r\n spliceList() {\r\n const spliceList = list => list.splice(...arguments);\r\n this.alterList(spliceList);\r\n },\r\n\r\n updatePosition(oldIndex, newIndex) {\r\n const updatePosition = list =>\r\n list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\r\n this.alterList(updatePosition);\r\n },\r\n\r\n getRelatedContextFromMoveEvent({ to, related }) {\r\n const component = this.getUnderlyingPotencialDraggableComponent(to);\r\n if (!component) {\r\n return { component };\r\n }\r\n const list = component.realList;\r\n const context = { list, component };\r\n if (to !== related && list) {\r\n const destination = component.getUnderlyingVm(related) || {};\r\n return { ...destination, ...context };\r\n }\r\n return context;\r\n },\r\n\r\n getVmIndexFromDomIndex(domIndex) {\r\n return this.componentStructure.getVmIndexFromDomIndex(\r\n domIndex,\r\n this.targetDomElement\r\n );\r\n },\r\n\r\n onDragStart(evt) {\r\n this.context = this.getUnderlyingVm(evt.item);\r\n evt.item._underlying_vm_ = this.clone(this.context.element);\r\n draggingElement = evt.item;\r\n },\r\n\r\n onDragAdd(evt) {\r\n const element = evt.item._underlying_vm_;\r\n if (element === undefined) {\r\n return;\r\n }\r\n removeNode(evt.item);\r\n const newIndex = this.getVmIndexFromDomIndex(evt.newIndex);\r\n this.spliceList(newIndex, 0, element);\r\n const added = { element, newIndex };\r\n this.emitChanges({ added });\r\n },\r\n\r\n onDragRemove(evt) {\r\n insertNodeAt(this.$el, evt.item, evt.oldIndex);\r\n if (evt.pullMode === \"clone\") {\r\n removeNode(evt.clone);\r\n return;\r\n }\r\n const { index: oldIndex, element } = this.context;\r\n this.spliceList(oldIndex, 1);\r\n const removed = { element, oldIndex };\r\n this.emitChanges({ removed });\r\n },\r\n\r\n onDragUpdate(evt) {\r\n removeNode(evt.item);\r\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\r\n const oldIndex = this.context.index;\r\n const newIndex = this.getVmIndexFromDomIndex(evt.newIndex);\r\n this.updatePosition(oldIndex, newIndex);\r\n const moved = { element: this.context.element, oldIndex, newIndex };\r\n this.emitChanges({ moved });\r\n },\r\n\r\n computeFutureIndex(relatedContext, evt) {\r\n if (!relatedContext.element) {\r\n return 0;\r\n }\r\n const domChildren = [...evt.to.children].filter(\r\n el => el.style[\"display\"] !== \"none\"\r\n );\r\n const currentDomIndex = domChildren.indexOf(evt.related);\r\n const currentIndex = relatedContext.component.getVmIndexFromDomIndex(\r\n currentDomIndex\r\n );\r\n const draggedInList = domChildren.indexOf(draggingElement) !== -1;\r\n return draggedInList || !evt.willInsertAfter\r\n ? currentIndex\r\n : currentIndex + 1;\r\n },\r\n\r\n onDragMove(evt, originalEvent) {\r\n const { move, realList } = this;\r\n if (!move || !realList) {\r\n return true;\r\n }\r\n\r\n const relatedContext = this.getRelatedContextFromMoveEvent(evt);\r\n const futureIndex = this.computeFutureIndex(relatedContext, evt);\r\n const draggedContext = {\r\n ...this.context,\r\n futureIndex\r\n };\r\n const sendEvent = {\r\n ...evt,\r\n relatedContext,\r\n draggedContext\r\n };\r\n return move(sendEvent, originalEvent);\r\n },\r\n\r\n onDragEnd() {\r\n draggingElement = null;\r\n }\r\n }\r\n});\r\n\r\nexport default draggableComponent;\r\n","<script setup lang=\"ts\">\nimport type { Designer } from '../../../../designer/designer.ts'\nimport type { KeyedSlotContainerConfig, Widget } from '../../../../core/index.ts'\nimport { canMutateWidgetStructure, resolveWidgetEditorTitle } from '../../../../core/index.ts'\nimport { DeleteOutlined, HolderOutlined } from '@ant-design/icons-vue'\nimport draggable from 'vuedraggable'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n designer?: Designer\n containerWidget: Widget\n children: Widget[]\n config: KeyedSlotContainerConfig\n defaultChildTitle: string\n listLabel: string\n itemPlaceholder: string\n dragHandleClass: string\n removeTitle: string\n addButtonText?: string\n}>()\n\nconst childList = computed<Widget[]>({\n get: () => props.containerWidget.children ?? [],\n set: value => {\n if (!canEditList.value) return\n props.containerWidget.children = value\n }\n})\n\nconst canEditList = computed(() => {\n if (!props.designer?.page) return true\n return canMutateWidgetStructure(props.designer.page, props.containerWidget)\n})\n\nfunction canEditChild(child: Widget) {\n if (!props.designer?.page) return true\n return canMutateWidgetStructure(props.designer.page, child)\n}\n\nfunction handleAdd() {\n if (!canEditList.value) return\n props.designer?.addKeyedSlotChild(props.containerWidget, props.config)\n}\n\nfunction handleRemove(child: Widget) {\n if (!canEditChild(child)) return\n props.designer?.removeKeyedSlotChild(props.containerWidget, child, props.config)\n}\n\nfunction handleDragEnd() {\n if (!canEditList.value) return\n props.designer?.recordHistoryNow()\n}\n\nfunction handleTitleChange(child: Widget) {\n if (!canEditChild(child)) return\n child.title = resolveWidgetEditorTitle(child).trim() || props.defaultChildTitle\n}\n</script>\n\n<template>\n <div class=\"p-4\">\n <div class=\"mb-2 text-xs text-[var(--colorTextSecondary)]\">{{ listLabel }}</div>\n <draggable v-model=\"childList\" item-key=\"id\" :handle=\"canEditList ? `.${dragHandleClass}` : undefined\" :disabled=\"!canEditList\" class=\"flex flex-col gap-2\" @end=\"handleDragEnd\">\n <template #item=\"{ element: child }\">\n <div class=\"flex items-center gap-2 [&_.ant-input]:rounded-6px\">\n <a-input v-model:value=\"child.title\" :placeholder=\"itemPlaceholder\" class=\"min-w-0 flex-1\" :disabled=\"!canEditChild(child)\" @change=\"handleTitleChange(child)\" />\n <button type=\"button\" class=\"flex shrink-0 cursor-pointer items-center border-none bg-transparent p-0 text-sm leading-none text-[var(--colorTextSecondary)] hover:text-[var(--colorError)] disabled:cursor-not-allowed disabled:opacity-40\" :title=\"removeTitle\" :disabled=\"!canEditChild(child) || children.length <= 1\" @click=\"handleRemove(child)\">\n <DeleteOutlined />\n </button>\n <span v-if=\"canEditList\" :class=\"[dragHandleClass, 'flex shrink-0 cursor-grab items-center text-sm leading-none text-[var(--colorTextSecondary)] active:cursor-grabbing']\" title=\"拖拽排序\">\n <HolderOutlined />\n </span>\n </div>\n </template>\n </draggable>\n <button type=\"button\" class=\"mt-3 cursor-pointer border-none bg-transparent p-0 text-sm text-[var(--colorPrimary)] hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-40\" :disabled=\"!canEditList\" @click=\"handleAdd\">\n {{ addButtonText ?? '添加一项 +' }}\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport StyleColorInput from '../../shared/setter/components/color-input.vue'\nimport StylePropertyInput from '../../shared/setter/components/style-property-input.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { CAROUSEL_DOT_POSITION_OPTIONS, DEFAULT_CAROUSEL_OPTIONS, ensureCarouselOptions, type CarouselOptions } from './options.ts'\nimport { DEFAULT_CAROUSEL_SLIDE_TITLE } from './carousel-slide/options.ts'\nimport { CAROUSEL_KEYED_SLOT_CONFIG, getCarouselSlides } from './options.ts'\nimport KeyedSlotChildList from '../../shared/setter/components/keyed-slot-child-list.vue'\nimport { computed } from 'vue'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nfunction ensureCarouselOptionsWithDefaults(widget: Widget) {\n ensureCarouselOptions(widget)\n}\n\nconst { designer, currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<CarouselOptions>({\n widget: () => props.widget,\n ensureOptions: ensureCarouselOptionsWithDefaults\n})\n\nconst carouselSlides = computed(() => getCarouselSlides(currentWidget.value))\nconst carouselEvents = useWidgetEventsBinding()\n\nconst carouselHeight = computed({\n get: () => widgetOptions.value.height ?? DEFAULT_CAROUSEL_OPTIONS.height,\n set: value => {\n widgetOptions.value.height = value\n }\n})\n\nconst dotColor = computed({\n get: () => widgetOptions.value.dotColor ?? DEFAULT_CAROUSEL_OPTIONS.dotColor,\n set: value => {\n widgetOptions.value.dotColor = value\n }\n})\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n\n <a-form-item label=\"高度\">\n <StylePropertyInput v-model=\"carouselHeight\" preset=\"carouselHeight\" />\n </a-form-item>\n\n <a-form-item label=\"指示点位置\">\n <a-radio-group v-model:value=\"widgetOptions.dotPosition\" size=\"small\">\n <a-radio-button v-for=\"item in CAROUSEL_DOT_POSITION_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-row :gutter=\"12\">\n <a-col :span=\"6\">\n <a-form-item label=\"自动播放\">\n <a-switch v-model:checked=\"widgetOptions.autoplay\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"9\">\n <a-form-item label=\"间隔 (ms)\">\n <a-input-number v-model:value=\"widgetOptions.autoplaySpeed\" class=\"w-full\" :min=\"500\" :step=\"500\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"9\">\n <a-form-item label=\"速度 (ms)\">\n <a-input-number v-model:value=\"widgetOptions.speed\" class=\"w-full\" :min=\"0\" :step=\"100\" />\n </a-form-item>\n </a-col>\n </a-row>\n <a-row :gutter=\"12\">\n <a-col :span=\"6\">\n <a-form-item label=\"指示点\">\n <a-switch v-model:checked=\"widgetOptions.dots\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"箭头\">\n <a-switch v-model:checked=\"widgetOptions.arrows\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"循环\">\n <a-switch v-model:checked=\"widgetOptions.infinite\" />\n </a-form-item>\n </a-col>\n <a-col :span=\"6\">\n <a-form-item label=\"悬停暂停\">\n <a-switch v-model:checked=\"widgetOptions.pauseOnHover\" />\n </a-form-item>\n </a-col>\n </a-row>\n <a-form-item v-if=\"widgetOptions.dots !== false\" label=\"指示点颜色\">\n <StyleColorInput v-model=\"dotColor\" />\n </a-form-item>\n </a-form>\n\n <KeyedSlotChildList :designer=\"designer\" :container-widget=\"currentWidget\" :children=\"carouselSlides\" :config=\"CAROUSEL_KEYED_SLOT_CONFIG\" :default-child-title=\"DEFAULT_CAROUSEL_SLIDE_TITLE\" list-label=\"轮播项\" item-placeholder=\"组件名称\" drag-handle-class=\"carousel-slide-drag-handle\" remove-title=\"删除轮播项\" />\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"carouselEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { computed, watch, toValue, type MaybeRefOrGetter } from 'vue'\nimport type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\n\nexport type KeyedSlotDesignerSyncOptions = {\n designer: Designer\n widget: MaybeRefOrGetter<Widget>\n getChildren: (widget: Widget) => Widget[]\n isChildNode: (widget: Widget) => boolean\n findOwningChild: (widget: Widget, page: Widget) => Widget | null\n setActiveKey: (widget: Widget, activeKey: number) => void\n}\n\nexport function useKeyedSlotDesignerSync(options: KeyedSlotDesignerSyncOptions) {\n const containerWidget = computed(() => {\n const widget = toValue(options.widget)\n return options.designer.findWidgetById(widget.id) ?? widget\n })\n\n const children = computed(() => options.getChildren(containerWidget.value))\n\n function updateActiveKey(activeKey: number) {\n const widget = options.designer.findWidgetById(toValue(options.widget).id)\n if (!widget) return\n options.setActiveKey(widget, activeKey)\n }\n\n function syncActiveChildFromSelection(selected: Widget | null | undefined) {\n if (!selected) return\n\n const widgetId = toValue(options.widget).id\n if (options.isChildNode(selected) && selected.id !== widgetId) {\n if (children.value.some(child => child.id === selected.id)) {\n updateActiveKey(selected.id)\n }\n return\n }\n\n const owningChild = options.findOwningChild(selected, options.designer.page)\n if (owningChild && children.value.some(child => child.id === owningChild.id)) {\n updateActiveKey(owningChild.id)\n }\n }\n\n watch(\n () => options.designer.selectedWidget,\n selected => syncActiveChildFromSelection(selected),\n { immediate: true }\n )\n\n return { containerWidget }\n}\n","<script setup lang=\"ts\">\nimport type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\nimport CarouselView from './view.vue'\nimport { findOwningCarouselSlide, getCarouselSlides, isCarouselSlideNode, setCarouselActiveKey } from './options.ts'\nimport { useKeyedSlotDesignerSync } from '../../shared/designer/use-keyed-slot-sync.ts'\nimport { toRef } from 'vue'\n\nconst props = defineProps<{\n designer: Designer\n widget: Widget\n parentWidget?: Widget | null\n index?: number\n}>()\n\nconst { containerWidget: carouselWidget } = useKeyedSlotDesignerSync({\n designer: props.designer,\n widget: toRef(props, 'widget'),\n getChildren: getCarouselSlides,\n isChildNode: isCarouselSlideNode,\n findOwningChild: findOwningCarouselSlide,\n setActiveKey: setCarouselActiveKey\n})\n</script>\n\n<template>\n <CarouselView :widget=\"carouselWidget\" :parent-widget=\"parentWidget\" :index=\"index\">\n <template #item=\"scope\">\n <slot name=\"item\" v-bind=\"scope\" />\n </template>\n </CarouselView>\n</template>\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../../core/index.ts'\nimport EventPanel from '../../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../../shared/setter/panels/widget-style-panel.vue'\nimport SetterShell from '../../../shared/setter/shell.vue'\nimport { CAROUSEL_SLIDE_FLEX_LAYOUT_DEFAULTS, ensureCarouselSlideWidget } from './options.ts'\nimport { watch } from 'vue'\nimport { useWidgetSetter } from '../../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter({\n widget: () => props.widget,\n ensureOptions: () => {}\n})\n\nwatch(currentWidget, current => ensureCarouselSlideWidget(current), { immediate: true, deep: true })\n\nconst slideEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" :flex-defaults=\"CAROUSEL_SLIDE_FLEX_LAYOUT_DEFAULTS\" display-default=\"flex\" />\n </template>\n <template #event>\n <EventPanel v-model=\"slideEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<path fill=\\\"currentColor\\\" d=\\\"M128 192h768a64 64 0 0 1 64 64v512a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V256a64 64 0 0 1 64-64m0 64v512h768V256z\\\"></path><path fill=\\\"currentColor\\\" d=\\\"M256 352h192v320H256zm320 0h192v320H576z\\\"></path><circle cx=\\\"352\\\" cy=\\\"832\\\" r=\\\"40\\\" fill=\\\"currentColor\\\"></circle><circle cx=\\\"512\\\" cy=\\\"832\\\" r=\\\"40\\\" fill=\\\"currentColor\\\" opacity=\\\".45\\\"></circle><circle cx=\\\"672\\\" cy=\\\"832\\\" r=\\\"40\\\" fill=\\\"currentColor\\\" opacity=\\\".45\\\"></circle>\", 5)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Designer from './designer.vue'\nimport SlideView from './carousel-slide/view.vue'\nimport SlideSetter from './carousel-slide/setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\nimport { CAROUSEL_KEYED_SLOT_CONFIG, createDefaultCarouselSlides, normalizeCarouselWidget } from './options.ts'\n\nconst defaultSlides = createDefaultCarouselSlides()\n\nconst widget: Widget = {\n id: 0,\n type: 'carousel',\n name: '走马灯',\n title: '走马灯',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n designerComponent: Designer,\n normalize: normalizeCarouselWidget,\n copyNeedsNormalize: true,\n keyedSlotConfig: CAROUSEL_KEYED_SLOT_CONFIG,\n eventPresets: [\n ...COMMON_CONTAINER_EVENT_PRESETS,\n {\n name: 'beforeChange',\n label: '切换前',\n hint: '可用参数:event({ from, to } 幻灯片索引)、context.widget(当前组件)'\n },\n {\n name: 'afterChange',\n label: '切换后',\n hint: '可用参数:event(当前幻灯片索引)、context.widget(当前组件)'\n }\n ],\n children: defaultSlides,\n options: {\n hidden: false,\n activeKey: defaultSlides[0]?.id,\n height: '200px',\n autoplay: true,\n autoplaySpeed: 3000,\n dots: true,\n dotColor: 'rgba(0, 0, 0, 1)',\n dotPosition: 'bottom',\n effect: 'scrollx',\n speed: 500,\n pauseOnHover: true,\n arrows: false,\n infinite: true\n },\n styles: {\n default: {\n display: 'block',\n minHeight: '160px'\n }\n },\n events: []\n}\n\nexport const carouselSlideWidget: Widget = {\n id: 0,\n type: 'carousel-slide',\n isContainer: true,\n name: '轮播项',\n title: '轮播项',\n internal: true,\n component: SlideView,\n setterComponent: SlideSetter,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n options: {},\n styles: { default: {} },\n events: [],\n children: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { ensureGridOptions, GRID_FLEX_LAYOUT_DEFAULTS, GRID_KIND_LABELS, type GridKind } from './options.ts'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter({\n widget: () => props.widget,\n ensureOptions: ensureGridOptions\n})\n\nconst gridKindOptions: { value: GridKind; label: string }[] = [\n { value: 'container', label: GRID_KIND_LABELS.container },\n { value: 'row', label: GRID_KIND_LABELS.row },\n { value: 'column', label: GRID_KIND_LABELS.column }\n]\nconst gridEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"类型\">\n <a-select v-model:value=\"currentWidget.options.gridKind\" :options=\"gridKindOptions\" />\n </a-form-item>\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" :flex-defaults=\"GRID_FLEX_LAYOUT_DEFAULTS\" display-default=\"flex\" />\n </template>\n <template #event>\n <EventPanel v-model=\"gridEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import type { Widget } from '../../../core/index.ts'\nimport { applyWidgetInternalFlags } from '../../../core/index.ts'\nimport { applyGridStructuredSplitStyles, GRID_FILL_STYLE, GRID_KIND_LABELS, GRID_LAYOUT_PANE_KIND, resolveGridPaneLabel, type GridChildrenLayout, type GridKind, getChildrenLayout } from './options.ts'\nimport { ensureWidgetStyles, getWidgetDefaultStyle } from '../../../core/index.ts'\nimport { formatSize } from '../../../runtime/runtime.ts'\n\nexport type GridSplitMeasuredSize = {\n width: number\n height: number\n}\n\n/** 裁剪后子格统一命名与类型:row → 列1/列2…;column → 行1/行2… */\nexport function assignGridPaneNames(widget: Widget, layout: GridChildrenLayout): void {\n const kind = GRID_LAYOUT_PANE_KIND[layout]\n for (const [index, child] of (widget.children ?? []).entries()) {\n const label = resolveGridPaneLabel(kind, index)\n const pane = child as Widget\n pane.name = GRID_KIND_LABELS[kind]\n pane.title = label\n if (!child.options) child.options = {}\n if (child.options.gridKind !== kind) {\n child.options.gridKind = kind\n }\n }\n}\n\nexport function createGridPane(allocateId: () => number, children: Widget[] = [], kind: GridKind = 'container'): Widget {\n return {\n id: allocateId(),\n type: 'grid',\n name: GRID_KIND_LABELS[kind],\n options: {\n gridKind: kind\n },\n styles: { default: { ...GRID_FILL_STYLE } },\n children: children ?? []\n }\n}\n\n/** 裁剪前锁定当前渲染尺寸,避免结构化 flex 布局撑大容器 */\nexport function freezeGridSplitSize(widget: Widget, measured?: GridSplitMeasuredSize | null): void {\n if (!measured || measured.width <= 0 || measured.height <= 0) return\n\n const styles = ensureWidgetStyles(widget)\n styles.default = {\n ...getWidgetDefaultStyle(widget),\n width: formatSize(Math.round(measured.width), 'px'),\n height: formatSize(Math.round(measured.height), 'px')\n }\n}\n\n/**\n * 在选中容器上执行裁剪:\n * - row:左右并排(顶边)\n * - column:上下堆叠(左边)\n */\nexport function splitGridWidget(widget: Widget, layout: GridChildrenLayout, allocateId: () => number, _parentWidget?: Widget | null, measuredSize?: GridSplitMeasuredSize | null): void {\n freezeGridSplitSize(widget, measuredSize)\n\n const currentLayout = getChildrenLayout(widget)\n const oldChildren = widget.children ?? []\n const paneKind = GRID_LAYOUT_PANE_KIND[layout]\n\n widget.options ??= {}\n if (widget.options.childrenLayout !== layout) {\n widget.options.childrenLayout = layout\n }\n\n if (currentLayout === layout && oldChildren.length >= 2) {\n widget.children = [...oldChildren, createGridPane(allocateId, [], paneKind)]\n } else if (currentLayout && currentLayout !== layout && oldChildren.length >= 2) {\n const nested = createGridPane(allocateId, oldChildren, paneKind)\n nested.styles = { default: { ...GRID_FILL_STYLE } }\n nested.options ??= {}\n nested.options.childrenLayout = currentLayout\n widget.children = [nested, createGridPane(allocateId, [], paneKind)]\n } else {\n widget.children = [createGridPane(allocateId, oldChildren, paneKind), createGridPane(allocateId, [], paneKind)]\n }\n\n applyGridStructuredSplitStyles(widget, layout)\n assignGridPaneNames(widget, layout)\n for (const child of widget.children ?? []) {\n applyWidgetInternalFlags(child, widget)\n }\n}\n","import type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\nimport { canMutateWidgetContent, ensureWidgetStyles } from '../../../core/index.ts'\nimport { formatSize, parseSize } from '../../../runtime/runtime.ts'\nimport { getChildrenLayout, type GridResizeAxes } from '../../packages/grid/options.ts'\nimport {\n clampResizeAxisValue,\n resolveResizeAxisMinSize,\n resolveResizeOuterBounds,\n resolveSelectionContentElement,\n SELECTION_RESIZE_MIN_PX\n} from './helpers.ts'\nimport { onBeforeUnmount, ref, type Ref } from 'vue'\n\ntype ResizeAxis = 'width' | 'height' | 'both'\n\ntype ResizeSession = {\n axis: ResizeAxis\n pointerId: number\n handle: HTMLElement\n handler: HTMLElement\n content: HTMLElement\n widget: Widget\n startX: number\n startY: number\n startWidth: number\n startHeight: number\n widthKey: 'width'\n heightKey: 'height' | 'minHeight'\n moved: boolean\n}\n\nfunction resolveHeightKey(widget: Widget, axis: ResizeAxis): 'height' | 'minHeight' {\n if (axis === 'width') {\n const style = ensureWidgetStyles(widget).default ?? {}\n if (style.height) return 'height'\n if (style.minHeight) return 'minHeight'\n if (!widget.internal && !getChildrenLayout(widget)) return 'minHeight'\n return 'height'\n }\n return 'height'\n}\n\nfunction resolveWidthKey(_widget: Widget, _axis: ResizeAxis): 'width' {\n return 'width'\n}\n\nfunction resolveTargetElements(handle: HTMLElement): { handler: HTMLElement; content: HTMLElement } | null {\n const handler = handle.closest('.drag-handler') as HTMLElement | null\n if (!handler) return null\n return {\n handler,\n content: resolveSelectionContentElement(handler)\n }\n}\n\nfunction readPixelSize(element: HTMLElement, axis: 'width' | 'height', styleValue?: string): number {\n const parsed = parseSize(styleValue)\n if (parsed.unit === 'px' && parsed.value != null) {\n return parsed.value\n }\n const rect = element.getBoundingClientRect()\n return Math.max(SELECTION_RESIZE_MIN_PX, Math.round(axis === 'width' ? rect.width : rect.height))\n}\n\nfunction ensureWidgetDefaultStyle(widget: Widget): Record<string, string> {\n const styles = ensureWidgetStyles(widget)\n if (!styles.default) {\n styles.default = {}\n }\n return styles.default as Record<string, string>\n}\n\nexport function useWidgetSizeResize(options: {\n widget: () => Widget\n designer: Designer\n isActive: Ref<boolean>\n resizeAxes?: () => GridResizeAxes\n}) {\n const resizing = ref(false)\n let session: ResizeSession | null = null\n\n function applySize(width: number | null, height: number | null, current: ResizeSession) {\n const style = ensureWidgetDefaultStyle(current.widget)\n const outer = resolveResizeOuterBounds(current.handler)\n\n if (width != null) {\n const minWidth = resolveResizeAxisMinSize({\n widget: current.widget,\n axis: 'width',\n heightKey: current.heightKey,\n content: current.content,\n nextValue: width\n })\n const nextWidth = clampResizeAxisValue(width, minWidth, outer.maxWidth)\n style[current.widthKey] = formatSize(nextWidth, 'px')\n }\n if (height != null) {\n const minHeight = resolveResizeAxisMinSize({\n widget: current.widget,\n axis: 'height',\n heightKey: current.heightKey,\n content: current.content,\n nextValue: height\n })\n const nextHeight = clampResizeAxisValue(height, minHeight, outer.maxHeight)\n style[current.heightKey] = formatSize(nextHeight, 'px')\n }\n }\n\n function clearResizeState() {\n session = null\n resizing.value = false\n document.body.style.removeProperty('cursor')\n document.body.style.removeProperty('user-select')\n window.removeEventListener('pointermove', onPointerMove)\n window.removeEventListener('pointerup', onPointerUp)\n window.removeEventListener('pointercancel', onPointerUp)\n }\n\n function endResize() {\n if (!session) return\n const moved = session.moved\n try {\n session.handle.releasePointerCapture(session.pointerId)\n } catch {\n // ignore\n }\n clearResizeState()\n if (moved) {\n options.designer.recordHistoryNow()\n }\n }\n\n function onPointerMove(event: PointerEvent) {\n if (!session || event.pointerId !== session.pointerId) return\n session.moved = true\n const deltaX = event.clientX - session.startX\n const deltaY = event.clientY - session.startY\n const width = session.axis === 'height' ? null : session.startWidth + deltaX\n const height = session.axis === 'width' ? null : session.startHeight + deltaY\n applySize(width, height, session)\n }\n\n function onPointerUp(event: PointerEvent) {\n if (!session || event.pointerId !== session.pointerId) return\n endResize()\n }\n\n function startResize(event: PointerEvent, axis: ResizeAxis) {\n if (!options.isActive.value) return\n const widget = options.widget()\n if (!canMutateWidgetContent(options.designer.page, widget)) return\n\n const axes = options.resizeAxes?.() ?? { width: true, height: true, both: true }\n if (axis === 'width' && !axes.width) return\n if (axis === 'height' && !axes.height) return\n if (axis === 'both' && !axes.both) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const handle = event.currentTarget as HTMLElement\n const targets = resolveTargetElements(handle)\n if (!targets) return\n\n const { handler, content } = targets\n const style = ensureWidgetDefaultStyle(widget)\n const widthKey = resolveWidthKey(widget, axis)\n const heightKey = resolveHeightKey(widget, axis)\n const outer = resolveResizeOuterBounds(handler)\n\n session = {\n axis,\n pointerId: event.pointerId,\n handle,\n handler,\n content,\n widget,\n startX: event.clientX,\n startY: event.clientY,\n startWidth: clampResizeAxisValue(\n readPixelSize(content, 'width', style[widthKey]),\n SELECTION_RESIZE_MIN_PX,\n outer.maxWidth\n ),\n startHeight: clampResizeAxisValue(\n readPixelSize(content, 'height', style[heightKey]),\n SELECTION_RESIZE_MIN_PX,\n outer.maxHeight\n ),\n widthKey,\n heightKey,\n moved: false\n }\n resizing.value = true\n\n const cursor = axis === 'width' ? 'ew-resize' : axis === 'height' ? 'ns-resize' : 'nwse-resize'\n document.body.style.cursor = cursor\n document.body.style.userSelect = 'none'\n handle.setPointerCapture(event.pointerId)\n\n window.addEventListener('pointermove', onPointerMove)\n window.addEventListener('pointerup', onPointerUp)\n window.addEventListener('pointercancel', onPointerUp)\n }\n\n onBeforeUnmount(() => {\n clearResizeState()\n })\n\n return {\n resizing,\n startWidthResize: (event: PointerEvent) => startResize(event, 'width'),\n startHeightResize: (event: PointerEvent) => startResize(event, 'height'),\n startBothResize: (event: PointerEvent) => startResize(event, 'both')\n }\n}\n","<script setup lang=\"ts\">\nimport type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\nimport { canMutateWidgetContent } from '../../../core/index.ts'\nimport GridView from './view.vue'\nimport { splitGridWidget } from './split.ts'\nimport { getGridKind, resolveGridResizeAxes } from './options.ts'\nimport { ScissorOutlined } from '@ant-design/icons-vue'\nimport { useWidgetSizeResize } from '../../shared/designer/use-widget-size-resize.ts'\nimport { computed, ref } from 'vue'\n\nconst props = defineProps<{\n designer: Designer\n widget: Widget\n parentWidget?: Widget | null\n index?: number\n}>()\n\nconst topHover = ref(false)\nconst leftHover = ref(false)\nconst gridViewRef = ref<{ hostRef: HTMLElement | null } | null>(null)\n\nconst isActive = computed(() => props.designer?.selectedWidget?.id === props.widget.id)\nconst canEdit = computed(() => props.designer?.page && canMutateWidgetContent(props.designer.page, props.widget))\nconst gridKind = computed(() => getGridKind(props.widget))\nconst resizeAxes = computed(() => resolveGridResizeAxes(gridKind.value))\n\nconst { startWidthResize, startHeightResize, startBothResize } = useWidgetSizeResize({\n designer: props.designer,\n widget: () => props.widget,\n isActive,\n resizeAxes: () => resizeAxes.value\n})\n\nfunction readSplitMeasuredSize(): { width: number; height: number } | undefined {\n const host = gridViewRef.value?.hostRef\n if (!host) return undefined\n const rect = host.getBoundingClientRect()\n if (rect.width <= 0 || rect.height <= 0) return undefined\n return {\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n }\n}\n\nfunction runSplit(layout: 'row' | 'column') {\n if (!canEdit.value) return\n splitGridWidget(props.widget, layout, () => props.designer.allocateWidgetId(), props.parentWidget ?? null, readSplitMeasuredSize())\n props.designer.recordHistoryNow()\n}\n</script>\n\n<template>\n <GridView ref=\"gridViewRef\" :widget=\"widget\" :parent-widget=\"parentWidget\" :index=\"index\">\n <slot />\n <template #item=\"scope\">\n <slot name=\"item\" v-bind=\"scope\" />\n </template>\n\n <template v-if=\"isActive && canEdit\" #designer-chrome>\n <div class=\"pointer-events-none absolute inset-0 z-20 overflow-hidden\">\n <div class=\"pointer-events-auto absolute inset-x-0 top-0 h-[14px] cursor-pointer\" @mouseenter=\"topHover = true\" @mouseleave=\"topHover = false\" @click.stop=\"runSplit('row')\" />\n <div class=\"pointer-events-none absolute inset-y-0 left-1/2 w-0 border-l border-dashed border-[var(--colorPrimary)] transition-opacity duration-150 -translate-x-1/2\" :class=\"topHover ? 'opacity-100' : 'opacity-0'\" />\n <div class=\"pointer-events-none absolute left-1/2 top-0 flex-center size-[22px] rounded-full bg-[var(--colorPrimary)] p-0 text-xs text-[var(--colorTextLightSolid)] shadow-[0_2px_6px_color-mix(in_srgb,var(--colorPrimary)_35%,transparent)] transition-opacity duration-150 -translate-x-1/2 rotate-90\" :class=\"topHover ? 'opacity-100' : 'opacity-0'\" title=\"左右平分\">\n <ScissorOutlined />\n </div>\n\n <div class=\"pointer-events-auto absolute inset-y-0 left-0 w-[14px] cursor-pointer\" @mouseenter=\"leftHover = true\" @mouseleave=\"leftHover = false\" @click.stop=\"runSplit('column')\" />\n <div class=\"pointer-events-none absolute inset-x-0 top-1/2 h-0 border-t border-dashed border-[var(--colorPrimary)] transition-opacity duration-150 -translate-y-1/2\" :class=\"leftHover ? 'opacity-100' : 'opacity-0'\" />\n <div class=\"pointer-events-none absolute left-0 top-1/2 flex-center size-[22px] rounded-full bg-[var(--colorPrimary)] p-0 text-xs text-[var(--colorTextLightSolid)] shadow-[0_2px_6px_color-mix(in_srgb,var(--colorPrimary)_35%,transparent)] transition-opacity duration-150 -translate-y-1/2\" :class=\"leftHover ? 'opacity-100' : 'opacity-0'\" title=\"上下平分\">\n <ScissorOutlined />\n </div>\n </div>\n\n <div class=\"lowcode-no-drag pointer-events-none absolute inset-0 z-30 overflow-hidden\">\n <div\n v-if=\"resizeAxes.width\"\n class=\"pointer-events-auto absolute inset-y-0 right-0 w-[10px] cursor-ew-resize touch-none\"\n title=\"拖动调整宽度\"\n @pointerdown.stop=\"startWidthResize\"\n />\n <div\n v-if=\"resizeAxes.height\"\n class=\"pointer-events-auto absolute inset-x-0 bottom-0 h-[10px] cursor-ns-resize touch-none\"\n title=\"拖动调整高度\"\n @pointerdown.stop=\"startHeightResize\"\n />\n <div\n v-if=\"resizeAxes.both\"\n class=\"pointer-events-auto absolute bottom-0 right-0 size-[12px] cursor-nwse-resize touch-none rounded-[2px] border border-[var(--colorPrimary)] bg-[var(--colorBgContainer)] shadow-[0_0_0_1px_color-mix(in_srgb,var(--colorPrimary)_25%,transparent)]\"\n title=\"拖动调整宽高\"\n @pointerdown.stop=\"startBothResize\"\n />\n </div>\n </template>\n </GridView>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M819.354 921.6h102.4V819.2h-102.4zm102.4-204.8h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V819.2a102.4 102.4 0 0 0-102.4-102.4m-460.8 204.8h102.4V819.2h-102.4zm102.4-204.8h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V819.2a102.4 102.4 0 0 0-102.4-102.4m-460.8 204.8h102.4V819.2h-102.4zm102.4-204.8h-102.4A102.4 102.4 0 0 0 .154 819.2v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V819.2a102.4 102.4 0 0 0-102.4-102.4m614.4-153.6h102.4V460.8h-102.4zm102.4-204.8h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V460.8a102.4 102.4 0 0 0-102.4-102.4m-460.8 204.8h102.4V460.8h-102.4zm102.4-204.8h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V460.8a102.4 102.4 0 0 0-102.4-102.4m-460.8 204.8h102.4V460.8h-102.4zm102.4-204.8h-102.4A102.4 102.4 0 0 0 .154 460.8v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V460.8a102.4 102.4 0 0 0-102.4-102.4m614.4-153.6h102.4V102.4h-102.4zM921.754 0h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V102.4A102.4 102.4 0 0 0 921.754 0m-460.8 204.8h102.4V102.4h-102.4zM563.354 0h-102.4a102.4 102.4 0 0 0-102.4 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V102.4A102.4 102.4 0 0 0 563.354 0m-460.8 204.8h102.4V102.4h-102.4zM204.954 0h-102.4A102.4 102.4 0 0 0 .154 102.4v102.4a102.4 102.4 0 0 0 102.4 102.4h102.4a102.4 102.4 0 0 0 102.4-102.4V102.4A102.4 102.4 0 0 0 204.954 0\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Designer from './designer.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\nimport { GRID_ROOT_DEFAULT_STYLE, normalizeGridWidget, isGridStructuredNode } from './options.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'grid',\n isContainer: true,\n name: '容器',\n title: '容器',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n designerComponent: Designer,\n normalize: normalizeGridWidget,\n usesItemSlot: isGridStructuredNode,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n options: {\n gridKind: 'container'\n },\n styles: { default: { ...GRID_ROOT_DEFAULT_STYLE } },\n events: [],\n children: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { ensureTabOptions, TAB_POSITION_OPTIONS, TAB_SIZE_OPTIONS, type TabOptions } from './options.ts'\nimport { DEFAULT_TAB_PANE_TITLE } from './tab-pane/options.ts'\nimport { getTabPanes, TAB_KEYED_SLOT_CONFIG } from './options.ts'\nimport KeyedSlotChildList from '../../shared/setter/components/keyed-slot-child-list.vue'\nimport { computed } from 'vue'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nfunction ensureTabOptionsWithDefaults(widget: Widget) {\n ensureTabOptions(widget)\n}\n\nconst { designer, currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<TabOptions>({\n widget: () => props.widget,\n ensureOptions: ensureTabOptionsWithDefaults\n})\n\nconst tabPanes = computed(() => getTabPanes(currentWidget.value))\nconst tabEvents = useWidgetEventsBinding()\n\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n <a-form-item label=\"位置\">\n <a-radio-group v-model:value=\"widgetOptions.tabPosition\">\n <a-radio-button v-for=\"item in TAB_POSITION_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item label=\"尺寸\">\n <a-radio-group v-model:value=\"widgetOptions.size\">\n <a-radio-button v-for=\"item in TAB_SIZE_OPTIONS\" :key=\"item.value\" :value=\"item.value\">{{ item.label }}</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item label=\"切换动画\">\n <a-switch v-model:checked=\"widgetOptions.animated\" />\n </a-form-item>\n </a-form>\n\n <KeyedSlotChildList\n :designer=\"designer\"\n :container-widget=\"currentWidget\"\n :children=\"tabPanes\"\n :config=\"TAB_KEYED_SLOT_CONFIG\"\n :default-child-title=\"DEFAULT_TAB_PANE_TITLE\"\n list-label=\"标签项\"\n item-placeholder=\"组件名称\"\n drag-handle-class=\"tab-pane-drag-handle\"\n remove-title=\"删除标签\"\n />\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"tabEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","<script setup lang=\"ts\">\nimport type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\nimport TabView from './view.vue'\nimport { findOwningTabPane, getTabPanes, isTabPaneNode, setTabActiveKey } from './options.ts'\nimport { useKeyedSlotDesignerSync } from '../../shared/designer/use-keyed-slot-sync.ts'\nimport { toRef } from 'vue'\n\nconst props = defineProps<{\n designer: Designer\n widget: Widget\n parentWidget?: Widget | null\n index?: number\n}>()\n\nconst { containerWidget: tabWidget } = useKeyedSlotDesignerSync({\n designer: props.designer,\n widget: toRef(props, 'widget'),\n getChildren: getTabPanes,\n isChildNode: isTabPaneNode,\n findOwningChild: findOwningTabPane,\n setActiveKey: setTabActiveKey\n})\n</script>\n\n<template>\n <TabView :widget=\"tabWidget\" :parent-widget=\"parentWidget\" :index=\"index\">\n <template #item=\"scope\">\n <slot name=\"item\" v-bind=\"scope\" />\n </template>\n </TabView>\n</template>\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../../core/index.ts'\nimport EventPanel from '../../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../../shared/setter/panels/widget-style-panel.vue'\nimport SetterShell from '../../../shared/setter/shell.vue'\nimport { ensureTabPaneWidget, TAB_PANE_FLEX_LAYOUT_DEFAULTS } from './options.ts'\nimport { watch } from 'vue'\nimport { useWidgetSetter } from '../../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter({\n widget: () => props.widget,\n ensureOptions: () => {}\n})\n\nwatch(currentWidget, current => ensureTabPaneWidget(current), { immediate: true, deep: true })\n\nconst paneEvents = useWidgetEventsBinding()\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" :flex-defaults=\"TAB_PANE_FLEX_LAYOUT_DEFAULTS\" />\n </template>\n <template #event>\n <EventPanel v-model=\"paneEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M908.8 1005.44H115.2A101.76 101.76 0 0 1 14.08 903.68V110.72A101.76 101.76 0 0 1 115.2 8.96h296.96a32.64 32.64 0 0 1 32 32V262.4a32 32 0 0 1-32 32 32 32 0 0 1-32-32v-192H115.2a37.76 37.76 0 0 0-37.12 37.76v795.52a37.76 37.76 0 0 0 37.12 37.76h793.6a37.76 37.76 0 0 0 37.12-37.76V267.52a32 32 0 0 1 32-32 32 32 0 0 1 32 32v636.16a101.76 101.76 0 0 1-101.12 101.76\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M977.92 299.52a32.64 32.64 0 0 1-32-32v-87.04a37.12 37.12 0 0 0-37.12-37.76H421.12a32 32 0 0 1-32-32 32 32 0 0 1 32-32H908.8a101.76 101.76 0 0 1 101.12 101.76v87.04a32 32 0 0 1-32 32\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M977.92 299.52H64a32 32 0 0 1-32-32 32 32 0 0 1 32-32h913.92a32 32 0 0 1 32 32 32 32 0 0 1-32 32\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M699.52 299.52a32 32 0 0 1-32-32v-156.8a32 32 0 0 1 64 0v156.8a32 32 0 0 1-32 32\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Designer from './designer.vue'\nimport PaneView from './tab-pane/view.vue'\nimport PaneSetter from './tab-pane/setter.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { COMMON_CONTAINER_EVENT_PRESETS } from '../../../core/index.ts'\nimport { createDefaultTabPanes, normalizeTabWidget, TAB_KEYED_SLOT_CONFIG } from './options.ts'\n\nconst defaultPanes = createDefaultTabPanes()\n\nconst widget: Widget = {\n id: 0,\n type: 'tab',\n name: '标签页',\n title: '标签页',\n icon: Icon,\n component: View,\n setterComponent: Setter,\n designerComponent: Designer,\n normalize: normalizeTabWidget,\n copyNeedsNormalize: true,\n keyedSlotConfig: TAB_KEYED_SLOT_CONFIG,\n eventPresets: [\n ...COMMON_CONTAINER_EVENT_PRESETS,\n {\n name: 'change',\n label: '切换标签',\n hint: '可用参数:event(当前标签 key)、context.widget(当前组件)'\n }\n ],\n children: defaultPanes,\n options: {\n hidden: false,\n activeKey: defaultPanes[0]?.id,\n tabPosition: 'top',\n size: 'middle',\n animated: true\n },\n styles: {\n default: {\n display: 'block',\n minHeight: '120px'\n }\n },\n events: []\n}\n\nexport const tabPaneWidget: Widget = {\n id: 0,\n type: 'tab-pane',\n isContainer: true,\n name: '标签',\n title: '标签',\n internal: true,\n component: PaneView,\n setterComponent: PaneSetter,\n eventPresets: COMMON_CONTAINER_EVENT_PRESETS,\n options: {},\n styles: {\n default: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexWrap: 'nowrap',\n width: '100%',\n minWidth: '0',\n minHeight: '0',\n boxSizing: 'border-box',\n flex: '1 1 auto'\n }\n },\n events: [],\n children: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Widget } from '../../../core/index.ts'\nimport EventPanel from '../../shared/setter/panels/event-panel.vue'\nimport WidgetStylePanel from '../../shared/setter/panels/widget-style-panel.vue'\nimport BindingFormItem from '../../shared/setter/components/binding-form-item.vue'\nimport SetterShell from '../../shared/setter/shell.vue'\nimport { ensureListOptions, type ListOptions } from './options.ts'\nimport { computed } from 'vue'\nimport { useWidgetSetter } from '../../shared/setter/use-widget-setter.ts'\n\nconst props = defineProps<{\n widget: Widget\n}>()\n\nconst { currentWidget, widgetOptions, widgetTitle, eventPresets, useWidgetEventsBinding } = useWidgetSetter<ListOptions>({\n widget: () => props.widget,\n ensureOptions: ensureListOptions\n})\n\nconst listEvents = useWidgetEventsBinding()\n\nconst dataSource = computed({\n get: () => widgetOptions.value.dataSource ?? '',\n set: value => {\n widgetOptions.value.dataSource = value\n }\n})\n\nconst itemKey = computed({\n get: () => widgetOptions.value.itemKey ?? '',\n set: value => {\n widgetOptions.value.itemKey = value\n }\n})\n\nconst itemsField = computed({\n get: () => widgetOptions.value.itemsField ?? '',\n set: value => {\n widgetOptions.value.itemsField = value\n }\n})\n\nconst itemHiddenWhen = computed({\n get: () => widgetOptions.value.itemHiddenWhen ?? '',\n set: value => {\n widgetOptions.value.itemHiddenWhen = value\n }\n})\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"组件名称\">\n <a-input v-model:value=\"widgetTitle\" placeholder=\"组件名称\" allow-clear />\n </a-form-item>\n\n <BindingFormItem\n v-model=\"dataSource\"\n label=\"数据源\"\n list-data-source\n :widget-id=\"currentWidget.id\"\n :constraint=\"{ valueType: 'array', allowIndexPlaceholder: true }\"\n >\n <a-input v-model:value=\"dataSource\" placeholder=\"选择数组数据字段\" allow-clear />\n <div class=\"mt-1 text-[11px] leading-snug text-[var(--colorTextQuaternary)]\">\n 从树形数据中选择列表数据源,将保存为 <code v-pre>{{productList.items}}</code> 形式。\n </div>\n </BindingFormItem>\n\n <BindingFormItem v-model=\"itemKey\" label=\"项Key\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"itemKey\" placeholder=\"如 id,留空则用索引\" allow-clear />\n </BindingFormItem>\n\n <BindingFormItem v-model=\"itemsField\" label=\"数据列表字段\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"itemsField\" placeholder=\"如 items,数据源为数组时可留空\" allow-clear />\n </BindingFormItem>\n\n <BindingFormItem v-model=\"itemHiddenWhen\" label=\"隐藏条件\" :widget-id=\"currentWidget.id\">\n <a-input v-model:value=\"itemHiddenWhen\" placeholder=\"如 {{published}} 或 !status,为真时隐藏当前行\" allow-clear />\n </BindingFormItem>\n </a-form>\n </template>\n\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #event>\n <EventPanel v-model=\"listEvents\" :presets=\"eventPresets\" />\n </template>\n </SetterShell>\n</template>\n","<script setup lang=\"ts\">\nimport type { Designer } from '../../../designer/designer.ts'\nimport type { Widget } from '../../../core/index.ts'\nimport ListView from './view.vue'\n\ndefineProps<{\n designer: Designer\n widget: Widget\n parentWidget?: Widget | null\n index?: number\n}>()\n</script>\n\n<template>\n <ListView :widget=\"widget\" :parent-widget=\"parentWidget\" :index=\"index\">\n <template #item=\"scope\">\n <slot name=\"item\" v-bind=\"scope\" />\n </template>\n </ListView>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"200\",\n height: \"200\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 192h768v64H128zm0 224h768v64H128zm0 224h512v64H128zm0 224h640v64H128z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Designer from './designer.vue'\nimport Icon from './icon.svg'\nimport type { Widget } from '../../../core/index.ts'\nimport { DEFAULT_LIST_STYLE, DEFAULT_LIST_TITLE, LIST_EVENT_PRESETS, normalizeListWidget } from './options.ts'\n\nconst widget: Widget = {\n id: 0,\n type: 'list',\n isContainer: true,\n name: '列表',\n title: DEFAULT_LIST_TITLE,\n icon: Icon,\n component: View,\n setterComponent: Setter,\n designerComponent: Designer,\n normalize: normalizeListWidget,\n copyNeedsNormalize: true,\n usesItemSlot: true,\n eventPresets: LIST_EVENT_PRESETS,\n children: [],\n options: {\n hidden: false,\n dataSource: '',\n itemsField: '',\n itemKey: '',\n itemHiddenWhen: ''\n },\n styles: { default: { ...DEFAULT_LIST_STYLE } },\n events: []\n}\n\nexport default widget\n","<script setup lang=\"ts\">\nimport type { Page, PageLifecycleKey, PageLifecyclePreset, PageLifecycleSource } from '../../core/index.ts'\nimport { LIFECYCLE_KEY, ensurePageLifecycle, isValidPageScriptHandler } from '../../runtime/runtime.ts'\nimport { CaretRightOutlined, EditOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport message from 'ant-design-vue/es/message'\nimport { computed, inject, ref } from 'vue'\nimport { CodeEditor } from '../../designer/shared/code-editor.vue'\nimport { buildPageContextCompletion } from '../../designer/shared/code-editor-page-context-completion.ts'\nimport { useInjectDesigner } from '../../designer/material-registry.ts'\n\ndefineOptions({ name: 'PageLifecyclePanel' })\n\ntype LifecycleUsageExample = {\n key: string\n label: string\n hint: string\n example: string\n paramHint?: string\n}\n\nconst INVALID_HANDLER_MESSAGE = '须为带 {} 的完整函数写法,如 () => { ... } 或 async () => { ... }'\n\nconst lifecycleUsageExamples: LifecycleUsageExample[] = [\n {\n key: 'initData',\n label: '初始化页面数据',\n hint: '在 beforeMount / mounted 中设置默认值或合并接口返回前的初始状态',\n example: `() => {\n context.data.pageIndex = context.data.pageIndex ?? 1\n context.data.keyword = context.data.keyword ?? ''\n}`,\n paramHint: '可用:context.data(与「页面数据」同一引用)'\n },\n {\n key: 'callMethod',\n label: '调用自定义方法',\n hint: '生命周期中可调用同页自定义方法,避免重复编写逻辑',\n example: `async () => {\n context.methods.syncRouteQuery()\n await context.methods.loadProductList()\n}`,\n paramHint: '可用:context.methods.methodName(...args)'\n },\n {\n key: 'fetchOnMount',\n label: '首屏加载数据',\n hint: '在 mounted 中调用 async 函数拉取首屏数据(函数在「函数」面板定义)',\n example: `async () => {\n if (context.data.autoLoad !== false) {\n await context.methods.loadProductList()\n }\n}`,\n paramHint: '可用:await context.methods.methodName(...args)'\n },\n {\n key: 'mounted',\n label: 'mounted 典型场景',\n hint: '页面挂载完成后读取 DOM、注册监听或拉取首屏数据',\n example: `async () => {\n await context.methods.loadBannerList()\n context.methods.trackPageView()\n}`,\n paramHint: 'mounted 在页面首次渲染后触发,适合依赖 DOM 或首屏数据的逻辑'\n },\n {\n key: 'cleanup',\n label: '销毁前清理',\n hint: '在 beforeDestroy / destroyed 中取消定时器、解绑监听等',\n example: `() => {\n if (context.data.pollTimer) {\n clearInterval(context.data.pollTimer)\n context.data.pollTimer = null\n }\n}`,\n paramHint: 'beforeDestroy 仍可使用 context.data / methods;destroyed 用于最终清理'\n }\n]\n\nconst lifecyclePresets: PageLifecyclePreset[] = [\n {\n name: 'beforeMount',\n label: 'beforeMount',\n placeholder: '例如:() => { context.data.pageIndex = context.data.pageIndex ?? 1 }',\n hint: '组件挂载前,适合初始化 context.data'\n },\n {\n name: 'mounted',\n label: 'mounted',\n placeholder: '例如:async () => { await context.methods.loadBannerList() }',\n hint: '组件挂载后,适合首屏请求与 DOM 相关逻辑'\n },\n {\n name: 'beforeUpdate',\n label: 'beforeUpdate',\n placeholder: '例如:() => { context.data._prevKeyword = context.data.keyword }',\n hint: '组件更新前,适合保存旧值或拦截更新'\n },\n {\n name: 'updated',\n label: 'updated',\n placeholder: \"例如:() => { console.log('页面已更新', context.data) }\",\n hint: '组件更新后,数据或 DOM 已同步'\n },\n {\n name: 'beforeDestroy',\n label: 'beforeDestroy',\n placeholder: '例如:() => { clearInterval(context.data.pollTimer) }',\n hint: '组件销毁前,适合清理定时器与监听'\n },\n {\n name: 'destroyed',\n label: 'destroyed',\n placeholder: '例如:() => { context.data.pollTimer = null }',\n hint: '组件销毁后,做最终状态重置'\n }\n]\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: PageLifecycleSource\n }>(),\n {\n modelValue: () => ({})\n }\n)\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: PageLifecycleSource]\n}>()\n\nconst lifecycleRuntime = inject(LIFECYCLE_KEY, null)\nconst designer = useInjectDesigner()\n\nconst pageContextCompletion = computed(() =>\n buildPageContextCompletion({\n pageData: (designer?.page as Page | undefined)?.data,\n methods: (designer?.page as Page | undefined)?.methods,\n handler: lifecycleEditingHandler.value\n })\n)\n\nconst lifecycleSource = computed<PageLifecycleSource>({\n get: () => props.modelValue ?? {},\n set: value => emit('update:modelValue', ensurePageLifecycle(value))\n})\n\nconst lifecycleEditorVisible = ref(false)\nconst lifecycleEditingKey = ref<string | null>(null)\nconst lifecycleEditingHandler = ref('')\n\nconst lifecycleEditingPreset = computed(() => {\n if (!lifecycleEditingKey.value) return null\n return lifecyclePresets.find(item => item.name === lifecycleEditingKey.value) ?? null\n})\n\nconst lifecycleEditorTitle = computed(() => {\n const preset = lifecycleEditingPreset.value\n return preset ? `${preset.label} 生命周期` : '编辑生命周期函数'\n})\n\nconst lifecycleEditorPlaceholder = computed(() => lifecycleEditingPreset.value?.placeholder ?? '例如:() => { console.log(context.data) }')\n\nconst lifecycleEditingHandlerInvalid = computed(() => {\n const handler = lifecycleEditingHandler.value.trim()\n return handler.length > 0 && !isValidPageScriptHandler(handler)\n})\n\nconst canSimulateLifecycleFromEditor = computed(() => {\n const handler = lifecycleEditingHandler.value.trim()\n return handler.length > 0 && isValidPageScriptHandler(handler)\n})\n\nfunction getLifecycleHandler(name: string) {\n return lifecycleSource.value[name as keyof PageLifecycleSource] ?? ''\n}\n\nfunction hasLifecycleHandler(name: string) {\n const handler = getLifecycleHandler(name).trim()\n return handler.length > 0 && isValidPageScriptHandler(handler)\n}\n\nfunction openLifecycleEditor(preset: PageLifecyclePreset) {\n lifecycleEditingKey.value = preset.name\n lifecycleEditingHandler.value = getLifecycleHandler(preset.name)\n lifecycleEditorVisible.value = true\n}\n\nfunction saveLifecycleEditor() {\n if (!lifecycleEditingKey.value) return\n\n const code = lifecycleEditingHandler.value.trim()\n if (code && !isValidPageScriptHandler(code)) {\n message.warning(INVALID_HANDLER_MESSAGE)\n return\n }\n\n const next = { ...lifecycleSource.value }\n if (code) {\n next[lifecycleEditingKey.value as keyof PageLifecycleSource] = lifecycleEditingHandler.value\n } else {\n delete next[lifecycleEditingKey.value as keyof PageLifecycleSource]\n }\n\n lifecycleSource.value = next\n lifecycleEditorVisible.value = false\n lifecycleEditingKey.value = null\n lifecycleEditingHandler.value = ''\n}\n\nfunction cancelLifecycleEditor() {\n lifecycleEditorVisible.value = false\n lifecycleEditingKey.value = null\n lifecycleEditingHandler.value = ''\n}\n\nfunction getSimulateErrorMessage(result: { ok: false; reason: string; error?: unknown }) {\n if (result.reason === 'empty') return '请先编写生命周期函数'\n if (result.reason === 'invalid_handler') return INVALID_HANDLER_MESSAGE\n if (result.reason === 'compile_failed') return '函数解析失败,请检查语法'\n const err = result.error\n if (err instanceof Error && err.message) return `执行失败:${err.message}`\n return '执行失败,请查看控制台'\n}\n\nfunction simulateLifecycle(name: PageLifecycleKey, handlerSource?: string) {\n if (!lifecycleRuntime) {\n message.warning('页面脚本运行时未就绪')\n return\n }\n\n const preset = lifecyclePresets.find(item => item.name === name)\n const result = lifecycleRuntime.simulateLifecycle(name, {\n lifecycle: lifecycleSource.value,\n handlerSource\n })\n\n if (result.ok) {\n message.success(preset ? `已模拟执行 ${preset.label}` : '已模拟执行')\n return\n }\n\n message.warning(getSimulateErrorMessage(result))\n}\n\nfunction simulateLifecycleFromList(preset: PageLifecyclePreset) {\n simulateLifecycle(preset.name)\n}\n\nfunction simulateLifecycleFromEditor() {\n if (!lifecycleEditingKey.value) return\n simulateLifecycle(lifecycleEditingKey.value as PageLifecycleKey, lifecycleEditingHandler.value)\n}\n\nfunction insertLifecycleExample(example: string) {\n lifecycleEditingHandler.value = example\n}\n</script>\n\n<template>\n <div class=\"flex flex-col gap-2 p-3\">\n <div v-for=\"preset in lifecyclePresets\" :key=\"preset.name\" class=\"flex items-center\">\n <div class=\"min-w-0 flex-1\">\n <div class=\"text-sm leading-tight\">{{ preset.label }}</div>\n <div v-if=\"preset.hint\" class=\"text-[11px] text-[var(--colorTextQuaternary)]\">{{ preset.hint }}</div>\n </div>\n\n <a-tooltip :title=\"`执行`\">\n <a-button type=\"text\" size=\"small\" :disabled=\"!hasLifecycleHandler(preset.name)\" @click.stop=\"simulateLifecycleFromList(preset)\">\n <CaretRightOutlined />\n </a-button>\n </a-tooltip>\n\n <a-tooltip :title=\"`编辑`\">\n <a-button type=\"text\" size=\"small\" @click.stop=\"openLifecycleEditor(preset)\">\n <EditOutlined />\n </a-button>\n </a-tooltip>\n </div>\n </div>\n\n <a-modal v-model:open=\"lifecycleEditorVisible\" :title=\"lifecycleEditorTitle\" ok-text=\"确定\" cancel-text=\"取消\" width=\"600px\" destroy-on-close @ok=\"saveLifecycleEditor\" @cancel=\"cancelLifecycleEditor\">\n <CodeEditor v-model=\"lifecycleEditingHandler\" language=\"javascript\" :placeholder=\"lifecycleEditorPlaceholder\" :height=\"240\" :page-context-completion=\"pageContextCompletion\" />\n\n <div v-if=\"lifecycleEditingHandlerInvalid\" class=\"mt-1 text-[11px] text-[var(--colorError)]\">{{ INVALID_HANDLER_MESSAGE }}</div>\n\n <a-collapse :bordered=\"false\" expand-icon-position=\"end\" :default-active-key=\"[]\" class=\"mt-2\">\n <a-collapse-panel v-for=\"item in lifecycleUsageExamples\" :key=\"item.key\" :header=\"item.label\">\n <div class=\"mb-2 flex items-center justify-between gap-2\">\n <div class=\"flex min-w-0 flex-1 items-center gap-1 text-[11px] text-[var(--colorTextQuaternary)]\">\n <InfoCircleOutlined class=\"shrink-0 text-[10px] opacity-80\" />\n <span>{{ item.hint }}</span>\n </div>\n <a-button type=\"link\" size=\"small\" class=\"shrink-0 px-0\" @click=\"insertLifecycleExample(item.example)\">插入示例</a-button>\n </div>\n <pre class=\"overflow-x-auto rounded-sm bg-[color-mix(in_srgb,var(--colorText)_4%,var(--colorBgContainer))] px-2 py-1.5 font-mono text-[10px] leading-[1.45] text-[var(--colorTextSecondary)]\">{{ item.example }}</pre>\n <div v-if=\"item.paramHint\" class=\"mt-2 text-[11px] leading-[1.4] text-[var(--colorTextQuaternary)]\">{{ item.paramHint }}</div>\n </a-collapse-panel>\n </a-collapse>\n\n <div class=\"mt-2 flex items-center justify-between gap-2\">\n <div class=\"min-w-0 text-[11px] leading-[1.4] text-[var(--colorTextQuaternary)]\">须为带 <span class=\"font-mono\">{}</span> 的完整函数;通过闭包使用 <span class=\"font-mono\">context.data</span>、<span class=\"font-mono\">context.methods</span></div>\n <a-button type=\"link\" size=\"small\" class=\"shrink-0 px-0\" :disabled=\"!canSimulateLifecycleFromEditor\" @click=\"simulateLifecycleFromEditor\">\n <template #icon><CaretRightOutlined /></template>\n 模拟执行\n </a-button>\n </div>\n </a-modal>\n</template>\n","<script setup lang=\"ts\">\nimport type { Page } from '../../core/index.ts'\nimport { ensureWidgetStyles } from '../../core/index.ts'\nimport PageLifecyclePanel from './lifecycle-panel.vue'\nimport WidgetStylePanel from '../shared/setter/panels/widget-style-panel.vue'\nimport SetterShell from '../shared/setter/shell.vue'\nimport { ensurePageScript } from '../../runtime/runtime.ts'\nimport type { PageLifecycleSource } from '../../core/index.ts'\nimport { computed, watch } from 'vue'\nimport { useInjectDesigner } from '../../designer/material-registry.ts'\n\nconst props = defineProps<{\n widget: Page\n}>()\n\nconst designer = useInjectDesigner()\n\nconst currentWidget = computed(() => (designer?.selectedWidget ?? props.widget)! as Page)\n\nconst pageTitle = computed({\n get: () => currentWidget.value.title ?? '',\n set: value => {\n currentWidget.value.title = value\n }\n})\n\nconst pageLifecycle = computed<PageLifecycleSource>({\n get: () => currentWidget.value.lifecycle ?? {},\n set: value => {\n currentWidget.value.lifecycle = value\n }\n})\n\nconst pageOptions = computed({\n get: () => {\n currentWidget.value.options ??= {}\n return currentWidget.value.options\n },\n set: value => {\n currentWidget.value.options = value\n }\n})\n\nwatch(\n currentWidget,\n current => {\n const run = () => {\n ensurePageScript(current)\n if (!current.options) {\n current.options = {}\n }\n ensureWidgetStyles(current)\n }\n if (designer) {\n designer.runWithoutHistoryRecording(run)\n } else {\n run()\n }\n },\n { immediate: true, deep: true }\n)\n</script>\n\n<template>\n <SetterShell>\n <template #basic>\n <a-form layout=\"vertical\" class=\"p-4\">\n <a-form-item label=\"标题\">\n <a-input v-model:value=\"pageTitle\" placeholder=\"页面标题\" allow-clear />\n </a-form-item>\n <slot name=\"options\" :widget=\"currentWidget\" :options=\"pageOptions\" />\n </a-form>\n </template>\n <template #style>\n <WidgetStylePanel :widget=\"currentWidget\" />\n </template>\n <template #advanced>\n <PageLifecyclePanel v-model=\"pageLifecycle\" />\n </template>\n </SetterShell>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"48\",\n height: \"48\",\n class: \"icon\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M790.08 718.08 651.968 837.312V718.08zM198.848 132.992h627.328v516.16H617.088a34.56 34.56 0 0 0-34.816 34.432v206.528H198.848zm662.208-68.8H164.032a34.56 34.56 0 0 0-34.816 34.432v825.92a34.56 34.56 0 0 0 34.816 34.432h453.056L895.872 718.08V98.624a34.56 34.56 0 0 0-34.816-34.432\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import View from './view.vue'\nimport Setter from './setter.vue'\nimport Icon from './icon.svg'\nimport type { Page } from '../../core/index.ts'\nimport { DEFAULT_PAGE_DATA, DEFAULT_PAGE_STYLES } from '../../core/index.ts'\n\nconst widget: Page = {\n id: 0,\n type: 'page',\n isContainer: true,\n name: '页面',\n title: '页面',\n styles: { default: { ...DEFAULT_PAGE_STYLES.default } },\n options: {},\n children: [],\n data: DEFAULT_PAGE_DATA,\n lifecycle: {},\n methods: [],\n icon: Icon,\n component: View,\n setterComponent: Setter\n}\n\nexport default widget\n","import type { MaterialDefinition } from '../core/index.ts'\nimport button from './packages/button/index.ts'\nimport image from './packages/image/index.ts'\nimport text from './packages/text/index.ts'\nimport divider from './packages/divider/index.ts'\nimport card from './packages/card/index.ts'\nimport carousel, { carouselSlideWidget } from './packages/carousel/index.ts'\nimport grid from './packages/grid/index.ts'\nimport tab, { tabPaneWidget } from './packages/tab/index.ts'\nimport list from './packages/list/index.ts'\nimport pageWidget from './page/index.ts'\n\nexport const materialDefinitions: MaterialDefinition[] = [\n { widget: grid, palette: true, packageName: '容器组件' },\n { widget: card, palette: true, packageName: '容器组件' },\n { widget: tab, palette: true, packageName: '容器组件' },\n { widget: carousel, palette: true, packageName: '容器组件' },\n { widget: list, palette: true, packageName: '容器组件' },\n { widget: button, palette: true, packageName: '基础组件' },\n { widget: image, palette: true, packageName: '基础组件' },\n { widget: text, palette: true, packageName: '基础组件' },\n { widget: divider, palette: true, packageName: '基础组件' },\n { widget: tabPaneWidget },\n { widget: carouselSlideWidget },\n { widget: pageWidget }\n]\n","import type { LowcodePackage } from '../core/index.ts'\nimport { createMaterialRegistry, buildMaterialPackages, type MaterialDefinition } from '../core/index.ts'\nimport { materialDefinitions } from './definitions.ts'\n\nexport { materialDefinitions } from './definitions.ts'\nexport { runtimeMaterialDefinitions } from './runtime-definitions.ts'\nexport {\n createMaterialRegistry,\n buildMaterialPackages,\n toRuntimeMaterialDefinitions,\n type MaterialRegistry\n} from '../core/index.ts'\nexport type { MaterialDefinition } from '../core/index.ts'\nexport {\n createDefaultPage,\n createDefaultPageScript,\n resolvePageTitle\n} from '../core/index.ts'\n\n/** 内置物料注册表(静态元数据;设计器运行时请使用 createDesignerMaterialRegistry) */\nexport const defaultMaterialRegistry = createMaterialRegistry(materialDefinitions)\n\nexport const defaultMaterialPackages: LowcodePackage[] = buildMaterialPackages(materialDefinitions)\n\nexport default defaultMaterialPackages\n"],"names":["arrayAggregator","array","setter","iteratee","accumulator","index","length","value","createBaseFor","fromRight","object","keysFunc","iterable","props","key","baseFor","baseForOwn","keys","createBaseEach","eachFunc","collection","isArrayLike","baseEach","baseAggregator","createAggregator","initializer","func","isArray","baseIteratee","baseSet","path","customizer","isObject","castPath","lastIndex","nested","toKey","newValue","objValue","isIndex","assignValue","basePickBy","paths","predicate","result","baseGet","partition","basePick","hasIn","pick","flatRest","Option","OptGroup","isSelectOptionOrSelectOptGroup","child","_a","_b","autoCompleteProps","_extends","omit","selectProps","AutoComplete","defineComponent","_ref","slots","attrs","expose","warning","selectRef","ref","getInputElement","children","flattenChildren","prefixCls","useConfigInject","_c","size","dataSource","notFoundContent","optionChildren","className","cls","childArray","item","isValidElement","_createVNode","Select","_objectSpread","__unplugin_components_7$1","app","useRaf","callback","rafRef","shallowRef","removedRef","trigger","_len","args","_key","raf","onBeforeUnmount","useRafState","defaultState","batchRef","state","flushUpdate","updater","TabNode","domRef","onInternalClick","e","onRemoveTab","event","removable","computed","id","active","tab","disabled","closeIcon","renderWrapper","removeAriaLabel","editable","onFocus","tabPrefix","node","classNames","KeyCode","DEFAULT_SIZE","useOffsets","tabs","tabSizes","offsetMap","watchEffect","map","tabsValue","lastOffset","rightOffset","i","data","entity","AddButton","locale","operationNodeProps","PropTypes","functionType","OperationNode","open","setOpen","useState","selectedKey","setSelectedKey","selectOffset","offset","enabledTabs","selectedIndex","len","onKeyDown","which","popupId","selectedItemId","onMounted","watch","ele","useProvideOverride","mobile","moreIcon","EllipsisOutlined","moreTransitionName","tabBarGutter","rtl","onTabClick","popupClassName","dropdownPrefix","dropdownAriaLabel","moreStyle","overlayClassName","moreNode","Dropdown","Menu","_ref2","domEvent","MenuItem","TabsContextKey","useProvideTabs","provide","useInjectTabs","inject","toRefs","MIN_SWIPE_DISTANCE","STOP_SWIPE_DISTANCE","REFRESH_INTERVAL","SPEED_OFF_MULTIPLE","useTouchMove","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionInterval","onTouchStart","screenX","screenY","onTouchMove","offsetX","offsetY","now","onTouchEnd","lastOffsetValue","distanceX","distanceY","absX","absY","currentX","currentY","lastWheelDirectionRef","onWheel","deltaX","deltaY","mixed","touchEventsRef","onProxyTouchStart","onProxyTouchMove","onProxyTouchEnd","onProxyWheel","useSyncState","onChange","stateRef","setState","useRefs","refs","setRef","el","onBeforeUpdate","tabNavListProps","objectType","getTabSize","containerRect","offsetWidth","offsetHeight","offsetTop","offsetLeft","width","height","x","y","TabNavList","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","btnRefs","tabPositionTopOrBottom","transformLeft","setTransformLeft","next","prev","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","wrapperWidth","setWrapperWidth","wrapperHeight","setWrapperHeight","addWidth","setAddWidth","addHeight","setAddHeight","setTabSizes","tabOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","doMove","scrollToTab","tabOffset","newTransform","visibleStart","visibleEnd","unit","position","transformSize","basicSize","tabContentSize","addSize","tabOffsetsValue","mergedBasicSize","tabsVal","endIndex","startIndex","updateTabSizes","newSizes","listRect","btnRef","btnNode","left","top","onListHolderResize","_d","_e","addDom","newAddWidth","newAddHeight","newWrapperScrollWidth","newWrapperScrollHeight","hiddenTabs","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","toPx","ExtraContent","_ref3","extra","content","animated","activeKey","tabPosition","style","pre","hasDropdown","wrapPrefix","pingLeft","pingRight","pingTop","pingBottom","tabNodeStyle","tabNodes","ResizeObserver","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","activeIndex","cloneElement","genMotionStyle","token","componentCls","motionDurationSlow","initSlideMotion","genCardStyle","tabsCardHorizontalPadding","tabsCardHeadBackground","tabsCardGutter","colorSplit","genDropdownStyle","tabsHoverColor","dropdownEdgeChildVerticalPadding","resetComponent","textEllipsis","genPositionStyle","margin","genSizeStyle","padding","genTabStyle","tabsActiveColor","iconCls","tabsHorizontalGutter","tabCls","genFocusStyle","genRtlStyle","genTabsStyle","tabsCardHeight","useStyle$5","genComponentStyleHook","tabsToken","mergeToken","uuid","tabsProps","stringType","someType","booleanType","parseTabList","k","v","camelize","forceRender","closable","InternalTabs","initDefaultProps","arrayType","devWarning","direction","rootPrefixCls","getPopupContainer","wrapSSR","hashId","useStyle","mergedAnimated","setMobile","isMobile","mergedActiveKey","setMergedActiveKey","useMergedState","setActiveIndex","newActiveIndex","mergedId","setMergedId","mergedTabPosition","onInternalTabClick","isActiveChanged","type","tabBarStyle","renderTabBar","onTabScroll","hideAdd","centered","sharedProps","editType","CloseOutlined","PlusOutlined","tabNavBar","tabNavBarProps","Tabs","emit","handleChange","tabPaneProps","__unplugin_components_0$3","visited","mergedStyle","tabKey","TabPane","__unplugin_components_5","withInstall","Col","RotateLeftOutlined","target","source","ownKeys","sym","_defineProperty","obj","context","p","AntdIcon","RotateLeftOutlinedSvg","RotateRightOutlined","RotateRightOutlinedSvg","progressStatuses","progressProps","anyType","validProgress","progress","getSuccessPercent","success","successPercent","percent","getPercentage","realSuccessPercent","getStrokeColor","strokeColor","successColor","presetPrimaryColors","getSize","steps","strokeWidth","__rest","s","t","lineProps","sortGradient","gradients","tempArr","formattedKey","a","b","handleGradient","directionConfig","from","to","rest","sortedGradients","Line","backgroundProps","borderRadius","trailStyle","mergedSize","sizeRef","percentStyle","successPercentStyle","outerStyle","_Fragment","defaultProps","useTransitionDuration","prevTimeStamp","onUpdated","updated","val","pathStyle","propTypes","gradientSeed","stripPercentToNumber","toArray","getPathStyles","gapDegree","gapPosition","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","pathString","VCCircle","gradientId","percentList","strokeColorList","getStokeList","strokeLinecap","stackPtg","ptg","color","stroke","pathProps","trailWidth","trailColor","restProps","gradient","pathFirst","circleProps","CIRCLE_MIN_STROKE_WIDTH","getMinPercent","Circle","originWidth","gapDeg","circleStyle","circleWidth","gapPos","isGradient","wrapperClassName","circleContent","Tooltip","stepsProps","Steps$1","current","styledSteps","temp","antProgressActive","Keyframes","genBaseStyle","progressCls","iconPrefixCls","genCircleStyle","genStepStyle","genSmallLine","useStyle$4","progressStepMarginInlineEnd","progressToken","Progress$1","strokeColorNotArray","percentNumber","progressStatus","status","classString","showInfo","strokeColorNotGradient","renderProcessInfo","format","title","text","textFormatter","isLineType","CloseCircleFilled","CheckCircleFilled","CheckOutlined","restAttrs","progressInfo","Steps","Progress","__unplugin_components_7","Row","Track","_","included","vertical","reverse","positionStyle","elStyle","calcPoints","_vertical","marks","dots","step","min","max","points","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","point","isActived","pointClassName","Marks","onClickLabel","marksKeys","customMark","markPoint","markPointIsObject","markLabel","isActive","markClassName","bottomStyle","leftStyle","markStyle","touchEvents","supportsPassive","VcHandle","clickFocused","handle","handleMouseUp","handleBlur","handleKeyDown","focus","blur","clickFocus","handleMousedown","onMouseUpListener","addEventListener","tabindex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","onMouseenter","onMouseleave","ariaProps","mergedTabIndex","ariaValueText","handleProps","isEventFromHandle","handles","isValueOutOfRange","isNotTouchEvent","getClosestPoint","baseNum","getPrecision","maxSteps","closestStep","diffs","stepString","precision","getMousePosition","zoom","getTouchPosition","getHandleCenterPosition","coords","ensureValueInRange","ensureValuePrecision","closestPoint","pauseEvent","calculateNextValue","operations","indexToGet","keyToGet","getKeyboardValueMutator","increase","decrease","method","keyCode","_value","noop","createSlider","Component","BaseMixin","isPointDiffEven","autofocus","directives","Handle","draggableTrack","isVertical","bounds","inPoint","utils.isEventFromHandle","n","c","handlePosition","utils.getHandleCenterPosition","utils.getMousePosition","utils.isNotTouchEvent","utils.getTouchPosition","utils.pauseEvent","slider","rect","ratio","pixelOffset","maximumTrackStyle","railStyle","tracks","sliderClassName","markProps","getSlot","Slider","defaultValue","sValue","nextValue","utils.isValueOutOfRange","isNotControlled","hasProp","nextState","changedValue","force","dragging","valueMutator","utils.getKeyboardValueMutator","mutatedValue","minPoint","nextProps","mergedProps","utils.ensureValueInRange","utils.ensureValuePrecision","minimumTrackStyle","mergedTrackStyle","trackStyle","handleStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","startPoint","defaultHandle","handleGenerator","h","trackOffset","VcSlider","trimAlignValue","allowCross","pushable","thershold","valInRange","valNotConflict","rangeProps","withUndefined","Range","count","initialValue","nextBounds","newValues","controlledState","closestBound","prevValue","sHandle","dragTrack","startBounds","maxValue","minValue","pos","oldValue","recent","boundNeedMoving","isAtTheSamePoint","cache","pointsObject","isFromKeyboardEvent","nextHandle","threshold","diffToNext","amount","originalValue","currentValue","nextPointIndex","offsets","trackClassName","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","handleClassName","VcRange","SliderTooltip","tooltipProps","innerRef","cancelKeepAlign","keepAlign","align","onActivated","controlSize","dotSize","marginFull","marginPart","colorFillContentHover","TinyColor","genDirectionStyle","horizontal","railSize","handleSize","railPadding","full","part","handlePos","markInset","genHorizontalStyle","marginPartWithMark","genVerticalStyle","useStyle$3","sliderToken","controlSizeHover","handleLineWidth","handleLineWidthHover","defaultTipFormatter","sliderProps","deprecatedName","newName","configProvider","formItemContext","useInjectFormItemContext","sliderRef","visibles","toggleTooltipOpen","visible","tooltipPlacement","handleWithTooltip","tooltipPrefixCls","tipFormatter","tooltipOpen","getTooltipPopupContainer","isTipFormatter","customizeTooltipPrefixCls","info","__unplugin_components_0$2","getError","option","xhr","msg","err","getBody","upload","formData","headers","uid","attrAccept","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","lowerFileName","lowerType","affixList","affix","loopFiles","dirReader","fileList","sequence","entries","entryList","traverseFileTree","files","isAccepted","_traverseFileTree","entryItem","uploadProps","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","rejected","AjaxUpload","getUid","reqs","fileInput","isMounted","processFile","beforeUpload","transformedFile","action","mergedAction","mergedData","parsedData","parsedFile","mergedParsedFile","post","origin","onStart","customRequest","name","withCredentials","request","defaultRequest","requestOption","onProgress","ret","onSuccess","onError","reset","abort","uploadFiles","originFiles","postFiles","onBatchStart","accept","directory","onClick","onFileDrop","multiple","_file","successFiles","errorFiles","Tag","capture","openFileDialogOnClick","otherProps","dirProps","pickAttrs","empty","Upload$1","uploader","PaperClipOutlined","PaperClipOutlinedSvg","PictureTwoTone","primaryColor","secondaryColor","PictureTwoToneSvg","FileTwoTone","FileTwoToneSvg","uploadListProps","file2Obj","updateFileList","nextFileList","fileIndex","getFileItem","matchKey","removeFileItem","removed","extname","filenameWithoutSuffix","isImageFileType","isImageUrl","url","extension","MEASURE_SIZE","previewImage","canvas","ctx","img","drawWidth","drawHeight","dataURL","reader","DownloadOutlined","DownloadOutlinedSvg","listItemProps","ListItem","showProgress","progressRafRef","mergedStatus","transitionProps","getTransitionProps","listType","items","iconRender","actionIconRender","itemRender","isImgUrl","showPreviewIcon","showRemoveIcon","showDownloadIcon","customPreviewIcon","customRemoveIcon","customDownloadIcon","onPreview","onDownload","onClose","iconNode","icon","uploadingClassName","thumbnail","aClassName","infoUploadingClass","linkProps","removeIcon","DeleteOutlined","downloadIcon","downloadOrDelete","listItemNameClass","previewStyle","previewIcon","EyeOutlined","pictureCardActions","dom","Transition","_withDirectives","_vShow","listContainerNameClass","message","HackSlot","filterEmpty","UploadList","motionAppear","mergedItems","hasUpdate","previewDataUrl","thumbUrl","triggerRef","onInternalPreview","onInternalDownload","onInternalClose","internalIconRender","isLoading","fileIcon","LoadingOutlined","opt","customIcon","btnProps","Button","listClassNames","transitionGroupProps","motion","collapseMotion","motionConfig","getTransitionGroupProps","appendAction","appendActionVisible","appendActionDom","TransitionGroup","genDraggerStyle","genListStyle","antCls","fontSize","lineHeight","itemCls","actionsCls","actionCls","listItemHeightSM","clearFix","uploadAnimateInlineIn","uploadAnimateInlineOut","inlineCls","genPictureStyle","uploadThumbnailSize","uploadProgressOffset","listCls","genPictureCardStyle","fontSizeLG","colorTextLightSolid","uploadPictureCardSize","colorTextDisabled","useStyle$2","fontSizeHeading3","lineWidth","controlHeightLG","uploadToken","genCollapseMotion","LIST_IGNORE","Upload","disabledContext","useInjectDisabled","mergedDisabled","mergedFileList","setMergedFileList","toRef","list","timestamp","dragState","onInternalChange","changedFileList","cloneList","changeInfo","mergedBeforeUpload","fileListArgs","transformFile","batchFileInfoList","filteredFileInfoList","objectFileList","newFileList","fileObj","triggerFileObj","originFileObj","clone","response","targetItem","error","handleRemove","currentFile","mergedRemove","removedFileList","useLocaleReceiver","defaultLocale","renderUploadList","button","buttonVisible","previewFile","showUploadList","styleName","transAttrs","rcUploadProps","rtlCls","dragCls","VcUpload","uploadButtonCls","renderUploadButton","uploadButtonStyle","Dragger","draggerProps","__unplugin_components_0$1","getItemDisabledStyle","getItemSelectedStyle","segmentedTextEllipsisCss","genSegmentedStyle","useStyle$1","lineWidthBold","colorTextLabel","colorText","colorFillSecondary","colorBgLayout","colorBgElevated","segmentedToken","calcThumbStyle","targetElement","toPX","MotionThumb","thumbRef","findValueElement","prevStyle","nextStyle","calcPrevStyle","calcNextStyle","thumbStart","thumbActive","timeid","onAppearStart","nextTick","onAppearActive","addClass","onAppearEnd","removeClass","motionProps","normalizeOptions","options","segmentedProps","SegmentedOption","payload","label","checked","Segmented","rootRef","thumbShow","segmentedOptions","_event","segmentedOption","__unplugin_components_0","AlignCenterOutlined","AlignCenterOutlinedSvg","AlignLeftOutlined","AlignLeftOutlinedSvg","AlignRightOutlined","AlignRightOutlinedSvg","BgColorsOutlined","BgColorsOutlinedSvg","BorderBottomOutlined","BorderBottomOutlinedSvg","BorderLeftOutlined","BorderLeftOutlinedSvg","BorderOuterOutlined","BorderOuterOutlinedSvg","BorderOutlined","BorderOutlinedSvg","BorderRightOutlined","BorderRightOutlinedSvg","BorderTopOutlined","BorderTopOutlinedSvg","ColumnWidthOutlined","ColumnWidthOutlinedSvg","ExpandOutlined","ExpandOutlinedSvg","HolderOutlined","HolderOutlinedSvg","LinkOutlined","LinkOutlinedSvg","MenuOutlined","MenuOutlinedSvg","MergeCellsOutlined","MergeCellsOutlinedSvg","NodeCollapseOutlined","NodeCollapseOutlinedSvg","NodeExpandOutlined","NodeExpandOutlinedSvg","PicLeftOutlined","PicLeftOutlinedSvg","PictureOutlined","PictureOutlinedSvg","ScissorOutlined","ScissorOutlinedSvg","SplitCellsOutlined","SplitCellsOutlinedSvg","ThunderboltOutlined","ThunderboltOutlinedSvg","flexWrapValues","justifyContentValues","alignItemsValues","genClsWrap","wrapCls","cssKey","genClsAlign","alignCls","genClsJustify","justifyCls","createFlexClassNames","genFlexStyle","genFlexGapStyle","genFlexWrapStyle","wrapStyle","genAlignItemsStyle","alignStyle","genJustifyContentStyle","justifyStyle","flexToken","isPresetSize","flexProps","AFlex","ctxFlex","ctxDirection","useConfigContextInject","mergedCls","flex","gap","othersProps","__unplugin_components_1","INVALID_HANDLER_MESSAGE","EVENT_BINDING_PRESETS","__props","__emit","eventList","dedupeWidgetEvents","editorVisible","editingKey","editingHandler","designer","useInjectDesigner","pageContextCompletion","page","selectedWidget","eventName","editingItem","buildPageContextCompletion","buildEventBindingCompletionScope","editingEventLabel","preset","findPresetHint","editingPresetHint","editingHandlerInvalid","handler","isValidPageScriptHandler","canSaveEditor","getSelectOptions","currentKey","isEventNameUsed","updateItem","patch","removeItem","handleAddItem","usedNames","createWidgetEventItem","canAddItem","openEditor","DEFAULT_WIDGET_EVENT_HANDLER","handleEditorSave","handleEditorCancel","getBindingPreview","formatWidgetEventBindingPreview","insertExample","example","_createElementVNode","_hoisted_1","_hoisted_2","_createElementBlock","_renderList","_component_a_row","_component_a_col","_component_a_select","$event","_component_a_button","_unref","EditOutlined","hasWidgetEventBinding","_createBlock","_component_a_tag","_hoisted_3","_toDisplayString","_component_a_empty","_cache","_component_a_modal","_hoisted_4","CodeEditor","_hoisted_5","_component_a_collapse","_component_a_collapse_panel","_hoisted_6","_hoisted_7","InfoCircleOutlined","_hoisted_8","_openBlock","_hoisted_9","presetOptions","WIDGET_ANIMATION_PRESETS","WIDGET_ANIMATION_PRESET_LABELS","triggerOptions","WIDGET_ANIMATION_TRIGGERS","WIDGET_ANIMATION_TRIGGER_LABELS","fillModeOptions","commitMotion","ensureWidgetStyles","cleaned","cleanWidgetMotion","nextStyles","cleanWidgetStyles","ensureWidgetMotion","transitionEnabled","isWidgetTransitionEnabled","enabled","patchTransition","transitionProperty","transitionDuration","match","transitionTiming","transitionDelay","animationEnabled","isWidgetAnimationEnabled","patchAnimation","animationPreset","animationTrigger","animationDuration","animationDelay","animationTiming","animationIteration","animationFillMode","inViewOnce","inViewThreshold","defaultCustomKeyframes","customKeyframesJson","parsed","showInViewOptions","showCustomKeyframes","_component_a_form","_component_a_divider","_component_a_form_item","_component_a_switch","TRANSITION_PROPERTY_OPTIONS","_component_a_input_number","TRANSITION_TIMING_OPTIONS","_component_a_auto_complete","_component_a_slider","parseColor","hexValue","formatHex","formatRgba","textValue","handleClear","_component_a_flex","_component_a_input","model","_useModel","directoryFromType","loading","uploadHandler","LOWCODE_UPLOAD_KEY","uploadDirectory","previewUrl","hasBindingExpression","_component_a_upload","_normalizeStyle","stylePropertyKey","toValue","useCssStyle","cleanEmptyStyle","get","fallback","raw","isResponsiveStyleValue","resolveResponsiveValue","set","pruneResponsiveValue","pruned","breakpoint","STYLE_BREAKPOINTS","useStyleProperty","propertyKey","isResponsive","commitStyle","entryKey","writeProperty","flatValue","getAt","readStyleValue","setAt","responsive","normalized","toggleResponsive","collapsed","useWidgetSetter","materialRegistry","useInjectMaterialRegistry","currentWidget","propWidget","isReadonly","canMutateWidgetContent","widgetOptions","widgetTitle","run","useWidgetDefaultStyle","getWidgetDefaultStyle","useWidgetStyles","useWidgetEventsBinding","eventPresets","backgroundType","backgroundTypeOptions","toSelectString","first","updateBackgroundType","backgroundColor","backgroundImage","trimmed","backgroundOpacity","clampAlpha","updateBackgroundSize","updateBackgroundRepeat","_component_a_radio_group","_component_a_radio_button","_component_a_tooltip","_resolveDynamicComponent","StyleColorInput","StylePercentInput","ImageUpload","STYLE_INPUT_PRESETS","resolvePreset","presetConfig","inputMode","units","showUnit","normalizeModelValue","input","parseStyleValue","unitlessMatch","withUnitMatch","parseSize","formatStyleValue","formatSize","presetRef","config","valueFormatter","formatOutputValue","cfg","showUnitSelect","fixedUnitLabel","unitOptions","numberBind","isStyleBinding","styleModel","responsiveEnabled","popoverOpen","createValueModel","getValue","setValue","modelValue","isAuto","numericValue","unitValue","primaryValue","primaryBinding","primaryIsAuto","primaryNumericValue","primaryUnitValue","primaryTextValue","breakpointRows","reactive","STYLE_BREAKPOINT_META","getUnitSelectPopupContainer","triggerNode","handlePopoverOpen","disableResponsive","unitLabel","_component_a_input_group","_mergeProps","_component_a_popover","row","MobileOutlined","_normalizeClass","DEFAULT_OUTER_SHADOW","radiusMode","activeBorderSide","shadowType","radiusModeOptions","shadowTypeOptions","isUniformRadius","cssStyle","topLeft","topRight","bottomRight","bottomLeft","splitShorthand","updateRadiusMode","mode","corners","getBorderRadius","setBorderRadius","radiusCorners","cornerRadius","topLeftRadius","topRightRadius","bottomRightRadius","bottomLeftRadius","borderSideOptions","borderWidthKey","borderStyle","getBorderValue","setBorderValue","borderColor","parsedShadow","parseShadow","updateShadow","patchValue","formatted","formatShadow","shadowColor","shadowX","shadowY","shadowBlur","shadowSpread","updateShadowType","StylePropertyInput","_createTextVNode","marginSides","getBoxSides","paddingSides","updateSides","prefix","nextSides","normalizeBoxSideValue","setBoxSides","updateUniformSides","sideNumber","num","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","uniformNumber","right","bottom","marginUniform","paddingUniform","_hoisted_10","_hoisted_11","_hoisted_12","flexRadioGroupClass","flexIconWrapClass","FLEX_KEYS","GRID_KEYS","GRID_UNUSED_KEYS","FLEX_BUILTIN_DEFAULTS","getFlexDefault","formatGridTemplateColumns","parseGridColumnCount","repeatMatch","parts","displayModes","AppstoreOutlined","EyeInvisibleOutlined","display","isFlex","isGrid","previous","changed","createFlexPropComputed","resolved","flexDirection","flexJustifyContent","flexAlignItems","flexWrap","columns","flexDirectionOptions","justifyContentOptions","alignItemsOptions","flexWrapOptions","FlexLayoutIcon","flexLayoutIconNodes","BoxModel","OFFSET_KEYS","createOffsetProp","positionOptions","isPositioned","createEnumProp","noneValue","floatValue","clearValue","floatOptions","clearOptions","OffsetBox","fontWeight","fontFamily","textAlign","alignOptions","opacityPercent","FONT_WEIGHT_OPTIONS","FONT_FAMILY_OPTIONS","STYLE_STATE_STORAGE_KEY","editState","saved","isPseudoState","showLayoutPanel","showPositionPanel","activeKeys","styleSegments","WIDGET_PSEUDO_STYLE_STATES","styles","hasDot","hasWidgetTransition","hasWidgetAnimationForTrigger","isNonEmptyCssStyle","WIDGET_STYLE_STATE_LABELS","activeStyleModel","styleJson","syncStylePreview","_component_a_segmented","StyleLayoutPanel","StylePositionPanel","StyleTypographyPanel","StyleBackgroundPanel","StyleBorderPanel","StyleAnimationPanel","DEFAULT_BINDING_CONSTRAINT","INDEX_SEGMENT","createPath","root","segments","joinPathSegments","segment","bindingPathToExpression","joined","wrapBindingExpression","expr","serializeTemplateSegment","serializeBinding","descriptor","serializeListDataSourceBinding","bindingValueTypeMatches","constraintValueType","valueType","expected","makePathKey","appendPathSegment","basePath","MAX_TREE_DEPTH","readRuntimeRecord","runtime","toRaw","mergePageDesignData","runtimeRecord","merged","getWidgetTreePath","widgetId","walk","tree","isWidgetInsideList","ancestors","widget","findNearestListAncestor","resolveItemScopeTargetList","listDataSource","self","inferListItemSample","pageData","listWidget","parentLists","findParentListWidgets","resolveListItemSample","resolveDisplayValue","runtimeValue","designValue","createSelectableNode","typeLabel","inferPageDataValueType","selectable","getPageDataValueSummary","buildValueChildren","depth","constraint","allowIndexPlaceholder","childValue","buildArrayChildren","nodes","matchesArray","dynamicPath","sample","samplePath","sampleType","sampleNode","buildDataFieldNodes","rows","seen","pushField","kind","displayValue","buildItemScopeNodes","itemSample","buildDataScopeTree","includeItemScope","includeIndexScope","dataChildren","roots","itemChildren","matchesNumber","collectExpandableKeys","lifecycleRuntime","LIFECYCLE_KEY","runtimeVersion","expandedKeys","insideList","itemScopeTargetList","record","nodeIcon","ApiOutlined","DatabaseOutlined","iconClass","onTreeSelect","_keys","selectPath","_component_a_tree","_withCtx","_createSlots","_renderSlot","_ctx","BindingPicker","activeTab","newVal","savedTab","useSlots","_component_a_tabs","$slots","_component_a_tab_pane","ensureButtonOptions","buttonEvents","SetterShell","BindingFormItem","BUTTON_TYPE_OPTIONS","BUTTON_SIZE_OPTIONS","BUTTON_SHAPE_OPTIONS","WidgetStylePanel","EventPanel","render","Icon$9","Icon","View","Setter","COMMON_CONTAINER_EVENT_PRESETS","ensureImageOptions","imageSrc","imageEvents","IMAGE_FIT_OPTIONS","Icon$8","ensureTextOptions","textEvents","_component_a_textarea","TEXT_DISPLAY_DEFAULT","Icon$7","ensureDividerOptions","isHorizontal","isDividerHorizontal","showOrientationMargin","isDividerOrientationMarginApplicable","dividerEvents","orientationMarginInput","formatOrientationMarginInput","normalizeOrientationMargin","DIVIDER_TYPE_OPTIONS","DIVIDER_ORIENTATION_OPTIONS","Icon$6","ensureCardOptions","cardEvents","CARD_SIZE_OPTIONS","Icon$5","removeNode","insertNodeAt","fatherNode","refNode","getConsole","console","cached","fn","str","regex","manageAndEmit","manage","eventHandlerNames","events","evt","isReadOnly","tags","isHtmlTag","isTransition","isHtmlAttribute","project","res","getComponentAttributes","$attrs","componentData","createSortableOption","callBackBuilder","getValidSortableEntries","eventType","eventBuilder","draggable","getHtmlElementFromNode","addContext","domElement","getContext","ComponentStructure","header","defaultNodes","footer","realList","attributes","tag","_isRootComponent","domIndex","element","domChildren","firstDomListElement","indexFirstDomListElement","slotValue","computeNodes","getKey","normalizedList","getRootInformation","transition","externalComponent","resolveComponent","computeComponentStructure","evtName","evtData","originalElement","delegateCallBack","draggingElement","original","emits","draggableComponent","componentStructure","$el","sortableOptions","targetDomElement","Sortable","itemKey","newOptionValue","_sortable","htmElement","onList","newList","spliceList","oldIndex","newIndex","updatePosition","related","component","added","moved","relatedContext","currentDomIndex","currentIndex","originalEvent","move","futureIndex","draggedContext","sendEvent","childList","canEditList","canMutateWidgetStructure","canEditChild","handleAdd","handleDragEnd","handleTitleChange","resolveWidgetEditorTitle","ensureCarouselOptionsWithDefaults","ensureCarouselOptions","carouselSlides","getCarouselSlides","carouselEvents","carouselHeight","DEFAULT_CAROUSEL_OPTIONS","dotColor","CAROUSEL_DOT_POSITION_OPTIONS","KeyedSlotChildList","CAROUSEL_KEYED_SLOT_CONFIG","DEFAULT_CAROUSEL_SLIDE_TITLE","useKeyedSlotDesignerSync","containerWidget","updateActiveKey","syncActiveChildFromSelection","selected","owningChild","carouselWidget","isCarouselSlideNode","findOwningCarouselSlide","setCarouselActiveKey","CarouselView","scope","ensureCarouselSlideWidget","slideEvents","CAROUSEL_SLIDE_FLEX_LAYOUT_DEFAULTS","_createStaticVNode","Icon$4","defaultSlides","createDefaultCarouselSlides","Designer","normalizeCarouselWidget","carouselSlideWidget","SlideView","SlideSetter","ensureGridOptions","gridKindOptions","GRID_KIND_LABELS","gridEvents","GRID_FLEX_LAYOUT_DEFAULTS","assignGridPaneNames","layout","GRID_LAYOUT_PANE_KIND","resolveGridPaneLabel","pane","createGridPane","allocateId","GRID_FILL_STYLE","freezeGridSplitSize","measured","splitGridWidget","_parentWidget","measuredSize","currentLayout","getChildrenLayout","oldChildren","paneKind","applyGridStructuredSplitStyles","applyWidgetInternalFlags","resolveHeightKey","axis","resolveWidthKey","_widget","_axis","resolveTargetElements","resolveSelectionContentElement","readPixelSize","styleValue","SELECTION_RESIZE_MIN_PX","ensureWidgetDefaultStyle","useWidgetSizeResize","resizing","session","applySize","outer","resolveResizeOuterBounds","minWidth","resolveResizeAxisMinSize","nextWidth","clampResizeAxisValue","minHeight","nextHeight","clearResizeState","onPointerMove","onPointerUp","endResize","startResize","axes","targets","widthKey","heightKey","cursor","topHover","leftHover","gridViewRef","canEdit","gridKind","getGridKind","resizeAxes","resolveGridResizeAxes","startWidthResize","startHeightResize","startBothResize","readSplitMeasuredSize","host","runSplit","GridView","_withModifiers","Icon$3","normalizeGridWidget","isGridStructuredNode","GRID_ROOT_DEFAULT_STYLE","ensureTabOptionsWithDefaults","ensureTabOptions","tabPanes","getTabPanes","tabEvents","TAB_POSITION_OPTIONS","TAB_SIZE_OPTIONS","TAB_KEYED_SLOT_CONFIG","DEFAULT_TAB_PANE_TITLE","tabWidget","isTabPaneNode","findOwningTabPane","setTabActiveKey","TabView","ensureTabPaneWidget","paneEvents","TAB_PANE_FLEX_LAYOUT_DEFAULTS","Icon$2","defaultPanes","createDefaultTabPanes","normalizeTabWidget","tabPaneWidget","PaneView","PaneSetter","ensureListOptions","listEvents","itemsField","itemHiddenWhen","ListView","Icon$1","DEFAULT_LIST_TITLE","normalizeListWidget","LIST_EVENT_PRESETS","DEFAULT_LIST_STYLE","lifecycleUsageExamples","lifecyclePresets","lifecycleEditingHandler","lifecycleSource","ensurePageLifecycle","lifecycleEditorVisible","lifecycleEditingKey","lifecycleEditingPreset","lifecycleEditorTitle","lifecycleEditorPlaceholder","lifecycleEditingHandlerInvalid","canSimulateLifecycleFromEditor","getLifecycleHandler","hasLifecycleHandler","openLifecycleEditor","saveLifecycleEditor","code","cancelLifecycleEditor","getSimulateErrorMessage","simulateLifecycle","handlerSource","simulateLifecycleFromList","simulateLifecycleFromEditor","insertLifecycleExample","CaretRightOutlined","pageTitle","pageLifecycle","pageOptions","ensurePageScript","PageLifecyclePanel","DEFAULT_PAGE_STYLES","DEFAULT_PAGE_DATA","materialDefinitions","grid","card","carousel","image","divider","pageWidget","defaultMaterialRegistry","createMaterialRegistry","defaultMaterialPackages","buildMaterialPackages"],"mappings":";;;;;;;AAUA,SAASA,GAAgBC,GAAOC,GAAQC,GAAUC,GAAa;AAI7D,WAHIC,IAAQ,IACRC,IAASL,KAAS,OAAO,IAAIA,EAAM,QAEhC,EAAEI,IAAQC,KAAQ;AACvB,QAAIC,IAAQN,EAAMI,CAAK;AACvB,IAAAH,EAAOE,GAAaG,GAAOJ,EAASI,CAAK,GAAGN,CAAK;AAAA,EACnD;AACA,SAAOG;AACT;ACZA,SAASI,GAAcC,GAAW;AAChC,SAAO,SAASC,GAAQP,GAAUQ,GAAU;AAM1C,aALIN,IAAQ,IACRO,IAAW,OAAOF,CAAM,GACxBG,IAAQF,EAASD,CAAM,GACvBJ,IAASO,EAAM,QAEZP,OAAU;AACf,UAAIQ,IAAMD,EAA2B,EAAER,CAAK;AAC5C,UAAIF,EAASS,EAASE,CAAG,GAAGA,GAAKF,CAAQ,MAAM;AAC7C;AAAA,IAEJ;AACA,WAAOF;AAAA,EACT;AACF;ACTA,IAAIK,KAAUP,GAAa;ACF3B,SAASQ,GAAWN,GAAQP,GAAU;AACpC,SAAOO,KAAUK,GAAQL,GAAQP,GAAUc,EAAI;AACjD;ACHA,SAASC,GAAeC,GAAUV,GAAW;AAC3C,SAAO,SAASW,GAAYjB,GAAU;AACpC,QAAIiB,KAAc;AAChB,aAAOA;AAET,QAAI,CAACC,GAAYD,CAAU;AACzB,aAAOD,EAASC,GAAYjB,CAAQ;AAMtC,aAJIG,IAASc,EAAW,QACpBf,IAA6B,IAC7BO,IAAW,OAAOQ,CAAU,GAEF,EAAEf,IAAQC,KAClCH,EAASS,EAASP,CAAK,GAAGA,GAAOO,CAAQ,MAAM;AAAnD;AAIF,WAAOQ;AAAA,EACT;AACF;AClBA,IAAIE,KAAWJ,GAAeF,EAAU;ACExC,SAASO,GAAeH,GAAYlB,GAAQC,GAAUC,GAAa;AACjE,SAAAkB,GAASF,GAAY,SAASb,GAAOO,GAAKM,GAAY;AACpD,IAAAlB,EAAOE,GAAaG,GAAOJ,EAASI,CAAK,GAAGa,CAAU;AAAA,EACxD,CAAC,GACMhB;AACT;ACLA,SAASoB,GAAiBtB,GAAQuB,GAAa;AAC7C,SAAO,SAASL,GAAYjB,GAAU;AACpC,QAAIuB,IAAOC,GAAQP,CAAU,IAAIpB,KAAkBuB,IAC/CnB,IAAcqB,IAAcA,EAAW,IAAK,CAAA;AAEhD,WAAOC,EAAKN,GAAYlB,GAAQ0B,GAAazB,CAAW,GAAGC,CAAW;AAAA,EACxE;AACF;ACJA,SAASyB,GAAQnB,GAAQoB,GAAMvB,GAAOwB,GAAY;AAChD,MAAI,CAACC,GAAStB,CAAM;AAClB,WAAOA;AAET,EAAAoB,IAAOG,GAASH,GAAMpB,CAAM;AAO5B,WALIL,IAAQ,IACRC,IAASwB,EAAK,QACdI,IAAY5B,IAAS,GACrB6B,IAASzB,GAENyB,KAAU,QAAQ,EAAE9B,IAAQC,KAAQ;AACzC,QAAIQ,IAAMsB,GAAMN,EAAKzB,CAAK,CAAC,GACvBgC,IAAW9B;AAEf,QAAIO,MAAQ,eAAeA,MAAQ,iBAAiBA,MAAQ;AAC1D,aAAOJ;AAGT,QAAIL,KAAS6B,GAAW;AACtB,UAAII,IAAWH,EAAOrB,CAAG;AACzB,MAAAuB,IAA4D,QACxDA,MAAa,WACfA,IAAWL,GAASM,CAAQ,IACxBA,IACCC,GAAQT,EAAKzB,IAAQ,CAAC,CAAC,IAAI,CAAA,IAAK;IAEzC;AACA,IAAAmC,GAAYL,GAAQrB,GAAKuB,CAAQ,GACjCF,IAASA,EAAOrB,CAAG;AAAA,EACrB;AACA,SAAOJ;AACT;ACnCA,SAAS+B,GAAW/B,GAAQgC,GAAOC,GAAW;AAK5C,WAJItC,IAAQ,IACRC,IAASoC,EAAM,QACfE,IAAS,CAAA,GAEN,EAAEvC,IAAQC,KAAQ;AACvB,QAAIwB,IAAOY,EAAMrC,CAAK,GAClBE,IAAQsC,GAAQnC,GAAQoB,CAAI;AAEhC,IAAIa,EAAUpC,GAAOuB,CAAI,KACvBD,GAAQe,GAAQX,GAASH,GAAMpB,CAAM,GAAGH,CAAK;AAAA,EAEjD;AACA,SAAOqC;AACT;ACWA,IAAIE,KAAYtB,GAAiB,SAASoB,GAAQrC,GAAOO,GAAK;AAC5D,EAAA8B,EAAO9B,IAAM,IAAI,CAAC,EAAE,KAAKP,CAAK;AAChC,GAAG,WAAW;AAAE,SAAO,CAAC,CAAA,GAAI,CAAA,CAAE;AAAG,CAAC;AC5BlC,SAASwC,GAASrC,GAAQgC,GAAO;AAC/B,SAAOD,GAAW/B,GAAQgC,GAAO,SAASnC,GAAOuB,GAAM;AACrD,WAAOkB,GAAMtC,GAAQoB,CAAI;AAAA,EAC3B,CAAC;AACH;ACIA,IAAImB,KAAOC,GAAS,SAASxC,GAAQgC,GAAO;AAC1C,SAAOhC,KAAU,OAAO,CAAA,IAAKqC,GAASrC,GAAQgC,CAAK;AACrD,CAAC;ACtBD,MAAMS,KAAS,MAAM;AACrBA,GAAO,iBAAiB;AACxBA,GAAO,cAAc;ACFrB,MAAMC,KAAW,MAAM;AACvBA,GAAS,mBAAmB;AAC5BA,GAAS,cAAc;ACSvB,SAASC,GAA+BC,GAAO;AAC7C,MAAIC,GAAIC;AACR,WAASD,IAAKD,KAAU,OAA2B,SAASA,EAAM,UAAU,QAAQC,MAAO,SAAS,SAASA,EAAG,qBAAqBC,IAAKF,KAAU,OAA2B,SAASA,EAAM,UAAU,QAAQE,MAAO,SAAS,SAASA,EAAG;AAC9O;AACO,MAAMC,KAAoB,MAAMC,EAASA,EAAS,CAAA,GAAIC,GAAKC,MAAe,CAAC,WAAW,QAAQ,mBAAmB,cAAc,CAAC,CAAC,GAAG;AAAA,EACzI,YAAY;AAAA,EACZ,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA;AAAA,EAEE,0BAA0B;AAAA,IACxB,MAAM,CAAC,QAAQ,OAAO;AAAA,IACtB,SAAS;AAAA,EACb;AAAA,EACE,WAAW;AAAA,EACX,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA;AAAA,EAEE,cAAc;AAAA,IACZ,MAAM,CAAC,SAAS,QAAQ;AAAA,IACxB,SAAS;AAAA,EACb;AAAA,EACE,0BAA0B;AAAA,IACxB,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,QAAQ;AACV,CAAC,GAGKC,KAAeC,EAAgB;AAAA,EACnC,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOL,GAAiB;AAAA;AAAA,EAExB,OAAO;AAAA,EACP,MAAM5C,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,IACN,IAAQH;AACJ,IAAAI,GAAQ,EAAE,gBAAgBH,IAAQ,gBAAgB,sEAAsE,GACxHG,GAAQ,EAAE,aAAaH,IAAQ,gBAAgB,mEAAmE,GAClHG,GAAQ,CAACtD,EAAM,mBAAmB,gBAAgB,yEAAyE;AAC3H,UAAMuD,IAAYC,GAAG,GACfC,IAAkB,MAAM;AAC5B,UAAIf;AACJ,YAAMgB,IAAWC,IAAiBjB,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC;AAEzG,aADgBO,EAAS,SAASA,EAAS,CAAC,IAAI;AAAA,IAElD;AASA,IAAAL,EAAO;AAAA,MACL,OATY,MAAM;AAClB,YAAIX;AACJ,SAACA,IAAKa,EAAU,WAAW,QAAQb,MAAO,UAAkBA,EAAG,MAAK;AAAA,MACtE;AAAA,MAOE,MANW,MAAM;AACjB,YAAIA;AACJ,SAACA,IAAKa,EAAU,WAAW,QAAQb,MAAO,UAAkBA,EAAG,KAAI;AAAA,MACrE;AAAA,IAIJ,CAAK;AACD,UAAM;AAAA,MACJ,WAAAkB;AAAA,IACN,IAAQC,GAAgB,UAAU7D,CAAK;AACnC,WAAO,MAAM;AACX,UAAI0C,GAAIC,GAAImB;AACZ,YAAM;AAAA,QACJ,MAAAC;AAAA,QACA,YAAAC;AAAA,QACA,iBAAAC,KAAmBvB,IAAKS,EAAM,qBAAqB,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK;AAAA,MACzG,IAAUnD;AACJ,UAAIkE;AACJ,YAAM;AAAA,QACJ,OAAOC;AAAA,MACf,IAAUf,GACEgB,IAAM;AAAA,QACV,CAACD,CAAS,GAAG,CAAC,CAACA;AAAA,QACf,CAAC,GAAGP,EAAU,KAAK,KAAK,GAAGG,MAAS;AAAA,QACpC,CAAC,GAAGH,EAAU,KAAK,KAAK,GAAGG,MAAS;AAAA,QACpC,CAAC,GAAGH,EAAU,KAAK,cAAc,GAAG;AAAA,QACpC,CAAC,GAAGA,EAAU,KAAK,gBAAgB,GAAG;AAAA,MAC9C;AACM,UAAI5D,EAAM,YAAY,QAAW;AAC/B,cAAMqE,MAAe1B,IAAKQ,EAAM,gBAAgB,QAAQR,MAAO,SAAS,SAASA,EAAG,KAAKQ,CAAK,QAAQW,IAAKX,EAAM,aAAa,QAAQW,MAAO,SAAS,SAASA,EAAG,KAAKX,CAAK,MAAM,CAAA;AAClL,QAAIkB,EAAW,UAAU7B,GAA+B6B,EAAW,CAAC,CAAC,IACnEH,IAAiBG,IAEjBH,IAAiBF,IAAaA,EAAW,IAAI,CAAAM,MAAQ;AACnD,cAAIC,GAAeD,CAAI;AACrB,mBAAOA;AAET,kBAAQ,OAAOA,GAAI;AAAA,YACjB,KAAK;AACH,qBAAOE,EAAalC,IAAQ;AAAA,gBAC1B,KAAOgC;AAAA,gBACP,OAASA;AAAA,cAC3B,GAAmB;AAAA,gBACD,SAAS,MAAM,CAACA,CAAI;AAAA,cACtC,CAAiB;AAAA,YACH,KAAK;AACH,qBAAOE,EAAalC,IAAQ;AAAA,gBAC1B,KAAOgC,EAAK;AAAA,gBACZ,OAASA,EAAK;AAAA,cAChC,GAAmB;AAAA,gBACD,SAAS,MAAM,CAACA,EAAK,IAAI;AAAA,cAC3C,CAAiB;AAAA,YACH;AACE,oBAAM,IAAI,MAAM,oEAAoE;AAAA,UACpG;AAAA,QACU,CAAC,IAAI,CAAA;AAAA,MAET;AACA,YAAMvB,IAAcD,GAAKD,EAASA,EAASA,EAAS,IAAI7C,CAAK,GAAGoD,CAAK,GAAG;AAAA,QACtE,MAAMqB,GAAO;AAAA;AAAA,QAEb,iBAAAhB;AAAA,QACA,iBAAAQ;AAAA;AAAA,QAEA,OAAOG;AAAA,QACP,gBAAgBpE,EAAM,kBAAkBA,EAAM;AAAA,QAC9C,KAAKuD;AAAA,MACb,CAAO,GAAG,CAAC,cAAc,SAAS,CAAC;AAC7B,aAAOiB,EAAaC,IAAQ1B,GAAa2B,EAAc;AAAA,QACrD,SAAS,MAAM,CAACR,CAAc;AAAA,MACtC,GAASpB,GAAKK,GAAO,CAAC,WAAW,cAAc,SAAS,CAAC,CAAC,CAAC;AAAA,IACvD;AAAA,EACF;AACF,CAAC,GAEDwB,KAAe9B,EAASG,IAAc;AAAA,EACpC,QAAAV;AAAA,EACA,UAAAC;AAAA,EACA,QAAQqC,GAAK;AACX,WAAAA,EAAI,UAAU5B,GAAa,MAAMA,EAAY,GAC7C4B,EAAI,UAAUtC,GAAO,aAAaA,EAAM,GACxCsC,EAAI,UAAUrC,GAAS,aAAaA,EAAQ,GACrCqC;AAAA,EACT;AACF,CAAC;ACzKc,SAASC,GAAOC,GAAU;AACvC,QAAMC,IAASC,GAAU,GACnBC,IAAaD,GAAW,EAAK;AACnC,WAASE,IAAU;AACjB,aAASC,IAAO,UAAU,QAAQC,IAAO,IAAI,MAAMD,CAAI,GAAGE,IAAO,GAAGA,IAAOF,GAAME;AAC/E,MAAAD,EAAKC,CAAI,IAAI,UAAUA,CAAI;AAE7B,IAAKJ,EAAW,UACdK,GAAI,OAAOP,EAAO,KAAK,GACvBA,EAAO,QAAQO,GAAI,MAAM;AACvB,MAAAR,EAAS,GAAGM,CAAI;AAAA,IAClB,CAAC;AAAA,EAEL;AACA,SAAAG,GAAgB,MAAM;AACpB,IAAAN,EAAW,QAAQ,IACnBK,GAAI,OAAOP,EAAO,KAAK;AAAA,EACzB,CAAC,GACMG;AACT;AACO,SAASM,GAAYC,GAAc;AACxC,QAAMC,IAAWV,GAAW,EAAE,GACxBW,IAAQX,GAAW,OAAOS,KAAiB,aAAaA,EAAY,IAAKA,CAAY,GACrFG,IAAcf,GAAO,MAAM;AAC/B,QAAInF,IAAQiG,EAAM;AAClB,IAAAD,EAAS,MAAM,QAAQ,CAAAZ,MAAY;AACjC,MAAApF,IAAQoF,EAASpF,CAAK;AAAA,IACxB,CAAC,GACDgG,EAAS,QAAQ,CAAA,GACjBC,EAAM,QAAQjG;AAAA,EAChB,CAAC;AACD,WAASmG,EAAQf,GAAU;AACzB,IAAAY,EAAS,MAAM,KAAKZ,CAAQ,GAC5Bc,EAAW;AAAA,EACb;AACA,SAAO,CAACD,GAAOE,CAAO;AACxB;AClCA,MAAAC,KAAe7C,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,OAAO;AAAA,IACL,IAAI;AAAA,MACF,MAAM;AAAA,IACZ;AAAA,IACI,WAAW;AAAA,MACT,MAAM;AAAA,IACZ;AAAA,IACI,KAAK;AAAA,MACH,MAAM;AAAA,IACZ;AAAA,IACI,QAAQ;AAAA,MACN,MAAM;AAAA,IACZ;AAAA,IACI,UAAU;AAAA,MACR,MAAM;AAAA,IACZ;AAAA,IACI,UAAU;AAAA,MACR,MAAM;AAAA,IACZ;AAAA,IACI,SAAS;AAAA,MACP,MAAM;AAAA,IACZ;AAAA,IACI,UAAU;AAAA,MACR,MAAM;AAAA,IACZ;AAAA,IACI,eAAe;AAAA,MACb,MAAM;AAAA,IACZ;AAAA,IACI,iBAAiB;AAAA,MACf,MAAM;AAAA,IACZ;AAAA;AAAA,IAEI,SAAS;AAAA,MACP,MAAM;AAAA,IACZ;AAAA,EACA;AAAA,EACE,OAAO,CAAC,SAAS,UAAU,UAAU,OAAO;AAAA,EAC5C,MAAMjD,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,QAAAG;AAAA,MACA,OAAAD;AAAA,IACN,IAAQF;AACJ,UAAM6C,IAASvC,GAAG;AAClB,aAASwC,EAAgBC,GAAG;AAC1B,UAAIvD;AACJ,MAAK,GAAAA,IAAK1C,EAAM,SAAS,QAAQ0C,MAAO,WAAkBA,EAAG,YAG7D1C,EAAM,QAAQiG,CAAC;AAAA,IACjB;AACA,IAAA5C,EAAO;AAAA,MACL,QAAA0C;AAAA,IACN,CAAK;AAID,aAASG,EAAYC,GAAO;AAC1B,UAAIzD;AACJ,MAAAyD,EAAM,eAAc,GACpBA,EAAM,gBAAe,GACrBnG,EAAM,SAAS,OAAO,UAAU;AAAA,QAC9B,MAAM0C,IAAK1C,EAAM,SAAS,QAAQ0C,MAAO,SAAS,SAASA,EAAG;AAAA,QAC9D,OAAAyD;AAAA,MACR,CAAO;AAAA,IACH;AACA,UAAMC,IAAYC,EAAS,MAAM;AAC/B,UAAI3D;AACJ,aAAO1C,EAAM,YAAYA,EAAM,aAAa,MAAS,EAAG,GAAA0C,IAAK1C,EAAM,SAAS,QAAQ0C,MAAO,WAAkBA,EAAG;AAAA,IAClH,CAAC;AACD,WAAO,MAAM;AACX,UAAIA;AACJ,YAAM;AAAA,QACJ,WAAAkB;AAAA,QACA,IAAA0C;AAAA,QACA,QAAAC;AAAA,QACA,KAAK;AAAA,UACH,KAAAtG;AAAA,UACA,KAAAuG;AAAA,UACA,UAAAC;AAAA,UACA,WAAAC;AAAA,QACV;AAAA,QACQ,eAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,UAAAC;AAAA,QACA,SAAAC;AAAA,MACR,IAAU9G,GACE+G,IAAY,GAAGnD,CAAS,QACxBoD,IAAOxC,EAAa,OAAO;AAAA,QAC/B,KAAOvE;AAAA,QACP,KAAO8F;AAAA,QACP,OAASkB,GAAWF,GAAW;AAAA,UAC7B,CAAC,GAAGA,CAAS,cAAc,GAAGX,EAAU;AAAA,UACxC,CAAC,GAAGW,CAAS,SAAS,GAAGR;AAAA,UACzB,CAAC,GAAGQ,CAAS,WAAW,GAAGN;AAAA,QACrC,CAAS;AAAA,QACD,OAASrD,EAAM;AAAA,QACf,SAAW4C;AAAA,MACnB,GAAS,CAACxB,EAAa,OAAO;AAAA,QACtB,MAAQ;AAAA,QACR,iBAAiB+B;AAAA,QACjB,IAAMD,KAAM,GAAGA,CAAE,QAAQrG,CAAG;AAAA,QAC5B,OAAS,GAAG8G,CAAS;AAAA,QACrB,iBAAiBT,KAAM,GAAGA,CAAE,UAAUrG,CAAG;AAAA,QACzC,iBAAiBwG;AAAA,QACjB,UAAYA,IAAW,OAAO;AAAA,QAC9B,SAAW,CAAAR,MAAK;AACd,UAAAA,EAAE,gBAAe,GACjBD,EAAgBC,CAAC;AAAA,QACnB;AAAA,QACA,WAAa,CAAAA,MAAK;AAChB,UAAI,CAACiB,GAAQ,OAAOA,GAAQ,KAAK,EAAE,SAASjB,EAAE,KAAK,MACjDA,EAAE,eAAc,GAChBD,EAAgBC,CAAC;AAAA,QAErB;AAAA,QACA,SAAWa;AAAA,MACnB,GAAS,CAAC,OAAON,KAAQ,aAAaA,EAAG,IAAKA,CAAG,CAAC,GAAGJ,EAAU,SAAS5B,EAAa,UAAU;AAAA,QACvF,MAAQ;AAAA,QACR,cAAcoC,KAAmB;AAAA,QACjC,UAAY;AAAA,QACZ,OAAS,GAAGG,CAAS;AAAA,QACrB,SAAW,CAAAd,MAAK;AACd,UAAAA,EAAE,gBAAe,GACjBC,EAAYD,CAAC;AAAA,QACf;AAAA,MACR,GAAS,EAAES,KAAc,OAA+B,SAASA,EAAS,QAAShE,IAAKmE,EAAS,gBAAgB,QAAQnE,MAAO,SAAS,SAASA,EAAG,KAAKmE,CAAQ,MAAM,GAAG,CAAC,CAAC,CAAC;AACxK,aAAOF,IAAgBA,EAAcK,CAAI,IAAIA;AAAA,IAC/C;AAAA,EACF;AACF,CAAC,GCxIKG,KAAe;AAAA,EACnB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AACP;AACe,SAASC,GAAWC,GAAMC,GAAU;AACjD,QAAMC,IAAY/D,GAAI,oBAAI,KAAK;AAC/B,SAAAgE,GAAY,MAAM;AAChB,QAAI9E,GAAIC;AACR,UAAM8E,IAAM,oBAAI,IAAG,GACbC,IAAYL,EAAK,OACjBM,IAAaL,EAAS,MAAM,KAAK5E,IAAKgF,EAAU,CAAC,OAAO,QAAQhF,MAAO,SAAS,SAASA,EAAG,GAAG,KAAKyE,IACpGS,IAAcD,EAAW,OAAOA,EAAW;AACjD,aAASE,IAAI,GAAGA,IAAIH,EAAU,QAAQG,KAAK,GAAG;AAC5C,YAAM;AAAA,QACJ,KAAA5H;AAAA,MACR,IAAUyH,EAAUG,CAAC;AACf,UAAIC,IAAOR,EAAS,MAAM,IAAIrH,CAAG;AAEjC,MAAK6H,MACHA,IAAOR,EAAS,MAAM,KAAK3E,IAAK+E,EAAUG,IAAI,CAAC,OAAO,QAAQlF,MAAO,SAAS,SAASA,EAAG,GAAG,KAAKwE;AAEpG,YAAMY,IAASN,EAAI,IAAIxH,CAAG,KAAK4C,EAAS,CAAA,GAAIiF,CAAI;AAEhD,MAAAC,EAAO,QAAQH,IAAcG,EAAO,OAAOA,EAAO,OAElDN,EAAI,IAAIxH,GAAK8H,CAAM;AAAA,IACrB;AACA,IAAAR,EAAU,QAAQ,IAAI,IAAIE,CAAG;AAAA,EAC/B,CAAC,GACMF;AACT;AChCA,MAAAS,KAAe/E,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,WAAW;AAAA,IACX,UAAU;AAAA,MACR,MAAM;AAAA,IACZ;AAAA,IACI,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,EACA;AAAA,EACE,MAAMjD,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,QAAAG;AAAA,MACA,OAAAD;AAAA,IACN,IAAQF;AACJ,UAAM6C,IAASvC,GAAG;AAClB,WAAAH,EAAO;AAAA,MACL,QAAA0C;AAAA,IACN,CAAK,GACM,MAAM;AACX,YAAM;AAAA,QACJ,WAAAnC;AAAA,QACA,UAAAiD;AAAA,QACA,QAAAoB;AAAA,MACR,IAAUjI;AACJ,aAAI,CAAC6G,KAAYA,EAAS,YAAY,KAC7B,OAEFrC,EAAa,UAAU;AAAA,QAC5B,KAAOuB;AAAA,QACP,MAAQ;AAAA,QACR,OAAS,GAAGnC,CAAS;AAAA,QACrB,OAASR,EAAM;AAAA,QACf,eAAe6E,KAAW,OAA4B,SAASA,EAAO,iBAAiB;AAAA,QACvF,SAAW,CAAA9B,MAAS;AAClB,UAAAU,EAAS,OAAO,OAAO;AAAA,YACrB,OAAAV;AAAA,UACZ,CAAW;AAAA,QACH;AAAA,MACR,GAAS,CAACU,EAAS,UAAUA,EAAS,QAAO,IAAK,GAAG,CAAC;AAAA,IAClD;AAAA,EACF;AACF,CAAC,GCtCYqB,KAAqB;AAAA,EAChC,WAAW;AAAA,IACT,MAAM;AAAA,EACV;AAAA,EACE,IAAI;AAAA,IACF,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,IACJ,MAAM;AAAA,EACV;AAAA,EACE,KAAK;AAAA,IACH,MAAM;AAAA,EACV;AAAA,EACE,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,MAAM;AAAA,EACzB;AAAA,EACE,QAAQ;AAAA,IACN,MAAM;AAAA,EACV;AAAA,EACE,UAAUC,GAAU;AAAA,EACpB,oBAAoB;AAAA,IAClB,MAAM;AAAA,EACV;AAAA,EACE,UAAU;AAAA,IACR,MAAM;AAAA,EACV;AAAA,EACE,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,iBAAiB;AAAA,EACjB,YAAY;AAAA,IACV,MAAM;AAAA,EACV;AAAA,EACE,gBAAgB;AAAA,EAChB,mBAAmBC,EAAY;AACjC,GACAC,KAAepF,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOiF;AAAA,EACP,OAAO,CAAC,UAAU;AAAA,EAClB,OAAO;AAAA,EACP,MAAMlI,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,IACN,IAAQD;AAEJ,UAAM,CAACoF,GAAMC,CAAO,IAAIC,GAAS,EAAK,GAChC,CAACC,GAAaC,CAAc,IAAIF,GAAS,IAAI,GAC7CG,IAAe,CAAAC,MAAU;AAC7B,YAAMC,IAAc7I,EAAM,KAAK,OAAO,CAAAwG,MAAO,CAACA,EAAI,QAAQ;AAC1D,UAAIsC,IAAgBD,EAAY,UAAU,CAAArC,MAAOA,EAAI,QAAQiC,EAAY,KAAK,KAAK;AACnF,YAAMM,IAAMF,EAAY;AACxB,eAAShB,IAAI,GAAGA,IAAIkB,GAAKlB,KAAK,GAAG;AAC/B,QAAAiB,KAAiBA,IAAgBF,IAASG,KAAOA;AACjD,cAAMvC,IAAMqC,EAAYC,CAAa;AACrC,YAAI,CAACtC,EAAI,UAAU;AACjB,UAAAkC,EAAelC,EAAI,GAAG;AACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF,GACMwC,IAAY,CAAA/C,MAAK;AACrB,YAAM;AAAA,QACJ,OAAAgD;AAAA,MACR,IAAUhD;AACJ,UAAI,CAACqC,EAAK,OAAO;AACf,QAAI,CAACpB,GAAQ,MAAMA,GAAQ,OAAOA,GAAQ,KAAK,EAAE,SAAS+B,CAAK,MAC7DV,EAAQ,EAAI,GACZtC,EAAE,eAAc;AAElB;AAAA,MACF;AACA,cAAQgD,GAAK;AAAA,QACX,KAAK/B,GAAQ;AACX,UAAAyB,EAAa,EAAE,GACf1C,EAAE,eAAc;AAChB;AAAA,QACF,KAAKiB,GAAQ;AACX,UAAAyB,EAAa,CAAC,GACd1C,EAAE,eAAc;AAChB;AAAA,QACF,KAAKiB,GAAQ;AACX,UAAAqB,EAAQ,EAAK;AACb;AAAA,QACF,KAAKrB,GAAQ;AAAA,QACb,KAAKA,GAAQ;AACX,UAAIuB,EAAY,UAAU,QAAMzI,EAAM,WAAWyI,EAAY,OAAOxC,CAAC;AACrE;AAAA,MACV;AAAA,IACI,GACMiD,IAAU7C,EAAS,MAAM,GAAGrG,EAAM,EAAE,aAAa,GACjDmJ,IAAiB9C,EAAS,MAAMoC,EAAY,UAAU,OAAO,GAAGS,EAAQ,KAAK,IAAIT,EAAY,KAAK,KAAK,IAAI,GAC3GvC,IAAc,CAACC,GAAOlG,MAAQ;AAClC,MAAAkG,EAAM,eAAc,GACpBA,EAAM,gBAAe,GACrBnG,EAAM,SAAS,OAAO,UAAU;AAAA,QAC9B,KAAAC;AAAA,QACA,OAAAkG;AAAA,MACR,CAAO;AAAA,IACH;AACA,WAAAiD,GAAU,MAAM;AACd,MAAAC,GAAMZ,GAAa,MAAM;AACvB,cAAMa,IAAM,SAAS,eAAeH,EAAe,KAAK;AACxD,QAAIG,KAAOA,EAAI,kBACbA,EAAI,eAAe,EAAK;AAAA,MAE5B,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,MACnB,CAAO;AAAA,IACH,CAAC,GACDD,GAAMf,GAAM,MAAM;AAChB,MAAKA,EAAK,SACRI,EAAe,IAAI;AAAA,IAEvB,CAAC,GACDa,GAAmB,CAAA,CAAE,GACd,MAAM;AACX,UAAI7G;AACJ,YAAM;AAAA,QACJ,WAAAkB;AAAA,QACA,IAAA0C;AAAA,QACA,MAAAe;AAAA,QACA,QAAAY;AAAA,QACA,QAAAuB;AAAA,QACA,UAAAC,MAAa/G,IAAKS,EAAM,cAAc,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,MAAMqB,EAAakF,IAAkB,MAAM,IAAI;AAAA,QACnI,oBAAAC;AAAA,QACA,UAAA9C;AAAA,QACA,cAAA+C;AAAA,QACA,KAAAC;AAAA,QACA,YAAAC;AAAA,QACA,gBAAAC;AAAA,MACR,IAAU/J;AACJ,UAAI,CAACqH,EAAK,OAAQ,QAAO;AACzB,YAAM2C,IAAiB,GAAGpG,CAAS,aAC7BqG,IAAoBhC,KAAW,OAA4B,SAASA,EAAO,mBAE3EiC,IAAY;AAAA,QAChB,CAACL,IAAM,gBAAgB,YAAY,GAAGD;AAAA,MAC9C;AACM,MAAKvC,EAAK,WACR6C,EAAU,aAAa,UACvBA,EAAU,QAAQ;AAEpB,YAAMC,IAAmBlD,GAAW;AAAA,QAClC,CAAC,GAAG+C,CAAc,MAAM,GAAGH;AAAA,QAC3B,CAAC,GAAGE,CAAc,EAAE,GAAG;AAAA,MAC/B,CAAO,GACKK,IAAWZ,IAAS,OAAOhF,EAAa6F,IAAU;AAAA,QACtD,WAAaL;AAAA,QACb,SAAW,CAAC,OAAO;AAAA,QACnB,SAAW1B,EAAK;AAAA,QAChB,gBAAkBqB;AAAA,QAClB,iBAAmBpB;AAAA,QACnB,kBAAoB4B;AAAA,QACpB,iBAAmB;AAAA,QACnB,iBAAmB;AAAA,QACnB,mBAAqBnK,EAAM;AAAA,MACnC,GAAS;AAAA,QACD,SAAS,MAAMwE,EAAa8F,IAAM;AAAA,UAChC,SAAW,CAAAC,MAAS;AAClB,gBAAI;AAAA,cACF,KAAAtK;AAAA,cACA,UAAAuK;AAAA,YACd,IAAgBD;AACJ,YAAAT,EAAW7J,GAAKuK,CAAQ,GACxBjC,EAAQ,EAAK;AAAA,UACf;AAAA,UACA,IAAMW,EAAQ;AAAA,UACd,UAAY;AAAA,UACZ,MAAQ;AAAA,UACR,yBAAyBC,EAAe;AAAA,UACxC,cAAgB,CAACV,EAAY,KAAK;AAAA,UAClC,cAAcwB,MAAsB,SAAYA,IAAoB;AAAA,QAC9E,GAAW;AAAA,UACD,SAAS,MAAM,CAAC5C,EAAK,IAAI,CAAAb,MAAO;AAC9B,gBAAI9D,GAAIC;AACR,kBAAMyD,IAAYS,KAAYL,EAAI,aAAa,MAAS,CAACA,EAAI;AAC7D,mBAAOhC,EAAaiG,IAAU;AAAA,cAC5B,KAAOjE,EAAI;AAAA,cACX,IAAM,GAAG0C,EAAQ,KAAK,IAAI1C,EAAI,GAAG;AAAA,cACjC,MAAQ;AAAA,cACR,iBAAiBF,KAAM,GAAGA,CAAE,UAAUE,EAAI,GAAG;AAAA,cAC7C,UAAYA,EAAI;AAAA,YAC9B,GAAe;AAAA,cACD,SAAS,MAAM,CAAChC,EAAa,QAAQ,MAAM,CAAC,OAAOgC,EAAI,OAAQ,aAAaA,EAAI,IAAG,IAAKA,EAAI,GAAG,CAAC,GAAGJ,KAAa5B,EAAa,UAAU;AAAA,gBACrI,MAAQ;AAAA,gBACR,cAAcxE,EAAM,mBAAmB;AAAA,gBACvC,UAAY;AAAA,gBACZ,OAAS,GAAGgK,CAAc;AAAA,gBAC1B,SAAW,CAAA/D,MAAK;AACd,kBAAAA,EAAE,gBAAe,GACjBC,EAAYD,GAAGO,EAAI,GAAG;AAAA,gBACxB;AAAA,cAChB,GAAiB,GAAG9D,IAAK8D,EAAI,eAAe,QAAQ9D,MAAO,SAAS,SAASA,EAAG,KAAK8D,CAAG,QAAQ7D,IAAKkE,EAAS,gBAAgB,QAAQlE,MAAO,SAAS,SAASA,EAAG,KAAKkE,CAAQ,MAAM,GAAG,CAAC,CAAC;AAAA,YAC1L,CAAa;AAAA,UACH,CAAC,CAAC;AAAA,QACZ,CAAS;AAAA,QACD,SAAS,MAAMrC,EAAa,UAAU;AAAA,UACpC,MAAQ;AAAA,UACR,OAAS,GAAGZ,CAAS;AAAA,UACrB,OAASsG;AAAA,UACT,UAAY;AAAA,UACZ,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,iBAAiBhB,EAAQ;AAAA,UACzB,IAAM,GAAG5C,CAAE;AAAA,UACX,iBAAiBgC,EAAK;AAAA,UACtB,WAAaU;AAAA,QACvB,GAAW,CAACS,CAAQ,CAAC;AAAA,MACrB,CAAO;AACD,aAAOjF,EAAa,OAAO;AAAA,QACzB,OAASyC,GAAW,GAAGrD,CAAS,mBAAmBR,EAAM,KAAK;AAAA,QAC9D,OAASA,EAAM;AAAA,MACvB,GAAS,CAACgH,GAAU5F,EAAawD,IAAW;AAAA,QACpC,WAAapE;AAAA,QACb,QAAUqE;AAAA,QACV,UAAYpB;AAAA,MACpB,GAAS,IAAI,CAAC,CAAC;AAAA,IACX;AAAA,EACF;AACF,CAAC,GCjPK6D,KAAiB,OAAO,gBAAgB,GACjCC,KAAiB,CAAA3K,MAAS;AACrC,EAAA4K,GAAQF,IAAgB1K,CAAK;AAC/B,GACa6K,KAAgB,MACpBC,GAAOJ,IAAgB;AAAA,EAC5B,MAAMlH,GAAI,EAAE;AAAA,EACZ,WAAWA,GAAG;AAClB,CAAG;AAEyBP,EAAgB;AAAA,EAC1C,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,EACA;AAAA,EACE,MAAMjD,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,IACN,IAAQD;AACJ,WAAAyH,GAAeI,GAAO/K,CAAK,CAAC,GACrB,MAAM;AACX,UAAI0C;AACJ,cAAQA,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK;AAAA,IAChF;AAAA,EACF;AACF,CAAC;ACnCD,MAAM6H,KAAqB,KACrBC,KAAsB,MACtBC,KAAmB,IACnBC,KAAqB,KAAK,IAAI,OAAOD,EAAgB;AAE5C,SAASE,GAAarF,GAAQsF,GAAU;AACrD,QAAM,CAACC,GAAeC,CAAgB,IAAI/C,GAAQ,GAC5C,CAACgD,GAAeC,CAAgB,IAAIjD,GAAS,CAAC,GAC9C,CAACkD,GAAcC,CAAe,IAAInD,GAAS,CAAC,GAC5C,CAACb,GAAYiE,CAAa,IAAIpD,GAAQ,GACtCqD,IAAiBrI,GAAG;AAG1B,WAASsI,EAAa7F,GAAG;AACvB,UAAM;AAAA,MACJ,SAAA8F;AAAA,MACA,SAAAC;AAAA,IACN,IAAQ/F,EAAE,QAAQ,CAAC;AACf,IAAAsF,EAAiB;AAAA,MACf,GAAGQ;AAAA,MACH,GAAGC;AAAA,IACT,CAAK,GACD,cAAcH,EAAe,KAAK;AAAA,EACpC;AACA,WAASI,EAAYhG,GAAG;AACtB,QAAI,CAACqF,EAAc,MAAO;AAC1B,IAAArF,EAAE,eAAc;AAChB,UAAM;AAAA,MACJ,SAAA8F;AAAA,MACA,SAAAC;AAAA,IACN,IAAQ/F,EAAE,QAAQ,CAAC,GACTiG,IAAUH,IAAUT,EAAc,MAAM,GACxCa,IAAUH,IAAUV,EAAc,MAAM;AAC9C,IAAAD,EAASa,GAASC,CAAO,GACzBZ,EAAiB;AAAA,MACf,GAAGQ;AAAA,MACH,GAAGC;AAAA,IACT,CAAK;AACD,UAAMI,IAAM,KAAK,IAAG;AACpB,IAAAT,EAAgBS,IAAMZ,EAAc,KAAK,GACzCC,EAAiBW,CAAG,GACpBR,EAAc;AAAA,MACZ,GAAGM;AAAA,MACH,GAAGC;AAAA,IACT,CAAK;AAAA,EACH;AACA,WAASE,IAAa;AACpB,QAAI,CAACf,EAAc,MAAO;AAC1B,UAAMgB,IAAkB3E,EAAW;AAInC,QAHA4D,EAAiB,IAAI,GACrBK,EAAc,IAAI,GAEdU,GAAiB;AACnB,YAAMC,IAAYD,EAAgB,IAAIZ,EAAa,OAC7Cc,IAAYF,EAAgB,IAAIZ,EAAa,OAC7Ce,IAAO,KAAK,IAAIF,CAAS,GACzBG,IAAO,KAAK,IAAIF,CAAS;AAE/B,UAAI,KAAK,IAAIC,GAAMC,CAAI,IAAI1B,GAAoB;AAC/C,UAAI2B,IAAWJ,GACXK,IAAWJ;AACf,MAAAX,EAAe,QAAQ,YAAY,MAAM;AACvC,YAAI,KAAK,IAAIc,CAAQ,IAAI1B,MAAuB,KAAK,IAAI2B,CAAQ,IAAI3B,IAAqB;AACxF,wBAAcY,EAAe,KAAK;AAClC;AAAA,QACF;AACA,QAAAc,KAAYxB,IACZyB,KAAYzB,IACZE,EAASsB,IAAWzB,IAAkB0B,IAAW1B,EAAgB;AAAA,MACnE,GAAGA,EAAgB;AAAA,IACrB;AAAA,EACF;AAEA,QAAM2B,IAAwBrJ,GAAG;AACjC,WAASsJ,EAAQ7G,GAAG;AAClB,UAAM;AAAA,MACJ,QAAA8G;AAAA,MACA,QAAAC;AAAA,IACN,IAAQ/G;AAEJ,QAAIgH,IAAQ;AACZ,UAAMR,IAAO,KAAK,IAAIM,CAAM,GACtBL,IAAO,KAAK,IAAIM,CAAM;AAC5B,IAAIP,MAASC,IACXO,IAAQJ,EAAsB,UAAU,MAAME,IAASC,IAC9CP,IAAOC,KAChBO,IAAQF,GACRF,EAAsB,QAAQ,QAE9BI,IAAQD,GACRH,EAAsB,QAAQ,MAE5BxB,EAAS,CAAC4B,GAAO,CAACA,CAAK,KACzBhH,EAAE,eAAc;AAAA,EAEpB;AAEA,QAAMiH,IAAiB1J,GAAI;AAAA,IACzB,cAAAsI;AAAA,IACA,aAAAG;AAAA,IACA,YAAAI;AAAA,IACA,SAAAS;AAAA,EACJ,CAAG;AACD,WAASK,EAAkBlH,GAAG;AAC5B,IAAAiH,EAAe,MAAM,aAAajH,CAAC;AAAA,EACrC;AACA,WAASmH,EAAiBnH,GAAG;AAC3B,IAAAiH,EAAe,MAAM,YAAYjH,CAAC;AAAA,EACpC;AACA,WAASoH,EAAgBpH,GAAG;AAC1B,IAAAiH,EAAe,MAAM,WAAWjH,CAAC;AAAA,EACnC;AACA,WAASqH,EAAarH,GAAG;AACvB,IAAAiH,EAAe,MAAM,QAAQjH,CAAC;AAAA,EAChC;AACA,EAAAmD,GAAU,MAAM;AACd,QAAI1G,GAAIC;AACR,aAAS,iBAAiB,aAAayK,GAAkB;AAAA,MACvD,SAAS;AAAA,IACf,CAAK,GACD,SAAS,iBAAiB,YAAYC,GAAiB;AAAA,MACrD,SAAS;AAAA,IACf,CAAK,IAEA3K,IAAKqD,EAAO,WAAW,QAAQrD,MAAO,UAAkBA,EAAG,iBAAiB,cAAcyK,GAAmB;AAAA,MAC5G,SAAS;AAAA,IACf,CAAK,IACAxK,IAAKoD,EAAO,WAAW,QAAQpD,MAAO,UAAkBA,EAAG,iBAAiB,SAAS2K,GAAc;AAAA,MAClG,SAAS;AAAA,IACf,CAAK;AAAA,EACH,CAAC,GACD/H,GAAgB,MAAM;AACpB,aAAS,oBAAoB,aAAa6H,CAAgB,GAC1D,SAAS,oBAAoB,YAAYC,CAAe;AAAA,EAC1D,CAAC;AACH;ACxIe,SAASE,GAAa9H,GAAc+H,GAAU;AAC3D,QAAMC,IAAWjK,GAAIiC,CAAY;AACjC,WAASiI,EAAS7H,GAAS;AACzB,UAAMrE,IAAW,OAAOqE,KAAY,aAAaA,EAAQ4H,EAAS,KAAK,IAAI5H;AAC3E,IAAIrE,MAAaiM,EAAS,SACxBD,EAAShM,GAAUiM,EAAS,KAAK,GAEnCA,EAAS,QAAQjM;AAAA,EACnB;AACA,SAAO,CAACiM,GAAUC,CAAQ;AAC5B;ACVA,MAAMC,KAAU,MAAM;AACpB,QAAMC,IAAOpK,GAAI,oBAAI,KAAK,GACpBqK,IAAS,CAAA5N,MAAO,CAAA6N,MAAM;AAC1B,IAAAF,EAAK,MAAM,IAAI3N,GAAK6N,CAAE;AAAA,EACxB;AACA,SAAAC,GAAe,MAAM;AACnB,IAAAH,EAAK,QAAQ,oBAAI,IAAG;AAAA,EACtB,CAAC,GACM,CAACC,GAAQD,CAAI;AACtB,GCWMzG,KAAe;AAAA,EACnB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AACT,GACa6G,KAAkB,OACtB;AAAA,EACL,IAAI;AAAA,IACF,MAAM;AAAA,EACZ;AAAA,EACI,aAAa;AAAA,IACX,MAAM;AAAA,EACZ;AAAA,EACI,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,MAAM;AAAA,EAC3B;AAAA,EACI,KAAK;AAAA,IACH,MAAM;AAAA,EACZ;AAAA,EACI,UAAUC,GAAU;AAAA,EACpB,UAAUA,GAAU;AAAA,EACpB,UAAU9F,GAAU;AAAA,EACpB,oBAAoB;AAAA,IAClB,MAAM;AAAA,EACZ;AAAA,EACI,QAAQ;AAAA,IACN,MAAM;AAAA,EACZ;AAAA,EACI,cAAc;AAAA,IACZ,MAAM;AAAA,EACZ;AAAA,EACI,cAAc;AAAA,IACZ,MAAM;AAAA,EACZ;AAAA,EACI,QAAQ8F,GAAU;AAAA,EAClB,gBAAgB;AAAA,EAChB,mBAAmB7F,EAAY;AAAA,EAC/B,YAAY;AAAA,IACV,MAAM;AAAA,EACZ;AAAA,EACI,aAAa;AAAA,IACX,MAAM;AAAA,EACZ;AACA,IAEM8F,KAAa,CAAC1H,GAAK2H,MAAkB;AAEzC,QAAM;AAAA,IACJ,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,EACJ,IAAM/H,GACE;AAAA,IACJ,OAAAgI;AAAA,IACA,QAAAC;AAAA,IACA,GAAAC;AAAA,IACA,GAAAC;AAAA,EACJ,IAAMnI,EAAI,sBAAqB;AAE7B,SAAI,KAAK,IAAIgI,IAAQJ,CAAW,IAAI,IAC3B,CAACI,GAAOC,GAAQC,IAAIP,EAAc,GAAGQ,IAAIR,EAAc,CAAC,IAE1D,CAACC,GAAaC,GAAcE,GAAYD,CAAS;AAC1D,GAYAM,KAAe3L,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO+K,GAAe;AAAA,EACtB,OAAO;AAAA,EACP,OAAO,CAAC,YAAY,WAAW;AAAA,EAC/B,MAAMhO,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,IACN,IAAQD;AACJ,UAAM;AAAA,MACJ,MAAAmE;AAAA,MACA,WAAAzD;AAAA,IACN,IAAQiH,GAAa,GACXgE,IAAiB7J,GAAU,GAC3B8J,IAAa9J,GAAU,GACvB+J,IAAgB/J,GAAU,GAC1BgK,IAAoBhK,GAAU,GAC9B,CAAC6I,GAAQoB,CAAO,IAAItB,GAAO,GAC3BuB,IAAyB7I,EAAS,MAAMrG,EAAM,gBAAgB,SAASA,EAAM,gBAAgB,QAAQ,GACrG,CAACmP,GAAeC,CAAgB,IAAI7B,GAAa,GAAG,CAAC8B,IAAMC,OAAS;AACxE,MAAIJ,EAAuB,SAASlP,EAAM,eACxCA,EAAM,YAAY;AAAA,QAChB,WAAWqP,KAAOC,KAAO,SAAS;AAAA,MAC5C,CAAS;AAAA,IAEL,CAAC,GACK,CAACC,GAAcC,CAAe,IAAIjC,GAAa,GAAG,CAAC8B,IAAMC,OAAS;AACtE,MAAI,CAACJ,EAAuB,SAASlP,EAAM,eACzCA,EAAM,YAAY;AAAA,QAChB,WAAWqP,KAAOC,KAAO,QAAQ;AAAA,MAC3C,CAAS;AAAA,IAEL,CAAC,GACK,CAACG,GAAoBC,CAAqB,IAAIlH,GAAS,CAAC,GACxD,CAACmH,GAAqBC,CAAsB,IAAIpH,GAAS,CAAC,GAC1D,CAACqH,GAAcC,CAAe,IAAItH,GAAS,IAAI,GAC/C,CAACuH,GAAeC,CAAgB,IAAIxH,GAAS,IAAI,GACjD,CAACyH,GAAUC,CAAW,IAAI1H,GAAS,CAAC,GACpC,CAAC2H,GAAWC,CAAY,IAAI5H,GAAS,CAAC,GACtC,CAAClB,GAAU+I,CAAW,IAAI7K,GAAY,oBAAI,IAAG,CAAE,GAC/C8K,IAAalJ,GAAWC,GAAMC,CAAQ,GAEtCiJ,IAA4BlK,EAAS,MAAM,GAAGzC,EAAU,KAAK,wBAAwB,GACrF4M,IAAexL,GAAW,CAAC,GAC3ByL,IAAezL,GAAW,CAAC;AACjC,IAAAwC,GAAY,MAAM;AAChB,MAAK0H,EAAuB,QAGjBlP,EAAM,OACfwQ,EAAa,QAAQ,GACrBC,EAAa,QAAQ,KAAK,IAAI,GAAGhB,EAAmB,QAAQI,EAAa,KAAK,MAE9EW,EAAa,QAAQ,KAAK,IAAI,GAAGX,EAAa,QAAQJ,EAAmB,KAAK,GAC9EgB,EAAa,QAAQ,MAPrBD,EAAa,QAAQ,KAAK,IAAI,GAAGT,EAAc,QAAQJ,EAAoB,KAAK,GAChFc,EAAa,QAAQ;AAAA,IAQzB,CAAC;AACD,UAAMC,IAAe,CAAAhR,OACfA,KAAQ8Q,EAAa,QAChBA,EAAa,QAElB9Q,KAAQ+Q,EAAa,QAChBA,EAAa,QAEf/Q,IAGHiR,IAAiB3L,GAAU,GAC3B,CAAC4L,GAAeC,CAAgB,IAAIrI,GAAQ,GAC5CsI,IAAkB,MAAM;AAC5B,MAAAD,EAAiB,KAAK,KAAK;AAAA,IAC7B,GACME,IAAmB,MAAM;AAC7B,mBAAaJ,EAAe,KAAK;AAAA,IACnC,GACMK,KAAS,CAACtD,IAAU9E,OAAW;AACnC,MAAA8E,GAAS,CAAAhO,OACUgR,EAAahR,KAAQkJ,EAAM,CAE7C;AAAA,IACH;AACA,IAAAwC,GAAayD,GAAgB,CAAC3C,IAASC,OAAY;AACjD,UAAI+C,EAAuB,OAAO;AAEhC,YAAIW,EAAa,SAASJ,EAAmB;AAC3C,iBAAO;AAET,QAAAuB,GAAO5B,GAAkBlD,EAAO;AAAA,MAClC,OAAO;AACL,YAAI6D,EAAc,SAASJ,EAAoB;AAC7C,iBAAO;AAET,QAAAqB,GAAOxB,GAAiBrD,EAAO;AAAA,MACjC;AACA,aAAA4E,EAAgB,GAChBD,EAAe,GACR;AAAA,IACT,CAAC,GACDzH,GAAMuH,GAAe,MAAM;AACzB,MAAAG,EAAgB,GACZH,EAAc,UAChBD,EAAe,QAAQ,WAAW,MAAM;AACtC,QAAAE,EAAiB,CAAC;AAAA,MACpB,GAAG,GAAG;AAAA,IAEV,CAAC;AAED,UAAMI,KAAc,WAAY;AAC9B,UAAIhR,KAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAID,EAAM;AACpF,YAAMkR,KAAYZ,EAAW,MAAM,IAAIrQ,EAAG,KAAK;AAAA,QAC7C,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MACb;AACM,UAAIiP,EAAuB,OAAO;AAEhC,YAAIiC,KAAehC,EAAc;AAEjC,QAAInP,EAAM,MACJkR,GAAU,QAAQ/B,EAAc,QAClCgC,KAAeD,GAAU,QAChBA,GAAU,QAAQA,GAAU,QAAQ/B,EAAc,QAAQU,EAAa,UAChFsB,KAAeD,GAAU,QAAQA,GAAU,QAAQrB,EAAa,SAI3DqB,GAAU,OAAO,CAAC/B,EAAc,QACvCgC,KAAe,CAACD,GAAU,OACjBA,GAAU,OAAOA,GAAU,QAAQ,CAAC/B,EAAc,QAAQU,EAAa,UAChFsB,KAAe,EAAED,GAAU,OAAOA,GAAU,QAAQrB,EAAa,SAEnEL,EAAgB,CAAC,GACjBJ,EAAiBsB,EAAaS,EAAY,CAAC;AAAA,MAC7C,OAAO;AAEL,YAAIA,KAAe5B,EAAa;AAChC,QAAI2B,GAAU,MAAM,CAAC3B,EAAa,QAChC4B,KAAe,CAACD,GAAU,MACjBA,GAAU,MAAMA,GAAU,SAAS,CAAC3B,EAAa,QAAQQ,EAAc,UAChFoB,KAAe,EAAED,GAAU,MAAMA,GAAU,SAASnB,EAAc,SAEpEX,EAAiB,CAAC,GAClBI,EAAgBkB,EAAaS,EAAY,CAAC;AAAA,MAC5C;AAAA,IACF,GACMC,KAAepM,GAAW,CAAC,GAC3BqM,KAAarM,GAAW,CAAC;AAC/B,IAAAwC,GAAY,MAAM;AAChB,UAAI8J,IACAC,IACAC,IACAC,IACAC,IACAC;AACJ,YAAMC,KAAkBtB,EAAW;AACnC,MAAI,CAAC,OAAO,QAAQ,EAAE,SAAStQ,EAAM,WAAW,KAC9CsR,KAAO,SACPG,KAAY5B,EAAa,OACzB6B,KAAiBjC,EAAmB,OACpCkC,KAAU1B,EAAS,OACnBsB,KAAWvR,EAAM,MAAM,UAAU,QACjCwR,KAAgB,KAAK,IAAIrC,EAAc,KAAK,MAE5CmC,KAAO,UACPG,KAAY1B,EAAc,OAC1B2B,KAAiBjC,EAAmB,OACpCkC,KAAUxB,EAAU,OACpBoB,KAAW,OACXC,KAAgB,CAACjC,EAAa;AAEhC,UAAIsC,KAAkBJ;AACtB,MAAIC,KAAiBC,KAAUF,MAAaC,KAAiBD,OAC3DI,KAAkBJ,KAAYE;AAEhC,YAAMG,KAAUzK,EAAK;AACrB,UAAI,CAACyK,GAAQ;AACX,eAAO,CAACV,GAAa,OAAOC,GAAW,KAAK,IAAI,CAAC,GAAG,CAAC;AAEvD,YAAMtI,KAAM+I,GAAQ;AACpB,UAAIC,KAAWhJ;AACf,eAASlB,KAAI,GAAGA,KAAIkB,IAAKlB,MAAK,GAAG;AAC/B,cAAMe,KAASgJ,GAAgB,IAAIE,GAAQjK,EAAC,EAAE,GAAG,KAAKV;AACtD,YAAIyB,GAAO2I,EAAQ,IAAI3I,GAAO0I,EAAI,IAAIE,KAAgBK,IAAiB;AACrE,UAAAE,KAAWlK,KAAI;AACf;AAAA,QACF;AAAA,MACF;AACA,UAAImK,KAAa;AACjB,eAASnK,KAAIkB,KAAM,GAAGlB,MAAK,GAAGA,MAAK;AAEjC,aADe+J,GAAgB,IAAIE,GAAQjK,EAAC,EAAE,GAAG,KAAKV,IAC3CoK,EAAQ,IAAIC,IAAe;AACpC,UAAAQ,KAAanK,KAAI;AACjB;AAAA,QACF;AAEF,aAAO,CAACuJ,GAAa,OAAOC,GAAW,KAAK,IAAI,CAACW,IAAYD,EAAQ;AAAA,IACvE,CAAC;AACD,UAAME,KAAiB,MAAM;AAC3B,MAAA5B,EAAY,MAAM;AAChB,YAAI3N;AACJ,cAAMwP,KAAW,oBAAI,IAAG,GAClBC,MAAYzP,KAAKoM,EAAW,WAAW,QAAQpM,OAAO,SAAS,SAASA,GAAG,sBAAqB;AACtG,eAAA2E,EAAK,MAAM,QAAQ,CAAAkD,OAAS;AAC1B,cAAI;AAAA,YACF,KAAAtK;AAAA,UACZ,IAAcsK;AACJ,gBAAM6H,KAASnD,EAAQ,MAAM,IAAIhP,EAAG,GAC9BoS,MAAWD,MAAW,OAA4B,SAASA,GAAO,QAAQA;AAChF,cAAIC,IAAS;AACX,kBAAM,CAAC7D,IAAOC,IAAQ6D,IAAMC,EAAG,IAAIrE,GAAWmE,IAASF,EAAQ;AAC/D,YAAAD,GAAS,IAAIjS,IAAK;AAAA,cAChB,OAAAuO;AAAA,cACA,QAAAC;AAAA,cACA,MAAA6D;AAAA,cACA,KAAAC;AAAA,YACd,CAAa;AAAA,UACH;AAAA,QACF,CAAC,GACML;AAAA,MACT,CAAC;AAAA,IACH;AACA,IAAA7I,GAAM,MAAMhC,EAAK,MAAM,IAAI,CAAAb,OAAOA,GAAI,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM;AAC3D,MAAAyL,GAAc;AAAA,IAChB,GAAG;AAAA,MACD,OAAO;AAAA,IACb,CAAK;AACD,UAAMO,KAAqB,MAAM;AAC/B,UAAI9P,IAAIC,IAAImB,IAAI2O,IAAIC;AAEpB,YAAMtE,OAAgB1L,KAAKmM,EAAe,WAAW,QAAQnM,OAAO,SAAS,SAASA,GAAG,gBAAgB,GACnG2L,OAAiB1L,KAAKkM,EAAe,WAAW,QAAQlM,OAAO,SAAS,SAASA,GAAG,iBAAiB,GACrGgQ,OAAW7O,KAAKkL,EAAkB,WAAW,QAAQlL,OAAO,SAAS,SAASA,GAAG,QAAQ,CAAA,GACzF8O,KAAcD,GAAO,eAAe,GACpCE,KAAeF,GAAO,gBAAgB;AAC5C,MAAA7C,EAAgB1B,EAAW,GAC3B4B,EAAiB3B,EAAY,GAC7B6B,EAAY0C,EAAW,GACvBxC,EAAayC,EAAY;AACzB,YAAMC,QAA2BL,KAAK3D,EAAW,WAAW,QAAQ2D,OAAO,SAAS,SAASA,GAAG,gBAAgB,KAAKG,IAC/GG,QAA4BL,KAAK5D,EAAW,WAAW,QAAQ4D,OAAO,SAAS,SAASA,GAAG,iBAAiB,KAAKG;AACvH,MAAAnD,EAAsBoD,EAAqB,GAC3ClD,EAAuBmD,EAAsB,GAE7Cd,GAAc;AAAA,IAChB,GAEMe,KAAa3M,EAAS,MAAM,CAAC,GAAGgB,EAAK,MAAM,MAAM,GAAG+J,GAAa,KAAK,GAAG,GAAG/J,EAAK,MAAM,MAAMgK,GAAW,QAAQ,CAAC,CAAC,CAAC,GAEnH,CAAC4B,IAAUC,EAAW,IAAI1K,GAAQ,GAClC2K,KAAkB9M,EAAS,MAAMiK,EAAW,MAAM,IAAItQ,EAAM,SAAS,CAAC,GAEtEoT,KAAepO,GAAU,GACzBqO,KAAiB,MAAM;AAC3B/N,MAAAA,GAAI,OAAO8N,GAAa,KAAK;AAAA,IAC/B;AACA,IAAA/J,GAAM,CAAC8J,IAAiBjE,GAAwB,MAAMlP,EAAM,GAAG,GAAG,MAAM;AACtE,YAAMsT,KAAc,CAAA;AACpB,MAAIH,GAAgB,UACdjE,EAAuB,SACrBlP,EAAM,MACRsT,GAAY,QAAQC,GAAKJ,GAAgB,MAAM,KAAK,IAEpDG,GAAY,OAAOC,GAAKJ,GAAgB,MAAM,IAAI,GAEpDG,GAAY,QAAQC,GAAKJ,GAAgB,MAAM,KAAK,MAEpDG,GAAY,MAAMC,GAAKJ,GAAgB,MAAM,GAAG,GAChDG,GAAY,SAASC,GAAKJ,GAAgB,MAAM,MAAM,KAG1DE,GAAc,GACdD,GAAa,QAAQ9N,GAAI,MAAM;AAC7B,QAAA4N,GAAYI,EAAW;AAAA,MACzB,CAAC;AAAA,IACH,CAAC,GACDjK,GAAM,CAAC,MAAMrJ,EAAM,WAAWmT,IAAiB7C,GAAYpB,CAAsB,GAAG,MAAM;AACxF,MAAA+B,GAAW;AAAA,IACb,GAAG;AAAA,MACD,OAAO;AAAA,IACb,CAAK,GACD5H,GAAM,CAAC,MAAMrJ,EAAM,KAAK,MAAMA,EAAM,cAAc,MAAMA,EAAM,WAAW,MAAMqH,EAAK,KAAK,GAAG,MAAM;AAChG,MAAAmL,GAAkB;AAAA,IACpB,GAAG;AAAA,MACD,OAAO;AAAA,IACb,CAAK;AACD,UAAMgB,KAAe,CAAAC,OAAS;AAC5B,UAAI;AAAA,QACF,UAAAlC;AAAA,QACA,WAAA3N;AAAA,QACA,OAAA8P;AAAA,MACR,IAAUD;AACJ,UAAI,CAACC,GAAO,QAAO;AACnB,YAAMC,KAAUD,MAAU,OAA2B,SAASA,GAAM;AAAA,QAClE,UAAAnC;AAAA,MACR,CAAO;AACD,aAAOoC,KAAUnP,EAAa,OAAO;AAAA,QACnC,OAAS,GAAGZ,EAAS;AAAA,MAC7B,GAAS,CAAC+P,EAAO,CAAC,IAAI;AAAA,IAClB;AACA,WAAApO,GAAgB,MAAM;AACpB,MAAAwL,EAAgB,GAChBsC,GAAc;AAAA,IAChB,CAAC,GACM,MAAM;AACX,YAAM;AAAA,QACJ,IAAA/M;AAAA,QACA,UAAAsN;AAAA,QACA,WAAAC;AAAA,QACA,KAAAhK;AAAA,QACA,UAAAhD;AAAA,QACA,QAAAoB;AAAA,QACA,aAAA6L;AAAA,QACA,cAAAlK;AAAA,QACA,YAAAE;AAAA,MACR,IAAU9J,GACE;AAAA,QACJ,OAAOmE;AAAA,QACP,OAAA4P;AAAA,MACR,IAAU3Q,GACE4Q,KAAMpQ,EAAU,OAEhBqQ,KAAc,CAAC,CAACjB,GAAW,MAAM,QACjCkB,KAAa,GAAGF,EAAG;AACzB,UAAIG,IACAC,IACAC,IACAC;AACJ,MAAIpF,EAAuB,QACrBrF,MACFuK,KAAYjF,EAAc,QAAQ,GAClCgF,KAAWhF,EAAc,QAAQU,EAAa,QAAQJ,EAAmB,UAEzE0E,KAAWhF,EAAc,QAAQ,GACjCiF,KAAY,CAACjF,EAAc,QAAQU,EAAa,QAAQJ,EAAmB,UAG7E4E,KAAU9E,EAAa,QAAQ,GAC/B+E,KAAa,CAAC/E,EAAa,QAAQQ,EAAc,QAAQJ,EAAoB;AAE/E,YAAM4E,KAAe,CAAA;AACrB,MAAIT,OAAgB,SAASA,OAAgB,WAC3CS,GAAa1K,KAAM,gBAAgB,YAAY,IAAI,OAAOD,MAAiB,WAAW,GAAGA,EAAY,OAAOA,KAE5G2K,GAAa,YAAY,OAAO3K,MAAiB,WAAW,GAAGA,EAAY,OAAOA;AAEpF,YAAM4K,KAAWnN,EAAK,MAAM,IAAI,CAACb,IAAKqB,OAAM;AAC1C,cAAM;AAAA,UACJ,KAAA5H;AAAA,QACV,IAAYuG;AACJ,eAAOhC,EAAasB,IAAS;AAAA,UAC3B,IAAMQ;AAAA,UACN,WAAa0N;AAAA,UACb,KAAO/T;AAAA,UACP,KAAOuG;AAAA,UACP,OAASqB,OAAM,IAAI,SAAY0M;AAAA,UAC/B,UAAY/N,GAAI;AAAA,UAChB,UAAYK;AAAA,UACZ,QAAU5G,OAAQ4T;AAAA,UAClB,iBAAmB5L,MAAW,OAA4B,SAASA,GAAO;AAAA,UAC1E,KAAO4F,EAAO5N,EAAG;AAAA,UACjB,SAAW,CAAAgG,OAAK;AACd,YAAA6D,GAAW7J,IAAKgG,EAAC;AAAA,UACnB;AAAA,UACA,SAAW,MAAM;AAGf,YAFAgL,GAAYhR,EAAG,GACf6Q,EAAe,GACVjC,EAAe,UAIfhF,OACHgF,EAAe,MAAM,aAAa,IAEpCA,EAAe,MAAM,YAAY;AAAA,UACnC;AAAA,QACV,GAAW1L,CAAK;AAAA,MACV,CAAC;AACD,aAAOqB,EAAa,OAAO;AAAA,QACzB,MAAQ;AAAA,QACR,OAASyC,GAAW,GAAG+M,EAAG,QAAQ7P,EAAS;AAAA,QAC3C,OAAS4P;AAAA,QACT,WAAa,MAAM;AAEjB,UAAAjD,EAAe;AAAA,QACjB;AAAA,MACR,GAAS,CAACtM,EAAagP,IAAc;AAAA,QAC7B,UAAY;AAAA,QACZ,WAAaQ;AAAA,QACb,OAAS7Q,EAAM;AAAA,MACvB,GAAS,IAAI,GAAGqB,EAAaiQ,IAAgB;AAAA,QACrC,UAAYjC;AAAA,MACpB,GAAS;AAAA,QACD,SAAS,MAAM,CAAChO,EAAa,OAAO;AAAA,UAClC,OAASyC,GAAWiN,IAAY;AAAA,YAC9B,CAAC,GAAGA,EAAU,YAAY,GAAGC;AAAA,YAC7B,CAAC,GAAGD,EAAU,aAAa,GAAGE;AAAA,YAC9B,CAAC,GAAGF,EAAU,WAAW,GAAGG;AAAA,YAC5B,CAAC,GAAGH,EAAU,cAAc,GAAGI;AAAA,UAC3C,CAAW;AAAA,UACD,KAAOzF;AAAA,QACjB,GAAW,CAACrK,EAAaiQ,IAAgB;AAAA,UAC/B,UAAYjC;AAAA,QACtB,GAAW;AAAA,UACD,SAAS,MAAM,CAAChO,EAAa,OAAO;AAAA,YAClC,KAAOsK;AAAA,YACP,OAAS,GAAGkF,EAAG;AAAA,YACf,OAAS;AAAA,cACP,WAAW,aAAa7E,EAAc,KAAK,OAAOI,EAAa,KAAK;AAAA,cACpE,YAAYqB,EAAc,QAAQ,SAAS;AAAA,YACzD;AAAA,UACA,GAAa,CAAC4D,IAAUhQ,EAAawD,IAAW;AAAA,YACpC,KAAOgH;AAAA,YACP,WAAagF;AAAA,YACb,QAAU/L;AAAA,YACV,UAAYpB;AAAA,YACZ,OAAShE,EAASA,EAAS,IAAI2R,GAAS,WAAW,IAAI,SAAYD,EAAY,GAAG;AAAA,cAChF,YAAYN,KAAc,WAAW;AAAA,YACnD,CAAa;AAAA,UACb,GAAa,IAAI,GAAGzP,EAAa,OAAO;AAAA,YAC5B,OAASyC,GAAW,GAAG+M,EAAG,YAAY;AAAA,cACpC,CAAC,GAAGA,EAAG,mBAAmB,GAAGJ,GAAS;AAAA,YACpD,CAAa;AAAA,YACD,OAASX,GAAS;AAAA,UAC9B,GAAa,IAAI,CAAC,CAAC,CAAC;AAAA,QACpB,CAAS,CAAC,CAAC,CAAC;AAAA,MACZ,CAAO,GAAGzO,EAAa6D,IAAe3D,EAAcA,EAAc,IAAI1E,CAAK,GAAG,IAAI;AAAA,QAC1E,iBAAmBiI,MAAW,OAA4B,SAASA,GAAO;AAAA,QAC1E,KAAO8G;AAAA,QACP,WAAaiF;AAAA,QACb,MAAQhB,GAAW;AAAA,QACnB,OAAS,CAACiB,MAAe1D,EAA0B;AAAA,MAC3D,CAAO,GAAGnO,GAAKe,GAAO,CAAC,UAAU,CAAC,CAAC,GAAGqB,EAAagP,IAAc;AAAA,QACzD,UAAY;AAAA,QACZ,WAAaQ;AAAA,QACb,OAAS7Q,EAAM;AAAA,MACvB,GAAS,IAAI,GAAGqB,EAAagP,IAAc;AAAA,QACnC,UAAY;AAAA,QACZ,WAAaQ;AAAA,QACb,OAAS7Q,EAAM;AAAA,MACvB,GAAS,IAAI,CAAC,CAAC;AAAA,IACX;AAAA,EACF;AACF,CAAC,GChiBDuR,KAAezR,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,MAAM;AAAA,IAC3B;AAAA,IACI,IAAI;AAAA,MACF,MAAM;AAAA,IACZ;AAAA,IACI,KAAK;AAAA,MACH,MAAM;AAAA,IACZ;AAAA,IACI,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,aAAa;AAAA,MACX,MAAM;AAAA,IACZ;AAAA,IACI,wBAAwB;AAAA,MACtB,MAAM;AAAA,IACZ;AAAA,EACA;AAAA,EACE,MAAMjD,GAAO;AACX,UAAM;AAAA,MACJ,MAAAqH;AAAA,MACA,WAAAzD;AAAA,IACN,IAAQiH,GAAa;AACjB,WAAO,MAAM;AACX,YAAM;AAAA,QACJ,IAAAvE;AAAA,QACA,WAAAuN;AAAA,QACA,UAAAD;AAAA,QACA,aAAAE;AAAA,QACA,KAAAjK;AAAA,QACA,wBAAA8K;AAAA,MACR,IAAU3U,GACE4U,IAAkBhB,EAAS,SAC3BI,IAAMpQ,EAAU,OAChBiR,IAAcxN,EAAK,MAAM,UAAU,CAAAb,MAAOA,EAAI,QAAQqN,CAAS;AACrE,aAAOrP,EAAa,OAAO;AAAA,QACzB,OAAS,GAAGwP,CAAG;AAAA,MACvB,GAAS,CAACxP,EAAa,OAAO;AAAA,QACtB,OAAS,CAAC,GAAGwP,CAAG,YAAY,GAAGA,CAAG,YAAYF,CAAW,IAAI;AAAA,UAC3D,CAAC,GAAGE,CAAG,mBAAmB,GAAGY;AAAA,QACvC,CAAS;AAAA,QACD,OAASC,KAAeD,IAAkB;AAAA,UACxC,CAAC/K,IAAM,gBAAgB,YAAY,GAAG,IAAIgL,CAAW;AAAA,QAC/D,IAAY;AAAA,MACZ,GAAS,CAACxN,EAAK,MAAM,IAAI,CAAAb,MACVsO,GAAatO,EAAI,MAAM;AAAA,QAC5B,KAAKA,EAAI;AAAA,QACT,WAAWwN;AAAA,QACX,QAAQxN,EAAI;AAAA,QACZ,IAAAF;AAAA,QACA,UAAUsO;AAAA,QACV,QAAQpO,EAAI,QAAQqN;AAAA,QACpB,wBAAAc;AAAA,MACV,CAAS,CACF,CAAC,CAAC,CAAC,CAAC;AAAA,IACP;AAAA,EACF;AACF,CAAC,GCrEKI,KAAiB,CAAAC,MAAS;AAC9B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,oBAAAC;AAAA,EACJ,IAAMF;AACJ,SAAO;AAAA,IAAC;AAAA,MACN,CAACC,CAAY,GAAG;AAAA,QACd,CAAC,GAAGA,CAAY,SAAS,GAAG;AAAA,UAC1B,qBAAqB;AAAA,YACnB,YAAY;AAAA,YACZ,WAAW;AAAA,cACT,SAAS;AAAA,YACrB;AAAA,YACU,YAAY;AAAA,cACV,SAAS;AAAA,cACT,YAAY,WAAWC,CAAkB;AAAA,YACrD;AAAA,UACA;AAAA,UACQ,WAAW;AAAA,YACT,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,OAAO;AAAA,YACP,WAAW;AAAA,cACT,SAAS;AAAA,YACrB;AAAA,YACU,YAAY;AAAA,cACV,SAAS;AAAA,cACT,YAAY,WAAWA,CAAkB;AAAA,YACrD;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA;AAAA,IAEE,CAACC,GAAgBH,GAAO,UAAU,GAAGG,GAAgBH,GAAO,YAAY,CAAC;AAAA,EAAC;AAC5E,GC/BMI,KAAe,CAAAJ,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,2BAAAI;AAAA,IACA,wBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,EACJ,IAAMR;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,OAAO,GAAG;AAAA,MACxB,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,UACvB,QAAQ;AAAA,UACR,SAASI;AAAA,UACT,YAAYC;AAAA,UACZ,QAAQ,GAAGN,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIQ,CAAU;AAAA,UAC5D,YAAY,OAAOR,EAAM,kBAAkB,IAAIA,EAAM,eAAe;AAAA,QAC9E;AAAA,QACQ,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,UAC9B,OAAOD,EAAM;AAAA,UACb,YAAYA,EAAM;AAAA,QAC5B;AAAA,QACQ,CAAC,GAAGC,CAAY,UAAU,GAAG;AAAA,UAC3B,YAAY;AAAA,QACtB;AAAA,MACA;AAAA;AAAA,MAEM,CAAC,IAAIA,CAAY,UAAUA,CAAY,SAAS,GAAG;AAAA,QACjD,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,UAAUA,CAAY,MAAM,GAAG;AAAA,YAC7C,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAO,GAAGM,CAAc;AAAA,YACtC;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAIN,CAAY,MAAM,GAAG;AAAA,QACxB,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,cAAc,GAAGD,EAAM,cAAc,MAAMA,EAAM,cAAc;AAAA,UAC3E;AAAA,UACU,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,YAC9B,mBAAmBD,EAAM;AAAA,UACrC;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAIC,CAAY,SAAS,GAAG;AAAA,QAC3B,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,cAAc,OAAOD,EAAM,cAAc,MAAMA,EAAM,cAAc;AAAA,UAC/E;AAAA,UACU,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,YAC9B,gBAAgBD,EAAM;AAAA,UAClC;AAAA,QACA;AAAA,MACA;AAAA;AAAA,MAEM,CAAC,IAAIC,CAAY,WAAWA,CAAY,QAAQ,GAAG;AAAA,QACjD,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,UAAUA,CAAY,MAAM,GAAG;AAAA,YAC7C,WAAW,GAAGM,CAAc;AAAA,UACxC;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAIN,CAAY,OAAO,GAAG;AAAA,QACzB,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,cAAc;AAAA,cACZ,cAAc;AAAA,cACd,OAAO,GAAGD,EAAM,cAAc,UAAUA,EAAM,cAAc;AAAA,YAC1E;AAAA,UACA;AAAA,UACU,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,YAC9B,kBAAkB;AAAA,cAChB,cAAc;AAAA,cACd,OAAOD,EAAM;AAAA,YAC3B;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAIC,CAAY,QAAQ,GAAG;AAAA,QAC1B,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,cAAc;AAAA,cACZ,cAAc;AAAA,cACd,OAAO,KAAKD,EAAM,cAAc,MAAMA,EAAM,cAAc;AAAA,YACxE;AAAA,UACA;AAAA,UACU,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,YAC9B,iBAAiB;AAAA,cACf,cAAc;AAAA,cACd,OAAOD,EAAM;AAAA,YAC3B;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACMS,KAAmB,CAAAT,MAAS;AAChC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,gBAAAS;AAAA,IACA,kCAAAC;AAAA,EACJ,IAAMX;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,WAAW,GAAGpS,EAASA,EAAS,IAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MAC1E,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,QACJ,cAAc;AAAA,QACd,OAAO;AAAA,MACf;AAAA,MACM,QAAQA,EAAM;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,QACV,SAAS;AAAA,MACjB;AAAA,MACM,CAAC,GAAGC,CAAY,gBAAgB,GAAG;AAAA,QACjC,WAAWD,EAAM;AAAA,QACjB,QAAQ;AAAA,QACR,SAAS,GAAGW,CAAgC;AAAA,QAC5C,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,UACT,cAAc;AAAA,UACd,OAAO;AAAA,QACjB;AAAA,QACQ,eAAe;AAAA,QACf,iBAAiBX,EAAM;AAAA,QACvB,gBAAgB;AAAA,QAChB,cAAcA,EAAM;AAAA,QACpB,SAAS;AAAA,QACT,WAAWA,EAAM;AAAA,QACjB,UAAUnS,EAASA,EAAS,CAAA,GAAIgT,EAAY,GAAG;AAAA,UAC7C,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,UAAUb,EAAM;AAAA,UAChB,QAAQ;AAAA,UACR,SAAS,GAAGA,EAAM,UAAU,MAAMA,EAAM,SAAS;AAAA,UACjD,OAAOA,EAAM;AAAA,UACb,YAAY;AAAA,UACZ,UAAUA,EAAM;AAAA,UAChB,YAAYA,EAAM;AAAA,UAClB,QAAQ;AAAA,UACR,YAAY,OAAOA,EAAM,kBAAkB;AAAA,UAC3C,UAAU;AAAA,YACR,MAAM;AAAA,YACN,YAAY;AAAA,UACxB;AAAA,UACU,YAAY;AAAA,YACV,MAAM;AAAA,YACN,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAOA,EAAM;AAAA,YAC3B;AAAA,YACY,OAAOA,EAAM;AAAA,YACb,UAAUA,EAAM;AAAA,YAChB,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,WAAW;AAAA,cACT,OAAOU;AAAA,YACrB;AAAA,UACA;AAAA,UACU,WAAW;AAAA,YACT,YAAYV,EAAM;AAAA,UAC9B;AAAA,UACU,cAAc;AAAA,YACZ,cAAc;AAAA,cACZ,OAAOA,EAAM;AAAA,cACb,YAAY;AAAA,cACZ,QAAQ;AAAA,YACtB;AAAA,UACA;AAAA,QACA,CAAS;AAAA,MACT;AAAA,IACA,CAAK;AAAA,EACL;AACA,GACMc,KAAmB,CAAAd,MAAS;AAChC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,QAAAc;AAAA,IACA,YAAAP;AAAA,EACJ,IAAMR;AACJ,SAAO;AAAA;AAAA,IAEL,CAAC,GAAGC,CAAY,SAASA,CAAY,SAAS,GAAG;AAAA,MAC/C,eAAe;AAAA,MACf,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,QAAQ,OAAOc,CAAM;AAAA,QACrB,aAAa;AAAA,UACX,UAAU;AAAA,UACV,OAAO;AAAA,YACL,cAAc;AAAA,YACd,OAAO;AAAA,UACnB;AAAA,UACU,MAAM;AAAA,YACJ,cAAc;AAAA,YACd,OAAO;AAAA,UACnB;AAAA,UACU,cAAc,GAAGf,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIQ,CAAU;AAAA,UAClE,SAAS;AAAA,QACnB;AAAA,QACQ,CAAC,GAAGP,CAAY,UAAU,GAAG;AAAA,UAC3B,QAAQD,EAAM;AAAA,UACd,cAAc;AAAA,YACZ,YAAY,SAASA,EAAM,kBAAkB,UAAUA,EAAM,kBAAkB;AAAA,oBACvEA,EAAM,kBAAkB;AAAA,UAC5C;AAAA,QACA;AAAA,QACQ,CAAC,GAAGC,CAAY,WAAW,GAAG;AAAA,UAC5B,uBAAuB;AAAA,YACrB,KAAK;AAAA,YACL,QAAQ;AAAA,YACR,OAAOD,EAAM;AAAA,UACzB;AAAA,UACU,aAAa;AAAA,YACX,MAAM;AAAA,cACJ,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,WAAWA,EAAM;AAAA,UAC7B;AAAA,UACU,YAAY;AAAA,YACV,OAAO;AAAA,cACL,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,WAAWA,EAAM;AAAA,UAC7B;AAAA,UACU,CAAC,IAAIC,CAAY,6BAA6B,GAAG;AAAA,YAC/C,SAAS;AAAA,UACrB;AAAA,UACU,CAAC,IAAIA,CAAY,6BAA6B,GAAG;AAAA,YAC/C,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,MACvB,CAAC,KAAKA,CAAY;AAAA,kBACNA,CAAY,MAAM,GAAG;AAAA,QAC/B,aAAa;AAAA,UACX,QAAQ;AAAA,QAClB;AAAA,QACQ,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,UAC3B,QAAQ;AAAA,QAClB;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGA,CAAY,SAAS,GAAG;AAAA,MAC1B,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,OAAO;AAAA,QACP,WAAW,GAAGc,CAAM;AAAA,QACpB,cAAc;AAAA,QACd,aAAa;AAAA,UACX,KAAK;AAAA,QACf;AAAA,QACQ,CAAC,GAAGd,CAAY,UAAU,GAAG;AAAA,UAC3B,KAAK;AAAA,QACf;AAAA,MACA;AAAA,MACM,CAAC,KAAKA,CAAY,4BAA4BA,CAAY,iBAAiB,GAAG;AAAA,QAC5E,OAAO;AAAA,MACf;AAAA,IACA;AAAA;AAAA,IAEI,CAAC,GAAGA,CAAY,UAAUA,CAAY,QAAQ,GAAG;AAAA,MAC/C,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,eAAe;AAAA,QACf,UAAUD,EAAM,gBAAgB;AAAA;AAAA,QAEhC,CAAC,GAAGC,CAAY,MAAM,GAAG;AAAA,UACvB,SAAS,GAAGD,EAAM,SAAS,MAAMA,EAAM,SAAS;AAAA,UAChD,WAAW;AAAA,QACrB;AAAA,QACQ,CAAC,GAAGC,CAAY,UAAUA,CAAY,MAAM,GAAG;AAAA,UAC7C,QAAQ,GAAGD,EAAM,MAAM;AAAA,QACjC;AAAA;AAAA,QAEQ,CAAC,GAAGC,CAAY,WAAW,GAAG;AAAA,UAC5B,eAAe;AAAA,UACf,uBAAuB;AAAA,YACrB,OAAO;AAAA,cACL,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,MAAM;AAAA,cACJ,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,QAAQD,EAAM;AAAA,UAC1B;AAAA,UACU,aAAa;AAAA,YACX,KAAK;AAAA,YACL,WAAWA,EAAM;AAAA,UAC7B;AAAA,UACU,YAAY;AAAA,YACV,QAAQ;AAAA,YACR,WAAWA,EAAM;AAAA,UAC7B;AAAA,UACU,CAAC,IAAIC,CAAY,4BAA4B,GAAG;AAAA,YAC9C,SAAS;AAAA,UACrB;AAAA,UACU,CAAC,IAAIA,CAAY,8BAA8B,GAAG;AAAA,YAChD,SAAS;AAAA,UACrB;AAAA,QACA;AAAA;AAAA,QAEQ,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,UAC3B,OAAOD,EAAM;AAAA,UACb,cAAc;AAAA,YACZ,YAAY,UAAUA,EAAM,kBAAkB,SAASA,EAAM,kBAAkB;AAAA,UAC3F;AAAA,QACA;AAAA,QACQ,CAAC,GAAGC,CAAY,cAAcA,CAAY,iBAAiB,GAAG;AAAA,UAC5D,MAAM;AAAA,UACN,eAAe;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGA,CAAY,OAAO,GAAG;AAAA,MACxB,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,UAC3B,OAAO;AAAA,YACL,cAAc;AAAA,YACd,OAAO;AAAA,UACnB;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,KAAKA,CAAY,4BAA4BA,CAAY,iBAAiB,GAAG;AAAA,QAC5E,YAAY;AAAA,UACV,cAAc;AAAA,UACd,OAAO,IAAID,EAAM,SAAS;AAAA,QACpC;AAAA,QACQ,YAAY;AAAA,UACV,cAAc;AAAA,UACd,OAAO,GAAGA,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIA,EAAM,WAAW;AAAA,QAC5E;AAAA,QACQ,CAAC,KAAKC,CAAY,cAAcA,CAAY,UAAU,GAAG;AAAA,UACvD,aAAa;AAAA,YACX,cAAc;AAAA,YACd,OAAOD,EAAM;AAAA,UACzB;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGC,CAAY,QAAQ,GAAG;AAAA,MACzB,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,OAAO;AAAA,QACP,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,UAC3B,MAAM;AAAA,YACJ,cAAc;AAAA,YACd,OAAO;AAAA,UACnB;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,KAAKA,CAAY,4BAA4BA,CAAY,iBAAiB,GAAG;AAAA,QAC5E,OAAO;AAAA,QACP,aAAa;AAAA,UACX,cAAc;AAAA,UACd,OAAO,CAACD,EAAM;AAAA,QACxB;AAAA,QACQ,aAAa;AAAA,UACX,cAAc;AAAA,UACd,OAAO,GAAGA,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIA,EAAM,WAAW;AAAA,QAC5E;AAAA,QACQ,CAAC,KAAKC,CAAY,cAAcA,CAAY,UAAU,GAAG;AAAA,UACvD,cAAc;AAAA,YACZ,cAAc;AAAA,YACd,OAAOD,EAAM;AAAA,UACzB;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACMgB,KAAe,CAAAhB,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,SAAAgB;AAAA,EACJ,IAAMjB;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAG;AAAA,MACd,WAAW;AAAA,QACT,CAAC,KAAKA,CAAY,MAAM,GAAG;AAAA,UACzB,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,SAAS,GAAGD,EAAM,SAAS;AAAA,YAC3B,UAAUA,EAAM;AAAA,UAC5B;AAAA,QACA;AAAA,MACA;AAAA,MACM,WAAW;AAAA,QACT,CAAC,KAAKC,CAAY,MAAM,GAAG;AAAA,UACzB,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,SAAS,GAAGgB,CAAO;AAAA,YACnB,UAAUjB,EAAM;AAAA,UAC5B;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGC,CAAY,OAAO,GAAG;AAAA,MACxB,CAAC,IAAIA,CAAY,QAAQ,GAAG;AAAA,QAC1B,CAAC,KAAKA,CAAY,MAAM,GAAG;AAAA,UACzB,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,SAAS,GAAGD,EAAM,aAAa,GAAG,MAAMiB,CAAO;AAAA,UAC3D;AAAA,QACA;AAAA,QACQ,CAAC,IAAIhB,CAAY,SAAS,GAAG;AAAA,UAC3B,CAAC,KAAKA,CAAY,QAAQA,CAAY,MAAM,GAAG;AAAA,YAC7C,cAAc,OAAOD,EAAM,YAAY,MAAMA,EAAM,YAAY;AAAA,UAC3E;AAAA,QACA;AAAA,QACQ,CAAC,IAAIC,CAAY,MAAM,GAAG;AAAA,UACxB,CAAC,KAAKA,CAAY,QAAQA,CAAY,MAAM,GAAG;AAAA,YAC7C,cAAc,GAAGD,EAAM,YAAY,MAAMA,EAAM,YAAY;AAAA,UACvE;AAAA,QACA;AAAA,QACQ,CAAC,IAAIC,CAAY,QAAQ,GAAG;AAAA,UAC1B,CAAC,KAAKA,CAAY,QAAQA,CAAY,MAAM,GAAG;AAAA,YAC7C,cAAc;AAAA,cACZ,cAAc;AAAA,cACd,OAAO,KAAKD,EAAM,YAAY,MAAMA,EAAM,YAAY;AAAA,YACpE;AAAA,UACA;AAAA,QACA;AAAA,QACQ,CAAC,IAAIC,CAAY,OAAO,GAAG;AAAA,UACzB,CAAC,KAAKA,CAAY,QAAQA,CAAY,MAAM,GAAG;AAAA,YAC7C,cAAc;AAAA,cACZ,cAAc;AAAA,cACd,OAAO,GAAGD,EAAM,YAAY,UAAUA,EAAM,YAAY;AAAA,YACtE;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAIC,CAAY,QAAQ,GAAG;AAAA,QAC1B,CAAC,KAAKA,CAAY,MAAM,GAAG;AAAA,UACzB,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,YACvB,SAAS,GAAGD,EAAM,SAAS,MAAMiB,CAAO,MAAMjB,EAAM,aAAa,GAAG;AAAA,UAChF;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACMkB,KAAc,CAAAlB,MAAS;AAC3B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,iBAAAkB;AAAA,IACA,gBAAAT;AAAA,IACA,SAAAU;AAAA,IACA,sBAAAC;AAAA,EACJ,IAAMrB,GACEsB,IAAS,GAAGrB,CAAY;AAC9B,SAAO;AAAA,IACL,CAACqB,CAAM,GAAG;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,SAAS,GAAGtB,EAAM,SAAS;AAAA,MAC3B,UAAU,GAAGA,EAAM,QAAQ;AAAA,MAC3B,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,mBAAmBnS,EAAS;AAAA,QAC1B,yCAAyC;AAAA,UACvC,OAAOsT;AAAA,QACjB;AAAA,MACA,GAASI,GAAcvB,CAAK,CAAC;AAAA,MACvB,SAAS;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACpB;AAAA,MACM,YAAY;AAAA,QACV,MAAM;AAAA,QACN,aAAa;AAAA,UACX,cAAc;AAAA,UACd,OAAO,CAACA,EAAM;AAAA,QACxB;AAAA,QACQ,YAAY;AAAA,UACV,cAAc;AAAA,UACd,OAAOA,EAAM;AAAA,QACvB;AAAA,QACQ,OAAOA,EAAM;AAAA,QACb,UAAUA,EAAM;AAAA,QAChB,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,YAAY,OAAOA,EAAM,kBAAkB;AAAA,QAC3C,WAAW;AAAA,UACT,OAAOA,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,WAAW;AAAA,QACT,OAAOU;AAAA,MACf;AAAA,MACM,CAAC,IAAIY,CAAM,WAAWA,CAAM,MAAM,GAAG;AAAA,QACnC,OAAOtB,EAAM;AAAA,QACb,YAAYA,EAAM;AAAA,MAC1B;AAAA,MACM,CAAC,IAAIsB,CAAM,WAAW,GAAG;AAAA,QACvB,OAAOtB,EAAM;AAAA,QACb,QAAQ;AAAA,MAChB;AAAA,MACM,CAAC,IAAIsB,CAAM,aAAaA,CAAM,UAAUA,CAAM,aAAarB,CAAY,SAAS,GAAG;AAAA,QACjF,qBAAqB;AAAA,UACnB,OAAOD,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,CAAC,KAAKsB,CAAM,WAAWF,CAAO,EAAE,GAAG;AAAA,QACjC,QAAQ;AAAA,MAChB;AAAA,MACM,CAACA,CAAO,GAAG;AAAA,QACT,aAAa;AAAA,UACX,cAAc;AAAA,UACd,OAAOpB,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGsB,CAAM,MAAMA,CAAM,EAAE,GAAG;AAAA,MACzB,QAAQ;AAAA,QACN,cAAc;AAAA,QACd,OAAO,SAASD,CAAoB;AAAA,MAC5C;AAAA,IACA;AAAA,EACA;AACA,GACMG,KAAc,CAAAxB,MAAS;AAC3B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,sBAAAoB;AAAA,IACA,SAAAD;AAAA,IACA,gBAAAb;AAAA,EACJ,IAAMP;AAEJ,SAAO;AAAA,IACL,CAFa,GAAGC,CAAY,MAErB,GAAG;AAAA,MACR,WAAW;AAAA,MACX,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,QACvB,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,UACvB,QAAQ;AAAA,YACN,cAAc;AAAA,YACd,OAAO,SAASoB,CAAoB;AAAA,UAChD;AAAA,UACU,CAAC,GAAGpB,CAAY,mBAAmB,GAAG;AAAA,YACpC,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,UACA;AAAA,UACU,CAACmB,CAAO,GAAG;AAAA,YACT,aAAa;AAAA,cACX,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAO,GAAGpB,EAAM,QAAQ;AAAA,YACtC;AAAA,UACA;AAAA,UACU,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,YAC9B,aAAa;AAAA,cACX,cAAc;AAAA,cACd,OAAO,GAAGD,EAAM,QAAQ;AAAA,YACtC;AAAA,YACY,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAO,IAAIA,EAAM,SAAS;AAAA,YACxC;AAAA,YACY,CAACoB,CAAO,GAAG;AAAA,cACT,QAAQ;AAAA,YACtB;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,IAAInB,CAAY,OAAO,GAAG;AAAA,QACzB,CAAC,KAAKA,CAAY,MAAM,GAAG;AAAA,UACzB,OAAO;AAAA,QACjB;AAAA,QACQ,CAAC,KAAKA,CAAY,iBAAiB,GAAG;AAAA,UACpC,OAAO;AAAA,QACjB;AAAA,MACA;AAAA,MACM,CAAC,IAAIA,CAAY,QAAQ,GAAG;AAAA,QAC1B,CAAC,KAAKA,CAAY,MAAM,GAAG;AAAA,UACzB,OAAO;AAAA,QACjB;AAAA,QACQ,CAAC,KAAKA,CAAY,iBAAiB,GAAG;AAAA,UACpC,OAAO;AAAA,QACjB;AAAA,MACA;AAAA;AAAA,MAEM,CAAC,IAAIA,CAAY,QAAQA,CAAY,UAAUA,CAAY,QAAQA,CAAY,SAAS,GAAG;AAAA,QACzF,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,UACtD,CAAC,GAAGA,CAAY,UAAUA,CAAY,MAAM,GAAG;AAAA,YAC7C,aAAa;AAAA,cACX,cAAc;AAAA,cACd,OAAO,GAAGM,CAAc;AAAA,YACtC;AAAA,YACY,YAAY;AAAA,cACV,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAGN,CAAY,eAAe,GAAG;AAAA,MAChC,WAAW;AAAA,IACjB;AAAA,IACI,CAAC,GAAGA,CAAY,YAAY,GAAG;AAAA,MAC7B,CAAC,GAAGA,CAAY,eAAe,GAAG;AAAA,QAChC,WAAW;AAAA,UACT,cAAc;AAAA,UACd,OAAO;AAAA,QACjB;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACMwB,KAAe,CAAAzB,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,2BAAAI;AAAA,IACA,gBAAAqB;AAAA,IACA,gBAAAnB;AAAA,IACA,gBAAAG;AAAA,IACA,iBAAAS;AAAA,IACA,YAAAX;AAAA,EACJ,IAAMR;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAGpS,EAASA,EAASA,EAASA,EAAS,IAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MAC9E,SAAS;AAAA;AAAA,MAET,CAAC,KAAKC,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,CAAC,GAAGA,CAAY,WAAW,GAAG;AAAA,UAC5B,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,UACN,WAAW;AAAA,UACX,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,WAAW;AAAA;AAAA,UAEX,uBAAuB;AAAA,YACrB,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,YAAY,WAAWD,EAAM,kBAAkB;AAAA,YAC/C,SAAS;AAAA,YACT,eAAe;AAAA,UAC3B;AAAA,QACA;AAAA,QACQ,CAAC,GAAGC,CAAY,WAAW,GAAG;AAAA,UAC5B,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY,WAAWD,EAAM,kBAAkB;AAAA,QACzD;AAAA;AAAA,QAEQ,CAAC,GAAGC,CAAY,iBAAiB,GAAG;AAAA,UAClC,SAAS;AAAA,UACT,WAAW;AAAA,QACrB;AAAA,QACQ,CAAC,GAAGA,CAAY,wBAAwB,GAAG;AAAA,UACzC,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,eAAe;AAAA,QACzB;AAAA,QACQ,CAAC,GAAGA,CAAY,WAAW,GAAG;AAAA,UAC5B,UAAU;AAAA,UACV,SAASI;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,YAAY;AAAA,YACV,UAAU;AAAA,YACV,OAAO;AAAA,cACL,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,QAAQ;AAAA,YACR,MAAM;AAAA,cACJ,cAAc;AAAA,cACd,OAAO;AAAA,YACrB;AAAA,YACY,QAAQL,EAAM,kBAAkB;AAAA,YAChC,WAAW;AAAA,YACX,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,QACQ,CAAC,GAAGC,CAAY,UAAU,GAAGpS,EAAS;AAAA,UACpC,UAAU,GAAG6T,CAAc;AAAA,UAC3B,YAAY;AAAA,YACV,cAAc;AAAA,YACd,OAAO,GAAGnB,CAAc;AAAA,UACpC;AAAA,UACU,SAAS,KAAKP,EAAM,SAAS;AAAA,UAC7B,YAAY;AAAA,UACZ,QAAQ,GAAGA,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIQ,CAAU;AAAA,UAC5D,cAAc,GAAGR,EAAM,cAAc,MAAMA,EAAM,cAAc;AAAA,UAC/D,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,OAAOA,EAAM;AAAA,UACb,YAAY,OAAOA,EAAM,kBAAkB,IAAIA,EAAM,eAAe;AAAA,UACpE,WAAW;AAAA,YACT,OAAOU;AAAA,UACnB;AAAA,UACU,yCAAyC;AAAA,YACvC,OAAOS;AAAA,UACnB;AAAA,QACA,GAAWI,GAAcvB,CAAK,CAAC;AAAA,MAC/B;AAAA,MACM,CAAC,GAAGC,CAAY,gBAAgB,GAAG;AAAA,QACjC,MAAM;AAAA,MACd;AAAA;AAAA,MAEM,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,QAC3B,UAAU;AAAA,QACV,YAAYD,EAAM;AAAA,QAClB,eAAe;AAAA,MACvB;AAAA,IACA,CAAK,GAAGkB,GAAYlB,CAAK,CAAC,GAAG;AAAA;AAAA,MAEvB,CAAC,GAAGC,CAAY,UAAU,GAAG;AAAA,QAC3B,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO;AAAA,QACN,cAAe;AAAA,UACd,YAAY;AAAA,QACtB;AAAA,MACA;AAAA,MACM,CAAC,GAAGA,CAAY,iBAAiB,GAAG;AAAA,QAClC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,MACnB;AAAA,MACM,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,QAC3B,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MACf;AAAA,IACA,CAAK;AAAA,IACD,CAAC,GAAGA,CAAY,WAAW,GAAG;AAAA,MAC5B,CAAC,KAAKA,CAAY,iBAAiBA,CAAY,MAAM,GAAG;AAAA,QACtD,CAAC,GAAGA,CAAY,WAAW,GAAG;AAAA,UAC5B,CAAC,kBAAkBA,CAAY,mBAAmB,GAAG;AAAA,YACnD,gBAAgB;AAAA,UAC5B;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GAEA0B,KAAeC,GAAsB,QAAQ,CAAA5B,MAAS;AACpD,QAAM0B,IAAiB1B,EAAM,iBACvB6B,IAAYC,GAAW9B,GAAO;AAAA,IAClC,gBAAgBA,EAAM;AAAA,IACtB,iBAAiBA,EAAM;AAAA,IACvB,2BAA2B,IAAI0B,IAAiB,KAAK,MAAM1B,EAAM,WAAWA,EAAM,UAAU,KAAK,IAAIA,EAAM,SAAS,MAAMA,EAAM,OAAO;AAAA,IACvI,gBAAA0B;AAAA,IACA,gBAAgB1B,EAAM,YAAY;AAAA,IAClC,sBAAsB;AAAA,IACtB,wBAAwBA,EAAM;AAAA,IAC9B,kCAAkCA,EAAM;AAAA,IACxC,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,EACvB,CAAG;AACD,SAAO,CAACgB,GAAaa,CAAS,GAAGL,GAAYK,CAAS,GAAGf,GAAiBe,CAAS,GAAGpB,GAAiBoB,CAAS,GAAGzB,GAAayB,CAAS,GAAGJ,GAAaI,CAAS,GAAG9B,GAAe8B,CAAS,CAAC;AAChM,GAAG,CAAA7B,OAAU;AAAA,EACX,aAAaA,EAAM,kBAAkB;AACvC,EAAE;AC1vBF,IAAI+B,KAAO;AACJ,MAAMC,KAAY,OAChB;AAAA,EACL,WAAW;AAAA,IACT,MAAM;AAAA,EACZ;AAAA,EACI,IAAI;AAAA,IACF,MAAM;AAAA,EACZ;AAAA,EACI,gBAAgB;AAAA,EAChB,mBAAmB5O,EAAY;AAAA,EAC/B,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,MAAM;AAAA,EAC3B;AAAA,EACI,kBAAkB;AAAA,IAChB,MAAM,CAAC,QAAQ,MAAM;AAAA,EAC3B;AAAA,EACI,WAAW6O,GAAU;AAAA,EACrB,UAAUC,GAAS,CAAC,SAAS,MAAM,CAAC;AAAA,EACpC,cAAc9O,EAAY;AAAA,EAC1B,cAAc;AAAA,IACZ,MAAM;AAAA,EACZ;AAAA,EACI,aAAa6F,GAAU;AAAA,EACvB,aAAagJ,GAAU;AAAA,EACvB,wBAAwBE,GAAW;AAAA,EACnC,SAAS;AAAA,EACT,MAAMF,GAAU;AAAA,EAChB,MAAMA,GAAU;AAAA,EAChB,UAAU;AAAA,EACV,QAAQ7O,EAAY;AAAA,EACpB,UAAUA,EAAY;AAAA,EACtB,YAAYA,EAAY;AAAA,EACxB,aAAaA,EAAY;AAAA,EACzB,sBAAsBA,EAAY;AAAA;AAAA,EAElC,QAAQ6F,GAAU;AAAA,EAClB,aAAa7F,EAAY;AAAA,EACzB,aAAaA,EAAY;AAAA,EACzB,oBAAoBD,GAAU;AAClC;AAEA,SAASiP,GAAa1T,GAAU;AAC9B,SAAOA,EAAS,IAAI,CAAAsD,MAAQ;AAC1B,QAAIzC,GAAeyC,CAAI,GAAG;AACxB,YAAMhH,IAAQ6C,EAAS,CAAA,GAAImE,EAAK,SAAS,CAAA,CAAE;AAC3C,iBAAW,CAACqQ,GAAGC,CAAC,KAAK,OAAO,QAAQtX,CAAK;AACvC,eAAOA,EAAMqX,CAAC,GACdrX,EAAMuX,GAASF,CAAC,CAAC,IAAIC;AAEvB,YAAMnU,IAAQ6D,EAAK,YAAY,CAAA,GACzB/G,IAAM+G,EAAK,QAAQ,SAAYA,EAAK,MAAM,QAC1C;AAAA,QACJ,KAAAR,IAAMrD,EAAM;AAAA,QACZ,UAAAsD;AAAA,QACA,aAAA+Q;AAAA,QACA,UAAAC;AAAA,QACA,UAAA7D;AAAA,QACA,QAAArN;AAAA,QACA,wBAAAoO;AAAA,MACR,IAAU3U;AACJ,aAAO6C,EAASA,EAAS;AAAA,QACvB,KAAA5C;AAAA,MACR,GAASD,CAAK,GAAG;AAAA,QACT,MAAAgH;AAAA,QACA,WAAW7D,EAAM;AAAA,QACjB,KAAAqD;AAAA,QACA,UAAUC,MAAa,MAAMA;AAAA,QAC7B,aAAa+Q,MAAgB,MAAMA;AAAA,QACnC,UAAUC,MAAa,MAAMA;AAAA,QAC7B,UAAU7D,MAAa,MAAMA;AAAA,QAC7B,QAAQrN,MAAW,MAAMA;AAAA,QACzB,wBAAwBoO,MAA2B,MAAMA;AAAA,MACjE,CAAO;AAAA,IACH;AACA,WAAO;AAAA,EACT,CAAC,EAAE,OAAO,CAAAnO,MAAOA,CAAG;AACtB;AACA,MAAMkR,KAAezU,EAAgB;AAAA,EACnC,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOJ,EAASA,EAAS,CAAA,GAAI8U,GAAiBX,GAAS,GAAI;AAAA,IACzD,aAAa;AAAA,IACb,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,IACf;AAAA,EACA,CAAG,CAAC,GAAG;AAAA,IACH,MAAMY,GAAS;AAAA,EACnB,CAAG;AAAA,EACD,OAAO;AAAA;AAAA,EAEP,MAAM5X,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,IACN,IAAQD;AACJ,IAAA2U,GAAa7X,EAAM,gBAAgB,UAAgBA,EAAM,gBAAgB,QAAY,QAAQ,4HAA4H,GACzN6X,GAAa7X,EAAM,uBAAuB,QAAY,QAAQ,mFAAmF,GACjJ6X,GAAa1U,EAAM,uBAAuB,QAAY,QAAQ,gFAAgF;AAC9I,UAAM;AAAA,MACJ,WAAAS;AAAA,MACA,WAAAkU;AAAA,MACA,MAAA/T;AAAA,MACA,eAAAgU;AAAA,MACA,mBAAAC;AAAA,IACN,IAAQnU,GAAgB,QAAQ7D,CAAK,GAC3B,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS,GACtCiG,IAAMxD,EAAS,MAAMyR,EAAU,UAAU,KAAK,GAC9CM,IAAiB/R,EAAS,MAAM;AACpC,YAAM;AAAA,QACJ,UAAAuN;AAAA,QACA,aAAAE;AAAA,MACR,IAAU9T;AACJ,aAAI4T,MAAa,MAAS,CAAC,QAAQ,OAAO,EAAE,SAASE,CAAW,IACvD;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,MACnB,IACiBF,MAAa,KACf;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,MACnB,IAEe/Q,EAAS;AAAA,QACd,QAAQ;AAAA,QACR,SAAS;AAAA,MACnB,GAAW,OAAO+Q,KAAa,WAAWA,IAAW,CAAA,CAAE;AAAA,IAEnD,CAAC,GAEK,CAACpK,GAAQ6O,CAAS,IAAI7P,GAAS,EAAK;AAC1C,IAAAY,GAAU,MAAM;AAEd,MAAAiP,EAAUC,GAAQ,CAAE;AAAA,IACtB,CAAC;AAED,UAAM,CAACC,GAAiBC,CAAkB,IAAIC,GAAe,MAAM;AACjE,UAAI/V;AACJ,cAAQA,IAAK1C,EAAM,KAAK,CAAC,OAAO,QAAQ0C,MAAO,SAAS,SAASA,EAAG;AAAA,IACtE,GAAG;AAAA,MACD,OAAO2D,EAAS,MAAMrG,EAAM,SAAS;AAAA,MACrC,cAAcA,EAAM;AAAA,IAC1B,CAAK,GACK,CAAC6U,GAAa6D,CAAc,IAAIlQ,GAAS,MAAMxI,EAAM,KAAK,UAAU,CAAAwG,MAAOA,EAAI,QAAQ+R,EAAgB,KAAK,CAAC;AACnH,IAAA/Q,GAAY,MAAM;AAChB,UAAI9E;AACJ,UAAIiW,IAAiB3Y,EAAM,KAAK,UAAU,CAAAwG,MAAOA,EAAI,QAAQ+R,EAAgB,KAAK;AAClF,MAAII,MAAmB,OACrBA,IAAiB,KAAK,IAAI,GAAG,KAAK,IAAI9D,EAAY,OAAO7U,EAAM,KAAK,SAAS,CAAC,CAAC,GAC/EwY,GAAoB9V,IAAK1C,EAAM,KAAK2Y,CAAc,OAAO,QAAQjW,MAAO,SAAS,SAASA,EAAG,GAAG,IAElGgW,EAAeC,CAAc;AAAA,IAC/B,CAAC;AAED,UAAM,CAACC,GAAUC,CAAW,IAAIJ,GAAe,MAAM;AAAA,MACnD,OAAOpS,EAAS,MAAMrG,EAAM,EAAE;AAAA,IACpC,CAAK,GACK8Y,IAAoBzS,EAAS,MAC7BmD,EAAO,SAAS,CAAC,CAAC,QAAQ,OAAO,EAAE,SAASxJ,EAAM,WAAW,IACxD,QAEAA,EAAM,WAEhB;AACD,IAAAoJ,GAAU,MAAM;AACd,MAAKpJ,EAAM,OACT6Y,EAAY,WAAW,QAAQ,IAAI,aAAa,SAAS,SAAS9B,EAAI,EAAE,GACxEA,MAAQ;AAAA,IAEZ,CAAC;AAED,UAAMgC,IAAqB,CAAC9Y,GAAKgG,MAAM;AACrC,UAAIvD,GAAIC;AACR,OAACD,IAAK1C,EAAM,gBAAgB,QAAQ0C,MAAO,UAAkBA,EAAG,KAAK1C,GAAOC,GAAKgG,CAAC;AAClF,YAAM+S,IAAkB/Y,MAAQsY,EAAgB;AAChD,MAAAC,EAAmBvY,CAAG,GAClB+Y,OACDrW,IAAK3C,EAAM,cAAc,QAAQ2C,MAAO,UAAkBA,EAAG,KAAK3C,GAAOC,CAAG;AAAA,IAEjF;AACA,WAAA0K,GAAe;AAAA,MACb,MAAMtE,EAAS,MAAMrG,EAAM,IAAI;AAAA,MAC/B,WAAA4D;AAAA,IACN,CAAK,GACM,MAAM;AACX,YAAM;AAAA,QACJ,IAAA0C;AAAA,QACA,MAAA2S;AAAA,QACA,cAAArP;AAAA,QACA,aAAAsP;AAAA,QACA,QAAAjR;AAAA,QACA,wBAAA0M;AAAA,QACA,cAAAwE,IAAehW,EAAM;AAAA,QACrB,aAAAiW;AAAA,QACA,SAAAC;AAAA,QACA,UAAAC;AAAA,MACR,IAAUtZ,GAEEuZ,IAAc;AAAA,QAClB,IAAIX,EAAS;AAAA,QACb,WAAWL,EAAgB;AAAA,QAC3B,UAAUH,EAAe;AAAA,QACzB,aAAaU,EAAkB;AAAA,QAC/B,KAAKjP,EAAI;AAAA,QACT,QAAQL,EAAO;AAAA,MACvB;AACM,UAAI3C;AACJ,MAAIoS,MAAS,oBACXpS,IAAW;AAAA,QACT,QAAQ,CAAC2S,GAAUjP,MAAU;AAC3B,cAAI;AAAA,YACF,KAAAtK;AAAA,YACA,OAAAkG;AAAA,UACd,IAAgBoE;AACJ,cAAI7H;AACJ,WAACA,KAAK1C,EAAM,YAAY,QAAQ0C,OAAO,UAAkBA,GAAG,KAAK1C,GAAOwZ,MAAa,QAAQrT,KAAQlG,GAAKuZ,CAAQ;AAAA,QACpH;AAAA,QACA,YAAY,MAAMhV,EAAaiV,IAAe,MAAM,IAAI;AAAA,QACxD,SAAStW,EAAM,UAAUA,EAAM,UAAU,MAAMqB,EAAakV,IAAc,MAAM,IAAI;AAAA,QACpF,SAASL,MAAY;AAAA,MAC/B;AAEM,UAAIM;AACJ,YAAMC,IAAiB/W,EAASA,EAAS,CAAA,GAAI0W,CAAW,GAAG;AAAA,QACzD,oBAAoB,GAAGxB,EAAc,KAAK;AAAA,QAC1C,UAAAlR;AAAA,QACA,QAAAoB;AAAA,QACA,cAAA2B;AAAA,QACA,YAAYmP;AAAA,QACZ,aAAAK;AAAA,QACA,OAAOF;AAAA,QACP,mBAAmBlB,EAAkB;AAAA,QACrC,gBAAgB/Q,GAAWjH,EAAM,gBAAgBkY,EAAO,KAAK;AAAA,MACrE,CAAO;AACD,MAAIiB,IACFQ,IAAYR,EAAatW,EAASA,EAAS,CAAA,GAAI+W,CAAc,GAAG;AAAA,QAC9D,eAAehL;AAAA,MACzB,CAAS,CAAC,IAEF+K,IAAYnV,EAAaoK,IAAYgL,GAAgBxX,GAAKe,GAAO,CAAC,YAAY,aAAa,cAAc,oBAAoB,CAAC,CAAC;AAEjI,YAAM6Q,IAAMpQ,EAAU;AACtB,aAAOqU,EAAQzT,EAAa,OAAOE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,IAAI;AAAA,QAC7E,IAAMkD;AAAA,QACN,OAASW,GAAW+M,GAAK,GAAGA,CAAG,IAAI8E,EAAkB,KAAK,IAAI;AAAA,UAC5D,CAACZ,EAAO,KAAK,GAAG;AAAA,UAChB,CAAC,GAAGlE,CAAG,IAAIjQ,EAAK,KAAK,EAAE,GAAGA,EAAK;AAAA,UAC/B,CAAC,GAAGiQ,CAAG,OAAO,GAAG,CAAC,QAAQ,eAAe,EAAE,SAASiF,CAAI;AAAA,UACxD,CAAC,GAAGjF,CAAG,gBAAgB,GAAGiF,MAAS;AAAA,UACnC,CAAC,GAAGjF,CAAG,WAAW,GAAGsF;AAAA,UACrB,CAAC,GAAGtF,CAAG,SAAS,GAAGxK,EAAO;AAAA,UAC1B,CAAC,GAAGwK,CAAG,WAAW,GAAGiF,MAAS;AAAA,UAC9B,CAAC,GAAGjF,CAAG,MAAM,GAAGnK,EAAI;AAAA,QAC9B,GAAWzG,EAAM,KAAK;AAAA,MACtB,CAAO,GAAG,CAACuW,GAAWnV,EAAakQ,IAAchQ,EAAcA,EAAc;AAAA,QACrE,wBAA0BiQ;AAAA,MAClC,GAAS4E,CAAW,GAAG,IAAI;AAAA,QACnB,UAAYnB,EAAe;AAAA,MACnC,CAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC,GACDyB,KAAe5W,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiBX,MAAa;AAAA,IACnC,aAAa;AAAA,IACb,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,IACf;AAAA,EACA,CAAG;AAAA,EACD,OAAO;AAAA;AAAA,EAEP,MAAMhX,GAAOyT,GAAO;AAClB,QAAI;AAAA,MACF,OAAArQ;AAAA,MACA,OAAAD;AAAA,MACA,MAAA2W;AAAA,IACN,IAAQrG;AACJ,UAAMsG,IAAe,CAAA9Z,MAAO;AAC1B,MAAA6Z,EAAK,oBAAoB7Z,CAAG,GAC5B6Z,EAAK,UAAU7Z,CAAG;AAAA,IACpB;AACA,WAAO,MAAM;AACX,UAAIyC;AACJ,YAAM2E,IAAO+P,GAAazT,IAAiBjB,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC,CAAC;AACnH,aAAOqB,EAAakT,IAAchT,EAAcA,EAAcA,EAAc,CAAA,GAAI5B,GAAK9C,GAAO,CAAC,oBAAoB,CAAC,CAAC,GAAGoD,CAAK,GAAG,CAAA,GAAI;AAAA,QAChI,UAAY2W;AAAA,QACZ,MAAQ1S;AAAA,MAChB,CAAO,GAAGlE,CAAK;AAAA,IACX;AAAA,EACF;AACF,CAAC,GCjUK6W,KAAe,OAAO;AAAA,EAC1B,KAAK7R,GAAU;AAAA,EACf,UAAU;AAAA,IACR,MAAM;AAAA,EACV;AAAA,EACE,aAAa;AAAA,IACX,MAAM;AAAA,EACV;AAAA,EACE,UAAU;AAAA,IACR,MAAM;AAAA,EACV;AAAA,EACE,UAAU;AAAA,IACR,MAAM;AAAA,EACV;AAAA,EACE,QAAQ;AAAA,IACN,MAAM;AAAA,EACV;AAAA,EACE,wBAAwB;AAAA,IACtB,MAAM;AAAA,EACV;AAAA;AAAA,EAEE,WAAW;AAAA,IACT,MAAM;AAAA,EACV;AAAA,EACE,QAAQ;AAAA,IACN,MAAM,CAAC,QAAQ,MAAM;AAAA,EACzB;AAAA,EACE,IAAI;AAAA,IACF,MAAM;AAAA,EACV;AAAA;AAEA,IACA8R,KAAehX,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,OAAO+W,GAAY;AAAA,EACnB,OAAO;AAAA,EACP,MAAMha,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,IACN,IAAQD;AACJ,UAAMgX,IAAU1W,GAAIxD,EAAM,WAAW;AACrC,IAAAqJ,GAAM,CAAC,MAAMrJ,EAAM,QAAQ,MAAMA,EAAM,sBAAsB,GAAG,MAAM;AACpE,MAAIA,EAAM,SACRka,EAAQ,QAAQ,KACPla,EAAM,2BACfka,EAAQ,QAAQ;AAAA,IAEpB,GAAG;AAAA,MACD,WAAW;AAAA,IACjB,CAAK;AACD,UAAMC,IAAc9T,EAAS,MACtBrG,EAAM,SAaJ,CAAA,IAZDA,EAAM,WACD;AAAA,MACL,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,IACvB,IAEiB;AAAA,MACL,SAAS;AAAA,IACrB,CAIK;AACD,WAAO,MAAM;AACX,UAAI0C;AACJ,YAAM;AAAA,QACJ,WAAAkB;AAAA,QACA,aAAA4T;AAAA,QACA,IAAAlR;AAAA,QACA,QAAAC;AAAA,QACA,QAAA6T;AAAA,MACR,IAAUpa;AACJ,aAAOwE,EAAa,OAAO;AAAA,QACzB,IAAM8B,KAAM,GAAGA,CAAE,UAAU8T,CAAM;AAAA,QACjC,MAAQ;AAAA,QACR,UAAY7T,IAAS,IAAI;AAAA,QACzB,mBAAmBD,KAAM,GAAGA,CAAE,QAAQ8T,CAAM;AAAA,QAC5C,eAAe,CAAC7T;AAAA,QAChB,OAAS,CAAC4T,EAAY,OAAO/W,EAAM,KAAK;AAAA,QACxC,OAAS,CAAC,GAAGQ,CAAS,YAAY2C,KAAU,GAAG3C,CAAS,mBAAmBR,EAAM,KAAK;AAAA,MAC9F,GAAS,EAAEmD,KAAU2T,EAAQ,SAAS1C,QAAkB9U,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,EAAE,CAAC;AAAA,IAC7H;AAAA,EACF;AACF,CAAC;AC9FD0W,GAAK,UAAUQ;AAEfR,GAAK,UAAU,SAAUjV,GAAK;AAC5B,SAAAA,EAAI,UAAUiV,GAAK,MAAMA,EAAI,GAC7BjV,EAAI,UAAUyV,GAAQ,MAAMA,EAAO,GAC5BzV;AACT;ACLA,MAAA0V,KAAeC,GAAYC,EAAG;ACD9B,IAAIC,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,GAAI,EAAC,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0IAAyI,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,oUAAmU,EAAE,CAAE,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCrxB,SAAS/V,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIN,KAAqB,SAA4Bza,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQE;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAV,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIW,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,GAAI,EAAC,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0VAAyV,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0IAAyI,EAAE,CAAE,EAAC,GAAI,MAAQ,gBAAgB,OAAS,WAAU;ACC7yB,SAAS1W,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIK,KAAsB,SAA6Bpb,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQI;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;ACnB5B,MAAME,KAAmB,CAAC,UAAU,aAAa,UAAU,SAAS,GAG9DC,KAAgB,OAAO;AAAA,EAClC,WAAW;AAAA,EACX,MAAMtE,GAAU;AAAA,EAChB,SAAS;AAAA,EACT,QAAQ7O,EAAY;AAAA,EACpB,QAAQ6O,GAAU;AAAA,EAClB,UAAUE,GAAW;AAAA,EACrB,aAAa;AAAA,EACb,eAAeF,GAAU;AAAA,EACzB,aAAauE,GAAO;AAAA,EACpB,YAAY;AAAA;AAAA,EAEZ,OAAO;AAAA,EACP,SAASvN,GAAU;AAAA,EACnB,WAAW;AAAA,EACX,aAAagJ,GAAU;AAAA,EACvB,MAAMC,GAAS,CAAC,QAAQ,QAAQ,KAAK,CAAC;AAAA,EACtC,OAAO;AAAA;AAAA,EAEP,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,gBAAgBD,GAAU;AAC5B;ACxBO,SAASwE,GAAcC,GAAU;AACtC,SAAI,CAACA,KAAYA,IAAW,IACnB,IAELA,IAAW,MACN,MAEFA;AACT;AACO,SAASC,GAAkBzY,GAAM;AACtC,MAAI;AAAA,IACF,SAAA0Y;AAAA,IACA,gBAAAC;AAAA,EACJ,IAAM3Y,GACA4Y,IAAUD;AAEd,SAAID,KAAW,cAAcA,MAC3B/D,GAAW,IAAO,YAAY,yEAAyE,GACvGiE,IAAUF,EAAQ,WAEhBA,KAAW,aAAaA,MAC1BE,IAAUF,EAAQ,UAEbE;AACT;AACO,SAASC,GAAcxR,GAAO;AACnC,MAAI;AAAA,IACF,SAAAuR;AAAA,IACA,SAAAF;AAAA,IACA,gBAAAC;AAAA,EACJ,IAAMtR;AACJ,QAAMyR,IAAqBP,GAAcE,GAAkB;AAAA,IACzD,SAAAC;AAAA,IACA,gBAAAC;AAAA,EACJ,CAAG,CAAC;AACF,SAAO,CAACG,GAAoBP,GAAcA,GAAcK,CAAO,IAAIE,CAAkB,CAAC;AACxF;AACO,SAASC,GAAexI,GAAO;AACpC,MAAI;AAAA,IACF,SAAAmI,IAAU,CAAA;AAAA,IACV,aAAAM;AAAA,EACJ,IAAMzI;AACJ,QAAM;AAAA,IACJ,aAAa0I;AAAA,EACjB,IAAMP;AACJ,SAAO,CAACO,KAAgBC,GAAoB,OAAOF,KAAe,IAAI;AACxE;AACO,MAAMG,KAAU,CAACtY,GAAMkV,GAAMvF,MAAU;AAC5C,MAAIhR,GAAIC,GAAImB,GAAI2O;AAChB,MAAIjE,IAAQ,IACRC,IAAS;AACb,MAAIwK,MAAS,QAAQ;AACnB,UAAMqD,IAAQ5I,EAAM,OACd6I,IAAc7I,EAAM;AAC1B,IAAI,OAAO3P,KAAS,YAAY,OAAOA,IAAS,OAC9CyK,IAAQzK,MAAS,UAAU,IAAI,IAC/B0K,IAAS8N,KAA+D,KAC/D,OAAOxY,KAAS,WACzB,CAACyK,GAAOC,CAAM,IAAI,CAAC1K,GAAMA,CAAI,IAE7B,CAACyK,IAAQ,IAAIC,IAAS,CAAC,IAAI1K,GAE7ByK,KAAS8N;AAAA,EACX,WAAWrD,MAAS,QAAQ;AAC1B,UAAMsD,IAAc7I,KAAU,OAA2B,SAASA,EAAM;AACxE,IAAI,OAAO3P,KAAS,YAAY,OAAOA,IAAS,MAC9C0K,IAAS8N,MAAgBxY,MAAS,UAAU,IAAI,KACvC,OAAOA,KAAS,WACzB,CAACyK,GAAOC,CAAM,IAAI,CAAC1K,GAAMA,CAAI,IAE7B,CAACyK,IAAQ,IAAIC,IAAS,CAAC,IAAI1K;AAAA,EAE/B,MAAO,EAAIkV,MAAS,YAAYA,MAAS,iBACnC,OAAOlV,KAAS,YAAY,OAAOA,IAAS,MAC9C,CAACyK,GAAOC,CAAM,IAAI1K,MAAS,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAChD,OAAOA,KAAS,WACzB,CAACyK,GAAOC,CAAM,IAAI,CAAC1K,GAAMA,CAAI,KAEzB,QAAQ,IAAI,aAAa,gBAC3B8T,GAAW,IAAO,YAAY,wGAAwG,GAExIrJ,KAAS7L,KAAMD,IAAKqB,EAAK,CAAC,OAAO,QAAQrB,MAAO,SAASA,IAAKqB,EAAK,CAAC,OAAO,QAAQpB,MAAO,SAASA,IAAK,KACxG8L,KAAUgE,KAAM3O,IAAKC,EAAK,CAAC,OAAO,QAAQD,MAAO,SAASA,IAAKC,EAAK,CAAC,OAAO,QAAQ0O,MAAO,SAASA,IAAK;AAG7G,SAAO;AAAA,IACL,OAAAjE;AAAA,IACA,QAAAC;AAAA,EACJ;AACA;ACxFA,IAAI+N,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAOO,MAAMC,KAAY,MAAM9Z,EAASA,EAAS,CAAA,GAAI0Y,GAAa,CAAE,GAAG;AAAA,EACrE,aAAaC,GAAO;AAAA,EACpB,WAAWvE,GAAU;AACvB,CAAC,GAUY2F,KAAe,CAAAC,MAAa;AACvC,MAAIC,IAAU,CAAA;AACd,gBAAO,KAAKD,CAAS,EAAE,QAAQ,CAAA5c,MAAO;AACpC,UAAM8c,IAAe,WAAW9c,EAAI,QAAQ,MAAM,EAAE,CAAC;AACrD,IAAK,MAAM8c,CAAY,KACrBD,EAAQ,KAAK;AAAA,MACX,KAAKC;AAAA,MACL,OAAOF,EAAU5c,CAAG;AAAA,IAC5B,CAAO;AAAA,EAEL,CAAC,GACD6c,IAAUA,EAAQ,KAAK,CAACE,GAAGC,MAAMD,EAAE,MAAMC,EAAE,GAAG,GACvCH,EAAQ,IAAI,CAAA5Z,MAAQ;AACzB,QAAI;AAAA,MACF,KAAAjD;AAAA,MACA,OAAAP;AAAA,IACN,IAAQwD;AACJ,WAAO,GAAGxD,CAAK,IAAIO,CAAG;AAAA,EACxB,CAAC,EAAE,KAAK,IAAI;AACd,GAcaid,KAAiB,CAAChB,GAAaiB,MAAoB;AAC9D,QAAM;AAAA,IACF,MAAAC,IAAOhB,GAAoB;AAAA,IAC3B,IAAAiB,IAAKjB,GAAoB;AAAA,IACzB,WAAAtE,IAAYqF,MAAoB,QAAQ,YAAY;AAAA,EAC1D,IAAQjB,GACJoB,IAAOd,GAAON,GAAa,CAAC,QAAQ,MAAM,WAAW,CAAC;AACxD,MAAI,OAAO,KAAKoB,CAAI,EAAE,WAAW,GAAG;AAClC,UAAMC,IAAkBX,GAAaU,CAAI;AACzC,WAAO;AAAA,MACL,iBAAiB,mBAAmBxF,CAAS,KAAKyF,CAAe;AAAA,IACvE;AAAA,EACE;AACA,SAAO;AAAA,IACL,iBAAiB,mBAAmBzF,CAAS,KAAKsF,CAAI,KAAKC,CAAE;AAAA,EACjE;AACA,GACAG,KAAeva,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0Z,GAAS;AAAA,EAChB,MAAM3c,GAAOuK,GAAO;AAClB,QAAI;AAAA,MACF,OAAApH;AAAA,MACA,OAAAC;AAAA,IACN,IAAQmH;AACJ,UAAMkT,IAAkBpX,EAAS,MAAM;AACrC,YAAM;AAAA,QACJ,aAAA6V;AAAA,QACA,WAAApE;AAAA,MACR,IAAU9X;AACJ,aAAOkc,KAAe,OAAOA,KAAgB,WAAWgB,GAAehB,GAAapE,CAAS,IAAI;AAAA,QAC/F,iBAAiBoE;AAAA,MACzB;AAAA,IACI,CAAC,GACKwB,IAAerX,EAAS,MAAMrG,EAAM,kBAAkB,YAAYA,EAAM,kBAAkB,SAAS,IAAI,MAAS,GAChH2d,IAAatX,EAAS,MAAMrG,EAAM,aAAa;AAAA,MACnD,iBAAiBA,EAAM;AAAA,IAC7B,IAAQ,MAAS,GACP4d,IAAavX,EAAS,MAAM;AAChC,UAAI3D;AACJ,cAAQA,IAAK1C,EAAM,UAAU,QAAQ0C,MAAO,SAASA,IAAK,CAAC,IAAI1C,EAAM,gBAAgBA,EAAM,SAAS,UAAU,IAAI,EAAE;AAAA,IACtH,CAAC,GACK6d,IAAUxX,EAAS,MAAMgW,GAAQuB,EAAW,OAAO,QAAQ;AAAA,MAC/D,aAAa5d,EAAM;AAAA,IACzB,CAAK,CAAC;AACF,IAAI,QAAQ,IAAI,aAAa,gBAC3B6X,GAAW,iBAAiB7X,GAAO,YAAY,yDAAyD;AAE1G,UAAM8d,IAAezX,EAAS,MAAM;AAClC,YAAM;AAAA,QACJ,SAAAyV;AAAA,MACR,IAAU9b;AACJ,aAAO6C,EAAS;AAAA,QACd,OAAO,GAAG4Y,GAAcK,CAAO,CAAC;AAAA,QAChC,QAAQ,GAAG+B,EAAQ,MAAM,MAAM;AAAA,QAC/B,cAAcH,EAAa;AAAA,MACnC,GAASD,EAAgB,KAAK;AAAA,IAC1B,CAAC,GACK5B,IAAiBxV,EAAS,MACvBsV,GAAkB3b,CAAK,CAC/B,GACK+d,IAAsB1X,EAAS,MAAM;AACzC,YAAM;AAAA,QACJ,SAAAuV;AAAA,MACR,IAAU5b;AACJ,aAAO;AAAA,QACL,OAAO,GAAGyb,GAAcI,EAAe,KAAK,CAAC;AAAA,QAC7C,QAAQ,GAAGgC,EAAQ,MAAM,MAAM;AAAA,QAC/B,cAAcH,EAAa;AAAA,QAC3B,iBAAiB9B,KAAY,OAA6B,SAASA,EAAQ;AAAA,MACnF;AAAA,IACI,CAAC,GACKoC,IAAa;AAAA,MACjB,OAAOH,EAAQ,MAAM,QAAQ,IAAI,SAASA,EAAQ,MAAM;AAAA,MACxD,QAAQ,GAAGA,EAAQ,MAAM,MAAM;AAAA,IACrC;AACI,WAAO,MAAM;AACX,UAAInb;AACJ,aAAO8B,EAAayZ,IAAW,MAAM,CAACzZ,EAAa,OAAOE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,CAAA,GAAI;AAAA,QACpG,OAAS,CAAC,GAAGpD,EAAM,SAAS,UAAUoD,EAAM,KAAK;AAAA,QACjD,OAAS,CAACA,EAAM,OAAO4a,CAAU;AAAA,MACzC,CAAO,GAAG,CAACxZ,EAAa,OAAO;AAAA,QACvB,OAAS,GAAGxE,EAAM,SAAS;AAAA,QAC3B,OAAS2d,EAAW;AAAA,MAC5B,GAAS,CAACnZ,EAAa,OAAO;AAAA,QACtB,OAAS,GAAGxE,EAAM,SAAS;AAAA,QAC3B,OAAS8d,EAAa;AAAA,MAC9B,GAAS,IAAI,GAAGjC,EAAe,UAAU,SAAYrX,EAAa,OAAO;AAAA,QACjE,OAAS,GAAGxE,EAAM,SAAS;AAAA,QAC3B,OAAS+d,EAAoB;AAAA,MACrC,GAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAIrb,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC,CAAC;AAAA,IAChG;AAAA,EACF;AACF,CAAC,GC/JY+a,KAAe;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AACd,GACaC,KAAwB,CAAAtc,MAAS;AAC5C,QAAMuc,IAAgB5a,GAAI,IAAI;AAC9B,SAAA6a,GAAU,MAAM;AACd,UAAMjS,IAAM,KAAK,IAAG;AACpB,QAAIkS,IAAU;AACd,IAAAzc,EAAM,MAAM,QAAQ,CAAA0c,MAAO;AACzB,YAAMtd,KAAQsd,KAAQ,OAAyB,SAASA,EAAI,QAAQA;AACpE,UAAI,CAACtd;AACH;AAEF,MAAAqd,IAAU;AACV,YAAME,IAAYvd,EAAK;AACvB,MAAAud,EAAU,qBAAqB,uBAC3BJ,EAAc,SAAShS,IAAMgS,EAAc,QAAQ,QACrDI,EAAU,qBAAqB;AAAA,IAEnC,CAAC,GACGF,MACFF,EAAc,QAAQ,KAAK,IAAG;AAAA,EAElC,CAAC,GACMvc;AACT,GChCa4c,KAAY;AAAA,EACvB,WAAW;AAAA,EACX,aAAa;AAAA,IACX,MAAM;AAAA,EACV;AAAA,EACE,SAAS;AAAA,IACP,MAAM,CAAC,OAAO,MAAM;AAAA,EACxB;AAAA,EACE,WAAW;AAAA,EACX,aAAa;AAAA,IACX,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,EAChC;AAAA,EACE,eAAe;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACE,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AACd;ACjBA,IAAIjC,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAMA,IAAIgC,KAAe;AACnB,SAASC,GAAqB7C,GAAS;AACrC,SAAO,CAACA,EAAQ,QAAQ,KAAK,EAAE;AACjC;AACA,SAAS8C,GAAQlf,GAAO;AACtB,SAAO,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK;AAC9C;AACA,SAASmf,GAAcjW,GAAQkT,GAASI,GAAaK,GAAa;AAChE,MAAIuC,IAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,GAChFC,IAAc,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACxD,QAAMC,IAAS,KAAKzC,IAAc;AAClC,MAAI0C,IAAiB,GACjBC,IAAiB,CAACF,GAClBG,IAAe,GACfC,IAAe,KAAKJ;AACxB,UAAQD,GAAW;AAAA,IACjB,KAAK;AACH,MAAAE,IAAiB,CAACD,GAClBE,IAAiB,GACjBC,IAAe,IAAIH,GACnBI,IAAe;AACf;AAAA,IACF,KAAK;AACH,MAAAH,IAAiBD,GACjBE,IAAiB,GACjBC,IAAe,KAAKH,GACpBI,IAAe;AACf;AAAA,IACF,KAAK;AACH,MAAAF,IAAiBF,GACjBI,IAAe,IAAIJ;AACnB;AAAA,EAEN;AACE,QAAMK,IAAa,aAAaJ,CAAc,IAAIC,CAAc;AAAA,OAC3DF,CAAM,IAAIA,CAAM,UAAUG,CAAY,IAAI,CAACC,CAAY;AAAA,OACvDJ,CAAM,IAAIA,CAAM,UAAU,CAACG,CAAY,IAAIC,CAAY,IACtDrW,IAAM,KAAK,KAAK,IAAIiW,GACpBR,IAAY;AAAA,IAChB,QAAQtC;AAAA,IACR,iBAAiB,GAAGJ,IAAU,OAAO/S,IAAM+V,EAAU,MAAM/V,CAAG;AAAA,IAC9D,kBAAkB,IAAI+V,IAAY,IAAIlW,IAAS,OAAOG,IAAM+V,EAAU;AAAA,IACtE,YAAY;AAAA;AAAA,EAChB;AACE,SAAO;AAAA,IACL,YAAAO;AAAA,IACA,WAAAb;AAAA,EACJ;AACA;AACA,MAAAc,KAAerc,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,OAAO0U,GAAiB8G,IAAWP,EAAY;AAAA,EAC/C,MAAMle,GAAO;AACX,IAAA0e,MAAgB;AAChB,UAAMa,IAAa/b,GAAIkb,EAAY,GAC7Bc,IAAcnZ,EAAS,MAAMuY,GAAQ5e,EAAM,OAAO,CAAC,GACnDyf,IAAkBpZ,EAAS,MAAMuY,GAAQ5e,EAAM,WAAW,CAAC,GAC3D,CAAC6N,GAAQhM,CAAK,IAAI8L,GAAO;AAC/B,IAAAwQ,GAAsBtc,CAAK;AAC3B,UAAM6d,IAAe,MAAM;AACzB,YAAM;AAAA,QACJ,WAAA9b;AAAA,QACA,aAAA2Y;AAAA,QACA,eAAAoD;AAAA,QACA,WAAAb;AAAA,QACA,aAAAC;AAAA,MACR,IAAU/e;AACJ,UAAI4f,IAAW;AACf,aAAOJ,EAAY,MAAM,IAAI,CAACK,GAAKrgB,MAAU;AAC3C,cAAMsgB,IAAQL,EAAgB,MAAMjgB,CAAK,KAAKigB,EAAgB,MAAMA,EAAgB,MAAM,SAAS,CAAC,GAC9FM,IAAS,OAAO,UAAU,SAAS,KAAKD,CAAK,MAAM,oBAAoB,QAAQlc,CAAS,aAAa2b,EAAW,KAAK,MAAM,IAC3H;AAAA,UACJ,YAAAF;AAAA,UACA,WAAAb;AAAA,QACV,IAAYK,GAAce,GAAUC,GAAKC,GAAOvD,GAAauC,GAAWC,CAAW;AAC3E,QAAAa,KAAYC;AACZ,cAAMG,IAAY;AAAA,UAChB,KAAKxgB;AAAA,UACL,GAAG6f;AAAA,UACH,QAAAU;AAAA,UACA,kBAAkBJ;AAAA,UAClB,gBAAgBpD;AAAA,UAChB,SAASsD,MAAQ,IAAI,IAAI;AAAA,UACzB,gBAAgB;AAAA,UAChB,OAAO,GAAGjc,CAAS;AAAA,UACnB,OAAO4a;AAAA,QACjB;AACQ,eAAOha,EAAa,QAAQE,EAAc;AAAA,UACxC,KAAOmJ,EAAOrO,CAAK;AAAA,QAC7B,GAAWwgB,CAAS,GAAG,IAAI;AAAA,MACrB,CAAC;AAAA,IACH;AACA,WAAO,MAAM;AACX,YAAM;AAAA,QACF,WAAApc;AAAA,QACA,aAAA2Y;AAAA,QACA,YAAA0D;AAAA,QACA,WAAAnB;AAAA,QACA,aAAAC;AAAA,QACA,YAAAmB;AAAA,QACA,eAAAP;AAAA,QACA,aAAAzD;AAAA,MACV,IAAYlc,GACJmgB,IAAY3D,GAAOxc,GAAO,CAAC,aAAa,eAAe,cAAc,aAAa,eAAe,cAAc,iBAAiB,aAAa,CAAC,GAC1I;AAAA,QACJ,YAAAqf;AAAA,QACA,WAAAb;AAAA,MACR,IAAUK,GAAc,GAAG,KAAKqB,GAAY3D,GAAauC,GAAWC,CAAW;AACzE,aAAOoB,EAAU;AACjB,YAAMC,IAAWX,EAAgB,MAAM,KAAK,CAAAK,MAAS,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM,iBAAiB,GAC1GO,IAAY;AAAA,QAChB,GAAGhB;AAAA,QACH,QAAQa;AAAA,QACR,kBAAkBP;AAAA,QAClB,gBAAgBM,KAAc1D;AAAA,QAC9B,gBAAgB;AAAA,QAChB,OAAO,GAAG3Y,CAAS;AAAA,QACnB,OAAO4a;AAAA,MACf;AACM,aAAOha,EAAa,OAAOE,EAAc;AAAA,QACvC,OAAS,GAAGd,CAAS;AAAA,QACrB,SAAW;AAAA,MACnB,GAASuc,CAAS,GAAG,CAACC,KAAY5b,EAAa,QAAQ,MAAM,CAACA,EAAa,kBAAkB;AAAA,QACrF,IAAM,GAAGZ,CAAS,aAAa2b,EAAW,KAAK;AAAA,QAC/C,IAAM;AAAA,QACN,IAAM;AAAA,QACN,IAAM;AAAA,QACN,IAAM;AAAA,MACd,GAAS,CAAC,OAAO,KAAKa,CAAQ,EAAE,KAAK,CAACpD,GAAGC,MAAM0B,GAAqB3B,CAAC,IAAI2B,GAAqB1B,CAAC,CAAC,EAAE,IAAI,CAAChd,GAAKT,MAAUgF,EAAa,QAAQ;AAAA,QACnI,KAAOhF;AAAA,QACP,QAAUS;AAAA,QACV,cAAcmgB,EAASngB,CAAG;AAAA,MAClC,GAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGuE,EAAa,QAAQ6b,GAAW,IAAI,GAAGX,IAAe,QAAO,CAAE,CAAC;AAAA,IACjF;AAAA,EACF;AACF,CAAC,GC/IYY,KAAc,MAAMzd,EAASA,EAAS,CAAA,GAAI0Y,GAAa,CAAE,GAAG;AAAA,EACvE,aAAaC,GAAO;AACtB,CAAC,GACK+E,KAA0B,GAC1BC,KAAgB,CAAAhS,MAAS+R,KAA0B/R,IAAQ,KACjEiS,KAAexd,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiB2I,MAAe;AAAA,IACrC,YAAY;AAAA,EAChB,CAAG;AAAA,EACD,MAAMtgB,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,IACN,IAAQF;AACJ,UAAMwd,IAAcra,EAAS,MAAM;AACjC,UAAI3D;AACJ,cAAQA,IAAK1C,EAAM,WAAW,QAAQ0C,MAAO,SAASA,IAAK;AAAA,IAC7D,CAAC,GACKkb,IAAavX,EAAS,MAAM;AAChC,UAAI3D;AACJ,cAAQA,IAAK1C,EAAM,UAAU,QAAQ0C,MAAO,SAASA,IAAK,CAACge,EAAY,OAAOA,EAAY,KAAK;AAAA,IACjG,CAAC,GACK7C,IAAUxX,EAAS,MAAMgW,GAAQuB,EAAW,OAAO,QAAQ,CAAC,GAC5D+C,IAASta,EAAS,MAAM;AAE5B,UAAIrG,EAAM,aAAaA,EAAM,cAAc;AACzC,eAAOA,EAAM;AAEf,UAAIA,EAAM,SAAS;AACjB,eAAO;AAAA,IAGX,CAAC,GACK4gB,IAAcva,EAAS,OACpB;AAAA,MACL,OAAO,GAAGwX,EAAQ,MAAM,KAAK;AAAA,MAC7B,QAAQ,GAAGA,EAAQ,MAAM,MAAM;AAAA,MAC/B,UAAU,GAAGA,EAAQ,MAAM,QAAQ,OAAO,CAAC;AAAA,IACnD,EACK,GACKgD,IAAcxa,EAAS,MAAM;AACjC,UAAI3D;AACJ,cAAQA,IAAK1C,EAAM,iBAAiB,QAAQ0C,MAAO,SAASA,IAAK,KAAK,IAAI8d,GAAc3C,EAAQ,MAAM,KAAK,GAAG,CAAC;AAAA,IACjH,CAAC,GACKiD,IAASza,EAAS,MAAMrG,EAAM,eAAeA,EAAM,SAAS,eAAe,YAAY,MAAS,GAEhG8b,IAAUzV,EAAS,MAAM0V,GAAc/b,CAAK,CAAC,GAC7C+gB,IAAa1a,EAAS,MAAM,OAAO,UAAU,SAAS,KAAKrG,EAAM,WAAW,MAAM,iBAAiB,GACnGkc,IAAc7V,EAAS,MAAM4V,GAAe;AAAA,MAChD,SAASjc,EAAM;AAAA,MACf,aAAaA,EAAM;AAAA,IACzB,CAAK,CAAC,GACIghB,IAAmB3a,EAAS,OAAO;AAAA,MACvC,CAAC,GAAGrG,EAAM,SAAS,QAAQ,GAAG;AAAA,MAC9B,CAAC,GAAGA,EAAM,SAAS,kBAAkB,GAAG+gB,EAAW;AAAA,IACzD,EAAM;AACF,WAAO,MAAM;AACX,UAAIre;AACJ,YAAMue,IAAgBzc,EAAa8a,IAAU;AAAA,QAC3C,SAAWxD,EAAQ;AAAA,QACnB,aAAe+E,EAAY;AAAA,QAC3B,YAAcA,EAAY;AAAA,QAC1B,aAAe3E,EAAY;AAAA,QAC3B,eAAiBlc,EAAM;AAAA,QACvB,YAAcA,EAAM;AAAA,QACpB,WAAaA,EAAM;AAAA,QACnB,WAAa2gB,EAAO;AAAA,QACpB,aAAeG,EAAO;AAAA,MAC9B,GAAS,IAAI;AACP,aAAOtc,EAAa,OAAOE,EAAcA,EAAc,IAAItB,CAAK,GAAG,IAAI;AAAA,QACrE,OAAS,CAAC4d,EAAiB,OAAO5d,EAAM,KAAK;AAAA,QAC7C,OAAS,CAACA,EAAM,OAAOwd,EAAY,KAAK;AAAA,MAChD,CAAO,GAAG,CAAC/C,EAAQ,MAAM,SAAS,KAAKrZ,EAAa0c,IAAS,MAAM;AAAA,QAC3D,SAAS,MAAM,CAAC1c,EAAa,QAAQ,MAAM,CAACyc,CAAa,CAAC,CAAC;AAAA,QAC3D,OAAO9d,EAAM;AAAA,MACrB,CAAO,IAAIqB,EAAayZ,IAAW,MAAM,CAACgD,IAAgBve,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC,CAAC,CAAC,CAAC;AAAA,IAChI;AAAA,EACF;AACF,CAAC,GCvFYge,KAAa,MAAMte,EAASA,EAAS,CAAA,GAAI0Y,GAAa,CAAE,GAAG;AAAA,EACtE,OAAO;AAAA,EACP,aAAarE,GAAQ;AAAA,EACrB,YAAY;AACd,CAAC,GACDkK,KAAene,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,OAAOke,GAAU;AAAA,EACjB,MAAMnhB,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,IACN,IAAQD;AACJ,UAAMme,IAAUhb,EAAS,MAAM,KAAK,MAAMrG,EAAM,UAAUA,EAAM,WAAW,KAAK,IAAI,CAAC,GAC/E4d,IAAavX,EAAS,MAAM;AAChC,UAAI3D;AACJ,cAAQA,IAAK1C,EAAM,UAAU,QAAQ0C,MAAO,SAASA,IAAK,CAAC1C,EAAM,SAAS,UAAU,IAAI,IAAIA,EAAM,eAAe,CAAC;AAAA,IACpH,CAAC,GACK6d,IAAUxX,EAAS,MAAMgW,GAAQuB,EAAW,OAAO,QAAQ;AAAA,MAC/D,OAAO5d,EAAM;AAAA,MACb,aAAaA,EAAM,eAAe;AAAA,IACxC,CAAK,CAAC,GACIshB,IAAcjb,EAAS,MAAM;AACjC,YAAM;AAAA,QACJ,OAAAiW;AAAA,QACA,aAAAJ;AAAA,QACA,YAAAgE;AAAA,QACA,WAAAtc;AAAA,MACR,IAAU5D,GACEuhB,IAAO,CAAA;AACb,eAAS1Z,IAAI,GAAGA,IAAIyU,GAAOzU,KAAK,GAAG;AACjC,cAAMiY,IAAQ,MAAM,QAAQ5D,CAAW,IAAIA,EAAYrU,CAAC,IAAIqU,GACtD9X,IAAM;AAAA,UACV,CAAC,GAAGR,CAAS,aAAa,GAAG;AAAA,UAC7B,CAAC,GAAGA,CAAS,oBAAoB,GAAGiE,KAAKwZ,EAAQ,QAAQ;AAAA,QACnE;AACQ,QAAAE,EAAK,KAAK/c,EAAa,OAAO;AAAA,UAC5B,KAAOqD;AAAA,UACP,OAASzD;AAAA,UACT,OAAS;AAAA,YACP,iBAAiByD,KAAKwZ,EAAQ,QAAQ,IAAIvB,IAAQI;AAAA,YAClD,OAAO,GAAGrC,EAAQ,MAAM,QAAQvB,CAAK;AAAA,YACrC,QAAQ,GAAGuB,EAAQ,MAAM,MAAM;AAAA,UAC3C;AAAA,QACA,GAAW,IAAI,CAAC;AAAA,MACV;AACA,aAAO0D;AAAA,IACT,CAAC;AACD,WAAO,MAAM;AACX,UAAI7e;AACJ,aAAO8B,EAAa,OAAO;AAAA,QACzB,OAAS,GAAGxE,EAAM,SAAS;AAAA,MACnC,GAAS,CAACshB,EAAY,QAAQ5e,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC,CAAC;AAAA,IAClG;AAAA,EACF;AACF,CAAC,GC3DKqe,KAAoB,IAAIC,GAAU,qBAAqB;AAAA,EAC3D,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,SAAS;AAAA,EACb;AAAA,EACE,OAAO;AAAA,IACL,WAAW;AAAA,IACX,SAAS;AAAA,EACb;AAAA,EACE,IAAI;AAAA,IACF,WAAW;AAAA,IACX,SAAS;AAAA,EACb;AACA,CAAC,GACKC,KAAe,CAAA1M,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAc2M;AAAA,IACd,SAASC;AAAA,EACb,IAAM5M;AACJ,SAAO;AAAA,IACL,CAAC2M,CAAW,GAAG9e,EAASA,EAAS,CAAA,GAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MAC3D,SAAS;AAAA,MACT,SAAS;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,MACM,UAAU;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,QACP,UAAUA,EAAM;AAAA,QAChB,iBAAiBA,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,MAC5B;AAAA,MACM,CAAC,GAAG2M,CAAW,QAAQ,GAAG;AAAA,QACxB,SAAS;AAAA,QACT,OAAO;AAAA,MACf;AAAA,MACM,CAAC,IAAIA,CAAW,YAAY,GAAG;AAAA,QAC7B,CAAC,GAAGA,CAAW,QAAQ,GAAG;AAAA,UACxB,iBAAiB,eAAe3M,EAAM,QAAQ;AAAA,UAC9C,kBAAkB,cAAcA,EAAM,SAAS;AAAA,QACzD;AAAA,MACA;AAAA,MACM,CAAC,GAAG2M,CAAW,QAAQ,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,QACV,eAAe;AAAA,QACf,iBAAiB3M,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,MAC5B;AAAA,MACM,CAAC,GAAG2M,CAAW,cAAcA,CAAW,mBAAmB,GAAG;AAAA,QAC5D,CAAC,GAAGA,CAAW,cAAc,GAAG;AAAA,UAC9B,QAAQ3M,EAAM;AAAA,QACxB;AAAA,MACA;AAAA,MACM,CAAC,GAAG2M,CAAW,gBAAgBA,CAAW,KAAK,GAAG;AAAA,QAChD,UAAU;AAAA,QACV,iBAAiB3M,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,QACpB,YAAY,OAAOA,EAAM,kBAAkB,IAAIA,EAAM,mBAAmB;AAAA,MAChF;AAAA,MACM,CAAC,GAAG2M,CAAW,aAAa,GAAG;AAAA,QAC7B,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,iBAAiB3M,EAAM;AAAA,MAC/B;AAAA,MACM,CAAC,GAAG2M,CAAW,OAAO,GAAG;AAAA,QACvB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB3M,EAAM;AAAA,QACzB,OAAOA,EAAM;AAAA,QACb,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,eAAe;AAAA,QACf,WAAW;AAAA,QACX,CAAC4M,CAAa,GAAG;AAAA,UACf,UAAU5M,EAAM;AAAA,QAC1B;AAAA,MACA;AAAA,MACM,CAAC,IAAI2M,CAAW,gBAAgB,GAAG;AAAA,QACjC,CAAC,GAAGA,CAAW,aAAa,GAAG;AAAA,UAC7B,UAAU;AAAA,UACV,OAAO;AAAA,UACP,iBAAiB3M,EAAM;AAAA,UACvB,cAAcA,EAAM;AAAA,UACpB,SAAS;AAAA,UACT,eAAewM;AAAA,UACf,mBAAmBxM,EAAM;AAAA,UACzB,yBAAyBA,EAAM;AAAA,UAC/B,yBAAyB;AAAA,UACzB,SAAS;AAAA,QACnB;AAAA,MACA;AAAA,MACM,CAAC,IAAI2M,CAAW,mBAAmB,GAAG;AAAA,QACpC,CAAC,GAAGA,CAAW,KAAK,GAAG;AAAA,UACrB,iBAAiB3M,EAAM;AAAA,QACjC;AAAA,QACQ,CAAC,GAAG2M,CAAW,OAAO,GAAG;AAAA,UACvB,OAAO3M,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,CAAC,IAAI2M,CAAW,qBAAqBA,CAAW,cAAcA,CAAW,mBAAmB,GAAG;AAAA,QAC7F,CAAC,GAAGA,CAAW,cAAc,GAAG;AAAA,UAC9B,QAAQ3M,EAAM;AAAA,QACxB;AAAA,MACA;AAAA,MACM,CAAC,IAAI2M,CAAW,iBAAiB,GAAG;AAAA,QAClC,CAAC,GAAGA,CAAW,KAAK,GAAG;AAAA,UACrB,iBAAiB3M,EAAM;AAAA,QACjC;AAAA,QACQ,CAAC,GAAG2M,CAAW,OAAO,GAAG;AAAA,UACvB,OAAO3M,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,CAAC,IAAI2M,CAAW,mBAAmBA,CAAW,cAAcA,CAAW,mBAAmB,GAAG;AAAA,QAC3F,CAAC,GAAGA,CAAW,cAAc,GAAG;AAAA,UAC9B,QAAQ3M,EAAM;AAAA,QACxB;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACL;AACA,GACM6M,KAAiB,CAAA7M,MAAS;AAC9B,QAAM;AAAA,IACJ,cAAc2M;AAAA,IACd,SAASC;AAAA,EACb,IAAM5M;AACJ,SAAO;AAAA,IACL,CAAC2M,CAAW,GAAG;AAAA,MACb,CAAC,GAAGA,CAAW,eAAe,GAAG;AAAA,QAC/B,QAAQ3M,EAAM;AAAA,MACtB;AAAA,MACM,CAAC,IAAI2M,CAAW,WAAWA,CAAW,QAAQ,GAAG;AAAA,QAC/C,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,iBAAiB;AAAA,MACzB;AAAA,MACM,CAAC,IAAIA,CAAW,WAAWA,CAAW,OAAO,GAAG;AAAA,QAC9C,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,OAAO3M,EAAM;AAAA,QACb,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,WAAW;AAAA,QACX,CAAC4M,CAAa,GAAG;AAAA,UACf,UAAU,GAAG5M,EAAM,WAAWA,EAAM,UAAU;AAAA,QACxD;AAAA,MACA;AAAA,MACM,CAAC,GAAG2M,CAAW,2BAA2B,GAAG;AAAA,QAC3C,CAAC,GAAGA,CAAW,OAAO,GAAG;AAAA,UACvB,OAAO3M,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,CAAC,GAAG2M,CAAW,yBAAyB,GAAG;AAAA,QACzC,CAAC,GAAGA,CAAW,OAAO,GAAG;AAAA,UACvB,OAAO3M,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,IACA;AAAA,IACI,CAAC,GAAG2M,CAAW,gBAAgB,GAAG;AAAA,MAChC,YAAY;AAAA,MACZ,CAAC,GAAGA,CAAW,QAAQ,GAAG;AAAA,QACxB,eAAe;AAAA,MACvB;AAAA,IACA;AAAA,EACA;AACA,GACMG,KAAe,CAAA9M,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAc2M;AAAA,EAClB,IAAM3M;AACJ,SAAO;AAAA,IACL,CAAC2M,CAAW,GAAG;AAAA,MACb,CAAC,GAAGA,CAAW,QAAQ,GAAG;AAAA,QACxB,SAAS;AAAA,QACT,WAAW;AAAA,UACT,SAAS;AAAA,UACT,eAAe;AAAA,UACf,YAAY;AAAA,QACtB;AAAA,QACQ,UAAU;AAAA,UACR,YAAY;AAAA,UACZ,UAAU3M,EAAM;AAAA,UAChB,iBAAiBA,EAAM;AAAA,UACvB,iBAAiBA,EAAM;AAAA,UACvB,YAAY,OAAOA,EAAM,kBAAkB;AAAA,UAC3C,YAAY;AAAA,YACV,iBAAiBA,EAAM;AAAA,UACnC;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACM+M,KAAe,CAAA/M,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAc2M;AAAA,IACd,SAASC;AAAA,EACb,IAAM5M;AACJ,SAAO;AAAA,IACL,CAAC2M,CAAW,GAAG;AAAA,MACb,CAAC,GAAGA,CAAW,iBAAiBA,CAAW,gBAAgBA,CAAW,SAASC,CAAa,EAAE,GAAG;AAAA,QAC/F,UAAU5M,EAAM;AAAA,MACxB;AAAA,IACA;AAAA,EACA;AACA,GACAgN,KAAepL,GAAsB,YAAY,CAAA5B,MAAS;AACxD,QAAMiN,IAA8BjN,EAAM,YAAY,GAChDkN,IAAgBpL,GAAW9B,GAAO;AAAA,IACtC,oBAAoB;AAAA,IACpB,uBAAuBA,EAAM;AAAA,IAC7B,sBAAsBA,EAAM;AAAA,IAC5B,wBAAwBA,EAAM;AAAA,IAC9B,6BAAAiN;AAAA,IACA,sBAAsBA;AAAA,IACtB,8BAA8B;AAAA,EAClC,CAAG;AACD,SAAO,CAACP,GAAaQ,CAAa,GAAGL,GAAeK,CAAa,GAAGJ,GAAaI,CAAa,GAAGH,GAAaG,CAAa,CAAC;AAC9H,CAAC;ACrOD,IAAI1F,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAeA,MAAAyF,KAAelf,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiB4D,MAAiB;AAAA,IACvC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA;AAAA,IAEV,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,eAAe;AAAA,EACnB,CAAG;AAAA,EACD,OAAO;AAAA,EACP,MAAMvb,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,IACN,IAAQF;AACJ,UAAM;AAAA,MACJ,WAAAU;AAAA,MACA,WAAAkU;AAAA,IACN,IAAQjU,GAAgB,YAAY7D,CAAK,GAC/B,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS;AAC5C,IAAI,QAAQ,IAAI,aAAa,iBAC3BiU,GAAW,oBAAoB7X,GAAO,YAAY,uEAAuE,GACzH6X,GAAW,WAAW7X,GAAO,YAAY,mDAAmD;AAE9F,UAAMoiB,IAAsB/b,EAAS,MAAM,MAAM,QAAQrG,EAAM,WAAW,IAAIA,EAAM,YAAY,CAAC,IAAIA,EAAM,WAAW,GAChHqiB,IAAgBhc,EAAS,MAAM;AACnC,YAAM;AAAA,QACJ,SAAAyV,IAAU;AAAA,MAClB,IAAU9b,GACE6b,IAAiBF,GAAkB3b,CAAK;AAC9C,aAAO,SAAS6b,MAAmB,SAAYA,EAAe,SAAQ,IAAKC,EAAQ,SAAQ,GAAI,EAAE;AAAA,IACnG,CAAC,GACKwG,IAAiBjc,EAAS,MAAM;AACpC,YAAM;AAAA,QACJ,QAAAkc;AAAA,MACR,IAAUviB;AACJ,aAAI,CAACsb,GAAiB,SAASiH,CAAM,KAAKF,EAAc,SAAS,MACxD,YAEFE,KAAU;AAAA,IACnB,CAAC,GACKC,IAAcnc,EAAS,MAAM;AACjC,YAAM;AAAA,QACJ,MAAA4S;AAAA,QACA,UAAAwJ;AAAA,QACA,MAAA1e;AAAA,MACR,IAAU/D,GACEgU,IAAMpQ,EAAU;AACtB,aAAO;AAAA,QACL,CAACoQ,CAAG,GAAG;AAAA,QACP,CAAC,GAAGA,CAAG,gBAAgB,GAAGiF,MAAS,YAAYoD,GAAQtY,GAAM,QAAQ,EAAE,SAAS;AAAA,QAChF,CAAC,GAAGiQ,CAAG,IAAIiF,MAAS,eAAe,YAAYA,CAAI,EAAE,GAAG;AAAA,QACxD,CAAC,GAAGjF,CAAG,WAAWsO,EAAe,KAAK,EAAE,GAAG;AAAA,QAC3C,CAAC,GAAGtO,CAAG,YAAY,GAAGyO;AAAA,QACtB,CAAC,GAAGzO,CAAG,IAAIjQ,CAAI,EAAE,GAAGA;AAAA,QACpB,CAAC,GAAGiQ,CAAG,MAAM,GAAG8D,EAAU,UAAU;AAAA,QACpC,CAACI,EAAO,KAAK,GAAG;AAAA,MACxB;AAAA,IACI,CAAC,GACKwK,IAAyBrc,EAAS,MAAM,OAAOrG,EAAM,eAAgB,YAAY,MAAM,QAAQA,EAAM,WAAW,IAAIA,EAAM,cAAc,MAAS,GACjJ2iB,IAAoB,MAAM;AAC9B,YAAM;AAAA,QACJ,UAAAF;AAAA,QACA,QAAAG;AAAA,QACA,MAAA3J;AAAA,QACA,SAAA6C;AAAA,QACA,OAAA+G;AAAA,MACR,IAAU7iB,GACE6b,IAAiBF,GAAkB3b,CAAK;AAC9C,UAAI,CAACyiB,EAAU,QAAO;AACtB,UAAIK;AACJ,YAAMC,IAAgBH,MAAWzf,KAAU,OAA2B,SAASA,EAAM,YAAY,CAAAob,MAAO,GAAGA,CAAG,MACxGyE,IAAa/J,MAAS;AAC5B,aAAI2J,KAAWzf,KAAU,QAAoCA,EAAM,UAAWmf,EAAe,UAAU,eAAeA,EAAe,UAAU,YAC7IQ,IAAOC,EAActH,GAAcK,CAAO,GAAGL,GAAcI,CAAc,CAAC,IACjEyG,EAAe,UAAU,cAClCQ,IAAOE,IAAaxe,EAAaye,IAAmB,MAAM,IAAI,IAAIze,EAAaiV,IAAe,MAAM,IAAI,IAC/F6I,EAAe,UAAU,cAClCQ,IAAOE,IAAaxe,EAAa0e,IAAmB,MAAM,IAAI,IAAI1e,EAAa2e,IAAe,MAAM,IAAI,IAEnG3e,EAAa,QAAQ;AAAA,QAC1B,OAAS,GAAGZ,EAAU,KAAK;AAAA,QAC3B,OAASif,MAAU,UAAa,OAAOC,KAAS,WAAWA,IAAO;AAAA,MAC1E,GAAS,CAACA,CAAI,CAAC;AAAA,IACX;AACA,WAAO,MAAM;AACX,YAAM;AAAA,QACJ,MAAA7J;AAAA,QACA,OAAAqD;AAAA,QACA,OAAAuG;AAAA,MACR,IAAU7iB,GACE;AAAA,QACF,OAAOoE;AAAA,MACjB,IAAYhB,GACJggB,IAAY5G,GAAOpZ,GAAO,CAAC,OAAO,CAAC,GAC/BigB,IAAeV,EAAiB;AACtC,UAAIjH;AAEJ,aAAIzC,MAAS,SACXyC,IAAWY,IAAQ9X,EAAa8e,IAAO5e,EAAcA,EAAc,CAAA,GAAI1E,CAAK,GAAG,IAAI;AAAA,QACjF,aAAe0iB,EAAuB;AAAA,QACtC,WAAa9e,EAAU;AAAA,QACvB,OAAS0Y;AAAA,MACnB,CAAS,GAAG;AAAA,QACF,SAAS,MAAM,CAAC+G,CAAY;AAAA,MACtC,CAAS,IAAI7e,EAAagZ,IAAM9Y,EAAcA,EAAc,IAAI1E,CAAK,GAAG,IAAI;AAAA,QAClE,aAAeoiB,EAAoB;AAAA,QACnC,WAAaxe,EAAU;AAAA,QACvB,WAAakU,EAAU;AAAA,MACjC,CAAS,GAAG;AAAA,QACF,SAAS,MAAM,CAACuL,CAAY;AAAA,MACtC,CAAS,KACQpK,MAAS,YAAYA,MAAS,iBACvCyC,IAAWlX,EAAaic,IAAQ/b,EAAcA,EAAc,IAAI1E,CAAK,GAAG,IAAI;AAAA,QAC1E,WAAa4D,EAAU;AAAA,QACvB,aAAewe,EAAoB;AAAA,QACnC,gBAAkBE,EAAe;AAAA,MAC3C,CAAS,GAAG;AAAA,QACF,SAAS,MAAM,CAACe,CAAY;AAAA,MACtC,CAAS,IAEIpL,EAAQzT,EAAa,OAAOE,EAAcA,EAAc;AAAA,QAC7D,MAAQ;AAAA,MAChB,GAAS0e,CAAS,GAAG,IAAI;AAAA,QACjB,OAAS,CAACZ,EAAY,OAAOpe,CAAG;AAAA,QAChC,OAASye;AAAA,MACjB,CAAO,GAAG,CAACnH,CAAQ,CAAC,CAAC;AAAA,IACjB;AAAA,EACF;AACF,CAAC,GC7JD6H,KAAehJ,GAAYgJ,EAAQ,GCAnCC,KAAejJ,GAAYkJ,EAAG,GCCxBC,KAAQ,CAACC,GAAGzgB,MAAS;AACzB,MAAI;AAAA,IACF,OAAAE;AAAA,EACJ,IAAMF;AACJ,QAAM;AAAA,IACJ,UAAA0gB;AAAA,IACA,UAAAC;AAAA,IACA,OAAA9P;AAAA,IACA,OAAO5P;AAAA,EACX,IAAMf;AACJ,MAAI;AAAA,IACF,QAAA3D;AAAA,IACA,QAAAmJ;AAAA,IACA,SAAAkb;AAAA,EACJ,IAAM1gB;AACJ,EAAI3D,IAAS,MACXqkB,IAAU,CAACA,GACXrkB,IAAS,KAAK,IAAIA,CAAM,GACxBmJ,IAAS,MAAMA;AAEjB,QAAMmb,IAAgBF,IAAW;AAAA,IAC/B,CAACC,IAAU,QAAQ,QAAQ,GAAG,GAAGlb,CAAM;AAAA,IACvC,CAACkb,IAAU,WAAW,KAAK,GAAG;AAAA,IAC9B,QAAQ,GAAGrkB,CAAM;AAAA,EACrB,IAAM;AAAA,IACF,CAACqkB,IAAU,UAAU,MAAM,GAAG,GAAGlb,CAAM;AAAA,IACvC,CAACkb,IAAU,SAAS,OAAO,GAAG;AAAA,IAC9B,OAAO,GAAGrkB,CAAM;AAAA,EACpB,GACQukB,IAAUnhB,EAASA,EAAS,CAAA,GAAIkR,CAAK,GAAGgQ,CAAa;AAC3D,SAAOH,IAAWpf,EAAa,OAAO;AAAA,IACpC,OAASL;AAAA,IACT,OAAS6f;AAAA,EACb,GAAK,IAAI,IAAI;AACb;AACAN,GAAM,eAAe;AClCrB,MAAMO,KAAa,CAACC,GAAWC,GAAOC,GAAMC,GAAMC,GAAKC,MAAQ;AAC7D,EAAAjhB,GAAQ8gB,IAAOC,IAAO,IAAI,IAAM,UAAU,gFAAgF;AAC1H,QAAMG,IAAS,OAAO,KAAKL,CAAK,EAAE,IAAI,UAAU,EAAE,KAAK,CAACnH,GAAGC,MAAMD,IAAIC,CAAC;AACtE,MAAImH,KAAQC;AACV,aAASxc,IAAIyc,GAAKzc,KAAK0c,GAAK1c,KAAKwc;AAC/B,MAAIG,EAAO,QAAQ3c,CAAC,MAAM,MACxB2c,EAAO,KAAK3c,CAAC;AAInB,SAAO2c;AACT,GACMlB,KAAQ,CAACK,GAAGzgB,MAAS;AACzB,MAAI;AAAA,IACF,OAAAE;AAAA,EACJ,IAAMF;AACJ,QAAM;AAAA,IACJ,WAAAU;AAAA,IACA,UAAAigB;AAAA,IACA,SAAAC;AAAA,IACA,OAAAK;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAT;AAAA,IACA,YAAAa;AAAA,IACA,YAAAC;AAAA,IACA,KAAAH;AAAA,IACA,KAAAD;AAAA,IACA,UAAAK;AAAA,IACA,gBAAAC;AAAA,EACJ,IAAMxhB,GACEyhB,IAAQN,IAAMD,GACdQ,IAAWb,GAAWJ,GAAUM,GAAOC,GAAMC,GAAMC,GAAKC,CAAG,EAAE,IAAI,CAAAQ,MAAS;AAC9E,UAAMnc,IAAS,GAAG,KAAK,IAAImc,IAAQT,CAAG,IAAIO,IAAQ,GAAG,KAC/CG,IAAY,CAACpB,KAAYmB,MAAUL,KAAcd,KAAYmB,KAASL,KAAcK,KAASN;AACnG,QAAI1Q,IAAQ8P,IAAWhhB,EAASA,EAAS,CAAA,GAAI8hB,CAAQ,GAAG;AAAA,MACtD,CAACb,IAAU,QAAQ,QAAQ,GAAGlb;AAAA,IACpC,CAAK,IAAI/F,EAASA,EAAS,CAAA,GAAI8hB,CAAQ,GAAG;AAAA,MACpC,CAACb,IAAU,UAAU,MAAM,GAAGlb;AAAA,IACpC,CAAK;AACD,IAAIoc,MACFjR,IAAQlR,EAASA,EAAS,CAAA,GAAIkR,CAAK,GAAG6Q,CAAc;AAEtD,UAAMK,IAAiBhe,GAAW;AAAA,MAChC,CAAC,GAAGrD,CAAS,MAAM,GAAG;AAAA,MACtB,CAAC,GAAGA,CAAS,aAAa,GAAGohB;AAAA,MAC7B,CAAC,GAAGphB,CAAS,cAAc,GAAGkgB;AAAA,IACpC,CAAK;AACD,WAAOtf,EAAa,QAAQ;AAAA,MAC1B,OAASygB;AAAA,MACT,OAASlR;AAAA,MACT,KAAOgR;AAAA,IACb,GAAO,IAAI;AAAA,EACT,CAAC;AACD,SAAOvgB,EAAa,OAAO;AAAA,IACzB,OAAS,GAAGZ,CAAS;AAAA,EACzB,GAAK,CAACkhB,CAAQ,CAAC;AACf;AACAxB,GAAM,eAAe;ACxDrB,MAAM4B,KAAQ,CAACvB,GAAGzgB,MAAS;AACzB,MAAI;AAAA,IACF,OAAAE;AAAA,IACA,OAAAD;AAAA,EACJ,IAAMD;AACJ,QAAM;AAAA,IACJ,OAAOiB;AAAA,IACP,UAAA0f;AAAA,IACA,SAAAC;AAAA,IACA,OAAAK;AAAA,IACA,UAAAP;AAAA,IACA,YAAAc;AAAA,IACA,YAAAD;AAAA,IACA,KAAAF;AAAA,IACA,KAAAD;AAAA,IACA,cAAAa;AAAA,EACJ,IAAM/hB,GACEgiB,IAAY,OAAO,KAAKjB,CAAK,GAC7BkB,IAAaliB,EAAM,MACnB0hB,IAAQN,IAAMD,GACdQ,IAAWM,EAAU,IAAI,UAAU,EAAE,KAAK,CAACpI,GAAGC,MAAMD,IAAIC,CAAC,EAAE,IAAI,CAAA8H,MAAS;AAC5E,UAAMO,IAAY,OAAOnB,EAAMY,CAAK,KAAM,aAAaZ,EAAMY,CAAK,EAAC,IAAKZ,EAAMY,CAAK,GAC7EQ,IAAoB,OAAOD,KAAc,YAAY,CAAC/gB,GAAe+gB,CAAS;AACpF,QAAIE,IAAYD,IAAoBD,EAAU,QAAQA;AACtD,QAAI,CAACE,KAAaA,MAAc;AAC9B,aAAO;AAET,IAAIH,MACFG,IAAYH,EAAW;AAAA,MACrB,OAAAN;AAAA,MACA,OAAOS;AAAA,IACf,CAAO;AAEH,UAAMC,IAAW,CAAC7B,KAAYmB,MAAUL,KAAcd,KAAYmB,KAASL,KAAcK,KAASN,GAC5FiB,IAAgBze,GAAW;AAAA,MAC/B,CAAC,GAAG9C,CAAS,OAAO,GAAG;AAAA,MACvB,CAAC,GAAGA,CAAS,cAAc,GAAGshB;AAAA,IACpC,CAAK,GACKE,IAAc;AAAA,MAClB,cAAc;AAAA,MACd,CAAC7B,IAAU,QAAQ,QAAQ,GAAG,IAAIiB,IAAQT,KAAOO,IAAQ,GAAG;AAAA,IAClE,GACUe,IAAY;AAAA,MAChB,WAAW,cAAc9B,IAAU,QAAQ,MAAM;AAAA,MACjD,aAAa,cAAcA,IAAU,QAAQ,MAAM;AAAA,MACnD,CAACA,IAAU,UAAU,MAAM,GAAG,IAAIiB,IAAQT,KAAOO,IAAQ,GAAG;AAAA,IAClE,GACU9Q,IAAQ8P,IAAW8B,IAAcC,GACjCC,IAAYN,IAAoB1iB,EAASA,EAAS,IAAIkR,CAAK,GAAGuR,EAAU,KAAK,IAAIvR,GACjF+R,IAAc;AAAA,MAClB,CAACC,KAAkB,wBAAwB,cAAc,GAAG,CAAA9f,MAAKkf,EAAalf,GAAG8e,CAAK;AAAA,IAC5F;AACI,WAAOvgB,EAAa,QAAQE,EAAc;AAAA,MACxC,OAASghB;AAAA,MACT,OAASG;AAAA,MACT,KAAOd;AAAA,MACP,aAAe,CAAA9e,MAAKkf,EAAalf,GAAG8e,CAAK;AAAA,IAC/C,GAAOe,CAAW,GAAG,CAACN,CAAS,CAAC;AAAA,EAC9B,CAAC;AACD,SAAOhhB,EAAa,OAAO;AAAA,IACzB,OAASL;AAAA,EACb,GAAK,CAAC2gB,CAAQ,CAAC;AACf;AACAI,GAAM,eAAe;AC9DrB,MAAAc,KAAe/iB,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,WAAW;AAAA,IACX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,QAAQ;AAAA,IACR,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAUkF,GAAU,UAAU,CAACA,GAAU,QAAQA,GAAU,MAAM,CAAC;AAAA,IAClE,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,MACZ,MAAM;AAAA,IACZ;AAAA,IACI,cAAc;AAAA,MACZ,MAAM;AAAA,IACZ;AAAA,IACI,aAAa;AAAA,MACX,MAAM;AAAA,IACZ;AAAA,EACA;AAAA,EACE,MAAMnI,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,MAAA0W;AAAA,MACA,QAAAzW;AAAA,IACN,IAAQH;AACJ,UAAM+iB,IAAejhB,GAAW,EAAK,GAC/BkhB,IAASlhB,GAAU,GACnBmhB,IAAgB,MAAM;AAC1B,MAAI,SAAS,kBAAkBD,EAAO,UACpCD,EAAa,QAAQ;AAAA,IAEzB,GACMG,IAAa,CAAAngB,MAAK;AACtB,MAAAggB,EAAa,QAAQ,IACrBnM,EAAK,QAAQ7T,CAAC;AAAA,IAChB,GACMogB,IAAgB,MAAM;AAC1B,MAAAJ,EAAa,QAAQ;AAAA,IACvB,GACMK,IAAQ,MAAM;AAClB,UAAI5jB;AACJ,OAACA,IAAKwjB,EAAO,WAAW,QAAQxjB,MAAO,UAAkBA,EAAG,MAAK;AAAA,IACnE,GACM6jB,IAAO,MAAM;AACjB,UAAI7jB;AACJ,OAACA,IAAKwjB,EAAO,WAAW,QAAQxjB,MAAO,UAAkBA,EAAG,KAAI;AAAA,IAClE,GACM8jB,IAAa,MAAM;AACvB,MAAAP,EAAa,QAAQ,IACrBK,EAAK;AAAA,IACP,GAEMG,IAAkB,CAAAxgB,MAAK;AAC3B,MAAAA,EAAE,eAAc,GAChBqgB,EAAK,GACLxM,EAAK,aAAa7T,CAAC;AAAA,IACrB;AACA,IAAA5C,EAAO;AAAA,MACL,OAAAijB;AAAA,MACA,MAAAC;AAAA,MACA,YAAAC;AAAA,MACA,KAAKN;AAAA,IACX,CAAK;AACD,QAAIQ,IAAoB;AACxB,IAAAtd,GAAU,MAAM;AACd,MAAAsd,IAAoBC,GAAiB,UAAU,WAAWR,CAAa;AAAA,IACzE,CAAC,GACD5gB,GAAgB,MAAM;AACpB,MAAAmhB,KAAsB,QAAgDA,EAAkB,OAAM;AAAA,IAChG,CAAC;AACD,UAAM3C,IAAgB1d,EAAS,MAAM;AACnC,YAAM;AAAA,QACJ,UAAAwd;AAAA,QACA,QAAAjb;AAAA,QACA,SAAAkb;AAAA,MACR,IAAU9jB;AACJ,aAAO6jB,IAAW;AAAA,QAChB,CAACC,IAAU,QAAQ,QAAQ,GAAG,GAAGlb,CAAM;AAAA,QACvC,CAACkb,IAAU,WAAW,KAAK,GAAG;AAAA,QAC9B,WAAWA,IAAU,OAAO;AAAA,MACpC,IAAU;AAAA,QACF,CAACA,IAAU,UAAU,MAAM,GAAG,GAAGlb,CAAM;AAAA,QACvC,CAACkb,IAAU,SAAS,OAAO,GAAG;AAAA,QAC9B,WAAW,cAAcA,IAAU,MAAM,GAAG;AAAA,MACpD;AAAA,IACI,CAAC;AACD,WAAO,MAAM;AACX,YAAM;AAAA,QACJ,WAAAlgB;AAAA,QACA,UAAA6C;AAAA,QACA,KAAA6d;AAAA,QACA,KAAAC;AAAA,QACA,OAAA7kB;AAAA,QACA,UAAAknB;AAAA,QACA,WAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,wBAAAC;AAAA,QACA,cAAAC;AAAA,QACA,cAAAC;AAAA,MACR,IAAUjnB,GACEmE,IAAY8C,GAAW7D,EAAM,OAAO;AAAA,QACxC,CAAC,GAAGQ,CAAS,uBAAuB,GAAGqiB,EAAa;AAAA,MAC5D,CAAO,GACKiB,IAAY;AAAA,QAChB,iBAAiB5C;AAAA,QACjB,iBAAiBC;AAAA,QACjB,iBAAiB7kB;AAAA,QACjB,iBAAiB,CAAC,CAAC+G;AAAA,MAC3B,GACYud,IAAU,CAAC5gB,EAAM,OAAO2gB,EAAc,KAAK;AACjD,UAAIoD,IAAiBP,KAAY;AACjC,OAAIngB,KAAYmgB,MAAa,UAC3BO,IAAiB;AAEnB,UAAIC;AACJ,MAAIL,MACFK,IAAgBL,EAAuBrnB,CAAK;AAE9C,YAAM2nB,IAAcxkB,EAASA,EAASA,EAASA,EAAS,CAAA,GAAIO,CAAK,GAAG;AAAA,QAClE,MAAM;AAAA,QACN,UAAU+jB;AAAA,MAClB,CAAO,GAAGD,CAAS,GAAG;AAAA,QACd,OAAO/iB;AAAA,QACP,QAAQiiB;AAAA,QACR,WAAWC;AAAA,QACX,aAAaI;AAAA,QACb,cAAAO;AAAA,QACA,cAAAC;AAAA,QACA,KAAKf;AAAA,QACL,OAAOlC;AAAA,MACf,CAAO;AACD,aAAOxf,EAAa,OAAOE,EAAcA,EAAc,IAAI2iB,CAAW,GAAG,IAAI;AAAA,QAC3E,cAAcR;AAAA,QACd,mBAAmBC;AAAA,QACnB,kBAAkBM;AAAA,MAC1B,CAAO,GAAG,IAAI;AAAA,IACV;AAAA,EACF;AACF,CAAC;ACnKM,SAASE,GAAkB,GAAGC,GAAS;AAC5C,MAAI;AACF,WAAO,OAAO,KAAKA,CAAO,EAAE,KAAK,CAAAtnB,MAAO,EAAE,WAAWsnB,EAAQtnB,CAAG,EAAE,GAAG;AAAA,EACvE,QAAgB;AACd,WAAO;AAAA,EACT;AACF;AACO,SAASunB,GAAkB9nB,GAAOwD,GAAM;AAC7C,MAAI;AAAA,IACF,KAAAohB;AAAA,IACA,KAAAC;AAAA,EACJ,IAAMrhB;AACJ,SAAOxD,IAAQ4kB,KAAO5kB,IAAQ6kB;AAChC;AACO,SAASkD,GAAgB,GAAG;AACjC,SAAO,EAAE,QAAQ,SAAS,KAAK,EAAE,KAAK,YAAW,MAAO,cAAc,EAAE,QAAQ,SAAS;AAC3F;AACO,SAASC,GAAgBnJ,GAAKhU,GAAO;AAC1C,MAAI;AAAA,IACF,OAAA4Z;AAAA,IACA,MAAAE;AAAA,IACA,KAAAC;AAAA,IACA,KAAAC;AAAA,EACJ,IAAMha;AACJ,QAAMia,IAAS,OAAO,KAAKL,CAAK,EAAE,IAAI,UAAU;AAChD,MAAIE,MAAS,MAAM;AACjB,UAAMsD,IAAU,KAAK,IAAI,IAAIC,GAAavD,CAAI,CAAC,GACzCwD,IAAW,KAAK,OAAOtD,IAAMoD,IAAUrD,IAAMqD,MAAYtD,IAAOsD,EAAQ,GACxErL,IAAQ,KAAK,KAAKiC,IAAM+F,KAAOD,GAAMwD,CAAQ,GAC7CC,IAAc,KAAK,MAAMxL,CAAK,IAAI+H,IAAOC;AAC/C,IAAAE,EAAO,KAAKsD,CAAW;AAAA,EACzB;AACA,QAAMC,IAAQvD,EAAO,IAAI,CAAAO,MAAS,KAAK,IAAIxG,IAAMwG,CAAK,CAAC;AACvD,SAAOP,EAAOuD,EAAM,QAAQ,KAAK,IAAI,GAAGA,CAAK,CAAC,CAAC;AACjD;AACO,SAASH,GAAavD,GAAM;AACjC,QAAM2D,IAAa3D,EAAK,SAAQ;AAChC,MAAI4D,IAAY;AAChB,SAAID,EAAW,QAAQ,GAAG,KAAK,MAC7BC,IAAYD,EAAW,SAASA,EAAW,QAAQ,GAAG,IAAI,IAErDC;AACT;AACO,SAASC,GAAiBrE,GAAU5d,GAAG;AAC5C,MAAIkiB,IAAO;AACX,SAAI,OAAO,mBACTA,IAAO,EAAE,OAAO,eAAe,QAAQ,SAAS,KAAK,sBAAqB,EAAG,OAAO,QAAQ,CAAC,KAEvFtE,IAAW5d,EAAE,UAAUA,EAAE,SAASkiB;AAC5C;AACO,SAASC,GAAiBvE,GAAU5d,GAAG;AAC5C,MAAIkiB,IAAO;AACX,SAAI,OAAO,mBACTA,IAAO,EAAE,OAAO,eAAe,QAAQ,SAAS,KAAK,sBAAqB,EAAG,OAAO,QAAQ,CAAC,KAEvFtE,IAAW5d,EAAE,QAAQ,CAAC,EAAE,UAAUA,EAAE,QAAQ,CAAC,EAAE,SAASkiB;AAClE;AACO,SAASE,GAAwBxE,GAAUqC,GAAQ;AACxD,QAAMoC,IAASpC,EAAO,sBAAqB;AAC3C,SAAOrC,IAAWyE,EAAO,MAAMA,EAAO,SAAS,MAAM,OAAO,UAAUA,EAAO,OAAOA,EAAO,QAAQ;AACrG;AACO,SAASC,GAAmBhK,GAAK9K,GAAO;AAC7C,MAAI;AAAA,IACF,KAAA8Q;AAAA,IACA,KAAAD;AAAA,EACJ,IAAM7Q;AACJ,SAAI8K,KAAO+F,IACFA,IAEL/F,KAAOgG,IACFA,IAEFhG;AACT;AACO,SAASiK,GAAqBjK,GAAKve,GAAO;AAC/C,QAAM;AAAA,IACJ,MAAAqkB;AAAA,EACJ,IAAMrkB,GACEyoB,IAAe,SAASf,GAAgBnJ,GAAKve,CAAK,CAAC,IAAI0nB,GAAgBnJ,GAAKve,CAAK,IAAI;AAC3F,SAAOqkB,MAAS,OAAOoE,IAAe,WAAWA,EAAa,QAAQb,GAAavD,CAAI,CAAC,CAAC;AAC3F;AACO,SAASqE,GAAW,GAAG;AAC5B,IAAE,gBAAe,GACjB,EAAE,eAAc;AAClB;AACO,SAASC,GAAmB9nB,GAAMnB,GAAOM,GAAO;AACrD,QAAM4oB,IAAa;AAAA,IACjB,UAAU,CAAC5L,GAAGC,MAAMD,IAAIC;AAAA,IACxB,UAAU,CAACD,GAAGC,MAAMD,IAAIC;AAAA,EAC5B,GACQ4L,IAAaD,EAAW/nB,CAAI,EAAE,OAAO,KAAKb,EAAM,KAAK,EAAE,QAAQ,KAAK,UAAUN,CAAK,CAAC,GAAG,CAAC,GACxFopB,IAAW,OAAO,KAAK9oB,EAAM,KAAK,EAAE6oB,CAAU;AACpD,SAAI7oB,EAAM,OACD4oB,EAAW/nB,CAAI,EAAEnB,GAAOM,EAAM,IAAI,IAErC,OAAO,KAAKA,EAAM,KAAK,EAAE,UAAYA,EAAM,MAAM8oB,CAAQ,IACtD9oB,EAAM,MAAM8oB,CAAQ,IAEtBppB;AACT;AACO,SAASqpB,GAAwB,GAAGlF,GAAUC,GAAS;AAC5D,QAAMkF,IAAW,YACXC,IAAW;AACjB,MAAIC,IAASF;AACb,UAAQ,EAAE,SAAO;AAAA,IACf,KAAKG,GAAQ;AACX,MAAAD,IAASrF,KAAYC,IAAUmF,IAAWD;AAC1C;AAAA,IACF,KAAKG,GAAQ;AACX,MAAAD,IAAS,CAACrF,KAAYC,IAAUmF,IAAWD;AAC3C;AAAA,IACF,KAAKG,GAAQ;AACX,MAAAD,IAASrF,KAAYC,IAAUkF,IAAWC;AAC1C;AAAA,IACF,KAAKE,GAAQ;AACX,MAAAD,IAAS,CAACrF,KAAYC,IAAUkF,IAAWC;AAC3C;AAAA,IACF,KAAKE,GAAQ;AACX,aAAO,CAACC,GAAQppB,MAAUA,EAAM;AAAA,IAClC,KAAKmpB,GAAQ;AACX,aAAO,CAACC,GAAQppB,MAAUA,EAAM;AAAA,IAClC,KAAKmpB,GAAQ;AACX,aAAO,CAACzpB,GAAOM,MAAUN,IAAQM,EAAM,OAAO;AAAA,IAChD,KAAKmpB,GAAQ;AACX,aAAO,CAACzpB,GAAOM,MAAUN,IAAQM,EAAM,OAAO;AAAA,IAChD;AACE;AAAA,EACN;AACE,SAAO,CAACN,GAAOM,MAAU2oB,GAAmBO,GAAQxpB,GAAOM,CAAK;AAClE;AC/HA,IAAIwc,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAaA,SAAS2M,KAAO;AAAC;AACF,SAASC,GAAaC,GAAW;AAE9C,QAAM9K,IAAY;AAAA,IAChB,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAOtW,GAAU;AAAA,IACjB,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,WAAW;AAAA,IACX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,mBAAmBA,GAAU;AAAA,IAC7B,mBAAmBA,GAAU;AAAA,IAC7B,aAAaA,GAAU,UAAU,CAACA,GAAU,QAAQA,GAAU,QAAQA,GAAU,MAAM,CAAC,CAAC;AAAA,IACxF,YAAYA,GAAU,UAAU,CAACA,GAAU,QAAQA,GAAU,QAAQA,GAAU,MAAM,CAAC,CAAC;AAAA,IACvF,WAAWA,GAAU;AAAA,IACrB,UAAUA,GAAU;AAAA,IACpB,gBAAgBA,GAAU;AAAA,IAC1B,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,EACA;AACE,SAAOlF,EAAgB;AAAA,IACrB,cAAc;AAAA,MACZ,MAAM;AAAA,IACZ;AAAA,IACI,MAAM;AAAA,IACN,QAAQ,CAACumB,IAAWD,CAAS;AAAA,IAC7B,cAAc;AAAA,IACd,OAAO5R,GAAiB8G,GAAW;AAAA,MACjC,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO,CAAA;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,YAAY,CAAC,CAAA,CAAE;AAAA,MACf,aAAa,CAAC,CAAA,CAAE;AAAA,MAChB,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,MACV,gBAAgB,CAAA;AAAA,IACtB,CAAK;AAAA,IACD,OAAO,CAAC,UAAU,QAAQ,OAAO;AAAA,IACjC,OAAO;AACL,YAAM;AAAA,QACJ,MAAA4F;AAAA,QACA,KAAAE;AAAA,QACA,KAAAD;AAAA,MACR,IAAU,MACEmF,IAAkB,SAASlF,IAAMD,CAAG,KAAKC,IAAMD,KAAOD,MAAS,IAAI;AACzE,aAAA/gB,GAAQ+gB,KAAQ,KAAK,MAAMA,CAAI,MAAMA,IAAOoF,IAAkB,IAAM,8BAA8BlF,IAAMD,CAAG,2CAA2CD,CAAI,GAAG,GAC7J,KAAK,cAAc,CAAA,GACZ,CAAA;AAAA,IACT;AAAA,IACA,UAAU;AACR,WAAK,UAAU,MAAM;AAEnB,aAAK,WAAW,KAAK,aAAa,KAAK,UAAU;AAEjD,cAAM;AAAA,UACJ,WAAAqF;AAAA,UACA,UAAAjjB;AAAA,QACV,IAAY;AACJ,QAAIijB,KAAa,CAACjjB,KAChB,KAAK,MAAK;AAAA,MAEd,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB;AACd,WAAK,UAAU,MAAM;AAEnB,aAAK,qBAAoB;AAAA,MAC3B,CAAC;AAAA,IACH;AAAA,IACA,SAAS;AAAA,MACP,cAAc/D,GAAI;AAChB,YAAI;AAAA,UACA,OAAAlD;AAAA,UACA,YAAAmqB;AAAA,UACA,WAAAxlB;AAAA,UACA,OAAA4P;AAAA,QACZ,IAAcrR,GACJyd,IAAY3D,GAAO9Z,GAAI,CAAC,SAAS,cAAc,aAAa,OAAO,CAAC;AAEtE,YADA,OAAOyd,EAAU,UACbA,EAAU,UAAU;AACtB,iBAAO;AAET,cAAMkH,IAAcxkB,EAASA,EAAS,CAAA,GAAIsd,CAAS,GAAG;AAAA,UACpD,OAAOhc;AAAA,UACP,OAAA4P;AAAA,UACA,KAAKvU;AAAA,QACf,CAAS;AACD,eAAOgF,EAAaolB,IAAQvC,GAAa,IAAI;AAAA,MAC/C;AAAA,MACA,OAAOphB,GAAGsL,GAAU;AAClB,YAAI0J,IAAI1J;AACR,cAAM;AAAA,UACJ,gBAAAsY;AAAA,UACA,UAAUC;AAAA,QACpB,IAAY,KAAK,QACH;AAAA,UACJ,QAAAC;AAAA,QACV,IAAY,KAAK,OACHrqB,IAAQmqB,KAAkB,KAAK,mBAAmB,KAAK,iBAAiB5O,CAAC,KAAK,CAAA,IAAK,CAAA,GACnF+O,IAAUC,GAAwBhkB,GAAG,KAAK,WAAW;AAK3D,YAJA,KAAK,YAAY4jB,KAAkBE,EAAO,UAAU,KAAK,CAACC,KAAW,CAACtqB,EAAM,IAAI,CAACwqB,GAAGriB,MAAM;AACxF,gBAAMyP,IAAKzP,IAAqB,KAAjBqiB,KAAKH,EAAOliB,CAAC;AAC5B,iBAAOA,MAAMnI,EAAM,SAAS,IAAIwqB,KAAKH,EAAOliB,CAAC,IAAIyP;AAAA,QACnD,CAAC,EAAE,KAAK,CAAA6S,MAAK,CAACA,CAAC,GACX,KAAK;AACP,eAAK,aAAalP,GAClB,KAAK,cAAc,CAAC,GAAG8O,CAAM;AAAA,aACxB;AACL,cAAI,CAACC;AACH,iBAAK,aAAa;AAAA,eACb;AACL,kBAAMI,IAAiBC,GAA8BP,GAAY7jB,EAAE,MAAM;AACzE,iBAAK,aAAagV,IAAImP,GACtBnP,IAAImP;AAAA,UACN;AACA,eAAK,QAAQnP,CAAC;AAAA,QAChB;AAAA,MACF;AAAA,MACA,YAAYhV,GAAG;AACb,YAAIA,EAAE,WAAW;AACf;AAEF,aAAK,qBAAoB;AACzB,cAAM6jB,IAAa,KAAK,OAAO,UACzBvY,IAAW+Y,GAAuBR,GAAY7jB,CAAC;AACrD,aAAK,OAAOA,GAAGsL,CAAQ,GACvB,KAAK,uBAAsB;AAAA,MAC7B;AAAA,MACA,aAAatL,GAAG;AACd,YAAIskB,GAAsBtkB,CAAC,EAAG;AAC9B,cAAM6jB,IAAa,KAAK,UAClBvY,IAAWiZ,GAAuBV,GAAY7jB,CAAC;AACrD,aAAK,OAAOA,GAAGsL,CAAQ,GACvB,KAAK,uBAAsB,GAC3BkZ,GAAiBxkB,CAAC;AAAA,MACpB;AAAA,MACA,QAAQA,GAAG;AACT,cAAM;AAAA,UACJ,UAAA4d;AAAA,QACV,IAAY;AACJ,YAAIoG,GAAwBhkB,GAAG,KAAK,WAAW,KAAK,CAAC,KAAK,WAAW;AACnE,gBAAMmkB,IAAiBC,GAA8BxG,GAAU5d,EAAE,MAAM;AACvE,eAAK,aAAa,GAClB,KAAK,QAAQmkB,CAAc,GAC3BK,GAAiBxkB,CAAC,GAClB,KAAK,MAAM,SAASA,CAAC;AAAA,QACvB;AAAA,MACF;AAAA,MACA,OAAOA,GAAG;AACR,QAAK,KAAK,aACR,KAAK,MAAK,GAEZ,KAAK,MAAM,QAAQA,CAAC;AAAA,MACtB;AAAA,MACA,YAAY;AACV,QAAI,KAAK,YAAY,KAAK,oBAAoB,KAC5C,KAAK,YAAY,KAAK,oBAAoB,EAAE,WAAU;AAAA,MAE1D;AAAA,MACA,YAAYA,GAAG;AACb,YAAI,CAAC,KAAK,WAAW;AACnB,eAAK,MAAK;AACV;AAAA,QACF;AACA,cAAMsL,IAAW+Y,GAAuB,KAAK,UAAUrkB,CAAC;AACxD,aAAK,OAAOA,GAAGsL,IAAW,KAAK,YAAY,KAAK,WAAW,KAAK,WAAW;AAAA,MAC7E;AAAA,MACA,YAAYtL,GAAG;AACb,YAAIskB,GAAsBtkB,CAAC,KAAK,CAAC,KAAK,WAAW;AAC/C,eAAK,MAAK;AACV;AAAA,QACF;AACA,cAAMsL,IAAWiZ,GAAuB,KAAK,UAAUvkB,CAAC;AACxD,aAAK,OAAOA,GAAGsL,IAAW,KAAK,YAAY,KAAK,WAAW,KAAK,WAAW;AAAA,MAC7E;AAAA,MACA,UAAUtL,GAAG;AACX,QAAI,KAAK,aAAagkB,GAAwBhkB,GAAG,KAAK,WAAW,KAC/D,KAAK,WAAWA,CAAC;AAAA,MAErB;AAAA,MACA,iBAAiBA,GAAGvG,GAAO;AACzB,QAAAuG,EAAE,gBAAe,GACjB,KAAK,SAAS;AAAA,UACZ,QAAQvG;AAAA,QAClB,CAAS,GACD,KAAK,SAAS;AAAA,UACZ,QAAQA;AAAA,QAClB,GAAW,MAAM,KAAK,MAAM,EAAI,CAAC;AAAA,MAC3B;AAAA,MACA,iBAAiB;AACf,cAAMgrB,IAAS,KAAK,WACd;AAAA,UACJ,UAAA7G;AAAA,UACA,SAAAC;AAAA,QACV,IAAY,MACE6G,IAAOD,EAAO,sBAAqB;AACzC,eAAI7G,IACKC,IAAU6G,EAAK,SAASA,EAAK,MAE/B,OAAO,WAAW7G,IAAU6G,EAAK,QAAQA,EAAK;AAAA,MACvD;AAAA,MACA,kBAAkB;AAChB,cAAMD,IAAS,KAAK;AACpB,YAAI,CAACA;AACH,iBAAO;AAET,cAAMpC,IAASoC,EAAO,sBAAqB;AAC3C,eAAO,KAAK,WAAWpC,EAAO,SAASA,EAAO;AAAA,MAChD;AAAA,MACA,yBAAyB;AAEvB,aAAK,sBAAsB3B,GAAiB,KAAK,UAAU,aAAa,KAAK,WAAW,GACxF,KAAK,oBAAoBA,GAAiB,KAAK,UAAU,YAAY,KAAK,KAAK;AAAA,MACjF;AAAA,MACA,yBAAyB;AACvB,aAAK,sBAAsBA,GAAiB,KAAK,UAAU,aAAa,KAAK,WAAW,GACxF,KAAK,oBAAoBA,GAAiB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,MAChF;AAAA,MACA,uBAAuB;AAErB,aAAK,uBAAuB,KAAK,oBAAoB,OAAM,GAC3D,KAAK,qBAAqB,KAAK,kBAAkB,OAAM,GACvD,KAAK,uBAAuB,KAAK,oBAAoB,OAAM,GAC3D,KAAK,qBAAqB,KAAK,kBAAkB,OAAM;AAAA,MAEzD;AAAA,MACA,QAAQ;AACN,YAAIjkB;AACJ,QAAI,KAAK,OAAO,aAGfA,IAAK,KAAK,YAAY,CAAC,OAAO,QAAQA,MAAO,UAAkBA,EAAG,MAAK;AAAA,MAC1E;AAAA,MACA,OAAO;AACL,QAAI,KAAK,OAAO,YAGhB,OAAO,KAAK,KAAK,WAAW,EAAE,QAAQ,CAAAzC,MAAO;AAC3C,cAAIyC,GAAIC;AACR,WAACA,KAAMD,IAAK,KAAK,YAAYzC,CAAG,OAAO,QAAQyC,MAAO,SAAS,SAASA,EAAG,UAAU,QAAQC,MAAO,UAAkBA,EAAG,KAAKD,CAAE;AAAA,QAClI,CAAC;AAAA,MACH;AAAA,MACA,UAAUkG,GAAQ;AAChB,cAAM;AAAA,UACJ,UAAAib;AAAA,UACA,KAAAS;AAAA,UACA,KAAAC;AAAA,QACV,IAAY,MACEqG,IAAQ,KAAK,IAAI,KAAK,IAAIhiB,GAAQ,CAAC,IAAI,KAAK,iBAAiB;AAEnE,eADcib,KAAY,IAAI+G,MAAUrG,IAAMD,KAAOA,IAAMsG,KAASrG,IAAMD,KAAOA;AAAA,MAEnF;AAAA,MACA,eAAe/S,GAAU;AAEvB,cAAMsZ,KADO,KAAK,UAAU,KAAK,MACLtZ,IAAW,KAAK,eAAc;AAE1D,eADkB,KAAK,eAAe,KAAK,UAAUsZ,CAAW,CAAC;AAAA,MAEnE;AAAA,MACA,WAAWnrB,GAAO;AAChB,cAAM;AAAA,UACJ,KAAA4kB;AAAA,UACA,KAAAC;AAAA,QACV,IAAY,MACEqG,KAASlrB,IAAQ4kB,MAAQC,IAAMD;AACrC,eAAO,KAAK,IAAI,GAAGsG,IAAQ,GAAG;AAAA,MAChC;AAAA,MACA,WAAWF,GAAQ;AACjB,aAAK,YAAYA;AAAA,MACnB;AAAA,MACA,WAAWlrB,GAAO0mB,GAAQ;AACxB,aAAK,YAAY1mB,CAAK,IAAI0mB;AAAA,MAC5B;AAAA,IACN;AAAA,IACI,SAAS;AACP,YAAM;AAAA,QACJ,WAAAtiB;AAAA,QACA,OAAAugB;AAAA,QACA,MAAAC;AAAA,QACA,MAAAC;AAAA,QACA,UAAAT;AAAA,QACA,UAAAnd;AAAA,QACA,UAAAod;AAAA,QACA,SAAAC;AAAA,QACA,KAAAQ;AAAA,QACA,KAAAC;AAAA,QACA,mBAAAuG;AAAA,QACA,WAAAC;AAAA,QACA,UAAApG;AAAA,QACA,gBAAAC;AAAA,QACA,IAAAte;AAAA,MACR,IAAU,MACE;AAAA,QACJ,OAAOnC;AAAA,QACP,OAAA4P;AAAA,MACR,IAAU,KAAK,QACH;AAAA,QACJ,QAAAiX;AAAA,QACA,SAAAzD;AAAA,MACR,IAAU,KAAK,aAAY,GACf0D,IAAkBhkB,GAAWrD,GAAWO,GAAW;AAAA,QACvD,CAAC,GAAGP,CAAS,aAAa,GAAG,OAAO,KAAKugB,CAAK,EAAE;AAAA,QAChD,CAAC,GAAGvgB,CAAS,WAAW,GAAG6C;AAAA,QAC3B,CAAC,GAAG7C,CAAS,WAAW,GAAGigB;AAAA,QAC3B,CAAC,GAAGjgB,CAAS,aAAa,GAAG,CAACigB;AAAA,MACtC,CAAO,GACKqH,IAAY;AAAA,QAChB,UAAArH;AAAA,QACA,OAAAM;AAAA,QACA,UAAAP;AAAA,QACA,YAAY,KAAK,cAAa;AAAA,QAC9B,YAAY,KAAK,cAAa;AAAA,QAC9B,KAAAW;AAAA,QACA,KAAAD;AAAA,QACA,SAAAR;AAAA,QACA,OAAO,GAAGlgB,CAAS;AAAA,QACnB,cAAc6C,IAAW4iB,KAAO,KAAK;AAAA,MAC7C,GACYvD,IAAc;AAAA,QAClB,CAACC,KAAkB,wBAAwB,cAAc,GAAGtf,IAAW4iB,KAAO,KAAK;AAAA,MAC3F;AACM,aAAO7kB,EAAa,OAAOE,EAAcA,EAAc;AAAA,QACrD,IAAM4B;AAAA,QACN,KAAO,KAAK;AAAA,QACZ,UAAY;AAAA,QACZ,OAAS2kB;AAAA,MACjB,GAASnF,CAAW,GAAG,IAAI;AAAA,QACnB,aAAerf,IAAW4iB,KAAO,KAAK;AAAA,QACtC,WAAa5iB,IAAW4iB,KAAO,KAAK;AAAA,QACpC,WAAa5iB,IAAW4iB,KAAO,KAAK;AAAA,QACpC,SAAW5iB,IAAW4iB,KAAO,KAAK;AAAA,QAClC,QAAU5iB,IAAW4iB,KAAO,KAAK;AAAA,QACjC,OAAStV;AAAA,MACjB,CAAO,GAAG,CAACvP,EAAa,OAAO;AAAA,QACvB,OAAS,GAAGZ,CAAS;AAAA,QACrB,OAASf,EAASA,EAAS,CAAA,GAAIioB,CAAiB,GAAGC,CAAS;AAAA,MACpE,GAAS,IAAI,GAAGC,GAAQxmB,EAAa8e,IAAO;AAAA,QACpC,WAAa1f;AAAA,QACb,UAAYigB;AAAA,QACZ,SAAWC;AAAA,QACX,OAASK;AAAA,QACT,MAAQC;AAAA,QACR,MAAQC;AAAA,QACR,UAAYT;AAAA,QACZ,YAAc,KAAK,cAAa;AAAA,QAChC,YAAc,KAAK,cAAa;AAAA,QAChC,KAAOW;AAAA,QACP,KAAOD;AAAA,QACP,UAAYK;AAAA,QACZ,gBAAkBC;AAAA,MAC1B,GAAS,IAAI,GAAG2C,GAAS/iB,EAAa0gB,IAAOgG,GAAW;AAAA,QAChD,MAAM,KAAK,OAAO;AAAA,MAC1B,CAAO,GAAGC,GAAQ,IAAI,CAAC,CAAC;AAAA,IACpB;AAAA,EACJ,CAAG;AACH;AClZA,MAAMC,KAASnoB,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,QAAQ,CAACumB,EAAS;AAAA,EAClB,cAAc;AAAA,EACd,OAAO;AAAA,IACL,cAAc;AAAA,IACd,OAAO;AAAA,IACP,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,UAAUrhB,GAAU,UAAU,CAACA,GAAU,QAAQA,GAAU,MAAM,CAAC;AAAA,IAClE,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,KAAK;AAAA,IACL,KAAK;AAAA,IACL,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,IACjC,YAAY;AAAA,EAChB;AAAA,EACE,OAAO,CAAC,gBAAgB,eAAe,QAAQ;AAAA,EAC/C,OAAO;AACL,UAAMkjB,IAAe,KAAK,iBAAiB,SAAY,KAAK,eAAe,KAAK,KAC1E3rB,IAAQ,KAAK,UAAU,SAAY,KAAK,QAAQ2rB;AACtD,WAAO;AAAA,MACL,QAAQ,KAAK,eAAe3rB,CAAK;AAAA,MACjC,UAAU;AAAA,IAChB;AAAA,EACE;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,QAAQ6e,GAAK;AACX,aAAK,eAAeA,CAAG;AAAA,MACzB;AAAA,MACA,MAAM;AAAA,IACZ;AAAA,IACI,MAAM;AACJ,YAAM;AAAA,QACJ,QAAA+M;AAAA,MACR,IAAU;AACJ,WAAK,eAAeA,CAAM;AAAA,IAC5B;AAAA,IACA,MAAM;AACJ,YAAM;AAAA,QACJ,QAAAA;AAAA,MACR,IAAU;AACJ,WAAK,eAAeA,CAAM;AAAA,IAC5B;AAAA,EACJ;AAAA,EACE,SAAS;AAAA,IACP,eAAe5rB,GAAO;AACpB,YAAM8B,IAAW9B,MAAU,SAAYA,IAAQ,KAAK,QAC9C6rB,IAAY,KAAK,eAAe/pB,GAAU,KAAK,MAAM;AAC3D,MAAI+pB,MAAc,KAAK,WACvB,KAAK,SAAS;AAAA,QACZ,QAAQA;AAAA,MAChB,CAAO,GACGC,GAAwBhqB,GAAU,KAAK,MAAM,KAC/C,KAAK,MAAM,UAAU+pB,CAAS;AAAA,IAElC;AAAA,IACA,SAAS5lB,GAAO;AACd,YAAM8lB,IAAkB,CAACC,GAAQ,MAAM,OAAO,GACxCC,IAAYhmB,EAAM,SAAS,KAAK,MAAM9C,EAASA,EAAS,IAAI8C,CAAK,GAAG;AAAA,QACxE,QAAQ,KAAK;AAAA,MACrB,CAAO,IAAIA;AACL,MAAI8lB,KACF,KAAK,SAASE,CAAS;AAEzB,YAAMC,IAAeD,EAAU;AAC/B,WAAK,MAAM,UAAUC,CAAY;AAAA,IACnC;AAAA,IACA,QAAQra,GAAU;AAChB,WAAK,SAAS;AAAA,QACZ,UAAU;AAAA,MAClB,CAAO;AACD,YAAM;AAAA,QACJ,QAAA+Z;AAAA,MACR,IAAU;AACJ,WAAK,MAAM,gBAAgBA,CAAM;AACjC,YAAM5rB,IAAQ,KAAK,eAAe6R,CAAQ;AAG1C,MAFA,KAAK,aAAa7R,GAClB,KAAK,gBAAgB6R,GACjB7R,MAAU4rB,MACd,KAAK,uBAAuB,GAC5B,KAAK,SAAS;AAAA,QACZ,QAAQ5rB;AAAA,MAChB,CAAO;AAAA,IACH;AAAA,IACA,MAAMmsB,GAAO;AACX,YAAM;AAAA,QACJ,UAAAC;AAAA,MACR,IAAU;AACJ,WAAK,qBAAoB,IACrBA,KAAYD,MACd,KAAK,MAAM,eAAe,KAAK,MAAM,GAEvC,KAAK,SAAS;AAAA,QACZ,UAAU;AAAA,MAClB,CAAO;AAAA,IACH;AAAA,IACA,OAAO,GAAGta,GAAU;AAClBkZ,MAAAA,GAAiB,CAAC;AAClB,YAAM;AAAA,QACJ,QAAAa;AAAA,MACR,IAAU,MACE5rB,IAAQ,KAAK,eAAe6R,CAAQ;AAC1C,MAAI7R,MAAU4rB,KACd,KAAK,SAAS;AAAA,QACZ,QAAQ5rB;AAAA,MAChB,CAAO;AAAA,IACH;AAAA,IACA,WAAW,GAAG;AACZ,YAAM;AAAA,QACJ,SAAAokB;AAAA,QACA,UAAAD;AAAA,MACR,IAAU,KAAK,QACHkI,IAAeC,GAA8B,GAAGnI,GAAUC,CAAO;AACvE,UAAIiI,GAAc;AAChBtB,QAAAA,GAAiB,CAAC;AAClB,cAAM;AAAA,UACJ,QAAAa;AAAA,QACV,IAAY,MACEW,IAAeF,EAAaT,GAAQ,KAAK,MAAM,GAC/C5rB,IAAQ,KAAK,eAAeusB,CAAY;AAC9C,YAAIvsB,MAAU4rB,EAAQ;AACtB,aAAK,SAAS;AAAA,UACZ,QAAQ5rB;AAAA,QAClB,CAAS,GACD,KAAK,MAAM,eAAeA,CAAK,GAC/B,KAAK,MAAK;AAAA,MACZ;AAAA,IACF;AAAA,IACA,gBAAgB;AACd,YAAMwsB,IAAW,KAAK,OAAO,cAAc,KAAK,OAAO;AACvD,aAAO,KAAK,MAAM,SAASA,IAAWA,IAAW,KAAK,MAAM;AAAA,IAC9D;AAAA,IACA,gBAAgB;AACd,aAAI,KAAK,MAAM,SAAS,KAAK,OAAO,aAC3B,KAAK,OAAO,aAEd,KAAK,MAAM;AAAA,IACpB;AAAA,IACA,eAAe5U,GAAG;AAChB,UAAI6U,IAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACpF,UAAI7U,MAAM;AACR,eAAO;AAET,YAAM8U,IAAcvpB,EAASA,EAAS,CAAA,GAAI,KAAK,MAAM,GAAGspB,CAAS,GAC3D5N,IAAM8N,GAAyB/U,GAAG8U,CAAW;AACnD,aAAOE,GAA2B/N,GAAK6N,CAAW;AAAA,IACpD;AAAA,IACA,SAASlpB,GAAM;AACb,UAAI;AAAA,QACF,WAAAU;AAAA,QACA,SAAAkgB;AAAA,QACA,UAAAD;AAAA,QACA,UAAAD;AAAA,QACA,mBAAA2I;AAAA,QACA,kBAAAC;AAAA,QACA,QAAA/sB;AAAA,QACA,QAAAmJ;AAAA,MACR,IAAU1F;AACJ,aAAOsB,EAAakf,IAAO;AAAA,QACzB,OAAS,GAAG9f,CAAS;AAAA,QACrB,UAAYigB;AAAA,QACZ,UAAYD;AAAA,QACZ,QAAUhb;AAAA,QACV,SAAWkb;AAAA,QACX,QAAUrkB;AAAA,QACV,OAASoD,EAASA,EAAS,CAAA,GAAI0pB,CAAiB,GAAGC,CAAgB;AAAA,MAC3E,GAAS,IAAI;AAAA,IACT;AAAA,IACA,eAAe;AACb,YAAM;AAAA,QACJ,WAAA5oB;AAAA,QACA,UAAAigB;AAAA,QACA,UAAAD;AAAA,QACA,UAAAnd;AAAA,QACA,mBAAA8lB;AAAA,QACA,YAAAE;AAAA,QACA,aAAAC;AAAA,QACA,UAAA9F;AAAA,QACA,oBAAA+F;AAAA,QACA,yBAAAC;AAAA,QACA,iCAAAC;AAAA,QACA,KAAAvI;AAAA,QACA,KAAAC;AAAA,QACA,YAAAuI;AAAA,QACA,SAAAhJ;AAAA,QACA,QAAAoC;AAAA,QACA,eAAA6G;AAAA,MACR,IAAU,MACEC,IAAkB9G,KAAU6G,GAC5B;AAAA,QACJ,QAAAzB;AAAA,QACA,UAAAQ;AAAA,MACR,IAAU,MACEljB,IAAS,KAAK,WAAW0iB,CAAM,GAC/B/D,IAAUyF,EAAgB;AAAA,QAC9B,OAAO,GAAGppB,CAAS;AAAA,QACnB,WAAAA;AAAA,QACA,UAAAigB;AAAA,QACA,QAAAjb;AAAA,QACA,OAAO0iB;AAAA,QACP,UAAAQ;AAAA,QACA,UAAArlB;AAAA,QACA,KAAA6d;AAAA,QACA,KAAAC;AAAA,QACA,SAAAT;AAAA,QACA,OAAO;AAAA,QACP,UAAA8C;AAAA,QACA,WAAW+F;AAAA,QACX,gBAAgBC;AAAA,QAChB,wBAAwBC;AAAA,QACxB,OAAOH,EAAY,CAAC,KAAKA;AAAA,QACzB,KAAK,CAAAO,MAAK,KAAK,WAAW,GAAGA,CAAC;AAAA,QAC9B,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,MACrB,CAAO,GACKC,IAAcJ,MAAe,SAAY,KAAK,WAAWA,CAAU,IAAI,GACvEN,IAAmBC,EAAW,CAAC,KAAKA;AAC1C,aAAO;AAAA,QACL,QAAQ,KAAK,SAAS;AAAA,UACpB,WAAA7oB;AAAA,UACA,SAAAkgB;AAAA,UACA,UAAAD;AAAA,UACA,UAAAD;AAAA,UACA,QAAQsJ;AAAA,UACR,mBAAAX;AAAA,UACA,kBAAAC;AAAA,UACA,QAAQ5jB,IAASskB;AAAA,QAC3B,CAAS;AAAA,QACD,SAAA3F;AAAA,MACR;AAAA,IACI;AAAA,EACJ;AACA,CAAC,GACD4F,KAAe7D,GAAa8B,EAAM,GCtP5BgC,KAAiB,CAAAlqB,MAAQ;AAC7B,MAAI;AAAA,IACF,OAAAxD;AAAA,IACA,QAAAwmB;AAAA,IACA,QAAA6D;AAAA,IACA,OAAA/pB;AAAA,EACJ,IAAMkD;AACJ,QAAM;AAAA,IACJ,YAAAmqB;AAAA,IACA,UAAAC;AAAA,EACJ,IAAMttB,GACEutB,IAAY,OAAOD,CAAQ,GAC3BE,IAAanB,GAAyB3sB,GAAOM,CAAK;AACxD,MAAIytB,IAAiBD;AACrB,SAAI,CAACH,KAAcnH,KAAU,QAAQ6D,MAAW,WAC1C7D,IAAS,KAAKsH,KAAczD,EAAO7D,IAAS,CAAC,IAAIqH,MACnDE,IAAiB1D,EAAO7D,IAAS,CAAC,IAAIqH,IAEpCrH,IAAS6D,EAAO,SAAS,KAAKyD,KAAczD,EAAO7D,IAAS,CAAC,IAAIqH,MACnEE,IAAiB1D,EAAO7D,IAAS,CAAC,IAAIqH,KAGnCjB,GAA2BmB,GAAgBztB,CAAK;AACzD,GACM0tB,KAAa;AAAA,EACjB,cAAcvlB,GAAU,QAAQA,GAAU,MAAM;AAAA,EAChD,OAAOA,GAAU,QAAQA,GAAU,MAAM;AAAA,EACzC,OAAO;AAAA,EACP,UAAUwlB,GAAcxlB,GAAU,UAAU,CAACA,GAAU,WAAWA,GAAU,MAAM,CAAC,CAAC;AAAA,EACpF,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,UAAUA,GAAU,QAAQA,GAAU,MAAM;AAAA,EAC5C,WAAW;AAAA,EACX,KAAK;AAAA,EACL,KAAK;AAAA,EACL,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,0BAA0B;AAAA,EAC1B,+BAA+B;AAAA,EAC/B,uCAAuC;AAAA,EACvC,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACA,GACMylB,KAAQ3qB,EAAgB;AAAA,EAC5B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,QAAQ,CAACumB,EAAS;AAAA,EAClB,cAAc;AAAA,EACd,OAAO7R,GAAiB+V,IAAY;AAAA,IAClC,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU,CAAA;AAAA,IACV,gBAAgB;AAAA,IAChB,0BAA0B,CAAA;AAAA,IAC1B,+BAA+B,CAAA;AAAA,IAC/B,uCAAuC,CAAA;AAAA,EAC3C,CAAG;AAAA,EACD,OAAO,CAAC,gBAAgB,eAAe,QAAQ;AAAA,EAC/C,aAAa;AAAA,EACb,OAAO;AACL,UAAM;AAAA,MACJ,OAAAG;AAAA,MACA,KAAAvJ;AAAA,MACA,KAAAC;AAAA,IACN,IAAQ,MACEuJ,IAAe,MAAM,GAAG,MAAMD,IAAQ,CAAC,CAAC,EAAE,IAAI,MAAMvJ,CAAG,GACvD+G,IAAeK,GAAQ,MAAM,cAAc,IAAI,KAAK,eAAeoC;AACzE,QAAI;AAAA,MACF,OAAApuB;AAAA,IACN,IAAQ;AACJ,IAAIA,MAAU,WACZA,IAAQ2rB;AAEV,UAAMtB,IAASrqB,EAAM,IAAI,CAAC4X,GAAGzP,MAAMulB,GAAe;AAAA,MAChD,OAAO9V;AAAA,MACP,QAAQzP;AAAA,MACR,OAAO,KAAK;AAAA,IAClB,CAAK,CAAC;AAEF,WAAO;AAAA,MACL,SAAS;AAAA,MACT,QAHakiB,EAAO,CAAC,MAAMxF,IAAM,IAAIwF,EAAO,SAAS;AAAA,MAIrD,QAAAA;AAAA,IACN;AAAA,EACE;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,QAAQxL,GAAK;AACX,cAAM;AAAA,UACJ,QAAAwL;AAAA,QACV,IAAY;AACJ,aAAK,eAAexL,KAAOwL,CAAM;AAAA,MACnC;AAAA,MACA,MAAM;AAAA,IACZ;AAAA,IACI,MAAM;AACJ,YAAM;AAAA,QACJ,OAAArqB;AAAA,MACR,IAAU;AACJ,WAAK,eAAeA,KAAS,KAAK,MAAM;AAAA,IAC1C;AAAA,IACA,MAAM;AACJ,YAAM;AAAA,QACJ,OAAAA;AAAA,MACR,IAAU;AACJ,WAAK,eAAeA,KAAS,KAAK,MAAM;AAAA,IAC1C;AAAA,EACJ;AAAA,EACE,SAAS;AAAA,IACP,eAAeA,GAAO;AACpB,YAAM;AAAA,QACJ,QAAAqqB;AAAA,MACR,IAAU;AACJ,UAAIgE,IAAaruB,EAAM,IAAI,CAAC4X,GAAGzP,MAAMulB,GAAe;AAAA,QAClD,OAAO9V;AAAA,QACP,QAAQzP;AAAA,QACR,QAAAkiB;AAAA,QACA,OAAO,KAAK;AAAA,MACpB,CAAO,CAAC;AACF,UAAIA,EAAO,WAAWgE,EAAW;AAC/B,YAAIA,EAAW,MAAM,CAACzW,GAAGzP,MAAMyP,MAAMyS,EAAOliB,CAAC,CAAC;AAC5C,iBAAO;AAAA;AAGT,QAAAkmB,IAAaruB,EAAM,IAAI,CAAC4X,GAAGzP,MAAMulB,GAAe;AAAA,UAC9C,OAAO9V;AAAA,UACP,QAAQzP;AAAA,UACR,OAAO,KAAK;AAAA,QACtB,CAAS,CAAC;AAKJ,UAHA,KAAK,SAAS;AAAA,QACZ,QAAQkmB;AAAA,MAChB,CAAO,GACGruB,EAAM,KAAK,CAAA4X,MAAKkU,GAAwBlU,GAAG,KAAK,MAAM,CAAC,GAAG;AAC5D,cAAM0W,IAAYtuB,EAAM,IAAI,CAAA4X,MACnB+U,GAAyB/U,GAAG,KAAK,MAAM,CAC/C;AACD,aAAK,MAAM,UAAU0W,CAAS;AAAA,MAChC;AAAA,IACF;AAAA,IACA,SAASroB,GAAO;AAEd,UADwB,CAAC+lB,GAAQ,MAAM,OAAO;AAE5C,aAAK,SAAS/lB,CAAK;AAAA,WACd;AACL,cAAMsoB,IAAkB,CAAA;AACxB,SAAC,WAAW,QAAQ,EAAE,QAAQ,CAAA3pB,MAAQ;AACpC,UAAIqB,EAAMrB,CAAI,MAAM,WAClB2pB,EAAgB3pB,CAAI,IAAIqB,EAAMrB,CAAI;AAAA,QAEtC,CAAC,GACG,OAAO,KAAK2pB,CAAe,EAAE,UAC/B,KAAK,SAASA,CAAe;AAAA,MAEjC;AAEA,YAAMrC,IADO/oB,EAASA,EAAS,CAAA,GAAI,KAAK,KAAK,GAAG8C,CAAK,EAC3B;AAC1B,WAAK,MAAM,UAAUimB,CAAY;AAAA,IACnC;AAAA,IACA,iBAAiBra,GAAU;AACzB,YAAMwY,IAAS,KAAK,SAAQ,GACtBrqB,IAAQ,KAAK,eAAe6R,CAAQ,GACpC2c,IAAe,KAAK,gBAAgBxuB,CAAK,GACzCF,IAAQ,KAAK,mBAAmBE,GAAOwuB,CAAY,GACnDC,IAAYpE,EAAOvqB,CAAK;AAC9B,UAAIE,MAAUyuB,EAAW,QAAO;AAChC,YAAMJ,IAAa,CAAC,GAAGhE,CAAM;AAC7B,aAAAgE,EAAWvuB,CAAK,IAAIE,GACbquB;AAAA,IACT;AAAA,IACA,QAAQxc,GAAU;AAChB,YAAM;AAAA,QACJ,QAAAwY;AAAA,MACR,IAAU;AACJ,WAAK,MAAM,gBAAgBA,CAAM;AACjC,YAAMrqB,IAAQ,KAAK,eAAe6R,CAAQ;AAC1C,WAAK,aAAa7R,GAClB,KAAK,gBAAgB6R;AACrB,YAAM2c,IAAe,KAAK,gBAAgBxuB,CAAK;AAC/C,WAAK,uBAAuB,KAAK,mBAAmBA,GAAOwuB,CAAY,GACvE,KAAK,SAAS;AAAA,QACZ,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,MACrB,CAAO;AACD,YAAMC,IAAYpE,EAAO,KAAK,oBAAoB;AAClD,UAAIrqB,MAAUyuB,EAAW;AACzB,YAAMJ,IAAa,CAAC,GAAGhE,CAAM;AAC7B,MAAAgE,EAAW,KAAK,oBAAoB,IAAIruB,GACxC,KAAK,SAAS;AAAA,QACZ,QAAQquB;AAAA,MAChB,CAAO;AAAA,IACH;AAAA,IACA,MAAMlC,GAAO;AACX,YAAM;AAAA,QACJ,SAAAuC;AAAA,MACR,IAAU;AACJ,WAAK,qBAAoB,GACpBA,MACH,KAAK,YAAY,MAEfA,MAAY,QAAQvC,MACtB,KAAK,MAAM,eAAe,KAAK,MAAM,GAEvC,KAAK,SAAS;AAAA,QACZ,SAAS;AAAA,MACjB,CAAO;AAAA,IACH;AAAA,IACA,OAAO,GAAGta,GAAU8c,GAAWC,GAAa;AAC1C7D,MAAAA,GAAiB,CAAC;AAClB,YAAM;AAAA,QACJ,OAAO9kB;AAAA,QACP,QAAQ3F;AAAA,MAChB,IAAU,MACEuuB,IAAWvuB,EAAM,OAAO,KACxBwuB,IAAWxuB,EAAM,OAAO;AAC9B,UAAIquB,GAAW;AACb,YAAII,IAAMzuB,EAAM,WAAW,CAACuR,IAAWA;AACvC,QAAAkd,IAAMzuB,EAAM,UAAU,CAACyuB,IAAMA;AAC7B,cAAMlK,IAAMgK,IAAW,KAAK,IAAI,GAAGD,CAAW,GACxChK,IAAMkK,IAAW,KAAK,IAAI,GAAGF,CAAW,GACxC1D,IAAQ,KAAK,IAAI,KAAK,IAAI6D,KAAO,KAAK,gBAAe,IAAK,MAAMnK,CAAG,GAAGC,CAAG,GACzEwJ,IAAaO,EAAY,IAAI,CAAAhX,MAAK,KAAK,MAAM,KAAK,IAAI,KAAK,IAAIA,IAAIsT,GAAO2D,CAAQ,GAAGC,CAAQ,CAAC,CAAC;AACrG,QAAI7oB,EAAM,OAAO,IAAI,CAACwkB,GAAGtiB,MAAMsiB,MAAM4D,EAAWlmB,CAAC,CAAC,EAAE,KAAK,CAAAsiB,MAAK,CAACA,CAAC,KAC9D,KAAK,SAAS;AAAA,UACZ,QAAQ4D;AAAA,QACpB,CAAW;AAEH;AAAA,MACF;AACA,YAAM;AAAA,QACJ,QAAAhE;AAAA,QACA,SAAAqE;AAAA,MACR,IAAU,MACE1uB,IAAQ,KAAK,eAAe6R,CAAQ,GACpCmd,IAAW3E,EAAOqE,CAAO;AAC/B,MAAI1uB,MAAUgvB,KACd,KAAK,OAAOhvB,CAAK;AAAA,IACnB;AAAA,IACA,WAAW,GAAG;AACZ,YAAM;AAAA,QACJ,SAAAokB;AAAA,QACA,UAAAD;AAAA,MACR,IAAU,KAAK,QACHkI,IAAeC,GAA8B,GAAGnI,GAAUC,CAAO;AACvE,UAAIiI,GAAc;AAChBtB,QAAAA,GAAiB,CAAC;AAClB,cAAM;AAAA,UACJ,QAAAV;AAAA,UACA,SAAAqE;AAAA,QACV,IAAY,MACEM,IAAW3E,EAAOqE,MAAY,OAAO,KAAK,SAASA,CAAO,GAC1DnC,IAAeF,EAAa2C,GAAU,KAAK,MAAM,GACjDhvB,IAAQ0tB,GAAe;AAAA,UAC3B,OAAOnB;AAAA,UACP,QAAQmC;AAAA,UACR,QAAArE;AAAA,UACA,OAAO,KAAK;AAAA,QACtB,CAAS;AACD,YAAIrqB,MAAUgvB,EAAU;AAExB,aAAK,OAAOhvB,GADgB,EACU;AAAA,MACxC;AAAA,IACF;AAAA,IACA,gBAAgBA,GAAO;AACrB,YAAM;AAAA,QACJ,QAAAqqB;AAAA,MACR,IAAU;AACJ,UAAImE,IAAe;AACnB,eAASrmB,IAAI,GAAGA,IAAIkiB,EAAO,SAAS,GAAGliB,KAAK;AAC1C,QAAInI,KAASqqB,EAAOliB,CAAC,MACnBqmB,IAAermB;AAGnB,aAAI,KAAK,IAAIkiB,EAAOmE,IAAe,CAAC,IAAIxuB,CAAK,IAAI,KAAK,IAAIqqB,EAAOmE,CAAY,IAAIxuB,CAAK,MACpFwuB,KAAgB,IAEXA;AAAA,IACT;AAAA,IACA,mBAAmBxuB,GAAOwuB,GAAc;AACtC,YAAM;AAAA,QACJ,QAAAnE;AAAA,QACA,QAAA4E;AAAA,MACR,IAAU;AACJ,UAAIC,IAAkBV;AACtB,YAAMW,IAAmB9E,EAAOmE,IAAe,CAAC,MAAMnE,EAAOmE,CAAY;AACzE,aAAIW,KAAoB9E,EAAO4E,CAAM,MAAM5E,EAAOmE,CAAY,MAC5DU,IAAkBD,IAEhBE,KAAoBnvB,MAAUqqB,EAAOmE,IAAe,CAAC,MACvDU,IAAkBlvB,IAAQqqB,EAAOmE,IAAe,CAAC,IAAIA,IAAeA,IAAe,IAE9EU;AAAA,IACT;AAAA,IACA,gBAAgB;AACd,aAAO,KAAK,OAAO,CAAC;AAAA,IACtB;AAAA,IACA,gBAAgB;AACd,YAAM;AAAA,QACJ,QAAA7E;AAAA,MACR,IAAU;AACJ,aAAOA,EAAOA,EAAO,SAAS,CAAC;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAY;AACV,YAAM;AAAA,QACJ,OAAA5F;AAAA,QACA,MAAAE;AAAA,QACA,KAAAC;AAAA,QACA,KAAAC;AAAA,MACR,IAAU,MACEuK,IAAQ,KAAK;AACnB,UAAI,CAACA,KAASA,EAAM,UAAU3K,KAAS2K,EAAM,SAASzK,GAAM;AAC1D,cAAM0K,IAAelsB,EAAS,CAAA,GAAIshB,CAAK;AACvC,YAAIE,MAAS;AACX,mBAASU,IAAQT,GAAKS,KAASR,GAAKQ,KAASV;AAC3C,YAAA0K,EAAahK,CAAK,IAAIA;AAG1B,cAAMP,IAAS,OAAO,KAAKuK,CAAY,EAAE,IAAI,UAAU;AACvD,QAAAvK,EAAO,KAAK,CAACxH,GAAGC,MAAMD,IAAIC,CAAC,GAC3B,KAAK,sBAAsB;AAAA,UACzB,OAAAkH;AAAA,UACA,MAAAE;AAAA,UACA,QAAAG;AAAA,QACV;AAAA,MACM;AACA,aAAO,KAAK,oBAAoB;AAAA,IAClC;AAAA,IACA,OAAO9kB,GAAOsvB,GAAqB;AACjC,YAAMjB,IAAa,CAAC,GAAG,KAAK,MAAM,GAC5B;AAAA,QACJ,SAAAK;AAAA,QACA,QAAAO;AAAA,MACR,IAAU,MACEzI,IAASkI,MAAY,OAAOO,IAASP;AAC3C,MAAAL,EAAW7H,CAAM,IAAIxmB;AACrB,UAAIuvB,IAAa/I;AACjB,MAAI,KAAK,OAAO,aAAa,KAC3B,KAAK,uBAAuB6H,GAAYkB,CAAU,IACzC,KAAK,OAAO,eACrBlB,EAAW,KAAK,CAAC/Q,GAAGC,MAAMD,IAAIC,CAAC,GAC/BgS,IAAalB,EAAW,QAAQruB,CAAK,IAEvC,KAAK,SAAS;AAAA,QACZ,QAAQuvB;AAAA,QACR,SAASA;AAAA,QACT,QAAQlB;AAAA,MAChB,CAAO,GACGiB,MAKF,KAAK,MAAM,eAAejB,CAAU,GACpC,KAAK,SAAS,CAAA,GAAI,MAAM;AACtB,aAAK,YAAYkB,CAAU,EAAE,MAAK;AAAA,MACpC,CAAC,GACD,KAAK,MAAK;AAAA,IAEd;AAAA,IACA,uBAAuBlF,GAAQ7D,GAAQ;AACrC,YAAMxmB,IAAQqqB,EAAO7D,CAAM,GACrB;AAAA,QACJ,UAAAoH;AAAA,MACR,IAAU,MACE4B,IAAY,OAAO5B,CAAQ;AACjC,UAAIxV,IAAY;AAOhB,UANIiS,EAAO7D,IAAS,CAAC,IAAIxmB,IAAQwvB,MAC/BpX,IAAY,IAEVpY,IAAQqqB,EAAO7D,IAAS,CAAC,IAAIgJ,MAC/BpX,IAAY,KAEVA,MAAc;AAChB;AAEF,YAAMmX,IAAa/I,IAASpO,GACtBqX,IAAarX,KAAaiS,EAAOkF,CAAU,IAAIvvB;AACrD,MAAK,KAAK,WAAWqqB,GAAQkF,GAAYnX,GAAWoX,IAAYC,CAAU,MAExEpF,EAAO7D,CAAM,IAAI6D,EAAOkF,CAAU,IAAInX,IAAYoX;AAAA,IAEtD;AAAA,IACA,WAAWnF,GAAQ7D,GAAQpO,GAAWsX,GAAQ;AAC5C,YAAMC,IAAgBtF,EAAO7D,CAAM;AACnC,UAAIoJ,IAAevF,EAAO7D,CAAM;AAChC,aAAOpO,KAAawX,IAAeD,KAAiBD,KAAQ;AAC1D,YAAI,CAAC,KAAK,mBAAmBrF,GAAQ7D,GAAQpO,CAAS;AAGpD,iBAAAiS,EAAO7D,CAAM,IAAImJ,GACV;AAET,QAAAC,IAAevF,EAAO7D,CAAM;AAAA,MAC9B;AAEA,aAAO;AAAA,IACT;AAAA,IACA,mBAAmB6D,GAAQ7D,GAAQpO,GAAW;AAC5C,YAAM0M,IAAS,KAAK,UAAS,GAEvB+K,IADa/K,EAAO,QAAQuF,EAAO7D,CAAM,CAAC,IACZpO;AACpC,UAAIyX,KAAkB/K,EAAO,UAAU+K,IAAiB;AAEtD,eAAO;AAET,YAAMN,IAAa/I,IAASpO,GACtByT,IAAY/G,EAAO+K,CAAc,GACjC;AAAA,QACJ,UAAAjC;AAAA,MACR,IAAU,MACE4B,IAAY,OAAO5B,CAAQ,GAC3B6B,IAAarX,KAAaiS,EAAOkF,CAAU,IAAI1D;AACrD,aAAK,KAAK,WAAWxB,GAAQkF,GAAYnX,GAAWoX,IAAYC,CAAU,KAK1EpF,EAAO7D,CAAM,IAAIqF,GACV,MAJE;AAAA,IAKX;AAAA,IACA,eAAe7rB,GAAO;AACpB,YAAM;AAAA,QACJ,SAAA0uB;AAAA,QACA,QAAArE;AAAA,MACR,IAAU;AACJ,aAAOqD,GAAe;AAAA,QACpB,OAAA1tB;AAAA,QACA,QAAQ0uB;AAAA,QACR,QAAArE;AAAA,QACA,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACH;AAAA,IACA,uBAAuB7D,GAAQ3H,GAAKhU,GAAO;AACzC,UAAI;AAAA,QACF,YAAA8iB;AAAA,QACA,UAAUE;AAAA,MAClB,IAAUhjB;AACJ,YAAM5E,IAAQ,KAAK,SAAS,CAAA,GACtB;AAAA,QACJ,QAAAokB;AAAA,MACR,IAAUpkB;AAIJ,UAHAugB,IAASA,MAAW,SAAYvgB,EAAM,UAAUugB,GAChDqH,IAAY,OAAOA,CAAS,GAExB,CAACF,KAAcnH,KAAU,QAAQ6D,MAAW,QAAW;AACzD,YAAI7D,IAAS,KAAK3H,KAAOwL,EAAO7D,IAAS,CAAC,IAAIqH;AAC5C,iBAAOxD,EAAO7D,IAAS,CAAC,IAAIqH;AAE9B,YAAIrH,IAAS6D,EAAO,SAAS,KAAKxL,KAAOwL,EAAO7D,IAAS,CAAC,IAAIqH;AAC5D,iBAAOxD,EAAO7D,IAAS,CAAC,IAAIqH;AAAA,MAEhC;AAEA,aAAOhP;AAAA,IACT;AAAA,IACA,SAAS9K,GAAO;AACd,UAAI;AAAA,QACF,QAAAsW;AAAA,QACA,WAAAnmB;AAAA,QACA,SAAAkgB;AAAA,QACA,UAAAD;AAAA,QACA,UAAAD;AAAA,QACA,SAAA4L;AAAA,QACA,YAAA/C;AAAA,MACR,IAAUhZ;AACJ,aAAOsW,EAAO,MAAM,GAAG,EAAE,EAAE,IAAI,CAACpG,GAAGnkB,MAAU;AAC3C,cAAMqI,IAAIrI,IAAQ,GACZiwB,IAAiBxoB,GAAW;AAAA,UAChC,CAAC,GAAGrD,CAAS,QAAQ,GAAG;AAAA,UACxB,CAAC,GAAGA,CAAS,UAAUiE,CAAC,EAAE,GAAG;AAAA,QACvC,CAAS;AACD,eAAOrD,EAAakf,IAAO;AAAA,UACzB,OAAS+L;AAAA,UACT,UAAY5L;AAAA,UACZ,SAAWC;AAAA,UACX,UAAYF;AAAA,UACZ,QAAU4L,EAAQ3nB,IAAI,CAAC;AAAA,UACvB,QAAU2nB,EAAQ3nB,CAAC,IAAI2nB,EAAQ3nB,IAAI,CAAC;AAAA,UACpC,OAAS4kB,EAAWjtB,CAAK;AAAA,UACzB,KAAOqI;AAAA,QACjB,GAAW,IAAI;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,eAAe;AACb,YAAM;AAAA,QACJ,SAAAumB;AAAA,QACA,QAAArE;AAAA,QACA,WAAAnmB;AAAA,QACA,UAAAigB;AAAA,QACA,UAAAD;AAAA,QACA,UAAAnd;AAAA,QACA,KAAA6d;AAAA,QACA,KAAAC;AAAA,QACA,SAAAT;AAAA,QACA,QAAAoC;AAAA,QACA,eAAA6G;AAAA,QACA,YAAAN;AAAA,QACA,aAAAC;AAAA,QACA,UAAA9F;AAAA,QACA,0BAAA8I;AAAA,QACA,+BAAAC;AAAA,QACA,uCAAAC;AAAA,MACR,IAAU,MACE5C,IAAkB9G,KAAU6G,GAC5ByC,IAAUzF,EAAO,IAAI,CAAAzS,MAAK,KAAK,WAAWA,CAAC,CAAC,GAC5CuY,IAAkB,GAAGjsB,CAAS,WAC9B2jB,IAAUwC,EAAO,IAAI,CAACzS,GAAGzP,MAAM;AACnC,YAAIsf,IAAiBP,EAAS/e,CAAC,KAAK;AACpC,SAAIpB,KAAYmgB,EAAS/e,CAAC,MAAM,UAC9Bsf,IAAiB;AAEnB,cAAM2E,IAAWsC,MAAYvmB;AAC7B,eAAOmlB,EAAgB;AAAA,UACrB,OAAO/lB,GAAW;AAAA,YAChB,CAAC4oB,CAAe,GAAG;AAAA,YACnB,CAAC,GAAGA,CAAe,IAAIhoB,IAAI,CAAC,EAAE,GAAG;AAAA,YACjC,CAAC,GAAGgoB,CAAe,WAAW,GAAG/D;AAAA,UAC7C,CAAW;AAAA,UACD,WAAAloB;AAAA,UACA,UAAAigB;AAAA,UACA,UAAAiI;AAAA,UACA,QAAQ0D,EAAQ3nB,CAAC;AAAA,UACjB,OAAOyP;AAAA,UACP,OAAOzP;AAAA,UACP,UAAUsf;AAAA,UACV,KAAA7C;AAAA,UACA,KAAAC;AAAA,UACA,SAAAT;AAAA,UACA,UAAArd;AAAA,UACA,OAAOimB,EAAY7kB,CAAC;AAAA,UACpB,KAAK,CAAAolB,MAAK,KAAK,WAAWplB,GAAGolB,CAAC;AAAA,UAC9B,SAAS,KAAK;AAAA,UACd,QAAQ,KAAK;AAAA,UACb,WAAWyC,EAAyB7nB,CAAC;AAAA,UACrC,gBAAgB8nB,EAA8B9nB,CAAC;AAAA,UAC/C,wBAAwB+nB,EAAsC/nB,CAAC;AAAA,QACzE,CAAS;AAAA,MACH,CAAC;AACD,aAAO;AAAA,QACL,QAAQ,KAAK,SAAS;AAAA,UACpB,QAAAkiB;AAAA,UACA,WAAAnmB;AAAA,UACA,SAAAkgB;AAAA,UACA,UAAAD;AAAA,UACA,UAAAD;AAAA,UACA,SAAA4L;AAAA,UACA,YAAA/C;AAAA,QACV,CAAS;AAAA,QACD,SAAAlF;AAAA,MACR;AAAA,IACI;AAAA,EACJ;AACA,CAAC,GACDuI,KAAexG,GAAasE,EAAK,GCpkBjCmC,KAAe9sB,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO+sB,GAAY;AAAA,EACnB,MAAMhwB,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,IACN,IAAQD;AACJ,UAAM+sB,IAAWzsB,GAAI,IAAI,GACnBuB,IAASvB,GAAI,IAAI;AACvB,aAAS0sB,IAAkB;AACzB5qB,MAAAA,GAAI,OAAOP,EAAO,KAAK,GACvBA,EAAO,QAAQ;AAAA,IACjB;AACA,aAASorB,IAAY;AACnB,MAAAprB,EAAO,QAAQO,GAAI,MAAM;AACvB,YAAI5C;AACJ,SAACA,IAAKutB,EAAS,WAAW,QAAQvtB,MAAO,UAAkBA,EAAG,gBAAe,GAC7EqC,EAAO,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH;AACA,UAAMqrB,IAAQ,MAAM;AAClB,MAAAF,EAAe,GACXlwB,EAAM,QACRmwB,EAAS;AAAA,IAEb;AACA,WAAA9mB,GAAM,CAAC,MAAMrJ,EAAM,MAAM,MAAMA,EAAM,KAAK,GAAG,MAAM;AACjD,MAAAowB,EAAK;AAAA,IACP,GAAG;AAAA,MACD,OAAO;AAAA,MACP,WAAW;AAAA,IACjB,CAAK,GACDC,GAAY,MAAM;AAChB,MAAAD,EAAK;AAAA,IACP,CAAC,GACD7qB,GAAgB,MAAM;AACpB,MAAA2qB,EAAe;AAAA,IACjB,CAAC,GACM,MACE1rB,EAAa0c,IAASxc,EAAcA,EAAc;AAAA,MACvD,KAAOurB;AAAA,IACf,GAASjwB,CAAK,GAAGoD,CAAK,GAAGD,CAAK;AAAA,EAE5B;AACF,CAAC,GCjDKue,KAAe,CAAA1M,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,aAAAqb;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,uBAAAC;AAAA,EACJ,IAAM1b;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAGpS,EAASA,EAAS,CAAA,GAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MAC5D,UAAU;AAAA,MACV,QAAQsb;AAAA,MACR,QAAQ,GAAGG,CAAU,MAAMD,CAAU;AAAA,MACrC,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,aAAa;AAAA,MACZ,cAAe;AAAA,QACd,QAAQ,GAAGA,CAAU,MAAMC,CAAU;AAAA,MAC7C;AAAA,MACM,CAAC,GAAGxb,CAAY,OAAO,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,iBAAiBD,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,QACpB,YAAY,oBAAoBA,EAAM,iBAAiB;AAAA,MAC/D;AAAA,MACM,CAAC,GAAGC,CAAY,QAAQ,GAAG;AAAA,QACzB,UAAU;AAAA,QACV,iBAAiBD,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,QACpB,YAAY,oBAAoBA,EAAM,iBAAiB;AAAA,MAC/D;AAAA,MACM,WAAW;AAAA,QACT,CAAC,GAAGC,CAAY,OAAO,GAAG;AAAA,UACxB,iBAAiBD,EAAM;AAAA,QACjC;AAAA,QACQ,CAAC,GAAGC,CAAY,QAAQ,GAAG;AAAA,UACzB,iBAAiBD,EAAM;AAAA,QACjC;AAAA,QACQ,CAAC,GAAGC,CAAY,MAAM,GAAG;AAAA,UACvB,aAAayb;AAAA,QACvB;AAAA,QACQ,CAAC,GAAGzb,CAAY,gBAAgB,GAAG;AAAA,UACjC,WAAW,SAASD,EAAM,eAAe,MAAMA,EAAM,uBAAuB;AAAA,QACtF;AAAA,QACQ,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,UAC9B,aAAaD,EAAM;AAAA,QAC7B;AAAA,MACA;AAAA,MACM,CAAC,GAAGC,CAAY,SAAS,GAAG;AAAA,QAC1B,UAAU;AAAA,QACV,OAAOD,EAAM;AAAA,QACb,QAAQA,EAAM;AAAA,QACd,SAAS;AAAA,QACT,CAAC,GAAGC,CAAY,WAAW,GAAG;AAAA,UAC5B,QAAQ;AAAA,QAClB;AAAA;AAAA,QAEQ,aAAa;AAAA,UACX,SAAS;AAAA,UACT,UAAU;AAAA,UACV,kBAAkB,CAACD,EAAM;AAAA,UACzB,iBAAiB,CAACA,EAAM;AAAA,UACxB,OAAOA,EAAM,aAAaA,EAAM,kBAAkB;AAAA,UAClD,QAAQA,EAAM,aAAaA,EAAM,kBAAkB;AAAA,UACnD,iBAAiB;AAAA,QAC3B;AAAA,QACQ,YAAY;AAAA,UACV,SAAS;AAAA,UACT,UAAU;AAAA,UACV,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAOA,EAAM;AAAA,UACb,QAAQA,EAAM;AAAA,UACd,iBAAiBA,EAAM;AAAA,UACvB,WAAW,SAASA,EAAM,eAAe,MAAMA,EAAM,kBAAkB;AAAA,UACvE,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,YAAY;AAAA,iCACWA,EAAM,iBAAiB;AAAA,gCACxBA,EAAM,iBAAiB;AAAA,oBACnCA,EAAM,iBAAiB;AAAA,qBACtBA,EAAM,iBAAiB;AAAA,yBACnBA,EAAM,iBAAiB;AAAA;AAAA,QAEhD;AAAA,QACQ,8BAA8B;AAAA,UAC5B,aAAa;AAAA,YACX,kBAAkB,GAAGA,EAAM,kBAAkBA,EAAM,cAAc,IAAIA,EAAM;AAAA,YAC3E,iBAAiB,GAAGA,EAAM,kBAAkBA,EAAM,cAAc,IAAIA,EAAM;AAAA,YAC1E,OAAOA,EAAM,kBAAkBA,EAAM,uBAAuB;AAAA,YAC5D,QAAQA,EAAM,kBAAkBA,EAAM,uBAAuB;AAAA,UACzE;AAAA,UACU,YAAY;AAAA,YACV,WAAW,SAASA,EAAM,oBAAoB,MAAMA,EAAM,YAAY;AAAA,YACtE,OAAOA,EAAM;AAAA,YACb,QAAQA,EAAM;AAAA,YACd,mBAAmBA,EAAM,aAAaA,EAAM,mBAAmB;AAAA,YAC/D,kBAAkBA,EAAM,aAAaA,EAAM,mBAAmB;AAAA,UAC1E;AAAA,QACA;AAAA,MACA;AAAA,MACM,CAAC,GAAGC,CAAY,OAAO,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,UAAUD,EAAM;AAAA,MACxB;AAAA,MACM,CAAC,GAAGC,CAAY,YAAY,GAAG;AAAA,QAC7B,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAOD,EAAM;AAAA,QACb,WAAW;AAAA,QACX,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,YAAY;AAAA,UACV,OAAOA,EAAM;AAAA,QACvB;AAAA,MACA;AAAA,MACM,CAAC,GAAGC,CAAY,OAAO,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACvB;AAAA,MACM,CAAC,GAAGA,CAAY,MAAM,GAAG;AAAA,QACvB,UAAU;AAAA,QACV,OAAOsb;AAAA,QACP,QAAQA;AAAA,QACR,iBAAiBvb,EAAM;AAAA,QACvB,QAAQ,GAAGA,EAAM,eAAe,YAAYA,EAAM,oBAAoB;AAAA,QACtE,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,YAAY,gBAAgBA,EAAM,kBAAkB;AAAA,QACpD,YAAY;AAAA,UACV,aAAaA,EAAM;AAAA,QAC7B;AAAA,MACA;AAAA,MACM,CAAC,IAAIC,CAAY,WAAW,GAAG;AAAA,QAC7B,QAAQ;AAAA,QACR,CAAC,GAAGA,CAAY,OAAO,GAAG;AAAA,UACxB,iBAAiB,GAAGD,EAAM,kBAAkB;AAAA,QACtD;AAAA,QACQ,CAAC,GAAGC,CAAY,QAAQ,GAAG;AAAA,UACzB,iBAAiB,GAAGD,EAAM,iBAAiB;AAAA,QACrD;AAAA,QACQ,CAAC;AAAA,YACGC,CAAY;AAAA,SACf,GAAG;AAAA,UACF,iBAAiBD,EAAM;AAAA,UACvB,aAAaA,EAAM;AAAA,UACnB,WAAW;AAAA,UACX,QAAQ;AAAA,QAClB;AAAA,QACQ,CAAC,GAAGC,CAAY,gBAAgB,GAAG;AAAA,UACjC,iBAAiBD,EAAM;AAAA,UACvB,QAAQ;AAAA,UACR,OAAOA,EAAM;AAAA,UACb,QAAQA,EAAM;AAAA,UACd,WAAW,SAASA,EAAM,eAAe,MAAM,IAAI2b,GAAU3b,EAAM,iBAAiB,EAAE,aAAaA,EAAM,gBAAgB,EAAE,YAAW,CAAE;AAAA,UACxI,kBAAkB;AAAA,UAClB,iBAAiB;AAAA,QAC3B;AAAA,QACQ,CAAC;AAAA,YACGC,CAAY;AAAA,YACZA,CAAY;AAAA,SACf,GAAG;AAAA,UACF,QAAQ;AAAA,QAClB;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACL;AACA,GAEM2b,KAAoB,CAAC5b,GAAO6b,MAAe;AAC/C,QAAM;AAAA,IACJ,cAAA5b;AAAA,IACA,UAAA6b;AAAA,IACA,YAAAC;AAAA,IACA,SAAAR;AAAA,EACJ,IAAMvb,GACEgc,IAAcH,IAAa,iBAAiB,iBAC5CI,IAAOJ,IAAa,UAAU,UAC9BK,IAAOL,IAAa,WAAW,SAC/BM,IAAYN,IAAa,oBAAoB,oBAC7CO,IAAYP,IAAa,QAAQ;AACvC,SAAO;AAAA,IACL,CAACG,CAAW,GAAGF;AAAA,IACf,CAACI,CAAI,GAAGJ,IAAW;AAAA,IACnB,CAAC,GAAG7b,CAAY,OAAO,GAAG;AAAA,MACxB,CAACgc,CAAI,GAAG;AAAA,MACR,CAACC,CAAI,GAAGJ;AAAA,IACd;AAAA,IACI,CAAC,GAAG7b,CAAY,QAAQ,GAAG;AAAA,MACzB,CAACic,CAAI,GAAGJ;AAAA,IACd;AAAA,IACI,CAAC,GAAG7b,CAAY,SAAS,GAAG;AAAA,MAC1B,CAACkc,CAAS,IAAIL,IAAW,IAAIC,KAAc;AAAA,IACjD;AAAA,IACI,CAAC,GAAG9b,CAAY,OAAO,GAAG;AAAA;AAAA,MAExB,kBAAkB;AAAA,MAClB,KAAK;AAAA,MACL,CAACmc,CAAS,GAAGL;AAAA,MACb,CAACE,CAAI,GAAG;AAAA,IACd;AAAA,IACI,CAAC,GAAGhc,CAAY,OAAO,GAAG;AAAA;AAAA,MAExB,kBAAkB;AAAA,MAClB,KAAK;AAAA,MACL,CAACmc,CAAS,GAAGN;AAAA,MACb,CAACG,CAAI,GAAG;AAAA,MACR,CAACC,CAAI,GAAGJ;AAAA,IACd;AAAA,IACI,CAAC,GAAG7b,CAAY,MAAM,GAAG;AAAA,MACvB,UAAU;AAAA,MACV,CAACkc,CAAS,IAAIL,IAAWP,KAAW;AAAA,IAC1C;AAAA,EACA;AACA,GAEMc,KAAqB,CAAArc,MAAS;AAClC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,oBAAAqc;AAAA,EACJ,IAAMtc;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,aAAa,GAAGpS,EAASA,EAAS,CAAA,GAAI+tB,GAAkB5b,GAAO,EAAI,CAAC,GAAG;AAAA,MACrF,CAAC,IAAIC,CAAY,aAAa,GAAG;AAAA,QAC/B,cAAcqc;AAAA,MACtB;AAAA,IACA,CAAK;AAAA,EACL;AACA,GAEMC,KAAmB,CAAAvc,MAAS;AAChC,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,WAAW,GAAGpS,EAASA,EAAS,CAAA,GAAI+tB,GAAkB5b,GAAO,EAAK,CAAC,GAAG;AAAA,MACpF,QAAQ;AAAA,IACd,CAAK;AAAA,EACL;AACA,GAEAwc,KAAe5a,GAAsB,UAAU,CAAA5B,MAAS;AACtD,QAAMyc,IAAc3a,GAAW9B,GAAO;AAAA,IACpC,aAAaA,EAAM,gBAAgBA,EAAM,eAAe;AAAA,IACxD,YAAYA,EAAM,cAAc;AAAA,IAChC,oBAAoBA,EAAM,kBAAkBA,EAAM;AAAA,EACtD,CAAG;AACD,SAAO,CAAC0M,GAAa+P,CAAW,GAAGJ,GAAmBI,CAAW,GAAGF,GAAiBE,CAAW,CAAC;AACnG,GAAG,CAAAzc,MAAS;AAGV,QAAMsb,IAActb,EAAM,kBAAkB,GACtC0c,IAAmB1c,EAAM,kBAAkB,GAC3C2c,IAAkB3c,EAAM,YAAY,GACpC4c,IAAuB5c,EAAM,YAAY;AAC/C,SAAO;AAAA,IACL,aAAAsb;AAAA,IACA,UAAU;AAAA,IACV,YAAYA;AAAA,IACZ,iBAAiBoB;AAAA,IACjB,SAAS;AAAA,IACT,iBAAAC;AAAA,IACA,sBAAAC;AAAA,EACJ;AACA,CAAC;AC9QD,IAAIpV,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAaA,MAAMmV,KAAsB,CAAAnyB,MAAS,OAAOA,KAAU,WAAWA,EAAM,SAAQ,IAAK,IACvEoyB,KAAc,OAAO;AAAA,EAChC,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,OAAO5a,GAAS,CAAC,SAAS,MAAM,CAAC;AAAA,EACjC,SAASC,GAAW;AAAA,EACpB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAMD,GAAS,CAAC,QAAQ,MAAM,CAAC;AAAA,EAC/B,OAAOjJ,GAAU;AAAA,EACjB,MAAMkJ,GAAW;AAAA,EACjB,OAAOD,GAAS,CAAC,OAAO,MAAM,CAAC;AAAA,EAC/B,cAAcA,GAAS,CAAC,OAAO,MAAM,CAAC;AAAA,EACtC,UAAUC,GAAW;AAAA,EACrB,UAAUA,GAAW;AAAA,EACrB,UAAUA,GAAW;AAAA,EACrB,cAAcD,GAAS,CAAC,UAAU,MAAM,GAAG,MAAM2a,EAAmB;AAAA,EACpE,aAAa1a,GAAW;AAAA;AAAA,EAExB,gBAAgBA,GAAW;AAAA,EAC3B,kBAAkBF,GAAU;AAAA,EAC5B,0BAA0B7O,EAAY;AAAA,EACtC,WAAW+O,GAAW;AAAA,EACtB,aAAaD,GAAS,CAAC,OAAO,MAAM,CAAC;AAAA,EACrC,YAAYA,GAAS,CAAC,OAAO,MAAM,CAAC;AAAA,EACpC,UAAU9O,EAAY;AAAA,EACtB,eAAeA,EAAY;AAAA,EAC3B,SAASA,EAAY;AAAA,EACrB,QAAQA,EAAY;AAAA,EACpB,kBAAkBA,EAAY;AAChC,IACMgjB,KAASnoB,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO6uB,GAAW;AAAA;AAAA,EAElB,OAAO;AAAA,EACP,MAAM9xB,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAE;AAAA,MACA,OAAAD;AAAA,MACA,MAAA2W;AAAA,MACA,QAAAzW;AAAA,IACN,IAAQH;AAEJ,IAAI,QAAQ,IAAI,aAAa,gBAC3B,CAAC,CAAC,kBAAkB,aAAa,CAAC,EAAE,QAAQ,CAAAqH,MAAS;AACnD,UAAI,CAACwnB,GAAgBC,CAAO,IAAIznB;AAChC,MAAAsN,GAAW7X,EAAM,mBAAmB,QAAW,UAAU,KAAK+xB,CAAc,kCAAkCC,CAAO,aAAa;AAAA,IACpI,CAAC;AAEH,UAAM;AAAA,MACJ,WAAApuB;AAAA,MACA,eAAAmU;AAAA,MACA,WAAAD;AAAA,MACA,mBAAAE;AAAA,MACA,gBAAAia;AAAA,IACN,IAAQpuB,GAAgB,UAAU7D,CAAK,GAE7B,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS,GACtCsuB,IAAkBC,GAAwB,GAC1CC,IAAY5uB,GAAG,GACf6uB,IAAW7uB,GAAI,EAAE,GACjB8uB,IAAoB,CAAC9yB,GAAO+yB,MAAY;AAC5C,MAAAF,EAAS,MAAM7yB,CAAK,IAAI+yB;AAAA,IAC1B,GACMC,IAAmBnsB,EAAS,MAC5BrG,EAAM,mBACDA,EAAM,mBAEVA,EAAM,WAGJ8X,EAAU,UAAU,QAAQ,SAAS,UAFnC,KAGV,GACKwO,IAAQ,MAAM;AAClB,UAAI5jB;AACJ,OAACA,IAAK0vB,EAAU,WAAW,QAAQ1vB,MAAO,UAAkBA,EAAG,MAAK;AAAA,IACtE,GACM6jB,IAAO,MAAM;AACjB,UAAI7jB;AACJ,OAACA,IAAK0vB,EAAU,WAAW,QAAQ1vB,MAAO,UAAkBA,EAAG,KAAI;AAAA,IACrE,GACMqX,IAAe,CAAAwE,MAAO;AAC1B,MAAAzE,EAAK,gBAAgByE,CAAG,GACxBzE,EAAK,UAAUyE,CAAG,GAClB2T,EAAgB,cAAa;AAAA,IAC/B,GACM9L,IAAa,CAAAngB,MAAK;AACtB,MAAA6T,EAAK,QAAQ7T,CAAC;AAAA,IAChB;AACA,IAAA5C,EAAO;AAAA,MACL,OAAAijB;AAAA,MACA,MAAAC;AAAA,IACN,CAAK;AACD,UAAMkM,IAAoB,CAAA/vB,MAAM;AAC9B,UAAI;AAAA,QACA,kBAAAgwB;AAAA,MACV,IAAYhwB,GACJC,IAAKD,EAAG,MACR;AAAA,QACE,OAAAhD;AAAA,QACA,UAAAosB;AAAA,QACA,OAAAtsB;AAAA,MACV,IAAYmD,GACJwd,IAAY3D,GAAO7Z,GAAI,CAAC,SAAS,YAAY,OAAO,CAAC;AACvD,YAAM;AAAA,QACJ,cAAAgwB;AAAA,QACA,aAAAC,IAAc5yB,EAAM;AAAA,QACpB,0BAAA6yB;AAAA,MACR,IAAU7yB,GACE8yB,IAAiBH,IAAeN,EAAS,MAAM7yB,CAAK,KAAKssB,IAAW,IACpExjB,IAAOsqB,KAAeA,MAAgB,UAAaE;AACzD,aAAOtuB,EAAaurB,IAAe;AAAA,QACjC,WAAa2C;AAAA,QACb,OAASC,IAAeA,EAAajzB,CAAK,IAAI;AAAA,QAC9C,MAAQ4I;AAAA,QACR,WAAakqB,EAAiB;AAAA,QAC9B,gBAAkB,GAAGza,EAAc,KAAK;AAAA,QACxC,KAAOvY;AAAA,QACP,kBAAoB,GAAGoE,EAAU,KAAK;AAAA,QACtC,mBAAqBivB,MAA6B7a,KAAsB,OAAuC,SAASA,EAAkB;AAAA,MAClJ,GAAS;AAAA,QACD,SAAS,MAAM,CAACxT,EAAawhB,IAAUthB,EAAcA,EAAc,CAAA,GAAIyb,CAAS,GAAG,IAAI;AAAA,UACrF,OAASzgB;AAAA,UACT,cAAgB,MAAM4yB,EAAkB9yB,GAAO,EAAI;AAAA,UACnD,cAAgB,MAAM8yB,EAAkB9yB,GAAO,EAAK;AAAA,QAC9D,CAAS,GAAG,IAAI,CAAC;AAAA,MACjB,CAAO;AAAA,IACH;AACA,WAAO,MAAM;AACX,YAAM;AAAA,QACF,kBAAkBuzB;AAAA,QAClB,OAAAlO;AAAA,QACA,IAAAve,IAAK4rB,EAAgB,GAAG;AAAA,MAClC,IAAYlyB,GACJmgB,IAAY3D,GAAOxc,GAAO,CAAC,oBAAoB,SAAS,IAAI,CAAC,GACzD0yB,IAAmBT,EAAe,aAAa,WAAWc,CAAyB,GACnF3uB,IAAM6C,GAAW7D,EAAM,OAAO;AAAA,QAClC,CAAC,GAAGQ,EAAU,KAAK,MAAM,GAAGkU,EAAU,UAAU;AAAA,MACxD,GAASI,EAAO,KAAK;AAEf,MAAIJ,EAAU,UAAU,SAAS,CAACqI,EAAU,aAC1CA,EAAU,UAAU,CAACA,EAAU;AAGjC,UAAI0J;AAIJ,aAHI,OAAOhF,KAAU,aACnBgF,IAAiBhF,EAAM,iBAGhB5M,EADL4M,IACargB,EAAasrB,IAASprB,EAAcA,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG+c,CAAS,GAAG,CAAA,GAAI;AAAA,QACzG,MAAQA,EAAU;AAAA,QAClB,gBAAkB0J;AAAA,QAClB,OAASzlB;AAAA,QACT,KAAOguB;AAAA,QACP,QAAU,CAAAY,MAAQP,EAAkB;AAAA,UAClC,kBAAAC;AAAA,UACA,WAAW9uB,EAAU;AAAA,UACrB,MAAAovB;AAAA,QACZ,CAAW;AAAA,QACD,WAAapvB,EAAU;AAAA,QACvB,UAAYmW;AAAA,QACZ,QAAUqM;AAAA,MACpB,CAAS,GAAG;AAAA,QACF,MAAMjjB,EAAM;AAAA,MACtB,CAAS,IAEYqB,EAAa2oB,IAAUzoB,EAAcA,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG+c,CAAS,GAAG,CAAA,GAAI;AAAA,QAC1G,IAAM7Z;AAAA,QACN,MAAQ6Z,EAAU;AAAA,QAClB,OAAS/b;AAAA,QACT,KAAOguB;AAAA,QACP,QAAU,CAAAY,MAAQP,EAAkB;AAAA,UAClC,kBAAAC;AAAA,UACA,WAAW9uB,EAAU;AAAA,UACrB,MAAAovB;AAAA,QACV,CAAS;AAAA,QACD,WAAapvB,EAAU;AAAA,QACvB,UAAYmW;AAAA,QACZ,QAAUqM;AAAA,MAClB,CAAO,GAAG;AAAA,QACF,MAAMjjB,EAAM;AAAA,MACpB,CAAO,CAjBG;AAAA,IAkBN;AAAA,EACF;AACF,CAAC,GACD8vB,KAAe1Y,GAAY6Q,EAAM;ACrNjC,SAAS8H,GAASC,GAAQC,GAAK;AAC7B,QAAMC,IAAM,UAAUF,EAAO,MAAM,IAAIA,EAAO,MAAM,IAAIC,EAAI,MAAM,KAC5DE,IAAM,IAAI,MAAMD,CAAG;AACzB,SAAAC,EAAI,SAASF,EAAI,QACjBE,EAAI,SAASH,EAAO,QACpBG,EAAI,MAAMH,EAAO,QACVG;AACT;AACA,SAASC,GAAQH,GAAK;AACpB,QAAMtQ,IAAOsQ,EAAI,gBAAgBA,EAAI;AACrC,MAAI,CAACtQ;AACH,WAAOA;AAET,MAAI;AACF,WAAO,KAAK,MAAMA,CAAI;AAAA,EACxB,QAAY;AACV,WAAOA;AAAA,EACT;AACF;AACe,SAAS0Q,GAAOL,GAAQ;AAErC,QAAMC,IAAM,IAAI,eAAc;AAC9B,EAAID,EAAO,cAAcC,EAAI,WAC3BA,EAAI,OAAO,aAAa,SAAkBntB,GAAG;AAC3C,IAAIA,EAAE,QAAQ,MACZA,EAAE,UAAUA,EAAE,SAASA,EAAE,QAAQ,MAEnCktB,EAAO,WAAWltB,CAAC;AAAA,EACrB;AAGF,QAAMwtB,IAAW,IAAI,SAAQ;AAC7B,EAAIN,EAAO,QACT,OAAO,KAAKA,EAAO,IAAI,EAAE,QAAQ,CAAAlzB,MAAO;AACtC,UAAMP,IAAQyzB,EAAO,KAAKlzB,CAAG;AAE7B,QAAI,MAAM,QAAQP,CAAK,GAAG;AACxB,MAAAA,EAAM,QAAQ,CAAA4E,MAAQ;AAGpB,QAAAmvB,EAAS,OAAO,GAAGxzB,CAAG,MAAMqE,CAAI;AAAA,MAClC,CAAC;AACD;AAAA,IACF;AACA,IAAAmvB,EAAS,OAAOxzB,GAAKP,CAAK;AAAA,EAC5B,CAAC,GAGCyzB,EAAO,gBAAgB,OACzBM,EAAS,OAAON,EAAO,UAAUA,EAAO,MAAMA,EAAO,KAAK,IAAI,IAE9DM,EAAS,OAAON,EAAO,UAAUA,EAAO,IAAI,GAE9CC,EAAI,UAAU,SAAentB,GAAG;AAC9B,IAAAktB,EAAO,QAAQltB,CAAC;AAAA,EAClB,GACAmtB,EAAI,SAAS,WAAkB;AAG7B,WAAIA,EAAI,SAAS,OAAOA,EAAI,UAAU,MAC7BD,EAAO,QAAQD,GAASC,GAAQC,CAAG,GAAGG,GAAQH,CAAG,CAAC,IAEpDD,EAAO,UAAUI,GAAQH,CAAG,GAAGA,CAAG;AAAA,EAC3C,GACAA,EAAI,KAAKD,EAAO,QAAQA,EAAO,QAAQ,EAAI,GAEvCA,EAAO,mBAAmB,qBAAqBC,MACjDA,EAAI,kBAAkB;AAExB,QAAMM,IAAUP,EAAO,WAAW,CAAA;AAGlC,SAAIO,EAAQ,kBAAkB,MAAM,QAClCN,EAAI,iBAAiB,oBAAoB,gBAAgB,GAE3D,OAAO,KAAKM,CAAO,EAAE,QAAQ,CAAAzG,MAAK;AAChC,IAAIyG,EAAQzG,CAAC,MAAM,QACjBmG,EAAI,iBAAiBnG,GAAGyG,EAAQzG,CAAC,CAAC;AAAA,EAEtC,CAAC,GACDmG,EAAI,KAAKK,CAAQ,GACV;AAAA,IACL,QAAQ;AACN,MAAAL,EAAI,MAAK;AAAA,IACX;AAAA,EACJ;AACA;ACtFA,MAAMhnB,KAAM,CAAC,oBAAI,KAAI;AACrB,IAAI5M,KAAQ;AACG,SAASm0B,KAAM;AAE5B,SAAO,aAAavnB,EAAG,IAAI,EAAE5M,EAAK;AACpC;ACJA,MAAAo0B,MAAgB,CAACC,GAAMC,MAAkB;AACvC,MAAID,KAAQC,GAAe;AACzB,UAAMC,IAAqB,MAAM,QAAQD,CAAa,IAAIA,IAAgBA,EAAc,MAAM,GAAG,GAC3FE,IAAWH,EAAK,QAAQ,IACxBI,IAAWJ,EAAK,QAAQ,IACxBK,IAAeD,EAAS,QAAQ,SAAS,EAAE;AACjD,WAAOF,EAAmB,KAAK,CAAA9a,MAAQ;AACrC,YAAMkb,IAAYlb,EAAK,KAAI;AAE3B,UAAI,cAAc,KAAKA,CAAI;AACzB,eAAO;AAGT,UAAIkb,EAAU,OAAO,CAAC,MAAM,KAAK;AAC/B,cAAMC,IAAgBJ,EAAS,YAAW,GACpCK,IAAYF,EAAU,YAAW;AACvC,YAAIG,IAAY,CAACD,CAAS;AAC1B,gBAAIA,MAAc,UAAUA,MAAc,aACxCC,IAAY,CAAC,QAAQ,OAAO,IAEvBA,EAAU,KAAK,CAAAC,MAASH,EAAc,SAASG,CAAK,CAAC;AAAA,MAC9D;AAEA,aAAI,QAAQ,KAAKJ,CAAS,IACjBD,MAAiBC,EAAU,QAAQ,SAAS,EAAE,IAGnDF,MAAaE,IACR,KAGL,QAAQ,KAAKA,CAAS,KACxB7wB,GAAQ,IAAO,6CAA6C6wB,CAAS,mBAAmB,GACjF,MAEF;AAAA,IACT,CAAC;AAAA,EACH;AACA,SAAO;AACT;ACxCA,SAASK,GAAUlwB,GAAMQ,GAAU;AACjC,QAAM2vB,IAAYnwB,EAAK,aAAY;AACnC,MAAIowB,IAAW,CAAA;AACf,WAASC,IAAW;AAClB,IAAAF,EAAU,YAAY,CAAAG,MAAW;AAC/B,YAAMC,IAAY,MAAM,UAAU,MAAM,MAAMD,CAAO;AACrD,MAAAF,IAAWA,EAAS,OAAOG,CAAS,GAEjB,CAACA,EAAU,SAE5B/vB,EAAS4vB,CAAQ,IAEjBC,EAAQ;AAAA,IAEZ,CAAC;AAAA,EACH;AACA,EAAAA,EAAQ;AACV;AACA,MAAMG,KAAmB,CAACC,GAAOjwB,GAAUkwB,MAAe;AAExD,QAAMC,IAAoB,CAAC3wB,GAAMrD,MAAS;AAExC,IAAAqD,EAAK,OAAOrD,KAAQ,IAChBqD,EAAK,SACPA,EAAK,KAAK,CAAAuvB,MAAQ;AAChB,MAAImB,EAAWnB,CAAI,MAEbvvB,EAAK,YAAY,CAACuvB,EAAK,uBACzB,OAAO,iBAAiBA,GAAM;AAAA,QAC5B,oBAAoB;AAAA,UAClB,UAAU;AAAA,QAC1B;AAAA,MACA,CAAa,GAEDA,EAAK,qBAAqBvvB,EAAK,SAAS,QAAQ,OAAO,EAAE,GACzD,OAAO,iBAAiBuvB,GAAM;AAAA,QAC5B,oBAAoB;AAAA,UAClB,UAAU;AAAA,QAC1B;AAAA,MACA,CAAa,IAEH/uB,EAAS,CAAC+uB,CAAI,CAAC;AAAA,IAEnB,CAAC,IACQvvB,EAAK,eACdkwB,GAAUlwB,GAAM,CAAAswB,MAAW;AACzB,MAAAA,EAAQ,QAAQ,CAAAM,MAAa;AAC3B,QAAAD,EAAkBC,GAAW,GAAGj0B,CAAI,GAAGqD,EAAK,IAAI,GAAG;AAAA,MACrD,CAAC;AAAA,IACH,CAAC;AAAA,EAEL;AACA,EAAAywB,EAAM,QAAQ,CAAAlB,MAAQ;AACpB,IAAAoB,EAAkBpB,EAAK,kBAAkB;AAAA,EAC3C,CAAC;AACH,GCvDasB,KAAc,OAClB;AAAA,EACL,SAAS,CAAC,SAAS,MAAM;AAAA,EACzB,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,cAAc;AAAA,EACd,QAAQ,CAAC,QAAQ,QAAQ;AAAA,EACzB,QAAQ;AAAA,EACR,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,MAAM,CAAC,QAAQ,QAAQ;AAAA,EACvB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,cAAc;AAAA,EACd,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,uBAAuB;AAAA,IACrB,MAAM;AAAA,IACN,SAAS;AAAA,EACf;AAAA,EACI,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,SAAS;AACb;AC7CA,IAAIC,KAAsC,SAAUC,GAASC,GAAYC,GAAGC,GAAW;AACrF,WAASC,EAAM/1B,GAAO;AACpB,WAAOA,aAAiB61B,IAAI71B,IAAQ,IAAI61B,EAAE,SAAUG,GAAS;AAC3D,MAAAA,EAAQh2B,CAAK;AAAA,IACf,CAAC;AAAA,EACH;AACA,SAAO,KAAK61B,MAAMA,IAAI,UAAU,SAAUG,GAASC,GAAQ;AACzD,aAASC,EAAUl2B,GAAO;AACxB,UAAI;AACF,QAAA2kB,EAAKmR,EAAU,KAAK91B,CAAK,CAAC;AAAA,MAC5B,SAASuG,GAAG;AACV,QAAA0vB,EAAO1vB,CAAC;AAAA,MACV;AAAA,IACF;AACA,aAAS4vB,EAASn2B,GAAO;AACvB,UAAI;AACF,QAAA2kB,EAAKmR,EAAU,MAAS91B,CAAK,CAAC;AAAA,MAChC,SAASuG,GAAG;AACV,QAAA0vB,EAAO1vB,CAAC;AAAA,MACV;AAAA,IACF;AACA,aAASoe,EAAKtiB,GAAQ;AACpB,MAAAA,EAAO,OAAO2zB,EAAQ3zB,EAAO,KAAK,IAAI0zB,EAAM1zB,EAAO,KAAK,EAAE,KAAK6zB,GAAWC,CAAQ;AAAA,IACpF;AACA,IAAAxR,GAAMmR,IAAYA,EAAU,MAAMH,GAASC,KAAc,CAAA,CAAE,GAAG,MAAM;AAAA,EACtE,CAAC;AACH,GACI9Y,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AASA,MAAAoZ,KAAe7yB,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOkyB,GAAW;AAAA,EAClB,MAAMn1B,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,IACN,IAAQH;AACJ,UAAMywB,IAAMnwB,GAAIuyB,IAAQ,GAClBC,IAAO,CAAA,GACPC,IAAYzyB,GAAG;AACrB,QAAI0yB,IAAY;AAIhB,UAAMC,IAAc,CAACtC,GAAMa,MAAaU,GAAU,MAAM,QAAQ,QAAQ,aAAa;AACnF,YAAM;AAAA,QACJ,cAAAgB;AAAA,MACR,IAAUp2B;AACJ,UAAIq2B,IAAkBxC;AACtB,UAAIuC,GAAc;AAChB,YAAI;AACF,UAAAC,IAAkB,MAAMD,EAAavC,GAAMa,CAAQ;AAAA,QACrD,QAAY;AAEV,UAAA2B,IAAkB;AAAA,QACpB;AACA,YAAIA,MAAoB;AACtB,iBAAO;AAAA,YACL,QAAQxC;AAAA,YACR,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,MAAM;AAAA,UAClB;AAAA,MAEM;AAEA,YAAM;AAAA,QACJ,QAAAyC;AAAA,MACR,IAAUt2B;AACJ,UAAIu2B;AACJ,MAAI,OAAOD,KAAW,aACpBC,IAAe,MAAMD,EAAOzC,CAAI,IAEhC0C,IAAeD;AAGjB,YAAM;AAAA,QACJ,MAAAxuB;AAAA,MACR,IAAU9H;AACJ,UAAIw2B;AACJ,MAAI,OAAO1uB,KAAS,aAClB0uB,IAAa,MAAM1uB,EAAK+rB,CAAI,IAE5B2C,IAAa1uB;AAEf,YAAM2uB;AAAA;AAAA;AAAA,SAGL,OAAOJ,KAAoB,YAAY,OAAOA,KAAoB,aAAaA,IAAkBA,IAAkBxC;AAAA;AACpH,UAAI6C;AACJ,MAAID,aAAsB,OACxBC,IAAaD,IAEbC,IAAa,IAAI,KAAK,CAACD,CAAU,GAAG5C,EAAK,MAAM;AAAA,QAC7C,MAAMA,EAAK;AAAA,MACrB,CAAS;AAEH,YAAM8C,IAAmBD;AACzB,aAAAC,EAAiB,MAAM9C,EAAK,KACrB;AAAA,QACL,QAAQA;AAAA,QACR,MAAM2C;AAAA,QACN,YAAYG;AAAA,QACZ,QAAQJ;AAAA,MAChB;AAAA,IACI,CAAC,GACKK,IAAO,CAAArsB,MAAS;AACpB,UAAI;AAAA,QACF,MAAAzC;AAAA,QACA,QAAA+uB;AAAA,QACA,QAAAP;AAAA,QACA,YAAAI;AAAA,MACR,IAAUnsB;AACJ,UAAI,CAAC2rB;AACH;AAEF,YAAM;AAAA,QACJ,SAAAY;AAAA,QACA,eAAAC;AAAA,QACA,MAAAC;AAAA,QACA,SAAAtD;AAAA,QACA,iBAAAuD;AAAA,QACA,QAAA/N;AAAA,MACR,IAAUlpB,GACE;AAAA,QACJ,KAAA2zB;AAAA,MACR,IAAUkD,GACEK,IAAUH,KAAiBI,IAC3BC,IAAgB;AAAA,QACpB,QAAAd;AAAA,QACA,UAAUU;AAAA,QACV,MAAAlvB;AAAA,QACA,MAAM4uB;AAAA,QACN,SAAAhD;AAAA,QACA,iBAAAuD;AAAA,QACA,QAAQ/N,KAAU;AAAA,QAClB,YAAY,CAAAjjB,MAAK;AACf,gBAAM;AAAA,YACJ,YAAAoxB;AAAA,UACZ,IAAcr3B;AACJ,UAAAq3B,KAAe,QAAyCA,EAAWpxB,GAAGywB,CAAU;AAAA,QAClF;AAAA,QACA,WAAW,CAACY,GAAKlE,MAAQ;AACvB,gBAAM;AAAA,YACJ,WAAAmE;AAAA,UACZ,IAAcv3B;AACJ,UAAAu3B,KAAc,QAAwCA,EAAUD,GAAKZ,GAAYtD,CAAG,GACpF,OAAO4C,EAAKrC,CAAG;AAAA,QACjB;AAAA,QACA,SAAS,CAACL,GAAKgE,MAAQ;AACrB,gBAAM;AAAA,YACJ,SAAAE;AAAA,UACZ,IAAcx3B;AACJ,UAAAw3B,KAAY,QAAsCA,EAAQlE,GAAKgE,GAAKZ,CAAU,GAC9E,OAAOV,EAAKrC,CAAG;AAAA,QACjB;AAAA,MACR;AACM,MAAAmD,EAAQD,CAAM,GACdb,EAAKrC,CAAG,IAAIuD,EAAQE,CAAa;AAAA,IACnC,GACMK,IAAQ,MAAM;AAClB9D,MAAAA,EAAI,QAAQoC,GAAM;AAAA,IACpB,GACM2B,IAAQ,CAAA7D,MAAQ;AACpB,UAAIA,GAAM;AACR,cAAMF,IAAME,EAAK,MAAMA,EAAK,MAAMA;AAClC,QAAImC,EAAKrC,CAAG,KAAKqC,EAAKrC,CAAG,EAAE,SACzBqC,EAAKrC,CAAG,EAAE,MAAK,GAEjB,OAAOqC,EAAKrC,CAAG;AAAA,MACjB;AACE,eAAO,KAAKqC,CAAI,EAAE,QAAQ,CAAArC,MAAO;AAC/B,UAAIqC,EAAKrC,CAAG,KAAKqC,EAAKrC,CAAG,EAAE,SACzBqC,EAAKrC,CAAG,EAAE,MAAK,GAEjB,OAAOqC,EAAKrC,CAAG;AAAA,QACjB,CAAC;AAAA,IAEL;AACA,IAAAvqB,GAAU,MAAM;AACd,MAAA8sB,IAAY;AAAA,IACd,CAAC,GACD3wB,GAAgB,MAAM;AACpB,MAAA2wB,IAAY,IACZwB,EAAK;AAAA,IACP,CAAC;AACD,UAAMC,IAAc,CAAA5C,MAAS;AAC3B,YAAM6C,IAAc,CAAC,GAAG7C,CAAK,GACvB8C,IAAYD,EAAY,IAAI,CAAA/D,OAEhCA,EAAK,MAAMkC,GAAM,GACVI,EAAYtC,GAAM+D,CAAW,EACrC;AAED,cAAQ,IAAIC,CAAS,EAAE,KAAK,CAAAnD,MAAY;AACtC,cAAM;AAAA,UACJ,cAAAoD;AAAA,QACV,IAAY93B;AACJ,QAAA83B,KAAiB,QAA2CA,EAAapD,EAAS,IAAI,CAAAjhB,MAAS;AAC7F,cAAI;AAAA,YACF,QAAAojB;AAAA,YACA,YAAAH;AAAA,UACZ,IAAcjjB;AACJ,iBAAO;AAAA,YACL,MAAMojB;AAAA,YACN,YAAAH;AAAA,UACZ;AAAA,QACQ,CAAC,CAAC,GACFhC,EAAS,OAAO,CAAAb,MAAQA,EAAK,eAAe,IAAI,EAAE,QAAQ,CAAAA,MAAQ;AAChE,UAAA+C,EAAK/C,CAAI;AAAA,QACX,CAAC;AAAA,MACH,CAAC;AAAA,IACH,GACMrmB,IAAW,CAAAvH,MAAK;AACpB,YAAM;AAAA,QACJ,QAAA8xB;AAAA,QACA,WAAAC;AAAA,MACR,IAAUh4B,GACE;AAAA,QACJ,OAAA+0B;AAAA,MACR,IAAU9uB,EAAE,QACA6tB,IAAgB,CAAC,GAAGiB,CAAK,EAAE,OAAO,CAAAlB,MAAQ,CAACmE,KAAapE,GAAWC,GAAMkE,CAAM,CAAC;AACtF,MAAAJ,EAAY7D,CAAa,GACzB2D,EAAK;AAAA,IACP,GACMQ,IAAU,CAAAhyB,MAAK;AACnB,YAAM6H,IAAKmoB,EAAU;AACrB,UAAI,CAACnoB;AACH;AAEF,YAAM;AAAA,QACJ,SAAAmqB;AAAA,MACR,IAAUj4B;AAOJ,MAAA8N,EAAG,MAAK,GACJmqB,KACFA,EAAQhyB,CAAC;AAAA,IAEb,GACM+C,IAAY,CAAA/C,MAAK;AACrB,MAAIA,EAAE,QAAQ,WACZgyB,EAAQhyB,CAAC;AAAA,IAEb,GACMiyB,IAAa,CAAAjyB,MAAK;AACtB,YAAM;AAAA,QACJ,UAAAkyB;AAAA,MACR,IAAUn4B;AAEJ,UADAiG,EAAE,eAAc,GACZA,EAAE,SAAS;AAGf,YAAIjG,EAAM;AACR,UAAA80B,GAAiB,MAAM,UAAU,MAAM,KAAK7uB,EAAE,aAAa,KAAK,GAAG0xB,GAAa,CAAAS,MAASxE,GAAWwE,GAAOp4B,EAAM,MAAM,CAAC;AAAA,aACnH;AACL,gBAAM+0B,IAAQ9yB,GAAU,MAAM,UAAU,MAAM,KAAKgE,EAAE,aAAa,KAAK,GAAG,CAAA4tB,MAAQD,GAAWC,GAAM7zB,EAAM,MAAM,CAAC;AAChH,cAAIq4B,IAAetD,EAAM,CAAC;AAC1B,gBAAMuD,IAAavD,EAAM,CAAC;AAC1B,UAAIoD,MAAa,OACfE,IAAeA,EAAa,MAAM,GAAG,CAAC,IAExCV,EAAYU,CAAY,GACpBC,EAAW,UAAUt4B,EAAM,YAAUA,EAAM,SAASs4B,CAAU;AAAA,QACpE;AAAA,IACF;AACA,WAAAj1B,EAAO;AAAA,MACL,OAAAq0B;AAAA,IACN,CAAK,GACM,MAAM;AACX,UAAIh1B;AACJ,YAAM;AAAA,QACF,cAAc61B;AAAA,QACd,WAAA30B;AAAA,QACA,UAAA6C;AAAA,QACA,IAAAH;AAAA,QACA,UAAA6xB;AAAA,QACA,QAAAJ;AAAA,QACA,SAAAS;AAAA,QACA,WAAAR;AAAA,QACA,uBAAAS;AAAA,QACA,cAAAzR;AAAA,QACA,cAAAC;AAAA,MACV,IAAYjnB,GACJ04B,IAAalc,GAAOxc,GAAO,CAAC,gBAAgB,aAAa,YAAY,MAAM,YAAY,UAAU,WAAW,aAAa,yBAAyB,gBAAgB,cAAc,CAAC,GAC7KoE,IAAM;AAAA,QACV,CAACR,CAAS,GAAG;AAAA,QACb,CAAC,GAAGA,CAAS,WAAW,GAAG6C;AAAA,QAC3B,CAACrD,EAAM,KAAK,GAAG,CAAC,CAACA,EAAM;AAAA,MAC/B,GAEYu1B,IAAWX,IAAY;AAAA,QAC3B,WAAW;AAAA,QACX,iBAAiB;AAAA,MACzB,IAAU,CAAA;AAUJ,aAAOxzB,EAAa+zB,GAAK7zB,EAAcA,EAAc,IATtC+B,IAAW,KAAK;AAAA,QAC7B,SAASgyB,IAAwBR,IAAU,MAAM;AAAA,QAAC;AAAA,QAClD,WAAWQ,IAAwBzvB,IAAY,MAAM;AAAA,QAAC;AAAA,QACtD,cAAAge;AAAA,QACA,cAAAC;AAAA,QACA,QAAQiR;AAAA,QACR,YAAYA;AAAA,QACZ,UAAU;AAAA,MAClB,CACqE,GAAG,IAAI;AAAA,QACpE,OAAS9zB;AAAA,QACT,MAAQ;AAAA,QACR,OAAShB,EAAM;AAAA,MACvB,CAAO,GAAG;AAAA,QACF,SAAS,MAAM,CAACoB,EAAa,SAASE,EAAcA,EAAcA,EAAc,CAAA,GAAIk0B,GAAUF,GAAY;AAAA,UACxG,MAAM;AAAA,UACN,MAAM;AAAA,QAChB,CAAS,CAAC,GAAG,CAAA,GAAI;AAAA,UACP,IAAMpyB;AAAA,UACN,MAAQ;AAAA,UACR,KAAO2vB;AAAA,UACP,SAAW,CAAAhwB,MAAKA,EAAE,gBAAe;AAAA,UACjC,UAAY,CAAAA,MAAKA,EAAE,gBAAe;AAAA,UAClC,KAAO0tB,EAAI;AAAA,UACX,OAAS;AAAA,YACP,SAAS;AAAA,UACrB;AAAA,UACU,QAAUoE;AAAA,QACpB,GAAWY,CAAQ,GAAG,IAAI;AAAA,UAChB,UAAYR;AAAA,UACZ,UAAY3qB;AAAA,QACtB,GAAWgrB,KAAW,OAAO;AAAA,UACnB,SAAAA;AAAA,QACV,IAAY,CAAA,CAAE,GAAG,IAAI,IAAI91B,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC;AAAA,MAChG,CAAO;AAAA,IACH;AAAA,EACF;AACF,CAAC;AC/VD,SAAS01B,KAAQ;AAAC;AAClB,MAAAC,KAAe71B,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiBwd,MAAe;AAAA,IACrC,cAAc;AAAA,IACd,WAAW;AAAA,IACX,MAAM,CAAA;AAAA,IACN,SAAS,CAAA;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS0D;AAAA,IACT,SAASA;AAAA,IACT,WAAWA;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,IACd,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,EAC3B,CAAG;AAAA,EACD,MAAM74B,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,IACN,IAAQH;AACJ,UAAM61B,IAAWv1B,GAAG;AAKpB,WAAAH,EAAO;AAAA,MACL,OALY,CAAAwwB,MAAQ;AACpB,YAAInxB;AACJ,SAACA,IAAKq2B,EAAS,WAAW,QAAQr2B,MAAO,UAAkBA,EAAG,MAAMmxB,CAAI;AAAA,MAC1E;AAAA,IAGJ,CAAK,GACM,MACErvB,EAAasxB,IAAYpxB,EAAcA,EAAcA,EAAc,CAAA,GAAI1E,CAAK,GAAGoD,CAAK,GAAG,IAAI;AAAA,MAChG,KAAO21B;AAAA,IACf,CAAO,GAAG51B,CAAK;AAAA,EAEb;AACF,CAAC;AChDD,IAAI61B,KAAoB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,wzBAAuzB,GAAI,EAAC,GAAI,MAAQ,cAAc,OAAS,WAAU;ACCxgC,SAASt0B,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIie,KAAoB,SAA2Bh5B,GAAOgb,GAAS;AACjE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQge;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAkB,cAAc;AAChCA,GAAkB,eAAe;ACnBjC,IAAIE,KAAiB,EAAE,MAAQ,SAAgBC,GAAcC,GAAgB;AAAE,SAAO,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,kSAAkS,MAAQD,EAAY,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,8DAA8D,MAAQC,EAAc,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,wJAAwJ,MAAQA,EAAc,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,4CAA4C,MAAQA,EAAc,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,oHAAoH,MAAQD,EAAY,EAAE,CAAE,EAAC;AAAI,GAAG,MAAQ,WAAW,OAAS,UAAS;ACClqC,SAASz0B,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIme,KAAiB,SAAwBl5B,GAAOgb,GAAS;AAC3D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQoe;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAH,GAAe,cAAc;AAC7BA,GAAe,eAAe;ACnB9B,IAAII,KAAc,EAAE,MAAQ,SAAgBH,GAAcC,GAAgB;AAAE,SAAO,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,sDAAsD,MAAQA,EAAc,EAAE,GAAI,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,6OAA6O,MAAQD,IAAc,CAAE;AAAK,GAAG,MAAQ,QAAQ,OAAS,UAAS;ACClnB,SAASz0B,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIue,KAAc,SAAqBt5B,GAAOgb,GAAS;AACrD,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQse;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAY,cAAc;AAC1BA,GAAY,eAAe;ACnB3B,SAASnE,KAAc;AACrB,SAAO;AAAA,IACL,SAASje,GAAS,CAAC,SAAS,MAAM,CAAC;AAAA,IACnC,MAAMD,GAAU;AAAA,IAChB,MAAM;AAAA,IACN,iBAAiBW,GAAS;AAAA,IAC1B,UAAUA,GAAS;AAAA,IACnB,QAAQV,GAAS,CAAC,QAAQ,QAAQ,CAAC;AAAA,IACnC,WAAWC,GAAW;AAAA,IACtB,MAAMD,GAAS,CAAC,QAAQ,QAAQ,CAAC;AAAA,IACjC,QAAQD,GAAU;AAAA,IAClB,SAAShJ,GAAU;AAAA,IACnB,gBAAgBiJ,GAAS,CAAC,SAAS,MAAM,CAAC;AAAA,IAC1C,UAAUC,GAAW;AAAA,IACrB,QAAQ;AAAA,IACR,cAAc/O,EAAY;AAAA,IAC1B,UAAUA,EAAY;AAAA,IACtB,qBAAqBA,EAAY;AAAA,IACjC,QAAQA,EAAY;AAAA,IACpB,UAAU6O,GAAU;AAAA,IACpB,WAAW7O,EAAY;AAAA,IACvB,YAAYA,EAAY;AAAA,IACxB,UAAUA,EAAY;AAAA,IACtB,UAAUA,EAAY;AAAA;AAAA,IAEtB,QAAQA,EAAY;AAAA,IACpB,qBAAqB+O,GAAW;AAAA,IAChC,UAAUA,GAAW;AAAA,IACrB,WAAW;AAAA,IACX,eAAe/O,EAAY;AAAA,IAC3B,iBAAiB+O,GAAW;AAAA,IAC5B,uBAAuBA,GAAW;AAAA,IAClC,QAAQlJ,GAAU;AAAA,IAClB,IAAI;AAAA,IACJ,aAAa7F,EAAY;AAAA;AAAA,IAEzB,eAAeA,EAAY;AAAA,IAC3B,YAAYA,EAAY;AAAA,IACxB,YAAYA,EAAY;AAAA,IACxB,UAAU6F,GAAU;AAAA,IACpB,YAAY7F,EAAY;AAAA;AAAA,IAExB,UAAU;AAAA,IACV,QAAQ8O,GAAS,CAAC,QAAQ,MAAM,CAAC;AAAA,IACjC,YAAY9O,EAAY;AAAA,IACxB,cAAcA,EAAY;AAAA,IAC1B,aAAaA,EAAY;AAAA,EAC7B;AACA;AACA,SAASoxB,KAAkB;AACzB,SAAO;AAAA,IACL,UAAUviB,GAAU;AAAA,IACpB,WAAW7O,EAAY;AAAA,IACvB,YAAYA,EAAY;AAAA,IACxB,UAAUA,EAAY;AAAA,IACtB,OAAOwP,GAAS;AAAA,IAChB,UAAU3J,GAAU;AAAA,IACpB,WAAWgJ,GAAU;AAAA,IACrB,gBAAgBE,GAAW;AAAA,IAC3B,kBAAkBA,GAAW;AAAA,IAC7B,iBAAiBA,GAAW;AAAA,IAC5B,YAAY/O,EAAY;AAAA,IACxB,cAAcA,EAAY;AAAA,IAC1B,aAAaA,EAAY;AAAA,IACzB,QAAQ6F,GAAW,MAAS;AAAA,IAC5B,aAAa7F,EAAY;AAAA,IACzB,YAAYA,EAAY;AAAA,IACxB,YAAYA,EAAY;AAAA,IACxB,cAAcA,EAAY;AAAA,IAC1B,qBAAqB+O,GAAW;AAAA,IAChC,YAAY/O,EAAY;AAAA,EAC5B;AACA;ACxEO,SAASqxB,GAAS5F,GAAM;AAC7B,SAAOhxB,EAASA,EAAS,CAAA,GAAIgxB,CAAI,GAAG;AAAA,IAClC,cAAcA,EAAK;AAAA,IACnB,kBAAkBA,EAAK;AAAA,IACvB,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,IACX,KAAKA,EAAK;AAAA,IACV,SAAS;AAAA,IACT,eAAeA;AAAA,EACnB,CAAG;AACH;AAEO,SAAS6F,GAAe7F,GAAMa,GAAU;AAC7C,QAAMiF,IAAe,CAAC,GAAGjF,CAAQ,GAC3BkF,IAAYD,EAAa,UAAU,CAAAz2B,MAAQ;AAC/C,QAAI;AAAA,MACF,KAAAywB;AAAA,IACN,IAAQzwB;AACJ,WAAOywB,MAAQE,EAAK;AAAA,EACtB,CAAC;AACD,SAAI+F,MAAc,KAChBD,EAAa,KAAK9F,CAAI,IAEtB8F,EAAaC,CAAS,IAAI/F,GAErB8F;AACT;AACO,SAASE,GAAYhG,GAAMa,GAAU;AAC1C,QAAMoF,IAAWjG,EAAK,QAAQ,SAAY,QAAQ;AAClD,SAAOa,EAAS,OAAO,CAAApwB,MAAQA,EAAKw1B,CAAQ,MAAMjG,EAAKiG,CAAQ,CAAC,EAAE,CAAC;AACrE;AACO,SAASC,GAAelG,GAAMa,GAAU;AAC7C,QAAMoF,IAAWjG,EAAK,QAAQ,SAAY,QAAQ,QAC5CmG,IAAUtF,EAAS,OAAO,CAAApwB,MAAQA,EAAKw1B,CAAQ,MAAMjG,EAAKiG,CAAQ,CAAC;AACzE,SAAIE,EAAQ,WAAWtF,EAAS,SACvB,OAEFsF;AACT;AAEA,MAAMC,KAAU,WAAY;AAE1B,QAAM1Y,KADI,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,IAC7D,MAAM,GAAG,GAEpB2Y,IADW3Y,EAAKA,EAAK,SAAS,CAAC,EACE,MAAM,MAAM,EAAE,CAAC;AACtD,UAAQ,cAAc,KAAK2Y,CAAqB,KAAK,CAAC,EAAE,GAAG,CAAC;AAC9D,GACMC,KAAkB,CAAAlhB,MAAQA,EAAK,QAAQ,QAAQ,MAAM,GAC9CmhB,KAAa,CAAAvG,MAAQ;AAChC,MAAIA,EAAK,QAAQ,CAACA,EAAK;AACrB,WAAOsG,GAAgBtG,EAAK,IAAI;AAElC,QAAMwG,IAAMxG,EAAK,YAAYA,EAAK,OAAO,IACnCyG,IAAYL,GAAQI,CAAG;AAC7B,SAAI,gBAAgB,KAAKA,CAAG,KAAK,iDAAiD,KAAKC,CAAS,IACvF,KAEL,WAAS,KAAKD,CAAG,KAIjBC;AAKN,GACMC,KAAe;AACd,SAASC,GAAa3G,GAAM;AACjC,SAAO,IAAI,QAAQ,CAAA6B,MAAW;AAC5B,QAAI,CAAC7B,EAAK,QAAQ,CAACsG,GAAgBtG,EAAK,IAAI,GAAG;AAC7C,MAAA6B,EAAQ,EAAE;AACV;AAAA,IACF;AACA,UAAM+E,IAAS,SAAS,cAAc,QAAQ;AAC9C,IAAAA,EAAO,QAAQF,IACfE,EAAO,SAASF,IAChBE,EAAO,MAAM,UAAU,4CAA4CF,EAAY,eAAeA,EAAY,qCAC1G,SAAS,KAAK,YAAYE,CAAM;AAChC,UAAMC,IAAMD,EAAO,WAAW,IAAI,GAC5BE,IAAM,IAAI,MAAK;AAuBrB,QAtBAA,EAAI,SAAS,MAAM;AACjB,YAAM;AAAA,QACJ,OAAAnsB;AAAA,QACA,QAAAC;AAAA,MACR,IAAUksB;AACJ,UAAIC,IAAYL,IACZM,IAAaN,IACbruB,IAAU,GACVC,IAAU;AACd,MAAIqC,IAAQC,KACVosB,IAAapsB,KAAU8rB,KAAe/rB,IACtCrC,IAAU,EAAE0uB,IAAaD,KAAa,MAEtCA,IAAYpsB,KAAS+rB,KAAe9rB,IACpCvC,IAAU,EAAE0uB,IAAYC,KAAc,IAExCH,EAAI,UAAUC,GAAKzuB,GAASC,GAASyuB,GAAWC,CAAU;AAC1D,YAAMC,IAAUL,EAAO,UAAS;AAChC,eAAS,KAAK,YAAYA,CAAM,GAChC/E,EAAQoF,CAAO;AAAA,IACjB,GACAH,EAAI,cAAc,aACd9G,EAAK,KAAK,WAAW,eAAe,GAAG;AACzC,YAAMkH,IAAS,IAAI,WAAU;AAC7B,MAAAA,EAAO,iBAAiB,QAAQ,MAAM;AACpC,QAAIA,EAAO,WAAQJ,EAAI,MAAMI,EAAO;AAAA,MACtC,CAAC,GACDA,EAAO,cAAclH,CAAI;AAAA,IAC3B;AACE,MAAA8G,EAAI,MAAM,OAAO,IAAI,gBAAgB9G,CAAI;AAAA,EAE7C,CAAC;AACH;AClHA,IAAImH,KAAmB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,gTAA+S,GAAI,EAAC,GAAI,MAAQ,YAAY,OAAS,WAAU;ACC7f,SAASt2B,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIigB,KAAmB,SAA0Bh7B,GAAOgb,GAAS;AAC/D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQggB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAiB,cAAc;AAC/BA,GAAiB,eAAe;ACTzB,MAAME,KAAgB,OACpB;AAAA,EACL,WAAW;AAAA,EACX,QAAQjtB,GAAW,MAAS;AAAA,EAC5B,MAAMA,GAAU;AAAA,EAChB,OAAO2J,GAAS;AAAA,EAChB,UAAUX,GAAU;AAAA,EACpB,UAAU7O,EAAY;AAAA,EACtB,gBAAgB+O,GAAW;AAAA,EAC3B,kBAAkBA,GAAW;AAAA,EAC7B,iBAAiBA,GAAW;AAAA,EAC5B,YAAY/O,EAAY;AAAA,EACxB,cAAcA,EAAY;AAAA,EAC1B,aAAaA,EAAY;AAAA,EACzB,YAAYA,EAAY;AAAA,EACxB,kBAAkBA,EAAY;AAAA,EAC9B,YAAYA,EAAY;AAAA,EACxB,WAAWA,EAAY;AAAA,EACvB,SAASA,EAAY;AAAA,EACrB,YAAYA,EAAY;AAAA,EACxB,UAAU6F,GAAU;AACxB,IAEAktB,KAAel4B,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOi4B,GAAa;AAAA,EACpB,MAAMl7B,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,IACN,IAAQF;AACJ,QAAIR;AACJ,UAAM04B,IAAep2B,GAAW,EAAK,GAC/Bq2B,IAAiBr2B,GAAU;AACjC,IAAAoE,GAAU,MAAM;AACd,MAAAiyB,EAAe,QAAQ,WAAW,MAAM;AACtC,QAAAD,EAAa,QAAQ;AAAA,MACvB,GAAG,GAAG;AAAA,IACR,CAAC,GACD71B,GAAgB,MAAM;AACpB,mBAAa81B,EAAe,KAAK;AAAA,IACnC,CAAC;AACD,UAAMC,IAAet2B,IAAYtC,IAAK1C,EAAM,UAAU,QAAQ0C,MAAO,SAAS,SAASA,EAAG,MAAM;AAChG,IAAA2G,GAAM,MAAM;AACV,UAAI3G;AACJ,cAAQA,IAAK1C,EAAM,UAAU,QAAQ0C,MAAO,SAAS,SAASA,EAAG;AAAA,IACnE,GAAG,CAAA6f,MAAU;AACX,MAAIA,MAAW,cACb+Y,EAAa,QAAQ/Y;AAAA,IAEzB,CAAC;AACD,UAAM;AAAA,MACJ,eAAAxK;AAAA,IACN,IAAQlU,GAAgB,UAAU7D,CAAK,GAC7Bu7B,IAAkBl1B,EAAS,MAAMm1B,GAAmB,GAAGzjB,EAAc,KAAK,OAAO,CAAC;AACxF,WAAO,MAAM;AACX,UAAIrV,GAAIC;AACR,YAAM;AAAA,QACJ,WAAAiB;AAAA,QACA,QAAAqE;AAAA,QACA,UAAAwzB;AAAA,QACA,MAAA5H;AAAA,QACA,OAAA6H;AAAA,QACA,UAAUngB;AAAA,QACV,YAAAogB,IAAax4B,EAAM;AAAA,QACnB,kBAAAy4B,IAAmBz4B,EAAM;AAAA,QACzB,YAAA04B,IAAa14B,EAAM;AAAA,QACnB,UAAA24B;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,kBAAAC;AAAA,QACA,aAAaC,IAAoB/4B,EAAM;AAAA,QACvC,YAAYg5B,IAAmBh5B,EAAM;AAAA,QACrC,cAAci5B,IAAqBj5B,EAAM;AAAA,QACzC,WAAAk5B;AAAA,QACA,YAAAC;AAAA,QACA,SAAAC;AAAA,MACR,IAAUv8B,GACE;AAAA,QACJ,OAAOmE;AAAA,QACP,OAAA4P;AAAA,MACR,IAAU3Q,GAGEo5B,IAAWb,EAAW;AAAA,QAC1B,MAAA9H;AAAA,MACR,CAAO;AACD,UAAI4I,IAAOj4B,EAAa,OAAO;AAAA,QAC7B,OAAS,GAAGZ,CAAS;AAAA,MAC7B,GAAS,CAAC44B,CAAQ,CAAC;AACb,UAAIf,MAAa,aAAaA,MAAa;AACzC,YAAIH,EAAa,UAAU,eAAe,CAACzH,EAAK,YAAY,CAACA,EAAK,KAAK;AACrE,gBAAM6I,KAAqB;AAAA,YACzB,CAAC,GAAG94B,CAAS,sBAAsB,GAAG;AAAA,YACtC,CAAC,GAAGA,CAAS,iBAAiB,GAAG03B,EAAa,UAAU;AAAA,UACpE;AACU,UAAAmB,IAAOj4B,EAAa,OAAO;AAAA,YACzB,OAASk4B;AAAA,UACrB,GAAa,CAACF,CAAQ,CAAC;AAAA,QACf,OAAO;AACL,gBAAMG,KAAab,KAAa,QAAuCA,EAASjI,CAAI,IAAKrvB,EAAa,OAAO;AAAA,YAC3G,KAAOqvB,EAAK,YAAYA,EAAK;AAAA,YAC7B,KAAOA,EAAK;AAAA,YACZ,OAAS,GAAGjwB,CAAS;AAAA,YACrB,aAAeiwB,EAAK;AAAA,UAChC,GAAa,IAAI,IAAI2I,GACLI,KAAa;AAAA,YACjB,CAAC,GAAGh5B,CAAS,sBAAsB,GAAG;AAAA,YACtC,CAAC,GAAGA,CAAS,iBAAiB,GAAGk4B,KAAY,CAACA,EAASjI,CAAI;AAAA,UACvE;AACU,UAAA4I,IAAOj4B,EAAa,KAAK;AAAA,YACvB,OAASo4B;AAAA,YACT,SAAW,CAAA32B,OAAKo2B,EAAUxI,GAAM5tB,EAAC;AAAA,YACjC,MAAQ4tB,EAAK,OAAOA,EAAK;AAAA,YACzB,QAAU;AAAA,YACV,KAAO;AAAA,UACnB,GAAa,CAAC8I,EAAS,CAAC;AAAA,QAChB;AAEF,YAAME,IAAqB;AAAA,QACzB,CAAC,GAAGj5B,CAAS,YAAY,GAAG;AAAA,QAC5B,CAAC,GAAGA,CAAS,cAAc03B,EAAa,KAAK,EAAE,GAAG;AAAA,MAC1D,GACYwB,IAAY,OAAOjJ,EAAK,aAAc,WAAW,KAAK,MAAMA,EAAK,SAAS,IAAIA,EAAK,WACnFkJ,IAAaf,IAAiBJ,EAAiB;AAAA,QACnD,YAAYO,IAAmBA,EAAiB;AAAA,UAC9C,MAAAtI;AAAA,QACV,CAAS,IAAIrvB,EAAaw4B,IAAgB,MAAM,IAAI;AAAA,QAC5C,UAAU,MAAMT,EAAQ1I,CAAI;AAAA,QAC5B,WAAAjwB;AAAA,QACA,OAAOqE,EAAO;AAAA,MACtB,CAAO,IAAI,MACCg1B,IAAehB,KAAoBX,EAAa,UAAU,SAASM,EAAiB;AAAA,QACxF,YAAYQ,IAAqBA,EAAmB;AAAA,UAClD,MAAAvI;AAAA,QACV,CAAS,IAAIrvB,EAAaw2B,IAAkB,MAAM,IAAI;AAAA,QAC9C,UAAU,MAAMsB,EAAWzI,CAAI;AAAA,QAC/B,WAAAjwB;AAAA,QACA,OAAOqE,EAAO;AAAA,MACtB,CAAO,IAAI,MACCi1B,IAAmBzB,MAAa,kBAAkBj3B,EAAa,QAAQ;AAAA,QAC3E,KAAO;AAAA,QACP,OAAS,CAAC,GAAGZ,CAAS,sBAAsB;AAAA,UAC1C,SAAS63B,MAAa;AAAA,QAChC,CAAS;AAAA,MACT,GAAS,CAACwB,GAAcF,CAAU,CAAC,GACvBI,IAAoB,GAAGv5B,CAAS,mBAChCowB,KAAWH,EAAK,MAAM,CAACrvB,EAAa,KAAKE,EAAcA,EAAc;AAAA,QACzE,KAAO;AAAA,QACP,QAAU;AAAA,QACV,KAAO;AAAA,QACP,OAASy4B;AAAA,QACT,OAAStJ,EAAK;AAAA,MACtB,GAASiJ,CAAS,GAAG,IAAI;AAAA,QACjB,MAAQjJ,EAAK;AAAA,QACb,SAAW,CAAA5tB,OAAKo2B,EAAUxI,GAAM5tB,EAAC;AAAA,MACzC,CAAO,GAAG,CAAC4tB,EAAK,IAAI,CAAC,GAAGqJ,CAAgB,IAAI,CAAC14B,EAAa,QAAQ;AAAA,QAC1D,KAAO;AAAA,QACP,OAAS24B;AAAA,QACT,SAAW,CAAAl3B,OAAKo2B,EAAUxI,GAAM5tB,EAAC;AAAA,QACjC,OAAS4tB,EAAK;AAAA,MACtB,GAAS,CAACA,EAAK,IAAI,CAAC,GAAGqJ,CAAgB,GAC3BE,KAAe;AAAA,QACnB,eAAe;AAAA,QACf,SAAS;AAAA,MACjB,GACYC,KAActB,IAAkBv3B,EAAa,KAAK;AAAA,QACtD,MAAQqvB,EAAK,OAAOA,EAAK;AAAA,QACzB,QAAU;AAAA,QACV,KAAO;AAAA,QACP,OAASA,EAAK,OAAOA,EAAK,WAAW,SAAYuJ;AAAA,QACjD,SAAW,CAAAn3B,OAAKo2B,EAAUxI,GAAM5tB,EAAC;AAAA,QACjC,OAASgC,EAAO;AAAA,MACxB,GAAS,CAACi0B,IAAoBA,EAAkB;AAAA,QACxC,MAAArI;AAAA,MACR,CAAO,IAAIrvB,EAAa84B,IAAa,MAAM,IAAI,CAAC,CAAC,IAAI,MACzCC,KAAqB9B,MAAa,kBAAkBH,EAAa,UAAU,eAAe92B,EAAa,QAAQ;AAAA,QACnH,OAAS,GAAGZ,CAAS;AAAA,MAC7B,GAAS,CAACy5B,IAAa/B,EAAa,UAAU,UAAU2B,GAAcF,CAAU,CAAC,GACrES,KAAMh5B,EAAa,OAAO;AAAA,QAC9B,OAASq4B;AAAA,MACjB,GAAS,CAACJ,GAAMzI,IAAUuJ,IAAoBnC,EAAa,SAAS52B,EAAai5B,IAAYlC,EAAgB,OAAO;AAAA,QAC5G,SAAS,MAAM,CAACmC,GAAgBl5B,EAAa,OAAO;AAAA,UAClD,OAAS,GAAGZ,CAAS;AAAA,QAC/B,GAAW,CAAC,aAAaiwB,IAAOrvB,EAAa+e,IAAU7e,EAAcA,EAAc,CAAA,GAAI6W,CAAa,GAAG,IAAI;AAAA,UACjG,MAAQ;AAAA,UACR,SAAWsY,EAAK;AAAA,QAC1B,CAAS,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC8J,IAAQrC,EAAa,UAAU,WAAW,CAAC,CAAC,CAAC;AAAA,MAC3E,CAAO,CAAC,CAAC,GACGsC,KAAyB;AAAA,QAC7B,CAAC,GAAGh6B,CAAS,sBAAsB,GAAG;AAAA,QACtC,CAAC,GAAGO,CAAS,EAAE,GAAG,CAAC,CAACA;AAAA,MAC5B,GACY05B,KAAUhK,EAAK,YAAY,OAAOA,EAAK,YAAa,WAAWA,EAAK,aAAanxB,IAAKmxB,EAAK,WAAW,QAAQnxB,MAAO,SAAS,SAASA,EAAG,iBAAiBC,IAAKkxB,EAAK,WAAW,QAAQlxB,MAAO,SAAS,SAASA,EAAG,YAAYsF,EAAO,aACvO3D,KAAOg3B,EAAa,UAAU,UAAU92B,EAAa0c,IAAS;AAAA,QAClE,OAAS2c;AAAA,QACT,mBAAqB,CAAA72B,OAAQA,GAAK;AAAA,MAC1C,GAAS;AAAA,QACD,SAAS,MAAM,CAACw2B,EAAG;AAAA,MAC3B,CAAO,IAAIA;AACL,aAAOh5B,EAAa,OAAO;AAAA,QACzB,OAASo5B;AAAA,QACT,OAAS7pB;AAAA,MACjB,GAAS,CAAC8nB,IAAaA,EAAW;AAAA,QAC1B,YAAYv3B;AAAA,QACZ,MAAAuvB;AAAA,QACA,UAAU6H;AAAA,QACV,SAAS;AAAA,UACP,UAAUY,EAAW,KAAK,MAAMzI,CAAI;AAAA,UACpC,SAASwI,EAAU,KAAK,MAAMxI,CAAI;AAAA,UAClC,QAAQ0I,EAAQ,KAAK,MAAM1I,CAAI;AAAA,QACzC;AAAA,MACA,CAAO,IAAIvvB,EAAI,CAAC;AAAA,IACZ;AAAA,EACF;AACF,CAAC,GCtNKw5B,KAAW,CAACna,GAAGzgB,MAAS;AAC5B,MAAI;AAAA,IACF,OAAAC;AAAA,EACJ,IAAMD;AACJ,MAAIR;AACJ,SAAOq7B,IAAar7B,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC,EAAE,CAAC;AAChG,GACA66B,KAAe/6B,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,OAAO0U,GAAiB6hB,MAAmB;AAAA,IACzC,UAAU;AAAA,IACV,UAAU;AAAA,MACR,aAAa;AAAA,MACb,UAAU;AAAA,IAChB;AAAA,IACI,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAagB;AAAA,IACb,YAAAJ;AAAA,IACA,OAAO,CAAA;AAAA,IACP,qBAAqB;AAAA,EACzB,CAAG;AAAA,EACD,MAAMp6B,GAAOuK,GAAO;AAClB,QAAI;AAAA,MACF,OAAApH;AAAA,MACA,QAAAE;AAAA,IACN,IAAQkH;AACJ,UAAM0zB,IAAej5B,GAAW,EAAK;AACrC,IAAAoE,GAAU,MAAM;AACd,MAAA60B,EAAa,SAAS;AAAA,IACxB,CAAC;AACD,UAAMC,IAAcl5B,GAAW,EAAE;AACjC,IAAAqE,GAAM,MAAMrJ,EAAM,OAAO,WAAY;AACnC,UAAIue,IAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAC9E,MAAA2f,EAAY,QAAQ3f,EAAI,MAAK;AAAA,IAC/B,GAAG;AAAA,MACD,WAAW;AAAA,MACX,MAAM;AAAA,IACZ,CAAK,GACD/W,GAAY,MAAM;AAChB,UAAIxH,EAAM,aAAa,aAAaA,EAAM,aAAa;AACrD;AAEF,UAAIm+B,IAAY;AAChB,OAACn+B,EAAM,SAAS,CAAA,GAAI,QAAQ,CAAC6zB,GAAMr0B,MAAU;AAC3C,QAAI,OAAO,WAAa,OAAe,OAAO,SAAW,OAAe,CAAC,OAAO,cAAc,CAAC,OAAO,QAAQ,EAAEq0B,EAAK,yBAAyB,QAAQA,EAAK,yBAAyB,SAASA,EAAK,aAAa,WAG/MA,EAAK,WAAW,IACZ7zB,EAAM,eACRA,EAAM,YAAY6zB,EAAK,aAAa,EAAE,KAAK,CAAAuK,MAAkB;AAE3D,gBAAMC,IAAWD,KAAkB;AACnC,UAAIC,MAAaxK,EAAK,aACpBqK,EAAY,MAAM1+B,CAAK,EAAE,WAAW6+B,GACpCF,IAAY;AAAA,QAEhB,CAAC;AAAA,MAEL,CAAC,GACGA,KACFG,GAAWJ,CAAW;AAAA,IAE1B,CAAC;AAED,UAAMK,IAAoB,CAAC1K,GAAM5tB,MAAM;AACrC,UAAKjG,EAAM;AAGX,eAAAiG,KAAM,QAAgCA,EAAE,eAAc,GAC/CjG,EAAM,UAAU6zB,CAAI;AAAA,IAC7B,GACM2K,IAAqB,CAAA3K,MAAQ;AACjC,MAAI,OAAO7zB,EAAM,cAAe,aAC9BA,EAAM,WAAW6zB,CAAI,IACZA,EAAK,OACd,OAAO,KAAKA,EAAK,GAAG;AAAA,IAExB,GACM4K,IAAkB,CAAA5K,MAAQ;AAC9B,UAAInxB;AACJ,OAACA,IAAK1C,EAAM,cAAc,QAAQ0C,MAAO,UAAkBA,EAAG,KAAK1C,GAAO6zB,CAAI;AAAA,IAChF,GACM6K,IAAqB,CAAAjrB,MAAS;AAClC,UAAI;AAAA,QACF,MAAAogB;AAAA,MACR,IAAUpgB;AACJ,YAAMkoB,IAAa37B,EAAM,cAAcmD,EAAM;AAC7C,UAAIw4B;AACF,eAAOA,EAAW;AAAA,UAChB,MAAA9H;AAAA,UACA,UAAU7zB,EAAM;AAAA,QAC1B,CAAS;AAEH,YAAM2+B,IAAY9K,EAAK,WAAW,aAC5B+K,IAAW5+B,EAAM,cAAcA,EAAM,WAAW6zB,CAAI,IAAIrvB,EAAa00B,IAAgB,MAAM,IAAI,IAAI10B,EAAa80B,IAAa,MAAM,IAAI;AAC7I,UAAImD,IAAOkC,IAAYn6B,EAAaq6B,IAAiB,MAAM,IAAI,IAAIr6B,EAAaw0B,IAAmB,MAAM,IAAI;AAC7G,aAAIh5B,EAAM,aAAa,YACrBy8B,IAAOkC,IAAYn6B,EAAaq6B,IAAiB,MAAM,IAAI,IAAID,IACtD5+B,EAAM,aAAa,mBAC5By8B,IAAOkC,IAAY3+B,EAAM,OAAO,YAAY4+B,IAEvCnC;AAAA,IACT,GACMb,IAAmB,CAAAkD,MAAO;AAC9B,YAAM;AAAA,QACJ,YAAAC;AAAA,QACA,UAAAj6B;AAAA,QACA,WAAAlB;AAAA,QACA,OAAAif;AAAA,MACR,IAAUic,GACEE,IAAW;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAAnc;AAAA,QACA,SAAS,MAAM;AACb,UAAA/d,EAAQ;AAAA,QACV;AAAA,QACA,OAAO,GAAGlB,CAAS;AAAA,MAC3B;AACM,aAAIW,GAAew6B,CAAU,IACpBv6B,EAAay6B,IAAQD,GAAU;AAAA,QACpC,MAAM,MAAMD;AAAA,MACtB,CAAS,IAEIv6B,EAAay6B,IAAQD,GAAU;AAAA,QACpC,SAAS,MAAM,CAACx6B,EAAa,QAAQ,MAAM,CAACu6B,CAAU,CAAC,CAAC;AAAA,MAChE,CAAO;AAAA,IACH;AACA,IAAA17B,EAAO;AAAA,MACL,eAAek7B;AAAA,MACf,gBAAgBC;AAAA,IACtB,CAAK;AACD,UAAM;AAAA,MACJ,WAAA56B;AAAA,MACA,eAAAmU;AAAA,IACN,IAAQlU,GAAgB,UAAU7D,CAAK,GAC7Bk/B,IAAiB74B,EAAS,OAAO;AAAA,MACrC,CAAC,GAAGzC,EAAU,KAAK,OAAO,GAAG;AAAA,MAC7B,CAAC,GAAGA,EAAU,KAAK,SAAS5D,EAAM,QAAQ,EAAE,GAAG;AAAA,IACrD,EAAM,GACIm/B,IAAuB94B,EAAS,MAAM;AAC1C,YAAM+4B,IAASv8B,EAAS,CAAA,GAAIw8B,GAAe,GAAGtnB,EAAc,KAAK,kBAAkB,CAAC;AACpF,aAAOqnB,EAAO,eACd,OAAOA,EAAO,cACd,OAAOA,EAAO;AACd,YAAME,IAAez8B,EAASA,EAAS,CAAA,GAAI08B,GAAwB,GAAG37B,EAAU,KAAK,IAAI5D,EAAM,aAAa,iBAAiB,mBAAmB,SAAS,EAAE,CAAC,GAAG;AAAA,QAC7J,OAAOk/B,EAAe;AAAA,QACtB,QAAQjB,EAAa;AAAA,MAC7B,CAAO;AACD,aAAOj+B,EAAM,aAAa,iBAAiB6C,EAASA,EAAS,CAAA,GAAIu8B,CAAM,GAAGE,CAAY,IAAIA;AAAA,IAC5F,CAAC;AACD,WAAO,MAAM;AACX,YAAM;AAAA,QACJ,UAAA7D;AAAA,QACA,QAAAxzB;AAAA,QACA,YAAY6zB;AAAA,QACZ,iBAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,kBAAAC;AAAA,QACA,YAAAc;AAAA,QACA,aAAAM;AAAA,QACA,cAAAJ;AAAA,QACA,UAAAvhB;AAAA,QACA,cAAA8jB;AAAA,QACA,YAAA3D;AAAA,QACA,qBAAA4D;AAAA,MACR,IAAUz/B,GACE0/B,IAAkBF,KAAiB,OAAkC,SAASA,EAAY,GAC1F9D,IAAQwC,EAAY;AAC1B,aAAO15B,EAAam7B,IAAiBj7B,EAAcA,EAAc,CAAA,GAAIy6B,EAAqB,KAAK,GAAG,IAAI;AAAA,QACpG,KAAO;AAAA,MACf,CAAO,GAAG;AAAA,QACF,SAAS,MAAM,CAACzD,EAAM,IAAI,CAAA7H,MAAQ;AAChC,gBAAM;AAAA,YACJ,KAAK5zB;AAAA,UACjB,IAAc4zB;AACJ,iBAAOrvB,EAAa22B,IAAU;AAAA,YAC5B,KAAOl7B;AAAA,YACP,QAAUgI;AAAA,YACV,WAAarE,EAAU;AAAA,YACvB,MAAQiwB;AAAA,YACR,OAAS6H;AAAA,YACT,UAAYhgB;AAAA,YACZ,UAAY+f;AAAA,YACZ,UAAYK;AAAA,YACZ,iBAAmBC;AAAA,YACnB,gBAAkBC;AAAA,YAClB,kBAAoBC;AAAA,YACpB,WAAasC;AAAA,YACb,YAAcC;AAAA,YACd,SAAWC;AAAA,YACX,YAAc1B;AAAA,YACd,aAAeM;AAAA,YACf,cAAgBJ;AAAA,YAChB,YAAcpB;AAAA,UAC1B,GAAah5B,EAASA,EAAS,CAAA,GAAIM,CAAK,GAAG;AAAA,YAC/B,YAAYu7B;AAAA,YACZ,kBAAA9C;AAAA,UACZ,CAAW,CAAC;AAAA,QACJ,CAAC,GAAG4D,IAAe9B,GAAgBl5B,EAAas5B,IAAU;AAAA,UACxD,KAAO;AAAA,QACjB,GAAW;AAAA,UACD,SAAS,MAAM4B;AAAA,QACzB,CAAS,GAAG,CAAC,CAAC/B,IAAQ,CAAC,CAAC8B,CAAmB,CAAC,CAAC,IAAI,IAAI;AAAA,MACrD,CAAO;AAAA,IACH;AAAA,EACF;AACF,CAAC,GCpOKG,KAAkB,CAAA5qB,MAAS;AAC/B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,SAAAmB;AAAA,EACJ,IAAMpB;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,UAAU,GAAG;AAAA,MAC3B,CAAC,GAAGA,CAAY,OAAO,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAYD,EAAM;AAAA,QAClB,QAAQ,GAAGA,EAAM,SAAS,aAAaA,EAAM,WAAW;AAAA,QACxD,cAAcA,EAAM;AAAA,QACpB,QAAQ;AAAA,QACR,YAAY,gBAAgBA,EAAM,kBAAkB;AAAA,QACpD,CAACC,CAAY,GAAG;AAAA,UACd,SAAS,GAAGD,EAAM,OAAO;AAAA,QACnC;AAAA,QACQ,CAAC,GAAGC,CAAY,MAAM,GAAG;AAAA,UACvB,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QACnB;AAAA,QACQ,CAAC,GAAGA,CAAY,iBAAiB,GAAG;AAAA,UAClC,SAAS;AAAA,UACT,eAAe;AAAA,QACzB;AAAA,QACQ,CAAC,SAASA,CAAY,kBAAkB,GAAG;AAAA,UACzC,aAAaD,EAAM;AAAA,QAC7B;AAAA,QACQ,CAAC,IAAIC,CAAY,YAAY,GAAG;AAAA,UAC9B,cAAcD,EAAM;AAAA,UACpB,CAACoB,CAAO,GAAG;AAAA,YACT,OAAOpB,EAAM;AAAA,YACb,UAAUA,EAAM;AAAA,UAC5B;AAAA,QACA;AAAA,QACQ,CAAC,IAAIC,CAAY,OAAO,GAAG;AAAA,UACzB,QAAQ,OAAOD,EAAM,SAAS;AAAA,UAC9B,OAAOA,EAAM;AAAA,UACb,UAAUA,EAAM;AAAA,QAC1B;AAAA,QACQ,CAAC,IAAIC,CAAY,OAAO,GAAG;AAAA,UACzB,OAAOD,EAAM;AAAA,UACb,UAAUA,EAAM;AAAA,QAC1B;AAAA;AAAA,QAEQ,CAAC,IAAIC,CAAY,WAAW,GAAG;AAAA,UAC7B,QAAQ;AAAA,UACR,CAAC,IAAIA,CAAY,cAAcmB,CAAO;AAAA,eACjCnB,CAAY;AAAA,eACZA,CAAY;AAAA,WAChB,GAAG;AAAA,YACF,OAAOD,EAAM;AAAA,UACzB;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GC5DM6qB,KAAe,CAAA7qB,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,QAAA6qB;AAAA,IACA,SAAA1pB;AAAA,IACA,UAAA2pB;AAAA,IACA,YAAAC;AAAA,EACJ,IAAMhrB,GACEirB,IAAU,GAAGhrB,CAAY,cACzBirB,IAAa,GAAGD,CAAO,YACvBE,IAAY,GAAGF,CAAO,WACtBG,IAAmB,KAAK,MAAML,IAAWC,CAAU;AACzD,SAAO;AAAA,IACL,CAAC,GAAG/qB,CAAY,UAAU,GAAG;AAAA,MAC3B,CAAC,GAAGA,CAAY,OAAO,GAAGpS,EAASA,EAAS,CAAA,GAAIw9B,GAAQ,CAAE,GAAG;AAAA,QAC3D,YAAYrrB,EAAM;AAAA,QAClB,CAACirB,CAAO,GAAG;AAAA,UACT,UAAU;AAAA,UACV,QAAQjrB,EAAM,aAAa+qB;AAAA,UAC3B,WAAW/qB,EAAM;AAAA,UACjB,UAAA+qB;AAAA,UACA,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,YAAY,oBAAoB/qB,EAAM,kBAAkB;AAAA,UACxD,WAAW;AAAA,YACT,iBAAiBA,EAAM;AAAA,UACnC;AAAA,UACU,CAAC,GAAGirB,CAAO,OAAO,GAAGp9B,EAASA,EAAS,CAAA,GAAIgT,EAAY,GAAG;AAAA,YACxD,SAAS,KAAKb,EAAM,SAAS;AAAA,YAC7B,YAAAgrB;AAAA,YACA,MAAM;AAAA,YACN,YAAY,OAAOhrB,EAAM,kBAAkB;AAAA,UACvD,CAAW;AAAA,UACD,CAACkrB,CAAU,GAAG;AAAA,YACZ,CAACC,CAAS,GAAG;AAAA,cACX,SAAS;AAAA,YACvB;AAAA,YACY,CAAC,GAAGA,CAAS,GAAGL,CAAM,SAAS,GAAG;AAAA,cAChC,QAAQM;AAAA,cACR,QAAQ;AAAA,cACR,YAAY;AAAA;AAAA,cAEZ,UAAU;AAAA,gBACR,WAAW;AAAA,cAC3B;AAAA,YACA;AAAA,YACY,CAAC;AAAA,gBACGD,CAAS;AAAA,0BACCA,CAAS;AAAA,aACtB,GAAG;AAAA,cACF,SAAS;AAAA,YACvB;AAAA,YACY,CAAC/pB,CAAO,GAAG;AAAA,cACT,OAAOpB,EAAM;AAAA,cACb,YAAY,OAAOA,EAAM,kBAAkB;AAAA,YACzD;AAAA,YACY,CAAC,WAAWoB,CAAO,EAAE,GAAG;AAAA,cACtB,OAAOpB,EAAM;AAAA,YAC3B;AAAA,UACA;AAAA,UACU,CAAC,GAAGC,CAAY,SAASmB,CAAO,EAAE,GAAG;AAAA,YACnC,OAAOpB,EAAM;AAAA,YACb,UAAA+qB;AAAA,UACZ;AAAA,UACU,CAAC,GAAGE,CAAO,WAAW,GAAG;AAAA,YACvB,UAAU;AAAA,YACV,QAAQ,CAACjrB,EAAM;AAAA,YACf,OAAO;AAAA,YACP,oBAAoB+qB,IAAW/qB,EAAM;AAAA,YACrC,UAAA+qB;AAAA,YACA,YAAY;AAAA,YACZ,eAAe;AAAA,YACf,SAAS;AAAA,cACP,QAAQ;AAAA,YACtB;AAAA,UACA;AAAA,QACA;AAAA,QACQ,CAAC,GAAGE,CAAO,UAAUE,CAAS,EAAE,GAAG;AAAA,UACjC,SAAS;AAAA,UACT,OAAOnrB,EAAM;AAAA,QACvB;AAAA,QACQ,CAAC,GAAGirB,CAAO,QAAQ,GAAG;AAAA,UACpB,OAAOjrB,EAAM;AAAA,UACb,CAAC,GAAGirB,CAAO,UAAUhrB,CAAY,SAASmB,CAAO,EAAE,GAAG;AAAA,YACpD,OAAOpB,EAAM;AAAA,UACzB;AAAA,UACU,CAACkrB,CAAU,GAAG;AAAA,YACZ,CAAC,GAAG9pB,CAAO,KAAKA,CAAO,QAAQ,GAAG;AAAA,cAChC,OAAOpB,EAAM;AAAA,YAC3B;AAAA,YACY,CAACmrB,CAAS,GAAG;AAAA,cACX,SAAS;AAAA,YACvB;AAAA,UACA;AAAA,QACA;AAAA,QACQ,CAAC,GAAGlrB,CAAY,sBAAsB,GAAG;AAAA,UACvC,YAAY,WAAWD,EAAM,kBAAkB,YAAYA,EAAM,kBAAkB;AAAA;AAAA,UAEnF,aAAa;AAAA,YACX,SAAS;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,MACA,CAAO;AAAA,IACP;AAAA,EACA;AACA,GC7GMsrB,KAAwB,IAAI7e,GAAU,yBAAyB;AAAA,EACnE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,EACb;AACA,CAAC,GACK8e,KAAyB,IAAI9e,GAAU,0BAA0B;AAAA,EACrE,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,EACb;AACA,CAAC,GAEK1M,KAAiB,CAAAC,MAAS;AAC9B,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD,GACEwrB,IAAY,GAAGvrB,CAAY;AACjC,SAAO,CAAC;AAAA,IACN,CAAC,GAAGA,CAAY,UAAU,GAAG;AAAA,MAC3B,CAAC,GAAGurB,CAAS,YAAYA,CAAS,WAAWA,CAAS,QAAQ,GAAG;AAAA,QAC/D,mBAAmBxrB,EAAM;AAAA,QACzB,yBAAyBA,EAAM;AAAA,QAC/B,mBAAmB;AAAA,MAC3B;AAAA,MACM,CAAC,GAAGwrB,CAAS,YAAYA,CAAS,QAAQ,GAAG;AAAA,QAC3C,eAAeF;AAAA,MACvB;AAAA,MACM,CAAC,GAAGE,CAAS,QAAQ,GAAG;AAAA,QACtB,eAAeD;AAAA,MACvB;AAAA,IACA;AAAA,EACA,GAAKD,IAAuBC,EAAsB;AAClD,GCrCME,KAAkB,CAAAzrB,MAAS;AAC/B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,SAAAmB;AAAA,IACA,qBAAAsqB;AAAA,IACA,sBAAAC;AAAA,EACJ,IAAM3rB,GACE4rB,IAAU,GAAG3rB,CAAY,SACzBgrB,IAAU,GAAGW,CAAO;AAC1B,SAAO;AAAA,IACL,CAAC,GAAG3rB,CAAY,UAAU,GAAG;AAAA;AAAA,MAE3B,CAAC,GAAG2rB,CAAO,GAAGA,CAAO,aAAaA,CAAO,GAAGA,CAAO,eAAe,GAAG;AAAA,QACnE,CAACX,CAAO,GAAG;AAAA,UACT,UAAU;AAAA,UACV,QAAQS,IAAsB1rB,EAAM,YAAY,IAAIA,EAAM,YAAY;AAAA,UACtE,SAASA,EAAM;AAAA,UACf,QAAQ,GAAGA,EAAM,SAAS,MAAMA,EAAM,QAAQ,IAAIA,EAAM,WAAW;AAAA,UACnE,cAAcA,EAAM;AAAA,UACpB,WAAW;AAAA,YACT,YAAY;AAAA,UACxB;AAAA,UACU,CAAC,GAAGirB,CAAO,YAAY,GAAGp9B,EAASA,EAAS,CAAA,GAAIgT,EAAY,GAAG;AAAA,YAC7D,OAAO6qB;AAAA,YACP,QAAQA;AAAA,YACR,YAAY,GAAGA,IAAsB1rB,EAAM,SAAS;AAAA,YACpD,WAAW;AAAA,YACX,MAAM;AAAA,YACN,CAACoB,CAAO,GAAG;AAAA,cACT,UAAUpB,EAAM;AAAA,cAChB,OAAOA,EAAM;AAAA,YAC3B;AAAA,YACY,KAAK;AAAA,cACH,SAAS;AAAA,cACT,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,UAAU;AAAA,YACxB;AAAA,UACA,CAAW;AAAA,UACD,CAAC,GAAGirB,CAAO,WAAW,GAAG;AAAA,YACvB,QAAQU;AAAA,YACR,OAAO,eAAe3rB,EAAM,YAAY,CAAC;AAAA,YACzC,WAAW;AAAA,YACX,oBAAoB0rB,IAAsB1rB,EAAM;AAAA,UAC5D;AAAA,QACA;AAAA,QACQ,CAAC,GAAGirB,CAAO,QAAQ,GAAG;AAAA,UACpB,aAAajrB,EAAM;AAAA;AAAA,UAEnB,CAAC,GAAGirB,CAAO,cAAc7pB,CAAO,EAAE,GAAG;AAAA,YAClC,4BAA6B;AAAA,cAC5B,MAAMpB,EAAM;AAAA,YAC1B;AAAA,YACa,4BAA6B;AAAA,cAC5B,MAAMA,EAAM;AAAA,YAC1B;AAAA,UACA;AAAA,QACA;AAAA,QACQ,CAAC,GAAGirB,CAAO,YAAY,GAAG;AAAA,UACxB,aAAa;AAAA,UACb,CAAC,GAAGA,CAAO,OAAO,GAAG;AAAA,YACnB,cAAcU;AAAA,UAC1B;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA,GACME,KAAsB,CAAA7rB,MAAS;AACnC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,SAAAmB;AAAA,IACA,YAAA0qB;AAAA,IACA,qBAAAC;AAAA,EACJ,IAAM/rB,GACE4rB,IAAU,GAAG3rB,CAAY,SACzBgrB,IAAU,GAAGW,CAAO,SACpBI,IAAwBhsB,EAAM;AACpC,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,WAAWA,CAAY,uBAAuB,GAAGpS,EAASA,EAAS,IAAIw9B,GAAQ,CAAE,GAAG;AAAA,MAClG,SAAS;AAAA,MACT,OAAO;AAAA,MACP,CAAC,GAAGprB,CAAY,GAAGA,CAAY,SAAS,GAAG;AAAA,QACzC,OAAO+rB;AAAA,QACP,QAAQA;AAAA,QACR,iBAAiBhsB,EAAM;AAAA,QACvB,cAAcA,EAAM;AAAA,QACpB,WAAW;AAAA,QACX,eAAe;AAAA,QACf,iBAAiBA,EAAM;AAAA,QACvB,QAAQ,GAAGA,EAAM,SAAS,aAAaA,EAAM,WAAW;AAAA,QACxD,cAAcA,EAAM;AAAA,QACpB,QAAQ;AAAA,QACR,YAAY,gBAAgBA,EAAM,kBAAkB;AAAA,QACpD,CAAC,KAAKC,CAAY,EAAE,GAAG;AAAA,UACrB,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,QAAQ;AAAA,UACR,WAAW;AAAA,QACrB;AAAA,QACQ,CAAC,SAASA,CAAY,kBAAkB,GAAG;AAAA,UACzC,aAAaD,EAAM;AAAA,QAC7B;AAAA,MACA;AAAA;AAAA,MAEM,CAAC,GAAG4rB,CAAO,GAAGA,CAAO,eAAe,GAAG;AAAA,QACrC,CAAC,GAAGA,CAAO,iBAAiB,GAAG;AAAA,UAC7B,SAAS;AAAA,UACT,OAAOI;AAAA,UACP,QAAQA;AAAA,UACR,aAAa,KAAKhsB,EAAM,QAAQ;AAAA,UAChC,cAAc,KAAKA,EAAM,QAAQ;AAAA,UACjC,eAAe;AAAA,QACzB;AAAA,QACQ,YAAY;AAAA,UACV,SAAS;AAAA,QACnB;AAAA,QACQ,CAACirB,CAAO,GAAG;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACX,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,OAAO,eAAejrB,EAAM,YAAY,CAAC;AAAA,YACzC,QAAQ,eAAeA,EAAM,YAAY,CAAC;AAAA,YAC1C,iBAAiBA,EAAM;AAAA,YACvB,SAAS;AAAA,YACT,YAAY,OAAOA,EAAM,kBAAkB;AAAA,YAC3C,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,QACQ,CAAC,GAAGirB,CAAO,QAAQ,GAAG;AAAA,UACpB,CAAC,cAAcA,CAAO,UAAU,GAAG;AAAA,YACjC,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,QACQ,CAAC,GAAGA,CAAO,UAAU,GAAG;AAAA,UACtB,UAAU;AAAA,UACV,kBAAkB;AAAA,UAClB,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,SAAS;AAAA,UACT,YAAY,OAAOjrB,EAAM,kBAAkB;AAAA,UAC3C,CAAC,GAAGoB,CAAO,SAASA,CAAO,cAAcA,CAAO,SAAS,GAAG;AAAA,YAC1D,QAAQ;AAAA,YACR,OAAO0qB;AAAA,YACP,QAAQ,KAAK9rB,EAAM,SAAS;AAAA,YAC5B,UAAU8rB;AAAA,YACV,QAAQ;AAAA,YACR,YAAY,OAAO9rB,EAAM,kBAAkB;AAAA,UACvD;AAAA,QACA;AAAA,QACQ,CAAC,GAAGirB,CAAO,aAAaA,CAAO,gBAAgB,GAAG;AAAA,UAChD,CAAC,GAAG7pB,CAAO,SAASA,CAAO,cAAcA,CAAO,SAAS,GAAG;AAAA,YAC1D,OAAO,IAAIua,GAAUoQ,CAAmB,EAAE,SAAS,IAAI,EAAE,YAAW;AAAA,YACpE,WAAW;AAAA,cACT,OAAOA;AAAA,YACrB;AAAA,UACA;AAAA,QACA;AAAA,QACQ,CAAC,GAAGd,CAAO,eAAeA,CAAO,gBAAgB,GAAG;AAAA,UAClD,UAAU;AAAA,UACV,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,WAAW;AAAA,QACrB;AAAA,QACQ,CAAC,GAAGA,CAAO,OAAO,GAAG;AAAA,UACnB,SAAS;AAAA,UACT,WAAW;AAAA,QACrB;AAAA,QACQ,CAAC,GAAGA,CAAO,WAAWA,CAAO,OAAO,GAAG;AAAA,UACrC,UAAU;AAAA,UACV,QAAQjrB,EAAM;AAAA,UACd,SAAS;AAAA,UACT,OAAO,eAAeA,EAAM,YAAY,CAAC;AAAA,QACnD;AAAA,QACQ,CAAC,GAAGirB,CAAO,YAAY,GAAG;AAAA,UACxB,CAAC,IAAIA,CAAO,EAAE,GAAG;AAAA,YACf,iBAAiBjrB,EAAM;AAAA,UACnC;AAAA,UACU,CAAC,cAAcoB,CAAO,SAASA,CAAO,cAAcA,CAAO,SAAS,GAAG;AAAA,YACrE,SAAS;AAAA,UACrB;AAAA,QACA;AAAA,QACQ,CAAC,GAAG6pB,CAAO,WAAW,GAAG;AAAA,UACvB,QAAQjrB,EAAM;AAAA,UACd,OAAO,eAAeA,EAAM,YAAY,CAAC;AAAA,UACzC,oBAAoB;AAAA,QAC9B;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACL;AACA,GCtMMwB,KAAc,CAAAxB,MAAS;AAC3B,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,MAAM,GAAG;AAAA,MACvB,WAAW;AAAA,IACjB;AAAA,EACA;AACA,GCDMyM,KAAe,CAAA1M,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,mBAAAgsB;AAAA,EACJ,IAAMjsB;AACJ,SAAO;AAAA,IACL,CAAC,GAAGC,CAAY,UAAU,GAAGpS,EAASA,EAAS,IAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MACzE,CAACC,CAAY,GAAG;AAAA,QACd,SAAS;AAAA,QACT,sBAAsB;AAAA,UACpB,QAAQ;AAAA,QAClB;AAAA,MACA;AAAA,MACM,CAAC,GAAGA,CAAY,SAAS,GAAG;AAAA,QAC1B,SAAS;AAAA,MACjB;AAAA,MACM,CAAC,GAAGA,CAAY,WAAW,GAAG;AAAA,QAC5B,OAAOgsB;AAAA,QACP,QAAQ;AAAA,MAChB;AAAA,IACA,CAAK;AAAA,EACL;AACA,GAEAC,KAAetqB,GAAsB,UAAU,CAAA5B,MAAS;AACtD,QAAM;AAAA,IACJ,kBAAAmsB;AAAA,IACA,UAAApB;AAAA,IACA,YAAAC;AAAA,IACA,WAAAoB;AAAA,IACA,iBAAAC;AAAA,EACJ,IAAMrsB,GACEorB,IAAmB,KAAK,MAAML,IAAWC,CAAU,GACnDsB,IAAcxqB,GAAW9B,GAAO;AAAA,IACpC,qBAAqBmsB,IAAmB;AAAA,IACxC,sBAAsBf,IAAmB,IAAIgB;AAAA,IAC7C,mBAAmBC,IAAkB;AAAA,EACzC,CAAG;AACD,SAAO,CAAC3f,GAAa4f,CAAW,GAAG1B,GAAgB0B,CAAW,GAAGb,GAAgBa,CAAW,GAAGT,GAAoBS,CAAW,GAAGzB,GAAayB,CAAW,GAAGvsB,GAAeusB,CAAW,GAAG9qB,GAAY8qB,CAAW,GAAGC,GAAkBD,CAAW,CAAC;AACnP,CAAC;AC7CD,IAAIlM,KAAsC,SAAUC,GAASC,GAAYC,GAAGC,GAAW;AACrF,WAASC,EAAM/1B,GAAO;AACpB,WAAOA,aAAiB61B,IAAI71B,IAAQ,IAAI61B,EAAE,SAAUG,GAAS;AAC3D,MAAAA,EAAQh2B,CAAK;AAAA,IACf,CAAC;AAAA,EACH;AACA,SAAO,KAAK61B,MAAMA,IAAI,UAAU,SAAUG,GAASC,GAAQ;AACzD,aAASC,EAAUl2B,GAAO;AACxB,UAAI;AACF,QAAA2kB,EAAKmR,EAAU,KAAK91B,CAAK,CAAC;AAAA,MAC5B,SAASuG,GAAG;AACV,QAAA0vB,EAAO1vB,CAAC;AAAA,MACV;AAAA,IACF;AACA,aAAS4vB,EAASn2B,GAAO;AACvB,UAAI;AACF,QAAA2kB,EAAKmR,EAAU,MAAS91B,CAAK,CAAC;AAAA,MAChC,SAASuG,GAAG;AACV,QAAA0vB,EAAO1vB,CAAC;AAAA,MACV;AAAA,IACF;AACA,aAASoe,EAAKtiB,GAAQ;AACpB,MAAAA,EAAO,OAAO2zB,EAAQ3zB,EAAO,KAAK,IAAI0zB,EAAM1zB,EAAO,KAAK,EAAE,KAAK6zB,GAAWC,CAAQ;AAAA,IACpF;AACA,IAAAxR,GAAMmR,IAAYA,EAAU,MAAMH,GAASC,KAAc,CAAA,CAAE,GAAG,MAAM;AAAA,EACtE,CAAC;AACH,GACI9Y,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAiBO,MAAM8kB,KAAc,iBAAiB,KAAK,IAAG,CAAE,MACtDC,KAAex+B,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiBwd,MAAe;AAAA,IACrC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM,CAAA;AAAA,IACN,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,qBAAqB;AAAA,EACzB,CAAG;AAAA,EACD,MAAMn1B,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,IACN,IAAQH;AACJ,UAAMgvB,IAAkBC,GAAwB,GAC1C;AAAA,MACJ,WAAAvuB;AAAA,MACA,WAAAkU;AAAA,MACA,UAAArR;AAAA,IACN,IAAQ5C,GAAgB,UAAU7D,CAAK,GAE7B,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS,GACtC89B,IAAkBC,GAAiB,GACnCC,IAAiBv7B,EAAS,MAAM;AACpC,UAAI3D;AACJ,cAAQA,IAAK+D,EAAS,WAAW,QAAQ/D,MAAO,SAASA,IAAKg/B,EAAgB;AAAA,IAChF,CAAC,GACK,CAACG,GAAgBC,CAAiB,IAAIrpB,GAAezY,EAAM,mBAAmB,IAAI;AAAA,MACtF,OAAO+hC,GAAM/hC,GAAO,UAAU;AAAA,MAC9B,WAAW,CAAAgiC,MAAQ;AACjB,cAAMC,IAAY,KAAK,IAAG;AAC1B,gBAAQD,KAA0C,CAAA,GAAI,IAAI,CAACnO,GAAMr0B,OAC3D,CAACq0B,EAAK,OAAO,CAAC,OAAO,SAASA,CAAI,MACpCA,EAAK,MAAM,WAAWoO,CAAS,IAAIziC,CAAK,OAEnCq0B,EACR;AAAA,MACH;AAAA,IACN,CAAK,GACKqO,IAAY1+B,GAAI,MAAM,GACtBgwB,IAAShwB,GAAI,IAAI;AACvB,IAAA4F,GAAU,MAAM;AACd,MAAAyO,GAAW7X,EAAM,aAAa,UAAaoD,EAAM,UAAU,QAAW,UAAU,sDAAsD,GACtIyU,GAAW7X,EAAM,kBAAkB,QAAW,UAAU,oEAAoE,GAC5H6X,GAAW7X,EAAM,WAAW,QAAW,UAAU,0DAA0D;AAAA,IAC7G,CAAC;AACD,UAAMmiC,IAAmB,CAACtO,GAAMuO,GAAiBj8B,MAAU;AACzD,UAAIzD,GAAIC;AACR,UAAI0/B,IAAY,CAAC,GAAGD,CAAe;AAEnC,MAAIpiC,EAAM,aAAa,IACrBqiC,IAAYA,EAAU,MAAM,EAAE,IACrBriC,EAAM,aACfqiC,IAAYA,EAAU,MAAM,GAAGriC,EAAM,QAAQ,IAE/C8hC,EAAkBO,CAAS;AAC3B,YAAMC,IAAa;AAAA,QACjB,MAAMzO;AAAA,QACN,UAAUwO;AAAA,MAClB;AACM,MAAIl8B,MACFm8B,EAAW,QAAQn8B,KAEpBzD,IAAK1C,EAAM,mBAAmB,OAAO,QAAQ0C,MAAO,UAAkBA,EAAG,KAAK1C,GAAOsiC,EAAW,QAAQ,IACxG3/B,IAAK3C,EAAM,cAAc,QAAQ2C,MAAO,UAAkBA,EAAG,KAAK3C,GAAOsiC,CAAU,GACpFpQ,EAAgB,cAAa;AAAA,IAC/B,GACMqQ,IAAqB,CAAC1O,GAAM2O,MAAiBpN,GAAU,MAAM,QAAQ,QAAQ,aAAa;AAC9F,YAAM;AAAA,QACJ,cAAAgB;AAAA,QACA,eAAAqM;AAAA,MACR,IAAUziC;AACJ,UAAI02B,IAAa7C;AACjB,UAAIuC,GAAc;AAChB,cAAMr0B,IAAS,MAAMq0B,EAAavC,GAAM2O,CAAY;AACpD,YAAIzgC,MAAW;AACb,iBAAO;AAIT,YADA,OAAO8xB,EAAK2N,EAAW,GACnBz/B,MAAWy/B;AACb,wBAAO,eAAe3N,GAAM2N,IAAa;AAAA,YACvC,OAAO;AAAA,YACP,cAAc;AAAA,UAC1B,CAAW,GACM;AAET,QAAI,OAAOz/B,KAAW,YAAYA,MAChC20B,IAAa30B;AAAA,MAEjB;AACA,aAAI0gC,MACF/L,IAAa,MAAM+L,EAAc/L,CAAU,IAEtCA;AAAA,IACT,CAAC,GACKoB,IAAe,CAAA4K,MAAqB;AAExC,YAAMC,IAAuBD,EAAkB,OAAO,CAAA1P,MAAQ,CAACA,EAAK,KAAKwO,EAAW,CAAC;AAErF,UAAI,CAACmB,EAAqB;AACxB;AAEF,YAAMC,IAAiBD,EAAqB,IAAI,CAAA3P,MAAQyG,GAASzG,EAAK,IAAI,CAAC;AAE3E,UAAI6P,IAAc,CAAC,GAAGhB,EAAe,KAAK;AAC1C,MAAAe,EAAe,QAAQ,CAAAE,MAAW;AAEhC,QAAAD,IAAcnJ,GAAeoJ,GAASD,CAAW;AAAA,MACnD,CAAC,GACDD,EAAe,QAAQ,CAACE,GAAStjC,MAAU;AAEzC,YAAIujC,IAAiBD;AACrB,YAAKH,EAAqBnjC,CAAK,EAAE;AAsB/B,UAAAsjC,EAAQ,SAAS;AAAA,aAtB0B;AAE3C,gBAAM;AAAA,YACJ,eAAAE;AAAA,UACZ,IAAcF;AACJ,cAAIG;AACJ,cAAI;AACF,YAAAA,IAAQ,IAAI,KAAK,CAACD,CAAa,GAAGA,EAAc,MAAM;AAAA,cACpD,MAAMA,EAAc;AAAA,YAClC,CAAa;AAAA,UACH,QAAY;AACV,YAAAC,IAAQ,IAAI,KAAK,CAACD,CAAa,GAAG;AAAA,cAChC,MAAMA,EAAc;AAAA,YAClC,CAAa,GACDC,EAAM,OAAOD,EAAc,MAC3BC,EAAM,mBAAmB,oBAAI,KAAI,GACjCA,EAAM,gBAAe,oBAAI,KAAI,GAAG,QAAO;AAAA,UACzC;AACA,UAAAA,EAAM,MAAMH,EAAQ,KACpBC,IAAiBE;AAAA,QACnB;AAIA,QAAAd,EAAiBY,GAAgBF,CAAW;AAAA,MAC9C,CAAC;AAAA,IACH,GACMtL,IAAY,CAAC2L,GAAUrP,GAAMT,MAAQ;AACzC,UAAI;AACF,QAAI,OAAO8P,KAAa,aACtBA,IAAW,KAAK,MAAMA,CAAQ;AAAA,MAElC,QAAY;AAAA,MAEZ;AAEA,UAAI,CAACrJ,GAAYhG,GAAMgO,EAAe,KAAK;AACzC;AAEF,YAAMsB,IAAa1J,GAAS5F,CAAI;AAChC,MAAAsP,EAAW,SAAS,QACpBA,EAAW,UAAU,KACrBA,EAAW,WAAWD,GACtBC,EAAW,MAAM/P;AACjB,YAAMuG,IAAeD,GAAeyJ,GAAYtB,EAAe,KAAK;AACpE,MAAAM,EAAiBgB,GAAYxJ,CAAY;AAAA,IAC3C,GACMtC,IAAa,CAACpxB,GAAG4tB,MAAS;AAE9B,UAAI,CAACgG,GAAYhG,GAAMgO,EAAe,KAAK;AACzC;AAEF,YAAMsB,IAAa1J,GAAS5F,CAAI;AAChC,MAAAsP,EAAW,SAAS,aACpBA,EAAW,UAAUl9B,EAAE;AACvB,YAAM0zB,IAAeD,GAAeyJ,GAAYtB,EAAe,KAAK;AACpE,MAAAM,EAAiBgB,GAAYxJ,GAAc1zB,CAAC;AAAA,IAC9C,GACMuxB,IAAU,CAAC4L,GAAOF,GAAUrP,MAAS;AAEzC,UAAI,CAACgG,GAAYhG,GAAMgO,EAAe,KAAK;AACzC;AAEF,YAAMsB,IAAa1J,GAAS5F,CAAI;AAChC,MAAAsP,EAAW,QAAQC,GACnBD,EAAW,WAAWD,GACtBC,EAAW,SAAS;AACpB,YAAMxJ,IAAeD,GAAeyJ,GAAYtB,EAAe,KAAK;AACpE,MAAAM,EAAiBgB,GAAYxJ,CAAY;AAAA,IAC3C,GACM0J,IAAe,CAAAxP,MAAQ;AAC3B,UAAIyP;AACJ,YAAMC,IAAevjC,EAAM,YAAYA,EAAM;AAC7C,cAAQ,QAAQ,OAAOujC,KAAiB,aAAaA,EAAa1P,CAAI,IAAI0P,CAAY,EAAE,KAAK,CAAAjM,MAAO;AAClG,YAAI50B,GAAIC;AAER,YAAI20B,MAAQ;AACV;AAEF,cAAMkM,IAAkBzJ,GAAelG,GAAMgO,EAAe,KAAK;AACjE,QAAI2B,MACFF,IAAczgC,EAASA,EAAS,CAAA,GAAIgxB,CAAI,GAAG;AAAA,UACzC,QAAQ;AAAA,QACpB,CAAW,IACAnxB,IAAKm/B,EAAe,WAAW,QAAQn/B,MAAO,UAAkBA,EAAG,QAAQ,CAAA4B,MAAQ;AAClF,gBAAMw1B,IAAWwJ,EAAY,QAAQ,SAAY,QAAQ;AACzD,UAAIh/B,EAAKw1B,CAAQ,MAAMwJ,EAAYxJ,CAAQ,KAAK,CAAC,OAAO,SAASx1B,CAAI,MACnEA,EAAK,SAAS;AAAA,QAElB,CAAC,IACA3B,IAAK6wB,EAAO,WAAW,QAAQ7wB,MAAO,UAAkBA,EAAG,MAAM2gC,CAAW,GAC7EnB,EAAiBmB,GAAaE,CAAe;AAAA,MAEjD,CAAC;AAAA,IACH,GACMtL,IAAa,CAAAjyB,MAAK;AACtB,UAAIvD;AACJ,MAAAw/B,EAAU,QAAQj8B,EAAE,MAChBA,EAAE,SAAS,YACZvD,IAAK1C,EAAM,YAAY,QAAQ0C,MAAO,UAAkBA,EAAG,KAAK1C,GAAOiG,CAAC;AAAA,IAE7E;AACA,IAAA5C,EAAO;AAAA,MACL,cAAAy0B;AAAA,MACA,WAAAP;AAAA,MACA,YAAAF;AAAA,MACA,SAAAG;AAAA,MACA,UAAUqK;AAAA,MACV,QAAArO;AAAA,IACN,CAAK;AACD,UAAM,CAACvrB,CAAM,IAAIw7B,GAAkB,UAAUC,GAAc,QAAQr9B,EAAS,MAAMrG,EAAM,MAAM,CAAC,GACzF2jC,IAAmB,CAACC,GAAQC,MAAkB;AAClD,YAAM;AAAA,QACJ,YAAA9G;AAAA,QACA,aAAAM;AAAA,QACA,cAAAJ;AAAA,QACA,aAAA6G;AAAA,QACA,WAAAzH;AAAA,QACA,YAAAC;AAAA,QACA,YAAAlC;AAAA,QACA,UAAA1e;AAAA,QACA,YAAAmgB;AAAA,QACA,YAAAF;AAAA,QACA,gBAAAoI;AAAA,MACR,IAAU/jC,GACE;AAAA,QACJ,kBAAAi8B;AAAA,QACA,iBAAAF;AAAA,QACA,gBAAAC;AAAA,MACR,IAAU,OAAO+H,KAAmB,YAAY,CAAA,IAAKA;AAC/C,aAAOA,IAAiBv/B,EAAaw5B,IAAY;AAAA,QAC/C,WAAap6B,EAAU;AAAA,QACvB,UAAY5D,EAAM;AAAA,QAClB,OAAS6hC,EAAe;AAAA,QACxB,aAAeiC;AAAA,QACf,WAAazH;AAAA,QACb,YAAcC;AAAA,QACd,UAAY+G;AAAA,QACZ,gBAAkB,CAACzB,EAAe,SAAS5F;AAAA,QAC3C,iBAAmBD;AAAA,QACnB,kBAAoBE;AAAA,QACpB,YAAcc;AAAA,QACd,aAAeM;AAAA,QACf,cAAgBJ;AAAA,QAChB,YAActB;AAAA,QACd,QAAU1zB,EAAO;AAAA,QACjB,YAAcmyB;AAAA,QACd,UAAY1e;AAAA,QACZ,YAAcmgB;AAAA,QACd,qBAAuBgI;AAAA,QACvB,cAAgBD;AAAA,MACxB,GAAS/gC,EAAS,CAAA,GAAIM,CAAK,CAAC,IAAIygC,KAAW,OAA4B,SAASA,EAAM;AAAA,IAClF;AACA,WAAO,MAAM;AACX,UAAIlhC,GAAIC,GAAImB;AACZ,YAAM;AAAA,QACJ,UAAA23B;AAAA,QACA,MAAAxiB;AAAA,MACR,IAAUjZ,GACE;AAAA,QACF,OAAOmE;AAAA,QACP,OAAO6/B;AAAA,MACjB,IAAY5gC,GACJ6gC,IAAaznB,GAAOpZ,GAAO,CAAC,SAAS,OAAO,CAAC,GACzC8gC,IAAgBrhC,EAASA,EAASA,EAAS;AAAA,QAC/C,cAAAi1B;AAAA,QACA,SAAAN;AAAA,QACA,YAAAH;AAAA,QACA,WAAAE;AAAA,MACR,GAAS0M,CAAU,GAAGjkC,CAAK,GAAG;AAAA,QACtB,KAAK0C,IAAK1C,EAAM,QAAQ,QAAQ0C,MAAO,SAASA,IAAKwvB,EAAgB,GAAG;AAAA,QACxE,WAAWtuB,EAAU;AAAA,QACrB,cAAc2+B;AAAA,QACd,UAAU;AAAA,QACV,UAAUX,EAAe;AAAA,MACjC,CAAO;AACD,aAAOsC,EAAc,SAKjB,CAAC/gC,EAAM,WAAWy+B,EAAe,UACnC,OAAOsC,EAAc;AAEvB,YAAMC,IAAS;AAAA,QACb,CAAC,GAAGvgC,EAAU,KAAK,MAAM,GAAGkU,EAAU,UAAU;AAAA,MACxD;AACM,UAAImB,MAAS,QAAQ;AACnB,cAAMmrB,IAAUn9B,GAAWrD,EAAU,OAAO;AAAA,UAC1C,CAAC,GAAGA,EAAU,KAAK,OAAO,GAAG;AAAA,UAC7B,CAAC,GAAGA,EAAU,KAAK,iBAAiB,GAAGi+B,EAAe,MAAM,KAAK,CAAAhO,OAAQA,GAAK,WAAW,WAAW;AAAA,UACpG,CAAC,GAAGjwB,EAAU,KAAK,aAAa,GAAGs+B,EAAU,UAAU;AAAA,UACvD,CAAC,GAAGt+B,EAAU,KAAK,WAAW,GAAGg+B,EAAe;AAAA,UAChD,CAAC,GAAGh+B,EAAU,KAAK,MAAM,GAAGkU,EAAU,UAAU;AAAA,QAC1D,GAAW1U,EAAM,OAAO8U,EAAO,KAAK;AAC5B,eAAOD,EAAQzT,EAAa,QAAQE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,IAAI;AAAA,UAC9E,OAAS6D,GAAW,GAAGrD,EAAU,KAAK,YAAYugC,GAAQhgC,GAAW+T,EAAO,KAAK;AAAA,QAC3F,CAAS,GAAG,CAAC1T,EAAa,OAAO;AAAA,UACvB,OAAS4/B;AAAA,UACT,QAAUlM;AAAA,UACV,YAAcA;AAAA,UACd,aAAeA;AAAA,UACf,OAAS90B,EAAM;AAAA,QACzB,GAAW,CAACoB,EAAa6/B,IAAU3/B,EAAcA,EAAc,IAAIw/B,CAAa,GAAG,IAAI;AAAA,UAC7E,KAAO1Q;AAAA,UACP,OAAS,GAAG5vB,EAAU,KAAK;AAAA,QACrC,CAAS,GAAGc,EAAc;AAAA,UAChB,SAAS,MAAM,CAACF,EAAa,OAAO;AAAA,YAClC,OAAS,GAAGZ,EAAU,KAAK;AAAA,UACvC,GAAa,EAAEjB,IAAKQ,EAAM,aAAa,QAAQR,MAAO,SAAS,SAASA,EAAG,KAAKQ,CAAK,CAAC,CAAC,CAAC;AAAA,QACxF,GAAWA,CAAK,CAAC,CAAC,CAAC,GAAGwgC,EAAgB,CAAE,CAAC,CAAC;AAAA,MACpC;AACA,YAAMW,IAAkBr9B,GAAWrD,EAAU,OAAO;AAAA,QAClD,CAAC,GAAGA,EAAU,KAAK,SAAS,GAAG;AAAA,QAC/B,CAAC,GAAGA,EAAU,KAAK,WAAW63B,CAAQ,EAAE,GAAG;AAAA,QAC3C,CAAC,GAAG73B,EAAU,KAAK,WAAW,GAAGg+B,EAAe;AAAA,QAChD,CAAC,GAAGh+B,EAAU,KAAK,MAAM,GAAGkU,EAAU,UAAU;AAAA,MACxD,CAAO,GACKpU,IAAWC,IAAiBG,IAAKX,EAAM,aAAa,QAAQW,MAAO,SAAS,SAASA,EAAG,KAAKX,CAAK,CAAC,GACnGohC,IAAqB,CAAAC,MAAqBhgC,EAAa,OAAO;AAAA,QAClE,OAAS8/B;AAAA,QACT,OAASE;AAAA,MACjB,GAAS,CAAChgC,EAAa6/B,IAAU3/B,EAAcA,EAAc,IAAIw/B,CAAa,GAAG,IAAI;AAAA,QAC7E,KAAO1Q;AAAA,MACf,CAAO,GAAGrwB,CAAK,CAAC,CAAC;AACX,aACS8U,EADLwjB,MAAa,iBACAj3B,EAAa,QAAQE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,IAAI;AAAA,QAC9E,OAAS6D,GAAW,GAAGrD,EAAU,KAAK,YAAY,GAAGA,EAAU,KAAK,yBAAyBugC,GAAQ/gC,EAAM,OAAO8U,EAAO,KAAK;AAAA,MACxI,CAAS,GAAG,CAACyrB,EAAiBY,GAAoB,CAAC,EAAE7gC,KAAYA,EAAS,OAAO,CAAC,CAAC,IAE9Dc,EAAa,QAAQE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,IAAI;AAAA,QAC9E,OAAS6D,GAAW,GAAGrD,EAAU,KAAK,YAAYugC,GAAQ/gC,EAAM,OAAO8U,EAAO,KAAK;AAAA,MAC3F,CAAO,GAAG,CAACqsB,EAAmB7gC,KAAYA,EAAS,SAAS,SAAY;AAAA,QAChE,SAAS;AAAA,MACjB,CAAO,GAAGigC,EAAgB,CAAE,CAAC,CANuD;AAAA,IAOhF;AAAA,EACF;AACF,CAAC;AC3ZD,IAAInnB,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAIA,MAAA+nB,KAAexhC,EAAgB;AAAA,EAC7B,cAAc;AAAA,IACZ,MAAM;AAAA,EACV;AAAA,EACE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAOkyB,GAAW;AAAA,EAClB,MAAMn1B,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,IACN,IAAQF;AACJ,WAAO,MAAM;AACX,YAAM;AAAA,QACF,QAAAuL;AAAA,MACV,IAAYzO,GACJmgB,IAAY3D,GAAOxc,GAAO,CAAC,QAAQ,CAAC,GAChC;AAAA,QACF,OAAA+T;AAAA,MACV,IAAY3Q,GACJggB,IAAY5G,GAAOpZ,GAAO,CAAC,OAAO,CAAC,GAC/BshC,IAAe7hC,EAASA,EAASA,EAAS,CAAA,GAAIsd,CAAS,GAAGiD,CAAS,GAAG;AAAA,QAC1E,MAAM;AAAA,QACN,OAAOvgB,EAASA,EAAS,CAAA,GAAIkR,CAAK,GAAG;AAAA,UACnC,QAAQ,OAAOtF,KAAW,WAAW,GAAGA,CAAM,OAAOA;AAAA,QAC/D,CAAS;AAAA,MACT,CAAO;AACD,aAAOjK,EAAai9B,IAAQiD,GAAcvhC,CAAK;AAAA,IACjD;AAAA,EACF;AACF,CAAC,GCtCDwhC,KAAe9hC,EAAS4+B,IAAQ;AAAA,EAC9B,SAAAgD;AAAA,EACA,aAAAjD;AAAA,EACA,QAAQ58B,GAAK;AACX,WAAAA,EAAI,UAAU68B,GAAO,MAAMA,EAAM,GACjC78B,EAAI,UAAU6/B,GAAQ,MAAMA,EAAO,GAC5B7/B;AAAA,EACT;AACF,CAAC;ACTD,SAASggC,GAAqBxgC,GAAK4Q,GAAO;AACxC,SAAO;AAAA,IACL,CAAC,GAAG5Q,CAAG,KAAKA,CAAG,WAAWA,CAAG,QAAQ,GAAG;AAAA,MACtC,OAAO4Q,EAAM;AAAA,MACb,QAAQ;AAAA,IACd;AAAA,EACA;AACA;AACA,SAAS6vB,GAAqB7vB,GAAO;AACnC,SAAO;AAAA,IACL,iBAAiBA,EAAM;AAAA,IACvB,WAAWA,EAAM;AAAA,EACrB;AACA;AACA,MAAM8vB,KAA2BjiC,EAAS;AAAA,EACxC,UAAU;AACZ,GAAGgT,EAAY,GAETkvB,KAAoB,CAAA/vB,MAAS;AACjC,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAGpS,EAASA,EAASA,EAASA,EAASA,EAAS,IAAI+S,GAAeZ,CAAK,CAAC,GAAG;AAAA,MACvF,SAAS;AAAA,MACT,SAASA,EAAM;AAAA,MACf,OAAOA,EAAM;AAAA,MACb,iBAAiBA,EAAM;AAAA,MACvB,cAAcA,EAAM;AAAA,MACpB,YAAY,OAAOA,EAAM,iBAAiB,IAAIA,EAAM,eAAe;AAAA,MACnE,CAAC,GAAGC,CAAY,QAAQ,GAAG;AAAA,QACzB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,OAAO;AAAA,MACf;AAAA;AAAA,MAEM,CAAC,IAAIA,CAAY,MAAM,GAAG;AAAA,QACxB,WAAW;AAAA,MACnB;AAAA;AAAA,MAEM,CAAC,IAAIA,CAAY,QAAQ,GAAG;AAAA,QAC1B,SAAS;AAAA,MACjB;AAAA,MACM,CAAC,IAAIA,CAAY,UAAUA,CAAY,OAAO,GAAG;AAAA,QAC/C,MAAM;AAAA,QACN,UAAU;AAAA,MAClB;AAAA;AAAA,MAEM,CAAC,GAAGA,CAAY,OAAO,GAAG;AAAA,QACxB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,YAAY,SAASD,EAAM,iBAAiB,IAAIA,EAAM,eAAe;AAAA,QACrE,cAAcA,EAAM;AAAA,QACpB,cAAcnS,EAASA,EAAS,CAAA,GAAIgiC,GAAqB7vB,CAAK,CAAC,GAAG;AAAA,UAChE,OAAOA,EAAM;AAAA,QACvB,CAAS;AAAA,QACD,YAAY;AAAA,UACV,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,KAAK;AAAA,UACL,kBAAkB;AAAA,UAClB,cAAc;AAAA,UACd,YAAY,oBAAoBA,EAAM,iBAAiB;AAAA,UACvD,eAAe;AAAA,QACzB;AAAA,QACQ,CAAC,eAAeC,CAAY,uBAAuBA,CAAY,iBAAiB,GAAG;AAAA,UACjF,OAAOD,EAAM;AAAA,UACb,YAAY;AAAA,YACV,iBAAiBA,EAAM;AAAA,UACnC;AAAA,QACA;AAAA,QACQ,WAAWnS,EAAS;AAAA,UAClB,WAAWmS,EAAM,gBAAgBA,EAAM,4BAA4B;AAAA,UACnE,YAAY,GAAGA,EAAM,gBAAgBA,EAAM,4BAA4B,CAAC;AAAA,UACxE,SAAS,KAAKA,EAAM,0BAA0B;AAAA,QACxD,GAAW8vB,EAAwB;AAAA;AAAA,QAE3B,cAAc;AAAA,UACZ,mBAAmB9vB,EAAM,WAAW;AAAA,QAC9C;AAAA,QACQ,WAAW;AAAA,UACT,UAAU;AAAA,UACV,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,eAAe;AAAA,QACzB;AAAA,MACA;AAAA;AAAA,MAEM,CAAC,GAAGC,CAAY,QAAQ,GAAGpS,EAASA,EAAS,IAAIgiC,GAAqB7vB,CAAK,CAAC,GAAG;AAAA,QAC7E,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,GAAGA,EAAM,UAAU;AAAA,QAC5B,cAAcA,EAAM;AAAA,QACpB,CAAC,OAAOC,CAAY,aAAaA,CAAY,uBAAuBA,CAAY,wBAAwB,GAAG;AAAA,UACzG,iBAAiB;AAAA,QAC3B;AAAA,MACA,CAAO;AAAA;AAAA,MAED,CAAC,IAAIA,CAAY,KAAK,GAAG;AAAA,QACvB,cAAcD,EAAM;AAAA,QACpB,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,UAC9B,WAAWD,EAAM,kBAAkBA,EAAM,4BAA4B;AAAA,UACrE,YAAY,GAAGA,EAAM,kBAAkBA,EAAM,4BAA4B,CAAC;AAAA,UAC1E,SAAS,KAAKA,EAAM,0BAA0B;AAAA,UAC9C,UAAUA,EAAM;AAAA,QAC1B;AAAA,QACQ,CAAC,GAAGC,CAAY,UAAUA,CAAY,QAAQ,GAAG;AAAA,UAC/C,cAAcD,EAAM;AAAA,QAC9B;AAAA,MACA;AAAA,MACM,CAAC,IAAIC,CAAY,KAAK,GAAG;AAAA,QACvB,cAAcD,EAAM;AAAA,QACpB,CAAC,GAAGC,CAAY,aAAa,GAAG;AAAA,UAC9B,WAAWD,EAAM,kBAAkBA,EAAM,4BAA4B;AAAA,UACrE,YAAY,GAAGA,EAAM,kBAAkBA,EAAM,4BAA4B,CAAC;AAAA,UAC1E,SAAS,KAAKA,EAAM,4BAA4B;AAAA,QAC1D;AAAA,QACQ,CAAC,GAAGC,CAAY,UAAUA,CAAY,QAAQ,GAAG;AAAA,UAC/C,cAAcD,EAAM;AAAA,QAC9B;AAAA,MACA;AAAA,IACA,CAAK,GAAG4vB,GAAqB,cAAc3vB,CAAY,SAASD,CAAK,CAAC,GAAG4vB,GAAqB,GAAG3vB,CAAY,kBAAkBD,CAAK,CAAC,GAAG;AAAA;AAAA,MAElI,CAAC,GAAGC,CAAY,6BAA6B,GAAG;AAAA,QAC9C,YAAY,aAAaD,EAAM,kBAAkB,IAAIA,EAAM,eAAe,WAAWA,EAAM,kBAAkB,IAAIA,EAAM,eAAe;AAAA,QACtI,YAAY;AAAA,MACpB;AAAA,IACA,CAAK;AAAA,EACL;AACA,GAEAgwB,KAAepuB,GAAsB,aAAa,CAAA5B,MAAS;AACzD,QAAM;AAAA,IACJ,eAAAiwB;AAAA,IACA,WAAA7D;AAAA,IACA,gBAAA8D;AAAA,IACA,WAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,EACJ,IAAMtwB,GACEuwB,IAAiBzuB,GAAW9B,GAAO;AAAA,IACvC,4BAA4BA,EAAM,2BAA2BosB;AAAA,IAC7D,8BAA8BpsB,EAAM,6BAA6BosB;AAAA,IACjE,2BAA2B6D;AAAA,IAC3B,YAAYC;AAAA,IACZ,iBAAiBC;AAAA,IACjB,SAASE;AAAA,IACT,cAAcD;AAAA,IACd,iBAAiBE;AAAA,EACrB,CAAG;AACD,SAAO,CAACP,GAAkBQ,CAAc,CAAC;AAC3C,CAAC,GCnKKC,KAAiB,CAAAC,MAAiBA,IAAgB;AAAA,EACtD,MAAMA,EAAc;AAAA,EACpB,OAAOA,EAAc,cAAc,cAAcA,EAAc,cAAcA,EAAc;AAAA,EAC3F,OAAOA,EAAc;AACvB,IAAI,MACEC,KAAO,CAAAhmC,MAASA,MAAU,SAAY,GAAGA,CAAK,OAAO,QACrDimC,KAAc1iC,EAAgB;AAAA,EAClC,OAAO;AAAA,IACL,OAAOuY,GAAO;AAAA,IACd,eAAeA,GAAO;AAAA,IACtB,WAAWA,GAAO;AAAA,IAClB,YAAYA,GAAO;AAAA,IACnB,eAAeA,GAAO;AAAA,IACtB,aAAaA,GAAO;AAAA,IACpB,WAAWA,GAAO;AAAA,IAClB,cAAcA,GAAO;AAAA,EACzB;AAAA,EACE,OAAO,CAAC,eAAe,WAAW;AAAA,EAClC,MAAMxb,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,MAAA4W;AAAA,IACN,IAAQ5W;AACJ,UAAM0iC,IAAWpiC,GAAG,GAEdqiC,IAAmB,CAAAtnB,MAAO;AAC9B,UAAI7b;AACJ,YAAMlD,IAAQQ,EAAM,cAAcue,CAAG,GAC/BjV,KAAO5G,IAAK1C,EAAM,aAAa,WAAW,QAAQ0C,MAAO,SAAS,SAASA,EAAG,iBAAiB,IAAI1C,EAAM,SAAS,OAAO,EAAER,CAAK;AACtI,cAAQ8J,KAAQ,OAAyB,SAASA,EAAI,iBAAiBA;AAAA,IACzE,GACMw8B,IAAYtiC,GAAI,IAAI,GACpBuiC,IAAYviC,GAAI,IAAI;AAC1B,IAAA6F,GAAM,MAAMrJ,EAAM,OAAO,CAACN,GAAOyuB,MAAc;AAC7C,YAAM7e,IAAOu2B,EAAiB1X,CAAS,GACjC9e,IAAOw2B,EAAiBnmC,CAAK,GAC7BsmC,IAAgBR,GAAel2B,CAAI,GACnC22B,IAAgBT,GAAen2B,CAAI;AACzC,MAAAy2B,EAAU,QAAQE,GAClBD,EAAU,QAAQE,GAEhBnsB,EADExK,KAAQD,IACL,gBAEA,WAFa;AAAA,IAItB,GAAG;AAAA,MACD,OAAO;AAAA,IACb,CAAK;AACD,UAAM62B,IAAa7/B,EAAS,MAAM;AAChC,UAAI3D,GAAIC;AACR,aAAO3C,EAAM,cAAc,QAAQ0lC,GAAK,GAAGhjC,IAAKojC,EAAU,WAAW,QAAQpjC,MAAO,SAAS,SAASA,EAAG,MAAM,IAAIgjC,IAAM/iC,IAAKmjC,EAAU,WAAW,QAAQnjC,MAAO,SAAS,SAASA,EAAG,IAAI;AAAA,IAC7L,CAAC,GACKwjC,IAAc9/B,EAAS,MAAM;AACjC,UAAI3D,GAAIC;AACR,aAAO3C,EAAM,cAAc,QAAQ0lC,GAAK,GAAGhjC,IAAKqjC,EAAU,WAAW,QAAQrjC,MAAO,SAAS,SAASA,EAAG,MAAM,IAAIgjC,IAAM/iC,IAAKojC,EAAU,WAAW,QAAQpjC,MAAO,SAAS,SAASA,EAAG,IAAI;AAAA,IAC7L,CAAC;AAED,QAAIyjC;AACJ,UAAMC,IAAgB,CAAAv4B,MAAM;AAC1B,mBAAas4B,CAAM,GACnBE,GAAS,MAAM;AACb,QAAIx4B,MACFA,EAAG,MAAM,YAAY,uCACrBA,EAAG,MAAM,QAAQ;AAAA,MAErB,CAAC;AAAA,IACH,GACMy4B,IAAiB,CAAAz4B,MAAM;AAC3B,MAAAs4B,IAAS,WAAW,MAAM;AACxB,QAAIt4B,MACF04B,GAAS14B,GAAI,GAAG9N,EAAM,UAAU,gBAAgB,GAChD8N,EAAG,MAAM,YAAY,wCACrBA,EAAG,MAAM,QAAQ;AAAA,MAErB,CAAC;AAAA,IACH,GACM24B,IAAc,CAAA34B,MAAM;AACxB,MAAAg4B,EAAU,QAAQ,MAClBC,EAAU,QAAQ,MACdj4B,MACFA,EAAG,MAAM,YAAY,MACrBA,EAAG,MAAM,QAAQ,MACjB44B,GAAY54B,GAAI,GAAG9N,EAAM,UAAU,gBAAgB,IAErD8Z,EAAK,WAAW;AAAA,IAClB,GACMK,IAAc9T,EAAS,MAAM;AACjC,UAAI3D,GAAIC;AACR,aAAO;AAAA,QACL,sBAAsBujC,EAAW;AAAA,QACjC,uBAAuBR,IAAMhjC,IAAKojC,EAAU,WAAW,QAAQpjC,MAAO,SAAS,SAASA,EAAG,KAAK;AAAA,QAChG,uBAAuByjC,EAAY;AAAA,QACnC,wBAAwBT,IAAM/iC,IAAKojC,EAAU,WAAW,QAAQpjC,MAAO,SAAS,SAASA,EAAG,KAAK;AAAA,MACzG;AAAA,IACI,CAAC;AACD,WAAA4C,GAAgB,MAAM;AACpB,mBAAa6gC,CAAM;AAAA,IACrB,CAAC,GACM,MAAM;AAEX,YAAMO,IAAc;AAAA,QAClB,KAAKf;AAAA,QACL,OAAOzrB,EAAY;AAAA,QACnB,OAAO,CAAC,GAAGna,EAAM,SAAS,QAAQ;AAAA,MAC1C;AACM,aAAI,QAAQ,IAAI,aAAa,WAC3B2mC,EAAY,iBAAiB,IAAI,KAAK,UAAUxsB,EAAY,KAAK,IAE5D3V,EAAai5B,IAAY;AAAA,QAC9B,QAAU;AAAA,QACV,eAAiB4I;AAAA,QACjB,SAAWE;AAAA,QACX,cAAgBE;AAAA,MACxB,GAAS;AAAA,QACD,SAAS,MAAM,CAAC,CAACX,EAAU,SAAS,CAACC,EAAU,QAAQ,OAAOvhC,EAAa,OAAOmiC,GAAa,IAAI,CAAC;AAAA,MAC5G,CAAO;AAAA,IACH;AAAA,EACF;AACF,CAAC;AC/GD,SAASC,GAAiBC,GAAS;AACjC,SAAOA,EAAQ,IAAI,CAAA1T,MACb,OAAOA,KAAW,YAAYA,MAAW,OACpCA,IAEF;AAAA,IACL,OAAOA,KAAW,OAA4B,SAASA,EAAO,SAAQ;AAAA,IACtE,OAAOA,KAAW,OAA4B,SAASA,EAAO,SAAQ;AAAA,IACtE,OAAOA;AAAA,EACb,CACG;AACH;AACO,MAAM2T,KAAiB,OACrB;AAAA,EACL,WAAW;AAAA,EACX,SAASlvB,GAAS;AAAA,EAClB,OAAOT,GAAW;AAAA,EAClB,UAAUA,GAAW;AAAA,EACrB,MAAMF,GAAU;AAAA,EAChB,OAAOpU,EAASA,EAAS,CAAA,GAAIqU,GAAS,CAAC,QAAQ,MAAM,CAAC,CAAC,GAAG;AAAA,IACxD,UAAU;AAAA,EAChB,CAAK;AAAA,EACD,YAAY;AAAA,EACZ,UAAU9O,EAAY;AAAA,EACtB,kBAAkBA,EAAY;AAClC,IAEM2+B,KAAkB,CAAC/mC,GAAOkD,MAAS;AACvC,MAAI;AAAA,IACF,OAAAC;AAAA,IACA,MAAA2W;AAAA,EACJ,IAAM5W;AACJ,QAAM;AAAA,IACJ,OAAAxD;AAAA,IACA,UAAA+G;AAAA,IACA,SAAAugC;AAAA,IACA,OAAAnkB;AAAA,IACA,WAAAjf;AAAA,IACA,OAAAqjC,IAAQ9jC,EAAM;AAAA,IACd,SAAA+jC;AAAA,IACA,WAAA/iC;AAAA,EACJ,IAAMnE,GACE+Z,IAAe,CAAA5T,MAAS;AAC5B,IAAIM,KAGJqT,EAAK,UAAU3T,GAAOzG,CAAK;AAAA,EAC7B;AACA,SAAO8E,EAAa,SAAS;AAAA,IAC3B,OAASyC,GAAW;AAAA,MAClB,CAAC,GAAGrD,CAAS,gBAAgB,GAAG6C;AAAA,IACtC,GAAOtC,CAAS;AAAA,EAChB,GAAK,CAACK,EAAa,SAAS;AAAA,IACxB,OAAS,GAAGZ,CAAS;AAAA,IACrB,MAAQ;AAAA,IACR,UAAY6C;AAAA,IACZ,SAAWygC;AAAA,IACX,UAAYntB;AAAA,EAChB,GAAK,IAAI,GAAGvV,EAAa,OAAO;AAAA,IAC5B,OAAS,GAAGZ,CAAS;AAAA,IACrB,OAAS,OAAOif,KAAU,WAAWA,IAAQ;AAAA,EACjD,GAAK,CAAC,OAAOokB,KAAU,aAAaA,EAAM;AAAA,IACtC,OAAAvnC;AAAA,IACA,UAAA+G;AAAA,IACA,SAAAugC;AAAA,IACA,OAAAnkB;AAAA,EACJ,CAAG,IAAIokB,KAA6CvnC,CAAK,CAAC,CAAC,CAAC;AAC5D;AACAqnC,GAAgB,eAAe;AAC/B,MAAAI,KAAelkC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO0U,GAAiBmvB,MAAkB;AAAA,IACxC,SAAS,CAAA;AAAA,IACT,YAAY;AAAA,EAChB,CAAG;AAAA,EACD,OAAO;AAAA,EACP,MAAM9mC,GAAOuK,GAAO;AAClB,QAAI;AAAA,MACF,MAAAuP;AAAA,MACA,OAAA3W;AAAA,MACA,OAAAC;AAAA,IACN,IAAQmH;AACJ,UAAM;AAAA,MACJ,WAAA3G;AAAA,MACA,WAAAkU;AAAA,MACA,MAAA/T;AAAA,IACN,IAAQF,GAAgB,aAAa7D,CAAK,GAChC,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS,GACtCwjC,IAAUpiC,GAAU,GACpBqiC,IAAYriC,GAAW,EAAK,GAC5BsiC,IAAmBjhC,EAAS,MAAMugC,GAAiB5mC,EAAM,OAAO,CAAC,GACjE+Z,IAAe,CAACwtB,GAAQhpB,MAAQ;AACpC,MAAIve,EAAM,aAGV8Z,EAAK,gBAAgByE,CAAG,GACxBzE,EAAK,UAAUyE,CAAG;AAAA,IACpB;AACA,WAAO,MAAM;AACX,YAAMvK,IAAMpQ,EAAU;AACtB,aAAOqU,EAAQzT,EAAa,OAAOE,EAAcA,EAAc,CAAA,GAAItB,CAAK,GAAG,IAAI;AAAA,QAC7E,OAAS6D,GAAW+M,GAAK;AAAA,UACvB,CAACkE,EAAO,KAAK,GAAG;AAAA,UAChB,CAAC,GAAGlE,CAAG,QAAQ,GAAGhU,EAAM;AAAA,UACxB,CAAC,GAAGgU,CAAG,WAAW,GAAGhU,EAAM;AAAA,UAC3B,CAAC,GAAGgU,CAAG,KAAK,GAAGjQ,EAAK,SAAS;AAAA,UAC7B,CAAC,GAAGiQ,CAAG,KAAK,GAAGjQ,EAAK,SAAS;AAAA,UAC7B,CAAC,GAAGiQ,CAAG,MAAM,GAAG8D,EAAU,UAAU;AAAA,QAC9C,GAAW1U,EAAM,KAAK;AAAA,QACd,KAAOgkC;AAAA,MACf,CAAO,GAAG,CAAC5iC,EAAa,OAAO;AAAA,QACvB,OAAS,GAAGwP,CAAG;AAAA,MACvB,GAAS,CAACxP,EAAamhC,IAAa;AAAA,QAC5B,cAAgByB;AAAA,QAChB,WAAapzB;AAAA,QACb,OAAShU,EAAM;AAAA,QACf,YAAc,GAAGgU,CAAG,IAAIhU,EAAM,UAAU;AAAA,QACxC,WAAa8X,EAAU;AAAA,QACvB,eAAiB,CAAAyG,MAAO+oB,EAAiB,MAAM,UAAU,CAAApd,MAAKA,EAAE,UAAU3L,CAAG;AAAA,QAC7E,eAAiB,MAAM;AACrB,UAAA8oB,EAAU,QAAQ;AAAA,QACpB;AAAA,QACA,aAAe,MAAM;AACnB,UAAAA,EAAU,QAAQ;AAAA,QACpB;AAAA,MACR,GAAS,IAAI,GAAGC,EAAiB,MAAM,IAAI,CAAAE,MAAmBhjC,EAAauiC,IAAiBriC,EAAcA,EAAc;AAAA,QAChH,KAAO8iC,EAAgB;AAAA,QACvB,WAAaxzB;AAAA,QACb,SAAWwzB,EAAgB,UAAUxnC,EAAM;AAAA,QAC3C,UAAY+Z;AAAA,MACpB,GAASytB,CAAe,GAAG,IAAI;AAAA,QACvB,WAAavgC,GAAWugC,EAAgB,WAAW,GAAGxzB,CAAG,SAAS;AAAA,UAChE,CAAC,GAAGA,CAAG,gBAAgB,GAAGwzB,EAAgB,UAAUxnC,EAAM,SAAS,CAACqnC,EAAU;AAAA,QACxF,CAAS;AAAA,QACD,UAAY,CAAC,CAACrnC,EAAM,YAAY,CAAC,CAACwnC,EAAgB;AAAA,MAC1D,CAAO,GAAGrkC,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,IACjB;AAAA,EACF;AACF,CAAC,GCnJDskC,KAAeltB,GAAY4sB,EAAS;ACDpC,IAAIO,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,qWAAoW,GAAI,EAAC,GAAI,MAAQ,gBAAgB,OAAS,WAAU;ACCzjB,SAAShjC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI2sB,KAAsB,SAA6B1nC,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ0sB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;ACnBnC,IAAIE,KAAoB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,mWAAkW,GAAI,EAAC,GAAI,MAAQ,cAAc,OAAS,WAAU;ACCnjB,SAASljC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI6sB,KAAoB,SAA2B5nC,GAAOgb,GAAS;AACjE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ4sB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAkB,cAAc;AAChCA,GAAkB,eAAe;ACnBjC,IAAIE,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,iWAAgW,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCnjB,SAASpjC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI+sB,KAAqB,SAA4B9nC,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ8sB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIE,KAAmB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,qdAAod,GAAI,EAAC,GAAI,MAAQ,aAAa,OAAS,WAAU;ACCnqB,SAAStjC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIitB,KAAmB,SAA0BhoC,GAAOgb,GAAS;AAC/D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQgtB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAiB,cAAc;AAC/BA,GAAiB,eAAe;ACnBhC,IAAIE,KAAuB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,+8CAA88C,GAAI,EAAC,GAAI,MAAQ,iBAAiB,OAAS,WAAU;ACCrqD,SAASxjC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAImtB,KAAuB,SAA8BloC,GAAOgb,GAAS;AACvE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQktB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAqB,cAAc;AACnCA,GAAqB,eAAe;ACnBpC,IAAIE,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,s8CAAq8C,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCxpD,SAAS1jC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIqtB,KAAqB,SAA4BpoC,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQotB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIE,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,6jBAA4jB,GAAI,EAAC,GAAI,MAAQ,gBAAgB,OAAS,WAAU;ACCjxB,SAAS5jC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIutB,KAAsB,SAA6BtoC,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQstB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;ACnBnC,IAAIE,KAAiB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0IAAyI,GAAI,EAAC,GAAI,MAAQ,UAAU,OAAS,WAAU;ACCnV,SAAS9jC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIytB,KAAiB,SAAwBxoC,GAAOgb,GAAS;AAC3D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQwtB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAe,cAAc;AAC7BA,GAAe,eAAe;ACnB9B,IAAIE,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,w8CAAu8C,GAAI,EAAC,GAAI,MAAQ,gBAAgB,OAAS,WAAU;ACC5pD,SAAShkC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI2tB,KAAsB,SAA6B1oC,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ0tB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;ACnBnC,IAAIE,KAAoB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,08CAAy8C,GAAI,EAAC,GAAI,MAAQ,cAAc,OAAS,WAAU;ACC1pD,SAASlkC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI6tB,KAAoB,SAA2B5oC,GAAOgb,GAAS;AACjE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ4tB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAkB,cAAc;AAChCA,GAAkB,eAAe;ACnBjC,IAAIE,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,6YAA4Y,GAAI,EAAC,GAAI,MAAQ,gBAAgB,OAAS,WAAU;ACCjmB,SAASpkC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI+tB,KAAsB,SAA6B9oC,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ8tB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;ACnBnC,IAAIE,KAAiB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,EAAE,CAAE,KAAK,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0gBAAygB,GAAI,EAAC,GAAI,MAAQ,UAAU,OAAS,WAAU;ACClyB,SAAStkC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIiuB,KAAiB,SAAwBhpC,GAAOgb,GAAS;AAC3D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQguB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAe,cAAc;AAC7BA,GAAe,eAAe;ACnB9B,IAAIE,KAAiB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,+PAA8P,GAAI,EAAC,GAAI,MAAQ,UAAU,OAAS,WAAU;ACCxc,SAASxkC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAImuB,KAAiB,SAAwBlpC,GAAOgb,GAAS;AAC3D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQkuB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAe,cAAc;AAC7BA,GAAe,eAAe;ACnB9B,IAAIE,KAAe,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0rBAAyrB,GAAI,EAAC,GAAI,MAAQ,QAAQ,OAAS,WAAU;ACC/3B,SAAS1kC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIquB,KAAe,SAAsBppC,GAAOgb,GAAS;AACvD,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQouB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAa,cAAc;AAC3BA,GAAa,eAAe;ACnB5B,IAAIE,KAAe,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0QAAyQ,GAAI,EAAC,GAAI,MAAQ,QAAQ,OAAS,WAAU;ACC/c,SAAS5kC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIuuB,KAAe,SAAsBtpC,GAAOgb,GAAS;AACvD,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQsuB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAa,cAAc;AAC3BA,GAAa,eAAe;ACnB5B,IAAIE,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,EAAE,CAAE,KAAK,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,mnBAAknB,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCp5B,SAAS9kC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIyuB,KAAqB,SAA4BxpC,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQwuB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIE,KAAuB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,EAAE,CAAE,KAAK,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,4YAA2Y,GAAI,EAAC,GAAI,MAAQ,iBAAiB,OAAS,WAAU;ACCjrB,SAAShlC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI2uB,KAAuB,SAA8B1pC,GAAOgb,GAAS;AACvE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ0uB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAqB,cAAc;AACnCA,GAAqB,eAAe;ACnBpC,IAAIE,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,EAAE,CAAE,KAAK,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0YAAyY,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACC3qB,SAASllC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI6uB,KAAqB,SAA4B5pC,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ4uB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIE,KAAkB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,+dAA8d,GAAI,EAAC,GAAI,MAAQ,YAAY,OAAS,WAAU;ACC3qB,SAASplC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAI+uB,KAAkB,SAAyB9pC,GAAOgb,GAAS;AAC7D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQ8uB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAgB,cAAc;AAC9BA,GAAgB,eAAe;ACnB/B,IAAIE,KAAkB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,iZAAgZ,GAAI,EAAC,GAAI,MAAQ,WAAW,OAAS,WAAU;ACC5lB,SAAStlC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIivB,KAAkB,SAAyBhqC,GAAOgb,GAAS;AAC7D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQgvB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAgB,cAAc;AAC9BA,GAAgB,eAAe;ACnB/B,IAAIE,KAAkB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,sjBAAqjB,GAAI,EAAC,GAAI,MAAQ,WAAW,OAAS,WAAU;ACCjwB,SAASxlC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAImvB,KAAkB,SAAyBlqC,GAAOgb,GAAS;AAC7D,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQkvB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAgB,cAAc;AAC9BA,GAAgB,eAAe;ACnB/B,IAAIE,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,CAAA,GAAI,UAAY,CAAC,EAAE,KAAO,SAAS,OAAS,CAAA,EAAE,CAAE,KAAK,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,mnBAAknB,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCp5B,SAAS1lC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE6a,MAAAA,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIqvB,KAAqB,SAA4BpqC,GAAOgb,GAAS;AACnE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQovB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;ACnBlC,IAAIE,KAAsB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,mQAAkQ,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;ACCtd,SAAS5lC,GAAcgW,GAAQ;AAAE,WAAS7S,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8S,IAAS,UAAU9S,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+S,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,IAAY,CAAC,CAAC,IAAKD,EAAQ,QAAQ,SAAU3a,GAAK;AAAE,MAAA6a,GAAgBJ,GAAQza,GAAK0a,EAAO1a,CAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAOya;AAAQ;AAExe,SAASI,GAAgBC,GAAK9a,GAAKP,GAAO;AAAE,SAAIO,KAAO8a,IAAO,OAAO,eAAeA,GAAK9a,GAAK,EAAE,OAAOP,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAI,CAAE,IAAYqb,EAAI9a,CAAG,IAAIP,GAAgBqb;AAAK;AAOhN,IAAIuvB,KAAsB,SAA6BtqC,GAAOgb,GAAS;AACrE,MAAIC,IAAIvW,GAAc,CAAA,GAAI1E,GAAOgb,EAAQ,KAAK;AAE9C,SAAOxW,EAAa0W,IAAUxW,GAAc,CAAA,GAAIuW,GAAG;AAAA,IACjD,MAAQsvB;AAAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAoB,cAAc;AAClCA,GAAoB,eAAe;AClB5B,MAAME,KAAiB,CAAC,QAAQ,UAAU,cAAc,GAClDC,KAAuB,CAAC,cAAc,YAAY,SAAS,OAAO,UAAU,iBAAiB,gBAAgB,gBAAgB,WAAW,UAAU,QAAQ,OAAO,GACjKC,KAAmB,CAAC,UAAU,SAAS,OAAO,cAAc,YAAY,cAAc,YAAY,YAAY,UAAU,SAAS,GACxIC,KAAa,CAAC/mC,GAAW5D,MAAU;AACvC,QAAM4qC,IAAU,CAAA;AAChB,SAAAJ,GAAe,QAAQ,CAAAK,MAAU;AAC/B,IAAAD,EAAQ,GAAGhnC,CAAS,SAASinC,CAAM,EAAE,IAAI7qC,EAAM,SAAS6qC;AAAA,EAC1D,CAAC,GACMD;AACT,GACME,KAAc,CAAClnC,GAAW5D,MAAU;AACxC,QAAM+qC,IAAW,CAAA;AACjB,SAAAL,GAAiB,QAAQ,CAAAG,MAAU;AACjC,IAAAE,EAAS,GAAGnnC,CAAS,UAAUinC,CAAM,EAAE,IAAI7qC,EAAM,UAAU6qC;AAAA,EAC7D,CAAC,GACDE,EAAS,GAAGnnC,CAAS,gBAAgB,IAAI,CAAC5D,EAAM,SAAS,CAAC,CAACA,EAAM,UAC1D+qC;AACT,GACMC,KAAgB,CAACpnC,GAAW5D,MAAU;AAC1C,QAAMirC,IAAa,CAAA;AACnB,SAAAR,GAAqB,QAAQ,CAAAI,MAAU;AACrC,IAAAI,EAAW,GAAGrnC,CAAS,YAAYinC,CAAM,EAAE,IAAI7qC,EAAM,YAAY6qC;AAAA,EACnE,CAAC,GACMI;AACT;AACA,SAASC,GAAqBtnC,GAAW5D,GAAO;AAC9C,SAAOiH,GAAWpE,EAASA,EAASA,EAAS,IAAI8nC,GAAW/mC,GAAW5D,CAAK,CAAC,GAAG8qC,GAAYlnC,GAAW5D,CAAK,CAAC,GAAGgrC,GAAcpnC,GAAW5D,CAAK,CAAC,CAAC;AAClJ;AC3BA,MAAMmrC,KAAe,CAAAn2B,MAAS;AAC5B,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAG;AAAA,MACd,SAAS;AAAA,MACT,cAAc;AAAA,QACZ,eAAe;AAAA,MACvB;AAAA,MACM,SAAS;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,MACM,WAAW;AAAA,QACT,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,EACA;AACA,GACMm2B,KAAkB,CAAAp2B,MAAS;AAC/B,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD;AACJ,SAAO;AAAA,IACL,CAACC,CAAY,GAAG;AAAA,MACd,eAAe;AAAA,QACb,KAAKD,EAAM;AAAA,MACnB;AAAA,MACM,gBAAgB;AAAA,QACd,KAAKA,EAAM;AAAA,MACnB;AAAA,MACM,eAAe;AAAA,QACb,KAAKA,EAAM;AAAA,MACnB;AAAA,IACA;AAAA,EACA;AACA,GACMq2B,KAAmB,CAAAr2B,MAAS;AAChC,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD,GACEs2B,IAAY,CAAA;AAClB,SAAAd,GAAe,QAAQ,CAAA9qC,MAAS;AAC9B,IAAA4rC,EAAU,GAAGr2B,CAAY,SAASvV,CAAK,EAAE,IAAI;AAAA,MAC3C,UAAUA;AAAA,IAChB;AAAA,EACE,CAAC,GACM4rC;AACT,GACMC,KAAqB,CAAAv2B,MAAS;AAClC,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD,GACEw2B,IAAa,CAAA;AACnB,SAAAd,GAAiB,QAAQ,CAAAhrC,MAAS;AAChC,IAAA8rC,EAAW,GAAGv2B,CAAY,UAAUvV,CAAK,EAAE,IAAI;AAAA,MAC7C,YAAYA;AAAA,IAClB;AAAA,EACE,CAAC,GACM8rC;AACT,GACMC,KAAyB,CAAAz2B,MAAS;AACtC,QAAM;AAAA,IACJ,cAAAC;AAAA,EACJ,IAAMD,GACE02B,IAAe,CAAA;AACrB,SAAAjB,GAAqB,QAAQ,CAAA/qC,MAAS;AACpC,IAAAgsC,EAAa,GAAGz2B,CAAY,YAAYvV,CAAK,EAAE,IAAI;AAAA,MACjD,gBAAgBA;AAAA,IACtB;AAAA,EACE,CAAC,GACMgsC;AACT,GACAvzB,KAAevB,GAAsB,QAAQ,CAAA5B,MAAS;AACpD,QAAM22B,IAAY70B,GAAW9B,GAAO;AAAA,IAClC,WAAWA,EAAM;AAAA,IACjB,SAASA,EAAM;AAAA,IACf,WAAWA,EAAM;AAAA,EACrB,CAAG;AACD,SAAO,CAACm2B,GAAaQ,CAAS,GAAGP,GAAgBO,CAAS,GAAGN,GAAiBM,CAAS,GAAGJ,GAAmBI,CAAS,GAAGF,GAAuBE,CAAS,CAAC;AAC5J,CAAC;AClFM,SAASC,GAAa7nC,GAAM;AACjC,SAAO,CAAC,SAAS,UAAU,OAAO,EAAE,SAASA,CAAI;AACnD;ACDO,MAAM8nC,KAAY,OAAO;AAAA,EAC9B,WAAW50B,GAAU;AAAA,EACrB,UAAUE,GAAW;AAAA,EACrB,MAAMF,GAAU;AAAA,EAChB,SAASA,GAAU;AAAA,EACnB,OAAOA,GAAU;AAAA,EACjB,MAAMC,GAAS,CAAC,QAAQ,MAAM,CAAC;AAAA,EAC/B,KAAKA,GAAS,CAAC,QAAQ,MAAM,CAAC;AAAA,EAC9B,WAAWsE,GAAO;AACpB;ACRA,IAAIgB,KAAgC,SAAUC,GAAGxW,GAAG;AAClD,MAAIyW,IAAI,CAAA;AACR,WAASzB,KAAKwB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGxB,CAAC,KAAKhV,EAAE,QAAQgV,CAAC,IAAI,MAAGyB,EAAEzB,CAAC,IAAIwB,EAAExB,CAAC;AAC/F,MAAIwB,KAAK,QAAQ,OAAO,OAAO,yBAA0B,WAAY,UAAS5U,IAAI,GAAGoT,IAAI,OAAO,sBAAsBwB,CAAC,GAAG5U,IAAIoT,EAAE,QAAQpT;AACtI,IAAI5B,EAAE,QAAQgV,EAAEpT,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK4U,GAAGxB,EAAEpT,CAAC,CAAC,MAAG6U,EAAEzB,EAAEpT,CAAC,CAAC,IAAI4U,EAAExB,EAAEpT,CAAC,CAAC;AAElG,SAAO6U;AACT;AAUA,MAAMovB,KAAQ7oC,EAAgB;AAAA,EAC5B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO4oC,GAAS;AAAA,EAChB,MAAM7rC,GAAOkD,GAAM;AACjB,QAAI;AAAA,MACF,OAAAC;AAAA,MACA,OAAAC;AAAA,IACN,IAAQF;AACJ,UAAM;AAAA,MACJ,MAAM6oC;AAAA,MACN,WAAWC;AAAA,IACjB,IAAQC,GAAsB,GACpB;AAAA,MACJ,WAAAroC;AAAA,IACN,IAAQC,GAAgB,QAAQ7D,CAAK,GAC3B,CAACiY,GAASC,CAAM,IAAIC,GAASvU,CAAS,GACtCsoC,IAAY7lC,EAAS,MAAM;AAC/B,UAAI3D;AACJ,aAAO,CAACkB,EAAU,OAAOsU,EAAO,OAAOgzB,GAAqBtnC,EAAU,OAAO5D,CAAK,GAAG;AAAA,QACnF,CAAC,GAAG4D,EAAU,KAAK,MAAM,GAAGooC,EAAa,UAAU;AAAA,QACnD,CAAC,GAAGpoC,EAAU,KAAK,QAAQ5D,EAAM,GAAG,EAAE,GAAG4rC,GAAa5rC,EAAM,GAAG;AAAA,QAC/D,CAAC,GAAG4D,EAAU,KAAK,WAAW,IAAIlB,IAAK1C,EAAM,cAAc,QAAQ0C,MAAO,SAASA,IAAKqpC,KAAY,OAA6B,SAASA,EAAQ,MAAM;AAAA,MAChK,CAAO;AAAA,IACH,CAAC;AACD,WAAO,MAAM;AACX,UAAIrpC;AACJ,YAAM;AAAA,QACF,MAAAypC;AAAA,QACA,KAAAC;AAAA,QACA,WAAW7iB,IAAY;AAAA,MACjC,IAAYvpB,GACJqsC,IAAc7vB,GAAOxc,GAAO,CAAC,QAAQ,OAAO,WAAW,CAAC,GACpDma,IAAc,CAAA;AACpB,aAAIgyB,MACFhyB,EAAY,OAAOgyB,IAEjBC,KAAO,CAACR,GAAaQ,CAAG,MAC1BjyB,EAAY,MAAM,GAAGiyB,CAAG,OAEnBn0B,EAAQzT,EAAa+kB,GAAW7kB,EAAc;AAAA,QACnD,OAAS,CAACtB,EAAM,OAAO8oC,EAAU,KAAK;AAAA,QACtC,OAAS,CAAC9oC,EAAM,OAAO+W,CAAW;AAAA,MAC1C,GAASrX,GAAKupC,GAAa,CAAC,WAAW,QAAQ,SAAS,UAAU,CAAC,CAAC,GAAG;AAAA,QAC/D,SAAS,MAAM,EAAE3pC,IAAKS,EAAM,aAAa,QAAQT,MAAO,SAAS,SAASA,EAAG,KAAKS,CAAK,CAAC;AAAA,MAChG,CAAO,CAAC;AAAA,IACJ;AAAA,EACF;AACF,CAAC,GACDmpC,KAAe/xB,GAAYuxB,EAAK;;;;;;;;;GCvC1BS,KAA0B;;;;;;;;;AAEhC,UAAMC,IAA8C;AAAA,MAClD;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA,QAGT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA,QAGT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA,QAIT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,QAKT,WAAW;AAAA,MAAA;AAAA,IACb,GAGIxsC,IAAQysC,GAUR3yB,IAAO4yB,GAIPC,IAAYtmC,EAAuB;AAAA,MACvC,KAAK,MAAO,MAAM,QAAQrG,EAAM,UAAU,IAAIA,EAAM,aAAa,CAAA;AAAA,MACjE,KAAK,CAAAN,MAASoa,EAAK,qBAAqB8yB,GAAmBltC,CAAK,CAAC;AAAA,IAAA,CAClE,GAEKmtC,IAAgBrpC,GAAI,EAAK,GACzBspC,IAAatpC,GAAmB,IAAI,GACpCupC,IAAiBvpC,GAAI,EAAE,GAEvBwpC,IAAWC,GAAA,GAEXC,IAAwB7mC,EAAS,MAAM;;AAC3C,YAAM8mC,IAAOH,KAAA,gBAAAA,EAAU,MACjBI,IAAiBJ,KAAA,gBAAAA,EAAU,gBAC3BK,KAAY1qC,KAAAD,IAAA4qC,EAAY,UAAZ,gBAAA5qC,EAAmB,SAAnB,gBAAAC,EAAyB;AAE3C,aAAO4qC,GAA2B;AAAA,QAChC,UAAUJ,KAAA,gBAAAA,EAAM;AAAA,QAChB,SAASA,KAAA,gBAAAA,EAAM;AAAA,QACf,SAASJ,EAAe;AAAA,QACxB,cAAcS,GAAiC;AAAA,UAC7C,MAAAL;AAAA,UACA,gBAAgBC,KAAkB;AAAA,UAClC,WAAAC;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IACH,CAAC,GAEKC,IAAcjnC,EAAS,MACvBymC,EAAW,UAAU,OAAa,OAC/BH,EAAU,MAAM,KAAK,CAAAroC,MAAQA,EAAK,QAAQwoC,EAAW,KAAK,KAAK,IACvE,GAEKW,IAAoBpnC,EAAS,MAAM;AACvC,YAAM/B,IAAOgpC,EAAY;AACzB,UAAI,CAAChpC,EAAM,QAAO;AAClB,YAAMopC,IAASC,GAAe3tC,EAAM,SAASsE,EAAK,IAAI;AACtD,aAAOopC,IAAS,GAAGA,EAAO,KAAK,IAAIppC,EAAK,IAAI,MAAMA,EAAK;AAAA,IACzD,CAAC,GAEKspC,IAAoBvnC,EAAS,MAAM;;AACvC,YAAM/B,IAAOgpC,EAAY;AACzB,aAAKhpC,MACE5B,IAAAirC,GAAe3tC,EAAM,SAASsE,EAAK,IAAI,MAAvC,gBAAA5B,EAA0C,SAAQ,KADvC;AAAA,IAEpB,CAAC,GAEKmrC,IAAwBxnC,EAAS,MAAM;AAC3C,YAAMynC,IAAUf,EAAe,MAAM,KAAA;AACrC,aAAOe,EAAQ,SAAS,KAAK,CAACC,GAAyBD,CAAO;AAAA,IAChE,CAAC,GAEKE,IAAgB3nC,EAAS,MAAM;AACnC,YAAMynC,IAAUf,EAAe,MAAM,KAAA;AACrC,aAAOe,EAAQ,SAAS,KAAKC,GAAyBD,CAAO;AAAA,IAC/D,CAAC;AAED,aAASG,EAAiBC,GAAoB;AAC5C,aAAOluC,EAAM,QACV,OAAO,CAAA0tC,MAAU,CAACS,GAAgBxB,EAAU,OAAOe,EAAO,MAAMQ,CAAU,CAAC,EAC3E,IAAI,CAAAR,OAAW;AAAA,QACd,OAAOA,EAAO;AAAA,QACd,OAAOA,EAAO;AAAA,MAAA,EACd;AAAA,IACN;AAEA,aAASU,EAAWnuC,GAAaouC,GAA2D;AAC1F,UAAIA,EAAM,SAAS,QAAW;AAC5B,cAAMrX,IAAOqX,EAAM,KAAK,KAAA;AACxB,YAAIrX,KAAQmX,GAAgBxB,EAAU,OAAO3V,GAAM/2B,CAAG,EAAG;AAAA,MAC3D;AAEA,MAAA0sC,EAAU,QAAQA,EAAU,MAAM,IAAI,OAASroC,EAAK,QAAQrE,IAAM,EAAE,GAAGqE,GAAM,GAAG+pC,EAAA,IAAU/pC,CAAK;AAAA,IACjG;AAEA,aAASgqC,EAAWruC,GAAa;AAC/B,MAAA0sC,EAAU,QAAQA,EAAU,MAAM,OAAO,CAAAroC,MAAQA,EAAK,QAAQrE,CAAG;AAAA,IACnE;AAEA,aAASsuC,IAAgB;AACvB,YAAMC,IAAY,IAAI,IAAI7B,EAAU,MAAM,IAAI,CAAAroC,MAAQA,EAAK,KAAK,KAAA,CAAM,EAAE,OAAO,OAAO,CAAC,GACjFopC,IAAS1tC,EAAM,QAAQ,KAAK,CAAAsE,MAAQ,CAACkqC,EAAU,IAAIlqC,EAAK,IAAI,CAAC;AACnE,MAAKopC,MAELf,EAAU,QAAQ,CAAC,GAAGA,EAAU,OAAO8B,GAAsB,EAAE,MAAMf,EAAO,KAAA,CAAM,CAAC;AAAA,IACrF;AAEA,UAAMgB,IAAaroC,EAAS,MAAM;AAChC,YAAMmoC,IAAY,IAAI,IAAI7B,EAAU,MAAM,IAAI,CAAAroC,MAAQA,EAAK,KAAK,KAAA,CAAM,EAAE,OAAO,OAAO,CAAC;AACvF,aAAOtE,EAAM,QAAQ,KAAK,CAAAsE,MAAQ,CAACkqC,EAAU,IAAIlqC,EAAK,IAAI,CAAC;AAAA,IAC7D,CAAC;AAED,aAASqqC,EAAWrqC,GAAuB;;AACzC,MAAAwoC,EAAW,QAAQxoC,EAAK,KACxByoC,EAAe,SAAQrqC,IAAA4B,EAAK,YAAL,QAAA5B,EAAc,SAAS4B,EAAK,UAAUsqC,IAC7D/B,EAAc,QAAQ;AAAA,IACxB;AAEA,aAASgC,IAAmB;AAC1B,UAAI/B,EAAW,UAAU,KAAM;AAE/B,YAAMgB,IAAUf,EAAe,MAAM,KAAA;AACrC,UAAI,CAACe,GAAS;AACZjQ,QAAAA,GAAQ,QAAQ,YAAY;AAC5B;AAAA,MACF;AAEA,UAAI,CAACkQ,GAAyBD,CAAO,GAAG;AACtCjQ,QAAAA,GAAQ,QAAQ0O,EAAuB;AACvC;AAAA,MACF;AAEA,MAAA6B,EAAWtB,EAAW,OAAO,EAAE,SAASC,EAAe,OAAO,GAC9D+B,EAAA;AAAA,IACF;AAEA,aAASA,IAAqB;AAC5B,MAAAjC,EAAc,QAAQ,IACtBC,EAAW,QAAQ,MACnBC,EAAe,QAAQ;AAAA,IACzB;AAEA,aAASgC,EAAkBzqC,GAAuB;AAChD,aAAO0qC,GAAgC1qC,EAAK,OAAO;AAAA,IACrD;AAEA,aAAS2qC,EAAcC,GAAiB;AACtC,MAAAnC,EAAe,QAAQmC;AAAA,IACzB;;;;QAIEC,EA8BM,OA9BNC,IA8BM;AAAA,UA7BJD,EAuBM,OAvBNE,IAuBM;AAAA,oBAtBJC,EAqBMrxB,IAAA,MAAAsxB,GArBc5C,EAAA,OAAS,CAAjBroC,YAAZgrC,EAqBM,OAAA;AAAA,cArB0B,KAAKhrC,EAAK;AAAA,YAAA;cACxCE,EAcQgrC,GAAA;AAAA,gBAdA,QAAQ;AAAA,gBAAG,OAAM;AAAA,cAAA;2BACvB,MAEQ;AAAA,kBAFRhrC,EAEQirC,GAAA,EAFD,MAAK,UAAM;AAAA,+BAChB,MAA0L;AAAA,sBAA1LjrC,EAA0LkrC,GAAA;AAAA,wBAA/K,OAAOprC,EAAK,QAAQ;AAAA,wBAAY,SAAS2pC,EAAiB3pC,EAAK,GAAG;AAAA,wBAAG,aAAY;AAAA,wBAAQ,OAAM;AAAA,wBAAU,kBAAY,CAAAqrC,MAAEvB,EAAW9pC,EAAK,KAAG,EAAA,MAAU,OAAOqrC,KAAM,EAAA,EAAA,CAAA;AAAA,sBAAA;;;;kBAE9KnrC,EAIQirC,GAAA,EAJD,MAAK,UAAM;AAAA,+BAChB,MAEW;AAAA,sBAFXjrC,EAEWorC,GAAA;AAAA,wBAFD,MAAK;AAAA,wBAAO,MAAK;AAAA,wBAAQ,OAAM;AAAA,wBAAU,SAAK,CAAAD,MAAEhB,EAAWrqC,CAAI;AAAA,sBAAA;wBAC5D,QAAK,MAAgB;AAAA,0BAAhBE,EAAgBqrC,EAAAC,EAAA,CAAA;AAAA,wBAAA;;;;;;kBAGpCtrC,EAIQirC,GAAA,EAJD,MAAK,UAAM;AAAA,+BAChB,MAEW;AAAA,sBAFXjrC,EAEWorC,GAAA;AAAA,wBAFD,MAAK;AAAA,wBAAO,MAAK;AAAA,wBAAQ,QAAA;AAAA,wBAAO,OAAM;AAAA,wBAAQ,SAAK,CAAAD,MAAErB,EAAWhqC,EAAK,GAAG;AAAA,sBAAA;wBACrE,QAAK,MAAkB;AAAA,0BAAlBE,EAAkBqrC,EAAA7S,EAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAK3B6S,EAAAE,EAAA,EAAsBzrC,CAAI,UAAvC0rC,EAGQC,GAAA;AAAA;gBAHkC,OAAM;AAAA,gBAAyC,OAAO3rC,EAAK,QAAQ,KAAA;AAAA,cAAI;gBACpG,QAAK,MAAuB;AAAA,kBAAvBE,EAAuBqrC,EAAAvF,EAAA,CAAA;AAAA,gBAAA;2BACvC,MAA2D;AAAA,kBAA3D6E,EAA2D,QAA3De,IAA2DC,GAAjCpB,EAAkBzqC,CAAI,CAAA,GAAA,CAAA;AAAA,gBAAA;;;;;UAKvCqoC,EAAA,MAAU,WAAM,UAA/BqD,EAEUI,GAAA;AAAA;YAF6B,aAAY;AAAA,UAAA;uBACjD,MAA8G;AAAA,cAA9G5rC,EAA8GorC,GAAA;AAAA,gBAApG,MAAK;AAAA,gBAAO,MAAK;AAAA,gBAAQ,OAAM;AAAA,gBAAQ,WAAWlB,EAAA;AAAA,gBAAa,SAAOH;AAAA,cAAA;2BAAe,MAAI,CAAA,GAAA8B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,qBAAJ,QAAI,EAAA;AAAA,gBAAA;;;;;sBAErGL,EAAqHJ,GAAA;AAAA;YAApG,MAAK;AAAA,YAAO,MAAK;AAAA,YAAQ,OAAM;AAAA,YAAQ,WAAWlB,EAAA;AAAA,YAAa,SAAOH;AAAA,UAAA;uBAAe,MAAI,CAAA,GAAA8B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,iBAAJ,QAAI,EAAA;AAAA,YAAA;;;;QAG5G7rC,EAkCU8rC,GAAA;AAAA,UAjCA,MAAMzD,EAAA;AAAA,kDAAAA,EAAa,QAAA8C;AAAA,UAC1B,iBAAiBlC,EAAA,KAAiB;AAAA,UACnC,WAAQ;AAAA,UACR,eAAY;AAAA,UACZ,OAAM;AAAA,UACN,oBAAA;AAAA,UACC,gCAA8BO,EAAA,MAAA;AAAA,UAC9B,MAAIa;AAAA,UACJ,UAAQC;AAAA,QAAA;qBAET,MAAmI;AAAA,YAAxHlB,EAAA,cAAX0B,EAAmI,OAAnIiB,IAAmIJ,GAA1BvC,EAAA,KAAiB,GAAA,CAAA;YAE1HppC,EAAwKqrC,EAAAW,EAAA,GAAA;AAAA,0BAAnJzD,EAAA;AAAA,4DAAAA,EAAc,QAAA4C;AAAA,cAAE,UAAS;AAAA,cAAc,aAAaE,EAAAjB,EAAA;AAAA,cAA+B,QAAQ;AAAA,cAAM,2BAAyB1B,EAAA;AAAA,YAAA;YAEpIW,EAAA,cAAXyB,EAAuH,OAAvHmB,IAAuHN,GAAhC5D,EAAuB,CAAA;YAE9G/nC,EAYaksC,GAAA;AAAA,cAZA,UAAU;AAAA,cAAO,wBAAqB;AAAA,cAAO,sBAAoB,CAAA;AAAA,cAAI,OAAM;AAAA,YAAA;yBACpE,MAAqC;AAAA,sBAAvDpB,EAUmBrxB,IAAA,MAAAsxB,GAVc/C,GAAqB,CAA7BloC,MAAzBE,EAUmBmsC,GAAA;AAAA,kBAVsC,KAAKrsC,EAAK;AAAA,kBAAM,QAAQA,EAAK;AAAA,gBAAA;6BACpF,MAMM;AAAA,oBANN6qC,EAMM,OANNyB,IAMM;AAAA,sBALJzB,EAGM,OAHN0B,IAGM;AAAA,wBAFJrsC,EAA8DqrC,EAAAiB,EAAA,GAAA,EAA1C,OAAM,mCAAiC;AAAA,wBAC3D3B,EAA4B,QAAA,MAAAgB,GAAnB7rC,EAAK,IAAI,GAAA,CAAA;AAAA,sBAAA;sBAEpBE,EAA6GorC,GAAA;AAAA,wBAAnG,MAAK;AAAA,wBAAO,MAAK;AAAA,wBAAQ,OAAM;AAAA,wBAAiB,SAAK,CAAAD,MAAEV,EAAc3qC,EAAK,OAAO;AAAA,sBAAA;mCAAG,MAAI,CAAA,GAAA+rC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,6BAAJ,QAAI,EAAA;AAAA,wBAAA;;;;oBAEpGlB,EAAsN,OAAtN4B,IAAsNZ,GAArB7rC,EAAK,OAAO,GAAA,CAAA;AAAA,oBAClMA,EAAK,aAAhB0sC,EAAA,GAAA1B,EAA8H,OAA9H2B,IAA8Hd,GAAvB7rC,EAAK,SAAS,GAAA,CAAA;;;;;;;4BAIzH6qC,EAEM,OAAA,EAFD,OAAM,sEAAkE;AAAA,iBAAC,MACzE;AAAA,cAAAA,EAAoC,QAAA,EAA9B,OAAM,YAAA,GAAY,OAAK;AAAA,iBAAO,GAAC;AAAA,cAAAA,EAAwC,QAAA,EAAlC,OAAM,YAAA,GAAY,WAAS;AAAA,iBAAO,YAAU;AAAA,cAAAA,EAA2C,QAAA,EAArC,OAAM,YAAA,GAAY,cAAY;AAAA,iBAAO,KAAG;AAAA,cAAAA,EAA8C,QAAA,EAAxC,OAAM,YAAA,GAAY,iBAAe;AAAA,iBAAO,wBACxL;AAAA,YAAA;;;;;;;;;;;;;AC3QJ,UAAMnvC,IAAQysC,GAIRyE,IAAgBC,GAAyB,IAAI,CAAAzxC,OAAU;AAAA,MAC3D,OAAO0xC,GAA+B1xC,CAAK;AAAA,MAC3C,OAAAA;AAAA,IAAA,EACA,GAEI2xC,IAAiBC,GAA0B,IAAI,CAAA5xC,OAAU;AAAA,MAC7D,OAAO6xC,GAAgC7xC,CAAK;AAAA,MAC5C,OAAAA;AAAA,IAAA,EACA,GAEI8xC,IAAkB;AAAA,MACtB,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,MACxB,EAAE,OAAO,YAAY,OAAO,WAAA;AAAA,MAC5B,EAAE,OAAO,aAAa,OAAO,YAAA;AAAA,MAC7B,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,IAAO;AAGjC,aAASC,EAAapiC,GAA0B;AAC9C,MAAAqiC,GAAmB1xC,EAAM,MAAM;AAC/B,YAAM2xC,IAAUC,GAAkBviC,CAAI;AACtC,MAAIsiC,IACF3xC,EAAM,OAAO,OAAQ,SAAS2xC,IAE9B,OAAO3xC,EAAM,OAAO,OAAQ;AAE9B,YAAM6xC,IAAaC,GAAkB9xC,EAAM,OAAO,UAAU,CAAA,CAAE;AAC9D,MAAI6xC,IACF7xC,EAAM,OAAO,SAAS6xC,IAEtB,OAAO7xC,EAAM,OAAO;AAAA,IAExB;AAEA,UAAMo/B,IAAS/4B,EAAS;AAAA,MACtB,KAAK,MAAM0rC,GAAmBL,GAAmB1xC,EAAM,MAAM,CAAC;AAAA,MAC9D,KAAK,CAAAN,MAAS+xC,EAAa/xC,CAAK;AAAA,IAAA,CACjC,GAEKsyC,IAAoB3rC,EAAS;AAAA,MACjC,KAAK,MAAA;;AAAM,eAAA4rC,GAA0B7S,EAAO,MAAM,UAAU,OAAK18B,IAAA08B,EAAO,MAAM,eAAb,gBAAA18B,EAAyB,aAAY;AAAA;AAAA,MACtG,KAAK,CAAAwvC,MAAW;;AACd,cAAM7iC,IAAO,EAAE,GAAG+vB,EAAO,MAAA;AACzB,QAAK8S,IAGH7iC,EAAK,aAAa;AAAA,UAChB,SAAS;AAAA,UACT,YAAU3M,IAAA2M,EAAK,eAAL,gBAAA3M,EAAiB,aAAY;AAAA,UACvC,YAAUC,IAAA0M,EAAK,eAAL,gBAAA1M,EAAiB,aAAY;AAAA,UACvC,kBAAgBmB,IAAAuL,EAAK,eAAL,gBAAAvL,EAAiB,mBAAkB;AAAA,QAAA,IANrD,OAAOuL,EAAK,YASd+vB,EAAO,QAAQ/vB;AAAA,MACjB;AAAA,IAAA,CACD;AAED,aAAS8iC,EAAgB9D,GAAwC;AAC/D,YAAMh/B,IAAO,EAAE,GAAG+vB,EAAO,MAAA;AACzB,MAAA/vB,EAAK,aAAa,EAAE,SAAS,IAAM,GAAGA,EAAK,YAAY,GAAGg/B,EAAA,GAC1DjP,EAAO,QAAQ/vB;AAAA,IACjB;AAEA,UAAM+iC,IAAqB/rC,EAAS;AAAA,MAClC,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,eAAb,gBAAA18B,EAAyB,aAAY;AAAA;AAAA,MAChD,KAAK,CAAAhD,MAASyyC,EAAgB,EAAE,UAAUzyC,KAAS,OAAO;AAAA,IAAA,CAC3D,GAEK2yC,IAAqBhsC,EAAS;AAAA,MAClC,KAAK,MAAM;;AAET,cAAMisC,OADM5vC,IAAA08B,EAAO,MAAM,eAAb,gBAAA18B,EAAyB,aAAY,SAC/B,MAAM,cAAc;AACtC,eAAO4vC,IAAQ,OAAOA,EAAM,CAAC,CAAC,IAAI;AAAA,MACpC;AAAA,MACA,KAAK,CAAA5yC,MAASyyC,EAAgB,EAAE,UAAU,GAAG,KAAK,IAAI,GAAGzyC,KAAS,CAAC,CAAC,MAAM;AAAA,IAAA,CAC3E,GAEK6yC,IAAmBlsC,EAAS;AAAA,MAChC,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,eAAb,gBAAA18B,EAAyB,mBAAkB;AAAA;AAAA,MACtD,KAAK,CAAAhD,MAASyyC,EAAgB,EAAE,gBAAgBzyC,KAAS,QAAQ;AAAA,IAAA,CAClE,GAEK8yC,IAAkBnsC,EAAS;AAAA,MAC/B,KAAK,MAAM;;AAET,cAAMisC,OADM5vC,IAAA08B,EAAO,MAAM,eAAb,gBAAA18B,EAAyB,UAAS,OAC5B,MAAM,cAAc;AACtC,eAAO4vC,IAAQ,OAAOA,EAAM,CAAC,CAAC,IAAI;AAAA,MACpC;AAAA,MACA,KAAK,CAAA5yC,MAASyyC,EAAgB,EAAE,OAAOzyC,IAAQ,GAAG,KAAK,IAAI,GAAGA,CAAK,CAAC,OAAO,QAAW;AAAA,IAAA,CACvF,GAEK+yC,IAAmBpsC,EAAS;AAAA,MAChC,KAAK,MAAMqsC,GAAyBtT,EAAO,MAAM,SAAS;AAAA,MAC1D,KAAK,CAAA8S,MAAW;;AACd,cAAM7iC,IAAO,EAAE,GAAG+vB,EAAO,MAAA;AACzB,QAAK8S,IAGH7iC,EAAK,YAAY;AAAA,UACf,SAAS;AAAA,UACT,UAAQ3M,IAAA2M,EAAK,cAAL,gBAAA3M,EAAgB,WAAU;AAAA,UAClC,WAASC,IAAA0M,EAAK,cAAL,gBAAA1M,EAAgB,YAAW;AAAA,UACpC,YAAUmB,IAAAuL,EAAK,cAAL,gBAAAvL,EAAgB,aAAY;AAAA,UACtC,YAAU2O,IAAApD,EAAK,cAAL,gBAAAoD,EAAgB,aAAY;AAAA,QAAA,IAPxC,OAAOpD,EAAK,WAUd+vB,EAAO,QAAQ/vB;AAAA,MACjB;AAAA,IAAA,CACD;AAED,aAASsjC,EAAetE,GAAuC;AAC7D,YAAMhtB,IAAU+d,EAAO,MAAM,WACvB/vB,IAAO,EAAE,GAAG+vB,EAAO,MAAA;AACzB,MAAA/vB,EAAK,YAAY;AAAA,QACf,SAAS;AAAA,QACT,SAAQgS,KAAA,gBAAAA,EAAS,WAAU;AAAA,QAC3B,UAASA,KAAA,gBAAAA,EAAS,YAAW;AAAA,QAC7B,WAAUA,KAAA,gBAAAA,EAAS,aAAY;AAAA,QAC/B,WAAUA,KAAA,gBAAAA,EAAS,aAAY;AAAA,QAC/B,GAAGA;AAAA,QACH,GAAGgtB;AAAA,MAAA,GAEDh/B,EAAK,UAAU,WAAW,YAC5B,OAAOA,EAAK,UAAU,WAExB+vB,EAAO,QAAQ/vB;AAAA,IACjB;AAEA,UAAMujC,IAAkBvsC,EAAS;AAAA,MAC/B,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,WAAU;AAAA;AAAA,MAC7C,KAAK,CAAAhD,MAASizC,EAAe,EAAE,QAAQjzC,GAAgC;AAAA,IAAA,CACxE,GAEKmzC,IAAmBxsC,EAAS;AAAA,MAChC,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,YAAW;AAAA;AAAA,MAC9C,KAAK,CAAAhD,MAASizC,EAAe,EAAE,SAASjzC,GAAiC;AAAA,IAAA,CAC1E,GAEKozC,IAAoBzsC,EAAS;AAAA,MACjC,KAAK,MAAM;;AAET,cAAMisC,OADM5vC,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,aAAY,SAC9B,MAAM,cAAc;AACtC,eAAO4vC,IAAQ,OAAOA,EAAM,CAAC,CAAC,IAAI;AAAA,MACpC;AAAA,MACA,KAAK,CAAA5yC,MAASizC,EAAe,EAAE,UAAU,GAAG,KAAK,IAAI,GAAGjzC,KAAS,CAAC,CAAC,MAAM;AAAA,IAAA,CAC1E,GAEKqzC,IAAiB1sC,EAAS;AAAA,MAC9B,KAAK,MAAM;;AAET,cAAMisC,OADM5vC,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,UAAS,OAC3B,MAAM,cAAc;AACtC,eAAO4vC,IAAQ,OAAOA,EAAM,CAAC,CAAC,IAAI;AAAA,MACpC;AAAA,MACA,KAAK,CAAA5yC,MAASizC,EAAe,EAAE,OAAOjzC,IAAQ,GAAG,KAAK,IAAI,GAAGA,CAAK,CAAC,OAAO,QAAW;AAAA,IAAA,CACtF,GAEKszC,IAAkB3sC,EAAS;AAAA,MAC/B,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,mBAAkB;AAAA;AAAA,MACrD,KAAK,CAAAhD,MAASizC,EAAe,EAAE,gBAAgBjzC,KAAS,QAAQ;AAAA,IAAA,CACjE,GAEKuzC,IAAqB5sC,EAAS;AAAA,MAClC,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,mBAAkB;AAAA;AAAA,MACrD,KAAK,CAAAhD,MAASizC,EAAe,EAAE,gBAAgBjzC,KAAS,KAAK;AAAA,IAAA,CAC9D,GAEKwzC,IAAoB7sC,EAAS;AAAA,MACjC,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,aAAY;AAAA;AAAA,MAC/C,KAAK,CAAAhD,MAASizC,EAAe,EAAE,UAAUjzC,GAAO;AAAA,IAAA,CACjD,GAEKyzC,IAAa9sC,EAAS;AAAA,MAC1B,KAAK,MAAA;;AAAM,iBAAA3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,UAAS;AAAA;AAAA,MAC5C,KAAK,CAAAhD,MAASizC,EAAe,EAAE,MAAMjzC,GAAO;AAAA,IAAA,CAC7C,GAEK0zC,IAAkB/sC,EAAS;AAAA,MAC/B,KAAK,MAAA;;AAAM,oBAAK,SAAO3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,cAAa,OAAO,GAAG;AAAA;AAAA,MACtE,KAAK,CAAAhD,MAASizC,EAAe,EAAE,WAAW,KAAK,IAAI,KAAK,KAAK,IAAI,GAAGjzC,KAAS,EAAE,CAAC,IAAI,KAAK;AAAA,IAAA,CAC1F,GAEK2zC,IAAwD;AAAA,MAC5D,EAAE,QAAQ,QAAQ,QAAQ,EAAE,SAAS,KAAK,WAAW,qBAAmB;AAAA,MACxE,EAAE,QAAQ,MAAM,QAAQ,EAAE,SAAS,KAAK,WAAW,gBAAA,EAAgB;AAAA,IAAE,GAGjEC,IAAsBjtC,EAAS;AAAA,MACnC,KAAK,MAAA;;AAAM,oBAAK,YAAU3D,IAAA08B,EAAO,MAAM,cAAb,gBAAA18B,EAAwB,cAAa2wC,GAAwB,MAAM,CAAC;AAAA;AAAA,MAC9F,KAAK,CAAA3zC,MAAS;AACZ,YAAI;AACF,gBAAM6zC,IAAS,KAAK,MAAM7zC,CAAK;AAC/B,cAAI,CAAC,MAAM,QAAQ6zC,CAAM,EAAG;AAC5B,UAAAZ,EAAe,EAAE,WAAWY,GAAQ;AAAA,QACtC,QAAQ;AAAA,QAER;AAAA,MACF;AAAA,IAAA,CACD,GAEKC,IAAoBntC,EAAS,MAAMosC,EAAiB,SAASI,EAAiB,UAAU,QAAQ,GAChGY,IAAsBptC,EAAS,MAAMosC,EAAiB,SAASG,EAAgB,UAAU,QAAQ;;;kBAIrG5C,EA2FS0D,GAAA,EA3FD,QAAO,cAAU;AAAA,mBACvB,MAAqG;AAAA,UAArGlvC,EAAqGmvC,GAAA;AAAA,YAA1F,aAAY;AAAA,YAAO,OAAM;AAAA,UAAA;uBAAmD,MAAE,CAAA,GAAAtD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,iBAAF,MAAE,EAAA;AAAA,YAAA;;;UACzF7rC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,uBACvB,MAAgD;AAAA,cAAhDpvC,EAAgDqvC,GAAA;AAAA,gBAA9B,SAAS7B,EAAA;AAAA,2DAAAA,EAAiB,QAAArC;AAAA,cAAA;;;;UAE9BqC,EAAA,cAAhB1C,EAoBWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YAnBTzZ,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,yBACvB,MAA2F;AAAA,gBAA3FpvC,EAA2FkrC,GAAA;AAAA,kBAAzE,OAAO0C,EAAA;AAAA,2DAAAA,EAAkB,QAAAzC;AAAA,kBAAG,aAAaE,EAAAiE,EAAA,CAA2B;AAAA,gBAAA;;;;YAExFtvC,EAWQgrC,GAAA,EAXA,QAAQ,MAAE;AAAA,yBAChB,MAIQ;AAAA,gBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,6BACd,MAEc;AAAA,oBAFdjrC,EAEcovC,GAAA;AAAA,sBAFD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAAgH;AAAA,wBAAhHpvC,EAAgHuvC,GAAA;AAAA,0BAAxF,OAAO1B,EAAA;AAAA,mEAAAA,EAAkB,QAAA1C;AAAA,0BAAE,OAAM;AAAA,0BAAU,KAAK;AAAA,0BAAI,UAAU;AAAA,0BAAO,eAAY;AAAA,wBAAA;;;;;;;gBAG7GnrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,6BACd,MAEc;AAAA,oBAFdjrC,EAEcovC,GAAA;AAAA,sBAFD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAA6G;AAAA,wBAA7GpvC,EAA6GuvC,GAAA;AAAA,0BAArF,OAAOvB,EAAA;AAAA,mEAAAA,EAAe,QAAA7C;AAAA,0BAAE,OAAM;AAAA,0BAAU,KAAK;AAAA,0BAAI,UAAU;AAAA,0BAAO,eAAY;AAAA,wBAAA;;;;;;;;;;YAI5GnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,yBACrB,MAAuF;AAAA,gBAAvFpvC,EAAuFkrC,GAAA;AAAA,kBAArE,OAAO6C,EAAA;AAAA,2DAAAA,EAAgB,QAAA5C;AAAA,kBAAG,aAAaE,EAAAmE,EAAA,CAAyB;AAAA,gBAAA;;;;YAEpF3D,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAlB,EAAuH,KAAA,EAApH,OAAM,sEAAmE,2CAAuC,EAAA;AAAA,UAAA;UAGrH3qC,EAAwGmvC,GAAA;AAAA,YAA7F,aAAY;AAAA,YAAO,OAAM;AAAA,UAAA;uBAAmD,MAAK,CAAA,GAAAtD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,iBAAL,SAAK,EAAA;AAAA,YAAA;;;UAC5F7rC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,uBACvB,MAA+C;AAAA,cAA/CpvC,EAA+CqvC,GAAA;AAAA,gBAA7B,SAASpB,EAAA;AAAA,2DAAAA,EAAgB,QAAA9C;AAAA,cAAA;;;;UAE7B8C,EAAA,cAAhBnD,EA2DWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YA1DTzZ,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,yBACrB,MAAqE;AAAA,gBAArEpvC,EAAqEkrC,GAAA;AAAA,kBAAnD,OAAOkD,EAAA;AAAA,2DAAAA,EAAe,QAAAjD;AAAA,kBAAG,SAASE,EAAAqB,CAAA;AAAA,gBAAA;;;;YAEtD1sC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,yBACvB,MAAuE;AAAA,gBAAvEpvC,EAAuEkrC,GAAA;AAAA,kBAArD,OAAOmD,EAAA;AAAA,2DAAAA,EAAgB,QAAAlD;AAAA,kBAAG,SAASE,EAAAwB,CAAA;AAAA,gBAAA;;;;YAEvD7sC,EAWQgrC,GAAA,EAXA,QAAQ,MAAE;AAAA,yBAChB,MAIQ;AAAA,gBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,6BACd,MAEc;AAAA,oBAFdjrC,EAEcovC,GAAA;AAAA,sBAFD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAA+G;AAAA,wBAA/GpvC,EAA+GuvC,GAAA;AAAA,0BAAvF,OAAOjB,EAAA;AAAA,mEAAAA,EAAiB,QAAAnD;AAAA,0BAAE,OAAM;AAAA,0BAAU,KAAK;AAAA,0BAAI,UAAU;AAAA,0BAAO,eAAY;AAAA,wBAAA;;;;;;;gBAG5GnrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,6BACd,MAEc;AAAA,oBAFdjrC,EAEcovC,GAAA;AAAA,sBAFD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAA4G;AAAA,wBAA5GpvC,EAA4GuvC,GAAA;AAAA,0BAApF,OAAOhB,EAAA;AAAA,mEAAAA,EAAc,QAAApD;AAAA,0BAAE,OAAM;AAAA,0BAAU,KAAK;AAAA,0BAAI,UAAU;AAAA,0BAAO,eAAY;AAAA,wBAAA;;;;;;;;;;YAI3GnrC,EAqBQgrC,GAAA,EArBA,QAAQ,MAAE;AAAA,yBAChB,MAIQ;AAAA,gBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,6BACd,MAEc;AAAA,oBAFdjrC,EAEcovC,GAAA;AAAA,sBAFD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAAsF;AAAA,wBAAtFpvC,EAAsFkrC,GAAA;AAAA,0BAApE,OAAOsD,EAAA;AAAA,qEAAAA,EAAe,QAAArD;AAAA,0BAAG,aAAaE,EAAAmE,EAAA,CAAyB;AAAA,wBAAA;;;;;;;gBAGrFxvC,EAcQirC,GAAA,EAdA,MAAM,MAAE;AAAA,6BACd,MAYc;AAAA,oBAZdjrC,EAYcovC,GAAA;AAAA,sBAZD,OAAM;AAAA,sBAAM,OAAO;AAAA,oBAAA;iCAC9B,MAUE;AAAA,wBAVFpvC,EAUEyvC,GAAA;AAAA,0BATQ,OAAOhB,EAAA;AAAA,qEAAAA,EAAkB,QAAAtD;AAAA,0BACjC,OAAM;AAAA,0BACL,SAAS;AAAA;;;;;0BAMV,aAAY;AAAA,wBAAA;;;;;;;;;;YAKpBnrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,yBACvB,MAA8E;AAAA,gBAA9EpvC,EAA8EkrC,GAAA;AAAA,kBAA5D,OAAOwD,EAAA;AAAA,6DAAAA,EAAiB,QAAAvD;AAAA,kBAAG,aAAa6B,CAAe;AAAA,gBAAA;;;;YAG3DgC,EAAA,cAAhBlE,EAOWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,cANTzZ,EAEcovC,GAAA,EAFD,OAAM,WAAO;AAAA,2BACxB,MAAyC;AAAA,kBAAzCpvC,EAAyCqvC,GAAA;AAAA,oBAAvB,SAASV,EAAA;AAAA,iEAAAA,EAAU,QAAAxD;AAAA,kBAAA;;;;cAEvCnrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAwG;AAAA,kBAAxGpvC,EAAwG0vC,GAAA;AAAA,oBAAtF,OAAOd,EAAA;AAAA,+DAAAA,EAAe,QAAAzD;AAAA,oBAAG,KAAK;AAAA,oBAAI,KAAK;AAAA,oBAAM,iBAAa,CAAGr4B,MAAS,GAAQA,CAAC;AAAA,kBAAA;;;;;YAIrFm8B,EAAA,cACdzD,EAEc4D,GAAA;AAAA;cAFD,OAAM;AAAA,YAAA;yBACjB,MAA0E;AAAA,gBAA1EpvC,EAA0EqrC,EAAAW,EAAA,GAAA;AAAA,8BAArD8C,EAAA;AAAA,kEAAAA,EAAmB,QAAA3D;AAAA,kBAAE,UAAS;AAAA,kBAAQ,QAAQ;AAAA,gBAAA;;;;;;;;;;;;;;;;;;AClT7E,UAAM3vC,IAAQysC,GAWR3yB,IAAO4yB,GAEP6G,IAASltC,EAAS,MAAM8tC,GAAWn0C,EAAM,UAAU,CAAC,GAEpDo0C,IAAW/tC,EAAS;AAAA,MACxB,KAAK,MAAMguC,GAAUd,EAAO,KAAK;AAAA,MACjC,KAAK,CAAA7zC,MAAS;AACZ,cAAM2P,IAAO8kC,GAAWz0C,CAAK;AAC7B,QAAA2P,EAAK,IAAIkkC,EAAO,MAAM,GACtBz5B,EAAK,qBAAqBw6B,GAAWjlC,CAAI,CAAC;AAAA,MAC5C;AAAA,IAAA,CACD,GAEKklC,IAAYluC,EAAS;AAAA,MACzB,KAAK,MAAMrG,EAAM;AAAA,MACjB,KAAK,CAAAN,MAASoa,EAAK,qBAAqBpa,CAAK;AAAA,IAAA,CAC9C;AAED,aAAS80C,IAAc;AACrB,MAAA16B,EAAK,qBAAqB,EAAE;AAAA,IAC9B;;;kBAIEk2B,EAGSyE,GAAA;AAAA,QAHD,KAAI;AAAA,QAAQ,OAAM;AAAA,QAAS,OAAM;AAAA,MAAA;mBACvC,MAA2E;AAAA,aAA3EtF,EAA2E,SAAA;AAAA,0DAA3DiF,EAAQ,QAAAzE;AAAA,YAAE,MAAK;AAAA,YAAQ,OAAM;AAAA,UAAA;iBAA7ByE,EAAA,KAAQ;AAAA,UAAA;UACxB5vC,EAAqGkwC,GAAA;AAAA,YAApF,OAAOH,EAAA;AAAA,qDAAAA,EAAS,QAAA5E;AAAA,YAAE,aAAY;AAAA,YAAmB,eAAA;AAAA,YAAa,SAAO6E;AAAA,UAAA;;;;;;;;;;;;;;;;;;;;;AClC1F,UAAMG,IAAQC,GAAmBnI,GAAA,YAAgB,GAE3CzsC,IAAQysC;AAad,aAASoI,EAAkBn4B,GAAW;AACpC,cAAQA,GAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAEb;AAEA,UAAMo4B,IAAUtxC,GAAI,EAAK,GACnBkxB,IAAWlxB,GAAkB,EAAE,GAC/BuxC,IAAgBjqC,GAAOkqC,IAAoB,IAAI,GAE/CC,IAAkB5uC,EAAS,OAClBrG,EAAM,aAAa,IAAI,UAAU60C,EAAkB70C,EAAM,QAAQ,CAAC,KACjE,MACf;AAED,aAASo2B,EAAavC,GAAY;AAEhC,aADeA,EAAK,OAAO,OAAO,OACrB,OACXgK,GAAQ,MAAM,+BAA+B,GACtC,MAEF;AAAA,IACT;AAEA,mBAAe9G,EAAc8P,GAAgH;;AAC3I,UAAI,CAACkO,GAAe;AAClBlX,QAAAA,GAAQ,MAAM,mBAAmB,IACjCn7B,IAAAmkC,EAAQ,YAAR,QAAAnkC,EAAA,KAAAmkC,GAAkB,IAAI,MAAM,iCAAiC;AAC7D;AAAA,MACF;AAEA,YAAMhT,IAAOgT,EAAQ;AACrB,UAAI,EAAEhT,aAAgB,OAAO;AAC3B,SAAAlxB,IAAAkkC,EAAQ,YAAR,QAAAlkC,EAAA,KAAAkkC,GAAkB,IAAI,MAAM,cAAc;AAC1C;AAAA,MACF;AAEA,MAAAiO,EAAQ,QAAQ;AAChB,UAAI;AACF,cAAMza,IAAM,MAAM0a,EAAc;AAAA,UAC9B,MAAAlhB;AAAA,UACA,WAAWohB,EAAgB;AAAA,QAAA,CAC5B;AAED,QAAAN,EAAM,QAAQta,IACdv2B,IAAA+iC,EAAQ,cAAR,QAAA/iC,EAAA,KAAA+iC,GAAoB,EAAE,KAAAxM;MACxB,SAAS+I,GAAO;AACd,cAAM/P,IAAM+P,aAAiB,QAAQA,EAAM,UAAU;AACrDvF,QAAAA,GAAQ,MAAMxK,CAAG,IACjB5gB,IAAAo0B,EAAQ,YAAR,QAAAp0B,EAAA,KAAAo0B,GAAkBzD,aAAiB,QAAQA,IAAQ,IAAI,MAAM/P,CAAG;AAAA,MAClE,UAAA;AACE,QAAAyhB,EAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAEA,UAAMI,IAAa7uC,EAAS,MAAM;;AAChC,YAAM3G,KAAQgD,IAAAiyC,EAAM,UAAN,gBAAAjyC,EAAa;AAC3B,aAAI,CAAChD,KAASy1C,GAAqBz1C,CAAK,IAAU,KAC3CA;AAAA,IACT,CAAC;AAED,WAAA2J;AAAA,MACE,MAAM6rC,EAAW;AAAA,MACjB,CAAAx1C,MAAS;AACP,QAAAg1B,EAAS,QAAQh1B,IAAQ,CAAC,EAAE,KAAK,MAAM,MAAM,SAAS,QAAQ,QAAQ,KAAKA,EAAA,CAAO,IAAI,CAAA;AAAA,MACxF;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;;kBAKlBswC,EAMWoF,GAAA;AAAA,QANO,aAAW1gB,EAAA;AAAA,oDAAAA,EAAQ,QAAAib;AAAA,QAAG,UAAUlD,EAAA,YAAQ,CAAKoD,EAAAkF,CAAA;AAAA,QAAgB,oBAAkB;AAAA,QAAQ,aAAWtI,EAAA;AAAA,QAAW,QAAQA,EAAA;AAAA,QAAS,iBAAerW;AAAA,QAAe,kBAAgBW;AAAA,MAAA;mBAC5L,MAAqI;AAAA,UAA1Hme,EAAA,cAAX5F,EAAqI,OAAA;AAAA;YAA7G,KAAK4F,EAAA;AAAA,YAAY,OAAM;AAAA,YAAuC,OAAKG,GAAA,EAAA,OAAW5I,EAAA,MAAI,QAAUA,EAAA,MAAI;AAAA,YAAI,KAAI;AAAA,UAAA,0BAChI6C,EAGM,OAAA;AAAA;YAHM,OAAM;AAAA,YAA6F,OAAK+F,GAAA,EAAA,OAAW5I,EAAA,MAAI,QAAUA,EAAA,KAAA,CAAI;AAAA,UAAA;YACxHqI,EAAA,cAAvB9E,EAAkCH,EAAAhR,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,WAClCmR,EAAuBH,EAAAn2B,EAAA,GAAA,EAAA,KAAA,GAAA;AAAA,UAAA;;;;;;;;;;;;;;;;;;ACvG7B,UAAM1Z,IAAQysC,GAaRkI,IAAQC,GAAmBnI,GAAA,YAAiB;;;AAIhD,aAAAuE,EAAA,GAAA1B,EAWM,OAXNF,IAWM;AAAA,QAVJ5qC,EAA2H0vC,GAAA;AAAA,UAAzG,OAAOS,EAAA;AAAA,mDAAAA,EAAK,QAAAhF;AAAA,UAAE,OAAM;AAAA,UAA+B,KAAK3vC,EAAM;AAAA,UAAM,KAAKA,EAAM;AAAA,UAAM,MAAMA,EAAM;AAAA,QAAA;QACnHwE,EAQEuvC,GAAA;AAAA,UAPQ,OAAOY,EAAA;AAAA,mDAAAA,EAAK,QAAAhF;AAAA,UACpB,OAAM;AAAA,UACL,KAAK3vC,EAAM;AAAA,UACX,KAAKA,EAAM;AAAA,UACX,MAAMA,EAAM;AAAA,UACZ,UAAU;AAAA,UACX,eAAY;AAAA,QAAA;;;;;ACpBlB,SAASs1C,GAAiBr1C,GAA+B;AACvD,SAAOoG,EAAS,MAAMkvC,GAAQt1C,CAAG,CAAC;AACpC;AAGO,SAASu1C,GAAYb,GAAkC;AAC5D,QAAM5gC,IAAQ1N,EAAS;AAAA,IACrB,KAAK,MAAMsuC,EAAM,SAAS,CAAA;AAAA,IAC1B,KAAK,CAAAj1C,MAAS;AACZ,MAAAi1C,EAAM,QAAQc,GAAgB/1C,CAAK;AAAA,IACrC;AAAA,EAAA,CACD;AAED,WAASg2C,EAAIz1C,GAAa01C,IAAW,IAAI;AACvC,UAAMC,IAAM7hC,EAAM,MAAM9T,CAAG;AAC3B,WAAI,OAAO21C,KAAQ,WAAiBA,KAAOD,IACvCE,GAAuBD,CAAG,KAAUE,GAAuBF,GAAK,IAAI,KAAKD;AAAA,EAE/E;AAGA,WAASI,EAAI91C,GAAaP,GAAuB;AAC/C,UAAM2P,IAAO,EAAE,GAAG0E,EAAM,MAAA;AACxB,IAA2BrU,KAAU,QAAQA,MAAU,KACrD,OAAO2P,EAAKpP,CAAG,IAEfoP,EAAKpP,CAAG,IAAIP,GAEdqU,EAAM,QAAQ1E;AAAA,EAChB;AAEA,WAASg/B,EAAMtI,GAAqB;AAClC,IAAAhyB,EAAM,QAAQgyB;AAAA,EAChB;AAEA,SAAO,EAAE,OAAAhyB,GAAO,KAAA2hC,GAAK,KAAAK,GAAK,OAAA1H,EAAA;AAC5B;AAEA,SAAS2H,GAAqBt2C,GAAmD;AAC/E,QAAMu2C,IAA+B,CAAA;AACrC,aAAWC,KAAcC,IAAmB;AAC1C,UAAM7xC,IAAO5E,EAAMw2C,CAAU;AAC7B,IAAI,OAAO5xC,KAAS,YAAYA,EAAK,WACnC2xC,EAAOC,CAAU,IAAI5xC,EAAK,KAAA;AAAA,EAE9B;AACA,SAAO2xC;AACT;AAGO,SAASG,GAAiBzB,GAAkC10C,GAA+B;AAChG,QAAMo2C,IAAcf,GAAiBr1C,CAAG,GAElC8T,IAAQ1N,EAAS,MAAMsuC,EAAM,SAAS,CAAA,CAAE,GAExC2B,IAAejwC,EAAS,MAAMwvC,GAAuB9hC,EAAM,MAAMsiC,EAAY,KAAK,CAAC,CAAC;AAG1F,WAASE,EAAYlnC,GAAgB;AACnC,UAAMsiC,IAAoB,CAAA;AAC1B,WAAO,QAAQtiC,CAAI,EAAE,QAAQ,CAAC,CAACmnC,GAAU92C,CAAK,MAAM;AAClD,UAAI,EAAuBA,KAAU,QAAQA,MAAU,KACvD;AAAA,YAAIm2C,GAAuBn2C,CAAK,GAAG;AACjC,gBAAMu2C,IAASD,GAAqBt2C,CAAK;AACzC,UAAAiyC,EAAQ6E,CAAQ,IAAI,OAAO,KAAKP,CAAM,EAAE,SAAS,IAAIA,IAAS,CAAA;AAC9D;AAAA,QACF;AACA,QAAAtE,EAAQ6E,CAAQ,IAAI92C;AAAA;AAAA,IACtB,CAAC,GACDi1C,EAAM,QAAQhD;AAAA,EAChB;AAEA,WAAS8E,EAAc/2C,GAAkC;AACvD,UAAM2P,IAAO,EAAE,GAAG0E,EAAM,MAAA,GAClBm6B,IAAamI,EAAY;AAC/B,IAAI32C,MAAU,SAAW,OAAO2P,EAAK6+B,CAAU,IAC1C7+B,EAAK6+B,CAAU,IAAIxuC,GACxB62C,EAAYlnC,CAAI;AAAA,EAClB;AAEA,QAAMqnC,IAAYrwC,EAAS;AAAA,IACzB,KAAK,MAAM;AACT,YAAMuvC,IAAM7hC,EAAM,MAAMsiC,EAAY,KAAK;AACzC,aAAI,OAAOT,KAAQ,WAAiBA,IAChC,OAAOA,KAAQ,YAAY,CAAC,OAAO,MAAMA,CAAG,IAAU,OAAOA,CAAG,IAChEC,GAAuBD,CAAG,IAAUE,GAAuBF,GAAK,IAAI,IACjE;AAAA,IACT;AAAA,IACA,KAAK,CAAAl2C,MAAS;AACZ,UAAI42C,EAAa,MAAO;AACxB,YAAMxzB,IAAO,OAAOpjB,KAAU,WAAWA,EAAM,KAAA,IAASA,KAAS,QAAQA,MAAU,KAAK,KAAK,OAAOA,CAAK,EAAE,KAAA;AAC3G,MAAA+2C,EAAc3zB,KAAQ,MAAS;AAAA,IACjC;AAAA,EAAA,CACD;AAED,WAAS6zB,EAAMT,GAAqC;AAClD,WAAOU,GAAe7iC,EAAM,OAAOsiC,EAAY,OAAOH,CAAU;AAAA,EAClE;AAEA,WAASW,EAAMX,GAA6Bx2C,GAAuB;AACjE,UAAMwuC,IAAamI,EAAY,OACzBT,IAAM7hC,EAAM,MAAMm6B,CAAU,GAC5B4I,IAAmCjB,GAAuBD,CAAG,IAAI,EAAE,GAAGA,EAAA,IAAQ,CAAA;AACpF,IAAI,OAAOA,KAAQ,YAAYA,EAAI,UAAU,CAACC,GAAuBD,CAAG,MACtEkB,EAAW,KAAKlB,EAAI,KAAA;AAGtB,UAAMmB,IAAa,OAAOr3C,KAAU,WAAWA,EAAM,KAAA,IAASA,KAAS,OAAO,KAAK,OAAOA,CAAK,EAAE,KAAA;AACjG,IAAKq3C,IACAD,EAAWZ,CAAU,IAAIa,IADb,OAAOD,EAAWZ,CAAU;AAG7C,UAAMD,IAASD,GAAqBc,CAAU;AAC9C,IAAAL,EAAc,OAAO,KAAKR,CAAM,EAAE,SAAS,IAAIA,IAAS,EAAE;AAAA,EAC5D;AAEA,WAASe,IAAmB;AAC1B,UAAMpB,IAAM7hC,EAAM,MAAMsiC,EAAY,KAAK;AACzC,QAAIR,GAAuBD,CAAG,GAAG;AAC/B,UAAIqB,IAAY;AAChB,iBAAWf,KAAc,CAAC,GAAGC,EAAiB,EAAE,WAAW;AACzD,cAAMz2C,IAAQo2C,GAAuBF,GAAKM,CAAU;AACpD,YAAIx2C,GAAO;AACT,UAAAu3C,IAAYv3C;AACZ;AAAA,QACF;AAAA,MACF;AACA,MAAA+2C,EAAcQ,KAAa,MAAS;AACpC;AAAA,IACF;AAEA,UAAMH,IAAmC,CAAA;AACzC,IAAI,OAAOlB,KAAQ,YAAYA,EAAI,WACjCkB,EAAW,KAAKlB,EAAI,KAAA,IAEtBa,EAAc,OAAO,KAAKK,CAAU,EAAE,SAAS,IAAIA,IAAa,EAAE;AAAA,EACpE;AAEA,SAAO,EAAE,cAAAR,GAAc,WAAAI,GAAW,OAAAC,GAAO,OAAAE,GAAO,kBAAAG,EAAA;AAClD;AASO,SAASE,GAAgErQ,GAA2C;AACzH,QAAMmG,IAAWC,GAAA,GACXkK,IAAmBC,GAAA,GAEnBC,IAAgBhxC,EAAS,MAAc;AAC3C,UAAMixC,IAAa/B,GAAQ1O,EAAQ,MAAM;AACzC,YAAQmG,KAAA,gBAAAA,EAAU,mBAAkBsK;AAAA,EACtC,CAAC,GAEKC,IAAalxC,EAAS,MACrB2mC,KAAA,QAAAA,EAAU,OACR,CAACwK,GAAuBxK,EAAS,MAAMqK,EAAc,KAAK,IADrC,EAE7B,GAEKI,IAAgBpxC,EAAS;AAAA,IAC7B,KAAK,MAAMgxC,EAAc,MAAM;AAAA,IAC/B,KAAK,CAAA33C,MAAS;AACZ,MAAI63C,EAAW,UACfF,EAAc,MAAM,UAAU33C;AAAA,IAChC;AAAA,EAAA,CACD,GAEKg4C,IAAcrxC,EAAS;AAAA,IAC3B,KAAK,MAAMgxC,EAAc,MAAM,SAAS;AAAA,IACxC,KAAK,CAAA33C,MAAS;AACZ,MAAI63C,EAAW,UACfF,EAAc,MAAM,QAAQ33C;AAAA,IAC9B;AAAA,EAAA,CACD;AAED,EAAA2J;AAAA,IACEguC;AAAA,IACA,CAAAh2B,MAAW;AACT,YAAMs2B,IAAM,MAAM;AAChB,QAAKt2B,EAAQ,YACXA,EAAQ,UAAU,CAAA,IAEpBwlB,EAAQ,cAAcxlB,CAAO;AAAA,MAC/B;AACA,MAAI2rB,IACFA,EAAS,2BAA2B2K,CAAG,IAEvCA,EAAA;AAAA,IAEJ;AAAA,IACA,EAAE,WAAW,IAAM,MAAM,GAAA;AAAA,EAAK;AAGhC,WAASC,IAA+C;AACtD,WAAOvxC,EAAS;AAAA,MACd,KAAK,MAAMwxC,GAAsBR,EAAc,KAAK;AAAA,MACpD,KAAK,CAAA33C,MAAS;AACZ,YAAI63C,EAAW,MAAO;AACtB,QAAA7F,GAAmB2F,EAAc,KAAK;AACtC,cAAM1F,IAAU8D,GAAgB/1C,CAAK;AACrC,QAAI,OAAO,KAAKiyC,CAAO,EAAE,WAAW,IAClC,OAAO0F,EAAc,MAAM,OAAQ,UAEnCA,EAAc,MAAM,OAAQ,UAAU1F,GAExC0F,EAAc,MAAM,SAASvF,GAAkBuF,EAAc,MAAM,UAAU,CAAA,CAAE,KAAK,CAAA;AAAA,MACtF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,WAASS,IAA6C;AACpD,WAAOzxC,EAAS;AAAA,MACd,KAAK,MAAMgxC,EAAc,MAAM,UAAU,CAAA;AAAA,MACzC,KAAK,CAAA33C,MAAS;AACZ,QAAI63C,EAAW,UACfF,EAAc,MAAM,SAASvF,GAAkBpyC,CAAK,KAAK,CAAA;AAAA,MAC3D;AAAA,IAAA,CACD;AAAA,EACH;AAEA,WAASq4C,IAAoD;AAC3D,WAAO1xC,EAAS;AAAA,MACd,KAAK,MAAMgxC,EAAc,MAAM,UAAU,CAAA;AAAA,MACzC,KAAK,CAAA33C,MAAS;AACZ,QAAI63C,EAAW,UACfF,EAAc,MAAM,SAAS33C;AAAA,MAC/B;AAAA,IAAA,CACD;AAAA,EACH;AAEA,QAAMs4C,IAAe3xC,EAAS,MAAM;AAClC,UAAM4S,IAAO4tB,EAAQ,oBAAoB0O,GAAQ1O,EAAQ,MAAM,EAAE;AACjE,WAAOsQ,EAAiB,gBAAgBl+B,CAAI;AAAA,EAC9C,CAAC;AAED,SAAO;AAAA,IACL,UAAA+zB;AAAA,IACA,eAAAqK;AAAA,IACA,YAAAE;AAAA,IACA,eAAAE;AAAA,IACA,aAAAC;AAAA,IACA,cAAAM;AAAA,IACA,uBAAAJ;AAAA,IACA,iBAAAE;AAAA,IACA,wBAAAC;AAAA,EAAA;AAEJ;;;;;;;;;ACpPA,UAAMpD,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,OAAA14B,GAAO,KAAA2hC,GAAK,KAAAK,GAAK,OAAA1H,EAAA,IAAUmH,GAAYb,CAAK,GAE9CsD,IAAiBz0C,GAAuB,OAAO;AAErD,IAAA6F;AAAA,MACE,MAAM0K,EAAM,MAAM;AAAA,MAClB,CAAArU,MAAS;AACP,QAAAu4C,EAAe,QAAQv4C,IAAQ,UAAU;AAAA,MAC3C;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;AAGpB,UAAMw4C,IAAwB;AAAA,MAC5B,EAAE,OAAO,SAAS,MAAMlQ,IAAkB,OAAO,KAAA;AAAA,MACjD,EAAE,OAAO,SAAS,MAAMgC,IAAiB,OAAO,KAAA;AAAA,IAAK;AAGvD,aAASmO,EAAez4C,GAAwC;AAC9D,UAAIA,KAAS,MACb;AAAA,YAAI,MAAM,QAAQA,CAAK,GAAG;AACxB,gBAAM04C,IAAQ14C,EAAM,CAAC;AACrB,iBAAI04C,KAAS,OAAM,SACgB,OAA5B,OAAOA,KAAU,WAAkBA,EAAM,QAAgBA,CAAX;AAAA,QACvD;AACA,eAAsC,OAAlC,OAAO14C,KAAU,WAAwBA,EAAM,QACrCA,CAD0C;AAAA;AAAA,IAE1D;AAEA,aAAS24C,EAAqB34C,GAAoB;AAChD,YAAMuZ,IAAOk/B,EAAez4C,CAAK;AACjC,UAAI,EAAAuZ,MAAS,WAAWA,MAAS,YAC7Bg/B,EAAe,UAAUh/B,GAI7B;AAAA,YAFAg/B,EAAe,QAAQh/B,GAEnBA,MAAS,SAAS;AACpB,gBAAM5J,IAAO,EAAE,GAAG0E,EAAM,MAAA;AACxB,iBAAO1E,EAAK,iBACZ,OAAOA,EAAK,gBACZ,OAAOA,EAAK,kBACZ,OAAOA,EAAK,oBACZg/B,EAAMh/B,CAAI;AACV;AAAA,QACF;AAEA,QAAAg/B,EAAM;AAAA,UACJ,GAAGt6B,EAAM;AAAA,UACT,iBAAiB2hC,EAAI,iBAAiB,KAAK;AAAA,UAC3C,gBAAgBA,EAAI,gBAAgB,KAAK;AAAA,UACzC,kBAAkBA,EAAI,kBAAkB,KAAK;AAAA,QAAA,CAC9C;AAAA;AAAA,IACH;AAEA,UAAM4C,IAAkBjyC,EAAS;AAAA,MAC/B,KAAK,MAAMqvC,EAAI,iBAAiB;AAAA,MAChC,KAAK,CAAAh2C,MAASq2C,EAAI,mBAAmBr2C,CAAK;AAAA,IAAA,CAC3C,GAEK64C,IAAkBlyC,EAAS;AAAA,MAC/B,KAAK,MAAM;AACT,cAAM3G,IAAQg2C,EAAI,iBAAiB;AACnC,YAAI,CAACh2C,EAAO,QAAO;AACnB,cAAM4yC,IAAQ5yC,EAAM,MAAM,0BAA0B;AACpD,gBAAO4yC,KAAA,gBAAAA,EAAQ,OAAM;AAAA,MACvB;AAAA,MACA,KAAK,CAAA5yC,MAAS;AACZ,cAAM84C,IAAU94C,KAAA,gBAAAA,EAAO;AACvB,YAAI,CAAC84C,GAAS;AACZ,UAAAzC,EAAI,mBAAmB,SAAS;AAChC;AAAA,QACF;AACA,QAAA1H,EAAM;AAAA,UACJ,GAAGt6B,EAAM;AAAA,UACT,iBAAiB,QAAQykC,CAAO;AAAA,UAChC,gBAAgB9C,EAAI,gBAAgB,KAAK;AAAA,UACzC,kBAAkBA,EAAI,kBAAkB,KAAK;AAAA,QAAA,CAC9C;AAAA,MACH;AAAA,IAAA,CACD,GAEK+C,IAAoBpyC,EAAS;AAAA,MACjC,KAAK,MAAM;AACT,cAAMyZ,IAAQq0B,GAAWuB,EAAI,iBAAiB,KAAK,wBAAwB;AAC3E,eAAO,KAAK,MAAM51B,EAAM,IAAI,GAAG;AAAA,MACjC;AAAA,MACA,KAAK,CAAApgB,MAAS;AACZ,cAAMoc,IAAU48B,GAAWh5C,CAAK,GAC1B2hB,IAAU8yB,GAAWuB,EAAI,iBAAiB,KAAK,oBAAoB;AACzE,QAAAr0B,EAAQ,IAAIvF,IAAU,KACtBi6B,EAAI,mBAAmBzB,GAAWjzB,CAAO,CAAC;AAAA,MAC5C;AAAA,IAAA,CACD;AAED,aAASs3B,EAAqBj5C,GAAoB;AAChD,YAAM2P,IAAO8oC,EAAez4C,CAAK;AACjC,MAAAq2C,EAAI,kBAAkB1mC,KAAe,MAAgB;AAAA,IACvD;AAEA,aAASupC,EAAuBl5C,GAAoB;AAClD,YAAM2P,IAAO8oC,EAAez4C,CAAK;AACjC,UAAI2P,KAAQ,MAAM;AAChB,QAAA0mC,EAAI,oBAAoB,MAAS;AACjC;AAAA,MACF;AACA,MAAAA,EAAI,oBAAoB1mC,CAAI,GACxBA,MAAS,gBAAgBqmC,EAAI,gBAAgB,KAAK,aAAa,WACjEK,EAAI,kBAAkB,MAAM;AAAA,IAEhC;;;kBAIE/F,EA6DS0D,GAAA,EA7DD,QAAO,cAAU;AAAA,mBACvB,MAQc;AAAA,UARdlvC,EAQcovC,GAAA,EARD,OAAM,UAAM;AAAA,uBACvB,MAMgB;AAAA,cANhBpvC,EAMgBq0C,GAAA;AAAA,gBANA,OAAOZ,EAAA;AAAA,gBAAiB,kBAAcI;AAAA,cAAA;2BACpC,MAAqC;AAAA,wBAArD/I,EAIiBrxB,IAAA,MAAAsxB,GAJc2I,GAAqB,CAA7B5zC,MAAvBE,EAIiBs0C,GAAA;AAAA,oBAJsC,KAAKx0C,EAAK;AAAA,oBAAQ,OAAOA,EAAK;AAAA,kBAAA;+BACnF,MAEY;AAAA,sBAFZE,EAEYu0C,GAAA;AAAA,wBAFA,OAAOz0C,EAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,EAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;;UAMjB2zC,EAAA,UAAc,gBAA9B3I,EAOWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YANTzZ,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,yBACtB,MAA6C;AAAA,gBAA7CpvC,EAA6Cy0C,IAAA;AAAA,8BAAnBX,EAAA;AAAA,gEAAAA,EAAe,QAAA3I;AAAA,gBAAA;;;;YAE3CnrC,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,yBACtB,MAAiD;AAAA,gBAAjDpvC,EAAiD00C,IAAA;AAAA,8BAArBT,EAAA;AAAA,gEAAAA,EAAiB,QAAA9I;AAAA,gBAAA;;;;0BAIjDL,EAwCWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YAvCTzZ,EAKcovC,GAAA,EALD,OAAM,UAAM;AAAA,yBACvB,MAGM;AAAA,gBAHNzE,EAGM,OAHNC,IAGM;AAAA,kBAFJ5qC,EAA+F20C,IAAA;AAAA,gCAAzEZ,EAAA;AAAA,kEAAAA,EAAe,QAAA5I;AAAA,oBAAE,QAAO;AAAA,oBAAW,MAAM;AAAA,oBAAI,aAAW;AAAA,oBAAG,MAAK;AAAA,kBAAA;kBACtFnrC,EAA6GkwC,GAAA;AAAA,oBAA5F,OAAO6D,EAAA;AAAA,6DAAAA,EAAe,QAAA5I;AAAA,oBAAE,OAAM;AAAA,oBAAiB,aAAY;AAAA,oBAAmB,eAAA;AAAA,kBAAA;;;;;YAGnGnrC,EAgCQgrC,GAAA,EAhCA,QAAQ,MAAE;AAAA,yBAChB,MAcQ;AAAA,gBAdRhrC,EAcQirC,GAAA,EAdA,MAAM,MAAE;AAAA,6BACd,MAYc;AAAA,oBAZdjrC,EAYcovC,GAAA,EAZD,OAAM,QAAI;AAAA,iCACrB,MAUE;AAAA,wBAVFpvC,EAUEkrC,GAAA;AAAA,0BATC,OAAOG,EAAA6F,CAAA,EAAG,gBAAA,KAAA;AAAA,0BACX,eAAA;AAAA,0BACA,aAAY;AAAA,0BACX,SAAS;AAAA;;;;0BAKT,kBAAciD;AAAA,wBAAA;;;;;;;gBAIrBn0C,EAeQirC,GAAA,EAfA,MAAM,MAAE;AAAA,6BACd,MAac;AAAA,oBAbdjrC,EAacovC,GAAA,EAbD,OAAM,QAAI;AAAA,iCACrB,MAWE;AAAA,wBAXFpvC,EAWEkrC,GAAA;AAAA,0BAVC,OAAOG,EAAA6F,CAAA,EAAG,kBAAA,KAAA;AAAA,0BACX,eAAA;AAAA,0BACA,aAAY;AAAA,0BACX,SAAS;AAAA;;;;;0BAMT,kBAAckD;AAAA,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnJ7B,UAAMQ,IAAsB;AAAA,MAC1B,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO,CAAC,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,QAClD,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,MAEd,KAAK;AAAA,QACH,WAAW;AAAA,QACX,OAAO,CAAC,MAAM,OAAO,IAAI;AAAA,QACzB,aAAa;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,MAEd,UAAU;AAAA,QACR,WAAW;AAAA,QACX,OAAO,CAAC,MAAM,MAAM,KAAK;AAAA,QACzB,YAAY;AAAA,MAAA;AAAA,MAEd,YAAY;AAAA,QACV,WAAW;AAAA,QACX,OAAO,CAAC,MAAM,MAAM,OAAO,GAAG;AAAA,QAC9B,eAAe;AAAA,QACf,YAAY;AAAA,MAAA;AAAA,MAEd,cAAc;AAAA,QACZ,WAAW;AAAA,QACX,OAAO,CAAC,MAAM,GAAG;AAAA,QACjB,YAAY;AAAA,MAAA;AAAA,MAEd,aAAa;AAAA,QACX,WAAW;AAAA,QACX,OAAO,CAAC,IAAI;AAAA,QACZ,YAAY;AAAA,MAAA;AAAA,MAEd,aAAa;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,aAAa;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,MAEd,mBAAmB;AAAA,QACjB,WAAW;AAAA,QACX,OAAO,CAAC,MAAM,KAAK,MAAM,KAAK;AAAA,QAC9B,aAAa;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,MAEd,gBAAgB;AAAA,QACd,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO,CAAC,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,QAClD,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,MAEd,OAAO;AAAA,QACL,WAAW;AAAA,QACX,UAAU;AAAA,QACV,aAAa;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,MAEd,eAAe;AAAA,QACb,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA,MAAA;AAAA,MAEd,UAAU;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,IACd;AAOF,aAASC,EAAc3L,GAAuD;AAC5E,YAAM4L,IAAkCF,EAAoB1L,CAAM,GAC5D6L,IAAYD,EAAa,aAAa,UACtCE,IAAQF,EAAa,OACrBG,KAAWH,EAAa,aAAaC,MAAc,YAAY,CAACD,EAAa,eAAcE,KAAA,gBAAAA,EAAO,WAAU,KAAK;AAEvH,aAAO;AAAA,QACL,WAAAD;AAAA,QACA,UAAAE;AAAA,QACA,OAAAD;AAAA,QACA,aAAaF,EAAa,gBAAeE,KAAA,gBAAAA,EAAQ,OAAM;AAAA,QACvD,WAAWF,EAAa;AAAA,QACxB,WAAWA,EAAa,aAAa;AAAA,QACrC,eAAeA,EAAa,iBAAiB;AAAA,QAC7C,aAAaA,EAAa,gBAAgBC,MAAc,SAAS,KAAK;AAAA,QACtE,YAAYD,EAAa,cAAc;AAAA,QACvC,QAAQA,EAAa;AAAA,MAAA;AAAA,IAEzB;AAEA,aAASI,EAAoBC,GAAwB;AACnD,aAAIA,KAAS,OAAa,KACtB,OAAOA,KAAU,WAAiBA,IAClC,OAAOA,KAAU,YAAY,CAAC,OAAO,MAAMA,CAAK,IAAU,OAAOA,CAAK,IACnE;AAAA,IACT;AAEA,aAASC,EAAgBD,GAAgB9S,GAAgF;AACvH,YAAMkQ,IAAa2C,EAAoBC,CAAK;AAC5C,UAAI,CAAC5C,EAAW;AACd,eAAO,EAAE,OAAO,MAAM,MAAMlQ,EAAQ,aAAa,KAAQ,KAAMA,EAAQ,eAAe,MAAO,KAAK,GAAA;AAEpG,UAAIkQ,EAAW,KAAA,MAAW;AACxB,eAAO,EAAE,OAAO,MAAM,MAAM,QAAQ,KAAK,OAAA;AAG3C,YAAMyB,IAAUzB,EAAW,KAAA;AAC3B,UAAIlQ,EAAQ,aAAa,MAASA,EAAQ,eAAe;AACvD,cAAMgT,KAAgBrB,EAAQ,MAAM,qBAAqB;AACzD,YAAIqB;AACF,iBAAO,EAAE,OAAO,OAAOA,GAAc,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKrB,EAAA;AAAA,MAE7D;AAEA,UAAI3R,EAAQ,aAAa,IAAO;AAC9B,cAAMiT,KAAgBtB,EAAQ,MAAM,yCAAyC;AAC7E,YAAIsB;AACF,iBAAO,EAAE,OAAO,OAAOA,GAAc,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKA,GAAc,CAAC,EAAA;AAAA,MAE5E;AAEA,YAAMvG,KAASwG,GAAUvB,CAAO;AAChC,aAAIjF,GAAO,QAAQiF,KAAWjF,GAAO,SAAS,QAAQA,GAAO,SAAS,QAAQ,CAACiF,EAAQ,MAAM,yCAAyC,IAC7H,EAAE,OAAO,MAAM,MAAM3R,EAAQ,aAAa,KAAQ,KAAMA,EAAQ,eAAe,MAAO,KAAK2R,EAAA,IAE7FjF;AAAA,IACT;AAEA,aAASyG,EAAiBt6C,GAAkC4R,GAAcu1B,IAAmC,CAAA,GAAI;AAC/G,aAAIv1B,MAAS,SAAe,SACxB5R,KAAU,QAA+B,OAAO,MAAMA,CAAK,IAAU,KAErEmnC,EAAQ,SACHA,EAAQ,OAAOnnC,GAAO4R,CAAI,IAG/Bu1B,EAAQ,aAAa,KAChB,OAAOnnC,CAAK,IAGjBmnC,EAAQ,YACH,GAAGnnC,CAAK,GAAGmnC,EAAQ,SAAS,KAGjCv1B,MAAS,KACJ,OAAO5R,CAAK,IAGdu6C,GAAWv6C,GAAO4R,CAAI;AAAA,IAC/B;AAEA,UAAMtR,IAAQysC,GAORyN,IAAYnY,GAAM/hC,GAAO,QAAQ,GACjCm6C,IAAS9zC,EAAS,MAAMgzC,EAAca,EAAU,KAAK,CAAC,GACtDE,IAAiB/zC,EAAS,MAAMrG,EAAM,UAAUm6C,EAAO,MAAM,MAAM;AAEzE,aAASE,EAAkB36C,GAAkC4R,GAAc;AACzE,YAAMgpC,IAAMH,EAAO;AACnB,aAAOH,EAAiBt6C,GAAO4R,GAAM;AAAA,QACnC,UAAUgpC,EAAI;AAAA,QACd,WAAWA,EAAI;AAAA,QACf,QAAQF,EAAe;AAAA,MAAA,CACxB;AAAA,IACH;AAEA,UAAMG,IAAiBl0C,EAAS,MAAM;;AACpC,YAAMi0C,IAAMH,EAAO;AAGnB,aAFIG,EAAI,cAAc,YAClBA,EAAI,aACJA,EAAI,aAAa,KAAc,QAC3B53C,IAAA43C,EAAI,UAAJ,gBAAA53C,EAAW,WAAU,KAAK,KAAK43C,EAAI,aAAa;AAAA,IAC1D,CAAC,GAEKE,IAAiBn0C,EAAS,MAAO8zC,EAAO,MAAM,cAAc,YAAY,CAACA,EAAO,MAAM,WAAWA,EAAO,MAAM,YAAY,MAAU,GAEpIM,IAAcp0C,EAAS,MAAM;AACjC,YAAMi0C,IAAMH,EAAO,OACbX,IAAQ,CAAC,GAAIc,EAAI,SAAS,CAAA,CAAG;AACnC,aAAIA,EAAI,aAAa,CAACd,EAAM,SAAS,MAAM,KAAGA,EAAM,KAAK,MAAM,GAC3Dc,EAAI,iBAAiB,CAACd,EAAM,SAAS,EAAE,KAAGA,EAAM,QAAQ,EAAE,GACvDA;AAAA,IACT,CAAC,GAEKkB,IAAar0C,EAAS,OAAO;AAAA,MACjC,OAAO;AAAA,MACP,aAAa8zC,EAAO,MAAM;AAAA,MAC1B,UAAUn6C,EAAM;AAAA,MAChB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,GAAIw6C,EAAe,QAAQ,EAAE,YAAYA,EAAe,MAAA,IAAU,CAAA;AAAA,IAAC,EACnE,GAEI7F,IAAQC,GAA8BnI,GAAA,YAAwB,GAE9DkO,IAAiBt0C,EAAS,MAAMrG,EAAM,YAAY,QAAQA,EAAM,aAAa,EAAE,GAE/E46C,IAAav0C,EAAS;AAAA,MAC1B,KAAK,MAAOs0C,EAAe,SAAS,OAAOhG,EAAM,SAAU,YAAYA,EAAM,SAAS,OAAOA,EAAM,QAAQ,CAAA;AAAA,MAC3G,KAAK,CAAAj1C,MAAS;AACZ,QAAAi1C,EAAM,QAAQj1C;AAAA,MAChB;AAAA,IAAA,CACD,GAEKm7C,IAAoBx0C,EAAS,MAAMs0C,EAAe,SAASR,EAAO,MAAM,eAAe,EAAI,GAE3F,EAAE,cAAA7D,GAAc,WAAAI,GAAW,OAAAC,GAAO,OAAAE,GAAO,kBAAAG,MAAqBZ;AAAA,MAClEwE;AAAA,MACAv0C,EAAS,MAAMrG,EAAM,YAAY,EAAE;AAAA,IAAA,GAG/B86C,IAAct3C,GAAI,EAAK;AAE7B,aAASu3C,EAAiBC,GAAwBC,GAAmC;AACnF,YAAM1H,IAASltC,EAAS,MAAM;AAC5B,cAAM60C,KAAaxB,EAAoBsB,GAAU;AACjD,eAAIb,EAAO,MAAM,cAAc,SACtB,EAAE,OAAO,MAAM,MAAM,IAAI,KAAKe,GAAA,IAEhCtB,EAAgBsB,IAAY;AAAA,UACjC,eAAef,EAAO,MAAM;AAAA,UAC5B,aAAaA,EAAO,MAAM;AAAA,UAC1B,UAAUA,EAAO,MAAM;AAAA,QAAA,CACxB;AAAA,MACH,CAAC,GAEKgB,IAAS90C,EAAS,MAAMktC,EAAO,MAAM,SAAS,MAAM,GAEpDgB,KAAYluC,EAAS;AAAA,QACzB,KAAK,MAAMqzC,EAAoBsB,GAAU;AAAA,QACzC,KAAK,CAAAt7C,OAASu7C,EAASvB,EAAoBh6C,EAAK,EAAE,MAAM;AAAA,MAAA,CACzD,GAEK07C,KAAe/0C,EAAS;AAAA,QAC5B,KAAK,MAAMktC,EAAO,MAAM,SAAS;AAAA,QACjC,KAAK,CAAA7zC,OAAS;AACZ,cAAIA,MAAU,MAA6B;AACzC,YAAAu7C,EAAS,EAAE;AACX;AAAA,UACF;AACA,gBAAMX,KAAMH,EAAO,OACb7oC,KAAOgpC,GAAI,aAAa,KAAQ,KAAK/G,EAAO,MAAM,SAAS,SAAU+G,GAAI,eAAe,OAAQ/G,EAAO,MAAM,QAAQ+G,GAAI,eAAe;AAC9I,UAAAW,EAASZ,EAAkB36C,IAAO4R,EAAI,CAAC;AAAA,QACzC;AAAA,MAAA,CACD,GAEK+pC,KAAYh1C,EAAS;AAAA,QACzB,KAAK,MAAM;AACT,gBAAMi0C,KAAMH,EAAO;AACnB,iBAAIG,GAAI,iBAAiB/G,EAAO,MAAM,SAAS,KAAW,KACnDA,EAAO,MAAM,QAAQ+G,GAAI,eAAe;AAAA,QACjD;AAAA,QACA,KAAK,CAAAhpC,OAAQ;AACX,cAAIA,OAAS,QAAQ;AACnB,YAAA2pC,EAAS,MAAM;AACf;AAAA,UACF;AACA,UAAAA,EAASZ,EAAkB9G,EAAO,MAAM,OAAOjiC,EAAI,CAAC;AAAA,QACtD;AAAA,MAAA,CACD;AAED,aAAO,EAAE,QAAAiiC,GAAQ,QAAA4H,GAAQ,WAAA5G,IAAW,cAAA6G,IAAc,WAAAC,GAAA;AAAA,IACpD;AAEA,UAAMC,IAAej1C,EAAS;AAAA,MAC5B,KAAK,MACEs0C,EAAe,QAChBrE,EAAa,QAAcK,EAAM,IAAI,IAClCD,EAAU,QAFiB,OAAO/B,EAAM,SAAU,WAAWA,EAAM,QAAQ;AAAA,MAIpF,KAAK,CAAAj1C,MAAS;AACZ,YAAI,CAACi7C,EAAe,OAAO;AACzB,UAAAhG,EAAM,QAAQj1C;AACd;AAAA,QACF;AACA,YAAI42C,EAAa,OAAO;AACtB,UAAAO,EAAM,MAAMn3C,CAAK;AACjB;AAAA,QACF;AACA,QAAAg3C,EAAU,QAAQh3C;AAAA,MACpB;AAAA,IAAA,CACD,GAEK67C,IAAiBR;AAAA,MACrB,MAAMO,EAAa;AAAA,MACnB,CAAAhkC,MAAK;AACH,QAAAgkC,EAAa,QAAQhkC;AAAA,MACvB;AAAA,IAAA,GAGIkkC,IAAgBD,EAAe,QAC/BE,IAAsBF,EAAe,cACrCG,IAAmBH,EAAe,WAClCI,IAAmBJ,EAAe,WAElCK,IAAiBC;AAAA,MACrB1F,GAAkB,IAAI,CAAAD,OAAe;AAAA,QACnC,YAAAA;AAAA,QACA,OAAO4F,GAAsB5F,CAAU,EAAE;AAAA,QACzC,GAAG6E;AAAA,UACD,MAAMpE,EAAMT,CAAU;AAAA,UACtB,CAAA5+B,MAAKu/B,EAAMX,GAAY5+B,CAAC;AAAA,QAAA;AAAA,MAC1B,EACA;AAAA,IAAA;AAGJ,aAASykC,EAA4BC,GAA0B;AAC7D,aAAOA,EAAY,QAAQ,sBAAsB,KAAK,SAAS;AAAA,IACjE;AAEA,aAASC,EAAkB3zC,GAAe;AACxC,MAAAwyC,EAAY,QAAQxyC,GAChBA,KAAQ,CAACguC,EAAa,SAAOU,EAAA;AAAA,IACnC;AAEA,aAASkF,IAAoB;AAC3B,MAAI5F,EAAa,SAAOU,EAAA,GACxB8D,EAAY,QAAQ;AAAA,IACtB;AAEA,aAASqB,EAAU7qC,GAAc;AAC/B,aAAOA,MAAS,KAAK,MAAMA;AAAA,IAC7B;;;AAIE,aAAA0/B,EAAA,GAAA1B,EAiCM,OAjCNF,IAiCM;AAAA,QAhCW+K,EAAA,MAAO,cAAS,eAA/BnK,EAA6J0E,GAAA;AAAA;UAAzG,OAAO7E,EAAA8L,CAAA;AAAA,4DAAAA,EAAgB,QAAAhM,KAAA;AAAA,UAAE,OAAM;AAAA,UAAkB,aAAawK,EAAA,MAAO;AAAA,UAAc,UAAU1N,EAAA;AAAA,QAAA,qDAEvH8N,EAAA,cAA1BvK,EAIgBoM,IAAA;AAAA;UAJ0B,SAAA;AAAA,UAAQ,OAAM;AAAA,QAAA;qBACtD,MAAgG;AAAA,YAAzEvM,EAAA2L,CAAA,UACvBxL,EAA+D0E,GAAA;AAAA;cAA/C,OAAM;AAAA,cAAiB,UAAA;AAAA,cAAS,OAAM;AAAA,YAAA,OADtD1D,KAAAhB,EAAgG+D,GAAhGsI,GAAgG;AAAA;cAAlD,OAAOxM,EAAA4L,CAAA;AAAA,gEAAAA,EAAmB,QAAA9L,KAAA;AAAA,YAAA,GAAU+K,EAAA,KAAU,GAAA,MAAA,IAAA,CAAA,OAAA,CAAA;AAAA,YAE5Fl2C,EAA0PkrC,IAAA;AAAA,cAAxO,OAAOG,EAAA6L,CAAA;AAAA,gEAAAA,EAAgB,QAAA/L,KAAA;AAAA,cAAE,cAAA;AAAA,cAAW,OAAM;AAAA,cAAuC,UAAUlD,EAAA;AAAA,cAAW,uBAAqBsP;AAAA,cAA8B,SAAStB,EAAA,MAAY,IAAI,CAAAn2C,QAAI,EAAA,OAAc63C,EAAU73C,EAAI,GAAA,OAAUA,GAAA,EAAI;AAAA,YAAA;;;oBAGpPgrC,EAGWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,UAFc4xB,EAAA2L,CAAA,UACvBxL,EAA+D0E,GAAA;AAAA;YAA/C,OAAM;AAAA,YAAiB,UAAA;AAAA,YAAS,OAAM;AAAA,UAAA,OADtD1D,KAAAhB,EAAuH+D,GAAvHsI,GAAuH;AAAA;YAAzE,OAAOxM,EAAA4L,CAAA;AAAA,8DAAAA,EAAmB,QAAA9L,KAAA;AAAA,UAAA,GAAU+K,EAAA,OAAU,EAAE,OAAM,kBAAgB,GAAA,MAAA,IAAA,CAAA,OAAA,CAAA;AAAA;QAIrGC,EAAA,SAAkBE,EAAA,cAAnC7K,EAkBYsM,IAAA;AAAA;UAlBkD,MAAMxB,EAAA;AAAA,mDAAAA,EAAW,QAAAnL;AAAA,UAAE,SAAQ;AAAA,UAAQ,WAAU;AAAA,UAAe,cAAasM;AAAA,QAAA;UAC1H,SAAM,MAAK,CAAA,GAAA5L,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,eAAL,SAAK,EAAA;AAAA,UAAA;UACX,WACT,MAWM;AAAA,YAXNlB,EAWM,OAXNE,IAWM;AAAA,sBAVJC,EAQMrxB,IAAA,MAAAsxB,GARaqM,GAAc,CAArBW,aAAZjN,EAQM,OAAA;AAAA,gBAR8B,KAAKiN,GAAI;AAAA,gBAAY,OAAM;AAAA,cAAA;gBAC7DpN,EAA2F,QAA3Fe,IAA2FC,GAAnBoM,GAAI,KAAK,GAAA,CAAA;AAAA,gBAC5DhC,EAAA,cAArBvK,EAIgBoM,IAAA;AAAA;kBAJqB,SAAA;AAAA,kBAAQ,OAAM;AAAA,gBAAA;6BACjD,MAA0F;AAAA,oBAAnEG,GAAI,eAC3BvM,EAA+D0E,GAAA;AAAA;sBAA/C,OAAM;AAAA,sBAAiB,UAAA;AAAA,sBAAS,OAAM;AAAA,oBAAA,OADtD1D,KAAAhB,EAA0F+D,GAA1FsI,GAA0F;AAAA;sBAA/C,OAAOE,GAAI;AAAA,sBAAJ,kBAAA,CAAA5M,OAAA4M,GAAI,eAAY5M;AAAA,oBAAA,oBAAU+K,EAAA,KAAU,GAAA,MAAA,IAAA,CAAA,SAAA,gBAAA,CAAA;AAAA,oBAEtFl2C,EAAuPkrC,IAAA;AAAA,sBAArO,OAAO6M,GAAI;AAAA,sBAAJ,kBAAA,CAAA5M,OAAA4M,GAAI,YAAS5M;AAAA,sBAAE,cAAA;AAAA,sBAAW,OAAM;AAAA,sBAAuC,UAAUlD,EAAA;AAAA,sBAAW,uBAAqBsP;AAAA,sBAA8B,SAAStB,EAAA,MAAY,IAAI,CAAAn2C,QAAI,EAAA,OAAc63C,EAAU73C,EAAI,GAAA,OAAUA,GAAA,EAAI;AAAA,oBAAA;;;6BAEjP0sC,KAAAhB,EAAqG+D,GAArGsI,GAAqG;AAAA;kBAAtE,OAAOE,GAAI;AAAA,kBAAJ,kBAAA,CAAA5M,OAAA4M,GAAI,eAAY5M;AAAA,gBAAA,oBAAU+K,EAAA,OAAU,EAAE,OAAM,iBAAA,CAAgB,GAAA,MAAA,IAAA,CAAA,SAAA,gBAAA,CAAA;AAAA,cAAA;cAEpF7K,EAAAyG,CAAA,UAAhBtG,EAAgIJ,IAAA;AAAA;gBAAlG,MAAK;AAAA,gBAAO,MAAK;AAAA,gBAAQ,OAAM;AAAA,gBAA0B,SAAOsM;AAAA,cAAA;2BAAmB,MAAI,CAAA,GAAA7L,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,qBAAJ,QAAI,EAAA;AAAA,gBAAA;;;;;qBAIzH,MAAgG;AAAA,YAAhG7rC,EAAgGqrC,EAAA2M,EAAA,GAAA;AAAA,cAAhF,OAAKC,GAAA,CAAC,iBAAwB5M,EAAAyG,CAAA,IAAY,iBAAA,cAAA,CAAA;AAAA,YAAA;;;;;;;0KC3Q1DoG,KAAuB;;;;;;;;AA9H7B,UAAM/H,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,OAAA14B,GAAO,KAAA2hC,GAAK,KAAAK,GAAK,OAAA1H,EAAA,IAAUmH,GAAYb,CAAK,GAE9CgI,IAAan5C,GAA8B,SAAS,GACpDo5C,IAAmBp5C,GAAgB,KAAK,GACxCq5C,IAAar5C,GAAuB,OAAO,GAE3Cs5C,IAAoB;AAAA,MACxB,EAAE,OAAO,WAAW,MAAMtU,IAAgB,OAAO,OAAA;AAAA,MACjD,EAAE,OAAO,cAAc,MAAMQ,IAAgB,OAAO,OAAA;AAAA,IAAO,GAGvD+T,IAAoB;AAAA,MACxB,EAAE,OAAO,SAAS,OAAO,MAAA;AAAA,MACzB,EAAE,OAAO,SAAS,OAAO,MAAA;AAAA,IAAM;AAGjC,aAASC,EAAgBC,GAAoB;AAC3C,UAAIA,EAAS,uBAAuBA,EAAS,wBAAwBA,EAAS,2BAA2BA,EAAS;AAChH,eAAO;AAET,YAAMv/B,IAAek5B,GAAeqG,GAAU,cAAc;AAC5D,UAAI,CAACv/B,EAAa,KAAA,EAAQ,QAAO;AACjC,YAAM,CAACw/B,GAASC,GAAUC,GAAaC,CAAU,IAAIC,GAAe5/B,CAAY;AAChF,aAAOw/B,MAAYC,KAAYA,MAAaC,KAAeA,MAAgBC;AAAA,IAC7E;AAEA,IAAAh0C;AAAA,MACE,MAAM,CAAC0K,EAAM,MAAM,cAAcA,EAAM,MAAM,qBAAqBA,EAAM,MAAM,sBAAsBA,EAAM,MAAM,yBAAyBA,EAAM,MAAM,sBAAsB;AAAA,MAC3K,MAAM;AACJ,QAAKipC,EAAgBjpC,EAAM,KAAK,MAC9B4oC,EAAW,QAAQ;AAAA,MAEvB;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;AAGpB,aAASxE,EAAez4C,GAAwC;AAC9D,UAAIA,KAAS,MACb;AAAA,YAAI,MAAM,QAAQA,CAAK,GAAG;AACxB,gBAAM04C,IAAQ14C,EAAM,CAAC;AACrB,iBAAI04C,KAAS,OAAM,SACgB,OAA5B,OAAOA,KAAU,WAAkBA,EAAM,QAAgBA,CAAX;AAAA,QACvD;AACA,eAAsC,OAAlC,OAAO14C,KAAU,WAAwBA,EAAM,QACrCA,CAD0C;AAAA;AAAA,IAE1D;AAEA,aAAS69C,EAAiB79C,GAAoB;AAC5C,YAAM89C,IAAOrF,EAAez4C,CAAK;AAEjC,UADI89C,MAAS,aAAaA,MAAS,gBAC/Bb,EAAW,UAAUa,EAAM;AAE/B,MAAAb,EAAW,QAAQa;AACnB,YAAMC,IAAUC,GAAgB3pC,EAAM,KAAK;AAE3C,UAAIypC,MAAS,WAAW;AACtB,cAAM99C,IAAQ+9C,EAAQ,WAAWA,EAAQ,YAAYA,EAAQ,eAAeA,EAAQ;AACpF,QAAApP;AAAA,UACEsP;AAAA,YACE5pC,EAAM;AAAA,YACN;AAAA,cACE,SAASrU;AAAAA,cACT,UAAUA;AAAAA,cACV,aAAaA;AAAAA,cACb,YAAYA;AAAAA,YAAA;AAAA,YAEd;AAAA,UAAA;AAAA,QACF;AAEF;AAAA,MACF;AAEA,MAAA2uC,EAAMsP,GAAgB5pC,EAAM,OAAO0pC,GAAS,EAAK,CAAC;AAAA,IACpD;AAEA,UAAMG,IAAgBv3C,EAAS,MAAMq3C,GAAgB3pC,EAAM,KAAK,CAAC,GAE3D8pC,IAAe,CAAC59C,MACpBoG,EAAS;AAAA,MACP,KAAK,MAAMu3C,EAAc,MAAM39C,CAAG;AAAA,MAClC,KAAK,CAAAP,MAAS;AACZ,QAAA2uC;AAAA,UACEsP;AAAA,YACE5pC,EAAM;AAAA,YACN;AAAA,cACE,GAAG6pC,EAAc;AAAA,cACjB,CAAC39C,CAAG,GAAGP;AAAA,YAAA;AAAA,YAET;AAAA,UAAA;AAAA,QACF;AAAA,MAEJ;AAAA,IAAA,CACD,GAEGo+C,IAAgBD,EAAa,SAAS,GACtCE,IAAiBF,EAAa,UAAU,GACxCG,IAAoBH,EAAa,aAAa,GAC9CI,IAAmBJ,EAAa,YAAY,GAE5CK,IAAkG;AAAA,MACtG,EAAE,OAAO,OAAO,MAAMtV,IAAmB,OAAO,KAAK,WAAW,0BAAA;AAAA,MAChE,EAAE,OAAO,SAAS,MAAMF,IAAqB,OAAO,KAAK,WAAW,0BAAA;AAAA,MACpE,EAAE,OAAO,UAAU,MAAMR,IAAsB,OAAO,KAAK,WAAW,0BAAA;AAAA,MACtE,EAAE,OAAO,QAAQ,MAAME,IAAoB,OAAO,KAAK,WAAW,0BAAA;AAAA,MAClE,EAAE,OAAO,OAAO,MAAMI,IAAgB,OAAO,MAAM,WAAW,0BAAA;AAAA,IAA0B,GAGpF2V,IAAiB93C,EAAS,MAC1Bu2C,EAAiB,UAAU,QAAc,gBAEtC,SADMA,EAAiB,MAAM,OAAO,CAAC,EAAE,YAAA,IAAgBA,EAAiB,MAAM,MAAM,CAAC,CACxE,OACrB,GAEKwB,IAAc/3C,EAAS;AAAA,MAC3B,KAAK,MAAMg4C,GAAetqC,EAAM,OAAO6oC,EAAiB,OAAO,OAAO,KAAK;AAAA,MAC3E,KAAK,CAAAl9C,MAAS2uC,EAAMiQ,GAAevqC,EAAM,OAAO6oC,EAAiB,OAAO,SAASl9C,KAAS,EAAE,CAAC;AAAA,IAAA,CAC9F,GAEK6+C,IAAcl4C,EAAS;AAAA,MAC3B,KAAK,MAAMg4C,GAAetqC,EAAM,OAAO6oC,EAAiB,OAAO,OAAO;AAAA,MACtE,KAAK,CAAAl9C,MAAS2uC,EAAMiQ,GAAevqC,EAAM,OAAO6oC,EAAiB,OAAO,SAASl9C,CAAK,CAAC;AAAA,IAAA,CACxF,GAEK8+C,IAAen4C,EAAS,MAAMo4C,GAAY/I,EAAI,WAAW,CAAC,CAAC;AAIjE,aAASgJ,EAAaC,GAAqD;AACzE,YAAMtvC,IAAO,EAAE,GAAGmvC,EAAa,OAAO,GAAGG,EAAA,GACnCC,IAAYC,GAAaxvC,CAAI;AACnC,MAAA0mC,EAAI,aAAa6I,MAAclC,KAAuB,SAAYkC,CAAS;AAAA,IAC7E;AAEA,UAAME,IAAcz4C,EAAS;AAAA,MAC3B,KAAK,MAAMm4C,EAAa,MAAM;AAAA,MAC9B,KAAK,CAAA9+C,MAASg/C,EAAa,EAAE,OAAOh/C,GAAO;AAAA,IAAA,CAC5C,GAEKq/C,IAAU14C,EAAS;AAAA,MACvB,KAAK,MAAMm4C,EAAa,MAAM;AAAA,MAC9B,KAAK,CAAA9+C,MAASg/C,EAAa,EAAE,GAAGh/C,KAAS,GAAG;AAAA,IAAA,CAC7C,GAEKs/C,IAAU34C,EAAS;AAAA,MACvB,KAAK,MAAMm4C,EAAa,MAAM;AAAA,MAC9B,KAAK,CAAA9+C,MAASg/C,EAAa,EAAE,GAAGh/C,KAAS,GAAG;AAAA,IAAA,CAC7C,GAEKu/C,IAAa54C,EAAS;AAAA,MAC1B,KAAK,MAAMm4C,EAAa,MAAM;AAAA,MAC9B,KAAK,CAAA9+C,MAASg/C,EAAa,EAAE,MAAMh/C,KAAS,GAAG;AAAA,IAAA,CAChD,GAEKw/C,IAAe74C,EAAS;AAAA,MAC5B,KAAK,MAAMm4C,EAAa,MAAM;AAAA,MAC9B,KAAK,CAAA9+C,MAASg/C,EAAa,EAAE,QAAQh/C,KAAS,GAAG;AAAA,IAAA,CAClD;AAED,IAAA2J;AAAA,MACE,MAAM0K,EAAM,MAAM;AAAA,MAClB,MAAM;AACJ,QAAA8oC,EAAW,QAAQ4B,GAAY/I,EAAI,WAAW,CAAC,EAAE,QAAQ,UAAU;AAAA,MACrE;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;AAGpB,aAASyJ,EAAiBz/C,GAAoB;AAC5C,YAAM89C,IAAOrF,EAAez4C,CAAK;AACjC,MAAI89C,MAAS,WAAWA,MAAS,WAC7BX,EAAW,UAAUW,MAEzBX,EAAW,QAAQW,GACnBkB,EAAa,EAAE,OAAOlB,MAAS,QAAA,CAAS;AAAA,IAC1C;;;kBAIExN,EAoFS0D,IAAA,EApFD,QAAO,cAAU;AAAA,mBACvB,MAiBc;AAAA,UAjBdlvC,EAiBcovC,GAAA,EAjBD,OAAM,QAAI;AAAA,uBACrB,MAOgB;AAAA,cAPhBpvC,EAOgBq0C,GAAA;AAAA,gBAPD,OAAM;AAAA,gBAAQ,OAAO8D,EAAA;AAAA,gBAAa,kBAAcY;AAAA,cAAA;2BAC7C,MAAiC;AAAA,wBAAjDjO,EAKiBrxB,IAAA,MAAAsxB,GALcuN,GAAiB,CAAzBx4C,OAAvBE,EAKiBs0C,GAAA;AAAA,oBALkC,KAAKx0C,GAAK;AAAA,oBAAQ,OAAOA,GAAK;AAAA,kBAAA;+BAC/E,MAGY;AAAA,sBAHZE,EAGYu0C,GAAA;AAAA,wBAHA,OAAOz0C,GAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,GAAK,IAAI,CAAA;AAAA,6BAAI,MAC7B6rC,GAAG7rC,GAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAKOq4C,EAAA,UAAU,kBAApC3M,EAAoHoP,IAAA;AAAA;4BAAvDzK,EAAA;AAAA,+DAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAe,QAAO;AAAA,cAAA,qCACnGK,EAKQR,GAAA;AAAA;gBALO,QAAQ;AAAA,cAAA;2BACrB,MAA8F;AAAA,kBAA9FhrC,EAA8FirC,GAAA,EAAtF,MAAM,MAAE;AAAA,+BAAE,MAAoE;AAAA,sBAApEjrC,EAAoE46C,IAAA;AAAA,oCAAvCvP,EAAAiO,CAAA;AAAA,+EAAAA,EAAa,QAAAnO,KAAA;AAAA,wBAAE,QAAO;AAAA,sBAAA;;;;kBACrEnrC,EAA+FirC,GAAA,EAAvF,MAAM,MAAE;AAAA,+BAAE,MAAqE;AAAA,sBAArEjrC,EAAqE46C,IAAA;AAAA,oCAAxCvP,EAAAkO,CAAA;AAAA,+EAAAA,EAAc,QAAApO,KAAA;AAAA,wBAAE,QAAO;AAAA,sBAAA;;;;kBACtEnrC,EAA8GirC,GAAA;AAAA,oBAAtG,MAAM;AAAA,oBAAI,OAAM;AAAA,kBAAA;+BAAO,MAAuE;AAAA,sBAAvEjrC,EAAuE46C,IAAA;AAAA,oCAA1CvP,EAAAoO,CAAA;AAAA,+EAAAA,EAAgB,QAAAtO,KAAA;AAAA,wBAAE,QAAO;AAAA,sBAAA;;;;kBACrFnrC,EAA+GirC,GAAA;AAAA,oBAAvG,MAAM;AAAA,oBAAI,OAAM;AAAA,kBAAA;+BAAO,MAAwE;AAAA,sBAAxEjrC,EAAwE46C,IAAA;AAAA,oCAA3CvP,EAAAmO,CAAA;AAAA,+EAAAA,EAAiB,QAAArO,KAAA;AAAA,wBAAE,QAAO;AAAA,sBAAA;;;;;;;;;;UAI1FnrC,EA4BcovC,GAAA,EA5BD,OAAM,QAAI;AAAA,uBACrB,MAIM;AAAA,cAJNzE,EAIM,OAJNC,IAIM;AAAA,sBAHJE,EAESrxB,IAAA,MAAAsxB,GAFc2O,GAAiB,CAAzB55C,OAAf6qC,EAES,UAAA;AAAA,kBAFkC,KAAK7qC,GAAK;AAAA,kBAAO,MAAK;AAAA,kBAAS,OAAKm4C,GAAA,CAAC,mHAAiH,CAAUn4C,GAAK,WAAWs4C,EAAA,UAAqBt4C,GAAK,QAAK,+BAAA,mEAAA,CAAA,CAAA;AAAA,kBAAyG,OAAOA,GAAK;AAAA,kBAAQ,SAAK,CAAAqrC,OAAEiN,EAAA,QAAmBt4C,GAAK;AAAA,gBAAA;wBACpZ0rC,EAA6BgJ,GAAb10C,GAAK,IAAI,CAAA;AAAA,gBAAA;;cAI7BE,EAEcovC,GAAA;AAAA,gBAFD,OAAM;AAAA,gBAAQ,OAAO;AAAA,cAAA;2BAChC,MAAsF;AAAA,kBAAtFpvC,EAAsF46C,IAAA;AAAA,gCAAzDzK,EAAA;AAAA,mEAAAA,EAAK,QAAAhF;AAAA,oBAAG,UAAUwO,EAAA;AAAA,oBAAgB,QAAO;AAAA,kBAAA;;;;cAGxE35C,EAYcovC,GAAA;AAAA,gBAZD,OAAM;AAAA,gBAAQ,OAAO;AAAA,cAAA;2BAChC,MAUE;AAAA,kBAVFpvC,EAUEkrC,GAAA;AAAA,oBATQ,OAAO0O,EAAA;AAAA,8DAAAA,EAAW,QAAAzO;AAAA,oBAC1B,eAAA;AAAA,oBACA,aAAY;AAAA,oBACX,SAAS;AAAA;;;;;kBAKT;;;;cAILnrC,EAEcovC,GAAA;AAAA,gBAFD,OAAM;AAAA,gBAAQ,OAAO;AAAA,cAAA;2BAChC,MAAyC;AAAA,kBAAzCpvC,EAAyCy0C,IAAA;AAAA,gCAAfsF,EAAA;AAAA,mEAAAA,EAAW,QAAA5O;AAAA,kBAAA;;;;;;;UAIzCnrC,EAiCcovC,GAAA,EAjCD,OAAM,QAAI;AAAA,uBACrB,MAIgB;AAAA,cAJhBpvC,EAIgBq0C,GAAA;AAAA,gBAJD,OAAM;AAAA,gBAAQ,OAAOgE,EAAA;AAAA,gBAAa,kBAAcsC;AAAA,cAAA;2BAC7C,MAAiC;AAAA,wBAAjD7P,EAEiBrxB,IAAA,MAAAsxB,GAFcwN,GAAiB,CAAzBz4C,OAAvBE,EAEiBs0C,GAAA;AAAA,oBAFkC,KAAKx0C,GAAK;AAAA,oBAAQ,OAAOA,GAAK;AAAA,kBAAA;+BAC/E,MAAgB;AAAA,sBAAb+6C,GAAAlP,GAAA7rC,GAAK,KAAK,GAAA,CAAA;AAAA,oBAAA;;;;;;cAIjBE,EAEcovC,GAAA;AAAA,gBAFD,OAAM;AAAA,gBAAQ,OAAO;AAAA,gBAAO,OAAM;AAAA,cAAA;2BAC7C,MAAyC;AAAA,kBAAzCpvC,EAAyCy0C,IAAA;AAAA,gCAAf6F,EAAA;AAAA,mEAAAA,EAAW,QAAAnP;AAAA,kBAAA;;;;cAGvCnrC,EAqBQgrC,GAAA,EArBA,QAAQ,MAAE;AAAA,2BAChB,MAIQ;AAAA,kBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,+BACd,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA;AAAA,wBAFD,OAAM;AAAA,wBAAW,OAAO;AAAA,sBAAA;mCACnC,MAA4F;AAAA,0BAA5FpvC,EAA4FuvC,IAAA;AAAA,4BAApE,OAAOgL,EAAA;AAAA,sEAAAA,EAAO,QAAApP;AAAA,4BAAE,OAAM;AAAA,4BAAU,UAAU;AAAA,4BAAO,eAAY;AAAA,0BAAA;;;;;;;kBAGzFnrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,+BACd,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA;AAAA,wBAFD,OAAM;AAAA,wBAAW,OAAO;AAAA,sBAAA;mCACnC,MAA4F;AAAA,0BAA5FpvC,EAA4FuvC,IAAA;AAAA,4BAApE,OAAOiL,EAAA;AAAA,wEAAAA,EAAO,QAAArP;AAAA,4BAAE,OAAM;AAAA,4BAAU,UAAU;AAAA,4BAAO,eAAY;AAAA,0BAAA;;;;;;;kBAGzFnrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,+BACd,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA;AAAA,wBAFD,OAAM;AAAA,wBAAQ,OAAO;AAAA,sBAAA;mCAChC,MAA+F;AAAA,0BAA/FpvC,EAA+FuvC,IAAA;AAAA,4BAAvE,OAAOkL,EAAA;AAAA,wEAAAA,EAAU,QAAAtP;AAAA,4BAAE,OAAM;AAAA,4BAAU,UAAU;AAAA,4BAAO,eAAY;AAAA,0BAAA;;;;;;;kBAG5FnrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,+BACd,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA;AAAA,wBAFD,OAAM;AAAA,wBAAQ,OAAO;AAAA,sBAAA;mCAChC,MAAiG;AAAA,0BAAjGpvC,EAAiGuvC,IAAA;AAAA,4BAAzE,OAAOmL,EAAA;AAAA,wEAAAA,EAAY,QAAAvP;AAAA,4BAAE,OAAM;AAAA,4BAAU,UAAU;AAAA,4BAAO,eAAY;AAAA,0BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQtG,UAAMgF,IAAQC,GAAqBnI,GAAA,YAAwB,GAErD6S,IAAcj5C,EAAS,MAAMk5C,GAAY5K,EAAM,OAAO,QAAQ,CAAC,GAC/D6K,IAAen5C,EAAS,MAAMk5C,GAAY5K,EAAM,OAAO,SAAS,CAAC;AAEvE,aAAS8K,EAAYC,GAA8Bz/C,GAAqB21C,GAAa;AAEnF,YAAM+J,IAAY,EAAE,GADJD,MAAW,WAAWJ,EAAY,QAAQE,EAAa,OACvC,CAACv/C,CAAG,GAAG2/C,GAAsBhK,CAAG,EAAA;AAChE,MAAAjB,EAAM,QAAQkL,GAAYlL,EAAM,OAAO+K,GAAQC,CAAS;AAAA,IAC1D;AAEA,aAASG,EAAmBJ,GAA8B9J,GAAa;AACrE,YAAMl2C,IAAQkgD,GAAsBhK,CAAG;AACvC,MAAAjB,EAAM,QAAQkL,GAAYlL,EAAM,OAAO+K,GAAQ;AAAA,QAC7C,KAAKhgD;AAAA,QACL,OAAOA;AAAA,QACP,QAAQA;AAAA,QACR,MAAMA;AAAA,MAAA,CACP;AAAA,IACH;AAEA,aAASqgD,EAAWL,GAA8Bz/C,GAAqB;AACrE,YAAM0a,IAAS+kC,MAAW,WAAWJ,IAAcE;AACnD,aAAOn5C,EAAS;AAAA,QACd,KAAK,MAAM;AACT,gBAAM3G,IAAQib,EAAO,MAAM1a,CAAG;AAC9B,cAAI,CAACP,EAAO;AACZ,gBAAMsgD,IAAM,OAAO,WAAWtgD,CAAK;AACnC,iBAAO,OAAO,MAAMsgD,CAAG,IAAI,SAAYA;AAAA,QACzC;AAAA,QACA,KAAK,CAAAzhC,MAAO;AACV,cAAIA,KAAQ,MAA2B;AACrC,YAAAkhC,EAAYC,GAAQz/C,GAAK,EAAE;AAC3B;AAAA,UACF;AACA,UAAAw/C,EAAYC,GAAQz/C,GAAK,GAAGse,CAAG,IAAI;AAAA,QACrC;AAAA,MAAA,CACD;AAAA,IACH;AAEA,UAAM0hC,IAAYF,EAAW,UAAU,KAAK,GACtCG,IAAcH,EAAW,UAAU,OAAO,GAC1CI,IAAeJ,EAAW,UAAU,QAAQ,GAC5CK,IAAaL,EAAW,UAAU,MAAM,GACxCM,IAAaN,EAAW,WAAW,KAAK,GACxCO,IAAeP,EAAW,WAAW,OAAO,GAC5CQ,IAAgBR,EAAW,WAAW,QAAQ,GAC9CS,IAAcT,EAAW,WAAW,MAAM;AAEhD,aAASU,EAAcf,GAA8B;AACnD,YAAM/kC,IAAS+kC,MAAW,WAAWJ,IAAcE;AACnD,aAAOn5C,EAAS;AAAA,QACd,KAAK,MAAM;AACT,gBAAM,EAAE,KAAAkM,GAAK,OAAAmuC,GAAO,QAAAC,GAAQ,MAAAruC,EAAA,IAASqI,EAAO,OACtCo8B,IAAa,CAACxkC,GAAKmuC,GAAOC,GAAQruC,CAAI,EAAE,IAAI,CAAA5S,MAASkgD,GAAsBlgD,CAAK,KAAK,GAAG;AAC9F,cAAI,CAACq3C,EAAW,MAAM,CAAAr3C,MAASA,MAAUq3C,EAAW,CAAC,CAAC,EAAG;AACzD,gBAAMiJ,IAAM,OAAO,WAAWjJ,EAAW,CAAC,CAAC;AAC3C,iBAAO,OAAO,MAAMiJ,CAAG,IAAI,SAAYA;AAAA,QACzC;AAAA,QACA,KAAK,CAAAzhC,MAAO;AACV,cAAIA,KAAQ,MAA2B;AACrC,YAAAuhC,EAAmBJ,GAAQ,EAAE;AAC7B;AAAA,UACF;AACA,UAAAI,EAAmBJ,GAAQ,GAAGnhC,CAAG,IAAI;AAAA,QACvC;AAAA,MAAA,CACD;AAAA,IACH;AAEA,UAAMqiC,IAAgBH,EAAc,QAAQ,GACtCI,IAAiBJ,EAAc,SAAS;;;AAI5C,aAAAzP,EAAA,GAAA1B,EAuCM,OAvCNF,IAuCM;AAAA,QAtCJD,EAEM,OAFNE,IAEM;AAAA,UADJ7qC,EAAgGuvC,GAAA;AAAA,YAAxE,OAAOlE,EAAAoQ,CAAA;AAAA,6DAAAA,EAAS,QAAAtQ,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAE5FR,EAEM,OAFNe,IAEM;AAAA,UADJ1rC,EAAkGuvC,GAAA;AAAA,YAA1E,OAAOlE,EAAAqQ,CAAA;AAAA,6DAAAA,EAAW,QAAAvQ,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAE9FR,EAGM,OAHNoB,IAGM;AAAA,UAFJF,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAlB,EAAoC,QAAA,EAA9B,OAAM,WAAA,GAAW,UAAM,EAAA;AAAA,UAC7B3qC,EAAmGuvC,GAAA;AAAA,YAA3E,OAAOlE,EAAAsQ,CAAA;AAAA,6DAAAA,EAAY,QAAAxQ,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAE/FR,EAEM,OAFNsB,IAEM;AAAA,UADJjsC,EAAiGuvC,GAAA;AAAA,YAAzE,OAAOlE,EAAAuQ,CAAA;AAAA,6DAAAA,EAAU,QAAAzQ,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAG7FR,EAEM,OAFNyB,IAEM;AAAA,UADJpsC,EAAiGuvC,GAAA;AAAA,YAAzE,OAAOlE,EAAAwQ,CAAA;AAAA,6DAAAA,EAAU,QAAA1Q,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAE7FR,EAEM,OAFN0B,IAEM;AAAA,UADJrsC,EAAmGuvC,GAAA;AAAA,YAA3E,OAAOlE,EAAAyQ,CAAA;AAAA,6DAAAA,EAAY,QAAA3Q,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAE/FR,EAGM,OAHN4B,IAGM;AAAA,UAFJV,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAlB,EAAqC,QAAA,EAA/B,OAAM,WAAA,GAAW,WAAO,EAAA;AAAA,UAC9B3qC,EAAoGuvC,GAAA;AAAA,YAA5E,OAAOlE,EAAA0Q,CAAA;AAAA,6DAAAA,EAAa,QAAA5Q,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAEhGR,EAEM,OAFN8B,IAEM;AAAA,UADJzsC,EAAkGuvC,GAAA;AAAA,YAA1E,OAAOlE,EAAA2Q,CAAA;AAAA,6DAAAA,EAAW,QAAA7Q,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAG9FR,EASM,OATN2R,IASM;AAAA,UARJ3R,EAGM,OAHN4R,IAGM;AAAA,YAFJ1Q,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAlB,EAAyC,QAAA,EAAnC,OAAM,gBAAA,GAAgB,UAAM,EAAA;AAAA,YAClC3qC,EAA0HuvC,GAAA;AAAA,cAAlG,OAAOlE,EAAA+Q,CAAA;AAAA,+DAAAA,EAAa,QAAAjR,IAAA;AAAA,cAAE,OAAM;AAAA,cAAiB,UAAU;AAAA,cAAQ,UAAU;AAAA,cAAO,aAAY;AAAA,YAAA;;UAEtHR,EAGM,OAHN6R,IAGM;AAAA,YAFJ3Q,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAlB,EAA0C,QAAA,EAApC,OAAM,gBAAA,GAAgB,WAAO,EAAA;AAAA,YACnC3qC,EAA2HuvC,GAAA;AAAA,cAAnG,OAAOlE,EAAAgR,CAAA;AAAA,+DAAAA,EAAc,QAAAlR,IAAA;AAAA,cAAE,OAAM;AAAA,cAAiB,UAAU;AAAA,cAAQ,UAAU;AAAA,cAAO,aAAY;AAAA,YAAA;;;;;;qEC6DvHsR,KAAsB,yWACtBC,KAAoB;;;;;;;;;;;;AAzK1B,UAAMC,IAAY,CAAC,iBAAiB,kBAAkB,cAAc,YAAY,KAAK,GAG/EC,IAAY,CAAC,uBAAuB,KAAK,GAEzCC,IAAmB,CAAC,oBAAoB,gBAAgB,cAAc,kBAAkB,gBAAgB,cAAc,GAEtHC,IAAwD;AAAA,MAC5D,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,KAAK;AAAA,IAAA,GAGDthD,IAAQysC,GAYRkI,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,OAAA14B,GAAO,KAAA2hC,GAAK,KAAAK,GAAK,OAAA1H,EAAA,IAAUmH,GAAYb,CAAK;AAEpD,aAAS4M,EAAethD,GAA6B;AACnD,aAAOD,EAAM,aAAaC,CAAG,KAAKqhD,EAAsBrhD,CAAG;AAAA,IAC7D;AAEA,aAASuhD,EAA0B3zB,GAAuB;AACxD,aAAO,UAAU,KAAK,IAAI,GAAGA,CAAK,CAAC;AAAA,IACrC;AAEA,aAAS4zB,EAAqB/hD,GAA2Bi2C,GAA0B;AACjF,YAAMoB,IAAar3C,KAAA,gBAAAA,EAAO;AAC1B,UAAI,CAACq3C,EAAY,QAAOpB;AACxB,YAAM+L,IAAc3K,EAAW,MAAM,wBAAwB;AAC7D,UAAI2K,UAAoB,KAAK,IAAI,GAAG,OAAOA,EAAY,CAAC,CAAC,CAAC;AAC1D,YAAMC,IAAQ5K,EAAW,MAAM,KAAK,EAAE,OAAO,OAAO;AACpD,aAAO,KAAK,IAAI,GAAG4K,EAAM,UAAUhM,CAAQ;AAAA,IAC7C;AAEA,UAAMiM,IAAe;AAAA,MACnB,EAAE,OAAO,UAAU,MAAM9Y,IAAqB,OAAO,KAAA;AAAA,MACrD,EAAE,OAAO,QAAQ,MAAMsB,IAAoB,OAAO,KAAA;AAAA,MAClD,EAAE,OAAO,QAAQ,MAAMyX,IAAkB,OAAO,KAAA;AAAA,MAChD,EAAE,OAAO,SAAS,MAAMvZ,IAAqB,OAAO,KAAA;AAAA,MACpD,EAAE,OAAO,gBAAgB,MAAMwB,IAAiB,OAAO,MAAA;AAAA,MACvD,EAAE,OAAO,QAAQ,MAAMgY,IAAsB,OAAO,KAAA;AAAA,IAAK,GAGrDC,IAAU17C,EAAS;AAAA,MACvB,KAAK,MAAMqvC,EAAI,WAAW11C,EAAM,cAAc;AAAA,MAC9C,KAAK,CAAAN,MAAS;AAEZ,QAAAq2C,EAAI,WAAWr2C,MAAUM,EAAM,iBAAiB,SAAYN,CAAK;AAAA,MACnE;AAAA,IAAA,CACD,GAEKsiD,IAAS37C,EAAS,MAAM07C,EAAQ,UAAU,MAAM,GAChDE,IAAS57C,EAAS,MAAM07C,EAAQ,UAAU,MAAM;AAEtD,IAAA14C;AAAA,MACE,MAAMqsC,EAAI,WAAW11C,EAAM,cAAc;AAAA,MACzC,CAACN,GAAOwiD,MAAa;AACnB,YAAI7yC,IAAO,EAAE,GAAG0E,EAAM,MAAA,GAClBouC,IAAU;AAEd,QAAID,MAAa,UAAUxiD,MAAU,UACnCyhD,EAAU,QAAQ,CAAAlhD,MAAO;AACvB,UAAIA,KAAOoP,MACT,OAAOA,EAAKpP,CAAG,GACfkiD,IAAU;AAAA,QAEd,CAAC,GAECD,MAAa,UAAUxiD,MAAU,UACnC0hD,EAAU,QAAQ,CAAAnhD,MAAO;AACvB,UAAIA,KAAOoP,MACT,OAAOA,EAAKpP,CAAG,GACfkiD,IAAU;AAAA,QAEd,CAAC,GAECziD,MAAU,UAAUwiD,MAAa,WACnCb,EAAiB,QAAQ,CAAAphD,MAAO;AAC9B,UAAIA,KAAOoP,MACT,OAAOA,EAAKpP,CAAG,GACfkiD,IAAU;AAAA,QAEd,CAAC,IACG9yC,EAAK,uBAAuB,QAAQA,EAAK,wBAAwB,QACnEA,EAAK,sBAAsBmyC,EAA0BxhD,EAAM,iBAAiB,GAC5EmiD,IAAU,MAGVA,OAAe9yC,CAAI;AAAA,MACzB;AAAA,IAAA;AAGF,aAAS+yC,EAAuBniD,GAAqB;AACnD,aAAOoG,EAAS;AAAA,QACd,KAAK,MAAMqvC,EAAIz1C,GAAKshD,EAAethD,CAAG,CAAC;AAAA,QACvC,KAAK,CAAAP,MAAS;AACZ,gBAAM2rB,IAAek2B,EAAethD,CAAG,GACjCoiD,IAAW3iD,KAAS2rB;AAE1B,cAAI22B,EAAO,OAAO;AAChB,YAAAjM,EAAI91C,GAAKoiD,CAAQ;AACjB;AAAA,UACF;AACA,UAAAtM,EAAI91C,GAAKoiD,MAAah3B,IAAe,SAAYg3B,CAAQ;AAAA,QAC3D;AAAA,MAAA,CACD;AAAA,IACH;AAEA,UAAMC,IAAgBF,EAAuB,eAAe,GACtDG,IAAqBH,EAAuB,gBAAgB,GAC5DI,IAAiBJ,EAAuB,YAAY,GACpDK,IAAWL,EAAuB,UAAU;AAE1B,IAAA/7C,EAAS;AAAA,MAC/B,KAAK,MAAMo7C,EAAqB/L,EAAI,qBAAqB,GAAG11C,EAAM,iBAAiB;AAAA,MACnF,KAAK,CAAAN,MAAS;AACZ,cAAMmuB,IAAQ,KAAK,IAAI,GAAG,KAAK,MAAMnuB,KAASM,EAAM,iBAAiB,CAAC,GAChE0iD,IAAUlB,EAA0B3zB,CAAK;AAC/C,YAAIo0B,EAAO,OAAO;AAChB,UAAAlM,EAAI,uBAAuB2M,CAAO;AAClC;AAAA,QACF;AACA,QAAA3M,EAAI,uBAAuBloB,MAAU7tB,EAAM,oBAAoB,SAAY0iD,CAAO;AAAA,MACpF;AAAA,IAAA,CACD;AAED,UAAMC,IAAuB;AAAA,MAC3B,EAAE,OAAO,OAAO,MAAM,iBAAiB,OAAO,UAAA;AAAA,MAC9C,EAAE,OAAO,eAAe,MAAM,yBAAyB,OAAO,oBAAA;AAAA,MAC9D,EAAE,OAAO,UAAU,MAAM,oBAAoB,OAAO,aAAA;AAAA,MACpD,EAAE,OAAO,kBAAkB,MAAM,4BAA4B,OAAO,uBAAA;AAAA,IAAuB,GAGvFC,IAAwB;AAAA,MAC5B,EAAE,OAAO,cAAc,MAAM,sBAAsB,OAAO,mBAAA;AAAA,MAC1D,EAAE,OAAO,YAAY,MAAM,oBAAoB,OAAO,iBAAA;AAAA,MACtD,EAAE,OAAO,UAAU,MAAM,kBAAkB,OAAO,aAAA;AAAA,MAClD,EAAE,OAAO,iBAAiB,MAAM,yBAAyB,OAAO,sBAAA;AAAA,MAChE,EAAE,OAAO,gBAAgB,MAAM,wBAAwB,OAAO,qBAAA;AAAA,IAAqB,GAG/EC,IAAoB;AAAA,MACxB,EAAE,OAAO,cAAc,MAAM,oBAAoB,OAAO,mBAAA;AAAA,MACxD,EAAE,OAAO,YAAY,MAAM,kBAAkB,OAAO,iBAAA;AAAA,MACpD,EAAE,OAAO,UAAU,MAAM,gBAAgB,OAAO,aAAA;AAAA,MAChD,EAAE,OAAO,YAAY,MAAM,kBAAkB,OAAO,iBAAA;AAAA,MACpD,EAAE,OAAO,WAAW,MAAM,iBAAiB,OAAO,cAAA;AAAA,IAAc,GAG5DC,IAAkB;AAAA,MACtB,EAAE,OAAO,UAAU,OAAO,MAAA;AAAA,MAC1B,EAAE,OAAO,QAAQ,OAAO,MAAA;AAAA,MACxB,EAAE,OAAO,gBAAgB,OAAO,MAAA;AAAA,IAAM,GAMlCC,IAAiB9/C,EAAgB;AAAA,MACrC,MAAM;AAAA,MACN,OAAO;AAAA,QACL,MAAM,EAAE,MAAM,QAAQ,UAAU,GAAA;AAAA,MAAK;AAAA,MAEvC,MAAMjD,GAAO;AACX,eAAO,MACLitB;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS;AAAA,YACT,MAAM;AAAA,YACN,OAAO;AAAA,YACP,eAAe;AAAA,UAAA;AAAA,UAEjB+1B,EAAoBhjD,EAAM,IAAI;AAAA,QAAA;AAAA,MAEpC;AAAA,IAAA,CACD;AAED,aAASgjD,EAAoBhsB,GAAc;AACzC,cAAQA,GAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,YACL/J,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB;AAAA,YACvFA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YACxGA,EAAE,QAAQ;AAAA,cACR,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,gBAAgB;AAAA,cAChB,kBAAkB;AAAA,cAClB,mBAAmB;AAAA,YAAA,CACpB;AAAA,UAAA;AAAA,QAEL,KAAK;AACH,iBAAO;AAAA,YACLA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB;AAAA,YACxFA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YACxGA,EAAE,QAAQ;AAAA,cACR,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,gBAAgB;AAAA,cAChB,kBAAkB;AAAA,cAClB,mBAAmB;AAAA,YAAA,CACpB;AAAA,UAAA;AAAA,QAEL,KAAK;AACH,iBAAO;AAAA,YACLA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,MAAM,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB;AAAA,YACvFA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,MAAM,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YACxGA,EAAE,QAAQ;AAAA,cACR,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,gBAAgB;AAAA,cAChB,kBAAkB;AAAA,cAClB,mBAAmB;AAAA,YAAA,CACpB;AAAA,UAAA;AAAA,QAEL,KAAK;AACH,iBAAO;AAAA,YACLA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,MAAM,OAAO,MAAM,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB;AAAA,YACxFA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,MAAM,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YACxGA,EAAE,QAAQ;AAAA,cACR,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,gBAAgB;AAAA,cAChB,kBAAkB;AAAA,cAClB,mBAAmB;AAAA,YAAA,CACpB;AAAA,UAAA;AAAA,QAEL,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,OAAO,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QACja,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,OAAO,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QAC1a,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,OAAO,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,CAAC;AAAA,QACnU,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,OAAO,QAAQ,KAAK,IAAI,OAAO,MAAM,eAAA,CAAgB,CAAC;AAAA,QAClT,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,OAAO,SAAS,MAAA,CAAO,GAAGA,EAAE,QAAQ,EAAE,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,OAAO,SAAS,MAAA,CAAO,CAAC;AAAA,QACnhB,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QAC5Z,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,MAAM,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QAC/Z,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,eAAA,CAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QAC9Z,KAAK;AACH,iBAAO;AAAA,YACLA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB;AAAA,YACtFA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YAC1GA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ;AAAA,YACxGA,EAAE,QAAQ;AAAA,cACR,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,QAAQ;AAAA,cACR,gBAAgB;AAAA,cAChB,oBAAoB;AAAA,YAAA,CACrB;AAAA,UAAA;AAAA,QAEL,KAAK;AACH,iBAAO,CAACA,EAAE,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,OAAA,CAAQ,GAAGA,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,gBAAgB,SAAS,QAAQ,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,QAAQ,gBAAgB,gBAAgB,OAAO,GAAGA,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,QAAQ,gBAAgB,gBAAgB,MAAA,CAAO,CAAC;AAAA,QACngB;AACE,iBAAO,CAAA;AAAA,MAAC;AAAA,IAEd;;;kBAIE+iB,EAkFS0D,GAAA,EAlFD,QAAO,cAAU;AAAA,mBACvB,MAQc;AAAA,UARdlvC,EAQcovC,GAAA,EARD,OAAM,UAAM;AAAA,uBACvB,MAMgB;AAAA,cANhBpvC,EAMgBq0C,GAAA;AAAA,gBANO,OAAOkJ,EAAA;AAAA,yDAAAA,EAAO,QAAApS;AAAA,cAAA;2BACnB,MAA4B;AAAA,wBAA5CL,EAIiBrxB,IAAA,MAAAsxB,GAJcqS,GAAY,CAApBt9C,MAAvBE,EAIiBs0C,GAAA;AAAA,oBAJ6B,KAAKx0C,EAAK;AAAA,oBAAQ,OAAOA,EAAK;AAAA,kBAAA;+BAC1E,MAEY;AAAA,sBAFZE,EAEYu0C,GAAA;AAAA,wBAFA,OAAOz0C,EAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,EAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;;UAMjB09C,EAAA,cAAhB1S,EAgDWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YA/CTzZ,EAUcovC,GAAA,EAVD,OAAM,UAAM;AAAA,yBACvB,MAQgB;AAAA,gBARhBpvC,EAQgBq0C,GAAA;AAAA,kBARO,OAAOhJ,EAAAyS,CAAA;AAAA,mEAAAA,EAAa,QAAA3S,IAAA;AAAA,kBAAE,MAAK;AAAA,kBAAS,UAAOsR,EAAmB;AAAA,gBAAA;6BACnE,MAAoC;AAAA,0BAApD3R,EAMiBrxB,IAAA,MAAAsxB,GANcoT,GAAoB,CAA5Br+C,MAAvBE,EAMiBs0C,GAAA;AAAA,sBANqC,KAAKx0C,EAAK;AAAA,sBAAQ,OAAOA,EAAK;AAAA,oBAAA;iCAClF,MAIY;AAAA,wBAJZE,EAIYu0C,GAAA;AAAA,0BAJA,OAAOz0C,EAAK;AAAA,wBAAA;qCACtB,MAEO;AAAA,4BAFP6qC,EAEO,QAAA;AAAA,8BAFA,UAAO+R,EAAiB;AAAA,4BAAA;8BAC7B18C,EAAoCqrC,EAAAkT,CAAA,GAAA;AAAA,gCAAnB,MAAMz+C,EAAK;AAAA,8BAAA;;;;;;;;;;;;;;YAOtCE,EAUcovC,GAAA,EAVD,OAAM,UAAM;AAAA,yBACvB,MAQgB;AAAA,gBARhBpvC,EAQgBq0C,GAAA;AAAA,kBARO,OAAOhJ,EAAA0S,CAAA;AAAA,mEAAAA,EAAkB,QAAA5S,IAAA;AAAA,kBAAE,MAAK;AAAA,kBAAS,UAAOsR,EAAmB;AAAA,gBAAA;6BACxE,MAAqC;AAAA,0BAArD3R,EAMiBrxB,IAAA,MAAAsxB,GANcqT,GAAqB,CAA7Bt+C,MAAvBE,EAMiBs0C,GAAA;AAAA,sBANsC,KAAKx0C,EAAK;AAAA,sBAAQ,OAAOA,EAAK;AAAA,oBAAA;iCACnF,MAIY;AAAA,wBAJZE,EAIYu0C,GAAA;AAAA,0BAJA,OAAOz0C,EAAK;AAAA,wBAAA;qCACtB,MAEO;AAAA,4BAFP6qC,EAEO,QAAA;AAAA,8BAFA,UAAO+R,EAAiB;AAAA,4BAAA;8BAC7B18C,EAAoCqrC,EAAAkT,CAAA,GAAA;AAAA,gCAAnB,MAAMz+C,EAAK;AAAA,8BAAA;;;;;;;;;;;;;;YAOtCE,EAUcovC,GAAA,EAVD,OAAM,UAAM;AAAA,yBACvB,MAQgB;AAAA,gBARhBpvC,EAQgBq0C,GAAA;AAAA,kBARO,OAAOhJ,EAAA2S,CAAA;AAAA,mEAAAA,EAAc,QAAA7S,IAAA;AAAA,kBAAE,MAAK;AAAA,kBAAS,UAAOsR,EAAmB;AAAA,gBAAA;6BACpE,MAAiC;AAAA,0BAAjD3R,EAMiBrxB,IAAA,MAAAsxB,GANcsT,GAAiB,CAAzBv+C,MAAvBE,EAMiBs0C,GAAA;AAAA,sBANkC,KAAKx0C,EAAK;AAAA,sBAAQ,OAAOA,EAAK;AAAA,oBAAA;iCAC/E,MAIY;AAAA,wBAJZE,EAIYu0C,GAAA;AAAA,0BAJA,OAAOz0C,EAAK;AAAA,wBAAA;qCACtB,MAEO;AAAA,4BAFP6qC,EAEO,QAAA;AAAA,8BAFA,UAAO+R,EAAiB;AAAA,4BAAA;8BAC7B18C,EAAoCqrC,EAAAkT,CAAA,GAAA;AAAA,gCAAnB,MAAMz+C,EAAK;AAAA,8BAAA;;;;;;;;;;;;;;YAOtCE,EAMcovC,GAAA,EAND,OAAM,QAAI;AAAA,yBACrB,MAIgB;AAAA,gBAJhBpvC,EAIgBq0C,GAAA;AAAA,kBAJO,OAAOhJ,EAAA4S,CAAA;AAAA,mEAAAA,EAAQ,QAAA9S,IAAA;AAAA,kBAAE,MAAK;AAAA,kBAAS,UAAOsR,EAAmB;AAAA,gBAAA;6BAC9D,MAA+B;AAAA,0BAA/C3R,EAEiBrxB,IAAA,MAAAsxB,GAFcuT,GAAe,CAAvBx+C,MAAvBE,EAEiBs0C,GAAA;AAAA,sBAFgC,KAAKx0C,EAAK;AAAA,sBAAQ,OAAOA,EAAK;AAAA,oBAAA;iCAC7E,MAAgB;AAAA,wBAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,sBAAA;;;;;;;;;YAKnBE,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,yBACrB,MAAkE;AAAA,gBAAlEpvC,EAAkE46C,IAAA;AAAA,8BAArCzK,EAAA;AAAA,gEAAAA,EAAK,QAAAhF;AAAA,kBAAE,UAAS;AAAA,kBAAM,QAAO;AAAA,gBAAA;;;;;UAI9CsS,EAAA,cAAhB3S,EAQWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,YAPTzZ,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,yBACrB,MAAgI;AAAA,gBAAhIpvC,EAAgI46C,IAAA;AAAA,8BAAnGzK,EAAA;AAAA,gEAAAA,EAAK,QAAAhF;AAAA,kBAAE,UAAS;AAAA,kBAAsB,QAAO;AAAA,kBAAiB,QAAQ6R;AAAA,gBAAA;;;;YAGrGh9C,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,yBACrB,MAAkE;AAAA,gBAAlEpvC,EAAkE46C,IAAA;AAAA,8BAArCzK,EAAA;AAAA,gEAAAA,EAAK,QAAAhF;AAAA,kBAAE,UAAS;AAAA,kBAAM,QAAO;AAAA,gBAAA;;;;;UAI9DnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAA4B;AAAA,cAA5BpvC,EAA4By+C,IAAA;AAAA,4BAATtO,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,cAAA;;;;UAG1BnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAAqE;AAAA,cAArEpvC,EAAqE46C,IAAA;AAAA,4BAAxCzK,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAQ,QAAO;AAAA,cAAA;;;;UAG9DnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAAsE;AAAA,cAAtEpvC,EAAsE46C,IAAA;AAAA,4BAAzCzK,EAAA;AAAA,gEAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAS,QAAO;AAAA,cAAA;;;;;;;;;;;;;;;;;AC5WnE,UAAMgF,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,KAAAiJ,GAAK,KAAAK,MAAQP,GAAYb,CAAK,GAIhCuO,IAA2B,CAAC,OAAO,SAAS,UAAU,MAAM;AAElE,IAAA17C,GAAY,MAAM;AAChB,iBAAWvH,KAAOijD,GAAa;AAC7B,cAAMtN,IAAMF,EAAIz1C,CAAG;AACnB,YAAI,CAAC21C,EAAK;AACV,cAAMmB,IAAa6I,GAAsBhK,CAAG;AAC5C,QAAImB,KAAcA,MAAenB,KAC/BG,EAAI91C,GAAK82C,CAAU;AAAA,MAEvB;AAAA,IACF,CAAC;AAED,aAASoM,EAAiBljD,GAAgB;AACxC,aAAOoG,EAAS;AAAA,QACd,KAAK,MAAM;AACT,gBAAM3G,IAAQg2C,EAAIz1C,CAAG;AACrB,cAAI,CAACP,EAAO;AACZ,gBAAM6zC,IAASwG,GAAUr6C,CAAK;AAC9B,cAAI6zC,EAAO,SAAS,UAChBA,EAAO,SAAS;AACpB,mBAAOA,EAAO;AAAA,QAChB;AAAA,QACA,KAAK,CAAAh1B,MAAO;AACV,cAAIA,KAAQ,MAA2B;AACrC,YAAAw3B,EAAI91C,GAAK,MAAS;AAClB;AAAA,UACF;AACA,UAAA81C,EAAI91C,GAAK,GAAGse,CAAG,IAAI;AAAA,QACrB;AAAA,MAAA,CACD;AAAA,IACH;AAEA,UAAMhM,IAAM4wC,EAAiB,KAAK,GAC5BzC,IAAQyC,EAAiB,OAAO,GAChCxC,IAASwC,EAAiB,QAAQ,GAClC7wC,IAAO6wC,EAAiB,MAAM;;;AAIlC,aAAAnS,EAAA,GAAA1B,EAcM,OAdNF,IAcM;AAAA,QAbJD,EAEM,OAFNE,IAEM;AAAA,UADJ7qC,EAA6FuvC,GAAA;AAAA,YAArE,OAAOlE,EAAAt9B,CAAA;AAAA,6DAAAA,EAAG,QAAAo9B,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAEtFR,EAEM,OAFNe,IAEM;AAAA,UADJ1rC,EAA+FuvC,GAAA;AAAA,YAAvE,OAAOlE,EAAA6Q,CAAA;AAAA,6DAAAA,EAAK,QAAA/Q,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAExFR,EAEM,OAFNoB,IAEM;AAAA,UADJ/rC,EAAgGuvC,GAAA;AAAA,YAAxE,OAAOlE,EAAA8Q,CAAA;AAAA,6DAAAA,EAAM,QAAAhR,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;QAEzFR,EAEM,OAFNsB,IAEM;AAAA,UADJjsC,EAA8FuvC,GAAA;AAAA,YAAtE,OAAOlE,EAAAv9B,CAAA;AAAA,6DAAAA,EAAI,QAAAq9B,IAAA;AAAA,YAAG,UAAU;AAAA,YAAQ,UAAU;AAAA,YAAO,aAAY;AAAA,UAAA;;wBAEvFR,EAA6B,OAAA,EAAxB,OAAM,mBAAe,MAAA,EAAA;AAAA,MAAA;;;;;;;;;;;;;ACxD9B,UAAM+T,IAAc,CAAC,OAAO,SAAS,UAAU,MAAM,GAE/CljD,IAAQysC,GAORkI,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,OAAA14B,GAAO,KAAA2hC,GAAK,KAAAK,GAAK,OAAA1H,EAAA,IAAUmH,GAAYb,CAAK,GAE9CyO,IAAkB;AAAA,MACtB,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,MAC1B,EAAE,OAAO,YAAY,OAAO,WAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,WAAA;AAAA,MAC5B,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,MACzB,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,IAAS,GAG/B7xC,IAAWlL,EAAS;AAAA,MACxB,KAAK,MAAMqvC,EAAI,YAAY11C,EAAM,eAAe;AAAA,MAChD,KAAK,CAAAN,MAAS;AACZ,QAAAq2C,EAAI,YAAYr2C,MAAUM,EAAM,kBAAkB,SAAYN,CAAK;AAAA,MACrE;AAAA,IAAA,CACD,GAEK2jD,IAAeh9C,EAAS,MAAMkL,EAAS,UAAU,QAAQ;AAE/D,IAAAlI;AAAA,MACE,MAAMqsC,EAAI,YAAY11C,EAAM,eAAe;AAAA,MAC3C,CAAAN,MAAS;AACP,YAAIA,MAAU,SAAU;AACxB,cAAM2P,IAAO,EAAE,GAAG0E,EAAM,MAAA;AACxB,YAAIouC,IAAU;AACd,QAAAe,EAAY,QAAQ,CAAAjjD,MAAO;AACzB,UAAIA,KAAOoP,MACT,OAAOA,EAAKpP,CAAG,GACfkiD,IAAU;AAAA,QAEd,CAAC,GACG9yC,EAAK,WACP,OAAOA,EAAK,QACZ8yC,IAAU,KAERA,OAAe9yC,CAAI;AAAA,MACzB;AAAA,IAAA;AAGF,aAASi0C,EAAerjD,GAAwBsjD,IAAY,QAAQ;AAClE,aAAOl9C,EAAS;AAAA,QACd,KAAK,MAAMqvC,EAAIz1C,GAAKsjD,CAAS;AAAA,QAC7B,KAAK,CAAA7jD,MAASq2C,EAAI91C,GAAKP,MAAU6jD,IAAY,SAAY7jD,CAAK;AAAA,MAAA,CAC/D;AAAA,IACH;AAEA,UAAM8jD,IAAaF,EAAe,OAAO,GACnCG,IAAaH,EAAe,OAAO,GAEnCI,IAAe;AAAA,MACnB,EAAE,OAAO,QAAQ,MAAM1a,IAAgB,OAAO,UAAA;AAAA,MAC9C,EAAE,OAAO,QAAQ,MAAMU,IAAsB,OAAO,YAAA;AAAA,MACpD,EAAE,OAAO,SAAS,MAAME,IAAoB,OAAO,aAAA;AAAA,IAAa,GAG5D+Z,IAAe;AAAA,MACnB,EAAE,OAAO,QAAQ,MAAM3a,IAAgB,OAAO,UAAA;AAAA,MAC9C,EAAE,OAAO,QAAQ,MAAMvuB,IAAoB,OAAO,cAAA;AAAA,MAClD,EAAE,OAAO,SAAS,MAAMW,IAAqB,OAAO,eAAA;AAAA,MACpD,EAAE,OAAO,QAAQ,MAAMouB,IAAoB,OAAO,aAAA;AAAA,IAAa;;;kBAK/DwG,EAgCS0D,GAAA,EAhCD,QAAO,cAAU;AAAA,mBACvB,MAEc;AAAA,UAFdlvC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAAgE;AAAA,cAAhEpvC,EAAgEkrC,GAAA;AAAA,gBAA9C,OAAOn+B,EAAA;AAAA,yDAAAA,EAAQ,QAAAo+B;AAAA,gBAAG,SAASyT;AAAA,cAAA;;;;UAG5BC,EAAA,cAAnBrT,EAEc4D,GAAA;AAAA;YAFmB,OAAM;AAAA,UAAA;uBACrC,MAA6B;AAAA,cAA7BpvC,EAA6Bo/C,IAAA;AAAA,4BAATjP,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,cAAA;;;;UAGR0T,EAAA,cAAnBrT,EAEc4D,GAAA;AAAA;YAFmB,OAAM;AAAA,UAAA;uBACrC,MAA6E;AAAA,cAA7EpvC,EAA6E46C,IAAA;AAAA,4BAAhDzK,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAS,QAAO;AAAA,cAAA;;;;UAG/DnrC,EAQcovC,GAAA,EARD,OAAM,UAAM;AAAA,uBACvB,MAMgB;AAAA,cANhBpvC,EAMgBq0C,GAAA;AAAA,gBANO,OAAOhJ,EAAA2T,CAAA;AAAA,iEAAAA,EAAU,QAAA7T,IAAA;AAAA,cAAA;2BACtB,MAA4B;AAAA,wBAA5CL,EAIiBrxB,IAAA,MAAAsxB,GAJcmU,GAAY,CAApBp/C,MAAvBE,EAIiBs0C,GAAA;AAAA,oBAJ6B,KAAKx0C,EAAK;AAAA,oBAAQ,OAAOA,EAAK;AAAA,kBAAA;+BAC1E,MAEY;AAAA,sBAFZE,EAEYu0C,GAAA;AAAA,wBAFA,OAAOz0C,EAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,EAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;;UAMjCE,EAQcovC,GAAA,EARD,OAAM,QAAI;AAAA,uBACrB,MAMgB;AAAA,cANhBpvC,EAMgBq0C,GAAA;AAAA,gBANO,OAAOhJ,EAAA4T,CAAA;AAAA,iEAAAA,EAAU,QAAA9T,IAAA;AAAA,cAAA;2BACtB,MAA4B;AAAA,wBAA5CL,EAIiBrxB,IAAA,MAAAsxB,GAJcoU,GAAY,CAApBr/C,MAAvBE,EAIiBs0C,GAAA;AAAA,oBAJ6B,KAAKx0C,EAAK;AAAA,oBAAQ,OAAOA,EAAK;AAAA,kBAAA;+BAC1E,MAEY;AAAA,sBAFZE,EAEYu0C,GAAA;AAAA,wBAFA,OAAOz0C,EAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,EAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACnGrC,UAAMqwC,IAAQC,GAAqBnI,GAAA,YAAwB,GACrD,EAAE,KAAAiJ,GAAK,KAAAK,MAAQP,GAAYb,CAAK,GAEhCkP,IAAax9C,EAAS;AAAA,MAC1B,KAAK,MAAMqvC,EAAI,YAAY,KAAK;AAAA,MAChC,KAAK,CAAAh2C,MAASq2C,EAAI,cAAcr2C,CAAK;AAAA,IAAA,CACtC,GAEKokD,IAAaz9C,EAAS;AAAA,MAC1B,KAAK,MAAMqvC,EAAI,YAAY,KAAK;AAAA,MAChC,KAAK,CAAAh2C,MAASq2C,EAAI,cAAcr2C,MAAU,YAAY,SAAYA,CAAK;AAAA,IAAA,CACxE,GAEKogB,IAAQzZ,EAAS;AAAA,MACrB,KAAK,MAAMqvC,EAAI,OAAO;AAAA,MACtB,KAAK,CAAAh2C,MAASq2C,EAAI,SAASr2C,CAAK;AAAA,IAAA,CACjC,GAEKqkD,IAAY19C,EAAS;AAAA,MACzB,KAAK,MAAMqvC,EAAI,aAAa,MAAM;AAAA,MAClC,KAAK,CAAAh2C,MAASq2C,EAAI,aAAar2C,MAAU,SAAS,SAAYA,CAAK;AAAA,IAAA,CACpE,GAEKskD,IAAe;AAAA,MACnB,EAAE,OAAO,QAAQ,MAAMpc,IAAmB,OAAO,MAAA;AAAA,MACjD,EAAE,OAAO,UAAU,MAAMF,IAAqB,OAAO,KAAA;AAAA,MACrD,EAAE,OAAO,SAAS,MAAMI,IAAoB,OAAO,MAAA;AAAA,MACnD,EAAE,OAAO,WAAW,MAAMwB,IAAc,OAAO,OAAA;AAAA,IAAO,GAGlD2a,IAAiB59C,EAAS;AAAA,MAC9B,KAAK,MAAM;AACT,cAAM3G,IAAQg2C,EAAI,SAAS;AAC3B,YAAI,CAACh2C,EAAO,QAAO;AACnB,cAAMsgD,IAAM,OAAO,WAAWtgD,CAAK;AACnC,eAAO,OAAO,MAAMsgD,CAAG,IAAI,MAAM,KAAK,MAAMA,IAAM,GAAG;AAAA,MACvD;AAAA,MACA,KAAK,CAAAtgD,MAAS;AACZ,cAAMoc,IAAU48B,GAAWh5C,CAAK;AAChC,QAAAq2C,EAAI,WAAWj6B,KAAW,MAAM,SAAY,OAAO,QAAQA,IAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AAAA,MACxF;AAAA,IAAA,CACD;;;kBAICk0B,EAuCS0D,GAAA,EAvCD,QAAO,cAAU;AAAA,mBACvB,MAEc;AAAA,UAFdlvC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAA4E;AAAA,cAA5EpvC,EAA4E46C,IAAA;AAAA,4BAA/CzK,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAW,QAAO;AAAA,cAAA;;;;UAGjEnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,uBACrB,MAAgF;AAAA,cAAhFpvC,EAAgF46C,IAAA;AAAA,4BAAnDzK,EAAA;AAAA,8DAAAA,EAAK,QAAAhF;AAAA,gBAAE,UAAS;AAAA,gBAAa,QAAO;AAAA,cAAA;;;;UAGnEnrC,EAWQgrC,GAAA,EAXA,QAAQ,MAAE;AAAA,uBAChB,MAIQ;AAAA,cAJRhrC,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,2BACd,MAEc;AAAA,kBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,+BACrB,MAAoG;AAAA,sBAApGpvC,EAAoGkrC,GAAA;AAAA,wBAAlF,OAAOmU,EAAA;AAAA,iEAAAA,EAAU,QAAAlU;AAAA,wBAAE,eAAA;AAAA,wBAAY,aAAY;AAAA,wBAAO,SAASE,EAAAqU,EAAA;AAAA,sBAAA;;;;;;;cAGjF1/C,EAIQirC,GAAA,EAJA,MAAM,MAAE;AAAA,2BACd,MAEc;AAAA,kBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,+BACrB,MAAoG;AAAA,sBAApGpvC,EAAoGkrC,GAAA;AAAA,wBAAlF,OAAOoU,EAAA;AAAA,iEAAAA,EAAU,QAAAnU;AAAA,wBAAE,eAAA;AAAA,wBAAY,aAAY;AAAA,wBAAO,SAASE,EAAAsU,EAAA;AAAA,sBAAA;;;;;;;;;;UAKnF3/C,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,uBACvB,MAAmC;AAAA,cAAnCpvC,EAAmCy0C,IAAA;AAAA,4BAATn5B,EAAA;AAAA,8DAAAA,EAAK,QAAA6vB;AAAA,cAAA;;;;UAGjCnrC,EAQcovC,GAAA,EARD,OAAM,QAAI;AAAA,uBACrB,MAMgB;AAAA,cANhBpvC,EAMgBq0C,GAAA;AAAA,gBANO,OAAOkL,EAAA;AAAA,yDAAAA,EAAS,QAAApU;AAAA,cAAA;2BACrB,MAA4B;AAAA,wBAA5CL,EAIiBrxB,IAAA,MAAAsxB,GAJcyU,GAAY,CAApB1/C,MAAvBE,EAIiBs0C,GAAA;AAAA,oBAJ6B,KAAKx0C,EAAK;AAAA,oBAAQ,OAAOA,EAAK;AAAA,kBAAA;+BAC1E,MAEY;AAAA,sBAFZE,EAEYu0C,GAAA;AAAA,wBAFA,OAAOz0C,EAAK;AAAA,sBAAA;mCACtB,MAA6B;AAAA,gCAA7B0rC,EAA6BgJ,GAAb10C,EAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;;UAMjCE,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,uBACtB,MAA8C;AAAA,cAA9CpvC,EAA8C00C,IAAA;AAAA,4BAAlB+K,EAAA;AAAA,8DAAAA,EAAc,QAAAtU;AAAA,cAAA;;;;;;;;;2BCvE1CyU,KAA0B;;;;;;;;;;;;;;;;AAKhC,UAAMpkD,IAAQysC,GA4BRO,IAAWC,GAAA,GACXoX,IAAY7gD,GAAsB,SAAS;AAEjD,IAAA4F,GAAU,MAAM;AACd,YAAMk7C,IAAQ,aAAa,QAAQF,EAAuB;AAC1D,OAAIE,MAAU,aAAaA,MAAU,WAAWA,MAAU,YAAYA,MAAU,aAC9ED,EAAU,QAAQC;AAAA,IAEtB,CAAC,GAEDj7C,GAAMg7C,GAAW,CAAA3kD,MAAS;AACxB,mBAAa,QAAQ0kD,IAAyB1kD,CAAK;AAAA,IACrD,CAAC;AAED,UAAM6kD,IAAgBl+C,EAAS,MAAMg+C,EAAU,UAAU,SAAS,GAE5DG,IAAkBn+C,EAAS,MAAMrG,EAAM,cAAc,CAACukD,EAAc,KAAK,GACzEE,IAAoBp+C,EAAS,MAAMrG,EAAM,gBAAgB,CAACukD,EAAc,KAAK,GAE7EG,IAAar+C;AAAA,MAAS,MAC1BrG,EAAM,iBAAiB,OAAO,CAAAC,MACxBA,MAAQ,WAAiBukD,EAAgB,QACzCvkD,MAAQ,aAAmBwkD,EAAkB,QAC7CxkD,MAAQ,eAAqBD,EAAM,iBACnCC,MAAQ,eAAqBD,EAAM,iBACnCC,MAAQ,WAAiBD,EAAM,aAC/BC,MAAQ,cAAoBD,EAAM,gBAC/B,EACR;AAAA,IAAA,GAGG2kD,IAAgBt+C;AAAA,MAAS,MAC5B,CAAC,WAAW,GAAGu+C,EAA0B,EAAyB,IAAI,CAAAllD,MAAS;AAC9E,cAAMmlD,IAAS7kD,EAAM,OAAO,QACtB8kD,IACJplD,MAAU,YACNqlD,GAAoBF,CAAM,KAAKG,GAA6BH,GAAQ,OAAO,IAC3EI,GAAmBJ,KAAA,gBAAAA,EAASnlD,EAAgC,KAC5DslD,GAA6BH,GAAQnlD,CAA+B;AAC1E,eAAO;AAAA,UACL,OAAAA;AAAA,UACA,OAAOwlD,GAA0BxlD,CAAK;AAAA,UACtC,KAAKolD;AAAA,QAAA;AAAA,MAET,CAAC;AAAA,IAAA,GAGGK,IAAmB9+C,EAAmB;AAAA,MAC1C,KAAK,OACHqrC,GAAmB1xC,EAAM,MAAM,GAC3BqkD,EAAU,UAAU,YACfrkD,EAAM,OAAO,OAAQ,WAAW,CAAA,IAElCA,EAAM,OAAO,OAAQqkD,EAAU,KAAK,KAAK,CAAA;AAAA,MAElD,KAAK,CAAA3kD,MAAS;AACZ,QAAAgyC,GAAmB1xC,EAAM,MAAM;AAC/B,cAAM2xC,IAAU8D,GAAgB/1C,CAAK;AACrC,QAAI,OAAO,KAAKiyC,CAAO,EAAE,WAAW,IAClC,OAAO3xC,EAAM,OAAO,OAAQqkD,EAAU,KAAK,IAE3CrkD,EAAM,OAAO,OAAQqkD,EAAU,KAAK,IAAI1S;AAE1C,cAAME,IAAaC,GAAkB9xC,EAAM,OAAO,UAAU,CAAA,CAAE;AAC9D,QAAI6xC,IACF7xC,EAAM,OAAO,SAAS6xC,IAEtB,OAAO7xC,EAAM,OAAO;AAAA,MAExB;AAAA,IAAA,CACD,GAEKolD,IAAY/+C,EAAS,MAAM,KAAK,UAAU8+C,EAAiB,SAAS,CAAA,GAAI,MAAM,CAAC,CAAC;AAEtF,aAASE,IAAmB;AAC1B,UAAKrY,GACL;AAAA,YAAIqX,EAAU,UAAU,WAAW;AACjC,UAAArX,EAAS,kBAAA;AACT;AAAA,QACF;AACA,QAAAA,EAAS,gBAAgBhtC,EAAM,OAAO,IAAIqkD,EAAU,KAAK;AAAA;AAAA,IAC3D;AAEA,WAAAh7C,GAAM,CAACg7C,GAAW,MAAMrkD,EAAM,OAAO,EAAE,GAAGqlD,GAAkB,EAAE,WAAW,IAAM;;;QAI7ElW,EAGM,OAHNC,IAGM;AAAA,UAFJ5qC,EAA6I8gD,GAAA;AAAA,YAAhI,OAAM;AAAA,YAAe,OAAOjB,EAAA;AAAA,qDAAAA,EAAS,QAAA1U;AAAA,YAAE,OAAA;AAAA,YAAO,SAASgV,EAAA,MAAc,IAAI,CAAArgD,OAAI,EAAA,OAAcA,EAAK,OAAK,OAASA,EAAK,MAAA,EAAK;AAAA,UAAA;UACrIE,EAA+EqrC,EAAAW,EAAA,GAAA;AAAA,YAAlE,eAAa4U,EAAA;AAAA,YAAW,UAAS;AAAA,YAAO,aAAA;AAAA,YAAW,QAAQ;AAAA,UAAA;;QAE1E5gD,EAmBaksC,GAAA;AAAA,UAnBD,OAAA;AAAA,UAAM,wBAAqB;AAAA,UAAO,sBAAoBgU,EAAA;AAAA,QAAA;qBAChE,MAEmB;AAAA,YAFKF,EAAA,cAAxBxU,EAEmBW,GAAA;AAAA,cAFsB,KAAI;AAAA,cAAS,QAAO;AAAA,YAAA;yBAC3D,MAA+G;AAAA,gBAA/GnsC,EAA+G+gD,IAAA;AAAA,8BAApFJ,EAAA;AAAA,gEAAAA,EAAgB,QAAAxV;AAAA,kBAAG,iBAAelD,EAAA;AAAA,kBAAe,mBAAiBA,EAAA;AAAA,gBAAA;;;;YAEvEgY,EAAA,cAAxBzU,EAEmBW,GAAA;AAAA,cAFwB,KAAI;AAAA,cAAW,QAAO;AAAA,YAAA;yBAC/D,MAAqF;AAAA,gBAArFnsC,EAAqFghD,IAAA;AAAA,8BAAxDL,EAAA;AAAA,gEAAAA,EAAgB,QAAAxV;AAAA,kBAAG,oBAAkBlD,EAAA;AAAA,gBAAA;;;;YAE5CA,EAAA,uBAAxBuD,EAEmBW,GAAA;AAAA,cAFqB,KAAI;AAAA,cAAa,QAAO;AAAA,YAAA;yBAC9D,MAAmD;AAAA,gBAAnDnsC,EAAmDihD,IAAA;AAAA,8BAApBN,EAAA;AAAA,gEAAAA,EAAgB,QAAAxV;AAAA,gBAAA;;;;YAEzBlD,EAAA,uBAAxBuD,EAEmBW,GAAA;AAAA,cAFqB,KAAI;AAAA,cAAa,QAAO;AAAA,YAAA;yBAC9D,MAAmD;AAAA,gBAAnDnsC,EAAmDkhD,IAAA;AAAA,8BAApBP,EAAA;AAAA,gEAAAA,EAAgB,QAAAxV;AAAA,gBAAA;;;;YAEzBlD,EAAA,mBAAxBuD,EAEmBW,GAAA;AAAA,cAFiB,KAAI;AAAA,cAAS,QAAO;AAAA,YAAA;yBACtD,MAA+C;AAAA,gBAA/CnsC,EAA+CmhD,IAAA;AAAA,8BAApBR,EAAA;AAAA,gEAAAA,EAAgB,QAAAxV;AAAA,gBAAA;;;;YAErBlD,EAAA,sBAAxBuD,EAEmBW,GAAA;AAAA,cAFoB,KAAI;AAAA,cAAY,QAAO;AAAA,YAAA;yBAC5D,MAAwC;AAAA,gBAAxCnsC,EAAwCohD,IAAA,EAAlB,QAAQnZ,EAAA,OAAA,GAAM,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,cAAA;;;;;;;;;ICrI7BoZ,KAAgD,EAAE,eAAe,GAAA,GAExEC,KAAgB;AAWf,SAASC,GAAWC,GAA2BC,IAAiC,IAAiB;AACtG,SAAO,EAAE,MAAAD,GAAM,UAAAC,EAAA;AACjB;AAMO,SAASC,GAAiBD,GAAwC;AACvE,MAAIlkD,IAAS;AACb,aAAWokD,KAAWF,GAAU;AAC9B,QAAIE,MAAYL,IAAe;AAC7B,MAAA/jD,KAAU;AACV;AAAA,IACF;AACA,QAAI,OAAOokD,KAAY,UAAU;AAC/B,MAAApkD,KAAU,IAAIokD,CAAO;AACrB;AAAA,IACF;AACA,IAAApkD,IAASA,IAAS,GAAGA,CAAM,IAAIokD,CAAO,KAAKA;AAAA,EAC7C;AACA,SAAOpkD;AACT;AAMO,SAASqkD,GAAwBnlD,GAA2B;AACjE,MAAIA,EAAK,SAAS,QAAS,QAAO;AAClC,QAAMolD,IAASH,GAAiBjlD,EAAK,QAAQ;AAC7C,SAAOA,EAAK,SAAS,SAAUolD,IAAS,QAAQA,CAAM,KAAK,SAAUA;AACvE;AAiIO,SAASC,GAAsBC,GAAsB;AAC1D,SAAO,KAAKA,CAAI;AAClB;AAGA,SAASC,GAAyBL,GAAiC;AACjE,SAAOA,EAAQ,SAAS,SAASA,EAAQ,QAAQG,GAAsBF,GAAwBD,EAAQ,IAAI,CAAC;AAC9G;AAMO,SAASM,GAAiBC,GAAuC;AACtE,UAAQA,EAAW,MAAA;AAAA,IACjB,KAAK;AACH,aAAOA,EAAW;AAAA,IACpB,KAAK;AACH,aAAOJ,GAAsBF,GAAwBM,EAAW,IAAI,CAAC;AAAA,IACvE,KAAK;AACH,aAAOA,EAAW,SAAS,IAAIF,EAAwB,EAAE,KAAK,EAAE;AAAA,IAClE;AACE,aAAO;AAAA,EAAA;AAEb;AAMO,SAASG,GAA+BD,GAAuC;AACrD,SAAOD,GAAiBC,CAAU;AAOnE;AAOO,SAASE,GACdC,GACAC,GACS;AACT,QAAMC,IAAWF,KAAuB;AACxC,SAAIE,MAAa,QAAc,KAC3BA,MAAa,UAAgBD,MAAc,UAC3CC,MAAa,WAAiBD,MAAc,WAC5CC,MAAa,WACRD,MAAc,YAAYA,MAAc,YAAYA,MAAc,aAAaA,MAAc,SAE/F;AACT;AAMO,SAASE,GAAY/lD,GAA2B;AACrD,SAAO,GAAGA,EAAK,IAAI,IAAImlD,GAAwBnlD,CAAI,CAAC;AACtD;AAOO,SAASgmD,GAAkBC,GAAuBf,GAA0C;AACjG,SAAO,EAAE,MAAMe,EAAS,MAAM,UAAU,CAAC,GAAGA,EAAS,UAAUf,CAAO,EAAA;AACxE;ACxOA,MAAMgB,KAAiB;AAMhB,SAASC,GAAkBC,GAA2C;AAC3E,MAAI,CAACA,EAAS,QAAO,CAAA;AACrB,MAAI;AACF,WAAO,EAAE,GAAIC,GAAMD,CAAO,EAAA;AAAA,EAC5B,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AAOO,SAASE,GAAoBpa,GAA+Bqa,GAAiE;AAClI,QAAMC,IAAS,EAAE,GAAGD,EAAA;AACpB,aAAWljD,MAAQ6oC,KAAA,gBAAAA,EAAM,SAAQ,CAAA,GAAI;AACnC,UAAMnW,IAAO1yB,EAAK,KAAK,KAAA;AACvB,IAAI0yB,KAAQywB,EAAOzwB,CAAI,MAAM,WAC3BywB,EAAOzwB,CAAI,IAAI1yB,EAAK;AAAA,EAExB;AACA,SAAOmjD;AACT;AAOO,SAASC,GAAkBva,GAA+Bwa,GAAwC;AACvG,MAAI,CAACxa,KAAQwa,KAAY,aAAa,CAAA;AAEtC,QAAM9lD,IAAkB,CAAA;AAExB,WAAS+lD,EAAKC,GAAqC;AACjD,QAAI,CAACA,EAAM,QAAO;AAClB,eAAW7gD,KAAQ6gD,GAAM;AAGvB,UAFAhmD,EAAM,KAAKmF,CAAI,GACXA,EAAK,OAAO2gD,KACZ3gD,EAAK,YAAY4gD,EAAK5gD,EAAK,QAAQ,EAAG,QAAO;AACjD,MAAAnF,EAAM,IAAA;AAAA,IACR;AACA,WAAO;AAAA,EACT;AAEA,SAAA+lD,EAAK,CAACza,CAAI,CAAC,GACJtrC;AACT;AAMO,SAASimD,GAAmBC,GAA8B;AAC/D,SAAOA,EAAU,KAAK,CAAAC,MAAUA,EAAO,SAAS,MAAM;AACxD;AAMO,SAASC,GAAwBF,GAAoC;AAC1E,WAASlgD,IAAIkgD,EAAU,SAAS,GAAGlgD,KAAK,GAAGA;AACzC,QAAIkgD,EAAUlgD,CAAC,EAAE,SAAS,OAAQ,QAAOkgD,EAAUlgD,CAAC;AAEtD,SAAO;AACT;AAQO,SAASqgD,GAA2BH,GAAqBI,GAAyC;AACvG,MAAI,CAACJ,EAAU,OAAQ,QAAO;AAC9B,QAAMK,IAAOL,EAAUA,EAAU,SAAS,CAAC;AAE3C,SAAII,KAAkBC,EAAK,SAAS,SAC3BH,GAAwBF,CAAS,IAGtCK,EAAK,SAAS,SACTA,IAGFH,GAAwBF,CAAS;AAC1C;AAQO,SAASM,GACdN,GACAO,GACAH,GACgC;AAChC,QAAMI,IAAaL,GAA2BH,GAAWI,CAAc;AACvE,MAAI,CAACI,EAAY,QAAO;AAExB,QAAMC,IAAcC,GAAsBV,GAAWQ,CAAU;AAC/D,SAAOG,GAAsBH,GAAYD,GAAUE,CAAW;AAChE;AAGA,SAASG,GAAoBC,GAAmCC,GAA+B;AAC7F,SAAkCD,KAAiB,QAAQA,MAAiB,KAAWC,IAChFD;AACT;AAGA,SAASE,GAAqBnP,GAOR;;AACpB,QAAMoP,IAAYC,GAAuBrP,EAAM,KAAK,GAC9CsP,IAAarC,IAAwBlkD,IAAAi3C,EAAM,eAAN,gBAAAj3C,EAAkB,WAAWqmD,CAAS;AAEjF,SAAO;AAAA,IACL,KAAKpP,EAAM;AAAA,IACX,OAAOA,EAAM;AAAA,IACb,MAAMA,EAAM;AAAA,IACZ,WAAAoP;AAAA,IACA,SAASG,GAAwBvP,EAAM,KAAK;AAAA,IAC5C,MAAMA,EAAM;AAAA,IACZ,YAAAsP;AAAA,IACA,UAAU,CAACA;AAAA,EAAA;AAEf;AAUA,SAASE,GACPzpD,GACAwnD,GACAkC,GACAC,GACAC,GACqB;AACrB,MAAIF,KAASjC,GAAgB,QAAO,CAAA;AAEpC,QAAMluC,IAAO+vC,GAAuBtpD,CAAK;AAEzC,SAAIuZ,MAAS,YAAYvZ,KAAS,OAAOA,KAAU,YAAY,CAAC,MAAM,QAAQA,CAAK,IAC1E,OAAO,QAAQA,CAAgC,EAAE,IAAI,CAAC,CAACO,GAAKspD,CAAU,MAAM;AACjF,UAAMtoD,IAAOgmD,GAAkBC,GAAUjnD,CAAG,GACtC+G,IAAO8hD,GAAqB;AAAA,MAChC,KAAK9B,GAAY/lD,CAAI;AAAA,MACrB,OAAOhB;AAAA,MACP,MAAMinD,EAAS,SAAS,SAAS,SAAS;AAAA,MAC1C,MAAAjmD;AAAA,MACA,OAAOsoD;AAAA,MACP,YAAAF;AAAA,IAAA,CACD,GACK3lD,IAAWylD,GAAmBI,GAAYtoD,GAAMmoD,IAAQ,GAAGC,GAAYC,CAAqB;AAClG,WAAO5lD,EAAS,SAAS,EAAE,GAAGsD,GAAM,UAAAtD,MAAasD;AAAA,EACnD,CAAC,IAGCiS,MAAS,WAAW,MAAM,QAAQvZ,CAAK,IAClC8pD,GAAmB9pD,GAAOwnD,GAAUkC,GAAOC,GAAYC,CAAqB,IAG9E,CAAA;AACT;AAGA,SAASE,GACP9pD,GACAwnD,GACAkC,GACAC,GACAC,GACqB;AACrB,QAAMG,IAA6B,CAAA,GAC7BC,IAAe9C,GAAwByC,KAAA,gBAAAA,EAAY,WAAW,OAAO;AAE3E,MAAIC,GAAuB;AACzB,UAAMK,IAAc1C,GAAkBC,GAAU,OAAO;AACvD,IAAAuC,EAAM,KAAK;AAAA,MACT,KAAK,GAAGzC,GAAYE,CAAQ,CAAC;AAAA,MAC7B,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAMyC;AAAA,MACN,YAAYD;AAAA,MACZ,UAAU,CAACA;AAAA,IAAA,CACZ;AAAA,EACH;AAEA,QAAME,IAASlqD,EAAM,CAAC;AACtB,MAAIkqD,MAAW,OAAW,QAAOH;AAEjC,QAAMI,IAAa5C,GAAkBC,GAAU,CAAC,GAC1C4C,IAAad,GAAuBY,CAAM,GAC1CG,IAAgC;AAAA,IACpC,KAAK,GAAG/C,GAAYE,CAAQ,CAAC;AAAA,IAC7B,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW4C;AAAA,IACX,SAASZ,GAAwBU,CAAM;AAAA,IACvC,MAAMC;AAAA,IACN,YAAYjD,GAAwByC,KAAA,gBAAAA,EAAY,WAAWS,CAAU;AAAA,IACrE,UAAU,CAAClD,GAAwByC,KAAA,gBAAAA,EAAY,WAAWS,CAAU;AAAA,EAAA,GAGhEpmD,IAAWylD,GAAmBS,GAAQC,GAAYT,IAAQ,GAAGC,GAAYC,CAAqB;AACpG,SAAI5lD,EAAS,WAAQqmD,EAAW,WAAWrmD,IAC3C+lD,EAAM,KAAKM,CAAU,GAEdN;AACT;AAGA,SAASO,GACP7c,GACAqa,GACA6B,GACAC,GACqB;AACrB,QAAMW,IAA4B,CAAA,GAC5BC,wBAAW,IAAA,GAEXC,IAAY,CAACnzB,GAAcozB,GAAyBvB,GAAsBD,MAA2B;AACzG,UAAMpQ,IAAUxhB,EAAK,KAAA;AACrB,QAAI,CAACwhB,KAAW0R,EAAK,IAAI1R,CAAO,EAAG;AACnC,IAAA0R,EAAK,IAAI1R,CAAO;AAEhB,UAAM6R,IAAe1B,GAAoBC,GAAcC,CAAW,GAC5D5nD,IAAO8kD,GAAW,QAAQ,CAACvN,CAAO,CAAC,GACnCxxC,IAAO8hD,GAAqB,EAAE,KAAK9B,GAAY/lD,CAAI,GAAG,OAAOu3C,GAAS,MAAA4R,GAAM,MAAAnpD,GAAM,OAAOopD,GAAc,YAAAhB,GAAY,GACnH3lD,IAAWylD,GAAmBkB,GAAcppD,GAAM,GAAGooD,GAAYC,CAAqB;AAC5F,IAAI5lD,EAAS,WAAQsD,EAAK,WAAWtD,IACrCumD,EAAK,KAAKjjD,CAAI;AAAA,EAChB;AAEA,aAAW1C,MAAQ6oC,KAAA,gBAAAA,EAAM,SAAQ,CAAA;AAC/B,IAAAgd,EAAU7lD,EAAK,MAAM,SAASA,EAAK,OAAOkjD,EAAcljD,EAAK,KAAK,KAAA,CAAM,CAAC;AAG3E,aAAW,CAAC0yB,GAAMt3B,CAAK,KAAK,OAAO,QAAQ8nD,CAAa;AACtD,IAAK0C,EAAK,IAAIlzB,CAAI,KAAGmzB,EAAUnzB,GAAM,WAAWt3B,GAAOA,CAAK;AAG9D,SAAOuqD;AACT;AAGA,SAASK,GACPC,GACAlB,GACAC,GACqB;AACrB,SAAKiB,IAEE,OAAO,QAAQA,CAAU,EAAE,IAAI,CAAC,CAACtqD,GAAKP,CAAK,MAAM;AACtD,UAAMmjB,IAAQ5iB,MAAQ,WAAW,OAAO,KAAKsqD,CAAU,EAAE,WAAW,IAAI,eAAetqD,GACjFgB,IAAO8kD,GAAW,QAAQ,CAAC9lD,CAAG,CAAC,GAC/B+G,IAAO8hD,GAAqB,EAAE,KAAK9B,GAAY/lD,CAAI,GAAG,OAAA4hB,GAAO,MAAM,QAAQ,MAAA5hB,GAAM,OAAAvB,GAAO,YAAA2pD,GAAY,GACpG3lD,IAAWylD,GAAmBzpD,GAAOuB,GAAM,GAAGooD,GAAYC,CAAqB;AACrF,WAAO5lD,EAAS,SAAS,EAAE,GAAGsD,GAAM,UAAAtD,MAAasD;AAAA,EACnD,CAAC,IARuB,CAAA;AAS1B;AAMO,SAASwjD,GAAmB3jB,GAAyD;AAC1F,QAAM,EAAE,YAAAwiB,GAAY,MAAAlc,GAAM,eAAAqa,IAAgB,CAAA,GAAI,kBAAAiD,GAAkB,mBAAAC,GAAmB,YAAAH,EAAA,IAAe1jB,GAC5FyiB,KAAwBD,KAAA,gBAAAA,EAAY,2BAA0B,IAC9DsB,IAAeX,GAAoB7c,GAAMqa,GAAe6B,GAAYC,CAAqB,GACzFsB,IAA6B,CAAA;AAanC,MAXID,EAAa,UACfC,EAAM,KAAK;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAUD;AAAA,EAAA,CACX,GAGCF,GAAkB;AACpB,UAAMI,IAAeP,GAAoBC,GAAYlB,GAAYC,CAAqB;AACtF,IAAIuB,EAAa,UACfD,EAAM,KAAK;AAAA,MACT,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,UAAUC;AAAA,IAAA,CACX;AAAA,EAEL;AAEA,MAAIH,GAAmB;AACrB,UAAMI,IAAgBlE,GAAwByC,KAAA,gBAAAA,EAAY,WAAW,QAAQ;AAC7E,IAAAuB,EAAM,KAAK;AAAA,MACT,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM7E,GAAW,OAAO;AAAA,MACxB,YAAY+E;AAAA,MACZ,UAAU,CAACA;AAAA,IAAA,CACZ;AAAA,EACH;AAEA,SAAOF;AACT;AAMO,SAASG,GAAsBtB,GAAsC;;AAC1E,QAAMrpD,IAAiB,CAAA;AACvB,aAAW4G,KAAQyiD;AACjB,KAAI/mD,IAAAsE,EAAK,aAAL,QAAAtE,EAAe,UACjBtC,EAAK,KAAK4G,EAAK,KAAK,GAAG+jD,GAAsB/jD,EAAK,QAAQ,CAAC;AAG/D,SAAO5G;AACT;;;;;;;;;;;;;;;;;;AChXA,UAAMJ,IAAQysC,GA0BR3yB,IAAO4yB,GAEPM,IAAWC,GAAA,GACX+d,IAAmBlgD,GAAOmgD,IAAe,IAAI,GAE7CC,IAAiB1nD,GAAI,CAAC,GACtBs3C,IAAct3C,GAAI,EAAK,GACvB2nD,IAAe3nD,GAAc,CAAC,YAAY,CAAC;AAEjD,IAAA6F;AAAA,MACE,MAAM2hD,KAAA,gBAAAA,EAAkB;AAAA,MACxB,MAAM;AACJ,QAAAE,EAAe;AAAA,MACjB;AAAA,MACA,EAAE,MAAM,GAAA;AAAA,IAAK;AAIf,UAAMnD,IAAY1hD,EAAS,MAAM;;AAC/B,YAAMC,IAAKtG,EAAM,cAAY0C,IAAAsqC,KAAA,gBAAAA,EAAU,mBAAV,gBAAAtqC,EAA0B;AACvD,aAAOglD,IAAkB1a,KAAA,gBAAAA,EAAU,SAAQ,MAAM1mC,CAAE;AAAA,IACrD,CAAC,GAGK8kD,IAAa/kD,EAAS,MAAMyhD,GAAmBC,EAAU,KAAK,CAAC,GAG/DsD,IAAsBhlD,EAAS,MAAM6hD,GAA2BH,EAAU,OAAO/nD,EAAM,cAAc,CAAC,GAGtGwnD,IAAgBnhD,EAAS,MAAM;AACnC,MAAA6kD,EAAe;AACf,YAAMI,IAASlE,GAAkB4D,KAAA,gBAAAA,EAAkB,QAAQ;AAC3D,aAAOzD,IAAoBva,KAAA,gBAAAA,EAAU,SAAQ,MAAMse,CAAM;AAAA,IAC3D,CAAC,GAGKf,IAAalkD,EAAS,OAC1B6kD,EAAe,OACVG,EAAoB,QAClBhD,GAAoBN,EAAU,OAAOP,EAAc,OAAOxnD,EAAM,cAAc,IAD9C,KAExC,GAGK6nD,IAAOxhD;AAAA,MAAS,MACpBmkD,GAAmB;AAAA,QACjB,OAAMxd,KAAA,gBAAAA,EAAU,SAAQ;AAAA,QACxB,eAAewa,EAAc;AAAA,QAC7B,YAAYxnD,EAAM;AAAA,QAClB,kBAAkBorD,EAAW;AAAA,QAC7B,mBAAmBA,EAAW;AAAA,QAC9B,YAAYb,EAAW;AAAA,MAAA,CACxB;AAAA,IAAA;AAGH,IAAAlhD;AAAA,MACEw+C;AAAA,MACA,CAAA4B,MAAS;AACP,cAAMrpD,IAAO2qD,GAAsBtB,CAAK;AACxC,QAAA0B,EAAa,QAAQ/qD,EAAK,SAASA,IAAO,CAAC,YAAY;AAAA,MACzD;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;AAOpB,aAASmrD,EAASvkD,GAAyB;AACzC,aAAIA,EAAK,SAAS,QAAcwkD,KAC5BxkD,EAAK,SAAS,UAAgBykD,KAC3BriB;AAAA,IACT;AAMA,aAASsiB,EAAU1kD,GAAyB;AAC1C,aAAIA,EAAK,SAAS,QACT,4FAELA,EAAK,SAAS,UAAUA,EAAK,SAAS,UACjC,2FAEF;AAAA,IACT;AAOA,aAAS2kD,EAAaC,GAAiBzlD,GAAoC;AACzE,YAAMa,IAAOb,EAAM;AACnB,MAAI,EAACa,KAAA,QAAAA,EAAM,eAAc,CAACA,EAAK,QAAQA,EAAK,YAC5C6kD,EAAW7kD,EAAK,IAAI;AAAA,IACtB;AAMA,aAAS6kD,EAAW5qD,GAAmB;AACrC,YAAMslD,IAAOvmD,EAAM,iBACf2mD,GAA+B,EAAE,MAAM,OAAO,MAAA1lD,EAAA,CAAM,IACpDqlD,GAAsBF,GAAwBnlD,CAAI,CAAC;AAEvD,MAAA6Y,EAAK,qBAAqB9Z,EAAM,SAAS,GAAGA,EAAM,cAAc,EAAE,GAAGumD,CAAI,KAAKA,CAAI,GAClFzL,EAAY,QAAQ;AAAA,IACtB;;;kBAIE9K,EAyDY+I,GAAA,EAzDA,OAAOtM,EAAA,SAAK;AAAA,mBACtB,MAuDY;AAAA,UAvDZjoC,EAuDY83C,GAAA;AAAA,YAvDD,OAAM;AAAA,YAAmB,MAAMxB,EAAA;AAAA,oDAAAA,EAAW,QAAAnL;AAAA,YAAE,SAAQ;AAAA,YAAQ,WAAU;AAAA,UAAA;YACpE,WACT,MA0CM;AAAA,cA1CNR,EA0CM,OA1CNC,IA0CM;AAAA,gBAxCIyY,EAAA,MAAK,eADb7X,EAmCS8b,GAAA;AAAA;kBAjCN,aAAWjE,EAAA;AAAA,kBACX,eAAa,EAAA,OAAA,SAAA,KAAA,OAAA,UAAA,WAAA;AAAA,kBACb,iBAAesD,EAAA;AAAA,kBAChB,cAAA;AAAA,kBACC,yBAAoB9a,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAEwb,EAAA,QAAexb;AAAA,kBACrC,UAAQgc;AAAA,gBAAA;kBAEE,OAAKI,EACd,CAuBM/kD,MAxBc;AAAA,oBACpBmoC,EAuBM,OAAA;AAAA,sBAtBJ,OAAKsN,GAAA,CAAC,2CACEz1C,EAAK,cAAU,CAAKA,EAAK,WAAQ,mBAAsBA,EAAK,WAAQ,eAAA,EAAA,CAAA;AAAA,sBAC3E,mBAAYA,EAAK,cAAU,CAAKA,EAAK,YAAYA,EAAK,QAAQ6kD,EAAW7kD,EAAK,IAAI,GAAA,CAAA,MAAA,CAAA;AAAA,oBAAA;sBAG3EA,EAAK,SAAI,gBADjBsoC,EAMO,QAAA;AAAA;wBAJL,OAAKmN,GAAA,CAAC,qGACEiP,EAAU1kD,CAAI,CAAA,CAAA;AAAA,sBAAA;8BAEtBgpC,EAAkCgJ,GAAlBuS,EAASvkD,CAAI,CAAA,CAAA;AAAA,sBAAA;sBAE/BmoC,EAUM,OAVNe,IAUM;AAAA,wBATJf,EAKM,OALNoB,IAKM;AAAA,0BAJJpB,EAAwD,QAAxDsB,IAAwDN,GAApBnpC,EAAK,KAAK,GAAA,CAAA;AAAA,0BACjCA,EAAK,kBAAlBgpC,EAEQC,GAAA;AAAA;4BAFsB,UAAU;AAAA,4BAAO,OAAM;AAAA,0BAAA;uCACnD,MAAoB;AAAA,8BAAjBoP,GAAAlP,GAAAnpC,EAAK,SAAS,GAAA,CAAA;AAAA,4BAAA;;;;wBAGVA,EAAK,WAAhBgqC,EAAA,GAAA1B,EAEM,OAFNsB,IAEMT,GADDnpC,EAAK,OAAO,GAAA,CAAA;;;;;+DAMzBgpC,EAIUI,GAAA,EAAA,KAAA,KAAA;AAAA,kBAHG,eACT,MAA+B,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,oBAA/BlB,EAA+B,aAA1B,wBAAoB,EAAA;AAAA,kBAAA;;;;;uBAKjC,MAQI;AAAA,cARJA,EAQI,KAAA;AAAA,gBARD,OAAM;AAAA,gBAAiE,gCAAO2L,EAAA,QAAW;AAAA,cAAA;gBAC1F3L,EAMM,OAAA;AAAA,kBAND,SAAQ;AAAA,kBAAgB,SAAQ;AAAA,kBAAM,OAAM;AAAA,kBAAK,QAAO;AAAA,gBAAA;kBAC3DA,EAIQ,QAAA;AAAA,oBAHN,GAAE;AAAA,oBACF,QAAK;AAAA,oBACL,MAAK;AAAA,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACjMjB,UAAMwF,IAAQC,GAAmBnI,GAAA,YAAgB;;;kBAI/CuD,EAYc4D,GAAA,MAAAoY,GAAA;AAAA,mBADZ,MAAQ;AAAA,UAARC,GAAQC,EAAA,QAAA,SAAA;AAAA,QAAA;;;QAVQzf,EAAA;gBAAQ;AAAA,gBACtB,MAAuC;AAAA,YAAvC0C,EAAuC,QAAvCC,IAAuCe,GAAf1D,EAAA,KAAK,GAAA,CAAA;AAAA,YAErBA,EAAA,iBADRuD,EAMEmc,IAAA;AAAA;0BAJSxX,EAAA;AAAA,4DAAAA,EAAK,QAAAhF;AAAA,cACb,aAAWlD,EAAA;AAAA,cACX,YAAYA,EAAA,cAAcoD,EAAAgW,EAAA;AAAA,cAC1B,oBAAkBpZ,EAAA;AAAA,YAAA;;;;;;;;;;;AChC3B,UAAM2f,IAAY5oD,GAAY,OAAO;AAGrC,WAAA6F,GAAM+iD,GAAW,CAAAC,MAAU;AACzB,mBAAa,QAAQ,6BAA6BA,CAAM;AAAA,IAC1D,CAAC,GAEDjjD,GAAU,MAAM;AAEd,YAAMkjD,IAAW,aAAa,QAAQ,2BAA2B,KAAK;AACtE,MAAIA,KAAYC,KAAWD,CAA6C,MACtEF,EAAU,QAAQE;AAAA,IAEtB,CAAC;;kBAICtc,EAaSwc,GAAA;AAAA,QAbO,WAAWJ,EAAA;AAAA,qDAAAA,EAAS,QAAAzc;AAAA,QAAE,UAAA;AAAA,QAAS,OAAM;AAAA,MAAA;mBACnD,MAEa;AAAA,UAF0B8c,EAAAA,OAAO,cAA9Czc,EAEa0c,GAAA;AAAA,YAFD,KAAI;AAAA,YAAQ,KAAI;AAAA,UAAA;uBAC1B,MAAqB;AAAA,cAArBT,GAAqBC,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA,YAAA;;;UAEgBO,EAAAA,OAAO,cAA9Czc,EAEa0c,GAAA;AAAA,YAFD,KAAI;AAAA,YAAQ,KAAI;AAAA,UAAA;uBAC1B,MAAqB;AAAA,cAArBT,GAAqBC,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA,YAAA;;;UAEgBO,EAAAA,OAAO,cAA9Czc,EAEa0c,GAAA;AAAA,YAFD,KAAI;AAAA,YAAQ,KAAI;AAAA,UAAA;uBAC1B,MAAqB;AAAA,cAArBT,GAAqBC,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA,YAAA;;;UAEmBO,EAAAA,OAAO,iBAAjDzc,EAEa0c,GAAA;AAAA,YAFD,KAAI;AAAA,YAAW,KAAI;AAAA,UAAA;uBAC7B,MAAwB;AAAA,cAAxBT,GAAwBC,EAAA,QAAA,YAAA,CAAA,GAAA,QAAA,EAAA;AAAA,YAAA;;;;;;;;;;;;;;ACvB9B,UAAMlsD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA+B;AAAA,MACzH,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe2sD;AAAA,IAAA,CAChB,GAEKC,IAAe7U,EAAA;;;kBAInB/H,EA4Dc6c,IAAA,MAAA;AAAA,QA3DD,SACT,MAkDS;AAAA,UAlDTroD,EAkDSkvC,GAAA;AAAA,YAlDD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAEkBsoD,IAAA;AAAA,gBAFQ,YAAAjd,EAAA4H,CAAA,EAAc;AAAA,gBAAd,uBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,gBAAE,OAAM;AAAA,gBAAM,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BACjF,MAA6E;AAAA,kBAA7E7yC,EAA6EkwC,GAAA;AAAA,oBAA5D,OAAO7E,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAEjEnrC,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,2BACrB,MAEgB;AAAA,kBAFhBpvC,EAEgBq0C,GAAA;AAAA,oBAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,oBAAE,MAAK;AAAA,kBAAA;+BACrC,MAAmC;AAAA,8BAAnDL,EAA2HrxB,IAAA,MAAAsxB,GAA5FM,EAAAkd,EAAA,GAAmB,CAA3BzoD,YAAvB0rC,EAA2H8I,GAAA;AAAA,wBAAtE,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAAO,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAG3GE,EAeQgrC,GAAA,EAfA,QAAQ,MAAE;AAAA,2BAChB,MAMQ;AAAA,kBANRhrC,EAMQirC,GAAA,EANA,MAAM,MAAE;AAAA,+BACd,MAIc;AAAA,sBAJdjrC,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,mCACrB,MAEgB;AAAA,0BAFhBpvC,EAEgBq0C,GAAA;AAAA,4BAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,4BAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,4BAAE,MAAK;AAAA,0BAAA;uCACrC,MAAmC;AAAA,sCAAnDL,EAA2HrxB,IAAA,MAAAsxB,GAA5FM,EAAAmd,EAAA,GAAmB,CAA3B1oD,YAAvB0rC,EAA2H8I,GAAA;AAAA,gCAAtE,KAAKx0C,EAAK;AAAA,gCAAQ,OAAOA,EAAK;AAAA,8BAAA;2CAAO,MAAgB;AAAA,kCAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,gCAAA;;;;;;;;;;;;kBAI7GE,EAMQirC,GAAA,EANA,MAAM,MAAE;AAAA,+BACd,MAIc;AAAA,sBAJdjrC,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,mCACrB,MAEgB;AAAA,0BAFhBpvC,EAEgBq0C,GAAA;AAAA,4BAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,4BAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,QAAK9H;AAAA,4BAAE,MAAK;AAAA,0BAAA;uCACtC,MAAoC;AAAA,sCAApDL,EAA4HrxB,IAAA,MAAAsxB,GAA7FM,EAAAod,EAAA,GAAoB,CAA5B3oD,YAAvB0rC,EAA4H8I,GAAA;AAAA,gCAAtE,KAAKx0C,EAAK;AAAA,gCAAQ,OAAOA,EAAK;AAAA,8BAAA;2CAAO,MAAgB;AAAA,kCAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,gCAAA;;;;;;;;;;;;;;;cAKhHE,EAqBQgrC,GAAA,EArBA,QAAQ,MAAE;AAAA,2BAChB,MAIQ;AAAA,kBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,mCACrB,MAAqD;AAAA,0BAArDpvC,EAAqDqvC,GAAA;AAAA,4BAAnC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,WAAQ9H;AAAA,0BAAA;;;;;;;kBAGrDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,mCACvB,MAAkD;AAAA,0BAAlDpvC,EAAkDqvC,GAAA;AAAA,4BAAhC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,QAAK9H;AAAA,0BAAA;;;;;;;kBAGlDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,mCACvB,MAAmD;AAAA,0BAAnDpvC,EAAmDqvC,GAAA;AAAA,4BAAjC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,SAAM9H;AAAA,0BAAA;;;;;;;kBAGnDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,mCACrB,MAAkD;AAAA,0BAAlDpvC,EAAkDqvC,GAAA;AAAA,4BAAhC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,QAAK9H;AAAA,0BAAA;;;;;;;;;;;;;;QAM7C,SACT,MAA4C;AAAA,UAA5CnrC,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA6D;AAAA,UAA7D7yC,EAA6D2oD,IAAA;AAAA,wBAAxCtd,EAAA+c,CAAA;AAAA,oEAAAA,EAAY,QAAAjd,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;IC/E7C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ;AAAA,MAC1B,MAAM;AAAA,MACN,GAAG;AAAA,IACT,GAAO,MAAM,EAAE;AAAA,IACXA,EAAoB,QAAQ;AAAA,MAC1B,MAAM;AAAA,MACN,GAAG;AAAA,IACT,GAAO,MAAM,EAAE;AAAA,IACXA,EAAoB,QAAQ;AAAA,MAC1B,MAAM;AAAA,MACN,GAAG;AAAA,IACT,GAAO,MAAM,EAAE;AAAA,EACf,EAAK,CAAC;AACN;AACA,MAAAke,KAAe,EAAE,QAAQD,GAAM,GCpBzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAc;AAAA,IACZ,GAAGC;AAAA,IACH,EAAE,MAAM,SAAS,OAAO,OAAA;AAAA,IACxB,EAAE,MAAM,QAAQ,OAAO,OAAA;AAAA,EAAO;AAAA,EAEhC,UAAU,CAAA;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,QAAQ,CAAA;AACV;;;;;;ACzBA,UAAMztD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA8B;AAAA,MACxH,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe0tD;AAAA,IAAA,CAChB,GAEKC,IAAWtnD,EAAS;AAAA,MACxB,KAAK,MAAMoxC,EAAc,MAAM,OAAO;AAAA,MACtC,KAAK,CAAA/3C,MAAS;AACZ,QAAA+3C,EAAc,MAAM,MAAM/3C;AAAA,MAC5B;AAAA,IAAA,CACD,GAEKkuD,IAAc7V,EAAA;;;kBAIlB/H,EAiCc6c,IAAA,MAAA;AAAA,QAhCD,SACT,MAuBS;AAAA,UAvBTroD,EAuBSkvC,GAAA;AAAA,YAvBD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAQkBsoD,IAAA;AAAA,4BARQa,EAAA;AAAA,8DAAAA,EAAQ,QAAAhe;AAAA,gBAAE,OAAM;AAAA,gBAAM,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BACvE,MAGM;AAAA,kBAHNlI,EAGM,OAHNC,IAGM;AAAA,oBAFJ5qC,EAAwD20C,IAAA;AAAA,kCAAlCwU,EAAA;AAAA,oEAAAA,EAAQ,QAAAhe;AAAA,sBAAG,MAAM;AAAA,sBAAG,MAAK;AAAA,oBAAA;oBAC/CnrC,EAA0FkwC,GAAA;AAAA,sBAAzE,OAAOiZ,EAAA;AAAA,+DAAAA,EAAQ,QAAAhe;AAAA,sBAAE,OAAM;AAAA,sBAAiB,aAAY;AAAA,sBAAO,eAAA;AAAA,oBAAA;;kCAE9ER,EAEM,OAAA,EAFD,OAAM,qEAAiE;AAAA,uBAAC,8BAChD;AAAA,oBAAAA,EAAmC,cAAvB,kBAAgB;AAAA,uBAAO,KAChE;AAAA,kBAAA;;;;cAEF3qC,EAEkBsoD,IAAA;AAAA,gBAFQ,YAAAjd,EAAA4H,CAAA,EAAc;AAAA,gBAAd,uBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,MAAG9H;AAAA,gBAAE,OAAM;AAAA,gBAAQ,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BAClF,MAAoF;AAAA,kBAApF7yC,EAAoFkwC,GAAA;AAAA,oBAAnE,OAAO7E,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,MAAG9H;AAAA,oBAAE,aAAY;AAAA,oBAAe,eAAA;AAAA,kBAAA;;;;cAExEnrC,EAMcovC,GAAA,EAND,OAAM,UAAM;AAAA,2BACvB,MAIgB;AAAA,kBAJhBpvC,EAIgBq0C,GAAA;AAAA,oBAJO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,MAAG9H;AAAA,oBAAE,MAAK;AAAA,kBAAA;+BACpC,MAAiC;AAAA,8BAAjDL,EAEiBrxB,IAAA,MAAAsxB,GAFcM,EAAAge,EAAA,GAAiB,CAAzBvpD,YAAvB0rC,EAEiB8I,GAAA;AAAA,wBAFkC,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAC/E,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;;;;;QAMZ,SACT,MAA4C;AAAA,UAA5CE,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA4D;AAAA,UAA5D7yC,EAA4D2oD,IAAA;AAAA,wBAAvCtd,EAAA+d,CAAA;AAAA,kEAAAA,EAAW,QAAAje,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;IC7D5C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,wjBAAujB,GAAI,MAAM,EAAE;AAAA,EACxmB,EAAK,CAAC;AACN;AACA,MAAA2e,KAAe,EAAE,QAAQV,GAAM,GCTzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAc;AAAA,IACZ,GAAGC;AAAA,IACH,EAAE,MAAM,QAAQ,OAAO,QAAQ,MAAM,YAAA;AAAA,IACrC,EAAE,MAAM,SAAS,OAAO,QAAQ,MAAM,YAAA;AAAA,EAAY;AAAA,EAEpD,UAAU,CAAA;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EAAA;AAAA,EAEP,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,QAAQ,CAAA;AACV;;;;;;ACxBA,UAAMztD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA6B;AAAA,MACvH,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe+tD;AAAA,IAAA,CAChB,GAEKC,IAAajW,EAAA;;;kBAIjB/H,EAkCc6c,IAAA,MAAA;AAAA,QAjCD,SACT,MAwBS;AAAA,UAxBTroD,EAwBSkvC,GAAA;AAAA,YAxBD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAEkBsoD,IAAA;AAAA,gBAFQ,YAAAjd,EAAA4H,CAAA,EAAc;AAAA,gBAAd,uBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,gBAAE,OAAM;AAAA,gBAAM,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BACjF,MAA+I;AAAA,kBAA/I7yC,EAA+IypD,GAAA;AAAA,oBAA3H,OAAOpe,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,oBAAE,OAAM;AAAA,oBAAiB,aAAY;AAAA,oBAAQ,aAAW,EAAA,SAAA,GAAA,SAAA,EAAA;AAAA,oBAA4B,eAAA;AAAA,kBAAA;;;;cAEnInrC,EAgBQgrC,GAAA,EAhBA,QAAQ,MAAE;AAAA,2BAChB,MAIQ;AAAA,kBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,mCACtB,MAA0D;AAAA,0BAA1DpvC,EAA0DqvC,GAAA;AAAA,4BAAxC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,gBAAa9H;AAAA,0BAAA;;;;;;;kBAG1DnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,mCACtB,MAAsD;AAAA,0BAAtDpvC,EAAsDqvC,GAAA;AAAA,4BAApC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,YAAS9H;AAAA,0BAAA;;;;;;;kBAGtDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,mCACvB,MAAiD;AAAA,0BAAjDpvC,EAAiDqvC,GAAA;AAAA,4BAA/B,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,0BAAA;;;;;;;;;;;;;;QAM5C,SACT,MAAoF;AAAA,UAApFnrC,EAAoF0oD,IAAA;AAAA,YAAjE,QAAQrd,EAAAwH,CAAA;AAAA,YAAgB,mBAAiBxH,EAAAqe,EAAA;AAAA,UAAA;;QAEnD,SACT,MAA2D;AAAA,UAA3D1pD,EAA2D2oD,IAAA;AAAA,wBAAtCtd,EAAAme,CAAA;AAAA,kEAAAA,EAAU,QAAAre,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;ICrD3C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,65DAA45D,GAAI,MAAM,EAAE;AAAA,EAC78D,EAAK,CAAC;AACN;AACA,MAAAgf,KAAe,EAAE,QAAQf,GAAM,GCRzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAcC;AAAA,EACd,UAAU,CAAA;AAAA,EACV,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAASS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EAAA;AAEV;;;;;;ACnBA,UAAMluD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAAgC;AAAA,MAC1H,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAeouD;AAAA,IAAA,CAChB;AAED,IAAA/kD;AAAA,MACE;;AAAM,gBAAA3G,IAAA20C,EAAc,MAAM,YAApB,gBAAA30C,EAA6B;AAAA;AAAA,MACnC,MAAM0rD,GAAqB/W,EAAc,KAAK;AAAA,IAAA,GAGhDhuC;AAAA,MACE;;AAAM,gBAAA3G,IAAA20C,EAAc,MAAM,YAApB,gBAAA30C,EAA6B;AAAA;AAAA,MACnC,MAAM0rD,GAAqB/W,EAAc,KAAK;AAAA,IAAA;AAGhD,UAAMgX,IAAehoD,EAAS,MAAMioD,GAAoB7W,EAAc,MAAM,IAAI,CAAC,GAE3E8W,IAAwBloD,EAAS,MAAMgoD,EAAa,SAASG,GAAqC/W,EAAc,MAAM,WAAW,CAAC,GAElIgX,IAAgB1W,EAAA,GAEhB2W,IAAyBroD,EAAS;AAAA,MACtC,KAAK,MAAMsoD,GAA6BlX,EAAc,MAAM,iBAAiB;AAAA,MAC7E,KAAK,CAAC/3C,MAAkB;AACtB,cAAMq3C,IAAa6X,GAA2BlvD,CAAK,GAC7CmnC,IAAU4Q,EAAc;AAC9B,QAAIV,MAAe,SACjB,OAAOlQ,EAAQ,oBAEfA,EAAQ,oBAAoBkQ;AAAA,MAEhC;AAAA,IAAA,CACD;;;kBAIC/G,EAuCc6c,IAAA,MAAA;AAAA,QAtCD,SACT,MA6BS;AAAA,UA7BTroD,EA6BSkvC,GAAA;AAAA,YA7BD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAMcovC,GAAA,EAND,OAAM,QAAI;AAAA,2BACrB,MAIgB;AAAA,kBAJhBpvC,EAIgBq0C,GAAA;AAAA,oBAJO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,kBAAA;+BAC9B,MAAoC;AAAA,8BAApDL,EAEiBrxB,IAAA,MAAAsxB,GAFcM,EAAAgf,EAAA,GAAoB,CAA5BvqD,YAAvB0rC,EAEiB8I,GAAA;AAAA,wBAFqC,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAClF,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAInBE,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,2BACrB,MAAmD;AAAA,kBAAnDpvC,EAAmDqvC,GAAA;AAAA,oBAAjC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,oBAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,SAAM9H;AAAA,kBAAA;;;;cAEjC0e,EAAA,cAAhB/e,EAcWrxB,IAAA,EAAA,KAAA,KAAA;AAAA,gBAbTzZ,EAEkBsoD,IAAA;AAAA,kBAFQ,YAAAjd,EAAA4H,CAAA,EAAc;AAAA,kBAAd,uBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,kBAAE,OAAM;AAAA,kBAAM,aAAWE,EAAAwH,CAAA,EAAc;AAAA,gBAAA;6BACjF,MAAqF;AAAA,oBAArF7yC,EAAqFkwC,GAAA;AAAA,sBAApE,OAAO7E,EAAA4H,CAAA,EAAc;AAAA,sBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,sBAAE,aAAY;AAAA,sBAAe,eAAA;AAAA,oBAAA;;;;gBAEzEnrC,EAMcovC,GAAA,EAND,OAAM,UAAM;AAAA,6BACvB,MAIgB;AAAA,oBAJhBpvC,EAIgBq0C,GAAA;AAAA,sBAJO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,sBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,cAAW9H;AAAA,oBAAA;iCACrC,MAA2C;AAAA,gCAA3DL,EAEiBrxB,IAAA,MAAAsxB,GAFcM,EAAAif,EAAA,GAA2B,CAAnCxqD,YAAvB0rC,EAEiB8I,GAAA;AAAA,0BAF4C,KAAKx0C,EAAK;AAAA,0BAAQ,OAAOA,EAAK;AAAA,wBAAA;qCACzF,MAAgB;AAAA,4BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,0BAAA;;;;;;;;;gBAIAiqD,EAAA,cAAnBve,EAEc4D,GAAA;AAAA;kBAF4B,OAAM;AAAA,gBAAA;6BAC9C,MAAkF;AAAA,oBAAlFpvC,EAAkF46C,IAAA;AAAA,kCAArDsP,EAAA;AAAA,oEAAAA,EAAsB,QAAA/e;AAAA,sBAAE,QAAO;AAAA,oBAAA;;;;;;;;;QAKzD,SACT,MAAqI;AAAA,UAArInrC,EAAqI0oD,IAAA;AAAA,YAAlH,QAAQrd,EAAAwH,CAAA;AAAA,YAAgB,mBAAiBgX,EAAA;AAAA,YAAe,sBAAoB,CAAA,UAAA,cAAA,QAAA;AAAA,UAAA;;QAEtF,SACT,MAA8D;AAAA,UAA9D7pD,EAA8D2oD,IAAA;AAAA,wBAAzCtd,EAAA4e,CAAA;AAAA,kEAAAA,EAAa,QAAA9e,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;ICtF9C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,iCAAgC,GAAI,MAAM,EAAE;AAAA,EACjF,EAAK,CAAC;AACN;AACA,MAAA4f,KAAe,EAAE,QAAQ3B,GAAM,GCTzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAcC;AAAA,EACd,UAAU,CAAA;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,EAAA;AAAA,EAER,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,QAAQ,CAAA;AACV;;;;;;ACrBA,UAAMztD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA6B;AAAA,MACvH,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAegvD;AAAA,IAAA,CAChB,GAEKC,IAAalX,EAAA;;;kBAIjB/H,EAsBc6c,IAAA,MAAA;AAAA,QArBD,SACT,MAYS;AAAA,UAZTroD,EAYSkvC,GAAA;AAAA,YAZD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAEkBsoD,IAAA;AAAA,gBAFQ,YAAAjd,EAAA4H,CAAA,EAAc;AAAA,gBAAd,uBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,YAAS9H;AAAA,gBAAE,OAAM;AAAA,gBAAQ,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BACxF,MAAkF;AAAA,kBAAlF7yC,EAAkFkwC,GAAA;AAAA,oBAAjE,OAAO7E,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,YAAS9H;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAEtEnrC,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,2BACrB,MAEgB;AAAA,kBAFhBpvC,EAEgBq0C,GAAA;AAAA,oBAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,kBAAA;+BAC9B,MAAiC;AAAA,8BAAjDL,EAAyHrxB,IAAA,MAAAsxB,GAA1FM,EAAAqf,EAAA,GAAiB,CAAzB5qD,YAAvB0rC,EAAyH8I,GAAA;AAAA,wBAAtE,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAAO,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;;;;;QAKlG,SACT,MAA4C;AAAA,UAA5CE,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA2D;AAAA,UAA3D7yC,EAA2D2oD,IAAA;AAAA,wBAAtCtd,EAAAof,CAAA;AAAA,kEAAAA,EAAU,QAAAtf,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;ICxC3C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,ojBAAmjB,GAAI,MAAM,EAAE;AAAA,EACpmB,EAAK,CAAC;AACN;AACA,MAAAggB,KAAe,EAAE,QAAQ/B,GAAM,GCTzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAcC;AAAA,EACd,UAAU,CAAA;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,EAAA;AAAA,EAER,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,QAAQ,CAAA;AACV;AC7BA,SAAS2B,GAAWpoD,GAAM;AACxB,EAAIA,EAAK,kBAAkB,QACzBA,EAAK,cAAc,YAAYA,CAAI;AAEvC;AAEA,SAASqoD,GAAaC,GAAYtoD,GAAMuK,GAAU;AAChD,QAAMg+C,IACJh+C,MAAa,IACT+9C,EAAW,SAAS,CAAC,IACrBA,EAAW,SAAS/9C,IAAW,CAAC,EAAE;AACxC,EAAA+9C,EAAW,aAAatoD,GAAMuoD,CAAO;AACvC;ACZA,SAASC,KAAa;AACpB,SAAI,OAAO,SAAW,MACb,OAAO,UAET,OAAO;AAChB;AACA,MAAMC,KAAUD,GAAU;ACN1B,SAASE,GAAOC,GAAI;AAClB,QAAM7gC,IAAQ,uBAAO,OAAO,IAAI;AAChC,SAAO,SAAkB8gC,GAAK;AAE5B,WADY9gC,EAAM8gC,CAAG,MACN9gC,EAAM8gC,CAAG,IAAID,EAAGC,CAAG;AAAA,EACpC;AACF;AAEA,MAAMC,KAAQ,UACRt4C,KAAWm4C,GAAO,CAAAE,MAAOA,EAAI,QAAQC,IAAO,CAAClsC,GAAGwG,MAAMA,EAAE,YAAW,CAAE,CAAC,GCTtE2lC,KAAgB,CAAC,SAAS,OAAO,UAAU,UAAU,KAAK,GAC1Dh2C,KAAO,CAAC,UAAU,YAAY,QAAQ,UAAU,OAAO,GACvDi2C,KAAS,CAAC,MAAM,GAChBC,KAAoB,CAACD,IAAQD,IAAeh2C,EAAI,EACnD,QAAQ,CAAAm2C,MAAUA,CAAM,EACxB,IAAI,CAAAC,MAAO,KAAKA,CAAG,EAAE,GAElBD,KAAS;AAAA,EACf,QAAEF;AAAAA,EACF,eAAED;AAAAA,EACF,MAAEh2C;AACF;AAEA,SAASq2C,GAAW9iB,GAAW;AAC7B,SAAO2iB,GAAkB,QAAQ3iB,CAAS,MAAM;AAClD;ACfA,MAAM+iB,KAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAASC,GAAUr5B,GAAM;AACvB,SAAOo5B,GAAK,SAASp5B,CAAI;AAC3B;AAEA,SAASs5B,GAAat5B,GAAM;AAC1B,SAAO,CAAC,oBAAoB,iBAAiB,EAAE,SAASA,CAAI;AAC9D;AAEA,SAASu5B,GAAgB7wD,GAAO;AAC9B,SACE,CAAC,MAAM,SAAS,QAAQ,OAAO,EAAE,SAASA,CAAK,KAC/CA,EAAM,WAAW,OAAO,KACxBA,EAAM,WAAW,OAAO,KACxBA,EAAM,WAAW,IAAI;AAEzB;ACnIA,SAAS8wD,GAAQ57B,GAAS;AACxB,SAAOA,EAAQ,OAAO,CAAC67B,GAAK,CAACxwD,GAAKP,CAAK,OACrC+wD,EAAIxwD,CAAG,IAAIP,GACJ+wD,IACN,CAAA,CAAE;AACP;AAEA,SAASC,GAAuB,EAAE,QAAAC,GAAQ,eAAAC,IAAgB,CAAA,EAAE,GAAI;AAI9D,SAAO;AAAA,IACL,GAJiBJ;AAAA,MACjB,OAAO,QAAQG,CAAM,EAAE,OAAO,CAAC,CAAC1wD,GAAK0jB,CAAC,MAAM4sC,GAAgBtwD,CAAG,CAAC;AAAA,IACpE;AAAA,IAGI,GAAG2wD;AAAA,EACP;AACA;AAEA,SAASC,GAAqB,EAAE,QAAAF,GAAQ,iBAAAG,KAAmB;AACzD,QAAMjqB,IAAU2pB,GAAQO,GAAwBJ,CAAM,CAAC;AACvD,SAAO,QAAQG,CAAe,EAAE,QAAQ,CAAC,CAACE,GAAWC,CAAY,MAAM;AACrE,IAAAhB,GAAOe,CAAS,EAAE,QAAQ,CAAA7qD,MAAS;AACjC,MAAA0gC,EAAQ,KAAK1gC,CAAK,EAAE,IAAI8qD,EAAa9qD,CAAK;AAAA,IAC5C,CAAC;AAAA,EACH,CAAC;AACD,QAAM+qD,IAAY,mBAAmBrqB,EAAQ,aAAa,EAAE;AAC5D,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,WAAAqqB;AAAA,EACJ;AACA;AAEA,SAASH,GAAwBrxD,GAAO;AACtC,SAAO,OAAO,QAAQA,CAAK,EACxB,OAAO,CAAC,CAACO,GAAK0jB,CAAC,MAAM,CAAC4sC,GAAgBtwD,CAAG,CAAC,EAC1C,IAAI,CAAC,CAACA,GAAKP,CAAK,MAAM,CAAC6X,GAAStX,CAAG,GAAGP,CAAK,CAAC,EAC5C,OAAO,CAAC,CAACO,GAAK0jB,CAAC,MAAM,CAACwsC,GAAWlwD,CAAG,CAAC;AAC1C;ACxCA,MAAMkxD,KAAyB,CAAC,EAAE,IAAArjD,EAAE,MAAOA,GACrCsjD,KAAa,CAACC,GAAYr2C,MAC7Bq2C,EAAW,sBAAsBr2C,GAC9Bs2C,KAAa,CAAAD,MAAcA,EAAW;AAE5C,MAAME,GAAmB;AAAA,EACvB,YAAY;AAAA,IACV,OAAO,EAAE,QAAAC,GAAQ,SAASC,GAAc,QAAAC,EAAM;AAAA,IAC9C,MAAA1L;AAAA,IACA,UAAA2L;AAAA,EACJ,GAAK;AACD,SAAK,eAAeF,GACpB,KAAK,WAAW,CAAC,GAAGD,GAAQ,GAAGC,GAAc,GAAGC,CAAM,GACtD,KAAK,oBAAoB1L,EAAK,mBAC9B,KAAK,iBAAiBA,EAAK,YAC3B,KAAK,MAAMA,EAAK,KAChB,KAAK,WAAW2L;AAAA,EAClB;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,qBAAqB,KAAK;AAAA,EACxC;AAAA,EAEA,OAAO1kC,GAAG2kC,GAAY;AACpB,UAAM,EAAE,KAAAC,GAAK,UAAAnuD,GAAU,kBAAAouD,EAAgB,IAAK;AAE5C,WAAO7kC,EAAE4kC,GAAKD,GADEE,IAA8B,EAAE,SAAS,MAAMpuD,MAA5BA,CACH;AAAA,EAClC;AAAA,EAEA,UAAU;AACR,UAAM,EAAE,cAAA+tD,GAAc,UAAAE,EAAQ,IAAK;AACnC,IAAAF,EAAa,QAAQ,CAACzqD,GAAMxH,MAAU;AACpC,MAAA4xD,GAAWD,GAAuBnqD,CAAI,GAAG;AAAA,QACvC,SAAS2qD,EAASnyD,CAAK;AAAA,QACvB,OAAAA;AAAA,MACR,CAAO;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,gBAAgB6xD,GAAY;AAC1B,WAAOC,GAAWD,CAAU;AAAA,EAC9B;AAAA,EAEA,uBAAuBU,GAAUC,GAAS;AACxC,UAAM,EAAE,cAAAP,EAAY,IAAK,MACnB,EAAE,QAAAhyD,EAAM,IAAKgyD,GACbQ,IAAcD,EAAQ,UACtBX,IAAaY,EAAY,KAAKF,CAAQ;AAE5C,QAAIV,MAAe;AACjB,aAAO5xD;AAET,UAAMub,IAAUs2C,GAAWD,CAAU;AACrC,QAAIr2C;AACF,aAAOA,EAAQ;AAGjB,QAAIvb,MAAW;AACb,aAAO;AAET,UAAMyyD,IAAsBf,GAAuBM,EAAa,CAAC,CAAC,GAC5DU,IAA2B,CAAC,GAAGF,CAAW,EAAE;AAAA,MAChD,CAAAD,MAAWA,MAAYE;AAAA,IAC7B;AACI,WAAOH,IAAWI,IAA2B,IAAI1yD;AAAA,EACnD;AACF;AC9DA,SAAS0rB,GAAQhoB,GAAOlD,GAAK;AAC3B,QAAMmyD,IAAYjvD,EAAMlD,CAAG;AAC3B,SAAOmyD,IAAYA,EAAS,IAAK;AACnC;AAEA,SAASC,GAAa,EAAE,QAAA5F,GAAQ,UAAAkF,GAAU,QAAAW,EAAM,GAAI;AAClD,QAAMC,IAAiBZ,KAAY,IAC7B,CAACH,GAAQE,CAAM,IAAI,CAAC,UAAU,QAAQ,EAAE;AAAA,IAAI,CAAA16B,MAChD7L,GAAQshC,GAAQz1B,CAAI;AAAA,EACxB,GACQ,EAAE,MAAA1yB,EAAI,IAAKmoD;AACjB,MAAI,CAACnoD;AACH,UAAM,IAAI,MAAM,0CAA0C;AAE5D,QAAMmtD,IAAec,EAAe;AAAA,IAAQ,CAACP,GAASxyD,MACpD8E,EAAK,EAAE,SAAA0tD,GAAS,OAAAxyD,EAAK,CAAE,EAAE,IAAI,CAAAwH,OAC3BA,EAAK,MAAMsrD,EAAON,CAAO,GACzBhrD,EAAK,QAAQ,EAAE,GAAIA,EAAK,SAAS,IAAK,kBAAkB,MACjDA,EACR;AAAA,EACL;AACE,MAAIyqD,EAAa,WAAWc,EAAe;AACzC,UAAM,IAAI,MAAM,oCAAoC;AAEtD,SAAO;AAAA,IACL,QAAAf;AAAA,IACA,QAAAE;AAAA,IACA,SAASD;AAAA,EACb;AACA;AAEA,SAASe,GAAmBX,GAAK;AAC/B,QAAMY,IAAanC,GAAauB,CAAG,GAC7Ba,IAAoB,CAACrC,GAAUwB,CAAG,KAAK,CAACY;AAC9C,SAAO;AAAA,IACL,YAAAA;AAAA,IACA,mBAAAC;AAAA,IACA,KAAKA,IACDC,GAAiBd,CAAG,IACpBY,IACA9yB,KACAkyB;AAAA,EACR;AACA;AAEA,SAASe,GAA0B,EAAE,QAAAnG,GAAQ,KAAAoF,GAAK,UAAAF,GAAU,QAAAW,EAAM,GAAI;AACpE,QAAM7I,IAAQ4I,GAAa,EAAE,QAAA5F,GAAQ,UAAAkF,GAAU,QAAAW,EAAM,CAAE,GACjDtM,IAAOwM,GAAmBX,CAAG;AACnC,SAAO,IAAIN,GAAmB,EAAE,OAAA9H,GAAO,MAAAzD,GAAM,UAAA2L,EAAQ,CAAE;AACzD;ACzCA,SAAS73C,GAAK+4C,GAASC,GAAS;AAC9B,EAAAxsB,GAAS,MAAM,KAAK,MAAMusB,EAAQ,YAAW,GAAIC,CAAO,CAAC;AAC3D;AAEA,SAAS/C,GAAO8C,GAAS;AACvB,SAAO,CAACC,GAASC,MAAoB;AACnC,QAAI,KAAK,aAAa;AACpB,aAAO,KAAK,SAASF,CAAO,EAAE,EAAEC,GAASC,CAAe;AAAA,EAE5D;AACF;AAEA,SAASjD,GAAc+C,GAAS;AAC9B,QAAMG,IAAmBjD,GAAO,KAAK,MAAM8C,CAAO;AAClD,SAAO,CAACC,GAASC,MAAoB;AACnC,IAAAC,EAAiB,KAAK,MAAMF,GAASC,CAAe,GACpDj5C,GAAK,KAAK,MAAM+4C,GAASC,CAAO;AAAA,EAClC;AACF;AAEA,IAAIG,KAAkB;AAEtB,MAAMjzD,KAAQ;AAAA,EACZ,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACb;AAAA,EACE,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACb;AAAA,EACE,SAAS;AAAA,IACP,MAAM,CAAC,QAAQ,QAAQ;AAAA,IACvB,UAAU;AAAA,EACd;AAAA,EACE,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAAkzD,MACAA;AAAA,EAEb;AAAA,EACE,KAAK;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACE,eAAe;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACb;AACA,GAEMC,KAAQ;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG,CAAC,GAAGlD,GAAO,eAAe,GAAGA,GAAO,IAAI,EAAE,IAAI,CAAAC,MAAOA,EAAI,YAAW,CAAE;AAC3E,GAEMkD,KAAqBnwD,EAAgB;AAAA,EACzC,MAAM;AAAA,EAEN,cAAc;AAAA,EAEd,OAAAjD;AAAA,EAEA,OAAAmzD;AAAA,EAEA,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA,IACb;AAAA,EACE;AAAA,EAEA,SAAS;AACP,QAAI;AACF,WAAK,QAAQ;AACb,YAAM,EAAE,QAAA1G,GAAQ,QAAAkE,GAAQ,KAAAkB,GAAK,eAAAjB,GAAe,UAAAe,GAAU,QAAAW,EAAM,IAAK,MAC3De,IAAqBT,GAA0B;AAAA,QACnD,QAAAnG;AAAA,QACA,KAAAoF;AAAA,QACA,UAAAF;AAAA,QACA,QAAAW;AAAA,MACR,CAAO;AACD,WAAK,qBAAqBe;AAC1B,YAAMzB,IAAalB,GAAuB,EAAE,QAAAC,GAAQ,eAAAC,EAAa,CAAE;AACnE,aAAOyC,EAAmB,OAAOpmC,GAAG2kC,CAAU;AAAA,IAChD,SAASt+B,GAAK;AACZ,kBAAK,QAAQ,IACNrG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,QAAO,GAAIqG,EAAI,KAAK;AAAA,IACxD;AAAA,EACF;AAAA,EAEA,UAAU;AACR,IAAI,KAAK,SAAS,QAAQ,KAAK,eAAe,QAC5Cm8B,GAAQ;AAAA,MACN;AAAA,IACR;AAAA,EAEE;AAAA,EAEA,UAAU;AACR,QAAI,KAAK;AACP;AAGF,UAAM,EAAE,QAAAkB,GAAQ,KAAA2C,GAAK,oBAAAD,EAAkB,IAAK;AAC5C,IAAAA,EAAmB,QAAO;AAE1B,UAAME,IAAkB1C,GAAqB;AAAA,MAC3C,QAAAF;AAAA,MACA,iBAAiB;AAAA,QACf,eAAe,CAAAxqD,MAAS2pD,GAAc,KAAK,MAAM3pD,CAAK;AAAA,QACtD,MAAM,CAAAA,MAAS2T,GAAK,KAAK,MAAM3T,CAAK;AAAA,QACpC,QAAQ,CAAAA,MAAS4pD,GAAO,KAAK,MAAM5pD,CAAK;AAAA,MAChD;AAAA,IACA,CAAK,GACKqtD,IAAmBF,EAAI,aAAa,IAAIA,IAAMA,EAAI;AACxD,SAAK,YAAY,IAAIG,GAASD,GAAkBD,CAAe,GAC/D,KAAK,mBAAmBC,GACxBA,EAAiB,0BAA0B;AAAA,EAC7C;AAAA,EAEA,UAAU;AACR,SAAK,mBAAmB;EAC1B;AAAA,EAEA,gBAAgB;AACd,IAAI,KAAK,cAAc,UAAW,KAAK,UAAU;EACnD;AAAA,EAEA,UAAU;AAAA,IACR,WAAW;AACT,YAAM,EAAE,MAAAxxB,EAAI,IAAK;AACjB,aAAOA,KAAc,KAAK;AAAA,IAC5B;AAAA,IAEA,SAAS;AACP,YAAM,EAAE,SAAA0xB,EAAO,IAAK;AACpB,aAAI,OAAOA,KAAY,aACdA,IAEF,CAAA1B,MAAWA,EAAQ0B,CAAO;AAAA,IACnC;AAAA,EACJ;AAAA,EAEE,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQC,GAAgB;AACtB,cAAM,EAAE,WAAAC,EAAS,IAAK;AACtB,QAAKA,KACL7C,GAAwB4C,CAAc,EAAE,QAAQ,CAAC,CAAC1zD,GAAKP,CAAK,MAAM;AAChE,UAAAk0D,EAAU,OAAO3zD,GAAKP,CAAK;AAAA,QAC7B,CAAC;AAAA,MACH;AAAA,MACA,MAAM;AAAA,IACZ;AAAA,EACA;AAAA,EAEE,SAAS;AAAA,IACP,gBAAgB2xD,GAAY;AAC1B,aAAO,KAAK,mBAAmB,gBAAgBA,CAAU,KAAK;AAAA,IAChE;AAAA,IAEA,yCAAyCwC,GAAY;AAEnD,aAAOA,EAAW;AAAA,IACpB;AAAA,IAEA,YAAY3D,GAAK;AACf,MAAA5pB,GAAS,MAAM,KAAK,MAAM,UAAU4pB,CAAG,CAAC;AAAA,IAC1C;AAAA,IAEA,UAAU4D,GAAQ;AAChB,UAAI,KAAK,MAAM;AACb,QAAAA,EAAO,KAAK,IAAI;AAChB;AAAA,MACF;AACA,YAAMC,IAAU,CAAC,GAAG,KAAK,UAAU;AACnC,MAAAD,EAAOC,CAAO,GACd,KAAK,MAAM,qBAAqBA,CAAO;AAAA,IACzC;AAAA,IAEA,aAAa;AACX,YAAMC,IAAa,CAAAhyB,MAAQA,EAAK,OAAO,GAAG,SAAS;AACnD,WAAK,UAAUgyB,CAAU;AAAA,IAC3B;AAAA,IAEA,eAAeC,GAAUC,GAAU;AACjC,YAAMC,IAAiB,CAAAnyB,MACrBA,EAAK,OAAOkyB,GAAU,GAAGlyB,EAAK,OAAOiyB,GAAU,CAAC,EAAE,CAAC,CAAC;AACtD,WAAK,UAAUE,CAAc;AAAA,IAC/B;AAAA,IAEA,+BAA+B,EAAE,IAAA92C,GAAI,SAAA+2C,KAAW;AAC9C,YAAMC,IAAY,KAAK,yCAAyCh3C,CAAE;AAClE,UAAI,CAACg3C;AACH,eAAO,EAAE,WAAAA,EAAS;AAEpB,YAAMryB,IAAOqyB,EAAU,UACjBr5C,IAAU,EAAE,MAAAgnB,GAAM,WAAAqyB;AACxB,aAAIh3C,MAAO+2C,KAAWpyB,IAEb,EAAE,GADWqyB,EAAU,gBAAgBD,CAAO,KAAK,CAAA,GACjC,GAAGp5C,MAEvBA;AAAA,IACT;AAAA,IAEA,uBAAuB+2C,GAAU;AAC/B,aAAO,KAAK,mBAAmB;AAAA,QAC7BA;AAAA,QACA,KAAK;AAAA,MACb;AAAA,IACI;AAAA,IAEA,YAAY7B,GAAK;AACf,WAAK,UAAU,KAAK,gBAAgBA,EAAI,IAAI,GAC5CA,EAAI,KAAK,kBAAkB,KAAK,MAAM,KAAK,QAAQ,OAAO,GAC1D+C,KAAkB/C,EAAI;AAAA,IACxB;AAAA,IAEA,UAAUA,GAAK;AACb,YAAM8B,IAAU9B,EAAI,KAAK;AACzB,UAAI8B,MAAY;AACd;AAEF,MAAA5C,GAAWc,EAAI,IAAI;AACnB,YAAMgE,IAAW,KAAK,uBAAuBhE,EAAI,QAAQ;AACzD,WAAK,WAAWgE,GAAU,GAAGlC,CAAO;AACpC,YAAMsC,IAAQ,EAAE,SAAAtC,GAAS,UAAAkC;AACzB,WAAK,YAAY,EAAE,OAAAI,EAAK,CAAE;AAAA,IAC5B;AAAA,IAEA,aAAapE,GAAK;AAEhB,UADAb,GAAa,KAAK,KAAKa,EAAI,MAAMA,EAAI,QAAQ,GACzCA,EAAI,aAAa,SAAS;AAC5B,QAAAd,GAAWc,EAAI,KAAK;AACpB;AAAA,MACF;AACA,YAAM,EAAE,OAAO+D,GAAU,SAAAjC,EAAO,IAAK,KAAK;AAC1C,WAAK,WAAWiC,GAAU,CAAC;AAC3B,YAAMj6B,IAAU,EAAE,SAAAg4B,GAAS,UAAAiC;AAC3B,WAAK,YAAY,EAAE,SAAAj6B,EAAO,CAAE;AAAA,IAC9B;AAAA,IAEA,aAAak2B,GAAK;AAChB,MAAAd,GAAWc,EAAI,IAAI,GACnBb,GAAaa,EAAI,MAAMA,EAAI,MAAMA,EAAI,QAAQ;AAC7C,YAAM+D,IAAW,KAAK,QAAQ,OACxBC,IAAW,KAAK,uBAAuBhE,EAAI,QAAQ;AACzD,WAAK,eAAe+D,GAAUC,CAAQ;AACtC,YAAMK,IAAQ,EAAE,SAAS,KAAK,QAAQ,SAAS,UAAAN,GAAU,UAAAC;AACzD,WAAK,YAAY,EAAE,OAAAK,EAAK,CAAE;AAAA,IAC5B;AAAA,IAEA,mBAAmBC,GAAgBtE,GAAK;AACtC,UAAI,CAACsE,EAAe;AAClB,eAAO;AAET,YAAMvC,IAAc,CAAC,GAAG/B,EAAI,GAAG,QAAQ,EAAE;AAAA,QACvC,CAAApiD,MAAMA,EAAG,MAAM,YAAe;AAAA,MACtC,GACY2mD,IAAkBxC,EAAY,QAAQ/B,EAAI,OAAO,GACjDwE,IAAeF,EAAe,UAAU;AAAA,QAC5CC;AAAA,MACR;AAEM,aADsBxC,EAAY,QAAQgB,EAAe,MAAM,MACvC,CAAC/C,EAAI,kBACzBwE,IACAA,IAAe;AAAA,IACrB;AAAA,IAEA,WAAWxE,GAAKyE,GAAe;AAC7B,YAAM,EAAE,MAAAC,GAAM,UAAAjD,EAAQ,IAAK;AAC3B,UAAI,CAACiD,KAAQ,CAACjD;AACZ,eAAO;AAGT,YAAM6C,IAAiB,KAAK,+BAA+BtE,CAAG,GACxD2E,IAAc,KAAK,mBAAmBL,GAAgBtE,CAAG,GACzD4E,IAAiB;AAAA,QACrB,GAAG,KAAK;AAAA,QACR,aAAAD;AAAA,MACR,GACYE,IAAY;AAAA,QAChB,GAAG7E;AAAA,QACH,gBAAAsE;AAAA,QACA,gBAAAM;AAAA,MACR;AACM,aAAOF,EAAKG,GAAWJ,CAAa;AAAA,IACtC;AAAA,IAEA,YAAY;AACV,MAAA1B,KAAkB;AAAA,IACpB;AAAA,EACJ;AACA,CAAC;;;;;;;;;;;;;;;ACjTD,UAAMjzD,IAAQysC,GAaRuoB,IAAY3uD,EAAmB;AAAA,MACnC,KAAK,MAAMrG,EAAM,gBAAgB,YAAY,CAAA;AAAA,MAC7C,KAAK,CAAAN,MAAS;AACZ,QAAKu1D,EAAY,UACjBj1D,EAAM,gBAAgB,WAAWN;AAAA,MACnC;AAAA,IAAA,CACD,GAEKu1D,IAAc5uD,EAAS,MAAM;;AACjC,cAAK3D,IAAA1C,EAAM,aAAN,QAAA0C,EAAgB,OACdwyD,GAAyBl1D,EAAM,SAAS,MAAMA,EAAM,eAAe,IADxC;AAAA,IAEpC,CAAC;AAED,aAASm1D,EAAa1yD,GAAe;;AACnC,cAAKC,IAAA1C,EAAM,aAAN,QAAA0C,EAAgB,OACdwyD,GAAyBl1D,EAAM,SAAS,MAAMyC,CAAK,IADxB;AAAA,IAEpC;AAEA,aAAS2yD,IAAY;;AACnB,MAAKH,EAAY,WACjBvyD,IAAA1C,EAAM,aAAN,QAAA0C,EAAgB,kBAAkB1C,EAAM,iBAAiBA,EAAM;AAAA,IACjE;AAEA,aAASqjC,EAAa5gC,GAAe;;AACnC,MAAK0yD,EAAa1yD,CAAK,OACvBC,IAAA1C,EAAM,aAAN,QAAA0C,EAAgB,qBAAqB1C,EAAM,iBAAiByC,GAAOzC,EAAM;AAAA,IAC3E;AAEA,aAASq1D,IAAgB;;AACvB,MAAKJ,EAAY,WACjBvyD,IAAA1C,EAAM,aAAN,QAAA0C,EAAgB;AAAA,IAClB;AAEA,aAAS4yD,EAAkB7yD,GAAe;AACxC,MAAK0yD,EAAa1yD,CAAK,MACvBA,EAAM,QAAQ8yD,GAAyB9yD,CAAK,EAAE,KAAA,KAAUzC,EAAM;AAAA,IAChE;;;AAIE,aAAAgxC,EAAA,GAAA1B,EAkBM,OAlBNF,IAkBM;AAAA,QAjBJD,EAAgF,OAAhFE,IAAgFc,GAAlB1D,EAAA,SAAS,GAAA,CAAA;AAAA,QACvEjoC,EAYYqrC,EAAAqhB,EAAA,GAAA;AAAA,sBAZQ8D,EAAA;AAAA,wDAAAA,EAAS,QAAArlB;AAAA,UAAE,YAAS;AAAA,UAAM,QAAQslB,EAAA,QAAW,IAAOxoB,EAAA,eAAe,KAAK;AAAA,UAAY,WAAWwoB,EAAA;AAAA,UAAa,OAAM;AAAA,UAAuB,OAAKI;AAAA,QAAA;UACrJ,MAAItJ,EACb,CAQM,EAAA,SAToBtpD,QAAK;AAAA,YAC/B0sC,EAQM,OARNe,IAQM;AAAA,cAPJ1rC,EAAiKkwC,GAAA;AAAA,gBAAhJ,OAAOjyC,EAAM;AAAA,gBAAN,kBAAA,CAAAktC,MAAAltC,EAAM,QAAKktC;AAAA,gBAAG,aAAalD,EAAA;AAAA,gBAAiB,OAAM;AAAA,gBAAkB,UAAQ,CAAG0oB,EAAa1yD,CAAK;AAAA,gBAAI,UAAM,CAAAktC,MAAE2lB,EAAkB7yD,CAAK;AAAA,cAAA;cAC5J0sC,EAES,UAAA;AAAA,gBAFD,MAAK;AAAA,gBAAS,OAAM;AAAA,gBAAiN,OAAO1C,EAAA;AAAA,gBAAc,WAAW0oB,EAAa1yD,CAAK,KAAKgqC,EAAA,SAAS,UAAM;AAAA,gBAAQ,SAAK,CAAAkD,MAAEtM,EAAa5gC,CAAK;AAAA,cAAA;gBAClV+B,EAAkBqrC,EAAA7S,EAAA,CAAA;AAAA,cAAA;cAERi4B,EAAA,cAAZ3lB,EAEO,QAAA;AAAA;gBAFmB,WAAQ7C,EAAA,iBAAe,qHAAA,CAAA;AAAA,gBAA0H,OAAM;AAAA,cAAA;gBAC/KjoC,EAAkBqrC,EAAA3G,EAAA,CAAA;AAAA,cAAA;;;;;QAK1BiG,EAES,UAAA;AAAA,UAFD,MAAK;AAAA,UAAS,OAAM;AAAA,UAA0J,WAAW8lB,EAAA;AAAA,UAAc,SAAOG;AAAA,QAAA,MACjN3oB,EAAA,iBAAa,QAAA,GAAA,GAAAgE,EAAA;AAAA,MAAA;;;;;;;;;AC/DtB,UAAMzwC,IAAQysC;AAId,aAAS+oB,EAAkCxN,GAAgB;AACzD,MAAAyN,GAAsBzN,CAAM;AAAA,IAC9B;AAEA,UAAM,EAAE,UAAAhb,GAAU,eAAAqK,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAAiC;AAAA,MACrI,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAew1D;AAAA,IAAA,CAChB,GAEKE,IAAiBrvD,EAAS,MAAMsvD,GAAkBte,EAAc,KAAK,CAAC,GACtEue,IAAiB7d,EAAA,GAEjB8d,IAAiBxvD,EAAS;AAAA,MAC9B,KAAK,MAAMoxC,EAAc,MAAM,UAAUqe,GAAyB;AAAA,MAClE,KAAK,CAAAp2D,MAAS;AACZ,QAAA+3C,EAAc,MAAM,SAAS/3C;AAAA,MAC/B;AAAA,IAAA,CACD,GAEKq2D,IAAW1vD,EAAS;AAAA,MACxB,KAAK,MAAMoxC,EAAc,MAAM,YAAYqe,GAAyB;AAAA,MACpE,KAAK,CAAAp2D,MAAS;AACZ,QAAA+3C,EAAc,MAAM,WAAW/3C;AAAA,MACjC;AAAA,IAAA,CACD;;;kBAICswC,EAoEc6c,IAAA,MAAA;AAAA,QAnED,SACT,MAwDS;AAAA,UAxDTroD,EAwDSkvC,GAAA;AAAA,YAxDD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAG1DnrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,2BACrB,MAAuE;AAAA,kBAAvEpvC,EAAuE46C,IAAA;AAAA,gCAA1CyW,EAAA;AAAA,kEAAAA,EAAc,QAAAlmB;AAAA,oBAAE,QAAO;AAAA,kBAAA;;;;cAGtDnrC,EAIcovC,GAAA,EAJD,OAAM,WAAO;AAAA,2BACxB,MAEgB;AAAA,kBAFhBpvC,EAEgBq0C,GAAA;AAAA,oBAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,cAAW9H;AAAA,oBAAE,MAAK;AAAA,kBAAA;+BAC5C,MAA6C;AAAA,8BAA7DL,EAAqIrxB,IAAA,MAAAsxB,GAAtGM,EAAAmmB,EAAA,GAA6B,CAArC1xD,YAAvB0rC,EAAqI8I,GAAA;AAAA,wBAAtE,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAAO,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAGrHE,EAgBQgrC,GAAA,EAhBA,QAAQ,MAAE;AAAA,2BAChB,MAIQ;AAAA,kBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,mCACvB,MAAqD;AAAA,0BAArDpvC,EAAqDqvC,GAAA;AAAA,4BAAnC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,WAAQ9H;AAAA,0BAAA;;;;;;;kBAGrDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,aAAS;AAAA,mCAC1B,MAAoG;AAAA,0BAApGpvC,EAAoGuvC,GAAA;AAAA,4BAA5E,OAAOlE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,gBAAa9H;AAAA,4BAAE,OAAM;AAAA,4BAAU,KAAK;AAAA,4BAAM,MAAM;AAAA,0BAAA;;;;;;;kBAGjGnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,aAAS;AAAA,mCAC1B,MAA0F;AAAA,0BAA1FpvC,EAA0FuvC,GAAA;AAAA,4BAAlE,OAAOlE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,QAAK9H;AAAA,4BAAE,OAAM;AAAA,4BAAU,KAAK;AAAA,4BAAI,MAAM;AAAA,0BAAA;;;;;;;;;;cAIzFnrC,EAqBQgrC,GAAA,EArBA,QAAQ,MAAE;AAAA,2BAChB,MAIQ;AAAA,kBAJRhrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,SAAK;AAAA,mCACtB,MAAiD;AAAA,0BAAjDpvC,EAAiDqvC,GAAA;AAAA,4BAA/B,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,0BAAA;;;;;;;kBAGjDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,mCACrB,MAAmD;AAAA,0BAAnDpvC,EAAmDqvC,GAAA;AAAA,4BAAjC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,SAAM9H;AAAA,0BAAA;;;;;;;kBAGnDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,mCACrB,MAAqD;AAAA,0BAArDpvC,EAAqDqvC,GAAA;AAAA,4BAAnC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,WAAQ9H;AAAA,0BAAA;;;;;;;kBAGrDnrC,EAIQirC,GAAA,EAJA,MAAM,KAAC;AAAA,+BACb,MAEc;AAAA,sBAFdjrC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,mCACvB,MAAyD;AAAA,0BAAzDpvC,EAAyDqvC,GAAA;AAAA,4BAAvC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,4BAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,eAAY9H;AAAA,0BAAA;;;;;;;;;;cAIxCE,EAAA4H,CAAA,EAAc,SAAI,WAArCzH,EAEc4D,GAAA;AAAA;gBAFmC,OAAM;AAAA,cAAA;2BACrD,MAAsC;AAAA,kBAAtCpvC,EAAsCy0C,IAAA;AAAA,gCAAZ8c,EAAA;AAAA,oEAAAA,EAAQ,QAAApmB;AAAA,kBAAA;;;;;;;UAItCnrC,EAA8SyxD,IAAA;AAAA,YAAzR,UAAUpmB,EAAA7C,CAAA;AAAA,YAAW,oBAAkB6C,EAAAwH,CAAA;AAAA,YAAgB,UAAUqe,EAAA;AAAA,YAAiB,QAAQ7lB,EAAAqmB,EAAA;AAAA,YAA6B,uBAAqBrmB,EAAAsmB,EAAA;AAAA,YAA8B,cAAW;AAAA,YAAM,oBAAiB;AAAA,YAAO,qBAAkB;AAAA,YAA6B,gBAAa;AAAA,UAAA;;QAE3R,SACT,MAA4C;AAAA,UAA5C3xD,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA+D;AAAA,UAA/D7yC,EAA+D2oD,IAAA;AAAA,wBAA1Ctd,EAAA+lB,CAAA;AAAA,oEAAAA,EAAc,QAAAjmB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;;ACnG9C,SAASoe,GAAyBvvB,GAAuC;AAC9E,QAAMwvB,IAAkBhwD,EAAS,MAAM;AACrC,UAAM2hD,IAASzS,GAAQ1O,EAAQ,MAAM;AACrC,WAAOA,EAAQ,SAAS,eAAemhB,EAAO,EAAE,KAAKA;AAAA,EACvD,CAAC,GAEKtkD,IAAW2C,EAAS,MAAMwgC,EAAQ,YAAYwvB,EAAgB,KAAK,CAAC;AAE1E,WAASC,EAAgBziD,GAAmB;AAC1C,UAAMm0C,IAASnhB,EAAQ,SAAS,eAAe0O,GAAQ1O,EAAQ,MAAM,EAAE,EAAE;AACzE,IAAKmhB,KACLnhB,EAAQ,aAAamhB,GAAQn0C,CAAS;AAAA,EACxC;AAEA,WAAS0iD,EAA6BC,GAAqC;AACzE,QAAI,CAACA,EAAU;AAEf,UAAM7O,IAAWpS,GAAQ1O,EAAQ,MAAM,EAAE;AACzC,QAAIA,EAAQ,YAAY2vB,CAAQ,KAAKA,EAAS,OAAO7O,GAAU;AAC7D,MAAIjkD,EAAS,MAAM,KAAK,CAAAjB,MAASA,EAAM,OAAO+zD,EAAS,EAAE,KACvDF,EAAgBE,EAAS,EAAE;AAE7B;AAAA,IACF;AAEA,UAAMC,IAAc5vB,EAAQ,gBAAgB2vB,GAAU3vB,EAAQ,SAAS,IAAI;AAC3E,IAAI4vB,KAAe/yD,EAAS,MAAM,KAAK,OAASjB,EAAM,OAAOg0D,EAAY,EAAE,KACzEH,EAAgBG,EAAY,EAAE;AAAA,EAElC;AAEA,SAAAptD;AAAA,IACE,MAAMw9B,EAAQ,SAAS;AAAA,IACvB,CAAA2vB,MAAYD,EAA6BC,CAAQ;AAAA,IACjD,EAAE,WAAW,GAAA;AAAA,EAAK,GAGb,EAAE,iBAAAH,EAAA;AACX;;;;;;;;;;AC3CA,UAAMr2D,IAAQysC,GAOR,EAAE,iBAAiBiqB,EAAA,IAAmBN,GAAyB;AAAA,MACnE,UAAUp2D,EAAM;AAAA,MAChB,QAAQ+hC,GAAM/hC,GAAO,QAAQ;AAAA,MAC7B,aAAa21D;AAAA,MACb,aAAagB;AAAA,MACb,iBAAiBC;AAAA,MACjB,cAAcC;AAAA,IAAA,CACf;2BAIC7mB,EAIe8mB,IAAA;AAAA,MAJA,QAAQjnB,EAAA6mB,CAAA;AAAA,MAAiB,iBAAejqB,EAAA;AAAA,MAAe,OAAOA,EAAA;AAAA,IAAA;MAChE,MAAIsf,EACb,CAAmCgL,MADf;AAAA,QACpB9K,GAAmCC,wBAAT6K,CAAK,CAAA,CAAA;AAAA,MAAA;;;;;;;;;;ACnBrC,UAAM/2D,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,aAAAK,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAAgB;AAAA,MAC3F,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe,MAAM;AAAA,MAAC;AAAA,IAAA,CACvB;AAED,IAAAqJ,GAAMguC,GAAe,CAAAh2B,MAAW21C,GAA0B31C,CAAO,GAAG,EAAE,WAAW,IAAM,MAAM,GAAA,CAAM;AAEnG,UAAM41C,IAAclf,EAAA;;;kBAIlB/H,EAcc6c,IAAA,MAAA;AAAA,QAbD,SACT,MAIS;AAAA,UAJTroD,EAISkvC,GAAA;AAAA,YAJD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;;;;;QAInD,SACT,MAAwH;AAAA,UAAxHnrC,EAAwH0oD,IAAA;AAAA,YAArG,QAAQrd,EAAAwH,CAAA;AAAA,YAAgB,iBAAexH,EAAAqnB,EAAA;AAAA,YAAqC,mBAAgB;AAAA,UAAA;;QAEtG,SACT,MAA4D;AAAA,UAA5D1yD,EAA4D2oD,IAAA;AAAA,wBAAvCtd,EAAAonB,CAAA;AAAA,kEAAAA,EAAW,QAAAtnB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;IClC5C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1F8mB,GAAmB,gcAAoe,CAAC;AAAA,EAC5f,EAAK,CAAC;AACN;AACA,MAAAC,KAAe,EAAE,QAAQhK,GAAM,GCJzBiK,KAAgBC,GAAA;;AAEtB,MAAMtP,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,mBAAmB+J;AAAAA,EACnB,WAAWC;AAAA,EACX,oBAAoB;AAAA,EACpB,iBAAiBtB;AAAA,EACjB,cAAc;AAAA,IACZ,GAAGzI;AAAA,IACH;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU4J;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,YAAW30D,KAAA20D,GAAc,CAAC,MAAf,gBAAA30D,GAAkB;AAAA,IAC7B,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,eAAe;AAAA,IACf,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,QAAQ,CAAA;AACV,GAEa+0D,KAA8B;AAAA,EACzC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAclK;AAAA,EACd,SAAS,CAAA;AAAA,EACT,QAAQ,EAAE,SAAS,GAAC;AAAA,EACpB,QAAQ,CAAA;AAAA,EACR,UAAU,CAAA;AACZ;;;;;;ACpEA,UAAMztD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,aAAAK,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAAgB;AAAA,MAC3F,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe43D;AAAA,IAAA,CAChB,GAEKC,IAAwD;AAAA,MAC5D,EAAE,OAAO,aAAa,OAAOC,GAAiB,UAAA;AAAA,MAC9C,EAAE,OAAO,OAAO,OAAOA,GAAiB,IAAA;AAAA,MACxC,EAAE,OAAO,UAAU,OAAOA,GAAiB,OAAA;AAAA,IAAO,GAE9CC,IAAahgB,EAAA;;;kBAIjB/H,EAiBc6c,IAAA,MAAA;AAAA,QAhBD,SACT,MAOS;AAAA,UAPTroD,EAOSkvC,GAAA;AAAA,YAPD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,2BACrB,MAAsF;AAAA,kBAAtFpvC,EAAsFkrC,GAAA;AAAA,oBAApE,OAAOG,EAAAwH,CAAA,EAAc,QAAQ;AAAA,6DAAtBxH,EAAAwH,CAAA,EAAc,QAAQ,WAAQ1H;AAAA,oBAAG,SAASkoB;AAAA,kBAAA;;;;cAErErzD,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;;;;;QAInD,SACT,MAA8G;AAAA,UAA9GnrC,EAA8G0oD,IAAA;AAAA,YAA3F,QAAQrd,EAAAwH,CAAA;AAAA,YAAgB,iBAAexH,EAAAmoB,EAAA;AAAA,YAA2B,mBAAgB;AAAA,UAAA;;QAE5F,SACT,MAA2D;AAAA,UAA3DxzD,EAA2D2oD,IAAA;AAAA,wBAAtCtd,EAAAkoB,CAAA;AAAA,kEAAAA,EAAU,QAAApoB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;;AC7B1C,SAASigB,GAAoBjQ,GAAgBkQ,GAAkC;AACpF,QAAM9N,IAAO+N,GAAsBD,CAAM;AACzC,aAAW,CAAC14D,GAAOiD,CAAK,MAAMulD,EAAO,YAAY,IAAI,WAAW;AAC9D,UAAM/gB,IAAQmxB,GAAqBhO,GAAM5qD,CAAK,GACxC64D,IAAO51D;AACb,IAAA41D,EAAK,OAAOP,GAAiB1N,CAAI,GACjCiO,EAAK,QAAQpxB,GACRxkC,EAAM,YAASA,EAAM,UAAU,CAAA,IAChCA,EAAM,QAAQ,aAAa2nD,MAC7B3nD,EAAM,QAAQ,WAAW2nD;AAAA,EAE7B;AACF;AAEO,SAASkO,GAAeC,GAA0B70D,IAAqB,CAAA,GAAI0mD,IAAiB,aAAqB;AACtH,SAAO;AAAA,IACL,IAAImO,EAAA;AAAA,IACJ,MAAM;AAAA,IACN,MAAMT,GAAiB1N,CAAI;AAAA,IAC3B,SAAS;AAAA,MACP,UAAUA;AAAA,IAAA;AAAA,IAEZ,QAAQ,EAAE,SAAS,EAAE,GAAGoO,KAAgB;AAAA,IACxC,UAAU90D,KAAY,CAAA;AAAA,EAAC;AAE3B;AAGO,SAAS+0D,GAAoBzQ,GAAgB0Q,GAA+C;AACjG,MAAI,CAACA,KAAYA,EAAS,SAAS,KAAKA,EAAS,UAAU,EAAG;AAE9D,QAAM7T,IAASnT,GAAmBsW,CAAM;AACxC,EAAAnD,EAAO,UAAU;AAAA,IACf,GAAGhN,GAAsBmQ,CAAM;AAAA,IAC/B,OAAO/N,GAAW,KAAK,MAAMye,EAAS,KAAK,GAAG,IAAI;AAAA,IAClD,QAAQze,GAAW,KAAK,MAAMye,EAAS,MAAM,GAAG,IAAI;AAAA,EAAA;AAExD;AAOO,SAASC,GAAgB3Q,GAAgBkQ,GAA4BK,GAA0BK,GAA+BC,GAAmD;AACtL,EAAAJ,GAAoBzQ,GAAQ6Q,CAAY;AAExC,QAAMC,IAAgBC,GAAkB/Q,CAAM,GACxCgR,IAAchR,EAAO,YAAY,CAAA,GACjCiR,IAAWd,GAAsBD,CAAM;AAO7C,MALAlQ,EAAO,YAAPA,EAAO,UAAY,CAAA,IACfA,EAAO,QAAQ,mBAAmBkQ,MACpClQ,EAAO,QAAQ,iBAAiBkQ,IAG9BY,MAAkBZ,KAAUc,EAAY,UAAU;AACpD,IAAAhR,EAAO,WAAW,CAAC,GAAGgR,GAAaV,GAAeC,GAAY,CAAA,GAAIU,CAAQ,CAAC;AAAA,WAClEH,KAAiBA,MAAkBZ,KAAUc,EAAY,UAAU,GAAG;AAC/E,UAAM13D,IAASg3D,GAAeC,GAAYS,GAAaC,CAAQ;AAC/D,IAAA33D,EAAO,SAAS,EAAE,SAAS,EAAE,GAAGk3D,KAAgB,GAChDl3D,EAAO,YAAPA,EAAO,UAAY,CAAA,IACnBA,EAAO,QAAQ,iBAAiBw3D,GAChC9Q,EAAO,WAAW,CAAC1mD,GAAQg3D,GAAeC,GAAY,CAAA,GAAIU,CAAQ,CAAC;AAAA,EACrE;AACE,IAAAjR,EAAO,WAAW,CAACsQ,GAAeC,GAAYS,GAAaC,CAAQ,GAAGX,GAAeC,GAAY,CAAA,GAAIU,CAAQ,CAAC;AAGhH,EAAAC,GAA+BlR,GAAQkQ,CAAM,GAC7CD,GAAoBjQ,GAAQkQ,CAAM;AAClC,aAAWz1D,KAASulD,EAAO,YAAY,CAAA;AACrC,IAAAmR,GAAyB12D,GAAOulD,CAAM;AAE1C;ACrDA,SAASoR,GAAiBpR,GAAgBqR,GAA0C;AAClF,MAAIA,MAAS,SAAS;AACpB,UAAMtlD,IAAQ29B,GAAmBsW,CAAM,EAAE,WAAW,CAAA;AACpD,WAAIj0C,EAAM,SAAe,WACrBA,EAAM,aACN,CAACi0C,EAAO,YAAY,CAAC+Q,GAAkB/Q,CAAM,IAAU,cACpD;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAASsR,GAAgBC,GAAiBC,GAA4B;AACpE,SAAO;AACT;AAEA,SAASC,GAAsBvzC,GAA4E;AACzG,QAAM4nB,IAAU5nB,EAAO,QAAQ,eAAe;AAC9C,SAAK4nB,IACE;AAAA,IACL,SAAAA;AAAA,IACA,SAAS4rB,GAA+B5rB,CAAO;AAAA,EAAA,IAH5B;AAKvB;AAEA,SAAS6rB,GAAc3H,GAAsBqH,GAA0BO,GAA6B;AAClG,QAAMrmB,IAASwG,GAAU6f,CAAU;AACnC,MAAIrmB,EAAO,SAAS,QAAQA,EAAO,SAAS;AAC1C,WAAOA,EAAO;AAEhB,QAAM5oB,IAAOqnC,EAAQ,sBAAA;AACrB,SAAO,KAAK,IAAI6H,IAAyB,KAAK,MAAMR,MAAS,UAAU1uC,EAAK,QAAQA,EAAK,MAAM,CAAC;AAClG;AAEA,SAASmvC,GAAyB9R,GAAwC;AACxE,QAAMnD,IAASnT,GAAmBsW,CAAM;AACxC,SAAKnD,EAAO,YACVA,EAAO,UAAU,CAAA,IAEZA,EAAO;AAChB;AAEO,SAASkV,GAAoBlzB,GAKjC;AACD,QAAMmzB,IAAWx2D,GAAI,EAAK;AAC1B,MAAIy2D,IAAgC;AAEpC,WAASC,EAAU1rD,GAAsBC,GAAuB4S,GAAwB;AACtF,UAAMtN,IAAQ+lD,GAAyBz4C,EAAQ,MAAM,GAC/C84C,IAAQC,GAAyB/4C,EAAQ,OAAO;AAEtD,QAAI7S,KAAS,MAAM;AACjB,YAAM6rD,IAAWC,GAAyB;AAAA,QACxC,QAAQj5C,EAAQ;AAAA,QAChB,MAAM;AAAA,QACN,WAAWA,EAAQ;AAAA,QACnB,SAASA,EAAQ;AAAA,QACjB,WAAW7S;AAAA,MAAA,CACZ,GACK+rD,IAAYC,GAAqBhsD,GAAO6rD,GAAUF,EAAM,QAAQ;AACtE,MAAApmD,EAAMsN,EAAQ,QAAQ,IAAI44B,GAAWsgB,GAAW,IAAI;AAAA,IACtD;AACA,QAAI9rD,KAAU,MAAM;AAClB,YAAMgsD,IAAYH,GAAyB;AAAA,QACzC,QAAQj5C,EAAQ;AAAA,QAChB,MAAM;AAAA,QACN,WAAWA,EAAQ;AAAA,QACnB,SAASA,EAAQ;AAAA,QACjB,WAAW5S;AAAA,MAAA,CACZ,GACKisD,IAAaF,GAAqB/rD,GAAQgsD,GAAWN,EAAM,SAAS;AAC1E,MAAApmD,EAAMsN,EAAQ,SAAS,IAAI44B,GAAWygB,GAAY,IAAI;AAAA,IACxD;AAAA,EACF;AAEA,WAASC,IAAmB;AAC1B,IAAAV,IAAU,MACVD,EAAS,QAAQ,IACjB,SAAS,KAAK,MAAM,eAAe,QAAQ,GAC3C,SAAS,KAAK,MAAM,eAAe,aAAa,GAChD,OAAO,oBAAoB,eAAeY,CAAa,GACvD,OAAO,oBAAoB,aAAaC,CAAW,GACnD,OAAO,oBAAoB,iBAAiBA,CAAW;AAAA,EACzD;AAEA,WAASC,IAAY;AACnB,QAAI,CAACb,EAAS;AACd,UAAM1F,IAAQ0F,EAAQ;AACtB,QAAI;AACF,MAAAA,EAAQ,OAAO,sBAAsBA,EAAQ,SAAS;AAAA,IACxD,QAAQ;AAAA,IAER;AACA,IAAAU,EAAA,GACIpG,KACF1tB,EAAQ,SAAS,iBAAA;AAAA,EAErB;AAEA,WAAS+zB,EAAcz0D,GAAqB;AAC1C,QAAI,CAAC8zD,KAAW9zD,EAAM,cAAc8zD,EAAQ,UAAW;AACvD,IAAAA,EAAQ,QAAQ;AAChB,UAAMltD,IAAS5G,EAAM,UAAU8zD,EAAQ,QACjCjtD,IAAS7G,EAAM,UAAU8zD,EAAQ,QACjCzrD,IAAQyrD,EAAQ,SAAS,WAAW,OAAOA,EAAQ,aAAaltD,GAChE0B,IAASwrD,EAAQ,SAAS,UAAU,OAAOA,EAAQ,cAAcjtD;AACvE,IAAAktD,EAAU1rD,GAAOC,GAAQwrD,CAAO;AAAA,EAClC;AAEA,WAASY,EAAY10D,GAAqB;AACxC,IAAI,CAAC8zD,KAAW9zD,EAAM,cAAc8zD,EAAQ,aAC5Ca,EAAA;AAAA,EACF;AAEA,WAASC,EAAY50D,GAAqBkzD,GAAkB;;AAC1D,QAAI,CAACxyB,EAAQ,SAAS,MAAO;AAC7B,UAAMmhB,IAASnhB,EAAQ,OAAA;AACvB,QAAI,CAAC2Q,GAAuB3Q,EAAQ,SAAS,MAAMmhB,CAAM,EAAG;AAE5D,UAAMgT,MAAOt4D,IAAAmkC,EAAQ,eAAR,gBAAAnkC,EAAA,KAAAmkC,OAA0B,EAAE,OAAO,IAAM,QAAQ,IAAM,MAAM,GAAA;AAG1E,QAFIwyB,MAAS,WAAW,CAAC2B,EAAK,SAC1B3B,MAAS,YAAY,CAAC2B,EAAK,UAC3B3B,MAAS,UAAU,CAAC2B,EAAK,KAAM;AAEnC,IAAA70D,EAAM,eAAA,GACNA,EAAM,gBAAA;AAEN,UAAM+f,IAAS/f,EAAM,eACf80D,IAAUxB,GAAsBvzC,CAAM;AAC5C,QAAI,CAAC+0C,EAAS;AAEd,UAAM,EAAE,SAAAntB,GAAS,SAAAn6B,EAAA,IAAYsnD,GACvBlnD,IAAQ+lD,GAAyB9R,CAAM,GACvCkT,IAAW5B,GAA4B,GACvC6B,IAAY/B,GAAiBpR,GAAQqR,CAAI,GACzCc,IAAQC,GAAyBtsB,CAAO;AAE9C,IAAAmsB,IAAU;AAAA,MACR,MAAAZ;AAAA,MACA,WAAWlzD,EAAM;AAAA,MACjB,QAAA+f;AAAA,MACA,SAAA4nB;AAAA,MACA,SAAAn6B;AAAA,MACA,QAAAq0C;AAAA,MACA,QAAQ7hD,EAAM;AAAA,MACd,QAAQA,EAAM;AAAA,MACd,YAAYq0D;AAAA,QACVb,GAAchmD,GAAS,SAASI,EAAMmnD,CAAQ,CAAC;AAAA,QAC/CrB;AAAAA,QACAM,EAAM;AAAA,MAAA;AAAA,MAER,aAAaK;AAAA,QACXb,GAAchmD,GAAS,UAAUI,EAAMonD,CAAS,CAAC;AAAA,QACjDtB;AAAAA,QACAM,EAAM;AAAA,MAAA;AAAA,MAER,UAAAe;AAAA,MACA,WAAAC;AAAA,MACA,OAAO;AAAA,IAAA,GAETnB,EAAS,QAAQ;AAEjB,UAAMoB,IAAS/B,MAAS,UAAU,cAAcA,MAAS,WAAW,cAAc;AAClF,aAAS,KAAK,MAAM,SAAS+B,GAC7B,SAAS,KAAK,MAAM,aAAa,QACjCl1C,EAAO,kBAAkB/f,EAAM,SAAS,GAExC,OAAO,iBAAiB,eAAey0D,CAAa,GACpD,OAAO,iBAAiB,aAAaC,CAAW,GAChD,OAAO,iBAAiB,iBAAiBA,CAAW;AAAA,EACtD;AAEA,SAAAt1D,GAAgB,MAAM;AACpB,IAAAo1D,EAAA;AAAA,EACF,CAAC,GAEM;AAAA,IACL,UAAAX;AAAA,IACA,kBAAkB,CAAC7zD,MAAwB40D,EAAY50D,GAAO,OAAO;AAAA,IACrE,mBAAmB,CAACA,MAAwB40D,EAAY50D,GAAO,QAAQ;AAAA,IACvE,iBAAiB,CAACA,MAAwB40D,EAAY50D,GAAO,MAAM;AAAA,EAAA;AAEvE;;;;;;;;;;AC9MA,UAAMnG,IAAQysC,GAOR4uB,IAAW73D,GAAI,EAAK,GACpB83D,IAAY93D,GAAI,EAAK,GACrB+3D,IAAc/3D,GAA4C,IAAI,GAE9DiiB,IAAWpf,EAAS,MAAA;;AAAM,eAAA1D,KAAAD,IAAA1C,EAAM,aAAN,gBAAA0C,EAAgB,mBAAhB,gBAAAC,EAAgC,QAAO3C,EAAM,OAAO;AAAA,KAAE,GAChFw7D,IAAUn1D,EAAS;;AAAM,eAAA3D,IAAA1C,EAAM,aAAN,gBAAA0C,EAAgB,SAAQ80C,GAAuBx3C,EAAM,SAAS,MAAMA,EAAM,MAAM;AAAA,KAAC,GAC1Gy7D,IAAWp1D,EAAS,MAAMq1D,GAAY17D,EAAM,MAAM,CAAC,GACnD27D,IAAat1D,EAAS,MAAMu1D,GAAsBH,EAAS,KAAK,CAAC,GAEjE,EAAE,kBAAAI,GAAkB,mBAAAC,GAAmB,iBAAAC,EAAA,IAAoBhC,GAAoB;AAAA,MACnF,UAAU/5D,EAAM;AAAA,MAChB,QAAQ,MAAMA,EAAM;AAAA,MACpB,UAAAylB;AAAA,MACA,YAAY,MAAMk2C,EAAW;AAAA,IAAA,CAC9B;AAED,aAASK,IAAuE;;AAC9E,YAAMC,KAAOv5D,IAAA64D,EAAY,UAAZ,gBAAA74D,EAAmB;AAChC,UAAI,CAACu5D,EAAM;AACX,YAAMtxC,IAAOsxC,EAAK,sBAAA;AAClB,UAAI,EAAAtxC,EAAK,SAAS,KAAKA,EAAK,UAAU;AACtC,eAAO;AAAA,UACL,OAAO,KAAK,MAAMA,EAAK,KAAK;AAAA,UAC5B,QAAQ,KAAK,MAAMA,EAAK,MAAM;AAAA,QAAA;AAAA,IAElC;AAEA,aAASuxC,EAAShE,GAA0B;AAC1C,MAAKsD,EAAQ,UACb7C,GAAgB34D,EAAM,QAAQk4D,GAAQ,MAAMl4D,EAAM,SAAS,iBAAA,GAAoBA,EAAM,gBAAgB,MAAMg8D,EAAA,CAAuB,GAClIh8D,EAAM,SAAS,iBAAA;AAAA,IACjB;2BAIEgwC,EA0CWmsB,IAAA;AAAA,eA1CG;AAAA,MAAJ,KAAIZ;AAAA,MAAe,QAAQ9uB,EAAA;AAAA,MAAS,iBAAeA,EAAA;AAAA,MAAe,OAAOA,EAAA;AAAA,IAAA;MAEtE,MAAIsf,EACb,CAAmCgL,MADf;AAAA,QACpB9K,GAAmCC,wBAAT6K,CAAK,CAAA,CAAA;AAAA,MAAA;iBAFjC,MAAQ;AAAA,QAAR9K,GAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;MAKQzmC,EAAA,SAAY+1C,EAAA;cAAU;AAAA,cACpC,MAYM;AAAA,UAZNrsB,EAYM,OAZNC,IAYM;AAAA,YAXJD,EAA+K,OAAA;AAAA,cAA1K,OAAM;AAAA,cAAwE,qCAAYksB,EAAA,QAAQ;AAAA,cAAU,qCAAYA,EAAA,QAAQ;AAAA,cAAW,mCAAYa,EAAQ,KAAA,GAAA,CAAA,MAAA,CAAA;AAAA,YAAA;YACpK/sB,EAAwN,OAAA;AAAA,cAAnN,OAAKsN,GAAA,CAAC,4JAAmK4e,EAAA,QAAQ,gBAAA,WAAA,CAAA;AAAA,YAAA;YACtLlsB,EAEM,OAAA;AAAA,cAFD,OAAKsN,GAAA,CAAC,gSAAuS4e,EAAA,QAAQ,gBAAA,WAAA,CAAA;AAAA,cAAgC,OAAM;AAAA,YAAA;cAC9V72D,EAAmBqrC,EAAA3F,EAAA,CAAA;AAAA,YAAA;YAGrBiF,EAAqL,OAAA;AAAA,cAAhL,OAAM;AAAA,cAAyE,qCAAYmsB,EAAA,QAAS;AAAA,cAAU,qCAAYA,EAAA,QAAS;AAAA,cAAW,mCAAYY,EAAQ,QAAA,GAAA,CAAA,MAAA,CAAA;AAAA,YAAA;YACvK/sB,EAAwN,OAAA;AAAA,cAAnN,OAAKsN,GAAA,CAAC,2JAAkK6e,EAAA,QAAS,gBAAA,WAAA,CAAA;AAAA,YAAA;YACtLnsB,EAEM,OAAA;AAAA,cAFD,OAAKsN,GAAA,CAAC,sRAA6R6e,EAAA,QAAS,gBAAA,WAAA,CAAA;AAAA,cAAgC,OAAM;AAAA,YAAA;cACrV92D,EAAmBqrC,EAAA3F,EAAA,CAAA;AAAA,YAAA;;UAIvBiF,EAmBM,OAnBNE,IAmBM;AAAA,YAjBIssB,EAAA,MAAW,cADnBrsB,EAKE,OAAA;AAAA;cAHA,OAAM;AAAA,cACN,OAAM;AAAA,cACL,eAAWe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA+rB;AAAAA;AAAAA,0BAAOvsB,EAAAgsB,CAAA,KAAAhsB,EAAAgsB,CAAA,EAAA,GAAAz2D,CAAA;AAAA,gBAAgB,CAAA,MAAA;AAAA,cAAA;AAAA,YAAA;YAG7Bu2D,EAAA,MAAW,eADnBrsB,EAKE,OAAA;AAAA;cAHA,OAAM;AAAA,cACN,OAAM;AAAA,cACL,eAAWe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA+rB;AAAAA;AAAAA,0BAAOvsB,EAAAisB,CAAA,KAAAjsB,EAAAisB,CAAA,EAAA,GAAA12D,CAAA;AAAA,gBAAiB,CAAA,MAAA;AAAA,cAAA;AAAA,YAAA;YAG9Bu2D,EAAA,MAAW,aADnBrsB,EAKE,OAAA;AAAA;cAHA,OAAM;AAAA,cACN,OAAM;AAAA,cACL,eAAWe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA+rB;AAAAA;AAAAA,0BAAOvsB,EAAAksB,CAAA,KAAAlsB,EAAAksB,CAAA,EAAA,GAAA32D,CAAA;AAAA,gBAAe,CAAA,MAAA;AAAA,cAAA;AAAA,YAAA;;;;;;;ICzFtCgqC,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,iqDAAgqD,GAAI,MAAM,EAAE;AAAA,EACjtD,EAAK,CAAC;AACN;AACA,MAAAktB,KAAe,EAAE,QAAQjP,GAAM,GCPzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,mBAAmB+J;AAAAA,EACnB,WAAW+E;AAAA,EACX,cAAcC;AAAA,EACd,cAAc9O;AAAA,EACd,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,QAAQ,EAAE,SAAS,EAAE,GAAG+O,KAAwB;AAAA,EAChD,QAAQ,CAAA;AAAA,EACR,UAAU,CAAA;AACZ;;;;;;ACfA,UAAMx8D,IAAQysC;AAId,aAASgwB,EAA6BzU,GAAgB;AACpD,MAAA0U,GAAiB1U,CAAM;AAAA,IACzB;AAEA,UAAM,EAAE,UAAAhb,GAAU,eAAAqK,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA4B;AAAA,MAChI,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAey8D;AAAA,IAAA,CAChB,GAEKE,IAAWt2D,EAAS,MAAMu2D,GAAYvlB,EAAc,KAAK,CAAC,GAC1DwlB,IAAY9kB,EAAA;;;kBAKhB/H,EAuCc6c,IAAA,MAAA;AAAA,QAtCD,SACT,MAiBS;AAAA,UAjBTroD,EAiBSkvC,GAAA;AAAA,YAjBD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAE1DnrC,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,2BACrB,MAEgB;AAAA,kBAFhBpvC,EAEgBq0C,GAAA;AAAA,oBAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,cAAW9H;AAAA,kBAAA;+BACrC,MAAoC;AAAA,8BAApDL,EAA4HrxB,IAAA,MAAAsxB,GAA7FM,EAAAitB,EAAA,GAAoB,CAA5Bx4D,YAAvB0rC,EAA4H8I,GAAA;AAAA,wBAAtE,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAAO,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAG5GE,EAIcovC,GAAA,EAJD,OAAM,QAAI;AAAA,2BACrB,MAEgB;AAAA,kBAFhBpvC,EAEgBq0C,GAAA;AAAA,oBAFO,OAAOhJ,EAAA4H,CAAA,EAAc;AAAA,oBAAd,kBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,OAAI9H;AAAA,kBAAA;+BAC9B,MAAgC;AAAA,8BAAhDL,EAAwHrxB,IAAA,MAAAsxB,GAAzFM,EAAAktB,EAAA,GAAgB,CAAxBz4D,YAAvB0rC,EAAwH8I,GAAA;AAAA,wBAAtE,KAAKx0C,EAAK;AAAA,wBAAQ,OAAOA,EAAK;AAAA,sBAAA;mCAAO,MAAgB;AAAA,0BAAb+6C,GAAAlP,GAAA7rC,EAAK,KAAK,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;cAGxGE,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAqD;AAAA,kBAArDpvC,EAAqDqvC,GAAA;AAAA,oBAAnC,SAAShE,EAAA4H,CAAA,EAAc;AAAA,oBAAd,oBAAApH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAV,MAAAE,EAAA4H,CAAA,EAAc,WAAQ9H;AAAA,kBAAA;;;;;;;UAIrDnrC,EAUEyxD,IAAA;AAAA,YATC,UAAUpmB,EAAA7C,CAAA;AAAA,YACV,oBAAkB6C,EAAAwH,CAAA;AAAA,YAClB,UAAUslB,EAAA;AAAA,YACV,QAAQ9sB,EAAAmtB,EAAA;AAAA,YACR,uBAAqBntB,EAAAotB,EAAA;AAAA,YACtB,cAAW;AAAA,YACX,oBAAiB;AAAA,YACjB,qBAAkB;AAAA,YAClB,gBAAa;AAAA,UAAA;;QAGN,SACT,MAA4C;AAAA,UAA5Cz4D,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA0D;AAAA,UAA1D7yC,EAA0D2oD,IAAA;AAAA,wBAArCtd,EAAAgtB,CAAA;AAAA,kEAAAA,EAAS,QAAAltB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;;;;;;;;;;AC5DhD,UAAMh4C,IAAQysC,GAOR,EAAE,iBAAiBywB,EAAA,IAAc9G,GAAyB;AAAA,MAC9D,UAAUp2D,EAAM;AAAA,MAChB,QAAQ+hC,GAAM/hC,GAAO,QAAQ;AAAA,MAC7B,aAAa48D;AAAA,MACb,aAAaO;AAAA,MACb,iBAAiBC;AAAA,MACjB,cAAcC;AAAA,IAAA,CACf;2BAICrtB,EAIUstB,IAAA;AAAA,MAJA,QAAQztB,EAAAqtB,CAAA;AAAA,MAAY,iBAAezwB,EAAA;AAAA,MAAe,OAAOA,EAAA;AAAA,IAAA;MACtD,MAAIsf,EACb,CAAmCgL,MADf;AAAA,QACpB9K,GAAmCC,wBAAT6K,CAAK,CAAA,CAAA;AAAA,MAAA;;;;;;;;;;ACnBrC,UAAM/2D,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,aAAAK,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAAgB;AAAA,MAC3F,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAe,MAAM;AAAA,MAAC;AAAA,IAAA,CACvB;AAED,IAAAqJ,GAAMguC,GAAe,CAAAh2B,MAAWk8C,GAAoBl8C,CAAO,GAAG,EAAE,WAAW,IAAM,MAAM,GAAA,CAAM;AAE7F,UAAMm8C,IAAazlB,EAAA;;;kBAIjB/H,EAcc6c,IAAA,MAAA;AAAA,QAbD,SACT,MAIS;AAAA,UAJTroD,EAISkvC,GAAA;AAAA,YAJD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;;;;;QAInD,SACT,MAA2F;AAAA,UAA3FnrC,EAA2F0oD,IAAA;AAAA,YAAxE,QAAQrd,EAAAwH,CAAA;AAAA,YAAgB,iBAAexH,EAAA4tB,EAAA;AAAA,UAAA;;QAEjD,SACT,MAA2D;AAAA,UAA3Dj5D,EAA2D2oD,IAAA;AAAA,wBAAtCtd,EAAA2tB,CAAA;AAAA,kEAAAA,EAAU,QAAA7tB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;IClC3C5I,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ,EAAE,GAAG,6WAA4W,GAAI,MAAM,EAAE;AAAA,IACzZA,EAAoB,QAAQ,EAAE,GAAG,yLAAwL,GAAI,MAAM,EAAE;AAAA,IACrOA,EAAoB,QAAQ,EAAE,GAAG,mGAAkG,GAAI,MAAM,EAAE;AAAA,IAC/IA,EAAoB,QAAQ,EAAE,GAAG,mFAAkF,GAAI,MAAM,EAAE;AAAA,EACnI,EAAK,CAAC;AACN;AACA,MAAAuuB,KAAe,EAAE,QAAQtQ,GAAM,GCRzBuQ,KAAeC,GAAA;;AAErB,MAAM5V,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMsF;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,mBAAmB+J;AAAAA,EACnB,WAAWsG;AAAA,EACX,oBAAoB;AAAA,EACpB,iBAAiBb;AAAA,EACjB,cAAc;AAAA,IACZ,GAAGvP;AAAA,IACH;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAUkQ;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,YAAWj7D,KAAAi7D,GAAa,CAAC,MAAd,gBAAAj7D,GAAiB;AAAA,IAC5B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,EAAA;AAAA,EAEZ,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,QAAQ,CAAA;AACV,GAEao7D,KAAwB;AAAA,EACnC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,cAAcvQ;AAAA,EACd,SAAS,CAAA;AAAA,EACT,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,WAAW;AAAA,MACX,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,QAAQ,CAAA;AAAA,EACR,UAAU,CAAA;AACZ;;;;;;ACjEA,UAAMztD,IAAQysC,GAIR,EAAE,eAAA4K,GAAe,eAAAI,GAAe,aAAAC,GAAa,cAAAM,GAAc,wBAAAD,EAAA,IAA2Bb,GAA6B;AAAA,MACvH,QAAQ,MAAMl3C,EAAM;AAAA,MACpB,eAAei+D;AAAA,IAAA,CAChB,GAEKC,IAAanmB,EAAA,GAEb/zC,IAAaqC,EAAS;AAAA,MAC1B,KAAK,MAAMoxC,EAAc,MAAM,cAAc;AAAA,MAC7C,KAAK,CAAA/3C,MAAS;AACZ,QAAA+3C,EAAc,MAAM,aAAa/3C;AAAA,MACnC;AAAA,IAAA,CACD,GAEKg0D,IAAUrtD,EAAS;AAAA,MACvB,KAAK,MAAMoxC,EAAc,MAAM,WAAW;AAAA,MAC1C,KAAK,CAAA/3C,MAAS;AACZ,QAAA+3C,EAAc,MAAM,UAAU/3C;AAAA,MAChC;AAAA,IAAA,CACD,GAEKy+D,IAAa93D,EAAS;AAAA,MAC1B,KAAK,MAAMoxC,EAAc,MAAM,cAAc;AAAA,MAC7C,KAAK,CAAA/3C,MAAS;AACZ,QAAA+3C,EAAc,MAAM,aAAa/3C;AAAA,MACnC;AAAA,IAAA,CACD,GAEK0+D,IAAiB/3D,EAAS;AAAA,MAC9B,KAAK,MAAMoxC,EAAc,MAAM,kBAAkB;AAAA,MACjD,KAAK,CAAA/3C,MAAS;AACZ,QAAA+3C,EAAc,MAAM,iBAAiB/3C;AAAA,MACvC;AAAA,IAAA,CACD;;;kBAICswC,EAwCc6c,IAAA,MAAA;AAAA,QAvCD,SACT,MA6BS;AAAA,UA7BTroD,EA6BSkvC,GAAA;AAAA,YA7BD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,UAAM;AAAA,2BACvB,MAAsE;AAAA,kBAAtEpvC,EAAsEkwC,GAAA;AAAA,oBAArD,OAAO7E,EAAA6H,CAAA;AAAA,qEAAAA,EAAW,QAAA/H,IAAA;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAG1DnrC,EAWkBsoD,IAAA;AAAA,4BAVP9oD,EAAA;AAAA,8DAAAA,EAAU,QAAA2rC;AAAA,gBACnB,OAAM;AAAA,gBACN,oBAAA;AAAA,gBACC,aAAWE,EAAAwH,CAAA,EAAc;AAAA,gBACzB,YAAY,EAAA,WAAA,SAAA,uBAAA,GAAA;AAAA,cAAA;2BAEb,MAAyE;AAAA,kBAAzE7yC,EAAyEkwC,GAAA;AAAA,oBAAxD,OAAO1wC,EAAA;AAAA,6DAAAA,EAAU,QAAA2rC;AAAA,oBAAE,aAAY;AAAA,oBAAW,eAAA;AAAA,kBAAA;oCAC3DR,EAEM,OAAA,EAFD,OAAM,qEAAiE;AAAA,uBAAC,sBACxD;AAAA,oBAAAA,EAAwC,cAA5B,uBAAqB;AAAA,uBAAO,OAC7D;AAAA,kBAAA;;;;cAGF3qC,EAEkBsoD,IAAA;AAAA,4BAFQ4G,EAAA;AAAA,8DAAAA,EAAO,QAAA/jB;AAAA,gBAAE,OAAM;AAAA,gBAAQ,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BACxE,MAAyE;AAAA,kBAAzE7yC,EAAyEkwC,GAAA;AAAA,oBAAxD,OAAOgf,EAAA;AAAA,6DAAAA,EAAO,QAAA/jB;AAAA,oBAAE,aAAY;AAAA,oBAAc,eAAA;AAAA,kBAAA;;;;cAG7DnrC,EAEkBsoD,IAAA;AAAA,4BAFQqR,EAAA;AAAA,8DAAAA,EAAU,QAAAxuB;AAAA,gBAAE,OAAM;AAAA,gBAAU,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BAC7E,MAAmF;AAAA,kBAAnF7yC,EAAmFkwC,GAAA;AAAA,oBAAlE,OAAOypB,EAAA;AAAA,6DAAAA,EAAU,QAAAxuB;AAAA,oBAAE,aAAY;AAAA,oBAAqB,eAAA;AAAA,kBAAA;;;;cAGvEnrC,EAEkBsoD,IAAA;AAAA,4BAFQsR,EAAA;AAAA,8DAAAA,EAAc,QAAAzuB;AAAA,gBAAE,OAAM;AAAA,gBAAQ,aAAWE,EAAAwH,CAAA,EAAc;AAAA,cAAA;2BAC/E,MAAuG;AAAA,kBAAvG7yC,EAAuGkwC,GAAA;AAAA,oBAAtF,OAAO0pB,EAAA;AAAA,6DAAAA,EAAc,QAAAzuB;AAAA,oBAAE,aAAY;AAAA,oBAAqC,eAAA;AAAA,kBAAA;;;;;;;;QAKpF,SACT,MAA4C;AAAA,UAA5CnrC,EAA4C0oD,IAAA,EAAzB,QAAQrd,EAAAwH,CAAA,EAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,SACT,MAA2D;AAAA,UAA3D7yC,EAA2D2oD,IAAA;AAAA,wBAAtCtd,EAAAquB,CAAA;AAAA,kEAAAA,EAAU,QAAAvuB,IAAA;AAAA,YAAG,SAASE,EAAAmI,CAAA;AAAA,UAAA;;;;;;;;;;;;;;;2BC3E/ChI,EAIWquB,IAAA;AAAA,MAJA,QAAQ5xB,EAAA;AAAA,MAAS,iBAAeA,EAAA;AAAA,MAAe,OAAOA,EAAA;AAAA,IAAA;MACpD,MAAIsf,EACb,CAAmCgL,MADf;AAAA,QACpB9K,GAAmCC,wBAAT6K,CAAK,CAAA,CAAA;AAAA,MAAA;;;;ICd/B3nB,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ;AAAA,MAC1B,MAAM;AAAA,MACN,GAAG;AAAA,IACT,GAAO,MAAM,EAAE;AAAA,EACf,EAAK,CAAC;AACN;AACA,MAAAmvB,KAAe,EAAE,QAAQlR,GAAM,GCVzBpF,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAOuW;AAAA,EACP,MAAMjR;AAAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,mBAAmB+J;AAAAA,EACnB,WAAWiH;AAAA,EACX,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,cAAcC;AAAA,EACd,UAAU,CAAA;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,gBAAgB;AAAA,EAAA;AAAA,EAElB,QAAQ,EAAE,SAAS,EAAE,GAAGC,KAAmB;AAAA,EAC3C,QAAQ,CAAA;AACV;;;;;;;;;mECXMnyB,KAA0B;;;;;;;;AAEhC,UAAMoyB,IAAkD;AAAA,MACtD;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA,QAIT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA,QAIT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,QAKT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA,QAIT,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMT,WAAW;AAAA,MAAA;AAAA,IACb,GAGIC,IAA0C;AAAA,MAC9C;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,MAER;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,MAER;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,MAER;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,MAER;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,MAER;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,IACR,GAGI5+D,IAAQysC,GASR3yB,IAAO4yB,GAIPse,IAAmBlgD,GAAOmgD,IAAe,IAAI,GAC7Cje,IAAWC,GAAA,GAEXC,IAAwB7mC;AAAA,MAAS,MAAA;;AACrC,eAAAknC,GAA2B;AAAA,UACzB,WAAW7qC,IAAAsqC,KAAA,gBAAAA,EAAU,SAAV,gBAAAtqC,EAAqC;AAAA,UAChD,UAAUC,IAAAqqC,KAAA,gBAAAA,EAAU,SAAV,gBAAArqC,EAAqC;AAAA,UAC/C,SAASk8D,EAAwB;AAAA,QAAA,CAClC;AAAA;AAAA,IAAA,GAGGC,IAAkBz4D,EAA8B;AAAA,MACpD,KAAK,MAAMrG,EAAM,cAAc,CAAA;AAAA,MAC/B,KAAK,CAAAN,MAASoa,EAAK,qBAAqBilD,GAAoBr/D,CAAK,CAAC;AAAA,IAAA,CACnE,GAEKs/D,IAAyBx7D,GAAI,EAAK,GAClCy7D,IAAsBz7D,GAAmB,IAAI,GAC7Cq7D,IAA0Br7D,GAAI,EAAE,GAEhC07D,IAAyB74D,EAAS,MACjC44D,EAAoB,QAClBL,EAAiB,KAAK,CAAAt6D,MAAQA,EAAK,SAAS26D,EAAoB,KAAK,KAAK,OAD1C,IAExC,GAEKE,IAAuB94D,EAAS,MAAM;AAC1C,YAAMqnC,IAASwxB,EAAuB;AACtC,aAAOxxB,IAAS,GAAGA,EAAO,KAAK,UAAU;AAAA,IAC3C,CAAC,GAEK0xB,IAA6B/4D,EAAS,MAAA;;AAAM,eAAA3D,IAAAw8D,EAAuB,UAAvB,gBAAAx8D,EAA8B,gBAAe;AAAA,KAAwC,GAEjI28D,IAAiCh5D,EAAS,MAAM;AACpD,YAAMynC,IAAU+wB,EAAwB,MAAM,KAAA;AAC9C,aAAO/wB,EAAQ,SAAS,KAAK,CAACC,GAAyBD,CAAO;AAAA,IAChE,CAAC,GAEKwxB,IAAiCj5D,EAAS,MAAM;AACpD,YAAMynC,IAAU+wB,EAAwB,MAAM,KAAA;AAC9C,aAAO/wB,EAAQ,SAAS,KAAKC,GAAyBD,CAAO;AAAA,IAC/D,CAAC;AAED,aAASyxB,EAAoBvoC,GAAc;AACzC,aAAO8nC,EAAgB,MAAM9nC,CAAiC,KAAK;AAAA,IACrE;AAEA,aAASwoC,EAAoBxoC,GAAc;AACzC,YAAM8W,IAAUyxB,EAAoBvoC,CAAI,EAAE,KAAA;AAC1C,aAAO8W,EAAQ,SAAS,KAAKC,GAAyBD,CAAO;AAAA,IAC/D;AAEA,aAAS2xB,EAAoB/xB,GAA6B;AACxD,MAAAuxB,EAAoB,QAAQvxB,EAAO,MACnCmxB,EAAwB,QAAQU,EAAoB7xB,EAAO,IAAI,GAC/DsxB,EAAuB,QAAQ;AAAA,IACjC;AAEA,aAASU,IAAsB;AAC7B,UAAI,CAACT,EAAoB,MAAO;AAEhC,YAAMU,IAAOd,EAAwB,MAAM,KAAA;AAC3C,UAAIc,KAAQ,CAAC5xB,GAAyB4xB,CAAI,GAAG;AAC3C9hC,QAAAA,GAAQ,QAAQ0O,EAAuB;AACvC;AAAA,MACF;AAEA,YAAMl9B,IAAO,EAAE,GAAGyvD,EAAgB,MAAA;AAClC,MAAIa,IACFtwD,EAAK4vD,EAAoB,KAAkC,IAAIJ,EAAwB,QAEvF,OAAOxvD,EAAK4vD,EAAoB,KAAkC,GAGpEH,EAAgB,QAAQzvD,GACxB2vD,EAAuB,QAAQ,IAC/BC,EAAoB,QAAQ,MAC5BJ,EAAwB,QAAQ;AAAA,IAClC;AAEA,aAASe,IAAwB;AAC/B,MAAAZ,EAAuB,QAAQ,IAC/BC,EAAoB,QAAQ,MAC5BJ,EAAwB,QAAQ;AAAA,IAClC;AAEA,aAASgB,EAAwB99D,GAAwD;AACvF,UAAIA,EAAO,WAAW,QAAS,QAAO;AACtC,UAAIA,EAAO,WAAW,kBAAmB,QAAOwqC;AAChD,UAAIxqC,EAAO,WAAW,iBAAkB,QAAO;AAC/C,YAAMuxB,IAAMvxB,EAAO;AACnB,aAAIuxB,aAAe,SAASA,EAAI,UAAgB,QAAQA,EAAI,OAAO,KAC5D;AAAA,IACT;AAEA,aAASwsC,EAAkB9oC,GAAwB+oC,GAAwB;AACzE,UAAI,CAAC/U,GAAkB;AACrBntB,QAAAA,GAAQ,QAAQ,YAAY;AAC5B;AAAA,MACF;AAEA,YAAM6P,IAASkxB,EAAiB,KAAK,CAAAt6D,MAAQA,EAAK,SAAS0yB,CAAI,GACzDj1B,IAASipD,EAAiB,kBAAkBh0B,GAAM;AAAA,QACtD,WAAW8nC,EAAgB;AAAA,QAC3B,eAAAiB;AAAA,MAAA,CACD;AAED,UAAIh+D,EAAO,IAAI;AACb87B,QAAAA,GAAQ,QAAQ6P,IAAS,SAASA,EAAO,KAAK,KAAK,OAAO;AAC1D;AAAA,MACF;AAEA7P,MAAAA,GAAQ,QAAQgiC,EAAwB99D,CAAM,CAAC;AAAA,IACjD;AAEA,aAASi+D,EAA0BtyB,GAA6B;AAC9D,MAAAoyB,EAAkBpyB,EAAO,IAAI;AAAA,IAC/B;AAEA,aAASuyB,IAA8B;AACrC,MAAKhB,EAAoB,SACzBa,EAAkBb,EAAoB,OAA2BJ,EAAwB,KAAK;AAAA,IAChG;AAEA,aAASqB,EAAuBhxB,GAAiB;AAC/C,MAAA2vB,EAAwB,QAAQ3vB;AAAA,IAClC;;;;QAIEC,EAmBM,OAnBNC,IAmBM;AAAA,gBAlBJE,EAiBMrxB,IAAA,MAAAsxB,GAjBgBqvB,GAAgB,CAA1BlxB,MAAZyB,EAiBM,OAAA;AAAA,YAjBmC,KAAKzB,EAAO;AAAA,YAAM,OAAM;AAAA,UAAA;YAC/DyB,EAGM,OAHNE,IAGM;AAAA,cAFJF,EAA2D,OAA3De,IAA2DC,GAArBzC,EAAO,KAAK,GAAA,CAAA;AAAA,cACvCA,EAAO,QAAlBsD,EAAA,GAAA1B,EAAqG,OAArGiB,IAAqGJ,GAApBzC,EAAO,IAAI,GAAA,CAAA;;YAG9FlpC,EAIYu0C,GAAA,EAJA,OAAO,QAAI;AAAA,yBACrB,MAEW;AAAA,gBAFXv0C,EAEWorC,GAAA;AAAA,kBAFD,MAAK;AAAA,kBAAO,MAAK;AAAA,kBAAS,UAAQ,CAAG4vB,EAAoB9xB,EAAO,IAAI;AAAA,kBAAI,SAAK0uB,GAAA,CAAAzsB,MAAOqwB,EAA0BtyB,CAAM,GAAA,CAAA,MAAA,CAAA;AAAA,gBAAA;6BAC5H,MAAsB;AAAA,oBAAtBlpC,EAAsBqrC,EAAAswB,EAAA,CAAA;AAAA,kBAAA;;;;;;YAI1B37D,EAIYu0C,GAAA,EAJA,OAAO,QAAI;AAAA,yBACrB,MAEW;AAAA,gBAFXv0C,EAEWorC,GAAA;AAAA,kBAFD,MAAK;AAAA,kBAAO,MAAK;AAAA,kBAAS,SAAKwsB,GAAA,CAAAzsB,MAAO8vB,EAAoB/xB,CAAM,GAAA,CAAA,MAAA,CAAA;AAAA,gBAAA;6BACxE,MAAgB;AAAA,oBAAhBlpC,EAAgBqrC,EAAAC,EAAA,CAAA;AAAA,kBAAA;;;;;;;;QAMxBtrC,EA0BU8rC,GAAA;AAAA,UA1BO,MAAM0uB,EAAA;AAAA,kDAAAA,EAAsB,QAAArvB;AAAA,UAAG,OAAOwvB,EAAA;AAAA,UAAsB,WAAQ;AAAA,UAAK,eAAY;AAAA,UAAK,OAAM;AAAA,UAAQ,oBAAA;AAAA,UAAkB,MAAIO;AAAA,UAAsB,UAAQE;AAAA,QAAA;qBAC3K,MAA+K;AAAA,YAA/Kp7D,EAA+KqrC,EAAAW,EAAA,GAAA;AAAA,0BAA1JquB,EAAA;AAAA,4DAAAA,EAAuB,QAAAlvB;AAAA,cAAE,UAAS;AAAA,cAAc,aAAayvB,EAAA;AAAA,cAA6B,QAAQ;AAAA,cAAM,2BAAyBlyB,EAAA;AAAA,YAAA;YAE3ImyB,EAAA,cAAX/vB,EAAgI,OAAhImB,IAAgIN,GAAhC5D,EAAuB,CAAA;YAEvH/nC,EAYaksC,GAAA;AAAA,cAZA,UAAU;AAAA,cAAO,wBAAqB;AAAA,cAAO,sBAAoB,CAAA;AAAA,cAAI,OAAM;AAAA,YAAA;yBACpE,MAAsC;AAAA,sBAAxDpB,EAUmBrxB,IAAA,MAAAsxB,GAVcovB,GAAsB,CAA9Br6D,MAAzBE,EAUmBmsC,GAAA;AAAA,kBAVuC,KAAKrsC,EAAK;AAAA,kBAAM,QAAQA,EAAK;AAAA,gBAAA;6BACrF,MAMM;AAAA,oBANN6qC,EAMM,OANNyB,IAMM;AAAA,sBALJzB,EAGM,OAHN0B,IAGM;AAAA,wBAFJrsC,EAA8DqrC,EAAAiB,EAAA,GAAA,EAA1C,OAAM,mCAAiC;AAAA,wBAC3D3B,EAA4B,QAAA,MAAAgB,GAAnB7rC,EAAK,IAAI,GAAA,CAAA;AAAA,sBAAA;sBAEpBE,EAAsHorC,GAAA;AAAA,wBAA5G,MAAK;AAAA,wBAAO,MAAK;AAAA,wBAAQ,OAAM;AAAA,wBAAiB,SAAK,CAAAD,MAAEuwB,EAAuB57D,EAAK,OAAO;AAAA,sBAAA;mCAAG,MAAI,CAAA,GAAA+rC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,6BAAJ,QAAI,EAAA;AAAA,wBAAA;;;;oBAE7GlB,EAAsN,OAAtN4B,IAAsNZ,GAArB7rC,EAAK,OAAO,GAAA,CAAA;AAAA,oBAClMA,EAAK,aAAhB0sC,EAAA,GAAA1B,EAA8H,OAA9H2B,IAA8Hd,GAAvB7rC,EAAK,SAAS,GAAA,CAAA;;;;;;;YAIzH6qC,EAMM,OANN2R,IAMM;AAAA,8BALJ3R,EAAoO,OAAA,EAA/N,OAAM,yEAAqE;AAAA,mBAAC,MAAI;AAAA,gBAAAA,EAAiC,QAAA,EAA3B,OAAM,YAAA,GAAY,IAAE;AAAA,mBAAO,gBAAc;AAAA,gBAAAA,EAA2C,QAAA,EAArC,OAAM,YAAA,GAAY,cAAY;AAAA,mBAAO,GAAC;AAAA,gBAAAA,EAA8C,QAAA,EAAxC,OAAM,YAAA,GAAY,iBAAe;AAAA,cAAA;cACvN3qC,EAGWorC,GAAA;AAAA,gBAHD,MAAK;AAAA,gBAAO,MAAK;AAAA,gBAAQ,OAAM;AAAA,gBAAiB,WAAW0vB,EAAA;AAAA,gBAAiC,SAAOW;AAAA,cAAA;gBAChG,QAAK,MAAsB;AAAA,kBAAtBz7D,EAAsBqrC,EAAAswB,EAAA,CAAA;AAAA,gBAAA;2BAAW,MAEnD;AAAA,qCAFmD,UAEnD,EAAA;AAAA,gBAAA;;;;;;;;;;;;;;;;ACrSN,UAAMngE,IAAQysC,GAIRO,IAAWC,GAAA,GAEXoK,IAAgBhxC,EAAS,OAAO2mC,KAAA,gBAAAA,EAAU,mBAAkBhtC,EAAM,MAAgB,GAElFogE,IAAY/5D,EAAS;AAAA,MACzB,KAAK,MAAMgxC,EAAc,MAAM,SAAS;AAAA,MACxC,KAAK,CAAA33C,MAAS;AACZ,QAAA23C,EAAc,MAAM,QAAQ33C;AAAA,MAC9B;AAAA,IAAA,CACD,GAEK2gE,IAAgBh6D,EAA8B;AAAA,MAClD,KAAK,MAAMgxC,EAAc,MAAM,aAAa,CAAA;AAAA,MAC5C,KAAK,CAAA33C,MAAS;AACZ,QAAA23C,EAAc,MAAM,YAAY33C;AAAA,MAClC;AAAA,IAAA,CACD,GAEK4gE,IAAcj6D,EAAS;AAAA,MAC3B,KAAK,MAAM;;AACT,gBAAA3D,IAAA20C,EAAc,OAAM,YAApB30C,EAAoB,UAAY,CAAA,IACzB20C,EAAc,MAAM;AAAA,MAC7B;AAAA,MACA,KAAK,CAAA33C,MAAS;AACZ,QAAA23C,EAAc,MAAM,UAAU33C;AAAA,MAChC;AAAA,IAAA,CACD;AAED,WAAA2J;AAAA,MACEguC;AAAA,MACA,CAAAh2B,MAAW;AACT,cAAMs2B,IAAM,MAAM;AAChB,UAAA4oB,GAAiBl/C,CAAO,GACnBA,EAAQ,YACXA,EAAQ,UAAU,CAAA,IAEpBqwB,GAAmBrwB,CAAO;AAAA,QAC5B;AACA,QAAI2rB,IACFA,EAAS,2BAA2B2K,CAAG,IAEvCA,EAAA;AAAA,MAEJ;AAAA,MACA,EAAE,WAAW,IAAM,MAAM,GAAA;AAAA,IAAK;;kBAK9B3H,EAec6c,IAAA,MAAA;AAAA,QAdD,SACT,MAKS;AAAA,UALTroD,EAKSkvC,GAAA;AAAA,YALD,QAAO;AAAA,YAAW,OAAM;AAAA,UAAA;uBAC9B,MAEc;AAAA,cAFdlvC,EAEcovC,GAAA,EAFD,OAAM,QAAI;AAAA,2BACrB,MAAoE;AAAA,kBAApEpvC,EAAoEkwC,GAAA;AAAA,oBAAnD,OAAO0rB,EAAA;AAAA,6DAAAA,EAAS,QAAAzwB;AAAA,oBAAE,aAAY;AAAA,oBAAO,eAAA;AAAA,kBAAA;;;;cAExDsc,GAAsEC,EAAA,QAAA,WAAA;AAAA,gBAAhD,QAAQ7U,EAAA;AAAA,gBAAgB,SAASipB,EAAA;AAAA,cAAA;;;;;QAGhD,SACT,MAA4C;AAAA,UAA5C97D,EAA4C0oD,IAAA,EAAzB,QAAQ7V,EAAA,MAAA,GAAa,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAE/B,YACT,MAA8C;AAAA,UAA9C7yC,EAA8Cg8D,IAAA;AAAA,wBAAjBH,EAAA;AAAA,0DAAAA,EAAa,QAAA1wB;AAAA,UAAA;;;;;;IC3E1CP,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASge,GAAOlB,GAAM7b,GAAQ;AACnC,SAAQW,EAAU,GAAI1B,EAAoB,OAAOF,IAAY,CAAC,GAAIiB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI;AAAA,IAC1FlB,EAAoB,QAAQ;AAAA,MAC1B,MAAM;AAAA,MACN,GAAG;AAAA,IACT,GAAO,MAAM,EAAE;AAAA,EACf,EAAK,CAAC;AACN;AACA,MAAAme,KAAe,EAAE,QAAQF,GAAM,GCZzBpF,KAAe;AAAA,EACnB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ,EAAE,SAAS,EAAE,GAAGyY,GAAoB,UAAQ;AAAA,EACpD,SAAS,CAAA;AAAA,EACT,UAAU,CAAA;AAAA,EACV,MAAMC;AAAA,EACN,WAAW,CAAA;AAAA,EACX,SAAS,CAAA;AAAA,EACT,MAAMpT;AAAA,EACN,WAAWC;AAAAA,EACX,iBAAiBC;AACnB,GCTamT,KAA4C;AAAA,EACvD,EAAE,QAAQC,IAAM,SAAS,IAAM,aAAa,OAAA;AAAA,EAC5C,EAAE,QAAQC,IAAM,SAAS,IAAM,aAAa,OAAA;AAAA,EAC5C,EAAE,QAAQr6D,IAAK,SAAS,IAAM,aAAa,OAAA;AAAA,EAC3C,EAAE,QAAQs6D,IAAU,SAAS,IAAM,aAAa,OAAA;AAAA,EAChD,EAAE,QAAQ9+B,IAAM,SAAS,IAAM,aAAa,OAAA;AAAA,EAC5C,EAAE,QAAQ4B,IAAQ,SAAS,IAAM,aAAa,OAAA;AAAA,EAC9C,EAAE,QAAQm9B,IAAO,SAAS,IAAM,aAAa,OAAA;AAAA,EAC7C,EAAE,QAAQj+C,IAAM,SAAS,IAAM,aAAa,OAAA;AAAA,EAC5C,EAAE,QAAQk+C,IAAS,SAAS,IAAM,aAAa,OAAA;AAAA,EAC/C,EAAE,QAAQlD,GAAA;AAAA,EACV,EAAE,QAAQrG,GAAA;AAAA,EACV,EAAE,QAAQwJ,GAAA;AACZ,GCLaC,KAA0BC,GAAuBR,EAAmB,GAEpES,KAA4CC,GAAsBV,EAAmB;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,178,179,180,181,182,183,184,185,186]}
|