@opentiny/tiny-engine-canvas 2.5.0 → 2.6.0-alpha.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sources":["../render/src/canvas-function/controller.ts","../render/src/canvas-function/design-mode.ts","../render/src/canvas-function/global-notify.ts","../render/src/canvas-function/CanvasEmpty.vue","../render/src/material-function/configure.ts","../render/src/builtin/CanvasText.vue","../render/src/builtin/CanvasBox.vue","../render/src/builtin/CanvasPlaceholder.vue","../render/src/builtin/CanvasCollection.ts","../render/src/builtin/CanvasCollection.vue","../render/src/builtin/CanvasIcon.vue","../render/src/builtin/CanvasSlot.vue","../render/src/builtin/CanvasImg.vue","../render/src/builtin/CanvasRouterView.vue","../render/src/builtin/CanvasRouterLink.vue","../render/src/material-function/material-getter.ts","../render/src/material-function/support-block-slot-data-for-webcomponent.ts","../render/src/data-utils.ts","../render/src/data-function/parser.ts","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/unesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/getProp.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/ensureObject.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/stripComments.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/node.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/types.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/container.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/root.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/selector.js","../../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/className.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/comment.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/id.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/namespace.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/tag.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/string.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../../../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/browser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/attribute.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/universal.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/combinator.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/nesting.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/sortAscending.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenTypes.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenize.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/parser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/processor.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/constructors.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/guards.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/index.js","../render/src/material-function/scope-css-plugin.ts","../render/src/material-function/handle-scoped-css.ts","../render/src/material-function/page-getter.ts","../render/src/render.ts","../render/src/canvas-function/custom-renderer.ts","../render/src/canvas-function/locale.ts","../render/src/canvas-function/router-view-setting.ts","../render/src/application-function/bridge.ts","../render/src/application-function/data-source-map.ts","../render/src/application-function/global-state.ts","../render/src/application-function/utils.ts","../render/src/page-block-function/accessor-map.ts","../render/src/page-block-function/css.ts","../render/src/page-block-function/methods.ts","../render/src/page-block-function/props.ts","../render/src/page-block-function/state.ts","../render/src/page-block-function/schema.ts","../render/src/page-block-function/context.ts","../render/src/canvas-function/canvas-api.ts","../render/src/canvas-function/page-switcher.ts","../render/src/canvas-function/router-preview.ts","../render/src/RenderMain.ts","../render/src/lowcode.ts","../render/src/runner.ts"],"sourcesContent":["const controller: Record<string, any> = {}\n\nexport const setController = (controllerData) => {\n Object.assign(controller, controllerData)\n}\n\nexport const getController = () => controller\n","export const DESIGN_MODE = {\n DESIGN: 'design', // 设计态\n RUNTIME: 'runtime' // 运行态\n}\n\n// 是否表现画布内特征的标志,用来控制是否允许拖拽、原生事件是否触发等\nlet designMode = DESIGN_MODE.DESIGN\n\nexport const getDesignMode = () => designMode\n\nexport const setDesignMode = (mode: string) => {\n designMode = mode\n}\n","import { useBroadcastChannel } from '@vueuse/core'\nimport { constants } from '@opentiny/tiny-engine-utils'\nconst { BROADCAST_CHANNEL } = constants\nconst { post } = useBroadcastChannel({ name: BROADCAST_CHANNEL.Notify })\n\n// 此处向外层window传递notify配置参数\nexport const globalNotify = (options) => post(options)\n","<template>\n <p class=\"empty-text\">{{ props.placeholderText || '从左侧面板拖入组件,以构建页面' }}</p>\n</template>\n\n<style lang=\"less\" scoped>\n.empty-text {\n position: absolute;\n top: 250px;\n left: 50%;\n transform: translate(-50%);\n color: #808080;\n font-size: 12px;\n}\n</style>\n<script setup>\nconst props = defineProps({\n placeholderText: String\n})\n</script>\n","export const configure: Record<string, any> = {}\nexport const setConfigure = (configureData) => {\n Object.assign(configure, configureData)\n}\n","<template>\n <span :class=\"['canvas-text', className]\">{{ text }}</span>\n</template>\n\n<script lang=\"ts\">\nexport default {\n props: {\n text: {\n type: String,\n default: ''\n },\n className: {\n type: String,\n default: ''\n }\n }\n}\n</script>\n","<template>\n <component :is=\"tag\" v-bind=\"$attrs\">\n <slot> </slot>\n </component>\n</template>\n\n<script lang=\"ts\">\nexport default {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n }\n}\n</script>\n","<template>\n <div class=\"canvas-container\">\n <div class=\"container-box\">\n <div class=\"container-tip\">\n <slot>{{ placeholder }}</slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nexport default {\n props: {\n placeholder: {\n type: String,\n default: '请将元素拖放到这里'\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.canvas-container {\n min-height: 48px;\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { getController } from '../render'\n\nconst NAME_PREFIX = {\n loop: 'loop',\n table: 'getTableData',\n page: 'pageConfig',\n grid: 'tinyGrid',\n tree: 'tinyTree',\n select: 'tinySelect'\n}\n\nconst genRemoteMethodToLifeSetup = (variableName, sourceRef, pageSchema) => {\n if (sourceRef.value.data?.option) {\n const setupFn = pageSchema.lifeCycles?.setup?.value\n const fetchBody = `\n this.state.${variableName} = []\n this.dataSourceMap.${sourceRef.value.name}.load().then(data=>{ this.state.${variableName}=data })`\n\n if (!setupFn) {\n pageSchema.lifeCycles = pageSchema.lifeCycles || {}\n pageSchema.lifeCycles.setup = {\n type: 'JSFunction',\n value: `function setup({ props, state, watch, onMounted }) {${fetchBody}}`\n }\n } else {\n pageSchema.lifeCycles.setup.value = setupFn.trim().replace(/\\}$/, fetchBody + '}')\n }\n }\n}\n\nconst removeState = (pageSchema, variableName) => {\n delete pageSchema.state[variableName]\n\n const { parse, traverse, generate } = getController().ast\n const setupFn = pageSchema.lifeCycles?.setup?.value\n\n try {\n const ast = parse(setupFn)\n\n traverse(ast, {\n ExpressionStatement(path) {\n if (path.toString().includes(variableName)) {\n path.remove()\n }\n }\n })\n\n pageSchema.lifeCycles.setup.value = generate(ast).code\n } catch (error) {\n // do nothing\n }\n}\n\nconst setStateWithSourceRef = (pageSchema, variableName, sourceRef, data) => {\n pageSchema.state[variableName] = data\n\n if (sourceRef.value.data?.option?.isSync) {\n genRemoteMethodToLifeSetup(variableName, sourceRef, pageSchema)\n }\n}\n\nconst defaultHandlerTemplate = ({ node, sourceRef, schemaId, pageSchema }) => {\n const genVarName = (schemaId) => `${NAME_PREFIX.loop}${schemaId}`\n\n const updateNode = () => {\n const { configure } = getController().getMaterial(node?.componentName)\n\n if (!configure?.loop) {\n return\n }\n\n const variableName = genVarName(schemaId)\n\n setStateWithSourceRef(pageSchema, variableName, sourceRef, sourceRef.value.data?.data)\n\n node.loop = {\n type: 'JSExpression',\n value: `this.state.${variableName}`\n }\n }\n\n const clearBindVar = () => {\n const variableName = genVarName(schemaId)\n\n removeState(pageSchema, variableName)\n }\n\n return {\n updateNode,\n clearBindVar\n }\n}\n\nconst generateAssignColumns = (newColumns, oldColumns) => {\n newColumns.forEach((item) => {\n const targetColumn = oldColumns.find((value) => value.field === item.field)\n if (targetColumn) {\n Object.assign(item, targetColumn)\n }\n })\n return newColumns\n}\n\nconst askShouldImportData = ({ node, sourceRef, updateKey }) => {\n const { publish } = getController().useMessage()\n\n getController()\n .useModal()\n .confirm({\n message: '检测到表格存在配置的数据,是否需要引入?',\n exec() {\n try {\n const sourceColumns = sourceRef.value?.data?.columns?.map(({ title, field }) => ({ title, field })) || []\n // 这里需要找到对应列,然后进行列合并\n node.props.columns = generateAssignColumns(sourceColumns, node.props.columns)\n\n publish({ topic: 'schemaChange', data: {} })\n updateKey.value++\n } catch (error) {\n getController().useNotify({\n type: 'error',\n message: '引入配置数据失败'\n })\n }\n },\n cancel() {\n node.props.columns = [...(sourceRef.value.data?.columns || [])]\n\n publish({ topic: 'schemaChange', data: {} })\n }\n })\n}\n\nconst updateNodeHandler = ({ node, sourceRef, pageSchema, sourceName, methodName, updateKey }) => {\n if (!node || !node.props || !sourceName) {\n return\n }\n\n // 如果使用了数据元则需要删除表格的data属性\n delete node?.props?.data\n\n if (node.props.columns.length) {\n askShouldImportData({ node, sourceRef, updateKey })\n } else {\n node.props.columns = [...(sourceRef.value.data?.columns || [])]\n }\n\n const pageConfig = {\n attrs: {\n currentPage: 1,\n pageSize: 50,\n pageSizes: [10, 20, 50],\n total: 0,\n layout: 'sizes,total, prev, pager, next, jumper'\n }\n }\n\n node.props.pager = pageConfig\n\n pageSchema.methods[methodName] = {\n type: 'JSFunction',\n value: `function ${methodName}({ page, sort, sortBy, filters}) {\n/**\n* @param {Object} sort 排序数据\n* @param {Array} sortBy 排序方式\n* @param {Object} page 分页数据\n* @param {Array} filters 筛选数据\n* @returns {Object} 返回一个promise对象,并且resolve格式为{ result: Array, page: { total: Number } }\n*/\nreturn new Promise((resolve, reject) => {\nthis.dataSourceMap.${sourceName}.load().then((res) => {\n // 如果按照数据源面板的建议格式编写dataHandler\n // 那么dataSourceMap的res格式应该是:{ code: string, msg: string, data: {items: any[], total: number} }\n resolve({ result: res.data.items, page: { total: res.data.total } });\n});\n});\n}`\n }\n}\n\nconst extraHandlerMap = {\n TinyGrid: ({ node, sourceRef, schemaId, pageSchema, updateKey }) => {\n const sourceName = sourceRef.value?.name\n const methodName = `${NAME_PREFIX.table}${schemaId}`\n\n node.props.fetchData = {\n type: 'JSExpression',\n value: `{ api: this.${methodName} }`\n }\n\n const updateNode = () => updateNodeHandler({ node, sourceRef, pageSchema, sourceName, methodName, updateKey })\n\n const clearBindVar = () => {\n // 当数据源组件children字段为空时,及时清空创建的methods\n delete pageSchema.methods[methodName]\n }\n\n return {\n updateNode,\n clearBindVar\n }\n },\n TinyTree: ({ node, sourceRef, schemaId, pageSchema }) => {\n const genVarName = (schemaId) => `${NAME_PREFIX.tree}${schemaId}`\n\n const updateNode = () => {\n const variableName = genVarName(schemaId)\n\n const arrayToTree = (data) => {\n const map = {}\n const tree = []\n let node = null\n let i = 0\n\n for (i = 0; i < data.length; i++) {\n map[data[i].id] = data[i]\n data[i].children = []\n }\n\n for (i = 0; i < data.length; i++) {\n node = data[i]\n if (node.pid !== '') {\n map[node.pid]?.children?.push(node)\n } else {\n tree.push(node)\n }\n }\n\n return tree\n }\n\n setStateWithSourceRef(pageSchema, variableName, sourceRef, arrayToTree(sourceRef.value.data?.data))\n\n node.props.data = {\n type: 'JSExpression',\n value: `this.state.${variableName}`\n }\n }\n\n const clearBindVar = () => {\n const variableName = genVarName(schemaId)\n\n removeState(pageSchema, variableName)\n }\n\n return {\n updateNode,\n clearBindVar\n }\n },\n TinySelect: ({ node, sourceRef, schemaId, pageSchema }) => {\n const genVarName = (schemaId) => `${NAME_PREFIX.select}${schemaId}`\n\n const updateNode = () => {\n const variableName = genVarName(schemaId)\n\n setStateWithSourceRef(pageSchema, variableName, sourceRef, sourceRef.value.data?.data)\n\n node.props.options = {\n type: 'JSExpression',\n value: `this.state.${variableName}`\n }\n }\n\n const clearBindVar = () => {\n const variableName = genVarName(schemaId)\n\n removeState(pageSchema, variableName)\n }\n\n return {\n updateNode,\n clearBindVar\n }\n }\n}\n\nexport const getHandler = ({ node, sourceRef, schemaId, pageSchema, updateKey }) =>\n extraHandlerMap[node.componentName]\n ? extraHandlerMap[node.componentName]({ node, sourceRef, schemaId, pageSchema, updateKey })\n : defaultHandlerTemplate({ node, sourceRef, schemaId, pageSchema })\n","<template>\n <component :is=\"tag\" v-bind=\"$attrs\" :key=\"updateKey\">\n <slot>\n <canvas-placeholder></canvas-placeholder>\n </slot>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport { ref, watch, computed } from 'vue'\nimport CanvasPlaceholder from './CanvasPlaceholder.vue'\nimport { getController } from '../render'\nimport { getHandler } from './CanvasCollection.ts'\n\nexport const fetchDataSourceDetail = (dataSourceId) =>\n getController().request.get(`/app-center/api/sources/detail/${dataSourceId}`) // TODO: 强行耦合了\n\nexport default {\n components: {\n CanvasPlaceholder\n },\n props: {\n // TODO: 这里实际上没有提供配置的入口,可以考虑删除了(出码也没有定制)\n tag: {\n type: String,\n default: 'div'\n },\n schema: {\n type: Object,\n default: () => ({})\n },\n dataSource: [String, Array, Number]\n },\n setup(props) {\n const source = ref(null)\n // 这里 key 的作用是:触发组件更新,这样就能触发 tiny-grid 表格组件重新触发 fetchData 方法,进而刷新数据显示到画布\n const updateKey = ref(0)\n\n if (props.dataSource) {\n fetchDataSourceDetail(props.dataSource).then((res) => {\n source.value = res\n })\n }\n\n let handler\n watch(\n () => props.dataSource,\n async (value) => {\n if (value) {\n source.value = await fetchDataSourceDetail(value)\n const { getSchema, getNode } = window.host.schemaUtils\n const node = getNode(props.schema?.children?.[0]?.id)\n\n if (node) {\n handler = getHandler({\n sourceRef: source,\n node,\n schemaId: props.schema.id,\n pageSchema: getSchema(),\n updateKey\n })\n }\n handler?.updateNode()\n updateKey.value++\n }\n }\n )\n const isEmpty = computed(() => {\n const { children } = props.schema || {}\n return Array.isArray(children) ? !children.length : !children\n })\n\n watch(\n () => isEmpty.value,\n (value) => {\n const { getSchema, getNode } = window.host.schemaUtils\n const pageSchema = getSchema()\n\n if (value) {\n // 清除自动创建的state,method与setup逻辑\n if (handler) {\n handler.clearBindVar()\n } else {\n const schemaId = props.schema?.id\n // 当页面初始化时handler是不存在的,所以需要通过数据源的schemaId(唯一性),去删除对应的方法\n Object.keys(pageSchema.methods || {})?.some((item) => {\n if (item.includes(schemaId)) {\n delete pageSchema.methods[item]\n return true\n }\n return false\n })\n }\n } else {\n const node = getNode(props.schema?.children?.[0]?.id)\n if (node) {\n handler = getHandler({\n sourceRef: source,\n node,\n schemaId: props.schema.id,\n pageSchema,\n updateKey\n })\n handler.updateNode()\n }\n }\n\n const { publish } = getController().useMessage()\n\n publish({ topic: 'schemaChange', data: {} })\n updateKey.value++\n }\n )\n return { source, updateKey }\n }\n}\n</script>\n","<script lang=\"ts\">\nimport * as SvgIcons from '@opentiny/vue-icon'\nimport { h } from 'vue'\n\nexport default {\n props: {\n name: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n return () =>\n h('span', { class: 'iconwarp' }, [\n h(SvgIcons[props.name]?.(), { style: { width: '100%', height: '100%' } }) || 'error.'\n ])\n }\n}\n</script>\n\n<style scoped>\n.iconwarp {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n fill: currentColor;\n width: 1em;\n height: 1em;\n}\n</style>\n","<template>\n <slot>\n <canvas-placeholder v-bind=\"$attrs\"></canvas-placeholder>\n </slot>\n</template>\n\n<script lang=\"ts\">\nimport CanvasPlaceholder from './CanvasPlaceholder.vue'\nexport default {\n components: {\n CanvasPlaceholder\n },\n props: {\n name: {\n type: String\n },\n params: {\n type: String\n }\n }\n}\n</script>\n","<template>\n <img :src=\"src\" :style=\"style\" />\n</template>\n\n<script lang=\"ts\">\nexport default {\n props: {\n src: {\n type: String,\n default: ''\n },\n style: {\n type: String,\n default: ''\n }\n }\n}\n</script>\n","<template>\n <canvas-placeholder placeholder=\"路由子页面显示位置占位符\" :data-te-page-id=\"pageId\"></canvas-placeholder>\n</template>\n<script lang=\"ts\">\nimport { inject } from 'vue'\nimport CanvasPlaceholder from './CanvasPlaceholder.vue'\nexport default {\n components: {\n CanvasPlaceholder\n },\n props: {\n name: {\n type: String\n },\n params: {\n type: Object\n }\n },\n setup() {\n const pageId = inject('pageContext')?.pageId\n\n return { pageId }\n }\n}\n</script>\n","<template>\n <a\n href=\"javascript:void(0)\"\n :data-router-target-page-id=\"to?.name\"\n :class=\"{\n [activeClass]: active,\n [exactActiveClass]: exactActive\n }\"\n >\n <slot :href=\"to\" :isActive=\"active\" :isExactActive=\"exactActive\"></slot>\n </a>\n</template>\n<script lang=\"ts\">\nimport { computed, inject, PropType, Ref } from 'vue'\nexport default {\n props: {\n activeClass: {\n type: String,\n default: ''\n },\n exactActiveClass: {\n type: String,\n default: ''\n },\n to: {\n // TODO: 支持绝对路径,类型为String\n type: Object as PropType<{\n name: string\n }>\n }\n },\n setup(props) {\n const pageAncestor = (inject('page-ancestors') as Ref<string[] | null>).value\n const active = computed(() => {\n if (!Array.isArray(pageAncestor) || !props.to?.name) {\n return false\n }\n\n return pageAncestor.includes(props.to.name)\n })\n\n const exactActive = computed(() => {\n if (!Array.isArray(pageAncestor) || !props.to?.name) {\n return false\n }\n\n return props.to.name === pageAncestor[pageAncestor.length - 1]\n })\n\n return {\n active,\n exactActive\n }\n }\n}\n</script>\n","import { h, defineAsyncComponent } from 'vue'\nimport { isHTMLTag } from '@vue/shared'\nimport * as TinyVueIcon from '@opentiny/vue-icon'\n\nimport {\n CanvasRow,\n CanvasCol,\n CanvasRowColContainer,\n CanvasFlexBox,\n CanvasSection\n} from '@opentiny/tiny-engine-builtin-component'\nimport {\n CanvasBox,\n CanvasCollection,\n CanvasIcon,\n CanvasText,\n CanvasSlot,\n CanvasImg,\n CanvasPlaceholder,\n CanvasRouterView,\n CanvasRouterLink\n} from '../builtin'\nimport { getController } from '../canvas-function/controller'\nimport BlockLoadError from '../BlockLoadError.vue'\n\nexport const Mapper = {\n Icon: CanvasIcon,\n Text: CanvasText,\n Collection: CanvasCollection,\n div: CanvasBox,\n Slot: CanvasSlot,\n slot: CanvasSlot,\n Template: CanvasBox,\n Img: CanvasImg,\n CanvasSection,\n CanvasFlexBox,\n CanvasRow,\n CanvasCol,\n CanvasRowColContainer,\n CanvasPlaceholder,\n RouterView: CanvasRouterView,\n RouterLink: CanvasRouterLink\n}\nconst getNative = (name) => {\n return window.TinyLowcodeComponent?.[name]\n}\n\nconst getBlock = (name) => {\n return window.blocks?.[name]\n}\n\nconst blockComponentsBlobUrlMap = new Map<string, string>()\n\n// TODO: 这里的全局 getter 方法名,可以做成配置化\nconst loadBlockComponent = async (name: string) => {\n try {\n if (blockComponentsBlobUrlMap.has(name)) {\n return import(/* @vite-ignore */ blockComponentsBlobUrlMap.get(name))\n }\n\n const blocksBlob = (await getController().getBlockByName(name)) as Array<{ blobURL: string; style: string }>\n\n for (const [fileName, value] of Object.entries(blocksBlob)) {\n blockComponentsBlobUrlMap.set(fileName, value.blobURL)\n\n if (!value.style) {\n continue\n }\n\n // 注册 CSS,以区块为维度\n const stylesheet = document.querySelector(`#${fileName}`)\n\n if (stylesheet) {\n stylesheet.innerHTML = value.style\n } else {\n const newStylesheet = document.createElement('style')\n newStylesheet.innerHTML = value.style\n newStylesheet.setAttribute('id', fileName)\n document.head.appendChild(newStylesheet)\n }\n }\n\n return import(/* @vite-ignore */ blockComponentsBlobUrlMap.get(name))\n } catch (error) {\n // 加载错误提示\n return h(BlockLoadError, { name })\n }\n}\n\nwindow.loadBlockComponent = loadBlockComponent\n\nconst getBlockComponent = (name) => {\n return defineAsyncComponent(() => loadBlockComponent(name))\n}\n\n// 移除区块缓存\nexport const removeBlockCompsCache = () => {\n blockComponentsBlobUrlMap.forEach((_, fileName) => {\n const stylesheet = document.querySelector(`#${fileName}`)\n stylesheet?.remove?.()\n })\n\n blockComponentsBlobUrlMap.clear()\n}\n\nexport const getIcon = (name) => TinyVueIcon?.[name]?.() || ''\n\nexport const getComponent = (name) => {\n return Mapper[name] || getNative(name) || getBlock(name) || (isHTMLTag(name) ? name : getBlockComponent(name))\n}\n","import { reactive } from 'vue'\n\nexport const blockSlotDataMap = reactive<Record<string, any>>({})\n","import { utils as commonUtils } from '@opentiny/tiny-engine-utils'\nexport const { parseFunction: generateFunction } = commonUtils\n\nexport const reset = (obj) => {\n Object.keys(obj).forEach((key) => delete obj[key])\n}\n\n// 规避创建function eslint报错\nexport const newFn = (...argv) => {\n const Fn = Function\n return new Fn(...argv)\n}\n\nexport const getDeletedKeys = (objA, objB) => {\n const keyA = Object.keys(objA)\n const keyB = new Set(Object.keys(objB))\n\n return keyA.filter((item) => !keyB.has(item))\n}\n","import babelPluginJSX from '@vue/babel-plugin-jsx'\nimport { transformSync } from '@babel/core'\nimport i18nHost from '@opentiny/tiny-engine-i18n-host'\n\nimport { globalNotify } from '../canvas-function'\nimport { getComponent, getIcon } from '../material-function'\nimport { newFn } from '../data-utils'\nimport { renderDefault } from '../render'\n\ninterface ITypeParserDef {\n type: (data) => boolean\n parseFunc: (data: unknown, scope: Record<string, any>, ctx: Record<string, any>) => unknown\n}\n\nconst parseList: Array<ITypeParserDef> = []\n\nconst isI18nData = (data) => {\n return data && data.type === 'i18n'\n}\n\nconst isJSSlot = (data) => {\n return data && data.type === 'JSSlot'\n}\n\nconst isJSExpression = (data) => {\n return data && data.type === 'JSExpression'\n}\n\nconst isJSFunction = (data) => {\n return data && data.type === 'JSFunction'\n}\n\nconst isJSResource = (data) => {\n return data && data.type === 'JSResource'\n}\n\nconst isString = (data) => {\n return typeof data === 'string'\n}\n\nconst isArray = (data) => {\n return Array.isArray(data)\n}\n\nconst isFunction = (data) => {\n return typeof data === 'function'\n}\nconst isIcon = (data) => {\n return data?.componentName === 'Icon'\n}\nconst isObject = (data) => {\n return typeof data === 'object'\n}\n// 判断是否是状态访问器\nexport const isStateAccessor = (stateData) =>\n stateData?.accessor?.getter?.type === 'JSFunction' || stateData?.accessor?.setter?.type === 'JSFunction'\n\nconst transformJSX = (code) => {\n const res = transformSync(code, {\n plugins: [\n [\n babelPluginJSX,\n {\n pragma: 'h'\n }\n ]\n ]\n })\n return (res.code || '')\n .replace(/import \\{.+\\} from 'vue';/, '')\n .replace(/h\\(_?resolveComponent\\((.*?)\\)/g, `h(this.getComponent($1)`)\n .replace(/_?resolveComponent/g, 'h')\n .replace(/_?createTextVNode\\((.*?)\\)/g, '$1')\n .trim()\n}\n\nconst parseExpression = (data, scope, ctx, isJsx = false) => {\n try {\n if (data.value.indexOf('this.i18n') > -1) {\n ctx.i18n = i18nHost.global.t\n } else if (data.value.indexOf('t(') > -1) {\n ctx.t = i18nHost.global.t\n }\n\n const expression = isJsx ? transformJSX(data.value) : data.value\n return newFn('$scope', `with($scope || {}) { return ${expression} }`).call(ctx, {\n ...ctx,\n ...scope,\n slotScope: scope\n })\n } catch (err) {\n // 解析抛出异常,则再尝试解析 JSX 语法。如果解析 JSX 语法仍然出现错误,isJsx 变量会确保不会再次递归执行解析\n if (!isJsx) {\n return parseExpression(data, scope, ctx, true)\n }\n return undefined\n }\n}\n\nconst parseI18n = (i18n, scope, ctx) => {\n return parseExpression(\n {\n type: 'JSExpression',\n value: `this.i18n('${i18n.key}', ${JSON.stringify(i18n.params)})`\n },\n scope,\n { i18n: i18nHost.global.t, ...ctx }\n )\n}\n\n// 解析函数字符串结构\nconst parseFunctionString = (fnStr) => {\n const fnRegexp = /(async)?.*?(\\w+) *\\(([\\s\\S]*?)\\) *\\{([\\s\\S]*)\\}/\n const result = fnRegexp.exec(fnStr)\n if (result) {\n return {\n type: result[1] || '',\n name: result[2],\n params: result[3]\n .split(',')\n .map((item) => item.trim())\n .filter((item) => Boolean(item)),\n body: result[4]\n }\n }\n return null\n}\n\n// 解析JSX字符串为可执行函数\nconst parseJSXFunction = (data, _scope, ctx) => {\n try {\n const newValue = transformJSX(data.value)\n const fnInfo = parseFunctionString(newValue)\n if (!fnInfo) throw Error('函数解析失败,请检查格式。示例:function fnName() { }')\n\n return newFn(...fnInfo.params, fnInfo.body).bind({\n ...ctx,\n getComponent\n })\n } catch (error) {\n globalNotify({\n type: 'warning',\n title: '函数声明解析报错',\n message: error?.message || '函数声明解析报错,请检查语法'\n })\n\n return newFn()\n }\n}\n\nexport const generateFn = (innerFn, context?) => {\n return (...args) => {\n // 如果有数据源标识,则表格的fetchData返回数据源的静态数据\n\n let result = null\n\n // 这里是为了兼容用户写法报错导致画布异常,但无法捕获promise内部的异常\n try {\n result = innerFn.call(context, ...args)\n } catch (error) {\n globalNotify({\n type: 'warning',\n title: `函数:${innerFn.name}执行报错`,\n message: error?.message || `函数:${innerFn.name}执行报错,请检查语法`\n })\n }\n\n // 这里注意如果innerFn返回的是一个promise则需要捕获异常,重新返回默认一条空数据\n if (result.then && typeof result.then === 'function') {\n result = new Promise((resolve) => {\n result.then(resolve).catch((error) => {\n globalNotify({\n type: 'warning',\n title: '异步函数执行报错',\n message: error?.message || '异步函数执行报错,请检查语法'\n })\n // 这里需要至少返回一条空数据,方便用户使用表格默认插槽\n resolve({\n result: [{}],\n page: { total: 1 }\n })\n })\n })\n }\n\n return result\n }\n}\nconst parseJSFunction = (data, _scope, ctx) => {\n try {\n const innerFn = newFn(`return ${data.value}`).bind(ctx)()\n return generateFn(innerFn, ctx)\n } catch (error) {\n return parseJSXFunction(data, null, ctx)\n }\n}\n\nconst parseJSSlot = (data, scope, _ctx) => {\n return ($scope) => renderDefault(data.value, { ...scope, ...$scope }, data)\n}\n\nexport function parseData(data, scope, ctx) {\n const typeParser = parseList.find((item) => item.type(data))\n return typeParser ? typeParser.parseFunc(data, scope, ctx) : data\n}\n\nexport const parseCondition = (condition, scope, ctx) => {\n // eslint-disable-next-line no-eq-null\n return condition == null ? true : parseData(condition, scope, ctx)\n}\n\nexport const parseLoopArgs = (loop?: { item: unknown; index: number; loopArgs?: string[] }) => {\n if (!loop) {\n return undefined\n }\n const { item, index, loopArgs = [] } = loop\n const body = `return {${loopArgs[0] || 'item'}: item, ${loopArgs[1] || 'index'} : index }`\n return newFn('item,index', body)(item, index)\n}\n\nconst parseIcon = (data, _scope, _ctx) => {\n return getIcon(data.props.name)\n}\n\nconst parseStateAccessor = (data, _scope, ctx) => {\n return parseData(data.defaultValue, null, ctx)\n}\n\nconst parseObjectData = (data, scope, ctx) => {\n if (!data) {\n return data\n }\n\n const res = {}\n Object.entries(data).forEach(([key, value]: [string, any]) => {\n // 如果是插槽则需要进行特殊处理\n if (key === 'slot' && value?.name) {\n res[key] = value.name\n } else {\n res[key] = parseData(value, scope, ctx)\n }\n })\n return res\n}\n\nconst parseString = (data) => {\n return data.trim()\n}\n\nconst parseArray = (data, scope, ctx) => {\n return data.map((item) => parseData(item, scope, ctx))\n}\n\nconst parseFunction = (data, scope, ctx) => {\n return data.bind(ctx)\n}\n\nparseList.push(\n ...[\n {\n type: isJSExpression,\n parseFunc: parseExpression\n },\n {\n type: isI18nData,\n parseFunc: parseI18n\n },\n {\n type: isJSFunction,\n parseFunc: parseJSFunction\n },\n {\n type: isJSResource,\n parseFunc: parseExpression\n },\n {\n type: isJSSlot,\n parseFunc: parseJSSlot\n },\n {\n type: isIcon,\n parseFunc: parseIcon\n },\n {\n type: isStateAccessor,\n parseFunc: parseStateAccessor\n },\n {\n type: isString,\n parseFunc: parseString\n },\n {\n type: isArray,\n parseFunc: parseArray\n },\n {\n type: isFunction,\n parseFunc: parseFunction\n },\n {\n type: isObject,\n parseFunc: parseObjectData\n }\n ]\n)\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i);\n // check to see if we are dealing with a valid hex char [a-f|0-9]\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57;\n // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n spaceTerminated = code === 32;\n if (!valid) {\n break;\n }\n hex += lower[i];\n }\n if (hex.length === 0) {\n return undefined;\n }\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF;\n // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\nvar CONTAINS_ESCAPE = /\\\\/;\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n if (!needToProcess) {\n return str;\n }\n var ret = \"\";\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n }\n\n // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n }\n\n // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n if (str.length === i + 1) {\n ret += str[i];\n }\n continue;\n }\n ret += str[i];\n }\n return ret;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n return undefined;\n }\n obj = obj[prop];\n }\n return obj;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n obj[prop] = {};\n }\n obj = obj[prop];\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n if (commentEnd < 0) {\n return s;\n }\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n s = s + str.slice(lastEnd);\n return s;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0;\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\nexports.unesc = _unesc[\"default\"];\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\nexports.getProp = _getProp[\"default\"];\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\nexports.ensureObject = _ensureObject[\"default\"];\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\nexports.stripComments = _stripComments[\"default\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _util = require(\"../util\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n var cloned = new obj.constructor();\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n var value = obj[i];\n var type = typeof value;\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n return cloned;\n};\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n var _proto = Node.prototype;\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n this.remove();\n }\n return this;\n };\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */;\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */;\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n this.raws[name] = valueEscaped;\n }\n\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */;\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n if (this.raws) {\n delete this.raws[name];\n }\n }\n\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */;\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n if (this.source.end.line < line) {\n return false;\n }\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n return true;\n }\n return undefined;\n };\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n return Node;\n}();\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.TAG = exports.STRING = exports.SELECTOR = exports.ROOT = exports.PSEUDO = exports.NESTING = exports.ID = exports.COMMENT = exports.COMBINATOR = exports.CLASS = exports.ATTRIBUTE = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar types = _interopRequireWildcard(require(\"./types\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n function Container(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Container.prototype;\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n for (var id in this.indexes) {\n this.indexes[id]++;\n }\n return this;\n };\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n return this.nodes.indexOf(child);\n };\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n return this;\n };\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n this.nodes = [];\n return this;\n };\n _proto.empty = function empty() {\n return this.removeAll();\n };\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n var _this$nodes;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (oldIndex < index) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n var _this$nodes2;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= oldIndex) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n *\n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */;\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n if (!this.indexes) {\n this.indexes = {};\n }\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n if (!this.length) {\n return undefined;\n }\n var index, result;\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n if (result === false) {\n break;\n }\n this.indexes[id] += 1;\n }\n delete this.indexes[id];\n if (result === false) {\n return false;\n }\n };\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n if (result === false) {\n return false;\n }\n });\n };\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n _proto.split = function split(callback) {\n var _this11 = this;\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n return memo;\n }, []);\n };\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n return Container;\n}(_node[\"default\"]);\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n function Root(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n var _proto = Root.prototype;\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n return Root;\n}(_container[\"default\"]);\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n function Selector(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n return Selector;\n}(_container[\"default\"]);\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n function ClassName(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n var _proto = ClassName.prototype;\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n this._value = v;\n }\n }]);\n return ClassName;\n}(_node[\"default\"]);\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n function Comment(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n return Comment;\n}(_node[\"default\"]);\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n function ID(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n var _proto = ID.prototype;\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n return ID;\n}(_node[\"default\"]);\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n var _proto = Namespace.prototype;\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n if (this.raws) {\n delete this.raws.namespace;\n }\n return;\n }\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n return Namespace;\n}(_node[\"default\"]);\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n function Tag(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n return Tag;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n function String(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n return String;\n}(_node[\"default\"]);\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n function Pseudo(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n var _proto = Pseudo.prototype;\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n return Pseudo;\n}(_container[\"default\"]);\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar deprecate = require(\"util-deprecate\");\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n unescaped = (0, _unesc[\"default\"])(unescaped);\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n if (opts.value === undefined) {\n return opts;\n }\n warnOfDeprecatedConstructor();\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n if (!opts.raws) {\n opts.raws = {};\n }\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n function Attribute(opts) {\n var _this;\n if (opts === void 0) {\n opts = {};\n }\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n var _proto = Attribute.prototype;\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n var quoteMark = this._determineQuoteMark(options);\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */;\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n this._syncRawValue();\n }\n\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */;\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */;\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n return quoteMark;\n };\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n var attrSpaces = this._spacesFor(spaceName);\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */;\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n var attributeSpaces = this._spacesFor(\"attribute\");\n count += attributeSpaces.before.length;\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n if (name === \"attributeNS\") {\n return count;\n }\n count += this.namespaceString.length;\n if (this.namespace) {\n count += 1;\n }\n if (name === \"attribute\") {\n return count;\n }\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n var operatorSpaces = this._spacesFor(\"operator\");\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n count += operator.length;\n count += operatorSpaces.after.length;\n var valueSpaces = this._spacesFor(\"value\");\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n if (name === \"value\") {\n return value ? count : -1;\n }\n count += value.length;\n count += valueSpaces.after.length;\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n count += insensitiveSpaces.before.length;\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n return -1;\n };\n _proto.toString = function toString() {\n var _this2 = this;\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set:\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n this._value = unescaped;\n this._quoteMark = quoteMark;\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"insensitive\",\n get: function get() {\n return this._insensitive;\n }\n\n /**\n * Set the case insensitive flag.\n * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n * of the attribute is updated accordingly.\n *\n * @param {true | false} insensitive true if the attribute should match case-insensitively.\n */,\n set: function set(insensitive) {\n if (!insensitive) {\n this._insensitive = false;\n\n // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n this.raws.insensitiveFlag = undefined;\n }\n }\n this._insensitive = insensitive;\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n this._attribute = name;\n }\n }]);\n return Attribute;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n function Universal(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n return Universal;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n function Combinator(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n return Combinator;\n}(_node[\"default\"]);\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n function Nesting(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n return Nesting;\n}(_node[\"default\"]);\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n\n// Expose aliases primarily for readability.\nexports.tab = tab;\nvar str = singleQuote;\n\n// No good single character representation!\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports.FIELDS = void 0;\nexports[\"default\"] = tokenize;\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar _unescapable, _wordDelimiters;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n do {\n code = css.charCodeAt(next);\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n return next - 1;\n}\n\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n if (unescapable[code]) {\n // just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0;\n // consume up to 6 hex chars\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6);\n // if fewer than 6 hex chars, a trailing space ends the escape\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n return next;\n}\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n while (start < length) {\n code = css.charCodeAt(start);\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n\n // Consume these characters as single tokens.\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n unclosed('quote', quote);\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n if (next === 0) {\n unclosed('comment', '*/');\n }\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n end = next + 1;\n break;\n }\n\n // Ensure that the token structure remains consistent\n tokens.push([tokenType,\n // [0] Token type\n line,\n // [1] Starting line\n start - offset,\n // [2] Starting column\n endLine,\n // [3] Ending line\n endColumn,\n // [4] Ending column\n start,\n // [5] Start position / Source index\n end // [6] End position\n ]);\n\n // Reset offset for the next token\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n start = end;\n }\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\nvar _util = require(\"./util\");\nvar _WHITESPACE_TOKENS, _Object$assign;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n if (typeof value !== \"string\") {\n return;\n }\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n return node;\n}\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n}\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n },\n sourceIndex: 0\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n var _proto = Parser.prototype;\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n return _this.rule.error(message, errorOptions);\n };\n };\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n if (this.options.lossy) {\n break;\n }\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n break;\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n if (rawValue) {\n node.raws.namespace += content;\n }\n lastAdded = 'namespace';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n break;\n }\n // Falls through\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals &&\n // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n node.attribute = (node.attribute || \"\") + content;\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n if (_rawValue) {\n node.raws.attribute += content;\n }\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !(spaceAfterMeaningfulToken || node.quoteMark)) {\n var _unescaped = (0, _util.unesc)(content);\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n lastAdded = 'insensitive';\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n break;\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n pos++;\n }\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */;\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n return nodes;\n }\n\n /**\n *\n * @param {*} nodes\n */;\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n _proto.combinator = function combinator() {\n var _this3 = this;\n if (this.content() === '|') {\n return this.namespace();\n }\n // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n if (nodes.length > 0) {\n var last = this.current.last;\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n return;\n }\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n var node;\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n // pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n var spaces = {};\n var raws = {\n spaces: {}\n };\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n return this.newNode(node);\n };\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n this.current._inferEndPosition();\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n },\n sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS]\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpectedPipe = function unexpectedPipe() {\n return this.error(\"Unexpected '|'.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n this.unexpectedPipe();\n };\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position])\n },\n sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS]\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n var pseudoStr = '';\n var startingToken = this.currToken;\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.space = function space() {\n var content = this.content();\n // Handle space before and after the selector\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n var nextToken = this.nextToken;\n var word = this.content();\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n nextToken = this.nextToken;\n }\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\';\n // Allow decimal numbers percent in @keyframes\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n });\n // Eliminate Sass interpolations from the list of id indexes\n var interpolations = indexesOf(word, '#{');\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n _this5.newNode(node, namespace);\n // Ensure that the namespace is used only once\n namespace = null;\n });\n this.position++;\n };\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n return this.splitWord(namespace);\n };\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n this.current._inferEndPosition();\n return this.root;\n };\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n case tokens.comment:\n this.comment();\n break;\n case tokens.openParenthesis:\n this.parentheses();\n break;\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n break;\n case tokens.openSquare:\n this.attribute();\n break;\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n case tokens.colon:\n this.pseudo();\n break;\n case tokens.comma:\n this.comma();\n break;\n case tokens.asterisk:\n this.universal();\n break;\n case tokens.ampersand:\n this.nesting();\n break;\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n case tokens.closeSquare:\n this.missingSquareBracket();\n case tokens.semicolon:\n this.missingBackslash();\n default:\n this.unexpected();\n }\n }\n\n /**\n * Helpers\n */;\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n namespace = true;\n }\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n return this.current.append(node);\n };\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n var searchPosition = startPosition;\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n return -1;\n };\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n return Parser;\n}();\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _parser = _interopRequireDefault(require(\"./parser\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n this.funcRes = null;\n this.options = options;\n }\n var _proto = Processor.prototype;\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n _proto._run = function _run(rule, options) {\n var _this = this;\n if (options === void 0) {\n options = {};\n }\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var root = this._root(rule, options);\n var transform = this.func(root);\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n var string = undefined;\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<parser.Root>} The AST of the selector after processing it.\n */;\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */;\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<any>} The value returned by the processor.\n */;\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */;\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n return result.string || result.root.toString();\n };\n return Processor;\n}();\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\nvar _className = _interopRequireDefault(require(\"./className\"));\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\nvar _comment = _interopRequireDefault(require(\"./comment\"));\nvar _id = _interopRequireDefault(require(\"./id\"));\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\nvar _root = _interopRequireDefault(require(\"./root\"));\nvar _selector = _interopRequireDefault(require(\"./selector\"));\nvar _string = _interopRequireDefault(require(\"./string\"));\nvar _tag = _interopRequireDefault(require(\"./tag\"));\nvar _universal = _interopRequireDefault(require(\"./universal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\nexports.attribute = attribute;\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\nexports.className = className;\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\nexports.combinator = combinator;\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\nexports.comment = comment;\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\nexports.id = id;\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\nexports.nesting = nesting;\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\nexports.pseudo = pseudo;\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\nexports.root = root;\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\nexports.selector = selector;\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\nexports.string = string;\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\nexports.tag = tag;\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\nexports.isContainer = isContainer;\nexports.isIdentifier = void 0;\nexports.isNamespace = isNamespace;\nexports.isNesting = void 0;\nexports.isNode = isNode;\nexports.isPseudo = void 0;\nexports.isPseudoClass = isPseudoClass;\nexports.isPseudoElement = isPseudoElement;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;\nvar _types = require(\"./types\");\nvar _IS_TYPE;\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\nvar _types = require(\"./types\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\nvar _constructors = require(\"./constructors\");\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\nvar _guards = require(\"./guards\");\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _processor = _interopRequireDefault(require(\"./processor\"));\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","/** @ref {@vue/compiler-sfc@2.7.16/src/stylePlugins/scoped.ts } */\n/* eslint-disable @typescript-eslint/no-use-before-define, prefer-const*/\nimport { type PluginCreator, Rule, AtRule } from 'postcss'\nimport selectorParser from 'postcss-selector-parser'\n\nconst animationNameRE = /^(-\\w+-)?animation-name$/\nconst animationRE = /^(-\\w+-)?animation$/\n\nconst scopedPlugin: PluginCreator<string> = (id = '') => {\n const keyframes = Object.create(null)\n const shortId = id.replace(/^data-v-/, '')\n\n return {\n postcssPlugin: 'vue-sfc-scoped',\n Rule(rule) {\n processRule(id, rule)\n },\n AtRule(node) {\n if (/-?keyframes$/.test(node.name) && !node.params.endsWith(`-${shortId}`)) {\n // register keyframes\n keyframes[node.params] = node.params = node.params + '-' + shortId\n }\n },\n OnceExit(root) {\n if (Object.keys(keyframes).length) {\n // If keyframes are found in this <style>, find and rewrite animation names\n // in declarations.\n // Caveat: this only works for keyframes and animation rules in the same\n // <style> element.\n // individual animation-name declaration\n root.walkDecls((decl) => {\n if (animationNameRE.test(decl.prop)) {\n decl.value = decl.value\n .split(',')\n .map((v) => keyframes[v.trim()] || v.trim())\n .join(',')\n }\n // shorthand\n if (animationRE.test(decl.prop)) {\n decl.value = decl.value\n .split(',')\n .map((v) => {\n const vals = v.trim().split(/\\s+/)\n const i = vals.findIndex((val) => keyframes[val])\n if (i !== -1) {\n vals.splice(i, 1, keyframes[vals[i]])\n return vals.join(' ')\n } else {\n return v\n }\n })\n .join(',')\n }\n })\n }\n }\n }\n}\n\nconst processedRules = new WeakSet<Rule>()\n\nfunction processRule(id: string, rule: Rule) {\n if (\n processedRules.has(rule) ||\n (rule.parent && rule.parent.type === 'atrule' && /-?keyframes$/.test((rule.parent as AtRule).name))\n ) {\n return\n }\n processedRules.add(rule)\n rule.selector = selectorParser((selectorRoot) => {\n selectorRoot.each((selector) => {\n rewriteSelector(id, selector, selectorRoot)\n })\n }).processSync(rule.selector)\n}\n\nfunction rewriteSelector(id: string, selector: selectorParser.Selector, selectorRoot: selectorParser.Root) {\n let node: selectorParser.Node | null = null\n let shouldInject = true\n // find the last child node to insert attribute selector\n selector.each((n) => {\n // DEPRECATED \">>>\" and \"/deep/\" combinator\n if (n.type === 'combinator' && (n.value === '>>>' || n.value === '/deep/')) {\n n.value = ' '\n n.spaces.before = n.spaces.after = ''\n // warn(\n // `the >>> and /deep/ combinators have been deprecated. ` +\n // `Use :deep() instead.`\n // )\n return false\n }\n\n if (n.type === 'pseudo') {\n const { value } = n\n // deep: inject [id] attribute at the node before the ::v-deep\n // combinator.\n if (value === ':deep' || value === '::v-deep') {\n if (n.nodes.length) {\n // .foo ::v-deep(.bar) -> .foo[xxxxxxx] .bar\n // replace the current node with ::v-deep's inner selector\n let last: selectorParser.Selector['nodes'][0] = n\n n.nodes[0].each((ss) => {\n selector.insertAfter(last, ss)\n last = ss\n })\n // insert a space combinator before if it doesn't already have one\n const prev = selector.at(selector.index(n) - 1)\n if (!prev || !isSpaceCombinator(prev)) {\n selector.insertAfter(\n n,\n selectorParser.combinator({\n value: ' '\n })\n )\n }\n selector.removeChild(n)\n } else {\n // DEPRECATED usage in v3\n // .foo ::v-deep .bar -> .foo[xxxxxxx] .bar\n // warn(\n // `::v-deep usage as a combinator has ` +\n // `been deprecated. Use :deep(<inner-selector>) instead.`\n // )\n const prev = selector.at(selector.index(n) - 1)\n if (prev && isSpaceCombinator(prev)) {\n selector.removeChild(prev)\n }\n selector.removeChild(n)\n }\n return false\n }\n\n // !!! Vue 2 does not have :slotted support\n // ::v-slotted(.foo) -> .foo[xxxxxxx-s]\n // if (value === ':slotted' || value === '::v-slotted') {\n // rewriteSelector(id, n.nodes[0], selectorRoot, true /* slotted */)\n // let last: selectorParser.Selector['nodes'][0] = n\n // n.nodes[0].each(ss => {\n // selector.insertAfter(last, ss)\n // last = ss\n // })\n // // selector.insertAfter(n, n.nodes[0])\n // selector.removeChild(n)\n // // since slotted attribute already scopes the selector there's no\n // // need for the non-slot attribute.\n // shouldInject = false\n // return false\n // }\n\n // global: replace with inner selector and do not inject [id].\n // ::v-global(.foo) -> .foo\n if (value === ':global' || value === '::v-global') {\n selectorRoot.insertAfter(selector, n.nodes[0])\n selectorRoot.removeChild(selector)\n return false\n }\n }\n\n if (n.type !== 'pseudo' && n.type !== 'combinator') {\n node = n\n }\n })\n\n if (node) {\n ;(node as selectorParser.Node).spaces.after = ''\n } else {\n // For deep selectors & standalone pseudo selectors,\n // the attribute selectors are prepended rather than appended.\n // So all leading spaces must be eliminated to avoid problems.\n selector.first.spaces.before = ''\n }\n\n if (shouldInject) {\n selector.insertAfter(\n // If node is null it means we need to inject [id] at the start\n // insertAfter can handle `null` here\n node as any,\n selectorParser.attribute({\n attribute: id,\n value: id,\n raws: {},\n quoteMark: `\"`\n })\n )\n }\n}\n\nfunction isSpaceCombinator(node: selectorParser.Node) {\n return node.type === 'combinator' && /^\\s+$/.test(node.value)\n}\n\nscopedPlugin.postcss = true\nexport default scopedPlugin\n","import postcss from 'postcss'\nimport scopedPlugin from './scope-css-plugin'\n\nexport function handleScopedCss(id: string, content: string) {\n return postcss([scopedPlugin(id)]).process(content, { from: undefined })\n}\n","import { defineComponent, h, onUnmounted, ref, watch } from 'vue'\nimport { getController } from '../canvas-function'\nimport RenderMain from '../RenderMain'\nimport { handleScopedCss } from './handle-scoped-css'\n\nconst pageSchema: Record<string, any> = {}\n\nasync function fetchPageSchema(pageId: string) {\n return getController()\n .getPageById(pageId)\n .then((res) => {\n return res.page_content\n })\n}\nconst styleSheetMap = new Map()\nexport function initStyle(key: string, content: string) {\n if (!content) {\n return\n }\n let styleSheet = styleSheetMap.get(key)\n if (!styleSheet) {\n styleSheet = new CSSStyleSheet()\n styleSheetMap.set(key, styleSheet)\n document.adoptedStyleSheets.push(styleSheet)\n }\n handleScopedCss(key, content).then((scopedCss) => {\n styleSheet.replaceSync(scopedCss)\n })\n}\nexport const wrapPageComponent = (pageId: string) => {\n const key = `data-te-page-${pageId}`\n const asyncData = ref(null)\n const updateSchema = () => {\n fetchPageSchema(pageId).then((data) => {\n asyncData.value = data\n })\n }\n updateSchema() // 保证加载一份非编辑态schema,减少页面跳转渲染时间\n pageSchema[pageId] = defineComponent({\n name: `page-${pageId}`,\n setup() {\n const active = ref(pageId === getController().getBaseInfo().pageId)\n const stop = getController().addHistoryDataChangedCallback(() => {\n const newValue = pageId === getController().getBaseInfo().pageId\n if (active.value !== newValue) {\n active.value = newValue\n }\n })\n const watchStop = watch(\n () => active.value,\n (activeValue) => {\n if (!activeValue) {\n asyncData.value = null\n updateSchema()\n }\n }\n )\n onUnmounted(() => {\n stop()\n watchStop()\n })\n\n return () => {\n if (active.value || asyncData.value) {\n return h(RenderMain, {\n cssScopeId: key,\n renderSchema: asyncData.value,\n active: active.value,\n pageId: pageId,\n entry: false\n })\n }\n return null\n }\n }\n })\n return pageSchema[pageId]\n}\nexport const getPage = (pageId: string) => {\n return pageSchema[pageId] || wrapPageComponent(pageId)\n}\n\nexport async function getPageAncestors(pageId?: string) {\n if (!pageId) {\n return []\n }\n if (!getController().getPageAncestors) {\n // 如果不支持查询祖先 则返回自己\n return [pageId]\n }\n const pageChain = await getController().getPageAncestors(pageId)\n return [...pageChain.map((id: number | string) => String(id)), pageId]\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { defineComponent, h, inject, provide, type Ref, Suspense } from 'vue'\n\nimport {\n NODE_UID as DESIGN_UIDKEY,\n NODE_TAG as DESIGN_TAGKEY,\n NODE_LOOP as DESIGN_LOOPID,\n NODE_INACTIVE_UID\n} from '../../common'\nimport { getDesignMode, DESIGN_MODE } from './canvas-function'\nimport { parseCondition, parseData, parseLoopArgs } from './data-function'\nimport { blockSlotDataMap, getComponent, Mapper, configure } from './material-function'\nimport { getPage } from './material-function/page-getter'\nimport BlockLoading from './BlockLoading.vue'\n\nexport const renderDefault = (children, scope, parent) =>\n children.map?.((child) =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n h(renderer, {\n schema: child,\n scope,\n parent\n })\n )\n\nconst stopEvent = (event) => {\n event.preventDefault?.()\n event.stopPropagation?.()\n return false\n}\n\nconst generateSlotGroup = (children, schema) => {\n const slotGroup = {}\n\n children.forEach((child) => {\n const { componentName, children, params = [], props } = child\n const slot = child.slot || props?.slot?.name || props?.slot || 'default'\n const isNotEmptyTemplate = componentName === 'Template' && children.length\n\n slotGroup[slot] = slotGroup[slot] || {\n value: [],\n params,\n parent: isNotEmptyTemplate ? child : schema\n }\n\n slotGroup[slot].value.push(...(isNotEmptyTemplate ? children : [child])) // template 标签直接过滤掉\n })\n\n return slotGroup\n}\n\nconst renderSlot = (children, scope, schema) => {\n if (children.some((a) => a.componentName === 'Template')) {\n const slotGroup = generateSlotGroup(children, schema)\n const slots = {}\n\n Object.keys(slotGroup).forEach((slotName) => {\n const currentSlot = slotGroup[slotName]\n\n slots[slotName] = ($scope) => renderDefault(currentSlot.value, { ...scope, ...$scope }, currentSlot.parent)\n })\n\n return slots\n }\n\n return { default: () => renderDefault(children, scope, schema) }\n}\n\nconst checkGroup = (componentName) => configure[componentName]?.nestingRule?.childWhitelist?.length\n\nconst clickCapture = (componentName) => configure[componentName]?.clickCapture !== false\n\nconst getBindProps = (schema, scope, context, pageContext) => {\n const { id, componentName, componentType } = schema\n const invalidity = configure[componentName]?.invalidity || []\n\n if (componentName === 'CanvasPlaceholder') {\n return {}\n }\n const { active, getCssScopeId } = pageContext\n const cssScopeId = getCssScopeId()\n const bindProps = {\n ...parseData(schema.props, scope, context),\n ...(cssScopeId ? { [cssScopeId]: '' } : {}),\n ...(active ? { [DESIGN_UIDKEY]: id } : { [NODE_INACTIVE_UID]: id }),\n [DESIGN_TAGKEY]: componentName\n }\n\n if (getDesignMode() === DESIGN_MODE.DESIGN && active) {\n bindProps.onMouseover = stopEvent\n bindProps.onFocus = stopEvent\n }\n\n if (scope) {\n bindProps[DESIGN_LOOPID] = scope.index === undefined ? scope.idx : scope.index\n }\n\n // 在捕获阶段阻止事件的传播\n if (clickCapture(componentName) && getDesignMode() === DESIGN_MODE.DESIGN && active) {\n bindProps.onClickCapture = stopEvent\n }\n\n if (Mapper[componentName]) {\n bindProps.schema = schema\n }\n\n // 绑定组件属性时需要将 className 重命名为 class,防止覆盖组件内置 class\n bindProps.class = bindProps.className\n delete bindProps.className\n\n // 使画布中元素可拖拽\n if (active && !['PageStart', 'PageSection'].includes(componentType)) {\n bindProps.draggable = true\n }\n\n // 过滤在门户网站上配置的画布丢弃的属性\n invalidity.forEach((prop) => delete bindProps[prop])\n\n return bindProps\n}\n\nconst getLoopScope = ({ scope, index, item, loopArgs }) => {\n return {\n ...scope,\n ...(parseLoopArgs({\n item,\n index,\n loopArgs\n }) || {})\n }\n}\n\nconst injectPlaceHolder = (componentName, children) => {\n const isEmptyArr = Array.isArray(children) && !children.length\n\n if ((configure[componentName]?.isContainer || componentName === 'Template') && (!children || isEmptyArr)) {\n return [\n {\n componentName: 'CanvasPlaceholder'\n }\n ]\n }\n\n return children\n}\n\nconst renderGroup = (children, scope, pageContext) => {\n return children.map?.((schema) => {\n const { componentName, children, loop, loopArgs, condition, id } = schema\n const loopList = parseData(loop, scope, pageContext.context)\n\n const renderElement = (item?, index?) => {\n const mergeScope = getLoopScope({\n scope,\n index,\n item,\n loopArgs\n })\n\n if (pageContext.conditions[id] === false || !parseCondition(condition, mergeScope, pageContext.context)) {\n return null\n }\n\n const renderChildren = pageContext.active ? injectPlaceHolder(componentName, children) : children\n\n return h(\n getComponent(componentName),\n getBindProps(schema, mergeScope, pageContext.context, pageContext),\n Array.isArray(renderChildren)\n ? renderSlot(renderChildren, mergeScope, schema)\n : parseData(renderChildren, mergeScope, pageContext.context)\n )\n }\n\n return loopList?.length ? loopList.map(renderElement) : renderElement()\n })\n}\n\nconst getChildren = (schema, mergeScope, pageContext) => {\n const { componentName, children } = schema\n const renderChildren = pageContext.active ? injectPlaceHolder(componentName, children) : children\n\n const component = getComponent(componentName)\n const isNative = typeof component === 'string'\n const isGroup = checkGroup(componentName)\n\n if (Array.isArray(renderChildren)) {\n // children 空的场景,不能返回空数组,因为有部分组件会误以为使用了自定义插槽,从而无法渲染默认插槽内容,比如 TinyTree 组件\n if (!renderChildren.length) {\n return null\n }\n\n if (isNative) {\n return renderDefault(renderChildren, mergeScope, schema)\n }\n return isGroup\n ? renderGroup(renderChildren, mergeScope, pageContext)\n : renderSlot(renderChildren, mergeScope, schema)\n }\n return parseData(renderChildren, mergeScope, pageContext.context)\n}\nfunction getRenderPageId(currentPageId, isPageStart) {\n const pagePathFromRoot = (inject('page-ancestors') as Ref<any[]>).value\n const pagePreviewFromCurrentPageChild = (inject('page-preview') as Ref<any[]>).value\n const fullPath = [...pagePathFromRoot, ...pagePreviewFromCurrentPageChild]\n\n function getNextChild(currentPageId) {\n const index = fullPath.indexOf(currentPageId)\n if (index > -1 && index + 1 < fullPath.length) {\n return fullPath[index + 1]\n }\n return null\n }\n return isPageStart ? pagePathFromRoot[0] : getNextChild(currentPageId)\n}\n\nexport const renderer = defineComponent({\n name: 'renderer',\n props: {\n schema: Object,\n scope: Object,\n parent: Object,\n pageContext: Object\n },\n setup(props) {\n provide('schema', props.schema)\n const currentPageContext = props.pageContext || inject('pageContext')\n const ancestors = inject('page-ancestors') as Ref<any[]>\n return {\n currentPageContext,\n ancestors\n }\n },\n render() {\n const { scope, schema, parent, ancestors } = this\n const { componentName, loop, loopArgs, condition } = schema\n const pageContext = this.currentPageContext\n\n if (!componentName) {\n return parseData(schema, scope, pageContext.context)\n }\n\n const isPageStart = schema.componentType === 'PageStart'\n const isRouterView = componentName === 'RouterView'\n if (ancestors.length && (isPageStart || isRouterView)) {\n const renderPageId = getRenderPageId(pageContext.pageId, isPageStart)\n if (renderPageId) {\n return h(getPage(renderPageId), {\n key: ancestors,\n [DESIGN_TAGKEY]: `${componentName}`,\n 'data-te-page-id': pageContext.pageId,\n ...(pageContext.active && !isPageStart\n ? {\n [DESIGN_UIDKEY]: schema.id,\n draggable: true\n }\n : {})\n })\n }\n }\n\n const component = getComponent(componentName)\n\n const loopList = parseData(loop, scope, pageContext.context)\n\n const renderElement = (item?, index?) => {\n let mergeScope = item\n ? getLoopScope({\n item,\n index,\n loopArgs,\n scope\n })\n : scope\n\n // 如果是区块,并且使用了区块的作用域插槽,则需要将作用域插槽的数据传递下去\n if (parent?.componentType === 'Block' && componentName === 'Template' && schema.props?.slot?.params?.length) {\n const slotName = schema.props.slot?.name || schema.props.slot\n const blockName = parent.componentName\n const slotData = blockSlotDataMap[blockName]?.[slotName] || {}\n mergeScope = mergeScope ? { ...mergeScope, ...slotData } : slotData\n }\n\n if (pageContext.conditions[schema.id] === false || !parseCondition(condition, mergeScope, pageContext.context)) {\n return null\n }\n\n const Ele = h(\n component,\n getBindProps(schema, mergeScope, pageContext.context, pageContext),\n getChildren(schema, mergeScope, pageContext)\n )\n // 区块加上 suspense 渲染,就可以在网络延时的时候显示加载中的字样或者动画,优化体验\n if (schema.componentType === 'Block') {\n return h(\n Suspense,\n {},\n {\n default: () => Ele,\n fallback: () => h(BlockLoading, { name: componentName })\n }\n )\n }\n\n return Ele\n }\n\n return loopList?.length ? loopList.map(renderElement) : renderElement()\n }\n})\nexport { getController } from './canvas-function'\nexport default renderer\n","import { h } from 'vue'\nimport CanvasEmpty from './CanvasEmpty.vue'\nimport renderer from '../render'\n\nfunction defaultRenderer(schema, refreshKey, entry, active, isPage = true) {\n // 渲染画布增加根节点,与出码和预览保持一致\n const rootChildrenSchema = {\n id: 0,\n componentName: 'div',\n componentType: 'PageSection',\n // 手动添加一个唯一的属性,后续在画布选中此节点时方便处理额外的逻辑。由于没有修改schema,不会影响出码\n props: { ...schema.props, 'data-id': 'root-container', 'data-page-active': active },\n children: schema.children\n }\n\n if (!entry) {\n return schema.children?.length || !active\n ? h(renderer, { schema: rootChildrenSchema, parent: schema })\n : [h(CanvasEmpty)]\n }\n\n const PageStartSchema = {\n componentName: 'div',\n componentType: 'PageStart',\n props: { 'data-id': 'root-container' }\n }\n\n return h(\n // TODO: 这里顶层的 i18n-host 在不支持 webComponent 的区块之后,应该也不需要webComponent 的 i18n provider 了\n 'tiny-i18n-host',\n {\n locale: 'zh_CN',\n key: refreshKey.value,\n ref: 'page',\n className: 'design-page'\n },\n isPage\n ? h(renderer, { schema: PageStartSchema, parent: schema })\n : schema.children?.length\n ? h(renderer, { schema: rootChildrenSchema, parent: schema })\n : [h(CanvasEmpty)]\n )\n}\n\nexport function useCustomRenderer() {\n let canvasRenderer = null\n\n const getRenderer = () => canvasRenderer || defaultRenderer\n const setRenderer = (fn) => {\n canvasRenderer = fn\n }\n\n return {\n getRenderer,\n setRenderer\n }\n}\n","import { inject, watch, type WritableComputedRef } from 'vue'\nimport { I18nInjectionKey } from 'vue-i18n'\nimport { useBroadcastChannel } from '@vueuse/core'\nimport { constants } from '@opentiny/tiny-engine-utils'\n\nconst { BROADCAST_CHANNEL } = constants\nexport function useLocale() {\n const { locale } = inject(I18nInjectionKey).global\n const { data } = useBroadcastChannel({ name: BROADCAST_CHANNEL.CanvasLang })\n watch(data, () => {\n ;(locale as WritableComputedRef<unknown>).value = data.value\n })\n}\n","import { onUnmounted, reactive, watch } from 'vue'\nimport { useBroadcastChannel } from '@vueuse/core'\nimport { constants } from '@opentiny/tiny-engine-utils'\n\nconst { BROADCAST_CHANNEL, CANVAS_ROUTER_VIEW_SETTING_VIEW_MODE_KEY } = constants\n\nexport enum ViewMode {\n EMBEDDED = 'embedded',\n STANDALONE = 'standalone'\n}\nexport interface IRouterViewSetting {\n viewMode: ViewMode\n}\n\nfunction getCacheValue() {\n const value = localStorage.getItem(CANVAS_ROUTER_VIEW_SETTING_VIEW_MODE_KEY)\n if (!(Object.values(ViewMode) as string[]).includes(value)) {\n return ViewMode.EMBEDDED\n }\n return value as ViewMode\n}\n\nexport function useRouterViewSetting() {\n const routerViewSetting = reactive<IRouterViewSetting>({\n viewMode: getCacheValue()\n })\n\n const { data, close } = useBroadcastChannel<IRouterViewSetting, IRouterViewSetting>({\n name: BROADCAST_CHANNEL.CanvasRouterViewSetting\n })\n\n watch(data, () => {\n routerViewSetting.viewMode = data.value.viewMode\n })\n\n onUnmounted(() => {\n close()\n })\n\n return {\n routerViewSetting\n }\n}\n","export function useBridge() {\n const bridge = {}\n\n return {\n bridge\n }\n}\n","import { shallowReactive } from 'vue'\n\nexport interface IDataSourceResult {\n code: string\n msg: string\n data: any\n}\n\nexport interface IDataSource {\n load?: () => Promise<IDataSourceResult>\n config?: {\n type: string\n data: any\n total?: number\n }\n}\n\nexport interface IDataSourceMap {\n value?: Record<string, IDataSource>\n}\n\nexport function useDataSourceMap() {\n const dataSourceMap = shallowReactive<IDataSourceMap>({})\n\n const getDataSourceMap = () => {\n return dataSourceMap.value\n }\n\n const setDataSourceMap = (list) => {\n dataSourceMap.value = list.reduce((dMap, config) => {\n const dataSource: IDataSource = { config: config.data }\n\n const result = {\n code: '',\n msg: 'success',\n data: {}\n }\n result.data =\n dataSource.config.type === 'array'\n ? { items: dataSource?.config?.data ?? [], total: dataSource?.config?.data?.length }\n : dataSource?.config?.data\n\n dataSource.load = () => Promise.resolve(result)\n dMap[config.name] = dataSource\n\n return dMap\n }, {})\n }\n return {\n dataSourceMap,\n getDataSourceMap,\n setDataSourceMap\n }\n}\n","import { ref, shallowReactive, watchEffect } from 'vue'\nimport { reset } from '../data-utils'\n\nconst Func = Function\n\nexport function useGlobalState() {\n const globalState = ref([])\n\n const setGlobalState = (data = []) => {\n globalState.value = data\n }\n const stores = shallowReactive({})\n watchEffect(() => {\n reset(stores)\n globalState.value.forEach(({ id, state = {}, getters = {} }) => {\n const computedGetters = Object.keys(getters).reduce(\n (acc, key) => ({\n ...acc,\n [key]: new Func('return ' + getters[key])().call(acc, state) // parseData(getters[key], null, acc)?.call?.(acc, state) //理论上不应该走parseData, unibuy代码遗留\n }),\n {}\n )\n stores[id] = { ...state, ...computedGetters }\n })\n })\n return {\n globalState,\n setGlobalState,\n stores\n }\n}\n","import { ref } from 'vue'\nimport TinyVue from '@opentiny/vue'\nimport * as TinyVueIcon from '@opentiny/vue-icon'\nimport { generateFunction } from '../data-utils'\nimport { globalNotify } from '../canvas-function'\n\nexport interface IUtil {\n name: string\n type: 'function' | string\n content: {\n exportName?: string\n [props: string]: any\n }\n [props: string]: any\n}\n\nexport function useUtils(context: Record<string, any>) {\n const refreshKey = ref<number>(0)\n const utils: Record<string, (...args: any) => any | any> = {}\n const getUtils = () => utils\n\n const setUtils = async (data: Array<IUtil>) => {\n if (!Array.isArray(data)) {\n return\n }\n\n // 筛选出来已经被删除的 key\n const newKeys = new Set(data.map(({ name }) => name))\n const currentKeys = Object.keys(utils)\n const deletedUtilsKeys = currentKeys.filter((item) => !newKeys.has(item))\n\n for (const key of deletedUtilsKeys) {\n delete utils[key]\n }\n\n const utilsCollection = {}\n // 目前画布还不具备远程加载utils工具类的功能,目前只能加载TinyVue组件库中的组件工具\n data?.forEach((item) => {\n const util = TinyVue[item.content.exportName]\n if (util) {\n utilsCollection[item.name] = util\n }\n\n // 此处需要把工具类中的icon图标也加入utils上下文环境\n const utilIcon = TinyVueIcon[item.content.exportName]\n if (utilIcon) {\n utilsCollection[item.name] = utilIcon\n }\n\n // 解析函数式的工具类\n if (item.type === 'function') {\n const defaultFn = () => {}\n utilsCollection[item.name] = generateFunction(item.content.value, context) || defaultFn\n }\n })\n\n const validNPMUtils = data.filter((item) => item.type === 'npm' && item.content.cdnLink)\n\n const npmUtilsImports = validNPMUtils.map((item) => import(/* @vite-ignore */ item.content.cdnLink))\n const npmUtils = await Promise.allSettled(npmUtilsImports)\n\n npmUtils.forEach((res, index) => {\n const { name, content } = validNPMUtils[index]\n const { exportName, destructuring, cdnLink } = content\n\n if (res.status !== 'fulfilled') {\n globalNotify({\n type: 'error',\n message: `加载工具类“${name}”失败,请检查cdn链接是否正确,${cdnLink}`\n })\n\n return\n }\n\n const module = res.value\n utilsCollection[name] = destructuring ? module[exportName] : module.default\n })\n\n Object.assign(utils, utilsCollection)\n\n refreshKey.value++\n }\n\n return {\n refreshKey,\n utils,\n getUtils,\n setUtils\n }\n}\n","import { watchEffect, type WatchStopHandle } from 'vue'\nimport { generateFunction } from '../data-utils'\nimport { globalNotify } from '../canvas-function'\n\ntype IAccessorType = 'getter' | 'setter'\ninterface IAccessor {\n getter: { value: string }\n setter: { value: string }\n}\n\nexport function useAccessorMap(context) {\n const generateAccessor = (type: IAccessorType, accessor: IAccessor, property: string) => {\n const accessorFn = generateFunction(accessor[type].value, context) as (...args: any) => any\n\n return { property, accessorFn, type }\n }\n\n // 这里缓存状态变量对应的访问器,用于watchEffect更新和取消监听\n const stateAccessorMap = new Map<string, WatchStopHandle>()\n\n // 缓存区块属性的访问器\n const propsAccessorMap = new Map<string, WatchStopHandle>()\n\n const generateStateAccessors = (type: IAccessorType, accessor: IAccessor, key: string) => {\n const stateWatchEffectKey = `${key}${type}`\n const { property, accessorFn } = generateAccessor(type, accessor, key)\n\n // 将之前已有的watchEffect取消监听,这里操作很有必要,不然会造成数据混乱\n stateAccessorMap.get(stateWatchEffectKey)?.()\n\n // 更新watchEffect监听\n stateAccessorMap.set(\n stateWatchEffectKey,\n watchEffect(() => {\n try {\n accessorFn()\n } catch (error) {\n globalNotify({\n type: 'warning',\n title: `状态变量${property}的访问器函数:${accessorFn.name}执行报错`,\n message: error?.message || `状态变量${property}的访问器函数:${accessorFn.name}执行报错,请检查语法`\n })\n }\n })\n )\n }\n\n return {\n generateAccessor,\n stateAccessorMap,\n propsAccessorMap,\n generateStateAccessors\n }\n}\n","import { initStyle } from '../material-function/page-getter'\nimport { getController } from '../render'\nexport function setPageCss(css = '', pageId?) {\n const cssPageId = pageId ?? getController().getBaseInfo().pageId\n const key = `data-te-page-${cssPageId}`\n initStyle(key, css)\n}\n","import { reset } from '../data-utils'\nimport { parseData } from '../data-function'\nimport type { IFuncType } from '@opentiny/tiny-engine-dsl-vue'\n\nexport function useMethods({ getContext, setContext }) {\n const methods: Record<string, IFuncType> = {}\n const getMethods = () => methods\n\n const setMethods = (data: Record<string, IFuncType> = {}, clear = false) => {\n if (clear) {\n reset(methods)\n }\n // 这里有些方法在画布还是有执行的必要的,比如说表格的renderer和formatText方法,包括一些自定义渲染函数\n Object.assign(\n methods,\n Object.fromEntries(\n Object.keys(data).map((key) => {\n return [key, parseData(data[key], {}, getContext())]\n })\n )\n )\n setContext(methods)\n }\n return {\n methods,\n getMethods,\n setMethods\n }\n}\n","import { reset } from '../data-utils'\nimport { useAccessorMap } from './accessor-map'\n\nexport function useProps(generateAccessor: ReturnType<typeof useAccessorMap>['generateAccessor']) {\n const props = {}\n const setProps = (data: Record<string, any>, clear = false) => {\n if (clear) {\n reset(props)\n }\n Object.assign(props, data)\n }\n\n const initProps = (properties = []) => {\n const props: Record<string, any> = {}\n const accessorFunctions: Array<ReturnType<typeof generateAccessor>> = []\n\n properties.forEach(({ content = [] }) => {\n content.forEach(({ defaultValue, property, accessor }) => {\n // 如果没有设置defaultValue就是undefined这和vue处理方式一样\n props[property] = defaultValue\n\n // 如果区块属性有访问器accessor,则先解析getter和setter函数\n if (accessor?.getter?.value) {\n // 此处不能直接执行watchEffect,需要在上下文环境设置好之后去执行,此处只是收集函数\n accessorFunctions.push(generateAccessor('getter', accessor, property))\n }\n\n if (accessor?.setter?.value) {\n accessorFunctions.push(generateAccessor('setter', accessor, property))\n }\n })\n })\n\n setProps(props, true)\n\n return accessorFunctions\n }\n return {\n props,\n initProps,\n setProps\n }\n}\n","import { shallowReactive } from 'vue'\n\nimport { getDeletedKeys } from '../data-utils'\nimport { isStateAccessor, parseData } from '../data-function'\n\nexport function useState({ getContext, generateStateAccessors }) {\n const state = shallowReactive({})\n\n const setState = (data) => {\n if (typeof data !== 'object' || data === null) {\n return\n }\n\n const deletedKeys = getDeletedKeys(state, data)\n\n // 同步删除的 key\n for (const key of deletedKeys) {\n delete state[key]\n }\n\n Object.assign(state, parseData(data, {}, getContext()) || {})\n\n // 在状态变量合并之后,执行访问器中watchEffect,为了可以在访问器函数中可以访问其他state变量\n Object.entries(data || {})?.forEach(([key, stateData]: [string, any]) => {\n if (isStateAccessor(stateData)) {\n const accessor = stateData.accessor\n if (accessor?.getter?.value) {\n generateStateAccessors('getter', accessor, key)\n }\n\n if (accessor?.setter?.value) {\n generateStateAccessors('setter', accessor, key)\n }\n }\n })\n }\n return {\n state,\n setState\n }\n}\n","import { reactive, watchEffect, watch } from 'vue'\nimport { reset } from '../data-utils'\nimport { useAccessorMap } from './accessor-map'\nimport { useState } from './state'\nimport { useProps } from './props'\nimport { useMethods } from './methods'\nimport { nextTick } from 'vue'\nimport { globalNotify } from '../canvas-function'\nimport { setPageCss } from './css'\nimport type { IPageSchema, ISchemaChildrenItem } from '@opentiny/tiny-engine-dsl-vue'\nexport { IPageSchema, ISchemaChildrenItem }\n\nexport function useSchema(\n { context: globalContext, setContext, getContext },\n { utils, bridge, stores, getDataSourceMap }\n) {\n const schema = reactive<Partial<IPageSchema>>({})\n const { generateAccessor, stateAccessorMap, propsAccessorMap, generateStateAccessors } = useAccessorMap(globalContext)\n\n const { state, setState } = useState({\n getContext,\n generateStateAccessors\n })\n\n const { props, initProps, setProps } = useProps(generateAccessor)\n\n const { methods, getMethods, setMethods } = useMethods({\n setContext,\n getContext\n })\n\n watch(\n () => schema.state,\n (value) => {\n setState(value)\n },\n {\n deep: true\n }\n )\n\n // 这里监听schema.methods,为了保证methods上下文环境始终为最新\n watch(\n () => schema.methods,\n (value) => {\n setMethods(value, true)\n },\n {\n deep: true\n }\n )\n\n const setSchema = async (data: IPageSchema, pageId?: string) => {\n const newSchema = JSON.parse(JSON.stringify(data || schema))\n reset(schema)\n // 页面初始化的时候取消所有状态变量的watchEffect监听\n stateAccessorMap.forEach((stateAccessorFn) => {\n stateAccessorFn()\n })\n\n // 区块初始化的时候取消所有的区块属性watchEffect监听\n propsAccessorMap.forEach((propsAccessorFn) => {\n propsAccessorFn()\n })\n\n // 清空存状态变量和区块props访问器的缓存\n stateAccessorMap.clear()\n propsAccessorMap.clear()\n\n const context = {\n utils,\n bridge,\n stores,\n state,\n props,\n dataSourceMap: {},\n emit: () => {} // 兼容访问器中getter和setter中this.emit写法\n }\n Object.defineProperty(context, 'dataSourceMap', {\n // TODO: defineProperty不可枚举会在setContext中Object.assign时不能被枚举,理论上无效\n get: getDataSourceMap\n })\n // 此处提升很重要,因为setState、initProps也会触发画布重新渲染,所以需要提升上下文环境的设置时间\n setContext(context, true)\n\n // 设置方法调用上下文\n setMethods(newSchema.methods, true)\n\n // 如果是区块则需要设置对外暴露的props\n const accessorFunctions = initProps(newSchema.schema?.properties)\n\n // 这里setState(会触发画布渲染),是因为状态管理里面的变量会用到props、utils、bridge、stores、methods\n setState(newSchema.state)\n\n await nextTick()\n setPageCss(data.css, pageId)\n Object.assign(schema, newSchema)\n\n // 当上下文环境设置完成之后再去处理区块属性访问器的watchEffect\n accessorFunctions.forEach(({ property, accessorFn, type }) => {\n const propsWatchEffectKey = `${property}${type}`\n propsAccessorMap.set(\n propsWatchEffectKey,\n watchEffect(() => {\n try {\n accessorFn()\n } catch (error) {\n globalNotify({\n type: 'warning',\n title: `区块属性${property}的访问器函数:${accessorFn.name}执行报错`,\n message: error?.message || `区块属性${property}的访问器函数:${accessorFn.name}执行报错,请检查语法`\n })\n }\n })\n )\n })\n\n return schema\n }\n return {\n schema,\n setSchema,\n ...{\n generateAccessor,\n stateAccessorMap,\n propsAccessorMap,\n generateStateAccessors\n },\n ...{\n state,\n setState\n },\n ...{\n props,\n initProps,\n setProps\n },\n ...{\n methods,\n getMethods,\n setMethods\n },\n ...{\n getContext\n },\n setPageCss\n }\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { shallowReactive } from 'vue'\n\nexport function useContext() {\n const context = shallowReactive({})\n const setContext = (ctx, clear) => {\n if (clear) {\n Object.keys(context).forEach((key) => delete context[key])\n }\n Object.assign(context, ctx)\n }\n\n const getContext = () => context\n\n return {\n context,\n setContext,\n getContext\n }\n}\n\nexport function useCondition() {\n // 从大纲树控制隐藏\n const conditions = shallowReactive({})\n const setCondition = (id, visible = false) => {\n conditions[id] = visible\n }\n const getCondition = (id) => conditions[id] !== false\n\n const getConditions = () => conditions\n return {\n conditions,\n setCondition,\n getCondition,\n getConditions\n }\n}\n\nexport function usePageContextParent() {\n let contextParent = null\n function setContextParent(parent: any) {\n contextParent = parent\n }\n function getContextParent() {\n return contextParent\n }\n return {\n setContextParent,\n getContextParent\n }\n}\n\nexport function useCssScopeId() {\n let cssScopeId = null\n function setCssScopeId(id: string) {\n cssScopeId = id\n }\n function getCssScopeId() {\n return cssScopeId\n }\n return {\n getCssScopeId,\n setCssScopeId\n }\n}\nexport function usePageContext() {\n const contextExpose = useContext()\n const conditionExpose = useCondition()\n const contextParentExpose = usePageContextParent()\n const cssCopeIdExpose = useCssScopeId()\n return {\n ...contextExpose,\n ...conditionExpose,\n ...contextParentExpose,\n ...cssCopeIdExpose,\n pageId: '',\n active: false\n }\n}\nexport type IPageContext = ReturnType<typeof usePageContext>\n","import type { useDataSourceMap, useUtils } from '../application-function'\nimport type { IPageContext } from '../page-block-function'\nimport type { useCustomRenderer } from './custom-renderer'\nimport type { removeBlockCompsCache, setConfigure } from '../material-function'\nimport type { getDesignMode, setDesignMode } from './design-mode'\nimport type { setController, getController } from './controller'\n\nexport interface IApplicationFunctionAPI\n extends Pick<ReturnType<typeof useUtils>, 'getUtils'>,\n Pick<ReturnType<typeof useDataSourceMap>, 'getDataSourceMap'> {}\nexport type IPageContextAPI = Pick<IPageContext, 'setCondition' | 'getConditions'>\nexport interface ICanvasFunctionAPI extends ReturnType<typeof useCustomRenderer> {\n getDesignMode: typeof getDesignMode\n setDesignMode: typeof setDesignMode\n setController: typeof setController\n getController: typeof getController\n setConfigure: typeof setConfigure\n updateCanvas: () => void\n}\nexport interface IMaterialFunctionAPI {\n removeBlockCompsCache: typeof removeBlockCompsCache\n}\n\nexport type IInnerCanvasAPI = IApplicationFunctionAPI & ICanvasFunctionAPI & IPageContextAPI & IMaterialFunctionAPI\n\nlet currentApi: IInnerCanvasAPI\n\nexport function setCurrentApi(activeApi: IInnerCanvasAPI) {\n currentApi = activeApi\n}\n\nexport const api: IInnerCanvasAPI = {\n getUtils: (...args) => currentApi?.getUtils(...args),\n setController: (...args) => currentApi?.setController(...args),\n getController: (...args) => currentApi?.getController(...args),\n setConfigure: (...args) => currentApi?.setConfigure(...args),\n setCondition: (...args) => currentApi?.setCondition(...args),\n getConditions: (...args) => currentApi?.getConditions(...args),\n getDataSourceMap: (...args) => currentApi?.getDataSourceMap(...args),\n getRenderer: (...args) => currentApi?.getRenderer(...args),\n setRenderer: (...args) => currentApi?.setRenderer(...args),\n getDesignMode: (...args) => currentApi?.getDesignMode(...args),\n setDesignMode: (...args) => currentApi?.setDesignMode(...args),\n removeBlockCompsCache: (...args) => currentApi?.removeBlockCompsCache(...args),\n updateCanvas: (...args) => currentApi?.updateCanvas(...args)\n}\n","import { reactive } from 'vue'\nimport type { IPageContext } from '../page-block-function'\n\nexport interface ICurrentPage {\n pageId: string | number\n schema: any\n pageContext: IPageContext\n}\nexport const currentPage = reactive<ICurrentPage>({\n pageId: null,\n schema: null,\n pageContext: null\n})\n\nexport function setCurrentPage({ pageId, schema, pageContext }: ICurrentPage) {\n currentPage.pageId = pageId\n currentPage.pageContext = pageContext\n currentPage.schema = schema\n}\n","import { onUnmounted, ref } from 'vue'\nimport { getController } from './controller'\nimport { getPageAncestors } from '../material-function/page-getter'\n\nexport function useRouterPreview() {\n const pageId = ref(getController().getBaseInfo().pageId)\n const previewId = ref(getController().getBaseInfo().previewId)\n const updatePreviewId = getController().updatePreviewId\n const previewFullPath = ref([])\n const previewPath = ref([])\n\n async function calcNewPreviewFullPath() {\n if (!pageId.value) {\n if (previewId.value) {\n updatePreviewId(undefined, true)\n return\n }\n previewFullPath.value = []\n previewPath.value = []\n return\n }\n if (!previewId.value) {\n previewFullPath.value = await getPageAncestors(pageId.value)\n previewPath.value = []\n return\n }\n\n if (previewFullPath.value[previewFullPath.value.length - 1] !== previewId.value) {\n // previewId changed\n const fullPath = await getPageAncestors(previewId.value)\n if (fullPath.includes(pageId.value)) {\n previewFullPath.value = fullPath\n } else {\n updatePreviewId(pageId.value, true)\n }\n }\n\n if (previewFullPath.value.includes(pageId.value)) {\n // only pageId changed and fast move\n const fastJumpIndex = previewFullPath.value.indexOf(pageId.value)\n if (fastJumpIndex + 1 < previewFullPath.value.length) {\n previewPath.value = previewFullPath.value.slice(fastJumpIndex + 1)\n } else {\n previewPath.value = []\n }\n } else {\n previewFullPath.value = await getPageAncestors(pageId.value)\n previewPath.value = []\n updatePreviewId(pageId.value, true)\n }\n }\n\n const cancel = getController().addHistoryDataChangedCallback(() => {\n const newPageId = getController().getBaseInfo().pageId\n const newPreviewId = getController().getBaseInfo().previewId\n const pageIdChanged = newPageId !== pageId.value\n const previewIdChanged = newPreviewId !== previewId.value\n if (pageIdChanged) {\n pageId.value = newPageId\n }\n if (previewIdChanged) {\n previewId.value = newPreviewId\n }\n if (previewIdChanged || pageIdChanged) {\n calcNewPreviewFullPath()\n }\n })\n\n onUnmounted(() => {\n cancel()\n })\n\n calcNewPreviewFullPath()\n\n return {\n previewPath,\n previewFullPath\n }\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { provide, watch, defineComponent, ref, inject, onUnmounted, h, type PropType, type Ref } from 'vue'\nimport {\n getDesignMode,\n setDesignMode,\n setController,\n useCustomRenderer,\n getController,\n useRouterViewSetting,\n useLocale\n} from './canvas-function'\nimport { removeBlockCompsCache, setConfigure } from './material-function'\nimport { useUtils, useBridge, useDataSourceMap, useGlobalState } from './application-function'\nimport { type IPageSchema, useContext, usePageContext, useSchema } from './page-block-function'\nimport { api, setCurrentApi } from './canvas-function/canvas-api'\nimport { getPageAncestors } from './material-function/page-getter'\nimport CanvasEmpty from './canvas-function/CanvasEmpty.vue'\nimport { setCurrentPage } from './canvas-function/page-switcher'\nimport { useThrottleFn } from '@vueuse/core'\nimport { useRouterPreview } from './canvas-function/router-preview'\n\n// global-context singleton\nconst { context: globalContext, setContext: setGlobalContext } = useContext()\nconst { refreshKey, utils, getUtils, setUtils } = useUtils(globalContext)\nconst { bridge } = useBridge()\nconst { getDataSourceMap, setDataSourceMap } = useDataSourceMap()\nconst { setGlobalState, stores } = useGlobalState()\nconst updateGlobalContext = () => {\n const context = {\n utils,\n bridge,\n stores\n }\n Object.defineProperty(context, 'dataSourceMap', {\n // TODO: 理论上无法枚举, 先保留写法\n get: getDataSourceMap,\n enumerable: true\n })\n setGlobalContext(context, true)\n}\nupdateGlobalContext()\nexport const activePageContext = usePageContext()\n\nconst {\n schema: activeSchema,\n setSchema,\n setPageCss\n} = useSchema(activePageContext, {\n utils,\n bridge,\n stores,\n getDataSourceMap\n})\nconst { getRenderer, setRenderer } = useCustomRenderer()\nconst { setCondition, getConditions } = activePageContext\nconst updateCanvas = () => {\n refreshKey.value++\n}\nsetCurrentApi({\n // 用于lowcode.ts获取utils工具\n getUtils,\n getDataSourceMap,\n setController,\n // 设置物料配置\n setConfigure,\n setCondition,\n getController,\n getConditions,\n getRenderer,\n setRenderer,\n getDesignMode,\n setDesignMode,\n removeBlockCompsCache,\n updateCanvas\n})\n\nconst throttleUpdateSchema = useThrottleFn(\n () => {\n window.host.patchLatestSchema(activeSchema)\n },\n 100,\n true\n)\n\nconst { routerViewSetting } = useRouterViewSetting()\n\nexport default defineComponent({\n props: {\n entry: {\n // 页面入口\n type: Boolean,\n default: true\n },\n cssScopeId: {\n type: String,\n default: null\n },\n parentContext: {\n type: Object as PropType<ReturnType<typeof useContext>>,\n default: null\n },\n renderSchema: {\n type: Object as PropType<IPageSchema>,\n default: null\n },\n active: {\n type: Boolean,\n default: false\n },\n pageId: {\n type: String,\n default: null\n }\n },\n setup(props) {\n const pageAncestors = (inject('page-ancestors') as Ref<any[]>) || ref(null)\n const pageIdFromPath = getController().getBaseInfo().pageId\n // 顶层使用activePageContext,区块和页面间切换不受影响(短期方案),因为页面的pageContext目前非响应式(仅刷新画布执行一次),无法动态切换激活态和非激活态\n const pageContext = props.active || props.entry ? activePageContext : usePageContext()\n provide('pageContext', pageContext)\n\n pageContext.setContextParent(props.parentContext)\n // 顶层isPage的判断和pageId耦合了,短期先使得顶层和激活页共用pageId,后续需要增加pageContext.isPage\n pageContext.pageId = props.pageId || pageIdFromPath\n pageContext.active = props.active || !pageIdFromPath || props.entry\n pageContext.setCssScopeId(props.cssScopeId || `data-te-page-${pageContext.pageId}`)\n if (props.entry) {\n provide('page-ancestors', pageAncestors)\n provide('page-preview', useRouterPreview().previewPath)\n const updatePageAncestor = () => {\n if (routerViewSetting.viewMode === 'standalone') {\n pageAncestors.value = []\n return\n }\n getPageAncestors(pageContext.pageId).then((value) => {\n pageAncestors.value = value\n })\n }\n updatePageAncestor()\n\n const cancel = getController().addHistoryDataChangedCallback(() => {\n const pageIdFromPath = getController().getBaseInfo().pageId\n pageContext.pageId = pageIdFromPath\n pageContext.setCssScopeId(`data-te-page-${pageContext.pageId}`)\n updatePageAncestor()\n })\n onUnmounted(() => {\n cancel()\n })\n\n watch(\n () => routerViewSetting.viewMode,\n () => {\n updatePageAncestor()\n }\n )\n\n useLocale()\n\n watch(\n () => activeSchema.css,\n (value) => {\n setPageCss(value)\n }\n )\n\n const utilsWatchCanceler = window.host.watch(\n () => window.host.appSchema?.utils,\n (data) => {\n setUtils(data)\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n const dataSourceWatchCanceler = window.host.watch(\n () => window.host.appSchema?.dataSource,\n (data) => {\n setDataSourceMap(data)\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n const globalStateWatchCanceler = window.host.watch(\n () => window.host.appSchema?.globalState,\n (data) => {\n setGlobalState(data)\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n window.host.subscribe({\n topic: 'schemaChange',\n subscriber: 'canvasRenderer',\n callback: throttleUpdateSchema\n })\n\n window.host.subscribe({\n topic: 'schemaImport',\n subscriber: 'canvasRenderer',\n callback: () => {\n setSchema(window.host.getSchema())\n }\n })\n\n onUnmounted(() => {\n window.host.unsubscribe({\n topic: 'schemaChange',\n subscriber: 'canvasRenderer'\n })\n\n window.host.unsubscribe({\n topic: 'schemaImport',\n subscriber: 'canvasRenderer'\n })\n\n utilsWatchCanceler()\n dataSourceWatchCanceler()\n globalStateWatchCanceler()\n })\n }\n\n let schema = activeSchema\n let setCurrentSchema\n if (pageContext.pageId && !props.active && !props.entry) {\n // 注意顶层使用activeSchema和对应的api\n const { schema: inActiveSchema, setSchema: setInactiveSchema } = useSchema(pageContext, {\n utils,\n bridge,\n stores,\n getDataSourceMap\n })\n schema = inActiveSchema\n setCurrentSchema = setInactiveSchema\n }\n\n provide('rootSchema', schema)\n\n if (!props.entry) {\n watch(\n [() => props.active, () => props.renderSchema],\n ([active, renderSchema]) => {\n if (active) {\n setCurrentPage({\n pageId: pageContext.pageId,\n schema: schema,\n pageContext: pageContext\n })\n }\n if (!active && !props.entry) {\n setCurrentSchema?.(renderSchema, props.pageId)\n }\n },\n {\n immediate: true\n }\n )\n }\n\n const pageRenderer = getRenderer()\n\n return () =>\n pageAncestors.value === null\n ? h(CanvasEmpty, { placeholderText: '页面分析加载中' })\n : pageRenderer(\n schema,\n refreshKey,\n props.entry,\n pageContext.active,\n !!pageContext.pageId && pageAncestors.value.length\n )\n }\n})\n\nexport { api }\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { getCurrentInstance, nextTick, provide, inject, type Ref } from 'vue'\nimport { I18nInjectionKey } from 'vue-i18n'\nimport { api } from './RenderMain'\nimport { globalNotify } from './canvas-function'\nimport { generateFn } from './data-function'\n\nexport const lowcodeWrap = (props, context) => {\n const global: Record<string, any> = {}\n const instance = getCurrentInstance()\n const router = ''\n const route = ''\n const { t, locale } = inject(I18nInjectionKey).global as any\n const emit = context.emit\n const ref = (ref) => instance.refs[ref]\n\n const setState = (newState, callback) => {\n Object.assign(global.state, newState)\n nextTick(() => callback?.apply(global))\n }\n\n const getLocale = () => locale.value\n const setLocale = (val) => {\n locale.value = val\n }\n\n const location = () => window.location\n const history = () => window.history\n\n Object.defineProperties(global, {\n props: { get: () => props },\n emit: { get: () => emit },\n setState: { get: () => setState },\n router: { get: () => router },\n route: { get: () => route },\n i18n: { get: () => t },\n getLocale: { get: () => getLocale },\n setLocale: { get: () => setLocale },\n location: { get: location },\n history: { get: history },\n utils: {\n get: api.getUtils\n },\n bridge: { get: () => ({}) },\n dataSourceMap: { get: api.getDataSourceMap },\n $: { get: () => ref }\n })\n\n const wrap = (fn) => {\n if (typeof fn === 'function') {\n const fnString = fn.toString()\n\n if (fnString.includes('return this')) {\n return () => global\n } else if (/this\\.dataSourceMap\\.[0-9a-zA-Z_]+\\.load\\(\\)/.test(fnString)) {\n const renderContext = (inject('pageContext') as Ref<any>).value\n return generateFn(fn, renderContext)\n } else if (fn.name === 'setter' || fn.name === 'getter') {\n // 这里需要保证在消费区块时,区块中的访问器函数可以正常执行\n return (...args) => {\n try {\n fn.apply(global, args)\n } catch (error) {\n globalNotify({\n type: 'warning',\n title: `访问器函数:${fn.name}执行报错`,\n message: error?.message || `访问器函数:${fn.name}执行报错,请检查语法`\n })\n }\n }\n } else {\n return () => Promise.resolve({ result: [], page: { total: 100 } })\n }\n }\n\n Object.entries(fn).forEach(([name, value]) => {\n Object.defineProperty(global, name, {\n get: () => value\n })\n })\n\n fn.t = t\n\n return fn\n }\n\n return wrap\n}\n\nexport default () => {\n const i18n = inject(I18nInjectionKey)\n provide(I18nInjectionKey, i18n)\n return { t: i18n.global.t, lowcodeWrap }\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { createApp } from 'vue'\nimport { addScript, addStyle, getComponents } from '../../common'\nimport TinyI18nHost, { I18nInjectionKey } from '@opentiny/tiny-engine-common/js/i18n'\nimport Main, { api } from './RenderMain'\nimport lowcode from './lowcode'\n\ntype ITinyI18nHostI18nHost = typeof TinyI18nHost\ninterface IExtendsTinyI18nHost extends ITinyI18nHostI18nHost {\n lowcode: typeof lowcode\n}\n\nconst dispatch = (name: string, data?: { detail: any }) => {\n window.parent.document.dispatchEvent(new CustomEvent(name, data))\n}\n\nconst initRenderContext = () => {\n dispatch('beforeCanvasReady', null)\n ;(TinyI18nHost as IExtendsTinyI18nHost).lowcode = lowcode\n\n window.TinyLowcodeComponent = {}\n window.TinyComponentLibs = {}\n}\n\nlet App = null\n\nconst renderer = {\n getApp() {\n return App\n },\n getI18n() {\n return TinyI18nHost\n },\n ...api\n}\n\nconst create = async (config) => {\n const { beforeAppCreate, appCreated } = config.lifeCycles || {}\n if (typeof beforeAppCreate === 'function') {\n await beforeAppCreate({ api: renderer })\n }\n if (App) {\n App.unmount()\n }\n App = null\n\n document.body.remove()\n document.body = document.createElement('body')\n const app = document.createElement('div')\n app.setAttribute('id', 'app')\n document.body.appendChild(app)\n\n dispatch('canvasReady', { detail: renderer })\n\n App = createApp(Main).use(TinyI18nHost).provide(I18nInjectionKey, TinyI18nHost)\n\n if (typeof appCreated === 'function') {\n await appCreated(App, { api: renderer })\n }\n\n App.config.globalProperties.lowcodeConfig = window.parent.TinyGlobalConfig\n App.mount(document.querySelector('#app'))\n\n new ResizeObserver(() => {\n dispatch('canvasResize', null)\n }).observe(document.body)\n\n App.config.errorHandler = () => {}\n}\n\nexport const createRender = (config) => {\n initRenderContext()\n\n const { styles = [], scripts = [] } = config.canvasDependencies\n const componentsDeps = window.componentsDeps || []\n\n Promise.all([\n ...componentsDeps.map(getComponents),\n ...scripts.map((src) => addScript(src)).concat(styles.map((src) => addStyle(src)))\n ]).finally(() => create(config))\n}\n"],"names":["controller","setController","controllerData","getController","DESIGN_MODE","designMode","getDesignMode","setDesignMode","mode","BROADCAST_CHANNEL","constants","post","useBroadcastChannel","globalNotify","options","props","__props","configure","setConfigure","configureData","_sfc_main$a","_createElementBlock","_normalizeClass","$props","_toDisplayString","_sfc_main$9","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","_ctx","_renderSlot","_sfc_main$8","_hoisted_1","_hoisted_2","_hoisted_3","_createElementVNode","_createTextVNode","NAME_PREFIX","genRemoteMethodToLifeSetup","variableName","sourceRef","pageSchema","_a","setupFn","_c","_b","fetchBody","removeState","parse","traverse","generate","ast","path","setStateWithSourceRef","data","defaultHandlerTemplate","node","schemaId","genVarName","generateAssignColumns","newColumns","oldColumns","item","targetColumn","value","askShouldImportData","updateKey","publish","sourceColumns","title","field","updateNodeHandler","sourceName","methodName","pageConfig","extraHandlerMap","map","tree","i","getHandler","fetchDataSourceDetail","dataSourceId","_sfc_main$7","CanvasPlaceholder","source","ref","res","handler","watch","getSchema","getNode","isEmpty","computed","children","_e","_d","_mergeProps","$setup","_createVNode","_component_canvas_placeholder","_sfc_main$6","h","SvgIcons","_sfc_main$5","_sfc_main$4","_normalizeStyle","_sfc_main$3","inject","_sfc_main$2","pageAncestor","active","exactActive","Mapper","CanvasIcon","CanvasText","CanvasCollection","CanvasBox","CanvasSlot","CanvasImg","CanvasSection","CanvasFlexBox","CanvasRow","CanvasCol","CanvasRowColContainer","CanvasRouterView","CanvasRouterLink","getNative","name","getBlock","blockComponentsBlobUrlMap","loadBlockComponent","blocksBlob","fileName","stylesheet","newStylesheet","BlockLoadError","getBlockComponent","defineAsyncComponent","removeBlockCompsCache","_","getIcon","TinyVueIcon","getComponent","isHTMLTag","blockSlotDataMap","reactive","generateFunction","commonUtils","reset","obj","key","newFn","argv","Fn","getDeletedKeys","objA","objB","keyA","keyB","parseList","isI18nData","isJSSlot","isJSExpression","isJSFunction","isJSResource","isString","isArray","isFunction","isIcon","isObject","isStateAccessor","stateData","transformJSX","code","transformSync","babelPluginJSX","parseExpression","scope","ctx","isJsx","i18nHost","expression","parseI18n","i18n","parseFunctionString","fnStr","result","parseJSXFunction","_scope","newValue","fnInfo","error","generateFn","innerFn","context","args","resolve","parseJSFunction","parseJSSlot","$scope","renderDefault","parseData","typeParser","parseCondition","condition","parseLoopArgs","loop","index","loopArgs","body","parseIcon","parseStateAccessor","parseObjectData","parseString","parseArray","parseFunction","exports","unesc","gobbleHex","str","lower","hex","spaceTerminated","valid","codePoint","isSurrogate","CONTAINS_ESCAPE","needToProcess","ret","gobbled","module","getProp","_len","_key","prop","ensureObject","stripComments","s","commentStart","lastEnd","commentEnd","util","_unesc","_interopRequireDefault","require$$0","_getProp","require$$1","_ensureObject","require$$2","_stripComments","require$$3","_util","_defineProperties","target","descriptor","_createClass","Constructor","protoProps","staticProps","cloneNode","parent","cloned","type","j","Node","opts","_proto","overrides","valueEscaped","originalValue","originalEscaped","line","column","rawSpace","raw","types","TAG","STRING","SELECTOR","ROOT","PSEUDO","NESTING","ID","COMMENT","COMBINATOR","CLASS","ATTRIBUTE","UNIVERSAL","_node","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","n","arr","len","arr2","_inheritsLoose","subClass","superClass","_setPrototypeOf","p","o","Container","_Node","_this","selector","id","child","_iterator","_step","oldNode","newNode","_this$nodes","oldIndex","resetNode","_this$nodes2","col","found","foundChild","callback","_this2","_this3","_this4","_this5","_this6","_this7","_this8","_this9","_this10","_this11","current","memo","split","_container","_types","Root","_Container","message","Selector","object","hasOwnProperty","merge","defaults","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","string","quote","isIdentifier","firstChar","output","counter","length","character","extra","$0","$1","$2","cssesc_1","_cssesc","ClassName","v","escaped","Comment","Namespace","namespace","ns","_namespace","Tag","_Namespace","String","Pseudo","params","browser","deprecate","fn","msg","config","warned","deprecated","global","val","unescapeValue","_CSSESC_QUOTE_OPTIONS","require$$4","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","deprecatedUsage","quoteMark","unescaped","m","handleDeprecatedContructorOpts","_unescapeValue","Attribute","cssescopts","CSSESC_QUOTE_OPTIONS","numSingleQuotes","numDoubleQuotes","pref","quoteValue","rawValue","attrSpaces","spaces","rawSpaces","spaceName","concat","defaultAttrConcat","count","attributeSpaces","operatorSpaces","operator","valueSpaces","insensitiveSpaces","attrValue","qm","_unescapeValue2","insensitive","Universal","Combinator","Nesting","sortAscending","list","b","tokenTypes","ampersand","asterisk","at","comma","colon","semicolon","openParenthesis","closeParenthesis","openSquare","closeSquare","dollar","tilde","caret","plus","equals","pipe","greaterThan","space","singleQuote","doubleQuote","slash","bang","backslash","cr","feed","newline","tab","comment","word","combinator","tokenize","_unescapable","_wordDelimiters","unescapable","wordDelimiters","hexChars","consumeWord","css","start","next","consumeEscape","hexDigits","FIELDS","input","tokens","_css","offset","end","content","endColumn","endLine","escapePos","last","lines","nextLine","nextOffset","tokenType","unclosed","what","fix","_root","_selector","_className","_comment","_id","_tag","require$$5","_string","require$$6","_pseudo","require$$7","_attribute","require$$8","_universal","require$$9","_combinator","require$$10","_nesting","require$$11","_sortAscending","require$$12","_tokenize","require$$13","require$$14","require$$15","require$$16","_WHITESPACE_TOKENS","_Object$assign","WHITESPACE_TOKENS","WHITESPACE_EQUIV_TOKENS","tokenStart","token","tokenEnd","getSource","startLine","startColumn","getTokenSource","getTokenSourceSpan","startToken","endToken","unescapeProp","indexesOf","array","indexes","uniqs","Parser","rule","rootSource","errorOptions","attr","startingToken","pos","spaceBefore","commentBefore","lastAdded","spaceAfterMeaningfulToken","prevContent","existingComment","oldRawValue","_rawValue","_unescaped","_oldRawValue","oldValue","lastComment","rawLastComment","lastValue","rawLastValue","stopPosition","startPosition","nodes","firstToken","lastToken","requiredSpace","rawSpaceBefore","position","nameRaw","raws","nextSigTokenPos","_this$convertWhitespa","spaceOrDescendantSelectorNodes","_this$convertWhitespa2","_space","_rawSpace","_this$convertWhitespa3","_space2","_rawSpace2","before","nextContent","unbalanced","parenStart","parenValue","parenEnd","pseudoStr","first","nextToken","firstCallback","hasClass","escapedDot","isKeyframesPercent","hasId","interpolations","hashIndex","indices","ind","sourceIndex","classNameOpts","idOpts","tagOpts","throwOnParenthesis","description","an","required","searchPosition","_parser","Processor","func","merged","parser","reject","root","transform","e","constructors","attribute","className","nesting","pseudo","tag","universal","guards","isContainer","isNamespace","isNode","isPseudoClass","isPseudoElement","_IS_TYPE","IS_TYPE","isNodeType","isAttribute","isClassName","isCombinator","isComment","isNesting","isPseudo","isRoot","isSelector","isTag","isUniversal","_constructors","_guards","_processor","selectors","processor","_default","animationNameRE","animationRE","scopedPlugin","keyframes","shortId","processRule","decl","vals","processedRules","selectorParser","selectorRoot","rewriteSelector","ss","prev","isSpaceCombinator","handleScopedCss","postcss","fetchPageSchema","pageId","styleSheetMap","initStyle","styleSheet","scopedCss","wrapPageComponent","asyncData","updateSchema","defineComponent","stop","watchStop","activeValue","onUnmounted","RenderMain","getPage","getPageAncestors","renderer","stopEvent","event","generateSlotGroup","schema","slotGroup","componentName","slot","isNotEmptyTemplate","renderSlot","a","slots","slotName","currentSlot","checkGroup","clickCapture","getBindProps","pageContext","componentType","invalidity","getCssScopeId","cssScopeId","bindProps","DESIGN_UIDKEY","NODE_INACTIVE_UID","DESIGN_TAGKEY","DESIGN_LOOPID","getLoopScope","injectPlaceHolder","isEmptyArr","renderGroup","loopList","renderElement","mergeScope","renderChildren","getChildren","isNative","isGroup","getRenderPageId","currentPageId","isPageStart","pagePathFromRoot","pagePreviewFromCurrentPageChild","fullPath","getNextChild","provide","currentPageContext","ancestors","isRouterView","renderPageId","component","blockName","slotData","Ele","Suspense","BlockLoading","defaultRenderer","refreshKey","entry","isPage","rootChildrenSchema","CanvasEmpty","PageStartSchema","useCustomRenderer","canvasRenderer","useLocale","locale","I18nInjectionKey","CANVAS_ROUTER_VIEW_SETTING_VIEW_MODE_KEY","ViewMode","getCacheValue","useRouterViewSetting","routerViewSetting","close","useBridge","useDataSourceMap","dataSourceMap","shallowReactive","dMap","dataSource","Func","useGlobalState","globalState","setGlobalState","stores","watchEffect","state","getters","computedGetters","acc","useUtils","utils","newKeys","deletedUtilsKeys","utilsCollection","TinyVue","utilIcon","defaultFn","validNPMUtils","npmUtilsImports","exportName","destructuring","cdnLink","useAccessorMap","generateAccessor","accessor","property","accessorFn","stateAccessorMap","stateWatchEffectKey","setPageCss","useMethods","getContext","setContext","methods","clear","useProps","setProps","properties","accessorFunctions","defaultValue","useState","generateStateAccessors","deletedKeys","useSchema","globalContext","bridge","getDataSourceMap","propsAccessorMap","setState","initProps","getMethods","setMethods","newSchema","stateAccessorFn","propsAccessorFn","nextTick","propsWatchEffectKey","useContext","useCondition","conditions","visible","usePageContextParent","contextParent","setContextParent","getContextParent","useCssScopeId","setCssScopeId","usePageContext","contextExpose","conditionExpose","contextParentExpose","cssCopeIdExpose","currentApi","setCurrentApi","activeApi","api","currentPage","setCurrentPage","useRouterPreview","previewId","updatePreviewId","previewFullPath","previewPath","calcNewPreviewFullPath","fastJumpIndex","cancel","newPageId","newPreviewId","pageIdChanged","previewIdChanged","setGlobalContext","getUtils","setUtils","setDataSourceMap","updateGlobalContext","activePageContext","activeSchema","setSchema","getRenderer","setRenderer","setCondition","getConditions","updateCanvas","throttleUpdateSchema","useThrottleFn","Main","pageAncestors","pageIdFromPath","updatePageAncestor","utilsWatchCanceler","dataSourceWatchCanceler","globalStateWatchCanceler","setCurrentSchema","inActiveSchema","setInactiveSchema","renderSchema","pageRenderer","lowcodeWrap","instance","getCurrentInstance","router","route","t","emit","newState","getLocale","setLocale","fnString","renderContext","lowcode","dispatch","initRenderContext","TinyI18nHost","App","create","beforeAppCreate","appCreated","app","createApp","createRender","styles","scripts","componentsDeps","getComponents","src","addScript","addStyle"],"mappings":";;;;;;;;;;;;;;;AAAA,MAAMA,KAAkC,CAAC,GAE5BC,KAAgB,CAACC,MAAmB;AACxC,SAAA,OAAOF,IAAYE,CAAc;AAC1C,GAEaC,IAAgB,MAAMH,ICNtBI,KAAc;AAAA,EACzB,QAAQ;AAEV;AAGA,IAAIC,KAAaD,GAAY;AAEtB,MAAME,KAAgB,MAAMD,IAEtBE,KAAgB,CAACC,MAAiB;AAChC,EAAAH,KAAAG;AACf,GCVM,EAAEC,mBAAAA,GAAsB,IAAAC,IACxB,EAAE,MAAAC,GAAS,IAAAC,GAAoB,EAAE,MAAMH,GAAkB,QAAQ,GAG1DI,KAAe,CAACC,MAAYH,GAAKG,CAAO;;;;;;ACSrD,UAAMC,IAAQC;;;oECfDC,KAAiC,CAAC,GAClCC,KAAe,CAACC,MAAkB;AACtC,SAAA,OAAOF,IAAWE,CAAa;AACxC,GCEeC,KAAA;AAAA,EACb,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;;eAfEC,GAA2D,QAAA;AAAA,IAApD,OADTC,mBACgCC,EAAS,SAAA,CAAA;AAAA,EAAA,GAAAC,GAAMD,EAAI,IAAA,GAAA,CAAA;;qDCMpCE,KAAA;AAAA,EACb,OAAO;AAAA,IACL,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;;AAbE,SAAAC,GAAA,GAAAC,GAEYC,GAFIL,EAAA,GAAG,GADrBM,GAAAC,GAC+BC,EAAM,MAAA,CAAA,GAAA;AAAA,IADrC,YAEI,MAAc;AAAA,MAAdC,GAAcD,EAAA,QAAA,SAAA;AAAA,IAAA,CAAA;AAAA,IAFlB,GAAA;AAAA,EAAA,GAAA,EAAA;;qDCWeE,KAAA;AAAA,EACb,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ,GAjBOC,KAAA,EAAA,OAAM,mBAAkB,GACtBC,KAAA,EAAA,OAAM,gBAAe,GACnBC,KAAA,EAAA,OAAM,gBAAe;;AAF9B,SAAAV,GAAA,GAAAL,GAMM,OANNa,IAMM;AAAA,IALJG,GAIM,OAJNF,IAIM;AAAA,MAHJE,GAEM,OAFND,IAEM;AAAA,QADJJ,GAA8BD,yBAA9B,MAA8B;AAAA,UAJtCO,MAIiBf,EAAW,WAAA,GAAA,CAAA;AAAA,QAAA,GAAA,EAAA;AAAA;;;;uFCUtBgB,KAAc;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EAGP,MAAM;AAAA,EACN,QAAQ;AACV,GAEMC,KAA6B,CAACC,GAAcC,GAAWC,MAAe;;AACtE,OAAAC,IAAAF,EAAU,MAAM,SAAhB,QAAAE,EAAsB,QAAQ;AAC1B,UAAAC,KAAUC,KAAAC,IAAAJ,EAAW,eAAX,gBAAAI,EAAuB,UAAvB,gBAAAD,EAA8B,OACxCE,IAAY;AAAA,iBACLP,CAAY;AAAA,yBACJC,EAAU,MAAM,IAAI,oCAAoCD,CAAY;AAEzF,IAAKI,IAOQF,EAAA,WAAW,MAAM,QAAQE,EAAQ,KAAO,EAAA,QAAQ,OAAOG,IAAY,GAAG,KANtEL,EAAA,aAAaA,EAAW,cAAc,CAAC,GAClDA,EAAW,WAAW,QAAQ;AAAA,MAC5B,MAAM;AAAA,MACN,OAAO,uDAAuDK,CAAS;AAAA,IACzE;AAAA,EAGF;AAEJ,GAEMC,KAAc,CAACN,GAAYF,MAAiB;;AACzC,SAAAE,EAAW,MAAMF,CAAY;AAEpC,QAAM,EAAE,OAAAS,GAAO,UAAAC,GAAU,UAAAC,EAAS,IAAIjD,EAAgB,EAAA,KAChD0C,KAAUE,KAAAH,IAAAD,EAAW,eAAX,gBAAAC,EAAuB,UAAvB,gBAAAG,EAA8B;AAE1C,MAAA;AACI,UAAAM,IAAMH,EAAML,CAAO;AAEzB,IAAAM,EAASE,GAAK;AAAA,MACZ,oBAAoBC,GAAM;AACxB,QAAIA,EAAK,SAAA,EAAW,SAASb,CAAY,KACvCa,EAAK,OAAO;AAAA,MACd;AAAA,IACF,CACD,GAEDX,EAAW,WAAW,MAAM,QAAQS,EAASC,CAAG,EAAE;AAAA,UACpC;AAAA,EAAA;AAGlB,GAEME,KAAwB,CAACZ,GAAYF,GAAcC,GAAWc,MAAS;;AAChE,EAAAb,EAAA,MAAMF,CAAY,IAAIe,IAE7BT,KAAAH,IAAAF,EAAU,MAAM,SAAhB,gBAAAE,EAAsB,WAAtB,QAAAG,EAA8B,UACLP,GAAAC,GAAcC,GAAWC,CAAU;AAElE,GAEMc,KAAyB,CAAC,EAAE,MAAAC,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,QAAiB;AAC5E,QAAMiB,IAAa,CAACD,MAAa,GAAGpB,GAAY,IAAI,GAAGoB,CAAQ;AAyBxD,SAAA;AAAA,IACL,YAxBiB,MAAM;;AACvB,YAAM,EAAE,WAAA1C,EAAU,IAAId,EAAgB,EAAA,YAAYuD,KAAA,gBAAAA,EAAM,aAAa;AAEjE,UAAA,EAACzC,KAAA,QAAAA,EAAW;AACd;AAGI,YAAAwB,IAAemB,EAAWD,CAAQ;AAExC,MAAAJ,GAAsBZ,GAAYF,GAAcC,IAAWE,IAAAF,EAAU,MAAM,SAAhB,gBAAAE,EAAsB,IAAI,GAErFc,EAAK,OAAO;AAAA,QACV,MAAM;AAAA,QACN,OAAO,cAAcjB,CAAY;AAAA,MACnC;AAAA,IACF;AAAA,IAUE,cARmB,MAAM;AACnB,YAAAA,IAAemB,EAAWD,CAAQ;AAExC,MAAAV,GAAYN,GAAYF,CAAY;AAAA,IACtC;AAAA,EAKA;AACF,GAEMoB,KAAwB,CAACC,GAAYC,OAC9BD,EAAA,QAAQ,CAACE,MAAS;AACrB,QAAAC,IAAeF,EAAW,KAAK,CAACG,MAAUA,EAAM,UAAUF,EAAK,KAAK;AAC1E,EAAIC,KACK,OAAA,OAAOD,GAAMC,CAAY;AAClC,CACD,GACMH,IAGHK,KAAsB,CAAC,EAAE,MAAAT,GAAM,WAAAhB,GAAW,WAAA0B,QAAgB;AAC9D,QAAM,EAAE,SAAAC,EAAA,IAAYlE,EAAA,EAAgB,WAAW;AAEjC,EAAAA,EAAA,EACX,SAAS,EACT,QAAQ;AAAA,IACP,SAAS;AAAA,IACT,OAAO;;AACD,UAAA;AACF,cAAMmE,MAAgBxB,KAAAC,KAAAH,IAAAF,EAAU,UAAV,gBAAAE,EAAiB,SAAjB,gBAAAG,EAAuB,YAAvB,gBAAAD,EAAgC,IAAI,CAAC,EAAE,OAAAyB,GAAO,OAAAC,SAAa,EAAE,OAAAD,GAAO,OAAAC,EAAM,QAAO,CAAC;AAExG,QAAAd,EAAK,MAAM,UAAUG,GAAsBS,GAAeZ,EAAK,MAAM,OAAO,GAE5EW,EAAQ,EAAE,OAAO,gBAAgB,MAAM,IAAI,GACjCD,EAAA;AAAA,cACI;AACd,QAAAjE,EAAA,EAAgB,UAAU;AAAA,UACxB,MAAM;AAAA,UACN,SAAS;AAAA,QAAA,CACV;AAAA,MAAA;AAAA,IAEL;AAAA,IACA,SAAS;;AACF,MAAAuD,EAAA,MAAM,UAAU,CAAC,KAAId,IAAAF,EAAU,MAAM,SAAhB,gBAAAE,EAAsB,YAAW,EAAG,GAE9DyB,EAAQ,EAAE,OAAO,gBAAgB,MAAM,IAAI;AAAA,IAAA;AAAA,EAC7C,CACD;AACL,GAEMI,KAAoB,CAAC,EAAE,MAAAf,GAAM,WAAAhB,GAAW,YAAAC,GAAY,YAAA+B,GAAY,YAAAC,GAAY,WAAAP,QAAgB;;AAChG,MAAI,CAACV,KAAQ,CAACA,EAAK,SAAS,CAACgB;AAC3B;AAIF,GAAA9B,IAAOc,KAAA,gBAAAA,EAAM,UAAb,eAAAd,EAAoB,MAEhBc,EAAK,MAAM,QAAQ,SACrBS,GAAoB,EAAE,MAAAT,GAAM,WAAAhB,GAAW,WAAA0B,EAAA,CAAW,IAE7CV,EAAA,MAAM,UAAU,CAAC,KAAIX,IAAAL,EAAU,MAAM,SAAhB,gBAAAK,EAAsB,YAAW,EAAG;AAGhE,QAAM6B,IAAa;AAAA,IACjB,OAAO;AAAA,MACL,aAAa;AAAA,MACb,UAAU;AAAA,MACV,WAAW,CAAC,IAAI,IAAI,EAAE;AAAA,MACtB,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAAA,EAEZ;AAEA,EAAAlB,EAAK,MAAM,QAAQkB,GAERjC,EAAA,QAAQgC,CAAU,IAAI;AAAA,IAC/B,MAAM;AAAA,IACN,OAAO,YAAYA,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBASZD,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7B;AACF,GAEMG,KAAkB;AAAA,EACtB,UAAU,CAAC,EAAE,MAAAnB,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,GAAY,WAAAyB,QAAgB;;AAC5D,UAAAM,KAAa9B,IAAAF,EAAU,UAAV,gBAAAE,EAAiB,MAC9B+B,IAAa,GAAGpC,GAAY,KAAK,GAAGoB,CAAQ;AAElD,WAAAD,EAAK,MAAM,YAAY;AAAA,MACrB,MAAM;AAAA,MACN,OAAO,eAAeiB,CAAU;AAAA,IAClC,GASO;AAAA,MACL,YARiB,MAAMF,GAAkB,EAAE,MAAAf,GAAM,WAAAhB,GAAW,YAAAC,GAAY,YAAA+B,GAAY,YAAAC,GAAY,WAAAP,GAAW;AAAA,MAS3G,cAPmB,MAAM;AAElB,eAAAzB,EAAW,QAAQgC,CAAU;AAAA,MACtC;AAAA,IAKA;AAAA,EACF;AAAA,EACA,UAAU,CAAC,EAAE,MAAAjB,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,QAAiB;AACvD,UAAMiB,IAAa,CAACD,MAAa,GAAGpB,GAAY,IAAI,GAAGoB,CAAQ;AA0CxD,WAAA;AAAA,MACL,YAzCiB,MAAM;;AACjB,cAAAlB,IAAemB,EAAWD,CAAQ;AAyBlB,QAAAJ,GAAAZ,GAAYF,GAAcC,IAvB5B,CAACc,MAAS;;AAC5B,gBAAMsB,IAAM,CAAC,GACPC,IAAO,CAAC;AACd,cAAIrB,IAAO,MACPsB,IAAI;AAER,eAAKA,IAAI,GAAGA,IAAIxB,EAAK,QAAQwB;AAC3B,YAAAF,EAAItB,EAAKwB,CAAC,EAAE,EAAE,IAAIxB,EAAKwB,CAAC,GACnBxB,EAAAwB,CAAC,EAAE,WAAW,CAAC;AAGtB,eAAKA,IAAI,GAAGA,IAAIxB,EAAK,QAAQwB;AAC3BtB,YAAAA,IAAOF,EAAKwB,CAAC,GACTtB,EAAK,QAAQ,MACfX,KAAAH,IAAAkC,EAAIpB,EAAK,GAAG,MAAZ,gBAAAd,EAAe,aAAf,QAAAG,EAAyB,KAAKW,KAE9BqB,EAAK,KAAKrB,CAAI;AAIX,iBAAAqB;AAAA,QACT,IAEuEnC,IAAAF,EAAU,MAAM,SAAhB,gBAAAE,EAAsB,IAAI,CAAC,GAElGc,EAAK,MAAM,OAAO;AAAA,UAChB,MAAM;AAAA,UACN,OAAO,cAAcjB,CAAY;AAAA,QACnC;AAAA,MACF;AAAA,MAUE,cARmB,MAAM;AACnB,cAAAA,IAAemB,EAAWD,CAAQ;AAExC,QAAAV,GAAYN,GAAYF,CAAY;AAAA,MACtC;AAAA,IAKA;AAAA,EACF;AAAA,EACA,YAAY,CAAC,EAAE,MAAAiB,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,QAAiB;AACzD,UAAMiB,IAAa,CAACD,MAAa,GAAGpB,GAAY,MAAM,GAAGoB,CAAQ;AAmB1D,WAAA;AAAA,MACL,YAlBiB,MAAM;;AACjB,cAAAlB,IAAemB,EAAWD,CAAQ;AAExC,QAAAJ,GAAsBZ,GAAYF,GAAcC,IAAWE,IAAAF,EAAU,MAAM,SAAhB,gBAAAE,EAAsB,IAAI,GAErFc,EAAK,MAAM,UAAU;AAAA,UACnB,MAAM;AAAA,UACN,OAAO,cAAcjB,CAAY;AAAA,QACnC;AAAA,MACF;AAAA,MAUE,cARmB,MAAM;AACnB,cAAAA,IAAemB,EAAWD,CAAQ;AAExC,QAAAV,GAAYN,GAAYF,CAAY;AAAA,MACtC;AAAA,IAKA;AAAA,EAAA;AAEJ,GAEawC,KAAa,CAAC,EAAE,MAAAvB,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,GAAY,WAAAyB,EAClE,MAAAS,GAAgBnB,EAAK,aAAa,IAC9BmB,GAAgBnB,EAAK,aAAa,EAAE,EAAE,MAAAA,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,GAAY,WAAAyB,EAAU,CAAC,IACxFX,GAAuB,EAAE,MAAAC,GAAM,WAAAhB,GAAW,UAAAiB,GAAU,YAAAhB,GAAY,GCtRzDuC,KAAwB,CAACC,MACpChF,IAAgB,QAAQ,IAAI,kCAAkCgF,CAAY,EAAE,GAE/DC,KAAA;AAAA,EACb,YAAY;AAAA,IACV,mBAAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAAA,IAEL,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,YAAY,CAAC,QAAQ,OAAO,MAAM;AAAA,EACpC;AAAA,EACA,MAAMtE,GAAO;AACL,UAAAuE,IAASC,GAAI,IAAI,GAEjBnB,IAAYmB,GAAI,CAAC;AAEvB,IAAIxE,EAAM,cACRmE,GAAsBnE,EAAM,UAAU,EAAE,KAAK,CAACyE,MAAQ;AACpD,MAAAF,EAAO,QAAQE;AAAA,IAAA,CAChB;AAGC,QAAAC;AACJ,IAAAC;AAAA,MACE,MAAM3E,EAAM;AAAA,MACZ,OAAOmD,MAAU;;AACf,YAAIA,GAAO;AACF,UAAAoB,EAAA,QAAQ,MAAMJ,GAAsBhB,CAAK;AAChD,gBAAM,EAAE,WAAAyB,GAAW,SAAAC,EAAQ,IAAI,OAAO,KAAK,aACrClC,IAAOkC,GAAQ9C,KAAAC,KAAAH,IAAA7B,EAAM,WAAN,gBAAA6B,EAAc,aAAd,gBAAAG,EAAyB,OAAzB,gBAAAD,EAA6B,EAAE;AAEpD,UAAIY,MACF+B,IAAUR,GAAW;AAAA,YACnB,WAAWK;AAAA,YACX,MAAA5B;AAAA,YACA,UAAU3C,EAAM,OAAO;AAAA,YACvB,YAAY4E,EAAU;AAAA,YACtB,WAAAvB;AAAA,UAAA,CACD,IAEHqB,KAAA,QAAAA,EAAS,cACCrB,EAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAEJ;AACM,UAAAyB,IAAUC,GAAS,MAAM;AAC7B,YAAM,EAAE,UAAAC,EAAA,IAAahF,EAAM,UAAU,CAAC;AACtC,aAAO,MAAM,QAAQgF,CAAQ,IAAI,CAACA,EAAS,SAAS,CAACA;AAAA,IAAA,CACtD;AAED,WAAAL;AAAA,MACE,MAAMG,EAAQ;AAAA,MACd,CAAC3B,MAAU;;AACT,cAAM,EAAE,WAAAyB,GAAW,SAAAC,EAAQ,IAAI,OAAO,KAAK,aACrCjD,IAAagD,EAAU;AAE7B,YAAIzB;AAEF,cAAIuB;AACF,YAAAA,EAAQ,aAAa;AAAA,eAChB;AACC,kBAAA9B,KAAWf,IAAA7B,EAAM,WAAN,gBAAA6B,EAAc;AAExB,aAAAG,IAAA,OAAA,KAAKJ,EAAW,WAAW,CAAA,CAAE,MAA7B,QAAAI,EAAgC,KAAK,CAACiB,MACvCA,EAAK,SAASL,CAAQ,KACjB,OAAAhB,EAAW,QAAQqB,CAAI,GACvB,MAEF;AAAA,UACR;AAAA,aAEE;AACL,gBAAMN,IAAOkC,GAAQI,KAAAC,KAAAnD,IAAA/B,EAAM,WAAN,gBAAA+B,EAAc,aAAd,gBAAAmD,EAAyB,OAAzB,gBAAAD,EAA6B,EAAE;AACpD,UAAItC,MACF+B,IAAUR,GAAW;AAAA,YACnB,WAAWK;AAAA,YACX,MAAA5B;AAAA,YACA,UAAU3C,EAAM,OAAO;AAAA,YACvB,YAAA4B;AAAA,YACA,WAAAyB;AAAA,UAAA,CACD,GACDqB,EAAQ,WAAW;AAAA,QACrB;AAGF,cAAM,EAAE,SAAApB,EAAA,IAAYlE,EAAA,EAAgB,WAAW;AAE/C,QAAAkE,EAAQ,EAAE,OAAO,gBAAgB,MAAM,IAAI,GACjCD,EAAA;AAAA,MAAA;AAAA,IAEd,GACO,EAAE,QAAAkB,GAAQ,WAAAlB,EAAU;AAAA,EAAA;AAE/B;;;eAlHEzC,GAIYC,GAJIL,KAAG,GAAnB2E,GAIYnE,EAJiB,QAAM,EAAG,KAAKoE,EAAS,UAAA,CAAA,GAAA;AAAA,IADtD,YAEI,MAEO;AAAA,MAFPnE,GAEOD,yBAFP,MAEO;AAAA,QADLqE,GAAyCC,CAAA;AAAA,MAAA,CAAA;AAAA;IAH/C,GAAA;AAAA,EAAA,GAAA,EAAA;;qDCIeC,KAAA;AAAA,EACb,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,MAAMvF,GAAO;AACX,WAAO,MACL;;AAAA,aAAAwF,GAAE,QAAQ,EAAE,OAAO,cAAc;AAAA,QAC/BA,IAAEC,IAAAA,GAASzF,EAAM,UAAfyF,gBAAAA,EAAAA,KAAAA,KAA0B,EAAE,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,EAAG,CAAA,KAAK;AAAA,MAAA,CAC9E;AAAA;AAAA,EAAA;AAEP,oECTeC,KAAA;AAAA,EACb,YAAY;AAAA,IACV,mBAAApB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;;;AAnBE,SAAArD,GAEOD,yBAFP,MAEO;AAAA,IADLqE,GAAyDC,GAF7DxE,GAAAC,GAEgCC,EAAM,MAAA,CAAA,GAAA,MAAA,EAAA;AAAA,EAAA,CAAA;;qDCGvB2E,KAAA;AAAA,EACb,OAAO;AAAA,IACL,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ,GAhBAxE,KAAA,CAAA,KAAA;;eACEb,GAAiC,OAAA;AAAA,IAA3B,KAAKE,EAAA;AAAA,IAAM,OADnBoF,GAC0BpF,EAAK,KAAA;AAAA,EAAA,GAD/B,MAAA,IAAAW,EAAA;;qDCMe0E,KAAA;AAAA,EACb,YAAY;AAAA,IACV,mBAAAvB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EAEV;AAAA,EACA,QAAQ;;AAGN,WAAO,EAAE,SAFMzC,IAAAiE,GAAO,aAAa,MAApB,gBAAAjE,EAAuB,OAEtB;AAAA,EAAA;AAEpB;;;eAtBEjB,GAA8F0E,GAAA;AAAA,IAA1E,aAAY;AAAA,IAAgB,mBAAiBF,EAAA;AAAA,EAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,CAAA;;qDCapDW,KAAA;AAAA,EACb,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,IAAI;AAAA;AAAA,MAEF,MAAM;AAAA,IAAA;AAAA,EAIV;AAAA,EACA,MAAM/F,GAAO;AACL,UAAAgG,IAAgBF,GAAO,gBAAgB,EAA2B,OAClEG,IAASlB,GAAS,MAAM;;AACxB,aAAA,CAAC,MAAM,QAAQiB,CAAY,KAAK,GAACnE,IAAA7B,EAAM,OAAN,QAAA6B,EAAU,QACtC,KAGFmE,EAAa,SAAShG,EAAM,GAAG,IAAI;AAAA,IAAA,CAC3C,GAEKkG,IAAcnB,GAAS,MAAM;;AAC7B,aAAA,CAAC,MAAM,QAAQiB,CAAY,KAAK,GAACnE,IAAA7B,EAAM,OAAN,QAAA6B,EAAU,QACtC,KAGF7B,EAAM,GAAG,SAASgG,EAAaA,EAAa,SAAS,CAAC;AAAA,IAAA,CAC9D;AAEM,WAAA;AAAA,MACL,QAAAC;AAAA,MACA,aAAAC;AAAA,IACF;AAAA,EAAA;AAEJ,GAtDA/E,KAAA,CAAA,4BAAA;;;eACEb,GASI,KAAA;AAAA,IARF,MAAK;AAAA,IACJ,+BAA4BuB,IAAArB,EAAI,OAAJ,gBAAAqB,EAAI;AAAA,IAChC,OAJLtB,GAAA;AAAA,MAAA,CAIqBC,aAAW,GAAG4E,EAAA;AAAA,MAAA,CAAe5E,kBAAgB,GAAG4E,EAAA;AAAA,IAAA,CAAA;AAAA;IAKjEnE,GAAwED,EAAA,QAAA,WAAA;AAAA,MAAjE,MAAMR,EAAA;AAAA,MAAK,UAAU4E,EAAA;AAAA,MAAS,eAAeA,EAAA;AAAA,IAAA,CAAA;AAAA,EATxD,GAAA,IAAAjE,EAAA;;;;;;;;;;;;;oECyBagF,KAAS;AAAA,EACpB,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,YAAYC;AAAA,EACZ,KAAKC;AAAA,EACL,MAAMC;AAAA,EACN,MAAMA;AAAA,EACN,UAAUD;AAAA,EACV,KAAKE;AAAA,EACL,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,mBAAAxC;AAAA,EACA,YAAYyC;AAAA,EACZ,YAAYC;AACd,GACMC,KAAY,CAACC,MAAS;;AACnB,UAAArF,IAAA,OAAO,yBAAP,gBAAAA,EAA8BqF;AACvC,GAEMC,KAAW,CAACD,MAAS;;AAClB,UAAArF,IAAA,OAAO,WAAP,gBAAAA,EAAgBqF;AACzB,GAEME,yBAAgC,IAAoB,GAGpDC,KAAqB,OAAOH,MAAiB;AAC7C,MAAA;AACE,QAAAE,GAA0B,IAAIF,CAAI;AAC7B,aAAA;AAAA;AAAA,QAA0BE,GAA0B,IAAIF,CAAI;AAAA;AAGrE,UAAMI,IAAc,MAAMlI,IAAgB,eAAe8H,CAAI;AAE7D,eAAW,CAACK,GAAUpE,CAAK,KAAK,OAAO,QAAQmE,CAAU,GAAG;AAGtD,UAFsBF,GAAA,IAAIG,GAAUpE,EAAM,OAAO,GAEjD,CAACA,EAAM;AACT;AAIF,YAAMqE,IAAa,SAAS,cAAc,IAAID,CAAQ,EAAE;AAExD,UAAIC;AACF,QAAAA,EAAW,YAAYrE,EAAM;AAAA,WACxB;AACC,cAAAsE,IAAgB,SAAS,cAAc,OAAO;AACpD,QAAAA,EAAc,YAAYtE,EAAM,OAClBsE,EAAA,aAAa,MAAMF,CAAQ,GAChC,SAAA,KAAK,YAAYE,CAAa;AAAA,MAAA;AAAA,IACzC;AAGK,WAAA;AAAA;AAAA,MAA0BL,GAA0B,IAAIF,CAAI;AAAA;AAAA,UACrD;AAEd,WAAO1B,GAAEkC,IAAgB,EAAE,MAAAR,GAAM;AAAA,EAAA;AAErC;AAEA,OAAO,qBAAqBG;AAE5B,MAAMM,KAAoB,CAACT,MAClBU,GAAqB,MAAMP,GAAmBH,CAAI,CAAC,GAI/CW,KAAwB,MAAM;AACf,EAAAT,GAAA,QAAQ,CAACU,GAAGP,MAAa;;AACjD,UAAMC,IAAa,SAAS,cAAc,IAAID,CAAQ,EAAE;AACxD,KAAA1F,IAAA2F,KAAA,gBAAAA,EAAY,WAAZ,QAAA3F,EAAA,KAAA2F;AAAA,EAAqB,CACtB,GAEDJ,GAA0B,MAAM;AAClC,GAEaW,KAAU,CAACb,MAAA;;AAAS,WAAArF,IAAAmG,MAAA,gBAAAA,GAAcd,OAAd,gBAAArF,EAAA,KAAAmG,QAA2B;AAAA,GAE/CC,KAAe,CAACf,MACpBf,GAAOe,CAAI,KAAKD,GAAUC,CAAI,KAAKC,GAASD,CAAI,MAAMgB,GAAUhB,CAAI,IAAIA,IAAOS,GAAkBT,CAAI,IC1GjGiB,KAAmBC,GAA8B,EAAE,GCDnD,EAAE,eAAeC,GAAA,IAAqBC,IAEtCC,KAAQ,CAACC,MAAQ;AACrB,SAAA,KAAKA,CAAG,EAAE,QAAQ,CAACC,MAAQ,OAAOD,EAAIC,CAAG,CAAC;AACnD,GAGaC,KAAQ,IAAIC,MAAS;AAChC,QAAMC,IAAK;AACJ,SAAA,IAAIA,EAAG,GAAGD,CAAI;AACvB,GAEaE,KAAiB,CAACC,GAAMC,MAAS;AACtC,QAAAC,IAAO,OAAO,KAAKF,CAAI,GACvBG,IAAO,IAAI,IAAI,OAAO,KAAKF,CAAI,CAAC;AAE/B,SAAAC,EAAK,OAAO,CAAC/F,MAAS,CAACgG,EAAK,IAAIhG,CAAI,CAAC;AAC9C,GCJMiG,KAAmC,CAAC,GAEpCC,KAAa,CAAC1G,MACXA,KAAQA,EAAK,SAAS,QAGzB2G,KAAW,CAAC3G,MACTA,KAAQA,EAAK,SAAS,UAGzB4G,KAAiB,CAAC5G,MACfA,KAAQA,EAAK,SAAS,gBAGzB6G,KAAe,CAAC7G,MACbA,KAAQA,EAAK,SAAS,cAGzB8G,KAAe,CAAC9G,MACbA,KAAQA,EAAK,SAAS,cAGzB+G,KAAW,CAAC/G,MACT,OAAOA,KAAS,UAGnBgH,KAAU,CAAChH,MACR,MAAM,QAAQA,CAAI,GAGrBiH,KAAa,CAACjH,MACX,OAAOA,KAAS,YAEnBkH,KAAS,CAAClH,OACPA,KAAA,gBAAAA,EAAM,mBAAkB,QAE3BmH,KAAW,CAACnH,MACT,OAAOA,KAAS,UAGZoH,KAAkB,CAACC;;AAC9B,WAAA9H,KAAAH,IAAAiI,KAAA,gBAAAA,EAAW,aAAX,gBAAAjI,EAAqB,WAArB,gBAAAG,EAA6B,UAAS,kBAAgBkD,KAAAnD,IAAA+H,KAAA,gBAAAA,EAAW,aAAX,gBAAA/H,EAAqB,WAArB,gBAAAmD,EAA6B,UAAS;AAAA,GAExF6E,KAAe,CAACC,OACRC,GAAcD,GAAM;AAAA,EAC9B,SAAS;AAAA,IACP;AAAA,MACEE;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EACF;AACF,CACD,EACW,QAAQ,IACjB,QAAQ,6BAA6B,EAAE,EACvC,QAAQ,mCAAmC,yBAAyB,EACpE,QAAQ,uBAAuB,GAAG,EAClC,QAAQ,+BAA+B,IAAI,EAC3C,KAAK,GAGJC,KAAkB,CAAC1H,GAAM2H,GAAOC,GAAKC,IAAQ,OAAU;AACvD,MAAA;AACF,IAAI7H,EAAK,MAAM,QAAQ,WAAW,IAAI,KAChC4H,EAAA,OAAOE,GAAS,OAAO,IAClB9H,EAAK,MAAM,QAAQ,IAAI,IAAI,OAChC4H,EAAA,IAAIE,GAAS,OAAO;AAG1B,UAAMC,IAAaF,IAAQP,GAAatH,EAAK,KAAK,IAAIA,EAAK;AAC3D,WAAOiG,GAAM,UAAU,+BAA+B8B,CAAU,IAAI,EAAE,KAAKH,GAAK;AAAA,MAC9E,GAAGA;AAAA,MACH,GAAGD;AAAA,MACH,WAAWA;AAAA,IAAA,CACZ;AAAA,UACW;AAEZ,WAAKE,IAGE,SAFEH,GAAgB1H,GAAM2H,GAAOC,GAAK,EAAI;AAAA,EAExC;AAEX,GAEMI,KAAY,CAACC,GAAMN,GAAOC,MACvBF;AAAA,EACL;AAAA,IACE,MAAM;AAAA,IACN,OAAO,cAAcO,EAAK,GAAG,MAAM,KAAK,UAAUA,EAAK,MAAM,CAAC;AAAA,EAChE;AAAA,EACAN;AAAA,EACA,EAAE,MAAMG,GAAS,OAAO,GAAG,GAAGF,EAAI;AACpC,GAIIM,KAAsB,CAACC,MAAU;AAE/B,QAAAC,IADW,kDACO,KAAKD,CAAK;AAClC,SAAIC,IACK;AAAA,IACL,MAAMA,EAAO,CAAC,KAAK;AAAA,IACnB,MAAMA,EAAO,CAAC;AAAA,IACd,QAAQA,EAAO,CAAC,EACb,MAAM,GAAG,EACT,IAAI,CAAC5H,MAASA,EAAK,KAAM,CAAA,EACzB,OAAO,CAACA,MAAS,EAAQA,CAAK;AAAA,IACjC,MAAM4H,EAAO,CAAC;AAAA,EAChB,IAEK;AACT,GAGMC,KAAmB,CAACrI,GAAMsI,GAAQV,MAAQ;AAC1C,MAAA;AACI,UAAAW,IAAWjB,GAAatH,EAAK,KAAK,GAClCwI,IAASN,GAAoBK,CAAQ;AAC3C,QAAI,CAACC,EAAc,OAAA,MAAM,uCAAuC;AAEhE,WAAOvC,GAAM,GAAGuC,EAAO,QAAQA,EAAO,IAAI,EAAE,KAAK;AAAA,MAC/C,GAAGZ;AAAA,MACH,cAAApC;AAAA,IAAA,CACD;AAAA,WACMiD,GAAO;AACD,WAAApL,GAAA;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAASoL,KAAA,gBAAAA,EAAO,YAAW;AAAA,IAAA,CAC5B,GAEMxC,GAAM;AAAA,EAAA;AAEjB,GAEayC,KAAa,CAACC,GAASC,MAC3B,IAAIC,MAAS;AAGlB,MAAIT,IAAS;AAGT,MAAA;AACF,IAAAA,IAASO,EAAQ,KAAKC,GAAS,GAAGC,CAAI;AAAA,WAC/BJ,GAAO;AACD,IAAApL,GAAA;AAAA,MACX,MAAM;AAAA,MACN,OAAO,MAAMsL,EAAQ,IAAI;AAAA,MACzB,UAASF,KAAA,gBAAAA,EAAO,YAAW,MAAME,EAAQ,IAAI;AAAA,IAAA,CAC9C;AAAA,EAAA;AAIH,SAAIP,EAAO,QAAQ,OAAOA,EAAO,QAAS,eAC/BA,IAAA,IAAI,QAAQ,CAACU,MAAY;AAChC,IAAAV,EAAO,KAAKU,CAAO,EAAE,MAAM,CAACL,MAAU;AACvB,MAAApL,GAAA;AAAA,QACX,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAASoL,KAAA,gBAAAA,EAAO,YAAW;AAAA,MAAA,CAC5B,GAEOK,EAAA;AAAA,QACN,QAAQ,CAAC,CAAA,CAAE;AAAA,QACX,MAAM,EAAE,OAAO,EAAE;AAAA,MAAA,CAClB;AAAA,IAAA,CACF;AAAA,EAAA,CACF,IAGIV;AACT,GAEIW,KAAkB,CAAC/I,GAAMsI,GAAQV,MAAQ;AACzC,MAAA;AACI,UAAAe,IAAU1C,GAAM,UAAUjG,EAAK,KAAK,EAAE,EAAE,KAAK4H,CAAG,EAAE;AACjD,WAAAc,GAAWC,GAASf,CAAG;AAAA,UAChB;AACP,WAAAS,GAAiBrI,GAAM,MAAM4H,CAAG;AAAA,EAAA;AAE3C,GAEMoB,KAAc,CAAChJ,GAAM2H,GAAOpJ,MACzB,CAAC0K,MAAWC,GAAclJ,EAAK,OAAO,EAAE,GAAG2H,GAAO,GAAGsB,EAAO,GAAGjJ,CAAI;AAG5D,SAAAmJ,GAAUnJ,GAAM2H,GAAOC,GAAK;AACpC,QAAAwB,IAAa3C,GAAU,KAAK,CAACjG,MAASA,EAAK,KAAKR,CAAI,CAAC;AAC3D,SAAOoJ,IAAaA,EAAW,UAAUpJ,GAAM2H,GAAOC,CAAG,IAAI5H;AAC/D;AAEO,MAAMqJ,KAAiB,CAACC,GAAW3B,GAAOC,MAExC0B,KAAa,OAAO,KAAOH,GAAUG,GAAW3B,GAAOC,CAAG,GAGtD2B,KAAgB,CAACC,MAAiE;AAC7F,MAAI,CAACA;AACI;AAET,QAAM,EAAE,MAAAhJ,GAAM,OAAAiJ,GAAO,UAAAC,IAAW,CAAA,EAAO,IAAAF,GACjCG,IAAO,WAAWD,EAAS,CAAC,KAAK,MAAM,WAAWA,EAAS,CAAC,KAAK,OAAO;AAC9E,SAAOzD,GAAM,cAAc0D,CAAI,EAAEnJ,GAAMiJ,CAAK;AAC9C,GAEMG,KAAY,CAAC5J,GAAMsI,GAAQ/J,MACxB+G,GAAQtF,EAAK,MAAM,IAAI,GAG1B6J,KAAqB,CAAC7J,GAAMsI,GAAQV,MACjCuB,GAAUnJ,EAAK,cAAc,MAAM4H,CAAG,GAGzCkC,KAAkB,CAAC9J,GAAM2H,GAAOC,MAAQ;AAC5C,MAAI,CAAC5H;AACI,WAAAA;AAGT,QAAMgC,IAAM,CAAC;AACN,gBAAA,QAAQhC,CAAI,EAAE,QAAQ,CAAC,CAACgG,GAAKtF,CAAK,MAAqB;AAExD,IAAAsF,MAAQ,WAAUtF,KAAA,QAAAA,EAAO,QACvBsB,EAAAgE,CAAG,IAAItF,EAAM,OAEjBsB,EAAIgE,CAAG,IAAImD,GAAUzI,GAAOiH,GAAOC,CAAG;AAAA,EACxC,CACD,GACM5F;AACT,GAEM+H,KAAc,CAAC/J,MACZA,EAAK,KAAK,GAGbgK,KAAa,CAAChK,GAAM2H,GAAOC,MACxB5H,EAAK,IAAI,CAACQ,MAAS2I,GAAU3I,GAAMmH,GAAOC,CAAG,CAAC,GAGjDqC,KAAgB,CAACjK,GAAM2H,GAAOC,MAC3B5H,EAAK,KAAK4H,CAAG;AAGtBnB,GAAU;AAAA,EAEN;AAAA,IACE,MAAMG;AAAA,IACN,WAAWc;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAMhB;AAAA,IACN,WAAWsB;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAMnB;AAAA,IACN,WAAWkC;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAMjC;AAAA,IACN,WAAWY;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAMf;AAAA,IACN,WAAWqC;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAM9B;AAAA,IACN,WAAW0C;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAMxC;AAAA,IACN,WAAWyC;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAM9C;AAAAA,IACN,WAAWgD;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAM/C;AAAA,IACN,WAAWgD;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAM/C;AAAA,IACN,WAAWgD;AAAA,EACb;AAAA,EACA;AAAA,IACE,MAAM9C;AAAA,IACN,WAAW2C;AAAA,EAAA;AAGjB;;;AC9SA,EAAAI,EAAA,aAAqB,IACrBA,EAAQ,UAAaC;AASrB,WAASC,EAAUC,GAAK;AAItB,aAHIC,IAAQD,EAAI,YAAa,GACzBE,IAAM,IACNC,IAAkB,IACb,IAAI,GAAG,IAAI,KAAKF,EAAM,CAAC,MAAM,QAAW,KAAK;AACpD,UAAI/C,IAAO+C,EAAM,WAAW,CAAC,GAEzBG,IAAQlD,KAAQ,MAAMA,KAAQ,OAAOA,KAAQ,MAAMA,KAAQ;AAG/D,UADAiD,IAAkBjD,MAAS,IACvB,CAACkD;AACH;AAEF,MAAAF,KAAOD,EAAM,CAAC;AAAA;AAEhB,QAAIC,EAAI,WAAW,GAGnB;AAAA,UAAIG,IAAY,SAASH,GAAK,EAAE,GAC5BI,IAAcD,KAAa,SAAUA,KAAa;AAItD,aAAIC,KAAeD,MAAc,KAAUA,IAAY,UAC9C,CAAC,KAAUH,EAAI,UAAUC,IAAkB,IAAI,EAAE,IAEnD,CAAC,OAAO,cAAcE,CAAS,GAAGH,EAAI,UAAUC,IAAkB,IAAI,EAAE;AAAA;AAAA;AAEjF,MAAII,IAAkB;AACtB,WAAST,EAAME,GAAK;AAClB,QAAIQ,IAAgBD,EAAgB,KAAKP,CAAG;AAC5C,QAAI,CAACQ;AACH,aAAOR;AAGT,aADIS,IAAM,IACDtJ,IAAI,GAAGA,IAAI6I,EAAI,QAAQ7I,KAAK;AACnC,UAAI6I,EAAI7I,CAAC,MAAM,MAAM;AACnB,YAAIuJ,IAAUX,EAAUC,EAAI,MAAM7I,IAAI,GAAGA,IAAI,CAAC,CAAC;AAC/C,YAAIuJ,MAAY,QAAW;AACzB,UAAAD,KAAOC,EAAQ,CAAC,GAChBvJ,KAAKuJ,EAAQ,CAAC;AACd;AAAA;AAKF,YAAIV,EAAI7I,IAAI,CAAC,MAAM,MAAM;AACvB,UAAAsJ,KAAO,MACPtJ;AACA;AAAA;AAKF,QAAI6I,EAAI,WAAW7I,IAAI,MACrBsJ,KAAOT,EAAI7I,CAAC;AAEd;AAAA;AAEF,MAAAsJ,KAAOT,EAAI7I,CAAC;AAAA;AAEd,WAAOsJ;AAAA;AAET,EAAAE,EAAiB,UAAAd,EAAQ;;;;ACzEzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAae;AACrB,WAASA,EAAQlF,GAAK;AACpB,aAASmF,IAAO,UAAU,QAAQ3N,IAAQ,IAAI,MAAM2N,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AACnG,MAAA5N,EAAM4N,IAAO,CAAC,IAAI,UAAUA,CAAI;AAElC,WAAO5N,EAAM,SAAS,KAAG;AACvB,UAAI6N,IAAO7N,EAAM,MAAO;AACxB,UAAI,CAACwI,EAAIqF,CAAI;AACX;AAEF,MAAArF,IAAMA,EAAIqF,CAAI;AAAA;AAEhB,WAAOrF;AAAA;AAET,EAAAiF,EAAiB,UAAAd,EAAQ;;;;ACfzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAamB;AACrB,WAASA,EAAatF,GAAK;AACzB,aAASmF,IAAO,UAAU,QAAQ3N,IAAQ,IAAI,MAAM2N,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AACnG,MAAA5N,EAAM4N,IAAO,CAAC,IAAI,UAAUA,CAAI;AAElC,WAAO5N,EAAM,SAAS,KAAG;AACvB,UAAI6N,IAAO7N,EAAM,MAAO;AACxB,MAAKwI,EAAIqF,CAAI,MACXrF,EAAIqF,CAAI,IAAI,CAAE,IAEhBrF,IAAMA,EAAIqF,CAAI;AAAA;;AAGlB,EAAAJ,EAAiB,UAAAd,EAAQ;;;;ACdzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAaoB;AACrB,WAASA,EAAcjB,GAAK;AAI1B,aAHIkB,IAAI,IACJC,IAAenB,EAAI,QAAQ,IAAI,GAC/BoB,IAAU,GACPD,KAAgB,KAAG;AACxB,MAAAD,IAAIA,IAAIlB,EAAI,MAAMoB,GAASD,CAAY;AACvC,UAAIE,IAAarB,EAAI,QAAQ,MAAMmB,IAAe,CAAC;AACnD,UAAIE,IAAa;AACf,eAAOH;AAET,MAAAE,IAAUC,IAAa,GACvBF,IAAenB,EAAI,QAAQ,MAAMoB,CAAO;AAAA;AAE1C,WAAAF,IAAIA,IAAIlB,EAAI,MAAMoB,CAAO,GAClBF;AAAA;AAET,EAAAP,EAAiB,UAAAd,EAAQ;;;AClBzByB,GAAO,aAAc;AACRA,GAAA,2BAA2BA,GAAA,UAAsCA,GAAA,eAAG;AACjF,IAAIC,KAASC,GAAuBC,EAAkB;AACtDH,GAAA,QAAgBC,GAAO;AACvB,IAAIG,KAAWF,GAAuBG,EAAoB;AAC1DL,GAAA,UAAkBI,GAAS;AAC3B,IAAIE,KAAgBJ,GAAuBK,EAAyB;AACpEP,GAAA,eAAuBM,GAAc;AACrC,IAAIE,KAAiBN,GAAuBO,EAA0B;AACtET,GAAA,gBAAwBQ,GAAe;AACvC,SAASN,GAAuB9F,GAAK;AAAE,SAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;AAAM;AAAA;ACV/F,EAAAmE,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAImC,IAAQP;AACZ,WAASQ,EAAkBC,GAAQhP,GAAO;AAAE,aAAS,IAAI,GAAG,IAAIA,EAAM,QAAQ,KAAK;AAAE,UAAIiP,IAAajP,EAAM,CAAC;AAAG,MAAAiP,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,MAAIG,IAAY,SAASA,EAAU9G,GAAK+G,GAAQ;AAC9C,QAAI,OAAO/G,KAAQ,YAAYA,MAAQ;AACrC,aAAOA;AAET,QAAIgH,IAAS,IAAIhH,EAAI,YAAa;AAClC,aAASvE,KAAKuE;AACZ,UAAKA,EAAI,eAAevE,CAAC,GAGzB;AAAA,YAAId,IAAQqF,EAAIvE,CAAC,GACbwL,IAAO,OAAOtM;AAClB,QAAIc,MAAM,YAAYwL,MAAS,WACzBF,MACFC,EAAOvL,CAAC,IAAIsL,KAELpM,aAAiB,QAC1BqM,EAAOvL,CAAC,IAAId,EAAM,IAAI,SAAUuM,GAAG;AACjC,iBAAOJ,EAAUI,GAAGF,CAAM;AAAA,QAClC,CAAO,IAEDA,EAAOvL,CAAC,IAAIqL,EAAUnM,GAAOqM,CAAM;AAAA;AAGvC,WAAOA;AAAA,EACR,GACGG,IAAoB,2BAAY;AAClC,aAASA,EAAKC,GAAM;AAClB,MAAIA,MAAS,WACXA,IAAO,CAAE,IAEX,OAAO,OAAO,MAAMA,CAAI,GACxB,KAAK,SAAS,KAAK,UAAU,CAAE,GAC/B,KAAK,OAAO,SAAS,KAAK,OAAO,UAAU,IAC3C,KAAK,OAAO,QAAQ,KAAK,OAAO,SAAS;AAAA;AAE3C,QAAIC,IAASF,EAAK;AAClB,WAAAE,EAAO,SAAS,WAAkB;AAChC,aAAI,KAAK,UACP,KAAK,OAAO,YAAY,IAAI,GAE9B,KAAK,SAAS,QACP;AAAA,IACR,GACDA,EAAO,cAAc,WAAuB;AAC1C,UAAI,KAAK,QAAQ;AACf,iBAAS3D,KAAS;AAChB,eAAK,OAAO,aAAa,MAAM,UAAUA,CAAK,CAAC;AAEjD,aAAK,OAAQ;AAAA;AAEf,aAAO;AAAA,IACR,GACD2D,EAAO,OAAO,WAAgB;AAC5B,aAAO,KAAK,OAAO,GAAG,KAAK,OAAO,MAAM,IAAI,IAAI,CAAC;AAAA,IAClD,GACDA,EAAO,OAAO,WAAgB;AAC5B,aAAO,KAAK,OAAO,GAAG,KAAK,OAAO,MAAM,IAAI,IAAI,CAAC;AAAA,IAClD,GACDA,EAAO,QAAQ,SAAeC,GAAW;AACvC,MAAIA,MAAc,WAChBA,IAAY,CAAE;AAEhB,UAAIN,IAASF,EAAU,IAAI;AAC3B,eAASpI,KAAQ4I;AACf,QAAAN,EAAOtI,CAAI,IAAI4I,EAAU5I,CAAI;AAE/B,aAAOsI;AAAA,OAYTK,EAAO,4BAA4B,SAAmC3I,GAAM/D,GAAO4M,GAAc;AAC/F,MAAK,KAAK,SACR,KAAK,OAAO,CAAE;AAEhB,UAAIC,IAAgB,KAAK9I,CAAI,GACzB+I,IAAkB,KAAK,KAAK/I,CAAI;AACpC,WAAKA,CAAI,IAAI8I,IAAgB7M,GACzB8M,KAAmBF,MAAiB5M,IACtC,KAAK,KAAK+D,CAAI,KAAK+I,KAAmBD,KAAiBD,IAEvD,OAAO,KAAK,KAAK7I,CAAI;AAAA,OAYzB2I,EAAO,uBAAuB,SAA8B3I,GAAM/D,GAAO4M,GAAc;AACrF,MAAK,KAAK,SACR,KAAK,OAAO,CAAE,IAEhB,KAAK7I,CAAI,IAAI/D,GACb,KAAK,KAAK+D,CAAI,IAAI6I;AAAA,OAUpBF,EAAO,2BAA2B,SAAkC3I,GAAM/D,GAAO;AAC/E,WAAK+D,CAAI,IAAI/D,GACT,KAAK,QACP,OAAO,KAAK,KAAK+D,CAAI;AAAA,OASzB2I,EAAO,eAAe,SAAsBK,GAAMC,GAAQ;AACxD,UAAI,KAAK,UAAU,KAAK,OAAO,SAAS,KAAK,OAAO;AAUlD,eATI,OAAK,OAAO,MAAM,OAAOD,KAGzB,KAAK,OAAO,IAAI,OAAOA,KAGvB,KAAK,OAAO,MAAM,SAASA,KAAQ,KAAK,OAAO,MAAM,SAASC,KAG9D,KAAK,OAAO,IAAI,SAASD,KAAQ,KAAK,OAAO,IAAI,SAASC;AAAA,IAMjE,GACDN,EAAO,oBAAoB,SAA2B3I,GAAM;AAC1D,aAAO,KAAK,QAAQ,KAAK,KAAKA,CAAI,KAAK,KAAKA,CAAI;AAAA,IACjD,GACD2I,EAAO,gBAAgB,WAAyB;AAC9C,aAAO,OAAO,KAAK,kBAAkB,OAAO,CAAC;AAAA,IAC9C,GACDA,EAAO,WAAW,WAAoB;AACpC,aAAO,CAAC,KAAK,gBAAgB,KAAK,iBAAiB,KAAK,aAAa,EAAE,KAAK,EAAE;AAAA,IAC/E,GACDX,EAAaS,GAAM,CAAC;AAAA,MAClB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,YAAIS,IAAW,KAAK,QAAQ,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO;AACjE,eAAIA,MAAa,WACfA,IAAW,KAAK,UAAU,KAAK,OAAO,SAEjCA,KAAY;AAAA,MACpB;AAAA,MACD,KAAK,SAAaC,GAAK;AACrB,YAAIvB,EAAM,cAAc,MAAM,QAAQ,QAAQ,GAC9C,KAAK,KAAK,OAAO,SAASuB;AAAA;IAEhC,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,YAAID,IAAW,KAAK,QAAQ,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO;AACjE,eAAIA,MAAa,WACfA,IAAW,KAAK,OAAO,QAElBA,KAAY;AAAA,MACpB;AAAA,MACD,KAAK,SAAaC,GAAK;AACrB,YAAIvB,EAAM,cAAc,MAAM,QAAQ,QAAQ,GAC9C,KAAK,KAAK,OAAO,QAAQuB;AAAA;KAE5B,CAAC,GACKV;AAAA,EACT,EAAG;AACH,EAAAhD,EAAQ,UAAagD,GACrBlC,EAAiB,UAAAd,EAAQ;;;AC7LzB2D,EAAO,aAAc;AACJA,EAAA,YAAcA,EAAA,MAAiBA,EAAA,sBAAsBA,EAAA,OAAeA,EAAA,SAAiBA,EAAA,UAA4BA,EAAA,KAAkBA,EAAA,UAAqBA,EAAA,aAAgBA,EAAA,QAAoBA,EAAA,YAAG;AAChN,IAAIC,KAAM;AACCD,EAAA,MAAGC;AACd,IAAIC,KAAS;AACCF,EAAA,SAAGE;AACjB,IAAIC,KAAW;AACCH,EAAA,WAAGG;AACnB,IAAIC,KAAO;AACCJ,EAAA,OAAGI;AACf,IAAIC,KAAS;AACCL,EAAA,SAAGK;AACjB,IAAIC,KAAU;AACCN,EAAA,UAAGM;AAClB,IAAIC,KAAK;AACCP,EAAA,KAAGO;AACb,IAAIC,KAAU;AACCR,EAAA,UAAGQ;AAClB,IAAIC,KAAa;AACCT,EAAA,aAAGS;AACrB,IAAIC,KAAQ;AACCV,EAAA,QAAGU;AAChB,IAAIC,KAAY;AACCX,EAAA,YAAGW;AACpB,IAAIC,KAAY;AAChBZ,EAAA,YAAoBY;AAAA;ACzBpB,EAAAvE,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChD+B,IAAQc,EAAwB3C,CAAkB;AACtD,WAAS4C,EAAyBC,GAAa;AAAE,QAAI,OAAO,WAAY,WAAY,QAAO;AAAM,QAAIC,IAAoB,oBAAI,QAAO,GAAQC,IAAmB,oBAAI,QAAS;AAAE,YAAQH,IAA2B,SAAkCC,GAAa;AAAE,aAAOA,IAAcE,IAAmBD;AAAA,IAAoB,GAAED,CAAW;AAAA,EAAE;AAC7U,WAASF,EAAwB5I,GAAK8I,GAAa;AAAE,QAAoB9I,KAAOA,EAAI;AAAc,aAAOA;AAAO,QAAIA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAAc,aAAO,EAAE,SAAWA;AAAS,QAAIiJ,IAAQJ,EAAyBC,CAAW;AAAG,QAAIG,KAASA,EAAM,IAAIjJ,CAAG;AAAK,aAAOiJ,EAAM,IAAIjJ,CAAG;AAAK,QAAIkJ,IAAS,CAAE,GAAMC,IAAwB,OAAO,kBAAkB,OAAO;AAA0B,aAASlJ,KAAOD;AAAO,UAAIC,MAAQ,aAAa,OAAO,UAAU,eAAe,KAAKD,GAAKC,CAAG,GAAG;AAAE,YAAImJ,IAAOD,IAAwB,OAAO,yBAAyBnJ,GAAKC,CAAG,IAAI;AAAM,QAAImJ,MAASA,EAAK,OAAOA,EAAK,OAAQ,OAAO,eAAeF,GAAQjJ,GAAKmJ,CAAI,IAAYF,EAAOjJ,CAAG,IAAID,EAAIC,CAAG;AAAA,MAAM;AAAG,WAAAiJ,EAAO,UAAalJ,GAASiJ,KAASA,EAAM,IAAIjJ,GAAKkJ,CAAM,GAAYA;AAAA,EAAO;AACvyB,WAASpD,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASqJ,EAAgC,GAAGC,GAAgB;AAAE,QAAIC,IAAK,OAAO,SAAW,OAAe,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,QAAIA,EAAI,SAAQA,IAAKA,EAAG,KAAK,CAAC,GAAG,KAAK,KAAKA,CAAE;AAAG,QAAI,MAAM,QAAQ,CAAC,MAAMA,IAAKC,EAA4B,CAAC,MAAMF,GAAqD;AAAE,MAAIC,MAAI,IAAIA;AAAI,UAAI9N,IAAI;AAAG,aAAO,WAAY;AAAE,eAAIA,KAAK,EAAE,SAAe,EAAE,MAAM,GAAI,IAAW,EAAE,MAAM,IAAO,OAAO,EAAEA,GAAG,EAAC;AAAA,MAAG;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU;AAAA,mFAAuI;AAAA,EAAE;AAC1lB,WAAS+N,EAA4B,GAAGC,GAAQ;AAAE,QAAK,GAAW;AAAA,UAAI,OAAO,KAAM,SAAU,QAAOC,EAAkB,GAAGD,CAAM;AAAG,UAAIE,IAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAgE,UAAzDA,MAAM,YAAY,EAAE,gBAAaA,IAAI,EAAE,YAAY,OAAUA,MAAM,SAASA,MAAM,MAAO,QAAO,MAAM,KAAK,CAAC;AAAG,UAAIA,MAAM,eAAe,2CAA2C,KAAKA,CAAC,EAAG,QAAOD,EAAkB,GAAGD,CAAM;AAAA;AAAA,EAAE;AAC9Z,WAASC,EAAkBE,GAAKC,GAAK;AAAE,KAAIA,KAAO,QAAQA,IAAMD,EAAI,YAAQC,IAAMD,EAAI;AAAQ,aAASnO,IAAI,GAAGqO,IAAO,IAAI,MAAMD,CAAG,GAAGpO,IAAIoO,GAAKpO;AAAO,MAAAqO,EAAKrO,CAAC,IAAImO,EAAInO,CAAC;AAAK,WAAOqO;AAAA,EAAK;AACrL,WAASvD,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,WAASoD,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgB,GAAGC,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgB,GAAGC,CAAC;AAAA,EAAE;AACtM,MAAIE,IAAyB,yBAAUC,GAAO;AAC5C,IAAAP,EAAeM,GAAWC,CAAK;AAC/B,aAASD,EAAUjD,GAAM;AACvB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAC7BmD,EAAM,UACTA,EAAM,QAAQ,CAAE,IAEXA;AAAA;AAET,QAAIlD,IAASgD,EAAU;AACvB,WAAAhD,EAAO,SAAS,SAAgBmD,GAAU;AACxC,aAAAA,EAAS,SAAS,MAClB,KAAK,MAAM,KAAKA,CAAQ,GACjB;AAAA,IACR,GACDnD,EAAO,UAAU,SAAiBmD,GAAU;AAC1C,MAAAA,EAAS,SAAS,MAClB,KAAK,MAAM,QAAQA,CAAQ;AAC3B,eAASC,KAAM,KAAK;AAClB,aAAK,QAAQA,CAAE;AAEjB,aAAO;AAAA,IACR,GACDpD,EAAO,KAAK,SAAY3D,GAAO;AAC7B,aAAO,KAAK,MAAMA,CAAK;AAAA,IACxB,GACD2D,EAAO,QAAQ,SAAeqD,GAAO;AACnC,aAAI,OAAOA,KAAU,WACZA,IAEF,KAAK,MAAM,QAAQA,CAAK;AAAA,IAChC,GACDrD,EAAO,cAAc,SAAqBqD,GAAO;AAC/C,MAAAA,IAAQ,KAAK,MAAMA,CAAK,GACxB,KAAK,GAAGA,CAAK,EAAE,SAAS,QACxB,KAAK,MAAM,OAAOA,GAAO,CAAC;AAC1B,UAAIhH;AACJ,eAAS+G,KAAM,KAAK;AAClB,QAAA/G,IAAQ,KAAK,QAAQ+G,CAAE,GACnB/G,KAASgH,MACX,KAAK,QAAQD,CAAE,IAAI/G,IAAQ;AAG/B,aAAO;AAAA,IACR,GACD2D,EAAO,YAAY,WAAqB;AACtC,eAASsD,IAAYtB,EAAgC,KAAK,KAAK,GAAGuB,GAAO,EAAEA,IAAQD,EAAS,GAAI,QAAO;AACrG,YAAIxQ,IAAOyQ,EAAM;AACjB,QAAAzQ,EAAK,SAAS;AAAA;AAEhB,kBAAK,QAAQ,CAAE,GACR;AAAA,IACR,GACDkN,EAAO,QAAQ,WAAiB;AAC9B,aAAO,KAAK,UAAW;AAAA,IACxB,GACDA,EAAO,cAAc,SAAqBwD,GAASC,GAAS;AAC1D,UAAIC;AACJ,MAAAD,EAAQ,SAAS;AAGjB,eAFIE,IAAW,KAAK,MAAMH,CAAO,GAC7BI,IAAY,CAAE,GACTxP,IAAI,GAAGA,IAAI,UAAU,QAAQA;AACpC,QAAAwP,EAAU,KAAK,UAAUxP,CAAC,CAAC;AAE7B,OAACsP,IAAc,KAAK,OAAO,OAAO,MAAMA,GAAa,CAACC,IAAW,GAAG,GAAGF,CAAO,EAAE,OAAOG,CAAS,CAAC,GACjGH,EAAQ,SAAS;AACjB,UAAIpH;AACJ,eAAS+G,KAAM,KAAK;AAClB,QAAA/G,IAAQ,KAAK,QAAQ+G,CAAE,GACnBO,IAAWtH,MACb,KAAK,QAAQ+G,CAAE,IAAI/G,IAAQ,UAAU,SAAS;AAGlD,aAAO;AAAA,IACR,GACD2D,EAAO,eAAe,SAAsBwD,GAASC,GAAS;AAC5D,UAAII;AACJ,MAAAJ,EAAQ,SAAS;AAGjB,eAFIE,IAAW,KAAK,MAAMH,CAAO,GAC7BI,IAAY,CAAE,GACTxP,IAAI,GAAGA,IAAI,UAAU,QAAQA;AACpC,QAAAwP,EAAU,KAAK,UAAUxP,CAAC,CAAC;AAE7B,OAACyP,IAAe,KAAK,OAAO,OAAO,MAAMA,GAAc,CAACF,GAAU,GAAGF,CAAO,EAAE,OAAOG,CAAS,CAAC,GAC/FH,EAAQ,SAAS;AACjB,UAAIpH;AACJ,eAAS+G,KAAM,KAAK;AAClB,QAAA/G,IAAQ,KAAK,QAAQ+G,CAAE,GACnB/G,KAASsH,MACX,KAAK,QAAQP,CAAE,IAAI/G,IAAQ,UAAU,SAAS;AAGlD,aAAO;AAAA,IACR,GACD2D,EAAO,uBAAuB,SAA8BK,GAAMyD,GAAK;AACrE,UAAIC,IAAQ;AACZ,kBAAK,KAAK,SAAUjR,GAAM;AACxB,YAAIA,EAAK,YAAY;AACnB,cAAIkR,IAAalR,EAAK,WAAWuN,GAAMyD,CAAG;AAC1C,cAAIE;AACF,mBAAAD,IAAQC,GACD;AAAA,QAEV,WAAUlR,EAAK,aAAauN,GAAMyD,CAAG;AACpC,iBAAAC,IAAQjR,GACD;AAAA,MAEf,CAAK,GACMiR;AAAA,OAgBT/D,EAAO,aAAa,SAAoBK,GAAMyD,GAAK;AACjD,UAAI,KAAK,aAAazD,GAAMyD,CAAG;AAC7B,eAAO,KAAK,qBAAqBzD,GAAMyD,CAAG,KAAK;AAAA,IAIlD,GACD9D,EAAO,oBAAoB,WAA6B;AACtD,MAAI,KAAK,QAAQ,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO,QACpD,KAAK,SAAS,KAAK,UAAU,CAAE,GAC/B,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,CAAE,GACvC,OAAO,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,OAAO,GAAG;AAAA,IAEtD,GACDA,EAAO,OAAO,SAAciE,GAAU;AACpC,MAAK,KAAK,aACR,KAAK,WAAW,IAEb,KAAK,YACR,KAAK,UAAU,CAAE,IAEnB,KAAK;AACL,UAAIb,IAAK,KAAK;AAEd,UADA,KAAK,QAAQA,CAAE,IAAI,GACf,EAAC,KAAK,QAIV;AAAA,iBADI/G,GAAOrB,GACJ,KAAK,QAAQoI,CAAE,IAAI,KAAK,WAC7B/G,IAAQ,KAAK,QAAQ+G,CAAE,GACvBpI,IAASiJ,EAAS,KAAK,GAAG5H,CAAK,GAAGA,CAAK,GACnCrB,MAAW;AAGf,eAAK,QAAQoI,CAAE,KAAK;AAGtB,YADA,OAAO,KAAK,QAAQA,CAAE,GAClBpI,MAAW;AACb,iBAAO;AAAA;AAAA,IAEV,GACDgF,EAAO,OAAO,SAAciE,GAAU;AACpC,aAAO,KAAK,KAAK,SAAUnR,GAAMsB,GAAG;AAClC,YAAI4G,IAASiJ,EAASnR,GAAMsB,CAAC;AAI7B,YAHI4G,MAAW,MAASlI,EAAK,WAC3BkI,IAASlI,EAAK,KAAKmR,CAAQ,IAEzBjJ,MAAW;AACb,iBAAO;AAAA,MAEf,CAAK;AAAA,IACF,GACDgF,EAAO,iBAAiB,SAAwBiE,GAAU;AACxD,UAAIC,IAAS;AACb,aAAO,KAAK,KAAK,SAAUf,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKC,GAAQf,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,cAAc,SAAqBiE,GAAU;AAClD,UAAIE,IAAS;AACb,aAAO,KAAK,KAAK,SAAUhB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKE,GAAQhB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,kBAAkB,SAAyBiE,GAAU;AAC1D,UAAIG,IAAS;AACb,aAAO,KAAK,KAAK,SAAUjB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKG,GAAQjB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,eAAe,SAAsBiE,GAAU;AACpD,UAAII,IAAS;AACb,aAAO,KAAK,KAAK,SAAUlB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKI,GAAQlB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,UAAU,SAAiBiE,GAAU;AAC1C,UAAIK,IAAS;AACb,aAAO,KAAK,KAAK,SAAUnB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKK,GAAQnB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,cAAc,SAAqBiE,GAAU;AAClD,UAAIM,IAAS;AACb,aAAO,KAAK,KAAK,SAAUpB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKM,GAAQpB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,cAAc,SAAqBiE,GAAU;AAClD,UAAIO,IAAS;AACb,aAAO,KAAK,KAAK,SAAUrB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKO,GAAQrB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,WAAW,SAAkBiE,GAAU;AAC5C,UAAIQ,IAAS;AACb,aAAO,KAAK,KAAK,SAAUtB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKQ,GAAQtB,CAAQ;AAAA,MAE7C,CAAK;AAAA,IACF,GACDnD,EAAO,iBAAiB,SAAwBiE,GAAU;AACxD,UAAIS,IAAU;AACd,aAAO,KAAK,KAAK,SAAUvB,GAAU;AACnC,YAAIA,EAAS,SAAS1C,EAAM;AAC1B,iBAAOwD,EAAS,KAAKS,GAASvB,CAAQ;AAAA,MAE9C,CAAK;AAAA,IACF,GACDnD,EAAO,QAAQ,SAAeiE,GAAU;AACtC,UAAIU,IAAU,MACVC,IAAU,CAAE;AAChB,aAAO,KAAK,OAAO,SAAUC,GAAM/R,GAAMuJ,GAAO;AAC9C,YAAIyI,IAAQb,EAAS,KAAKU,GAAS7R,CAAI;AACvC,eAAA8R,EAAQ,KAAK9R,CAAI,GACbgS,KACFD,EAAK,KAAKD,CAAO,GACjBA,IAAU,CAAE,KACHvI,MAAUsI,EAAQ,SAAS,KACpCE,EAAK,KAAKD,CAAO,GAEZC;AAAA,MACR,GAAE,EAAE;AAAA,IACN,GACD7E,EAAO,MAAM,SAAaiE,GAAU;AAClC,aAAO,KAAK,MAAM,IAAIA,CAAQ;AAAA,IAC/B,GACDjE,EAAO,SAAS,SAAgBiE,GAAUY,GAAM;AAC9C,aAAO,KAAK,MAAM,OAAOZ,GAAUY,CAAI;AAAA,IACxC,GACD7E,EAAO,QAAQ,SAAeiE,GAAU;AACtC,aAAO,KAAK,MAAM,MAAMA,CAAQ;AAAA,IACjC,GACDjE,EAAO,OAAO,SAAciE,GAAU;AACpC,aAAO,KAAK,MAAM,KAAKA,CAAQ;AAAA,IAChC,GACDjE,EAAO,SAAS,SAAgBiE,GAAU;AACxC,aAAO,KAAK,MAAM,OAAOA,CAAQ;AAAA,IAClC,GACDjE,EAAO,OAAO,SAAciE,GAAU;AACpC,aAAO,KAAK,MAAM,KAAKA,CAAQ;AAAA,IAChC,GACDjE,EAAO,WAAW,WAAoB;AACpC,aAAO,KAAK,IAAI,MAAM,EAAE,KAAK,EAAE;AAAA,IAChC,GACDX,EAAa2D,GAAW,CAAC;AAAA,MACvB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,GAAG,CAAC;AAAA;IAEtB,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,GAAG,KAAK,SAAS,CAAC;AAAA;IAEpC,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,MAAM;AAAA;KAErB,CAAC,GACKA;AAAA,EACT,EAAE1B,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAakG,GACrBpF,EAAiB,UAAAd,EAAQ;;;;AC9TzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIiI,IAAatG,EAAuBC,EAAsB,GAC1DsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASuG,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,WAASoD,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAImC,IAAoB,yBAAUC,GAAY;AAC5C,IAAAxC,EAAeuC,GAAMC,CAAU;AAC/B,aAASD,EAAKlF,GAAM;AAClB,UAAImD;AACJ,aAAAA,IAAQgC,EAAW,KAAK,MAAMnF,CAAI,KAAK,MACvCmD,EAAM,OAAO8B,EAAO,MACb9B;AAAA;AAET,QAAIlD,IAASiF,EAAK;AAClB,WAAAjF,EAAO,WAAW,WAAoB;AACpC,UAAI/C,IAAM,KAAK,OAAO,SAAU4H,GAAM1B,GAAU;AAC9C,eAAA0B,EAAK,KAAK,OAAO1B,CAAQ,CAAC,GACnB0B;AAAA,SACN,CAAE,CAAA,EAAE,KAAK,GAAG;AACf,aAAO,KAAK,gBAAgB5H,IAAM,MAAMA;AAAA,IACzC,GACD+C,EAAO,QAAQ,SAAemF,GAASjV,GAAS;AAC9C,aAAI,KAAK,SACA,KAAK,OAAOiV,GAASjV,CAAO,IAE5B,IAAI,MAAMiV,CAAO;AAAA,IAE3B,GACD9F,EAAa4F,GAAM,CAAC;AAAA,MAClB,KAAK;AAAA,MACL,KAAK,SAAapQ,GAAS;AACzB,aAAK,SAASA;AAAA;KAEjB,CAAC,GACKoQ;AAAA,EACT,EAAEF,EAAW,OAAU;AACvB,EAAAjI,EAAQ,UAAamI,GACrBrH,EAAiB,UAAAd,EAAQ;;;;ACzCzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIiI,IAAatG,EAAuBC,EAAsB,GAC1DsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIsC,IAAwB,yBAAUF,GAAY;AAChD,IAAAxC,EAAe0C,GAAUF,CAAU;AACnC,aAASE,EAASrF,GAAM;AACtB,UAAImD;AACJ,aAAAA,IAAQgC,EAAW,KAAK,MAAMnF,CAAI,KAAK,MACvCmD,EAAM,OAAO8B,EAAO,UACb9B;AAAA;AAET,WAAOkC;AAAA,EACT,EAAEL,EAAW,OAAU;AACvB,EAAAjI,EAAQ,UAAasI,GACrBxH,EAAiB,UAAAd,EAAQ;;;;ACjBzB,IAAIuI,KAAS,CAAE,GACXC,KAAiBD,GAAO,gBACxBE,KAAQ,SAAerV,GAASsV,GAAU;AAC7C,MAAI,CAACtV;AACJ,WAAOsV;AAER,MAAIxK,IAAS,CAAE;AACf,WAASpC,KAAO4M;AAGf,IAAAxK,EAAOpC,CAAG,IAAI0M,GAAe,KAAKpV,GAAS0I,CAAG,IAAI1I,EAAQ0I,CAAG,IAAI4M,EAAS5M,CAAG;AAE9E,SAAOoC;AACR,GAEIyK,KAAuB,0BACvBC,KAAoB,2BAEpBC,KAAuB,qDAGvBC,KAAS,SAASA,EAAOC,GAAQ3V,GAAS;AAC7C,EAAAA,IAAUqV,GAAMrV,GAAS0V,EAAO,OAAO,GACnC1V,EAAQ,UAAU,YAAYA,EAAQ,UAAU,aACnDA,EAAQ,SAAS;AASlB,WAPI4V,IAAQ5V,EAAQ,UAAU,WAAW,MAAM,KAC3C6V,IAAe7V,EAAQ,cAEvB8V,IAAYH,EAAO,OAAO,CAAC,GAC3BI,IAAS,IACTC,IAAU,GACVC,IAASN,EAAO,QACbK,IAAUC,KAAQ;AACxB,QAAIC,IAAYP,EAAO,OAAOK,GAAS,GACnC5I,IAAY8I,EAAU,WAAY,GAClC9S,IAAQ;AAEZ,QAAIgK,IAAY,MAAQA,IAAY,KAAM;AACzC,UAAIA,KAAa,SAAUA,KAAa,SAAU4I,IAAUC,GAAQ;AAEnE,YAAIE,IAAQR,EAAO,WAAWK,GAAS;AACvC,SAAKG,IAAQ,UAAW,QAEvB/I,MAAcA,IAAY,SAAU,OAAO+I,IAAQ,QAAS,QAI5DH;AAAA,MAEL;AACG,MAAA5S,IAAQ,OAAOgK,EAAU,SAAS,EAAE,EAAE,YAAW,IAAK;AAAA,IACzD;AACG,MAAIpN,EAAQ,mBACPuV,GAAqB,KAAKW,CAAS,IACtC9S,IAAQ,OAAO8S,IAEf9S,IAAQ,OAAOgK,EAAU,SAAS,EAAE,EAAE,YAAW,IAAK,MAE7C,iBAAiB,KAAK8I,CAAS,IACzC9S,IAAQ,OAAOgK,EAAU,SAAS,EAAE,EAAE,YAAW,IAAK,MAC5C8I,KAAa,QAAQ,CAACL,MAAiBK,KAAa,OAAON,KAASM,KAAaA,KAAa,OAAQN,KAASM,MAAcL,KAAgBL,GAAkB,KAAKU,CAAS,IACvL9S,IAAQ,OAAO8S,IAEf9S,IAAQ8S;AAGV,IAAAH,KAAU3S;AAAA,EACZ;AAsBC,SApBIyS,MACC,UAAU,KAAKE,CAAM,IACxBA,IAAS,QAAQA,EAAO,MAAM,CAAC,IACrB,KAAK,KAAKD,CAAS,MAC7BC,IAAS,QAAQD,IAAY,MAAMC,EAAO,MAAM,CAAC,KAOnDA,IAASA,EAAO,QAAQN,IAAsB,SAAUW,GAAIC,GAAIC,GAAI;AACnE,WAAID,KAAMA,EAAG,SAAS,IAEdD,KAGAC,KAAM,MAAMC;AAAA,EACtB,CAAE,GAEG,CAACT,KAAgB7V,EAAQ,OACrB4V,IAAQG,IAASH,IAElBG;AACR;AAGAL,GAAO,UAAU;AAAA,EAChB,kBAAoB;AAAA,EACpB,cAAgB;AAAA,EAChB,QAAU;AAAA,EACV,MAAQ;AACT;AAEAA,GAAO,UAAU;AAEjB,IAAAa,KAAiBb;AAAA;AC3GjB,EAAA9I,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAI4J,IAAUjI,EAAuBC,EAAiB,GAClDO,IAAQL,IACR0C,IAAQ7C,EAAuBK,EAAiB,GAChDkG,IAAShG;AACb,WAASP,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASuG,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,WAASoD,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyB,GAAGC,GAAG;AAAE,eAAE,YAAYA,GAAU;AAAA,IAAE,GAAWD,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAI6D,IAAyB,yBAAU1D,GAAO;AAC5C,IAAAP,EAAeiE,GAAW1D,CAAK;AAC/B,aAAS0D,EAAU5G,GAAM;AACvB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,OACpB9B,EAAM,eAAe,IACdA;AAAA;AAET,QAAIlD,IAAS2G,EAAU;AACvB,WAAA3G,EAAO,gBAAgB,WAAyB;AAC9C,aAAO,MAAMiD,EAAM,UAAU,cAAc,KAAK,IAAI;AAAA,IACrD,GACD5D,EAAasH,GAAW,CAAC;AAAA,MACvB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA,MACb;AAAA,MACD,KAAK,SAAaC,GAAG;AACnB,YAAI,KAAK,cAAc;AACrB,cAAIC,QAAcH,EAAQ,SAAYE,GAAG;AAAA,YACvC,cAAc;AAAA,UACxB,CAAS;AACD,UAAIC,MAAYD,SACV3H,EAAM,cAAc,MAAM,MAAM,GACpC,KAAK,KAAK,QAAQ4H,KACT,KAAK,QACd,OAAO,KAAK,KAAK;AAAA;AAGrB,aAAK,SAASD;AAAA;KAEjB,CAAC,GACKD;AAAA,EACT,EAAErF,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAa6J,GACrB/I,EAAiB,UAAAd,EAAQ;;;;AC/CzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChDsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIgE,IAAuB,yBAAU7D,GAAO;AAC1C,IAAAP,EAAeoE,GAAS7D,CAAK;AAC7B,aAAS6D,EAAQ/G,GAAM;AACrB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,SACb9B;AAAA;AAET,WAAO4D;AAAA,EACT,EAAExF,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAagK,GACrBlJ,EAAiB,UAAAd,EAAQ;;;;AClBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChDsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAI9B,IAAkB,yBAAUiC,GAAO;AACrC,IAAAP,EAAe1B,GAAIiC,CAAK;AACxB,aAASjC,EAAGjB,GAAM;AAChB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,IACb9B;AAAA;AAET,QAAIlD,IAASgB,EAAG;AAChB,WAAAhB,EAAO,gBAAgB,WAAyB;AAC9C,aAAO,MAAMiD,EAAM,UAAU,cAAc,KAAK,IAAI;AAAA,IACrD,GACMjC;AAAA,EACT,EAAEM,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAakE,GACrBpD,EAAiB,UAAAd,EAAQ;;;;ACtBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAI4J,IAAUjI,EAAuBC,EAAiB,GAClDO,IAAQL,IACR0C,IAAQ7C,EAAuBK,EAAiB;AACpD,WAASL,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASuG,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,WAASoD,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIiE,IAAyB,yBAAU9D,GAAO;AAC5C,IAAAP,EAAeqE,GAAW9D,CAAK;AAC/B,aAAS8D,IAAY;AACnB,aAAO9D,EAAM,MAAM,MAAM,SAAS,KAAK;AAAA;AAEzC,QAAIjD,IAAS+G,EAAU;AACvB,WAAA/G,EAAO,gBAAgB,SAAuB1M,GAAO;AACnD,aAAI,KAAK,YACA,KAAK,kBAAkB,MAAMA,IAE7BA;AAAA,IAEV,GACD0M,EAAO,gBAAgB,WAAyB;AAC9C,aAAO,KAAK,cAAciD,EAAM,UAAU,cAAc,KAAK,IAAI,CAAC;AAAA,IACnE,GACD5D,EAAa0H,GAAW,CAAC;AAAA,MACvB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA,MACb;AAAA,MACD,KAAK,SAAaC,GAAW;AAC3B,YAAIA,MAAc,MAAQA,MAAc,OAAOA,MAAc,KAAK;AAChE,eAAK,aAAaA,GACd,KAAK,QACP,OAAO,KAAK,KAAK;AAEnB;AAAA;AAEF,YAAIH,QAAcH,EAAQ,SAAYM,GAAW;AAAA,UAC/C,cAAc;AAAA,QACtB,CAAO;AACD,aAAK,aAAaA,GACdH,MAAYG,SACV/H,EAAM,cAAc,MAAM,MAAM,GACpC,KAAK,KAAK,YAAY4H,KACb,KAAK,QACd,OAAO,KAAK,KAAK;AAAA;IAGzB,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA,MACb;AAAA,MACD,KAAK,SAAaG,GAAW;AAC3B,aAAK,YAAYA;AAAA;IAEvB,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,YAAI,KAAK,WAAW;AAClB,cAAIC,IAAK,KAAK,kBAAkB,WAAW;AAC3C,iBAAIA,MAAO,KACF,KAEAA;AAAA,QAEjB;AACQ,iBAAO;AAAA;KAGZ,CAAC,GACKF;AAAA,EACT,EAAEzF,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAaiK,GAErBnJ,EAAiB,UAAAd,EAAQ;;;;AC7EzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIoK,IAAazI,EAAuBC,EAAsB,GAC1DsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIqE,IAAmB,yBAAUC,GAAY;AAC3C,IAAA1E,EAAeyE,GAAKC,CAAU;AAC9B,aAASD,EAAIpH,GAAM;AACjB,UAAImD;AACJ,aAAAA,IAAQkE,EAAW,KAAK,MAAMrH,CAAI,KAAK,MACvCmD,EAAM,OAAO8B,EAAO,KACb9B;AAAA;AAET,WAAOiE;AAAA,EACT,EAAED,EAAW,OAAU;AACvB,EAAApK,EAAQ,UAAaqK,GACrBvJ,EAAiB,UAAAd,EAAQ;;;;AClBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChDsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIuE,IAAsB,yBAAUpE,GAAO;AACzC,IAAAP,EAAe2E,GAAQpE,CAAK;AAC5B,aAASoE,EAAOtH,GAAM;AACpB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,QACb9B;AAAA;AAET,WAAOmE;AAAA,EACT,EAAE/F,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAauK,GACrBzJ,EAAiB,UAAAd,EAAQ;;;;AClBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIiI,IAAatG,EAAuBC,EAAsB,GAC1DsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIwE,IAAsB,yBAAUpC,GAAY;AAC9C,IAAAxC,EAAe4E,GAAQpC,CAAU;AACjC,aAASoC,EAAOvH,GAAM;AACpB,UAAImD;AACJ,aAAAA,IAAQgC,EAAW,KAAK,MAAMnF,CAAI,KAAK,MACvCmD,EAAM,OAAO8B,EAAO,QACb9B;AAAA;AAET,QAAIlD,IAASsH,EAAO;AACpB,WAAAtH,EAAO,WAAW,WAAoB;AACpC,UAAIuH,IAAS,KAAK,SAAS,MAAM,KAAK,IAAI,MAAM,EAAE,KAAK,GAAG,IAAI,MAAM;AACpE,aAAO,CAAC,KAAK,gBAAgB,KAAK,kBAAkB,OAAO,GAAGA,GAAQ,KAAK,aAAa,EAAE,KAAK,EAAE;AAAA,IAClG,GACMD;AAAA,EACT,EAAEvC,EAAW,OAAU;AACvB,EAAAjI,EAAQ,UAAawK,GACrB1J,EAAiB,UAAAd,EAAQ;;8BCpBzB0K,KAAiBC;AAoBjB,SAASA,GAAWC,GAAIC,GAAK;AAC3B,MAAIC,GAAO,eAAe;AACxB,WAAOF;AAGT,MAAIG,IAAS;AACb,WAASC,IAAa;AACpB,QAAI,CAACD,GAAQ;AACX,UAAID,GAAO,kBAAkB;AAC3B,cAAM,IAAI,MAAMD,CAAG;AACd,MAAIC,GAAO,kBAAkB,IAClC,QAAQ,MAAMD,CAAG,IAEjB,QAAQ,KAAKA,CAAG,GAElBE,IAAS;AAAA,IACf;AACI,WAAOH,EAAG,MAAM,MAAM,SAAS;AAAA,EACnC;AAEE,SAAOI;AACT;AAUA,SAASF,GAAQvQ,GAAM;AAErB,MAAI;AACF,QAAI,CAAC0Q,GAAO,aAAc,QAAO;AAAA,EAClC,QAAW;AACV,WAAO;AAAA,EACX;AACE,MAAIC,IAAMD,GAAO,aAAa1Q,CAAI;AAClC,SAAY2Q,KAAR,OAAoB,KACjB,OAAOA,CAAG,EAAE,YAAa,MAAK;AACvC;AAAA;AChEA,EAAAlL,EAAA,aAAqB,IACrBA,EAAQ,UAAa,QACrBA,EAAA,gBAAwBmL;AACxB,MAAIvB,IAAUjI,EAAuBC,EAAiB,GAClDF,IAASC,EAAuBG,EAAwB,GACxDsI,IAAazI,EAAuBK,EAAsB,GAC1DkG,IAAShG,GACTkJ;AACJ,WAASzJ,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASuG,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,WAASoD,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAI2E,IAAYU,IACZC,IAAoB,mBACpBC,IAAkCZ,EAAU,WAAY;AAAA,EAAA,GAAI,sIAA2I,GACvMa,IAAmCb,EAAU,WAAY;AAAA,EAAA,GAAI,0FAA0F,GACvJc,IAA8Bd,EAAU,WAAY;AAAA,EAAA,GAAI,sIAAsI;AAClM,WAASQ,EAAc3U,GAAO;AAC5B,QAAIkV,IAAkB,IAClBC,IAAY,MACZC,IAAYpV,GACZqV,IAAID,EAAU,MAAMN,CAAiB;AACzC,WAAIO,MACFF,IAAYE,EAAE,CAAC,GACfD,IAAYC,EAAE,CAAC,IAEjBD,QAAgBlK,EAAO,SAAYkK,CAAS,GACxCA,MAAcpV,MAChBkV,IAAkB,KAEb;AAAA,MACL,iBAAiBA;AAAA,MACjB,WAAWE;AAAA,MACX,WAAWD;AAAA,IACZ;AAAA;AAEH,WAASG,EAA+B7I,GAAM;AAI5C,QAHIA,EAAK,cAAc,UAGnBA,EAAK,UAAU;AACjB,aAAOA;AAET,IAAAwI,EAA6B;AAC7B,QAAIM,IAAiBZ,EAAclI,EAAK,KAAK,GAC3C0I,IAAYI,EAAe,WAC3BH,IAAYG,EAAe;AAC7B,WAAK9I,EAAK,SACRA,EAAK,OAAO,CAAE,IAEZA,EAAK,KAAK,UAAU,WACtBA,EAAK,KAAK,QAAQA,EAAK,QAEzBA,EAAK,QAAQ2I,GACb3I,EAAK,YAAY0I,GACV1I;AAAA;AAET,MAAI+I,IAAyB,yBAAU1B,GAAY;AACjD,IAAA1E,EAAeoG,GAAW1B,CAAU;AACpC,aAAS0B,EAAU/I,GAAM;AACvB,UAAImD;AACJ,aAAInD,MAAS,WACXA,IAAO,CAAE,IAEXmD,IAAQkE,EAAW,KAAK,MAAMwB,EAA+B7I,CAAI,CAAC,KAAK,MACvEmD,EAAM,OAAO8B,EAAO,WACpB9B,EAAM,OAAOA,EAAM,QAAQ,CAAE,GAC7B,OAAO,eAAeA,EAAM,MAAM,YAAY;AAAA,QAC5C,KAAKuE,EAAU,WAAY;AACzB,iBAAOvE,EAAM;AAAA,QACd,GAAE,4DAA4D;AAAA,QAC/D,KAAKuE,EAAU,WAAY;AACzB,iBAAOvE,EAAM;AAAA,WACZ,qGAAqG;AAAA,MAC9G,CAAK,GACDA,EAAM,eAAe,IACdA;AAAA;AAwBT,QAAIlD,IAAS8I,EAAU;AACvB,WAAA9I,EAAO,iBAAiB,SAAwB9P,GAAS;AACvD,MAAIA,MAAY,WACdA,IAAU,CAAE;AAEd,UAAIuY,IAAY,KAAK,oBAAoBvY,CAAO,GAC5C6Y,IAAaC,EAAqBP,CAAS,GAC3C5B,QAAcH,EAAQ,SAAY,KAAK,QAAQqC,CAAU;AAC7D,aAAOlC;AAAA,IACR,GACD7G,EAAO,sBAAsB,SAA6B9P,GAAS;AACjE,aAAOA,EAAQ,QAAQ,KAAK,eAAeA,CAAO,IAAI,KAAK,mBAAmBA,CAAO;AAAA,OAQvF8P,EAAO,WAAW,SAAkB1M,GAAOpD,GAAS;AAClD,MAAIA,MAAY,WACdA,IAAU,CAAE,IAEd,KAAK,SAASoD,GACd,KAAK,aAAa,KAAK,oBAAoBpD,CAAO,GAClD,KAAK,cAAe;AAAA,OAetB8P,EAAO,iBAAiB,SAAwB9P,GAAS;AACvD,UAAI0W,IAAI,KAAK,OACTqC,IAAkBrC,EAAE,QAAQ,SAAS,EAAE,EAAE,QACzCsC,IAAkBtC,EAAE,QAAQ,SAAS,EAAE,EAAE;AAC7C,UAAIqC,IAAkBC,MAAoB,GAAG;AAC3C,YAAIrC,SAAcH,EAAQ,SAAYE,GAAG;AAAA,UACvC,cAAc;AAAA,QACtB,CAAO;AACD,YAAIC,OAAYD;AACd,iBAAOkC,EAAU;AAEjB,YAAIK,IAAO,KAAK,mBAAmBjZ,CAAO;AAC1C,YAAIiZ,MAASL,EAAU,UAAU;AAE/B,cAAIhD,IAAQ,KAAK,aAAa5V,EAAQ,aAAa4Y,EAAU,cACzD/I,IAAOiJ,EAAqBlD,CAAK,GACjCsD,SAAiB1C,EAAQ,SAAYE,GAAG7G,CAAI;AAChD,cAAIqJ,GAAW,SAASvC,GAAQ;AAC9B,mBAAOf;AAAA;AAGX,eAAOqD;AAAA,MAEf,MAAW,QAAID,MAAoBD,IACtB,KAAK,mBAAmB/Y,CAAO,IAC7BgZ,IAAkBD,IACpBH,EAAU,eAEVA,EAAU;AAAA,OASrB9I,EAAO,qBAAqB,SAA4B9P,GAAS;AAC/D,UAAIuY,IAAYvY,EAAQ,yBAAyB,KAAK,YAAYA,EAAQ;AAC1E,aAAIuY,MAAc,WAChBA,IAAYvY,EAAQ,yBAAyBA,EAAQ,YAAY,KAAK,YAEpEuY,MAAc,WAChBA,IAAYK,EAAU,eAEjBL;AAAA,IACR,GACDzI,EAAO,gBAAgB,WAAyB;AAC9C,UAAIqJ,QAAe3C,EAAQ,SAAY,KAAK,QAAQsC,EAAqB,KAAK,SAAS,CAAC;AACxF,MAAIK,MAAa,KAAK,SAChB,KAAK,QACP,OAAO,KAAK,KAAK,QAGnB,KAAK,KAAK,QAAQA;AAAA,IAErB,GACDrJ,EAAO,iBAAiB,SAAwBhC,GAAM1K,GAAO;AAC3D,UAAI,KAAK,cAAc;AACrB,YAAIuT,QAAcH,EAAQ,SAAYpT,GAAO;AAAA,UAC3C,cAAc;AAAA,QACtB,CAAO;AACD,QAAIuT,MAAYvT,IACd,KAAK,KAAK0K,CAAI,IAAI6I,IAElB,OAAO,KAAK,KAAK7I,CAAI;AAAA;IAG1B,GACDgC,EAAO,aAAa,SAAoB3I,GAAM;AAC5C,UAAIiS,IAAa;AAAA,QACf,QAAQ;AAAA,QACR,OAAO;AAAA,MACR,GACGC,IAAS,KAAK,OAAOlS,CAAI,KAAK,CAAE,GAChCmS,IAAY,KAAK,KAAK,UAAU,KAAK,KAAK,OAAOnS,CAAI,KAAK,CAAE;AAChE,aAAO,OAAO,OAAOiS,GAAYC,GAAQC,CAAS;AAAA,IACnD,GACDxJ,EAAO,aAAa,SAAoB3I,GAAMoS,GAAWC,GAAQ;AAC/D,MAAID,MAAc,WAChBA,IAAYpS,IAEVqS,MAAW,WACbA,IAASC;AAEX,UAAIL,IAAa,KAAK,WAAWG,CAAS;AAC1C,aAAOC,EAAO,KAAK,kBAAkBrS,CAAI,GAAGiS,CAAU;AAAA,OAiBxDtJ,EAAO,WAAW,SAAkB3I,GAAM;AACxC,UAAIuS,IAAQ,GACRC,IAAkB,KAAK,WAAW,WAAW;AAEjD,UADAD,KAASC,EAAgB,OAAO,QAC5BxS,MAAS,eAAeA,MAAS;AACnC,eAAO,KAAK,YAAYuS,IAAQ;AASlC,UAPIvS,MAAS,kBAGbuS,KAAS,KAAK,gBAAgB,QAC1B,KAAK,cACPA,KAAS,IAEPvS,MAAS;AACX,eAAOuS;AAET,MAAAA,KAAS,KAAK,kBAAkB,WAAW,EAAE,QAC7CA,KAASC,EAAgB,MAAM;AAC/B,UAAIC,IAAiB,KAAK,WAAW,UAAU;AAC/C,MAAAF,KAASE,EAAe,OAAO;AAC/B,UAAIC,KAAW,KAAK,kBAAkB,UAAU;AAChD,UAAI1S,MAAS;AACX,eAAO0S,KAAWH,IAAQ;AAE5B,MAAAA,KAASG,GAAS,QAClBH,KAASE,EAAe,MAAM;AAC9B,UAAIE,IAAc,KAAK,WAAW,OAAO;AACzC,MAAAJ,KAASI,EAAY,OAAO;AAC5B,UAAI1W,IAAQ,KAAK,kBAAkB,OAAO;AAC1C,UAAI+D,MAAS;AACX,eAAO/D,IAAQsW,IAAQ;AAEzB,MAAAA,KAAStW,EAAM,QACfsW,KAASI,EAAY,MAAM;AAC3B,UAAIC,IAAoB,KAAK,WAAW,aAAa;AAErD,aADAL,KAASK,EAAkB,OAAO,QAC9B5S,MAAS,iBACJ,KAAK,cAAcuS,IAErB;AAAA,IACR,GACD5J,EAAO,WAAW,WAAoB;AACpC,UAAIkE,IAAS,MACTf,IAAW,CAAC,KAAK,gBAAgB,GAAG;AACxC,aAAAA,EAAS,KAAK,KAAK,WAAW,sBAAsB,WAAW,CAAC,GAC5D,KAAK,aAAa,KAAK,SAAS,KAAK,UAAU,QACjDA,EAAS,KAAK,KAAK,WAAW,UAAU,CAAC,GACzCA,EAAS,KAAK,KAAK,WAAW,OAAO,CAAC,GACtCA,EAAS,KAAK,KAAK,WAAW,mBAAmB,eAAe,SAAU+G,GAAWZ,GAAY;AAC/F,eAAIY,EAAU,SAAS,KAAK,CAAChG,EAAO,UAAUoF,EAAW,OAAO,WAAW,KAAK,EAAEpF,EAAO,OAAO,SAASA,EAAO,OAAO,MAAM,WAC3HoF,EAAW,SAAS,MAEfK,EAAkBO,GAAWZ,CAAU;AAAA,OAC/C,CAAC,IAEJnG,EAAS,KAAK,GAAG,GACjBA,EAAS,KAAK,KAAK,aAAa,GACzBA,EAAS,KAAK,EAAE;AAAA,IACxB,GACD9D,EAAayJ,GAAW,CAAC;AAAA,MACvB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,YAAIqB,IAAK,KAAK;AACd,eAAOA,MAAO,OAAOA,MAAO;AAAA,MAC7B;AAAA,MACD,KAAK,SAAa7W,GAAO;AACvB,QAAAgV,EAAkC;AAAA;;;;;;;IASxC,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA;MAUd,KAAK,SAAaG,GAAW;AAC3B,YAAI,CAAC,KAAK,cAAc;AACtB,eAAK,aAAaA;AAClB;AAAA;AAEF,QAAI,KAAK,eAAeA,MACtB,KAAK,aAAaA,GAClB,KAAK,cAAe;AAAA;IAG5B,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,cAAc,KAAK,KAAK,aAAa,KAAK,SAAS;AAAA;IAErE,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,cAAc,MAAM;AAAA;IAEtC,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA,MACb;AAAA,MACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAaA,SAAa7B,GAAG;AACd,cAAI,KAAK,cAAc;AACrB,gBAAIwD,IAAkBnC,EAAcrB,CAAC,GACnC4B,IAAkB4B,EAAgB,iBAClC1B,IAAY0B,EAAgB,WAC5B3B,KAAY2B,EAAgB;AAI9B,gBAHI5B,KACFH,EAAiC,GAE/BK,MAAc,KAAK,UAAUD,OAAc,KAAK;AAClD;AAEF,iBAAK,SAASC,GACd,KAAK,aAAaD,IAClB,KAAK,cAAe;AAAA,UAC5B;AACQ,iBAAK,SAAS7B;AAAA;;IAGtB,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA;MAUd,KAAK,SAAayD,GAAa;AAC7B,QAAKA,MACH,KAAK,eAAe,IAIhB,KAAK,SAAS,KAAK,KAAK,oBAAoB,OAAO,KAAK,KAAK,oBAAoB,SACnF,KAAK,KAAK,kBAAkB,UAGhC,KAAK,eAAeA;AAAA;IAE1B,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK;AAAA,MACb;AAAA,MACD,KAAK,SAAahT,GAAM;AACtB,aAAK,eAAe,aAAaA,CAAI,GACrC,KAAK,aAAaA;AAAA;KAErB,CAAC,GACKyR;AAAA,EACT,EAAE5B,EAAW,OAAU;AACvB,EAAApK,EAAQ,UAAagM,GACrBA,EAAU,WAAW,MACrBA,EAAU,eAAe,KACzBA,EAAU,eAAe;AACzB,MAAIE,KAAwBd,IAAwB;AAAA,IAClD,KAAK;AAAA,MACH,QAAQ;AAAA,MACR,MAAM;AAAA,IACP;AAAA,IACD,KAAK;AAAA,MACH,QAAQ;AAAA,MACR,MAAM;AAAA;EAEV,GAAGA,EAAsB,IAAI,IAAI;AAAA,IAC/B,cAAc;AAAA,EACf,GAAEA;AACH,WAASyB,EAAkBO,GAAWZ,GAAY;AAChD,WAAO,KAAKA,EAAW,SAASY,IAAYZ,EAAW;AAAA,EACzD;;;;AC7bA,EAAAxM,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIoK,IAAazI,EAAuBC,EAAsB,GAC1DsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIwH,IAAyB,yBAAUlD,GAAY;AACjD,IAAA1E,EAAe4H,GAAWlD,CAAU;AACpC,aAASkD,EAAUvK,GAAM;AACvB,UAAImD;AACJ,aAAAA,IAAQkE,EAAW,KAAK,MAAMrH,CAAI,KAAK,MACvCmD,EAAM,OAAO8B,EAAO,WACpB9B,EAAM,QAAQ,KACPA;AAAA;AAET,WAAOoH;AAAA,EACT,EAAEpD,EAAW,OAAU;AACvB,EAAApK,EAAQ,UAAawN,GACrB1M,EAAiB,UAAAd,EAAQ;;;;ACnBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChDsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAIyH,IAA0B,yBAAUtH,GAAO;AAC7C,IAAAP,EAAe6H,GAAYtH,CAAK;AAChC,aAASsH,EAAWxK,GAAM;AACxB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,YACb9B;AAAA;AAET,WAAOqH;AAAA,EACT,EAAEjJ,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAayN,GACrB3M,EAAiB,UAAAd,EAAQ;;;;AClBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIwE,IAAQ7C,EAAuBC,EAAiB,GAChDsG,IAASpG;AACb,WAASH,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAAS+J,EAAeC,GAAUC,GAAY;AAAE,IAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GAAGD,EAAS,UAAU,cAAcA,GAAUE,EAAgBF,GAAUC,CAAU;AAAA,EAAE;AAC3L,WAASC,EAAgBE,GAAGD,GAAG;AAAE,WAAAD,IAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBE,GAAGD,GAAG;AAAE,aAAAC,EAAE,YAAYD,GAAUC;AAAA,IAAE,GAAWF,EAAgBE,GAAGD,CAAC;AAAA,EAAE;AACtM,MAAI0H,IAAuB,yBAAUvH,GAAO;AAC1C,IAAAP,EAAe8H,GAASvH,CAAK;AAC7B,aAASuH,EAAQzK,GAAM;AACrB,UAAImD;AACJ,aAAAA,IAAQD,EAAM,KAAK,MAAMlD,CAAI,KAAK,MAClCmD,EAAM,OAAO8B,EAAO,SACpB9B,EAAM,QAAQ,KACPA;AAAA;AAET,WAAOsH;AAAA,EACT,EAAElJ,EAAM,OAAU;AAClB,EAAAxE,EAAQ,UAAa0N,GACrB5M,EAAiB,UAAAd,EAAQ;;;;ACnBzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa2N;AACrB,WAASA,EAAcC,GAAM;AAC3B,WAAOA,EAAK,KAAK,SAAU,GAAGC,GAAG;AAC/B,aAAO,IAAIA;AAAA,IACf,CAAG;AAAA;AAGH,EAAA/M,EAAiB,UAAAd,EAAQ;;;ACRzB8N,EAAO,aAAc;AACrBA,EAAA,OAAeA,EAAA,QAAgBA,EAAA,MAAcA,EAAA,MAAcA,EAAA,QAAgBA,EAAA,QAAgBA,EAAA,cAAsBA,EAAA,YAAoBA,EAAA,OAAeA,EAAA,OAAeA,EAAA,aAAqBA,EAAA,kBAA0BA,EAAA,UAAkBA,EAAA,cAAsBA,EAAA,OAA6BA,EAAA,SAAsBA,EAAA,cAAiBA,EAAA,SAAaA,EAAA,KAAkBA,EAAA,UAAgBA,EAAA,QAAqBA,EAAA,aAAgBA,EAAA,wBAAyBA,EAAA,mBAA2BA,EAAA,QAAgBA,EAAA,OAAeA,EAAA,YAAoBA,EAAA,KAAaA,EAAA,WAAmBA,EAAA,YAAoB;AAC7iB,IAAIC,KAAY;AACCD,EAAA,YAAGC;AACpB,IAAIC,KAAW;AACCF,EAAA,WAAGE;AACnB,IAAIC,KAAK;AACCH,EAAA,KAAGG;AACb,IAAIC,KAAQ;AACCJ,EAAA,QAAGI;AAChB,IAAIC,KAAQ;AACCL,EAAA,QAAGK;AAChB,IAAIC,KAAY;AACCN,EAAA,YAAGM;AACpB,IAAIC,KAAkB;AACCP,EAAA,kBAAGO;AAC1B,IAAIC,KAAmB;AACCR,EAAA,mBAAGQ;AAC3B,IAAIC,KAAa;AACCT,EAAA,aAAGS;AACrB,IAAIC,KAAc;AACCV,EAAA,cAAGU;AACtB,IAAIC,KAAS;AACCX,EAAA,SAAGW;AACjB,IAAIC,KAAQ;AACCZ,EAAA,QAAGY;AAChB,IAAIC,KAAQ;AACCb,EAAA,QAAGa;AAChB,IAAIC,KAAO;AACCd,EAAA,OAAGc;AACf,IAAIC,KAAS;AACCf,EAAA,SAAGe;AACjB,IAAIC,KAAO;AACChB,EAAA,OAAGgB;AACf,IAAIC,KAAc;AACCjB,EAAA,cAAGiB;AACtB,IAAIC,KAAQ;AACClB,EAAA,QAAGkB;AAChB,IAAIC,KAAc;AACCnB,EAAA,cAAGmB;AACtB,IAAIC,KAAc;AACCpB,EAAA,cAAGoB;AACtB,IAAIC,KAAQ;AACCrB,EAAA,QAAGqB;AAChB,IAAIC,KAAO;AACCtB,EAAA,OAAGsB;AACf,IAAIC,KAAY;AACCvB,EAAA,YAAGuB;AACpB,IAAIC,KAAK;AACCxB,EAAA,KAAGwB;AACb,IAAIC,KAAO;AACCzB,EAAA,OAAGyB;AACf,IAAIC,KAAU;AACC1B,EAAA,UAAG0B;AAClB,IAAIC,KAAM;AAGC3B,EAAA,MAAG2B;AACd,IAAItP,KAAM8O;AAGCnB,EAAA,MAAG3N;AACd,IAAIuP,KAAU;AACC5B,EAAA,UAAG4B;AAClB,IAAIC,KAAO;AACC7B,EAAA,OAAG6B;AACf,IAAIC,KAAa;AACjB9B,EAAA,aAAqB8B;AAAAA;ACnErB,EAAA5P,EAAA,aAAqB,IACrBA,EAAiB,SAAA,QACjBA,EAAQ,UAAa6P;AACrB,MAAI,IAAIpL,EAAwB7C,CAAuB,GACnDkO,GAAcC;AAClB,WAASrL,EAAyBC,GAAa;AAAE,QAAI,OAAO,WAAY,WAAY,QAAO;AAAM,QAAIC,IAAoB,oBAAI,QAAO,GAAQC,IAAmB,oBAAI,QAAS;AAAE,YAAQH,IAA2B,SAAkCC,GAAa;AAAE,aAAOA,IAAcE,IAAmBD;AAAA,IAAoB,GAAED,CAAW;AAAA,EAAE;AAC7U,WAASF,EAAwB5I,GAAK8I,GAAa;AAAE,QAAoB9I,KAAOA,EAAI;AAAc,aAAOA;AAAO,QAAIA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAAc,aAAO,EAAE,SAAWA;AAAS,QAAIiJ,IAAQJ,EAAyBC,CAAW;AAAG,QAAIG,KAASA,EAAM,IAAIjJ,CAAG;AAAK,aAAOiJ,EAAM,IAAIjJ,CAAG;AAAK,QAAIkJ,IAAS,CAAE,GAAMC,IAAwB,OAAO,kBAAkB,OAAO;AAA0B,aAASlJ,KAAOD;AAAO,UAAIC,MAAQ,aAAa,OAAO,UAAU,eAAe,KAAKD,GAAKC,CAAG,GAAG;AAAE,YAAImJ,IAAOD,IAAwB,OAAO,yBAAyBnJ,GAAKC,CAAG,IAAI;AAAM,QAAImJ,MAASA,EAAK,OAAOA,EAAK,OAAQ,OAAO,eAAeF,GAAQjJ,GAAKmJ,CAAI,IAAYF,EAAOjJ,CAAG,IAAID,EAAIC,CAAG;AAAA,MAAM;AAAG,WAAAiJ,EAAO,UAAalJ,GAASiJ,KAASA,EAAM,IAAIjJ,GAAKkJ,CAAM,GAAYA;AAAA,EAAO;AAKvyB,WAJIiL,KAAeF,IAAe,CAAE,GAAEA,EAAa,EAAE,GAAG,IAAI,IAAMA,EAAa,EAAE,OAAO,IAAI,IAAMA,EAAa,EAAE,EAAE,IAAI,IAAMA,EAAa,EAAE,IAAI,IAAI,IAAMA,IACtJG,KAAkBF,IAAkB,IAAIA,EAAgB,EAAE,KAAK,IAAI,IAAMA,EAAgB,EAAE,GAAG,IAAI,IAAMA,EAAgB,EAAE,OAAO,IAAI,IAAMA,EAAgB,EAAE,EAAE,IAAI,IAAMA,EAAgB,EAAE,IAAI,IAAI,IAAMA,EAAgB,EAAE,SAAS,IAAI,IAAMA,EAAgB,EAAE,QAAQ,IAAI,IAAMA,EAAgB,EAAE,IAAI,IAAI,IAAMA,EAAgB,EAAE,KAAK,IAAI,IAAMA,EAAgB,EAAE,KAAK,IAAI,IAAMA,EAAgB,EAAE,SAAS,IAAI,IAAMA,EAAgB,EAAE,eAAe,IAAI,IAAMA,EAAgB,EAAE,gBAAgB,IAAI,IAAMA,EAAgB,EAAE,UAAU,IAAI,IAAMA,EAAgB,EAAE,WAAW,IAAI,IAAMA,EAAgB,EAAE,WAAW,IAAI,IAAMA,EAAgB,EAAE,WAAW,IAAI,IAAMA,EAAgB,EAAE,IAAI,IAAI,IAAMA,EAAgB,EAAE,IAAI,IAAI,IAAMA,EAAgB,EAAE,KAAK,IAAI,IAAMA,EAAgB,EAAE,WAAW,IAAI,IAAMA,EAAgB,EAAE,MAAM,IAAI,IAAMA,EAAgB,EAAE,MAAM,IAAI,IAAMA,EAAgB,EAAE,KAAK,IAAI,IAAMA,EAAgB,EAAE,KAAK,IAAI,IAAMA,IACz5B1P,IAAM,CAAE,GACR6P,IAAW,0BACN5Y,IAAI,GAAGA,IAAI4Y,EAAS,QAAQ5Y;AACnC,IAAA+I,EAAI6P,EAAS,WAAW5Y,CAAC,CAAC,IAAI;AAQhC,WAAS6Y,EAAYC,GAAKC,GAAO;AAC/B,QAAIC,IAAOD,GACPhT;AACJ,OAAG;AAED,UADAA,IAAO+S,EAAI,WAAWE,CAAI,GACtBL,EAAe5S,CAAI;AACrB,eAAOiT,IAAO;AACT,MAAIjT,MAAS,EAAE,YACpBiT,IAAOC,EAAcH,GAAKE,CAAI,IAAI,IAGlCA;AAAA,IAEN,SAAWA,IAAOF,EAAI;AACpB,WAAOE,IAAO;AAAA;AAQhB,WAASC,EAAcH,GAAKC,GAAO;AACjC,QAAIC,IAAOD,GACPhT,IAAO+S,EAAI,WAAWE,IAAO,CAAC;AAClC,QAAI,CAAAN,EAAY3S,CAAI,EAEb,KAAIgD,EAAIhD,CAAI,GAAG;AACpB,UAAImT,IAAY;AAEhB;AACE,QAAAF,KACAE,KACAnT,IAAO+S,EAAI,WAAWE,IAAO,CAAC;AAAA,aACvBjQ,EAAIhD,CAAI,KAAKmT,IAAY;AAElC,MAAIA,IAAY,KAAKnT,MAAS,EAAE,SAC9BiT;AAAA,IAEN;AAEI,MAAAA;AAEF,WAAOA;AAAA;AAET,MAAIG,IAAS;AAAA,IACX,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,EACV;AACD,EAAAzQ,EAAA,SAAiByQ;AACjB,WAASZ,EAASa,GAAO;AACvB,QAAIC,IAAS,CAAE,GACXP,IAAMM,EAAM,IAAI,QAAS,GACzBE,IAAOR,GACT/G,IAASuH,EAAK,QACZC,IAAS,IACTtN,IAAO,GACP8M,IAAQ,GACRS,IAAM,GACNzT,GAAM0T,GAASC,GAAWC,GAASlH,GAASmH,IAAWC,GAAMC,GAAOd,GAAMe,IAAUC,IAAYtI,IAAOuI;AAC3G,aAASC,EAASC,GAAMC,GAAK;AAC3B,UAAIhB,EAAM;AAER,QAAAN,KAAOsB,GACPpB,IAAOF,EAAI,SAAS;AAAA;AAEpB,cAAMM,EAAM,MAAM,cAAce,GAAMlO,GAAM8M,IAAQQ,GAAQR,CAAK;AAAA;AAGrE,WAAOA,IAAQhH,KAAQ;AAMrB,cALAhM,IAAO+S,EAAI,WAAWC,CAAK,GACvBhT,MAAS,EAAE,YACbwT,IAASR,GACT9M,KAAQ,IAEFlG,GAAI;AAAA,QACV,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AACL,UAAAiT,IAAOD;AACP;AACE,YAAAC,KAAQ,GACRjT,IAAO+S,EAAI,WAAWE,CAAI,GACtBjT,MAAS,EAAE,YACbwT,IAASP,GACT/M,KAAQ;AAAA,iBAEHlG,MAAS,EAAE,SAASA,MAAS,EAAE,WAAWA,MAAS,EAAE,OAAOA,MAAS,EAAE,MAAMA,MAAS,EAAE;AACjG,UAAAkU,KAAY,EAAE,OACdN,IAAU1N,GACVyN,IAAYV,IAAOO,IAAS,GAC5BC,IAAMR;AACN;AAAA,QACF,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AACL,UAAAA,IAAOD;AACP;AACE,YAAAC,KAAQ,GACRjT,IAAO+S,EAAI,WAAWE,CAAI;AAAA,iBACnBjT,MAAS,EAAE,QAAQA,MAAS,EAAE,eAAeA,MAAS,EAAE,SAASA,MAAS,EAAE;AACrF,UAAAkU,KAAY,EAAE,YACdN,IAAU1N,GACVyN,IAAYX,IAAQQ,GACpBC,IAAMR;AACN;AAAA,QAGF,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AACL,UAAAA,IAAOD,GACPkB,KAAYlU,GACZ4T,IAAU1N,GACVyN,IAAYX,IAAQQ,GACpBC,IAAMR,IAAO;AACb;AAAA,QACF,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AACL,UAAAtH,KAAQ3L,MAAS,EAAE,cAAc,MAAM,KACvCiT,IAAOD;AACP;AAOE,iBANAtG,IAAU,IACVuG,IAAOF,EAAI,QAAQpH,IAAOsH,IAAO,CAAC,GAC9BA,MAAS,MACXkB,EAAS,SAASxI,EAAK,GAEzBkI,KAAYZ,GACLF,EAAI,WAAWc,KAAY,CAAC,MAAM,EAAE;AACzC,cAAAA,MAAa,GACbnH,IAAU,CAACA;AAAA,iBAENA;AACT,UAAAwH,KAAY,EAAE,KACdN,IAAU1N,GACVyN,IAAYX,IAAQQ,GACpBC,IAAMR,IAAO;AACb;AAAA,QACF;AACE,UAAIjT,MAAS,EAAE,SAAS+S,EAAI,WAAWC,IAAQ,CAAC,MAAM,EAAE,YACtDC,IAAOF,EAAI,QAAQ,MAAMC,IAAQ,CAAC,IAAI,GAClCC,MAAS,KACXkB,EAAS,WAAW,IAAI,GAE1BT,IAAUX,EAAI,MAAMC,GAAOC,IAAO,CAAC,GACnCc,IAAQL,EAAQ,MAAM;AAAA,CAAI,GAC1BI,IAAOC,EAAM,SAAS,GAClBD,IAAO,KACTE,KAAW9N,IAAO4N,GAClBG,KAAahB,IAAOc,EAAMD,CAAI,EAAE,WAEhCE,KAAW9N,GACX+N,KAAaT,IAEfU,KAAY,EAAE,SACdhO,IAAO8N,IACPJ,IAAUI,IACVL,IAAYV,IAAOgB,MACVjU,MAAS,EAAE,SACpBiT,IAAOD,GACPkB,KAAYlU,GACZ4T,IAAU1N,GACVyN,IAAYX,IAAQQ,GACpBC,IAAMR,IAAO,MAEbA,IAAOH,EAAYC,GAAKC,CAAK,GAC7BkB,KAAY,EAAE,MACdN,IAAU1N,GACVyN,IAAYV,IAAOO,IAErBC,IAAMR,IAAO;AACb;AAAA;AAIJ,MAAAK,EAAO,KAAK;AAAA,QAACY;AAAA;AAAA,QAEbhO;AAAA;AAAA,QAEA8M,IAAQQ;AAAA;AAAA,QAERI;AAAA;AAAA,QAEAD;AAAA;AAAA,QAEAX;AAAA;AAAA,QAEAS;AAAA;AAAA,MACJ,CAAK,GAGGQ,OACFT,IAASS,IACTA,KAAa,OAEfjB,IAAQS;AAAA;AAEV,WAAOH;AAAA,EACT;;;AC5OA,EAAA3Q,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAI2R,IAAQhQ,EAAuBC,EAA2B,GAC1DgQ,IAAYjQ,EAAuBG,EAA+B,GAClE+P,IAAalQ,EAAuBK,EAAgC,GACpE8P,IAAWnQ,EAAuBO,EAA8B,GAChE6P,IAAMpQ,EAAuB0J,EAAyB,GACtD2G,IAAOrQ,EAAuBsQ,EAA0B,GACxDC,IAAUvQ,EAAuBwQ,EAA6B,GAC9DC,IAAUzQ,EAAuB0Q,EAA6B,GAC9DC,IAAa7N,EAAwB8N,EAAgC,GACrEC,IAAa7Q,EAAuB8Q,EAAgC,GACpEC,IAAc/Q,EAAuBgR,EAAiC,GACtEC,IAAWjR,EAAuBkR,EAA8B,GAChEC,IAAiBnR,EAAuBoR,EAA0B,GAClEC,IAAYvO,EAAwBwO,EAAqB,GACzDtC,IAASlM,EAAwByO,CAAuB,GACxDvP,IAAQc,EAAwB0O,CAA4B,GAC5DhR,IAAQiR,IACRC,GAAoBC;AACxB,WAAS5O,EAAyBC,GAAa;AAAE,QAAI,OAAO,WAAY,WAAY,QAAO;AAAM,QAAIC,IAAoB,oBAAI,QAAO,GAAQC,IAAmB,oBAAI,QAAS;AAAE,YAAQH,IAA2B,SAAkCC,GAAa;AAAE,aAAOA,IAAcE,IAAmBD;AAAA,IAAoB,GAAED,CAAW;AAAA,EAAE;AAC7U,WAASF,EAAwB5I,GAAK8I,GAAa;AAAE,QAAoB9I,KAAOA,EAAI;AAAc,aAAOA;AAAO,QAAIA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAAc,aAAO,EAAE,SAAWA;AAAS,QAAIiJ,IAAQJ,EAAyBC,CAAW;AAAG,QAAIG,KAASA,EAAM,IAAIjJ,CAAG;AAAK,aAAOiJ,EAAM,IAAIjJ,CAAG;AAAK,QAAIkJ,IAAS,CAAE,GAAMC,IAAwB,OAAO,kBAAkB,OAAO;AAA0B,aAASlJ,KAAOD;AAAO,UAAIC,MAAQ,aAAa,OAAO,UAAU,eAAe,KAAKD,GAAKC,CAAG,GAAG;AAAE,YAAImJ,IAAOD,IAAwB,OAAO,yBAAyBnJ,GAAKC,CAAG,IAAI;AAAM,QAAImJ,MAASA,EAAK,OAAOA,EAAK,OAAQ,OAAO,eAAeF,GAAQjJ,GAAKmJ,CAAI,IAAYF,EAAOjJ,CAAG,IAAID,EAAIC,CAAG;AAAA,MAAM;AAAG,WAAAiJ,EAAO,UAAalJ,GAASiJ,KAASA,EAAM,IAAIjJ,GAAKkJ,CAAM,GAAYA;AAAA,EAAO;AACvyB,WAASpD,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,WAASuG,EAAkBC,GAAQhP,GAAO;AAAE,aAASiE,IAAI,GAAGA,IAAIjE,EAAM,QAAQiE,KAAK;AAAE,UAAIgL,IAAajP,EAAMiE,CAAC;AAAG,MAAAgL,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAeD,GAAQC,EAAW,KAAKA,CAAU;AAAA,IAAI;AAAA,EAAA;AAC3T,WAASC,EAAaC,GAAaC,GAAYC,GAAa;AAAE,WAAID,KAAYL,EAAkBI,EAAY,WAAWC,CAAU,GAAiE,OAAO,eAAeD,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAA,EAAY;AAC3R,MAAI+Q,KAAqBF,IAAqB,IAAIA,EAAmB1C,EAAO,KAAK,IAAI,IAAM0C,EAAmB1C,EAAO,EAAE,IAAI,IAAM0C,EAAmB1C,EAAO,IAAI,IAAI,IAAM0C,EAAmB1C,EAAO,OAAO,IAAI,IAAM0C,EAAmB1C,EAAO,GAAG,IAAI,IAAM0C,IACvPG,IAA0B,OAAO,OAAO,CAAA,GAAID,IAAoBD,IAAiB,CAAE,GAAEA,EAAe3C,EAAO,OAAO,IAAI,IAAM2C,EAAgB;AAChJ,WAASG,EAAWC,GAAO;AACzB,WAAO;AAAA,MACL,MAAMA,EAAMV,EAAU,OAAO,UAAU;AAAA,MACvC,QAAQU,EAAMV,EAAU,OAAO,SAAS;AAAA,IACzC;AAAA;AAEH,WAASW,GAASD,GAAO;AACvB,WAAO;AAAA,MACL,MAAMA,EAAMV,EAAU,OAAO,QAAQ;AAAA,MACrC,QAAQU,EAAMV,EAAU,OAAO,OAAO;AAAA,IACvC;AAAA;AAEH,WAASY,EAAUC,GAAWC,GAAa7C,GAASD,GAAW;AAC7D,WAAO;AAAA,MACL,OAAO;AAAA,QACL,MAAM6C;AAAA,QACN,QAAQC;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,MAAM7C;AAAA,QACN,QAAQD;AAAA;IAEX;AAAA;AAEH,WAAS+C,EAAeL,GAAO;AAC7B,WAAOE,EAAUF,EAAMV,EAAU,OAAO,UAAU,GAAGU,EAAMV,EAAU,OAAO,SAAS,GAAGU,EAAMV,EAAU,OAAO,QAAQ,GAAGU,EAAMV,EAAU,OAAO,OAAO,CAAC;AAAA;AAE3J,WAASgB,EAAmBC,GAAYC,GAAU;AAChD,QAAKD;AAGL,aAAOL,EAAUK,EAAWjB,EAAU,OAAO,UAAU,GAAGiB,EAAWjB,EAAU,OAAO,SAAS,GAAGkB,EAASlB,EAAU,OAAO,QAAQ,GAAGkB,EAASlB,EAAU,OAAO,OAAO,CAAC;AAAA;AAE3K,WAASmB,GAAane,GAAMkL,GAAM;AAChC,QAAI1K,IAAQR,EAAKkL,CAAI;AACrB,QAAI,OAAO1K,KAAU;AAGrB,aAAIA,EAAM,QAAQ,IAAI,MAAM,WACtB2L,EAAM,cAAcnM,GAAM,MAAM,GACpCA,EAAKkL,CAAI,QAAQiB,EAAM,OAAO3L,CAAK,GAC/BR,EAAK,KAAKkL,CAAI,MAAM,WACtBlL,EAAK,KAAKkL,CAAI,IAAI1K,KAGfR;AAAA;AAET,WAASoe,GAAUC,GAAO/d,GAAM;AAG9B,aAFIgB,IAAI,IACJgd,IAAU,CAAE,IACRhd,IAAI+c,EAAM,QAAQ/d,GAAMgB,IAAI,CAAC,OAAO;AAC1C,MAAAgd,EAAQ,KAAKhd,CAAC;AAEhB,WAAOgd;AAAA;AAET,WAASC,KAAQ;AACf,QAAI3G,IAAO,MAAM,UAAU,OAAO,MAAM,CAAE,GAAE,SAAS;AACrD,WAAOA,EAAK,OAAO,SAAUtX,GAAMgB,GAAG;AACpC,aAAOA,MAAMsW,EAAK,QAAQtX,CAAI;AAAA,IAClC,CAAG;AAAA;AAEH,MAAIke,KAAsB,2BAAY;AACpC,aAASA,EAAOC,GAAMrhB,GAAS;AAC7B,MAAIA,MAAY,WACdA,IAAU,CAAE,IAEd,KAAK,OAAOqhB,GACZ,KAAK,UAAU,OAAO,OAAO;AAAA,QAC3B,OAAO;AAAA,QACP,MAAM;AAAA,MACP,GAAErhB,CAAO,GACV,KAAK,WAAW,GAChB,KAAK,MAAM,OAAO,KAAK,QAAS,WAAW,KAAK,OAAO,KAAK,KAAK,UACjE,KAAK,aAAa4f,EAAU,SAAY;AAAA,QACtC,KAAK,KAAK;AAAA,QACV,OAAO,KAAK,gBAAiB;AAAA,QAC7B,MAAM,KAAK,QAAQ;AAAA,MACzB,CAAK;AACD,UAAI0B,IAAaV,EAAmB,KAAK,OAAO,CAAC,GAAG,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,CAAC;AACvF,WAAK,OAAO,IAAIrC,EAAM,QAAW;AAAA,QAC/B,QAAQ+C;AAAA,MACd,CAAK,GACD,KAAK,KAAK,iBAAiB,KAAK,gBAAiB;AACjD,UAAIrO,IAAW,IAAIuL,EAAU,QAAW;AAAA,QACtC,QAAQ;AAAA,UACN,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ;AAAA;QAEX;AAAA,QACD,aAAa;AAAA,MACnB,CAAK;AACD,WAAK,KAAK,OAAOvL,CAAQ,GACzB,KAAK,UAAUA,GACf,KAAK,KAAM;AAAA;AAEb,QAAInD,IAASsR,EAAO;AACpB,WAAAtR,EAAO,kBAAkB,WAA2B;AAClD,UAAIkD,IAAQ;AACZ,aAAO,SAAUiC,GAASsM,GAAc;AACtC,eAAI,OAAOvO,EAAM,QAAS,WACjB,IAAI,MAAMiC,CAAO,IAEnBjC,EAAM,KAAK,MAAMiC,GAASsM,CAAY;AAAA,MAC9C;AAAA,IACF,GACDzR,EAAO,YAAY,WAAqB;AACtC,UAAI0R,IAAO,CAAE,GACTC,IAAgB,KAAK;AAEzB,WADA,KAAK,YACE,KAAK,WAAW,KAAK,OAAO,UAAU,KAAK,UAAU7B,EAAU,OAAO,IAAI,MAAMrC,EAAO;AAC5F,QAAAiE,EAAK,KAAK,KAAK,SAAS,GACxB,KAAK;AAEP,UAAI,KAAK,UAAU5B,EAAU,OAAO,IAAI,MAAMrC,EAAO;AACnD,eAAO,KAAK,SAAS,0BAA0B,KAAK,UAAUqC,EAAU,OAAO,SAAS,CAAC;AAE3F,UAAItN,IAAMkP,EAAK,QACX5e,IAAO;AAAA,QACT,QAAQ4d,EAAUiB,EAAc,CAAC,GAAGA,EAAc,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;AAAA,QAC1F,aAAaA,EAAc7B,EAAU,OAAO,SAAS;AAAA,MACtD;AACD,UAAItN,MAAQ,KAAK,CAAC,CAAC,CAACiL,EAAO,IAAI,EAAE,QAAQiE,EAAK,CAAC,EAAE5B,EAAU,OAAO,IAAI,CAAC;AACrE,eAAO,KAAK,SAAS,aAAa4B,EAAK,CAAC,EAAE5B,EAAU,OAAO,SAAS,CAAC;AAOvE,eALI8B,IAAM,GACNC,IAAc,IACdC,IAAgB,IAChBC,IAAY,MACZC,IAA4B,IACzBJ,IAAMpP,KAAK;AAChB,YAAIgO,IAAQkB,EAAKE,CAAG,GAChB/D,IAAU,KAAK,QAAQ2C,CAAK,GAC5BpD,IAAOsE,EAAKE,IAAM,CAAC;AACvB,gBAAQpB,EAAMV,EAAU,OAAO,IAAI,GAAC;AAAA,UAClC,KAAKrC,EAAO;AAQV,gBADAuE,IAA4B,IACxB,KAAK,QAAQ;AACf;AAEF,gBAAID,GAAW;AACb,kBAAI9S,EAAM,cAAcnM,GAAM,UAAUif,CAAS;AACjD,kBAAIE,KAAcnf,EAAK,OAAOif,CAAS,EAAE,SAAS;AAClD,cAAAjf,EAAK,OAAOif,CAAS,EAAE,QAAQE,KAAcpE;AAC7C,kBAAIqE,SAAsBjT,EAAM,SAASnM,GAAM,QAAQ,UAAUif,GAAW,OAAO,KAAK;AACxF,cAAIG,OACFpf,EAAK,KAAK,OAAOif,CAAS,EAAE,QAAQG,KAAkBrE;AAAA,YAEpE;AACY,cAAAgE,IAAcA,IAAchE,GAC5BiE,IAAgBA,IAAgBjE;AAElC;AAAA,UACF,KAAKJ,EAAO;AACV,gBAAIL,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO;AACzC,cAAA3a,EAAK,WAAW+a,GAChBkE,IAAY;AAAA,sBACF,CAACjf,EAAK,aAAaif,MAAc,eAAe,CAACC,MAA8B5E,GAAM;AAC/F,cAAIyE,UACE5S,EAAM,cAAcnM,GAAM,UAAU,WAAW,GACnDA,EAAK,OAAO,UAAU,SAAS+e,GAC/BA,IAAc,KAEZC,UACE7S,EAAM,cAAcnM,GAAM,QAAQ,UAAU,WAAW,GAC3DA,EAAK,KAAK,OAAO,UAAU,SAAS+e,GACpCC,IAAgB,KAElBhf,EAAK,aAAaA,EAAK,aAAa,MAAM+a;AAC1C,kBAAIxE,SAAepK,EAAM,SAASnM,GAAM,QAAQ,WAAW,KAAK;AAChE,cAAIuW,OACFvW,EAAK,KAAK,aAAa+a,IAEzBkE,IAAY;AAAA;AAEd,YAAAC,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AACV,gBAAIsE,MAAc,SAAS;AACzB,kBAAII,SAAkBlT,EAAM,SAASnM,GAAM,QAAQ,OAAO;AAC1D,cAAAA,EAAK,SAAS,KACVqf,OACFrf,EAAK,KAAK,QAAQqf,KAAc;AAElC;AAAA;UAGJ,KAAK1E,EAAO;AACV,YAAIL,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO,WACzC3a,EAAK,WAAW+a,GAChBkE,IAAY,aAEdC,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AAKV,gBAJII,MAAY,OAAOT,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO,WAC5D3a,EAAK,WAAW+a,GAChBkE,IAAY,aAEVlE,MAAY,KAAK;AACnB,cAAAmE,IAA4B;AAC5B;AAAA;AAEF,YAAI5E,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO,UACzC3a,EAAK,WAAW+a,GAChBkE,IAAY,cACH,CAACjf,EAAK,aAAa,CAACA,EAAK,cAClCA,EAAK,YAAY,KAEnBkf,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AACV,gBAAIL,KAAQ,KAAK,QAAQA,CAAI,MAAM,OAAOsE,EAAKE,IAAM,CAAC,KAAKF,EAAKE,IAAM,CAAC,EAAE9B,EAAU,OAAO,IAAI,MAAMrC,EAAO;AAAA,YAE3G,CAAC3a,EAAK,YAAY,CAACA,EAAK;AACtB,cAAAA,EAAK,YAAY+a,GACjBkE,IAAY;AAAA,qBACH,CAACjf,EAAK,aAAaif,MAAc,eAAe,CAACC,GAA2B;AACrF,cAAIH,UACE5S,EAAM,cAAcnM,GAAM,UAAU,WAAW,GACnDA,EAAK,OAAO,UAAU,SAAS+e,GAC/BA,IAAc,KAEZC,UACE7S,EAAM,cAAcnM,GAAM,QAAQ,UAAU,WAAW,GAC3DA,EAAK,KAAK,OAAO,UAAU,SAASgf,GACpCA,IAAgB,KAElBhf,EAAK,aAAaA,EAAK,aAAa,MAAM+a;AAC1C,kBAAIuE,SAAgBnT,EAAM,SAASnM,GAAM,QAAQ,WAAW,KAAK;AACjE,cAAIsf,OACFtf,EAAK,KAAK,aAAa+a,IAEzBkE,IAAY;AAAA,YACb,WAAU,CAACjf,EAAK,SAASA,EAAK,UAAU,MAAMif,MAAc,WAAW,EAAEC,KAA6Blf,EAAK,YAAY;AACtH,kBAAIuf,SAAiBpT,EAAM,OAAO4O,CAAO,GACrCyE,SAAmBrT,EAAM,SAASnM,GAAM,QAAQ,OAAO,KAAK,IAC5Dyf,KAAWzf,EAAK,SAAS;AAC7B,cAAAA,EAAK,QAAQyf,KAAWF,IACxBvf,EAAK,YAAY,OACbuf,OAAexE,KAAWyE,YACxBrT,EAAM,cAAcnM,GAAM,MAAM,GACpCA,EAAK,KAAK,SAASwf,MAAgBC,MAAY1E,IAEjDkE,IAAY;AAAA,YACxB,OAAiB;AACL,kBAAI1H,KAAcwD,MAAY,OAAOA,MAAY;AACjD,eAAK/a,EAAK,SAASA,EAAK,UAAU,QAAQA,EAAK,aAAakf,MAC1Dlf,EAAK,cAAcuX,KACf,CAACA,MAAewD,MAAY,aAC1B5O,EAAM,cAAcnM,GAAM,MAAM,GACpCA,EAAK,KAAK,kBAAkB+a,IAE9BkE,IAAY,eACRF,UACE5S,EAAM,cAAcnM,GAAM,UAAU,aAAa,GACrDA,EAAK,OAAO,YAAY,SAAS+e,GACjCA,IAAc,KAEZC,UACE7S,EAAM,cAAcnM,GAAM,QAAQ,UAAU,aAAa,GAC7DA,EAAK,KAAK,OAAO,YAAY,SAASgf,GACtCA,IAAgB,QAEThf,EAAK,SAASA,EAAK,UAAU,QACtCif,IAAY,SACZjf,EAAK,SAAS+a,GACV/a,EAAK,KAAK,UACZA,EAAK,KAAK,SAAS+a;AAAA;AAIzB,YAAAmE,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AACV,gBAAI,CAAC3a,EAAK,aAAa,CAACA,EAAK;AAC3B,qBAAO,KAAK,MAAM,uEAAuE;AAAA,gBACvF,OAAO0d,EAAMV,EAAU,OAAO,SAAS;AAAA,cACrD,CAAa;AAEH,gBAAIjH,SAAqBuG,EAAW,eAAevB,CAAO,GACxDnF,KAAYG,GAAe,WAC3BJ,KAAYI,GAAe;AAC7B,YAAA/V,EAAK,QAAQ4V,IACb5V,EAAK,YAAY2V,IACjBsJ,IAAY,aACR9S,EAAM,cAAcnM,GAAM,MAAM,GACpCA,EAAK,KAAK,QAAQ+a,GAClBmE,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AACV,gBAAI,CAAC3a,EAAK;AACR,qBAAO,KAAK,SAAS,aAAa0d,EAAMV,EAAU,OAAO,SAAS,GAAGjC,CAAO;AAE9E,gBAAI/a,EAAK;AACP,qBAAO,KAAK,MAAM,0DAA0D;AAAA,gBAC1E,OAAO0d,EAAMV,EAAU,OAAO,SAAS;AAAA,cACrD,CAAa;AAEH,YAAAhd,EAAK,WAAWA,EAAK,WAAWA,EAAK,WAAW+a,IAAUA,GAC1DkE,IAAY,YACZC,IAA4B;AAC5B;AAAA,UACF,KAAKvE,EAAO;AACV,gBAAIsE;AACF,kBAAIC,KAA6B5E,KAAQA,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAASsE,MAAc,eAAe;AACpH,oBAAIS,SAAkBvT,EAAM,SAASnM,GAAM,UAAUif,GAAW,OAAO,KAAK,IACxEU,SAAqBxT,EAAM,SAASnM,GAAM,QAAQ,UAAUif,GAAW,OAAO,KAAKS;AACvF,oBAAIvT,EAAM,cAAcnM,GAAM,QAAQ,UAAUif,CAAS,GACzDjf,EAAK,KAAK,OAAOif,CAAS,EAAE,QAAQU,KAAiB5E;AAAA,cACnE,OAAmB;AACL,oBAAI6E,KAAY5f,EAAKif,CAAS,KAAK,IAC/BY,SAAmB1T,EAAM,SAASnM,GAAM,QAAQif,CAAS,KAAKW;AAClE,oBAAIzT,EAAM,cAAcnM,GAAM,MAAM,GACpCA,EAAK,KAAKif,CAAS,IAAIY,KAAe9E;AAAA;;AAGxC,cAAAiE,IAAgBA,IAAgBjE;AAElC;AAAA,UACF;AACE,mBAAO,KAAK,MAAM,iBAAkBA,IAAU,YAAa;AAAA,cACzD,OAAO2C,EAAMV,EAAU,OAAO,SAAS;AAAA,YACnD,CAAW;AAAA;AAEL,QAAA8B;AAAA;AAEF,MAAAX,GAAane,GAAM,WAAW,GAC9Bme,GAAane,GAAM,WAAW,GAC9B,KAAK,QAAQ,IAAIsc,EAAW,QAAWtc,CAAI,CAAC,GAC5C,KAAK;AAAA,OAePkN,EAAO,kCAAkC,SAAyC4S,GAAc;AAC9F,MAAIA,IAAe,MACjBA,IAAe,KAAK,OAAO;AAE7B,UAAIC,IAAgB,KAAK,UACrBC,IAAQ,CAAE,GACVhH,IAAQ,IACR0G,IAAc;AAClB;AACE,YAAInC,EAAkB,KAAK,UAAUP,EAAU,OAAO,IAAI,CAAC;AACzD,UAAK,KAAK,QAAQ,UAChBhE,KAAS,KAAK,QAAS;AAAA,iBAEhB,KAAK,UAAUgE,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAAS;AACnE,cAAIlE,IAAS,CAAE;AACf,UAAIuC,MACFvC,EAAO,SAASuC,GAChBA,IAAQ,KAEV0G,IAAc,IAAI5D,EAAS,QAAW;AAAA,YACpC,OAAO,KAAK,QAAS;AAAA,YACrB,QAAQiC,EAAe,KAAK,SAAS;AAAA,YACrC,aAAa,KAAK,UAAUf,EAAU,OAAO,SAAS;AAAA,YACtD,QAAQvG;AAAA,UAClB,CAAS,GACDuJ,EAAM,KAAKN,CAAW;AAAA;aAEjB,EAAE,KAAK,WAAWI;AAC3B,UAAI9G;AACF,YAAI0G;AACF,UAAAA,EAAY,OAAO,QAAQ1G;AAAA,iBAClB,CAAC,KAAK,QAAQ,OAAO;AAC9B,cAAIiH,IAAa,KAAK,OAAOF,CAAa,GACtCG,IAAY,KAAK,OAAO,KAAK,WAAW,CAAC;AAC7C,UAAAF,EAAM,KAAK,IAAI9D,EAAQ,QAAW;AAAA,YAChC,OAAO;AAAA,YACP,QAAQ0B,EAAUqC,EAAWjD,EAAU,OAAO,UAAU,GAAGiD,EAAWjD,EAAU,OAAO,SAAS,GAAGkD,EAAUlD,EAAU,OAAO,QAAQ,GAAGkD,EAAUlD,EAAU,OAAO,OAAO,CAAC;AAAA,YAC5K,aAAaiD,EAAWjD,EAAU,OAAO,SAAS;AAAA,YAClD,QAAQ;AAAA,cACN,QAAQhE;AAAA,cACR,OAAO;AAAA;WAEV,CAAC;AAAA;;AAGN,aAAOgH;AAAA,OAOT9S,EAAO,gCAAgC,SAAuC8S,GAAOG,GAAe;AAClG,UAAI/O,IAAS;AACb,MAAI+O,MAAkB,WACpBA,IAAgB;AAElB,UAAInH,IAAQ,IACRvL,IAAW;AACf,MAAAuS,EAAM,QAAQ,SAAUxQ,GAAG;AACzB,YAAIuP,IAAc3N,EAAO,WAAW5B,EAAE,OAAO,QAAQ2Q,CAAa,GAC9DC,IAAiBhP,EAAO,WAAW5B,EAAE,gBAAgB2Q,CAAa;AACtE,QAAAnH,KAAS+F,IAAc3N,EAAO,WAAW5B,EAAE,OAAO,OAAO2Q,KAAiBpB,EAAY,WAAW,CAAC,GAClGtR,KAAYsR,IAAcvP,EAAE,QAAQ4B,EAAO,WAAW5B,EAAE,eAAe2Q,KAAiBC,EAAe,WAAW,CAAC;AAAA,MACzH,CAAK,GACG3S,MAAauL,MACfvL,IAAW;AAEb,UAAIvF,IAAS;AAAA,QACX,OAAO8Q;AAAA,QACP,UAAUvL;AAAA,MACX;AACD,aAAOvF;AAAA,IACR,GACDgF,EAAO,oBAAoB,SAA2BmT,GAAU;AAC9D,aAAIA,MAAa,WACfA,IAAW,KAAK,WAEX,KAAK,OAAOA,IAAW,CAAC,KAAK,KAAK,OAAOA,IAAW,CAAC,EAAErD,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAAS,KAAK,OAAO0F,IAAW,CAAC,KAAK,KAAK,OAAOA,IAAW,CAAC,EAAErD,EAAU,OAAO,IAAI,MAAMrC,EAAO,QAAQ,KAAK,OAAO0F,IAAW,CAAC,KAAK,KAAK,OAAOA,IAAW,CAAC,EAAErD,EAAU,OAAO,IAAI,MAAMrC,EAAO;AAAA,IACpS,GACDzN,EAAO,kBAAkB,WAA2B;AAClD,UAAI,KAAK,qBAAqB;AAC5B,YAAIoT,IAAU,KAAK,QAAQ,KAAK,OAAO,KAAK,WAAW,CAAC,CAAC,GACrD/b,QAAW4H,EAAM,OAAOmU,CAAO,EAAE,YAAa,GAC9CC,IAAO,CAAE;AACb,QAAIhc,MAAS+b,MACXC,EAAK,QAAQ,MAAMD,IAAU;AAE/B,YAAItgB,IAAO,IAAI0c,EAAY,QAAW;AAAA,UACpC,OAAO,MAAMnY,IAAO;AAAA,UACpB,QAAQqZ,EAAU,KAAK,UAAUZ,EAAU,OAAO,UAAU,GAAG,KAAK,UAAUA,EAAU,OAAO,SAAS,GAAG,KAAK,OAAO,KAAK,WAAW,CAAC,EAAEA,EAAU,OAAO,QAAQ,GAAG,KAAK,OAAO,KAAK,WAAW,CAAC,EAAEA,EAAU,OAAO,OAAO,CAAC;AAAA,UAC9N,aAAa,KAAK,UAAUA,EAAU,OAAO,SAAS;AAAA,UACtD,MAAMuD;AAAA,QACd,CAAO;AACD,oBAAK,WAAW,KAAK,WAAW,GACzBvgB;AAAA,MACb;AACM,aAAK,WAAY;AAAA,IAEpB,GACDkN,EAAO,aAAa,WAAsB;AACxC,UAAImE,IAAS;AACb,UAAI,KAAK,QAAS,MAAK;AACrB,eAAO,KAAK,UAAW;AAGzB,UAAImP,IAAkB,KAAK,0BAA0B,KAAK,QAAQ;AAClE,UAAIA,IAAkB,KAAK,KAAK,OAAOA,CAAe,EAAExD,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAAS,KAAK,OAAO6F,CAAe,EAAExD,EAAU,OAAO,IAAI,MAAMrC,EAAO,kBAAkB;AAClL,YAAIqF,IAAQ,KAAK,gCAAgCQ,CAAe;AAChE,YAAIR,EAAM,SAAS,GAAG;AACpB,cAAI7E,IAAO,KAAK,QAAQ;AACxB,cAAIA,GAAM;AACR,gBAAIsF,IAAwB,KAAK,8BAA8BT,CAAK,GAClEhH,IAAQyH,EAAsB,OAC9BhT,IAAWgT,EAAsB;AACnC,YAAIhT,MAAa,WACf0N,EAAK,iBAAiB1N,IAExB0N,EAAK,OAAO,SAASnC;AAAA,UAC/B;AACU,YAAAgH,EAAM,QAAQ,SAAUxQ,IAAG;AACzB,qBAAO6B,EAAO,QAAQ7B,EAAC;AAAA,YACnC,CAAW;AAAA;AAGL;AAAA;AAEF,UAAIyQ,IAAa,KAAK,WAClBS,IAAiC;AACrC,MAAIF,IAAkB,KAAK,aACzBE,IAAiC,KAAK,gCAAgCF,CAAe;AAEvF,UAAIxgB;AAeJ,UAdI,KAAK,sBACPA,IAAO,KAAK,gBAAiB,IACpB,KAAK,UAAUgd,EAAU,OAAO,IAAI,MAAMrC,EAAO,cAC1D3a,IAAO,IAAI0c,EAAY,QAAW;AAAA,QAChC,OAAO,KAAK,QAAS;AAAA,QACrB,QAAQqB,EAAe,KAAK,SAAS;AAAA,QACrC,aAAa,KAAK,UAAUf,EAAU,OAAO,SAAS;AAAA,MAC9D,CAAO,GACD,KAAK,cACIO,EAAkB,KAAK,UAAUP,EAAU,OAAO,IAAI,CAAC,KAEtD0D,KACV,KAAK,WAAY,GAEf1gB;AACF,YAAI0gB,GAAgC;AAClC,cAAIC,IAAyB,KAAK,8BAA8BD,CAA8B,GAC5FE,IAASD,EAAuB,OAChCE,KAAYF,EAAuB;AACrC,UAAA3gB,EAAK,OAAO,SAAS4gB,GACrB5gB,EAAK,iBAAiB6gB;AAAA;aAEnB;AAEL,YAAIC,KAAyB,KAAK,8BAA8BJ,GAAgC,EAAI,GAClGK,KAAUD,GAAuB,OACjCE,KAAaF,GAAuB;AACtC,QAAKE,OACHA,KAAaD;AAEf,YAAItK,KAAS,CAAE,GACX8J,KAAO;AAAA,UACT,QAAQ,CAAA;AAAA,QACT;AACD,QAAIQ,GAAQ,SAAS,GAAG,KAAKC,GAAW,SAAS,GAAG,KAClDvK,GAAO,SAASsK,GAAQ,MAAM,GAAGA,GAAQ,SAAS,CAAC,GACnDR,GAAK,OAAO,SAASS,GAAW,MAAM,GAAGA,GAAW,SAAS,CAAC,KACrDD,GAAQ,WAAW,GAAG,KAAKC,GAAW,WAAW,GAAG,KAC7DvK,GAAO,QAAQsK,GAAQ,MAAM,CAAC,GAC9BR,GAAK,OAAO,QAAQS,GAAW,MAAM,CAAC,KAEtCT,GAAK,QAAQS,IAEfhhB,IAAO,IAAI0c,EAAY,QAAW;AAAA,UAChC,OAAO;AAAA,UACP,QAAQsB,EAAmBiC,GAAY,KAAK,OAAO,KAAK,WAAW,CAAC,CAAC;AAAA,UACrE,aAAaA,EAAWjD,EAAU,OAAO,SAAS;AAAA,UAClD,QAAQvG;AAAA,UACR,MAAM8J;AAAA,QACd,CAAO;AAAA;AAEH,aAAI,KAAK,aAAa,KAAK,UAAUvD,EAAU,OAAO,IAAI,MAAMrC,EAAO,UACrE3a,EAAK,OAAO,QAAQ,KAAK,cAAc,KAAK,SAAS,GACrD,KAAK,aAEA,KAAK,QAAQA,CAAI;AAAA,IACzB,GACDkN,EAAO,QAAQ,WAAiB;AAC9B,UAAI,KAAK,aAAa,KAAK,OAAO,SAAS,GAAG;AAC5C,aAAK,KAAK,gBAAgB,IAC1B,KAAK;AACL;AAAA;AAEF,WAAK,QAAQ,kBAAmB;AAChC,UAAImD,IAAW,IAAIuL,EAAU,QAAW;AAAA,QACtC,QAAQ;AAAA,UACN,OAAO6B,EAAW,KAAK,OAAO,KAAK,WAAW,CAAC,CAAC;AAAA,QACjD;AAAA,QACD,aAAa,KAAK,OAAO,KAAK,WAAW,CAAC,EAAET,EAAU,OAAO,SAAS;AAAA,MAC5E,CAAK;AACD,WAAK,QAAQ,OAAO,OAAO3M,CAAQ,GACnC,KAAK,UAAUA,GACf,KAAK;AAAA,IACN,GACDnD,EAAO,UAAU,WAAmB;AAClC,UAAI4E,IAAU,KAAK;AACnB,WAAK,QAAQ,IAAIgK,EAAS,QAAW;AAAA,QACnC,OAAO,KAAK,QAAS;AAAA,QACrB,QAAQiC,EAAejM,CAAO;AAAA,QAC9B,aAAaA,EAAQkL,EAAU,OAAO,SAAS;AAAA,OAChD,CAAC,GACF,KAAK;AAAA,IACN,GACD9P,EAAO,QAAQ,SAAemF,GAASpF,GAAM;AAC3C,YAAM,KAAK,KAAK,MAAMoF,GAASpF,CAAI;AAAA,IACpC,GACDC,EAAO,mBAAmB,WAA4B;AACpD,aAAO,KAAK,MAAM,iDAAiD;AAAA,QACjE,OAAO,KAAK,UAAU8P,EAAU,OAAO,SAAS;AAAA,MACtD,CAAK;AAAA,IACF,GACD9P,EAAO,qBAAqB,WAA8B;AACxD,aAAO,KAAK,SAAS,uBAAuB,KAAK,UAAU8P,EAAU,OAAO,SAAS,CAAC;AAAA,IACvF,GACD9P,EAAO,uBAAuB,WAAgC;AAC5D,aAAO,KAAK,SAAS,0BAA0B,KAAK,UAAU8P,EAAU,OAAO,SAAS,CAAC;AAAA,IAC1F,GACD9P,EAAO,aAAa,WAAsB;AACxC,aAAO,KAAK,MAAM,iBAAiB,KAAK,QAAS,IAAG,oDAAoD,KAAK,UAAU8P,EAAU,OAAO,SAAS,CAAC;AAAA,IACnJ,GACD9P,EAAO,iBAAiB,WAA0B;AAChD,aAAO,KAAK,MAAM,mBAAmB,KAAK,UAAU8P,EAAU,OAAO,SAAS,CAAC;AAAA,IAChF,GACD9P,EAAO,YAAY,WAAqB;AACtC,UAAI+T,IAAS,KAAK,aAAa,KAAK,QAAQ,KAAK,SAAS,KAAK;AAC/D,UAAI,KAAK,UAAUjE,EAAU,OAAO,IAAI,MAAMrC,EAAO;AACnD,oBAAK,YACE,KAAK,KAAKsG,CAAM;AAClB,UAAI,KAAK,UAAUjE,EAAU,OAAO,IAAI,MAAMrC,EAAO;AAC1D,oBAAK,YACE,KAAK,UAAUsG,CAAM;AAE9B,WAAK,eAAgB;AAAA,IACtB,GACD/T,EAAO,UAAU,WAAmB;AAClC,UAAI,KAAK,WAAW;AAClB,YAAIgU,IAAc,KAAK,QAAQ,KAAK,SAAS;AAC7C,YAAIA,MAAgB,KAAK;AACvB,eAAK;AACL;AAAA;;AAGJ,UAAIpP,IAAU,KAAK;AACnB,WAAK,QAAQ,IAAI8K,EAAS,QAAW;AAAA,QACnC,OAAO,KAAK,QAAS;AAAA,QACrB,QAAQmB,EAAejM,CAAO;AAAA,QAC9B,aAAaA,EAAQkL,EAAU,OAAO,SAAS;AAAA,OAChD,CAAC,GACF,KAAK;AAAA,IACN,GACD9P,EAAO,cAAc,WAAuB;AAC1C,UAAIiO,IAAO,KAAK,QAAQ,MACpBgG,IAAa;AAEjB,UADA,KAAK,YACDhG,KAAQA,EAAK,SAASxN,EAAM,QAAQ;AACtC,YAAI0C,IAAW,IAAIuL,EAAU,QAAW;AAAA,UACtC,QAAQ;AAAA,YACN,OAAO6B,EAAW,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,UAC7C;AAAA,UACD,aAAa,KAAK,OAAO,KAAK,QAAQ,EAAET,EAAU,OAAO,SAAS;AAAA,QAC1E,CAAO,GACGlO,IAAQ,KAAK;AAGjB,aAFAqM,EAAK,OAAO9K,CAAQ,GACpB,KAAK,UAAUA,GACR,KAAK,WAAW,KAAK,OAAO,UAAU8Q;AAC3C,UAAI,KAAK,UAAUnE,EAAU,OAAO,IAAI,MAAMrC,EAAO,mBACnDwG,KAEE,KAAK,UAAUnE,EAAU,OAAO,IAAI,MAAMrC,EAAO,oBACnDwG,KAEEA,IACF,KAAK,MAAO,KAEZ,KAAK,QAAQ,OAAO,MAAMxD,GAAS,KAAK,SAAS,GACjD,KAAK,QAAQ,OAAO,OAAO,MAAMA,GAAS,KAAK,SAAS,GACxD,KAAK;AAGT,aAAK,UAAU7O;AAAA,MACrB,OAAW;AAML,iBAHIsS,IAAa,KAAK,WAClBC,IAAa,KACbC,GACG,KAAK,WAAW,KAAK,OAAO,UAAUH;AAC3C,UAAI,KAAK,UAAUnE,EAAU,OAAO,IAAI,MAAMrC,EAAO,mBACnDwG,KAEE,KAAK,UAAUnE,EAAU,OAAO,IAAI,MAAMrC,EAAO,oBACnDwG,KAEFG,IAAW,KAAK,WAChBD,KAAc,KAAK,sBAAsB,KAAK,SAAS,GACvD,KAAK;AAEP,QAAIlG,IACFA,EAAK,0BAA0B,SAASkG,GAAYA,CAAU,IAE9D,KAAK,QAAQ,IAAInF,EAAQ,QAAW;AAAA,UAClC,OAAOmF;AAAA,UACP,QAAQzD,EAAUwD,EAAWpE,EAAU,OAAO,UAAU,GAAGoE,EAAWpE,EAAU,OAAO,SAAS,GAAGsE,EAAStE,EAAU,OAAO,QAAQ,GAAGsE,EAAStE,EAAU,OAAO,OAAO,CAAC;AAAA,UAC1K,aAAaoE,EAAWpE,EAAU,OAAO,SAAS;AAAA,SACnD,CAAC;AAAA;AAGN,UAAImE;AACF,eAAO,KAAK,SAAS,uBAAuB,KAAK,UAAUnE,EAAU,OAAO,SAAS,CAAC;AAAA,IAEzF,GACD9P,EAAO,SAAS,WAAkB;AAIhC,eAHIoE,IAAS,MACTiQ,IAAY,IACZ1C,IAAgB,KAAK,WAClB,KAAK,aAAa,KAAK,UAAU7B,EAAU,OAAO,IAAI,MAAMrC,EAAO;AACxE,QAAA4G,KAAa,KAAK,QAAS,GAC3B,KAAK;AAEP,UAAI,CAAC,KAAK;AACR,eAAO,KAAK,SAAS,CAAC,gBAAgB,gBAAgB,GAAG,KAAK,WAAW,CAAC;AAE5E,UAAI,KAAK,UAAUvE,EAAU,OAAO,IAAI,MAAMrC,EAAO;AACnD,aAAK,UAAU,IAAO,SAAU6G,GAAOnO,GAAQ;AAC7C,UAAAkO,KAAaC,GACblQ,EAAO,QAAQ,IAAI8K,EAAQ,QAAW;AAAA,YACpC,OAAOmF;AAAA,YACP,QAAQvD,EAAmBa,GAAevN,EAAO,SAAS;AAAA,YAC1D,aAAauN,EAAc7B,EAAU,OAAO,SAAS;AAAA,WACtD,CAAC,GACE3J,IAAS,KAAK/B,EAAO,aAAaA,EAAO,UAAU0L,EAAU,OAAO,IAAI,MAAMrC,EAAO,mBACvFrJ,EAAO,MAAM,0BAA0B;AAAA,YACrC,OAAOA,EAAO,UAAU0L,EAAU,OAAO,SAAS;AAAA,UAC9D,CAAW;AAAA,QAEX,CAAO;AAAA;AAED,eAAO,KAAK,SAAS,CAAC,gBAAgB,gBAAgB,GAAG,KAAK,UAAUA,EAAU,OAAO,SAAS,CAAC;AAAA,IAEtG,GACD9P,EAAO,QAAQ,WAAiB;AAC9B,UAAI6N,IAAU,KAAK,QAAS;AAE5B,MAAI,KAAK,aAAa,KAAK,KAAK,UAAUiC,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAAS,KAAK,UAAUqC,EAAU,OAAO,IAAI,MAAMrC,EAAO,mBAAmB,KAAK,QAAQ,MAAM,MAAM,SAAU3a,GAAM;AAChM,eAAOA,EAAK,SAAS;AAAA,MAC3B,CAAK,KACC,KAAK,SAAS,KAAK,cAAc+a,CAAO,GACxC,KAAK,cACI,KAAK,aAAa,KAAK,OAAO,SAAS,KAAK,KAAK,UAAUiC,EAAU,OAAO,IAAI,MAAMrC,EAAO,SAAS,KAAK,UAAUqC,EAAU,OAAO,IAAI,MAAMrC,EAAO,oBAChK,KAAK,QAAQ,KAAK,OAAO,QAAQ,KAAK,cAAcI,CAAO,GAC3D,KAAK,cAEL,KAAK,WAAY;AAAA,IAEpB,GACD7N,EAAO,SAAS,WAAkB;AAChC,UAAI4E,IAAU,KAAK;AACnB,WAAK,QAAQ,IAAIoK,EAAQ,QAAW;AAAA,QAClC,OAAO,KAAK,QAAS;AAAA,QACrB,QAAQ6B,EAAejM,CAAO;AAAA,QAC9B,aAAaA,EAAQkL,EAAU,OAAO,SAAS;AAAA,OAChD,CAAC,GACF,KAAK;AAAA,IACN,GACD9P,EAAO,YAAY,SAAmBgH,GAAW;AAC/C,UAAIuN,IAAY,KAAK;AACrB,UAAIA,KAAa,KAAK,QAAQA,CAAS,MAAM;AAC3C,oBAAK,YACE,KAAK,UAAW;AAEzB,UAAI3P,IAAU,KAAK;AACnB,WAAK,QAAQ,IAAI0K,EAAW,QAAW;AAAA,QACrC,OAAO,KAAK,QAAS;AAAA,QACrB,QAAQuB,EAAejM,CAAO;AAAA,QAC9B,aAAaA,EAAQkL,EAAU,OAAO,SAAS;AAAA,MAChD,CAAA,GAAG9I,CAAS,GACb,KAAK;AAAA,IACN,GACDhH,EAAO,YAAY,SAAmBgH,GAAWwN,GAAe;AAI9D,eAHInQ,IAAS,MACTkQ,IAAY,KAAK,WACjB9H,IAAO,KAAK,QAAS,GAClB8H,KAAa,CAAC,CAAC9G,EAAO,QAAQA,EAAO,OAAOA,EAAO,QAAQA,EAAO,IAAI,EAAE,QAAQ8G,EAAUzE,EAAU,OAAO,IAAI,CAAC,KAAG;AACxH,aAAK;AACL,YAAIlL,IAAU,KAAK,QAAS;AAE5B,YADA6H,KAAQ7H,GACJA,EAAQ,YAAY,IAAI,MAAMA,EAAQ,SAAS,GAAG;AACpD,cAAIwI,IAAO,KAAK;AAChB,UAAIA,KAAQA,EAAK0C,EAAU,OAAO,IAAI,MAAMrC,EAAO,UACjDhB,KAAQ,KAAK,cAAc,KAAK,QAAQW,CAAI,CAAC,GAC7C,KAAK;AAAA;AAGT,QAAAmH,IAAY,KAAK;AAAA;AAEnB,UAAIE,IAAWvD,GAAUzE,GAAM,GAAG,EAAE,OAAO,SAAUrY,GAAG;AAEtD,YAAIsgB,KAAajI,EAAKrY,IAAI,CAAC,MAAM,MAE7BugB,KAAqB,cAAc,KAAKlI,CAAI;AAChD,eAAO,CAACiI,MAAc,CAACC;AAAA,MAC7B,CAAK,GACGC,IAAQ1D,GAAUzE,GAAM,GAAG,EAAE,OAAO,SAAUrY,GAAG;AACnD,eAAOqY,EAAKrY,IAAI,CAAC,MAAM;AAAA,MAC7B,CAAK,GAEGygB,IAAiB3D,GAAUzE,GAAM,IAAI;AACzC,MAAIoI,EAAe,WACjBD,IAAQA,EAAM,OAAO,SAAUE,GAAW;AACxC,eAAO,CAAC,CAACD,EAAe,QAAQC,CAAS;AAAA,MACjD,CAAO;AAEH,UAAIC,QAAcnF,EAAe,SAAYyB,GAAM,CAAC,CAAC,EAAE,OAAOoD,GAAUG,CAAK,CAAC,CAAC;AAC/E,MAAAG,EAAQ,QAAQ,SAAUC,GAAK5gB,IAAG;AAChC,YAAIiI,KAAQ0Y,EAAQ3gB,KAAI,CAAC,KAAKqY,EAAK,QAC/BnZ,KAAQmZ,EAAK,MAAMuI,GAAK3Y,EAAK;AACjC,YAAIjI,OAAM,KAAKogB;AACb,iBAAOA,EAAc,KAAKnQ,GAAQ/Q,IAAOyhB,EAAQ,MAAM;AAEzD,YAAIjiB,IACA8R,KAAUP,EAAO,WACjB4Q,KAAcrQ,GAAQkL,EAAU,OAAO,SAAS,IAAIiF,EAAQ3gB,EAAC,GAC7DM,KAASgc,EAAU9L,GAAQ,CAAC,GAAGA,GAAQ,CAAC,IAAIoQ,GAAKpQ,GAAQ,CAAC,GAAGA,GAAQ,CAAC,KAAKvI,KAAQ,EAAE;AACzF,YAAI,CAACoY,EAAS,QAAQO,CAAG,GAAG;AAC1B,cAAIE,KAAgB;AAAA,YAClB,OAAO5hB,GAAM,MAAM,CAAC;AAAA,YACpB,QAAQoB;AAAA,YACR,aAAaugB;AAAA,UACd;AACD,UAAAniB,KAAO,IAAI6b,EAAW,QAAWsC,GAAaiE,IAAe,OAAO,CAAC;AAAA,QACtE,WAAU,CAACN,EAAM,QAAQI,CAAG,GAAG;AAC9B,cAAIG,KAAS;AAAA,YACX,OAAO7hB,GAAM,MAAM,CAAC;AAAA,YACpB,QAAQoB;AAAA,YACR,aAAaugB;AAAA,UACd;AACD,UAAAniB,KAAO,IAAI+b,EAAI,QAAWoC,GAAakE,IAAQ,OAAO,CAAC;AAAA,QAC/D,OAAa;AACL,cAAIC,KAAU;AAAA,YACZ,OAAO9hB;AAAA,YACP,QAAQoB;AAAA,YACR,aAAaugB;AAAA,UACd;AACD,UAAAhE,GAAamE,IAAS,OAAO,GAC7BtiB,KAAO,IAAIgc,EAAK,QAAWsG,EAAO;AAAA;AAEpC,QAAA/Q,EAAO,QAAQvR,IAAMkU,CAAS,GAE9BA,IAAY;AAAA,MAClB,CAAK,GACD,KAAK;AAAA,IACN,GACDhH,EAAO,OAAO,SAAcgH,GAAW;AACrC,UAAIuN,IAAY,KAAK;AACrB,aAAIA,KAAa,KAAK,QAAQA,CAAS,MAAM,OAC3C,KAAK,YACE,KAAK,UAAW,KAElB,KAAK,UAAUvN,CAAS;AAAA,IAChC,GACDhH,EAAO,OAAO,WAAgB;AAC5B,aAAO,KAAK,WAAW,KAAK,OAAO;AACjC,aAAK,MAAM,EAAI;AAEjB,kBAAK,QAAQ,kBAAmB,GACzB,KAAK;AAAA,IACb,GACDA,EAAO,QAAQ,SAAeqV,GAAoB;AAChD,cAAQ,KAAK,UAAUvF,EAAU,OAAO,IAAI,GAAC;AAAA,QAC3C,KAAKrC,EAAO;AACV,eAAK,MAAO;AACZ;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,QAAS;AACd;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,YAAa;AAClB;AAAA,QACF,KAAKA,EAAO;AACV,UAAI4H,KACF,KAAK,mBAAoB;AAE3B;AAAA,QACF,KAAK5H,EAAO;AACV,eAAK,UAAW;AAChB;AAAA,QACF,KAAKA,EAAO;AAAA,QACZ,KAAKA,EAAO;AAAA,QACZ,KAAKA,EAAO;AAAA,QACZ,KAAKA,EAAO;AACV,eAAK,KAAM;AACX;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,OAAQ;AACb;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,MAAO;AACZ;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,UAAW;AAChB;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,QAAS;AACd;AAAA,QACF,KAAKA,EAAO;AAAA,QACZ,KAAKA,EAAO;AACV,eAAK,WAAY;AACjB;AAAA,QACF,KAAKA,EAAO;AACV,eAAK,OAAQ;AACb;AAAA,QAEF,KAAKA,EAAO;AACV,eAAK,qBAAsB;AAAA,QAC7B,KAAKA,EAAO;AACV,eAAK,iBAAkB;AAAA,QACzB;AACE,eAAK,WAAY;AAAA;OAOvBzN,EAAO,WAAW,SAAkBsV,GAAajZ,GAAO0H,GAAO;AAC7D,UAAI,MAAM,QAAQuR,CAAW,GAAG;AAC9B,YAAIrH,IAAOqH,EAAY,IAAK;AAC5B,QAAAA,IAAcA,EAAY,KAAK,IAAI,IAAI,SAASrH;AAAA;AAElD,UAAIsH,IAAK,WAAW,KAAKD,EAAY,CAAC,CAAC,IAAI,OAAO;AAClD,aAAKvR,IAKE,KAAK,MAAM,cAAcwR,IAAK,MAAMD,IAAc,cAAevR,IAAQ,cAAe;AAAA,QAC7F,OAAO1H;AAAA,MACb,CAAK,IANQ,KAAK,MAAM,cAAckZ,IAAK,MAAMD,IAAc,KAAK;AAAA,QAC5D,OAAOjZ;AAAA,MACf,CAAO;AAAA,IAKJ,GACD2D,EAAO,gBAAgB,SAAuB8L,GAAO;AACnD,aAAO,KAAK,QAAQ,QAAQ,MAAMA;AAAA,IACnC,GACD9L,EAAO,gBAAgB,SAAuB8L,GAAO;AACnD,aAAO,KAAK,QAAQ,QAAQ,KAAKA;AAAA,IAClC,GACD9L,EAAO,aAAa,SAAoB8L,GAAO0J,GAAU;AACvD,aAAI,KAAK,QAAQ,QACRA,IAAW,MAAM,KAEjB1J;AAAA,IAEV,GACD9L,EAAO,wBAAwB,SAA+BwQ,GAAO;AACnE,UAAI3C,IAAU,KAAK,QAAQ2C,CAAK;AAChC,aAAIA,EAAMV,EAAU,OAAO,IAAI,MAAMrC,EAAO,QACnC,KAAK,cAAcI,CAAO,IAE1BA;AAAA,IAEV,GACD7N,EAAO,UAAU,SAAiBlN,GAAMkU,GAAW;AACjD,aAAIA,MACE,OAAO,KAAKA,CAAS,MAClB,KAAK,QAAQ,UAChB,KAAK,UAAU,KAAK,UAAU,MAAMA,IAEtCA,IAAY,KAEdlU,EAAK,YAAYkU,GACjBiK,GAAane,GAAM,WAAW,IAE5B,KAAK,WACPA,EAAK,OAAO,SAAS,KAAK,QAC1B,KAAK,SAAS,KAET,KAAK,QAAQ,OAAOA,CAAI;AAAA,IAChC,GACDkN,EAAO,UAAU,SAAiBwQ,GAAO;AACvC,aAAIA,MAAU,WACZA,IAAQ,KAAK,YAER,KAAK,IAAI,MAAMA,EAAMV,EAAU,OAAO,SAAS,GAAGU,EAAMV,EAAU,OAAO,OAAO,CAAC;AAAA,IACzF,GAKD9P,EAAO,4BAA4B,SAAmC6S,GAAe;AACnF,MAAIA,MAAkB,WACpBA,IAAgB,KAAK,WAAW;AAGlC,eADI4C,IAAiB5C,GACd4C,IAAiB,KAAK,OAAO;AAClC,YAAInF,EAAwB,KAAK,OAAOmF,CAAc,EAAE3F,EAAU,OAAO,IAAI,CAAC,GAAG;AAC/E,UAAA2F;AACA;AAAA,QACR;AACQ,iBAAOA;AAGX,aAAO;AAAA,IACR,GACDpW,EAAaiS,GAAQ,CAAC;AAAA,MACpB,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,OAAO,KAAK,QAAQ;AAAA;IAEtC,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,OAAO,KAAK,WAAW,CAAC;AAAA;IAE1C,GAAK;AAAA,MACD,KAAK;AAAA,MACL,KAAK,WAAe;AAClB,eAAO,KAAK,OAAO,KAAK,WAAW,CAAC;AAAA;KAEvC,CAAC,GACKA;AAAA,EACT,EAAG;AACH,EAAAxU,EAAQ,UAAawU,IACrB1T,EAAiB,UAAAd,EAAQ;;;;ACp/BzB,EAAAA,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAI4Y,IAAUjX,EAAuBC,EAAmB;AACxD,WAASD,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,MAAIgd,IAAyB,2BAAY;AACvC,aAASA,EAAUC,GAAM1lB,GAAS;AAChC,WAAK,OAAO0lB,KAAQ,WAAgB;AAAA,MAAE,GACtC,KAAK,UAAU,MACf,KAAK,UAAU1lB;AAAA;AAEjB,QAAI8P,IAAS2V,EAAU;AACvB,WAAA3V,EAAO,wBAAwB,SAA+BuR,GAAMrhB,GAAS;AAC3E,MAAIA,MAAY,WACdA,IAAU,CAAE;AAEd,UAAI2lB,IAAS,OAAO,OAAO,CAAE,GAAE,KAAK,SAAS3lB,CAAO;AACpD,aAAI2lB,EAAO,mBAAmB,KACrB,KAEA,OAAOtE,KAAS;AAAA,IAE1B,GACDvR,EAAO,WAAW,SAAkB9P,GAAS;AAC3C,MAAIA,MAAY,WACdA,IAAU,CAAE;AAEd,UAAI2lB,IAAS,OAAO,OAAO,CAAE,GAAE,KAAK,SAAS3lB,CAAO;AACpD,aAAI2lB,EAAO,aAAa;AAAA,IAKzB,GACD7V,EAAO,QAAQ,SAAeuR,GAAMrhB,GAAS;AAC3C,MAAIA,MAAY,WACdA,IAAU,CAAE;AAEd,UAAI4lB,IAAS,IAAIJ,EAAQ,QAAWnE,GAAM,KAAK,cAAcrhB,CAAO,CAAC;AACrE,aAAO4lB,EAAO;AAAA,IACf,GACD9V,EAAO,gBAAgB,SAAuB9P,GAAS;AACrD,aAAO;AAAA,QACL,OAAO,KAAK,SAASA,CAAO;AAAA,MAC7B;AAAA,IACF,GACD8P,EAAO,OAAO,SAAcuR,GAAMrhB,GAAS;AACzC,UAAIgT,IAAQ;AACZ,aAAIhT,MAAY,WACdA,IAAU,CAAE,IAEP,IAAI,QAAQ,SAAUwL,GAASqa,GAAQ;AAC5C,YAAI;AACF,cAAIC,IAAO9S,EAAM,MAAMqO,GAAMrhB,CAAO;AACpC,kBAAQ,QAAQgT,EAAM,KAAK8S,CAAI,CAAC,EAAE,KAAK,SAAUC,GAAW;AAC1D,gBAAIpQ,IAAS;AACb,mBAAI3C,EAAM,sBAAsBqO,GAAMrhB,CAAO,MAC3C2V,IAASmQ,EAAK,SAAU,GACxBzE,EAAK,WAAW1L,IAEX;AAAA,cACL,WAAWoQ;AAAA,cACX,MAAMD;AAAA,cACN,QAAQnQ;AAAA,YACT;AAAA,WACF,EAAE,KAAKnK,GAASqa,CAAM;AAAA,QACxB,SAAQG,GAAG;AACV,UAAAH,EAAOG,CAAC;AACR;AAAA;MAER,CAAK;AAAA,IACF,GACDlW,EAAO,WAAW,SAAkBuR,GAAMrhB,GAAS;AACjD,MAAIA,MAAY,WACdA,IAAU,CAAE;AAEd,UAAI8lB,IAAO,KAAK,MAAMzE,GAAMrhB,CAAO,GAC/B+lB,IAAY,KAAK,KAAKD,CAAI;AAC9B,UAAIC,KAAa,OAAOA,EAAU,QAAS;AACzC,cAAM,IAAI,MAAM,8DAA8D;AAEhF,UAAIpQ,IAAS;AACb,aAAI3V,EAAQ,kBAAkB,OAAOqhB,KAAS,aAC5C1L,IAASmQ,EAAK,SAAU,GACxBzE,EAAK,WAAW1L,IAEX;AAAA,QACL,WAAWoQ;AAAA,QACX,MAAMD;AAAA,QACN,QAAQnQ;AAAA,MACT;AAAA,OAUH7F,EAAO,MAAM,SAAauR,GAAMrhB,GAAS;AACvC,aAAO,KAAK,KAAKqhB,GAAMrhB,CAAO,EAAE,KAAK,SAAU8K,GAAQ;AACrD,eAAOA,EAAO;AAAA,MACpB,CAAK;AAAA,OAUHgF,EAAO,UAAU,SAAiBuR,GAAMrhB,GAAS;AAC/C,aAAO,KAAK,SAASqhB,GAAMrhB,CAAO,EAAE;AAAA,OAUtC8P,EAAO,YAAY,SAAmBuR,GAAMrhB,GAAS;AACnD,aAAO,KAAK,KAAKqhB,GAAMrhB,CAAO,EAAE,KAAK,SAAU8K,GAAQ;AACrD,eAAOA,EAAO;AAAA,MACpB,CAAK;AAAA,OAUHgF,EAAO,gBAAgB,SAAuBuR,GAAMrhB,GAAS;AAC3D,aAAO,KAAK,SAASqhB,GAAMrhB,CAAO,EAAE;AAAA,OAUtC8P,EAAO,UAAU,SAAiBuR,GAAMrhB,GAAS;AAC/C,aAAO,KAAK,KAAKqhB,GAAMrhB,CAAO,EAAE,KAAK,SAAU8K,GAAQ;AACrD,eAAOA,EAAO,UAAUA,EAAO,KAAK,SAAU;AAAA,MACpD,CAAK;AAAA,OAUHgF,EAAO,cAAc,SAAqBuR,GAAMrhB,GAAS;AACvD,UAAI8K,IAAS,KAAK,SAASuW,GAAMrhB,CAAO;AACxC,aAAO8K,EAAO,UAAUA,EAAO,KAAK,SAAU;AAAA,IAC/C,GACM2a;AAAA,EACT,EAAG;AACH,EAAA7Y,EAAQ,UAAa6Y,GACrB/X,EAAiB,UAAAd,EAAQ;;;ACvKzBqZ,EAAO,aAAc;AACJA,EAAA,YAAcA,EAAA,MAAiBA,EAAA,sBAAsBA,EAAA,OAAeA,EAAA,SAAiBA,EAAA,UAA4BA,EAAA,KAAkBA,EAAA,UAAqBA,EAAA,aAAoBA,EAAA,YAAoBA,EAAA,YAAG;AACpN,IAAI/G,KAAa3Q,GAAuBC,EAAsB,GAC1DiQ,KAAalQ,GAAuBG,EAAsB,GAC1D4Q,KAAc/Q,GAAuBK,EAAuB,GAC5D8P,KAAWnQ,GAAuBO,EAAoB,GACtD6P,KAAMpQ,GAAuB0J,EAAe,GAC5CuH,KAAWjR,GAAuBsQ,EAAoB,GACtDG,KAAUzQ,GAAuBwQ,EAAmB,GACpDR,KAAQhQ,GAAuB0Q,EAAiB,GAChDT,KAAYjQ,GAAuB4Q,EAAqB,GACxDL,KAAUvQ,GAAuB8Q,EAAmB,GACpDT,KAAOrQ,GAAuBgR,EAAgB,GAC9CH,KAAa7Q,GAAuBkR,EAAsB;AAC9D,SAASlR,GAAuB9F,GAAK;AAAE,SAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;AAAM;AAC/F,IAAIyd,KAAY,SAAmBrW,GAAM;AACvC,SAAO,IAAIqP,GAAW,QAAWrP,CAAI;AACvC;AACiBoW,EAAA,YAAGC;AACpB,IAAIC,KAAY,SAAmBtW,GAAM;AACvC,SAAO,IAAI4O,GAAW,QAAW5O,CAAI;AACvC;AACiBoW,EAAA,YAAGE;AACpB,IAAI3J,KAAa,SAAoB3M,GAAM;AACzC,SAAO,IAAIyP,GAAY,QAAWzP,CAAI;AACxC;AACkBoW,EAAA,aAAGzJ;AACrB,IAAIF,KAAU,SAAiBzM,GAAM;AACnC,SAAO,IAAI6O,GAAS,QAAW7O,CAAI;AACrC;AACeoW,EAAA,UAAG3J;AAClB,IAAIpJ,KAAK,SAAYrD,GAAM;AACzB,SAAO,IAAI8O,GAAI,QAAW9O,CAAI;AAChC;AACUoW,EAAA,KAAG/S;AACb,IAAIkT,KAAU,SAAiBvW,GAAM;AACnC,SAAO,IAAI2P,GAAS,QAAW3P,CAAI;AACrC;AACeoW,EAAA,UAAGG;AAClB,IAAIC,KAAS,SAAgBxW,GAAM;AACjC,SAAO,IAAImP,GAAQ,QAAWnP,CAAI;AACpC;AACcoW,EAAA,SAAGI;AACjB,IAAIP,KAAO,SAAcjW,GAAM;AAC7B,SAAO,IAAI0O,GAAM,QAAW1O,CAAI;AAClC;AACYoW,EAAA,OAAGH;AACf,IAAI7S,KAAW,SAAkBpD,GAAM;AACrC,SAAO,IAAI2O,GAAU,QAAW3O,CAAI;AACtC;AACgBoW,EAAA,WAAGhT;AACnB,IAAI0C,KAAS,SAAgB9F,GAAM;AACjC,SAAO,IAAIiP,GAAQ,QAAWjP,CAAI;AACpC;AACcoW,EAAA,SAAGtQ;AACjB,IAAI2Q,KAAM,SAAazW,GAAM;AAC3B,SAAO,IAAI+O,GAAK,QAAW/O,CAAI;AACjC;AACWoW,EAAA,MAAGK;AACd,IAAIC,KAAY,SAAmB1W,GAAM;AACvC,SAAO,IAAIuP,GAAW,QAAWvP,CAAI;AACvC;AACAoW,EAAA,YAAoBM;;AC9DpBC,EAAO,aAAc;AACJA,EAAA,6BAA0BA,EAAA,cAAyCA,EAAA,cAAG;AACpEA,EAAA,cAAGC;AACFD,EAAA,eAAG;AACJA,EAAA,cAAGE;AACLF,EAAA,YAAG;AACNA,EAAA,SAAGG;AACDH,EAAA,WAAG;AACEA,EAAA,gBAAGI;AACDJ,EAAA,kBAAGK;AACPL,EAAA,cAAgBA,EAAA,QAAmBA,EAAA,WAAqBA,EAAA,aAAiBA,EAAA,SAAG;AAC/F,IAAI1R,IAAStG,GACTsY,IACAC,MAAWD,KAAW,CAAA,GAAIA,GAAShS,EAAO,SAAS,IAAI,IAAMgS,GAAShS,EAAO,KAAK,IAAI,IAAMgS,GAAShS,EAAO,UAAU,IAAI,IAAMgS,GAAShS,EAAO,OAAO,IAAI,IAAMgS,GAAShS,EAAO,EAAE,IAAI,IAAMgS,GAAShS,EAAO,OAAO,IAAI,IAAMgS,GAAShS,EAAO,MAAM,IAAI,IAAMgS,GAAShS,EAAO,IAAI,IAAI,IAAMgS,GAAShS,EAAO,QAAQ,IAAI,IAAMgS,GAAShS,EAAO,MAAM,IAAI,IAAMgS,GAAShS,EAAO,GAAG,IAAI,IAAMgS,GAAShS,EAAO,SAAS,IAAI,IAAMgS;AACla,SAASH,GAAO/jB,GAAM;AACpB,SAAO,OAAOA,KAAS,YAAYmkB,GAAQnkB,EAAK,IAAI;AACtD;AACA,SAASokB,GAAWtX,GAAM9M,GAAM;AAC9B,SAAO+jB,GAAO/jB,CAAI,KAAKA,EAAK,SAAS8M;AACvC;AACA,IAAIuX,KAAcD,GAAW,KAAK,MAAMlS,EAAO,SAAS;AACrC0R,EAAA,cAAGS;AACtB,IAAIC,KAAcF,GAAW,KAAK,MAAMlS,EAAO,KAAK;AACjC0R,EAAA,cAAGU;AACtB,IAAIC,KAAeH,GAAW,KAAK,MAAMlS,EAAO,UAAU;AACtC0R,EAAA,eAAGW;AACvB,IAAIC,KAAYJ,GAAW,KAAK,MAAMlS,EAAO,OAAO;AACnC0R,EAAA,YAAGY;AACpB,IAAIvR,KAAemR,GAAW,KAAK,MAAMlS,EAAO,EAAE;AAC9B0R,EAAA,eAAG3Q;AACvB,IAAIwR,KAAYL,GAAW,KAAK,MAAMlS,EAAO,OAAO;AACnC0R,EAAA,YAAGa;AACpB,IAAIC,KAAWN,GAAW,KAAK,MAAMlS,EAAO,MAAM;AAClC0R,EAAA,WAAGc;AACnB,IAAIC,KAASP,GAAW,KAAK,MAAMlS,EAAO,IAAI;AAChC0R,EAAA,SAAGe;AACjB,IAAIC,KAAaR,GAAW,KAAK,MAAMlS,EAAO,QAAQ;AACpC0R,EAAA,aAAGgB;AACrB,IAAI/d,KAAWud,GAAW,KAAK,MAAMlS,EAAO,MAAM;AAClC0R,EAAA,WAAG/c;AACnB,IAAIge,KAAQT,GAAW,KAAK,MAAMlS,EAAO,GAAG;AAC/B0R,EAAA,QAAGiB;AAChB,IAAIC,KAAcV,GAAW,KAAK,MAAMlS,EAAO,SAAS;AACrC0R,EAAA,cAAGkB;AACtB,SAASb,GAAgBjkB,GAAM;AAC7B,SAAO0kB,GAAS1kB,CAAI,KAAKA,EAAK,UAAUA,EAAK,MAAM,WAAW,IAAI,KAAKA,EAAK,MAAM,YAAW,MAAO,aAAaA,EAAK,MAAM,YAAW,MAAO,YAAYA,EAAK,MAAM,YAAa,MAAK,mBAAmBA,EAAK,MAAM,YAAW,MAAO;AACzO;AACA,SAASgkB,GAAchkB,GAAM;AAC3B,SAAO0kB,GAAS1kB,CAAI,KAAK,CAACikB,GAAgBjkB,CAAI;AAChD;AACA,SAAS6jB,GAAY7jB,GAAM;AACzB,SAAO,CAAC,EAAE+jB,GAAO/jB,CAAI,KAAKA,EAAK;AACjC;AACA,SAAS8jB,GAAY9jB,GAAM;AACzB,SAAOqkB,GAAYrkB,CAAI,KAAK6kB,GAAM7kB,CAAI;AACxC;AAAA;ACvDA,EAAAgK,EAAA,aAAqB;AACrB,MAAIkI,IAAStG;AACb,SAAO,KAAKsG,CAAM,EAAE,QAAQ,SAAUpM,GAAK;AACzC,IAAIA,MAAQ,aAAaA,MAAQ,gBAC7BA,KAAOkE,KAAWA,EAAQlE,CAAG,MAAMoM,EAAOpM,CAAG,MACjDkE,EAAQlE,CAAG,IAAIoM,EAAOpM,CAAG;AAAA,EAC3B,CAAC;AACD,MAAIif,IAAgBjZ;AACpB,SAAO,KAAKiZ,CAAa,EAAE,QAAQ,SAAUjf,GAAK;AAChD,IAAIA,MAAQ,aAAaA,MAAQ,gBAC7BA,KAAOkE,KAAWA,EAAQlE,CAAG,MAAMif,EAAcjf,CAAG,MACxDkE,EAAQlE,CAAG,IAAIif,EAAcjf,CAAG;AAAA,EAClC,CAAC;AACD,MAAIkf,IAAUhZ;AACd,SAAO,KAAKgZ,CAAO,EAAE,QAAQ,SAAUlf,GAAK;AAC1C,IAAIA,MAAQ,aAAaA,MAAQ,gBAC7BA,KAAOkE,KAAWA,EAAQlE,CAAG,MAAMkf,EAAQlf,CAAG,MAClDkE,EAAQlE,CAAG,IAAIkf,EAAQlf,CAAG;AAAA,EAC5B,CAAC;;;AClBD,EAAAkE,EAAA,aAAqB,IACrBA,EAAQ,UAAa;AACrB,MAAIib,IAAatZ,EAAuBC,EAAsB,GAC1DsZ,IAAYzW,EAAwB3C,EAAsB;AAC9D,WAAS4C,EAAyBC,GAAa;AAAE,QAAI,OAAO,WAAY,WAAY,QAAO;AAAM,QAAIC,IAAoB,oBAAI,QAAO,GAAQC,IAAmB,oBAAI,QAAS;AAAE,YAAQH,IAA2B,SAAkCC,GAAa;AAAE,aAAOA,IAAcE,IAAmBD;AAAA,IAAoB,GAAED,CAAW;AAAA,EAAE;AAC7U,WAASF,EAAwB5I,GAAK8I,GAAa;AAAE,QAAoB9I,KAAOA,EAAI;AAAc,aAAOA;AAAO,QAAIA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAAc,aAAO,EAAE,SAAWA;AAAS,QAAIiJ,IAAQJ,EAAyBC,CAAW;AAAG,QAAIG,KAASA,EAAM,IAAIjJ,CAAG;AAAK,aAAOiJ,EAAM,IAAIjJ,CAAG;AAAK,QAAIkJ,IAAS,CAAE,GAAMC,IAAwB,OAAO,kBAAkB,OAAO;AAA0B,aAASlJ,KAAOD;AAAO,UAAIC,MAAQ,aAAa,OAAO,UAAU,eAAe,KAAKD,GAAKC,CAAG,GAAG;AAAE,YAAImJ,IAAOD,IAAwB,OAAO,yBAAyBnJ,GAAKC,CAAG,IAAI;AAAM,QAAImJ,MAASA,EAAK,OAAOA,EAAK,OAAQ,OAAO,eAAeF,GAAQjJ,GAAKmJ,CAAI,IAAYF,EAAOjJ,CAAG,IAAID,EAAIC,CAAG;AAAA,MAAM;AAAG,WAAAiJ,EAAO,UAAalJ,GAASiJ,KAASA,EAAM,IAAIjJ,GAAKkJ,CAAM,GAAYA;AAAA,EAAO;AACvyB,WAASpD,EAAuB9F,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAAWA;EAAM;AAC/F,MAAImd,IAAS,SAAgBmC,GAAW;AACtC,WAAO,IAAIF,EAAW,QAAWE,CAAS;AAAA,EAC3C;AACD,SAAO,OAAOnC,GAAQkC,CAAS,GAC/B,OAAOlC,EAAO;AACd,MAAIoC,IAAWpC;AACf,EAAAhZ,EAAQ,UAAaob,GACrBta,EAAiB,UAAAd,EAAQ;;;mCCXnBqb,KAAkB,4BAClBC,KAAc,uBAEdC,KAAsC,CAACjV,IAAK,OAAO;AACjD,QAAAkV,IAAmB,uBAAA,OAAO,IAAI,GAC9BC,IAAUnV,EAAG,QAAQ,YAAY,EAAE;AAElC,SAAA;AAAA,IACL,eAAe;AAAA,IACf,KAAKmO,GAAM;AACT,MAAAiH,GAAYpV,GAAImO,CAAI;AAAA,IACtB;AAAA,IACA,OAAOze,GAAM;AACX,MAAI,eAAe,KAAKA,EAAK,IAAI,KAAK,CAACA,EAAK,OAAO,SAAS,IAAIylB,CAAO,EAAE,MAEvED,EAAUxlB,EAAK,MAAM,IAAIA,EAAK,SAASA,EAAK,SAAS,MAAMylB;AAAA,IAE/D;AAAA,IACA,SAASvC,GAAM;AACb,MAAI,OAAO,KAAKsC,CAAS,EAAE,UAMpBtC,EAAA,UAAU,CAACyC,MAAS;AACvB,QAAIN,GAAgB,KAAKM,EAAK,IAAI,MAChCA,EAAK,QAAQA,EAAK,MACf,MAAM,GAAG,EACT,IAAI,CAAC7R,MAAM0R,EAAU1R,EAAE,KAAA,CAAM,KAAKA,EAAE,MAAM,EAC1C,KAAK,GAAG,IAGTwR,GAAY,KAAKK,EAAK,IAAI,MACvBA,EAAA,QAAQA,EAAK,MACf,MAAM,GAAG,EACT,IAAI,CAAC7R,MAAM;AACV,gBAAM8R,IAAO9R,EAAE,KAAK,EAAE,MAAM,KAAK,GAC3BxS,IAAIskB,EAAK,UAAU,CAAC1Q,MAAQsQ,EAAUtQ,CAAG,CAAC;AAChD,iBAAI5T,MAAM,MACRskB,EAAK,OAAOtkB,GAAG,GAAGkkB,EAAUI,EAAKtkB,CAAC,CAAC,CAAC,GAC7BskB,EAAK,KAAK,GAAG,KAEb9R;AAAA,QACT,CACD,EACA,KAAK,GAAG;AAAA,MACb,CACD;AAAA,IACH;AAAA,EAEJ;AACF,GAEM+R,yBAAqB,QAAc;AAEzC,SAASH,GAAYpV,GAAYmO,GAAY;AAC3C,EACEoH,GAAe,IAAIpH,CAAI,KACtBA,EAAK,UAAUA,EAAK,OAAO,SAAS,YAAY,eAAe,KAAMA,EAAK,OAAkB,IAAI,MAInGoH,GAAe,IAAIpH,CAAI,GAClBA,EAAA,WAAWqH,GAAe,CAACC,MAAiB;AAClC,IAAAA,EAAA,KAAK,CAAC1V,MAAa;AACd,MAAA2V,GAAA1V,GAAID,GAAU0V,CAAY;AAAA,IAAA,CAC3C;AAAA,EAAA,CACF,EAAE,YAAYtH,EAAK,QAAQ;AAC9B;AAEA,SAASuH,GAAgB1V,GAAYD,GAAmC0V,GAAmC;AACzG,MAAI/lB,IAAmC;AAG9B,EAAAqQ,EAAA,KAAK,CAACb,MAAM;AAEf,QAAAA,EAAE,SAAS,iBAAiBA,EAAE,UAAU,SAASA,EAAE,UAAU;AAC/D,aAAAA,EAAE,QAAQ,KACVA,EAAE,OAAO,SAASA,EAAE,OAAO,QAAQ,IAK5B;AAGL,QAAAA,EAAE,SAAS,UAAU;AACjB,YAAA,EAAE,OAAAhP,MAAUgP;AAGd,UAAAhP,MAAU,WAAWA,MAAU,YAAY;AACzC,YAAAgP,EAAE,MAAM,QAAQ;AAGlB,cAAI2L,IAA4C3L;AAChD,UAAAA,EAAE,MAAM,CAAC,EAAE,KAAK,CAACyW,MAAO;AACb,YAAA5V,EAAA,YAAY8K,GAAM8K,CAAE,GACtB9K,IAAA8K;AAAA,UAAA,CACR;AAED,gBAAMC,IAAO7V,EAAS,GAAGA,EAAS,MAAMb,CAAC,IAAI,CAAC;AAC9C,WAAI,CAAC0W,KAAQ,CAACC,GAAkBD,CAAI,MACzB7V,EAAA;AAAA,YACPb;AAAA,YACAsW,GAAe,WAAW;AAAA,cACxB,OAAO;AAAA,YACR,CAAA;AAAA,UACH,GAEFzV,EAAS,YAAYb,CAAC;AAAA,QAAA,OACjB;AAOL,gBAAM0W,IAAO7V,EAAS,GAAGA,EAAS,MAAMb,CAAC,IAAI,CAAC;AAC1C,UAAA0W,KAAQC,GAAkBD,CAAI,KAChC7V,EAAS,YAAY6V,CAAI,GAE3B7V,EAAS,YAAYb,CAAC;AAAA,QAAA;AAEjB,eAAA;AAAA,MAAA;AAsBL,UAAAhP,MAAU,aAAaA,MAAU;AACnC,eAAAulB,EAAa,YAAY1V,GAAUb,EAAE,MAAM,CAAC,CAAC,GAC7CuW,EAAa,YAAY1V,CAAQ,GAC1B;AAAA,IACT;AAGF,IAAIb,EAAE,SAAS,YAAYA,EAAE,SAAS,iBAC7BxP,IAAAwP;AAAA,EACT,CACD,GAEGxP,IACAA,EAA6B,OAAO,QAAQ,KAKrCqQ,EAAA,MAAM,OAAO,SAAS,IAItBA,EAAA;AAAA;AAAA;AAAA,IAGPrQ;AAAA,IACA8lB,GAAe,UAAU;AAAA,MACvB,WAAWxV;AAAA,MACX,OAAOA;AAAA,MACP,MAAM,CAAC;AAAA,MACP,WAAW;AAAA,IACZ,CAAA;AAAA,EACH;AAEJ;AAEA,SAAS6V,GAAkBnmB,GAA2B;AACpD,SAAOA,EAAK,SAAS,gBAAgB,QAAQ,KAAKA,EAAK,KAAK;AAC9D;AAEAulB,GAAa,UAAU;AC5LP,SAAAa,GAAgB9V,GAAYyK,GAAiB;AAC3D,SAAOsL,GAAQ,CAACd,GAAajV,CAAE,CAAC,CAAC,EAAE,QAAQyK,GAAS,EAAE,MAAM,QAAW;AACzE;ACAA,MAAM9b,KAAkC,CAAC;AAEzC,eAAeqnB,GAAgBC,GAAgB;AAC7C,SAAO9pB,EACJ,EAAA,YAAY8pB,CAAM,EAClB,KAAK,CAACzkB,MACEA,EAAI,YACZ;AACL;AACA,MAAM0kB,yBAAoB,IAAI;AACd,SAAAC,GAAU3gB,GAAaiV,GAAiB;AACtD,MAAI,CAACA;AACH;AAEE,MAAA2L,IAAaF,GAAc,IAAI1gB,CAAG;AACtC,EAAK4gB,MACHA,IAAa,IAAI,cAAc,GACjBF,GAAA,IAAI1gB,GAAK4gB,CAAU,GACxB,SAAA,mBAAmB,KAAKA,CAAU,IAE7CN,GAAgBtgB,GAAKiV,CAAO,EAAE,KAAK,CAAC4L,MAAc;AAChD,IAAAD,EAAW,YAAYC,CAAS;AAAA,EAAA,CACjC;AACH;AACa,MAAAC,KAAoB,CAACL,MAAmB;AAC7C,QAAAzgB,IAAM,gBAAgBygB,CAAM,IAC5BM,IAAYhlB,GAAI,IAAI,GACpBilB,IAAe,MAAM;AACzB,IAAAR,GAAgBC,CAAM,EAAE,KAAK,CAACzmB,MAAS;AACrC,MAAA+mB,EAAU,QAAQ/mB;AAAA,IAAA,CACnB;AAAA,EACH;AACa,SAAAgnB,EAAA,GACF7nB,GAAAsnB,CAAM,IAAIQ,GAAgB;AAAA,IACnC,MAAM,QAAQR,CAAM;AAAA,IACpB,QAAQ;AACN,YAAMjjB,IAASzB,GAAI0kB,MAAW9pB,IAAgB,cAAc,MAAM,GAC5DuqB,IAAOvqB,IAAgB,8BAA8B,MAAM;AAC/D,cAAM4L,IAAWke,MAAW9pB,EAAc,EAAE,YAAc,EAAA;AACtD,QAAA6G,EAAO,UAAU+E,MACnB/E,EAAO,QAAQ+E;AAAA,MACjB,CACD,GACK4e,IAAYjlB;AAAA,QAChB,MAAMsB,EAAO;AAAA,QACb,CAAC4jB,MAAgB;AACf,UAAKA,MACHL,EAAU,QAAQ,MACLC,EAAA;AAAA,QACf;AAAA,MAEJ;AACA,aAAAK,GAAY,MAAM;AACX,QAAAH,EAAA,GACKC,EAAA;AAAA,MAAA,CACX,GAEM,MACD3jB,EAAO,SAASujB,EAAU,QACrBhkB,GAAEukB,IAAY;AAAA,QACnB,YAAYthB;AAAA,QACZ,cAAc+gB,EAAU;AAAA,QACxB,QAAQvjB,EAAO;AAAA,QACf,QAAAijB;AAAA,QACA,OAAO;AAAA,MAAA,CACR,IAEI;AAAA,IACT;AAAA,EACF,CACD,GACMtnB,GAAWsnB,CAAM;AAC1B,GACac,KAAU,CAACd,MACftnB,GAAWsnB,CAAM,KAAKK,GAAkBL,CAAM;AAGvD,eAAsBe,GAAiBf,GAAiB;AACtD,SAAKA,IAGA9pB,EAAc,EAAE,mBAKd,CAAC,IADU,MAAMA,IAAgB,iBAAiB8pB,CAAM,GAC1C,IAAI,CAACjW,MAAwB,OAAOA,CAAE,CAAC,GAAGiW,CAAM,IAH5D,CAACA,CAAM,IAJP,CAAC;AAQZ;;;;;;;;;;;;GClEavd,KAAgB,CAAC3G,GAAUoF,GAAOmF;;AAC7C,UAAA1N,IAAAmD,EAAS,QAAT,gBAAAnD,EAAA;AAAA,IAAAmD;AAAA,IAAe,CAACkO;AAAA;AAAA,MAEd1N,GAAE0kB,IAAU;AAAA,QACV,QAAQhX;AAAA,QACR,OAAA9I;AAAA,QACA,QAAAmF;AAAA,MACD,CAAA;AAAA;AAAA;AAAA,GAGC4a,KAAY,CAACC,MAAU;;AAC3B,UAAAvoB,IAAAuoB,EAAM,mBAAN,QAAAvoB,EAAA,KAAAuoB,KACApoB,IAAAooB,EAAM,oBAAN,QAAApoB,EAAA,KAAAooB,IACO;AACT,GAEMC,KAAoB,CAACrlB,GAAUslB,MAAW;AAC9C,QAAMC,IAAY,CAAC;AAEV,SAAAvlB,EAAA,QAAQ,CAACkO,MAAU;;AACpB,UAAA,EAAE,eAAAsX,GAAe,UAAAxlB,GAAU,QAAAoS,IAAS,CAAC,GAAG,OAAApX,MAAUkT,GAClDuX,IAAOvX,EAAM,UAAQrR,IAAA7B,KAAA,gBAAAA,EAAO,SAAP,gBAAA6B,EAAa,UAAQ7B,KAAA,gBAAAA,EAAO,SAAQ,WACzD0qB,IAAqBF,MAAkB,cAAcxlB,EAAS;AAEpE,IAAAulB,EAAUE,CAAI,IAAIF,EAAUE,CAAI,KAAK;AAAA,MACnC,OAAO,CAAC;AAAA,MACR,QAAArT;AAAA,MACA,QAAQsT,IAAqBxX,IAAQoX;AAAA,IACvC,GAEUC,EAAAE,CAAI,EAAE,MAAM,KAAK,GAAIC,IAAqB1lB,IAAW,CAACkO,CAAK,CAAE;AAAA,EAAA,CACxE,GAEMqX;AACT,GAEMI,KAAa,CAAC3lB,GAAUoF,GAAOkgB,MAAW;AAC9C,MAAItlB,EAAS,KAAK,CAAC4lB,MAAMA,EAAE,kBAAkB,UAAU,GAAG;AAClD,UAAAL,IAAYF,GAAkBrlB,GAAUslB,CAAM,GAC9CO,IAAQ,CAAC;AAEf,kBAAO,KAAKN,CAAS,EAAE,QAAQ,CAACO,MAAa;AACrC,YAAAC,IAAcR,EAAUO,CAAQ;AAEtC,MAAAD,EAAMC,CAAQ,IAAI,CAACpf,MAAWC,GAAcof,EAAY,OAAO,EAAE,GAAG3gB,GAAO,GAAGsB,EAAO,GAAGqf,EAAY,MAAM;AAAA,IAAA,CAC3G,GAEMF;AAAA,EAAA;AAGT,SAAO,EAAE,SAAS,MAAMlf,GAAc3G,GAAUoF,GAAOkgB,CAAM,EAAE;AACjE,GAEMU,KAAa,CAACR;;AAAkB,UAAAzoB,KAAAC,KAAAH,IAAA3B,GAAUsqB,CAAa,MAAvB,gBAAA3oB,EAA0B,gBAA1B,gBAAAG,EAAuC,mBAAvC,gBAAAD,EAAuD;AAAA,GAEvFkpB,KAAe,CAACT,MAAkB;;AAAA,WAAA3oB,IAAA3B,GAAUsqB,CAAa,MAAvB,gBAAA3oB,EAA0B,kBAAiB;AAAA,GAE7EqpB,KAAe,CAACZ,GAAQlgB,GAAOiB,GAAS8f,MAAgB;;AAC5D,QAAM,EAAE,IAAAlY,GAAI,eAAAuX,GAAe,eAAAY,EAAkB,IAAAd,GACvCe,MAAaxpB,IAAA3B,GAAUsqB,CAAa,MAAvB,gBAAA3oB,EAA0B,eAAc,CAAC;AAE5D,MAAI2oB,MAAkB;AACpB,WAAO,CAAC;AAEJ,QAAA,EAAE,QAAAvkB,GAAQ,eAAAqlB,EAAA,IAAkBH,GAC5BI,IAAaD,EAAc,GAC3BE,IAAY;AAAA,IAChB,GAAG5f,GAAU0e,EAAO,OAAOlgB,GAAOiB,CAAO;AAAA,IACzC,GAAIkgB,IAAa,EAAE,CAACA,CAAU,GAAG,OAAO,CAAC;AAAA,IACzC,GAAItlB,IAAS,EAAE,CAACwlB,EAAa,GAAGxY,EAAG,IAAI,EAAE,CAACyY,EAAiB,GAAGzY,EAAG;AAAA,IACjE,CAAC0Y,EAAa,GAAGnB;AAAA,EACnB;AAEA,SAAIjrB,GAAc,MAAMF,GAAY,UAAU4G,MAC5CulB,EAAU,cAAcrB,IACxBqB,EAAU,UAAUrB,KAGlB/f,MACFohB,EAAUI,EAAa,IAAIxhB,EAAM,UAAU,SAAYA,EAAM,MAAMA,EAAM,QAIvE6gB,GAAaT,CAAa,KAAKjrB,GAAoB,MAAAF,GAAY,UAAU4G,MAC3EulB,EAAU,iBAAiBrB,KAGzBhkB,GAAOqkB,CAAa,MACtBgB,EAAU,SAASlB,IAIrBkB,EAAU,QAAQA,EAAU,WAC5B,OAAOA,EAAU,WAGbvlB,KAAU,CAAC,CAAC,aAAa,aAAa,EAAE,SAASmlB,CAAa,MAChEI,EAAU,YAAY,KAIxBH,EAAW,QAAQ,CAACxd,MAAS,OAAO2d,EAAU3d,CAAI,CAAC,GAE5C2d;AACT,GAEMK,KAAe,CAAC,EAAE,OAAAzhB,GAAO,OAAA8B,GAAO,MAAAjJ,GAAM,UAAAkJ,SACnC;AAAA,EACL,GAAG/B;AAAA,EACH,GAAI4B,GAAc;AAAA,IAChB,MAAA/I;AAAA,IACA,OAAAiJ;AAAA,IACA,UAAAC;AAAA,EAAA,CACD,KAAK,CAAA;AACR,IAGI2f,KAAoB,CAACtB,GAAexlB,MAAa;;AACrD,QAAM+mB,IAAa,MAAM,QAAQ/mB,CAAQ,KAAK,CAACA,EAAS;AAEnD,WAAAnD,IAAA3B,GAAUsqB,CAAa,MAAvB,QAAA3oB,EAA0B,eAAe2oB,MAAkB,gBAAgB,CAACxlB,KAAY+mB,KACpF;AAAA,IACL;AAAA,MACE,eAAe;AAAA,IAAA;AAAA,EAEnB,IAGK/mB;AACT,GAEMgnB,KAAc,CAAChnB,GAAUoF,GAAO+gB,MAAgB;;AAC7C,UAAAtpB,IAAAmD,EAAS,QAAT,gBAAAnD,EAAA,KAAAmD,GAAe,CAACslB,MAAW;AAC1B,UAAA,EAAE,eAAAE,GAAe,UAAAxlB,GAAU,MAAAiH,GAAM,UAAAE,GAAU,WAAAJ,GAAW,IAAAkH,MAAOqX,GAC7D2B,IAAWrgB,GAAUK,GAAM7B,GAAO+gB,EAAY,OAAO,GAErDe,IAAgB,CAACjpB,GAAOiJ,MAAW;AACvC,YAAMigB,IAAaN,GAAa;AAAA,QAC9B,OAAAzhB;AAAA,QACA,OAAA8B;AAAA,QACA,MAAAjJ;AAAA,QACA,UAAAkJ;AAAA,MAAA,CACD;AAEG,UAAAgf,EAAY,WAAWlY,CAAE,MAAM,MAAS,CAACnH,GAAeC,GAAWogB,GAAYhB,EAAY,OAAO;AAC7F,eAAA;AAGT,YAAMiB,IAAiBjB,EAAY,SAASW,GAAkBtB,GAAexlB,CAAQ,IAAIA;AAElF,aAAAQ;AAAA,QACLyC,GAAauiB,CAAa;AAAA,QAC1BU,GAAaZ,GAAQ6B,GAAYhB,EAAY,SAASA,CAAW;AAAA,QACjE,MAAM,QAAQiB,CAAc,IACxBzB,GAAWyB,GAAgBD,GAAY7B,CAAM,IAC7C1e,GAAUwgB,GAAgBD,GAAYhB,EAAY,OAAO;AAAA,MAC/D;AAAA,IACF;AAEA,WAAOc,KAAA,QAAAA,EAAU,SAASA,EAAS,IAAIC,CAAa,IAAIA,EAAc;AAAA,EAAA;AAE1E,GAEMG,KAAc,CAAC/B,GAAQ6B,GAAYhB,MAAgB;AACjD,QAAA,EAAE,eAAAX,GAAe,UAAAxlB,EAAA,IAAaslB,GAC9B8B,IAAiBjB,EAAY,SAASW,GAAkBtB,GAAexlB,CAAQ,IAAIA,GAGnFsnB,IAAW,OADCrkB,GAAauiB,CAAa,KACN,UAChC+B,IAAUvB,GAAWR,CAAa;AAEpC,SAAA,MAAM,QAAQ4B,CAAc,IAEzBA,EAAe,SAIhBE,IACK3gB,GAAcygB,GAAgBD,GAAY7B,CAAM,IAElDiC,IACHP,GAAYI,GAAgBD,GAAYhB,CAAW,IACnDR,GAAWyB,GAAgBD,GAAY7B,CAAM,IARxC,OAUJ1e,GAAUwgB,GAAgBD,GAAYhB,EAAY,OAAO;AAClE;AACA,SAASqB,GAAgBC,GAAeC,GAAa;AAC7C,QAAAC,IAAoB7mB,GAAO,gBAAgB,EAAiB,OAC5D8mB,IAAmC9mB,GAAO,cAAc,EAAiB,OACzE+mB,IAAW,CAAC,GAAGF,GAAkB,GAAGC,CAA+B;AAEzE,WAASE,EAAaL,GAAe;AAC7B,UAAAvgB,IAAQ2gB,EAAS,QAAQJ,CAAa;AAC5C,WAAIvgB,IAAQ,MAAMA,IAAQ,IAAI2gB,EAAS,SAC9BA,EAAS3gB,IAAQ,CAAC,IAEpB;AAAA,EAAA;AAET,SAAOwgB,IAAcC,EAAiB,CAAC,IAAIG,EAAaL,CAAa;AACvE;AAEO,MAAMvC,KAAWR,GAAgB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA,MAAM1pB,GAAO;AACH,IAAA+sB,GAAA,UAAU/sB,EAAM,MAAM;AAC9B,UAAMgtB,IAAqBhtB,EAAM,eAAe8F,GAAO,aAAa,GAC9DmnB,IAAYnnB,GAAO,gBAAgB;AAClC,WAAA;AAAA,MACL,oBAAAknB;AAAA,MACA,WAAAC;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AACP,UAAM,EAAE,OAAA7iB,GAAO,QAAAkgB,GAAQ,QAAA/a,GAAQ,WAAA0d,EAAc,IAAA,MACvC,EAAE,eAAAzC,GAAe,MAAAve,GAAM,UAAAE,GAAU,WAAAJ,EAAc,IAAAue,GAC/Ca,IAAc,KAAK;AAEzB,QAAI,CAACX;AACH,aAAO5e,GAAU0e,GAAQlgB,GAAO+gB,EAAY,OAAO;AAG/C,UAAAuB,IAAcpC,EAAO,kBAAkB,aACvC4C,IAAe1C,MAAkB;AACnC,QAAAyC,EAAU,WAAWP,KAAeQ,IAAe;AACrD,YAAMC,IAAeX,GAAgBrB,EAAY,QAAQuB,CAAW;AACpE,UAAIS;AACK,eAAA3nB,GAAEwkB,GAAQmD,CAAY,GAAG;AAAA,UAC9B,KAAKF;AAAA,UACL,CAACtB,EAAa,GAAG,GAAGnB,CAAa;AAAA,UACjC,mBAAmBW,EAAY;AAAA,UAC/B,GAAIA,EAAY,UAAU,CAACuB,IACvB;AAAA,YACE,CAACjB,EAAa,GAAGnB,EAAO;AAAA,YACxB,WAAW;AAAA,UAAA,IAEb,CAAA;AAAA,QAAC,CACN;AAAA,IACH;AAGI,UAAA8C,IAAYnlB,GAAauiB,CAAa,GAEtCyB,IAAWrgB,GAAUK,GAAM7B,GAAO+gB,EAAY,OAAO,GAErDe,IAAgB,CAACjpB,GAAOiJ,MAAW;;AACnC,UAAAigB,IAAalpB,IACb4oB,GAAa;AAAA,QACX,MAAA5oB;AAAA,QACA,OAAAiJ;AAAA,QACA,UAAAC;AAAA,QACA,OAAA/B;AAAA,MACD,CAAA,IACDA;AAGA,WAAAmF,KAAA,gBAAAA,EAAQ,mBAAkB,WAAWib,MAAkB,gBAAczoB,KAAAC,KAAAH,IAAAyoB,EAAO,UAAP,gBAAAzoB,EAAc,SAAd,gBAAAG,EAAoB,WAApB,QAAAD,EAA4B,SAAQ;AAC3G,cAAM+oB,MAAW5lB,IAAAolB,EAAO,MAAM,SAAb,gBAAAplB,EAAmB,SAAQolB,EAAO,MAAM,MACnD+C,IAAY9d,EAAO,eACnB+d,MAAWroB,IAAAkD,GAAiBklB,CAAS,MAA1B,gBAAApoB,EAA8B6lB,OAAa,CAAC;AAC7D,QAAAqB,IAAaA,IAAa,EAAE,GAAGA,GAAY,GAAGmB,EAAa,IAAAA;AAAA,MAAA;AAG7D,UAAInC,EAAY,WAAWb,EAAO,EAAE,MAAM,MAAS,CAACxe,GAAeC,GAAWogB,GAAYhB,EAAY,OAAO;AACpG,eAAA;AAGT,YAAMoC,IAAM/nB;AAAA,QACV4nB;AAAA,QACAlC,GAAaZ,GAAQ6B,GAAYhB,EAAY,SAASA,CAAW;AAAA,QACjEkB,GAAY/B,GAAQ6B,GAAYhB,CAAW;AAAA,MAC7C;AAEI,aAAAb,EAAO,kBAAkB,UACpB9kB;AAAA,QACLgoB;AAAA,QACA,CAAC;AAAA,QACD;AAAA,UACE,SAAS,MAAMD;AAAA,UACf,UAAU,MAAM/nB,GAAEioB,IAAc,EAAE,MAAMjD,EAAe,CAAA;AAAA,QAAA;AAAA,MAE3D,IAGK+C;AAAA,IACT;AAEA,WAAOtB,KAAA,QAAAA,EAAU,SAASA,EAAS,IAAIC,CAAa,IAAIA,EAAc;AAAA,EAAA;AAE1E,CAAC;AC5TD,SAASwB,GAAgBpD,GAAQqD,GAAYC,GAAO3nB,GAAQ4nB,IAAS,IAAM;;AAEzE,QAAMC,IAAqB;AAAA,IACzB,IAAI;AAAA,IACJ,eAAe;AAAA,IACf,eAAe;AAAA;AAAA,IAEf,OAAO,EAAE,GAAGxD,EAAO,OAAO,WAAW,kBAAkB,oBAAoBrkB,EAAO;AAAA,IAClF,UAAUqkB,EAAO;AAAA,EACnB;AAEA,MAAI,CAACsD;AACH,YAAO/rB,IAAAyoB,EAAO,aAAP,QAAAzoB,EAAiB,UAAU,CAACoE,IAC/BT,GAAE0kB,IAAU,EAAE,QAAQ4D,GAAoB,QAAQxD,EAAO,CAAC,IAC1D,CAAC9kB,GAAEuoB,EAAW,CAAC;AAGrB,QAAMC,IAAkB;AAAA,IACtB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,OAAO,EAAE,WAAW,iBAAiB;AAAA,EACvC;AAEO,SAAAxoB;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,KAAKmoB,EAAW;AAAA,MAChB,KAAK;AAAA,MACL,WAAW;AAAA,IACb;AAAA,IACAE,IACIroB,GAAE0kB,IAAU,EAAE,QAAQ8D,GAAiB,QAAQ1D,EAAA,CAAQ,KACvDtoB,IAAAsoB,EAAO,aAAP,QAAAtoB,EAAiB,SACjBwD,GAAE0kB,IAAU,EAAE,QAAQ4D,GAAoB,QAAQxD,GAAQ,IAC1D,CAAC9kB,GAAEuoB,EAAW,CAAC;AAAA,EACrB;AACF;AAEO,SAASE,KAAoB;AAClC,MAAIC,IAAiB;AAOd,SAAA;AAAA,IACL,aANkB,MAAMA,KAAkBR;AAAA,IAO1C,aANkB,CAACnW,MAAO;AACT,MAAA2W,IAAA3W;AAAA,IACnB;AAAA,EAKA;AACF;ACnDA,MAAM,EAAE7X,mBAAAA,GAAsB,IAAAC;AACvB,SAASwuB,KAAY;AAC1B,QAAM,EAAE,QAAAC,EAAW,IAAAtoB,GAAOuoB,EAAgB,EAAE,QACtC,EAAE,MAAA5rB,MAAS5C,GAAoB,EAAE,MAAMH,GAAkB,YAAY;AAC3E,EAAAiF,GAAMlC,GAAM,MAAM;AACd,IAAA2rB,EAAwC,QAAQ3rB,EAAK;AAAA,EAAA,CACxD;AACH;ACRA,MAAM,EAAE,mBAAA/C,IAAmB,0CAAA4uB,GAAA,IAA6C3uB;AAE5D,IAAA4uB,uBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,aAAa,cAFHA,IAAAA,MAAA,CAAA,CAAA;AAQZ,SAASC,KAAgB;AACjB,QAAArrB,IAAQ,aAAa,QAAQmrB,EAAwC;AAC3E,SAAM,OAAO,OAAOC,EAAQ,EAAe,SAASprB,CAAK,IAGlDA,IAFE;AAGX;AAEO,SAASsrB,KAAuB;AACrC,QAAMC,IAAoBtmB,GAA6B;AAAA,IACrD,UAAUomB,GAAc;AAAA,EAAA,CACzB,GAEK,EAAE,MAAA/rB,GAAM,OAAAksB,EAAM,IAAI9uB,GAA4D;AAAA,IAClF,MAAMH,GAAkB;AAAA,EAAA,CACzB;AAED,SAAAiF,GAAMlC,GAAM,MAAM;AACE,IAAAisB,EAAA,WAAWjsB,EAAK,MAAM;AAAA,EAAA,CACzC,GAEDqnB,GAAY,MAAM;AACV,IAAA6E,EAAA;AAAA,EAAA,CACP,GAEM;AAAA,IACL,mBAAAD;AAAA,EACF;AACF;AC1CO,SAASE,KAAY;AAGnB,SAAA;AAAA,IACL,QAHa,CAAC;AAAA,EAIhB;AACF;ACeO,SAASC,KAAmB;AAC3B,QAAAC,IAAgBC,GAAgC,EAAE;AA0BjD,SAAA;AAAA,IACL,eAAAD;AAAA,IACA,kBA1BuB,MAChBA,EAAc;AAAA,IA0BrB,kBAvBuB,CAACvU,MAAS;AACjC,MAAAuU,EAAc,QAAQvU,EAAK,OAAO,CAACyU,GAAMvX,MAAW;;AAClD,cAAMwX,IAA0B,EAAE,QAAQxX,EAAO,KAAK,GAEhD5M,IAAS;AAAA,UACb,MAAM;AAAA,UACN,KAAK;AAAA,UACL,MAAM,CAAA;AAAA,QACR;AACA,eAAAA,EAAO,OACLokB,EAAW,OAAO,SAAS,UACvB,EAAE,SAAOptB,IAAAotB,KAAA,gBAAAA,EAAY,WAAZ,gBAAAptB,EAAoB,SAAQ,IAAI,QAAOE,KAAAC,IAAAitB,KAAA,gBAAAA,EAAY,WAAZ,gBAAAjtB,EAAoB,SAApB,gBAAAD,EAA0B,OAAO,KACjFmD,IAAA+pB,KAAA,gBAAAA,EAAY,WAAZ,gBAAA/pB,EAAoB,MAE1B+pB,EAAW,OAAO,MAAM,QAAQ,QAAQpkB,CAAM,GACzCmkB,EAAAvX,EAAO,IAAI,IAAIwX,GAEbD;AAAA,MACT,GAAG,EAAE;AAAA,IACP;AAAA,EAKA;AACF;AClDA,MAAME,KAAO;AAEN,SAASC,KAAiB;AACzB,QAAAC,IAAc5qB,GAAI,EAAE,GAEpB6qB,IAAiB,CAAC5sB,IAAO,OAAO;AACpC,IAAA2sB,EAAY,QAAQ3sB;AAAA,EACtB,GACM6sB,IAASP,GAAgB,EAAE;AACjC,SAAAQ,GAAY,MAAM;AAChB,IAAAhnB,GAAM+mB,CAAM,GACAF,EAAA,MAAM,QAAQ,CAAC,EAAE,IAAAnc,GAAI,OAAAuc,IAAQ,CAAI,GAAA,SAAAC,IAAU,CAAA,QAAS;AAC9D,YAAMC,IAAkB,OAAO,KAAKD,CAAO,EAAE;AAAA,QAC3C,CAACE,GAAKlnB,OAAS;AAAA,UACb,GAAGknB;AAAA,UACH,CAAClnB,CAAG,GAAG,IAAIymB,GAAK,YAAYO,EAAQhnB,CAAG,CAAC,EAAI,EAAA,KAAKknB,GAAKH,CAAK;AAAA;AAAA,QAAA;AAAA,QAE7D,CAAA;AAAA,MACF;AACA,MAAAF,EAAOrc,CAAE,IAAI,EAAE,GAAGuc,GAAO,GAAGE,EAAgB;AAAA,IAAA,CAC7C;AAAA,EAAA,CACF,GACM;AAAA,IACL,aAAAN;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,EACF;AACF;ACdO,SAASM,GAASvkB,GAA8B;AAC/C,QAAAsiB,IAAanpB,GAAY,CAAC,GAC1BqrB,IAAqD,CAAC;AAiErD,SAAA;AAAA,IACL,YAAAlC;AAAA,IACA,OAAAkC;AAAA,IACA,UAnEe,MAAMA;AAAA,IAoErB,UAlEe,OAAOptB,MAAuB;AAC7C,UAAI,CAAC,MAAM,QAAQA,CAAI;AACrB;AAII,YAAAqtB,IAAU,IAAI,IAAIrtB,EAAK,IAAI,CAAC,EAAE,MAAAyE,QAAWA,CAAI,CAAC,GAE9C6oB,IADc,OAAO,KAAKF,CAAK,EACA,OAAO,CAAC5sB,MAAS,CAAC6sB,EAAQ,IAAI7sB,CAAI,CAAC;AAExE,iBAAWwF,KAAOsnB;AAChB,eAAOF,EAAMpnB,CAAG;AAGlB,YAAMunB,IAAkB,CAAC;AAEnB,MAAAvtB,KAAA,QAAAA,EAAA,QAAQ,CAACQ,MAAS;AACtB,cAAMmL,IAAO6hB,GAAQhtB,EAAK,QAAQ,UAAU;AAC5C,QAAImL,MACc4hB,EAAA/sB,EAAK,IAAI,IAAImL;AAI/B,cAAM8hB,IAAWloB,GAAY/E,EAAK,QAAQ,UAAU;AAMhD,YALAitB,MACcF,EAAA/sB,EAAK,IAAI,IAAIitB,IAI3BjtB,EAAK,SAAS,YAAY;AAC5B,gBAAMktB,IAAY,MAAM;AAAA,UAAC;AACT,UAAAH,EAAA/sB,EAAK,IAAI,IAAIoF,GAAiBpF,EAAK,QAAQ,OAAOoI,CAAO,KAAK8kB;AAAA,QAAA;AAAA,MAChF;AAGI,YAAAC,IAAgB3tB,EAAK,OAAO,CAACQ,MAASA,EAAK,SAAS,SAASA,EAAK,QAAQ,OAAO,GAEjFotB,IAAkBD,EAAc,IAAI,CAACntB,MAAS;AAAA;AAAA,QAA0BA,EAAK,QAAQ;AAAA,OAAQ;AAG1F,OAFQ,MAAM,QAAQ,WAAWotB,CAAe,GAEhD,QAAQ,CAAC5rB,GAAKyH,MAAU;AAC/B,cAAM,EAAE,MAAAhF,GAAM,SAAAwW,MAAY0S,EAAclkB,CAAK,GACvC,EAAE,YAAAokB,GAAY,eAAAC,GAAe,SAAAC,EAAY,IAAA9S;AAE3C,YAAAjZ,EAAI,WAAW,aAAa;AACjB,UAAA3E,GAAA;AAAA,YACX,MAAM;AAAA,YACN,SAAS,SAASoH,CAAI,oBAAoBspB,CAAO;AAAA,UAAA,CAClD;AAED;AAAA,QAAA;AAGF,cAAM/iB,IAAShJ,EAAI;AACnB,QAAAurB,EAAgB9oB,CAAI,IAAIqpB,IAAgB9iB,EAAO6iB,CAAU,IAAI7iB,EAAO;AAAA,MAAA,CACrE,GAEM,OAAA,OAAOoiB,GAAOG,CAAe,GAEzBrC,EAAA;AAAA,IACb;AAAA,EAOA;AACF;AC/EO,SAAS8C,GAAeplB,GAAS;AACtC,QAAMqlB,IAAmB,CAACjhB,GAAqBkhB,GAAqBC,MAAqB;AACvF,UAAMC,IAAaxoB,GAAiBsoB,EAASlhB,CAAI,EAAE,OAAOpE,CAAO;AAE1D,WAAA,EAAE,UAAAulB,GAAU,YAAAC,GAAY,MAAAphB,EAAK;AAAA,EACtC,GAGMqhB,wBAAuB,IAA6B;AA6BnD,SAAA;AAAA,IACL,kBAAAJ;AAAA,IACA,kBAAAI;AAAA,IACA,sCA7B2B,IAA6B;AAAA,IA8BxD,wBA5B6B,CAACrhB,GAAqBkhB,GAAqBloB,MAAgB;;AACxF,YAAMsoB,IAAsB,GAAGtoB,CAAG,GAAGgH,CAAI,IACnC,EAAE,UAAAmhB,GAAU,YAAAC,MAAeH,EAAiBjhB,GAAMkhB,GAAUloB,CAAG;AAGpD,OAAA5G,IAAAivB,EAAA,IAAIC,CAAmB,MAAvB,QAAAlvB,KAGAivB,EAAA;AAAA,QACfC;AAAA,QACAxB,GAAY,MAAM;AACZ,cAAA;AACS,YAAAsB,EAAA;AAAA,mBACJ3lB,GAAO;AACD,YAAApL,GAAA;AAAA,cACX,MAAM;AAAA,cACN,OAAO,OAAO8wB,CAAQ,UAAUC,EAAW,IAAI;AAAA,cAC/C,UAAS3lB,KAAA,gBAAAA,EAAO,YAAW,OAAO0lB,CAAQ,UAAUC,EAAW,IAAI;AAAA,YAAA,CACpE;AAAA,UAAA;AAAA,QAEJ,CAAA;AAAA,MACH;AAAA,IACF;AAAA,EAOA;AACF;ACnDgB,SAAAG,GAAWjU,IAAM,IAAImM,GAAS;AAEtC,QAAAzgB,IAAM,gBADMygB,KAAU9pB,EAAc,EAAE,YAAc,EAAA,MACrB;AACrC,EAAAgqB,GAAU3gB,GAAKsU,CAAG;AACpB;ACFO,SAASkU,GAAW,EAAE,YAAAC,GAAY,YAAAC,KAAc;AACrD,QAAMC,IAAqC,CAAC;AAkBrC,SAAA;AAAA,IACL,SAAAA;AAAA,IACA,YAnBiB,MAAMA;AAAA,IAoBvB,YAlBiB,CAAC3uB,IAAkC,CAAA,GAAI4uB,IAAQ,OAAU;AAC1E,MAAIA,KACF9oB,GAAM6oB,CAAO,GAGR,OAAA;AAAA,QACLA;AAAA,QACA,OAAO;AAAA,UACL,OAAO,KAAK3uB,CAAI,EAAE,IAAI,CAACgG,MACd,CAACA,GAAKmD,GAAUnJ,EAAKgG,CAAG,GAAG,CAAC,GAAGyoB,EAAW,CAAC,CAAC,CACpD;AAAA,QAAA;AAAA,MAEL,GACAC,EAAWC,CAAO;AAAA,IACpB;AAAA,EAKA;AACF;ACzBO,SAASE,GAASZ,GAAyE;AAChG,QAAM1wB,IAAQ,CAAC,GACTuxB,IAAW,CAAC9uB,GAA2B4uB,IAAQ,OAAU;AAC7D,IAAIA,KACF9oB,GAAMvI,CAAK,GAEN,OAAA,OAAOA,GAAOyC,CAAI;AAAA,EAC3B;AA2BO,SAAA;AAAA,IACL,OAAAzC;AAAA,IACA,WA3BgB,CAACwxB,IAAa,OAAO;AACrC,YAAMxxB,IAA6B,CAAC,GAC9ByxB,IAAgE,CAAC;AAEvE,aAAAD,EAAW,QAAQ,CAAC,EAAE,SAAA9T,IAAU,SAAS;AACvC,QAAAA,EAAQ,QAAQ,CAAC,EAAE,cAAAgU,GAAc,UAAAd,GAAU,UAAAD,QAAe;;AAExD3wB,UAAAA,EAAM4wB,CAAQ,IAAIc,IAGd7vB,IAAA8uB,KAAA,gBAAAA,EAAU,WAAV,QAAA9uB,EAAkB,SAEpB4vB,EAAkB,KAAKf,EAAiB,UAAUC,GAAUC,CAAQ,CAAC,IAGnE5uB,IAAA2uB,KAAA,gBAAAA,EAAU,WAAV,QAAA3uB,EAAkB,SACpByvB,EAAkB,KAAKf,EAAiB,UAAUC,GAAUC,CAAQ,CAAC;AAAA,QACvE,CACD;AAAA,MAAA,CACF,GAEDW,EAASvxB,GAAO,EAAI,GAEbyxB;AAAA,IACT;AAAA,IAIE,UAAAF;AAAA,EACF;AACF;ACrCO,SAASI,GAAS,EAAE,YAAAT,GAAY,wBAAAU,KAA0B;AACzD,QAAApC,IAAQT,GAAgB,EAAE;AA8BzB,SAAA;AAAA,IACL,OAAAS;AAAA,IACA,UA9Be,CAAC/sB,MAAS;;AACzB,UAAI,OAAOA,KAAS,YAAYA,MAAS;AACvC;AAGI,YAAAovB,IAAchpB,GAAe2mB,GAAO/sB,CAAI;AAG9C,iBAAWgG,KAAOopB;AAChB,eAAOrC,EAAM/mB,CAAG;AAGX,aAAA,OAAO+mB,GAAO5jB,GAAUnJ,GAAM,IAAIyuB,GAAY,KAAK,EAAE,IAGrDrvB,IAAA,OAAA,QAAQY,KAAQ,CAAE,CAAA,MAAlB,QAAAZ,EAAqB,QAAQ,CAAC,CAAC4G,GAAKqB,CAAS,MAAqB;;AACnE,YAAAD,GAAgBC,CAAS,GAAG;AAC9B,gBAAM6mB,IAAW7mB,EAAU;AACvB,WAAAjI,IAAA8uB,KAAA,gBAAAA,EAAU,WAAV,QAAA9uB,EAAkB,SACG+vB,EAAA,UAAUjB,GAAUloB,CAAG,IAG5CzG,IAAA2uB,KAAA,gBAAAA,EAAU,WAAV,QAAA3uB,EAAkB,SACG4vB,EAAA,UAAUjB,GAAUloB,CAAG;AAAA,QAChD;AAAA,MACF;AAAA,IAEJ;AAAA,EAIA;AACF;AC5BO,SAASqpB,GACd,EAAE,SAASC,GAAe,YAAAZ,GAAY,YAAAD,KACtC,EAAE,OAAArB,GAAO,QAAAmC,GAAQ,QAAA1C,GAAQ,kBAAA2C,EAAA,GACzB;AACM,QAAA3H,IAASliB,GAA+B,EAAE,GAC1C,EAAE,kBAAAsoB,GAAkB,kBAAAI,GAAkB,kBAAAoB,GAAkB,wBAAAN,EAAuB,IAAInB,GAAesB,CAAa,GAE/G,EAAE,OAAAvC,GAAO,UAAA2C,EAAS,IAAIR,GAAS;AAAA,IACnC,YAAAT;AAAA,IACA,wBAAAU;AAAA,EAAA,CACD,GAEK,EAAE,OAAA5xB,GAAO,WAAAoyB,GAAW,UAAAb,EAAS,IAAID,GAASZ,CAAgB,GAE1D,EAAE,SAAAU,GAAS,YAAAiB,GAAY,YAAAC,EAAA,IAAerB,GAAW;AAAA,IACrD,YAAAE;AAAA,IACA,YAAAD;AAAA,EAAA,CACD;AAED,SAAAvsB;AAAA,IACE,MAAM2lB,EAAO;AAAA,IACb,CAACnnB,MAAU;AACT,MAAAgvB,EAAShvB,CAAK;AAAA,IAChB;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IAAA;AAAA,EAEV,GAGAwB;AAAA,IACE,MAAM2lB,EAAO;AAAA,IACb,CAACnnB,MAAU;AACT,MAAAmvB,EAAWnvB,GAAO,EAAI;AAAA,IACxB;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IAAA;AAAA,EAEV,GAqEO;AAAA,IACL,QAAAmnB;AAAA,IACA,WArEgB,OAAO7nB,GAAmBymB,MAAoB;;AAC9D,YAAMqJ,IAAY,KAAK,MAAM,KAAK,UAAU9vB,KAAQ6nB,CAAM,CAAC;AAC3D,MAAA/hB,GAAM+hB,CAAM,GAEKwG,EAAA,QAAQ,CAAC0B,MAAoB;AAC5B,QAAAA,EAAA;AAAA,MAAA,CACjB,GAGgBN,EAAA,QAAQ,CAACO,MAAoB;AAC5B,QAAAA,EAAA;AAAA,MAAA,CACjB,GAGD3B,EAAiB,MAAM,GACvBoB,EAAiB,MAAM;AAEvB,YAAM7mB,IAAU;AAAA,QACd,OAAAwkB;AAAA,QACA,QAAAmC;AAAA,QACA,QAAA1C;AAAA,QACA,OAAAE;AAAA,QACA,OAAAxvB;AAAA,QACA,eAAe,CAAC;AAAA,QAChB,MAAM,MAAM;AAAA,QAAA;AAAA;AAAA,MACd;AACO,aAAA,eAAeqL,GAAS,iBAAiB;AAAA;AAAA,QAE9C,KAAK4mB;AAAA,MAAA,CACN,GAEDd,EAAW9lB,GAAS,EAAI,GAGbinB,EAAAC,EAAU,SAAS,EAAI;AAGlC,YAAMd,IAAoBW,GAAUvwB,IAAA0wB,EAAU,WAAV,gBAAA1wB,EAAkB,UAAU;AAGhE,aAAAswB,EAASI,EAAU,KAAK,GAExB,MAAMG,GAAS,GACJ1B,GAAAvuB,EAAK,KAAKymB,CAAM,GACpB,OAAA,OAAOoB,GAAQiI,CAAS,GAG/Bd,EAAkB,QAAQ,CAAC,EAAE,UAAAb,GAAU,YAAAC,GAAY,MAAAphB,SAAW;AAC5D,cAAMkjB,IAAsB,GAAG/B,CAAQ,GAAGnhB,EAAI;AAC7B,QAAAyiB,EAAA;AAAA,UACfS;AAAA,UACApD,GAAY,MAAM;AACZ,gBAAA;AACS,cAAAsB,EAAA;AAAA,qBACJ3lB,GAAO;AACD,cAAApL,GAAA;AAAA,gBACX,MAAM;AAAA,gBACN,OAAO,OAAO8wB,CAAQ,UAAUC,EAAW,IAAI;AAAA,gBAC/C,UAAS3lB,KAAA,gBAAAA,EAAO,YAAW,OAAO0lB,CAAQ,UAAUC,EAAW,IAAI;AAAA,cAAA,CACpE;AAAA,YAAA;AAAA,UAEJ,CAAA;AAAA,QACH;AAAA,MAAA,CACD,GAEMvG;AAAA,IACT;AAAA,IAKI,kBAAAoG;AAAA,IACA,kBAAAI;AAAA,IACA,kBAAAoB;AAAA,IACA,wBAAAN;AAAA,IAGA,OAAApC;AAAA,IACA,UAAA2C;AAAA,IAGA,OAAAnyB;AAAA,IACA,WAAAoyB;AAAA,IACA,UAAAb;AAAA,IAGA,SAAAH;AAAA,IACA,YAAAiB;AAAA,IACA,YAAAC;AAAA,IAGA,YAAApB;AAAA,IAEFF,YAAAA;AAAAA,EACF;AACF;ACrIO,SAAS4B,KAAa;AACrB,QAAAvnB,IAAU0jB,GAAgB,EAAE;AAU3B,SAAA;AAAA,IACL,SAAA1jB;AAAA,IACA,YAXiB,CAAChB,GAAKgnB,MAAU;AACjC,MAAIA,KACK,OAAA,KAAKhmB,CAAO,EAAE,QAAQ,CAAC5C,MAAQ,OAAO4C,EAAQ5C,CAAG,CAAC,GAEpD,OAAA,OAAO4C,GAAShB,CAAG;AAAA,IAC5B;AAAA,IAOE,YALiB,MAAMgB;AAAA,EAMzB;AACF;AAEO,SAASwnB,KAAe;AAEvB,QAAAC,IAAa/D,GAAgB,EAAE;AAO9B,SAAA;AAAA,IACL,YAAA+D;AAAA,IACA,cARmB,CAAC7f,GAAI8f,IAAU,OAAU;AAC5C,MAAAD,EAAW7f,CAAE,IAAI8f;AAAA,IACnB;AAAA,IAOE,cANmB,CAAC9f,MAAO6f,EAAW7f,CAAE,MAAM;AAAA,IAO9C,eALoB,MAAM6f;AAAA,EAM5B;AACF;AAEO,SAASE,KAAuB;AACrC,MAAIC,IAAgB;AACpB,WAASC,EAAiB3jB,GAAa;AACrB,IAAA0jB,IAAA1jB;AAAA,EAAA;AAElB,WAAS4jB,IAAmB;AACnB,WAAAF;AAAA,EAAA;AAEF,SAAA;AAAA,IACL,kBAAAC;AAAA,IACA,kBAAAC;AAAA,EACF;AACF;AAEO,SAASC,KAAgB;AAC9B,MAAI7H,IAAa;AACjB,WAAS8H,EAAcpgB,GAAY;AACpB,IAAAsY,IAAAtY;AAAA,EAAA;AAEf,WAASqY,IAAgB;AAChB,WAAAC;AAAA,EAAA;AAEF,SAAA;AAAA,IACL,eAAAD;AAAA,IACA,eAAA+H;AAAA,EACF;AACF;AACO,SAASC,KAAiB;AAC/B,QAAMC,IAAgBX,GAAW,GAC3BY,IAAkBX,GAAa,GAC/BY,IAAsBT,GAAqB,GAC3CU,IAAkBN,GAAc;AAC/B,SAAA;AAAA,IACL,GAAGG;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AChEA,IAAIC;AAEG,SAASC,GAAcC,GAA4B;AAC3C,EAAAF,IAAAE;AACf;AAEO,MAAMC,KAAuB;AAAA,EAClC,UAAU,IAAIxoB,MAASqoB,KAAA,gBAAAA,EAAY,SAAS,GAAGroB;AAAA,EAC/C,eAAe,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,cAAc,GAAGroB;AAAA,EACzD,eAAe,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,cAAc,GAAGroB;AAAA,EACzD,cAAc,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,aAAa,GAAGroB;AAAA,EACvD,cAAc,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,aAAa,GAAGroB;AAAA,EACvD,eAAe,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,cAAc,GAAGroB;AAAA,EACzD,kBAAkB,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,iBAAiB,GAAGroB;AAAA,EAC/D,aAAa,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,YAAY,GAAGroB;AAAA,EACrD,aAAa,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,YAAY,GAAGroB;AAAA,EACrD,eAAe,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,cAAc,GAAGroB;AAAA,EACzD,eAAe,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,cAAc,GAAGroB;AAAA,EACzD,uBAAuB,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,sBAAsB,GAAGroB;AAAA,EACzE,cAAc,IAAIA,MAASqoB,KAAA,gBAAAA,EAAY,aAAa,GAAGroB;AACzD,GCrCayoB,KAAc3rB,GAAuB;AAAA,EAChD,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,aAAa;AACf,CAAC;AAEM,SAAS4rB,GAAe,EAAE,QAAA9K,GAAQ,QAAAoB,GAAQ,aAAAa,KAA6B;AAC5E,EAAA4I,GAAY,SAAS7K,GACrB6K,GAAY,cAAc5I,GAC1B4I,GAAY,SAASzJ;AACvB;ACdO,SAAS2J,KAAmB;AACjC,QAAM/K,IAAS1kB,GAAIpF,EAAgB,EAAA,YAAA,EAAc,MAAM,GACjD80B,IAAY1vB,GAAIpF,EAAgB,EAAA,YAAA,EAAc,SAAS,GACvD+0B,IAAkB/0B,IAAgB,iBAClCg1B,IAAkB5vB,GAAI,EAAE,GACxB6vB,IAAc7vB,GAAI,EAAE;AAE1B,iBAAe8vB,IAAyB;AAClC,QAAA,CAACpL,EAAO,OAAO;AACjB,UAAIgL,EAAU,OAAO;AACnB,QAAAC,EAAgB,QAAW,EAAI;AAC/B;AAAA,MAAA;AAEF,MAAAC,EAAgB,QAAQ,CAAC,GACzBC,EAAY,QAAQ,CAAC;AACrB;AAAA,IAAA;AAEE,QAAA,CAACH,EAAU,OAAO;AACpB,MAAAE,EAAgB,QAAQ,MAAMnK,GAAiBf,EAAO,KAAK,GAC3DmL,EAAY,QAAQ,CAAC;AACrB;AAAA,IAAA;AAGE,QAAAD,EAAgB,MAAMA,EAAgB,MAAM,SAAS,CAAC,MAAMF,EAAU,OAAO;AAE/E,YAAMrH,IAAW,MAAM5C,GAAiBiK,EAAU,KAAK;AACvD,MAAIrH,EAAS,SAAS3D,EAAO,KAAK,IAChCkL,EAAgB,QAAQvH,IAERsH,EAAAjL,EAAO,OAAO,EAAI;AAAA,IACpC;AAGF,QAAIkL,EAAgB,MAAM,SAASlL,EAAO,KAAK,GAAG;AAEhD,YAAMqL,IAAgBH,EAAgB,MAAM,QAAQlL,EAAO,KAAK;AAChE,MAAIqL,IAAgB,IAAIH,EAAgB,MAAM,SAC5CC,EAAY,QAAQD,EAAgB,MAAM,MAAMG,IAAgB,CAAC,IAEjEF,EAAY,QAAQ,CAAC;AAAA,IACvB;AAEA,MAAAD,EAAgB,QAAQ,MAAMnK,GAAiBf,EAAO,KAAK,GAC3DmL,EAAY,QAAQ,CAAC,GACLF,EAAAjL,EAAO,OAAO,EAAI;AAAA,EACpC;AAGF,QAAMsL,IAASp1B,IAAgB,8BAA8B,MAAM;AACjE,UAAMq1B,IAAYr1B,IAAgB,YAAc,EAAA,QAC1Cs1B,IAAet1B,IAAgB,YAAc,EAAA,WAC7Cu1B,IAAgBF,MAAcvL,EAAO,OACrC0L,IAAmBF,MAAiBR,EAAU;AACpD,IAAIS,MACFzL,EAAO,QAAQuL,IAEbG,MACFV,EAAU,QAAQQ,KAEhBE,KAAoBD,MACCL,EAAA;AAAA,EACzB,CACD;AAED,SAAAxK,GAAY,MAAM;AACT,IAAA0K,EAAA;AAAA,EAAA,CACR,GAEsBF,EAAA,GAEhB;AAAA,IACL,aAAAD;AAAA,IACA,iBAAAD;AAAA,EACF;AACF;AC7CA,MAAM,EAAE,SAASrC,IAAe,YAAY8C,GAAA,IAAqBjC,GAAW,GACtE,EAAE,YAAAjF,IAAY,OAAAkC,IAAO,UAAAiF,IAAU,UAAAC,GAAS,IAAInF,GAASmC,EAAa,GAClE,EAAE,QAAAC,GAAO,IAAIpD,GAAU,GACvB,EAAE,kBAAAqD,IAAkB,kBAAA+C,GAAiB,IAAInG,GAAiB,GAC1D,EAAE,gBAAAQ,IAAgB,QAAAC,GAAO,IAAIH,GAAe,GAC5C8F,KAAsB,MAAM;AAChC,QAAM5pB,IAAU;AAAA,IACd,OAAAwkB;AAAA,IACA,QAAAmC;AAAA,IACA,QAAA1C;AAAA,EACF;AACO,SAAA,eAAejkB,GAAS,iBAAiB;AAAA;AAAA,IAE9C,KAAK4mB;AAAA,IACL,YAAY;AAAA,EAAA,CACb,GACD4C,GAAiBxpB,GAAS,EAAI;AAChC;AACA4pB,GAAoB;AACb,MAAMC,KAAoB5B,GAAe,GAE1C;AAAA,EACJ,QAAQ6B;AAAA,EACR,WAAAC;AAAA,EACA,YAAApE;AACF,IAAIc,GAAUoD,IAAmB;AAAA,EAC/B,OAAArF;AAAA,EACA,QAAAmC;AAAA,EACA,QAAA1C;AAAA,EACA,kBAAA2C;AACF,CAAC,GACK,EAAE,aAAAoD,IAAa,aAAAC,GAAY,IAAIrH,GAAkB,GACjD,EAAE,cAAAsH,IAAc,eAAAC,GAAA,IAAkBN,IAClCO,KAAe,MAAM;AACd,EAAA9H,GAAA;AACb;AACAiG,GAAc;AAAA;AAAA,EAEZ,UAAAkB;AAAA,EACA,kBAAA7C;AAAA,EACA,eAAA/yB;AAAA;AAAA,EAEA,cAAAiB;AAAA,EACA,cAAAo1B;AAAA,EACA,eAAAn2B;AAAA,EACA,eAAAo2B;AAAA,EACA,aAAAH;AAAA,EACA,aAAAC;AAAA,EACA,eAAA/1B;AAAA,EACA,eAAAC;AAAA,EACA,uBAAAqI;AAAA,EACA,cAAA4tB;AACF,CAAC;AAED,MAAMC,KAAuBC;AAAA,EAC3B,MAAM;AACG,WAAA,KAAK,kBAAkBR,EAAY;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,GAEM,EAAE,mBAAAzG,GAAkB,IAAID,GAAqB,GAEnDmH,KAAelM,GAAgB;AAAA,EAC7B,OAAO;AAAA,IACL,OAAO;AAAA;AAAA,MAEL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,MAAM1pB,GAAO;AACX,UAAM61B,IAAiB/vB,GAAO,gBAAgB,KAAoBtB,GAAI,IAAI,GACpEsxB,IAAiB12B,IAAgB,YAAc,EAAA,QAE/C+rB,IAAcnrB,EAAM,UAAUA,EAAM,QAAQk1B,KAAoB5B,GAAe;AAQrF,QAPAvG,GAAQ,eAAe5B,CAAW,GAEtBA,EAAA,iBAAiBnrB,EAAM,aAAa,GAEpCmrB,EAAA,SAASnrB,EAAM,UAAU81B,GACrC3K,EAAY,SAASnrB,EAAM,UAAU,CAAC81B,KAAkB91B,EAAM,OAC9DmrB,EAAY,cAAcnrB,EAAM,cAAc,gBAAgBmrB,EAAY,MAAM,EAAE,GAC9EnrB,EAAM,OAAO;AACf,MAAA+sB,GAAQ,kBAAkB8I,CAAa,GAC/B9I,GAAA,gBAAgBkH,GAAiB,EAAE,WAAW;AACtD,YAAM8B,IAAqB,MAAM;AAC3B,YAAArH,GAAkB,aAAa,cAAc;AAC/C,UAAAmH,EAAc,QAAQ,CAAC;AACvB;AAAA,QAAA;AAEF,QAAA5L,GAAiBkB,EAAY,MAAM,EAAE,KAAK,CAAChoB,MAAU;AACnD,UAAA0yB,EAAc,QAAQ1yB;AAAA,QAAA,CACvB;AAAA,MACH;AACmB,MAAA4yB,EAAA;AAEnB,YAAMvB,IAASp1B,IAAgB,8BAA8B,MAAM;AACjE,cAAM02B,IAAiB12B,IAAgB,YAAc,EAAA;AACrD,QAAA+rB,EAAY,SAAS2K,GACrB3K,EAAY,cAAc,gBAAgBA,EAAY,MAAM,EAAE,GAC3C4K,EAAA;AAAA,MAAA,CACpB;AACD,MAAAjM,GAAY,MAAM;AACT,QAAA0K,EAAA;AAAA,MAAA,CACR,GAED7vB;AAAA,QACE,MAAM+pB,GAAkB;AAAA,QACxB,MAAM;AACe,UAAAqH,EAAA;AAAA,QAAA;AAAA,MAEvB,GAEU5H,GAAA,GAEVxpB;AAAA,QACE,MAAMwwB,GAAa;AAAA,QACnB,CAAChyB,MAAU;AACT,UAAA6tB,GAAW7tB,CAAK;AAAA,QAAA;AAAA,MAEpB;AAEM,YAAA6yB,IAAqB,OAAO,KAAK;AAAA,QACrC;;AAAM,kBAAAn0B,IAAA,OAAO,KAAK,cAAZ,gBAAAA,EAAuB;AAAA;AAAA,QAC7B,CAACY,MAAS;AACR,UAAAsyB,GAAStyB,CAAI;AAAA,QACf;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,MAAM;AAAA,QAAA;AAAA,MAEV,GAEMwzB,IAA0B,OAAO,KAAK;AAAA,QAC1C;;AAAM,kBAAAp0B,IAAA,OAAO,KAAK,cAAZ,gBAAAA,EAAuB;AAAA;AAAA,QAC7B,CAACY,MAAS;AACR,UAAAuyB,GAAiBvyB,CAAI;AAAA,QACvB;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,MAAM;AAAA,QAAA;AAAA,MAEV,GAEMyzB,IAA2B,OAAO,KAAK;AAAA,QAC3C;;AAAM,kBAAAr0B,IAAA,OAAO,KAAK,cAAZ,gBAAAA,EAAuB;AAAA;AAAA,QAC7B,CAACY,MAAS;AACR,UAAA4sB,GAAe5sB,CAAI;AAAA,QACrB;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,MAAM;AAAA,QAAA;AAAA,MAEV;AAEA,aAAO,KAAK,UAAU;AAAA,QACpB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,UAAUizB;AAAA,MAAA,CACX,GAED,OAAO,KAAK,UAAU;AAAA,QACpB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,UAAU,MAAM;AACJ,UAAAN,GAAA,OAAO,KAAK,WAAW;AAAA,QAAA;AAAA,MACnC,CACD,GAEDtL,GAAY,MAAM;AAChB,eAAO,KAAK,YAAY;AAAA,UACtB,OAAO;AAAA,UACP,YAAY;AAAA,QAAA,CACb,GAED,OAAO,KAAK,YAAY;AAAA,UACtB,OAAO;AAAA,UACP,YAAY;AAAA,QAAA,CACb,GAEkBkM,EAAA,GACKC,EAAA,GACCC,EAAA;AAAA,MAAA,CAC1B;AAAA,IAAA;AAGH,QAAI5L,IAAS6K,IACTgB;AACJ,QAAIhL,EAAY,UAAU,CAACnrB,EAAM,UAAU,CAACA,EAAM,OAAO;AAEvD,YAAM,EAAE,QAAQo2B,GAAgB,WAAWC,EAAkB,IAAIvE,GAAU3G,GAAa;AAAA,QACtF,OAAA0E;AAAA,QACA,QAAAmC;AAAA,QACA,QAAA1C;AAAA,QACA,kBAAA2C;AAAA,MAAA,CACD;AACQ,MAAA3H,IAAA8L,GACUD,IAAAE;AAAA,IAAA;AAGrB,IAAAtJ,GAAQ,cAAczC,CAAM,GAEvBtqB,EAAM,SACT2E;AAAA,MACE,CAAC,MAAM3E,EAAM,QAAQ,MAAMA,EAAM,YAAY;AAAA,MAC7C,CAAC,CAACiG,GAAQqwB,CAAY,MAAM;AAC1B,QAAIrwB,KACa+tB,GAAA;AAAA,UACb,QAAQ7I,EAAY;AAAA,UACpB,QAAAb;AAAA,UACA,aAAAa;AAAA,QAAA,CACD,GAEC,CAACllB,KAAU,CAACjG,EAAM,UACDm2B,KAAA,QAAAA,EAAAG,GAAct2B,EAAM;AAAA,MAE3C;AAAA,MACA;AAAA,QACE,WAAW;AAAA,MAAA;AAAA,IAEf;AAGF,UAAMu2B,IAAelB,GAAY;AAE1B,WAAA,MACLQ,EAAc,UAAU,OACpBrwB,GAAEuoB,IAAa,EAAE,iBAAiB,UAAW,CAAA,IAC7CwI;AAAA,MACEjM;AAAA,MACAqD;AAAA,MACA3tB,EAAM;AAAA,MACNmrB,EAAY;AAAA,MACZ,CAAC,CAACA,EAAY,UAAU0K,EAAc,MAAM;AAAA,IAC9C;AAAA,EAAA;AAEV,CAAC,GCjRYW,KAAc,CAACx2B,GAAOqL,MAAY;AAC7C,QAAMuM,IAA8B,CAAC,GAC/B6e,IAAWC,GAAmB,GAC9BC,IAAS,IACTC,IAAQ,IACR,EAAE,GAAAC,GAAG,QAAAzI,EAAA,IAAWtoB,GAAOuoB,EAAgB,EAAE,QACzCyI,IAAOzrB,EAAQ,MACf7G,IAAM,CAACA,MAAQiyB,EAAS,KAAKjyB,CAAG,GAEhC2tB,IAAW,CAAC4E,GAAUjjB,MAAa;AAChC,WAAA,OAAO8D,EAAO,OAAOmf,CAAQ,GACpCrE,GAAS,MAAM5e,KAAA,gBAAAA,EAAU,MAAM8D,EAAO;AAAA,EACxC,GAEMof,IAAY,MAAM5I,EAAO,OACzB6I,IAAY,CAACpf,MAAQ;AACzB,IAAAuW,EAAO,QAAQvW;AAAA,EACjB;AAKA,gBAAO,iBAAiBD,GAAQ;AAAA,IAC9B,OAAO,EAAE,KAAK,MAAM5X,EAAM;AAAA,IAC1B,MAAM,EAAE,KAAK,MAAM82B,EAAK;AAAA,IACxB,UAAU,EAAE,KAAK,MAAM3E,EAAS;AAAA,IAChC,QAAQ,EAAE,KAAK,MAAMwE,EAAO;AAAA,IAC5B,OAAO,EAAE,KAAK,MAAMC,EAAM;AAAA,IAC1B,MAAM,EAAE,KAAK,MAAMC,EAAE;AAAA,IACrB,WAAW,EAAE,KAAK,MAAMG,EAAU;AAAA,IAClC,WAAW,EAAE,KAAK,MAAMC,EAAU;AAAA,IAClC,UAAU,EAAE,KAZG,MAAM,OAAO,SAYF;AAAA,IAC1B,SAAS,EAAE,KAZG,MAAM,OAAO,QAYH;AAAA,IACxB,OAAO;AAAA,MACL,KAAKnD,GAAI;AAAA,IACX;AAAA,IACA,QAAQ,EAAE,KAAK,OAAO,CAAA,GAAI;AAAA,IAC1B,eAAe,EAAE,KAAKA,GAAI,iBAAiB;AAAA,IAC3C,GAAG,EAAE,KAAK,MAAMtvB,EAAI;AAAA,EAAA,CACrB,GAEY,CAAC+S,MAAO;AACf,QAAA,OAAOA,KAAO,YAAY;AACtB,YAAA2f,IAAW3f,EAAG,SAAS;AAEzB,UAAA2f,EAAS,SAAS,aAAa;AACjC,eAAO,MAAMtf;AACJ,UAAA,+CAA+C,KAAKsf,CAAQ,GAAG;AAClE,cAAAC,IAAiBrxB,GAAO,aAAa,EAAe;AACnD,eAAAqF,GAAWoM,GAAI4f,CAAa;AAAA,MAAA,cAC1B5f,EAAG,SAAS,YAAYA,EAAG,SAAS,WAEtC,IAAIjM,MAAS;AACd,YAAA;AACC,UAAAiM,EAAA,MAAMK,GAAQtM,CAAI;AAAA,iBACdJ,GAAO;AACD,UAAApL,GAAA;AAAA,YACX,MAAM;AAAA,YACN,OAAO,SAASyX,EAAG,IAAI;AAAA,YACvB,UAASrM,KAAA,gBAAAA,EAAO,YAAW,SAASqM,EAAG,IAAI;AAAA,UAAA,CAC5C;AAAA,QAAA;AAAA,MAEL,IAEO,MAAM,QAAQ,QAAQ,EAAE,QAAQ,IAAI,MAAM,EAAE,OAAO,IAAI,GAAG;AAAA,IACnE;AAGK,kBAAA,QAAQA,CAAE,EAAE,QAAQ,CAAC,CAACrQ,GAAM/D,CAAK,MAAM;AACrC,aAAA,eAAeyU,GAAQ1Q,GAAM;AAAA,QAClC,KAAK,MAAM/D;AAAA,MAAA,CACZ;AAAA,IAAA,CACF,GAEDoU,EAAG,IAAIsf,GAEAtf;AAAA,EACT;AAGF,GAEA6f,KAAe,MAAM;AACb,QAAA1sB,IAAO5E,GAAOuoB,EAAgB;AACpC,SAAAtB,GAAQsB,IAAkB3jB,CAAI,GACvB,EAAE,GAAGA,EAAK,OAAO,GAAG,aAAA8rB,GAAY;AACzC,GCjFMa,KAAW,CAACnwB,GAAczE,MAA2B;AACzD,SAAO,OAAO,SAAS,cAAc,IAAI,YAAYyE,GAAMzE,CAAI,CAAC;AAClE,GAEM60B,KAAoB,MAAM;AAC9B,EAAAD,GAAS,qBAAqB,IAAI,GAChCE,GAAsC,UAAUH,IAElD,OAAO,uBAAuB,CAAC,GAC/B,OAAO,oBAAoB,CAAC;AAC9B;AAEA,IAAII,KAAM;AAEV,MAAMtN,KAAW;AAAA,EACf,SAAS;AACA,WAAAsN;AAAA,EACT;AAAA,EACA,UAAU;AACD,WAAAD;AAAA,EACT;AAAA,EACA,GAAGzD;AACL,GAEM2D,KAAS,OAAOhgB,MAAW;AAC/B,QAAM,EAAE,iBAAAigB,GAAiB,YAAAC,EAAe,IAAAlgB,EAAO,cAAc,CAAC;AAC1D,EAAA,OAAOigB,KAAoB,cAC7B,MAAMA,EAAgB,EAAE,KAAKxN,IAAU,GAErCsN,MACFA,GAAI,QAAQ,GAERA,KAAA,MAEN,SAAS,KAAK,OAAO,GACZ,SAAA,OAAO,SAAS,cAAc,MAAM;AACvC,QAAAI,IAAM,SAAS,cAAc,KAAK;AACpC,EAAAA,EAAA,aAAa,MAAM,KAAK,GACnB,SAAA,KAAK,YAAYA,CAAG,GAE7BP,GAAS,eAAe,EAAE,QAAQnN,GAAA,CAAU,GAEtCsN,KAAAK,GAAUjC,EAAI,EAAE,IAAI2B,EAAY,EAAE,QAAQlJ,IAAkBkJ,EAAY,GAE1E,OAAOI,KAAe,cACxB,MAAMA,EAAWH,IAAK,EAAE,KAAKtN,IAAU,GAGzCsN,GAAI,OAAO,iBAAiB,gBAAgB,OAAO,OAAO,kBAC1DA,GAAI,MAAM,SAAS,cAAc,MAAM,CAAC,GAExC,IAAI,eAAe,MAAM;AACvB,IAAAH,GAAS,gBAAgB,IAAI;AAAA,EAAA,CAC9B,EAAE,QAAQ,SAAS,IAAI,GAEpBG,GAAA,OAAO,eAAe,MAAM;AAAA,EAAC;AACnC,GAEaM,KAAe,CAACrgB,MAAW;AACpB,EAAA6f,GAAA;AAEZ,QAAA,EAAE,QAAAS,IAAS,CAAC,GAAG,SAAAC,IAAU,CAAC,EAAA,IAAMvgB,EAAO,oBACvCwgB,IAAiB,OAAO,kBAAkB,CAAC;AAEjD,UAAQ,IAAI;AAAA,IACV,GAAGA,EAAe,IAAIC,EAAa;AAAA,IACnC,GAAGF,EAAQ,IAAI,CAACG,MAAQC,GAAUD,CAAG,CAAC,EAAE,OAAOJ,EAAO,IAAI,CAACI,MAAQE,GAASF,CAAG,CAAC,CAAC;AAAA,EAClF,CAAA,EAAE,QAAQ,MAAMV,GAAOhgB,CAAM,CAAC;AACjC;","x_google_ignoreList":[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]}